30
Εντολές Διακλάδωσης ή Εντολές Υπό Συνθήκη If λογική έκφραση Then εντολή ή If λογική έκφραση Then εντολή Else εντολή

Εντολές Διακλάδωσης ή Εντολές Υπό Συνθήκη

  • Upload
    aileen

  • View
    58

  • Download
    4

Embed Size (px)

DESCRIPTION

Εντολές Διακλάδωσης ή Εντολές Υπό Συνθήκη. If λογική έκφραση Then εντολή ή If λογική έκφραση Then εντολή Else εντολή. Δομή επιλογής. Συνθήκη. Α’ ομάδα εντολών. Β’ ομάδα εντολών. Η δομή επιλογής είναι μια ολοκληρωμένη πρόταση η οποία περικλείει μια - PowerPoint PPT Presentation

Citation preview

Page 1: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Εντολές Διακλάδωσης ή

Εντολές Υπό ΣυνθήκηIf λογική έκφραση Then εντολή

ή

If λογική έκφραση Then εντολή Else εντολή

Page 2: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Δομή επιλογής

Η δομή επιλογής είναι μια ολοκληρωμένη πρόταση η οποία περικλείει μιασυνθήκη και δύο ομάδες εντολών, από τις οποίες θα εκτελεστούν, η μεν πρώτη ομάδα στην περίπτωση που ικανοποιείται η συνθήκη η δε δεύτερη ομάδα στην περίπτωση που δεν ικανοποιείται η συνθήκη

ΑΝ συνθήκη ΤΟΤΕ Εντολή α1 Εντολή α2 : :ΑΛΛΙΩΣ Εντολή ψ1 Εντολή ψ2 : : ΤΕΛΟΣ ΑΝ

Β’ ομάδαεντολών

Α’ ομάδαεντολών

Συνθήκη ΨευδήςΑληθήςΑληθήςΑληθής ΨευδήςΨευδήςΣυνθήκη ΑληθήςΑ’ ομάδα εντολών

Συνθήκη ΨευδήςΒ’ ομάδα εντολών

Page 3: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΣΤΟΧΟΙ• Να κατανοήσουμε τη χρήση και εφαρμογή της

εντολής If…. Then…. Else• Nα αναλύσουμε την εντολή If - Then – Else • Να κατανοήσουμε την χρήση της εντολής σε

παραδείγματα• Να επιλύσουμε προβλήματα με τη χρήση της

εντολής If….Then…. Else

Page 4: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Εντολές Διακλάδωσης

1. Εντολές διακλάδωσης ή επιλογής.2. Εντολή If Then Else.3. Εντολή Case.

(α) If συνθήκη Then εντολή

(β) If συνθήκη Then εντολή Else εντολή

Page 5: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Ορισμός Εντολών(γ) If συνθήκη Then εντολή Else if συνθήκη Then εντολή …… Else if συνθήκη Then εντολή Else εντολή

Page 6: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠαράδειγμαΝα γράψετε ένα πρόγραμμα που να

διαβάζει ένα αριθμό. Να υπολογίζετε στη συνέχεια και να τυπώνετε την τετραγωνική του ρίζα αν ο αριθμός είναι θετικός. Αν είναι αρνητικός να τυπώνετε ένα ανάλογο μήνυμα, “αρνητικός αριθμός”.

Page 7: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπάντησηProgram sample2_1;Uses wincrt;Var x:real;BeginWrite(‘Dose ena arithmo…’);Readln(x);writeln;If x>=0 then write(‘H tetragoniki riza tou arithmou einai:’,sqrt(x):8:2) else write(x:7:2,’O arithmos einai arnitikos’);End.

Page 8: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠΡΟΓΡΑΜΜΑ Απόλυτη_Τιμή‘Εισαγωγή δεδομένων ΓΡΑΨΕ ”Δώσε τον αριθμό” ΔΙΑΒΑΣΕ α ‘Επεξεργασία δεδομένων ΑΝ α>0 ΤΟΤΕ Απόλυτη_Τιμή ← α ΑΛΛΙΩΣ Απόλυτη_Τιμή ← -α ΤΕΛΟΣ ΑΝ

‘Εκτύπωση αποτελεσμάτων ΓΡΑΨΕ ”Η απόλυτη τιμή είναι: ”, Απόλυτη_Τιμή ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

αΑπόλυτη_Τιμή

13561356

Οθόνη

Δώσε τον αριθμό1356Η απόλυτη τιμή είναι: 1356

ΑληθήςΑληθήςΑληθήςΑληθής

Page 9: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠΡΟΓΡΑΜΜΑ Απόλυτη_Τιμή‘Εισαγωγή δεδομένων ΓΡΑΨΕ ”Δώσε τον αριθμό” ΔΙΑΒΑΣΕ α ‘Επεξεργασία δεδομένων ΑΝ α>0 ΤΟΤΕ Απόλυτη_Τιμή ← α ΑΛΛΙΩΣ Απόλυτη_Τιμή ← -α ΤΕΛΟΣ ΑΝ

‘Εκτύπωση αποτελεσμάτων ΓΡΑΨΕ ”Η απόλυτη τιμή είναι: ”, Απόλυτη_Τιμή ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

αΑπόλυτη_Τιμή

-34953495

Οθόνη

Δώσε τον αριθμό-3495Η απόλυτη τιμή είναι: 3495

ΨευδήςΨευδήςΨευδήςΨευδής

Page 10: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Δομή επιλογής

Αν δε θέλουμε να εκτελεστεί καμιά εντολή στην περίπτωση που η συνθήκη είναι ψευδής μπορούμε να παραλείψουμε και τη λέξη ΑΛΛΙΩΣ

ΑΝ συνθήκη ΤΟΤΕ Εντολή 1 Εντολή 2 : :ΤΕΛΟΣ ΑΝ Oμάδα

εντολών

Συνθήκη ΨευδήςΑληθήςΑληθήςΑληθής ΨευδήςΨευδήςΣυνθήκη Αληθής

Page 11: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠΡΟΓΡΑΜΜΑ Απόλυτη_Τιμή‘Εισαγωγή δεδομένων ΓΡΑΨΕ ”Δώσε τον αριθμό” ΔΙΑΒΑΣΕ α ‘Επεξεργασία δεδομένων Απόλυτη_Τιμή ← α ΑΝ α<0 ΤΟΤΕ Απόλυτη_Τιμή ← -α ΤΕΛΟΣ ΑΝ

‘Εκτύπωση αποτελεσμάτων ΓΡΑΨΕ ”Η απόλυτη τιμή είναι: ”, Απόλυτη_Τιμή ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

αΑπόλυτη_Τιμή

13561356

Οθόνη

Δώσε τον αριθμό1356Η απόλυτη τιμή είναι: 1356

ΨευδήςΨευδήςΨευδήςΨευδής

Page 12: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠΡΟΓΡΑΜΜΑ Απόλυτη_Τιμή‘Εισαγωγή δεδομένων ΓΡΑΨΕ ”Δώσε τον αριθμό” ΔΙΑΒΑΣΕ α ‘Επεξεργασία δεδομένων Απόλυτη_Τιμή ← α ΑΝ α<0 ΤΟΤΕ Απόλυτη_Τιμή ← -α ΤΕΛΟΣ ΑΝ

‘Εκτύπωση αποτελεσμάτων ΓΡΑΨΕ ”Η απόλυτη τιμή είναι: ”, Απόλυτη_Τιμή ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μνήμη. Περιοχή μεταβλητών

αΑπόλυτη_Τιμή

-3495-3495

Οθόνη

Δώσε τον αριθμό-3495Η απόλυτη τιμή είναι: 3495

ΑληθήςΑληθήςΑληθήςΑληθής

3495

Page 13: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Επεξεργασία Υπό ΣυνθήκηΠαράδειγμα_1

Μια εταιρεία πωλήσεων μέσω ταχυδρομείου, προσφέρει έκπτωση 10% στην αξία του εμπορεύματος για παραγγελίες μεγαλύτερες των 1000 ECU. Για παραγγελίες μικρότερες των 1000ECU, το πληρωτέο ποσό είναι ίσο με την αξία των αγαθών.

Να γράψετε ένα πρόγραμμα το οποίο θα λαμβάνει υπόψη τα πιο πάνω.

Page 14: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

PROGRAM IF_1;

Uses wincrt;Var

timi_emprmts,pliroteo,ekptosi:real;

Begin

write(‘ Dose tin timi tou emporeumatos….: ’);

Readln(timi_emprmts);

Pliroteo:=timi_emprmts;

If timi_emprts>= 1000

then

ekptosi:=timi_emprmts * 0.1;

pliroteo:=timi_emprmts - ekptosi;

writeln(‘ H plirotea timi se ECU einai…’,pliroteo:8:2);

End.

Page 15: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Παράδειγμα_2Να γράψετε ένα πρόγραμμα που θα αποφασίζει

για την πραγματοποίηση μιας αγοράς, με δεδομένα το μηνιαίο εισόδημα, την περιουσία της συζύγου και τον αριθμό των παιδιών.

Όταν το μηνιάιο εισόδημα είναι μεγαλύτερο από 2000 ECU, ή η περιουσία της συζύγου είναι μεγαλύτερη από 200000 ECU, και ο αριθμός των παιδιών ίσος με μηδέν, τότε συνιστάται η αγορά σπόρ αυτοκινήτου. Αλλιώς συνιστάται η αγορά κοινού αυτοκινήτου.

Page 16: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπάντησηPROGRAM if__2;Uses wincrt;Var eisodima, periousia:real; paidia:Integer;Begin Write(‘Dose to miniaio eisodima…’); Readln(eisodima); Write(‘Periousia tis syzygou…’); Readln(periousia); Write(‘Posa paidia exete; ‘); Readln(paidia);If ((eisodima>2000)or (periousia>=200000)) and (paidia=0) Then writeln(‘ Agorase spor autokinhto’) else writeln(‘Agorase aplo autkinhto’);End.

Page 17: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Παράδειγμα με πολλαπλή επιλογή

Γράψε ένα πρόγραμμα για το πιο κάτω πρόβλημα.

Ένας χοντρέμπορας προσφέρει διαφορετική έκπτωση ανάλογα με τον πελάτη. Οι επαγγελματίες έχουν έκπτωση 10%, οι λιανοπώλες 15%, ενώ όλοι οι άλλοι πελάτες δεν έχουν καμιά έκπτωση.

Page 18: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

PROGRAM if_3;Uses wincrt;

Var

timi_eidous,pliroteo:real;

Kat_pelati:char;

Begin

Write(‘Dose tin timi eidous:’);

Readln(timi_eidous);

Writeln(‘Dose tin katigoria pelati:’);

Writeln(‘1. Epaggelmatias’);

Writeln(‘2. Lianopolis ’);

Writeln(‘3. Allos ’);

Readln(kat_pelati);

Page 19: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

case kat_pelati of

‘1’ :pliroteo:=timi_eidous*(1-0.1);

‘2’ :pliroteo:=timi_eidous*(1-0.15);

‘3’ :pliroteo:=timi_eidous;

Else pliroteo:=0;

writeln(‘ Lathos eisagwgis’);

End.

Writeln(‘ H plirotea timi se ECU einai…’,pliroteo:8:2);

End.

Page 20: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Τύπος δεδομένων Char(χαρακτήρας)

Ο τύπος δεδομένων Char (character=χαρακτήρας) μας δίνει τη δυνατότητα να χρησιμοποιήσουμε γράμματα και σύμβολα στο πρόγραμμά μας.

Μια μεταβλητή τύπου Char, παίρνει ως τιμή ένα οποιδήποτε χαρακτήρα σε εισαγωγικά. Στη μεταβλητή αποθηκεύεται μόνο ο χαρακτήρας χωρίς τα εισαγωγικά.

Page 21: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΠαράδειγμαΝα γραφεί ένα πρόγραμμα το οποίο να

διαβάζει ένα ακέραιο αριθμό απ΄οτο 1…7 και να τυπώνει την αντίστοιχη μέρα της εβδομάδας. Το ‘1’ αντιστοιχεί στη Κυριακή.

Page 22: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπάντησηProgram Xaraktiras;Uses wincrt;Varn:Char;BeginWrite(‘Dose ena akeraio arithmo apo to 1…7’);Readln(n);If n=‘1’ then writeln(‘Kyriakh’)Else if n=‘2’ then writeln(‘Deutera’)Else if n=‘3’ then writeln(‘Trith’)Else if n=‘4’ then writeln(‘Tetarth’)Else if n=‘5’ then writeln(‘Pempth’)Else if n=‘6’ then writeln(‘Paraskeui’)Else if n=‘7’ then writeln(‘Savvato’)Else writeln(‘ Akyros arithmos… ksanaprosp;athise’);End.

Page 23: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Ασκήσεις1. Να γράψετε ένα πρόγραμμα το οποίο να

διαβάζει ένα ακέραιο αριθμό από το 1…12 και να τυπώνει τον αντίστοιχο μήνα του χρόνου. Το ένα ‘1’ , αντιστοιχεί στον Γενάρη.

2. Να γραφεί ένα πρόγραμμα που να δέχεται δύο αριθμούς. Στην έξοδο να δίνετε ο μεγαλύτερος αριθμός με το μήνυμα, ¨Ο Megalyteros arithmos einai…¨.

Page 24: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Ασκήσεις3. Μια εταιρεία ταχυδρομικών πωλήσεων

υπολογίζει το πληρωτέο ποσό ανάλογα με την αξία των εμπορευμάτων. Αν η αξία του εμπορεύματος είναι μικρότερη από 1000 ECU, το πληρωτέο ποσό επιβαρύνεται με 50 ECU για έξοδα αποστολής.

Γράψετε ένα πρόγραμμα που με δεδομένη την αξία του εμπορεύματος, να υπολογίζει το πληρωτέο ποσό.

Page 25: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Ασκήσεις4. Μια εταιρεία ηλεκτρικών ειδών, προσφέρει

έκπτωση 10% σε παραγγελίες αξίας μεγαλύτερης των 800 ECU. Όσοι είναι πελάτες για περισσότερο από 5 χρόνια θα έχουν έκπτωση 4% της αξίας της παραγγελίας.

Γράψετε ένα πρόγραμμα, που θα υπολογίζει το πληρωτέο ποσό με δεδομένα την αξία παραγγελίας και τη χρονική διάρκεια που είναι κάποιος πελάτης.

Page 26: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπαντήσειςProgram askisi_1;Uses wincrt;n:Char;BeginWrite(‘Dose ena akeraio arithmo apo to 1…12’);Readln(n);If n=‘1’ then writeln(‘Genaris’)Else if n=‘2’ then writeln(‘Fevrouarios’)Else if n=‘3’ then writeln(‘Martios’)Else if n=‘4’ then writeln(‘Aprillios’)Else if n=‘5’ then writeln(‘Maios’)Else if n=‘6’ then writeln(‘Iounios’)Else if n=‘7’ then writeln(‘Ioulios’)Else if n=‘8’ then writeln(‘Augoustos’)Else if n=‘9’ then writeln((‘septemvrios’)Else if n =’10’ then writeln(‘Oktomvrios’)Else if n=’11’ then writeln(‘Noemvrios’)Else if n=’12’ then writeln(‘Dekemvrios’)Else writeln(‘ Akyros arithmos… ksanaprosp;athise’);End.

Page 27: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπαντήσειςProgram askisi_2;Uses wincrt;Var x,y,megalyteros:real;Begin writeln(‘ Dose dyo arithmous’); readln(x,y); writeln(‘Arithmos 1=‘,x,’Artithmos 2=‘,y);If x>y then megalyteros:=xElse megalyteros:=y; writeln(‘ O megalyteros arithmos einai…’,megalyteros:10:2);End.

Page 28: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπαντήσειςProgram Askisi_3;Uses wincrt;

Var timi_eidous,pliroteo:real;Begin write(‘ Timi eidous se ECU..’); readln(timi_eidous); If timi_eidous< 1000 then pliroteo:=timi_eidous + 50 else pliroteo:=timi_eidous; writeln(‘ Pliroteo poso se ECU…’, pliroteo:2:2); End.

Page 29: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

ΑπαντήσειςProgram askisi_4;Uses wincrt;

Var paraggelia, pliroteo:real; diarkeia: Integer;Begin write(‘Paraggelia se ECU..’); readln(paraggelia); write(‘ Synergasia gia posa xronia’); readln(diarkeia); If paraggelia< 800 then Begin If diarkeia < 5 then pliroteo:=paraggelia else pliroteo:=paraggelia*(1-0.04); end

Page 30: Εντολές Διακλάδωσης  ή Εντολές Υπό Συνθήκη

Else

Begin

if diarkeia < 5

then

pliroteo:=paraggelia*(1-0.1)

else

pliroteo:=paraggelia*(1-0.1-0.04);

end;

writeln(‘ To pliroteo poso se ECU einai..’, pliroteo:2:2);

END.