Professional Documents
Culture Documents
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
Pilas Colas
Arrays
Estructura de datos formada por un conjunto finito y ordenado de elementos homogneos. homogneos
Elementos homogneos: todos los elementos son del mismo tipo: el tipo base del array. Serie finita: tiene un tamao limitado que habr que definir en la declaracin y que no puede cambiar. ca b a Ordenado: cada elemento puede ser identificado por la posicin que ocupa en la estructura y ser tratado individualmente.
En todo caso, estarn ordenados por su posicin dentro de la estructura.
Los elementos pueden seleccionarse arbitrariamente y son igualmente accesibles. Para designar a un elemento se utilizar el selector.
o Uno o ms ndices que indican su posicin dentro de la estructura.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
Solucin 2
Solucin 1
Solucin 3
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
Declaracin:
var array[limInf..limSup] de tipoBase : nombreArray
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
tipoBase.
Indicara el tipo de dato de cada elemento del array. Puede ser cualquier tipo de dato estndar o definido por el usuario.
nombreArray. y
Un identificador vlido.
limInf..limSup.
Doble funcin:
Es un subrango con todos los valores posible que podr tomar un ndice de array.
o Los ndices debe ser mayores o iguales a limInf y mayores o iguales a limSup.
Indica tambin el nmero de elementos del array: todos los valores posibles entre los dos lmites.
Normalmente se tratar de valores enteros, pero en algunos lenguajes se puede utilizar cualquier valor de tipo ordinal (como pueden ser los datos de tipo carcter) carcter).
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
La nica operacin permitida con la estructura de datos es la asignacin. p p g Es posible asignar un array a otro siempre que sea del mismo tipo.
Mismo nmero de elementos, mismos lmites y mismo tipo de datos.
... //Asigna a nmeros cada uno de los elementos de otroVector nmeros otroVector
//Declara un array //Los ndices irn int numeros[6]; //Declara un array char *nombres[10]; //Declara un array double ventas[6];
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
10
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
11
Cualquiera de las siguientes operaciones se podrn hacer con los elementos de los vectores declarado en la diapositiva 9 9.
... nmeros[4] 3 nmeros[1] [1] nmeros[4] + 1 [4] leer(nmeros[3]) nombres[2] 'Pepe' si nombres[2] > 'Juan' entonces escribir(nombres[2], ' es mayor q ( [ ], y que Juan fin_si //Llamada a la funcin Factorial desarrollada en el Tema 4 //La funcin Factorial precisa un argumento de tipo entero //y nmeros[5] es un dato de tipo entero escribir(Factorial(nmeros[5])) ibi (F t i l( [5])) ...
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011 12
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
13
Para obtener la suma de todos los elementos del vector nmeros. nmeros
... suma 0 desde i 0 hasta 5 hacer suma suma + nmeros[i] fin_desde escribir(suma) ...
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
14
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
15
Ejemplo 5.1
Se desea generar un array con la desviacin respecto a la g y p media media de cada uno de los elementos de una lista de 100 nmeros reales. El programa deber mostrar un listado con los elementos de la lista y la desviacin media de cada uno de ellos.
Anlisis del problema
La desviacin respecto a la media de un elemento i de una lista se calcula p mediante la expresin
Di = x i x
El algoritmo deber almacenar los elementos de la lista en un array y l it d b l l l t d l li t calcular la media aritmtica de los elementos del mismo. A continuacin se rellenar el array con las desviaciones medias aplicando la expresin anterior.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
16
17
Se est declarando un nuevo tipo de dato que podr contener cualquiera de los tipos de datos que se definen.
Una variable de tipo miTipoDeDatoEntero, podr contener un nmero entero. entero Una variable de tipo reales, contendr un array de 100 posiciones de nmeros reales. Una variable de tipo vector, podr hacer referencia a un array de nmeros reales con ndices comprendidos entre 1 y numElementos.
La declaracin de tipos de datos es til cuando se utilizan datos que no estn definidos por el lenguaje, como los vectores.
Se pueden utilizar como documentacin del programa. Se simplifica el mantenimiento y la reutilizacin del cdigo. cdigo
Tal como est definido, lista, podr contener nmeros reales, pero si en un futuro es necesario que almacene enteros, cadenas u otro tipo de dato, slo ser necesario cambiar la definicin del tipo. , p
Declaran respectivamente nuevos tipos de datos para nombrar a un entero, un array de 100 nmeros reales o un array de NUM_ELEMENTOS elementos reales. Una vez definidos podemos utilizar esos tipos de datos para declarar variables de ese tipo tipo.
int MiTipoDeDatosEntero i; Reales numeros; Vector lista;
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
21
26
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
27
Ejemplo 5.2
Implementar una funcin que devuelva la desviacin estndar p q de una lista de elementos reales. La desviacin estndar se calcula mediante la siguiente expresin:
=
1 n ( xi x ) 2 n 1 i =1
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
30
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
31
Actualizacin de un vector
Supone modificar su contenido sin cambiar la organizacin interna del mismo. Implica las siguientes operaciones:
Cambiar un elemento determinado por otro. Aadir un elemento al final de la lista. Insertar un elemento en la posicin n de la lista. lista Eliminar un elemento de la lista.
Se supone la existencia de un vector con un nmero mximo de elementos de los cuales slo estn ocupados los n primeros.
const numElementos = 1000 //Nmero mximo de elementos del vector tipos array[1..numElementos] d entero = vector de var vector : nmeros //n es nmero de elementos ocupados del array. //Al comenzar el programa se supone que el vector tiene 0 elementos entero : n = 0
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011 32
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
33
procedimiento Aadir(ref vector : v; valor entero: dato; ref entero: n) inicio si n < numElementos entonces n n + 1 v[n] dato fin_si fin_procedimiento
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
35
procedimiento Insertar(ref ref f var entero : i inicio ( ) si (n < numElementos) y desde i n hasta p v[i+1] v[i] fin_desde v[p] dato n n + 1 fin_si fin_procedimiento
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
36
procedimiento Eliminar(ref vector : v; valor entero : p; ref entero: n) f t ) var entero : i inicio si p <= n entonces desde i p hasta n-1 hacer v[i] v[i+1] fin_desde n n - 1 fin_si fi i fin_procedimiento
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
38
Actualizacin de un vector:
Ejemplo en C j p
void anadir(vector v,tipoDato dato,int *n){ if(*n<NUM_ELEM){ if(* <NUM ELEM){ v[*n] = dato; *n = *n + 1; } else{ /*Error array lleno */ } } void cambiar(vector v,tipoDato dato,int pos, int n){ if(pos < n){ v[pos] = dato; } else{ /* no existe el elemento pos */ } }
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011 39
Actualizacin de un vector:
Ejemplo en C ( ) j p (II)
void insertar(vector v,tipoDato dato,int pos, int *n){ if(*n if(* < NUM_ELEM && pos < * ){ NUM ELEM <= *n){ int i; for(i=*n-1;i>=pos;i--){ v[i+1] = v[i]; } v[pos] = dato; *n = *n + 1; } } void eliminar(vector v,int pos, int *n){ if(pos < *n){ int i; for(i=pos;i<*n-1;i++) v[i] = v[i+1]; *n = *n -1; } }
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011 40
Actualizacin de un vector:
Ejemplo en C ( j p (III) )
//Ejemplo de programa principal #include <stdio.h> # #define NUM_ELEM 100 typedef int vector[NUM_ELEM]; typedef int tipoDato; void void void void anadir(vector v,tipoDato dato,int *n); cambiar(vector v,tipoDato dato,int pos, int n); insertar(vector v,tipoDato dato,int pos, int *n); eliminar(vector v,int pos, int *n);
int main(void){ int i, n=0; vector numeros; tipoDato dato; anadir(numeros,20,&n); anadir(numeros,25,&n); anadir(numeros,50,&n); anadir(numeros,80,&n); cambiar(numeros, 30, 1, n); insertar(numeros,1,0,&n); insertar(numeros,100,5,&n); insertar(numeros,25,2,&n); eliminar(numeros,6,&n); for(i=0;i<n;i++) printf("%i\n",numeros[i]); }
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
41
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
42
5. Disee un subprograma que permita eliminar el elemento ms pequeo de un vector. vector 6. Disee una funcin lgica que permita comparar dos vectores del mismo tipo. p
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
44
Ser necesario indicar cmo se hace referencia a cada elemento. La declaracin de la matriz notas se har:
array[limInf1..limSup1,limInf2..limSup2] de tipoBase : nombreArray Cada elemento se identifica con dos ndices. Hay H que i di indicar el lmite inferior y el lmite superior de cada una de las dimensiones. l l it i f i l l it i d d d l di i
En C la declaracin se har:
tipoDato nombreArray[numElem1D][numElem2D] E realidad sera como un array d arrays: un array en el que cada uno de los En lid d de l d d l elementos es a su vez un array. Hay que indicar el nmero de elementos de cada una de las dos dimensiones.
Los ndices irn entre 0 y el nmero de elementos 1.
float notas[39][9]
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011 45
46
Columna mayor: se almacenan de forma correlativa todos los elementos de la primera columna a continuacin los de la segunda, etc. columna, segunda etc
Para la referencia al elemento i,j de un array de M x N elementos:
o Posicin = M * (j 1) + i.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
47
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
48
En una matriz se pueden recorrer todos los elementos de la primera fila, de la segunda, etc.: recorrido por filas. Tambin se pueden recorrer todos los elementos de la primera columna, de la segunda, etc.: recorrido por columnas. g , p
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
49
Es necesario sumar todos los elementos de la primera columnas y hallar su media y realizar la misma operacin con el resto de columnas. El bucle externo ser el bucle de la segunda dimensin.
desde i 1 hasta 10 hacer //Este fragmento del algoritmo se ejecuta una vez por asignatura //antes de comenzar a procesar sus notas //Si se desea obtener una media por asignatura, ser necesario //inicializar la media tantas veces como notas media 0 desde j 1 hasta 40 hacer media media + notas[j,i] fin_desde //Este fragmento del algoritmo se ejecuta una vez por asignatura //despus de procesar sus notas //Si se desea obtener una media por asignatura, ser necesario //dividir la media entre el nmero de alumnos en este punto media media / 40 escribir(media) ibi ( di ) fin_desde
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
51
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
52
Ejemplo 5.3
Implementar subprograma que devuelva la matriz resultante de multiplicar dos matrices. Sea una matriz A d M x N elementos y una matriz B de O x P elementos para poder realizar el de l d l d l l producto es necesario que el nmero de columnas de la primera (N) sea igual al nmero de filas de la segunda (O) y la matriz producto resultante ser una matriz de M x P elementos.
a11 a 21 a 31 a 41 a12 a 22 a 32 a 42 a13 b11 a 23 b21 a 33 b31 a 43 p b12 11 p 21 b22 = p b32 31 p 41 p12 p 22 p11 p 42
54
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
55
Arrays multidimensionales
En la declaracin aparece un lmite inferior y otro superior por p p p cada dimensin. Cada elemento se referencia por n ndices (uno por cada dimensin). di i ) Su tratamiento debe un bucle anidado por cada dimensin.
Para recorrer una matriz tridimensional son necesarios tres bucles anidados.
N tipos de recorridos.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
56
1 2 3
Alumnos
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
57
8. Disee un algoritmo que permita obtener los puntos de silla de un array de M x N elementos.
El punto de silla es el elemento que es al mismo tiempo mximo de fila y mnimo de columna.
9. En una tabla de N x 24 elementos se tienen almacenadas las temperaturas de cada hora de un mes de N das. Disee un algoritmo que genere un vector con las temperaturas medias diarias y que devuelva la temperatura media mensual.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
60
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
61
X X O O X X X 3
X O X X X X O 4
O O O X X O X 2
X O X X O O X 2
X O X X O X X 2
2 1 3 4 3 2 3
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
62
Registros
Los registros (o estructuras) son datos estructurados g ( ) formados por elementos heterogneos y lgicamente relacionados.
Estructura jerrquica con informacin de distinto tipo referente a un mismo objeto.
A cada componente de un registro se le denomina campo.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
63
Declaracin de registros
Se realiza enumerando cada uno de los componentes que lo forman.
registro : nombreRegistro tipoDeDato : nombreCampo tipoDeDato : nombreCampo ... fin_registro
65
registro : empleado cadena : DNI, nombre d b real : sueldo fecha : fechaContrato vector : ventas fin_registro fin registro
registro : empleado cadena : DNI, nombre d b real : sueldo fecha : fechaContrato array[1..12] de real : ventas fin_registro fin registro
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
66
67
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
68
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
70
Con los elementos individuales de un registro, se podrn realizar las mismas operaciones que se realizan con datos de ese tipo de dato.
//Concatena la cadena Prez al nombre del empleado empleado.nombre empleado.nombre & 'Prez' //Lee por teclado el sueldo del empleado leer(empleado.sueldo) //escribe la desviacin estndar de las ventas del empleado //utilizando la funcin del ejemplo 5 2 5.2 escribir(DesviacinEstndar(empleado.ventas,12))
71
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
72
Cuando se pasa una estructura como argumento por referencia en C, se trabaja con punteros a la estructura.
Para hacer referencia a los miembros de un puntero a una estructura se utiliza el operador ->, por f ejemplo e->dni.
74
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
Arrays de registros
Cmo se pueden agrupar varios elementos con informacin p g p heterognea? Arrays paralelos.
Dos o ms arrays que utilizan el mismo subndice para referirse a ili l i b di f i trminos homlogos se llaman arrays paralelos.
var array[1..40] de cadena : DNI array[1..40] d cadena : nombre [1 40] de d b array[1..40] de real : sueldo
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
76
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
77
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
78
Ejemplo 5.4
Un array de N registros almacena los datos de una serie de productos. El array ya est cargado con los datos y por cada producto se guarda su Cdigo, su descripcin y su stock. De forma paralela se almacenan en una tabla de Nx7 elementos las cantidades vendidas de cada producto a lo largo de la semana, de manera que en el elemento i j de la tabla aparecern las unidades vendidas del i,j producto i en el da j. Por ejemplo, del Bolgrafo Bic Azul (posicin 2 del array de registros) existen en el almacn 325 unidades, y el mircoles (fila 2, columna 3 de la tabla) se vendieron 34 unidades.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
79
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
80
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
81
procedimiento ActualizarVentas(valor ventas:tabla;ref Productos:p) var entero : i,j inicio desde i 1 hasta n hacer desde j 1 hasta 7 hacer p[i].stock p[i].stock tabla[i,j] fin_desde fin_desde fin_procedimiento
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
82
struct estructuraProducto { char *codigo; char *descripcion; float stock stock; }; typedef struct estructuraProducto Producto; typedef Producto Productos[NUM_ELEMENTOS]; typedef float Ventas[NUM_ELEMENTOS][7];
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
83
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
84
Ejercicios
13. Se desea obtener la tabla de puntuacin en una liga de futboln en la que compiten 10 equipos a una sola vuelta. Los resultados se almacenarn en una it i l lt L lt d l tabla de dos dimensiones, de forma que cada elemento i,j de la tabla guarda los tantos que ha marcado el equipo i al equipo j en el encuentro. Por ejemplo, un 8 en la posicin 2,6 significa que en el encuentro entre el equipo 2 y el equipo 6, el equipo 2 ha metido 8 tantos al equipo 6. l i h tid t t l i 6 Los nombres de los equipos y la puntuacin obtenida por cada uno de ellos se almacenarn en un array de registros de 10 posiciones (una por equipo) que almacenar el nombre del equipo y la puntuacin. q p p
Declarar las estructuras de datos necesarias para realizar la aplicacin. Disee un mdulo que permita introducir por teclado el nombre de los equipos y almacenarlo en el array de registros. Disee un mdulo que permita rellenar la tabla con los tantos obtenidos por los equipos. Disee un mdulo que permita obtener la puntuacin de cada equipo (3 puntos por partido ganado, 1 por partido empatado y 0 por partido perdido).
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
85
Ejercicios (II)
14. La V Edicin de la Vuelta Ciclista a los Campos Manchegos consta de 5 etapas en las que participan 120 ciclistas. Los resultados de cada etapa se almacenan en un array de 5 filas y 120 columnas en el que cada elemento contiene el tiempo en segundos que ha tardado el corredor en realizar la etapa. Si un corredor no ha finalizado una etapa aparecer un 0 en el elemento correspondiente. Los correspondiente corredores se almacenan en un array de 120 posiciones en el que se almacenar el dorsal del corredor y el tiempo total realizado.
Array con los tiempos
Nmero del participante 1 2 3 4 120 1 2 3 4 5 1 2 3 4 5 6 120 Etapa as
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
86
Ejercicios (III)
Definir las estructuras de datos necesarias para realizar la aplicacin. Disear un mdulo que obtenga, a partir de un nmero de etapa que se pasar como argumento, el dorsal del ganador de la etapa. se a una u c de ue a e e o del ganador a p ueba Disear u a funcin que devuelva el nmero de ga ado de la prueba y el tiempo total obtenido.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
87
Ejercicios (IV)
15. Una empresa quiere almacenar en una tabla las ventas realizadas por sus vendedores a lo largo de la semana. La empresa cuenta con 5 vendedores y en cada elemento i,j de la tabla se almacenar las ventas realizadas por el vendedor i el da j (j valdr 1 para el lunes, 2 para el l i l ) Los b d d l martes, 3 para el mircoles, etc.). L nombres d l vendedores y el de los total de ventas semanales se guardarn en un array de registros.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
88
Ejercicios (V)
Realizar las declaraciones de las estructuras de datos necesarias para la li i l aplicacin. Codifique un mdulo que permita introducir los nombres de los vendedores y las ventas realizadas por cada uno de ellos y almacenarlos en las estructuras de datos datos. Codifique un mdulo que obtenga el total de ventas mensuales de cada vendedor. Codifique un mdulo que obtenga en nombre del vendedor que ms ventas ha realizado en un da de la semana.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2011
89