Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - programma pascal da correggere
Forum - Pascal - programma pascal da correggere

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
boostareo (Normal User)
Newbie


Messaggi: 14
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 12:58
Giovedì, 13/12/2012
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

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 13:19
Giovedì, 13/12/2012
Se non posti il codice, e non spieghi cose devi fare, nessuno potrà aiutarti.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:51
Giovedì, 13/12/2012
Io direi che questo thread andrebbe chiuso perché non ci si rivolge con questo linguaggio in pubblico.

Un po' di buone maniere non guasterebbero.

PM Quote
Avatar
boostareo (Normal User)
Newbie


Messaggi: 14
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 13:53
Giovedì, 13/12/2012
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='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
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:18
Giovedì, 13/12/2012
Il tuo programma, è stranamente simile a questo: http://www.pierotofy.it/pages/extras/forum/71/1043475-prog ....

Ad ogni modo, stringa e prodotto sono rispettivamente una stringa e un vettore. Di conseguenza, per accedere ai singoli elementi, vanno indicizzati.

PM Quote
Avatar
boostareo (Normal User)
Newbie


Messaggi: 14
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 15:06
Giovedì, 13/12/2012
magari è qualche mio compagno di classe!

e quindi come potrei fare? grazie ancora

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 17:55
Giovedì, 13/12/2012
Testo quotato

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.

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 0:33
Venerdì, 14/12/2012
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
PM Quote
Avatar
boostareo (Normal User)
Newbie


Messaggi: 14
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 17:36
Venerdì, 21/12/2012
avevo sbagliato una lettera!
io non ho scopiazzato ci ho ragionato tranquillo

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo