Αποστολέας Θέμα: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή  (Αναγνώστηκε 9354 φορές)

anasta

  • Βετεράνος
  • ****
  • Μηνύματα: 58
  • Ok, yes... Ok, yes...
Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« στις: 29 Οκτ 2009, 10:01:08 πμ »
Πως θα μετατρέπατε σε ψευδοκώδικα το παρακάτω πρόγραμμα σε Pascal;;;;
όχι όμως με εμφωλευμένες....

program ASKHSH;
var
   MO:real;
begin
   writeln('ΔΩΣΕ ΤΕΛΙΚΟ ΜΕΣΟ ΟΡΟ');
   readln(MO);
   if ((MO>=0) and (mo<=9.5)) then
      begin
         writeln('Ο μαθητής απορρίπτεται');
      end
   else if ((MO>9.5) and (MO<=13)) then
      begin
         writeln('Σχεδόν καλά');
      end
   else if ((MO>13) and (MO<=16)) then
      begin
         writeln('Kαλά');
      end
   else if ((MO>16) and (MO<=18)) then
      begin
         writeln('Πολύ καλά');
      end
   else if ((MO>18) and (MO<=20)) then
      begin
         writeln('Άριστα');
      end
   else
      begin
         writeln('ΑΚΥΡΟΣ ΒΑΘΜΟΣ');
      end;
   
end.

Ιωάννης Γκίνης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 130
  • I share because I care
    • Προσωπική ιστοσελίδα
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #1 στις: 29 Οκτ 2009, 12:57:09 μμ »
Άσχετο με την ερώτησή σου αλλά θα μου επιτρέψεις να πω ότι το πρόγραμμά σου κάνει περιττούς ελέγχους, κάτι που είναι deprecated με βάση τα σχολικά εγχειρίδια.
Επίσης κάτι που στα δικά μου τα μάτια φαίνεται πολύ εκνευριστικό είναι η άσκοπη χρήση το compound statement.

Βασίλης Ραξενίδης

  • Θαμώνας
  • ***
  • Μηνύματα: 30
  • bar = foo
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #2 στις: 29 Οκτ 2009, 04:44:23 μμ »
Γιατί ντε και καλά δεν θέλεις φωλιασμένες ΑΝ ? Πως αλλιώς να γίνει?
jgini τι εννοείς όταν λες ότι οι περιττοί έλεγχοι είναι deprecated? Επίσης τί εννοείς όταν λες compound statement;

Ιωάννης Γκίνης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 130
  • I share because I care
    • Προσωπική ιστοσελίδα
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #3 στις: 29 Οκτ 2009, 07:48:19 μμ »
Deprecated είναι κάτι που συνίσταται να αποφεύγεται
http://en.wikipedia.org/wiki/Deprecation

Compound Statement ή στα ελληνικά σύνθετη εντολή ή μπλοκ εντολών είναι η ομαδοποίηση εντολών σε μία, με χρήση των begin - end για τη Pascal. Όταν η εντολή είναι μία το μπλοκ εντολών είναι περιττό.
http://www.mirrorservice.org/sites/www.gnu-pascal.de/gpc/begin-end-Compound-Statement.html

Σε ότι αφορά την πολλαπλή επιλογή δείτε την Άσκηση 10 στον παρακάτω σύνδεσμο. Ίσως σας βοηθήσει.
http://users.att.sch.gr/jginis/?pg=sp#pseudo10

karinakis

  • Θαμώνας
  • ***
  • Μηνύματα: 44
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #4 στις: 29 Οκτ 2009, 08:10:19 μμ »
συνάδελφε θα έλεγα ότι σωστά αντιμεπωπίζεις με ψευδοκώδικα την πολλαπλή επιλογή και μάλιστα αναφέρεσαι στην άσκηση 10. Όμως στη συγκεκριμένη άσκηση δεν θα έλεγα ότι από την εκφώνηση είναι κατανοητό πως υπάρχει επαναληπτική δομή στο πρόβλημα που παραθέτεις. Ωστόσο για άλλη μία φορά πρέπει να πω πως το βιβλίο είναι απαράδεκτο και εμείς όλοι απλά ανακαλύπτουμε τρόπους αναπαράστασης του αλγορίθμου με ψευδοκώδικα και ....προσευχόμαστε να είναι αποδεκτοί από τους βαθμολογητές διαφορετικά τους μαθητές μας τους έχουμε κυριολεκτικά κάψει από τώρα.

iliasthes

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 790
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #5 στις: 29 Οκτ 2009, 09:31:46 μμ »
Αν και δεν το δοκίμασα σε κάποιον compiler, κάπως έτσι θα ήταν ο κώδικας αν αποφεύγαμε τα else if.Πολύ πιθανό να υπάρχουν λαθάκια, αφού δεν το δοκίμασα. Όλες οι ασκήσεις λύνονται και με τους δύο τρόπους, αλλά όπως βλέπετε, χρειάζεται επιπλέον αλγόριθμος μετά για να εντοπίζουμε ποιο else αντιστοιχεί σε ποιο if. Πέρσι δυστυχώς αναγκάστηκα να γράψω πολλούς αλγόριθμους με αυτή τη λογική, για να αποφύγω το Αλλιώς_ΑΝ:

If MO>=0 then
   If Mo<=20 then
           If Mo<=18 then
                If Mo<= 16 then
                    If Mo<=13 then
                          If Mo<=9,5 then
                                  writeln('O mathitis aporriptetai');
                     else
                          writeln('Sxedon Kala')
                 else
                     writeln('Kala')
           else
              writeln('Poly kala')
      else
          writeln('Arista')
else
 writeln('Dwsate mi apodekto vathmo') 
                       

anasta

  • Βετεράνος
  • ****
  • Μηνύματα: 58
  • Ok, yes... Ok, yes...
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #6 στις: 29 Οκτ 2009, 09:33:34 μμ »
Άσχετο με την ερώτησή σου αλλά θα μου επιτρέψεις να πω ότι το πρόγραμμά σου κάνει περιττούς ελέγχους, κάτι που είναι deprecated με βάση τα σχολικά εγχειρίδια.
Επίσης κάτι που στα δικά μου τα μάτια φαίνεται πολύ εκνευριστικό είναι η άσκοπη χρήση το compound statement.
ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΔΩΣΕΙ Ο ΧΡΗΣΤΗΣ ΜΗ ΑΠΟΔΕΚΤΗ ΤΙΜΗ π.χ. -1 ΓΙΑ ΒΑΘΜΟ, ΧΩΡΙΣ ΑΥΤΟΥΣ ΤΟΥΣ ΠΕΡΙΤΤΟΥΣ ΕΛΕΓΧΟΥΣ ΘΑ ΔΩΣΕΙ ΛΑΘΟΣ ΑΠΟΤΕΛΕΣΜΑ. ΕΦΟΣΟΝ ΔΕΝ ΥΠΑΡΧΕΙ "ΔΙΑΣΦΑΛΙΣΗ" ΤΙΜΗΣ ΝΟΜΙΖΩ ΠΩΣ ΟΙ ΠΕΡΙΤΤΕΣ ΛΟΓΙΚΕΣ ΣΥΝΘΗΚΕΣ ΜΟΝΟ ΠΕΡΙΤΤΕΣ ΔΕΝ ΕΙΝΑΙ!
ΟΣΟ ΓΙΑ ΤΑ BEGIN K END Κ ΕΜΕΝΑ ΜΟΥ ΤΗ "ΣΠΑΝΕ" ΑΛΛΑ ΠΡΟΤΙΜΩ ΝΑ ΤΑ ΓΡΑΦΩ ΓΙΑ ΝΑ ΜΗΝ ΜΠΕΡΔΕΥΟΝΤΑΙ ΤΑ ΠΑΙΔΙΑ.

Γιατί ντε και καλά δεν θέλεις φωλιασμένες ΑΝ ? Πως αλλιώς να γίνει?
ΓΙΑΤΙ ΜΕ ΕΜΦΩΛΕΥΜΕΝΕΣ ΣΥΜΦΩΝΑ ΜΕ ΤΟ ΒΙΒΛΙΟ ΒΓΑΙΝΕΙ.
ΜΕ "ΑΝ...ΑΛΛΙΩΣ_ΑΝ" ΟΠΩΣ ΣΤΗΝ ΑΕΠΠ ΟΜΩΣ??
ΕΛΕΓΑ ΜΗΠΩΣ ΜΟΥ ΔΙΕΦΕΥΓΕ ΚΑΤΙ.
ΜΑΛΛΟΝ ΠΡΕΠΕΙ ΝΑ ΤΟ ΚΑΝΟΥΜΕ ΟΠΩΣ ΤΟ ΜΠΛΕ ΠΛΑΙΣΙΟ ΤΗΣ ΣΕΛΙΔΑΣ 30 ΤΟΥ ΒΙΒΛΙΟΥ.

ΣΥΝΑΔΕΛΦΙΚΟΥΣ ΧΑΙΡΕΤΙΣΜΟΥΣ!

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #7 στις: 29 Οκτ 2009, 09:45:21 μμ »
Αν και δεν το δοκίμασα σε κάποιον compiler, κάπως έτσι θα ήταν ο κώδικας αν αποφεύγαμε τα else if. 

Αν και δεν έχω υπόψη μου τα περί του μαθήματος, όμως γιατί κάποιος να προσπαθεί να αποφύγει τα "else if";

Δεν είναι όπως το "αλλιώς_αν" που απαιτεί άλλη αντιμετώπιση σε σχέση με το "αλλιώς αν" δηλαδή με το
"αλλιώς
    Αν"

...αλλά είναι το else που ακολουθείται από άλλη εντολή if.

Ιωάννης Γκίνης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 130
  • I share because I care
    • Προσωπική ιστοσελίδα
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #8 στις: 29 Οκτ 2009, 09:52:25 μμ »
ΣΤΗΝ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΔΩΣΕΙ Ο ΧΡΗΣΤΗΣ ΜΗ ΑΠΟΔΕΚΤΗ ΤΙΜΗ π.χ. -1 ΓΙΑ ΒΑΘΜΟ, ΧΩΡΙΣ ΑΥΤΟΥΣ ΤΟΥΣ ΠΕΡΙΤΤΟΥΣ ΕΛΕΓΧΟΥΣ ΘΑ ΔΩΣΕΙ ΛΑΘΟΣ ΑΠΟΤΕΛΕΣΜΑ.

Είναι απλό, κρατάμε μόνο την πρώτη συνθήκη ((MO >= 0) and (MO <= 9.5)) και απλουστεύουμε τις υπόλοιπες.

Κώδικας: [Επιλογή]
program Askisi;

var
  MO: Real;

begin
  Write('Dwse ton teliko meso oro: ');
  Readln(MO);
 
  if (MO >= 0) and (MO <= 9.5) then
    Writeln('O ma9itis aporriptetai')
  else if MO <= 13 then
    Writeln('Sxedon kala')
  else if MO <= 16 then
    Writeln('Kala')
  else if MO <= 18 then
    Writeln('Poly kala')
  else if MO <= 20 then
    Writeln('Arista')
  else
    Writeln('Mi apodektos mesos oros')
end.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #9 στις: 29 Οκτ 2009, 10:03:15 μμ »
Είναι απλό, κρατάμε μόνο την πρώτη συνθήκη ((MO >= 0) and (MO <= 9.5)) και απλουστεύουμε τις υπόλοιπες.

Κώδικας: [Επιλογή]
program Askisi;

var
  MO: Real;

begin
  Write('Dwse ton teliko meso oro: ');
  Readln(MO);
 
  if (MO >= 0) and (MO <= 9.5) then
    Writeln('O ma9itis aporriptetai')
  else if MO <= 13 then
    Writeln('Sxedon kala')
  else if MO <= 16 then
    Writeln('Kala')
  else if MO <= 18 then
    Writeln('Poly kala')
  else if MO <= 20 then
    Writeln('Arista')
  else
    Writeln('Mi apodektos mesos oros')
end.

Πρόσεξε: Αν ο MO είναι -1 τότε θα μπει στη 2η περίπτωση και θα εμφανίσει "Sxedon kala". Είναι αρκετά συνηθισμένο λάθος και είχα ανεβάσει σχετικό θέμα στο: http://alkisg.mysch.gr/steki/index.php?topic=2145

anasta

  • Βετεράνος
  • ****
  • Μηνύματα: 58
  • Ok, yes... Ok, yes...
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #10 στις: 29 Οκτ 2009, 10:06:38 μμ »
Είναι απλό, κρατάμε μόνο την πρώτη συνθήκη ((MO >= 0) and (MO <= 9.5)) και απλουστεύουμε τις υπόλοιπες.

ΕΠΙΜΕΝΕΙΣ....
ΑΝ ΔΩΣΕΙ ΓΙΑ ΜΕΣΟ ΟΡΟ ΤΗΝ ΤΙΜΗ -1 Η ΠΡΩΤΗ ΣΥΝΘΗΚΗ ΔΕΝ ΙΣΧΥΕΙ.
Η ΕΠΟΜΕΝΗ ΟΜΩΣ "else if MO <= 13 then" ΙΣΧΥΕΙ (ΩΣ ΓΝΩΣΤΟ -1<13), ΟΠΟΤΕ ΕΙΝΑΙ ΑΛΗΘΗΣ, ΟΠΟΤΕ ΘΑ ΕΚΤΕΛΕΣΤΕΙ.   ;)

Ιωάννης Γκίνης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 130
  • I share because I care
    • Προσωπική ιστοσελίδα
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #11 στις: 29 Οκτ 2009, 10:07:59 μμ »
Έχετε απόλυτο δίκιο. Ήμουν αφελής. Επιτρέψτε μου να διορθώσω.
Κώδικας: [Επιλογή]
program Askisi;

var
  MO: Real;

begin
  Write('Dwse ton teliko meso oro: ');
  Readln(MO);
 
  if (MO < 0) or (MO > 20) then
    Writeln('Mi apodektos mesos oros')
  else if MO <= 9.5 then
    Writeln('O ma9itis aporriptetai')
  else if MO <= 13 then
    Writeln('Sxedon kala')
  else if MO <= 16 then
    Writeln('Kala')
  else if MO <= 18 then
    Writeln('Poly kala')
  else
    Writeln('Arista')
end.
« Τελευταία τροποποίηση: 29 Οκτ 2009, 10:33:01 μμ από jginis »

anasta

  • Βετεράνος
  • ****
  • Μηνύματα: 58
  • Ok, yes... Ok, yes...
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #12 στις: 29 Οκτ 2009, 10:16:48 μμ »
Αν και δεν το δοκίμασα σε κάποιον compiler, κάπως έτσι θα ήταν ο κώδικας αν αποφεύγαμε τα else if.Πολύ πιθανό να υπάρχουν λαθάκια, αφού δεν το δοκίμασα. Όλες οι ασκήσεις λύνονται και με τους δύο τρόπους, αλλά όπως βλέπετε, χρειάζεται επιπλέον αλγόριθμος μετά για να εντοπίζουμε ποιο else αντιστοιχεί σε ποιο if. Πέρσι δυστυχώς αναγκάστηκα να γράψω πολλούς αλγόριθμους με αυτή τη λογική, για να αποφύγω το Αλλιώς_ΑΝ:

If MO>=0 then
   If Mo<=20 then
           If Mo<=18 then
                If Mo<= 16 then
                    If Mo<=13 then
                          If Mo<=9,5 then
                                  writeln('O mathitis aporriptetai');
                     else
                          writeln('Sxedon Kala')
                 else
                     writeln('Kala')
           else
              writeln('Poly kala')
      else
          writeln('Arista')
else
 writeln('Dwsate mi apodekto vathmo') 
                       

ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ, ΤΟ ΔΟΚΙΜΑΣΑ Κ ΕΦΤΙΑΞΑ ΤΟ ΠΑΡΑΚΑΤΩ.
ΣΥΓΝΩΜΗ ΑΛΛΑ ΣΤΟΝ COMPILER ΠΟΥ ΕΧΩ ΔΕΝ ΕΤΡΕΧΕ ΧΩΡΙΣ "COMPOUND STATEMENTS"
program ASKHSH;
var
   MO:real;
begin
   writeln('ΔΩΣΕ ΤΕΛΙΚΟ ΜΕΣΟ ΟΡΟ');
   readln(MO);
If MO>=0 then
   If Mo<=20 then
      If Mo<=18 then
         If Mo<= 16 then
            If Mo<=13 then
               If Mo<=9.5 then
              BEGIN
                 writeln('O mathitis aporriptetai');
              END
           else
           BEGIN
              writeln('Sxedon Kala');
           END
        else
        BEGIN
           writeln('Kala');
        END
     else
     BEGIN
         writeln('Poly kala');
     END
   else
   BEGIN
      writeln('Arista');
   END
else
BEGIN
   writeln('Dwsate mi apodekto vathmo');
END;

end.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #13 στις: 29 Οκτ 2009, 10:26:44 μμ »
Πως θα μετατρέπατε σε ψευδοκώδικα το παρακάτω πρόγραμμα σε Pascal;;;;
όχι όμως με εμφωλευμένες....

Τα begin end που είχες βάλει δεν χρειάζονταν (χωρίς όμως τα ερωτηματικά... γιατί τότε θα ήταν σαν να τελείωνε εκεί η πλησιέστερη if)! Η παρακάτω εκδοχή έχει απλούστερους ελέγχους. Όμως κι αυτή θεωρώ πως έχει εμφωλευμένα if, όπως και η αρχική σου λύση, όπως και αυτή του iliasthes που προσπάθησε να μη χρησιμοποιήσει else if...


program ASKHSH;
var
   mo:real;
begin
   writeln('ΔΩΣΕ ΤΕΛΙΚΟ ΜΕΣΟ ΟΡΟ');
   readln(mo);

   if ((mo<0) or (mo>20)) then
      writeln('ΑΚΥΡΟΣ ΒΑΘΜΟΣ')
   else if (mo<=9.5) then
      writeln('Ο μαθητής απορρίπτεται')
   else if (mo<=13) then
      writeln('Σχεδόν καλά')
   else if (mo<=16) then
      writeln('Kαλά')
   else if (mo<=18) then
      writeln('Πολύ καλά')
   else
      writeln('Άριστα');
end.
« Τελευταία τροποποίηση: 29 Οκτ 2009, 10:48:39 μμ από Νίκος Αδαμόπουλος »

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2777
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Pascal σε ψευδοκώδικα - Πολλαπλή επιλογή
« Απάντηση #14 στις: 29 Οκτ 2009, 11:44:22 μμ »
χωρίς όμως τα ερωτηματικά... γιατί τότε...

Γενικά η χρήση των ερωτηματικών στην Pascal πρέπει να γίνεται πολύ προσεκτικά και αφού κάποιος έχει καταλάβει την σημασία τους... Δεν οριοθετεί το τέλος των εντολών αλλά αποτελεί διαχωριστικό εντολών. Έτσι αν δεν ακολουθεί άλλη εντολή τότε μπορεί και να μην μπει. Όμως από την άλλη, δεν μπορεί να μπει στο μέσον κάποια εντολής!

Μια και με έπιασε όρεξη, και από όσο θυμάμαι από την τελευταία φορά που έπιασα pascal στα χέρια μου - πριν 3 χρόνια οπότε συγχωρήστε με αν κάνω κανά λάθος, ...στην ιf...then...else έχουμε:

Κώδικας: [Επιλογή]
if συνθήκη then εντολή1 else εντολή2
Όλο αυτό θεωρείται μια εντολή. Δεν μπορεί να κοπεί στα δύο βάζοντας ερωτηματικό:

Κώδικας: [Επιλογή]
if συνθήκη then εντολή1; else εντολή2
(δεν υπάρχει εντολή που να ξεκινάει με else!)

Αν αντί για μία εντολή πρέπει βάλουμε πολλές τότε τις βάζουμε μέσα σε begin end ώστε να "θεωρούνται πάλι ως μια":

Κώδικας: [Επιλογή]
if συνθήκη then begin εντολή1; ... εντολήn end else begin εντολή3; ... εντολήz end
...που μάλλον θα ήταν πιο κατανοητό αν γραφόταν έτσι:

Κώδικας: [Επιλογή]
if συνθήκη then
  begin
     εντολή1;
     ...
     εντολήn
  end
else
  begin
     εντολή3;
     ...
     εντολήz
  end

Όλο αυτό συνεχίζει να θεωρείται μια εντολή. Άρα μπορεί να μπει ολόκληρο (και χωρίς begin end) ως εντολή μέσα σε άλλη if (μετά το then ή/και μετά το else), κ.ο.κ.

Και όλο αυτό μια εντολή θεωρείται:

Κώδικας: [Επιλογή]
if συνθήκη1 then if συνθήκη2 then εντολή1 else εντολή2 else if συνθήκη3 then εντολή3 else εντολή4
...που μάλλον θα ήταν πιο κατανοητό αν γραφόταν έτσι:

Κώδικας: [Επιλογή]
if συνθήκη1 then
   if συνθήκη2 then
      εντολή1
   else
      εντολή2
else
   if συνθήκη3 then
      εντολή3
   else
      εντολή4

Τώρα, όταν γράφουμε:

Κώδικας: [Επιλογή]
if συνθήκη1 then
  εντολή1
else if συνθήκη2 then
  εντολή2   
else if συνθήκη3 then
  εντολή3
else
  εντολή4

... είναι σαν να γράφουμε:

Κώδικας: [Επιλογή]
if συνθήκη1 then
  εντολή1
else
   if συνθήκη2 then
      εντολή2   
   else
      if συνθήκη3 then
        εντολή3
      else
        εντολή4

Ουσιαστικά όλα αυτά είναι εμφωλευμένα! Το κάθε else αντιστοιχεί στο πλησιέστερο if που δεν έχει κλείσει (που δεν έχει άλλο πλησιέστερο else). Αν όμως δεν θέλουμε να γίνει κάτι τέτοιο, επειδή το πλησιέστερο if τυχαίνει να μην έχει το δικό του else, τότε μπορούμε να το κλείσουμε αυτό σε begin end ή να του προσθέσουμε else χωρίς εντολή! Δηλαδή:

Κώδικας: [Επιλογή]
if συνθήκη1 then
  begin
     if συνθήκη2 then
       εντολή1
  end
else
   if συνθήκη3 then
      εντολή3
   else
      εντολή4

ή

Κώδικας: [Επιλογή]
if συνθήκη1 then
   if συνθήκη2 then
     εντολή1
   else
else
   if συνθήκη3 then
      εντολή3
   else
      εντολή4

Αν δεν γινόταν κάτι από τα παραπάνω και είχαμε:

Κώδικας: [Επιλογή]
if συνθήκη1 then
   if συνθήκη2 then
      εντολή1
else
   if συνθήκη3 then
      εντολή3
   else
      εντολή4

...θα ήταν σαν να είχαμε:

Κώδικας: [Επιλογή]
if συνθήκη1 then
   if συνθήκη2 then
      εντολή1
   else
      if συνθήκη3 then
         εντολή3
      else
         εντολή4
« Τελευταία τροποποίηση: 30 Οκτ 2009, 01:54:42 πμ από Νίκος Αδαμόπουλος »