1 Ολυμπιάδα Πληροφορικής Μάθημα 2
2 Στόχοι μαθήματος Αριθμητικοί– Λογικοί Τελεστές Η εντολή IF
Αριθμητικοί Τελεστές + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση % Υπόλοιπο π.χ. 3%2=1, 2%2=0, 0%2=0, 1%2=1 Η πράξη του υπολοίπου εκτελείται μόνο με ακέραιους αριθμούς. 3
Σημείωση Αν κάνετε πράξεις μεταξύ ακεραίων μεταβλητών το αποτέλεσμα θα είναι ακέραιος. int a=3,b=2; float c; c=a/b; Θα τυπώσει 1 και όχι 1.5. Θα πρέπει να γίνει μετατροπή του ενός αριθμού σε float. c=float(b)/a; 4
Λογικοί τελεστές Το αποτέλεσμα μιας λογικής πράξης είναι True ή False. Τελεστές And && Or || Not ! >, =,!=,== 5
Λογικοί Τελεστές XYX && YX || Y TRUE FALSE TRUE FALSETRUEFALSETRUE FALSE 6 Παραδείγματα (3>2) && (4>2) =True (4!=2)||(3<2) = True (7>20) && (3>1) = False (100<100)||(10 <1)=False
Λογικοί Τελεστές Ο τελεστής not Λειτουργεί σαν αντιστροφέας. !(5>2)=false !(5<2)=true 7
Προγράμματα Δομή Διακλάδωσης Στην δομή διακλάδωσης το πρόγραμμα πρέπει να ελέγξει μια λογική πρόταση, ώστε να αποφασίσει την πορεία που θα ακολουθήσει. 8
Σύνταξη εντολής if if(λογική πρόταση){ εντολές } Else { εντολές } Σημείωση: Σε περίπτωση που έχουμε μόνο μια εντολή οι αγκύλες μπορούν να παραβλέπονται. 9
Πότε θα εμφανιστεί το μήνυμα; if (x==2); cout<<“Hello!!!”; 10
Τελεστή υπό συνθήκη If (alpha < beta) min=alpha; else min=beta; 11 Μπορώ να γράψω: min = (alpha<beta) ? alpha : beta;
Τι θα τυπώσει; #include using namespace std; int main() { int a,b,c; cout<<“Δώστε a,b και c:\n”; cin>>a>>b>>c; if (a==b) if (b==c) cout<<“a,b και c είναι ίδια”; else cout<<“a και b είναι διαφορετικά”; return 0; } 12
Παράδειγμα 1 Να δημιουργήσετε το πρόγραμμα που δέχεται έναν ακέραιο αριθμό, ελέγχει αν είναι άρτιος και τυπώνει αντίστοιχο μήνυμα. 13
Παράδειγμα 2 Ένα μουσείο πουλά τα εισιτήρια του προς 10 ευρώ. Το μουσείο κάνει έκπτωση 2 ευρώ το κάθε εισιτήριο κάθε Σάββατο και Τρίτη. Να δημιουργήσετε το πρόγραμμα που διαβάζει από το αρχείο tickets.in των αριθμών των ατόμων που θέλουν να αγοράσουν εισιτήριο καθώς και την μέρα (1 Δευτέρα, 2 Τρίτη κλπ). Το πρόγραμμα θα τυπώνει στο αρχείο tickets.out το ποσό που θα πρέπει να πληρωθεί. Παράδειγμα Εισόδου Παράδειγμα Εξόδου 1 80 Παράδειγμα Εισόδου Παράδειγμα Εξόδου
Παράδειγμα 2 15
Παράδειγμα 3 Ένας μαθητής χαρακτηρίζεται με βάση το βαθμό του όπως φαίνεται στον πιο κάτω πίνακα Να γράψετε το πρόγραμμα που διαβάζει από το αρχείο student.in το βαθμό και τυπώνει στο αρχείο student.out το χαρακτηρισμό. 16 ΒαθμόςΧαρακτηρισμός 19-20Άριστος 16-18Πολύ Καλός 13-15Καλός 10-12Μέτριος 1-9Κακός
Παράδειγμα 3 #include using namespace std; int main(){ int v; FILE *fin,*fout; fin=fopen("student.in","r"); fout=fopen("student.out","w"); fscanf(fin,"%d",&v); if(v>=19) fprintf(fout,"Aristos"); else if(v>=16) fprintf(fout,"Polu kalos"); else if(v>=13) fprintf(fout,"Kalos"); else if(v>=10) fprintf(fout,"Metrios"); else fprintf(fout,"Kakos"); fclose(fin); fclose(fout); return 0; } 17