Υποθετικός τελεστής Ο υποθετικός τελεστής (?:) αποτελείται από δύο σύμβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασμό συμβόλων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
Προγραμματισμός Ι Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες.
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
Προγραμματισμός Ι Παράδειγμα: Παράδειγμα:Να γραφεί πρόγραμμα που να δέχεται ως είσοδο κείμενο, να απαριθμεί τις εμφανίσεις των ψηφίων 0-9, τα λευκά διαστήματα.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
Προγραμματισμός Ι Παράδειγμα: Παράδειγμα: Να γραφεί πρόγραμμα που επιλύει δευτεροβάθμιες εξισώσεις. Να δέχεται ως είσοδο τους συντελεστές της εξίσωσης.
Τύποι πραγματικών αριθμών
Εντολες Επιλογης (Selection)
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων, Σημασιολογικές Ενέργειες.
Βρόχος με συνθήκη εισόδου στη C, οδηγούμενος από μετρητή: for
ΜΑΘ-3122/106 Γλώσσα Προγραμματισμού
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Τελεστές ανάθεσης (assignment)
ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΑΘΗΜΑ 4. ΑΚΟΛΟΥΘΙΑΚΗ ΕΚΤΕΛΕΣΗ ΠΡΟΤΑΣΕΩΝ ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n.
ΤΕΛΕΣΤΕΣ - ΕΚΦΡΑΣΕΙΣ ΜΑΘΗΜΑ 4.
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ ΜΑΘΗΜΑ 3.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Τελεστές (operators) – Εκφράσεις (expressions)
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Ενότητα Α.4. Δομημένος Προγραμματισμός
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Eντολες Επαναληψης - Βροχοι (repetition and loops)
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Μετατροπή Εκφράσεων σε C
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
9-1 ΜΑΘΗΜΑ 9 ο Δυαδικά Δένδρα, Διάσχιση Δυαδικών Δένδρων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αλφαριθμητικά (Strings)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 4: Επαναληπτικές δομές. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής. Τμήμα Μηχανικών.
Προτάσεις, εκφράσεις, τελεστές Βασικά στοιχεία ελέγχου προγράμματος
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός Ι
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Ενισχυτική διδασκαλία
ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ Η εντολή if if ( παράσταση) εντολή επόμενη εντολή.
Δομές διακλάδωσης, επαναλήψεις, μέθοδοι
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Εισαγωγή στον Προγ/μό Υπολογιστών
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
Δομή Επιλογής Μάθημα 4ο Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τάξη Γ Οικονομίας & Πληροφορικής Θετικών Σπουδών 2ο Γενικό Λύκειο Αλιβερίου |
Εντολές και δομές αλγορίθμου
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΑΣΚΗΣΕΙΣ C.
Μεταγράφημα παρουσίασης:

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

Υποθετικός τελεστής (συνέχεια) Η έκφραση που σχηματίζει ο υποθετικός τελεστής έχει τη μορφή: εκφρ1 ? εκφρ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() { case (σταθ.-έκφρ. 1): προτάσεις; break; case (σταθ.-έκφρ. 2): προτάσεις; default: προτάσεις; } Όταν υπάρχουν πολλές ένθετες προτάσεις 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> #include <conio.h> #define ADD 1 #define SUB 2 #define MUL 3 #define DIV 4 void main(){ float num1, num2,result; int choice; printf( "\nGive first number:"); scanf("%f",&num1 ); printf( "\nGive second number:"); scanf("%f",&num2 ); printf( "\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 1: result=num1+num2; break; case 2: result=num1-num2; case 3: result=num1*num2; case 4: if (num2) result=num1/num2; // num2 != 0 else printf( "\t\t ERROR: division by 0" ); default: printf( "This selection is not supported" ); } // τέλος της switch printf( "\n\tResult: %f\n",result ); } // τέλος της main

Αποτελέσματα: