Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
qualcuno cortesemente può correggermi questo merda di programma che non va?
il programma consiste nel simulare un supermercato con 15 prodotti e o devo stampare lo scontrino!
grazie in anticipo
program supermercato;
uses crt;
var
stringa:string[4];
prodotto:array[1..4] of integer;
i,esp,prodotto2,q,n:integer;
scelta:char;
prodotto3,quantita:array[1..1000] of integer;
singolo,totale,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15:real;
q:=0; //la quantità del prodotto ora è zero
repeat
q:=q+1;
writeln('Inserisci codice prodotto: ');
readln(stringa);
writeln('Inserisci la quantita'' del prodotto che si vuole comprare: ');
readln(quantita[q]);
writeln('Inserire altri prodotti? S/N: ');
readln(scelta);
for i:=1 to 4 do
begin
if stringa='1' // passo dal vettore stringa a quello normale
then
prodotto:=1
else
prodotto:=0
end;
esp:=3;
prodotto2:=0;
for i:=1 to 4 do // trasformo binario in decimale
begin
n:=trunc(exp(ln(2)*esp));
n:=n*prodotto; // identifico temp come una variabi-
prodotto2:=prodotto2+n; // le temporanea che mi identifica il
esp:=esp-1; // risultato della potenza
end;
prodotto3[q]:=prodotto2;
until (scelta='N') or (scelta='n');
clrscr;
gotoxy(10,5); // ''rappresento'' lo scontrino
write('Prodotto');
gotoxy(40,5);
write('Quantita''');
gotoxy(50,5);
write('Prezzo');
for i:=1 to q do
begin
case prodotto3 of
1 : begin
singolo:=quantita*0.80; // comincio a creare lo scontrino
gotoxy(10,i+2);
write('Latte');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
2 : begin
singolo:=quantita*3.60;
gotoxy(10,i+2);
write('Nutella');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
3 : begin
singolo:=quantita*1.80;
gotoxy(10,i+2);
write('Gelato');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
4 : begin
singolo:=quantita*4.20;
gotoxy(10,i+2);
write('Carne');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
5 : begin
singolo:=quantita*0.46;
gotoxy(10,i+2);
write('Farina');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
6 : begin
singolo:=quantita*1.20;
gotoxy(10,i+2);
write('Biscotti');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
7 : begin
singolo:=quantita*3.50;
gotoxy(10,i+2);
write('Torta');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
8 : begin
singolo:=quantita*3.80;
gotoxy(10,i+2);
write('Pane');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
9 : begin
singolo:=quantita*1.25;
gotoxy(10,i+2);
write('Panna');
gotoxy(30,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
10 : begin
singolo:=quantita*1.80;
gotoxy(10,i+2);
write('Fragole');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
11 : begin
singolo:=quantita*1.20;
gotoxy(10,i+2);
write('Pasta');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
12 : begin
singolo:=quantita*1.15;
gotoxy(10,i+2);
write('Caramelle');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
13 : begin
singolo:=quantita*1.25;
gotoxy(10,i+2);
write('Succo');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
14 : begin
singolo:=quantita*8.50;
gotoxy(10,i+2);
write('Vino');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
15 : begin
singolo:=quantita*0.80;
gotoxy(10,i+2);
write('Birra');
gotoxy(40,i+2);
write(quantita);
gotoxy(50,i+2);
write(singolo:8:2);
end;
end;
totale:=totale+singolo; // sommo il totale ogni volta
end;
writeln;
writeln;
writeln;
readln;
write(' Totale: ',totale:12:2,' euri');
end.
// ora lo scontrino è fatto ritarloe pagare;
Ultima modifica effettuata da boostareo il 13/12/2012 alle 14:00
Io non capisco, e continuo a non capire.
Prima di iniziare a scrivere un programma, prima di mettersi davanti la tastiera e scrivere il codice, se di codice parliamo, dietro ci deve essere un minimo di analisi di "quello" che si vuole tirare fuori, di cosa si vuol costruire, un po' come quando si costruisce una casa non è che arrivano i muratori con cazzuola e mattoni e iniziano a metterne uno sopra l'altro sperando che alla fine esca qualcosa che assomiglia ad una casa.
Il codice postato credo sia inguardabile, buttato giù scopiazzando a destra e a sinistra spezzoni di codice, inclusi i commenti, non sapendo minimamente cosa fanno.
Almeno le basi di "architettura del software", il pascal è un linguaggio procedurale altamente strutturato, non credo (almeno spero) che i prof. diano compiti senza aver dato un background, ma continuo a vedere sempre gli stessi errori, codice ripetuto n^m volte, variabili usate "ad minkiam" nemmeno con il basic dei anni 80 succedeva questo prolasso di codice, ci si infrattava nei vari goto e gosub (ma questa è un altra storia). Tutto questo saltare di palo in frasca solo x dire che un codice così presentato è improponibile, illegibile e...
I programmi vanno pensati, pianificati ed organizzati, il baco,l'errore è endemico nel codice per questo esiste il debug, dunque egregio boostareo se presenti un codice più consono al problema molti in questo forum ti possono spiegare ed aiutarti a migliorare, io in prima fila
G.