You are on page 1of 89

Programación

Clase 16. Datos Agrupados en C++: Estructuras
Prof. Gonzalo Müller
gmullerb@mail.com

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

Sólo 1 Variable

• Promedio • U. Créditos • Eficiencia
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 7

Datos Agrupados
Que sucede si se necesita trabajar con un conjunto de datos utilizando sólo 1 variable.
• Nombre • Género • Edad
Estudiante

Sólo 1 Variable
tipo estudiante

• Promedio • U. Créditos • Eficiencia
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 8

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 {
tipo identificador1; tipo identificador2;

Nombre de la estructura

Conjunto de datos

tipo identificadorN;

};

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 { 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

Nombre de la estructura

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

eficiencia

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

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

Campo eficiencia

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; … escribeAlumno(estudiante1); …
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 48

Como parámetro

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; … escribeEdad(estudiante1.edad);…
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 49

Un campo como parámetro

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 0 1 Usar Subrutina 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 Fin
Programación – Prof. Gonzalo Müller – Clase 16 – GM - 69

Módulos

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

Entradas

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
Salidas

2

DTD

Entradas

Programación – Prof. Gonzalo Müller – Clase 16 – GM - 71

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML

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++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

ESTRUCTURA
dato1: tipo dato2: tipo …

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++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN

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++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo subrutina o función …

Programación – Prof. Gonzalo Müller – Clase 16 – GM - 75

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

… 7

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN Módulos main() { }

C++

Definición de Estructuras

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo

*.cpp

subrutina o función …

Programación – Prof. Gonzalo Müller – Clase 16 – GM - 76

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

… 7

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN Módulos main() { }

C++

Definición de Estructuras

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo

*.cpp

subrutina o función …

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

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

… 7

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN Módulos main() { }

C++

Definición de Estructuras

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo

*.cpp

subrutina o función …

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

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

… 7

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN Módulos main() { }

C++

Definición de Estructuras

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo

*.cpp

subrutina o función …

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

Metodología para creación de un programa modular con estructuras en C++
1

DES
Salidas

2

DTD

Entradas 3

UML
4

… 7

ESTRUCTURA
dato1: tipo dato2: tipo … 5

DREs
Nombre
… FIN Módulos main() { }

C++

Definición de Estructuras

Lista de Variables
Variables variable : tipo … Modulo nombre … Parámetros parametro1:tipo1,… … 6

Tabla de Módulos
Retorno retorno:tipo … Tipo

*.cpp

subrutina o función …

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

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