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

Post on 17-Mar-2016

58 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

ή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Απάντηση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.

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

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

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

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

13561356

Οθόνη

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

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

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

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

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

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

-34953495

Οθόνη

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

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

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

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

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

εντολών

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

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

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

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

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

13561356

Οθόνη

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

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

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

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

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

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

-3495-3495

Οθόνη

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

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

3495

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

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

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

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.

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

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

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

Απάντηση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.

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

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

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

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);

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.

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

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

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

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

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

Απάντηση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.

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

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

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

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

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

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

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

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

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

Απαντήσεις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.

Απαντήσεις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.

Απαντήσεις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.

Απαντήσεις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

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.

top related