elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Lectura opcional de una serie de variables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lectura opcional de una serie de variables  (Leído 2,432 veces)
amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Lectura opcional de una serie de variables
« en: 14 Septiembre 2013, 12:22 pm »

Buenos días, estoy intentando realizar un problema que me lea una secuencia de términos (monomios de grado 1), dentro de los cuales he de identificar el coeficiente y la variable (una letra). A cada uno de estos he dedicado una variable, respectivamente un integer y un "char".

Dado que bien el coeficiente sea uno (por lo que sobra su inserción como dato de entrada) o no exista variable (por lo que damos con un término independiente), he establecido unos enunciados condicionales a la hora de establecer las sentencias de entrada de datos (todas en base a un cin): un if para que me lea ambos y otros dos para cada uno de ellos. Pero tengo un problema, ya que no me respeta ni los espacios ni los saltos de línea; incluso es imposible continuar ya que se da una infinitud de saltos de línea, incontrolables.

De todos modos, antes de finalizar os expondré un ejemplo de entrada y otro de salida:

ENTRADA
   -13t      8k    w
       +34
-10p

SALIDA
-13.t
8.k
1.w
34.
-10.p


Agradecería vuestra ayuda.
Un saludo.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Lectura opcional de una serie de variables
« Respuesta #1 en: 14 Septiembre 2013, 13:38 pm »

Acuérdate de poner el código para que podamos revisarlo.


Sobre eso, CIN lee hasta que haya un espacio o un salto de línea. Si quieres que CIN lea espacios, escribe en su lugar
Código
  1. cin.getline(variable,numero de caracteres);


En línea

amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Lectura opcional de una serie de variables
« Respuesta #2 en: 14 Septiembre 2013, 15:25 pm »

Hola, le agradezco su respuesta, pero voy a proceder a exponerle el código y a explicarle posteriormente, ya que ando un poco desconcertado:

Código:
int main(void)
{
int coeficiente = 0;
char variable;

while (cin >> coeficiente >> variable)
{
if (coeficiente == '\0')
cout << 1 << "." << variable;
else if (variable == '\0')
cout << coeficiente << ".";
else
cout << coeficiente << "." << variable;

cout << endl;
}
}

Como pueden ver, el código ampara el caso en el que se lee el número, sea positivo o negativo junto a la variable (una letra de la 'a' a la 'z'), pero yo quiero que se lea el número en los siguientes casos:

  • Términos con variable, todos los coeficientes aparecen explícitamente y son nºs positivos. Dos términos consecutivos se separan por un único carácter "enter"’
  • Términos de todo tipo, sean positivos o negativos; separados por un único carácter enter
  • Estos términos también pueden ir separados por espacios además de los enters; de manera arbitraria

Dada la complejidad (que haya un signo sin nº), ... no sé si utilizar int o char, o solo un string; o emplear un determinado procedimiento.

VÉASE EL ENUNCIADO EN https://docs.google.com/file/d/0B70hcRCqJ3n6Y3ludEowbThHVlk/edit?usp=sharing
« Última modificación: 14 Septiembre 2013, 15:30 pm por amgarciac » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Lectura opcional de una serie de variables
« Respuesta #3 en: 14 Septiembre 2013, 17:04 pm »

El error está en que, al leer los datos de esta manera, haces que obligatoriamente primero se lea un número y luego un carácter:

Código
  1. cin >> coeficiente >> variable

Por tanto no se puede introducir el coeficiente o la incógnita sola.

Deberías almacenarlo todo como carácteres (incluído el coeficiente) y después analizar si se ha introducido un signo, un número o una letra.

Saludos.
En línea

amgarciac

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Lectura opcional de una serie de variables
« Respuesta #4 en: 14 Septiembre 2013, 19:56 pm »

Buenas, al final lo hice como me sugeriste: haciendo uso de un string.

Muchas gracias por su respuesta.
Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines