You are on page 1of 104

Programacin

Clase 20. Estructuras y Arreglos


Prof. Gonzalo Mller
gmullerb@mail.com

Facultad de Ingeniera Universidad Central de Venezuela

Clase Anterior
Datos Agrupados de Diferentes Tipos Estructura UML Estructura en C++: 1 Se debe definir la estructura: struct
Nombre de la estructura. Tipos de variables contenidas. Nombres de las variables contenidas.

Antes de las declaraciones de mdulos y de variables

2 Declarar una variable de tipo estructura.


Programacin Prof. Gonzalo Mller Clase 20 GM - 2

Clase Anterior
Manejo de una variable estructura: Campos de una estructura. Operador miembro . . Asignacin de una variable estructura. Mdulos con estructuras: Estructura como parmetro. Estructura como retorno.

Programacin Prof. Gonzalo Mller Clase 20 GM - 3

Clase Anterior
Datos Agrupados del mismo tipo Arreglos Arreglo unidimensional: vectores. Nombre. Tipo. Tamao. Arreglos en C: Declaracin: tipo nombre[TAMAO] Manejo: nombre[ndice]
ndice [0, TAMAO)
Programacin Prof. Gonzalo Mller Clase 20 GM - 4

Clase Anterior
Arreglo bidimensionales: matrices. Declaracin: tipo identificador[FILAS] [COLUMNAS] Manejo:
identificador[fila] [columna] 1 Bucle permitir desplazarse de una fila a otra. 2 Bucle permitir desplazarse de una columna a otra.

Matrices como parmetros: 3 parmetros.


Mismo Tamao.
Programacin Prof. Gonzalo Mller Clase 20 GM - 5

Programacin Prof. Gonzalo Mller Clase 20 GM - 6

Estructuras con Estructuras


Los campos de una estructura tambin pueden ser estructuras.
struct ESTRUCTURA1 { }; struct ESTRUCTURA2 { ESTRUCTURA1 campo1; };

campo estructura dentro de una estructura

Programacin Prof. Gonzalo Mller Clase 20 GM - 7

Estructuras con Estructuras


Ejemplo:
struct PARTICULA { char letra; unsigned char posicionX; }; struct JUEGO { PARTICULA jugador; PARTICULA enemigo; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 8

Estructura Estructura

unsigned short tiempoMax;

Estructuras con Estructuras


Las estructuras pueden ser representadas grficamente utilizando UML (Unified Modeling Language):
NOMBRE dato 1: tipo dato 2: tipo dato 3: ESTRUCTURA dato N: tipo

Programacin Prof. Gonzalo Mller Clase 20 GM - 9

Estructuras con Estructuras


Ejemplo: Definir los UMLs de el ejemplo anterior:
PARTICULA letra: carcter posicionX: entero sin signo 1 byte

JUEGO jugador: PARTICULA enemigo: PARTICULA tiempoMax: entero sin signo 2 byte

Programacin Prof. Gonzalo Mller Clase 20 GM - 10

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo
Operador Miembro

Programacin Prof. Gonzalo Mller Clase 20 GM - 11

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo
estructura

Programacin Prof. Gonzalo Mller Clase 20 GM - 12

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo
estructura campo de esta estructura

Programacin Prof. Gonzalo Mller Clase 20 GM - 13

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo Ejemplo:
JUEGO juego1; ... juego1.jugador.letra = G; ... juego1.enemigo.posicionX = x;
Programacin Prof. Gonzalo Mller Clase 20 GM - 14

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo Ejemplo:
JUEGO juego1; ... juego1.jugador.letra = G; ... juego1.enemigo.posicionX = x;
Programacin Prof. Gonzalo Mller Clase 20 GM - 15

Estructuras con Estructuras


Manejo de la estructura de una estructura: variable.campo.campo Ejemplo:
JUEGO juego1; ... juego1.jugador.letra = G; ... juego1.enemigo.posicionX = x;
Programacin Prof. Gonzalo Mller Clase 20 GM - 16

Estructuras con Estructuras


Asignacin de la estructura de una estructura Ejemplo:
JUEGO juego1; PARTICULA part1; ... juego1.jugador.letra = G; ... juego1.enemigo.posicionX = x; ... juego1.enemigo = part1; Son PARTICULA
Programacin Prof. Gonzalo Mller Clase 20 GM - 17

PARTICULA campo de PARTICULA

Estructuras con Estructuras


Ejemplo: Disear y construir un programa modular en con estructuras C++ para leer los datos de una recta, definida por una pendiente, un punto de corte y N Identificador, y los presente en la salida.

Fase 1: Diseo y Anlisis: DES, DTD, UML y TM. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 18

Parte 1

Estructuras con Estructuras


Ejemplo: Disear y construir un programa modular en con estructuras C++ para leer un triangulo definido por 3 rectas y un N de Identificador, y lo presente en la salida.

Fase 1: Diseo y Anlisis: DES, DTD, UML y TM. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 19

Parte 2

Estructuras Anidadas
Es posible tener como campo de una estructura otra estructura y as sucesivamente. Las estructuras a anidar debe estar definidas previamente.
struct NOMBRE1 { tipo campo1; tipo campo2; }; }; struct NOMBRE2 { NOMBRE1 campo1; tipo campo2; }; struct NOMBRE3 { NOMBRE2 campo1; tipo campo2;

Programacin Prof. Gonzalo Mller Clase 20 GM - 20

Estructuras Anidadas
Es posible tener como campo de una estructura otra estructura y as sucesivamente. Las estructuras a anidar debe estar definidas previamente.
struct NOMBRE1 { tipo campo1; tipo campo2; }; }; struct NOMBRE2 { NOMBRE1 campo1; tipo campo2; }; struct NOMBRE3 { NOMBRE2 campo1; tipo campo2;

NOMBRE3 contiene campo NOMBRE2


Programacin Prof. Gonzalo Mller Clase 20 GM - 21

Estructuras Anidadas
Es posible tener como campo de una estructura otra estructura y as sucesivamente. Las estructuras a anidar debe estar definidas previamente.
struct NOMBRE1 { tipo campo1; tipo campo2; }; }; struct NOMBRE2 { NOMBRE1 campo1; tipo campo2; }; struct NOMBRE3 { NOMBRE2 campo1; tipo campo2;

NOMBRE3 contiene campo NOMBRE2 contiene campo NOMBRE1


Programacin Prof. Gonzalo Mller Clase 20 GM - 22

Ejercicio
Construir un programa modular con estructuras en C++ para: Leer un punto en R2 en coordenadas cartesianas(x, y) y su N identificador, y escribir en la salida toda su informacin. Fase 1: Diseo y Anlisis: DES, DTD, UML y TM. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Estructura anidadas
Programacin Prof. Gonzalo Mller Clase 20 GM - 23

Ejercicio
Construir un programa modular con estructuras en C++ para: Leer un triangulo definido por un peso y 3 puntos identificados y en coordenadas cartesianas, y escribir en la salida toda su informacin. Fase 1: Diseo y Anlisis: DES, DTD, UML y TM. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Estructura anidadas
Programacin Prof. Gonzalo Mller Clase 20 GM - 24

Programacin Prof. Gonzalo Mller Clase 20 GM - 25

Arreglos de Estructuras
Que sucede si se necesita trabajar con un conjunto de estructuras utilizando slo 1 variable.

Curso

Programacin Prof. Gonzalo Mller Clase 20 GM - 26

Arreglos de Estructuras
Que sucede si se necesita trabajar con un conjunto de estructuras utilizando slo 1 variable.
Nombre Gnero Edad Promedio Nombre U. Crditos Eficiencia Notas U. Crditos Eficiencia Notas


Curso

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre

U. Crditos Eficiencia Notas

U. Crditos Eficiencia Notas

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre Gnero Edad Promedio

U. Crditos Eficiencia Notas

U. Crditos Eficiencia Notas

Programacin Prof. Gonzalo Mller Clase 20 GM - 27

Arreglos de Estructuras
Que sucede si se necesita trabajar con un conjunto de estructuras utilizando slo 1 variable.
Nombre Gnero Edad Promedio Nombre U. Crditos Eficiencia Notas U. Crditos Eficiencia Notas


Curso

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre

U. Crditos Eficiencia Notas

U. Crditos Eficiencia Notas

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre Gnero Edad Promedio

U. Crditos Eficiencia Notas

U. Crditos Eficiencia Notas

Programacin Prof. Gonzalo Mller Clase 20 GM - 28

Arreglos de Estructuras
Que sucede si se necesita trabajar con un conjunto de estructuras utilizando slo 1 variable.
Nombre Gnero Edad Promedio Nombre U. Crditos Eficiencia Notas U. Crditos Eficiencia Notas


Curso

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre

U. Crditos Eficiencia Notas

Slo 1 Variable

U. Crditos Eficiencia Notas

Gnero Edad Promedio Nombre Gnero Edad Promedio Nombre Gnero Edad Promedio

U. Crditos Eficiencia Notas

U. Crditos Eficiencia Notas

Programacin Prof. Gonzalo Mller Clase 20 GM - 29

Arreglos de Estructuras
Declaracin: ESTRUCTURA nombre[TAMAO] Ejemplo:
// Arreglo de 50 estudiantes ESTUDIANTE alumnos[50];

Programacin Prof. Gonzalo Mller Clase 20 GM - 30

Arreglos de Estructuras
Manejo: variable[ndice].campo Ejemplo:
ESTUDIANTE alumnos[50]; ... scanf(%f, &alumnos[j].promedio); printf(%u, alumnos[j].edad);

Programacin Prof. Gonzalo Mller Clase 20 GM - 31

Arreglos de Estructuras
Manejo: variable[ndice].campo
arreglo

Ejemplo:
ESTUDIANTE alumnos[50]; ... scanf(%f, &alumnos[j].promedio); printf(%u, alumnos[j].edad);

Programacin Prof. Gonzalo Mller Clase 20 GM - 32

Arreglos de Estructuras
Manejo: variable[ndice].campo
estructura

Ejemplo:
ESTUDIANTE alumnos[50]; ... scanf(%f, &alumnos[j].promedio); printf(%u, alumnos[j].edad);

Programacin Prof. Gonzalo Mller Clase 20 GM - 33

Arreglos de Estructuras
Manejo: variable[ndice].campo
estructura campo de esta estructura

Ejemplo:
ESTUDIANTE alumnos[50]; ... scanf(%f, &alumnos[j].promedio); printf(%u, alumnos[j].edad);

Programacin Prof. Gonzalo Mller Clase 20 GM - 34

Arreglos de Estructuras
Ejemplo: Disear y construir un programa modular con estructuras en C++ para leer N rectas definidas por una pendiente, un punto de corte y N Identificador y las escriba en la salida.

Fase 1: Diseo y Anlisis: DES, DTD, UML y TM. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 35

Ejercicio
Construir un programa modular con estructuras en C++ para: Leer N puntos en R2 cada uno identificado y en coordenadas cartesianas(x, y), y escribir en la salida de forma inversa. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 36

Evaluacin: Arreglos

Programacin Prof. Gonzalo Mller Clase 20 GM - 37

Datos Agrupados
Que sucede si se necesita trabajar con un conjunto de datos utilizando slo 1 variable.

Estudiante

Programacin Prof. Gonzalo Mller Clase 20 GM - 38

Datos Agrupados
Que sucede si se necesita trabajar con un conjunto de datos utilizando slo 1 variable.
Nombre Gnero Edad Promedio U. Crditos Eficiencia

Estudiante

Programacin Prof. Gonzalo Mller Clase 20 GM - 39

Datos Agrupados
Que sucede si se necesita trabajar con un conjunto de datos utilizando slo 1 variable.
Nombre Gnero Edad Promedio U. Crditos Eficiencia Notas

Estudiante

Programacin Prof. Gonzalo Mller Clase 20 GM - 40

Datos Agrupados
Que sucede si se necesita trabajar con un conjunto de datos utilizando slo 1 variable.
Nombre Gnero Edad Promedio U. Crditos Eficiencia Notas Arreglo

Estudiante

Programacin Prof. Gonzalo Mller Clase 20 GM - 41

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima.

Programacin Prof. Gonzalo Mller Clase 20 GM - 42

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima. El conjunto de datos ser: genero, edad, promedio, crditos, eficiencia, notas
Programacin Prof. Gonzalo Mller Clase 20 GM - 43

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima. El conjunto de datos ser:
ARREGLO

genero, edad, promedio, crditos, eficiencia, notas


Programacin Prof. Gonzalo Mller Clase 20 GM - 44

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima. El conjunto de datos ser: genero, edad, promedio, crditos, eficiencia, notas
Programacin Prof. Gonzalo Mller Clase 20 GM - 45

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima. El conjunto de datos ser:
entero sin signo 1B

genero, edad, promedio, crditos, eficiencia, notas


Programacin Prof. Gonzalo Mller Clase 20 GM - 46

Estructuras con Arreglos


Un arreglo esta definido: Nombre. Tipo: tipo de variable agrupada. Tamao: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minera de datos se requiere almacenar los datos de estudiantes de forma annima. El conjunto de datos ser:
entero sin signo 1B[30]

genero, edad, promedio, crditos, eficiencia, notas


Programacin Prof. Gonzalo Mller Clase 20 GM - 47

Estructuras con Arreglos


Las estructuras pueden ser representadas grficamente utilizando UML (Unified Modeling Language):
NOMBRE dato 1: tipo dato 2: tipo dato 3: tipo[#] dato N: tipo

arreglo

Programacin Prof. Gonzalo Mller Clase 20 GM - 48

Estructuras con Arreglos


Ejemplo: Definir la estructura para el estudiante del estudio annima: El conjunto de datos ser:
genero, edad, promedio, crditos, eficiencia, notas
entero sin signo[30] ESTUDIANTE genero: carcter edad: entero sin signo 1 byte promedio: real 4 bytes creditos: entero sin signo 1 byte eficiencia: real 4 bytes notas: entero sin signo 1 byte [30]
Programacin Prof. Gonzalo Mller Clase 20 GM - 49

Estructuras con Arreglos


Los miembros de una estructura tambin pueden ser arreglos. Ejemplo:
struct ESTUDIANTE { unsigned char edad; char genero; unsigned char creditos; float promedio; float eficiencia; unsigned short notas[30]; }; Arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 50

Estructuras con Arreglos


Manejo del arreglo de una estructura: variable.campo[ndice] Ejemplo:
ESTUDIANTE estudiante; ... scanf(%hu, &estudiante.notas[k]);

Programacin Prof. Gonzalo Mller Clase 20 GM - 51

Estructuras con Arreglos


Manejo del arreglo de una estructura: variable.campo[ndice]
estructura

Ejemplo:
ESTUDIANTE estudiante; ... scanf(%hu, &estudiante.notas[k]);

Programacin Prof. Gonzalo Mller Clase 20 GM - 52

Estructuras con Arreglos


Manejo del arreglo de una estructura: variable.campo[ndice]
arreglo

Ejemplo:
ESTUDIANTE estudiante; ... scanf(%hu, &estudiante.notas[k]);

Programacin Prof. Gonzalo Mller Clase 20 GM - 53

Estructuras con Arreglos


Manejo del arreglo de una estructura: variable.campo[ndice]
elemento del arreglo

Ejemplo:
ESTUDIANTE estudiante; ... scanf(%hu, &estudiante.notas[k]); elemento del arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 54

Estructuras con Arreglos


Ejemplo: Disear y construir un programa modular con estructuras en C++ que lea los datos de un estudiante (incluyendo notas) y escriba en la salida.

Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 55

Ejercicio
Construir un programa modular con estructuras en C++ para: Dada ecuacin que describe en comportamiento de la temperatura de un fenmeno: T(t) = T0 + T cos (B t + K) y los ts crticos, determinar la temperatura promedio.
Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++. con arreglos Evaluacin: Estructuras
Programacin Prof. Gonzalo Mller Clase 20 GM - 56

Estructuras y Arreglos
Observacin: La estructuras son una herramienta muy poderosa que facilita el desarrollo.
Gracias al operador asignacin y que la estructura es capaz de contener arreglos y estructuras anidadas, es posible realizar la asignacin de un arreglo a otro fcilmente.
Originalmente se necesitara un bucle y un contador para realizar la asignacin de un arreglo a otro.

Programacin Prof. Gonzalo Mller Clase 20 GM - 57

Estructuras y Arreglos
Ejemplo:
struct HUMANO { unsigned char edad; char genero; }; struct CLASE { HUMANO profesor;

Estructura unsigned char notas[80]; Arreglo


unsigned char cantidad; unsigned char seccion; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 58

Estructuras y Arreglos
Ejemplo:
CLASE clase1, clase2; clase2 = clase1;

Asigna profesor, notas[80], cantidad, seccion

Programacin Prof. Gonzalo Mller Clase 20 GM - 59

Estructuras y Arreglos
Ejemplo:
CLASE clase1, clase2; clase2 = clase1;

notas[80]!!!
Asigna profesor, notas[80], cantidad, seccion

Si el arreglo ha sido sobredimensionado excesivamente es posible que realizar la operacin con un bucle sea menos costoso

Programacin Prof. Gonzalo Mller Clase 20 GM - 60

Estructura Arreglo
Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen: Arreglo: Tipo y Tamao. Cantidad.
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 61

Estructura Arreglo
Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen: Arreglo: Tipo y Tamao. Cantidad.
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 62

Estructura Arreglo
Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen: Arreglo: Tipo y Tamao. Cantidad.
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 63

Estructura Arreglo
Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen: Arreglo: Tipo y Tamao. Cantidad.
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 64

Estructura Arreglo
Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen: Arreglo: Tipo y Tamao. Cantidad.
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; }; constante

Programacin Prof. Gonzalo Mller Clase 20 GM - 65

Estructura Arreglo
Ejemplo: Se requiere definir la estructura para un arreglo real de mximo 200 elementos:
struct REAL { float arreglo[200]; unsigned char cantidad; };

Programacin Prof. Gonzalo Mller Clase 20 GM - 66

Estructura Arreglo
Ejemplo:
REAL leerArreglo(); void escribeArreglo(REAL arreglo); REAL a, b; a = leerArreglo(); b = a; escribeArreglo(a); escribeArreglo(b);

Programacin Prof. Gonzalo Mller Clase 20 GM - 67

Estructura Arreglo
Ejemplo: Disear y construir un programa modular con estructuras en C++ que lea un conjunto de N notas y los muestre en la salida en forma inversa a como fueron ingresados.
(Funcin de Lectura Arreglo)

Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 68

Ejercicio
Construir un programa modular con estructuras en C++ para: Leer un conjunto de temperaturas y escribir en la salida el promedio de las temperaturas. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++. (Funcin de Lectura Arreglo)
Evaluacin: Estructura Arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 69

Arreglos de Estructuras
Ejemplo: Utilizando una estructura arreglo:
struct ESTUDIANTES { ESTUDIANTE alumnos[50]; unsigned char cantidad; };

Programacin Prof. Gonzalo Mller Clase 20 GM - 70

Arreglos de Estructuras
Ejemplo: Disear y construir un programa modular con estructuras en C++ que lea los datos de N estudiantes y escriba en la salida.

Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Evaluacin: Estructura Arreglo Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 71

Ejercicio
Construir un programa modular con estructuras en C++ para: b) Leer 1 polgono (N identificador, N de lados, longitud de un lado, apotema) y escribir en la salida toda su informacin. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Estructura Arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 72

Ejercicio
Construir un programa modular con con estructuras en C++ para: b) Leer N polgonos (N identificador, N de lados, longitud de un lado, apotema) y escribir en la salida de forma inversa. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Estructura Arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 73

Estructura Arreglo
Beneficios. Copia de arreglos.
Retorno de arreglos.

Menor cantidad de parmetros en los mdulos.

Programacin Prof. Gonzalo Mller Clase 20 GM - 74

Estructura Arreglo
Ejemplo:
#define MX 50 struct HUMANO { unsigned char edad; char genero; }; struct CLASE { HUMANO profesor; HUMANO alumnos[MX]; unsigned char seccion; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 75

Estructura Arreglo de estructuras

unsigned char cantidadAlumnos;

Estructura Arreglo
Ejemplo:
CLASE clase1, clase2; clase2 = clase1;

Asigna profesor, alumnos[50] (50 estructuras con ucEdad,cSexo), cantidadAlumnos, ucSeccion

Si el arreglo ha sido sobredimensionado excesivamente es posible que realizar la operacin con un bucle sea menos costoso

Programacin Prof. Gonzalo Mller Clase 20 GM - 76

Estructura Arreglo
Para facilitar el manejo de arreglos se puede utilizar una estructura arreglo: struct NOMBRE {
tipo arreglo[FILAS][COLUMNAS]; unsigned tipoentero filas; unsigned tipoentero columnas;

};

Programacin Prof. Gonzalo Mller Clase 20 GM - 77

Estructura Arreglo
Ejemplo: Se requiere definir la estructura para un almacenar una matriz de mximo 100 x 100 elementos reales:
struct MATRIZREAL { float arreglo[100][100]; unsigned char filas; unsigned char columnas; };

Programacin Prof. Gonzalo Mller Clase 20 GM - 78

Estructura Arreglo
Ejemplo: Disear y construir un programa modular en C++ que lea y escriba una matriz de tamao dado por el usuario.

Programacin Prof. Gonzalo Mller Clase 20 GM - 79

Estructura Arreglo
Ejemplo: Disear y construir un programa modular en C++ que lea un conjunto de matrices y escriba a la salida en orden de menor a mayor segn la cantidad de elementos que la conforman.

Programacin Prof. Gonzalo Mller Clase 20 GM - 80

Ejercicio
Disear y construir un programa modular en C++ para: Leer una matriz y mostrar la misma y la transpuesta en 1,1 1,2 1,3 la salida. 2,1 2,2 2,3
3,1 3,2 3,3

Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 81

Evaluacin: Estructura Arreglo

Ejercicio
Disear y construir un programa modular en C++ para: Determinar que elementos de una matriz dada se encuentran por debajo y cuales por encima del promedio de estos. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 82

Evaluacin: Estructura Arreglo

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de N caracteres y mostrar en pantalla en forma inversa a como fueron ingresados. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Estructura Arreglo
Programacin Prof. Gonzalo Mller Clase 20 GM - 83

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de N caracteres y determinar cuantos espacios tiene. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 84

Ejercicio
Disear y construir un programa modular en C++ para: Dado 2 puntos en R2 en coordenadas cartesianas(x, y), determinar la recta que pasa por estos y escribir en la salida toda su informacin (m, b). Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 85

Ejercicio
Disear y construir un programa modular en C++ para: Dado un conjunto de puntos en R2 y un triangulo definido por 3 puntos en coordenadas cartesianas y un N identificador, determinar que puntos pertenecen a las arista del triangulo. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 86

Ejercicio
Disear y construir un programa modular en C++ para: Leer N polgonos (N identificador, N de lados, longitud de un lado, apotema) y escribir en la salida el polgono de ms lados, el de mayor apotema y de mayor rea. A=n*l*a/2 Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 87

Ejercicio
Disear y construir un programa modular en C++ para: Leer la posicin (x, y), el peso y N identificador para N maquinas y presentar en la salida toda la informacin de la menos pesada y la ms cercana al origen Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 88

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de N datos enteros sin signo y escriba a la salida el conjunto de datos ordenados de mayor a menor. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 89

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de N Matrices y ordenar segn su norma Frobenius de mayor a menor. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 90

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de N Matrices y ordenar segn su norma Frobenius de mayor a menor |A| = (ak,j2) Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 91

Ejercicio
Disear y construir un programa modular en C++ para: Leer N polgonos (N identificador, N de lados, longitud de un lado, apotema) y escribir en la salida de forma inversa. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 92

Evaluacin: Arreglos

Ejercicio
Disear y construir un programa modular en C++ para: Leer N polgonos (N identificador, N de lados, longitud de un lado, apotema) y dado un identificador buscar en el conjunto y escribir en la salida sus datos. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 93

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de horas militares, cada una posee identificador y genero, y escribir en la salida toda su informacin. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Evaluacin: Arreglos de Estructuras
Programacin Prof. Gonzalo Mller Clase 20 GM - 94

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de horas militares, cada una identificador y genero, convertir en formato de AM/PM y escribir en la salida toda su informacin (militar y AM/PM). Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 95

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de horas militares, cada una identificador y genero, convertir en formato de AM/PM y dado un identificador buscar en el conjunto y escribir en la salida sus datos. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 96

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de horas militares, cada una identificador y genero, convertir en formato de AM/PM y escribir en la salida el conjunto ordenado de mayor a menor segn su hora. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 97

Evaluacin: Ordenar

Ejercicio
Disear y construir un programa modular en C++ para: Leer un conjunto de horas militares, cada una identificador y genero, convertir en formato de AM/PM y escribir en la salida el conjunto ordenado de menor a mayor segn su hora. Fase 1: Diseo y Anlisis: DES, DTD y UML DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 20 GM - 98

Evaluacin: Ordenar

Ejercicio

Disear y construir un programa modular en C++ para: a) Leer N nmeros e intercambiar el 1 con el 2, 3 con el 4 y as sucesivamente y presente en pantalla el resultado (N debe ser par). b) Leer N nmeros Xk y presentar en pantalla la siguiente sucesin: {|Xk Xk 2|}, k desde N a 3
Programacin Prof. Gonzalo Mller Clase 20 GM - 99

Ejercicio
Disear y construir un programa modular en C++ para: a) Leer un conjunto de N datos enteros sin signo, leer un nmero A y determinar el ndice si se encuentra en el conjunto. b) Leer N vectores de diferentes tamaos y escribir en pantalla en orden inverso. c) Simular un sistema de partculas las cuales puede desplazarse horizontalmente.
Programacin Prof. Gonzalo Mller Clase 20 GM - 100

Resumen
Estructuras con Estructuras. UML: NOMBRE
dato 1: tipo dato 2: tipo dato 3: ESTRUCTURA dato N: tipo

Declaracin:
struct ESTRUCTURA2 { ESTRUCTURA1 campo; };
Programacin Prof. Gonzalo Mller Clase 20 GM - 101

Resumen
Manejo: variable.campo.campo
Asignacin de la estructura de una estructura

Estructuras Anidadas. Arreglos de Estructuras. Declaracin: ESTRUCTURA nombre[TAMAO] Manejo: variable[ndice].campo


Programacin Prof. Gonzalo Mller Clase 20 GM - 102

Resumen
Estructuras con Arreglos. NOMBRE UML:
dato 1: tipo dato 2: tipo dato 3: tipo[#] dato N: tipo

Declaracin:

struct ESTRUCTURA { tipo campo[TAMAO]; };


Programacin Prof. Gonzalo Mller Clase 20 GM - 103

Resumen
Manejo: variable.campo[ndice] Estructura Arreglo:
struct NOMBRE { tipo nombreArreglo[TAMAO]; unsigned tipoentero cantidad; };

Beneficios: Copia de arreglos, Retorno de arreglos.


Programacin Prof. Gonzalo Mller Clase 20 GM - 104