Pascal/Turbo Pascal - pascal ejercicio

 
Vista:

pascal ejercicio

Publicado por franco (1 intervención) el 13/05/2011 04:10:08
alguien m ayuda hacer estos dos ejercicios en pascal

1)desrrolle un algoritmo que lea los primeros 5000 numeros enteros y determine cuanto de ellos son pares y cuanto son impares.al final deberia indicar la sumatoria de los pares y la sumatoria de los impares.

2)Cinco miembros de un club contra la obesidad desean saber cuanto han bajado o subido de peso desde la ultima vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que se requiere es que por cada persona se imprima un reporte que indique e nombre, la cedula de identidad, si subio o bajo de peso y cuantos kilos subio o bajo
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

pascal ejercicio

Publicado por ramon (2158 intervenciones) el 13/05/2011 19:48:32
{Espero esto te ayude para el primer caso}

program enteros;
uses
crt;
var
numeros : array[1..5000] of integer;
npares, nimpares : array[1..5000] of integer;
sumapar, sumaimp : word;
nume : integer;
g, cont : integer;

procedure genera_numeros(semilla : integer);
begin
randomize;
cont := 1;
repeat
numeros[cont] := random(semilla);
cont := cont + 1;
until cont > 5000;
end;

procedure comprueva_pares;
var
t, d, i : integer;
begin
t := 1;
d := 1;
for i := 1 to 5000 do
if (numeros[i] mod 2) = 0 then
begin
npares[t] := numeros[i];
t := t + 1;
end
else
begin
nimpares[d] := numeros[i];
d := d + 1;
end;
g := i;
writeln('numeros pares = ',t - 1);
writeln('numeros impares = ',d - 1);
writeln;
for i := 1 to t - 1 do
sumapar := sumapar + npares[i];
for i := 1 to d - 1 do
sumaimp := sumaimp + nimpares[i];
writeln('total suma pares = ',sumapar);
writeln('total suma impares = ',sumaimp);
writeln;
writeln('total numeros = ',g);
end;


begin
clrscr;
genera_numeros(110);
comprueva_pares;
readln;
end.


{Para el segundo caso}

program club;
uses
crt;
type
datosreg = record
nombre : string[20];
indent : word;
pesoant : array[1..10] of integer;
pesodsp : array[1..10] of integer;
prueba : boolean;
end;

var
datos : array[1..5] of datosreg;
f : file of datosreg;
jt, x, y, i : integer;
prome1, prome2, ide : word;


procedure entrada1;
var
j : integer;
begin
j := 1;
repeat
clrscr;
gotoxy(4,1);write('Nombre = ');
gotoxy(13,1);readln(datos[j].nombre);
gotoxy(4,2);write('Celula Identificacion = ');
gotoxy(27,2);readln(datos[j].indent);
gotoxy(4,4);write('Entradas de pesos');
x := 4;
y := 6;
for i := 1 to 10 do
begin
gotoxy(x,y);write('Kilos bascula = ',i);
gotoxy(23,y);readln(datos[j].pesoant[i]);
y := y + 1;
end;
j := j + 1;
until j > 5;
end;

procedure entrada2(dd : word);
var
n : integer;
begin
for n := 1 to 5 do
begin
if dd = datos[n].indent then
begin
clrscr;
gotoxy(4,4);write('Entradas de pesos');
x := 4;
y := 6;
for i := 1 to 10 do
begin
gotoxy(x,y);write('Kilos bascula = ',i);
gotoxy(23,y);readln(datos[n].pesodsp[i]);
y := y + 1;
end;
end;
end;
end;


begin
clrscr;
textcolor(15);
entrada1;
jt := 1;
repeat
clrscr;
for i := 1 to 5 do
begin
gotoxy(40,2 + i);write(datos[i].indent,' ',datos[i].nombre);
end;
ide := 0;
gotoxy(3,2);write('Entre cedula identidad : ');
gotoxy(28,2);readln(ide);
entrada2(ide);
jt := jt + 1;
until jt > 5;
clrscr;
for i := 1 to 5 do
begin
prome1 := 0;
prome2 := 0;
for jt := 1 to 10 do
begin
prome1 := prome1 + datos[i].pesoant[jt];
prome2 := prome2 + datos[i].pesodsp[jt];
end;
if (prome1 div 5) > (prome2 div 5) then
datos[i].prueba := true
else
datos[i].prueba := false;
if datos[i].prueba = true then
writeln('Bajo de Peso = Antes : ',prome1 div 5,
' Despues : ',prome2 div 5)
else
writeln('Subio de Peso = Antes : ',prome1 div 5,
' Despues : ',prome2 div 5);
if (prome1 div 5) < (prome2 div 5) then
writeln('diferencia = ', prome2 div 5 - prome1 div 5)
else
writeln('diferencia = ', prome1 div 5 - prome2 div 5);
end;
readln;
end.

{Espero lo mejores esto solo es para que entres en tema suerte}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pascal ejercicio

Publicado por luis (3 intervenciones) el 26/05/2011 01:25:02
para la primera solucion 1..
program paresImpares;
uses
crt;
const
n=5000;
var
i,cantPares,cantImpares:integer;
sumaPares,sumaImpares:integer;
Begin
clrscr;
cantPares:=0;
sumaPares:=0;
sumaImpares:=0;
cantImpares:=0;
for i:=1 to n do
Begin
if ((i mod 2)=0)then
begin
cantPares:=cantPares+1;
sumaPares:=sumaPares+i;
end
else
Begin
cantImpares:=cantImpares+1;
sumaImpares:=sumaImpares+i;
End;
end;
writeln('cantidad de pares en el rango {1..',n,'} es: ',cantPares);
writeln('la sumatoria de esos pares es: ', sumaPares);
writeln('cantidad de impares en el rango {1..',n,'} es: ',cantImpares);
writeln('la sumatoria de esos impares es: ', sumaImpares);
readkey;
End.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pascal ejercicio

Publicado por ramon (2158 intervenciones) el 26/05/2011 15:59:40
Buen trabajo enhorabuena continua asín y si necesitas ayuda pídela y te atenderé todo lo que pueda suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar