Ayuda para resolver estos 2 ejercicios en pascal
Publicado por Alejandra (18 intervenciones) el 20/08/2015 02:14:11

BUENAS NOCHES!
necesito ayuda para resolver estos 2 ejercicios en pascal.-
desde ya gracias por la ayuda.-

Valora esta pregunta


0
¨{Mira esto te encaminara para el otro}
program ventas10;
uses
crt;
type
string50 = string[50];
datosventas = record
codigovend : string50;
zonas : array['A'..'j'] of real;
poszona : char;
end;
var
f : file of datosventas;
dat : datosventas;
i, t : integer;
letra : char;
activa : string50;
procedure entradaventas(codi : string50);
var
salir : boolean;
ttr : char;
pp : longint;
begin
for pp := 1 to length(codi) do
codi[pp] := upcase(codi[pp]);
pp := 0;
assign(f,'altas.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
dat.codigovend := codi;
letra := 'A';
salir := false;
repeat
write(' Entre Importe Venta En Zana ',letra,' : ');
readln(dat.zonas[letra]);
dat.poszona := letra;
writeln;
writeln(' Desea Entrar Mas Datos A Este Vendedor [S/N]');
repeat
ttr := upcase(readkey);
until ttr in['S','N'];
if ttr = 'N' then
begin
rewrite(f);
seek(f,pp);
write(f,dat);
close(f);
salir := true;
end
else
begin
rewrite(f);
seek(f,pp);
write(f,dat);
pp := pp + 1;
letra := upcase(chr(ord(letra) + 1));
if letra > 'J' then
salir := true;
end;
until salir = true;
end
else
begin
salir := false;
for pp := 0 to filesize(f) - 1 do
begin
seek(f,pp);
read(f,dat);
if dat.codigovend = codi then
begin
salir := true;
break;
end;
end;
if salir = true then
begin
letra := upcase(chr(ord(dat.poszona) + 1));
repeat
write(' Entre Importe Venta En Zana ',letra,' : ');
readln(dat.zonas[letra]);
dat.poszona := letra;
writeln;
writeln(' Desea Entrar Mas Datos A Este Vendedor [S/N]');
repeat
ttr := upcase(readkey);
until ttr in['S','N'];
if ttr = 'N' then
begin
seek(f,pp);
write(f,dat);
close(f);
salir := true;
end
else
begin
seek(f,pp);
write(f,dat);
pp := pp + 1;
letra := upcase(chr(ord(letra) + 1));
if letra > 'J' then
salir := true;
end;
until salir = true;
end;
end;
end;
procedure presentadatos(gg : char);
var
h : longint;
co : string50;
i : integer;
td : char;
begin
gg := upcase(gg);
if gg in['T','U'] then
begin
assign(f,'altas.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln;
writeln(' Error De Archivo Pulse Una Tecla');
readkey;
end
else
begin
if gg = 'T' then
begin
clrscr;
for h := 0 to filesize(f) - 1 do
begin
seek(f,h);
read(f,dat);
if dat.codigovend <> '' then
writeln(' Codigo = ',dat.codigovend);
for td := 'A' to dat.poszona do
write(' ',td,' = ',dat.zonas[td]:0:2);
end;
close(f);
readkey;
end;
if gg = 'U' then
begin
clrscr;
write(' Entre Codigo Comprador : ');
readln(co);
clrscr;
for i := 1 to length(co) do
co[i] := upcase(co[i]);
for h := 0 to filesize(f) - 1 do
begin
seek(f,h);
read(f,dat);
for i := 1 to length(dat.codigovend) do
dat.codigovend[i] := upcase(dat.codigovend[i]);
if dat.codigovend = co then
begin
close(f);
clrscr;
writeln(' Datos Del Vendedor ',co);
writeln;
writeln(' Codigo = ',dat.codigovend);
for td := 'A' to dat.poszona do
writeln(' Ventas = ',td,' = ',dat.zonas[td]:0:2);
readkey;
end;
end;
end;
end;
end;
end;
procedure informemaxventa;
var
co : string50;
k : longint;
s, a : char;
total : real;
sal : boolean;
i : integer;
va : real;
begin
clrscr;
sal := false;
write(' Entre Codigo Comprador : ');
readln(co);
clrscr;
for i := 1 to length(co) do
co[i] := upcase(co[i]);
assign(f,'altas.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln;
writeln(' Error De Archivo Pulse Una Tecla');
readkey;
end
else
begin
for k := 0 to filesize(f) - 1 do
begin
seek(f,k);
read(f,dat);
for i := 1 to length(dat.codigovend) do
dat.codigovend[i] := upcase(dat.codigovend[i]);
if dat.codigovend = co then
begin
sal := true;
break;
end;
end;
close(f);
if sal = true then
begin
total := 0.0;
for a := 'A' to dat.poszona do
total := total + dat.zonas[a];
va := 0;
for a := 'A' to dat.poszona do
if dat.zonas[a] > va then
begin
va := dat.zonas[a];
s := a;
end;
clrscr;
writeln(' El Maximo Valor Es = ',va:0:2,' De ',s);
writeln(' El Total Es = ',total:0:2);
readkey;
end;
end;
end;
procedure menu;
var
rr, tecla : char;
salimo : boolean;
begin
salimo := false;
repeat
clrscr;
writeln;
writeln(' **** Menu Jeneral ****');
writeln;
writeln(' 1 = Entradas Vendedor');
writeln(' 2 = Mostrar Ventas');
writeln(' 3 = Resumenes');
writeln(' 4 = Salir');
writeln;
writeln(' Elije Opcion ');
repeat
tecla := readkey;
until tecla in['1','2','3','4'];
clrscr;
case tecla of
'1' : begin
write(' Entre El Codigo Vendedor : ');
readln(activa);
entradaventas(activa);
end;
'2' : begin
write(' Presentar Datos De Un Vendedor O Todos [T/U]');
repeat
rr := upcase(readkey);
until rr in['T','U'];
presentadatos(rr);
end;
'3' : informemaxventa;
'4' : salimo := true;
end;
until salimo = true;
end;
begin
clrscr;
fillchar(dat,sizeof(datosventas),0);
menu;
end.