Estructura de Datos En C++

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 5: DECLARACIÓN, INICIALIZACIÓN Y USO DE VARIABLES Ing. Ronald Criollo.
Advertisements

Curso de java básico (scjp)
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
PROGRAMACIÓN EN C.
Estructura de Datos En C++
Programación Científica
Repaso para la construcción del intérprete 2012
Programación I Teoría III
Desarrollo de Aplicaciones para Internet
Tema 2: Lenguaje PHP básico
1.2 Sintaxis del lenguaje Java.
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Programación Estructurada
Unidad 3 Punteros.
Ingeniero Anyelo Quintero
Conceptos Básicos de Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
POO Java Módulo 3 Elementos de programas Identificadores
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Introducción a los punteros
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
JAVA J.A.C..
Estructura de Datos En C++
Programación Científica
Estructura de Datos En C++
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
Estructura de Datos En C++
Curso Programación en Java
Tipo de Datos Básicos.
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Programación en Lenguaje C
Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE.
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Resumen Fundamentos de Programación/ Programación I
Estructuras de Control.
Programación en C para electrónicos
Técnicas Computacionales en Física
Elementos básicos del lenguaje
Estructura de Datos En C++
Funciones Definidas por el Programador
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROGRAMACIÓN MULTIMEDIA
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
FUNDAMENTOS DE PROGRAMACIÓN
Términos algoritmo diseñar algoritmo implementar algoritmo
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.

Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Estructuras de Decisión
Estructura de Datos En C++
Algoritmo.
int cantidad, horas, cuota; float precio, peso; cantidad = 5; // Le asigno un número a la variable Cantidad; horas = // Le asigno 30 a la variable.
Lenguaje de programación c
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
Informática Ingeniería en Electrónica y Automática Industrial
1 Definición y Conversión de datos Agustín J. González ELO-329.
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
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
Transcripción de la presentación:

Estructura de Datos En C++ Dr. Romeo Sánchez Nigenda. E-mail: romeo.sanchez@gmail.com http://yalma.fime.uanl.mx/~romeo/ 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: http://yalma.fime.uanl.mx/~romeo/ED/2011/ Sesiones: 48 * Slides aumentados con información de Dr. Roger Ríos, y Dr. Fernando López

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

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): http://www.eclipse.org/downloads/ http://kdevelop.org/ http://www.bloodshed.net/devcpp.html

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.

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 = 78.0098;

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

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;

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

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

Statements (sentencias) en C/C++ Simples Null Expresión (expr) If While Do For Switch Compuestas { … }

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

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!

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?

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?

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++; }

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; }

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.

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

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

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 ?

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

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); }