ESTRUCTURAS DE DATOS 2.

Slides:



Advertisements
Presentaciones similares
Estructuras en C++ Roger Morera Fallas.
Advertisements

Listas enlazadas c++ Prof. Franklin Cedeño.
Repaso para la construcción del intérprete 2012
Clase 3: Punteros y Referencias
Programación I Teoría III
Programación I Teoría IV
Programación, Algoritmos y Estructuras de Datos
Direcciones, Arreglos y Argumentos de Funciones
Estructuras de datos. Programación, Algoritmos y Estructuras de Datos.
Funciones. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Punteros Universidad Nacional Mayor de San Marcos
ESTRUCTURAS DE DATOS.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
Estructuras Compuestas.
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.

Almacenamiento y Recuperación de la Información 2do Semestre 2005 Wenceslao Palma M.
Diseño de algoritmos “Estructuras”
Diseño de algoritmos “Punteros”
Tema 9 Estructuras.
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
Arreglos.
Informática Ingeniería en Electrónica y Automática Industrial
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Índice. Revisando conceptos acerca de la memoria.
Archivos.
Estructuras.
Unidad VI Registros (estructuras, uniones y enumeraciones)
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
PUNTEROS Ing Anghello Quintero.
El lenguaje de programación C - Vectores y matrices -
Introducción a los punteros Prof. Domingo Hernández.
TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Informática Ingeniería en Electrónica y Automática Industrial
Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM.
Programación en C para electrónicos
Punteros.
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
APUNTADORES.
Los punteros Programación modular.
Programación Procedural y Recursiva en C++
Sesión 2. Este algoritmo ordena un arreglo de forma ascendente o descendente comparando la casilla de arriba con la casilla consecutiva de abajo, utiliza.
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Registros Departamento de Computación
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
LENGUAJE “C” Programación.
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados.
PUNTEROS EN EL LENGUAJE C
EL TIPO DE DATO LOGICO y constantes.
PARCIAL III Tipo de datos estructurados. DATO Información en volumen, sin ningún significado Dado un enunciado, evento o acción, los datos Permiten representar.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
Programación I :: Prof. Yeniffer Peña Conceptos Avanzados de Programación Presentación.
Puntero #include int main(int argc, char *argv[]) { int myVar = 378; printf("El valor de la variable es: %d\n", myVar); printf("Dirección de memoria de.
Transcripción de la presentación:

ESTRUCTURAS DE DATOS 2

Agenda Resumen clase anterior Tamaño de una estructura. Arreglo de Estructuras. Apuntadores a estructuras Estructuras Anidadas

RESUMEN – INTROD. Ejemplo: Estructura ‘estudiante de Informática 1’ Se puede utilizar una estructura para almacenar diferentes tipos de información sobre una persona, tal como nombre, estado civil, edad, fecha de nacimiento,… Ejemplo: Estructura ‘estudiante de Informática 1’ MIEMBROS Nombre Cedula Correo Electrónico Nota Teória Nota Laboratorio Faltas TIPOS DE DATOS Cadena de Caracteres max 50 Cadena de Caracteres max 15 Numerico flotante Numerico entero.

Declaración de Estructura “Estudiante Informatica1” REPASO Declaración de Estructura “Estudiante Informatica1” struct estudianteInform1 { char nombre[50]; char cedula[15]; char email[50]; float notaTeorica; float notaLab; int faltas; } ; struct nombreDeLaEstructura { tipoDeDatoMiembro1 nombreMiembro1; tipoDeDatoMiembro2 nombreMiembro2; ... tipoDeDatoMiembroN nombreMiembroN; } ;

Inicialización de Variables tipo estructura Cuando se declara una variable, se reserva espacio en memoria. cd1 titulo … struct cdsMusica { char titulo[40]; char artista[40]; char genero[15]; int numCanciones; int lanzamiento; int precio; }; artista struct cdsMusica cd1= { “The Best Of 1980-1990", “U2", “Rock” , 15, 1998, 30000 }; genero Num Canc. año Lanza. struct cdsMusica cd1; precio

ACCESO A ESTRUCTURAS Variables tipo Estructura Una Variable tipo estructura, así tenga internamente otros tipos de datos(No importa cuantos ni cuales), se sigue considerando como UNA SOLA VARIABLE. Se puede copiar todo el contenido de variable tipo estructura a otra que tenga el mismo tipo de estructura cd1=cd2; //Todo el contenido de cd2 se copia en cd1

ACCESO A ESTRUCTURAS cd1=cd2; cd1 cd2 Variables tipo Estructura titulo … titulo … struct cdsMusica cd2,cd1= { “The Best Of 1980-1990", “U2", “Rock” , 15, 1998, 50000 }; artista artista genero genero Num Canc. Num Canc. cd1=cd2; año Lanza. año Lanza. precio precio

Variables tipo Estructura ACCESO A ESTRUCTURAS cd1=cd2; //Todo el contenido de cd2 se copia en cd1 Un elemento especifico dentro de una variable estructura se puede accesar por medio del operador “.” ó “->” (Con apuntadores). nombreVarEstructura.nombreMiembro = dato; Cada miembro de una variable estructura se maneja como si fuera otra variable común y corriente.

ACCESO A ESTRUCTURAS cd1 Variables tipo Estructura cd1 struct cdsMusica { char titulo[40]; char artista[40]; char genero[15]; int numCanciones; int lanzamiento; int precio; }; int main(void){ struct cdsMusica cd1; ….. cd1.numCanciones=10; cd1.precio=30000; printf(“%d”, cd1.precio); ……. strcpy(cd1.titulo, "The Best"); } titulo … artista genero Num Canc. 10 año Lanza. precio 30000 Como copia una cadena de caracteres a un miembro de un estructura que es tipo cadena de caracteres? Ejemplo a titulo

RECUERDE …… Un arreglo es ….. La dirección de un arreglo se obtiene …. RESUMEN RECUERDE …… Un arreglo es ….. La dirección de un arreglo se obtiene …. Una estructura es… Una colección de varios datos bajo un nombre general. Una estructura es una VARIABLE. La dirección de una estructura se obtiene….

TAMAÑO DE UNA ESTRUCTURA El operador sizeof se puede aplicar para determinar el tamaño en bytes que ocupa en memoria una estructura, u otra variable struct cdsMusica cd1; tam=sizeof(cd1); printf ("El tamaño en Bytes de cd1 es: %d \n",tam) ; Tipo de Datos Tamaño Bytes char 1 booleano 2 int 4 float

ARREGLOS DE ESTRUCTURAS struct cdsMus{ char titulo[20]; char autor[20]; int numCanc; int lanz; }; ERROR!!! Se define un arreglo de variables del tipo struct cdsMus: struct cdsMus cds[10]; Se Accede a la variable estructura dentro del arreglo: cds[0]=cds[1]; //Se copia toda la información Se puede acceder a cualquier miembro de cualquiera de las variables estructura del arreglo cds[0].numCanc=10; cds[3].titulo="Los cañonazos"; printf("El titulo del CD3 es: %s\n", cds[3].titulo);

#include <stdio.h> struct cdsMus{ char titulo[20]; char autor[20]; int numCanc; int lanz; char flag; }; int main(void){ struct cdsMus cds[10]; int opc; printf("\n PROGRAMA PARA MANEJAR COLECCION DE CDS (Max10) \n"); while(1){ printf("\n1. para modificar 2.para consultar\n"); scanf("%d",&opc); if(opc==1){ printf("\nIngrese el # del CD a modificar:\n"); printf("-----------------------------\n"); printf("Ingrese el titulo del CD%d: ",opc); scanf("%s",cds[opc].titulo); printf("Ingrese el autor del CD%d: ",opc); scanf("%s",cds[opc].autor); printf("Ingrese el NumCanciones del CD%d: ",opc); scanf("%d",&cds[opc].numCanc); printf("Ingrese el agno de lanzamiento del CD%d: ",opc); scanf("%d",&cds[opc].lanz); cds[opc+1]=cds[opc]; //Se copia el cd[i] a cd[i+1] } else if(opc==2){ printf("\nIngrese el # del CD a visualizar\n"); printf("El titulo del CD%d es: %s\n",opc,cds[opc].titulo); printf("El autor del CD%d es: %s\n",opc,cds[opc].autor); printf("El #canciones del CD%d es: %d\n",opc,cds[opc].numCanc); printf("El lanzamiento del CD%d fue %d\n",opc,cds[opc].lanz); else{} return 0;

APUNTADORES A ESTRUCTURAS struct estudiante{ char Nombre[40]; int numEstudiante; int agnoMatricula; float nota; }; Se define una variable estud1 del tipo struct estudiante: struct estudiante estud1={"Jose" , 4 , 2009 , 4.5}; Se define una variable puntero para apuntar a variables del tipo struct estudiante: struct estudiante *ptrEstruct; Apunte con ptrEstruct a la variable estud1: ptrEstruct=&estud1; El operador puntero, ->, sirve para acceder a los datos de la estructura a partir de un apuntador. printf("La nota de estud1 es %d", ptrEstruct->nota); //Es lo mismo que printf("La nota de estud1 es %d", estud1.nota);

Ejemplo: APUNTADORES A ESTRUCTURAS #include <stdio.h> struct estudiante{ char Nombre[40]; int numEstudiante; int agnoMatricula; float nota; }; int main(void){ struct estudiante estud1={"Jose" , 4 , 2009 , 4.5}; struct estudiante *ptrEstruct; ptrEstruct=&estud1; printf("La nota de estud1 es %.2f (Con Apuntador)\n", ptrEstruct->nota); //Metodo1 printf("La nota de estud1 es %.2f (Sin Apuntador)\n", estud1.nota); //Metodo2 getchar(); return 0; }

Estructuras anidadas Los campos de las estructuras puede ser la combinación de los siguientes datos: Variables: char, int, double,…. Apuntadores Arreglos de variable OTRA ESTRUCTURA Cliente struct cliente{ char nombre[20]; struct direccion direc; int saldo; }; Dirección Nombre Saldo Cll Num Ciu Estudiante struct estudiante{ char nombre[20]; int codigo; struct notas notaEst; }; Notas Nombre Código N1 N2 N3

Estructuras anidadas(2) Cliente Dirección Nombre Saldo Cll Num Ciu struct direccion{ char cll[5]; char num[5]; char ciu[15]; } ; struct cliente{ char nombre[20]; struct direccion direc; int saldo; }; struct cliente{ char nombre[20]; struct direccion direc; int saldo; }; struct cliente{ char nombre[20]; struct direccion{ char cll[5]; char num[5]; char ciud[15]; } direc; int saldo; };

Bibliografía Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo10. Google

GRACIAS