Clase Programación 20

July 26, 2017 | Author: gmullerb | Category: Array Data Structure, C++, Software Development, Computer Data, Software Engineering
Share Embed Donate


Short Description

Descripción: Clase 20 de Programación, Prof. Gonzalo Müller [email protected], Facultad de Ingeniería, UCV...

Description

Programación

Clase 20. Estructuras y Arreglos Prof. Gonzalo Müller [email protected]

Facultad de Ingeniería 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 módulos y de variables

 2º Declarar una variable de tipo estructura. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 2

Clase Anterior

 Manejo de una variable estructura:  Campos de una estructura.  Operador miembro . .  Asignación de una variable estructura.

 Módulos con estructuras:  Estructura como parámetro.  Estructura como retorno.

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 3

Clase Anterior

 Datos Agrupados del mismo tipo → Arreglos  Arreglo unidimensional: vectores.  Nombre.  Tipo.  Tamaño.

 Arreglos en C:  Declaración: tipo nombre[TAMAÑO]  Manejo: nombre[índice] 

índice ∈ [0, TAMAÑO) Programación – Prof. Gonzalo Müller – Clase 20 – GM - 4

Clase Anterior

 Arreglo bidimensionales: matrices.  Declaración: 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 parámetros: 3 parámetros. 

Mismo Tamaño. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 5

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 6

Estructuras con Estructuras Los campos de una estructura también pueden ser estructuras. struct ESTRUCTURA1 { … }; struct ESTRUCTURA2 { ESTRUCTURA1 campo1; … };

campo estructura dentro de una estructura

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 7

Estructuras con Estructuras Ejemplo: struct PARTICULA { char letra; unsigned char posicionX; }; struct JUEGO { PARTICULA jugador; PARTICULA enemigo;

Estructura Estructura

unsigned short tiempoMax; }; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 8

Estructuras con Estructuras

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 9

Estructuras con Estructuras Ejemplo: Definir los UMLs de el ejemplo anterior: PARTICULA letra: carácter posicionX: entero sin signo 1 byte

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 10

Estructuras con Estructuras

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 11

Estructuras con Estructuras

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 12

Estructuras con Estructuras

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

campo de esta estructura

Programación – Prof. Gonzalo Müller – 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; Programación – Prof. Gonzalo Müller – 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; Programación – Prof. Gonzalo Müller – 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; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 16

Estructuras con Estructuras

 Asignación de la estructura de una estructura Ejemplo: JUEGO juego1;

PARTICULA

PARTICULA part1;

campo de PARTICULA

... juego1.jugador.letra = ‘G’; ... juego1.enemigo.posicionX = x; ... juego1.enemigo = part1; Son PARTICULA Programación – Prof. Gonzalo Müller – Clase 20 – GM - 17

Estructuras con Estructuras Ejemplo: Diseñar 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: Diseño y Análisis: DES, DTD, UML y TM. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 18

Parte 1

Estructuras con Estructuras Ejemplo: Diseñar 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: Diseño y Análisis: DES, DTD, UML y TM. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – 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

struct NOMBRE2

struct NOMBRE3

{

{

{

tipo campo1;

NOMBRE1 campo1;

NOMBRE2 campo1;

tipo campo2;

tipo campo2;

tipo campo2;

… };

… };

Programación – Prof. Gonzalo Müller – 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

struct NOMBRE2

struct NOMBRE3

{

{

{

tipo campo1;

NOMBRE1 campo1;

NOMBRE2 campo1;

tipo campo2;

tipo campo2;

tipo campo2;

… };

… };

NOMBRE3 → contiene campo NOMBRE2 Programación – Prof. Gonzalo Müller – 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

struct NOMBRE2

struct NOMBRE3

{

{

{

tipo campo1;

NOMBRE1 campo1;

NOMBRE2 campo1;

tipo campo2;

tipo campo2;

tipo campo2;

… };

… };

… };

NOMBRE3 → contiene campo NOMBRE2 → contiene campo NOMBRE1 Programación – Prof. Gonzalo Müller – 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 información. Fase 1: Diseño y Análisis: DES, DTD, UML y TM. Fase 2: Codificación: programa modular en C++. Evaluación: Estructura anidadas Programación – Prof. Gonzalo Müller – 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 información. Fase 1: Diseño y Análisis: DES, DTD, UML y TM. Fase 2: Codificación: programa modular en C++. Evaluación: Estructura anidadas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 24

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 25

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

Curso

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 26

Arreglos de Estructuras Que sucede si se necesita trabajar con un conjunto de estructuras utilizando sólo 1 variable. • • •

• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Curso



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 27

Arreglos de Estructuras Que sucede si se necesita trabajar con un conjunto de estructuras utilizando sólo 1 variable. • • •

• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Curso



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 28

Arreglos de Estructuras Que sucede si se necesita trabajar con un conjunto de estructuras utilizando sólo 1 variable. • • •

• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio • Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Curso



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio



• Nombre

• U. Créditos

• Género

• Eficiencia

• Edad

• Notas

• Promedio

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 29

Sólo 1 Variable

Arreglos de Estructuras

 Declaración: ESTRUCTURA nombre[TAMAÑO] Ejemplo: // Arreglo de 50 estudiantes ESTUDIANTE alumnos[50];

Programación – Prof. Gonzalo Müller – 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);

Programación – Prof. Gonzalo Müller – 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);

Programación – Prof. Gonzalo Müller – 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);

Programación – Prof. Gonzalo Müller – 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);

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 34

Arreglos de Estructuras Ejemplo: Diseñar 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: Diseño y Análisis: DES, DTD, UML y TM. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – 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: 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 36

Evaluación: Arreglos

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 37

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

Estudiante

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 38

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

Estudiante

• Nombre • Género • Edad • Promedio • U. Créditos • Eficiencia

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 39

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

Estudiante

• Nombre • Género • Edad • Promedio • U. Créditos • Eficiencia •Notas

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 40

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

Estudiante

• Nombre • Género • Edad • Promedio • U. Créditos • Eficiencia •Notas

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 41

Arreglo

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima.

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 42

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima. El conjunto de datos será: genero, edad, promedio, créditos, eficiencia, notas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 43

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima. El conjunto de datos será:

ARREGLO

genero, edad, promedio, créditos, eficiencia, notas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 44

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima. El conjunto de datos será: genero, edad, promedio, créditos, eficiencia, notas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 45

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima. El conjunto de datos será:

entero sin signo 1B

genero, edad, promedio, créditos, eficiencia, notas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 46

Estructuras con Arreglos

 Un arreglo esta definido:  Nombre.  Tipo: tipo de variable agrupada.  Tamaño: cantidad de elementos del conjunto. Ejemplo: Para un estudio de minería de datos se requiere almacenar los datos de estudiantes de forma anónima. El conjunto de datos será:

entero sin signo 1B[30]

genero, edad, promedio, créditos, eficiencia, notas Programación – Prof. Gonzalo Müller – Clase 20 – GM - 47

Estructuras con Arreglos

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 48

arreglo

Estructuras con Arreglos Ejemplo: Definir la estructura para el estudiante del estudio anónima: El conjunto de datos será: genero, edad, promedio, créditos, eficiencia, notas entero sin signo[30] ESTUDIANTE genero: carácter 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] Programación – Prof. Gonzalo Müller – Clase 20 – GM - 49

Estructuras con Arreglos Los miembros de una estructura también pueden ser arreglos. Ejemplo: struct ESTUDIANTE { unsigned char edad; char genero; unsigned char creditos; float promedio; float eficiencia; unsigned short notas[30]; }; Arreglo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 50

Estructuras con Arreglos

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

Programación – Prof. Gonzalo Müller – 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]);

Programación – Prof. Gonzalo Müller – 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]);

Programación – Prof. Gonzalo Müller – 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 Programación – Prof. Gonzalo Müller – Clase 20 – GM - 54

Estructuras con Arreglos Ejemplo: Diseñar 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: 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 55

Ejercicio Construir un programa modular con estructuras en C++ para: Dada ecuación que describe en comportamiento de la temperatura de un fenómeno: T(t) = T0 + ∆T cos (B t + K) y los t’s críticos, determinar la temperatura promedio. 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 modularEvaluación: en C++. Estructuras con arreglos Programación – Prof. Gonzalo Müller – Clase 20 – GM - 56

Estructuras y Arreglos

 Observación:  La estructuras son una herramienta muy poderosa que facilita el desarrollo. 

Gracias al operador asignación y que la estructura es capaz de contener arreglos y estructuras anidadas, es posible realizar la asignación de un arreglo a otro fácilmente. 

Originalmente se necesitaría un bucle y un contador para realizar la asignación de un arreglo a otro.

Programación – Prof. Gonzalo Müller – 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; }; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 58

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

Asigna profesor, notas[80], cantidad, seccion

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 59

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

notas[80]!!!

… clase2 = clase1;

Asigna profesor, notas[80], cantidad, seccion

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

Programación – Prof. Gonzalo Müller – 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 Tamaño.  Cantidad. struct NOMBRE { tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; }; Programación – Prof. Gonzalo Müller – 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 Tamaño.  Cantidad. struct NOMBRE { tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; }; Programación – Prof. Gonzalo Müller – 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 Tamaño.  Cantidad. struct NOMBRE { tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; }; Programación – Prof. Gonzalo Müller – 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 Tamaño.  Cantidad. struct NOMBRE { tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; }; Programación – Prof. Gonzalo Müller – 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 Tamaño.  Cantidad. struct NOMBRE { tipo nombreArreglo[TAMAÑO]; unsigned tipoentero cantidad; };

constante

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 65

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 66

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 67

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 Lectura Arreglo)

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++. Programación – Prof. Gonzalo Müller – 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: 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) Evaluación: Estructura Arreglo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 69

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 70

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.

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. Evaluación: Estructura Arreglo Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 71

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. 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++. Evaluación: Estructura Arreglo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 72

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. 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++. Evaluación: Estructura Arreglo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 73

Estructura Arreglo

 Beneficios.  Copia de arreglos. 

Retorno de arreglos.

 Menor cantidad de parámetros en los módulos.

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 74

Estructura Arreglo Ejemplo: #define MX 50 struct HUMANO { unsigned char edad; char genero; }; struct CLASE { HUMANO profesor; HUMANO alumnos[MX];

Estructura Arreglo de estructuras

unsigned char cantidadAlumnos; unsigned char seccion; }; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 75

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 operación con un bucle sea menos costoso

Programación – Prof. Gonzalo Müller – 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;

};

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 77

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

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 78

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.

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 79

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.

Programación – Prof. Gonzalo Müller – Clase 20 – GM - 80

Ejercicio Diseñar 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: 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 81

Evaluación: Estructura Arreglo

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 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 82

Evaluación: Estructura Arreglo

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. 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++. Evaluación: Estructura Arreglo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 83

Ejercicio Diseñar y construir un programa modular en C++ para: Leer un conjunto de N caracteres y determinar 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. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 84

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). 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 85

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 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. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 86

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 mayor área. A=n*l*a/2 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 87

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 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. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 88

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. 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 89

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. 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 90

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) 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 91

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. 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 92

Evaluación: Arreglos

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. 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 93

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. 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++. Evaluación: Arreglos de Estructuras Programación – Prof. Gonzalo Müller – Clase 20 – GM - 94

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 (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. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 95

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 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. Fase 2: Codificación: programa modular en C++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 96

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 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 97

Evaluación: Ordenar

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 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++. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 98

Evaluación: Ordenar

Ejercicio

Diseñar y construir un programa modular en C++ para: 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: {|Xk – Xk – 2|}, k desde N a 3 Programación – Prof. Gonzalo Müller – Clase 20 – GM - 99

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 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. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 100

Resumen

 Estructuras con Estructuras.  UML:

NOMBRE dato 1: tipo dato 2: tipo dato 3: ESTRUCTURA … dato N: tipo

 Declaración: struct ESTRUCTURA2 { ESTRUCTURA1 campo; … }; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 101

Resumen  Manejo: variable.campo.campo 

Asignación de la estructura de una estructura

 Estructuras Anidadas.

 Arreglos de Estructuras.  Declaración: ESTRUCTURA nombre[TAMAÑO]  Manejo: variable[índice].campo Programación – Prof. Gonzalo Müller – Clase 20 – GM - 102

Resumen

 Estructuras con Arreglos.  UML:

NOMBRE

 Declaración:

dato 1: tipo dato 2: tipo dato 3: tipo[#] … dato N: tipo

struct ESTRUCTURA { tipo campo[TAMAÑO]; … }; Programación – Prof. Gonzalo Müller – Clase 20 – GM - 103

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

Beneficios: Copia de arreglos, Retorno de arreglos. Programación – Prof. Gonzalo Müller – Clase 20 – GM - 104

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF