ayuda urgente!!! desesperada con pascal
Publicado por paola (4 intervenciones) el 17/06/2010 21:45:52
necesito ayuda en un algortimo de registros ya le movi mil cosas
y nada ke korre porfacvor ayuda!!!
Tener la informacion capturada en el registro
Calcular el promedio de las calificaciones por estudiante y guardarlo en el registro (arch_cal)
Promedio por estudiante
Determinar en que materia se obtuvo el mejor promedio
Ordenar los 2 archivos por nombre
determinar de quien es el promedio mayor y decir su nombre .
esto es lo ke tengo:
unit sist_al;
interface
uses crt;
type
mat=record
matri: string[10];
cali:array[1..3] of integer;
materia:array[1..3]of integer;
end;
rega=record
matricula:mat;
nombre: string[40];
semestre, edad: integer;
{ materia: ee;
}
end;
// archc=array[1..20] of mat;
archa= array [1..20] of rega;
vector=array[1..20] of real;
//promedio=array[1..3] of integer;
var
//regalum: rega;
arch_al:archa;
vec:vector;
// prom:promedio;
// rema:mat;
// arch_cal:archc;
procedure pantcap;
procedure captura (var arch_al:archa;n:integer);
procedure pantsal;
procedure salida(arch_al:archa;n:integer);
procedure buscar(arch_al:archa;n:integer);
procedure ProMateria(arch_al:archa;n:integer);
procedure ProAlumno(arch_al:archa;n:integer);
implementation
procedure pantcap;
begin
clrscr;
gotoxy(30,1);
writeln ('CAPTURA DE LOS DATOS DE LOS ALUMNOS: ');
gotoxy(12,3);
writeln ('Matricula:');
gotoxy(34,3);
writeln('Nombre:');
gotoxy(12,4);
writeln('Edad:');
gotoxy(20,4);
writeln('Semestre:');
gotoxy(12,6);
writeln ('Calificaciones');
gotoxy(18,7);
writeln('logica:');
gotoxy(18,8);
writeln('ingles:');
gotoxy(18,9);
writeln('calculo:');
end;
procedure captura (var arch_al:archa;n:integer);
var m,w,i: integer;
begin
for i:=1 to n do
begin
pantcap;
gotoxy(22,3);
readln(arch_al[i].matricula.matri);
gotoxy(41,3);
readln (arch_al[i].nombre);
gotoxy(17,4);
readln (arch_al[i].edad);
gotoxy(29,4);
readln (arch_al[i].semestre);
w:=7;
for m:=1 to 3 do
begin
gotoxy(25,w);
readln(arch_al[i].matricula.cali[m]);
// writeln (arch_al[i].matricula.cali[m]);
w:=w+1
end;
end;
end;
procedure pantsal;
begin
clrscr;
gotoxy(31,1);
writeln ('DATOS DE LOS ALUMNOS');
gotoxy(7,3);
writeln('Matricula');
gotoxy(25,3);
writeln('Nombre');
gotoxy(39,3);
writeln('Edad');
gotoxy(45,3);
writeln('semestre');
gotoxy(55,3);
writeln('calificaciones');
gotoxy(65,3);
write ('logica');
gotoxy(73,3);
write('ingles');
gotoxy(79,3);
write('calculo');
writeln;
end;
procedure salida(arch_al:archa;n:integer);
var
j,i,m,inw:integer;
begin
j:=4;
inw:=65;
pantsal;
for i := 1 to n do
begin
gotoxy(7,j);
writeln(arch_al[i].matricula.matri);
gotoxy(25,j);
writeln(arch_al[i].nombre);
gotoxy(39,j);
writeln(arch_al[i].edad);
gotoxy(45,j);
writeln(arch_al[i].semestre);
for m:=1 to 3 do
begin
gotoxy(inw,j);
write(arch_al[i].matricula.cali[m]);
inw:=inw+6
end;
j:=j+1;
end;
end;
procedure buscar(arch_al:archa;n:integer);
var
i:integer;
matri:string[10];
b:boolean;
begin
i:=1;
b:=false;
writeln('alumno que buscas:');
readln(matri);
while ((i<n) or (b=false)) do
begin
if(arch_al[i].matricula.matri=matri) then
// if (matrcicula=re[i].nombre) then
begin
writeln;
writeln('Nombre: ',arch_al[i].nombre);
writeln('Edad: ',arch_al[i].edad);
writeln('Semestre ',arch_al[i].semestre);
writeln('=====Calificaciones======');
writeln('Logica: ',arch_al[i].matricula.cali[1]);
writeln('Ingles: ',arch_al[i].matricula.cali[2]);
writeln('Calculo: ',arch_al[i].matricula.cali[3]);
b:=true;
end;
i:=i+1;
end;
if b=false then
writeln('"no existe este Alumno"');
end;
//mayor promedio de materia
procedure ProMateria(arch_al:archa;n:integer);
var
x,suma,i,j,op:integer;
promL,promI,promC:real;
//mate:string[10];
begin
i:=1;
x:=1;
j:=n;
writeln('De que materia quieres ver su promedio:');
writeln('1-Logica');
writeln('2-Ingles');
writeln('3-Calculo');
writeln('4-Mayor de todas');
readln(op);
while (x<=3) do
begin
suma:=0;
while j>=1 do
begin
suma:=suma+arch_al[i].matricula.cali[x];
j:=j-1;
end;
if x=1 then
begin
promL:=suma div n;
WRITELN('LOGICA',promL,'');
end;
if x=2 then
begin
promI:=suma div n;
end;
if x=3 then
begin
promC:=suma div n;
end;
x:=x+1;
end;
if op=1 then
begin
writeln('Promedio de Lofica es ',promL,'');
end;
if op=2 then
begin
writeln('Promedio de Ingles es ',promI,'');
end;
if op=3 then
begin
writeln('Promedio de Calculo es ',promC,'');
end;
if op=4 then
begin
if ((promL>promI) and (promL>promC)) then ;
begin
writeln('Promedio de Calculo es ',promL,'');
end;
if ((promI>promL) and (promI>promC)) then
begin
writeln('Promedio de Calculo es ',promI,'');
end;
if ((promC>promI) and (promC>promL)) then
begin
writeln('Promedio de Calculo es ',promC,'')
end;
end;
end;
//mayor promedio de alumno
procedure ProAlumno(arch_al:archa;n:integer);
var
j,c,m,i,suma:integer;
//matri:string[10];
t,mayor,prom:real;
// b:boolean;
begin
i:=1;
// b:=false;
c:=0;
writeln(':***El Mejor Promedio de Alumno***:');
// writeln('Teclea su Matricula:');
// readln(matri);
suma:=0;
while i<n do
begin
for m:=1 to 3 do
begin
suma:= suma + arch_al[i].matricula.cali[m];
c:=c+1;
end;
prom:=suma div 3;
writeln(prom);
vec[c]:=prom;
i:=i+1;
end;
j:=1;
mayor:=vec[j];
for c:=2 to n do
begin
if mayor < vec[c] then
mayor:=vec[c];
j:=c;
writeln(vec[c]);
end;
t:=vec[j];
writeln('El promedio es de ',arch_al[j].nombre,'' );
writeln(' es de ',t:2:2,'');
end;
end.
ayuda!!!1
y nada ke korre porfacvor ayuda!!!
Tener la informacion capturada en el registro
Calcular el promedio de las calificaciones por estudiante y guardarlo en el registro (arch_cal)
Promedio por estudiante
Determinar en que materia se obtuvo el mejor promedio
Ordenar los 2 archivos por nombre
determinar de quien es el promedio mayor y decir su nombre .
esto es lo ke tengo:
unit sist_al;
interface
uses crt;
type
mat=record
matri: string[10];
cali:array[1..3] of integer;
materia:array[1..3]of integer;
end;
rega=record
matricula:mat;
nombre: string[40];
semestre, edad: integer;
{ materia: ee;
}
end;
// archc=array[1..20] of mat;
archa= array [1..20] of rega;
vector=array[1..20] of real;
//promedio=array[1..3] of integer;
var
//regalum: rega;
arch_al:archa;
vec:vector;
// prom:promedio;
// rema:mat;
// arch_cal:archc;
procedure pantcap;
procedure captura (var arch_al:archa;n:integer);
procedure pantsal;
procedure salida(arch_al:archa;n:integer);
procedure buscar(arch_al:archa;n:integer);
procedure ProMateria(arch_al:archa;n:integer);
procedure ProAlumno(arch_al:archa;n:integer);
implementation
procedure pantcap;
begin
clrscr;
gotoxy(30,1);
writeln ('CAPTURA DE LOS DATOS DE LOS ALUMNOS: ');
gotoxy(12,3);
writeln ('Matricula:');
gotoxy(34,3);
writeln('Nombre:');
gotoxy(12,4);
writeln('Edad:');
gotoxy(20,4);
writeln('Semestre:');
gotoxy(12,6);
writeln ('Calificaciones');
gotoxy(18,7);
writeln('logica:');
gotoxy(18,8);
writeln('ingles:');
gotoxy(18,9);
writeln('calculo:');
end;
procedure captura (var arch_al:archa;n:integer);
var m,w,i: integer;
begin
for i:=1 to n do
begin
pantcap;
gotoxy(22,3);
readln(arch_al[i].matricula.matri);
gotoxy(41,3);
readln (arch_al[i].nombre);
gotoxy(17,4);
readln (arch_al[i].edad);
gotoxy(29,4);
readln (arch_al[i].semestre);
w:=7;
for m:=1 to 3 do
begin
gotoxy(25,w);
readln(arch_al[i].matricula.cali[m]);
// writeln (arch_al[i].matricula.cali[m]);
w:=w+1
end;
end;
end;
procedure pantsal;
begin
clrscr;
gotoxy(31,1);
writeln ('DATOS DE LOS ALUMNOS');
gotoxy(7,3);
writeln('Matricula');
gotoxy(25,3);
writeln('Nombre');
gotoxy(39,3);
writeln('Edad');
gotoxy(45,3);
writeln('semestre');
gotoxy(55,3);
writeln('calificaciones');
gotoxy(65,3);
write ('logica');
gotoxy(73,3);
write('ingles');
gotoxy(79,3);
write('calculo');
writeln;
end;
procedure salida(arch_al:archa;n:integer);
var
j,i,m,inw:integer;
begin
j:=4;
inw:=65;
pantsal;
for i := 1 to n do
begin
gotoxy(7,j);
writeln(arch_al[i].matricula.matri);
gotoxy(25,j);
writeln(arch_al[i].nombre);
gotoxy(39,j);
writeln(arch_al[i].edad);
gotoxy(45,j);
writeln(arch_al[i].semestre);
for m:=1 to 3 do
begin
gotoxy(inw,j);
write(arch_al[i].matricula.cali[m]);
inw:=inw+6
end;
j:=j+1;
end;
end;
procedure buscar(arch_al:archa;n:integer);
var
i:integer;
matri:string[10];
b:boolean;
begin
i:=1;
b:=false;
writeln('alumno que buscas:');
readln(matri);
while ((i<n) or (b=false)) do
begin
if(arch_al[i].matricula.matri=matri) then
// if (matrcicula=re[i].nombre) then
begin
writeln;
writeln('Nombre: ',arch_al[i].nombre);
writeln('Edad: ',arch_al[i].edad);
writeln('Semestre ',arch_al[i].semestre);
writeln('=====Calificaciones======');
writeln('Logica: ',arch_al[i].matricula.cali[1]);
writeln('Ingles: ',arch_al[i].matricula.cali[2]);
writeln('Calculo: ',arch_al[i].matricula.cali[3]);
b:=true;
end;
i:=i+1;
end;
if b=false then
writeln('"no existe este Alumno"');
end;
//mayor promedio de materia
procedure ProMateria(arch_al:archa;n:integer);
var
x,suma,i,j,op:integer;
promL,promI,promC:real;
//mate:string[10];
begin
i:=1;
x:=1;
j:=n;
writeln('De que materia quieres ver su promedio:');
writeln('1-Logica');
writeln('2-Ingles');
writeln('3-Calculo');
writeln('4-Mayor de todas');
readln(op);
while (x<=3) do
begin
suma:=0;
while j>=1 do
begin
suma:=suma+arch_al[i].matricula.cali[x];
j:=j-1;
end;
if x=1 then
begin
promL:=suma div n;
WRITELN('LOGICA',promL,'');
end;
if x=2 then
begin
promI:=suma div n;
end;
if x=3 then
begin
promC:=suma div n;
end;
x:=x+1;
end;
if op=1 then
begin
writeln('Promedio de Lofica es ',promL,'');
end;
if op=2 then
begin
writeln('Promedio de Ingles es ',promI,'');
end;
if op=3 then
begin
writeln('Promedio de Calculo es ',promC,'');
end;
if op=4 then
begin
if ((promL>promI) and (promL>promC)) then ;
begin
writeln('Promedio de Calculo es ',promL,'');
end;
if ((promI>promL) and (promI>promC)) then
begin
writeln('Promedio de Calculo es ',promI,'');
end;
if ((promC>promI) and (promC>promL)) then
begin
writeln('Promedio de Calculo es ',promC,'')
end;
end;
end;
//mayor promedio de alumno
procedure ProAlumno(arch_al:archa;n:integer);
var
j,c,m,i,suma:integer;
//matri:string[10];
t,mayor,prom:real;
// b:boolean;
begin
i:=1;
// b:=false;
c:=0;
writeln(':***El Mejor Promedio de Alumno***:');
// writeln('Teclea su Matricula:');
// readln(matri);
suma:=0;
while i<n do
begin
for m:=1 to 3 do
begin
suma:= suma + arch_al[i].matricula.cali[m];
c:=c+1;
end;
prom:=suma div 3;
writeln(prom);
vec[c]:=prom;
i:=i+1;
end;
j:=1;
mayor:=vec[j];
for c:=2 to n do
begin
if mayor < vec[c] then
mayor:=vec[c];
j:=c;
writeln(vec[c]);
end;
t:=vec[j];
writeln('El promedio es de ',arch_al[j].nombre,'' );
writeln(' es de ',t:2:2,'');
end;
end.
ayuda!!!1
Valora esta pregunta


0