Las estructuras facilitan el manejo de arreglos, ya que se puede definir una estructura que contenga los elementos que lo definen:
Arreglo: Tipo y Tamaño.
Cantidad.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 61
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };
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 Tamaño.
Cantidad.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 62
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };
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 Tamaño.
Cantidad.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 63
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };
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 Tamaño.
Cantidad.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 64
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };
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 Tamaño.
Cantidad.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 65
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };
Estructura Arreglo
Ejemplo: Se requiere definir la estructura para un arreglo real de máximo 200 elementos:
struct REAL
{
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 66
float arreglo[200];
unsigned char cantidad;
Estructura Arreglo
Ejemplo:
REAL leerArreglo();
void escribeArreglo(REAL arreglo); …
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 67
REAL a, b;
a = leerArreglo(); b = a;
escribeArreglo(a); escribeArreglo(b);
Estructura Arreglo
Ejemplo: Diseñar 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.
(Función de
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 68
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
(Función de
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.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 69
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
(Función de Lectura Arreglo)
Arreglos de Estructuras
Ejemplo: Utilizando una estructura arreglo: struct ESTUDIANTES
{
ESTUDIANTE alumnos[50];
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 70
unsigned char cantidad;
Arreglos de Estructuras
Ejemplo: Diseñar y construir un programa modular con estructuras en C++ que lea los datos de N estudiantes y escriba en la salida.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 71
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Construir un programa modular con estructuras en C++ para:
b) Leer 1 polígono (Nº identificador, Nº de lados, longitud de un lado, apotema) y escribir en la salida toda su información.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 72
toda su información.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Construir un programa modular con con estructuras en C++ para:
b) Leer N polígonos (Nº identificador, Nº de lados, longitud de un lado, apotema) y escribir en la salida de forma inversa.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 73
forma inversa.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Estructura Arreglo
Beneficios.Copia de arreglos.
Retorno de arreglos.
Menor cantidad de parámetros en los módulos.
Estructura Arreglo
Ejemplo:
#define MX 50 struct HUMANO
{
unsigned char edad; char genero;
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 75
};
struct CLASE
{
HUMANO profesor;
HUMANO alumnos[MX];
unsigned char cantidadAlumnos; unsigned char seccion;
};
Estructura
Estructura Arreglo
Ejemplo:
…
CLASE clase1, clase2; …
…
clase2 = clase1; Asigna profesor, alumnos[50] (50
estructuras con ucEdad,cSexo),
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 76
estructuras con ucEdad,cSexo), cantidadAlumnos, ucSeccion
Si el arreglo ha sido sobredimensionado excesivamente es posible que realizar la operación con un bucle sea menos costoso
Estructura Arreglo
Para facilitar el manejo de arreglos se puede utilizar una estructura arreglo:
struct NOMBRE {
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 77
{
tipo arreglo[FILAS][COLUMNAS]; unsigned tipoentero filas;
unsigned tipoentero columnas;
Estructura Arreglo
Ejemplo: Se requiere definir la estructura para un almacenar una matriz de máximo 100 x 100 elementos reales:
struct MATRIZREAL
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 78
{
float arreglo[100][100]; unsigned char filas;
unsigned char columnas;
Estructura Arreglo
Ejemplo: Diseñar y construir un programa modular en C++ que lea y escriba una matriz de tamaño dado por el usuario.
Estructura Arreglo
Ejemplo: Diseñar y construir un programa modular en C++ que lea un conjunto de matrices y escriba a la salida en orden de menor a mayor según la cantidad de elementos que la conforman.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer una matriz y mostrar la misma y la transpuesta en la salida. 1,1 1,2 1,3
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 81
la salida.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
2,1 2,2 2,3
3,1 3,2 3,3
Ejercicio
Diseñar y construir un programa modular en C++ para:
Determinar que elementos de una matriz dada se encuentran por debajo y cuales por encima del
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 82
encuentran por debajo y cuales por encima del promedio de estos.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar 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.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 83
pantalla en forma inversa a como fueron ingresados.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer un conjunto de N caracteres y determinar cuantos espacios tiene.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 84
cuantos espacios tiene.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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 información (m, b).
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 85
salida toda su información (m, b).
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 86
Nº identificador, determinar que puntos pertenecen a las arista del triangulo.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer N polígonos (Nº identificador, Nº de lados, longitud de un lado, apotema) y escribir en la salida el polígono de más lados, el de mayor apotema y de
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 87
polígono de más lados, el de mayor apotema y de mayor área.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++. A=n*l*a/2
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer la posición (x, y), el peso y Nº identificador para N maquinas y presentar en la salida toda la información de la menos pesada y la más cercana al
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 88
información de la menos pesada y la más cercana al origen
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 89
mayor a menor.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer un conjunto de N Matrices y ordenar según su norma Frobenius de mayor a menor.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 90
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer un conjunto de N Matrices y ordenar según su norma Frobenius de mayor a menor |A| = √(∑∑ak,j2)
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 91
|A| = √(∑∑ak,j2)
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer N polígonos (Nº identificador, Nº de lados, longitud de un lado, apotema) y escribir en la salida de forma inversa.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 92
forma inversa.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar y construir un programa modular en C++ para:
Leer N polígonos (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.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 93
buscar en el conjunto y escribir en la salida sus datos.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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 información.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 94
información.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar 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 información
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 95
AM/PM y escribir en la salida toda su información (militar y AM/PM).
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 96
AM/PM y dado un identificador buscar en el conjunto y escribir en la salida sus datos.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Ejercicio
Diseñar 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
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 97
AM/PM y escribir en la salida el conjunto ordenado de mayor a menor según su hora.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar 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
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 98
AM/PM y escribir en la salida el conjunto ordenado de menor a mayor según su hora.
Fase 1: Diseño y Análisis: DES, DTD y UML DES, DRE ó DF y LV de Módulos y TM.
DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: programa modular en C++.
Ejercicio
Diseñar y construir un programa modular en C++ para:
a) Leer N números e intercambiar el 1º con el 2º, 3º
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 99
a) Leer N números 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 números Xk y presentar en pantalla la siguiente sucesión:
Ejercicio
Diseñar y construir un programa modular en C++ para:
a) Leer un conjunto de N datos enteros sin signo, leer un número A y determinar el índice si se encuentra en
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 100
un número A y determinar el índice si se encuentra en el conjunto.
b) Leer N vectores de diferentes tamaños y escribir en pantalla en orden inverso.
c) Simular un sistema de partículas las cuales puede desplazarse horizontalmente.
Resumen
Estructuras con Estructuras.UML: NOMBRE dato 1: tipo dato 2: tipo dato 3: ESTRUCTURA … dato N: tipo
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 101
Declaración: struct ESTRUCTURA2 { ESTRUCTURA1 campo; … }; tipo
Resumen
Manejo:
variable.campo.campo
Asignación de la estructura de una estructura
Estructuras Anidadas.
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 102
Arreglos de Estructuras.Declaración:
ESTRUCTURA nombre[TAMAÑO]
Manejo:
Resumen
Estructuras con Arreglos.UML: Declaración: NOMBRE dato 1: tipo dato 2: tipo dato 3: tipo[#] … dato N: tipo
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 103
Declaración: struct ESTRUCTURA { tipo campo[TAMAÑO]; … }; dato N: tipo
Resumen
Manejo:
variable.campo[índice]
Estructura Arreglo:
struct NOMBRE
Programación – Prof. Gonzalo Müller – Clase 20 – GM - 104
struct NOMBRE {
tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };