El documento explica los arreglos unidimensionales, que son una serie de datos del mismo tipo almacenados en una estructura donde cada dato se identifica por su índice. Los arreglos deben declararse indicando el tipo de datos, nombre y número de elementos. Los datos se pueden ingresar y visualizar accediendo a cada elemento a través de su índice. Los ciclos for son útiles para recorrer arreglos de forma repetitiva.
El documento explica los arreglos unidimensionales, que son una serie de datos del mismo tipo almacenados en una estructura donde cada dato se identifica por su índice. Los arreglos deben declararse indicando el tipo de datos, nombre y número de elementos. Los datos se pueden ingresar y visualizar accediendo a cada elemento a través de su índice. Los ciclos for son útiles para recorrer arreglos de forma repetitiva.
El documento explica los arreglos unidimensionales, que son una serie de datos del mismo tipo almacenados en una estructura donde cada dato se identifica por su índice. Los arreglos deben declararse indicando el tipo de datos, nombre y número de elementos. Los datos se pueden ingresar y visualizar accediendo a cada elemento a través de su índice. Los ciclos for son útiles para recorrer arreglos de forma repetitiva.
Arreglos ARREGLOS UNIDIMENSIONALES Introduccin Hasta ahora hemos hecho ejemplos de calcular promedios, pedir calificaciones etc. Pero en ninguno de ellos podemos almacenar los datos para consultarlos despus. Esto se debe a que la informacin con la que hemos estado trabajando no queda almacenada en ningn lado. Una forma de guardar informacin en forma temporal son los ARREGLOS (arrays vectores, matrices) La informacin temporal es aquella que existe mientras el programa se esta ejecutando. Cuando se deja de ejecutar el programa se pierde la informacin. Pero Qu es un arreglo?
Definicin Un arreglo es una serie de datos del mismo tipo (int,char, float ) en donde cada dato es llamado elemento del arreglo.
Caractersticas de los arreglos Un arreglo debe de tener un nombre, se debe de especificar el tipo de datos que se van a almacenar y se debe de indicar la cantidad de elementos que va a tener un arreglo. Veamos el ejemplo: Necesito un arreglo para guardar 5 calificaciones Mi arreglo se va a llamar calificaciones Va a guardar nmeros enteros
Declaracin de un arreglo Como cualquier variable, un arreglo SIEMPRE se tiene que declarar. Un arreglo solo puede guardar datos del mismo tipo. Un arreglo no tiene cantidad mxima de elementos.
Sintaxis para declarar arreglos
tipo DeDatos nombreArreglo [ numeroDeElementos];
En donde:
tipoDeDatos = tipo de datos que deseo almacenar ( int, float) nombreArreglo = Apodo con el que vamos a conocer el arreglo en el programa numeroDeElementos= total de datos que deseamos guardar.
Ejemplo: int calificaciones[5]; El arreglo tiene un nombre: calificaciones El arreglo tiene un tipo : int ( enteros) El arreglo va a guardar 5 elementos. Ejemplos: float salarios[40]; float temperatura[31];
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 2 Arreglos
Subndice de un arreglo Cuando declaramos un arreglo la computadora prepara el espacio en memoria para guardar los datos. Ejemplo: int edades[5];
Si pudiramos ver en la computadora sera algo parecido a lo siguiente
edades
La computadora no puede identificar cada elemento del arreglo, por lo tanto a cada casilla le pone un nmero (ndice) para identificarlo.
Este ndice empieza desde el cero.
Es decir, el ndice inicial es 0
Ejemplos: int calif[3]; los ndices son 0,1,2 float peso[8]; los ndices son 0,1,2,3,4,5,6,7 int nmeros[6]; los ndices son 0,1,2,3,4,5
Inicializacin de un arreglo Para registrar datos en un arreglo se puede hacer de diferentes formas.
a) Dando valores a cada elemento Precios[0]=10; Precios[1] = 20; Precios[2] = 30; Lo anterior creo un arreglo que se llama Precio de 3 elementos Los ndices del arreglo son 0,1,2
b) Asignando valores en la declaracin int Precios[3] ={10,20,30}; Lo anterior creo un arreglo que se llama Precio de 3 elementos Los ndices del arreglo son 0,1,2
int nmeros[]={1,2,3,4,5}; Lo anterior creo un arreglo que se llama nmeros de 5 elementos Los ndices del arreglo son 0,1,2,3,4
0 1 2 3 4
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 3 Arreglos NOTA: Los arreglos de tipo char se comportan diferente. Cada letra corresponde a un elemento del arreglo. char nombre[4] = {L,U,I,S}; char datos[]={Luis};
c) Asignando valores a variables int enero=31,feb=28,mar=31,abr=30,may=31; int meses={ene,feb,mar,abr,may,jun};
meses
Como ingresar los datos que da el usuario en un arreglo
Para mostrar y pedir informacin se usa el printf y el scanf. La nica diferencia es que cuando se ingresa un dato para el arreglo se deben de colocar los corchetes y el ndice en el que se va a guardar el dato
Sintaxis Para arreglos que guardan enteros scanf(%d,&NombreDelArreglo[posicin]);
Para arreglos que guardan datos con punto decimal (float) scanf(%f,&NombreDelArreglo[posicin]);
Para arreglos que guardan datos de tipo letras scanf(%s,&NombreDelArreglo); NOTA: No es necesaria la posicin porque cada letra la considera un elemento del arreglo.
Ejemplos.
printf(Escriba la edad de la posicin 2); scanf(%d,&edades[2]);
printf( Ingrese el dato de la posicin 1 ); scanf(%d,&dato[1]);
0 1 2 3 4 5 31 28 31 30 3130
0 1 2 3 L U I S
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 4 Arreglos
printf(Escriba la temperatura de la posicin 5); scanf(%f,&temperatura[5]);
printf(Escriba el nombre de la persona); scanf(%s,&nombre); NOTA: para los char no se da la posicin, cada letra se guarda como un elemento diferente.
Ejemplos 1.-Escribir un programa que pida 3 edades
#include<stdio.h> #include<conio.h> main() { int edades[3]; printf("Escribe la edad de la posicion 0 "); scanf("%d",&edades[0]); printf("Escribe la edad de la posicion 1 "); scanf("%d",&edades[1]); printf("Escribe la edad de la posicion 2 "); scanf("%d",&edades[2]); getch();
}
2.- Escribir un programa que asigne 2 calificaciones en un arreglo. #include<stdio.h> #include<conio.h> main() { int calif[2]; printf("Escribe la calificacion de la posicion 0 "); scanf("%d",&calif[0]); printf("Escribe la calificacion de la posicion 1 "); scanf("%d",&calif[1]); getch();
}
3.- Escribir un programa que pida 6 temperaturas #include<stdio.h> #include<conio.h> main()
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 5 Arreglos { float temperatura[6]; printf("Escribe la temperatura de la posicion 0 "); scanf("%f",&temperatura[0]); printf("Escribe la temperatura de la posicion 1 "); scanf("%f",&temperatura[1]); printf("Escribe la temperatura de la posicion 2 "); scanf("%f",&temperatura[2]); printf("Escribe la temperatura de la posicion 3 "); scanf("%f",&temperatura[3]); printf("Escribe la temperatura de la posicion 4 "); scanf("%f",&temperatura[4]); printf("Escribe la temperatura de la posicion 5 "); scanf("%f",&temperatura[5]); getch(); } NOTA: Observe como se repiten las mismas instrucciones para pedir los datos del arreglo. En particular en el ejercicio 3 se repite mucho cdigo, lo nico que cambia es la posicin en la que se recibe el dato.
Para evitar tanto cdigo que se repite podemos utilizar la instruccin for.
Arreglos y for, una pareja perfecta
La instruccin for tiene la caracterstica de hacer que una variable cambie de valor cierto nmero de veces. Como pudimos observar en el ejemplo 3 (de las 6 temperaturas), se repiti mucho cdigo y lo nico que cambiaba era el valor de la posicin. La posicin fue de 0 a 5.
Si tuviramos que llenar un arreglo de 50 datos, la posicin de cada elemento debe de cambiar de 0 a 49.
La instruccin for puede encargarse de cambiar el valor de la posicin y as escribir menos cdigo.
Imagine que necesitamos llenar un arreglo de 3 elementos. La posicin va de 0 a 2. En un for quedara de la siguiente forma
for (j=0;j<3;j++) { printf(Escribe el elemento de la posicin %d,j);
Imagine que necesitamos llenar un arreglo de 45 calificaciones de un grupo La posicin de cada elemento va de 0 a 44 En un for quedara de la siguiente forma for (j=0;j<45;j++) { printf(Escribe la calificacin de de la posicin %d,j); scanf(%f,&calif[j]); }
Ejercicios de arreglos con for
Resolver los ejercicios anteriores pero utilizando el for
1.-Escribir un programa que pida 3 edades
#include<stdio.h> #include<conio.h> main() { int edades[3]; int j; for ( j=0 ; j < 3 ; j++) { printf("Escribe la edad de la posicin %d ",j); scanf("%d",&edades[j]); } getch(); }
2.- Escribir un programa que asigne 2 calificaciones en un arreglo. #include<stdio.h> #include<conio.h> main() { int calif[2]; int m;
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 7 Arreglos for (m=0 ; m<2 ; m++) { printf("Escribe la calificacin de la posicin %d ",m); scanf("%d",&calif[m]); } getch();
}
3.- Escribir un programa que pida 6 temperaturas
#include<stdio.h> #include<conio.h> main() { float temperatura[6]; int k ; for (k=0 ; k <6 ; k++ ) { printf("Escribe la temperatura de la posicin %d ",k); scanf("%f",&temperatura[k]); } getch(); }
Visualizar datos del arreglo en pantalla
Ya sabemos como llenar los datos de un arreglo de verdad los datos se almacenaron? Para verificar que los datos se almacenaron aprenderemos a visualizarlos en pantalla. Lo que necesitamos es mostrar cada elemento del arreglo haciendo referencia a su ndice. Recordemos que la instruccin que se usa para mostrar informacin en pantalla es printf.
printf( El dato de la posicin 1 es %d,NombreArreglo[posicin]);
Por ejemplo: Si quisiramos ver las 3 edades que almacenamos en el arreglo edades, debemos de hacer lo siguiente:
printf( La edad de la posicin 0 es %d, edades[0]); printf(La edad de la posicin 1 es %d, edades [1]); printf(La edad de la posicin 2 es %d, edades[2]);
Si quisiramos ver las 2 calificaciones que almacenamos en el arreglo calig, debemos de hacer lo siguiente:
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 8 Arreglos
printf( La calificacin de la posicin 0 es %d,calif[0]); printf( La calificacin de la posicin 1 es %d,calif[1]); printf( La calificacin de la posicin 2 es %d,calif[2]);
Si quisiramos ver las 6 temperaturas que almacenamos en el arreglo temperatura, debemos e hacer lo siguiente: printf( La temperatura de la posicin 0 es %f, temperatura[0]); printf( La temperatura de la posicin 1 es %f, temperatura [1]); printf( La temperatura de la posicin 2 es %f, temperatura [2]); printf( La temperatura de la posicin 3 es %f, temperatura [3]); printf( La temperatura de la posicin 4 es %f, temperatura [4]); printf( La temperatura de la posicin es %f, temperatura [5]);
NOTA: En todos los casos, para poder mostrar los datos almacenados, primero debimos de haber llenado los arreglos.
Ejemplos
Hacer los 3 ejercicios anteriores, llenando los arreglos con for y despus mostrando en pantalla los datos almacenados
1.-Escribir un programa que pida 3 edades y despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { int edades[3]; int j; // For para llenar el arreglo for ( j=0 ; j < 3 ; j++) { printf("Escribe la edad de la posicin %d ",j); scanf("%d",&edades[j]); } // Instrucciones para mostrar los datos que se almacenaron printf( La edad de la posicin 0 es %d, edades[0]); printf(La edad de la posicin 1 es %d, edades [1]); printf(La edad de la posicin 2 es %d, edades[2]); getch();
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 9 Arreglos }
2.- Escribir un programa que asigne 2 calificaciones en un arreglo y despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { int calif[2]; int m; // for para llenar el arreglo for (m=0 ; m<2 ; m++) { printf("Escribe la calificacin de la posicin %d ",m); scanf("%d",&calif[m]); } // Instrucciones para mostrar las calificaciones almacenadas printf( La calificacin de la posicin 0 es %d,calif[0]); printf( La calificacin de la posicin 1 es %d,calif[1]); printf( La calificacin de la posicin 2 es %d,calif[2]); getch();
}
3.- Escribir un programa que pida 6 temperaturas y despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { float temperatura[6]; int k ; // for para llenar el arreglo for (k=0 ; k <6 ; k++ ) { printf("Escribe la temperatura de la posicin %d ",k); scanf("%f",&temperatura[k]); } // Instrucciones para mostrar las temperaturas almacenadas printf( La temperatura de la posicin 0 es %f, temperatura[0]); printf( La temperatura de la posicin 1 es %f, temperatura [1]);
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 10 Arreglos printf( La temperatura de la posicin 2 es %f, temperatura [2]); printf( La temperatura de la posicin 3 es %f, temperatura [3]); printf( La temperatura de la posicin 4 es %f, temperatura [4]); printf( La temperatura de la posicin 5 es %f, temperatura [5]); getch();
}
NOTA
Como se puede observar, ahora se repiten las instrucciones en donde se muestra la informacin que esta almacenada en el arreglo, podemos hacer ms sencillo el programa usando la instruccin for para llenar y la instruccin for para mostrar.
1.-Escribir un programa que pida 3 edades y despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { int edades[3]; int j; // For para llenar el arreglo for ( j=0 ; j < 3 ; j++) { printf("Escribe la edad de la posicin %d ",j); scanf("%d",&edades[j]); } // For mostrar los datos que se almacenaron for( j =0 ; j < 3 ; j++) { printf( La edad de la posicin %d es %d \n, j , edades[j]); } getch();
}
2.- Escribir un programa que asigne 2 calificaciones en un arreglo y
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 11 Arreglos despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { int calif[2]; int m; // for para llenar el arreglo for (m=0 ; m<2 ; m++) { printf("Escribe la calificacin de la posicin %d ",m); scanf("%d",&calif[m]); } //for para mostrar los datos almacenados for( m = 0 ; m < 2 ; m++) { printf( La calificacin de la posicin %d es %d \n,m, calif[m]); } getch();
}
3.- Escribir un programa que pida 6 temperaturas y despus las muestre en pantalla
#include<stdio.h> #include<conio.h> main() { float temperatura[6]; int k ; int p; // for para llenar el arreglo for (k=0 ; k <6 ; k++ ) { printf("Escribe la temperatura de la posicin %d ",k); scanf("%f",&temperatura[k]); } // for para mostrar los datos almacenados for( p=0 ; p<6 ; p++ ) {
Autor: M.T.I. Mnica C. Fuentes Gonzlez Pgina 12 Arreglos printf( La temperatura de la posicin %d es %f \n, p,temperatura[p]); }
getch(); }
NOTA
Observe como para llenar el arreglo en el primer for se uso la variable k. Y en el segundo for para mostrar los datos almacenados se uso la variable p, eso quiere decir que no importa la variable que use, siempre y cuando la declare antes de usarla, y controle el valor inicial y el valor final adentro del for.
Si en mi for la letra que controla el ciclo es p, todo lo que va adentro de ese for va con p.
Si en mi for la letra que controla el ciclo es k, TODO lo que va a dentro de ese for va con k.