curso9 estructuras
TRANSCRIPT
![Page 1: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/1.jpg)
9. Estructuras
![Page 2: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/2.jpg)
• La estructura (struct) es un tipo de dato definido por el usuario. • En otros lenguajes de programación se les conoce como registros
(record). • Es el fundamento para la construcción de clases en programación
orientada a objetos.
• Una estructura contiene miembros, los cuáles son tipos de datos primitivos o en su caso otras estructuras.
• Estos tipos de datos pueden acomodarse en arreglos, listas con punteros o archivos.
• Los elementos de la estructura deben ser asociados a la entidad que los define, así que la estructura de un alumno, tendría como elementos a:
nombre, número de cuenta, fecha de nacimiento, escuela, carrera, dirección, teléfono, entre otros.
Estructuras
![Page 3: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/3.jpg)
El formato general de la estructura es:
Struct nombre_estructura{ tipo de dato dato_miembro1;tipo de dato dato_miembro2;tipo de dato dato_miembro3;…….}; // ojo con el ; es obligatorio //
Estructuras
![Page 4: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/4.jpg)
Ejemplos de definiciones de estructura:Coordenadas de un punto en el cuadrante x,y: struct punto { int x; Int y; };
Componentes de un número complejo: struct complejo { double x; double y; };
Identificación de un alumno: struct alumno { double cuenta; char nombre[30]; char escuela[50]; char fechanac[10]; char plantel[15]; };
Estructuras
![Page 5: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/5.jpg)
A estas estructuras se les deberá asignar ahora un nombre de variable, ya que son tipos de datos. Para utilizar sus elementos se debe utilizar el operador de referencia punto.
Ejemplos: Punto puntox;Puntox.x = 10;Puntox.y = 100;
Dentro de una función, quedaría:Void funct(){ alumno ralumno;Ralumno.nombre = “José Gonzalez”;Ralumno.cuenta = 123456;}
Estructuras
![Page 6: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/6.jpg)
El manejo mediante apuntadores sería:
Punto puntox; // se define una variable del tipo estructuraPunto *ptrx = puntox; //se define un apuntador del tipo estructura y queapunta a la localidad de la variable puntoxptrx -> x = 10; // en lugar del punto se utiliza la flecha ->ptrx -> y = 100;
Estructuras
![Page 7: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/7.jpg)
Finalmente un ejemplo de estructura anidada es:struct equipo{ struct Dirección;{ Char calle[30];Char población [20];Char estado[15];Long codpostal;}Char nombre[10];Dirección patrocinador;}
Estructuras
![Page 8: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/8.jpg)
Uso de estructuras dentro de un arreglo
Considérese la siguiente estructura:
Struct cliente{ char nombre [20];Direccion [20];Saldo_deudor double;}
Para definir un arreglo de clientes: cliente arr_cltes [100];
El siguiente código muestra un manejo simple de un struct:
Estructuras
![Page 9: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/9.jpg)
#include <iostream>using namespace std;struct cliente{ char nombre [20];char direccion [20];double saldo_deudor;};cliente arr_cltes [10];
……………
Estructuras
![Page 10: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/10.jpg)
void main(){ int i;for (i=0; i < 5; i++) // se carga el arreglo{ cout << "\ncliente no. " << i;cout << "\t nombre: "; cin >> arr_cltes[i].nombre;cout << "\n\t direccion: "; cin >> arr_cltes[i].direccion;cout << "\n\t saldo deudor: "; cin >> arr_cltes[i].saldo_deudor;}for (i=0; i < 5; i++) // se muestra el arreglo{ cout << "\ncliente no. " << i;cout << "\tnombre: " << arr_cltes[i].nombre;cout << "\n\t\tdireccion: " << arr_cltes[i].direccion;cout << "\n\t\tsaldo deudor: " << arr_cltes[i].saldo_deudor;}}
Estructuras
![Page 11: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/11.jpg)
Actividad:
Se desea llevar el control de las calificaciones de los alumnos con un registro que contenga los siguientes elementos:No. De cuentaApellido paternoApellido maternoNombreClave de carreraAsistencias del periodoFaltas del periodoPromedio de tareasCalificación de examen
El control debe contar con las siguientes operaciones:Alta de alumnosBaja de alumnosBúsqueda de alumnos por apellido (devuelve localización en el arreglo)Actualización de: asistencias, faltas, promedio de tareas y calificación de examenReporte de resultados: …..(con cálculos)………………………
Estructuras
![Page 12: Curso9 estructuras](https://reader035.vdocuments.co/reader035/viewer/2022071822/55b89a46bb61eb254d8b479c/html5/thumbnails/12.jpg)
Cuenta |Nombre completo|Carrera|Asistencias|Faltas|prom.|Examen|tareas|examen| finaltareas 30% 70%99999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.499999 afgsdf 302 2 1 8 10 2.4 7.0 9.4
Estructuras