SlideShare una empresa de Scribd logo
1 de 38
UNIVERSIDAD ANDINA
“NÉSTOR CÁCERES VELÁSQUEZ”
FACULTAD DE INGENIERÍA Y CIENCIAS
PURAS
CAP INGENIERÍA CIVIL
TEMA : Estructuras anidadas
Presentado Por :
Apaza Coaquira Edward Jhonatan
Choque Istalla Pablo Roberto
Galarza Gonzales Anthony Jhosep
Tipula Yanapa Carlos Gabriel
Calcina Aza Joel
Estructura
program circulo
Real :: r, area
write (*,*) 'Escribe el radio r:'
read (*,*) r
area = 3.14159*r*r
write (*,*) 'Area = ', area
stop
end
Este programa lee un
número real r y muestra
el área del círculo con
radio r.
UNIONES
ES SIMILAR A LA DE "ESTRUCTURA", LA
DIFERENCIA ENTRE LAS DOS ES QUE EN UNA
ESTRUCTURA, LOS MIEMBROS OCUPAN
DIFERENTES ÁREAS DE LA MEMORIA, PERO
EN UNA UNIÓN, LOS MIEMBROS OCUPAN LA
MISMA ÁREA DE MEMORIA.
Uniones
Una unión es una estructura en la que se comparte una región de memoria para
almacenar datos de tipos distintos.
El tamaño de la unión es igual al del tipo de datos más grande.
union prueba{
int a;
float b;
char c;
};
main(){
prueba x;
x.a = 5;
printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c);
x.b = 5.0;
printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c);
x.c = '5';
printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c);
getch();
}
b
prueba
c
a
a= 5, b= 0.000000, c= ♣
a= 1084227584, b=
5.000000, c=
a= 1084227637, b=
5.000025, c= 5
Estructuras y Uniones
En la creación de soluciones para algunos problemas surge la
necesidad de agrupar datos de diferente tipo o de manejar datos
que serían muy difícil de describir en los tipos de datos primitivos,
esta es la situación en la que debemos aprovecharnos de las
características que hacen al lenguaje C especial, o sea el uso de
estructuras, uniones y punteros .
Programación en C/Estructuras y Uniones
Una estructura puede estar dentro de otra estructura
a esto se le conoce como anidamiento o estructuras
anidadas. Ya que se trabajan con datos en
estructuras si definimos un tipo de dato en una
estructura y necesitamos definir ese dato dentro de
otra estructura solamente se llama el dato de la
estructura anterior.
Estructuras Anidadas
Estructuras Anidados
if (x > 0) then
if (x >= y) then
write(*,*) 'x es positivo y x >= y'
else
write(*,*) 'x es positivo pero, x < y'
endif
elseif (x < 0) then
write(*,*) 'x es negativo'
else
write(*,*) 'x es cero'
endif
Estructuras anidadas
Las estructuras pueden contener a
otras estructuras como
componentes.
Una estructura que tiene
componentes de tipo estructura se
llama estructura anidada.
Ejemplo
Ejemplo de estructuras anidadas
struct fecha{
int dia,mes,anyo;
};
struct persona{
char nombre[20];
char apellido[20];
fecha nacimiento;
int edad;
int sexo;
char CURP[19];
char telefono[20];
};
nombre apellido nacimiento edad sexo CURP telefono
dia mes año
Desplegar una fecha
void despliegaFecha(fecha f){
printf("%d de ",f.dia);
switch(f.mes){
case 1:printf("ene");break;
case 2:printf("feb");break;
case 3:printf("mar");break;
case 4:printf("abr");break;
case 5:printf("may");break;
case 6:printf("jun");break;
case 7:printf("jul");break;
case 8:printf("ago");break;
case 9:printf("sep");break;
case 10:printf("oct");break;
case 11:printf("nov");break;
case 12:printf("dic");break;
}
printf(" de %dn",f.anyo);
}
Acceso a estructuras
anidadas
Se puede acceder a los campos de una estructura
anidada mediante el operador “.”. Por ejemplo:
persona per,*per2;
per.nacimiento.dia = 5;
per.nacimiento.mes = 7;
per.nacimiento.anyo = 1998;
per2->nacimiento.dia = 1;
per2->nacimiento.mes = 8;
per2->nacimiento.anyo = 2005;
Note que el campo anidado se accede mediante el operador “.” y el no anidado
mediante “->”.
dia mes año
calle colonia ciudad estado pais numero
nombreapellidos
direccionDatos personales
nombre apellidos calle colonia ciudad estado pais num cp
fecha
direccionStruct
nombreStruct
Gráfico de las estructuras
depto trabajo
posicion
empleado
dirnom
nombre apellidos calle colonia ciudad estado pais num cp
nombredireccion
depto trabajo
trabajo salario numDepto fechaIngreso
dia mes año
estudiante
direccionDatos personales
nombre apellidos calle colonia ciudad estado pais num cp
nombredireccion carrera promedio creditos
Ejemplos
Despliega nombre y teléfono de los pacientes con la máxima gravedad.
for(i = 0;i<50;i++)
if(pas[i].condicion==5)
printf(“Nombre: %s, telefono: %sn”,
pas[i].nombre,pas[i].telefono);
Calcula porcentaje de pacientes hombres y mujeres
suma = 0;sumaF = 0;
for(i = 0;i<50;i++)
if(pas[i].sexo==‘H’)
sumaH++;
else
sumaF++;
printf(“% de Hombres= %.2fn”,sumaH/50*100);
printf(“% de Mujeres= %.2fn”,sumaF/50*100);
Estructuras anidadas
 Nada impide que los miembros de una estructura
sean a su vez tipos de datos estructurados, es
decir:
 Otras estructuras
 Arreglos
 Estas estructuras se denominan anidadas.
 Incuso pueden ser estructuras recursivas.
Ejemplo
struct fecha{
int dia,mes,anyo;
};
struct persona{
char nombre[20],apellido[20];
fecha nacimiento;
char sexo;
union{
struct {
float peso,estatura;
}varon;
struct {
int medidas[3];
}hembra;
};
};
Estructuras anidadas
struct punto{
double x;
double y;
};
struct circunferencia{
struct punto centro;
double radio;
};
Estructuras anidadas
double perimetro(struct circunferencia c){
return 2*PI*c.radio;
}
double area(struct circunferencia c){
return PI*c.radio*c.radio;
}
Estructuras anidadas
double distancia(struct punto p1, struct punto p2){
return sqrt( pow(p2.x+p1.x,2) + pow(p2.y+p1.y,2));
}
int intersectan(struct circunferencia c1,struct
circunferencia c2){
double dist = distancia(c1.centro, c2.centro);
printf("%.2f vs %.2fn",dist,c1.radio+c2.radio);
return (dist < c1.radio+c2.radio);
}
Estructuras anidadas
int main(){
struct circunferencia ca;
struct circunferencia cb;
ca.centro.x=0;
ca.centro.y=0;
ca.radio = 1;
cb.centro.x=1.9;
cb.centro.y=0;
cb.radio = 1;
printf("p:%.2f, a:%.2f, int?
%sn",perimetro(ca),area(ca),
(intersectan(ca,cb)?"Si":"No"));
}
Estructuras anidadas
Arbol binario:
Estructura formada
Con nodos de los
cuales cuelgan cero,
uno o dos hijos, lo
Cuales son a su vez
arboles binarios
Estructuras anidadas
Valor nulo  0
Puntero nulo  NULL
ESTRUCTURAS ANIDADAS
struct arbol_binario{
int valor;
struct arbol_binario hijo_derecho;
struct arbol_binario hijo_izquierdo;
};
struct arbol_binario{
int valor;
struct arbol_binario* hijo_derecho;
struct arbol_binario* hijo_izquierdo;
};
ESTRUCTURAS ANIDADAS
void mostrar(struct arbol_binario
arbol){
printf("%d ",arbol.valor);
if(arbol.hijo_derecho!=0)
mostrar(*arbol.hijo_derecho);
if(arbol.hijo_izquierdo!=0)
mostrar(*arbol.hijo_izquierdo);
}
Estructuras anidadas
int main(){
struct arbol_binario arbol;
struct arbol_binario hoja1;
struct arbol_binario hoja2;
hoja1.valor=1;
hoja1.hijo_derecho=0;
hoja1.hijo_izquierdo=0;
hoja2.valor=2;
hoja2.hijo_derecho=0;
hoja2.hijo_izquierdo=0;
arbol.valor=0;
arbol.hijo_derecho=&hoja1;
arbol.hijo_izquierdo=&hoja2;
mostrar(arbol);
}
int main(){
struct arbol_binario arbol;
struct arbol_binario hoja1;
struct arbol_binario hoja2;
hoja1.valor=1;
hoja1.hijo_derecho=0;
hoja1.hijo_izquierdo=0;
hoja2.valor=2;
hoja2.hijo_derecho=0;
hoja2.hijo_izquierdo=&arbol;
arbol.valor=0;
arbol.hijo_derecho=&hoja1;
arbol.hijo_izquierdo=&hoja2;
mostrar(arbol);
}
Estructuras anidadas
struct alumno{
int rol;
char dig;
double notas[3];
};
double promedio(struct alumno a){
return (a.notas[0] + a.notas[1] +
a.notas[2])/3.0;
}
Estructuras anidadas
int main(){
struct alumno a;
a.rol=1;
a.dig='1';
a.notas[0]=55;
a.notas[1]=50;
a.notas[2]=61;
printf("Prom:
%.2fn",promedio(a));
}
Según lo expresado, las estructuras de decisión simple y doble permiten seleccionar entre dos
alternativas posibles. Sin embargo, la instrucción SI-ENTONCES puede ser utilizada también en casos
de selección de más de dos alternativas. Esto es posible anidando estas instrucciones. Es decir, una
estructura SI-ENTONCES puede contener a otra, y esta a su vez a otra. La representación en
pseudocódigo es la siguiente:
SI <condición_1> ENTONCES
< sentencias_1 >
SINO
SI <condición_2> ENTONCES
< sentencias_2 >
SINO
SI <condición_3> ENTONCES
< sentencias_3 >
SINO
.
.
FIN-SI
FIN-SI
FIN-SI
Estructura de selección. Sentencias anidadas.
Como se puede observar, el anidamiento de
instrucciones alternativas permite ir descartando
valores hasta llegar al bloque de instrucciones
que se debe ejecutar.
En las instrucciones SI anidadas, las
instrucciones ENTONCES y FIN-SI se aplican
automáticamente a la instrucción SI anterior más
próxima.
A fin de que las estructuras anidadas sean más
fáciles de leer, es práctica habitual aplicar sangría
al cuerpo de cada una.
Ejemplo: Un sensor toma (lee) la temperatura ambiente y de
acuerdo al rango en que se encuentre, debe emitir un mensaje.
La escala es la siguiente:
Mayor que 100 “Temperatura muy alta – Mal
funcionamiento”
Entre 91 y 100 “Rango normal”
Entre 51 y 90 “Bajo el rango normal”
Menor que 50 “Muy frío – Apague el equipo”
ALGORITMO Sensor
INICIO
LEER temperatura
SI temperatura > 100 ENTONCES
ESCRIBIR “Temperatura muy alta – Mal funcionamiento”
SINO
SI temperatura > 90 ENTONCES
ESCRIBIR “Rango normal”
SINO
SI temperatura > 50 ENTONCES
ESCRIBIR “Bajo el rango normal”
SINO
ESCRIBIR “Muy frío – Apague equipo”
FIN-SI
FIN-SI
FIN-SI
FIN
Estructura de selección. Sentencias anidadas.
La sentencia IR-A (go to)
La sentencia GO TO pertenece a un grupo de sentencias conocidas como sentencias de salto
(jump). La característica de este grupo es hacer que el flujo de control salte a otra parte del
programa. Otras sentencias de este grupo son interrumpir o romper (BREAK), continuar
(CONTINUE), volver (RETURN), lanzar (THROW). Las dos primeras se utilizan generalmente con
sentencias de alternativa múltiple. Para retornar de la ejecución de funciones o métodos se usa
RETURN.
La sentencia GO TO se utilizaba mucho en los primeros lenguajes de programación porque era
la única manera de saltar de una instrucción del programa a otra.
Esta instrucción consta de una sentencia IR_A y una sentencia asociada con una etiqueta.
Cuando se ejecuta esta instrucción, se transfiere el control del programa a la etiqueta asociada.
Estructura de selección. Sentencias anidadas. Casos
Particulares
La sentencia IR-A (go to)
La representación en pseudocódigo es la siguiente:
INICIO
.
.
IR_A etiqueta_1
.
.
FIN
etiqueta_1:
. // El flujo salta aquí
El efecto de esta instrucción es transferir sin condiciones el control del programa a la etiqueta
especificada. Es una de las operaciones más primitivas para traspasar el control de una parte del
programa a otra. Sin embargo, su uso produce código inconsistente, incompleto o complicado de
mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la
comunidad informática se expresó a favor de otras sentencias de control (IF ó bucles FOR y DO-
WHILE) en lugar del GOTO.
Estructura de selección. Sentencias anidadas.
Casos Particulares
La sentencia IR-A (go to)
Tal creencia está tan arraigada que el GOTO es
muy criticado y desaconsejado por todos los que
se dedican a la enseñanza de la programación.
Si bien la instrucción GOTO puede parecer útil y
muy flexible, es precisamente en esa flexibilidad
donde radica su peligro y los motivos de su
obsolescencia.
6.5 Estructura de selección. Sentencias anidadas.
Casos Particulares
En un algoritmo puede existir y es muy frecuente que
existan 2 o más bucles. Dependiendo de la forma en
que estén dispuestos, estos pueden ser anidados o
independientes.
Decimos que los bucles están anidados cuando están
dispuestos de forma tal que unos son interiores a
otros; y los bucles serán independientes cuando son
extremos unos con otros.
Así como se podían anidar estructuras de selección,
también es posible insertar un bucle dentro de otro.
Las reglas para construir estructuras repetitivas
anidadas son iguales en ambos casos: la estructura
interna debe estar incluida totalmente dentro de la
externa y no puede existir solapamiento.
Diseño de bucles. Bucles Anidados
Diseño de bucles. Bucles Anidados
INDEPENDIENTES ANIDADAS
PERMITIDAS Y PROHIBIDAS
NIDOS CRUZADOS
SALIR DEL BUCLE ENTRAR AL BUCLE
Diseño de bucles. Bucles Anidados

Más contenido relacionado

La actualidad más candente

Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++ivanjvic
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y SolucionesVideoconferencias UTPL
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Nabor Chirinos
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeIntJerry
 
Ejercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaEjercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaDavid Rocha Bardales
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseintDon Augusto
 
Ejercicios de entidad relacion (2018-2)
Ejercicios de entidad relacion (2018-2)Ejercicios de entidad relacion (2018-2)
Ejercicios de entidad relacion (2018-2)JESUSFRANCISCOFLORES1
 
Importancia de-saber-programar
Importancia de-saber-programarImportancia de-saber-programar
Importancia de-saber-programarAndres Zazueta
 

La actualidad más candente (20)

Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 
Enunciados de casos para Bases de Datos
Enunciados de casos para Bases de DatosEnunciados de casos para Bases de Datos
Enunciados de casos para Bases de Datos
 
ejercicios-pascal
ejercicios-pascalejercicios-pascal
ejercicios-pascal
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
ESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADASESTRUCTURAS ANIDADAS
ESTRUCTURAS ANIDADAS
 
Colas
ColasColas
Colas
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
 
Ejercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaEjercicios de entidad relacion extendida
Ejercicios de entidad relacion extendida
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Ejercicios de entidad relacion (2018-2)
Ejercicios de entidad relacion (2018-2)Ejercicios de entidad relacion (2018-2)
Ejercicios de entidad relacion (2018-2)
 
Importancia de-saber-programar
Importancia de-saber-programarImportancia de-saber-programar
Importancia de-saber-programar
 
tipo de datos
tipo de datostipo de datos
tipo de datos
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 

Destacado

Presentatie ro cv a-roc f basis
Presentatie ro cv a-roc f basisPresentatie ro cv a-roc f basis
Presentatie ro cv a-roc f basisKees van Eijk
 
Solentive / InRule AADI Gartner Summit 2014
Solentive / InRule AADI Gartner Summit 2014Solentive / InRule AADI Gartner Summit 2014
Solentive / InRule AADI Gartner Summit 2014Solentive
 
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...NBPCSanDiego
 
Addressing the cloud computing security menace
Addressing the cloud computing security menaceAddressing the cloud computing security menace
Addressing the cloud computing security menaceeSAT Publishing House
 
Lecture ii indus valley civilization
Lecture ii  indus valley civilizationLecture ii  indus valley civilization
Lecture ii indus valley civilizationHena Dutt
 
Kaoru.K_portfolio_ADV124
Kaoru.K_portfolio_ADV124Kaoru.K_portfolio_ADV124
Kaoru.K_portfolio_ADV124Kaoru Kishigami
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativopvf79
 
Загадки о птицах
Загадки о птицахЗагадки о птицах
Загадки о птицахdrugsem
 
Power quality analysis using lab view
Power quality analysis using lab viewPower quality analysis using lab view
Power quality analysis using lab vieweSAT Publishing House
 
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...i2Coalition
 
Utilization of industrial waste in the construction industry
Utilization of industrial waste in the construction industryUtilization of industrial waste in the construction industry
Utilization of industrial waste in the construction industryeSAT Publishing House
 

Destacado (20)

Presentatie ro cv a-roc f basis
Presentatie ro cv a-roc f basisPresentatie ro cv a-roc f basis
Presentatie ro cv a-roc f basis
 
Solentive / InRule AADI Gartner Summit 2014
Solentive / InRule AADI Gartner Summit 2014Solentive / InRule AADI Gartner Summit 2014
Solentive / InRule AADI Gartner Summit 2014
 
Berkari 6.19
Berkari 6.19  Berkari 6.19
Berkari 6.19
 
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...
NBPC 1613 San Diego, CA Proposed 2014 bylaws draft_july_24_unanimous_consensu...
 
Physical
PhysicalPhysical
Physical
 
Leyes de gestalt
Leyes de gestaltLeyes de gestalt
Leyes de gestalt
 
Reosto ppt
Reosto pptReosto ppt
Reosto ppt
 
Addressing the cloud computing security menace
Addressing the cloud computing security menaceAddressing the cloud computing security menace
Addressing the cloud computing security menace
 
Lecture ii indus valley civilization
Lecture ii  indus valley civilizationLecture ii  indus valley civilization
Lecture ii indus valley civilization
 
Kaoru.K_portfolio_ADV124
Kaoru.K_portfolio_ADV124Kaoru.K_portfolio_ADV124
Kaoru.K_portfolio_ADV124
 
Computer Network
Computer NetworkComputer Network
Computer Network
 
history602
history602history602
history602
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
biology DNA
biology DNAbiology DNA
biology DNA
 
Ar
ArAr
Ar
 
Hydraulic cylinder trubleshoting
Hydraulic cylinder trubleshotingHydraulic cylinder trubleshoting
Hydraulic cylinder trubleshoting
 
Загадки о птицах
Загадки о птицахЗагадки о птицах
Загадки о птицах
 
Power quality analysis using lab view
Power quality analysis using lab viewPower quality analysis using lab view
Power quality analysis using lab view
 
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...
Webinar: Protect Your Customers, Protect Yourself Learn How to Take Precautio...
 
Utilization of industrial waste in the construction industry
Utilization of industrial waste in the construction industryUtilization of industrial waste in the construction industry
Utilization of industrial waste in the construction industry
 

Similar a ESTRUCTURAS ANIDADAS PRESENTACION

Informe tecnico marleni
Informe tecnico marleniInforme tecnico marleni
Informe tecnico marlenilenithoz
 
Tema-estructuras-c++.pdf
Tema-estructuras-c++.pdfTema-estructuras-c++.pdf
Tema-estructuras-c++.pdfSANTOS400018
 
GuíA De PráCtica 2
GuíA De PráCtica 2GuíA De PráCtica 2
GuíA De PráCtica 2louis
 
Estructuras fundamentales
Estructuras fundamentalesEstructuras fundamentales
Estructuras fundamentalesluis cedeño
 
Apuntes de estructuras nuevo
Apuntes de estructuras nuevoApuntes de estructuras nuevo
Apuntes de estructuras nuevopabesacv
 
Tema 9 www.fresymetal.com
Tema 9 www.fresymetal.comTema 9 www.fresymetal.com
Tema 9 www.fresymetal.comFresyMetal
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datosluna_72
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)luis freddy
 
Act. Individual.- Pseudocódigos y diagramas de flujo
 Act. Individual.- Pseudocódigos y diagramas de flujo Act. Individual.- Pseudocódigos y diagramas de flujo
Act. Individual.- Pseudocódigos y diagramas de flujoElizabeth Reyna
 

Similar a ESTRUCTURAS ANIDADAS PRESENTACION (20)

Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Informe tecnico marleni
Informe tecnico marleniInforme tecnico marleni
Informe tecnico marleni
 
Tema-estructuras-c++.pdf
Tema-estructuras-c++.pdfTema-estructuras-c++.pdf
Tema-estructuras-c++.pdf
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
GuíA De PráCtica 2
GuíA De PráCtica 2GuíA De PráCtica 2
GuíA De PráCtica 2
 
Estructuras fundamentales
Estructuras fundamentalesEstructuras fundamentales
Estructuras fundamentales
 
Apuntes de estructuras nuevo
Apuntes de estructuras nuevoApuntes de estructuras nuevo
Apuntes de estructuras nuevo
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
Tema 9 www.fresymetal.com
Tema 9 www.fresymetal.comTema 9 www.fresymetal.com
Tema 9 www.fresymetal.com
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Programación de código
Programación de códigoProgramación de código
Programación de código
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
CLASE 05.pdf
CLASE 05.pdfCLASE 05.pdf
CLASE 05.pdf
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Act. Individual.- Pseudocódigos y diagramas de flujo
 Act. Individual.- Pseudocódigos y diagramas de flujo Act. Individual.- Pseudocódigos y diagramas de flujo
Act. Individual.- Pseudocódigos y diagramas de flujo
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 

Más de Carlos Gabriel Tipula Yanapa (13)

La interculturalidad en puno y peru power point
La interculturalidad en puno y peru power pointLa interculturalidad en puno y peru power point
La interculturalidad en puno y peru power point
 
Interculturalidad en puno y peru
Interculturalidad en puno y peruInterculturalidad en puno y peru
Interculturalidad en puno y peru
 
S10
S10S10
S10
 
Matematica concepto presentacion
Matematica concepto presentacionMatematica concepto presentacion
Matematica concepto presentacion
 
Matematica concepto
Matematica conceptoMatematica concepto
Matematica concepto
 
EL COMPAS SIMPLE
EL COMPAS SIMPLEEL COMPAS SIMPLE
EL COMPAS SIMPLE
 
EL COMPAS SIMPLE
EL COMPAS SIMPLEEL COMPAS SIMPLE
EL COMPAS SIMPLE
 
EL TEATRO
EL TEATROEL TEATRO
EL TEATRO
 
EL COMPAS SIMPLE
EL COMPAS SIMPLEEL COMPAS SIMPLE
EL COMPAS SIMPLE
 
EL TEATRO
EL TEATROEL TEATRO
EL TEATRO
 
LA DANZA
LA DANZALA DANZA
LA DANZA
 
LOS SIGNOS MUSICALES
LOS SIGNOS MUSICALESLOS SIGNOS MUSICALES
LOS SIGNOS MUSICALES
 
EL COMPÁS SIMPLE
EL COMPÁS SIMPLEEL COMPÁS SIMPLE
EL COMPÁS SIMPLE
 

Último

Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxPaolaVillalba13
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...ssuser646243
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 

Último (20)

Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptx
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 

ESTRUCTURAS ANIDADAS PRESENTACION

  • 1. UNIVERSIDAD ANDINA “NÉSTOR CÁCERES VELÁSQUEZ” FACULTAD DE INGENIERÍA Y CIENCIAS PURAS CAP INGENIERÍA CIVIL TEMA : Estructuras anidadas Presentado Por : Apaza Coaquira Edward Jhonatan Choque Istalla Pablo Roberto Galarza Gonzales Anthony Jhosep Tipula Yanapa Carlos Gabriel Calcina Aza Joel
  • 2. Estructura program circulo Real :: r, area write (*,*) 'Escribe el radio r:' read (*,*) r area = 3.14159*r*r write (*,*) 'Area = ', area stop end Este programa lee un número real r y muestra el área del círculo con radio r.
  • 3. UNIONES ES SIMILAR A LA DE "ESTRUCTURA", LA DIFERENCIA ENTRE LAS DOS ES QUE EN UNA ESTRUCTURA, LOS MIEMBROS OCUPAN DIFERENTES ÁREAS DE LA MEMORIA, PERO EN UNA UNIÓN, LOS MIEMBROS OCUPAN LA MISMA ÁREA DE MEMORIA.
  • 4. Uniones Una unión es una estructura en la que se comparte una región de memoria para almacenar datos de tipos distintos. El tamaño de la unión es igual al del tipo de datos más grande. union prueba{ int a; float b; char c; }; main(){ prueba x; x.a = 5; printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c); x.b = 5.0; printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c); x.c = '5'; printf("a= %d, b= %f, c= %cn",x.a,x.b,x.c); getch(); } b prueba c a a= 5, b= 0.000000, c= ♣ a= 1084227584, b= 5.000000, c= a= 1084227637, b= 5.000025, c= 5
  • 5. Estructuras y Uniones En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que serían muy difícil de describir en los tipos de datos primitivos, esta es la situación en la que debemos aprovecharnos de las características que hacen al lenguaje C especial, o sea el uso de estructuras, uniones y punteros . Programación en C/Estructuras y Uniones
  • 6. Una estructura puede estar dentro de otra estructura a esto se le conoce como anidamiento o estructuras anidadas. Ya que se trabajan con datos en estructuras si definimos un tipo de dato en una estructura y necesitamos definir ese dato dentro de otra estructura solamente se llama el dato de la estructura anterior. Estructuras Anidadas
  • 7.
  • 8. Estructuras Anidados if (x > 0) then if (x >= y) then write(*,*) 'x es positivo y x >= y' else write(*,*) 'x es positivo pero, x < y' endif elseif (x < 0) then write(*,*) 'x es negativo' else write(*,*) 'x es cero' endif
  • 9. Estructuras anidadas Las estructuras pueden contener a otras estructuras como componentes. Una estructura que tiene componentes de tipo estructura se llama estructura anidada.
  • 10. Ejemplo Ejemplo de estructuras anidadas struct fecha{ int dia,mes,anyo; }; struct persona{ char nombre[20]; char apellido[20]; fecha nacimiento; int edad; int sexo; char CURP[19]; char telefono[20]; }; nombre apellido nacimiento edad sexo CURP telefono dia mes año
  • 11. Desplegar una fecha void despliegaFecha(fecha f){ printf("%d de ",f.dia); switch(f.mes){ case 1:printf("ene");break; case 2:printf("feb");break; case 3:printf("mar");break; case 4:printf("abr");break; case 5:printf("may");break; case 6:printf("jun");break; case 7:printf("jul");break; case 8:printf("ago");break; case 9:printf("sep");break; case 10:printf("oct");break; case 11:printf("nov");break; case 12:printf("dic");break; } printf(" de %dn",f.anyo); }
  • 12. Acceso a estructuras anidadas Se puede acceder a los campos de una estructura anidada mediante el operador “.”. Por ejemplo: persona per,*per2; per.nacimiento.dia = 5; per.nacimiento.mes = 7; per.nacimiento.anyo = 1998; per2->nacimiento.dia = 1; per2->nacimiento.mes = 8; per2->nacimiento.anyo = 2005; Note que el campo anidado se accede mediante el operador “.” y el no anidado mediante “->”.
  • 13. dia mes año calle colonia ciudad estado pais numero nombreapellidos direccionDatos personales nombre apellidos calle colonia ciudad estado pais num cp fecha direccionStruct nombreStruct Gráfico de las estructuras
  • 14. depto trabajo posicion empleado dirnom nombre apellidos calle colonia ciudad estado pais num cp nombredireccion depto trabajo trabajo salario numDepto fechaIngreso dia mes año estudiante direccionDatos personales nombre apellidos calle colonia ciudad estado pais num cp nombredireccion carrera promedio creditos
  • 15. Ejemplos Despliega nombre y teléfono de los pacientes con la máxima gravedad. for(i = 0;i<50;i++) if(pas[i].condicion==5) printf(“Nombre: %s, telefono: %sn”, pas[i].nombre,pas[i].telefono); Calcula porcentaje de pacientes hombres y mujeres suma = 0;sumaF = 0; for(i = 0;i<50;i++) if(pas[i].sexo==‘H’) sumaH++; else sumaF++; printf(“% de Hombres= %.2fn”,sumaH/50*100); printf(“% de Mujeres= %.2fn”,sumaF/50*100);
  • 16. Estructuras anidadas  Nada impide que los miembros de una estructura sean a su vez tipos de datos estructurados, es decir:  Otras estructuras  Arreglos  Estas estructuras se denominan anidadas.  Incuso pueden ser estructuras recursivas.
  • 17. Ejemplo struct fecha{ int dia,mes,anyo; }; struct persona{ char nombre[20],apellido[20]; fecha nacimiento; char sexo; union{ struct { float peso,estatura; }varon; struct { int medidas[3]; }hembra; }; };
  • 18.
  • 19.
  • 20. Estructuras anidadas struct punto{ double x; double y; }; struct circunferencia{ struct punto centro; double radio; };
  • 21. Estructuras anidadas double perimetro(struct circunferencia c){ return 2*PI*c.radio; } double area(struct circunferencia c){ return PI*c.radio*c.radio; }
  • 22. Estructuras anidadas double distancia(struct punto p1, struct punto p2){ return sqrt( pow(p2.x+p1.x,2) + pow(p2.y+p1.y,2)); } int intersectan(struct circunferencia c1,struct circunferencia c2){ double dist = distancia(c1.centro, c2.centro); printf("%.2f vs %.2fn",dist,c1.radio+c2.radio); return (dist < c1.radio+c2.radio); }
  • 23. Estructuras anidadas int main(){ struct circunferencia ca; struct circunferencia cb; ca.centro.x=0; ca.centro.y=0; ca.radio = 1; cb.centro.x=1.9; cb.centro.y=0; cb.radio = 1; printf("p:%.2f, a:%.2f, int? %sn",perimetro(ca),area(ca), (intersectan(ca,cb)?"Si":"No")); }
  • 24. Estructuras anidadas Arbol binario: Estructura formada Con nodos de los cuales cuelgan cero, uno o dos hijos, lo Cuales son a su vez arboles binarios
  • 25. Estructuras anidadas Valor nulo  0 Puntero nulo  NULL
  • 26. ESTRUCTURAS ANIDADAS struct arbol_binario{ int valor; struct arbol_binario hijo_derecho; struct arbol_binario hijo_izquierdo; }; struct arbol_binario{ int valor; struct arbol_binario* hijo_derecho; struct arbol_binario* hijo_izquierdo; };
  • 27. ESTRUCTURAS ANIDADAS void mostrar(struct arbol_binario arbol){ printf("%d ",arbol.valor); if(arbol.hijo_derecho!=0) mostrar(*arbol.hijo_derecho); if(arbol.hijo_izquierdo!=0) mostrar(*arbol.hijo_izquierdo); }
  • 28. Estructuras anidadas int main(){ struct arbol_binario arbol; struct arbol_binario hoja1; struct arbol_binario hoja2; hoja1.valor=1; hoja1.hijo_derecho=0; hoja1.hijo_izquierdo=0; hoja2.valor=2; hoja2.hijo_derecho=0; hoja2.hijo_izquierdo=0; arbol.valor=0; arbol.hijo_derecho=&hoja1; arbol.hijo_izquierdo=&hoja2; mostrar(arbol); } int main(){ struct arbol_binario arbol; struct arbol_binario hoja1; struct arbol_binario hoja2; hoja1.valor=1; hoja1.hijo_derecho=0; hoja1.hijo_izquierdo=0; hoja2.valor=2; hoja2.hijo_derecho=0; hoja2.hijo_izquierdo=&arbol; arbol.valor=0; arbol.hijo_derecho=&hoja1; arbol.hijo_izquierdo=&hoja2; mostrar(arbol); }
  • 29. Estructuras anidadas struct alumno{ int rol; char dig; double notas[3]; }; double promedio(struct alumno a){ return (a.notas[0] + a.notas[1] + a.notas[2])/3.0; }
  • 30. Estructuras anidadas int main(){ struct alumno a; a.rol=1; a.dig='1'; a.notas[0]=55; a.notas[1]=50; a.notas[2]=61; printf("Prom: %.2fn",promedio(a)); }
  • 31. Según lo expresado, las estructuras de decisión simple y doble permiten seleccionar entre dos alternativas posibles. Sin embargo, la instrucción SI-ENTONCES puede ser utilizada también en casos de selección de más de dos alternativas. Esto es posible anidando estas instrucciones. Es decir, una estructura SI-ENTONCES puede contener a otra, y esta a su vez a otra. La representación en pseudocódigo es la siguiente: SI <condición_1> ENTONCES < sentencias_1 > SINO SI <condición_2> ENTONCES < sentencias_2 > SINO SI <condición_3> ENTONCES < sentencias_3 > SINO . . FIN-SI FIN-SI FIN-SI Estructura de selección. Sentencias anidadas. Como se puede observar, el anidamiento de instrucciones alternativas permite ir descartando valores hasta llegar al bloque de instrucciones que se debe ejecutar. En las instrucciones SI anidadas, las instrucciones ENTONCES y FIN-SI se aplican automáticamente a la instrucción SI anterior más próxima. A fin de que las estructuras anidadas sean más fáciles de leer, es práctica habitual aplicar sangría al cuerpo de cada una.
  • 32. Ejemplo: Un sensor toma (lee) la temperatura ambiente y de acuerdo al rango en que se encuentre, debe emitir un mensaje. La escala es la siguiente: Mayor que 100 “Temperatura muy alta – Mal funcionamiento” Entre 91 y 100 “Rango normal” Entre 51 y 90 “Bajo el rango normal” Menor que 50 “Muy frío – Apague el equipo” ALGORITMO Sensor INICIO LEER temperatura SI temperatura > 100 ENTONCES ESCRIBIR “Temperatura muy alta – Mal funcionamiento” SINO SI temperatura > 90 ENTONCES ESCRIBIR “Rango normal” SINO SI temperatura > 50 ENTONCES ESCRIBIR “Bajo el rango normal” SINO ESCRIBIR “Muy frío – Apague equipo” FIN-SI FIN-SI FIN-SI FIN Estructura de selección. Sentencias anidadas.
  • 33. La sentencia IR-A (go to) La sentencia GO TO pertenece a un grupo de sentencias conocidas como sentencias de salto (jump). La característica de este grupo es hacer que el flujo de control salte a otra parte del programa. Otras sentencias de este grupo son interrumpir o romper (BREAK), continuar (CONTINUE), volver (RETURN), lanzar (THROW). Las dos primeras se utilizan generalmente con sentencias de alternativa múltiple. Para retornar de la ejecución de funciones o métodos se usa RETURN. La sentencia GO TO se utilizaba mucho en los primeros lenguajes de programación porque era la única manera de saltar de una instrucción del programa a otra. Esta instrucción consta de una sentencia IR_A y una sentencia asociada con una etiqueta. Cuando se ejecuta esta instrucción, se transfiere el control del programa a la etiqueta asociada. Estructura de selección. Sentencias anidadas. Casos Particulares
  • 34. La sentencia IR-A (go to) La representación en pseudocódigo es la siguiente: INICIO . . IR_A etiqueta_1 . . FIN etiqueta_1: . // El flujo salta aquí El efecto de esta instrucción es transferir sin condiciones el control del programa a la etiqueta especificada. Es una de las operaciones más primitivas para traspasar el control de una parte del programa a otra. Sin embargo, su uso produce código inconsistente, incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la comunidad informática se expresó a favor de otras sentencias de control (IF ó bucles FOR y DO- WHILE) en lugar del GOTO. Estructura de selección. Sentencias anidadas. Casos Particulares
  • 35. La sentencia IR-A (go to) Tal creencia está tan arraigada que el GOTO es muy criticado y desaconsejado por todos los que se dedican a la enseñanza de la programación. Si bien la instrucción GOTO puede parecer útil y muy flexible, es precisamente en esa flexibilidad donde radica su peligro y los motivos de su obsolescencia. 6.5 Estructura de selección. Sentencias anidadas. Casos Particulares
  • 36. En un algoritmo puede existir y es muy frecuente que existan 2 o más bucles. Dependiendo de la forma en que estén dispuestos, estos pueden ser anidados o independientes. Decimos que los bucles están anidados cuando están dispuestos de forma tal que unos son interiores a otros; y los bucles serán independientes cuando son extremos unos con otros. Así como se podían anidar estructuras de selección, también es posible insertar un bucle dentro de otro. Las reglas para construir estructuras repetitivas anidadas son iguales en ambos casos: la estructura interna debe estar incluida totalmente dentro de la externa y no puede existir solapamiento. Diseño de bucles. Bucles Anidados
  • 37. Diseño de bucles. Bucles Anidados INDEPENDIENTES ANIDADAS PERMITIDAS Y PROHIBIDAS NIDOS CRUZADOS SALIR DEL BUCLE ENTRAR AL BUCLE
  • 38. Diseño de bucles. Bucles Anidados