CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8 CONTENIDO DE LA LECCIÓN 8

azul2.bnct.ipn.mx
from azul2.bnct.ipn.mx More from this publisher
06.05.2013 Views

MIGUEL Á. TOLEDO MARTÍNEZ requiere tanta escritura como algunos otros lenguajes estructurados. En realidad C++ asignará la parte entera del primer valor a registro1 y la parte decimal del primer valor a registro2. De esta manera, la variable registro1 toma el valor 98 y registro2 tomar el valor 0.5. Después, con el mismo programa, suponga que el usuario escribe la siguiente línea de datos: 98¿ 78↵ Ahora no hay problema. Pero ¿Cómo puede ser esto? ¿Por qué el compilador asigna un valor entero (78) a una variable de punto flotante (registro2)? Está bien, porque los enteros son una serie de números reales. El compilador simplemente convierte el valor entero en un formato de punto flotante. De esta manera el valor entero 78 se convierte en el valor de punto flotante 78.0 para almacenarse dentro de la memoria principal de trabajo. LECTURA DE DATOS DE UN SOLO CARÁCTER La lectura de datos numéricos es directa, siempre y cuando se haga uso de las dos reglas para la lectura de datos. Sin embargo, hay algunas cosas que convienen recordar cuando se leen datos de carácter usando cin. Ejemplo 7.7 1. Sólo se lee un carácter a la vez. 2. Los espacios en blanco (espacios, tabuladores, líneas nuevas, retorno de carro, etc.) son ignorados por cin cuando se usa el operador >>. Sin embargo, es posible leer el espacio en blanco usando diferentes funciones cin 3. Los valores numéricos se pueden leer como caracteres, pero cada dígito se lee como un carácter por separado. El siguiente programa LECCAR.CPP, ilustra el uso de los conceptos anteriores. // El siguiente programa: LEECAR.CPP, ilustra la lectura de datos de la clase caracter. #include //Para cout void main(void) { // Define las variables ingresadas y las inicializa con espacio en blanco. char calificacion1 = ' '; char calificacion2 = ' '; char calificacion3 = ' '; // Lectura/escritura de los datos del usuario cout > calificacion1; cout

MIGUEL Á. TOLEDO MARTÍNEZ El programa anterior define tres variables (calificacion1, calificacion2, calificacion3) de la clase carácter, las cuales son inicializadas con espacios en blanco. Después el programa lee las tres variables de clase carácter desde el teclado y repite las variables en la pantalla del monitor. Ahora vamos a ver que hará el programa con algunos casos de entrada. Caso 1: Introduzca una calificación (R,D,C,B,A): A¿ La calificación introducida fue: A Introduzca una calificación (R,D,C,B,A): B¿ La calificación introducida fue: B Introduzca una calificación (R,D,C,B,A): C¿ La calificación introducida fue: C Se observa la salida que se esperaba. El compilador asigna un solo carácter de entrada a la variable carácter respectiva listada en el enunciado cin. Caso 2: El usuario escribe: ABC¿ El sistema muestra: A B C En este caso, el usuario ha escrito los caracteres ‘A’, ‘B’ y ‘C’ en una sola línea. De esta manera, los tres caracteres se colocan en la memoria temporal del flujo de entrada. El compilador todavía asigna el carácter A a calificacion1, el carácter B a calificacion2 y el carácter C a calificacion3. Veamos como funciona: el usuario ha colocado tres caracteres en el flujo de entrada. El primer enunciado cin extrae solamente el primer carácter (‘A’) y el subsecuente enunciado cout repite el carácter en la pantalla. Como resultado, el carácter ‘A’ se extrae del flujo, quedando los caracteres ‘B’ y ‘C’. El segundo enunciado cin extrae del flujo el segundo carácter (‘B’), dejando el carácter ‘C’ en el flujo. El siguiente enunciado cout repite ‘B’ en la pantalla. Por último, el tercer enunciado cin extrae el último carácter (‘C’) del flujo. Este carácter se repite entonces en la pantalla. Caso 3: El usuario escribe: A B C¿ El sistema muestra: A B C Observe que hay espacios en blanco entre los caracteres ‘A’, ‘B’ y ‘C’. Este espacio en blanco es ignorado por el operador >>. De esta manera, el compilador todavía hace las asignaciones correctas a las variables respectivas. Caso 4: El usuario escribe: 75 92 88¿ El sistema muestra: 7 5 9 FUNDAMENTOS – LECCIÓN 7 7-11

MIGUEL Á. TOLEDO MARTÍNEZ<br />

requiere tanta escritura como algunos otros lenguajes estructurados. En realidad C++ asignará la<br />

parte entera del primer valor a registro1 y la parte decimal del primer valor a registro2. De esta<br />

manera, la variable registro1 toma el valor 98 y registro2 tomar el valor 0.5.<br />

Después, con el mismo programa, suponga que el usuario escribe la siguiente línea de datos:<br />

98¿<br />

78↵<br />

Ahora no hay problema. Pero ¿Cómo puede ser esto? ¿Por qué el compilador asigna un valor<br />

entero (78) a una variable de punto flotante (registro2)? Está bien, porque los enteros son una<br />

serie de números reales. El compilador simplemente convierte el valor entero en un formato de<br />

punto flotante. De esta manera el valor entero 78 se convierte en el valor de punto flotante 78.0<br />

para almacenarse dentro de la memoria principal de trabajo.<br />

LECTURA <strong>DE</strong> DATOS <strong>DE</strong> UN SOLO CARÁCTER<br />

La lectura de datos numéricos es directa, siempre y cuando se haga uso de las dos reglas<br />

para la lectura de datos. Sin embargo, hay algunas cosas que convienen recordar cuando se leen<br />

datos de carácter usando cin.<br />

Ejemplo 7.7<br />

1. Sólo se lee un carácter a la vez.<br />

2. Los espacios en blanco (espacios, tabuladores, líneas nuevas, retorno de carro, etc.) son<br />

ignorados por cin cuando se usa el operador >>. Sin embargo, es posible leer el espacio en<br />

blanco usando diferentes funciones cin<br />

3. Los valores numéricos se pueden leer como caracteres, pero cada dígito se lee como un<br />

carácter por separado.<br />

El siguiente programa LECCAR.CPP, ilustra el uso de los conceptos anteriores.<br />

// El siguiente programa: LEECAR.CPP, ilustra la lectura de datos de la clase caracter.<br />

#include //Para cout<br />

void main(void)<br />

{<br />

// Define las variables ingresadas y las inicializa con espacio en blanco.<br />

char calificacion1 = ' ';<br />

char calificacion2 = ' ';<br />

char calificacion3 = ' ';<br />

// Lectura/escritura de los datos del usuario<br />

cout > calificacion1;<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!