Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Estructura de Datos En C++
Dr. Romeo Sánchez Nigenda. Oficina: 1er. Piso del CIDET. Oficina con Dr. Oscar Chacón Horas de Tutoría: 10am-11am Martes y Jueves, 3:30pm-4:30pm Miércoles, 2:00pm-4:00pm Viernes. Website: Sesiones: 48 * Slides aumentados con información de Dr. Roger Ríos, y Dr. Fernando López
2
Objetivo General: Conocerá y manejará las estructuras internas de información
Temario: Conceptos Básicos La Pila Colas Recursión Listas Árboles Ordenamiento Búsqueda Administración de Almacenamiento Total a calificar: 110 puntos. 40% Tareas 30% Examen Parcial 30% Examen Final 10% Participación
3
Material de apoyo: Software: Estructura de Datos con C y C++.
Yedidyah Langsam, Moshe J. Augenstein, Aaron M. Tenenbaum, Brooklyn College Segunda Edición, Prentice-Hall. Algorithms. Third Edition. Parts 1-4, Fundamentals Data Structures Sorting Searching Robert Sedgewick. Estructura de Datos. Román Martínez, Elda Quiroga. Thomson Learning. Cualquier libro de Estructura de Datos! Software: Compiladores GCC (GNU Compiler Collection) IDEs (Integrated Development Environment):
4
Repaso C/C++ C/C++ tiene pocos tipos básicos de datos: enteros (int y derivados), números de punto flotante (float, double), caracteres (chars). El tipo de datos de una variable especifica dos cosas: La cantidad de almacenamiento a reservar La forma de interpretar los datos representados por las cadenas de bits Ya que usamos bits para representarlos, los rangos de los valores en enteros, y la precisión en punto flotante depende de la implementación en el hardware de la máquina. Cuando ejecutamos una operación con algún tipo de dato debemos asegurarnos que los operandos y los resultados son del tipo correcto. Usamos Casting para convertir explícitamente entre tipos.
5
Tipos de datos primitivos en C/C++
Type Tamaño (bits) bajo i386 (GCC) char, bool (en C++) 8 (unsigned) short 16 (unsigned) int, long 32 float double 64 Variable: Es el medio por el cual se hace referencia a una localidad de memoria en la que se almacena información (datos). Declaración: type var1; type var1_new , var2, var333; type var1=value, var2_, var3_01=value; Ejemplos: char _b, c=‘c’; double y, x, z_2 = ;
6
Más sobre variables en C/C++
Pérdida de datos (data loss): double x = 3; //OK (int -> double), implícito int n = 3.7; //Warning: compilador convierte a enteros, pero se pierden datos fraccionales Conversión forzada: Casting. (static, dynamic, const, reinterpret)_cast<type> int n = static_cast<int> (3.7); //OK
7
Expresiones (expr) en C/C++
Expresión (expr): constante | variable expr op expr Op expr Aritméticas Operadores: +, -, *, /, % Ejemplos x+ 3 x + y + z (x + 7) / 3 * y 14 % 3 - (x * 3) % 4 Y = ++x Y = x++ Especiales (op =): x +=4, y/=x; t*=5;
8
Expresiones (expr) en C/C++
De comparación (True, False) Operadores: ==, !=, <, >, <=, >= Ejemplos: 1 < 1 x == x x < x 3 != 4 Expresiones Lógicas Operadores: !, ||, && C usa enteros (0, 1) C++ usa bool (false, true,) ! 2 \\ value es 0 ! (x == (x +1)) \\ value es 1 (x == 0) || (x !=0) \\ siempre es 1 (x == x) && (1!=2) \\ value es 1 1 || (x == y) \\ (x == y) no se evalúa
9
Expresiones (expr) en C/C++
De Selección Expr1 ? Expr2 : Expr3 El resultado es expr2 si expr1 es true, o Expr3 si expr1 es falso Ejemplos: 0 ? Y : z //value es z 1? 10 : 13 //value es 10 A ? B : 9 //value es B if A is true, 9 de otra manera
10
Statements (sentencias) en C/C++
Simples Null Expresión (expr) If While Do For Switch Compuestas { … }
11
Statements (sentencias) en C/C++
If, if-else If (expr) statement1 If (expr) statement1 else statement2 Ejemplos: If(a==1) x +=4; If (y!=x+5) { x+=1; } else { y -=1; } Ejercicio: Identifica si un número es par o impar
12
Statements (sentencias) en C/C++
while while (expr) statement(s) Ejemplo: int i=1, N; cout<<“Dame N: “; cin >> N; while (i<N){ cout << “i: “ <<i++; } Cuál es el mínimo número de iteraciones para while? Ejercicio: Imprime los números de N a 1. Ciclos infinitos!
13
Statements (sentencias) en C/C++
Do do statement while (expr) Ejemplo: int i = 1; cout<<“Dame N: “; cin >> N; do{ cout << “i: “ <<i++; }while(i<N); Cuál es el mínimo número de iteraciones?
14
Statements (sentencias) en C/C++
for for(expr1;expr2;expr3) statement(s) Las tres expresiones son opcionales Expr1 es el inicializador, evaluada solamente una vez Expr2 es la condición, evaluada en cada iteración que rompe el ciclo Expr3 se evalúa después de que el cuerpo del for se ejecuta Ejemplo: For(i = 1; i<N; i++){ cout << “i: “ ; } Cuál es el mínimo número de iteraciones?
15
Statements (sentencias) en C/C++
break: Causa la terminación del ciclo que lo contenga Ejemplos: int i=1; int limite; cin>>limite; while(true){ if(i==limite) break; i++; }
16
Statements (sentencias) en C/C++
Continue: avanza inmediatamente a la siguiente iteración del ciclo Ejemplo: for(i=0;i<100<i++){ if(i%2 ==1) continue; cout<<“Valor de i: “<<I; }
17
Statements (sentencias) en C/C++
Switch: Estructura de selección Switch (expr) { case constant1: statement (s); break; default: } Ejemplo: Int opcion; cin>>opcion; switch (opcion){ case 1: cout<<“Opcion 1”; case 2: cout<<“Opcion 2”; cout<<“Oprimiste una opción no válida.
18
Repaso C/C++ Apuntadores: Son variables que contienen direcciones de memoria. Una variable x precedida del operando & devuelve la dirección de la variable en lugar de su contenido. &x se denomina un apuntador. Es posible declarar una variable apuntador, y cuyos valores sean direcciones de memoria. int x = 6; cout<< x <<endl; cout<< &x <<endl; [1234] 6 int *y = &x; [1234] y 6
19
Repaso C/C++ Apuntadores: Son variables que contienen direcciones de memoria. Para acceder al contenido de la dirección referenciada por una variable apuntador se utiliza el asterisco *. Siguiendo el ejemplo: x [1234] y Cuál es el valor actual de *y? Y después de la modificación: *y = 8; y = ? x = ? 6
20
Repaso C/C++ Operaciones con apuntadores: [96] ? y = y - 1; [100]
Incremento y decremento: [96] y = y - 1; [100] y = y + 1; [104] Cómo obtenemos el contenido de la dirección en y + 1? ? 6 ?
21
Repaso C/C++ Ejercicio: x 5 [1234] 10 0: #include 1: int main(){
2: int x=5, y=10, temp; 3: int *pi; 4: cout<<“T1: El valor de x es “<<x<<endl; 5: cout<<“T2: El valor de y es “<<y<<endl; 6: pi = &x; 7: temp = *pi; 8: *pi = y; 9: y = temp; 10: cout<<“T3: El valor de x es “<<x<<endl; 11: cout<<“T4: El valor de y es “<<y<<endl; 12: cout<<“T5: La dirección de pi es ”pi<<endl; 13: cout<<“T6: El contenido de pi es ”*pi<<endl; 14: return 0; y 10 [4567] 5 temp [8901] 5 pi [5432] 1234
22
Repaso C/C++: Funciones
Type function_name(argument_list) statement(s) Paso de parámetros a funciones: Por valor: Los valores que se pasan se copian a los parámetros de la función cuando se invoca. Si el valor de un parámetro se altera dentro de la función, el valor en el programa que lo llama no se modifica. Por Referencia: Permite modificar el valor de la variable que se pasa a la función, si se pasa la dirección de la misma. int x = 0; cout<<“x = “<<x<<endl; incrementa(x); Cout<<“x= “<<x<<endl; Int incrementa(int param){ return ++param; } int x = 0; incrementa(&x); Cout<<“x= “<<x<<endl; void incrementa(int *param){ ++(*param); }
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.