Publicado el 26 de Junio del 2018
528 visualizaciones desde el 26 de Junio del 2018
206,5 KB
16 paginas
Creado hace 8a (01/05/2016)
Lenguaje C
Estructuración
de
Datos:
Arreglos
Funciones
de
Entrada
y
de
Salida
Segundo Cuatrimestre 2016
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica)
1
Lenguaje “C”
FCFMyN - UNSL
Objetos de Datos Estructurados: ARREGLOS
Un arreglo es un conjunto de posiciones de memoria
consecutivas usados para almacenar datos todos del
mismo tipo.
Donde
4 Todos los elementos del arreglo son del mismo tipo
primitivo por lo tanto es una estructura homogénea.
4Es una estructura estática, es decir su tamaño
(cantidad y tipo de elementos del arreglo) se define en
tiempo de compilación a partir de la declaración y no
cambia durante la ejecución del programa. (Es posible definir
arreglos cuya dimensión se modifique en tiempos de ejecución
(estructuras dinámicas) pero este concepto no será abordado en este
curso) .
4Es una estructura lineal de acceso directo, es decir
se accede a un dato en forma directa con sólo indicar la
posición o subíndice. El número que indica la posición
(subíndice) es un número natural.
4El número de elementos o dimensión, se define con la
declaración junto con el límite mínimo y límite máximo o
rango.
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
2
FCFMyN - UNSL
Arreglos en Lenguaje C
Elemento
VENTA
120
1
578
2
625
3
1230
100
99
Dimensión = Cantidad total de elementos
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
3
Lenguaje de diseño
VENTA
120
1
FCFMyN - UNSL
578
2
625
3
1230
100
99
Declaración:
Lenguaje “C”
VENTA
120
0
VENTA: arreglo[1..100] de real
Los subíndices siempre comienzan en ‘0’,
por lo que el último elemento se encontrará
en la posición ‘n-1’
578
1
1230
99
625
2
98
Declaración:
float venta[100]
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
4
Formalmente:
FCFMyN - UNSL
<tipo> <nombre del arreglo>[<dimension>]
Ejemplos:
a)
int numeros[3]; /* arreglo de 3 enteros */
float montos[5]; /* arreglo de 5 flotantes */
char letras[10]; /* arreglo de 10 caracteres */
b)
#include <stdio.h>
int main() {
float data[5];
float total;
float average;
data[0] = 34.0;
data[1] = 27.0;
data[2] = 45.0;
data[3] = 82.0;
data[4] = 22.0;
total = data[0]+data[1]+data[2]+data[3]+data[4];
average = total / 5.0;
printf(“Total %f Average %f\n”, total, average);
return(0);
}
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
5
FCFMyN - UNSL
String: secuencia de
caracteres que conforman
un texto.
Cómo los imprimo?
c)
int main() {
char palabra[4];
palabra[0] = ‘c’;
palabra[1] = ‘a’;
palabra[2] = ‘s’;
palabra[3] = ‘a’;
return(0);
}
for (i=0; i <=3; i++) {
printf(“%c”, palabra[i]);
}
printf(“%s”, palabra);
Indica que el texto a
mostrar es un string
(arreglo de caracteres).
Solamente se coloca el
nombre de la estructura
arreglo.
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
6
FCFMyN - UNSL
Inconveniente:
4 no siempre el arreglo de caracteres estará lleno.
int main() {
char palabra[10];
palabra[0] = ‘c’;
palabra[1] = ‘a’;
palabra[2] = ‘s’;
palabra[3] = ‘a’;
printf(“%s”, palabra);
return(0);
}
Un arreglo de caracteres es mostrado hasta
el final o hasta encontrar un marcador de
finalización (\0).
Qué muestra?
- solo “casa”?
- todo el arreglo?
int main() {
char palabra[10];
palabra[0] = ‘c’;
palabra[1] = ‘a’;
palabra[2] = ‘s’;
palabra[3] = ‘a’;
palabra[4] = ‘\0’;
printf(“%s”, palabra);
return(0);
}
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
7
Lenguaje “C” - Ingreso de Información
Función getchar()
FCFMyN - UNSL
El ingreso de información en “C” se realiza de una
manera muy simple: carácter a carácter, a través de una
función denominada getchar.
Sintáxis
getchar()
Retorna el valor ASCII del carácter
(tecla) que se ingresó desde teclado.
Uso
int c;
c = getchar(); /* en “c ” se encuentra el
valor ASCII de la tecla
apretada */
Tecla apretada
4 “a”
4 “F”
4 “3”
4 “)”
Contenido de “c”
97
70
51
41
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
8
FCFMyN - UNSL
stdio.h, que significa "standard input-
output header" (cabecera estandar E/S),
es la biblioteca estándar del lenguaje C.
El archivo de cabecera contiene las
definiciones de macros, las constantes,
las declaraciones de funciones y la
definición de tipos usados por varias
operaciones estándar de entrada y salida
Lenguaje “C” - Ingreso de Información
Función getchar()
Ejemplo
#include <stdio.h>
int main() {
int c, i;
i = 1;
while (i != 0) {
c = getchar();
if (c >= 97 && c <= 122){
printf(“Es letra minúscula \n”);
}
if (c >= 48 && c <= 57){
printf(“Es dígito numérico \n”);
}
}
return(0);
}
Inconveniente:
4 Como interpretar información consistente de más de un
carácter (strings, números).
Ejemplos:
- La estrella es brillante
- 324
- 127,98
Int. a la Computación-Int. a la Programación-Fund. de la Informática
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
9
Lenguaje “C” - Ingreso de Información
Función getchar()
Primer Solución:
FCFMyN - UNSL
t1 - Ingresar los caracteres en un arreglo.
t2 - Procesar el arreglo identificando lo que
se desee.
Hasta cuando se leen caracteres?
4 Se necesita una señal de finalización (delimitador) de
ingreso que le indique al programa cuando finalizar t1 y
comenzar con t2.
Carácter asociado
´\n´
Int. a la Computación-Int. a la Programación-Fund. de la Informática
10
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
Tecla
Return ó Enter
#include <stdio.h>
int main() {
int c[100], j;
/* Ingreso los caracteres */
j = 1;
c[j] = getchar();
while (c[j] != ´\n´) {
j = j+1;
c[j] = getchar();
}
/* Debo procesar el arreglo*/
return(0);
}
?
Lenguaje “C” - Ingreso de Información Función scanf()
Segunda Solución
El lenguaje “C” provee una función que realiza esas dos
tareas por nosotros denominada scanf.
OJO!
Sintáxis
scanf(<formato>, &<n_var1>, &<n_var2>, ...)
Formato de
interpretación a dar a
los caracteres
ingresados. Se respeta
la modalidad usada por
printf.
Nombres de variables
donde se almacenarán
los valores
interpretados desde
teclado.
Ejemplos:
a)
int numero;
scanf(“%d”, &numero);
Formato entero a dar
a los caracteres
ingresados.
Variable donde
quedará almacenado
el valor interpretado.
Int. a la Computación-Int. a la Programación-Fund. de la Informática
11
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
Lenguaje “C” - Ingreso de Información
FCFMyN - UNSL
Función scanf()
b)
#include <stdio.h>
int main() {
float data[5];
float total, average;
int i;
for (i =0; i <=4; i++) {
scanf(“%f”, &data[i]);
}
total = data[0]+data[1]+data[2]+data[3]+data[4];
average = total / 5.0;
printf(“Total %f Average %f\n”, total, average);
return(0);
}
Observación:
4 ¿Como se ingresan secuencias de caracteres (strings)
mediante el uso de scanf ?.
Int. a la Computación-Int. a la Programación-Fund. de la Informática
12
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
Lenguaje “C” - Ingreso de Información
FCFMyN - UNSL
Función scanf()
Primer intento:
#include <stdio.h>
int main() {
char letras[5];
int i;
printf(“Ingrese el texto: ”);
for (i =0; i <=4; i++) {
scanf(“%c”, &letras[i]);
}
printf(“\nLo ingresado fue: ”);
for (i =0; i <=4; i++) {
printf(“%c”, letras[i]);
}
return(0);
}
Ingrese el texto: monos
Lo ingresado fue: monos
Int. a la Computación-Int. a la Programación-Fund. de la Informática
13
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
FCFMyN - UNSL
Lenguaje “C” - Ingreso de Información Función scanf()
Segundo intento:
#include <stdio.h>
int main() {
char letras[5];
int i;
printf(“Ingrese el texto: ”);
scanf(“%s”, letras);
printf(“\nLo ingresado fue: ”);
printf(“%s”, letras);
return(0);
}
Pregunta:
4 Que sucedió con el caracter correspondiente al Return que
se apretó como finalización de la secuencia?
Respuesta:
4 Quedó pendiente de ser almacenado en alguna variable.
Por lo tanto será almacenado la próxima vez que se ejecute
scanf.
Sólo se coloca el nombre del arreglo. No
se coloca el símbolo & (ampersand)
Int. a la Computación-Int. a la Programación-Fund. de la Informática
14
(TUR, TUW, TUG, TUM, TUE, Ing. Electrónica) - 2016
FCFMyN - UNSL
Lenguaje “C” - Ingreso de Información Función scanf()
Solución:
Para solucionar este y otros casos se adopta la siguiente
convenció
Comentarios de: Lenguaje C - Estructuración de Datos: Arreglos Funciones de Entrada y de Salida (0)
No hay comentarios