Fundamentos de la programación
|
|
|
- María Carmen Gil Rivero
- hace 9 años
- Vistas:
Transcripción
1 Fundamentos de la programación 7 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Algoritmos de ordenación 651 Algoritmo de ordenación por inserción 654 Ordenación de arrays por inserción 665 Algoritmo de ordenación por inserción con intercambios 672 Claves de ordenación 680 Estabilidad de la ordenación 688 Complejidad y eficiencia 62 Ordenaciones naturales 64 Ordenación por selección directa 701 Método de la burbuja 716 Listas ordenadas 722 Búsquedas en listas ordenadas 72 Búsqueda binaria 731
2 Página 651 Ordenación de listas array Algoritmo de ordenación (de menor a mayor) array array[i] <= array[i + 1] Mostrar los datos en orden, facilitar las búsquedas,... Variadas formas de hacerlo (algoritmos) Página 652
3 Ordenación de listas Los datos de la lista deben poderse comparar entre sí Sentido de la ordenación: Ascendente (de menor a mayor) Descendente (de mayor a menor) Algoritmos de ordenación básicos: Ordenación por inserción Ordenación por selección directa Ordenación por el método de la burbuja Los algoritmos se basan en comparaciones e intercambios Hay otros algoritmos de ordenación mejores Página 653 Página 654
4 Algoritmo de ordenación por inserción Partimos de una lista vacía Vamos insertando cada elemento en el lugar que le corresponda Baraja de nueve cartas numeradas del 1 al Las cartas están desordenadas Ordenaremos de menor a mayor (ascendente) Página 655 Algoritmo de ordenación por inserción Colocamos el primer elemento en la lista vacía 5 Lista ordenada: 5 Página 656
5 Algoritmo de ordenación por inserción El 7 es mayor que todos los elementos de la lista Lo insertamos al final Lista ordenada: 5 7 Página 657 Algoritmo de ordenación por inserción Primer elemento (5) mayor que el nuevo (4): Desplazamos todos una posición a la derecha Insertamos el nuevo en la primera posición Hemos insertado el elemento en su lugar Lista ordenada: Página 658
6 Algoritmo de ordenación por inserción es mayor que todos los elementos de la lista Lo insertamos al final Lista ordenada: Página 65 Algoritmo de ordenación por inserción Primer elemento (4) mayor que el nuevo (2): Desplazamos todos una posición a la derecha Insertamos el nuevo en la primera posición Lista ordenada: Página 660
7 Algoritmo de ordenación por inserción El es el primer elemento mayor que el nuevo (8): Desplazamos desde ese hacia la derecha Insertamos donde estaba el Lista ordenada: Página 661 Algoritmo de ordenación por inserción Segundo elemento (4) mayor que el nuevo (3): Desplazamos desde ese hacia la derecha Insertamos donde estaba el 4 Lista ordenada: Página 662
8 Algoritmo de ordenación por inserción 6 1 Primer elemento (2) mayor que el nuevo (1): Desplazamos todos una posición a la derecha Insertamos el nuevo en la primera posición Lista ordenada: Página 663 Algoritmo de ordenación por inserción 6 El 7 es el primer elemento mayor que el nuevo (6): Desplazamos desde ese hacia la derecha Insertamos donde estaba el 7 LISTA ORDENADA!!! Lista ordenada: Página 664
9 Ordenación de arrays por inserción El array contiene inicialmente la lista desordenada: A medida que insertamos: dos zonas en el array Parte ya ordenada y elementos por procesar Parte ya ordenada Elementos por insertar Siguiente elemento a insertar en la parte ya ordenada Página 665 Ordenación de arrays por inserción Situación inicial: Lista ordenada con un solo elemento (primero) Desde el segundo elemento del array hasta el último: Localizar el primer elemento mayor en lo ya ordenado Primer elemento mayor o igual: índice 0 nuevo 7 Página 666
10 Ordenación de arrays por inserción... Desplazar a la derecha los ordenados desde ese lugar Insertar el nuevo en la posición que queda libre nuevo nuevo 7 Página 667 Implementación... int nuevo, pos; const int N = 15; typedef int tlista[n]; tlista lista; // Desde el segundo elemento hasta el último... for (int i = 1; i < N; i++) { nuevo = lista[i]; pos = 0; while ((pos < i) &&!(lista[pos] > nuevo)) { pos++; // pos: índice del primer mayor; i si no lo hay for (int j = i; j > pos; j ) { lista[j] = lista[j 1]; lista[pos] = nuevo; Página 668
11 i 1 pos 0 nuevo Página i 4 pos 0 nuevo Página 670
12 i 5 pos 3 nuevo Página 671 Página 672
13 La inserción de cada elemento se puede realizar con comparaciones e intercambios Desde el segundo elemento hasta el último: Desde la posición del nuevo elemento a insertar: Mientras el anterior sea mayor, intercambiar Página Página 674
14 const int N = 15; typedef int tlista[n];... tlista lista; int tmp, pos; // Desde el segundo elemento hasta el último... for (int i = 1; i < N; i++) { pos = i; // Mientras no al principio y anterior mayor... while ((pos > 0) && (lista[pos 1] > lista[pos])) { // Intercambiar... tmp = lista[pos]; lista[pos] = lista[pos 1]; lista[pos 1] = tmp; pos ; // Posición anterior Página 675 #include <iostream> using namespace std; #include <fstream> insercion.cpp const int N = 100; typedef int tarray[n]; typedef struct { // Lista de longitud variable tarray elementos; int contador; tlista; int main() { tlista lista; ifstream archivo; int dato, pos, tmp; lista.contador = 0;... Página 676
15 archivo.open("insercion.txt"); if (!archivo.is_open()) { cout << "Error de apertura de archivo!" << endl; else { archivo >> dato; while ((lista.contador < N) && (dato!= 1)) { // Centinela 1 al final lista.elementos[lista.contador] = dato; lista.contador++; archivo >> dato; archivo.close(); // Si hay más de N ignoramos el resto cout << "Antes de ordenar:" << endl; for (int i = 0; i < lista.contador; i++) { cout << lista.elementos[i] << " "; cout << endl;... Página 677 for (int i = 1; i < lista.contador; i++) { pos = i; while ((pos > 0) && (lista.elementos[pos 1] > lista.elementos[pos])) { tmp = lista.elementos[pos]; lista.elementos[pos] = lista.elementos[pos 1]; lista.elementos[pos 1] = tmp; pos ; cout << "Después de ordenar:" << endl; for (int i = 0; i < lista.contador; i++) { cout << lista.elementos[i] << " "; cout << endl; return 0; Página 678
16 Consideración de implementación Operador relacional adecuado? lista[pos 1] > o >=? lista[pos] Con >= se realizan intercambios inútiles: Intercambio inútil! Página 67 Página 680
17 Claves de ordenación Elementos que son estructuras con varios campos: const int N = 15; typedef struct { int codigo; string nombre; double sueldo; tdato; typedef tdato tlista[n]; tlista lista; Clave de ordenación: Campo en el que se basan las comparaciones Página 681 Claves de ordenación tdato tmp; while ((pos > 0) && (lista[pos 1].nombre > lista[pos].nombre)) { tmp = lista[pos]; lista[pos] = lista[pos 1]; lista[pos 1] = tmp; pos ; Comparación: campo concreto Intercambio: elementos completos Página 682
18 Claves de ordenación Función para la comparación: bool operator>(tdato opizq, tdato opder) { return (opizq.nombre > opder.nombre); tdato tmp; while ((pos > 0) && (lista[pos 1] > lista[pos])) { tmp = lista[pos]; lista[pos] = lista[pos 1]; lista[pos 1] = tmp; pos ; Página 683 claves.cpp Claves de ordenación #include <iostream> #include <string> using namespace std; #include <fstream> #include <iomanip> const int N = 15; typedef struct { int codigo; string nombre; double sueldo; tdato; typedef tdato tarray[n]; typedef struct { tarray datos; int cont; tlista;... Página 684
19 void mostrar(tlista lista); bool operator>(tdato opizq, tdato opder); int main() { tlista lista; ifstream archivo; lista.cont = 0; archivo.open("datos.txt"); if (!archivo.is_open()) { cout << "Error de apertura del archivo!" << endl; else { tdato dato; archivo >> dato.codigo; while ((lista.cont < N) && (dato.codigo!= 1)) { archivo >> dato.nombre >> dato.sueldo; lista.datos[lista.cont] = dato; lista.cont++; archivo >> dato.codigo; archivo.close();... Página 685 cout << "Antes de ordenar:" << endl; mostrar(lista); for (int i = 1; i < lista.cont; i++) { // Desde el segundo elemento hasta el último int pos = i; while ((pos > 0) && (lista.datos[pos 1] > lista.datos[pos])) { tdato tmp; tmp = lista.datos[pos]; lista.datos[pos] = lista.datos[pos 1]; lista.datos[pos 1] = tmp; pos ; cout << "Después de ordenar:" << endl; mostrar(lista); return 0;... Página 686
20 void mostrar(tlista lista) { for (int i = 0; i < lista.cont; i++) { cout << setw(10) << lista.datos[i].codigo << setw(20) << lista.datos[i].nombre << setw(12) << fixed << setprecision(2) << lista.datos[i].sueldo << endl; bool operator>(tdato opizq, tdato opder) { return (opizq.nombre > opder.nombre); Cambia a codigo o sueldo para ordenar por otros campos Página 687 Página 688
21 Algoritmos de ordenación estables Al ordenar por otra clave una lista ya ordenada, la segunda ordenación preserva el orden de la primera tdato: tres posibles claves de ordenación (campos) Codigo Nombre Sueldo Lista ordenada por Nombre Álvarez Benítez Domínguez Durán Fernández Gómez Hernández Jiménez Pérez Sánchez Sergei Tarazona Turégano Urpiano 0000 Página 68 Ordenamos ahora por el campo Codigo: Sergei Hernández Urpiano Benítez Pérez Durán Sánchez Álvarez Turégano Gómez Domínguez Jiménez Fernández Tarazona Hernández Sergei Benítez Durán Pérez Urpiano Álvarez Gómez Sánchez Turégano Domínguez Jiménez Fernández Tarazona No estable: Los nombres no mantienen sus posiciones relativas Estable: Los nombres mantienen sus posiciones relativas Página 60
22 Ordenación por inserción Estable siempre que utilicemos < o > Con <= o >= no es estable Ordenamos por sueldo: A igual sueldo, ordenado por códigos y a igual código, por nombres Hernández Sergei Benítez Durán Pérez Urpiano Álvarez Gómez Sánchez Turégano Domínguez Jiménez Fernández Tarazona Pérez Urpiano Sánchez Domínguez Sergei Benítez Gómez Turégano Jiménez Durán Álvarez Fernández Tarazona Hernández Página 61 Página 62
23 Casos de estudio para los algoritmos de ordenación Lista inicialmente ordenada Lista inicialmente ordenada al revés Lista con disposición inicial aleatoria Trabaja menos, más o igual la ordenación en cada caso? Página 63 Ordenaciones naturales Si el algoritmo trabaja menos cuanto más ordenada está inicialmente la lista, se dice que la ordenación es natural Ordenación por inserción con la lista inicialmente ordenada: Versión que busca el lugar primero y luego desplaza: No hay desplazamientos; mismo número de comparaciones Comportamiento no natural Versión con intercambios: Trabaja mucho menos; basta una comparación cada vez Comportamiento natural Página 64
24 Elección de un algoritmo de ordenación Cómo de bueno es cada algoritmo? Cuánto tarda en comparación con otros algoritmos? Algoritmos más eficientes: los de menor complejidad Tardan menos en realizar la misma tarea Comparamos en orden de complejidad: O() En función de la dimensión de la lista a ordenar: N O() = f (N) Operaciones que realiza el algoritmo de ordenación: Comparaciones Intercambios Asumimos que tardan un tiempo similar Página 65 Cálculo de la complejidad Ordenación por inserción (con intercambios):... for (int i = 1; i < N; i++) { int pos = i; while ((pos > 0) && (lista[pos 1] > lista[pos])) { int tmp; tmp = lista[pos]; lista[pos] = lista[pos 1]; lista[pos 1] = tmp; pos ; Intercambio Comparación Intercambios y comparaciones: Tantos como ciclos realicen los correspondientes bucles Página 66
25 Cálculo de la complejidad... N 1 ciclos for (int i = 1; i < N; i++) { int pos = i; while ((pos > 0) && (lista[pos 1] > lista[pos])) { int tmp; tmp = lista[pos]; lista[pos] = lista[pos 1]; lista[pos 1] = tmp; pos ; Caso en el que el while se ejecuta más: caso peor Caso en el que se ejecuta menos: caso mejor Nº variable de ciclos Página 67 Cálculo de la complejidad Caso mejor: lista inicialmente ordenada La primera comparación falla: ningún intercambio (N 1) * (1 comparación + 0 intercambios) = N 1 O(N) Caso peor: lista inicialmente ordenada al revés Para cada pos, entre i y 1: 1 comparación y 1 intercambio (N 1) ((N 1) + 1) x (N 1) / 2 N * (N 1) / 2 (N 2 N)/ 2 O(N 2 ) Notación O grande: orden de complejidad en base a N El término en N que más rápidamente crece al crecer N En el caso peor, N 2 crece más rápido que N O(N 2 ) (Ignoramos las constantes, como 2) Página 68
26 Ordenación por inserción (con intercambios) Caso mejor: O(N) Caso peor: O(N 2 ) Caso medio (distribución aleatoria de los elementos): O(N 2 ) Hay algoritmos de ordenación mejores Página 6 Órdenes de complejidad O(log N) < O(N) < O(N log N) < O(N 2 ) < O(N 3 )... N log 2 N N Página 700
27 Página 701 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: Página 702
28 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: 1 Página 703 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: 1 2 Página 704
29 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: Página 705 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: Página 706
30 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: Página 707 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: 7 8 Lista ordenada: Página 708
31 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: 8 Lista ordenada: Página 70 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: Lista ordenada: Página 710
32 Algoritmo de ordenación por selección directa Seleccionar el siguiente elemento menor de los que queden Lista desordenada: LISTA ORDENADA!!! Lista ordenada: Página 711 Ordenación de un array por selección directa Desde el primer elemento (i = 0) hasta el penúltimo (N 2): Menor elemento (en m) entre i + 1 y el último (N 1) Intercambiar los elementos en i y m si no son el mismo i m i m Sólo intercambiamos si no es la misma posición Página 712
33 Ordenación de un array por selección directa i m i m i m Página 713 seleccion.cpp Implementación const int N = 15; typedef int tlista[n]; tlista lista; // Desde el primer elemento hasta el penúltimo... for (int i = 0; i < N 1; i++) { int menor = i; // Desde i + 1 hasta el final... for (int j = i + 1; j < N; j++) { if (lista[j] < lista[menor]) { menor = j; if (menor > i) { int tmp; tmp = lista[i]; lista[i] = lista[menor]; lista[menor] = tmp; Página 714
34 Complejidad de la ordenación por selección directa Cuántas comparaciones se realizan? Bucle externo: N 1 ciclos Tantas comparaciones como elementos queden en la lista: (N 1) + (N 2) + (N 3) = N x (N 1) / 2 = (N 2 N)/ 2 O(N 2 ) Mismo número de comparaciones en todos los casos Complejidad: O(N 2 ) Igual que el método de inserción Algo mejor (menos intercambios; uno en cada paso) No es estable: intercambios a larga distancia No se garantiza que se mantenga el mismo orden relativo original Comportamiento no natural (trabaja siempre lo mismo) Página 715 Página 716
35 Algoritmo de ordenación por el método de la burbuja Variación del método de selección directa El elemento menor va ascendiendo hasta alcanzar su posición Página Página 718
36 Ordenación de un array por el método de la burbuja Desde el primero (i = 0), hasta el penúltimo (N 2): Desde el último (j = N 1), hasta i + 1: Si elemento en j < elemento en j 1, intercambiarlos burbuja.cpp... const int N = 10; int tmp; typedef int tlista[n]; // Del primero al penúltimo... tlista lista; for (int i = 0; i < N 1; i++) { // Desde el último hasta el siguiente a i... for (int j = N 1; j > i; j ) { if (lista[j] < lista[j 1]) { tmp = lista[j]; lista[j] = lista[j 1]; lista[j 1] = tmp; Página 71 Algoritmo de ordenación por el método de la burbuja Complejidad: O(N 2 ) Comportamiento no natural Estable (mantiene el orden relativo) Mejora: Si en un paso del bucle exterior no ha habido intercambios: La lista ya está ordenada (no es necesario seguir) La lista ya está ordenada No hace falta seguir Página 720
37 burbuja2.cpp bool inter = true; int i = 0; // Desde el 1º hasta el penúltimo si hay intercambios... while ((i < N 1) && inter) { inter = false; // Desde el último hasta el siguiente a i... for (int j = N 1; j > i; j ) { if (lista[j] < lista[j 1]) { int tmp; tmp = lista[j]; lista[j] = lista[j 1]; lista[j 1] = tmp; inter = true; if (inter) { i++; Esta variación sí tiene un comportamiento natural Página 721 Página 722
38 Gestión de listas ordenadas Casi todas las tareas se realizan igual que en listas sin orden Operaciones que tengan en cuenta el orden: Inserción de un nuevo elemento: debe seguir en orden Búsquedas más eficientes Y la carga desde archivo? Si los elementos se guardaron en orden: se lee igual Si los elementos no están ordenados en el archivo: insertar Página 723 lista.cpp Declaraciones: Iguales que para listas sin orden const int N = 20; typedef struct { int codigo; string nombre; double sueldo; tregistro; typedef tregistro tarray[n]; typedef struct { tarray registros; int cont; tlista; Página 724
39 Subprogramas: Misma declaración que para listas sin orden void mostrardato(int pos, tregistro registro); void mostrar(tlista lista); bool operator>(tregistro opizq, tregistro opder); bool operator<(tregistro opizq, tregistro opder); tregistro nuevo(); void insertar(tlista &lista, tregistro registro, bool &ok); void eliminar(tlista &lista, int pos, bool &ok); // pos = 1..N int buscar(tlista lista, string nombre); void cargar(tlista &lista, bool &ok); void guardar(tlista lista); Página 725 Nuevas implementaciones: Operadores relacionales Inserción (mantener el orden) Búsqueda (más eficiente) Se guarda la lista en orden, por lo que cargar() no cambia bool operator>(tregistro opizq, tregistro opder) { return opizq.nombre > opder.nombre; bool operator<(tregistro opizq, tregistro opder) { return opizq.nombre < opder.nombre; Página 726
40 void insertar(tlista &lista, tregistro registro, bool &ok) { ok = true; if (lista.cont == N) { ok = false; // lista llena else { int i = 0; while ((i < lista.cont) && (lista.registros[i] < registro)) { i++; // Insertamos en la posición i (primer mayor o igual) for (int j = lista.cont; j > i; j ) { // Desplazamos una posición a la derecha lista.registros[j] = lista.registros[j 1]; lista.registros[i] = registro; lista.cont++; Página 727 Página 728
41 Búsqueda de un elemento en una secuencia No ordenada: recorremos hasta encontrarlo o al final Ordenada: recorremos hasta encontrarlo o mayor / al final Buscamos el 36: al llegar al final sabemos que no está Buscamos el 17: al llegar al 20 ya sabemos que no está Condiciones de terminación: Se llega al final Se encuentra el elemento buscado Se encuentra uno mayor Mientras no al final y el valor sea menor que el buscado Página 72 int buscado; cout << "Valor a buscar: "; cin >> buscado; int i = 0; while ((i < N) && (lista[i] < buscado)) { i++; const int N = 10; typedef int tlista[n]; tlista lista; // Ahora, o estamos al final o lista[i] >= buscado if (i == N) { // Al final: no se ha encontrado cout << "No encontrado!" << endl; else if (lista[i] == buscado) { // Encontrado! cout << "Encontrado en posición " << i + 1 << endl; else { // Hemos encontrado uno mayor cout << "No encontrado!" << endl; Complejidad: O(N) Página 730
42 Página 731 Búsqueda mucho más rápida que aprovecha la ordenación Comparar con el valor que esté en el medio de la lista: Si es el que se busca, terminar Si no, si es mayor, buscar en la primera mitad de la lista Si no, si es menor, buscar en la segunda mitad de la lista Repetir hasta encontrarlo o no quede sublista donde buscar Buscamos el 12 Elemento mitad Página 732
43 Vamos buscando en sublistas cada vez más pequeñas (mitades) Delimitamos el segmento de la lista donde buscar Inicialmente tenemos toda la lista: ini mitad fin Índice del elemento en la mitad: mitad = (ini + fin) / 2 Si no se encuentra, dónde seguir buscando? Buscado < elemento en la mitad: fin = mitad 1 Buscado > elemento en la mitad: ini = mitad + 1 Si ini > fin, no queda dónde buscar Página 733 Buscamos el 12 ini mitad fin < lista[mitad] fin = mitad 1 ini mitad fin > lista[mitad] ini = mitad + 1 ini fin mitad Encontrado! Página 734
44 Si el elemento no está, nos quedamos sin sublista: ini > fin Para el 13: mitad ini fin > lista[mitad] ini = mitad + 1 mitad ini fin < lista[mitad] fin = mitad 1 2 ini > fin!!! No hay dónde seguir buscando No está Página 735 Implementación int buscado; cout << "Valor a buscar: "; cin >> buscado; int ini = 0, fin = N 1, mitad; bool encontrado = false; while ((ini <= fin) &&!encontrado) { const int N = 10; typedef int tlista[n]; tlista lista; mitad = (ini + fin) / 2; // División entera if (buscado == lista[mitad]) { encontrado = true; else if (buscado < lista[mitad]) { fin = mitad 1; else { ini = mitad + 1; // Si se ha encontrado, está en [mitad] Página 736
45 #include <iostream> using namespace std; #include <fstream> binaria.cpp const int N = 100; typedef int tarray[n]; typedef struct { tarray elementos; int cont; tlista; int buscar(tlista lista, int buscado); int main() { tlista lista; ifstream archivo; int dato; lista.cont = 0; archivo.open("ordenados.txt"); // Existe y es correcto archivo >> dato;... Página 737 while ((lista.cont < N) && (dato!= 1)) { lista.elementos[lista.cont] = dato; lista.cont++; archivo >> dato; archivo.close(); for (int i = 0; i < lista.cont; i++) { cout << lista.elementos[i] << " "; cout << endl; int buscado, pos; cout << "Valor a buscar: "; cin >> buscado; pos = buscar(lista, buscado); if (pos!= 1) { cout << "Encontrado en la posición " << pos + 1 << endl; else { cout << "No encontrado!" << endl; return 0;... Página 738
46 int buscar(tlista lista, int buscado) { int pos = 1, ini = 0, fin = lista.cont 1, mitad; bool encontrado = false; while ((ini <= fin) &&!encontrado) { mitad = (ini + fin) / 2; // División entera if (buscado == lista.elementos[mitad]) { encontrado = true; else if (buscado < lista.elementos[mitad]) { fin = mitad 1; else { ini = mitad + 1; if (encontrado) { pos = mitad; return pos; Página 73 Complejidad Qué orden de complejidad tiene la búsqueda binaria? Caso peor: No está o se encuentra en una sublista de 1 elemento Nº de comparaciones = Nº de mitades que podemos hacer N / 2, N / 4, N / 8, N / 16,..., 8, 4, 2, 1 1, 2, 4, 8,..., N / 16, N / 8, N / 4, N / 2 Si hacemos que N sea igual a 2 k : 2 0, 2 1, 2 2, 2 3,..., 2 k 4, 2 k 3, 2 k 2, 2 k 1 Nº de elementos de esa serie: k Nº de comparaciones = k N = 2 k k = log 2 N Complejidad: O(log 2 N) Mucho más rápida que O(N) Página 740
47 Licencia CC (Creative Commons) Este tipo de licencias ofrecen algunos derechos a terceras personas bajo ciertas condiciones. Este documento tiene establecidas las siguientes: Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría. No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales. Compartir igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas. Pulsa en la imagen de arriba a la derecha para saber más. Página 741
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
ALMACENAMIENTO PERSISTENTE DE DATOS
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación ALMACENAMIENTO PERSISTENTE DE DATOS Tema 1 Programación II Programación II 0 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS
Fundamentos de la programación
Fundamentos de la programación 5 Grados en Ingeniería Informática, Ingeniería del ls Software e Ingeniería de Computadores Ana Gil Luezas (adaptadas del original de Luis Hernández Yáñez) Facultad de Informática
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Pseudolenguaje. (1 byte) 0.. 255 (valores códigos ASCII) [CHAR_MIN.. CHAR_MAX] (Definida en <limits.h>) No hay. Dominio 0.. 2 n 1 [MIN(C)..
Tipo C Dominio 0.. 2 n -1 [MIN(C).. MAX(C)] Operadores Aritméticos Otras funciones No hay CHR(...) CAP(...) ORD(...) E/S No Formateada: Leer (...) Escribir (...) char (1 byte) 0.. 255 (valores códigos
Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Notación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.
: Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase
Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos
Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo
Programación I. Contenido. Relación de Ejercicios Sonido e Imagen
Programación I UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación Contenido Relación de Ejercicios Sonido e Imagen Tema 2: Conceptos Básicos de Programación 2 Práctica 1.
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Contenidos. Archivos en C++ Archivos en C++ Introducción
Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,
LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1
Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 CAPITULO 3. ENTRADA Y SALIDA BÁSICA Usando la librería estandar de entrada y salida, seremos
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
Entrada y salida de datos en C y C++
Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida
Programación en C++/Funciones
Programación en C++/Funciones 1 Programación en C++/Funciones Estructuras Streams Funciones Definiendo una función Una función es un conjunto de líneas de código que realizan una tarea específica y puede
República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores
República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Prof. Elías Cisneros. Lenguaje C++ Contadores y Acumuladores Usted es libre de: * Copiar, distribuir y comunicar públicamente
OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.
/ OBJETIVOS Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. LABORATORIO 6 MANEJO DE ARCHIVOS DE TEXTO Y BINARIOS Msc. Walter Fernandez
Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I
Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que
Examen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );
ARCHIVOS EN C++ = FLUJOS DE ENTRADA/SALIDA. Ejemplo: cin y cout Tipos de ficheros: DE TEXTO y BINARIOS Biblioteca de gestión de ficheros (a incluir en los programas) #include Apertura de ficheros
El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
Algoritmos de Búsqueda y Ordenamiento
Departamento de Informática Universidad Técnica Federico Santa María Algoritmos de Búsqueda y Ordenamiento Programación de Computadores IWI--p Prof.: Teddy Alfaro Olave Algoritmos de Búsqueda Los procesos
Funciones. Parámetros por valor
Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que
1. Juego del Ahorcado
Solución Ex. Junio 06 GrA - Programación C++ Pág. 1 1. JUEGO DEL AHORCADO...1 2. CLASES...3 1. Juego del Ahorcado #include #include #include #include void Jugar(char
Tema: Métodos de Ordenamiento. Parte 1.
Programación IV. Guía 2. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 1. Objetivos Específicos Identificar la estructura de algunos algoritmos
Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS
CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: clase
Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática
Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos
INTRODUCCIÓN AL LENGUAJE C++
Transparencias del libro Rodríguez Artalejo, M., González-Calero, P.A., Gómez Martín, M.A.: Estructuras de datos, un enfoque moderno. Editorial Complutense 2011. TEMA 0 INTRODUCCIÓN AL LENGUAJE C++ El
Metodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
Se guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Programación en C+ +/ Funciones
Programación en C++/Funciones 1 Programación en C+ +/ Funciones Estructuras Streams Funciones Definiendo una función Una función es un conjunto de líneas de código que realizan una tarea específica y puede
Programación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Tema 3: Ficheros en C++
de : en C++ Programación 2, Curso 2013-2014 Índice de, 1 de de un fichero de (1/2) de un fichero de 2, de un fichero binario de un fichero binario 3 Control de errores de lectura/escritura Qué es un fichero
Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)
Examen escrito de Programación 1. Jueves 5 de febrero de 2015 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los dos problemas
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO
Fundamentos de Programación con el Lenguaje de Programación C++
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Informática Fundamentos de Programación con el Lenguaje de Programación C++ Vicente Benjumea y Manuel Roldán 18 de junio de 2015 2 Esta
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
Problema - Sumando Digitos
Primera Olimpiada de Informática Problema - Sumando Digitos Comenzando con un entero entre 00 y 99 inclusive, escritos como dos dígitos (use un cero a la izquierda en caso de que el numero sea menor que
Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
Fundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Cálculo
Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Fundamentos de la Programación
Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software
Tema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Curso 0 de Informática
Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,
Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.
Programación I, Guía 6 1 Facultad : Ingeniería Escuela : Computación Asignatura: Programación I Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD. Objetivos Utilizar la sintaxis de las funciones definidas
1 Estructura básica de un programa C++
Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.
Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO
Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda
Ficha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
SEGUNDO PARCIAL INFORMATICA II
SEGUNDO PARCIAL INFORMATICA II Tema 1 Hacer un programa en C++ que realice lo siguiente: a. Generar los primeros 100 números enteros comenzando en 1 y guardar los impares en una pila y los pares en una
Práctica 8: Barreras
Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Objetivos Aprender a utilizar las variables condición y las barreras de la biblioteca Pthreads. Diseñar e implementar una barrera: Barrera
CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA. 10.7. Búsqueda en listas 10.8. Resumen 10.9. Ejercicios 10.10. Problemas
CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA C O N T E N I D O 10.1. Ordenación 10.2. Ordenación por burbuja 10.3. Ordenación por selección 10.4. Ordenación por inserción 10.5. Ordenación Shell 10.6.
Tema 8: Algoritmos de ordenación y búsqueda
Tema 8: Algoritmos de ordenación y búsqueda Objetivos: en este tema se presentan algoritmos que permiten buscar un elemento dentro de una colección y ordenar una colección en base a algún criterio (el
C++11: Simplificando la vida del programador
C++11: Simplificando la vida del programador J. Daniel Garcia Universidad Carlos III de Madrid 26 de noviembre de 2013 J. Daniel Garcia ARCOS@UC3M ([email protected]) 1/99 Bienvenido a C++11 1
Introducción al laboratorio de Programación I
Introducción al laboratorio de Programación I Manuel Montenegro [email protected] es Despacho B12 Compilación Es el proceso de transformación de un programa escrito en un lenguaje de alto nivel (en
Programación básica C++
Programación en Lenguaje C++ Programación básica C++ 6.3.1 Declaración de variables Introducción 6 Las variables sirven para identificar un determinado valor. Es importante tener en cuenta, que una variable
Entrada y Salida vía Archivos
Entrada y Salida vía Archivos Lectura de un archivo de entrada Escritura en un archivo de salida Agustín J. González ELO329 1 Lectura de archivos de entrada Un archivo de entrada es una secuencia de bytes
Librerías estándar en C++ STL: Standard Template Library. Álvaro Sánchez Miralles José Porras (Fidel Fernández)
Librerías estándar en C++ STL: Standard Template Library Álvaro Sánchez Miralles José Porras (Fidel Fernández) Cadenas de caracteres Es una clase que se encuentra en librería estandar Consta,
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 3 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº3 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi primeras
Introducción al tipo de dato ARRAY
CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción
Estructuras de repetición
Estructuras de repetición Fundamentos de Programación Fundamentos de Programación I FP-PFI Curso 2005-2006 1 Estructuras iterativos Sentencia for for(inic; cond; increm) sentencia1; sentencia2; Sentencia
Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.
Programación Básica Arturo Vega González [email protected] Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
VERIFICACIÓN, TEST Y DEBUGGING
ESTRUCTURAS DE DATOS Y ALGORITMOS TECNÓLOGO EN INFORMÁTICA VERIFICACIÓN, TEST Y DEBUGGING ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 1. INTRODUCCIÓN Podemos decir que un programa funciona
Algoritmos y Programación Clase 8
Algoritmos y Programación Ordenamiento y Búsqueda Anexo: Uso de Procedimientos Sub y Procedimientos Function 1 EXAMEN 1. Lunes 16 de abril 4 pm. 2. Tema: Lo visto hasta la clase de hoy. 2 Contenido Ordenamiento
Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado
Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. Código: O613 INGENIERÍA DE SISTEMAS Docente y Administrativo: Luz Esperanza Espitia Preciado Componente: Teórico Práctico. F. Vigencia: 8/10/2.012
ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA
6 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA OBJETIVOS Después del estudio de este capítulo usted podrá: Conocer los algoritmos basados en el intercambio de elementos. Conocer el algoritmo de ordenación por inserción.
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS Operaciones con ficheros en Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba
Informática FACULTAD DE FÍSICAS
EJERCICIOS RESUELTOS EN CLASE DE TEORÍA 1. Realizar un programa que pida 10 números enteros y calcule la media de dichos valores. Realizar una función/procedimiento para rellenar los valores en un vector
Tema 4: Estructuras de Control Estructura y Contenidos
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if... ). 4.2.3. Selección múltiple
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Estructuras de Repetición (Repita para)
Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar
Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.
Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete
FUNDAMENTOS BÁSICOS DE PROGRAMACIÓN EN C++
UNIVERSIDAD DE JAÉN Departamento de Informática FUNDAMENTOS BÁSICOS DE PROGRAMACIÓN EN C++ Francisco Martínez del Río 2 Copyright c 2015 Francisco Martínez del Río Licensed under the Creative Commons Attribution-NonCommercial
Índice de contenido. Herramientas necesarias...2 Tipos de Variable...3 Operadores...6 Sentencias...12
Índice de contenido Herramientas necesarias...2 Tipos de Variable...3 Operadores...6 Sentencias...12 Punteros y Referencias...14 Declaración y asignación de una variable puntero...15 Utilización de los
Mi primer programa en Code::Blocks
Mi primer programa en Code::Blocks Introducción a la Computación Departamento de Computación - FCEyN - UBA Primer cuatrimestre de 2010 1. Antes de empezar 1.1. Cómo instalo el Code::Blocks en una computadora?
Tema: Tipos Abstractos de Datos (TAD s) en C++.
Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Tema: INTÉRPRETE ENSAMPOCO/3
Compiladores. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: INTÉRPRETE ENSAMPOCO/3 Contenido En esta práctica se desarrollará un intérprete de lenguaje ENSAMPOCO/3
= RETURN =3 7-. ELSE K
11-. Pida Al Usuario Dos Números Enteros (Que Se Guardaran En Las Variables Num 1 Y Num2). Si Num2 Es Cero, Deberá Mostrar Un Mensaje De Error, Y En Caso Contrario Mostrara En Pantalla El Resto De La División
