Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Σχετικά έγγραφα
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στον Προγραμματισμό

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Η γλώσσα προγραμματισμού C

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Η γλώσσα προγραμματισμού C

Υπολογισμός - Εντολές Ελέγχου

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

8. Συνθήκες ελέγχου, λογικοί τελεστές

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Εισαγωγή στον Προγραμματισμό

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Εισαγωγή στον δομημένο προγραμματισμό

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΗΥ-150. Προγραμματισμός

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

ΗΥ-150. Προγραμματισμός

ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός

Δομές ελέγχου ροής προγράμματος

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Δομημένος Προγραμματισμός

Προγραμματισμός Ι (HY120)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Προγραμματισμός Ι. Θεματική ενότητα 8: Δημιουργία προγραμμάτων

Διαδικασιακός Προγραμματισμός

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος lantzos@teiser.gr

Διάλεξη 5η: Εντολές Επανάληψης

Δομημένος Προγραμματισμός (ΤΛ1006)

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I.

3. Έλεγχος ροής προγράμματος

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

for for for for( . */

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Διαδικασιακός Προγραμματισμός

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Υπολογισμός - Εντολές Επανάληψης

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

9. Εντολές επανάληψηςκαι η εντολή

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στην Πληροφορική

Γλώσσα Προγραμματισμού C

10. Εντολές επανάληψηςκαι οι εντολές

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Ανάπτυξη και Σχεδίαση Λογισμικού

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1

οµές Επιλογής Εντολές if και switch

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΕΠΛ232: Εργαστήριο 2

Εντολές επιλογής Επαναλήψεις (if, switch, while)

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Προγραμματισμό για ΗΜΥ

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Δομές ελέγχου & επανάληψης

Παίρνοντας Αποφάσεις 1

Δομές Ελέγχου και Επανάληψης

Μεθόδων Επίλυσης Προβλημάτων

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if)

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ (ΤΛ2007 )

Αρχές Προγραμματισμού

Εισαγωγή στον Προγραμματισμό

ιαδικαστικός Προγραμματισμός

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Transcript:

Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες η μία μετά την άλλη και εκτελούνται διαδοχικά.

Προτάσεις ελέγχου ροής Ωστόσο, ορισμένες φορές επιβάλλεται να γίνουν λογικές επιλογές (με χρήση λογικών τελεστών και τελεστών συσχέτισης). Παράδειγμα: ΕΑΝ στο σηματοδότη βρίσκεται ο ΓΡΗΓΟΡΗΣ ΤΟΤΕ μπορείς να διασχίσεις την οδό ΑΛΛΙΩΣ περίμενε αλλαγή του σηματοδότη Για να επιτευχθεί οποιαδήποτε διαφοροποίηση από την ακολουθιακή εκτέλεση απαιτούνται ειδικές κατασκευές. Ορισμένες από αυτές τις κατασκευές διασφαλίζουν ταυτόχρονα τη δόμηση του προγράμματος, με κύριο στόχο: η δομή του πηγαίου κώδικα να μας βοηθά να κατανοήσουμε τι κάνει το πρόγραμμα. Οι κατασκευές διακρίνονται σε δύο βασικές κατηγορίες: 1) την επανάληψη (looping) 2) την υπό συνθήκη διακλάδωση (conditional branching)

Προτάσεις διακλάδωσης υπό συνθήκη if else switch case Προτάσεις επανάληψης while do while for Προτάσεις ελέγχου ροής στη C Προτάσεις διακλάδωσης χωρίς συνθήκη break continue goto

Επιλεκτική εκτέλεση δύο προτάσεων if Ε1 then Π1 else Π2

Επιλεκτική εκτέλεση πολλών προτάσεων με ένθεση if Ε1 then Π1 else if E2 then Π2 else Π0

Παράδειγμα:Να περιγραφεί με ψευδοκώδικα η διεργασία που πρέπει να ακολουθήσει ο υπολογιστής για να διαπιστώσει κατά πόσο ένα δεδομένο έτος είναι δίσεκτο ή όχι. Να χρησιμοποιηθεί η κατασκευή if else. Λύση: Εάν αναπαρασταθεί το έτος με την ακέραια μεταβλητή year και ο τελεστής υπολοίπου (modulo) με το σύμβολο %, η περιγραφή μπορεί να γίνει ως ακολούθως: IF ((year % 400) == 0) THEN το έτος είναι δίσεκτο ELSE IF ((year % 100) == 0) THEN το έτος δεν είναι δίσεκτο ELSE IF ((year % 4) == 0) THEN το έτος είναι δίσεκτο ELSE το έτος δεν είναι δίσεκτο

Εναλλακτικά, ξεκινώντας από την περίπτωση το έτος να μην είναι δίσεκτο, η οποία καλύπτει την πλειοψηφία των ετών, έχουμε επιτάχυνση της εκτέλεσης του κώδικα, καθώς εν γένει διενεργούνται λιγότεροι έλεγχοι: IF ((year % 4)!= = 0) THEN το έτος δεν είναι δίσεκτο ELSE IF ((year % 400) == 0) THEN το έτος είναι δίσεκτο ELSE IF ((year % 100) == 0) THEN το έτος δεν είναι δίσεκτο ELSE το έτος είναι δίσεκτο Πλειοψηφία των ετών

Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τμήματα: συνθήκη if (light_color==green) { cross_the_street(); } else { wait_for_light_to_change(); } Σε απλή πρόταση τα άγκιστρα περιττεύουν

Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τμήματα: συνθήκη if (light_color==green) { cross_the_street(); } ΑΛΗΘΕΣ else (ΤRUE) ένα μπλοκ προτάσεων { wait_for_light_to_change(); } RUE) ΤΜΗΜΑ : μία πρόταση ή

Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τμήματα: if (light_color==green) { cross_the_street(); } else { wait_for_light_to_change(); } συνθήκη ΨΕΥΔΕΣ (FALSE) ΤΜΗΜΑ :μίαπρότασηή ένα μπλοκ προτάσεων ΑΛΗΘΕΣ ΤΜΗΜΑ : μία πρόταση ή ένα μπλοκ προτάσεων

Yπό συνθήκη διακλάδωση if - else Μερικές φορές δεν υπάρχει else, δηλαδή δεν υπάρχει ΨΕΥΔΕΣ τμήμα: Παράδειγμα: if (gas_tank_empty == TRUE) fill_up_tank(); Εάν η συνθήκη είναι ψευδής (π.χ. το ντεπόζιτο της βενζίνης είναι άδειο) δε γίνεται καμία ενέργεια.

Yπό συνθήκη διακλάδωση if - else Όταν υπάρχουν περισσότερα από δύο τμήματα και απαιτούνται ένθετες (φωλιασμένες) προτάσεις if/else. Μπορεί να αντικατασταθεί το ζεύγος else { if (συνθήκη) { προτάσεις; } } με την περισσότερο ευανάγνωστη μορφή: else if (συνθήκη) { προτάσεις;} Π.χ. if (people<5) <get < a car>; else if (people<15) <get < a van>; else if (people<50) <get < a bus>; else <cancel_event>;

Προτάσεις υπό συνθήκη διακλάδωσης if(συνθήκη)πρόταση; if (συνθήκη) { προτάσεις; προτάσεις; } if (συνθήκη) { προτάσεις; προτάσεις; } else { προτάσεις; προτάσεις;... }; 3 μορφές Σημειώστε ότι η συνθήκη βρίσκεται πάντοτε ανάμεσα σε παρενθέσεις, ΌλαταΑΛΗΘΗτμήματα και όλα τα ΨΕΥΔΗ τμήματαείναιμίαμόνο πρόταση ή ένα μπλοκ προτάσεων {}

Παράδειγμα:Να γραφεί πρόγραμμα που υπολογίζει το μέγιστο ανάμεσα σε τρεις ακέραιους #include <stdio.h< stdio.h> void main() { } int a,b,c; scanf( %d %d\n,&a); scanf( %d %d\n,&b); scanf( %d %d\n,&c); if (a>b) { } if (a>c) printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,a ); else printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,c ); else if (b>c) printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,b ); else printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,c );

Υποθετικός τελεστής Ο υποθετικός τελεστής (?:?:) αποτελείται από δύο σύμβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασμό συμβόλων και δεν ακολουθούν καμία από τις postfix, prefix ή infix σημειογραφίες. Όταν τα σύμβολα ή οι λέξεις του τελεστή είναι διάσπαρτα στους τελεστέους στους οποίους εφαρμόζεται ο τελεστής, λέμε ότι ο τελεστής είναι σε μεικτή σημειγραφία (mixfix notation).

Υποθετικός τελεστής (συνέχεια) Η έκφραση που σχηματίζει ο υποθετικός τελεστής έχει τη μορφή: εκφρ1 1? εκφρ2 2 : εκφρ3 Η τιμή της παραπάνω έκφρασης είναι η τιμή της εκφρ2, εάν η εκφρ1 είναι αληθής, αλλιώς είναι η τιμή της εκφρ3. Η εκφρ1 αποτελεί τη συνθήκη ελέγχου. Έτσι η έκφραση x>z? x : z έχει τιμή x, εάν το x>z είναι αληθές, διαφορετικά έχει τιμή z.

Παράδειγμα: Nα γραφεί κώδικας που βρίσκει το μεγαλύτερο δύο και τριών ακεραίων αριθμών και τον τυπώνει. Δύο αριθμοί: printf( maximum is %d\n,, (num1>num2)?num1:num2 ); Τρεις αριθμοί: max=(num1>num2?num1:num2) > num3? (num1>num2?num1:num2):num3; printf( maximum is %d\n,, max ); Προκύπτει ένας αριθμός και συγκρίνεται με τον num3. Εάν ισχύει η ανισότητα αυτός ο αριθμός θα τυπωθεί ως μέγιστος, αλλιώς ο num3.

Yπό συνθήκη διακλάδωση switch() switch(έκφραση έκφραση) { case (σταθ( σταθ.-έκφρ.. 1): 1 προτάσεις; break; case (σταθ( σταθ.-έκφρ.. 2): 2 προτάσεις; break; default: προτάσεις; break; } Όταν υπάρχουν πολλές ένθετες προτάσεις if ή elseif, υπάρχει δυσκολία στην ανάγνωση και καθυστέρηση στην εκτέλεση. Τότε προτιμάται η χρήση της switch() ().

switch() (συνέχεια) Ηπρότασηswitch επιτρέπει τον προσδιορισμό απεριόριστου αριθμού διαδρομών ανάλογα με την τιμή της έκφρασης. Υπολογίζεται η έκφραση και η τιμή της συγκρίνεται διαδοχικά με τις σταθερές εκφράσεις (σταθ.-έκφρ. 1, σταθ.-έκφρ. 2, ). Ο έλεγχος μεταφέρεται στις προτάσεις που είναι κάτω από τη σταθερά έκφραση με την οποία ισούται η τιμή της έκφρασης. Εάν δεν ισούται με καμία από τις σταθερές εκφράσεις, ο έλεγχος μεταφέρεται στις προτάσεις που ακολουθούν την ετικέτα default, εάν αυτή υπάρχει, αλλιώς στην πρόταση που ακολουθεί το σώμα της switch.

switch() (συνέχεια) Η πρόταση ελέγχου break, η οποία υποδηλώνει άμεση έξοδο από τη switch, είναι προαιρετική. Εάν αυτή λείπει, η εκτέλεση των προτάσεων που ακολουθούν την επιλεγείσα ετικέτα θα ακολουθήσει από την εκτέλεση και των προτάσεων και των επόμενων case ετικετών. Στην πράξη η break συναντάται σχεδόν πάντοτε, ακόμη και μετά τις προτάσεις τής default. Το τελευταίο γίνεται για να προστατευθούμε από το δύσκολο στην ανεύρεση σφάλμα που θα προκύψει από μελλοντική προσθήκη μίας νέας ετικέτας με ταυτόχρονη παράλειψη προσθήκης πριν από αυτή τής break.

switch() (συνέχεια) Η λειτουργία της switch διέπεται από το ακόλουθο σύνολο κανόνων: Κάθε case πρέπει να έχει μία int ή char σταθερά έκφραση. Δύο case δεν μπορούν να έχουν την ίδια τιμή. Οι προτάσεις κάτω από την ετικέτα default εκτελούνται όταν δεν ικανοποιείται καμία από τις case ετικέτες. Η default δεν είναι απαραίτητα η τελευταία ετικέτα. Οι case και default μπορούν να τοποθετηθούν με οποιαδήποτε σειρά. Η break μετά την τελευταία ετικέτα αποτελεί καλή τακτική, αν και δεν είναι απαραίτητη.

Παράδειγμα:Να γραφεί τμήμα κώδικα, το οποίο να δίνει τη δυνατότητα στο χρήστη να εισάγει δύο αριθμούς και στη συνέχεια να εκτελεί επί αυτών επιλεκτικά μία από τις τέσσερις αριθμητικές πράξεις Λύση: Χρησιμοποιώντας περιγράφεται ως εξής: δομημένα Ελληνικά, η διεργασία 1. πάρε δύο αριθμούς 2. ενημέρωσε το χρήστη για δυνατές επιλογές 3. πάρε την επιλογή του χρήστη 4. ανάλογα με την επιλογή 5. εκτέλεσε την αντίστοιχη πράξη 6. εμφάνισε το αποτέλεσμα 7. τερμάτισε Ο κώδικας του προγράμματος είναι ο ακόλουθος:

#include <stdio.h< stdio.h> #include <math.h< math.h> #define MY_ZERO 1E-5 #define ADD 1 #define SUB 2 #define MUL 3 #define DIV 4 main(){ float num1, num2,result; int choice, flag=0; printf( ( "\ngive" first number:"); scanf("%f",&num1 ); printf( ( "\ngive" second number:"); scanf("%f",&num2 ); printf( ( "\n" n Select one of the following:" ); printf( ( "\n\t\t\t" %d -> > + (addition)\n,add ); printf( ( "\n\t\t\t" %d -> - (subtraction)\n,sub ); printf( ( "\n\t\t\t" %d -> > * (multiplication)\n,mul ); printf( ( "\n\t\t\t" %d -> > / (division)\n,div ); scanf( ( "%d",&choice ); Κάθε μία από τις πράξεις αντιστοιχίζεται σε έναν ακέραιο

switch(choice){ case ADD: result=num1+num2; break; case SUB: result=num1-num2; num2; break; case MUL: result=num1*num2; break; case DIV: if (fabs(num2)>my_zero) result=num1/num2; // num2!= 0 else { printf( ( "\t\t" ERROR: division by 0" ); flag=1; } break; default: printf( ( "This selection is not supported" ); break; } // τέλος της switch if (!flag) printf( ( "\n\tresult" tresult: : %f\n",result% ); } // τέλος της main

Αποτελέσματα: Προγραμματισμός Ι