Pascal/Turbo Pascal - programa de ordenacion y promedio

   
Vista:

programa de ordenacion y promedio

Publicado por Erick eriko_stm93@hotmail.com (1 intervención) el 06/03/2012 01:08:45
ola necesito calcular el promedio de tres calificaciones de n alumnos,su promedio total y enlistarlos de forma ascendente...si alguien me pudiera ayudar cn esto se los agradeceria demasiado soy nuevo todavia en esto s:
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

programa de ordenacion y promedio

Publicado por Armando Fuenmayor patusnalgason@hotmail.com (22 intervenciones) el 06/03/2012 21:31:24
(**********************************************)
(* Ola necesito calcular el promedio *)
(* de tres calificaciones de n alumnos, *)
(* su promedio total y enlistarlos de *)
(* forma ascendente ...si alguien me pudiera *)
(* ayudar cn esto se los agradeceria *)
(* demasiado soy nuevo todavia en esto s: *)
(**********************************************)

(* programa realizado por Armando Fuenmayor *)
(* en turbo pascal 7.0 *)

program promedionotas(input,output);
uses crt;
const
max = 3 ;

type
matrizre = record
Nombre : String[20];
nota1 : Integer;
nota2 : Integer;
nota3 : Integer;
promedio : Real ;
end;

A = array[1..max] of matrizre ;

var
i,j , num1 , temnum1, num2, temnum2 , num3, temnum3 : Integer;
tempnom : String[20];
temprome : real ;
xx: A;

(* Function declaration *)
function UpCaseStr(S: string): string;
var
jj: Integer;
begin
for jj := 1 to Length(S) do
if (S[jj] >= 'a') and (S[jj] <= 'z') then
Dec(S[jj], 32);
UpCaseStr := S;
end;

(*********************************)
(* calcula el promedio de notas *)
(*********************************)
function total(n1, n2, n3: integer ): real ;
begin
total := (n1 + n2 + n3) / 3;
end;

(***************)
(* leer datos *)
(***************)
procedure leer;
begin
clrscr;
for i := 1 to max do
begin
gotoxy(10,10);
writeln('Ingrese el N§', i ,' Nombre:') ;
gotoxy(32,10);
readln(xx[i].Nombre) ;
clreol;
gotoxy(10,12);
writeln('Ingrese la ', i ,' nota1 :') ;
gotoxy(32,12);
readln(xx[i].nota1) ;
clreol;
gotoxy(10,14);
writeln('Ingrese la ', i ,' nota2 :') ;
gotoxy(32,14);
readln(xx[i].nota2) ;
gotoxy(10,16);
writeln('Ingrese la ', i ,' nota3 :') ;
gotoxy(32,16);
readln(xx[i].nota3) ;
num1 := 0 ;
num2 := 0 ;
num3 := 0 ;
num1 := xx[i].nota1 ;
num2 := xx[i].nota2 ;
num3 := xx[i].nota3 ;
xx[i].promedio := total(num1,num2,num3) ;
gotoxy(32,10);
writeln(' ') ;
gotoxy(32,12);
writeln(' ') ;
gotoxy(30,14);
writeln(' ') ;
gotoxy(30,16);
writeln(' ') ;
clreol;

end;
end;

(* metodo de ordenamiento *********)
procedure burbuja;
begin
for i:= 1 to max do
for j:= i+1 to max-1 do

if (xx[i].nota1 < xx[j].nota1 ) then
begin
tempnom := xx[i].nombre ;
temnum1 := xx[i].nota1 ;
temnum2 := xx[i].nota2 ;
temnum3 := xx[i].nota3 ;
temprome := xx[i].promedio ;

xx[i].nombre := xx[j].nombre;
xx[i].nota1 := xx[j].nota1;
xx[i].nota2 := xx[j].nota2;
xx[i].nota3 := xx[j].nota3;
xx[i].promedio := xx[j].promedio;

xx[j].nombre := tempnom;
xx[j].nota1 := temnum1;
xx[j].nota2 := temnum2;
xx[j].nota3 := temnum3;
xx[j].promedio := temprome;

end;

end;


(**********************)
(* Muestra el arreglo *)
(**********************)
procedure mostrar;
begin
clrscr;
gotoxy(3, 6);
write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(3, 7);
write('º NOMBRE ³NOTA 1³NOTA 2³NOTA 3³PROMEDIO º');
gotoxy(3, 8);
write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍͼ');
for i := 1 to max do
begin
gotoxy(3,9+i);
write(UpCaseStr(xx[i].Nombre));
gotoxy(26,9+i);
write(xx[i].nota1) ;
gotoxy(33,9+i);
write(xx[i].nota2) ;
gotoxy(40,9+i);
write(xx[i].nota3) ;
gotoxy(47,9+i);
write(xx[i].promedio:2:2) ;
end;


end;
(**********************)
(* programa principal *)
(**********************)
begin

leer;

burbuja;

mostrar;

readln;


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