Pascal/Turbo Pascal - Máquina expendedora en Pascal

 
Vista:

Máquina expendedora en Pascal

Publicado por De Martos (1 intervención) el 29/12/2012 22:12:14
Buenas,

Estoy haciendo un programa de una máquina expendedora para la universidad, pero no me aclaro...

A partir de un vector de 20 productos debe salir una matriz 4x4 (con los recuadros y todo correspondiente a cada producto) llenada de manera aleatoria mediante el vector.

Ahí el cosnumidor debe seleccionar uno de los productos y se debe mostrar el precio, luego introducirlo, comprar el producto y si es necesario devolver el cambio.

De momento tengo hecho el sistema de introduccion de monedas, pero lo demás no se ni por donde empezar. He definido los 20 productos del vector pero ahí me quedo...
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 31/12/2012 12:40:05
Me puedes pasar lo que tienes para poder seguir tu forma si es posible sino pasarte como lo resolvería yo.
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

Máquina expendedora en Pascal

Publicado por nulvian (5 intervenciones) el 02/01/2013 10:52:46
Yo también estoy interesado en saber hacer este programa. Podrias decir como lo resolverias tu desde 0?
Infinitas gracias!
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 02/01/2013 22:06:37
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
{Mira esto es algo simple a ver si te ayuda }
 
program productos;
 uses
   crt;
  const
     produc : array[1..20] of string[8] = (
     ('chicle'),('pipas'),('chupachu'),('bollo'),('maizes'),
     ('crosan'),('cacauete'),('cocacola'),('mirinda'),('zumo'),
     ('panchito'),('patatas'),('cortezas'),('chocolat'),('agua'),
     ('bacata'),('cerveza'),('gusanill'),('quesitos'),('bollo'));
 
     precio : array[1..20] of real = (
     1.25,1.30,1.0,2.20,1.4,3.0,1.0,2.0,
     2.10,3.2,1.2,1.50,1.75,2.6,1.0,2.2,
     0.90,1.45,1.09,2.1);
 
   var
     toma : array[1..12] of integer;
     entrada : real;
 
   procedure marcaeleccion(xl, yl, c, n : integer);
   begin
      textcolor(c);
      gotoxy(xl,yl);write(n);
      textcolor(15);
   end;
 
   procedure maquina_expendedora(xs, ys : integer);
   var
     g, elec, pp, nu, t, xx, yy : integer;
     pool, pul : char;
     est, sal : boolean;
   begin
     textcolor(15);
     gotoxy(xs,ys);write('ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
 gotoxy(xs,ys + 1);write('³        ³        ³        ³        ³   Monedas   ³');
 gotoxy(xs,ys + 2);write('³        ³        ³        ³        ³   ÀßßßßßÙ   ³');
 gotoxy(xs,ys + 3);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´  Productos  ³');
 gotoxy(xs,ys + 4);write('³        ³        ³        ³        ³             ³');
 gotoxy(xs,ys + 5);write('³        ³        ³        ³        ³  1  2  3  4 ³');
 gotoxy(xs,ys + 6);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´             ³');
 gotoxy(xs,ys + 7);write('³        ³        ³        ³        ³  5  6  7  8 ³');
 gotoxy(xs,ys + 8);write('³        ³        ³        ³        ³             ³');
 gotoxy(xs,ys + 9);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´  9 10 11 12 ³');
gotoxy(xs,ys + 10);write('³        ³        ³        ³        ³             ³');
gotoxy(xs,ys + 11);write('³        ³        ³        ³        ³ 13 14 15 16 ³');
gotoxy(xs,ys + 12);write('ÃÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´             ³');
gotoxy(xs,ys + 13);write('ÃÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÅÄÄÄÄÄÄÄÄÄÂÄÄÄ´');
gotoxy(xs,ys + 14);write('ÀÄÄÄÙ                           ÀÄÄÄÙ         ÀÄÄÄÙ');
gotoxy(xs,ys + 15);write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
gotoxy(xs - 8,ys + 1);write('Producto');
gotoxy(xs - 6,ys + 2);write('Codigo');
    t := 1;
    randomize;
    est := false;
    sal := false;
    g := 1;
    yy := 1;
  repeat
     t := random(15) + 1;
     toma[g] := t;
     g := g + 1;
     if g > 16 then
     sal := true;
  until sal = true;
  t := 0;
    for yy := 1 to 4 do
    begin
       for xx := 1 to 4 do
       begin
         t := t + 1;
         textcolor(15);
         gotoxy((xs - 8) + (xx * 9),(ys - 2) + (yy * 3));write(produc[toma[t]]);
         textcolor(10);
         gotoxy((xs - 8) + (xx * 9),(ys - 1) + (yy * 3));write(t);
         textcolor(15);
       end;
     end;
     textcolor(15);
     gotoxy(xs + 7,ys + 17);write('Elija Pruducto [',chr(24),chr(25),
                                   chr(26),chr(27),'] Y [Enter]');
     nu := 1;
     pp := 1;
     xx := xs + 39;
     yy := ys + 5;
     marcaeleccion(xx, yy, 13, nu);
    repeat
        pul := readkey;
        marcaeleccion(xx, yy, 15, nu);
        if pul = #72 then
        begin
           nu := nu - 4;
           if nu < 1 then
           nu := 1;
        end;
        if pul = #80 then
        begin
            nu := nu + 4;
            if nu > 16 then
            nu := 16;
        end;
        if pul = #77 then
        begin
           nu := nu + 1;
           if nu > 16 then
           nu := 16;
        end;
       if pul = #75 then
       begin
          nu := nu - 1;
          if nu < 1 then
          nu := 1;
       end;
   case nu of
  1 : begin
         xx := xs + 39;
         yy := ys + 5;
      end;
  2 : begin
         xx := xs + 42;
         yy := ys + 5;
      end;
  3 : begin
         xx := xs + 45;
         yy := ys + 5;
      end;
  4 : begin
         xx := xs + 48;
         yy := ys + 5;
      end;
  5 : begin
         xx := xs + 39;
         yy := ys + 7;
      end;
  6 : begin
         xx := xs + 42;
         yy := ys + 7;
      end;
  7 : begin
         xx := xs + 45;
         yy := ys + 7;
      end;
  8 : begin
         xx := xs + 48;
         yy := ys + 7;
      end;
  9 : begin
         xx := xs + 39;
         yy := ys + 9;
      end;
 10 : begin
         xx := xs + 41;
         yy := ys + 9;
      end;
 11 : begin
         xx := xs + 44;
         yy := ys + 9;
      end;
 12 : begin
         xx := xs + 47;
         yy := ys + 9;
      end;
 13 : begin
         xx := xs + 38;
         yy := ys + 11;
      end;
 14 : begin
         xx := xs + 41;
         yy := ys + 11;
      end;
 15 : begin
         xx := xs + 44;
         yy := ys + 11;
      end;
 16 : begin
         xx := xs + 47;
         yy := ys + 11;
      end;
   end;
     marcaeleccion(xx, yy, 13, nu);
    until pul = #13;
    elec := nu;
    clrscr;
    writeln('   Su Eleccion Fue = ',produc[toma[elec]]);
    writeln('   Su Precio es    = ',precio[toma[elec]]:3:2);
    writeln;
    write('Entre Monera : ');
    readln(entrada);
    if entrada >= precio[elec] then
    begin
    clrscr;
    textcolor(15);
    writeln('   Su Precio es    = ',precio[elec]:3:2);
    writeln('   Su Ingreso Fue  = ',entrada:3:2);
    if entrada > precio[elec] then
    writeln('   Se Le Debuelve  = ',entrada - precio[elec]:3:2);
    writeln;
    writeln('  *** Pulse [Enter] ***');
    repeat
    pul := readkey;
    until pul = #13;
  end
 else
   begin
   clrscr;
   writeln('<<<<< Su entrada Es Inferior Al Precio Del Producto >>>>>>');
   writeln('>>>>> Vuelva A Intentarlo Se Le Devuelve Lo Entrado <<<<<<');
   writeln('******** Pulse Emter ********');
   readln;
   maquina_expendedora(10,3);
   end;
 end;
 
 
 
   begin
       clrscr;
       textcolor(15);
       maquina_expendedora(10,3);
   end.
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 03/01/2013 14:19:14
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
227
228
229
230
231
{Con modificación en forma}
 
 program productos;
 uses
   crt;
  const
     produc : array[1..20] of string[8] = (
     ('Chicle'),('Pipas'),('Chupachu'),('Bollo'),('Maizes'),
     ('Crosan'),('Cacahuet'),('Cocacola'),('Mirinda'),('Zumo'),
     ('panchito'),('Patatas'),('Cortezas'),('Chocolat'),('Agua'),
     ('Bacadill'),('Cerveza'),('Gusanill'),('Quesitos'),('Bizcocho'));
 
     precio : array[1..20] of real = (
     1.25,1.30,1.0,2.20,1.4,3.0,1.0,2.0,
     2.10,3.2,1.2,1.50,1.75,2.6,1.0,2.2,
     0.90,1.45,1.09,2.1);
 
   var
     toma : array[1..16] of integer;
     entrada : real;
     t, o, p, i : integer;
     tom : real;
 
   procedure generador;
   begin
       for i := 1 to 16 do
       toma[i] := i;
       randomize;
       for t := 16 downto 1 do
       begin
          tom := random;
          p := trunc(tom * t) + 1;
          o := toma[p];
          toma[p] := toma[t];
          toma[t] := o;
       end;
   end;
 
   procedure marcaeleccion(xl, yl, c, n : integer);
   begin
      textcolor(c);
      gotoxy(xl,yl);write(n);
      textcolor(15);
   end;
 
   procedure maquina_expendedora(xs, ys : integer);
   var
     g, elec, pp, nu, t, xx, yy : integer;
     pool, pul : char;
     est, sal : boolean;
   begin
     textcolor(15);
     gotoxy(xs,ys);write('ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿');
 gotoxy(xs,ys + 1);write('³        ³        ³        ³        ³   Monedas   ³');
 gotoxy(xs,ys + 2);write('³        ³        ³        ³        ³   ÀßßßßßÙ   ³');
 gotoxy(xs,ys + 3);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´  Productos  ³');
 gotoxy(xs,ys + 4);write('³        ³        ³        ³        ³             ³');
 gotoxy(xs,ys + 5);write('³        ³        ³        ³        ³  1  2  3  4 ³');
 gotoxy(xs,ys + 6);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´             ³');
 gotoxy(xs,ys + 7);write('³        ³        ³        ³        ³  5  6  7  8 ³');
 gotoxy(xs,ys + 8);write('³        ³        ³        ³        ³             ³');
 gotoxy(xs,ys + 9);write('ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´  9 10 11 12 ³');
gotoxy(xs,ys + 10);write('³        ³        ³        ³        ³             ³');
gotoxy(xs,ys + 11);write('³        ³        ³        ³        ³ 13 14 15 16 ³');
gotoxy(xs,ys + 12);write('ÃÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´             ³');
gotoxy(xs,ys + 13);write('ÃÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÅÄÄÄÄÄÄÄÄÄÂÄÄÄ´');
gotoxy(xs,ys + 14);write('ÀÄÄÄÙ                           ÀÄÄÄÙ         ÀÄÄÄÙ');
gotoxy(xs,ys + 15);write('ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ');
gotoxy(xs - 8,ys + 1);write('Producto');
gotoxy(xs - 6,ys + 2);write('Codigo');
  generador;
  t := 1;
    for yy := 1 to 4 do
    begin
       for xx := 1 to 4 do
       begin
         textcolor(15);
         gotoxy((xs - 8) + (xx * 9),(ys - 2) + (yy * 3));write(produc[toma[t]]);
         textcolor(10);
         gotoxy((xs - 8) + (xx * 9),(ys - 1) + (yy * 3));write(t);
         textcolor(15);
         t := t + 1;
       end;
     end;
     textcolor(15);
     gotoxy(xs + 7,ys + 17);write('Elija Pruducto [',chr(24),chr(25),
                                   chr(26),chr(27),'] Y [Enter]');
     nu := 1;
     pp := 1;
     xx := xs + 39;
     yy := ys + 5;
     marcaeleccion(xx, yy, 13, nu);
    repeat
        pul := readkey;
        marcaeleccion(xx, yy, 15, nu);
        if pul = #72 then
        begin
           nu := nu - 4;
           if nu < 1 then
           nu := 1;
        end;
        if pul = #80 then
        begin
            nu := nu + 4;
            if nu > 16 then
            nu := 16;
        end;
        if pul = #77 then
        begin
           nu := nu + 1;
           if nu > 16 then
           nu := 16;
        end;
       if pul = #75 then
       begin
          nu := nu - 1;
          if nu < 1 then
          nu := 1;
       end;
   case nu of
  1 : begin
         xx := xs + 39;
         yy := ys + 5;
      end;
  2 : begin
         xx := xs + 42;
         yy := ys + 5;
      end;
  3 : begin
         xx := xs + 45;
         yy := ys + 5;
      end;
  4 : begin
         xx := xs + 48;
         yy := ys + 5;
      end;
  5 : begin
         xx := xs + 39;
         yy := ys + 7;
      end;
  6 : begin
         xx := xs + 42;
         yy := ys + 7;
      end;
  7 : begin
         xx := xs + 45;
         yy := ys + 7;
      end;
  8 : begin
         xx := xs + 48;
         yy := ys + 7;
      end;
  9 : begin
         xx := xs + 39;
         yy := ys + 9;
      end;
 10 : begin
         xx := xs + 41;
         yy := ys + 9;
      end;
 11 : begin
         xx := xs + 44;
         yy := ys + 9;
      end;
 12 : begin
         xx := xs + 47;
         yy := ys + 9;
      end;
 13 : begin
         xx := xs + 38;
         yy := ys + 11;
      end;
 14 : begin
         xx := xs + 41;
         yy := ys + 11;
      end;
 15 : begin
         xx := xs + 44;
         yy := ys + 11;
      end;
 16 : begin
         xx := xs + 47;
         yy := ys + 11;
      end;
   end;
     marcaeleccion(xx, yy, 13, nu);
    until pul = #13;
    elec := nu;
    clrscr;
    writeln('<<<< Lo Pedido Y su Precio Es >>>>');
    writeln('   Su Eleccion Fue = ',produc[toma[elec]]);
    writeln('   Su Precio es    = ',precio[toma[elec]]:3:2);
    writeln;
      write('   Entre Monera : ');
    readln(entrada);
    if entrada >= precio[toma[elec]] then
    begin
    clrscr;
    writeln('*** Resumen Resultados ***');
    writeln;
    textcolor(15);
    writeln('   Su Precio es    = ',precio[toma[elec]]:3:2);
    writeln('   Su Ingreso Fue  = ',entrada:3:2);
    if entrada > precio[toma[elec]] then
    writeln('   Se Le Debuelve  = ',entrada - precio[toma[elec]]:3:2);
    writeln('   Producto Entregado');
    writeln;
    writeln('  *** Pulse [Enter] ***');
    repeat
    pul := readkey;
    until pul = #13;
  end
 else
   begin
   clrscr;
   writeln('<<<<< Su entrada Es Inferior Al Precio Del Producto >>>>>>');
   writeln('>>>>> Vuelva A Intentarlo Se Le Devuelve Lo Entrado <<<<<<');
   writeln('******** Pulse Emter ********');
   readln;
   clrscr;
   maquina_expendedora(10,3);
   end;
 end;
 
 
 
   begin
       clrscr;
       textcolor(15);
       maquina_expendedora(10,3);
   end.
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

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 00:20:51
Hola! este es el programa que tengo yo... a ver si entre todos pudiesemos seguir el proceso de compra!
Agradeceria muchisimo cualquiera ayuda



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
program MaquinaExpendedora;
 
{$APPTYPE CONSOLE}
 
uses
  Crt32;
 
 
const
   MaxTipos	   = 16; //Cuantos tipos de productos hay en el catalogo como maximo
   MaxMonedas	   = 40; //Cuantas monedas caben como maximo en cada cajetin
 
TYPE
   //cada uno de los productos que la máquina puede vender
   TProducto = record
		      nombre : String[15]; // el nombre del producto, máximo 15 caracteres por espacio de pantalla
		      precio : real; // el precio del tipo de producto
          cant   : Integer ; // la cantidad de productos disponibles
		   end;
   TMaquina = Array[1..Maxtipos] of TProducto;
   TMoneda = Record
                    Nom : String[10];
                    Valor, unidades : Integer;
             End;
   TCaixa = Array[1..8] of TMoneda;
 
 
 
 
Procedure IniciaProductos(Var Maq: TMaquina);
Var i: 1..MaxTipos;
      // Inicia tabla productos
      // nombres, precios y unidades
Begin
      Maq[1].nombre := 'Lays Jamon';
      Maq[2].nombre := 'Lays Queso';
      Maq[3].nombre := 'Coca-Cola';
      Maq[4].nombre := 'Coca-Cola Zero';
      Maq[5].nombre := 'Trina Limon';
      Maq[6].nombre := 'Trina Naranja';
      Maq[7].nombre := 'Aquarius';
      Maq[8].nombre := 'Agua Veri 50cl';
      Maq[9].nombre := 'Agua Veri 25cl';
      Maq[10].nombre := 'Red Bull';
      Maq[11].nombre := 'Kit Kat';
      Maq[12].nombre := 'Huevo Kinder';
      Maq[13].nombre := 'Funda Movil';
      Maq[14].nombre := 'Funda IPhone';
      Maq[15].nombre := 'Auriculares';
      Maq[16].nombre := 'Rep Mp3';
      For i:= 1 to 16 do
      With Maq[i] do
          Begin
               precio := (Random(400)+100)/100;
               Cant := Random(10)+5;
          End;
End;
 
Function Pmoneda(valor:integer):Integer;
// dado el valor de la moneda, devuelve su posicion en la caja (50ç es posicion 3)
Begin
      // Buscar posicion en tabla
End;
 
Procedure IniciaCajetines(Var Caja:TCaixa);
Var  multiplicador , moneda, i:integer;
 
Begin
      // inicia los cajetines de cambio
      multiplicador := 100 ;
      moneda := 2;
      for i := 1 to 8 do
          Begin
               caja[i].Valor := moneda * multiplicador;
               caja[i].unidades := random(20)+10;
               Str(caja[i].Valor/100:4:2,caja[i].Nom);
               caja[i].Nom := caja[i].Nom + ' Eur';
               moneda := moneda div 2;
               if moneda = 0
                  then begin
                            moneda := 5;
                            multiplicador := multiplicador div 10;
                       end;
          End;
End;
 
 
Procedure MostrarProductos(Var Maq:TMaquina);
Var i,j,k: Integer;
Begin //MostrarProductos
   write('|');
   for i:=1 to 4 do begin
      for j:=1 to 18 do write('-');
      write('|');
   end;
   writeln;
   for i:=1 to 4 do begin
      write('|');
      for j:=1 to 4 do write((i-1)*4+j:2,'-',Maq[(i-1)*4+j].nombre:15,'|');
      writeln;
      write('|');
      for j:=1 to 4 do write(Maq[(i-1)*4+j].precio:5:2,' Eur - ',Maq[(i-1)*4+j].cant:2,' un','|':2);
      writeln;
      write('|');
      for k:=1 to 4 do begin
	 for j:=1 to 18 do write('-'); write('|');
      end;
      writeln;
   end;
End;
 
Procedure MostrarCaja(Caja:TCaixa);
Var i: Integer;
Begin
      Writeln;
      Writeln ('Monedas cambio');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(Caja[i].nom:9);
      Writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(caja[i].unidades:4,' un. ');
      Writeln('|');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Writeln;
End;
 
Procedure Pausa;
Begin
      Write('Pulsa una tecla para continuar ...');
      Repeat until keypressed;
End;
 
 
(*********************** Programa principal **********************)
 
Var Maquina :Tmaquina;
    CajaCambio : TCaixa;
    opcion : 0..1;
Begin
     randomize;
     IniciaProductos(Maquina);
     IniciaCajetines (CajaCambio);
     Repeat
           clrscr;
           MostrarProductos(Maquina);
           MostrarCaja(CajaCambio);
           Write('1.Compra':20);
           Write('0.salir':20);
           Write('Entra opcion  ':20);
           Readln(opcion);
           Case Opcion of
                 1: Begin
                        // Realizar el proceso de compra
                        Pausa;
                    End;
           End;
     Until opcion = 0;
End.
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

Máquina expendedora en Pascal

Publicado por nulvian (5 intervenciones) el 04/01/2013 11:18:29
Los 16 productos no son elejidos aleatoriamente
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

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 12:14:20
Este programa fue desarrollado por el profesor y los productos son siempre los mismos, pero van cambiando de precio cada vez que se ejecuta el programa.
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

Máquina expendedora en Pascal

Publicado por nulvian (5 intervenciones) el 04/01/2013 12:25:11
pues que raro, además siempre hay cantidades disponibles y el profesor dijo que se tenia que dar el caso que no quedaran unidades disponibles y la maquina lo debía indicar
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

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 12:27:42
A ti el profesor tambien te dio la base del programa desarrollada?
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

Máquina expendedora en Pascal

Publicado por nulvian (5 intervenciones) el 04/01/2013 12:56:35
Noxd
¿Que tienes que hacer si ya tienes el programa resuelto?
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

Máquina expendedora en Pascal

Publicado por nulvian (5 intervenciones) el 04/01/2013 12:58:56
Una pregunta
como se hace para utilizar crt32?
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 04/01/2013 14:19:18
El programa esta diseñado para variar tanto el precio como la cantidad de productos no
para presentarlos de diferente forna ni posición.

Cuando se pide ayuda se debe de informar de lo que se quiere puesto que como podéis
apreciar se puede interpretar de diferentes formar el proceso dependiendo del nivel
de conocimientos en vuestro caso estáis trabajando con registros y eso no lo mencionáis
con lo cual todo lo que yo pueda ayudar es nulo.
Intentare hacer lo que pueda con esta información.,
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

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 14:25:11
Hola ramon, seria posible ponerme en contacto con usted directamente mediante e-mail?
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 04/01/2013 19:34:21
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
227
228
229
230
{Mira esto esta para que te de una referencia}
 
 program MaquinaExpendedora;
 uses
    Crt;
  const
        MaxTipos = 16;
      MaxMonedas = 40;
   TYPE
      TProducto = record
          nombre : String[15];
          precio : real;
          cant   : Integer ;
        end;
 
      TMaquina = Array[1..Maxtipos] of TProducto;
 
     TMoneda = Record
            Nom : String[10];
            Valor : real;
            unidades : Integer;
         End;
 
       TCaixa = Array[1..8] of TMoneda;
 
  Var
       Maquina : Tmaquina;
    CajaCambio : TCaixa;
        opcion : 0..1;
 
 
   Procedure IniciaProductos(Var Maq: TMaquina);
   Var
      i : 1..MaxTipos;
  Begin
      Maq[1].nombre := 'Lays Jamon';
      Maq[2].nombre := 'Lays Queso';
      Maq[3].nombre := 'Coca-Cola';
      Maq[4].nombre := 'Coca-Cola Zero';
      Maq[5].nombre := 'Trina Limon';
      Maq[6].nombre := 'Trina Naranja';
      Maq[7].nombre := 'Aquarius';
      Maq[8].nombre := 'Agua Veri 50cl';
      Maq[9].nombre := 'Agua Veri 25cl';
      Maq[10].nombre := 'Red Bull';
      Maq[11].nombre := 'Kit Kat';
      Maq[12].nombre := 'Huevo Kinder';
      Maq[13].nombre := 'Funda Movil';
      Maq[14].nombre := 'Funda IPhone';
      Maq[15].nombre := 'Auriculares';
      Maq[16].nombre := 'Rep Mp3';
      For i := 1 to 16 do
      With Maq[i] do
          Begin
               precio := (Random(400)+100)/100;
               Cant := Random(10)+5;
          End;
     End;
 
   Function Pmoneda(valor:integer):Integer;
   Begin
 
   End;
 
   Procedure IniciaCajetines(Var Caja:TCaixa);
   Var
     multiplicador , moneda, i : integer;
   Begin
      multiplicador := 100;
      moneda := 2;
      for i := 1 to 8 do
          Begin
               caja[i].Valor := moneda * multiplicador;
               caja[i].unidades := random(20) + 10;
               Str(caja[i].Valor / 100:4:2,caja[i].Nom);
               caja[i].Nom := caja[i].Nom + ' Eur';
               moneda := moneda div 2;
               if moneda = 0 then
               begin
                  moneda := 5;
                  multiplicador := multiplicador div 10;
              end;
          End;
       End;
 
    Procedure MostrarProductos(Var Maq:TMaquina);
    Var
      i,j,k : Integer;
    Begin
      write('|');
       for i := 1 to 4 do
       begin
         for j := 1 to 18 do
         write('-');
         write('|');
      end;
   writeln;
   for i := 1 to 4 do
   begin
      write('|');
      for j := 1 to 4 do
      write((i - 1) * 4 + j : 2,'-',Maq[(i - 1) * 4 +j].nombre:15,'|');
      writeln;
      write('|');
      for j := 1 to 4 do
      write(Maq[(i - 1) * 4 + j].precio:5:2,' Eur - ',Maq[(i-1) * 4+j].cant:2,' un','|':2);
      writeln;
      write('|');
      for k := 1 to 4 do
      begin
	 for j := 1 to 18 do
         write('-');
         write('|');
      end;
      writeln;
    end;
  End;
 
   Procedure MostrarCaja(Caja:TCaixa);
   Var
     i : Integer;
   Begin
      Writeln;
      Writeln ('Monedas cambio');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(Caja[i].nom:9);
      Writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(caja[i].unidades:4,' un. ');
      Writeln('|');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Writeln;
  End;
 
   procedure compramos;
   var
      nr, h, k, num : integer;
      entrada : real;
      resto : real;
      monedas : array[1..8] of real;
   begin
      fillchar(monedas,sizeof(monedas),0);
      resto := 0.0;
      writeln;
      write('  Elija Producto : ');
      readln(num);
      writeln;
      writeln('  El Producto Elejodo Es ',Maquina[num].nombre);
      writeln('  EL Precio Es : ',Maquina[num].precio:3:2);
      writeln;
      write('  Entre Moneda : ');
      readln(entrada);
      if entrada - Maquina[num].precio >= 0 then
      begin
         if entrada - Maquina[num].precio = 0 then
         begin
             writeln;
             writeln('  Importe introducido Exacto ');
             writeln('  Pulse Enter');
             readln;
         end;
         if entrada - Maquina[num].precio > 0 then
         begin
             resto := (entrada - Maquina[num].precio);
             h := 1;
             num := 0;
             nr := 1;
             writeln;
             writeln(' Debolucion = ',resto:3:2);
          repeat
             num := num + 1;
             if resto >= (CajaCambio[num].Valor / 100) then
             begin
              monedas[nr] := CajaCambio[num].Valor / 100;
              nr := nr + 1;
              resto := resto - CajaCambio[num].Valor / 100;
              num := 0;
             end;
             h := h + 1;
          until (resto <= 0.0) or (h > 20);
             writeln;
             write(' Monedas de : ');
             for h := 1 to nr - 1 do
             write('  ',monedas[h]:3:2);
             write(' Eur');
             readln;
         end;
      end
    else
      begin
         writeln;
         writeln('  Cantidad Es Incorrecta Pulse Enter :');
         readln;
      end;
   end;
 
   Procedure Pausa;
   Begin
      Write('Pulsa una tecla para continuar ...');
      Repeat until keypressed;
   End;
 
  Begin
     randomize;
     IniciaProductos(Maquina);
     IniciaCajetines (CajaCambio);
     Repeat
           clrscr;
           MostrarProductos(Maquina);
           MostrarCaja(CajaCambio);
           Write('1.Compra':20);
           Write('0.salir':20);
           Write('Entra opcion  ':20);
           repeat
           opcion := ord(readkey) - 48;
           until opcion in[0,1];
    Case Opcion of
  1 : Begin
       {Pausa;}
       compramos;
     End;
   End;
   Until opcion = 0;
  End.
 
{Referente a lo que pides lo siento pero solo desde esta puedo ayudar si algo necesitas ponlo
 y te responderé con gusto y disculpa .}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 20:44:45
Hola ramon, todo un genio!

Lo que veo que ha echo varios cambios respecto al que yo puse no? Porque a partir del Procedure Pausa que esta en el programa que yo puse es totalmente diferente al que usted ha colgado,
Ha borrado eso por algun motivo en concreto?


Le importaria explicarme que es lo que hace exactamente el programa porfavor?
Muchas gracias.
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

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 21:25:50
Acabo de copiar exactamente lo que ha colgado usted anteriormente y me salen muchisimos errores a la hora de ejecutarlo.
Podria colgarlo de manera que esten sus respectivos espacios porfavor.
Le agradeceria la ayuda.
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 04/01/2013 23:12:10
para copiar estos temas marcarlos dale copiar y pega en bloc de notas y luego
guardar (por ejemplo c:\tp\miprogra.pas) y saldrá bien fíjate que pasa desde un programa
del dos.
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

Máquina expendedora en Pascal

Publicado por ramon (2158 intervenciones) el 04/01/2013 23:07:35
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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
program MaquinaExpendedora;
 uses
    Crt;       {soporte para pascal crtdos en freepascal y crt32 en otros}
  const
        MaxTipos = 16;  {define constantes una 16 y otra de 40}
      MaxMonedas = 40;
   TYPE
      TProducto = record     {definicion de tipos en este caso un record}
          nombre : String[15];
          precio : real;
          cant   : Integer ;
        end;
 
      TMaquina = Array[1..Maxtipos] of TProducto; {En este un array de
                                    1 a  16 registros tproducto}
 
     TMoneda = Record     {definicion de tipos en este caso un record}
            Nom : String[10];
            Valor : real;
            unidades : Integer;
         End;
 
       TCaixa = Array[1..8] of TMoneda; {En este un array de
                                1 a  8 registros tmoneda}
 
  Var
       Maquina : Tmaquina;
    CajaCambio : TCaixa;     {Estas son variables globales}
        opcion : 0..1;
 
 
   Procedure IniciaProductos(Var Maq: TMaquina);   {procedimiento de inicio
                             del producto o asignacion de valores al mismo}
   Var
      i : 1..MaxTipos;
  Begin
      Maq[1].nombre := 'Lays Jamon';
      Maq[2].nombre := 'Lays Queso';
      Maq[3].nombre := 'Coca-Cola';
      Maq[4].nombre := 'Coca-Cola Zero';
      Maq[5].nombre := 'Trina Limon';
      Maq[6].nombre := 'Trina Naranja';
      Maq[7].nombre := 'Aquarius';      {rellena la variable del registro}
      Maq[8].nombre := 'Agua Veri 50cl';
      Maq[9].nombre := 'Agua Veri 25cl';
      Maq[10].nombre := 'Red Bull';
      Maq[11].nombre := 'Kit Kat';
      Maq[12].nombre := 'Huevo Kinder';
      Maq[13].nombre := 'Funda Movil';
      Maq[14].nombre := 'Funda IPhone';
      Maq[15].nombre := 'Auriculares';
      Maq[16].nombre := 'Rep Mp3';
      For i := 1 to 16 do
      With Maq[i] do
          Begin
               precio := (Random(400)+100)/100; {asigna precios y cantidad
                            de objetos en las variables del registro
                            aleatoria mentre}
               Cant := Random(10)+5;
          End;
     End;
 
   Function Pmoneda(valor:integer):Integer;  {esta vacio no hace nada}
   Begin
 
   End;
 
   Procedure IniciaCajetines(Var Caja:TCaixa);  {inicia la caja del dinero}
   Var
     multiplicador , moneda, i : integer;
   Begin
      multiplicador := 100;  {asigna un valor de inicio a ambas variables}
      moneda := 2;
      for i := 1 to 8 do
          Begin
               caja[i].Valor := moneda * multiplicador;{asigna el valor}
               caja[i].unidades := random(20) + 10; {asigna unidades
                                                      aleatoriamente}
               Str(caja[i].Valor / 100:4:2,caja[i].Nom); {combierte a
                                                      string el valor}
               caja[i].Nom := caja[i].Nom + ' Eur';  {le a¤ade Eur}
               moneda := moneda div 2;   {reduce el valor de moneda }
               if moneda = 0 then   {si la division causa 0 le asigna 5
                                    y divide el multiplicador}
               begin
                  moneda := 5;
                  multiplicador := multiplicador div 10;
              end;
          End;
       End;
 
    Procedure MostrarProductos(Var Maq:TMaquina);  {muestra el producto
                                   osea los datos tomados anterior mente
                                   sin otra funcion solo presenta}
    Var
      i,j,k : Integer;
    Begin
      write('|');
       for i := 1 to 4 do
       begin
         for j := 1 to 18 do
         write('-');
         write('|');
      end;
   writeln;
   for i := 1 to 4 do
   begin
      write('|');
      for j := 1 to 4 do
      write((i - 1) * 4 + j : 2,'-',Maq[(i - 1) * 4 +j].nombre:15,'|');
      writeln;
      write('|');
      for j := 1 to 4 do
      write(Maq[(i - 1) * 4 + j].precio:5:2,' Eur - ',Maq[(i-1) * 4+j].cant:2,' un','|':2);
      writeln;
      write('|');
      for k := 1 to 4 do
      begin
	 for j := 1 to 18 do
         write('-');
         write('|');
      end;
      writeln;
    end;
  End;
 
   Procedure MostrarCaja(Caja:TCaixa); {lo mismo de lo anterior
                             pero para la caja}
   Var
     i : Integer;
   Begin
      Writeln;
      Writeln ('Monedas cambio');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(Caja[i].nom:9);
      Writeln('|');
      Write('|');
      For i:= 1 to 8 do Write(caja[i].unidades:4,' un. ');
      Writeln('|');
      Write('|');
      for i:=1 to 72 do write('-'); writeln('|');
      Writeln;
  End;
 
   procedure compramos;     {compramos el producto que queremos}
   var
      nr, h, k, num : integer;   {estas son variables locales}
      entrada : real;
      resto : real;
      monedas : array[1..8] of real; {esta para los cambios}
   begin
      fillchar(monedas,sizeof(monedas),0);  {limpiamos array a 0}
      resto := 0.0;
      writeln;
      write('  Elija Producto : ');
      readln(num); {elejimos el producto y presentamos producto y precio}
      writeln;
      writeln('  El Producto Elejodo Es ',Maquina[num].nombre);
      writeln('  EL Precio Es : ',Maquina[num].precio:3:2);
      writeln;
      write('  Entre Moneda : ');
      readln(entrada);         {introducimos moneda}
      if entrada - Maquina[num].precio >= 0 then  {comprobamos la moneda
              entrada cumple siendo mayor o igual al precio entonces}
      begin
         if entrada - Maquina[num].precio = 0 then  {acemos esto y sino}
         begin
             writeln;                           {el importe es exacto}
             writeln('  Importe introducido Exacto ');
             writeln('  Pulse Enter');
             readln;
         end;
         if entrada - Maquina[num].precio > 0 then {es mayor}
         begin
             resto := (entrada - Maquina[num].precio); {tomamos resto}
             h := 1;
             num := 0;
             nr := 1;
             writeln;
             writeln(' Debolucion = ',resto:3:2);  {presentamos resto
             al realizar la resta de entrada y precio el resultado que
             nos da es un decimal por lo tanto para comparar y dar las
             bueltas tenemos que realizar la inversa en el valor puesto
             que este es un entero al dividir obtenemos 20,10,0.50,0.20
             0.10,0.05,0.02,0.01 si nuestro resto es 0.60 podemos operar}
          repeat
             num := num + 1;
             if resto >= (CajaCambio[num].Valor / 100) then {si es menor o
                                igual damos buelta y descontamos de resto}
             begin
           monedas[nr] := CajaCambio[num].Valor / 100; {guardamos la buelta}
           nr := nr + 1;
        resto := resto - CajaCambio[num].Valor / 100; {descontamos de resto}
              num := 0;
             end;
             h := h + 1;
          until (resto <= 0.0) or (h > 20); {si resto menor o igual 0.0
                         salimos los cambios terminaron h es seguridad para
                         ebitar cuelges solo}
             writeln;
             write(' Monedas de : ');
             for h := 1 to nr - 1 do       {presentamos los cambios dados}
             write('  ',monedas[h]:3:2);
             write(' Eur');
             readln;
         end;
      end
    else
      begin           {realizamos esto otro si el importe fue menor que el
                        precio}
         writeln;
         writeln('  Cantidad Es Incorrecta Pulse Enter :');
         readln;
      end;
   end;
 
   Procedure Pausa;    {esto es una pausa solo}
   Begin
      Write('Pulsa una tecla para continuar ...');
      Repeat until keypressed;  {espera a que se pulse una tecla}
   End;
 
  Begin       {inicio}
     randomize; {creamos la semilla para el random o numeros aleatorios}
     IniciaProductos(Maquina);   {ejecutamos los procedimientos}
     IniciaCajetines (CajaCambio);
     Repeat
           clrscr;  {limpiamos pantalla}
           MostrarProductos(Maquina);     {mostramos productos y caja}
           MostrarCaja(CajaCambio);
           Write('1.Compra':20);
           Write('0.salir':20);
           Write('Entra opcion  ':20);
           repeat
           opcion := ord(readkey) - 48; {esperamos pulsen una tecla 1 o 0 y}
           until opcion in[0,1];        {convertimos el caracter a numero
                                en este caso si no pulsa 1 o 0 no ace nada}
    Case Opcion of  {si es 1 as esto y sino lo otro}
  1 : Begin
       {Pausa;}
       compramos; {compramos}
     End;
   End;
   Until opcion = 0; {o salimos segun tecla pulsada}
  End.
 
{A qui tienes todo lo que pides no quite nada solo inserte un procedimiento que controla
la compra del producto solo y en el registro de monedas un integer por real}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Máquina expendedora en Pascal

Publicado por perolo (7 intervenciones) el 04/01/2013 23:13:30
Muchas gracias por su ayuda Ramon!
Un fuerte abrazo
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