DELTA – MASTER Introducción a la Programación FORMACIÓN UNIVERSITARIA C/ Gral. Ampudia, 16 Teléf.: 91 533 38 42 - 91 535 19 32 28003 MADRID Ejercicio 1 [3 Puntos] Tenemos en el fichero de texto C:\notas.txt de los alumnos de una asignatura. Cada linea corresponde con las notas almaenadas para 1 alumno. Queremos generar otro fichero de texto C:/medias.txt con las medias de cada alumno (sólo interesan los 2 primeros decimales). Diseña y escribe un programa que genere ese fichero. Ejemplo: C:\notas.txt 8.8 0.1 3 1 5 4 2.8 8.7 9 9.3 10 10 C:\medias.txt 3.87 0.0 3.2 9.4 SOLUCIÓN Program Ejercicio1; uses crt; var fent,fsal:TEXT; linea,valor:real; cont:real; begin assign(fent,'c:\notas.txt'); assign(fsal,'c:\medias.txt'); {$I-} reset(fent); {$I+} rewrite(fsal); if ioresult = 0 then (*el fichero existe*) while not eof(fent) do begin linea:=0.0; cont:=0.0; while not eoln(fent) do begin read(fent,valor); linea:=linea+valor; cont:=cont+1 end; readln(fent); if cont<>0.0 then linea := linea / cont; writeln(fsal,linea) end; close(fent); close(fsal) end. 1 DELTA – MASTER FORMACIÓN UNIVERSITARIA C/ Gral. Ampudia, 16 Teléf.: 91 533 38 42 - 91 535 19 32 28003 MADRID Introducción a la Programación Ejercicio 2 [3 puntos]: Definimos número promedio de un número entero positivo, al número que se obtiene de sumar sus dígitos impares y restar sus dígitos pares. Diseña y escribe un programa que pida dos número y le indique los números promedios de ambos números. Ejemplo: El número promedio de 318547 es -2 ya que 7-4+5-8+1-3=-2 SOLUCION Program Ejercicio2; uses crt; var acumulado:integer; cont:integer; pos:char; procedure operar(); begin acumulado:=0; cont:=0; writeln('introduce el número a leer'); while not eoln do begin read(pos); cont:=cont+1; if ((cont mod 2) = 0) then begin acumulado:=acumulado+ord(pos)-ord('0') end else acumulado:=acumulado-ord(pos)+ord('0') end; // si el numero de valores es impar hay que cambiar de signo if cont mod 2 <> 0then acumulado:= - acumulado; writeln(acumulado); readln end; begin operar(); operar(); end. 2