EJERCICIOS Curso 02/03 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 1. Ejercicios: CONCEPTOS PRINCIPALES 1. Realizar un esquema de los componentes básicos del hardware. 2. Indicar que unidades se utilizan para medir la capacidad de almacenamiento de datos de una memoria, indicando además sus equivalencias en bytes. 3. Indicar qué es la memoria RAM y cuál es su función. 4. La unidad encargada del gobierno del ordenador es: • La unidad aritmético-lógica • La unidad de memoria • La unidad de control 5. Si tenemos una memoria principal de 2 Megabytes, ¿cuántos bits necesitaríamos para referenciar cualquier byte de esta memoria? • 8 • 21 • 28 6. Indicar cuál es la función del procesador. 7. Indicar que es la memoria caché. 8. ¿Qué hace un sistema operativo? 9. Un sistema operativo está compuesto por el conjunto de elementos que se conecta al ordenador. es el conjunto de programas que tiene el control de ordenador. es el teclado que se usa para trabajar con el ordenador. se llama a la memoria que tiene instalada el ordenador 10. Para poder ejecutar más de una aplicación al mismo tiempo desde un sistema operativo necesitamos pantalla a color. basta con tener memoria suficiente. la versión del sistema operativo lo tiene que permitir. necesitamos un ratón. 11. ¿Qué es un fichero? 12. Para que se utilizan los directorios en MS/DOS y las carpetas en Windows? 13. Indicar cuáles serían los mayores problemas en caso de tener una sola carpeta en disco duro del ordenador. 14. El sistema de numeración que utilizan internamente los circuitos digitales de un ordenador es el: Binario Decimal hexadecimal 2 EUITI – 02/03 Fundamentos de Informática. Ejercicios 15. ¿A qué número del sistema decimal es equivalente el número binario 00011011? 26 28 27 16. ¿A qué número del sistema binario corresponde el número decimal 24? 00011000 11100111 11101000 17. ¿A qué número del sistema decimal es equivalente el número binario 00010011? 20 19 27 18. ¿A qué número del sistema binario corresponde el número decimal 30? 00011110 11101110 00011010 19. ¿Qué hace la orden “DEL *a*e*i.exe” con el fichero yabecin.exe? No cambiaría nada Lo borraría Excepto ese fichero se borrarían todos los de extensión “.exe” 20. ¿Qué hace la orden “DEL *.*”? No puede hacer nada, porque *.* no puede ser el nombre de un fichero Borra todos los ficheros del directorio actual Borra cualquier fichero de la unidad A: 21. ¿Qué significa la orden “DIR datos.*”? Listar los ficheros de cualquier extensión Listar todos los ficheros de nombre “datos” y de cualquier extensión Listar todos los ficheros de nombre “datos” pero sin extensión 22. ¿Qué significa la orden “COPY *.* A:”? Copiar todos los ficheros de cualquier nombre y extensión en A Copiar todos los ficheros de nombre arbitrario pero sin extensión en A Copiar todos los ficheros de la unidad A: en el directorio actual 23. ¿Cómo lograrías realizar en Windows el comando COPY de MSDOS? Abriendo la hoja de cálculo “Excel” abriendo la ventana de “Administrador de Programas” abriendo la ventana de “Administrador de Archivos” 24. Un programa escrito en lenguaje Pascal se puede ejecutar: directamente desde cualquier máquina en la máquina que tenga instalado el compilador de Pascal 25. ¿En que lenguaje está el programa ejecutable? 26. ¿Qué es un lenguaje de alto nivel? ¿Para que se utiliza? 27. Dado el fichero pp.exe, ¿cuál sería su contenido? Un programa en Pascal Un programa ejecutable No podemos saberlo 28. Une cada fichero con el contenido que le corresponde: prog.pas un fichero de datos prog.exe un fichero con un programa Pascal 3 EUITI – 02/03 datos.dat datos.xls Fundamentos de Informática. Ejercicios un fichero que contiene un programa ejecutable un fichero creado con la hoja de cálculo Excel 29. ¿Cuál es la función de un compilados? 30. Estando en el entorno de TurboPascal, ¿para que sirve la orden Run? Para encontrar los errores sintácticos de un programa Pascal Para ejecutar un programa compilado (con la orden Compile) previamente. Para compilar y ejecutar un programa Pascal 31. La aplicación de TurboPascal: es una herramienta para la detección de errores sintácticos es un compilador es un procesador 32. Indicar la función que cumple el administrador de archivos en Windows. Gestiona la información de la impresora Organiza los ficheros del disco Protege la pantalla Elude los virus informáticos 4 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 2 Ejercicios. Diagramas de flujo 1. Dado el siguiente diagrama de flujo indica qué es lo que calcula, es decir, escribe el enunciado que corresponde a este ejercicio. 2. Leer un número entero y escribir su valor absoluto. 3. Leer una nota (entero) y escribir la nota en letras que le corresponde (suspenso, aprobado, notable, sobresaliente). 4. Leer dos números enteros y escribirlos ordenados de mayor a menor. Ahora, leer 3 números enteros y ordenarlos de mayor a menor. 5. Leer los segundos que han pasado desde la media noche y escribir la hora actual con el formato hh:mm:ss. Por ejemplo: si leemos 4005, habría que escribir 1:6:45 lo que quiere decir que cuando han pasado 4005 segundos desde la media noche, significa que han pasado 1 hora, 6 minutos y 45 segundos. 6. Leer un número entero positivo y escribir todos sus divisores. 7. Calcular el volumen de la siguiente figura, después de leer los valores de su radio, R, y de su altura, H, siendo ambos números reales. 5 EUITI – 02/03 Fundamentos de Informática. Ejercicios H R 8. Dada una secuencia de caracteres finalizada con un punto, calcular: a. cuántas veces aparece la letra ‘A’ b. cuántas vocales contiene. c. cuántas no vocales contiene (sin contar el punto final). d. cuántas vocales, cuántas no vocales y el total de caracteres que contiene. 9. Hacer un diagrama de flujo que pida una fecha que recogeremos en las variables: día, mes y año y que nos escriba la fecha del día siguiente. 6 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 3 Ejercicios :Tipos, Declaraciones, asignación, Entrada/Salida 1. Calcular el valor y el tipo de las siguientes expresiones aritméticas: (a) 2 + 6 * 3 + 4 (f) sqr(2) div 3 (b) (2 + 6) * 3 + 4 (g) 3 - 20 div 4 - 3 * 2 (c) (2 + 6) * (3 + 4) (h) 4 * sqr (6) - sqr(3) div 2 (d) 20 mod 3 div 2 (i) 30-2*4 div 6 mod 3 *8 (e) 20 mod 3 / 3 2. Encuentra los errores y explica los errores de las siguientes declaraciones: var a,b: integer; B,c: boolean; var 33h2: real; a,b: integer; const m: 3.4; var a,b: integer, c: char; 3. Dadas las siguientes definiciones: const v1=120; v2=310; v3=0; var d1,d2: integer; Revisar las siguientes asignaciones, indicando si contienen algún error y los valores que contendrán las variables tras su ejecución v1+v2 :=d1; d2:= v2 div v1; v3:= v1+v2; d1:= v2 DIV v3; d1:= v3+v2; 4. Dada la variable A de tipo entero y la variable B de tipo real, indica las instrucciones qué están mal. readln(A/2); writeln(a); realdln(‘b’); writeln(‘A’); 5. Sabiendo que A=6 y B=3, ¿cuál es el efecto de estas instrucciones? Write(‘A =’, A); Writeln (‘ ‘:4, ‘B =’, B); Writeln(A div B); Writeln(B-A); 6. Indica los valores de A, B y C en cada paso. a) Program primero; Uses wincrt; Const x=5; Var A, B, C:Integer; Begin B:=1; C:=X+B; A:=X+4; A:=C; B:=C; A:=A+B+C; C:=C*A; 7 EUITI – 02/03 Fundamentos de Informática. Ejercicios Writeln(A, B, C); End. b) Program segundo; uses wincrt; const N=6; var A,B,C:integer; begin A:=4; B:=A*N; C:=A mod N; A:=C; B:=A+C; Writeln(A,B,C); End. c) Program tercero; Uses wincrt; Var X,Y:Integer; Z:Real; Begin X:=10; Y:=X+10; Z:=X; Y:= X div 5; Writeln(‘X = ‘, X:4); Writeln(‘Y = ‘, Y:4); Writeln(‘Z = ‘, Z:5:2); End. 7. Realizar un programa que lea dos números enteros desde el teclado guardándolos en dos variables y que luego intercambie los valores de las dos variables. Ejemplo: X,Y: Integer; • Valores iniciales: X=10 e Y=5 • Valores finales: X=5 e Y=10 8. Escribir un programa que pase los grados a radianes. Radianes = Grados*(Pi/180) 9. Escribir un programa que lea un dato que representa los segundos, y que calcule las horas, minutos y segundos que hay. Ejemplo: Entrada: 5000 segundos Salida: 1 hora 23 minutos 20 segundos 10. Esribir un programa qu calcule el área y perímetro de un cuadrado. Realizar lo mismo para un triangulo recto. Entrada: lados del cuadrado y triangulo (base y altura) 8 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 4. Ejercicios. Sentencias condicionales 1. Leer dos números enteros y escribir el programa que escriba por pantalla el máximo. 2. Indicar qué escribe el siguiente programa, si suponemos que I = 6, J=7, K=11 y L=11: program qué_escribe; uses wincrt; var I, J, K, L: integer; Begin Write (‘Dame cuatro numeros enteros:’); Read (I,J,K,L); if I < J then if K <> L then Write(‘ABC’) else Write(‘DEF’); if I >= J then write(‘GHI’) else write(‘JKL’); end. 3. Relacionar cada expresión de la columna izquierda con su equivalente de la columna de la derecha: a. (X < Y) and (Y < Z) 1. not (X <> Y) and (Y = Z) b. (X < Y) and (Y <= Z) 2. not ((X >= Y) or (Y > Z)) c. (X <> Y) or (Y = Z) 3. (Y > Z) or (Y = Z) or (X = Y) d. (X = Y) or (Y >= Z) 4. not (X >= Y) and not (Y >= Z) e. (X = Y) and (Y = Z) 5. not ((X = Y) and (Y <> Z)) 4. Transformar la instrucción IF en una única instrucción CASE If (n=5) or (n=7) Then N:=n+4 ELSE Begin If (n>7) and (n<=20) Then N:=n-5 ELSE Begin If n=6 Then N:=n+1 ELSE N:=n-1; End; End; Case Of End; 9 EUITI – 02/03 Fundamentos de Informática. Ejercicios 5. Escribir un programa que lea una nota (un entero de 0-10) y escriba como resultado la nota por letra (suspenso, aprobado, notable o sobresaliente). (DF) 6. Dadas las variables enteras X e Y, ordenarlas en orden creciente (X el menor e Y el mayor). Dados tres números enteros ordenarlos de menor a mayor. (DF) 7. Mejora el siguiente trozo de código: if Puntuak > 70 then write(‘Bikain’); if Puntuak < 30 then write(‘Gaizki’); if (Puntuak >= 70) and (Puntuak <= 30) then write(‘Normala’); 8. Escribir un programa que solicite por pantalla un número entero de 3 dígitos y compruebe si es capicúa. Hacer lo mismo para un número de 5 dígitos. 9. Hacer un programa que pida una fecha que recogeremos en las variables: día, mes y año y que nos escriba la fecha del día siguiente. (DF) 10 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 5. Ejercicios. Sentencias repetitivas. 1. Diseñar y escribir el programa que calcule el factorial de un número leído por teclado. • Utilizando la estructura for • Utilizando la estructura while • Utilizando la estructura repeat-until 2. Dados los siguientes dos trozos de código, indicar si son equivalentes o no, es decir, si logramos el mismo efecto poniendo uno u otro en un programa. (Suponer que las variables N y cont son de tipo entero). A.1 Readln(N); Cont:=1; While Cont<=N do Begin Writeln(Cont); Cont:=Cont+2; End; 3. Readln(N); For Cont:=1 to N do Begin If (Cont mod 2 = 0) Then writeln(cont); End; Di si los dos fragmentos de programa que están a continuación son equivalentes. Razona la respuesta. ( Decir que son equivalentes significa que escribir uno u otro fragmento dentro de un programa da el mismo resultado) A. if x<10 then x:=x+1; if x>=10 then x:=x-1; B. for i:=10 to 25 do writeln(i,’ ‘); writeln(‘He terminado’); 4. A.2 if x<10 then x:=x+1 else x:=x-1; i:=10; while i<25 do begin write(i,’ ‘); writeln(‘He terminado’); end; Indicar cúal es la salida por pantalla del siguiente programa: (a) Program FLOYD; Const contadorFilas=6; Var fila, columna, numero: integer; BEGIN Numero:=0; FOR fila:=1 TO contadorFilas DO Begin Columna:=1; WHILE columna <= fila DO Begin 11 EUITI – 02/03 Fundamentos de Informática. Ejercicios Numero:=numero + 1; Write(numero); Columna:=columna + 1; End; Writeln; End; (b) (c) 5. END. program ejercicio_b; uses wincrt; var a,b:integer; begin for a:=1 to 5 do begin for b:=1 to a do write(’*’); writeln; end; end. program sumar; uses wincrt; var i, j, suma: Integer; begin for i := 1 to 3 do begin suma := 0; for j := 1 to i do begin suma := suma + j; if j<>i then write(i, ‘ / ‘, suma, ‘ + ‘) else writeln(i, ‘ / ‘, suma); end; end; end. Indicar cuál es la salida por pantalla del siguiente programa: (a) (b) program kontatu; Uses wincrt; Const Maximo = 3; Minimo = 1; Var I,J :integer; BEGIN FOR I:=Minimo TO Maximo DO Begin FOR J:=Minimo TO Maximo DO Writeln(I, ' balio du I-k eta J-k ',J, ' balio du'); End; end. Program ForDown; Uses wincrt; Const Minimo=1; Maximo=5; VAR Indice, Dato : Integer; BEGIN Dato:=25; Writeln('Los cinco números inferiores al ',Dato, ' son: '); FOR Indice:= Maximo DOWNTO Minimo DO 12 EUITI – 02/03 Fundamentos de Informática. Ejercicios Writeln('El que va el ', Indice, ' es el ', DatoIndice); Writeln('Ya está'); END. 6. Diseñar y escribir el programa que calcule la media aritmética de las notas introducidas por teclado. El programa será interactivo y tendrá el siguiente formato: Ejecución: (en negrita los datos introducidos por el usuario) ¿Cuántas notas vas a introducir? 1 nota: 7.50 2 nota: 6.40 7 ... 7 nota: 9.75 La media de las notas es 6.80 7. Diseñar y escribir el programa que produzca la siguiente salida: ZYXWVTSRQPONMLKJIHGFEDCBA YXWVTSRQPONMLKJIHGFEDCBA XWVTSRQPONMLKJIHGFEDCBA WVTSRQPONMLKJIHGFEDCBA VTSRQPONMLKJIHGFEDCBA TSRQPONMLKJIHGFEDCBA SRQPONMLKJIHGFEDCBA RQPONMLKJIHGFEDCBA QPONMLKJIHGFEDCBA PONMLKJIHGFEDCBA ONMLKJIHGFEDCBA NMLKJIHGFEDCBA MLKJIHGFEDCBA LKJIHGFEDCBA KJIHGFEDCBA JIHGFEDCBA IHGFEDCBA HGFEDCBA GFEDCBA FEDCBA EDCBA DCBA CBA BA A 8. Diseñar y escribir el programa que calcule la suma de los diez primeros términos de la siguiente serie: 1/2 + 2/22 + 3/23 + 4/24 + ... + n/2n 9. Diseñar y escribir el programa que calcule el máximo, mínimo y la media de los N números introducidos por teclado. La cantidad de números a tratar, N, se pedirá al principio del programa y los números los introducirá el usuario. 10. Diseñar y escribir un programa que lea un número entero y escriba todos sus divisores. 11. Diseñar y escribir un programa que lea una secuencia de caracteres terminada en punto y cuente: (DF) 13 EUITI – 02/03 Fundamentos de Informática. Ejercicios a. el número de ‘A’ contenidas en la secuencia b. el número de vocales contenidas en la secuencia. c. el número de letras no vocales contenidas en la secuencia. d. el número de caracteres que no sean letras e. el número total de caracteres leídos 12. Diseñar y escribir el programa que lea una secuencia de números enteros terminada en 0 y calcule: a. la media aritmética (sin contar el 0). b. calcule la media aritmética de los números positivos (sin contar el 0). c. el máximo y su posición d. el mínimo y su posición 13. Diseñar y escribir un programa para que lea un número X, y después lea una secuencia de números terminada en 0, y calcule: a. Suponiendo que la secuencia no este ordenada, indicar si X está en ella o no. Si el número se encuentra en la secuencia, escribir la posición de ese número dentro de la secuencia. Si no existe, escribir 0. b. Suponiendo que la secuencia está ordenada de menor a mayor indicar si X está en ella o no. Si el número se encuentra en la secuencia, escribir la posición de ese número dentro de la secuencia. Si no existe, escribir 0. 14. Diseñar y escribir un programa que dada una secuencia de caracteres terminada en punto, cuente cuántas veces aparece el carácter ‘A’ seguido del carácter ‘T’. 15. Diseñar y escribir un programa que dado un número entero N, nos diga si este número es primo o no. 16. Utilizando el algoritmo realizado en el ejercicio anterior, especificar y escribir un algoritmo que escriba por pantalla los números primos menores que el número entero M. 17. Diseñar y escribir un programa que lea un número y nos escriba su tabla de multiplicación (del 1 al 10). 18. Diseñar y escribir un programa que lea un número N y escriba el cuadrado y cubo de todos los números enteros entre 1 y N. 19. Diseñar y escribir un programa que lea un número N y escriba el termino N de la secuencia de Fibonacci. La secuencia de Fibonacci es : 0 1 1 2 3 5 8 13 21 34 55 89 ..., es decir que un termino se calcula como la suma de los dos términos anteriores. Los dos primeros términos son fijos, 0 y 1. 14 EUITI – 02/03 Fundamentos de Informática. Ejercicios Tema 6 Ejercicios. TABLAS (ARRAYS). 1. Con los trozos de programa que vienen a continuación, ¿se logra el mismo efecto? En caso afirmativo explicar este efecto; y en caso contrario explicar por qué no son iguales. ... A B esta:= 0; ind:=1; while (ind<=n) and (esta=0) do begin if x=tau[ind] then esta:=1; ind:=ind+1; end; if esta=1 then writeln (x,’ esta en la posición ‘,ind-1) else writeln (x, ‘ no está’); ... ... esta := 0; for ind:=1 to n do if x=tau[ind] then esta:=1; if esta=1 then writeln(x,’ esta en la posición ‘,ind-1) else writeln(x, ‘ no está'); ... 2. Ondorengo programa zatia zuzena den ala ez ikusi. Zuzena ez bada, zergatik azaldu eta erroreak zuzentzeko beharko liratekeen aldaketak azaldu: program mover; uses wincrt; const LimiteSup = 10; type TablaM = array [1.. LimiteSup] of Integer; var tau: TablaM; aux, i: Integer; begin for i := 1 to LimiteSup do begin tau[i] := i; i := i + 1; end; i := 0; while i <= LimiteSup do begin aux := tau[i]; tau[i] := tau[i +1]; tau[i + 1] := aux; end; end. 3. Solicita por pantalla 20 nombres de personas, recógelos en una tabla y, una vez introducidos todos: 3.1.Visualiza los elementos de la tabla pero empezando desde la última posición. 3.2.Saca por pantalla el que ocupa la sexta, la novena y la décima posición. 3.3.Visualiza los elementos que ocupan las posiciones pares de esa tabla. 4. Crear una tabla de 10 elementos y a partir de ella: 4.1.Generar otra nueva que contenga los elementos de la tabla anterior multiplicados por un número que se habrá solicitado por pantalla. 15 EUITI – 02/03 Fundamentos de Informática. Ejercicios 4.2.Visualizar, contar y sumar los elementos pares que ocupan las posiciones impares de la tabla que te has creado inicialmente. Imprimir las posiciones que ocupan dichos elementos en la tabla de la siguiente forma. Posición Elemento xx xx xx xx Numero de elementos: xxxxxx La suma es: xxxxxx 5. Dada una tabla de elementos enteros (no más de 20), hacer el programa que calcula su media aritmética. 6. Dada una tabla de 10 números enteros, mover todos sus elementos una posición hacia la izquierda. 7. Buscar el número mayor contenido en una tabla de no más de 15 elementos y devolver ese número y su posición. 8. Buscar el número menor contenido en una tabla de no más de 15 elementos y devolver ese número y su posición. 9. Hacer el programa que busca un número específico, previamente solicitado por pantalla, dentro de una tabla desordenada de 10 elementos de tipo entero. Si el número está en la tabla, el programa devolverá la primera posición en la que aparece y si no está devolverá cero. 10. Hacer el programa que busca un número específico, previamente solicitado por pantalla, dentro de una tabla ordenada de 10 elementos de tipo entero. Si el número está en la tabla, el programa devolverá la posición en la que aparece y si no está devolverá la posición en la que le tocaría colocarse. 11. Dada una secuencia de números enteros (no más de 20) terminada en cero, hacer un algoritmo que los introduzca en una tabla de manera que queden ordenados de mayor a menor. 12. Igual que el ejercicio anterior, pero en este caso ordenando los números de menor a mayor. 13. Dada una tabla de 10 caracteres, contar el número de veces que aparece la letra ‘A’. 14. Dada una tabla de N caracteres, contar el número de vocales que contiene. 15. Dada una tabla de N caracteres, contar el número de elementos de la misma que no son vocales. 16. Dada una tabla de N caracteres, contar el número de veces que aparece la letra ‘A’ en la posición siguiente a la aparición de la letra ‘T’ 17. Crear una tabla con los nombres de los 10 empleados de una empresa y otra tabla paralela con los sueldos de esos 10 empleados. Una vez creadas las dos tablas se obtendrá el nombre y el sueldo de la persona que más gana y de la que menos gana. 18. Crear una tabla de enteros: tab[4,5] y a continuación imprimirla. 19. Crear una tabla tab[5,5], calcular las sumas de los elementos de las columnas impares e imprimir el resultado de la siguiente forma. Elemento de la fila 1 columna 1: ... Elemento de la fila 1 columna 2: ... .... Elemento de la fila 1 columna 5: ... 16 EUITI – 02/03 Fundamentos de Informática. Ejercicios Elemento de la fila 2 columna 1: ... .... Elemento de la fila 2 columna 5: ... .... Elemento de la fila 5 columna 5: ... La suma total es: XXX 20. Crea un array bidimensional que contenga las tablas de multiplicar desde el 1 hasta el 10. 21. Crear una tabla tab[4,5] y a partir de ella crear su transpuesta. La matriz transpuesta se forma poniendo ordenadamente las filas de la matriz tab como columnas de la matriz trans. Ejemplo: 16 17 18 19 20 22. Crear una tabla notas[20,4] con las notas de los alumnos de un curso. El primer índice hace referencia al alumno y el segundo al curso. Obtener la nota media de cada alumno y la nota media de cada asignatura. 23. Una empresa guarda en una tabla las ventas realizadas de sus 50 productos en los doce meses del año. Obtener: 23.1. Por cada artículo el total de ventas. 23.2. Por cada mes, el total de ventas. 24. Sobre la tabla creada en el ejercicio anterior realizar el siguiente programa: Solicitar al usuario un número de artículo y se obtener el mes en el que más se ha vendido de ese producto. Realizar esta operación para tantos artículos como se desee el usuario. 25. Una empresa tiene 100 obreros repartidos en 4 categorías profesionales. La empresa dispone de una matriz de 100x31 en la que cada posición contiene el número de horas extraordinarias trabajadas por cada obrero cada día del mes. También dispone de dos tablas: una de 100 elementos con la categoría de cada trabajador y otra con el precio de las horas extraordinarias por categoría. Calcular: 25.1. Cuánto ha cobrado cada obrero en ese mes por horas extraordinarias. 25.2. El total pagado por dichas horas. 26. Escribir un programa que calcule la facturación media de una empresa para un determinado mes, si la empresa en cuestión fabrica 5 artículos y almacena los datos de venta por años (desde el año 1.995 hasta el año 2.000), meses y artículos. 27. Realizar un programa que llene una matriz de 20 filas y 25 columnas, con números al azar entre 0 y 255, y nos muestre por pantalla: 27.1. La matriz inicial 27.2. La suma de todos los datos de la columna que le indique el usuario. 27.3. La matriz que resulta de dividir cada elemento de cada fila por el de mayor magnitud de la fila. 1 2 3 4 5 6 7 8 9 10 tab = 11 12 13 14 15 16 17 18 19 20 1 6 2 7 trans = 3 8 4 9 5 10 11 12 13 14 15 17 EUITI – 02/03 Fundamentos de Informática. Ejercicios 27.4. La matriz que resulta de dividir cada dato del array entre el valor máximo del array. 28. Hacer un programa que nos de el producto de dos matrices. 29. Considerando una elección a la que se presentan N candidatos, que estarán numerados del 1 a N, realizar un programa que vaya sumando los votos obtenidos por cada candidato. Para realizar la entrada de votos al programa, suponer que los votos están metidos en una urna y a medida que sacamos las papeletas de la urna (en las que figura el número de candidato) el programa tiene que sumar al candidato correspondiente un voto; tener en cuenta que puede suceder que alguno de los candidatos no obtenga ningún voto. Utilizar como fin de entrada de datos el voto al candidato 0. Al finalizar el recuento de votos el programa tendrá que indicarnos: 29.1. Número de votos obtenido por cada candidato. 29.2. Número total de votos introducidos. 29.3. Candidato más votado. Ejemplo (en negrita los datos introducidos por el usuario): Número de candidatos presentados? 6 Entrada de votos: 2 1 2 2 1 1 4 2 0 Candidatos Votos obtenidos 1 3 2 4 3 0 4 1 5 0 6 0 Total votos : 8 Candidato más votado: 2 30. Realizar un programa que elija un número al azar entre 0 y 100 y nos de 5 oportunidades para acertarlo. A partir del 1er intento deberá darnos alguna pista para poder acertar el número. El jugador partirá con 10 puntos, y en cada jugada que no acierte el número se le quitarán 2 puntos. Si el jugador se queda sin puntos tiene que aparecer en mensaje que le indique que ha perdido la partida. Y si acierta el número, el mensaje tendrá que indicarle cuantos puntos ha obtenido. NOTA: la función RANDOM(número) nos devuelve un número aleatorio X de tipo WORD cuyo valor estará comprendido dentro del siguiente rango: 0<=X<número, pero para que esto funcione correctamente antes es necesario poner el procedimiento RANDOMIZE, que es el que permite inicializar el generador de números aleatorios. Ejemplo: .... begin {programa principal} randomize; x:=random(101); ... 31. Tenemos como dato de entrada los ingresos de 6 taquillas de un estadio de fútbol durante 4 domingos. Tener en cuenta que los a datos introducir no tienen por qué estar 18 EUITI – 02/03 Fundamentos de Informática. Ejercicios ordenados y que además puede ocurrir que algunos domingos no se abran todas las taquillas. Realizar un programa que calcule los siguientes datos: 31.1. Ingresos totales de cada taquilla 31.2. Ingresos totales realizados cada domingo 31.3. Ingresos totales del estadio 31.4. Domingo de mayor ingreso total 31.5. Taquilla de mayor ingreso total 32. Una estación meteorológica desea realizar un estudio estadístico de las temperaturas obtenidas a lo largo de una semana. Para ello dispone, al finalizar cada semana, de las temperaturas máxima y mínima obtenidas durante cada uno de los 7 días de la semana, y además, estos datos los tiene ordenados por día. Realizar un programa que les permita determinar: 32.1. Temperatura media de la semana 32.2. Temperatura máxima y mínima de la semana 32.3. Temperatura media de cada día de la semana 32.4. Diferencia en la temperatura media de cada día y la temperatura media de la semana Escribir la salida con el siguiente formato: Máxima de la semana: 40 Mínima de la semana: 10 Temperatura media de la semana: 24,14 Día 1 2 3 4 5 6 7 Máximo 30 40 35 30 28 25 26 Mínimo 25 30 20 15 14 10 10 Media 27,5 35 27,5 22,5 21 17,5 18 Diferencia -3,36 -10,86 -3,36 1,64 3,14 6,64 4,14 33. En una asignatura tenemos N alumnos. Los alumnos tienen opción de ir al laboratorio y conseguir por el trabajo realizado, medio (0.5) punto que se sumara a la nota final. La asignatura tendrá un examen ordinario y la nota final se calculará sumando la nota del laboratorio (si tuviera) a la nota del examen (si tuviera). 1. En una tabla guardaremos las notas del laboratorio. La entrada de datos se realizará por pares, alumno nota. El final de datos se indicará introduciendo un 0 como alumno y cualquier valor como nota. Estas datos no vendrán ordenados por el número de alumno. Para los alumnos que no hayan ido al laboratorio no vendrá ninguna nota, por lo que esta información habrá que indicarla de alguna forma. Recoge estas notas el la tabla Laboratorios. 2. En una tabla guardaremos las notas del examen. La entrada de datos se realizará por pares, alumno nota. El final de datos se indicará introduciendo un 0 como alumno y cualquier valor como nota. Estas datos no vendrán ordenados por el número de alumno. Para los alumnos que no se hayan presentado al examen no 19 EUITI – 02/03 Fundamentos de Informática. Ejercicios vendrá ninguna nota, por lo que esta información habrá que indicarla de alguna forma. Recoge estas notas el la tabla Examen. 3. Preparar las actas, es decir calcular la nota final para cada alumno. Para calcular la nota se le sumara a la nota del examen la nota del laboratorio, siempre que el alumno tenga estas dos notas. Si no tiene nota en el laboratorio la nota final será la del examen. Si no se ha presentado al examen en las actas aparecerá como no presentado. Guardar esta información en la tabla Actas. 4. Calcular el porcentaje de alumnos que no se ha presentado al examen. 5. Calcular, sobre los presentados, la nota media del examen y también, sobre los presentados, la media de las notas finales. 6. ¿Quién ha sacado la mejor nota? Y, ¿la segunda mejor? (sobre las notas finales). 7. Por último y para poder presentar los datos de forma agradable, el programa pedirá el nombre de cada alumno y los guardará en la tabla Alumnos. Esta información se guardará en la tabla Alumnos. Una vez leídos estos datos escribir el resultado de la siguiente forma: Nombre Nota laboratorio Nota del examen Nota final Ander Acero 0.3 7.2 7.5 Miren Aramendi 0 N.P N.P. Saioa Bermejo N.P. 4.5 4.5 Jon Fernandez 0.5 4.5 5 ... ... ... ... Porcentaje de alumnos que no se han presentado al examen: 13 % Media de las notas del examen (sobre los presentados): 6.6 Media de las notas finales (sobre los presentados): 6.9 La mejor nota la tiene el alumno Koldo Manterola: 9.7 La segunda mejor nota la tiene el alumno Ander Acero: 7.5 20