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

Σχετικά έγγραφα
Γλώσσα Προγραμματισμού C

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

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

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

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

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

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

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

Εισαγωγή στο προγραμματισμό Η/Υ C++ (Orwell Dev-C++)

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Οντοκεντρικός Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

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

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

Δεδομένα, Τύποι και Τιμές

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

Ηλεκτρονικοί Υπολογιστές

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

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

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Προγραμματισμός Ι (ΗΥ120)

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

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

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

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

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

5 &6. Τύποι δεδομένων, τελεστές και

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

Δεδομένα, τελεστές, είσοδος/έξοδος

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Εισαγωγή στη γλώσσα προγραμματισμού C++

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Transcript:

Προγραμματισμός ΗΥ: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas Γλώσσα Προγραμματισμού C Εισήγηση #2 Είσοδος/Έξοδος (Input/Output), Αριθμητική με την C, Εισαγωγή στις εντολές (προτάσεις) ελέγχου (conditional statements). Ηλίας Κ. Σάββας Εισήγηση #2 2 Αριθμητικοί Τελεστές Πρόσθεση + Αφαίρεση Πολ/μός * Διαίρεση / Ακέραιο υπόλοιπο % 5+3 12-5 3*5 6/3, 3/2, 3.0/2.0 3%2 (=1) Ηλίας Κ. Σάββας Εισήγηση #2 3 1

Ακέραιη Διαίρεση και Υπόλοιπο int a=10, b=4, c; c = a / b; c=2 Ακέραιο Υπόλοιπο: Η τιμή του αποτελέσματος της πράξης a ακέραιο υπόλοιπο b βρίσκεται αν πάρουμε το υπόλοιπο μετά την διαίρεση του a με το b; c = a % b; c = 2 Προσοχή όμως: Εάν ισχύει float a=10.0, b = 4.0, c; c = a / b; c = 2.5! Ηλίας Κ. Σάββας Εισήγηση #2 4 Αριθμητική Επιτρέπεται η χρήση ΜΟΝΟ παρενθέσεων, Προτεραιότητα Πράξεων: Παρενθέσεις, Πολλαπλασιασμοί και Διαιρέσεις, Προσθέσεις και Αφαιρέσεις. Ισοδύναμες Πράξεις??? Από Αριστερά προς τα Δεξιά Ηλίας Κ. Σάββας Εισήγηση #2 5 Παραδείγματα x+y 2a a a b 2 ( x y) b 4 Ηλίας Κ. Σάββας Εισήγηση #2 6 2

Παραδείγματα x +y 2a (x+y)/(2*a) a a b 2 ( x y) b 4 2+a/b-((a+b)/4)*(x+y) ή 2+a/b-(a+b)*(x+y)/4 Ηλίας Κ. Σάββας Εισήγηση #2 7 Προσδιοριστές Οι προσδιοριστές (identifiers) είναι μία οντότητα στο πρόγραμμα η οποία αποτελείται από ένα σύνολο γραμμάτων, αριθμών και τον ειδικό χαρακτήρα _ (κάτω παύλα - underscore), Ένα γράμμα ή η κάτω παύλα πρέπει να είναι ο πρώτος χαρακτήρας ενός προσδιοριστή, Υπάρχει διαφοροποίηση των πεζών και κεφαλαίων γραμμάτων (a A), Επιλέξτε προσδιοριστές οι οποίοι να έχουν κάποια μνημονική αξία έτσι ώστε να συμβάλλουν στην εύκολη κατανόηση των προγραμμάτων!!! Ηλίας Κ. Σάββας Εισήγηση #2 8 Προσδιοριστές Μεταβλητές: da, b, sum, sum1, velocity, vat, force, b12, a1b Αλλά όχι 1a, 2@, s& Case sensitive a A Δήλωση μεταβλητών: Ακέραιες (int, short, long), Πραγματικοί Αριθμοί (float, double) Ηλίας Κ. Σάββας Εισήγηση #2 9 3

Λέξεις Κλειδιά (Keywords - reserved words) 1) auto, 2) break;, 3) case, 4) char, 5) const, 6) continue, 7) default, 8) do, 9) double, 10) else, 11) enum, 12) extern, 13) float, 14) for, 15) goto, 16) if, 17) int, 18) long, 19) register, 20) return, 21) short, 22) signed, 23) sizeof, 24) static, 25) struct, 26) switch, 27) typedef, 28) union, 29) unsigned, 30) void, 32) volatile, 32) while. Ηλίας Κ. Σάββας Εισήγηση #2 10 Έξοδος (Output): printf Εκτύπωση (και μορφοποίηση) μεταβλητών: Ακέραιοι %d, %nd printf( %10d, a); Πραγματικοί %f, %.mf, %n.mf (%10.2f) Παράδειγμα: printf( %5.1f, x); n: Σύνολο χαρακτήρων (προαιρετικό) m: Πλήθος επιθυμητών δεκαδικών ψηφίων Επομένως: n-m-1 πλήθος ακεραίων ψηφίων (1 θέση για την υποδιαστολή) Ηλίας Κ. Σάββας Εισήγηση #2 11 printf Εάν υποθέσουμε: x=3, y=3.14159 printf( %5d, %10.4f, x,y) ----3----3.1415 printf( %.2f, y) 3.14 Ηλίας Κ. Σάββας Εισήγηση #2 12 4

Αθροίζοντας Δύο Ακεραίους int main() { } int a=3, b=7, sum; sum = a+b; printf( \n Άθροισμα=%d\n,sum); return 0; Πρόβλημα? ΝΑΙ!!! Προσθέτει πάντα τους ίδιους αριθμούς. Ηλίας Κ. Σάββας Εισήγηση #2 13 Βελτιώνοντας το Πρόγραμμα int main() { int a, b, sum; /* και όχι a=3, b=7 */ printf( \n Εισαγωγή 2 ακεραίων: ); scanf( %d%d,&a,&b); sum = a+b; printf( \n Άθροισμα=%d\n, sum); return 0; } Ηλίας Κ. Σάββας Εισήγηση #2 14 Βελτιώθηκε? ΝΑΙ: Τώρα είναι ένα πιο γενικό πρόγραμμα γιατί: Προσθέτει 2 οποιουσδήποτε ακεραίους και όχι πάντα τους προκαθορισμένους ίδιους, Είσοδος από τον χρήστη (πληκτρολόγιο): scanf Ηλίας Κ. Σάββας Εισήγηση #2 15 5

Είσοδος: scanf Εισαγωγή δεδομένων από τον χρήστη (πληκτρολόγιο) όταν το πρόγραμμα εκτελείται: scanf Μορφοποίηση μεταβλητών εισόδου: %d για ακεραίους (int), %f για πραγματικούς (float). scanf( %d%f%d, &a, &b, &c); Μα τι είναι πάλι αυτό το σύμβολο & (σύμβολο διεύθυνσης μεταβλητής)? Ηλίας Κ. Σάββας Εισήγηση #2 16 Παράδειγμα Δεδομένης μιας απόστασης σε μέτρα, γράψτε ένα πρόγραμμα να την μετατρέπει σε ίντσες (1 μέτρο = 39.37 ίντσες) Ανάλυση: 1) Δεδομένα εισόδου: Μέτρα (m) 2) Επεξεργασία: Υπολογισμός της μετατροπής σε ίντσες, i = m * 39.37 (προσοχή: να μην ξεχάσουμε να δηλώσουμε τις μεταβλητές i και m) 3) Έξοδος: ίντσες (i) Ηλίας Κ. Σάββας Εισήγηση #2 17 Πρόγραμμα /* Μετατροπή μέτρων σε ίντσες */ int main() { float m; /* Μέτρα */ float i; /* Ίντσες */ printf( \nαπόσταση σε μέτρα : ); scanf( %f,&m); i = m * 39.37; /* τύπος μετατροπής */ printf( \nη ίδια απόσταση σε ίντσες είναι %.2f\n,i); return 0; } Ηλίας Κ. Σάββας Εισήγηση #2 18 6

Σχόλια /* */ Τα σχόλια σε ένα πρόγραμμα είναι χρήσιμα και ΑΠΑΡΑΙΤΗΤΑ γιατί: Κάνουν το πρόγραμμα κατανοητό και από άλλους (και όχι μόνο ), Περιγράφουν το νόημα των μεταβλητών, Εξηγούν τύπους, Περιγράφουν αλγόριθμους, ΓΕΝΙΚΑ ΠΕΡΙΓΡΑΦΟΥΝ ΚΑΙ ΕΞΗΓΟΥΝ ΟΛΟ ΤΟ ΠΡΟΓΡΑΜΜΑ! Ηλίας Κ. Σάββας Εισήγηση #2 19 Άλλο Ένα Πρόγραμμα.. Δεδομένων (από τον χρήστη πληκτρολόγιο) το μήκος των δύο πλευρών ενός ορθογωνίου, γράψτε ένα πρόγραμμα που να υπολογίζει (και εκτυπώνει) την περίμετρο και το εμβαδόν του. a Area=a x b Perimeter=2 x (a + b) b Ηλίας Κ. Σάββας Εισήγηση #2 20 Ανάλυση 1) Δεδομένα Εισόδου: Το μήκος των δύο πλευρών του ορθογωνίου (ας τις ονομάσουμε a και b) 2) Επεξεργασία: 1) Υπολογισμός: Εμβαδόν (Area=a*b) 2) Υπολογισμός: Περίμετρος (Perimeter=2*(a+b)). Προσοχή: Πρέπει να δηλώσουμε ΚΑΙ τις μεταβλητές Area και Perimeter 3) Έξοδος: Area και Perimeter Ηλίας Κ. Σάββας Εισήγηση #2 21 7

Και το Πρόγραμμα int main() { } int a, b, Area, Perimeter; printf( \nεισαγωγή των 2 πλευρών: ); scanf( %d%d,&a, &b); Area = a * b; Perimeter = 2 * (a + b); printf( \nεμβαδόν = %10d, Area); printf( \nπερίμετρος = %10d, Perimeter); return 0; Ηλίας Κ. Σάββας Εισήγηση #2 22 Δομή Ενός Προγράμματος int main() { int a, b, Area, Perimeter; printf( \nεισαγωγή των 2 πλευρών: ); scanf( %d%d,&a, &b); Area = a * b; Perimeter = 2 * (a + b); printf( \nεμβαδόν = %10d, Area); printf( \nπερίμετρος = %10d, Perimeter); return 0; } 1. #include 2. int main() 3. { 4. } 1. Δηλώσεις; 2. Δεδομένα Εισόδου; 3. Επεξεργασία; 4. Έξοδος; 5. return 0; Ηλίας Κ. Σάββας Εισήγηση #2 23 Ασκήσεις Δεδομένης (από τον χρήστη) της ακτίνας R ενός κύκλου, γράψτε ένα πρόγραμμα που να υπολογίζει και εκτυπώνει το εμβαδόν και την περίμετρό του (Perimeter=2πR, Area=πR 2, π=3.14159). Δεδομένου ενός τριψήφιου ακεραίου (x) μπορούμε να διαχωρίσουμε τα ψηφία του εφαρμόζοντας αριθμητική ακεραίων (διαιρέσεις και υπόλοιπα) ως εξής: h=x/100 εκατοντάδες, d=(x-h*100)/10 δεκάδες, u=(x-h*100)%10 μονάδες. Ηλίας Κ. Σάββας Εισήγηση #2 24 8

Αριθμητικό Παράδειγμα 263 263 / 100 = 2 263 2 * 100 = 63 63 / 10 = 6 63 % 10 = 3 Γράψτε ένα πρόγραμμα το οποίο να διαχωρίζει και εκτυπώνει τα ψηφία ενός δεδομένου τριψήφιου ακέραιου. Ηλίας Κ. Σάββας Εισήγηση #2 25 Ασκήσεις Γράψτε ένα πρόγραμμα το οποίο εφαρμόζοντας αριθμητική ακεραίων (διαιρέσεις και υπόλοιπα) να μετατρέπει δεδομένα δευτερόλεπτα σε λεπτά και δευτερόλεπτα. Εάν για παράδειγμα εισαχθούν 123 δευτερόλεπτα, το πρόγραμμα να εκτυπώσει: 123 δευτερόλεπτα ισοδυναμούν με 2 λεπτά και 3 δευτερόλεπτα. Τροποποιήστε το προηγούμενο πρόγραμμα ώστε τα δευτερόλεπτα να μετατρέπονται σε ώρες, λεπτά και δευτερόλεπτα: 7384 δευτερόλεπτα ισοδυναμούν με 2 ώρες, 3 λεπτά και 4 δευτερόλεπτα. Ηλίας Κ. Σάββας Εισήγηση #2 26 Άλλο Ένα Πρόγραμμα... Αλλά με Πρόβλημα... Γράψτε ένα πρόγραμμα που να διαιρεί 2 πραγματικούς αριθμούς. Τι είναι Λάθος? Τι γίνεται αν b=0? Το πρόγραμμα θα σπάσει! int main() { float a, b, c; printf( \nεισαγωγή 2 αριθμών: ); scanf( %f%f, &a, &b); c = a / b; printf( \nαποτέλεσμα = %.2f, c); return 0; } Ηλίας Κ. Σάββας Εισήγηση #2 27 9

Σπάζοντας την Σειρά... Γράψτε ένα πρόγραμμα που να διαιρεί 2 πραγματικούς αριθμούς. Οι εντολές έλεγχου μπορούν να βοηθήσουν!!= σημαίνει ΔΙΑΦΟΡΟ (όχι ίδιο) int main() { float a, b, c; printf( \n Εισαγωγή 2 αριθμών : ); scanf( %f%f, &a, &b); } If (b!= 0 ) { c = a / b; printf( \nαποτέλεσμα=%.2f, c); } else printf( \n Διαίρεση με 0 ); return 0; Ηλίας Κ. Σάββας Εισήγηση #2 28 Οι Προτάσεις if και if-else if ( λογική έκφραση - expression) Πρόταση ή σύνολο προτάσεων (block) {..} if (λογική έκφραση - expression) Πρόταση ή σύνολο προτάσεων (block) {..} else Πρόταση ή σύνολο προτάσεων (block) {..} Ηλίας Κ. Σάββας Εισήγηση #2 29 Λογικοί Τελεστές Μικρότερο : Μεγαλύτερο: Μικρότερο ή ίσο: Μεγαλύτερο ή ίσο: Ίσο: Όχι ίσο (διάφορο): < > <= >= ==!= Ηλίας Κ. Σάββας Εισήγηση #2 30 10

Συσχέτιση Λογικών Εκφράσεων ΚΑΙ (σύζευξη) Η (διάζευξη) ΔΕΝ (άρνηση) &&! Ηλίας Κ. Σάββας Εισήγηση #2 31 Παραδείγματα... Εκτύπωση μεγαλύτερου αριθμού: if (a>b) printf( %d, a); else print( %d, b) Ηλίας Κ. Σάββας Εισήγηση #2 32... Παραδείγματα... Σωστή σειρά αριθμών (φθίνουσα): if (a>b && b>c) printf( \nσωστή σειρά... ); else printf( \nόχι σωστή σειρά... ); Ηλίας Κ. Σάββας Εισήγηση #2 33 11

Παραδείγματα Λύνοντας την Εξίσωση ax+b=0 if (a==0 && b==0) printf( \nάπειρες Λύσεις ); else if (a==0 && b!=0) printf( \n Καμία Λύση ); else { x = -b / a; printf( \n Η Λύση είναι, x=%.2f, x); } Ηλίας Κ. Σάββας Εισήγηση #2 34 Σημαντική Τεχνική Δεδομένων τριών αριθμών να βρεθεί και εκτυπωθεί ο μεγαλύτερος (μικρότερος) Δύο μέθοδοι: Ηλίας Κ. Σάββας Εισήγηση #2 35 Σημαντική Τεχνική <A> if (a>b && a>c) max=a; else If (b>c && b>a) max = b; else max = c; <B> max = a; if (b>max) max = b; If (c>max) max = c; <B>:Απλό και καθαρό! <A>: Περίπλοκο? Και αν είχαμε πάνω από 3 αριθμούς? Ηλίας Κ. Σάββας Εισήγηση #2 36 12

Το Header File <math.h> pow(x,y): x υψωμένο στο y x y sqrt(x): τετραγωνική ρίζα του x fabs(x): απόλυτη τιμή sin(x): ημίτονο cos(x): συνημίτονο tan(x): εφαπτομένη. #include <math.h>... x = sqrt(9); x= 9 y=sqrt(a*b+2); y= (a*b+2) a = pow(2,3); a=2 3 b = sin( 7*z); Ηλίας Κ. Σάββας Εισήγηση #2 37 Ασκήσεις... Ένα έτος είναι δίσεκτο όταν ισχύει μία από τις ακόλουθες δύο συνθήκες: 1) εάν διαιρείται ακριβώς με το 4, αλλά όχι με το100, ή 2) διαιρείται ακριβώς με το 400. Γράψτε ένα πρόγραμμα το οποίο να προσδιορίζει εάν ένα δεδομένο έτος είναι ή όχι δίσεκτο. Γράψτε ένα πρόγραμμα το οποίο να επιλύει την εξίσωση δευτέρου βαθμού (ax 2 +bx+c=0). Ηλίας Κ. Σάββας Εισήγηση #2 38... Ασκήσεις Η απόσταση δύο σημείων (x1,y1) και (x2,y2) σε ένα Καρτεσιανό επίπεδο δίνεται από τον τύπο d= (x1-x2) 2 +(y1-y2) 2. Γράψτε ένα πρόγραμμα το οποίο να υπολογίζει και εκτυπώνει την απόσταση δύο σημείων που εισάγονται από τον χρήστη (πληκτρολόγιο). Ηλίας Κ. Σάββας Εισήγηση #2 39 13

Τέλος της #2 Εισήγησης Ερωτήσεις??? Χρησιμοποιήστε το email εάν θέλετε να με ρωτήσετε οτιδήποτε: savvas@teilar.gr Σημειώσεις Μαθήματος (και όχι μόνο): http://e-class.teilar.gr/ Ηλίας Κ. Σάββας Εισήγηση #2 40 14