Oppure

Loading
13/12/12 11:58
boostareo
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
aaa
13/12/12 12:19
Poggi Marco
Se non posti il codice, e non spieghi cose devi fare, nessuno potrà aiutarti.
aaa
13/12/12 12:51
nessuno
Io direi che questo thread andrebbe chiuso perché non ci si rivolge con questo linguaggio in pubblico.

Un po' di buone maniere non guasterebbero.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
13/12/12 12:53
boostareo
scusa il linguaggio è la rabbia :k: ! eccco il codice

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;

begin
clrscr;
writeln('Latte(1)=0.80');
writeln('Nutella(2)=3.60');
writeln('Gelato(3)=1.80');
writeln('Carne(4)=4.20');
writeln('Farina(5)=0.46');
writeln('Biscotti(6)=1.20');
writeln('Torta(7)=3.50');
writeln('Pane(8)=3.80');
writeln('Panna(9)=1.25');
writeln('Fragole(10)=1.80');
writeln('Pasta(11)=1.20');
writeln('Caramelle(12)=1.15');
writeln('Succo(13)=1.25');
writeln('Vino(14)=8.50');
writeln('Birra(15)=0.80');
writeln;
writeln;

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[i]='1' // passo dal vettore stringa a quello normale
then
prodotto[i]:=1
else
prodotto[i]:=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[i]; // 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[i] of
1 : begin
singolo:=quantita[i]*0.80; // comincio a creare lo scontrino
gotoxy(10,i+2);
write('Latte');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
2 : begin
singolo:=quantita[i]*3.60;
gotoxy(10,i+2);
write('Nutella');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
3 : begin
singolo:=quantita[i]*1.80;
gotoxy(10,i+2);
write('Gelato');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
4 : begin
singolo:=quantita[i]*4.20;
gotoxy(10,i+2);
write('Carne');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
5 : begin
singolo:=quantita[i]*0.46;
gotoxy(10,i+2);
write('Farina');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
6 : begin
singolo:=quantita[i]*1.20;
gotoxy(10,i+2);
write('Biscotti');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
7 : begin
singolo:=quantita[i]*3.50;
gotoxy(10,i+2);
write('Torta');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
8 : begin
singolo:=quantita[i]*3.80;
gotoxy(10,i+2);
write('Pane');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
9 : begin
singolo:=quantita[i]*1.25;
gotoxy(10,i+2);
write('Panna');
gotoxy(30,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
10 : begin
singolo:=quantita[i]*1.80;
gotoxy(10,i+2);
write('Fragole');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
11 : begin
singolo:=quantita[i]*1.20;
gotoxy(10,i+2);
write('Pasta');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
12 : begin
singolo:=quantita[i]*1.15;
gotoxy(10,i+2);
write('Caramelle');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
13 : begin
singolo:=quantita[i]*1.25;
gotoxy(10,i+2);
write('Succo');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
14 : begin
singolo:=quantita[i]*8.50;
gotoxy(10,i+2);
write('Vino');
gotoxy(40,i+2);
write(quantita[i]);
gotoxy(50,i+2);
write(singolo:8:2);
end;
15 : begin
singolo:=quantita[i]*0.80;
gotoxy(10,i+2);
write('Birra');
gotoxy(40,i+2);
write(quantita[i]);
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 13/12/12 13:00
aaa
13/12/12 13:18
Poggi Marco
Il tuo programma, è stranamente simile a questo: pierotofy.it/pages/extras/forum/71/1043475-programma_scontrino_della_spesaerrore_del_compilatore/.

Ad ogni modo, stringa e prodotto sono rispettivamente una stringa e un vettore. Di conseguenza, per accedere ai singoli elementi, vanno indicizzati.
aaa
13/12/12 14:06
boostareo
magari è qualche mio compagno di classe!

e quindi come potrei fare? grazie ancora
aaa
13/12/12 16:55
Poggi Marco
Postato originariamente da boostareo:

magari è qualche mio compagno di classe!

e quindi come potrei fare? grazie ancora

Devi solo indicizzare i vettori.
Il tuo compagno, ha avuto il tuo stesso problema, e lo ha risolto. Quindi, ti basta leggere il suo topic.
aaa
13/12/12 23:33
Goblin
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.
Ibis redibis non morieris in bello