tema 3 entrada y salida. entrada necesidad de la entrada de datos, ejemplo: int main() { int a, b,...

23
Tema 3 Entrada y Salida

Upload: teodoro-canales

Post on 22-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Tema 3

Entrada y Salida

Page 2: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Entrada• Necesidad de la entrada de datos, ejemplo:

int main() {

int a, b, c;

a = 19;b = 42;c = a + b;

}

• Al conjunto de instrucciones de un programa encargadas de leer datos de fuentes externas e introducirlos en variables se le conoce con el nombre de Entrada de un programa.

Page 3: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Entrada de datos La instrucción en C utilizada para la lectura de datos

desde el teclado es la siguiente:

scanf(“formato”,lista_de_variables);

• En lista_de_variables figura una serie de variables en las cuales se introducirán los datos leídos desde el teclado (números enteros, números reales, caracteres, ...). Cada una de las variables llevará el símbolo & delante (llamado ampersand).

• En formato es necesario poner el tipo de dato de las variables listadas en lista_de_variables con el símbolo % delante.

Page 4: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

EjemploPor ejemplo, la instrucción

scanf(“%d”,&a);

scanf es la función de lectura de teclado y debe figurar siempre.

mediante %d, se especifica el tipo de dato de la variable a, en la que se guardará el dato leído desde teclado, en este caso la d significa que es un entero.

n la lista_de_variables se pone la variable a, que ha de estar definida como int.

Page 5: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplo de suma

int main() {

int a, b, c;

scanf(“%d”,&a); /*instruccion 1*/

scanf(“%d”,&b); /*instruccion 2*/

c = a + b; /*instruccion 3*/

}

Page 6: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

vacío

vacío

vacío

a

b

c

Nombresde variable.

Contenido de lasvariables

3

vacío

vacío

a

b

c

Nombresde variable.

Contenido de lasvariables

3

-1

vacío

a

b

c

Nombresde variable.

Contenido de lasvariables

3

-1

2

a

b

c

Nombresde variable.

Contenido de lasvariables

Inicio Instrucción 1

Instrucción 2 Instrucción 3

Page 7: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Funcionamiento• Cuando el ordenador ejecuta el programa anterior

y llega a una instrucción de entrada como scanf, se detiene, y espera que se introduzcan datos desde el teclado. El programa no reanudará su ejecución hasta que no se pulse la tecla Intro (Enter) después de introducir los datos.

• Una vez se ha pulsado esta tecla, se analizan todos los caracteres leídos del teclado y se almacenan en las variables de la lista_de_variables de la función scanf con el formato adecuado.

Page 8: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Formatos de tipos de variable

Formato de tipo Descripción d para introducir números enteros decimales ld para introducir números enteros decimales

largos u para introducir números enteros sin signo e, f, lf, g para introducir números reales en coma

flotante, es decir, seguido por el carácter e o E y un entero como exponente

c para introducir un carácter ASCII (no se admiten la ñ o letras acentuadas).

Page 9: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

int main() {int a;char b;float c;long int d;scanf(“%d”,&a);scanf(“%c”,&b);scanf(“%f”,&c);scanf(“%ld”,&d);

}

Page 10: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Otras funciones de entrada

– getch (Un solo carácter) – getchar (Un solo carácter)– gets (Un conjunto de caracteres)

getch y getchar equivalen a un scanf con formato %c

gets equivale a un scanf con formato %s pero con una sutil diferencia, acepta palabras separadas por blancos.

Page 11: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplo

#include <stdio.h>int main(){

char estado_civil; char nombre[50];

estado_civil=getch();estado_civil=getchar();nombre=gets();

}

Page 12: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Instrucciones de salida

• printf()

Su sintaxis es:printf(“cadena de formato”,lista_de_argumentos)

Cualquier carácter que deseemos escribir.

Expresiones o nombres de

variables

Page 13: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

• printf es una función al igual que scanf pero utilizada para la salida de datos. Debe figurar siempre en la instrucción.

• El campo de formato tiene la misma sintaxis y significado que en el caso de scanf. Pero además, dentro del campo de formato pueden haber otros caracteres aparte de los de especificación de formato.

• En lugar de figurar una lista_de_variables como en el caso de scanf, se ha puesto una lista_de_argumentos. La razón es que en esta lista de argumentos pueden haber constantes además de variables y expresiones, al contrario que en scanf, donde sólo pueden existir variables. Las variables no deben llevar en este caso el símbolo & delante.

Page 14: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Cadena de formato del printf

• En la cadena de formato del printf podemos, escribir cualquier mensaje que queramos aparezca por pantalla.

• Podemos además escribir caracteres especiales como \t o \n (tabulador y cambio de línea) que permitirán dar formato a nuestro mensaje

• Podemos indicar donde y cómo escribir el contenido de las variables y ctes. definidas en el programa y valores resultado de expresiones.

Page 15: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Indicación del tipo de datos

• Para indicar el tipo de dato de la variable sobre la cual vamos mostrar, empleamos un % seguido básicamente de:– d si es entero – f,e,g,lf si es real– c si es char– s si es cadena de caracteres

Page 16: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplos

printf(“Hola mundo”);Rdo: Hola Mundo

printf(“Hola\nMundo”);Rdo: Hola

Mundo

printf(“El resultado es: %.1f\n”,circunferencia)

Rdo: El resultado es: 0.5

Indica el numero de caracteres empleado para

representar un número

Page 17: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Número de posicionesAl representar un número, podemos especificar cuantos espacios/posiciones se van a emplear para escribirlo. Sintaxis: %-n.mX– Para enteros: %4d significa que se va a emplear 4

posiciones para escribir el número. – Para reales: %6.2f significa que se va a emplear como

mínimo seis posiciones de las cuales 2 serán decimales.– Para cadenas de caracteres: %20s significa que se van a

emplear como mínimo 20 caracteres para representar esa cadena.

– El menos indica como se justifica el número, el menos es a la derecha

Page 18: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplos

Page 19: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplos

Page 20: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplos• Para imprimir la constante real 13.5e-1, se debería poner

una de las tres instrucciones siguientes: printf(“%f\n”,13.5e-1);

printf(“%g\n”,13.5e-1);printf(“%e\n”,13.5e-1);

• La primera y la segunda ofrecen el número en coma fija y la tercera en coma flotante o formato exponencial. La salida por pantalla sería la siguiente:

1.3500001.351.350000e+00

Page 21: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Ejemplo

• Hacer un programa que calcule el área de una circunferencia:– Definir la variable PI con el valor 3.1415927– Definir dos variable reales, una denominada

“radio” y otra denominada “area”– Calcular la expresión:

circunferencia=PI*radio*radio– Mostrar el resultado almacenado en

“circunferencia”

Page 22: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Programa#include <stdio.h>

int main() { float radio, area; PI=3.14159265; printf( "Dame el radio: " ); scanf( "%f", &radio );

area = PI * radio*radio;

printf( "La circunferencia mide: %f ", area );}

Page 23: Tema 3 Entrada y Salida. Entrada Necesidad de la entrada de datos, ejemplo: int main() { int a, b, c; a = 19; b = 42; c = a + b; } Al conjunto de instrucciones

Cambio a Centígrados

• Implementar un programa que calcule la temperatura en grados Centígrados a partir de la temperatura en grados Fahrenheit.

• La formula es:

C=5/9(F+32)