Pascal/Turbo Pascal - Ayuda urgente con Pascal

 
Vista:

Ayuda urgente con Pascal

Publicado por Manolo (5 intervenciones) el 26/03/2013 12:13:47
Hola haber en primer lugar quiero agradecer la ayuda en segunda lugar haber si me podéis ayuda con los siguientes ejercicios (Como marcan los enunciados gracias)

Partiendo de este enunciado
1) Declare e inicialice una cesta de la compra.
2) Le pide al usuario que rellene la cesta completa (uno a uno cada producto de la cesta desde la posición 1 hasta TAMMAXCESTA).
3) Muestre por pantalla todos los productos de la cesta.

Se recomienda utilizar un tamaño de cesta pequeño para facilitar la depuración del programa.
Puede hacer cualquier comentario en la sección Respuesta 7.
Incluya todo en un fichero llamado Unidad8_1.pas y mándelo por correo junto con las respuestas de este fichero.
================================================================================
Ejercicios que tengo que hacer estan marcado en negrita (las respuestas claras por favor )

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.

Si lo desea, puede usar la sección de Respuesta 1 para realizar sus comentarios.


RESPUESTA 1:





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).

Si lo desea puede usar la sección de Respuesta 2 para realizar sus comentarios.

RESPUESTA 2:





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, que ya ha definido en cuestiones y actividades anteriores.


Si lo desea puede usar la sección de Respuesta para realizar sus comentarios.

RESPUESTA 3:





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.

Si lo desea, puede usar la sección de Respuesta para realizar sus comentarios.

RESPUESTA 4:





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”.

Si lo desea, puede usar la sección de Respuesta 5 para realizar sus comentarios.

RESPUESTA 5:





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.

Si lo desea puede usar la sección de Respuesta 6 para realizar sus comentarios y aclaraciones.

RESPUESTA 6:



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.


Escriba el programa en un fichero llamado Unidad8_2.pas y envíelo adjunto a un correo.

Puede hacer cualquier comentario o aclaración en la sección Respuesta 7.
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 urgente con Pascal

Publicado por ramon (2158 intervenciones) el 27/03/2013 11:47:17
A ver para no crear una estructura diferente a la que se supone te presentaron como base puedes pasarla para ajustar el programa a ella si puede ser.
se supone que sera algo como esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const
 
        TAMMAXCESTA = 5;
 
  type
 
      cesta = record
                 producto : string[20];
                 precio : real;
                  estado : boolean;
            end;
 
     lacesta = array[0..TAMMAXCESTA] of cesta;
 
    var
       compra : lacesta;


si puedes pasar lo que tengas mejor para ayudar.
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

Ayuda urgente con Pascal

Publicado por manolo (1 intervención) el 27/03/2013 15:59:43
Hola haber en primer lugar quiero agradecer la ayuda en segunda lugar haber si me podéis ayuda con los siguientes ejercicios (Como marcan los enunciados gracias)

Partiendo de este enunciado
1) Declare e inicialice una cesta de la compra.
2) Le pide al usuario que rellene la cesta completa (uno a uno cada producto de la cesta desde la posición 1 hasta TAMMAXCESTA).
3) Muestre por pantalla todos los productos de la cesta.
================================================
Ejercicio 8_1
}
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
program CEScom;
  uses
   crt;
  const
     TAMMAXCESTA=3;
 
  Type
    tproducto = record
        nombre : string;
   numunidades : integer;
 precio_unidad : real;
      en_cesta : boolean;
   end;
  tabcesta = array[1..TAMMAXCESTA] of tproducto;
 
  Var
   ini : tabcesta;
   prod : tabcesta;
   cest : tproducto;
 
Procedure Lee_producto(Var produc:tproducto); (*procedimiento de lectura*)
Begin
Write('Nombre del producto: ');
Readln(produc.nombre);
Write('Numero de unidades: ');
Readln(produc.numunidades);
Write('Precio de cada unidad: ');
Readln(produc.precio_unidad);
End;
 
 
Procedure escribre_producto(produc:tproducto);(*procedimiento de lectura*)
begin
Writeln('Nombre: ',produc.nombre);
Writeln('Numero de unidades: ');
Writeln('Precio de cada unidad;: ',produc.precio_unidad);
End;
 
 
 
 
Procedure inicializa_cesta (Var ini:Tabcesta);
 
Var
en_cesta:boolean;
i:integer;
begin
en_cesta:=false;
for i:= 1 to TAMMAXCESTA do
writeln (ini[i].en_cesta);
end;
 
Procedure mostrar_producto( Var prod:tabcesta);
 
Var
i:integer;
begin
for i:=1 to TAMMAXCESTA do
write (prod[i].nombre);
end;
 
 
Procedure mostrar_cesta(cesta_compra:tabcesta);
Var
en_cesta:boolean;
i:integer;
begin
en_cesta:=true;
for i:=1 to TAMMAXCESTA do
write (cesta_compra[i].en_cesta);
end;
 
  Function cuenta_productos(ini : tabcesta) : integer;
  Var
   i : integer;
   c : integer;
  begin
    c := 0;
   for i := 1 To TAMMAXCESTA do
   if ini[i].en_cesta= true then
   c := c + 1;
   cuenta_productos:= c;
 end;
 
 
  Function busca_libre (buslib: tabcesta): integer;
  Var
    i : integer;
    c : integer;
  begin
    c := 0;
   for i := 1 to TAMMAXCESTA do
   if buslib[i].en_cesta = false then
   begin
      c := i;
      break;
   end;
    if c > 0 then
    begin
    end
 else
    begin
     busca_libre := 0;
    end;
  end;
 
  procedure incluir_producto_en_cesta(cest : tabcesta);
  var
    li : integer;
  begin
      li := busca_libre(cest);
      Lee_producto(cest[li]);
  end;
 
  function buscar_producto(nomb : string) : integer;
  var
     s : integer;
     sal : boolean;
  begin
     s := 1;
     sal := false;
     while (s < TAMMAXCESTA) and (sal = false) do
     begin
        if ini[s].nombre = nomb then
        sal := true
      else
        s := s + 1;
     end;
      if sal = true then
      buscar_producto := s
    else
      buscar_producto := 0;
  end;
 
  procedure eliminar_producto_de_cesta;
  var
    pro : string;
    vc : integer;
  begin
     clrscr;
     write('  Entre Nombre del Producto a Eliminar : ');
     readln(pro);
     vc := buscar_producto(pro);
     if vc > 0 then
     ini[vc].en_cesta := false
   else
     writeln('Producto no encontrado');
  end;
 
 
  procedure modificar_producto;
  var
    pro : string;
    vc : integer;
    rr : char;
  begin
     clrscr;
     write('  Entre Nombre del Producto a Eliminar : ');
     readln(pro);
     vc := buscar_producto(pro);
     if vc > 0 then
     begin
        writeln('  Elija Producto a Modificar ');
        writeln;
        writeln(' 1 = Nombre');
        writeln(' 2 = Cantidad');
        writeln(' 3 = Precio');
        writeln(' 4 = Ninguno');
        repeat
 
        until rr in['1','2','3','4'];
     case rr of
   '1' : begin
            write('  Entre Nuevo Nombre : ');
            readln(ini[vc].nombre);
         end;
   '2' : begin
            write('  Entre Nueva Cantidad : ');
            readln(ini[vc].numunidades);
         end;
   '3' : begin
            write('  Entre Nuevo Precio : ');
            readln(ini[vc].precio_unidad);
         end;
     end;
     end
   else
      writeln('Producto no encontrado');
  end;
 
  procedure iniciocesta;
  var
    gg : char;
    w : integer;
  begin
       w := 1;
       inicializa_cesta(ini);
     repeat
      clrscr;
   writeln(' ****  Menu Cesta ****');
   writeln;
   writeln(' 1 = A¤adir producto a la cesta');
   writeln(' 2 = Eliminar producto de la cesta');
   writeln(' 3 = Mostrar cesta');
   writeln(' 4 = Modificar producto de la cesta');
   writeln(' 5 = Contar productos de la cesta');
   writeln(' 6 = Salir del programa');
   writeln;
   writeln('<<< Elija Opcion >>>');
   repeat
       gg := readkey;
   until gg in['1','2','3','4','5','6'];
     case gg of
   '1' : begin Lee_producto(ini[w]); w := w + 1; end;
   '2' : eliminar_producto_de_cesta;
   '3' : mostrar_cesta(ini);
   '4' : modificar_producto;
   '5' : cuenta_productos(ini);
    end;
    until gg = '6';
  end;
 
begin
    clrscr;
    iniciocesta;
end.




Se recomienda utilizar un tamaño de cesta pequeño para facilitar la depuración del programa.
Puede hacer cualquier comentario en la sección Respuesta 7.
Incluya todo en un fichero llamado Unidad8_1.pas y mándelo por correo junto con las respuestas de este fichero.

================================================================================
Ejercicios que tengo que hacer estan marcado en negrita (las respuestas claras por favor )

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.

Si lo desea, puede usar la sección de Respuesta 1 para realizar sus comentarios.


RESPUESTA 1:





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).

Si lo desea puede usar la sección de Respuesta 2 para realizar sus comentarios.

RESPUESTA 2:





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, que ya ha definido en cuestiones y actividades anteriores.

Si lo desea puede usar la sección de Respuesta para realizar sus comentarios.

RESPUESTA 3:





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.

Si lo desea, puede usar la sección de Respuesta para realizar sus comentarios.

RESPUESTA 4:





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”.

Si lo desea, puede usar la sección de Respuesta 5 para realizar sus comentarios.

RESPUESTA 5:





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.

Si lo desea puede usar la sección de Respuesta 6 para realizar sus comentarios y aclaraciones.

RESPUESTA 6:



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.

Escriba el programa en un fichero llamado Unidad8_2.pas y envíelo adjunto a un correo.

Puede hacer cualquier comentario o aclaración en la sección Respuesta 7.
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