AYUDA PLZ

Iniciado por kisent, 7 Noviembre 2018, 18:09 PM

0 Miembros y 1 Visitante están viendo este tema.

kisent

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 :)

MCKSys Argentina

Cita de: 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 :)

Hola!

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

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


kisent

Cita de: MCKSys Argentina en  7 Noviembre 2018, 18:37 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.

antopixel

#3
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.

K-YreX

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 (cpp) [Seleccionar]

char caracter = 'a';
if(caracter >= 'a' && caracter <= 'z')
    cout << "El caracter es una letra minuscula" << endl;
else if(caracter >= 'A' && caracter <= 'Z')
    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.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;