Pascal/Turbo Pascal - Ayuda por favor soy nuevo en esto y no se que hacer

   
Vista:

Ayuda por favor soy nuevo en esto y no se que hacer

Publicado por Miguel Gonzalez miguelg19@hotmail.com (1 intervención) el 25/06/2011 17:16:22
Hola a todos tengo un problema y es el siguiente estoy en primer semestre de informática y soy realmente malo en el tema de programación y la entrega es 28 de esta semana que entra :-( , este es el tema a plantear:

Realizar un programa en pascal que cargue el modelo y la cantidad vendida en lo que va del mes respectivamente, para un número de autos de una concesionaria, y luego proceda a mostrar la cantidad total de autos vendidos, la cantidad más vendida y la menos vendida de todos los modelos. Y por ultimo un listado de todos los autos ordenados desde el más vendido hasta el menos vendido, y otra del menos vendido al más vendido.

*La cantidad más vendida y la menos vendida de todos los modelos, debe ir acompañada del nombre del modelo, de dicha cantidad. En caso de haber un empate en las ventas deben mostrarse todos los modelos incluidos en dicho empate.

*Los listados ordenados de los autos deben estar separados, es decir, una lista para el orden del más vendido al menos vendido, y otra lista para el orden del menos vendido al más vendido.

*El número de autos puede variar y será establecido antes de cada corrida del programa

*El programa también debe darle al usuario la opción de introducir una cantidad y mostrar todos los modelos de autos que tengan dicha cantidad de autos vendidos.

*Se le debe dar la opción al usuario de realizar el proceso nuevamente.
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

Ayuda por favor soy nuevo en esto y no se que hacer

Publicado por ramon (2072 intervenciones) el 26/06/2011 14:34:50
{Espero verte entendido lo que querías te dejo este sencillo programa para que te ayude suerte}

program autos;
uses
crt;
type
fichaautos = record
modelo : string[80];
ventas : integer;
end;
const
fichas : integer = 0;

var
auto : array[1..20] of fichaautos;
error, numera, cont : integer;
tecla : char;


procedure entra_datos_fichas;
var
datoaut : string[80];
s, co : integer;
begin
cont := 1;
co := 1;
s := 1;
gotoxy(10,2);write('Entrada de datos [ESC] = ternina');
gotoxy(9,4);write('Modelo : ');
gotoxy(9,5);write('Ventas : ');
gotoxy(18,4);
repeat
tecla := readkey;
if co = 1 then
begin
if tecla in[#48..#90,#165,#32,#97..#122,#164] then
begin
datoaut[s] := upcase(tecla);
datoaut[0] := chr(s);
gotoxy(17 + s,4);write(datoaut[s]);
s := s + 1;
if s > 80 then
s := 80;
end;
end;
if co = 2 then
begin
if tecla in[#48..#57] then
begin
datoaut[s] := upcase(tecla);
datoaut[0] := chr(s);
gotoxy(17 + s,5);write(datoaut[s]);
s := s + 1;
if s > 15 then
s := 15;
end;
end;

if tecla = #13 then
begin
if co = 1 then
begin
auto[cont].modelo := copy(datoaut,1,s - 1);
s := 1;
gotoxy(18,5);
end;
if co = 2 then
begin
val(datoaut,numera,error);
auto[cont].ventas := numera;
s := 1;
cont := cont + 1;
gotoxy(18,4);clreol;
gotoxy(18,5);clreol;
gotoxy(18,4);
end;
co := co + 1;
if co > 2 then
co := 1;
end;

if tecla = #8 then
begin
if co = 1 then
begin
s := s - 1;
if s < 1 then
s := 1;
datoaut[s] := ' ';
datoaut[0] := chr(s);
gotoxy(17 + s,4);write(datoaut[s]);
end;
if co = 2 then
begin
s := s - 1;
if s < 1 then
s := 1;
datoaut[s] := ' ';
datoaut[0] := chr(s);
gotoxy(17 + s,5);write(datoaut[s]);
end;
end;
until (tecla = #27) or (cont > 20);
fichas := cont - 1;
end;

procedure presenta(desd, asta : integer);
var
pue, pa : integer;
begin
pue := asta;
if pue <= fichas then
pue := asta
else
pue := fichas;
pa := desd;
clrscr;
repeat
writeln(auto[pa].modelo,' ',auto[pa].ventas);
pa := pa + 1;
until pa > pue;
end;


procedure presenta_ventas;
var
pasar, ventas : integer;
te : char;
begin
ventas := fichas;
pasar := 1;
presenta(1,ventas);
writeln;
writeln('Pulsa [Enter]');
repeat
te := readkey;
until te = #13;
end;

procedure autos_ardena_max_men(ver : boolean);
var
nu, cual, rs, cs : integer;
canvi : fichaautos;
puls : char;
begin
rs := 1;
cs := 2;
repeat
if auto[rs].ventas < auto[cs].ventas then
begin
canvi := auto[rs];
auto[rs] := auto[cs];
auto[cs] := canvi;
end;
cs := cs + 1;
if cs > fichas then
begin
cs := rs + 1;
rs := rs + 1;
end;
until rs > fichas;
if ver = true then
begin
writeln('La Marca mas Vendida Pulse [Enter]');
writeln;
writeln(auto[1].modelo,' ',auto[1].ventas);
writeln;
writeln('Desea presentas los mas vendidos Asta : ','[S/N]');
repeat
puls := readkey;
if puls in['s','S'] then
begin
writeln('Entre Numero ');
readln(nu);
end;
until puls in['s','S','n','N'];
if puls in['s','S'] then
begin
clrscr;
for rs := 1 to fichas do
begin
if auto[rs].ventas >= nu then
writeln(auto[rs].modelo,' ',auto[rs].ventas);
end;
writeln;
writeln('Pulse [Enter]');
readln;
end;
end;
end;

procedure autos_ardena_men_max(ver : boolean);
var
nu, cual, rs, cs : integer;
canvi : fichaautos;
puls : char;

begin
rs := 1;
cs := 2;
repeat
if auto[rs].ventas > auto[cs].ventas then
begin
canvi := auto[rs];
auto[rs] := auto[cs];
auto[cs] := canvi;
end;
cs := cs + 1;
if cs > fichas then
begin
cs := rs + 1;
rs := rs + 1;
end;
until rs > fichas;
if ver = true then
begin
writeln('La Marca menos Vendida Pulse [Enter]');
writeln;
writeln(auto[1].modelo,' ',auto[1].ventas);
writeln;
writeln('Desea presentas los menos vendidos Asta : ','[S/N]');
repeat
puls := readkey;
if puls in['s','S'] then
begin
writeln('Entre Numero ');
readln(nu);
end;
until puls in['s','S','n','N'];
if puls in['s','S'] then
begin
clrscr;
for rs := 1 to fichas do
begin
if auto[rs].ventas <= nu then
writeln(auto[rs].modelo,' ',auto[rs].ventas);
end;
writeln;
writeln('Pulse [Enter]');
readln;
end;
end;
end;

procedure presenta_mayor_menor;
var
cl : integer;
begin
autos_ardena_max_men(false);
writeln('Listado de Mayor a Menor Pulse [Enter]');
for cl := 1 to fichas do
writeln(auto[cl].modelo,' ',auto[cl].ventas);
readln;
end;

procedure presenta_menor_mayor;
var
cl : integer;
begin
autos_ardena_men_max(false);
writeln('Listado de Menor a Mayor Pulse [Enter]');
for cl := 1 to fichas do
writeln(auto[cl].modelo,' ',auto[cl].ventas);
readln;
end;





procedure menu;
var
tec : char;
sal : boolean;
begin
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
sal := false;
gotoxy(1,1);
repeat
tec := readkey;
case tec of
#49 : begin
clrscr;
entra_datos_fichas;
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#50 : begin
clrscr;
presenta_ventas;
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#51 : begin
clrscr;
autos_ardena_max_men(true);
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#52 : begin
clrscr;
autos_ardena_men_max(true);
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#53 : begin
clrscr;
presenta_mayor_menor;
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#54 : begin
clrscr;
presenta_menor_mayor;
clrscr;
gotoxy(3,2);write('ELIJA OPCION MENU');
gotoxy(2,4);write('1 = Entradas');
gotoxy(2,6);write('2 = Ver Autos');
gotoxy(2,8);write('3 = Max Ventas');
gotoxy(2,10);write('4 = Men Ventas');
gotoxy(2,12);write('5 = Listado de > a <');
gotoxy(2,14);write('6 = Listado de < a >');
gotoxy(2,16);write('7 = Salir');
end;
#55 : sal := true;
end;
until (sal = true) or (tec = #27);
clrscr;
end;


begin
clrscr;
menu;
end.

{Que aya 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