Clase Programación 16
Transcript of Clase Programación 16
-
8/14/2019 Clase Programacin 16
1/89
Programacin
Prof. Gonzalo Mller
[email protected] de Ingeniera
Universidad Central de Venezuela
. Estructuras
-
8/14/2019 Clase Programacin 16
2/89
Clase Anterior
Mdulos en C:
Declaracin.
Nombre, Tipos: parmetros y retorno. Definicin.
Programacin Prof. Gonzalo Mller Clase 16 GM - 2
a otros mdulos.
Variable de retorno.
Llamada Subrutinas: Sentencia de llamada.
Funciones: Asignacin, Expresiones y Argumento.
Funciones Matemticas en C.
-
8/14/2019 Clase Programacin 16
3/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Programacin Prof. Gonzalo Mller Clase 16 GM - 3
Estudiante
-
8/14/2019 Clase Programacin 16
4/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Nombre
Gnero
Programacin Prof. Gonzalo Mller Clase 16 GM - 4
Estudiante
Edad
Promedio
U. Crditos
Eficiencia
-
8/14/2019 Clase Programacin 16
5/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Nombre
Gnero tipo nombretipo genero
Programacin Prof. Gonzalo Mller Clase 16 GM - 5
Estudiante
Edad
Promedio
U. Crditos
Eficiencia
6Variables!
tipo edadtipo promedio
tipo creditos
tipo eficiencia
-
8/14/2019 Clase Programacin 16
6/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Nombre
Gnero
Programacin Prof. Gonzalo Mller Clase 16 GM - 6
Estudiante
Edad
Promedio
U. Crditos
Eficiencia
-
8/14/2019 Clase Programacin 16
7/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Nombre
Gnero
Programacin Prof. Gonzalo Mller Clase 16 GM - 7
Estudiante
Edad
Promedio
U. Crditos
Eficiencia
Slo1Variable
-
8/14/2019 Clase Programacin 16
8/89
Datos Agrupados
Que sucede si se necesita trabajar con un conjunto dedatos utilizando slo 1 variable.
Nombre
Gnero
Programacin Prof. Gonzalo Mller Clase 16 GM - 8
Estudiante
Edad
Promedio
U. Crditos
Eficiencia
Slo1Variable
tipo estudiante
-
8/14/2019 Clase Programacin 16
9/89
Estructura
Conjunto de datos manipulados a travs de slo 1variable.
PromedioEdad
Programacin Prof. Gonzalo Mller Clase 16 GM - 9
U. Crditos Genero
VariableEficiencia
om re
-
8/14/2019 Clase Programacin 16
10/89
Estructura
Conjunto de datos de tipos diferentes manipulados atravs de slo 1variable.
Real 4BEntero sin signo 1B
Programacin Prof. Gonzalo Mller Clase 16 GM - 10
Entero sin signo 1BCarcter
VariableReal 4B
x o
-
8/14/2019 Clase Programacin 16
11/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 11
-
8/14/2019 Clase Programacin 16
12/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 12
Ejemplo:Para una encuesta annima a los estudiantes,se requiere almacenar los datos del estudiante.
-
8/14/2019 Clase Programacin 16
13/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 13
Ejemplo:Para una encuesta annima a los estudiantes,se requiere almacenar los datos del estudiante.
El conjunto de datos ser:genero, edad, promedio, creditos, eficiencia
Estructura Estudiante
-
8/14/2019 Clase Programacin 16
14/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 14
Ejemplo:Para una encuesta annima a los estudiantes,se requiere almacenar los datos del estudiante.
El conjunto de datos ser:genero, edad, promedio, creditos, eficiencia
Estructura Estudiante
-
8/14/2019 Clase Programacin 16
15/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 15
Ejemplo:Para una encuesta annima a los estudiantes,se requiere almacenar los datos del estudiante.
El conjunto de datos ser:genero, edad, promedio, creditos, eficiencia
Estructura Estudiante
-
8/14/2019 Clase Programacin 16
16/89
Estructura
Una estructura esta definida:
Nombre de la estructura.
Nombres de los datos.
Tipos de los diferentes datos.
Programacin Prof. Gonzalo Mller Clase 16 GM - 16
Ejemplo:Para una encuesta annima a los estudiantes,se requiere almacenar los datos del estudiante.
El conjunto de datos ser:
genero, edad, promedio, creditos, eficienciaEstructura Estudiante
caracter real 4B
entero sin signo 1B entero sin signo 1B
real 4B
-
8/14/2019 Clase Programacin 16
17/89
Estructura
Una estructura pueden ser representada grficamenteutilizando UML (Unified Modeling Language):
NOMBRE
Programacin Prof. Gonzalo Mller Clase 16 GM - 17
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
18/89
Estructura
Ejemplo: Definir la estructura para el estudiante deuna encuesta annima:
El conjunto de datos ser:genero, edad, promedio, creditos, eficiencia
Estructura Estudiante
Programacin Prof. Gonzalo Mller Clase 16 GM - 18
ESTUDIANTE
genero: carcteredad: entero sin signo 1 bytepromedio: real 4 bytescreditos: entero sin signo 1 byte
eficiencia: real 4 bytes
ca ac reaentero sin signo 1B entero sin signo 1B
rea
-
8/14/2019 Clase Programacin 16
19/89
Estructura
NOMBRE
Programacin Prof. Gonzalo Mller Clase 16 GM - 19
Cualquier conjunto de datos?
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
20/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 20
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
21/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 21
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
22/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 22
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
23/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 23
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
24/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 24
dato2: tipodato3: tipodatoN: tipo
-
8/14/2019 Clase Programacin 16
25/89
Estructura
Si hablamos de una estructura TABLA que se imaginan
que almacena?TABLA
Programacin Prof. Gonzalo Mller Clase 16 GM - 25
dato2: tipodato3: tipodatoN: tipo
?
-
8/14/2019 Clase Programacin 16
26/89
Estructura
Al definir una estructura esta debe agrupar datos quetengan un significado, debe existir Coherencia.
Si hablamos de una estructura TABLA que se imaginan
Programacin Prof. Gonzalo Mller Clase 16 GM - 26
TABLA
dato1: tipodato2: tipo
dato3: tipodatoN: tipo
Coherencia: Relacin lgica y adecuada de las partes que forman un todo
-
8/14/2019 Clase Programacin 16
27/89
Cohesin en una Estructura
Establece como se interrelacionan el conjunto dedatos que forman a la estructura.
Cohesin lgica: Los datos que conforman a laCohesinde Alto
Nivel
Programacin Prof. Gonzalo Mller Clase 16 GM - 27
definido.
Cohesin en datos: Los datos agrupados son
utilizados en varias tareas comunes.
Cohesin coincidental: Se agruparon varios datos sinrelacin alguna.
Siempre tratar de utilizar coherencia de alto nivel
-
8/14/2019 Clase Programacin 16
28/89
Estructura en C++
La estructura constituye un tipo de dato definidopor el programador, por lo tanto, el proceso para
utilizar las estructuras es el siguiente:
Programacin Prof. Gonzalo Mller Clase 16 GM - 28
e e e e a e uc u a.
2 Se declara una o ms variables o parmetros deltipo estructura.
Se extiende el lenguaje al definir nuevos tipos
-
8/14/2019 Clase Programacin 16
29/89
Estructura en C++
1 Se debe definir la estructura.
Se indican las caractersticas
Tabla tiene:Ancho
AltoGrosorColor
Material
Programacin Prof. Gonzalo Mller Clase 16 GM - 29
2 Se declara una o ms variables o parmetros deltipo estructura.
Son los entes
-
8/14/2019 Clase Programacin 16
30/89
Estructura en C++
1 Se debe definir la estructura.
Se indican las caractersticas
Tabla tiene:Ancho
AltoGrosorColor
Material
Programacin Prof. Gonzalo Mller Clase 16 GM - 30
2 Se declara una o ms variables o parmetros deltipo estructura.
Son los entes
-
8/14/2019 Clase Programacin 16
31/89
1. Definicin de la Estructura en C++
Se le indica al compilador:
Nombre de la estructura.
Como est formada la estructura:
Programacin Prof. Gonzalo Mller Clase 16 GM - 31
Nombres: establecen el identificador con el que sepuede acceder un dato de la estructura.
Tipos: permiten establecer la cantidad de memoriaque se debe reservar.
-
8/14/2019 Clase Programacin 16
32/89
1. Definicin de la Estructura en C++
Definicin en C++:
struct NOMBRE
{Nombre de la estructura
Palabra clave que le indica al compiladorque se esta definiendo una estructura
Programacin Prof. Gonzalo Mller Clase 16 GM - 32
tipoidentificador1;tipoidentificador2;
tipoidentificadorN;
};En la notacin se colocar el
nombre en maysculas para la
estructura definida.
Conjunto de datos
-
8/14/2019 Clase Programacin 16
33/89
1. Definicin de la Estructura en C++
Ejemplo: Se requiere definir la estructura para el
estudiante de una encuesta annima:
struct ESTUDIANTE{
char genero;
Nombre de la estructura
Programacin Prof. Gonzalo Mller Clase 16 GM - 33
unsigned char edad;float promedio;
unsigned short creditos;
float eficiencia;
};
Tipo del dato
Nombre del dato
-
8/14/2019 Clase Programacin 16
34/89
1. Definicin de la Estructura en C++
La definicin de la estructura debe realizarse antes delas declaraciones de variables y de los mdulos.
// Encabezado
// Directivas de preprocesador
Programacin Prof. Gonzalo Mller Clase 16 GM - 34
// Definiciones de estructuras
// Mdulos
main()
{
// Declaraciones de variables
-
8/14/2019 Clase Programacin 16
35/89
1. Definicin de la Estructura en C++
Es recomendable documentar los elementos de la estructura.
Ejemplo:struct ESTUDIANTE
{
/// Genero del estudiante
char genero;
Programacin Prof. Gonzalo Mller Clase 16 GM - 35
Edad del estud ante
unsigned char edad;
/// Promedio de las materias cursadas
float promedio;
/// Cantidad de unidades de crditos aprobadas
unsigned short creditos;
/// Eficiencia del estudiante
float eficiencia;
};
-
8/14/2019 Clase Programacin 16
36/89
2. Declaracin de la Variable en C++
Se le indica al compilador las variables que seutilizaran con el tipo de estructura definidopreviamente.
Programacin Prof. Gonzalo Mller Clase 16 GM - 36
tipoidentificador
tipoidentificador1, identificador2,
-
8/14/2019 Clase Programacin 16
37/89
2. Declaracin de la Variable en C++
Se le indica al compilador las variables que seutilizaran con el tipo de estructura definidopreviamente.
Programacin Prof. Gonzalo Mller Clase 16 GM - 37
ESTRUCTURA identificador
ESTRUCTURA identificador1, identificador2,
2 D l i d l V i bl C
-
8/14/2019 Clase Programacin 16
38/89
2. Declaracin de la Variable en C++
Ejemplo:
ESTUDIANTE estudiante1;
ESTUDIANTE estudianteA, estudianteB;
Programacin Prof. Gonzalo Mller Clase 16 GM - 38
Tipo estructura definidopreviamente
Variable tipoESTUDIANTE
E C++
-
8/14/2019 Clase Programacin 16
39/89
Estructura en C++
En memoria:
floatunsigned char
unsigned shortchar
float
Programacin Prof. Gonzalo Mller Clase 16 GM - 39
genero promedio creditos
estudiante1
Variable
edad eficiencia
M j d i bl C++
-
8/14/2019 Clase Programacin 16
40/89
Manejo de una variable estructura en C++
Cada una de las variables que conforma el conjunto dela estructura se les llaman campos.
Ejemplo:struct ESTUDIANTE
{
Programacin Prof. Gonzalo Mller Clase 16 GM - 40
char genero;
unsigned char edad;
float promedio;
unsigned short creditos;
float eficiencia;
};
Campo edad
Campo genero
Campo creditos
Campo promedio
Campo eficiencia
M j d i bl t t C++
-
8/14/2019 Clase Programacin 16
41/89
Manejo de una variable estructura en C++
La forma de acceder un campo es utilizando eloperador miembro . :
variable.campo
Programacin Prof. Gonzalo Mller Clase 16 GM - 41
Ejemplo:
// Asigna edad a estudiante
estudiante1.edad = 18;
// Escribe en pantalla promedio de estudiante
printf("%f", estudiante1.promedio);
ar a e t po estructura ampo e a es ruc ura
M n j d n ri bl tr t r n C++
-
8/14/2019 Clase Programacin 16
42/89
Manejo de una variable estructura en C++
Ejemplo: Disear y construir un programaestructurado con estructuras en C++ que lea los datosde un estudiante (#cdula, edad, gnero y promedio) yescriba en la salida.
Programacin Prof. Gonzalo Mller Clase 16 GM - 42
Fase 1: Diseo y Anlisis: DES y UMLDRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa estructurado en C++.
Ejercicio
-
8/14/2019 Clase Programacin 16
43/89
Ejercicio
Construir un programa estructurado conestructuras en C++ para:
a) Leer 1 polgono (N identificador, N de lados,longitud de un lado, apotema) y escribir en la salida
Programacin Prof. Gonzalo Mller Clase 16 GM - 43
toda su informacin.Fase 1: Diseo y Anlisis: DES y UML
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa estructurado C++.
Evaluacin: Manejo Bsico
Manejo de una variable estructura en C++
-
8/14/2019 Clase Programacin 16
44/89
Manejo de una variable estructura en C++
Asignacin de una variable estructura: El operadorasignacin = realiza la asignacin de los valores detodos los campos de una estructura a otra.
Programacin Prof. Gonzalo Mller Clase 16 GM - 44
ESTUDIANTE estudiante1, estudiante2;
estudiante2 = estudiante1;
Asigna los valores de los campos de estudiante1 (genero, edad,promedio, creditos, eficiencia) a estudiante2 en una sola operacin
Manejo de una variable estructura en C++
-
8/14/2019 Clase Programacin 16
45/89
Manejo de una variable estructura en C++
Asignacin de una variable estructura: El operadorasignacin = realiza la asignacin de los valores detodos los campos de una estructura a otra.
Programacin Prof. Gonzalo Mller Clase 16 GM - 45
ESTUDIANTE estudiante1, estudiante2;
estudiante2 = estudiante1;
estudiante2.edad = estudiante1.edad;
Tambin se pueden asignar valores de forma individual
Uso de Estructuras en Mdulos en C++
-
8/14/2019 Clase Programacin 16
46/89
Uso de Estructuras en Mdulos en C++
Los parmetros de mdulos y el retorno de funciones
pueden ser de un tipo de estructura definido.
Programacin Prof. Gonzalo Mller Clase 16 GM - 46
structura como par metro
Estructura como retorno
Estructura como Parmetro en C++
-
8/14/2019 Clase Programacin 16
47/89
Estructura como Parmetro en C++
Estructura como parmetro: Declaracin y Definicin
mdulo(ESTRUCTURA parmetro1, )
Programacin Prof. Gonzalo Mller Clase 16 GM - 47
ESTRUCTURA variable1;
mdulo(variable1, )
Estructura como Parmetro en C++
-
8/14/2019 Clase Programacin 16
48/89
Estructura como Parmetro en C++
Ejemplo:void escribeAlumno(ESTUDIANTE alumno)
{
printf(Edad:%hhu, alumno.edad);
Programacin Prof. Gonzalo Mller Clase 16 GM - 48
}
main()
{ESTUDIANTE estudiante1;
escribeAlumno(estudiante1);
Como parmetro
Estructura como Parmetro en C++
-
8/14/2019 Clase Programacin 16
49/89
Estructura como Parmetro en C++
Tambin se puede pasar un campo como argumento.
Ejemplo:
void escribeEdad(unsigned char laEdad){
printf(Edad:%hhu, laEdad);
Programacin Prof. Gonzalo Mller Clase 16 GM - 49
}
main()
{
ESTUDIANTE estudiante1;
escribeEdad(estudiante1.edad);
Un campo comoparmetro
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
50/89
Estructura como Retorno en C
Estructura como retorno: Declaracin y Definicin
ESTRUCTURA funcin()
Programacin Prof. Gonzalo Mller Clase 16 GM - 50
ESTRUCTURA variable1;
variable1 =funcin()
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
51/89
s uc u co o e o o e
Ejemplo:
ESTUDIANTE leeAlumno()
{
}
Programacin Prof. Gonzalo Mller Clase 16 GM - 51
main()
{
ESTUDIANTE estudiante1;
estudiante1 = leeAlumno();
escribeAlumno(estudiante1);
Como parmetro
Como retorno
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
52/89
Ejemplo:
ESTUDIANTE leeAlumno()
{// Declaraciones locales
//
Mismo Tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 52
ESTUDIANTE res;
// Algoritmo
//
scanf(%hhu, &res.edad);
scanf(%f, &res.eficiencia);//
return res;
}
Variable retorno
Retorno
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
53/89
Nueva estructura:ESTRUCTURA nombre(){
// Declaraciones locales
//
Mismo Tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 53
resu a o;
// Algoritmo
//
//
return resultado;
}
Variable retorno
Retorno
Uso de Estructuras en Mdulos en C++
-
8/14/2019 Clase Programacin 16
54/89
Ejemplo: Disear y construir un programa modularcon acoplamiento de datos bsico con estructuras enC++ que lea los datos de un estudiante y escriba en lasalida.
Programacin Prof. Gonzalo Mller Clase 16 GM - 54
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Uso de Estructuras en Mdulos en C++
-
8/14/2019 Clase Programacin 16
55/89
Ejemplo: Disear y construir un programa modularcon acoplamiento de datos bsico con estructuras enC++ que lea y escriba en la salida los datos de Nestudiantes.
Programacin Prof. Gonzalo Mller Clase 16 GM - 55
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Uso de Estructuras en Mdulos en C++
-
8/14/2019 Clase Programacin 16
56/89
Ejemplo: Disear y construir un programa modularcon acoplamiento de datos bsico con estructuras enC++ para calcular las races de una ecuacincuadrtica.
Programacin Prof. Gonzalo Mller Clase 16 GM - 56
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Ejercicio
-
8/14/2019 Clase Programacin 16
57/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
a) Leer 1 polgono (N identificador, N de lados,longitud de un lado, apotema) y escribir en la salida
Programacin Prof. Gonzalo Mller Clase 16 GM - 57
toda su informacin.Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Evaluacin: Manejo Modular
Ejercicio
-
8/14/2019 Clase Programacin 16
58/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
b) Leer 1 polgono (N identificador, N de lados,longitud de un lado, apotema, rea) y escribir en la
Programacin Prof. Gonzalo Mller Clase 16 GM - 58
salida toda su informacin.Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Evaluacin: Manejo Modular
Ejercicio
-
8/14/2019 Clase Programacin 16
59/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
b) Leer 1 polgono (N identificador, N de lados,longitud de un lado, apotema, rea) y escribir en la
Programacin Prof. Gonzalo Mller Clase 16 GM - 59
salida toda su informacin.Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Evaluacin: Manejo Modular
A=n*l*a/2
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
60/89
Modificacin de una estructura:
ESTRUCTURA nombre(ESTRUCTURA resultado,){
// Algoritmo
//
Mismo TipoVariable retorno
Programacin Prof. Gonzalo Mller Clase 16 GM - 60
//return resultado;
}Retorno
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
61/89
Ejemplo: Definir una funcin para cambiar laeficiencia, promedio y crditos de un estudiante:ESTUDIANTE calculaPotencial(ESTUDIANTE res)
{// Algoritmo
//
Programacin Prof. Gonzalo Mller Clase 16 GM - 61
res.potencial = res.promedio*res.eficiencia;
//
return res;
}
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
62/89
Ejemplo: Definir una funcin para cambiar laeficiencia, promedio y crditos de un estudiante:
ESTUDIANTE calculaPotencial(ESTUDIANTE res)
{// Algoritmo
// Variable retorno
Mismo Tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 62
res.potencial = res.promedio*res.eficiencia;
//
return res;
}
Retorno
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
63/89
Ejemplo: Definir una funcin para cambiar laeficiencia, promedio y crditos de un estudiante:ESTUDIANTE calculaPotencial(ESTUDIANTE res)
{// Algoritmo
//
Programacin Prof. Gonzalo Mller Clase 16 GM - 63
res.potencial = res.promedio*res.eficiencia;
//
return res;
}
Campo a modificar
Campos previamenteasignados
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
64/89
Ejemplo:
ESTUDIANTE calculaPotencial(ESTUDIANTE res)
{
}
Programacin Prof. Gonzalo Mller Clase 16 GM - 64
main()
{
ESTUDIANTE estudiante1;
estudiante1 = leeAlumno();
estudiante1 = calculaPotencial(estudiante1);
Actualizacin de estudiante1
Ejercicio
-
8/14/2019 Clase Programacin 16
65/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
c) Leer N polgonos (N identificador, N de lados,longitud de un lado, apotema, rea) y escribir en la
Programacin Prof. Gonzalo Mller Clase 16 GM - 65
salida cada uno con toda su informacin.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Evaluacin: Manejo Modular
Ejercicio
-
8/14/2019 Clase Programacin 16
66/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
d) Leer N polgonos (N identificador, N de lados,longitud de un lado, apotema, rea) y escribir en la
Programacin Prof. Gonzalo Mller Clase 16 GM - 66
salida el polgono de ms lados y el de mayor rea.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Evaluacin: Asignacin
Ejercicio
-
8/14/2019 Clase Programacin 16
67/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
e) Leer N polgonos (N identificador, N de lados,longitud de un lado, apotema) y escribir en la salida el
Programacin Prof. Gonzalo Mller Clase 16 GM - 67
polgono de ms lados, el de mayor apotema y demayor rea. (3 mdulos de comparacin)
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.Evaluacin: Modificacin
Estructura como Retorno en C++
-
8/14/2019 Clase Programacin 16
68/89
Formas en que podemos utilizar los mdulos:# Retornos Usar
0 Subrutina
Programacin Prof. Gonzalo Mller Clase 16 GM - 68
1 Funcin1 Estructura (2 ms retornos) Funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
69/89
Metodologa para creacin de un programa modular con estructuras en C++1. Realizar el anlisis del problema a resolver:
1. Definir los datos de entrada y de salida. 2. Teora asociada, requerimientos, etc.
2. Determinar los mdulos necesarios para resolver el problema: Diagrama Top-Down
3. Disear las estructuras necesarias: UML
4. Disear y probar el algoritmo principal y los de los mdulos: Construir DREs o DFs.
Programacin Prof. Gonzalo Mller Clase 16 GM - 69
.utilizadas en cada mdulo: Construir Lista de variables.
6. Definir los tipos de datos de retorno y de parmetros de los diferentes mdulosutilizados en el algoritmo: Construir Tabla de Mdulos.
7. Codificar en C++:
1. UML Definicin de Estructuras.2.Tabla de Mdulos Declaraciones de Mdulos.3. LVs + DREs Definiciones de los Mdulos.4. LV + DRE Bloque Principal
Fin
Mdulos
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
70/89
SalidasEntradas
DES1
Programacin Prof. Gonzalo Mller Clase 16 GM - 70
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
71/89
SalidasEntradas
DES1
DTD2
Programacin Prof. Gonzalo Mller Clase 16 GM - 71
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
72/89
SalidasEntradas
DES1
DTD2
ESTRUCTURA
dato1: tipo
UML3
Programacin Prof. Gonzalo Mller Clase 16 GM - 72
a o : o
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
73/89
Nombre
SalidasEntradas
DES1
DREs4
DTD2
ESTRUCTURA
dato1: tipo
UML3
Programacin Prof. Gonzalo Mller Clase 16 GM - 73
FIN
a o : o
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
74/89
Nombre
SalidasEntradas
DES1
DREs4
DTD2
UML3
ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 74
FIN
Lista de Variables5
Variables
variable: tipo
a o : o
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
75/89
Nombre
SalidasEntradas
DES1
DREs4
DTD2
UML3
ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 75
FIN
Tabla de Mdulos6
Lista de Variables5
Variables
variable: tipo
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
a o : o
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
76/89
Nombre
SalidasEntradas
DES1
DREs4
DTD2
ESTRUCTURA
dato1: tipo
UML3
Definicin de Estructuras
7 C++
Programacin Prof. Gonzalo Mller Clase 16 GM - 76
FIN
Lista de Variables5
a o : o
Tabla de Mdulos6
Mdulos
main(){}
*.cpp
Variables
variable: tipo
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
77/89
Nombre
SalidasEntradas
DES1
DREs4
UML3
Definicin de Estructuras
DTD2
7 C++ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 77
FIN
Lista de Variables5
Tabla de Mdulos6
Mdulos
main(){}
*.cpp
Variables
variable: tipo
ao : o
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
78/89
Nombre
SalidasEntradas
DES1
DREs4
UML3
Definicin de Estructuras
DTD2
7 C++ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 78
FIN
Lista de Variables5
Tabla de Mdulos6
Mdulos
main(){}
*.cpp
Variables
variable: tipo
ao : o
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
79/89
Nombre
SalidasEntradas
DES1
DREs4
UML3
Definicin de Estructuras
DTD2
7 C++ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 79
FIN
Lista de Variables5
Tabla de Mdulos6
Mdulos
main(){}
*.cpp
Variables
variable: tipo
ao : o
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
80/89
Nombre
SalidasEntradas
DES1
DREs4
UML3
Definicin de Estructuras
DTD2
7 C++ESTRUCTURA
dato1: tipo
Programacin Prof. Gonzalo Mller Clase 16 GM - 80
FIN
Lista de Variables5
Tabla de Mdulos6
Mdulos
main(){
}
*.cpp
Variables
variable: tipo
ao : o
Modulo Parmetros Retorno Tipo
nombre
parametro1:tipo1,
retorno:tipo
subrutina o funcin
Metodologa para creacin de un programamodular con estructuras en C++
-
8/14/2019 Clase Programacin 16
81/89
Ejemplo: Disear y construir un programa modularcon acoplamiento de datos bsico con estructuras enC++ que lea ecuaciones cuadrticas y escriba en salida
las ecuaciones y sus soluciones.
Programacin Prof. Gonzalo Mller Clase 16 GM - 81
Estructura
-
8/14/2019 Clase Programacin 16
82/89
Es un artefacto Muy Poderoso
Programacin Prof. Gonzalo Mller Clase 16 GM - 82
ya que permiten manejar gran cantidad de datos atravs de una sola variable
char genero
unsigned char edadfloat promedio
unsigned short creditos
float eficiencia
ESTUDIANTE alumno
Estructura
-
8/14/2019 Clase Programacin 16
83/89
Es un artefacto Muy Poderoso
Programacin Prof. Gonzalo Mller Clase 16 GM - 83
ya que permiten manejar gran cantidad de datos atravs de una sola variable
escribeAlumno(alumno)escribeAlumno(genero,edad,promedio,credito
s,eficiencia)
Ejercicio
-
8/14/2019 Clase Programacin 16
84/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
f) Leer la posicin (x, y), el peso y N identificadorpara 1 maquina y presentar en la salida toda la
Programacin Prof. Gonzalo Mller Clase 16 GM - 84
informacin.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Ejercicio
-
8/14/2019 Clase Programacin 16
85/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
g) Leer la posicin (x, y), el peso y N identificadorpara N maquinas y presentar en la salida la
Programacin Prof. Gonzalo Mller Clase 16 GM - 85
informacin de cada una.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Ejercicio
-
8/14/2019 Clase Programacin 16
86/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
h) Leer la posicin (x, y), el peso y N identificadorpara N maquinas y presentar en la salida toda la
Programacin Prof. Gonzalo Mller Clase 16 GM - 86
informacin de la menos pesada.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.
DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Ejercicio
-
8/14/2019 Clase Programacin 16
87/89
Construir un programa modular con acoplamientode datos bsico con estructuras en C++ para:
i) Leer la posicin (x, y), el peso y N identificadorpara N maquinas y presentar en la salida toda la
Programacin Prof. Gonzalo Mller Clase 16 GM - 87
informacin de la menos pesada y la ms cercana alorigen.
Fase 1: Diseo y Anlisis: DES, DTD y UML
DES, DRE DF y LV de Mdulos y TM.DRE DF, LV y CF de Bloque Principal.
Fase 2: Codificacin: programa modular en C++.
Resumen
D A d d Dif Ti
-
8/14/2019 Clase Programacin 16
88/89
Datos Agrupados de Diferentes Tipos Estructura UML
Estructura en C++:
1 Se debe definir la estructura: struct
Programacin Prof. Gonzalo Mller Clase 16 GM - 88
.
Tipos de variables contenidas. Nombres de las variables contenidas.
Antes de las declaraciones de mdulos y de variables
2 Declarar una variable de tipo estructura.
Resumen
M j d i bl
-
8/14/2019 Clase Programacin 16
89/89
Manejo de una variable estructura: Campos de una estructura.
Operador miembro . .
Asignacin de una variable estructura.
Programacin Prof. Gonzalo Mller Clase 16 GM - 89
u os con es ruc uras:
Estructura como parmetro.
Estructura como retorno.
2 ms retornos
Metodologa para creacin de un programa modularcon estructuras en C++