Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: kisent en 7 Noviembre 2018, 18:09 pm



Título: AYUDA PLZ
Publicado por: kisent en 7 Noviembre 2018, 18:09 pm
Hola a todos, soy estudiante de 1 en ingeniería informática, y como mi profesor de programación es lo que viene siendo un inútil pues tengo que buscarme la vida. Espero que aquí me podais ayudar.
Tengo una duda sobre como se hace este ejercicio:

Escribe un programa que lea un carácter del teclado y compruebe si el carácter es una letra, en cuyo caso la salida debe ser “Es letra”, o si el carácter es un punto (‘.’), en cuyo caso la salida debe ser “Es punto”. Si el carácter no es ni una letra ni un punto la salida debe ser “Error”.

He pensado hacerlo con una sentencia switch, pero no se como hacer para que cuando escriba letras el programa lo entienda. Estoy un poco perdido por favor una ayudita no me vendría mal :)


Título: Re: AYUDA PLZ
Publicado por: MCKSys Argentina en 7 Noviembre 2018, 18:37 pm
Hola a todos, soy estudiante de 1 en ingeniería informática, y como mi profesor de programación es lo que viene siendo un inútil pues tengo que buscarme la vida. Espero que aquí me podais ayudar.
Tengo una duda sobre como se hace este ejercicio:

Escribe un programa que lea un carácter del teclado y compruebe si el carácter es una letra, en cuyo caso la salida debe ser “Es letra”, o si el carácter es un punto (‘.’), en cuyo caso la salida debe ser “Es punto”. Si el carácter no es ni una letra ni un punto la salida debe ser “Error”.

He pensado hacerlo con una sentencia switch, pero no se como hacer para que cuando escriba letras el programa lo entienda. Estoy un poco perdido por favor una ayudita no me vendría mal :)

Hola!

Debes colocar tus avances para que puedan ayudarte. Debes saber que en este foro no se hacen tareas.

Saludos!


Título: Re: AYUDA PLZ
Publicado por: kisent en 7 Noviembre 2018, 18:53 pm
Hola!

Debes colocar tus avances para que puedan ayudarte. Debes saber que en este foro no se hacen tareas.

Saludos!

llevo esto

 #include <iostream>
using namespace std;

int main()
{
   
   char a;

   cout << "Introduzca un carácter: ";
   cin >> a;

   switch(a){
      case ('.'):
      cout << "Su carácter es un punto" << endl;
      break;   
      //case ('A'):
      //cout << "Su carácter es una letra" << endl;   
      case ('A'||'B'||'C'||'D'||'E'||'F'||'G'||'H'||'Y'||'J'||'K'||'L'||'M'||'N'||'O'||'P'||'Q'||'R'||'S'||'T'||'U'||'V'||'W'||'Y'||'Z'):
      cout <<"Su carácter es una letra" << endl;
      break;
      default: cout << "Error"<< endl;


   }

   return 0;
}
no se como hacer para que lea las letras, lo del punto esta solucionado y lo del Error cuando se introduce otro tipo de caracter tambien, lo unico es lo de las letras que no  se como se hace.


Título: Re: AYUDA PLZ
Publicado por: antopixel en 10 Noviembre 2018, 05:45 am
C++ no es mi fuerte pero existen varias formas para hacerlo. La mas facil que se me ha ocurrido hasta ahora es que busques los intervalos a los cuales pertenecen las letras en ASCII y al numero que se le ha asignado el punto y con puros IF mirar si pertenece al intervalo de las letras o si es el punto y sino... ERROR ;-)

Saludos alguna duda por MP.


Título: Re: AYUDA PLZ
Publicado por: K-YreX en 19 Noviembre 2018, 07:29 am
Te recomiendo que busques información sobre la librería <cctype>. Tiene algunas funciones que digamos que te pueden interesar... :silbar:
Y en caso de que no lo tengas permitido, ten presente que cuando comparas dos caracteres estás comparando su valor ASCII por lo que:
Código
  1. char caracter = 'a';
  2. if(caracter >= 'a' && caracter <= 'z')
  3.    cout << "El caracter es una letra minuscula" << endl;
  4. else if(caracter >= 'A' && caracter <= 'Z')
  5.    cout << "El caracter es una letra mayuscula" << endl;
Creo que ahí te he dado ya suficientes pistas para que lo hagas con el método que prefieras. Adapta ese código a lo que tú necesitas o mírate la librería que te he comentado, verás como alguna función te viene de perlas.