ayuda ejerc pascal
Publicado por oscar (64 intervenciones) el 12/11/2012 22:40:20
De esta ya no pido mas ayuda...lo prometo pero me queda esto como ultimo de todos..
Para esta actividad debe reutilizar los tipos (Producto, Cesta…) y todos los procedimientos que considere necesario de la unidad anterior.
1. PRIMERA CUESTIÓN:
Defina un fichero binario en el que cada elemento del fichero sea de tipo Producto.
Codifique un procedimiento (guarda_cesta) que guarda todos los productos de una cesta de la compra, que se pasa como parámetro, en un fichero cuyo nombre también se pasa como parámetro.
Tenga en cuenta que salvo el producto que ocupa la posición cero (que como ya veremos tiene un significado especial) todos los demás están en la cesta sólo si el campo en_cesta=TRUE, si este campo es FALSE no necesitamos, por tanto, guardar ese producto en el fichero.
2. SEGUNDA CUESTIÓN:
Codifique un procedimiento (recupera_cesta) que lea de un fichero de elementos de tipo producto, cuyo nombre se pasa como parámetro JUNTO CON OTROS QUE CONSIDERE NECESARIO, todos los productos que tenga almacenados y los guarde en una variable del tipo cesta que también se pasa como parámetro. Asegúrese de que no se sobrepasarán los límites de la cesta intentando introducir más de TAMMAXCESTA.
3. TERCERA CUESTIÓN:
Codifique un módulo principal en el que reutilizando los resultados de cuestiones y actividades anteriores (procedimientos de lectura y escritura de ficheros, presentación, modificación de datos de una cesta…), se muestre al usuario el menú propuesto en la actividad 2 de la unidad 6 (Unidad6_2_4.pas) y se ejecuten las acciones pertinentes a cada opción.
Tenga en cuenta que si el usuario elige:
1. Abrir cesta de compra existente: se preguntará al usuario el nombre de la cesta (que será el nombre del fichero que la contiene).
2. Comenzar cesta de compra nueva: se creará una cesta desde cero.
5. Guardar cesta: se pedirá al usuario el nombre del fichero donde guardar la cesta.
6. Pedir cesta: se mostrará la cesta actual.
7. Salir del programa: se terminará la ejecución del programa.
y se tiene q reutilizar lo q proceda de aqui
program cestacompra;
uses crt;
const
TAMMAXCESTA = 3;
type
Producto = record
nombreproduct : string[25];
numerounidadessolic :integer;
preciounidad : real;
en_cesta : boolean;
end;
tIndice = 0..TAMMAXCESTA;
tBase = Producto;
Cesta = array[tIndice] of tBase;
var
c:Cesta;
procedure lee_producto(var p:Producto); {var, modificamos el registro, insertamos información}
begin
write('Dime el nombre del producto: ');
readln(p.nombreproduct);
write('Dime el numero de unidades solicitadas: ');
readln(p.numerounidadessolic);
write('Dime el precio de la unidad: ');
readln(p.preciounidad);
p.en_cesta := true;
end;
procedure escribe_producto(p:Producto);
begin
writeln('Nombre del producto: ', p.nombreproduct);
writeln('Numero de unidades: ', p.numerounidadessolic);
writeln('Precio de la unidad: ', p.preciounidad:0:2);
write('El producto esta en cesta?: ');
if p.en_cesta then
writeln('si')
else
writeln('no');
end;
procedure inicializa_cesta(var c:Cesta);
var i:integer;
begin
{Empezamos en 1 porque el 0 está reservado.}
for i:=1 to TAMMAXCESTA do
c[i].en_cesta := false;
end;
procedure mostrar_cesta(c:Cesta);
var i:integer;
begin
for i:=1 to TAMMAXCESTA do begin
writeln;
if c[i].en_cesta then
escribe_producto(c[i]);
writeln;
end;
end;
procedure rellenar_cesta(var c:Cesta);
var i:integer;
begin
for i:=1 to TAMMAXCESTA do begin
writeln('Rellene el producto ', i, ' de su cesta:');
lee_producto(c[i]);
writeln;
end;
end;
begin
inicializa_cesta(c);
rellenar_cesta(c);
writeln('La lista de productos de su cesta es: ');
mostrar_cesta(c);
readln;
END.
mil gracias de verdad..me urge bastante
Para esta actividad debe reutilizar los tipos (Producto, Cesta…) y todos los procedimientos que considere necesario de la unidad anterior.
1. PRIMERA CUESTIÓN:
Defina un fichero binario en el que cada elemento del fichero sea de tipo Producto.
Codifique un procedimiento (guarda_cesta) que guarda todos los productos de una cesta de la compra, que se pasa como parámetro, en un fichero cuyo nombre también se pasa como parámetro.
Tenga en cuenta que salvo el producto que ocupa la posición cero (que como ya veremos tiene un significado especial) todos los demás están en la cesta sólo si el campo en_cesta=TRUE, si este campo es FALSE no necesitamos, por tanto, guardar ese producto en el fichero.
2. SEGUNDA CUESTIÓN:
Codifique un procedimiento (recupera_cesta) que lea de un fichero de elementos de tipo producto, cuyo nombre se pasa como parámetro JUNTO CON OTROS QUE CONSIDERE NECESARIO, todos los productos que tenga almacenados y los guarde en una variable del tipo cesta que también se pasa como parámetro. Asegúrese de que no se sobrepasarán los límites de la cesta intentando introducir más de TAMMAXCESTA.
3. TERCERA CUESTIÓN:
Codifique un módulo principal en el que reutilizando los resultados de cuestiones y actividades anteriores (procedimientos de lectura y escritura de ficheros, presentación, modificación de datos de una cesta…), se muestre al usuario el menú propuesto en la actividad 2 de la unidad 6 (Unidad6_2_4.pas) y se ejecuten las acciones pertinentes a cada opción.
Tenga en cuenta que si el usuario elige:
1. Abrir cesta de compra existente: se preguntará al usuario el nombre de la cesta (que será el nombre del fichero que la contiene).
2. Comenzar cesta de compra nueva: se creará una cesta desde cero.
5. Guardar cesta: se pedirá al usuario el nombre del fichero donde guardar la cesta.
6. Pedir cesta: se mostrará la cesta actual.
7. Salir del programa: se terminará la ejecución del programa.
y se tiene q reutilizar lo q proceda de aqui
program cestacompra;
uses crt;
const
TAMMAXCESTA = 3;
type
Producto = record
nombreproduct : string[25];
numerounidadessolic :integer;
preciounidad : real;
en_cesta : boolean;
end;
tIndice = 0..TAMMAXCESTA;
tBase = Producto;
Cesta = array[tIndice] of tBase;
var
c:Cesta;
procedure lee_producto(var p:Producto); {var, modificamos el registro, insertamos información}
begin
write('Dime el nombre del producto: ');
readln(p.nombreproduct);
write('Dime el numero de unidades solicitadas: ');
readln(p.numerounidadessolic);
write('Dime el precio de la unidad: ');
readln(p.preciounidad);
p.en_cesta := true;
end;
procedure escribe_producto(p:Producto);
begin
writeln('Nombre del producto: ', p.nombreproduct);
writeln('Numero de unidades: ', p.numerounidadessolic);
writeln('Precio de la unidad: ', p.preciounidad:0:2);
write('El producto esta en cesta?: ');
if p.en_cesta then
writeln('si')
else
writeln('no');
end;
procedure inicializa_cesta(var c:Cesta);
var i:integer;
begin
{Empezamos en 1 porque el 0 está reservado.}
for i:=1 to TAMMAXCESTA do
c[i].en_cesta := false;
end;
procedure mostrar_cesta(c:Cesta);
var i:integer;
begin
for i:=1 to TAMMAXCESTA do begin
writeln;
if c[i].en_cesta then
escribe_producto(c[i]);
writeln;
end;
end;
procedure rellenar_cesta(var c:Cesta);
var i:integer;
begin
for i:=1 to TAMMAXCESTA do begin
writeln('Rellene el producto ', i, ' de su cesta:');
lee_producto(c[i]);
writeln;
end;
end;
begin
inicializa_cesta(c);
rellenar_cesta(c);
writeln('La lista de productos de su cesta es: ');
mostrar_cesta(c);
readln;
END.
mil gracias de verdad..me urge bastante
Valora esta pregunta


0