Вы находитесь на странице: 1из 35

Lenguaje de Programacin de Alto Nivel II Sesin N 02: Arreglos y Estructuras

Mgtr. Marcelino Estrada A.

Arreglos y Definiciones
o

Un arreglo se define como una coleccin finita, homognea y ordenada de elementos:

Finita: se debe determinar cual ser el nmero mximo


de elementos que podr formar parte del arreglo

Homognea: Todos los datos del arreglos son del mismo tipo

Ordenada: Se puede determinar cual es el primer, segundo, , y n-esimo elemento.

Arreglos y Definiciones
o

Grficamente

1er dato

2do dato

N-esimo dato

Se puede acceder a cualquier dato que este en este arrego

Arreglos y Definiciones
o

En los arreglos se distinguen:


Componentes: Valores que se almacenan en cada casilla

ndices: Especifica cuantos componentes tendr cada arreglo, lo


que permitir acceder a cada valor en forma individual que se encuentre en el arreglo

Para referenciar a los elementos del arreglo se utiliza:


El nombre del arreglo El ndice del arreglo

Arreglos y Definiciones
Componentes

dato_1

dato_2

dato_3

dato_n-1

Dato_n

n-1

ndices

Nombre del Arreglo (ntese que todos los elementos tienen el mismo nombre C)

ndice (o subndice) del arreglo C

Arreglos y Definiciones
o

Ejemplo 1

A[1]: Hace referencia al elemento de la posicin 1

A[2]: Hace referencia al elemento de la posicin 2


A[3]: Hace referencia al elemento de la posicin 3

A[19]: Hace referencia al elemento de la posicin 19


A[20]: Hace referencia al elemento de la posicin 20

1 2 3

19 20

Ejemplos: int variable1[8]; char nombre_completo[50]; float calificaciones[10]; double cantidades[30];

La inicializacin de un arreglo local, puede realizarse en su declaracin, dando una lista de valores iniciales:
int numeros[8]={2,6,5,-2,3,6,8,9}; Obsrvese que la lista est delimitada por llaves. Otra posibilidad, slo vlida cuando se inicializan todos los elementos del arreglo, es escribir:

int numeros[]={-3,-2,-1,0,1,2,3,4,5,6};
donde, se obvia la declaracin de la cantidad de elementos, ya que est implcita en la lista de valores constantes.

Array como parmetros o valor de retorno


Un array, como cualquier otra referencia puede formar parte de la lista de parmetros o constituir el valor de retorno de un mtodo. En ambos casos se indica que se trata de un array con los corchetes que siguen al tipo.
Por ejemplo: string [ ] metodoConArrays ( int Temperaturas[ ] ) { . . } El mtodo metodoConArrays recibe como parmetro un array de numeros y devuelve un array de Strings. El mtodo podra invocarse de la siguiente forma: int Temperaturas [30]; ... string [ ] resultado = metodoConArrays(Temperaturas);

Ejemplo: Hacer un programa que calcule la nota de un alumno en una prueba 10 preguntas de opciones mltiples ('a',... o, 'e'). Cada pregunta se evala con dos puntos. Debe inicializa un arreglo con las respuestas correctas. El programa debe mostrar el nombre, el arreglo de respuestas correctas y el arreglo de respuestas del alumno y la nota del alumno.

Ejemplo 2: Construya un programa que permita ingresar los arreglos de Nombre, Edades y Tallas en arreglo y que permita hacer lo siguiente // Rpta a) Calcular el promedio de las edades (PromEdad) Calcular el promedio de las tallas (PromTalla) // Rpta b) Calcular el numero de atletas menores de edad y el numero de atletas mayores de edad // Rpta c) Reporte Mostrar los nombres, edades y tallas de los N atletas Mostrar el promedio de las edades y de las tallas Mostrar la cantidad de atletas menores de edad Mostrar la cantidad de atletas mayores de edad. Mostrar los nombres de los atletas mas altos que el promedio.

Ejemplo 03: En una librera se tiene clasificados los libros en 8 grandes reas. Hacer un programa que inicialice los nombres de las reas y permita el ingreso de libros adquiridos de cada una de las reas en el primer semestre del ao. El programa debe calcular y mostrar la cantidad mnima y mxima de libros adquiridos en el primer semestre, e indicar a que reas corresponde. Debe mostrar este reporte: reas Cantidad Libros adquiridos xxxxxxxxxx 99999 xxxxxxxxxx 99999 -----999999

Cantidad Mnima 999 en el rea xxxxx Cantidad Mxima 999 en el rea xxxxx

Estructura (struct)
Una estructura (tambin llamada registro) es un tipo de datos que agrupa varios datos de tipo simple en un solo objeto.

Las estructuras se declaran con la palabra reservada struct.


struct nombre{ campos; }; Cada campo esta formado por la declaracin de una o ms variables de algn otro tipo. Ejemplo: struct persona{ char nombre[30]; int edad; };
Campos nombre (cadena) edad (int) persona

Variables de tipo estructura


Una vez definida la estructura se pueden declarar variables de ese tipo: struct persona{ TAMBIEN struct persona{ char nombre[30]; int edad; } persona1, persona2;

char nombre[30];
int edad; }; persona persona1, persona2; o struct persona persona1, persona2; La asignacin se hace mediante el operador .

strcopy(persona1.nombre,Manuel);
persona1.edad = 23; strcopy(persona2.nombre,Maria); persona2.edad = 17;

Ejemplo

Otros ejemplos
Carta de baraja
numero palo

struct carta { int numero; char palo; };

Libro
titulo autor editorial anyo

struct libro{ char titulo[40]; char autor[30]; char editorial[20]; int anyo; }; struct poligono{ char nombre[20]; int lados; float longitudLado, area; }

Polgono regular
nombre lados longitudLado area

Ejemplo de alumnos
struct alumno{ int matricula; char nombre[20]; char carrera[20]; float promedio; char categoria[20]; };

alumno matricula nombre carrera promedio categoria

Actividad
Defina estructuras para los siguientes datos y escriba un ejemplo de inicializacin de una variable con llaves y campo por campo.

Registro de automviles
CURP marca modelo anyo placa

Cliente de videoclub
nombre direccion telefono adeuda

Documento de Identidad
dni nombres apellidoPaterno direccion apellidoMaterno ubigeo nacionalidad

grupoSanguineo

donaOrganos

Tarjeta de crdito
nombre fechaVencimiento numeroTarjeta saldo limite

Copia de estructuras
El operador = se puede utilizar para asignar todos los campos de una estructura a otra. Ejemplo: struct libro{ char titulo[30], autor[30], editorial[15]; int anyo, edicion; };

main () { libro a = {El Quijote,Cervantes,Limusa,1987,2}, b; b = a;//copia todos los datos de a en b }

ESTRUCTURAS ANIDADAS
Ejemplo de estructuras anidadas struct fecha{ int dia,mes,anyo; }; struct persona{ char nombre[20]; char apellido[20]; fecha nacimiento; int edad; int sexo; char telefono[20]; };

nombre

apellido

nacimiento

edad

sexo

telefono

dia mes anyo

Ejemplo de empleado y estudiante


struct fecha{ int dia,mes,anyo; }; struct direccionStruct{ char calle[30],colonia[20],ciudad[30],estado[15],pais[20]; int numero,cp; }; struct nombreStruct{ char nombre[20],apellidos[20]; };

struct nomdir{ nombreStruct nom; direccionStruct dir; };

Cont.
struct posicion{ char depto[5]; char trabajo[20]; }; struct empleado{ nomdir nombreDireccion; posicion trabajo; float salario; int numDepto; fecha fechaIngreso; }; struct estudiante{ nomdir nombreDireccion; char carrera[20]; float promedio; int creditos; };

Grfico de las estructuras


fecha dia mes anyo

direccionStruct calle colonia ciudad estado pais num cp

nombreStruct nombre apellidos

nomdir nom nombre apellidos calle colonia ciudad dir estado pais num cp

posicion depto trabajo

empleado nombredireccion nom


nombre apellidos calle colonia

trabajo depto trabajo


estado pais num cp

salario numDepto fechaIngreso dia mes anyo

dir
ciudad

estudiante nombredireccion nom


nombre apellidos calle colonia

carrera

promedio

creditos

dir
ciudad estado pais num cp

Arreglos de estructuras
Un arreglo de estructuras contiene elementos que son estructuras.

Ell siguiente ejemplo es un arreglo unidimensional de 50 elementos de tipo alumno.

struct estudiante{ nomdir nombreDireccion; char carrera[20]; float promedio; int creditos; }; main(){ estudiante est[50]; ...

EJEMPLO

Ejercicio
Construya un estructura que administre la informacin de N trabajadores de una empresa como: codigo, nombres, tipo (contratado o estable), turno (Maana, Tarde o Noche) y sueldo. Considere un mtodo adicional para mostrar el siguiente resumen de los datos de los empleados: Cantidad de empleados contratados. Cantidad de empleados estables. Sumatorio de todos los sueldos. El mayor sueldo

Вам также может понравиться