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 - Confronto aree trapezio, cosa sbaglio?
Forum - Pascal - Confronto aree trapezio, cosa sbaglio?

Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 18:39
Lunedì, 22/10/2012
Codice sorgente - presumibilmente Delphi

  1. PROGRAM confrontoaree;
  2. uses crt;
  3. var a,b,c,d,e,f,g,h: integer;
  4. begin
  5. textcolor(blue);
  6. textbackground(white);
  7. writeln('Inserisci la base minore e la base maggiore del primo trapezio');
  8. readln(a,b);
  9. Writeln('Inserisci l''altezza del primo trapezio');
  10. readln(c);
  11. writeln('Inserisci la base minore e la base maggiore del secondo trapezio');
  12. readln(d,e);
  13. Writeln('Inserisci l''altezza del secondo trapezio');
  14. readln(f);
  15. g:=(a+b)*c div 2;
  16. h:=(d+e)*f div 2;
  17. if g>h then
  18. textcolor(green);
  19. writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
  20. Writeln('Premi un tasto per uscire...');
  21. Readkey;
  22. end.
  23. else
  24. if g=h then
  25. textcolor(black);
  26. writeln('I due trapezi hanno aree uguali, e misurano ',h,' cm^2');
  27. Writeln('Premi un tasto per uscire...');
  28. Readkey;
  29. else
  30. textcolor(lightblue);
  31. writeln('Il secondo trapezio ha l''area maggiore e misura ',h,' cm^2');
  32. Writeln('Premi un tasto per uscire...');
  33. Readkey;
  34. end.
  35. end.


Ciao faccio la prima ITIS informatico, ho bisogno di un aiuto con il pascal.
Questo programma DOVREBBE trovare le aree di due trapezi e dire se sono uguali oppure qual'è la maggiore.
Nel caso le aree siano uguali però esso riporta che la prima è comunque maggiore.
Programma banale, voi siete mitici lo so! :heehee:

Ultima modifica effettuata da Pascal-Dude il 22/10/2012 alle 18:40
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:34
Lunedì, 22/10/2012
Ciao!
Il programma non funziona perché devi racchiudere le istruzioni all' interno dei blocchi if, tra un begin ed un end.
Altrimenti viene eseguita solo la prima istruzione.

PM Quote
Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 20:35
Lunedì, 22/10/2012
Testo quotato

Postato originariamente da Poggi Marco:

Ciao!
Il programma non funziona perché devi racchiudere le istruzioni all' interno dei blocchi if, tra un begin ed un end.
Altrimenti viene eseguita solo la prima istruzione.  



Ciao!!! Grazie mille per la risposta, ho provato ma non funziona...

Codice sorgente - presumibilmente Delphi

  1. PROGRAM confrontoaree;
  2. uses crt;
  3. var a,b,c,d,e,f,g,h: integer;
  4. begin
  5. textcolor(blue);
  6. textbackground(white);
  7. writeln('Inserisci la base minore e la base maggiore del primo trapezio');
  8. readln(a,b);
  9. Writeln('Inserisci l''altezza del primo trapezio');
  10. readln(c);
  11. writeln('Inserisci la base minore e la base maggiore del secondo trapezio');
  12. readln(d,e);
  13. Writeln('Inserisci l''altezza del secondo trapezio');
  14. readln(f);
  15. g:=(a+b)*c div 2;
  16. h:=(d+e)*f div 2;
  17. if g>h then
  18. begin
  19. textcolor(green);
  20. writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
  21. Writeln('Premi un tasto per uscire...');
  22. Readkey;
  23. end;
  24. end.
  25. else
  26. if g=h then
  27. begin
  28. textcolor(black);
  29. writeln('I due trapezi hanno aree uguali, e misurano ',h,' cm^2');
  30. Writeln('Premi un tasto per uscire...');
  31. Readkey;
  32. end;
  33. end.
  34. else
  35. begin
  36. textcolor(lightblue);
  37. writeln('Il secondo trapezio ha l''area maggiore e misura ',h,' cm^2');
  38. Writeln('Premi un tasto per uscire...');
  39. Readkey;
  40. end;
  41. end.


PM Quote
Avatar
Tommaso95 (Normal User)
Newbie


Messaggi: 17
Iscritto: 17/10/2012

Segnala al moderatore
Postato alle 21:08
Lunedì, 22/10/2012
Ciao!
Perchè inserisci due end per ogni begin?
Per farlo funzionare devi togliere i due end e metterne solo uno senza punto o punto e virgola in quanto si trova prima di un ELSE.

P.S. Aggiungerei un clrscr subito dopo il begin iniziale che ti permette di "pulire" lo schermo ;)

Ultima modifica effettuata da Tommaso95 il 22/10/2012 alle 21:13
PM Quote
Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 21:36
Lunedì, 22/10/2012
Testo quotato

Postato originariamente da Tommaso95:

Ciao!
Perchè inserisci due end per ogni begin?
Per farlo funzionare devi togliere i due end e metterne solo uno senza punto o punto e virgola in quanto si trova prima di un ELSE.

P.S. Aggiungerei un clrscr subito dopo il begin iniziale che ti permette di "pulire" lo schermo ;)



Devo mettere i punti e virgola dopo gli end o il punto? per intenderci...
Così:
Codice sorgente - presumibilmente Pascal

  1. if g>h then
  2. begin
  3. textcolor(green);
  4. writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
  5. Writeln('Premi un tasto per uscire...');
  6. Readkey;
  7. end;
  8. else


oppure così
Codice sorgente - presumibilmente Pascal

  1. if g>h then
  2. begin
  3. textcolor(green);
  4. writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
  5. Writeln('Premi un tasto per uscire...');
  6. Readkey;
  7. end.
  8. else


PM Quote
Avatar
Tommaso95 (Normal User)
Newbie


Messaggi: 17
Iscritto: 17/10/2012

Segnala al moderatore
Postato alle 21:40
Lunedì, 22/10/2012
Rileggendo ho visto che mi sono espresso malissimo.
In pratica devi scrivere solamente "end" (senza virgolette) perchè si trova davanti ad un ELSE.

PM Quote
Avatar
Pascal-Dude (Normal User)
Newbie


Messaggi: 6
Iscritto: 22/10/2012

Segnala al moderatore
Postato alle 22:15
Lunedì, 22/10/2012
Testo quotato

Postato originariamente da Tommaso95:

Rileggendo ho visto che mi sono espresso malissimo.
In pratica devi scrivere solamente "end" (senza virgolette) perchè si trova davanti ad un ELSE.



Hey grazie mille !!
Ora funziona grazie !!
Che stupido lo sapevo che non ci va il punto e virgola prima dell'else, l'ha spiegato oggi la prof!
Speriamo non legga questa conversazione, grazie mille di nuovo e buona serata!
Luca.

PM Quote