Descripción: Clase 16 de Programación, Prof. Gonzalo Müller
Programación
Clase 16. Datos Agrupados en C++: Estructuras Prof. Gonzalo Müller
[email protected]
Facultad de Ingeniería Universidad Central de Venezuela
Clase Anterior
Módulos en C: Declaración.
Nombre, Tipos: parámetros y retorno.
Definición. Puede declarar sus propias variables y realizar llamadas a otros módulos. Variable de retorno.
Llamada Subrutinas: Sentencia de llamada. Funciones: Asignación, Expresiones y Argumento.
Funciones Matemáticas en C. Programación – Prof. Gonzalo Müller – Clase 16 – GM - 2
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 16 – GM - 3
Datos Agrupados Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable. • Nombre • Género • Edad Estudiante
• Promedio • U. Créditos • Eficiencia Programación – Prof. Gonzalo Müller – Clase 16 – GM - 4
Datos Agrupados Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable. • Nombre • Género • Edad Estudiante
• Promedio • U. Créditos • Eficiencia Programación – Prof. Gonzalo Müller – Clase 16 – GM - 5
tipo tipo tipo tipo tipo tipo
nombre genero edad promedio creditos eficiencia
6 Variables!
Datos Agrupados Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable. • Nombre • Género • Edad Estudiante
• Promedio • U. Créditos • Eficiencia Programación – Prof. Gonzalo Müller – Clase 16 – GM - 6
Datos Agrupados Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable. • Nombre • Género • Edad Estudiante
• Promedio • U. Créditos • Eficiencia Programación – Prof. Gonzalo Müller – Clase 16 – GM - 7
Sólo 1 Variable
Datos Agrupados Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable. • Nombre • Género • Edad Estudiante
• Promedio • U. Créditos • Eficiencia Programación – Prof. Gonzalo Müller – Clase 16 – GM - 8
Sólo 1 Variable tipo estudiante
Estructura Conjunto de datos manipulados a través de sólo 1 variable. Promedio Nombre U. Créditos Genero Eficiencia Variable Edad
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 9
Estructura Conjunto de datos de tipos diferentes manipulados a través de sólo 1 variable. Entero sin signo 1B Real 4B Texto Entero sin signo 1B Carácter Real 4B
Variable
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 10
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos.
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 11
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos. Ejemplo: Para una encuesta anónima a los estudiantes, se requiere almacenar los datos del estudiante.
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 12
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos. Ejemplo: Para una encuesta anónima a los estudiantes, se requiere almacenar los datos del estudiante. El conjunto de datos será:
Estructura Estudiante genero, edad, promedio, creditos, eficiencia
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 13
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos. Ejemplo: Para una encuesta anónima a los estudiantes, se requiere almacenar los datos del estudiante. El conjunto de datos será:
Estructura Estudiante genero, edad, promedio, creditos, eficiencia
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 14
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos. Ejemplo: Para una encuesta anónima a los estudiantes, se requiere almacenar los datos del estudiante. El conjunto de datos será:
Estructura Estudiante genero, edad, promedio, creditos, eficiencia
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 15
Estructura
Una estructura esta definida: Nombre de la estructura. Nombres de los datos. Tipos de los diferentes datos. Ejemplo: Para una encuesta anónima a los estudiantes, se requiere almacenar los datos del estudiante. El conjunto de datos será:
Estructura Estudiante genero, edad, promedio, creditos, eficiencia
caracter real 4B real 4B entero sin signo 1B entero sin signo 1B Programación – Prof. Gonzalo Müller – Clase 16 – GM - 16
Estructura
Una estructura pueden ser representada gráficamente utilizando UML (Unified Modeling Language): NOMBRE dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 17
Estructura Ejemplo: Definir la estructura para el estudiante de una encuesta anónima: El conjunto de datos será:
Estructura Estudiante genero, edad, promedio, creditos, eficiencia
caracter real 4B real 4B entero sin signo 1B entero sin signo 1B
ESTUDIANTE genero: carácter edad: entero sin signo 1 byte promedio: real 4 bytes creditos: entero sin signo 1 byte eficiencia: real 4 bytes Programación – Prof. Gonzalo Müller – Clase 16 – GM - 18
Estructura
NOMBRE dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
¿Cualquier conjunto de datos? Programación – Prof. Gonzalo Müller – Clase 16 – GM - 19
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 20
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 21
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 22
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 23
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 24
Estructura ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo
? Programación – Prof. Gonzalo Müller – Clase 16 – GM - 25
Estructura
Al definir una estructura esta debe agrupar datos que tengan un significado, debe existir Coherencia. ¿Si hablamos de una estructura TABLA que se imaginan que almacena? TABLA dato1: tipo dato2: tipo dato3: tipo … datoN: tipo Coherencia: Relación lógica y adecuada de las partes que forman un todo Programación – Prof. Gonzalo Müller – Clase 16 – GM - 26
Cohesión en una Estructura Establece como se interrelacionan el conjunto de datos que forman a la estructura. Cohesión de Alto Nivel
Cohesión lógica: Los datos que conforman a la estructura se interrelacionan para forma un todo definido.
Cohesión en datos: Los datos agrupados son utilizados en varias tareas comunes.
Cohesión coincidental: Se agruparon varios datos sin relación alguna. Siempre tratar de utilizar coherencia de alto nivel Programación – Prof. Gonzalo Müller – Clase 16 – GM - 27
Estructura en C++
La estructura constituye un tipo de dato definido por el programador, por lo tanto, el proceso para utilizar las estructuras es el siguiente:
1º Se debe definir la estructura. 2º Se declara una o más variables o parámetros del tipo estructura.
Se extiende el lenguaje al definir nuevos tipos Programación – Prof. Gonzalo Müller – Clase 16 – GM - 28
Estructura en C++
1º Se debe definir la estructura. Se indican las características
Tabla tiene: •Ancho •Alto •Grosor •Color •Material
2º Se declara una o más variables o parámetros del tipo estructura. Son los entes
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 29
Estructura en C++
1º Se debe definir la estructura. Se indican las características
Tabla tiene: •Ancho •Alto •Grosor •Color •Material
2º Se declara una o más variables o parámetros del tipo estructura. Son los entes
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 30
1. Definición de la Estructura en C++ Se le indica al compilador: Nombre de la estructura. Como está formada la estructura: Nombres: establecen el identificador con el que se puede acceder un dato de la estructura. Tipos: permiten establecer la cantidad de memoria que se debe reservar.
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 31
1. Definición de la Estructura en C++ Definición en C++: Palabra clave que le indica al compilador que se esta definiendo una estructura
struct NOMBRE
Nombre de la estructura
{ tipo identificador1; tipo identificador2; …
tipo identificadorN;
};
Conjunto de datos
En la notación se colocará el nombre en mayúsculas para la estructura definida.
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 32
1. Definición de la Estructura en C++ Ejemplo: Se requiere definir la estructura para el estudiante de una encuesta anónima: struct ESTUDIANTE Nombre de la estructura
{ char genero; unsigned char edad; float promedio;
unsigned short creditos; float eficiencia; };
Nombre del dato Tipo del dato Programación – Prof. Gonzalo Müller – Clase 16 – GM - 33
1. Definición de la Estructura en C++
La definición de la estructura debe realizarse antes de las declaraciones de variables y de los módulos. // Encabezado // Directivas de preprocesador // Definiciones de estructuras // Módulos main() { // Declaraciones de variables … Programación – Prof. Gonzalo Müller – Clase 16 – GM - 34
1. Definición de la Estructura en C++
Es recomendable documentar los elementos de la estructura. Ejemplo: struct ESTUDIANTE { /// Genero del estudiante char genero; /// Edad del estudiante unsigned char edad; /// Promedio de las materias cursadas float promedio; /// Cantidad de unidades de créditos aprobadas unsigned short creditos; /// Eficiencia del estudiante float eficiencia; }; Programación – Prof. Gonzalo Müller – Clase 16 – GM - 35
2. Declaración de la Variable en C++ Se le indica al compilador las variables que se utilizaran con el tipo de estructura definido previamente. Declaración de una variable tipo estructura: tipo identificador tipo identificador1, identificador2,…
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 36
2. Declaración de la Variable en C++ Se le indica al compilador las variables que se utilizaran con el tipo de estructura definido previamente. Declaración de una variable tipo estructura: ESTRUCTURA identificador ESTRUCTURA identificador1, identificador2,…
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 37
2. Declaración de la Variable en C++ Ejemplo: ESTUDIANTE estudiante1; ESTUDIANTE estudianteA, estudianteB;
Tipo estructura definido previamente
Variable tipo ESTUDIANTE
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 38
Estructura en C++ En memoria: unsigned char unsigned short
float
char
float
Variable estudiante1
genero edad
promedio
creditos
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 39
eficiencia
Manejo de una variable estructura en C++ Cada una de las variables que conforma el conjunto de la estructura se les llaman campos. Ejemplo: struct ESTUDIANTE { char genero;
Campo genero unsigned char edad; Campo edad float promedio;
Campo promedio unsigned short creditos; Campo creditos float eficiencia;
Campo eficiencia
}; Programación – Prof. Gonzalo Müller – Clase 16 – GM - 40
Manejo de una variable estructura en C++ La forma de acceder un campo es utilizando el operador miembro . : variable.campo Variable tipo estructura
Campo de la estructura
Ejemplo: // Asigna edad a estudiante estudiante1.edad = 18; // Escribe en pantalla promedio de estudiante printf("%f", estudiante1.promedio); Programación – Prof. Gonzalo Müller – Clase 16 – GM - 41
Manejo de una variable estructura en C++ Ejemplo: Diseñar y construir un programa estructurado con estructuras en C++ que lea los datos de un estudiante (#cédula, edad, género y promedio) y escriba en la salida.
Fase 1: Diseño y Análisis: DES y UML DRE ó DF, LV y CF de Bloque Principal. Fase 2: Codificación: programa estructurado en C++. Programación – Prof. Gonzalo Müller – Clase 16 – GM - 42
Ejercicio Construir un programa estructurado con estructuras en C++ para: a) 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 y UML DRE ó DF, LV y CF de Bloque Principal. Fase 2: Codificación: programa estructurado C++. Evaluación: Manejo Básico Programación – Prof. Gonzalo Müller – Clase 16 – GM - 43
Manejo de una variable estructura en C++
Asignación de una variable estructura: El operador asignación = realiza la asignación de los valores de todos los campos de una estructura a otra. Ejemplo: ESTUDIANTE estudiante1, estudiante2; … estudiante2 = estudiante1; Asigna los valores de los campos de estudiante1 (genero, edad, promedio, creditos, eficiencia) a estudiante2 en una sola operación Programación – Prof. Gonzalo Müller – Clase 16 – GM - 44
Manejo de una variable estructura en C++
Asignación de una variable estructura: El operador asignación = realiza la asignación de los valores de todos los campos de una estructura a otra. Ejemplo: ESTUDIANTE estudiante1, estudiante2; … estudiante2 = estudiante1; estudiante2.edad = estudiante1.edad;
También se pueden asignar valores de forma individual Programación – Prof. Gonzalo Müller – Clase 16 – GM - 45
Uso de Estructuras en Módulos en C++ Los parámetros de módulos y el retorno de funciones pueden ser de un tipo de estructura definido. Estructura como parámetro Estructura como retorno
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 46
Estructura como Parámetro en C++
Estructura como parámetro: Declaración y Definición … módulo(ESTRUCTURA parámetro1, …)
Llamada: ESTRUCTURA variable1; … … módulo(variable1, …)
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 47
Estructura como Parámetro en C++ Ejemplo: void escribeAlumno(ESTUDIANTE alumno) { printf(“Edad:%hhu”, alumno.edad); … } … main() { ESTUDIANTE estudiante1; …
Como parámetro
escribeAlumno(estudiante1); …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 48
Estructura como Parámetro en C++
También se puede pasar un campo como argumento. Ejemplo: void escribeEdad(unsigned char laEdad) { printf(“Edad:%hhu”, laEdad); } … main() { ESTUDIANTE estudiante1; Un campo como parámetro
… escribeEdad(estudiante1.edad);… Programación – Prof. Gonzalo Müller – Clase 16 – GM - 49
Estructura como Retorno en C++
Estructura como retorno: Declaración y Definición ESTRUCTURA función(…)
Llamada: ESTRUCTURA variable1; … variable1 = función(…)
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 50
Estructura como Retorno en C++ Ejemplo: … ESTUDIANTE leeAlumno() { … } … main() { ESTUDIANTE estudiante1; Como retorno … estudiante1 = leeAlumno(); … escribeAlumno(estudiante1); … Programación – Prof. Gonzalo Müller – Clase 16 – GM - 51
Como parámetro
Estructura como Retorno en C++ Ejemplo: ESTUDIANTE leeAlumno() { Mismo Tipo // Declaraciones locales // ESTUDIANTE res; Variable retorno // Algoritmo // scanf(“%hhu”, &res.edad); … scanf(“%f”, &res.eficiencia); // return res; Retorno } Programación – Prof. Gonzalo Müller – Clase 16 – GM - 52
Estructura como Retorno en C++
Nueva estructura: ESTRUCTURA nombre(…) { Mismo Tipo // Declaraciones locales // ESTRUCTURA resultado; Variable retorno
… // Algoritmo //
… // return resultado; }
Retorno
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 53
Uso de Estructuras en Módulos en C++ Ejemplo: Diseñar y construir un programa modular con acoplamiento de datos básico con estructuras en C++ que lea los datos de un estudiante 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 16 – GM - 54
Uso de Estructuras en Módulos en C++ Ejemplo: Diseñar y construir un programa modular con acoplamiento de datos básico con estructuras en C++ que lea y escriba en la salida los datos de N estudiantes.
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 16 – GM - 55
Uso de Estructuras en Módulos en C++ Ejemplo: Diseñar y construir un programa modular con acoplamiento de datos básico con estructuras en C++ para calcular las raíces de una ecuación cuadrática.
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 16 – GM - 56
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: a) 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: Manejo Modular Programación – Prof. Gonzalo Müller – Clase 16 – GM - 57
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: b) Leer 1 polígono (Nº identificador, Nº de lados, longitud de un lado, apotema, área) 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: Manejo Modular Programación – Prof. Gonzalo Müller – Clase 16 – GM - 58
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: b) Leer 1 polígono (Nº identificador, Nº de lados, longitud de un lado, apotema, área) y escribir en la salida toda su información. 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++. Evaluación: Manejo Modular Programación – Prof. Gonzalo Müller – Clase 16 – GM - 59
Estructura como Retorno en C++
Modificación de una estructura: ESTRUCTURA nombre(ESTRUCTURA resultado,…) { Mismo Tipo // Algoritmo Variable retorno //
… // return resultado; }
Retorno
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 60
Estructura como Retorno en C++ Ejemplo: Definir una función para cambiar la eficiencia, promedio y créditos de un estudiante: ESTUDIANTE calculaPotencial(ESTUDIANTE res) { // Algoritmo // res.potencial = res.promedio*res.eficiencia; // return res; }
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 61
Estructura como Retorno en C++ Ejemplo: Definir una función para cambiar la eficiencia, promedio y créditos de un estudiante: ESTUDIANTE calculaPotencial(ESTUDIANTE res) { Mismo Tipo // Algoritmo Variable retorno // res.potencial = res.promedio*res.eficiencia; // return res; Retorno }
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 62
Estructura como Retorno en C++ Ejemplo: Definir una función para cambiar la eficiencia, promedio y créditos de un estudiante: ESTUDIANTE calculaPotencial(ESTUDIANTE res) { // Algoritmo // res.potencial = res.promedio*res.eficiencia; // return res; Campos previamente } asignados Campo a modificar
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 63
Estructura como Retorno en C++ Ejemplo: … ESTUDIANTE calculaPotencial(ESTUDIANTE res) { … } … main() { ESTUDIANTE estudiante1; … estudiante1 = leeAlumno(); estudiante1 = calculaPotencial(estudiante1); … Actualización de estudiante1 Programación – Prof. Gonzalo Müller – Clase 16 – GM - 64
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: c) Leer N polígonos (Nº identificador, Nº de lados, longitud de un lado, apotema, área) y escribir en la salida cada uno con 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: Manejo Modular Programación – Prof. Gonzalo Müller – Clase 16 – GM - 65
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: d) Leer N polígonos (Nº identificador, Nº de lados, longitud de un lado, apotema, área) y escribir en la salida el polígono de más lados y el 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++. Evaluación: Asignación Programación – Prof. Gonzalo Müller – Clase 16 – GM - 66
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: e) 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. (3 módulos de comparació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++. Programación – Prof. Gonzalo Müller – Clase 16 – GM - 67
Evaluación: Modificación
Estructura como Retorno en C++
Formas en que podemos utilizar los módulos: # Retornos
Usar
0
Subrutina
1
Función
1 Estructura (“2 ó más retornos”) Función
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 68
Metodología para creación de un programa modular con estructuras en C++ Metodología para creación de un programa modular con estructuras en C++ 1º. Realizar el análisis del problema a resolver: 1º. Definir los datos de entrada y de salida. 2º. Teoría asociada, requerimientos, etc. 2º. Determinar los módulos necesarios para resolver el problema: Diagrama Top-Down 3º. Diseñar las estructuras necesarias: UML 4º. Diseñar y probar el algoritmo principal y los de los módulos: Construir DREs o DFs. 5º. Definir los tipos de datos de las variables utilizadas en el algoritmo principal y las utilizadas en cada módulo: Construir Lista de variables. 6º. Definir los tipos de datos de retorno y de parámetros de los diferentes módulos utilizados en el algoritmo: Construir Tabla de Módulos. 7º. Codificar en C++: 1º. UML → Definición de Estructuras. 2º. Tabla de Módulos → Declaraciones de Módulos. 3º. LVs + DREs → Definiciones de los Módulos. 4º. LV + DRE → Bloque Principal
Módulos
Fin Programación – Prof. Gonzalo Müller – Clase 16 – GM - 69
Metodología para creación de un programa modular con estructuras en C++ 1
DES
Entradas
Salidas
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 70
Metodología para creación de un programa modular con estructuras en C++ 1
DES
2
DTD …
Entradas
Salidas …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 71
…
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
UML
Salidas …
ESTRUCTURA dato1: tipo dato2: tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 72
…
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML
ESTRUCTURA dato1: tipo dato2: tipo …
4
DREs Nombre … FIN
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 73
…
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML
ESTRUCTURA dato1: tipo dato2: tipo …
4
DREs Nombre … FIN
5
Lista de Variables Variables variable : tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 74
…
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo …
…
DREs Nombre … FIN
5
Lista de Variables Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 75
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo …
DREs
7
Nombre
C++
Definición de Estructuras Módulos
…
main() { }
FIN 5
…
Lista de Variables Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 76
*.cpp
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo …
DREs
7
Nombre
C++
Definición de Estructuras Módulos
…
main() { }
FIN 5
…
Lista de Variables Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 77
*.cpp
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo …
DREs
7
Nombre
C++
Definición de Estructuras Módulos
…
main() { }
FIN 5
…
Lista de Variables Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 78
*.cpp
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo …
DREs
7
Nombre
C++
Definición de Estructuras Módulos
…
main() { }
FIN 5
…
Lista de Variables Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 79
*.cpp
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++ DES
1
2
DTD …
Entradas 3
Salidas …
UML 4
ESTRUCTURA dato1: tipo dato2: tipo … 5
…
DREs
7
Nombre
Definición de Estructuras
…
Módulos
FIN
main() { }
Lista de Variables
C++
Variables variable : tipo … Modulo nombre …
6 Parámetros parametro1:tipo1,… …
Tabla de Módulos Retorno retorno:tipo …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 80
*.cpp
Tipo subrutina o función …
Metodología para creación de un programa modular con estructuras en C++
Ejemplo: Diseñar y construir un programa modular con acoplamiento de datos básico con estructuras en C++ que lea ecuaciones cuadráticas y escriba en salida las ecuaciones y sus soluciones.
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 81
Estructura
Es un artefacto Muy Poderoso
ya que permiten manejar gran cantidad de datos a través de una sola variable char genero unsigned char edad float promedio unsigned short creditos float eficiencia
ESTUDIANTE alumno
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 82
Estructura
Es un artefacto Muy Poderoso
ya que permiten manejar gran cantidad de datos a través de una sola variable escribeAlumno(genero, edad,promedio,credito s,eficiencia)
escribeAlumno(alumno)
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 83
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: f) Leer la posición (x, y), el peso y Nº identificador para 1 maquina y presentar en la salida toda la 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++. Programación – Prof. Gonzalo Müller – Clase 16 – GM - 84
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: g) Leer la posición (x, y), el peso y Nº identificador para N maquinas y presentar en la salida la información de cada una. 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 16 – GM - 85
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: h) 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. 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 16 – GM - 86
Ejercicio Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para: i) 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 16 – GM - 87
Resumen
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 16 – GM - 88
Resumen
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.
“2 ó más retornos”
Metodología para creación de un programa modular con estructuras en C++
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 89