Pascal/Turbo Pascal - Practica de examen final

 
Vista:
Imágen de perfil de Daniel

Practica de examen final

Publicado por Daniel (5 intervenciones) el 10/11/2017 03:01:04
Buenos dias/tardes/noches programadores



Tengo que practicar para otra vez que debo hacer este examen,tengo una practica que encontre que mi profesor me dio hace un tiempo en la universidad,pero me quede atascado,los puntos a cumplir son estos

A-Definir la estructura adecuada para almacenar de forma temporal 100 numeros enteros

B-Cargar los datos validando que los valores se encuentren en el rango de -60 a 150 inclusive

C-Informar el promedio de los numeros

D-Informar en que posicion se encuentra el menor de los numeros pares y cual es ese numero

E-Informar cuantos numeros son mayores que el promedio

F-Agregar un modulo al programa que permita ingresar la posicion de un numero por teclado e informe cual es ese numero(esto aun no lo hice)

Este es mi programa hecho_

Program examen;

uses crt;

type

vector = array [1..100] of Integer;

var

numeros:vector;
contador,Prom,i,cont_pos,menor,posicion:Integer;


Procedure carga;

Begin



Writeln ('ingrese un total de 100 numeros del 50 al 150 inclusive');
For i:=1 to length(numeros) do
begin
Readln (numeros[i]);
if (-50>=numeros[i]) or (numeros[i]>=150) then
begin
writeln ('error,ingrese otro valor');
Readln (numeros[i]);
end;
end;


end;

Function Promedio (numeros :array of Integer):Real;

var

R1:Integer;
Resultado:Real;

Begin

R1:=0;
Resultado:=0;

For i:=1 to length(numeros) do
begin
R1:=R1 + (numeros[i]);
end;

Resultado:= R1/length(numeros);

Writeln (Resultado);

Promedio:=Resultado;

Writeln (Promedio);
end;


Procedure Pares;


Begin

for i:=1 to length(numeros)-1 do;
if (numeros[i] mod 2)=0 then
begin
cont_pos:= cont_pos +1;
if (numeros[i])<(numeros[i+1]) then
menor:=numeros[i];
posicion:=cont_pos
end;

Writeln ('el menor de los numeros pares es',menor,'y se encuentra en la posicion',posicion);

end;

Function Mayores(Numeros : array of Integer; Prom:Integer):Integer;
Begin


for i:=1 to length(numeros) do
Begin
if (Prom<numeros[i]) then
contador:=contador+1;
end;

Mayores:=contador


end;


Begin ///Programa Principal///

Prom:=0;
carga;
Promedio(numeros);
Pares;
Mayores(numeros,Prom);

end.

Mi problema actual esta en la funcion denominada ''promedio'' para el punto C,donde se supone que deberia dividir correctamente,pero arroja un resultado que no corresponde;si encuentran algun otro error haganmelo saber,pues pienso rehacer este codigo una y otra vez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder