La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de Datos Introducción. Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional.

Presentaciones similares


Presentación del tema: "Estructuras de Datos Introducción. Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional."— Transcripción de la presentación:

1 Estructuras de Datos Introducción

2 Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional

3 Programa: Un conjunto de instrucciones especificadas en un lenguaje de programación que definen el proceso que se efectúa sobre los datos Al ejecutarse el programa, se lleva a cabo un proceso computacional

4 Los programas están constituidos por instrucciones que invocan a las operaciones elementales. Ej: Operación elemental de mover un dato de un “sitio” a otro. Instrucción que la invoca: mov origen,destino (ensamblador) La memoria es donde son ejecutados los programas

5 Las variables: - Son un espacio de memoria - Almacenan un dato - Se puede cambiar el dato que almacenan durante el trascurso del programa mediante una asignación - Pertenecen a un tipo de dato  Ver luego

6 Operadores: Permiten aplicar una función predefinida por el lenguaje sobre uno o más valores de algún tipo nativo llamados operandos. Ej: +, -,*,/ etc. Los términos o expresiones son construcciones que permiten representar un valor Ej: 10/2 Se construyen mediante operadores.

7 Ejemplos en C/C++ int a;//Se declara la vble entera a float b;//Se declara la vble real b char sexo= ' m ' ; //Declara y asigna la vble sexo a=5;//Se asigna a a el valor 5 b=1+ 2*(4/3);//Se asigna a b el valor de una expresión a=a+ b*4;//Se asigna a a el valor de una expresión ¿Después de la última asignación cuánto vale a? Para evitar pérdida de decimales se debe realizar: b=1+ 2* (float)4/3;

8 Entrada (por teclado) y salida de datos (por pantalla): Ej. En C: int a; printf("Entre un número entero"); scanf("%d",&a); fflush(stdin); printf("El valor de a es %d",a); Nota: scanf tiene otros problemas aparte del manejo del buffer…

9 También por medio de cout y cin (C++): int a; cout << "Entre un número entero"; cin >> a; cout << "El valor de a es" << a;

10 Estructuras de Control de flujo Decisión: if(condición) { //Código del if } else { //Código del else } Puede haber if’s anidados… switch (expresión * ) { case constante1: bloque de código; break; case constante2: bloque de código; break; default: bloque de código; } * Entera o un (sólo uno) carácter El uso de break es opcional en el default

11 Iteración: Ciclo for: for(int vble=valor; condición;vble+incremento) { //Código dentro del ciclo } Ciclo while: while(condición) { //Código del ciclo } Ciclo do while: do{ //Código del ciclo } while(condición);

12 Funciones: Son agrupaciones de instrucciones que llevan a cabo una tarea específica. Declaración: tipo_de_vble_de_retorno nombre_funcion ( tipo_arg_1 nombre_arg_1,..., tipo_arg_n nombre_arg_n) { /*Código de la función*/ return nombre_variable_retorno; } Debe ser del mismo tipo que tipo_de_vble_de_retorno

13 Un tipo de datos es un conjunto de elementos con características comunes, sobre los cuales se definen determinadas operaciones. Consta de dos partes: - Un conjunto de valores - Un conjunto de operaciones sobre dichos valores Al conjunto de valores que incluye un tipo de dato se le conoce como dominio o rango

14 Tipos de datos nativos Los tipos de datos nativos son aquellos ofrecidos por un lenguaje de programación. Ej: En C/C++: TipoOperaciones: int suma, resta, producto etc. doublesuma, resta, producto etc. charconcatenar, longitud, etc. Por ejemplo el rango de int es -32768 a 32767

15 Tipos de datos definidos por el usuario: Simples: A través de typedef: Ej: typedef int edad; //Define el tipo de dato edad miedad = 14; //Vble de tipo edad “Complejos”: Las clases  Énfasis en Curso de Objetos

16 Los tipos de datos también se pueden clasificar así: Tipos de datos Escalares Son aquellos tipos de datos cuyos miembros están compuestos por un solo ítem (dato). Ej: int, float,char etc. Tipos de datos Agregados Son aquellos que están compuestos por más de un elemento de información (dato), a cada uno de estos elementos se les conoce como miembros o componentes. Ejemplo: Las estructuras y uniones en C/C++

17 Estructuras: Las estructuras son tipos de datos compuestos formados por varios datos llamados campos o miembros, cada uno de los cuales posee su propio espacio en memoria. Pueden incluso haber estructuras dentro de estructuras  Ver ejemplo luego

18 Para declarar una estructura en C++ se utiliza la siguiente sintaxis: struct nombre_de_estructura { Campos de la estructura; };

19 struct estudiante { char nombre[20]; char apellido[20]; float nota; int id; }; … struct estudiante pedro; // Vble de tipo estructura // estudiante

20 También es posible: struct estudiante { char nombre[20]; char apellido[20]; float nota; int id; } juan, luisa; //Declara la estructura y 2 vbles

21 También se puede aplicar typedef: struct estudiante { char nombre[20]; char apellido[20]; float nota; int id; }; typedef struct estudiante alumno; alumno est1,est2, estaux; //Vbles de tipo alumno (es decir estructuras estudiante)

22 Para acceder a cada uno de los campos de la estructura se utiliza: vbleEstructura.campo Ej: juan.nota=4.0; cin>> juan.nombre; cout<<juan.nombre<<" "<<juan.nota;

23 Definición: Un elemento estándar (stdelement) es un tipo de dato que tiene como característica distintiva un campo llamado clave que lo diferencia de todos los demás elementos de su tipo y lo hace único. Ejemplo: un campo cédula en una estructura persona. Estos elementos son los más usados al definir tipos de datos para crear estructuras de datos con ellos y próximamente serán vistos.

24 Uniones: Son similares a las estructuras, la diferencia es que los campos comparten el mismo espacio de memoria. union nombre_de_union { Campos de la union; };

25 union persona { char nombre[20]; char inicial; } p; cin>> p.nombre; //Suponga se ingresa Pedro, entonces: cout << p.inicial; //Imprime ‘P’. /*¿Si en vez de inicial hubiese un campo declarado también de 20 caracteres que saldría? */

26 #include union prueba { int a; int b; int c; }p; void main (void) { p.a=10; cout << p.a << p.b << p.c; } Imprime 101010 #include union prueba { int a; float b; char c; }p; void main (void) { p.a=8; cout << p.a; // Imprime 8 cout << p.b; // Valor inesperado cout << p.c; // Valor Inesperado } Imprime 81.2104e-04

27 Arreglos o Vectores: Son un conjunto de posiciones adyacentes de memoria para almacenar datos del mismo tipo que tienen el mismo nombre y se diferencian en el índice. Para declarar un arreglo en C++ se utiliza la sintaxis: tipo_de_dato nombre_arreglo [dimension]; Los índices van desde 0 hasta dimension-1.

28 int arreglo[10]; arreglo[3]=50; //Asigna el valor 50 al 4 to elemento del arreglo cout<<"El cuarto elemento es"<<arreglo[3]; Se pueden también definir por ejemplo vectores de estructuras  Luego se verán…

29 Clases: Énfasis en el curso de Objetos (herencia, sobrecarga de operadores etc.) Son similares a las estructuras Para definir una clase en C++ se utiliza la siguiente sintaxis: class nombre_de_clase { private: Campos_de_la_clase; public: Constructor; Declaración_de_funciones; };

30 Ejemplo: Especificación de una clase punto: #include class punto { private: int color; int coordenada_x; int coordenada_y; public: punto(int color, int X, int Y); //Constructor void cambiar_color(int nuevo_color); int consultar_color(); };

31 Implementación de las funciones: punto::punto(int color1, int X, int Y) { color=color1; coordenada_x=X; coordenada_y=Y; } void punto::cambiar_color(int nuevo_color) { color=nuevo_color; } int punto::consultar_color() { return color; } Constructor

32 Declararación de una variable (objeto) de tipo punto e invocación de sus funciones (métodos): void main(void) { punto alpha( 23, 100, 80 ); cout << alpha.consultar_color(); alpha.cambiar_color( 50 ); cout << alpha.consultar_color(); }


Descargar ppt "Estructuras de Datos Introducción. Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional."

Presentaciones similares


Anuncios Google