
actividad 2 tema 8
Publicado por Erik (73 intervenciones) el 07/04/2014 16:02:44
Hola tengo que hacer lo siguiente:
A partir del programa de la actividad 1 (el codigo pascal que voy a poner despues) vamos crear uno más complejo. Cada cuestión irá incrementando la funcionalidad de la versión anterior. UTILICE LOS NOMBRES DE TIPOS, FUNCIONES, PROCEDIMIENTOS, CONSTANTES, ETC… QUE SE INDICAN EN EL ENUNCIADO.
1. PRIMERA CUESTIÓN:
Añada al programa de la actividad anterior un procedimiento (cuenta_productos) que reciba como parámetro, entre otros posibles, una variable del tipo Cesta y cuente las posiciones ocupadas, es decir, las que tienen el campo en_cesta=TRUE devolviendo este valor en un parámetro. Así sabremos cuantos productos tiene la cesta.
2. SEGUNDA CUESTIÓN:
Añada un procedimiento (busca_libre) que reciba como parámetro, entre otros POSIBLES, una variable de tipo Cesta y busque la primera posición de la Cesta en la que el campo en_cesta=FALSE, devolviendo esta posición o 0 en el caso de que no encuentre ninguna posición libre (es decir ninguna posición con el campo en_cesta=FALSE).
3. TERCERA CUESTIÓN:
Añada un procedimiento (incluir_producto_en_cesta) que introduzca un nuevo producto en la cesta de la compra, si hay alguna posición libre, o presente el mensaje de “Cesta llena” si no hay posición libre.
Este procedimiento debe hacer uso de los procedimientos busca_libre y lee_producto.
4. CUARTA CUESTIÓN:
Añada al programa anterior un procedimiento (buscar_producto) que reciba como parámetros, entre otros POSIBLES, el nombre de un producto y devuelva la posición en la cesta del producto o cero si no se encuentra.
5. QUINTA CUESTIÓN:
Añada al programa anterior un procedimiento (eliminar_producto_de_cesta) que pregunta el usuario el nombre del producto a eliminar, busca el producto en la cesta (usando el procedimiento buscar_producto) y, si lo encuentra, pone el campo en_cesta a FALSE en la posición que ocupaba el producto. En caso de no encontrarlo mostrará el mensaje de “Producto no encontrado”.
6. SEXTA CUESTIÓN:
Añada al programa anterior un procedimiento (modificar_producto) que pregunte al usuario el nombre del producto a modificar, lo busque y, si lo encuentra, le pregunte al usuario qué campo quiere cambiar, qué valor quiere asignarle y realice la actualización. En caso de no encontrar el producto, debe presentar el mensaje “Producto no encontrado”. Use los procedimientos ya creados en actividades anteriores siempre que pueda.
7. SEPTIMA CUESTIÓN:
Añada todos los resultados de las cuestiones anteriores en un programa cuyo módulo principal:
1) Declare e inicialice una cesta de la compra.
2) Le presente al usuario las siguientes opciones:
a. Añadir producto a la cesta.
b. Eliminar producto de la cesta.
c. Mostrar cesta.
d. Modificar producto de la cesta.
e. Contar productos de la cesta.
f. Salir del programa.
3) Llame al procedimiento necesario hasta que se escoja la opción de salir del programa.
Se recomienda utilizar un tamaño de cesta pequeño para facilitar la depuración del programa
este es el codigo del programa anterior en el que se tiene que basar este programa:
gracias de antemano.
A partir del programa de la actividad 1 (el codigo pascal que voy a poner despues) vamos crear uno más complejo. Cada cuestión irá incrementando la funcionalidad de la versión anterior. UTILICE LOS NOMBRES DE TIPOS, FUNCIONES, PROCEDIMIENTOS, CONSTANTES, ETC… QUE SE INDICAN EN EL ENUNCIADO.
1. PRIMERA CUESTIÓN:
Añada al programa de la actividad anterior un procedimiento (cuenta_productos) que reciba como parámetro, entre otros posibles, una variable del tipo Cesta y cuente las posiciones ocupadas, es decir, las que tienen el campo en_cesta=TRUE devolviendo este valor en un parámetro. Así sabremos cuantos productos tiene la cesta.
2. SEGUNDA CUESTIÓN:
Añada un procedimiento (busca_libre) que reciba como parámetro, entre otros POSIBLES, una variable de tipo Cesta y busque la primera posición de la Cesta en la que el campo en_cesta=FALSE, devolviendo esta posición o 0 en el caso de que no encuentre ninguna posición libre (es decir ninguna posición con el campo en_cesta=FALSE).
3. TERCERA CUESTIÓN:
Añada un procedimiento (incluir_producto_en_cesta) que introduzca un nuevo producto en la cesta de la compra, si hay alguna posición libre, o presente el mensaje de “Cesta llena” si no hay posición libre.
Este procedimiento debe hacer uso de los procedimientos busca_libre y lee_producto.
4. CUARTA CUESTIÓN:
Añada al programa anterior un procedimiento (buscar_producto) que reciba como parámetros, entre otros POSIBLES, el nombre de un producto y devuelva la posición en la cesta del producto o cero si no se encuentra.
5. QUINTA CUESTIÓN:
Añada al programa anterior un procedimiento (eliminar_producto_de_cesta) que pregunta el usuario el nombre del producto a eliminar, busca el producto en la cesta (usando el procedimiento buscar_producto) y, si lo encuentra, pone el campo en_cesta a FALSE en la posición que ocupaba el producto. En caso de no encontrarlo mostrará el mensaje de “Producto no encontrado”.
6. SEXTA CUESTIÓN:
Añada al programa anterior un procedimiento (modificar_producto) que pregunte al usuario el nombre del producto a modificar, lo busque y, si lo encuentra, le pregunte al usuario qué campo quiere cambiar, qué valor quiere asignarle y realice la actualización. En caso de no encontrar el producto, debe presentar el mensaje “Producto no encontrado”. Use los procedimientos ya creados en actividades anteriores siempre que pueda.
7. SEPTIMA CUESTIÓN:
Añada todos los resultados de las cuestiones anteriores en un programa cuyo módulo principal:
1) Declare e inicialice una cesta de la compra.
2) Le presente al usuario las siguientes opciones:
a. Añadir producto a la cesta.
b. Eliminar producto de la cesta.
c. Mostrar cesta.
d. Modificar producto de la cesta.
e. Contar productos de la cesta.
f. Salir del programa.
3) Llame al procedimiento necesario hasta que se escoja la opción de salir del programa.
Se recomienda utilizar un tamaño de cesta pequeño para facilitar la depuración del programa
este es el codigo del programa anterior en el que se tiene que basar este programa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
program respuestas;
uses
crt;
const
TAMMAXCESTA = 4;
type
Producto = record
nombre : string[100]; {Nombre del ploducto}
numero : integer; {Cantidad de productos}
precio : real; {Precio por unidad del producto}
campo : boolean; {Existe producto true se anulo false}
end;
var
cesta : array[0..TAMMAXCESTA] of producto;
cont : integer;
procedure entradacesta(var c : producto);
begin
clrscr;
writeln('**** Entrada Producto A Cesta ****');
with c do
begin
write(' Nombre Producto : ');
readln(nombre);
write(' Cantidad De Productos : ');
readln(numero);
write(' Precio Unidad Del Producto : ');
readln(precio);
campo := true;
end;
end;
procedure presentacesta(c : producto);
begin
with c do
begin
writeln(' Producto = ',nombre);
writeln(' Cantidad = ',numero);
writeln(' Precio Unidad = ',Precio:0:2);
if campo = true then
writeln(' La Cesta Esta Activa')
else
writeln(' La Cesta Esta Inactiva');
end;
writeln;
writeln(' Pulse Una Tecla');
readkey;
end;
procedure inicializa_cesta(var c : producto);
begin
with c do
begin
nombre := ' ';
numero := 0;
precio := 0.0;
campo := false;
end;
end;
procedure mostrar_producto(n : integer);
begin
with cesta[n] do
begin
writeln(' Producto = ',nombre);
writeln(' Cantidad = ',numero);
writeln(' Precio Unidad = ',Precio:0:2);
if campo = true then
writeln(' La Cesta Esta Activa')
else
writeln(' La Cesta Esta Inactiva');
end;
writeln;
writeln(' Pulse Una Tecla');
readkey;
end;
procedure mostrar_cesta(c : producto);
begin
if c.campo = true then
begin
with c do
begin
writeln(' Producto = ',nombre);
writeln(' Cantidad = ',numero);
writeln(' Precio Unidad = ',Precio:0:2);
if campo = true then
writeln(' La Cesta Esta Activa')
else
writeln(' La Cesta Esta Inactiva');
end;
writeln;
writeln(' Pulse Una Tecla');
readkey;
end;
end;
begin
cont := 1;
while cont < TAMMAXCESTA + 1 do
begin
inicializa_cesta(cesta[cont]);
entradacesta(cesta[cont]);
cont := cont + 1;
end;
clrscr;
for cont := 1 to TAMMAXCESTA do
begin
mostrar_cesta(cesta[cont]);
clrscr;
end;
end.
gracias de antemano.
Valora esta pregunta


0