ΕΓΏ ΣΗΜΕΡΑ ΑΥΤΟ ΠΟΥ ΚΑΤΑΛΑΒΑ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΟΠΩΣ ΤΟ ΕΛΕΓΕ Η ΕΚΦΩΝΗΣΗ ΗΤΑΝ ΟΤΙ ΑΠΟ ΜΟΝΟ ΤΟΥ ΣΕ ΑΝΑΓΚΑΖΕ ΝΑ ΑΠΟΡΡΙΨΕΙΣ ΤΙΣ ΕΝΔΙΑΜΕΣΕΣ ΤΙΜΕΣ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΠΟΥ ΣΟΥ ΕΙΧΕ!!!!ΟΠΟΤΕ ΕΓΩ ΤΟ ΕΛΥΣΑ ΩΣ ΕΞΕΙΣ
Program Thema_D;
var
eponymo :string[15];
b1,b2,b3,b4 :integer;
mo :real;
Begin
writeln('δώσε το επώνυμο ή γράψε τέλος για τερματισμό');
readln('eponymo');
while eponymo <> 'τέλος' do
begin
writeln('δώσε τους 4 βαθμούς των μαθημάτων');
readn(b1,b2,b3,b4);
mo:=(b1+b2+b3+b4)/4;
if (mo>=1) AND (mo<=150) then
writeln('η κατηγορία σου είναι D');
else if (mo>=151) AND (mo<=300) then
writeln('η κατηγορία σου είναι C');
else if (mo>=301) AND (mo<=350) then
writeln('η κατηγορία σου είναι B');
else if (mo>=351) AND (mo<=400) then
writeln('η κατηγορία σου είναι A');
writeln('δώσε το επώνυμο ή γράψε τέλος για τερματισμό');
readln('eponymo');
end;
End.
Σύμφωνα με την εκφώνηση είσαι σωστός και αν σε βαθμολογούσα θα το δεχόμουν σωστό. Προγραμματιστικά, θα μπορούσες να παραλείψεις το πρώτο μέρος των συνθηκών ή να βάλεις if (mo>150) and (mo<=300) κ.λ.π. ώστε να καλύψεις και τις ενδιάμεσες τιμές, αφού δήλωσες το mo : real.
πχ.. ..
if (mo>=1) AND (mo<=150) then
writeln('η κατηγορία σου είναι D')
else if (mo<=300) then
writeln('η κατηγορία σου είναι C')
else if (mo<=350) then
writeln('η κατηγορία σου είναι B')
else
writeln('η κατηγορία σου είναι A');
Λεπτομέρεια: Θα σου έκοβα και κάτι για τα ερωτηματικά πριν το else. Αν είχες παραλείψει τα else πάντως πάλι θα ήσουν σωστός.