TEMA 6: Datos Estructurados

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 6: Datos Estructurados"

Transcripción

1 TEMA 6: Datos Estructurados Fundamentos de Informática (Grados en Ingenierías Industriales) Índice 1. Arrays. 1.1 Arrays Unidimensionales Declaración y acceso Inicialización de arrays Nombres de arrays Arrays como argumentos Arrays Multidimensionales Concepto. Declaración Inicialización de arrays Acceso a los elementos Arrays como argumentos Cadenas de Caracteres. 2. Estructuras Declaración y acceso Estructuras como argumentos Inicialización Arrays de estructuras. 3. Búsqueda y Ordenación. 2 1

2 Arrays Unidimensionales: Declaración y Acceso Un array es una colección finita (num_elementos) de elementos del mismo tipo de datos (tipo_elemento). tipo_elemento: - Simple (int, bool, char, float, ) - Estructurado (array, estructura) Declaración de un tipo array typedef array<tipo_elemento,num_elementos> nombre_tipo; Configurar el compilador para poder utilizar la biblioteca estándar de C++ El número de elementos debe ser una constante conocida en tiempo de compilación (cuando se programa) #include <iostream> #include <array> using namespace std; //--constantes const unsigned NELMS = 5; //--tipos de datos nuevos typedef array<int, NELMS> Vector; //--subalgoritmos Arrays Unidimensionales: Declaración y Acceso Declaración de una cte/vble de un tipo array PRIMOS //--constantes const Vector PRIMOS = 2, 3, 5, 7, 11; //--principal Vector v; V????? 4 2

3 Arrays Unidimensionales: Declaración y Acceso Inicialización de un array =>..,..,.. const Vector PRIMOS = 2,3,5,7 INCOMPLETA const Vector PRIMOS = 2,3,5,7,11,13 ERROR!! Acceso a cada elemento => [índice] - Los índices van de 0 hasta el tamaño del array menos uno 0..NELMS -1 = 4 PRIMOS PRIMOS[0] PRIMOS[1] PRIMOS[2] PRIMOS[3] PRIMOS[4] #include <array>... //--constantes const unsigned NELMS = 5; //--tipos de datos nuevos typedef array<int,nelms> Vector; PRIMOS[5] Error!!! Acceso fuera de rango 5 Arrays Unidimensionales: Declaración y Acceso VENTAJAS de su uso frente a variables aisladas: - Podemos referirnos a todos los elementos a la vez (al declararlos, al pasarlos a una función, etc.). - Permite resolver problemas de forma sencilla y compacta. Cómo se ALMACENAN los arrays en MEMORIA? - Los elementos se almacenan CONTIGUOS en memoria. typedef array <char,5> c; typedef array <int,5> a; Elemento Dirección Suponemos : - que ambos arrays comienzan en la posición que un entero ocupa 2 bytes - que un char ocupa 1 byte (cada número de posición indica 1 byte). 6 3

4 Arrays Unidimensionales: Operadores Predefinidos Asignación (=) De valores de un tipo array a una variable del mismo tipo array. Comparación de igualdad (==) Devuelve TRUE o FALSE Compara elementos en la misma posición Comparación de desigualdad (!=) Devuelve TRUE si algún elemento del primer array no coincide con el que ocupa la misma posición en el segundo Paso de array como parámetro a subprograma Por referencia => parámetros de S, o E/S void leervector (Vector &v); Por valor => parámetros de E void escribirvector (Vector v); Vector v1, v2; v1 = v2; if (v1==v2)... Por referencia constante => parámetros de E (más eficiente) void escribirvector (const Vector &v): 7 Arrays Unidimensionales: Argumentos en Funciones Operaciones de lectura/escritura de un array No se disponen de operaciones predefinidas en C++ para efectuar la entrada/salida de datos de un tipo array. El usuario debe programar la lectura y/o escritura de cada componente según el tipo de que se trate. void leervector (Vector &v) for (unsigned i=0;i<nelms;i++) cout << "Introd. valor ="; cin >> v[i]; int mayorelemento (Vector v) int mayor = v[0]; for (unsigned i=1; i<nelms; i++) if (mayor<v[i]) mayor = v[i]; return mayor; int sumaelementos (Vector v) int suma=0; for (unsigned i=0; i<nelms; i++) suma+=v[i]; return suma; Vector v1,v2; leervector(v1); leervector(v2); cout << "El mayor elemento es = " << mayorelemento(v1)<< endl; if (sumaelementos(v1)==sumaelementos(v2)) cout << "Los dos vectores suman igual"; return 0; 8 4

5 Arrays Unidimensionales: Argumentos en Funciones Ejemplo_1: Agentes de ventas Lee las ventas de cada agente e imprime su sueldo. Sueldo = Cantidad fija (1000 euros) + incentivo. Incentivo = 10% de las ventas que ha realizado. Incentivo es sólo aplicable a agentes cuyas ventas superen los 2/3 de la media de ventas del total de los agentes. VentasAgentes //--constantes const unsigned NAGENTES = 20; const double SUELDO_FIJO = ; const double INCENTIVO = 10.0; const double PROMEDIO = 2.0/3.0; //--tipos typedef array<double, NAGENTES> VentasAgentes; ventas[i]= Ventas del agente i 9 Arrays Unidimensionales: Argumentos en Funciones //--subalgoritmos // Devuelve el p% de valor double porcentaje (double p, double valor) return (p*valor)/100.0; // Devuelve la media de las ventas total double calmedias (const VentasAgentes &v) double suma = 0.0; for (unsigned i=0;i<nagentes;i++) suma+=v[i]; return suma/double(nagentes); // Lee las ventas de cada agente void leerventas(ventasagentes &v) for (unsigned i=0;i<nagentes;i++) cout << "Int. Ventas agente "<<i<<" = "; cin >> v[i]; // Imprimir sueldos de los agentes void imprimirsueldos(const VentasAgentes &v) double umbral = PROMEDIO*calMedias(v); double sueldo; for (unsigned i=0;i<nagentes;i++) sueldo=sueldo_fijo; if (v[i]>=umbral) sueldo+=porcentaje(incentivo,v[i]); cout << "El sueldo del agente " << i << " es = "<< sueldo << endl; //--programa principal VentasAgentes ventas; leerventas(ventas); imprimirsueldos(ventas); 10 5

6 Arrays Unidimensionales: Argumentos en Funciones Arrays incompletos Situaciones en las que NO se conoce num. elementos que se desea almacenar. En tiempo de compilación se define el array con un tamaño mayor que el núm. elementos contendrá en tiempo de ejecución. Opciones: Gestionar el array con huecos (usando una marca). Mantener los elementos actuales válidos consecutivos al comienzo del array: Marcar separación elementos válidos de elementos vacíos. Definir una variable que contenga el número de elementos válidos consecutivos. Si se necesita el tamaño del array en una función, éste debe pasarse como un argumento explícito. 11 Arrays Unidimensionales: Argumentos en Funciones // Devuelve la media de los num elementos de v double calmedias (const VentasAgentes &v, int num) double suma = 0.0; for (unsigned i=0;i<num;i++) suma+=v[i]; return suma/double(num); // Lee las ventas y las devuelve // Devuelve también el número de agentes void leerventas(ventasagentes &v, int &n) char respuesta; bool parar=false; n = 0; do cout << "Desea intr. ventas del agente " << n << "? (S/N)"; cin >> respuesta; if (toupper(respuesta) =='S') cout << "Introduce sus ventas: "; cin >> v[n]; n++; else parar=true; while ((!parar) && (n<nagentes)); // Devuelve el p% de valor double porcentaje (double p, double valor) return (p*valor)/100.0; // Imprimir sueldos de los agentes void imprimirsueldos(const VentasAgentes &v, int num) double umbral = PROMEDIO*calMedias(v,num); for (unsigned i=0;i<num;i++) double sueldo=sueldo_fijo; if (v[i]>=umbral) sueldo+=porcentaje(incentivo,v[i]); cout << "El sueldo del agente " << i << " es = "<< sueldo << endl; //--programa principal int numele; VentasAgentes ventas; leerventas(ventas, numele); imprimirsueldos(ventas, numele); 12 6

7 Arrays Multidimensionales: Concepto y Declaración Un array es MULTIDIMENSIONAL si tiene más de una dimensión. Una matriz es un array de 2 dimensiones, es decir un array unidimensional donde cada elemento es, a su vez, un array unidimensional. Declaración de un tipo Matriz typedef array<tipo_elemento,ncolumnas> Fila; typedef array<fila,nfilas> Matriz; Declaración de una cte/vble de un tipo array const Matriz m = ; Matriz Temperaturas; 13 Arrays Multidimensionales: Inicialización/Acceso Inicialización de una matriz =>..,..,.. Todos los valores seguidos (matriz de 2x3) Matriz m = 1,1,1,2,2,2; Por partes Matriz m = 1,1,1,2,2,2; 1. La organización: es más fácil de leer. 2. Son útiles para las inicializaciones incompletas. Acceso a fila,columna,elemento => [índice] - Para identificar un elemento de un array multidimensional, se debe dar un índice para cada dimensión, en el mismo orden que en la declaración. - Cada índice se encierra en sus propios corchetes. 14 7

8 Arrays Multidimensionales: Inicialización/Acceso Acceso a fila,columna,elemento => [índice] - Para identificar un elemento de un array multidimensional, se debe dar un índice para cada dimensión, en el mismo orden que en la declaración. - Cada índice se encierra en sus propios corchetes. typedef array<int,10> Fila; typedef array<fila,3> Matriz; m[1][5] Matriz m; m[0][8] m[0][1] Columna m[1][1] m[2] Fila m[2][1] 15 Arrays Multidimensionales: Inicialización/Acceso Cómo se ALMACENAN los elementos en MEMORIA? - Los elementos se almacenan CONTIGUOS en memoria. //--constantes const unsigned NELEMENTOS = 3; const unsigned NFILAS = 3; const unsigned NCOLUMNAS = 5; //--tipos typedef array<int,nelementos> ListaEnteros; typedef array<int,ncolumnas > Fila; typedef array<fila,nfilas> Matriz; // ListaEnteros le1; Matriz mt1; le1 mt1 Son 15 enteros 16 8

9 Arrays Multidimensionales: Acceso a los Elementos (por Índices) Ejemplo_1: Cargar un array bidimensional con los números del 1 al 12 #include <array> const unsigned NFILAS = 3; const unsigned NCOLUMNAS = 4; typedef array<int,ncolumnas> Fila; typedef array<fila,nfilas> Matriz; Matriz m; for(unsigned f=0;f<nfilas;f++) for(unsigned c=0;c<ncolumnas;c++) m[f][c]=(f*4)+c+1;... return 0; Arrays Multidimensionales: Acceso a los Elementos (por Índices) Ejemplo_2: Programa que muestra los valores almacenados en un array bidimensional 2 por 3 #include <array> const unsigned NFILAS = 2; const unsigned NCOLUMNAS = 3; typedef array<int,ncolumnas> Fila; typedef array<fila,nfilas> Matriz; Matriz m = 1,2,3,4,5,6; for(unsigned f=0;f<nfilas;f++) for(unsigned c=0;c<ncolumnas;c++) cout << " Valor de [" << f << "]" << "[" << c << "] es " << m[f][c] << "\n"; return 0; SALIDA EN PANTALLA El valor de [0][0] es 1 El valor de [0][1] es 2 El valor de [0][2] es 3 El valor de [1][0] es 4 El valor de [1][1] es 5 El valor de [1][2] es

10 Arrays Multidimensionales: Argumentos en Funciones Paso de array multidimensional como parámetro a subprograma Por referencia => parámetros de S o E/S void leermatriz (Matiz &m); Por referencia constante => parámetros de E void escribirmatrizpantalla (const Matriz &m): Ejemplo_3: a => elementos de la matriz leída desde el teclado. b => resultado de sumar todos los elementos de la fila. C => resultado de sumar todos los elementos de la colum. c b a b a b a c c c a a a a a a a a a 19 Arrays Multidimensionales: Argumentos en Funciones. Ejemplo //--subalgoritmos int sumarfila (const Fila &f) int suma = 0; for (unsigned c=0;c<ncolumnas;c++) suma+=f[c]; return suma; int sumarcolumna(const Matriz &m,unsigned c) int suma = 0; for (unsigned f=0;f<nfilas;f++) suma+=m[f][c]; return suma; void escribirfila (const Fila &fil) for (unsigned c=0;c<ncolumnas;c++) cout << fil[c] << " "; void escribirmatrizformato (const Matriz &m) for (unsigned f=0;f<nfilas;f++) escribirfila(m[f]); cout << "- " << sumarfila (m[f]); cout << endl; cout << " " << endl; for (unsigned c=0;c<ncolumnas;c++) cout << sumarcolumna(m,c)<<" "; cout << endl; void leermatriz(matriz &m) cout << "Escribe fila a fila "<<endl; for (unsigned f=0;f<nfilas;f++) for (unsigned c=0;c<ncolumnas;c++) cin >> m[f][c]; //--programa principal Matriz m; leermatriz(m); escribirmatrizformato(m); 20 10

11 Cadenas de Caracteres: Entrada/Salida Una cadena de caracteres se almacena en el tipo de dato string, que es similar a un array unidimensional de char. La librería string contiene funciones para realizar la mayor parte de las operaciones básicas sobre cadenas. Entrada/salida de cadenas (tipo string): Salida: Se realiza de la misma forma que si fuera un tipo predefinido, es decir, usando cout << cadena; Entrada: tenemos varias opciones Usar cin tiene el inconveniente de que se usa el espacio, tabulador, y Enter como separadores de las cadenas, por lo que si introducimos una frase, sólo leeríamos la primera palabra: cin >> cadena; Para leer frases (con espacios) usar la función getline, que nos permite leer una cadena de caracteres hasta un separador que nosotros indiquemos: string frase; getline(cin, frase, '\n'); 21 Cadenas de Caracteres: Entrada/Salida string cadena1, cadena2; cout << "Introduzca la Cadena: Hola Pepe" << endl; cin >> cadena1; // Sólo lee una palabra: Hola (Pepe queda sin leer) cin.ignore(100,'\n'); // Por si queda algo en el buffer cout << "Introduzca de nuevo la Cadena: Hola Pepe" << endl; getline(cin, cadena2, '\n'); // Ahora lee las dos palabras cout << "\n- La cadena leida con cin >> : " << cadena1 << endl; cout << "\n- La cadena leida con getline: " << cadena2 << endl; return 0; NOTA: cin.ignore(n, delim) Elimina caracteres del canal (o buffer) de entrada. La extracción acaba cuando se han eliminado ya n caracteres, o bien nos encontramos con el caracter delim (que también es eliminado), lo que ocurra primero

12 Cadenas de Caracteres: Entrada/Salida /* Calcula las veces que aparece el carácter ch en una cadena str */ string str; char ch; int veces = 0, i = 0, longitud; cout << "Escribe el carácter para buscar: "; cin >> ch; // No lee espacio en blanco -> Para ello ejecutar antes: cin >> noskipws; cin.ignore(100,'\n'); // Quita el Intro introducido tras el carácter anterior cout << "Escribe un texto: "; getline(cin, str, '\n'); longitud = str.length(); // Número de caracteres de str for(i=0; i<longitud; i++) if(str[i] == ch) // Compara ch con el carácter en la posición i de str veces++; cout << "El número de veces que aparece es: " << veces; return 0; 23 Cadenas de Caracteres Qué hace el siguiente programa? string nm = "pepe luis"; if (nm <= "lucas") nm += " lopez"; cout << "Imprimo en pantalla_1: "<< nm << endl; nm = nm.substr(5,4) + "miguel"; cout << "Imprimo en pantalla_2: "<< nm << endl; for (unsigned i=0; i<nm.size(); ++i) nm[i]=char (nm[i]+1); cout << "Imprimo en pantalla_3: "<< nm << endl; cin >> nm; getline (cin, nm); cout << "Imprimo en pantalla_4: " <<nm << endl; return 0; 24 12

13 Cadenas de Caracteres Qué hace el siguiente programa? cin >> nm; // Lee hasta el primer separador ("juanita") getline (cin, nm); // Lee hasta el primer retorno carro cout <<"Imprimo en pantalla_4: " <<nm << endl; (" banana") 25 Cadenas de Caracteres Tener en cuenta cin deja en el buffer el terminador o separador. getline no deja el terminador Si tras cin se usa getline, puede perderse la entrada ignore Elimina el separador => cin.ignore(); Se le puede indicar un número máximo de caracteres a eliminar, si antes no encuentra el terminador => cin.ignore(256, '\n'); 26 13

14 Cadenas de Caracteres: Ejemplo Mostrar cada carácter de una palabra void escribir (string palabra) unsigned longitud, i; longitud = palabra.size(); for (i=0; i<longitud; i++) cout << palabra[i] << ", "; string palabra; cin >> palabra; escribir (palabra); return 0; 27 Cadenas de Caracteres: Ejemplo Leer una línea: // Lee una línea, carácter a carácter void leerlinea (string &lin) char caracter; lin.clear(); // Borra el contenido de la cadena dejándola en 0 caracteres cin >> noskipws >> caracter; // Evita que salte los espacios y el terminador while (caracter!= '\n') // Sin noskipws este bucle sería infinito lin += caracter; cin >> caracter; string linea; leerlinea(linea); cout << linea; return 0; 28 14

15 Cadenas de Caracteres: Ejemplo Convierte a mayúsculas los caracteres de una palabra void mayuscula (char &letra) if((letra>='a') && (letra<='z')) letra = char (unsigned(letra)-unsigned('a')+unsigned('a')); void mayusculas (string &palabra) for (unsigned i=0; i<palabra.size(); i++) mayuscula(palabra[i]); string palabra; cin >> palabra; mayusculas (palabra); cout << palabra << endl; return 0; 29 Estructuras: Definición Una estructura es un grupo de información relacionada que se usa para almacenar datos acerca de un tema o actividad. - Las estructuras están divididas en CAMPOS. - Un campo es una variable de un tipo determinado. typedef struct tipo1 campo1; tipo2 campo2;... tipon campon; nombre_tipo; Definición de un nuevo tipo estructura nombre_tipo nombre_tipo variable1, variable2; Declaraciónde variables del nuevo tipo estructura definido antes: nombre_tipo 30 15

16 Estructuras: Acceso a los Campos Para acceder a cada campo se utiliza el operador punto (.) Se pone el nombre de una variable de tipo estructura seguida de un punto y luego el nombre del campo. typedef struct string titulo; /* título del libro */ string autor; /* autor del libro */ int num; /* número del libro */ Tlibro; Tlibro lib; /* variable de tipo struct libro */ lib.titulo /* accede al título */ lib.autor /* accede al autor */ lib.num /* accede al número del libro */ lib.titulo[i] /* i-ésimo carácter del título */ 31 Estructuras: Ejemplo typedef struct float coste; int codigo; string nombre; Tcomponente; Tcomponente c; c.coste = 1.5; c.codigo = 32201; c.nombre = "resistencia";.... cout << "Nombre " << c.nombre << ", código " << c.codigo << ", coste " << c.coste; return 0; 32 16

17 Estructuras: Inicialización y Asignación Los campos de una estructura se pueden inicializar a la vez que se declara la variable (igual que los arrays): Tlibro l ="Rebeca", "D. du Maurier", 124; Se puede asignar una estructura a otra utilizando el operador de asignación = typedef struct string nombre; string direc; int edad; float altura, peso; Tpersona; Tpersona p1, p2; //... p1 = p2; La operación de comparación == no está permitida. 33 Estructuras: Ejemplo typedef array<int, 20> Telementos; typedef struct int n; Telementos a; Tlista; Escribe cuántos números son mayores que un valor // Inicio main int i, num=0; float valor; Tlista lista; cout << " Cuántos elementos tiene la lista? "; cin >> lista.n; for (i=0;i<lista.n;i++) cout << "Valor " << i+1 << " : "; cin >> lista.a[i]; cout << "Valor mínimo para filtrar la lista: "; cin >> valor; for (i=0;i<lista.n;i++) if (lista.a[i] >= valor) num++; cout << "Hay " << num; cout << " números mayores que " << valor; return 0; // Fin main 34 17

18 Estructuras en Funciones: Paso de Estructuras por Valor Funciona como el paso por valor de cualquier otra variable: A la función se le pasa una COPIA de la estructura. La función sólo puede modificar la copia y no la variable estructura original. Cuando acaba la función los cambios NO se reflejan en la estructura original. // Escribir los datos de una persona x void VisualizarDatos(Tpersona x) cout << "- Nombre: " << x.nombre << endl; cout << "- Dirección : " << x.direc << endl; cout << "- La edad es: " << x.edad << endl; cout << "- La altura es: " << x.altura << endl; cout << "- El peso es: " << x.peso << endl; Tpersona p1;... VisualizarDatos(p1); // se pasa una copia de p1 35 Funciones que Devuelven Estructuras // Leer los datos de una persona y devolverlos Tpersona LeerPersona() Tpersona temp; // estructura local cout << "Nombre? "; getline(cin,temp.nombre,'\n'); cout << "Direccion? "; getline(cin,temp.direc,'\n'); cout << "Edad? "; cin >> temp.edad; cout << "Altura? "; cin >> temp.altura; cout << "Peso? "; cin >> temp.peso; Tpersona p1; // Guarda la estructura // devuelta por la función: p1=leerpersona(); // Devuelve una copia de temp return temp; // Visualiza el contenido // de la estructura p1: VisualizarDatos(p1); 36 18

19 Estructuras en Funciones: Paso de Estructuras por Referencia (en C++) Se pone un & detrás del nombre del tipo de la estructura en la definición de la función. Si varía el valor de la variable en la función, también cambia la variable que corresponda en la llamada. // Leer los datos de una persona y devolverlos en p void LeerPersona2(Tpersona& p) cout << "Datos? "; // Hay un paso de parámetros getline(cin,p.nombre,'\n');// por referencia getline(cin,p.direc,'\n'); cin >> p.edad; cin >> p.altura; cin >> p.peso; void main() Tpersona p1; LeerPersona2(p1); // La variable p1 CAMBIA VisualizarDatos(p1); 37 Arrays de Estructuras Se pueden construir arrays en los que cada elemento sea una estructura. typedef struct double real, imag; Tcomplex; typedef array<tcomplex,10> TListaComplejos; TListaComplejos x; /* Array unidimensional de 10 elementos, cada uno de ellos es una estructura complex */ Acceso a cada campo: x[0].real = 2.5 x[5].imag = 3.2; x

20 Arrays de Estructuras: Ejemplo typedef struct char nombre[30]; float notat,notap; TAlumno; typedef array<talumno,50> TListaAlumnos; // Listado de aprobados y suspensos TListaAlumnos A; // Array de alumnos int i, N; cout<< "Cuántos alumnos? "; cin >> N;... // Dar valores al array for (i=0; i<n; i++) cout << A[i].nombre << "\t"; if ((0.6*A[i].notaT+0.4*A[i].notaP)<5.0) cout << "Suspenso.\n"; else cout << "Aprobado.\n"; 39 Algoritmos Básicos de BÚSQUEDA Objetivo: Buscar un elemento determinado en una lista de objetos. Características: Para cualquier tipo de datos. Para cada tipo de datos deberá usarse un comparador adecuado. Supondremos: Número de Elementos: N Tipo de los Elementos: cualquiera Array (vector) con los N Elementos: V Desde el Elemento V[0] hasta el V[N-1] Elemento a buscar: x 40 20

21 Búsqueda Secuencial o Lineal Se usa cuando no existe información adicional sobre los datos. Se hace un recorrido secuencial a través del array hasta que se encuentra el elemento, o bien hasta que se llega al final (si el elemento no se ha encontrado): ind=0; while(ind<n && V[ind]!=x) ind++; if (ind>=n) puts("no encontrado."); else cout << "Encontrado en la posición: " << ind << endl; 41 Algoritmos Simples de ORDENACIÓN Objetivo: Ordenar una lista de objetos de acuerdo a un criterio Debe existir una Relación de Orden < entre los objetos. Características: Para cualquier tipo de datos y tanto para ordenación ascendente como descendente. Supondremos: Número de Elementos: N Tipo de los Elementos: int Array (vector) con los N Elementos: V Desde el Elemento V[0] hasta el V[N-1] Función para Intercambiar Elementos: Swap() void Swap (int& x, int& y) int temp=x; x=y; y=temp; 42 21

22 Ordenación por Selección En la iteración de la posición i se supone que están ordenados las posiciones hasta i 1. Para cada posición i: Seleccionar el elemento más pequeño (en la posición PosMin) entre las posiciones i y N 1, y se intercambia con el elemento que está en la posición i i... PosMin... N-1 43 Ordenación por Selección /* N-1 iteraciones: Desde i=0 hasta i=n-2 */ for (i=0; i<n-1; i++) PosMin = i; /* Posición del elemento mínimo */ /* Buscar posición del elemento mínimo entre las posiciones i+1 y N-1: PosMin */ for (j=i+1; j<n; j++) if (V[j] < V[PosMin]) PosMin = j; /* Intercambiar el elemento mínimo con el situado en la posición i (pueden coincidir) */ Swap(V[PosMin], V[i]); 44 22

23 Ordenación por Selección for (i=0; i<n-1; i++) PosMin = i; for (j=i+1; j<n; j++) if (V[j]<V[PosMin]) PosMin = j; i=0 i=1 N=6 Elementos i= Swap(V[PosMin],V[i]); i= i=

TEMA 9: Datos estructurados

TEMA 9: Datos estructurados Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga TEMA 9: Datos estructurados Fundamentos de Informática (Ingeniería Técnica Industrial) Escuela Universitaria Politécnica Tema

Más detalles

TIPOS DE DATOS ESTRUCTURADOS

TIPOS DE DATOS ESTRUCTURADOS UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación TIPOS DE DATOS ESTRUCTURADOS Tema 4 Programación I Programación I 0 Tema 4: TIPOS DE DATOS ESTRUCTURADOS Tema 4: TIPOS

Más detalles

Introducción a los Computadores

Introducción a los Computadores Introducción a los Computadores Práctica nº 4 Introducción. Un tipo de datos estructurado es un tipo de datos formado por una colección organizada de componentes de algún otro tipo de datos. Podremos hacer

Más detalles

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

Técnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras.

Técnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras. : Cadenas y Estructuras. Objetivo de la práctica: - Utilización y manipulación de cadenas de texto. Conocer y aplicar el tipo de dato estructurado en C++. Cadenas Las cadenas ('string') son un tipo especial

Más detalles

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.

Más detalles

Tipo de Dato: Arreglos

Tipo de Dato: Arreglos Tipo de Dato: Arreglos Unidimensionales Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este

Más detalles

Estructuras y clases. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Estructuras y clases. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Estructuras y clases Dept. Ciencias de la Computación e I.A. Universidad de Granada ÍNDICE El tipo de datos string Operaciones usuales con strings Funciones para manipulación de strings Introducción

Más detalles

Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Ejemplos Paso de vectores como parámetros. Matrices Ejemplos

Más detalles

Tema 2. Tipos y Estructuras Básicas

Tema 2. Tipos y Estructuras Básicas Tema 2. Tipos y Estructuras Básicas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de

Más detalles

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes Objetivos Conocer y saber utilizar diferentes tipos de datos estructurados: cómo se definen cómo están organizadas sus componentes cómo se accede a ellas y sus operaciones y algoritmos básicos Tema: Estructuras

Más detalles

Laboratorio de Técnicas Informáticas FACULTAD DE FÍSICAS

Laboratorio de Técnicas Informáticas FACULTAD DE FÍSICAS Objetivos de la práctica: - Declaración y utilización del tipo de dato estructurado array. - Aprender a utilizar el tipo string y las funciones definidas sobre él. - Declarar y utilizar el tipo de dato

Más detalles

Estructura de Datos ARREGLOS

Estructura de Datos ARREGLOS Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen

Más detalles

Cadenas (strings) y Estructuras

Cadenas (strings) y Estructuras Cadenas (strings) y Estructuras Fundamentos de Programación Fundamentos de Programación I Operaciones básicas definidas para string Creación de variables: string palabra, frase; Asignación: frase = palabra;

Más detalles

Tema 3. Estructuras de control

Tema 3. Estructuras de control Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)

Más detalles

Tema 2: La clase string. Índice. Notas. Programación 2. Curso Notas. Definición Declaración Entrada / salida Métodos Operaciones

Tema 2: La clase string. Índice. Notas. Programación 2. Curso Notas. Definición Declaración Entrada / salida Métodos Operaciones : string Programación 2 Curso 2013-2014 Índice 1 Cadenas de caracteres en C 2 Entrada / salida 3 entre vectores de caracteres y string 4 5 Cadenas de caracteres en C En C, las cadenas de caracteres tienen

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Vectores y cadenas en lenguaje C Vectores y cadenas en lenguaje C Vectores Declaración de vectores Vectores unidimensionales Vectores multidimensionales

Más detalles

Introducción al tipo de dato ARRAY

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

Más detalles

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009 Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy Febrero 2009 Índice Elementos básicos Ejecución de un programa Estructuras de control Ciclos Ejercicios 2 Elementos Básicos

Más detalles

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

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

Más detalles

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están

Más detalles

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos PARTE 1. Arreglos Unidimensionales o Vectores Un arreglo es una estructura de datos conformada por una sucesión de celdas,

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos

Más detalles

<tipo> Tipo de dato de los elementos del vector

<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.

Más detalles

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa: Índice Estructuras de datos en Memoria Principal: Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa: Ficheros Tema: Estructuras de Datos 2 Cadenas de caracteres

Más detalles

Programación de Ordenadores

Programación de Ordenadores Programación de Ordenadores Ingeniería Química Curso 2007-2008 David Pelta Depto de Ciencias de la Computación e I.A. Universidad de Granada VECTORES Y MATRICES Motivación. Operaciones Básicas. Ejemplos

Más detalles

Tema: Plantillas en C++.

Tema: Plantillas en C++. Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de

Más detalles

PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos.

PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos. PROBLEMA 1. El siguiente programa tiene algunos huecos en blanco que tienes que rellenar para que funcione correctamente. En cada hueco va una única línea de C, salvo en el cuerpo de la función calcula_area_triangulo,

Más detalles

Arreglos Estructura (struct)

Arreglos Estructura (struct) Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Arreglos Estructura (struct) MSc Jaime Soto Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización

Más detalles

PUNTEROS (Apuntadores)

PUNTEROS (Apuntadores) PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

Examen escrito de Programación 1

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 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

Funciones: Pasos por Referencia Recursividad

Funciones: Pasos por Referencia Recursividad Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces

Más detalles

TEMA. Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

TEMA. Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Paso de vectores como parámetros. Búsqueda y Ordenación. Matrices.

Más detalles

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. 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.

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Tipos de datos y operadores en C++

Tipos de datos y operadores en C++ Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar

Más detalles

Tema 18. Vectores o Tablas. Diego Gutiérrez

Tema 18. Vectores o Tablas. Diego Gutiérrez Tema 18. Vectores o Tablas 1 Vectores: Conceptos básicos Índice: 2 Ejemplo: Contar el número de apariciones de la letra A en un texto introducido por teclado (sólo mayúsculas) Variables veces_a: integer;

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición

Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición Unidad 2. La lógica de programación Tema 4. Arreglos y estructuras de repetición Arreglos y estructuras de repetición Contenido: Introducción Arreglos Vectores Matrices De más de 2 dimensiones Estructura

Más detalles

Tipos de Datos Simples Contenido del Tema

Tipos de Datos Simples Contenido del Tema T E M A 3 Tipos de Datos Simples Contenido del Tema 3.1. Concepto de Tipo 3.1.1. Elementos básicos: atributos y operaciones 3.1.2. Tipos. Concepto y necesidad 3.1.3. Operadores básicos 3.2. Tipos de Datos

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

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

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

ALGORITMOS Y PROGRAMACIÓN I Unidad 3

ALGORITMOS Y PROGRAMACIÓN I Unidad 3 ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es

Más detalles

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo

Más detalles

Porque usar Arreglos?

Porque usar Arreglos? Arreglos Porque usar Arreglos? Se tienen las calificaciones de 100 alumnos, como sacar cuantos alumnos tienen una calificación superior al promedio? Doble lectura: Un ciclo para leer y acumular las calificaciones,

Más detalles

Elementos de un programa en C

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

Más detalles

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico. Universidad Nacional Autónoma de México Facultad de Ingeniería ARREGLOS Y ESTRUCTURAS Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan

Más detalles

Preliminares: programación con C++

Preliminares: programación con C++ Preliminares: programación con C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Archivos y Comentarios Todo programa en lenguaje C++ debe tener la siguiente extensión: file.c, file.cc file.cpp

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h

Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Prácticas: Ejercicios: Conceptos: Tablas unidimensionales, vectores, cadenas, modificación,

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación 4 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Material de la Prof.ª Versión revisada y ampliada del material del Prof.

Más detalles

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM C vs. C++ C es un lenguaje procedural el elemento central del son las funciones. Cualquier función se puede comunicar con

Más detalles

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES 1. Arreglos Unidimensionales (Vectores) Con fines académicos, un arreglo unidimensional puede compararse con una columna de una hoja electrónica, por ejemplo,

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

Más detalles

Vectores. 27/05/05 Programación Digital I 1

Vectores. 27/05/05 Programación Digital I 1 Vectores Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación

Más detalles

Programación 1 Grado de Ingeniería Robótica

Programación 1 Grado de Ingeniería Robótica Programación 1 Grado de Ingeniería Robótica Tema 6: Datos estructurados Índice (sesión 11/11/2015): Arrays estáticos Cadenas de caracteres Funciones de la librería string.h Punteros Declaración de punteros

Más detalles

Punteros. Programación en C 1

Punteros. Programación en C 1 Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje

Más detalles

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn Estructuras de datos: vectores en C Clase 7 y 8 Introducción a la Computación Patricia Borensztejn Estructuras de Datos Son agrupaciones de datos si el tamaño de la estructura es conocido en tiempo de

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Contenidos: 1. Punteros 2. Arrays 3. Estructuras (registros) y uniones 4. Funciones Ejercicios Algoritmos y

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 1ª Convocatoria. 21 de Enero de 2002

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 1ª Convocatoria. 21 de Enero de 2002 FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 1ª Convocatoria. 21 de Enero de 2002 NORMAS DE EXAMEN: Notas inferiores a 3.5 en este ejercicio implican suspender la asignatura (en primera

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación Arrays 18.10.2010 José A. Mañas Dpto. de Ingeniería de Sistemas Telemáticos http://www.dit.upm.es/~pepe/doc/fprg/ Arrays Cuando tenemos N datos del mismo

Más detalles

Programación I Teoría III.

Programación I Teoría III. Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,

Más detalles

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C 1 OBJETIVOS Aprender a

Más detalles

Estructuras de datos

Estructuras de datos Estructuras de datos Grado en Matemáticas, UCM Curso 2012-2013 http://gpd.sip.ucm.es/jaime/edat/ 0. Breve introducción al lenguaje C++ Programa 1. Análisis de la eficiencia de algoritmos. Medidas asintóticas

Más detalles

Algoritmos y Programación I

Algoritmos y Programación I Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.

Más detalles

Programación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales

Programación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales Programación 1 Tema II. Diseño de los primeros programas Lección 4. Diseño de algunos programas elementales 1 Objetivos de la lección: Aprender, paso a paso, una metodología de programación descendente

Más detalles

LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1

LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1 Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

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

Más detalles

Introducción a c++ Introducción a la programación EIS Informática III

Introducción a c++ Introducción a la programación EIS Informática III Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas

Más detalles

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS)

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS) UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN DOCENTE: Ing. Ronald Rentería Ayquipa. MARCO TEÓRICO: ARREGLOS (ARRAYS) En clase ya conocimos algunos

Más detalles

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

Formato para Prácticas de Laboratorio

Formato para Prácticas de Laboratorio PROGRAMA EDUCATIVO PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE TRONCO COMUN 2009-2 11214 PROGRAMACION PRÁCTICA No. 12 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado

Más detalles

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Junio 2016, Primera Semana

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Junio 2016, Primera Semana Solución al examen de Junio 2016, Primera Semana PREGUNTA 1 (3 puntos) Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su

Más detalles

Hoja de ejercicios del Tema 3

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. Escribe un programa que lea un número entero positivo del teclado y muestre

Más detalles

Hoja de ejercicios del Tema 3

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

Más detalles

Programación. Test Autoevaluación Tema 6

Programación. Test Autoevaluación Tema 6 Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Principal material bibliográfico utilizado

Principal material bibliográfico utilizado Vectores y Punteros Principal material bibliográfico utilizado www.jorgesanchez.net Fundamentos de Programación C/C++ - Ernesto Peñaloza Romero. Lenguaje C Adolfo Beltramo, Nélida Matas. En C el primer

Más detalles

Fundamentos de Informática

Fundamentos de Informática Fundamentos de Informática 8. : grandes volúmenes de datos Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos Arrays Arrays e iteraciones Cadenas de caracteres 1 3 Arrays 4 Arrays (definición)

Más detalles

Guía de Referencia Rápida de C++ (std)

Guía de Referencia Rápida de C++ (std) Guía de Referencia Rápida de C++ (std) Programa C++ // Inclusión de bibliotecas // Utilización de espacios de nombre // Definición de Constantes y Tipos // Definición de subprogramas // cuerpo del programa

Más detalles

Programación 1 Tema 13. Entrada y salida de datos

Programación 1 Tema 13. Entrada y salida de datos Programación 1 Tema 13 Entrada y salida de datos Objetivos Interacción de un programa con su entorno (consola, sistema de ficheros) leyendo o escribiendo datos Fichero como secuencia persistente de datos

Más detalles

Laboratorio de Informática GRADO EN FÍSICA

Laboratorio de Informática GRADO EN FÍSICA Objetivos de la práctica: - Conocer los límites de representación de los tipos de datos simples. - Realizar programas de cálculo sencillo utilizando operadores aritméticos - Utilizar funciones básicas

Más detalles

Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos)

Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos) Examen escrito de Programación 1. Viernes 22 de enero de 2016 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los problemas del

Más detalles

Cadenas y Estructuras

Cadenas y Estructuras Cadenas y Estructuras Fundamentos de Programación Fundamentos de Programación I FP / FP I 1 Proyecto de programación para el manejo de cadenas en C++ Escriba un programa que lea el nombre de una persona

Más detalles