Oppure

Loading
22/10/12 16:39
Pascal-Dude
PROGRAM confrontoaree;
uses crt;
var a,b,c,d,e,f,g,h: integer;
begin
textcolor(blue);
textbackground(white);
writeln('Inserisci la base minore e la base maggiore del primo trapezio');
readln(a,b);
Writeln('Inserisci l''altezza del primo trapezio');
readln(c);
writeln('Inserisci la base minore e la base maggiore del secondo trapezio');
readln(d,e);
Writeln('Inserisci l''altezza del secondo trapezio');
readln(f);
g:=(a+b)*c div 2;
h:=(d+e)*f div 2;
if g>h then
textcolor(green);
writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end.
else
if g=h then
textcolor(black);
writeln('I due trapezi hanno aree uguali, e misurano ',h,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
else
textcolor(lightblue);
writeln('Il secondo trapezio ha l''area maggiore e misura ',h,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end.
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 22/10/12 16:40
aaa
22/10/12 17:34
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.
aaa
22/10/12 18:35
Pascal-Dude
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...

PROGRAM confrontoaree;
uses crt;
var a,b,c,d,e,f,g,h: integer;
begin
textcolor(blue);
textbackground(white);
writeln('Inserisci la base minore e la base maggiore del primo trapezio');
readln(a,b);
Writeln('Inserisci l''altezza del primo trapezio');
readln(c);
writeln('Inserisci la base minore e la base maggiore del secondo trapezio');
readln(d,e);
Writeln('Inserisci l''altezza del secondo trapezio');
readln(f);
g:=(a+b)*c div 2;
h:=(d+e)*f div 2;
if g>h then
begin
textcolor(green);
writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end;
end.
else
if g=h then
begin
textcolor(black);
writeln('I due trapezi hanno aree uguali, e misurano ',h,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end;
end.
else
begin
textcolor(lightblue);
writeln('Il secondo trapezio ha l''area maggiore e misura ',h,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end;
end.
aaa
22/10/12 19:08
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 ;)
Ultima modifica effettuata da Tommaso95 22/10/12 19:13
aaa
22/10/12 19:36
Pascal-Dude
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ì:
if g>h then
begin
textcolor(green);
writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end;
else

oppure così
if g>h then
begin
textcolor(green);
writeln('Il primo trapezio ha l''area maggiore e misura ',g,' cm^2');
Writeln('Premi un tasto per uscire...');
Readkey;
end.
else
aaa
22/10/12 19:40
Tommaso95
Rileggendo ho visto che mi sono espresso malissimo.
In pratica devi scrivere solamente "end" (senza virgolette) perchè si trova davanti ad un ELSE.
aaa
22/10/12 20:15
Pascal-Dude
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.
aaa