Está en la página 1de 26

Lenguaje de Programación I

Unidad IV: Entrada y Salida estándar en C

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Preguntas de Control
• Tipos de Variables
• Tipos de Constantes

• Operador ,
• Operador ()
• Operador []
• Operador Sizeof

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Entrada y Salida estándar en C
 Existen funciones que permiten la transferencia de
información entre la computadora y los dispositivos de
entrada/salida estándar (por ejemplo, un teclado y un
monitor).
– Getchar permiten la transferencia de caracteres individuales
– Putchar
permiten la transferencia de caracteres individuales, valores
– Scanf numéricos y cadenas de caracteres;
– Printf
– Gets permiten la entrada y salida de cadenas de caracteres

– Puts
Docente: Ing. Carolina Robelo
carolina.robelo@ulsa.edu.ni
Entrada y Salida estándar en C
• El archivo de cabecera requerido para la entrada/salida
estándar se llama stdio.h
• Se puede acceder a una función de entrada/salida desde
cualquier sitio de un programa con simplemente:
– Escribir el nombre de la función
– Seguido de una lista de argumentos entre paréntesis.

• Los argumentos representan los datos que le son enviados a la


función. Algunas funciones de entrada/salida no requieren
argumentos, pero deben aparecer los paréntesis vacíos.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ENTRADA DE UN CARÁCTER
FUNCIÓN getchar
• Mediante la función de biblioteca getchar, se puede conseguir la
entrada de caracteres uno a uno.

• Lee un carácter del dispositivo de entrada estándar (teclado).

• La función no requiere argumentos. Aunque es necesario un par


de paréntesis vacíos al final.

• Forma general
variable_de_caracter = getchar();

Donde variable de caracter es alguna variable de caracter


previamente declarada.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ENTRADA DE UN CARÁCTER
FUNCIÓN getchar
• Ejemplo char c;
c = getchar();
– En la primera instrucción se declara la variable c de tipo
carácter.

– La segunda instrucción hace que se lea del dispositivo de


entrada estándar un carácter y entonces se le asigne a c.

La función getchar también se puede utilizar para leer cadenas


de varios caracteres, leyendo en un bucle la cadena carácter a
carácter.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
SALIDA DE UN CARACTER
FUNCION putchar
• Se puede visualizar un caracter utilizando la función de
biblioteca putchar. Esta función es complementaria a la de
entrada de un carácter getchar.

• Transmite un caracter al dispositivo de salida estándar


(monitor).

• El caracter que se transmite estará representado normalmente


por una variable de tipo caracter. Se debe proporcionar como
argumento de la función, encerrada entre paréntesis,
siguiendo a la palabra putchar.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
SALIDA DE UN CARACTER
FUNCION putchar
• Referencia General a la funcion
putchar(variable_de_caracter);
Donde variable de caracter hace referencia a una variable de tipo
carácter previamente declarada.

• Ejemplo char c;
. . .
putchar(c);
En la primera instrucción se declara la variable c de tipo caracter.

La segunda instrucción hace que se transmita el valor actual


de c al dispositivo de salida en donde se visualizará.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
SALIDA DE UN CARACTER
FUNCION putchar
• La función putchar se puede utilizar para visualizar una
cadena de caracteres.

• Se pueden escribir entonces mediante un bucle los


caracteres uno a uno. La forma más cómoda de hacer esto
es utilizando una instrucción for.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS
FUNCIÓN scanf
• Esta función se puede utilizar para introducir cualquier
combinación de valores numéricos, caracteres individuales
y cadenas de caracteres.

• La función devuelve el número de datos que se han


conseguido introducir correctamente.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS FUNCIÓN scanf
• Forma General
scanf(“cadena de control”, arg1, arg2, ... , argN)
• cadena de control contiene cierta información sobre el formato
de los datos.

• arg1,arg2,... , argN indican las direcciones de memoria en


donde se almacenan los datos.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS FUNCIÓN
scanf
• Cadena de Control
– Incluyen grupos individuales de caracteres, con un grupo de
caracteres por cada dato de entrada.

– Cada grupo de caracteres debe comenzar con el signo de


porcentaje (%) seguido de un caracter de conversión que
indica el tipo de dato correspondiente.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS FUNCIÓN
scanf
• Caracteres de conversión de los datos de entrada de uso común
Caracter de Conversion Significado
%c el dato es un caracter
%d el dato es un entero
%e el dato es un valor en coma flotante
%f el dato es un valor en coma flotante
%g el dato es un valor en coma flotante
%i el dato es un entero, octal o hexadecimal
%o el dato es un entero octal
%s el dato es una cadena de caracteres, (se añade
automáticamente el carácter nulo \0 al final)
%u el dato es un entero sin signo
%x el dato es un entero hexadecimal

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS FUNCIÓN
scanf
• Argumentos
Pueden ser variables o arrays, y sus tipos deben coincidir con los
indicados por los grupos de caracteres correspondientes en la cadena
de control.

• Cada nombre de variable debe ser precedido por un ampersand (&)

• Los nombres de arrays no deben ir precedidos por el ampersand.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
INTRODUCCIÓN DE DATOS FUNCIÓN
scanf
• Ejemplo
#include <stdio.h>
main ()
{
char concepto [20];
int num_partida;
float coste;
scanf("%s %d %f", concepto, &num_partida, &coste);
getch();
}

• Los datos deben corresponderse con los argumentos de la


función scanf en número, en tipo y en orden.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ESCRITURA DE DATOS
FUNCIÓN printf
• Se puede utilizar esta función para escribir cualquier combinación de
valores numéricos, caracteres sueltos y cadenas de caracteres.

• Es análoga a la función de entrada scanf, con la diferencia de que su


propósito es visualizar datos en lugar de introducirlos en la
computadora.

• La función printf se ocupa de transferir datos de la memoria de la


computadora al dispositivo de salida estándar, mientras que la
función scanf introduce datos del dispositivo de entrada estándar
y los almacena en la memoria de la computadora.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ESCRITURA DE DATOS
FUNCIÓN printf
• Referencia General

printf(“cadena de control”, arg1, arg2,… argN)

• cadena de control hace referencia a una cadena de caracteres que


contiene información sobre el formato de la salida
• arg1, arg2, ... , argN representan los datos de salida. Los
argumentos pueden ser constantes, variables simples o nombres
de arrays o expresiones más complicadas. También se pueden
incluir referencias a funciones.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ESCRITURA DE DATOS
FUNCIÓN printf
• En contraste con la función scanf, los argumentos de la función
printf no representan direcciones de memoria y por tanto no son
precedidos de ampersands.

• La cadena de control está compuesta por grupos de caracteres.


Un grupo de caracteres consistirá en el signo de porcentaje (%)
seguido de un carácter de conversión que indica el tipo del dato
correspondiente.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
ESCRITURA DE DATOS
FUNCIÓN printf
• Ejemplo
#include <stdio.h>
#include <math.h>
main ()
{
/* escribir varios números en coma flotante */
float i = 2.0, j = 3.0;
printf("%f %f %f %f", i, j, i+j, sqrt(i+j));
getch();
}

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
LAS FUNCIONES gets y puts
• Facilitan la transferencia de cadenas de caracteres entre la
computadora y los dispositivos de entrada/salida estándar.

• Cada una de estas funciones aceptan un solo argumento. El


argumento debe ser un dato que represente una cadena de
caracteres (un arrays de caracteres). La cadena de caracteres
puede incluir caracteres de espaciado. En el caso de gets, la
cadena se introducirá por el teclado y terminará con un
carácter de nueva línea (por ejemplo la cadena terminará
cuando el usuario pulse la tecla enter).

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
LAS FUNCIONES gets y puts
• Las funciones gets y puts ofrecen alternativas sencillas al
uso de scanf y printf para la lectura y escritura de cadenas
de caracteres.

• Ejemplo
#include <stdio.h>
main () /* leer y escribir una línea de texto */
{
char linea [80] ;
gets(linea);
puts(linea);
getch();
}
Docente: Ing. Carolina Robelo
carolina.robelo@ulsa.edu.ni
Ejercicios Basicos I
• Realizar un programa que solicite a un alumno su nombre, y el
resultado de sus notas del 1er y 2do parcial de la clase de
Introduccion a la Programacion, calcular el promedio, y mostrar
en pantalla los datos del alumno (nombre, notas, promedio).

• Realizar un programa que nos calcule la distancia recorrida por un


automóvil con velocidad uniforme durante un tiempo
determinado.

• Realizar un programa que pregunte nombre, año de nacimiento y


dé como resultado :
Hola nombre, en el año 2030 cumplirás n años.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Ejercicios Basicos II
• Escriba un programa que lea dos números y aplique sobre
ellos todos los operadores aritméticos (incluyendo el pre y
post incremento y decremento.

• Escriba un programa que visualice el resultado de la


expresión:

para valores de a=1, b=5 y c=2

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Ejercicios Basicos III
• Un programa en C contiene las siguientes instrucciones:
#include <stdio.h>
char a, b, c;
– Escribir las instrucciones getchar oportunas que permitan
introducir los valores de a, b y c en la computadora.
– Escribir las instrucciones putchar que se ocupen de visualizar
los valores presentes de a, b y c.

• Resolver el Problema anterior utilizando sólo una función scanf y


una printf en lugar de las instrucciones getchar y putchar.

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Actividad en Clase
• Escribir un programa que imprima la letra B con asteriscos.

• Escribir y ejecutar un programa que imprima su nombre y carrera (constantes


definas con define).
• Mostrar en pantalla la siguiente información con este formato:
Universidad La Salle
Ingenierias: Cibernetica Mecanica
Mecatronica Industrial

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni
Actividad en Clase
• Realiza un programa con declaración global de variables, que visualice
tu nombre y numero de carnet.

• Realizar un programa que nos calcule la distancia recorrido por un


móvil con velocidad uniforme durante un tiempo determinado.
Considerar v=30km/h y t=5.
v=d/t.

• Declare 2 variables radio y altura de un recipiente cilindrico, asígneles


un valor inicial, y luego determine el volumen en centímetros cúbicos
que puede almacenar dicho recipiente. Pi declararla como una
constante con const.
V=pi*r^2*h

Docente: Ing. Carolina Robelo


carolina.robelo@ulsa.edu.ni

También podría gustarte