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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

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

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

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

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

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

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

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

ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

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

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

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

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

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

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

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

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

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

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

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C

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

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

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

4. Επιλογή και Επανάληψη

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

EΒ ΟΜΑ Α 3 Η. Άλλοι τελεστές καταχώρησης: += -= *= /= %= x += 5; σηµαίνει x = x + 5; k *= 7; σηµαίνει k = k * 7; sum %= 15; σηµαίνει sum = sum % 15;

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

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

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

Εισαγωγή στον Προγραμματισμό (με. τη C)

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

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

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

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

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

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΓΛΩΣΣΟΜΑΘΕΙΑ

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Εντολές ελέγχου ροής if, for, while, do-while

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Θέματα Προγραμματισμού Η/Υ

Transcript:

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

Οι Προτάσεις if και if-else if ( λογική έκφραση - expression) Πρόταση ή σύνολο προτάσεων (block) {.. if (λογική έκφραση - expression) Πρόταση ή σύνολο προτάσεων (block) {.. else Πρόταση ή σύνολο προτάσεων (block) {.. Ηλίας Κ. Σάββας Εισήγηση #3 4 Λογικοί Τελεστές Μικρότερο : Μεγαλύτερο: Μικρότερο ή ίσο: Μεγαλύτερο ή ίσο: Ίσο: Όχι ίσο (διάφορο): < > <= >= ==!= Ηλίας Κ. Σάββας Εισήγηση #3 5 Συσχέτιση Λογικών Εκφράσεων ΚΑΙ (σύζευξη) Η (διάζευξη) ΔΕΝ (άρνηση) &&! Ηλίας Κ. Σάββας Εισήγηση #3 6 2

Παράδειγμα (τεχνική) Πως μπορούμε να καταλάβουμε εάν ένας ακέραιος είναι άρτιος ή περιττός? if (a % 2 == 0) printf( \n ο %d είναι ΑΡΤΙΟΣ αριθμός, a); else printf( \n ο %d είναι ΠΕΡΙΤΤΟΣ αριθμός, a); Ηλίας Κ. Σάββας Εισήγηση #3 7 Άσκηση (τεχνική) Δεδομένων δύο μεταβλητών a, και b γράψτε κώδικα ο οποίος να αντιμεταθέτει τις τιμές τους (π.χ. εάν a=3 και b=4 τότε a b, : a=4, b=3): a=b; b=a; Λάθος! a=4, b=4! temp =a; a=b; b=temp; (temp: μία προσωρινή μεταβλητή για να αποθηκεύσουμε την τιμή του a), ή a=a+b; b=a-b; a=a-b; Ηλίας Κ. Σάββας Εισήγηση #3 8 Ένας Ακόμη Τύπος Δεδομένων char: Αναπαριστά έναν απλό χαρακτήρα, όπως: 'a', '7', '@', '?',... Δήλωση τέτοιου τύπου μεταβλητών: char a, b; Απόδοση τιμής: a = 'Q'; b = a; Χαρακτήρας μορφοποίησης: %c printf( %c, a);... scanf( %c, &a) Ηλίας Κ. Σάββας Εισήγηση #3 9 3

char Είσοδος: Έξοδος: scanf( %c, &a); a = getchar(); printf( %c, a); putchar(a); Ηλίας Κ. Σάββας Εισήγηση #3 10 Παράδειγμα Δεδομένου ενός γράμματος της αλφαβήτου, να γραφεί ο αντίστοιχος κώδικας που ελέγχει εάν είναι φωνήεν ή σύμφωνο. switch ( letter ) { case α' : case ε'...: printf( Φωνήεν ); break; case β' : case γ'...:printf( Σύμφωνο ); Δύσκολο? ΝΑΙ... Ας το σκεφτούμε λίγο Δηλαδή πρέπει να γράψουμε πάνω (γιατί?) από 24 if??? Όχι... Ευτυχώς!!! Ηλίας Κ. Σάββας Εισήγηση #3 11 Η Εντολή (πρόταση) switch switch (τιμή) /* μόνο int και char */ { case τιμή1: /* εκτέλεση κώδικα για περίπτωση τιμής 1 */ break; case τιμή2: /* εκτέλεση κώδικα για περίπτωση τιμής 2 */ break;... default: /* εκτέλεση κώδικα για κάθε άλλη περίπτωση */ Ηλίας Κ. Σάββας Εισήγηση #3 12 4

Χρήσιμες Παρατηρήσεις Εάν δεν υπάρχει η πρόταση break, όλες οι προτάσεις που ακολουθούν την περίπτωση στην τιμή που ταιριάζει θα εκτελεσθούν. Η πρόταση break σταματάει τον έλεγχο των υπολοίπων περιπτώσεων. Πολύπλοκη if πρόταση? Πιθανώς η switch απλοποιεί την λογική. Χρησιμοποιήστε την πρόταση switch για την εκτίμηση της απάντησης του χρήστη σε ένα μενού επιλογών. Χρησιμοποιήστε την πρόταση switch για την διαχείριση χαρακτήρων (και όχι μόνο). Ηλίας Κ. Σάββας Εισήγηση #3 13 Παραδείγματα... Εάν δεν υπάρχει η πρόταση break, όλες οι προτάσεις που ακολουθούν την περίπτωση στην τιμή που ταιριάζει θα εκτελεσθούν: /* Άρτιος Περιττός */ switch ( a % 2) { case 0 : printf( ΑΡΤΙΟΣ ); case 1 : printf( ΠΕΡΙΤΤΟΣ ); Εάν είναι ΑΡΤΙΟΣ ο κώδικας λειτουργεί λάθος! ΓΙΑΤΙ? Γιατί η πρόταση που ακολουθεί θα εκτελεσθεί επίσης! Ηλίας Κ. Σάββας Εισήγηση #3 14 Παραδείγματα... Εάν δεν υπάρχει η πρόταση break, όλες οι προτάσεις που ακολουθούν την περίπτωση στην τιμή που ταιριάζει θα εκτελεσθούν: /* Άρτιος Περιττός */ /* Άρτιος Περιττός */ switch ( a % 2) { case 0 : printf( ΑΡΤΙΟΣ ); case 1 : printf( ΠΕΡΙΤΤΟΣ ); switch ( a % 2) { case 0 : printf( ΑΡΤΙΟΣ ); break; case 1 : printf( ΠΕΡΙΤΤΟΣ ); Ηλίας Κ. Σάββας Εισήγηση #3 15 5

...Παραδείγματα... Πολύπλοκη if πρόταση? Χρήση της switch για να απλουστεύσει την λογική. char answer; printf( Απαντήστε με N ή Ο: "); scanf(" %c", &answer); switch (answer) { case ν': case Ν': printf("\nαπαντήσατε καταφατικά."); break; case ο': case Ο': printf("\nαπαντήσατε αρνητικά."); break; default: printf("\nδεν απαντήσατε σωστά..."); Ηλίας Κ. Σάββας Εισήγηση #3 16 Καλή Τεχνική Χρησιμοποιήστε την πρόταση switch για την εκτίμηση της απάντησης του χρήστη σε ένα μενού επιλογών. int Apantisi; printf("\nεπιλέξτε από 1-4: "); scanf("%d", &Apantisi); switch (Apantisi) { case 1: printf("\nεπιλέξατε 1\n"); break; case 2: printf(" Επιλέξατε 2\n"); break; case 3: printf(" Επιλέξατε 3\n"); break; case 4: printf(" Επιλέξατε 4\n"); Ηλίας Κ. Σάββας Εισήγηση #3 17 Επιπλέον Αριθμητικοί Τελεστές ++ (τελ. αύξησης) - - (τελ. μείωσης) Συνδυασμός τελεστών: @= += -= *= /= %= a++; a = a + 1; b--; b = b 1; a+=10; a=a+10; b-=x; b=b-x; c*=x+4; c=c*(x+4); d/=2; d = d / 2; Ηλίας Κ. Σάββας Εισήγηση #3 18 6

Αύξηση / Μείωση (int - char) a++; Αύξηση μετά ++a; Αύξηση πριν a--; Μείωση μετά --a; Μείωση πριν Μετά: χρήση της τρέχουσας τιμής και μετά αύξηση / μείωση της τιμής τους κατά 1. Πριν: Αύξηση / μείωση της τιμής τους κατά 1 και μετά χρήση της αλλαγμένης πλέον τιμής τους. Ηλίας Κ. Σάββας Εισήγηση #3 19 Συνδυασμός Τελεστών Αντί για a = a + 3; a += 3; προσθέτει την τιμή που υπάρχει δεξιά στην τρέχουσα τιμή της μεταβλητής αριστερά, Πέντε συνδυασμοί τελεστών: +=, -=, *=, /=, %= που αντιστοιχούν στις 5 αριθμητικές πράξεις, Παραδείγματα: b -= 20; b = b 20; c *= (a+b); c = c * (a+b); m /= 2; m = m / 2; Ηλίας Κ. Σάββας Εισήγηση #3 20 Παραδείγματα int a=2; int x=10; b=2*(a++); a=, b =? b=2*(++a); a=, b =? x *= (a++); x=?, a =? x *= (++a); x=?, a =? Ηλίας Κ. Σάββας Εισήγηση #3 21 7

Προσωρινή Μετατροπή Τύπου Δεδομένων (Type Conversion : Casting Method) int a=7; float b; b = a / 2; b=? b= (float) a / 2; b=? Η λύση είναι η χρήση μιας μεθόδου που ονομάζεται casting η οποία προσωρινά θεωρεί μια τιμή σαν διαφορετικού τύπου (από αυτόν που αρχικά δηλώθηκε). Η μέθοδος cast λειτουργεί εάν τοποθετήσουμε σε παρένθεση τον επιθυμητό τύπο δεδομένων ακριβώς μπροστά από την τιμή που θέλουμε να αλλάξουμε. Ηλίας Κ. Σάββας Εισήγηση #3 22 Γρήγορος Πίνακας Αναφοράς Σύνταξης Αριθμητικοί τελεστές + - * / % Αύξησης / Μείωσης τελεστές ++ -- Συνδυασμός τελεστών += -= *= /= %= Σύνταξη Παραδείγματα FPA = axia * 0.21; ypoloipo = a % 10; Mesi_timi = (a+b+c)/3; b++; b--; a += 10; b*=2; Casting (type) Mesi_timi = (float) (a+b+c)/3; Ηλίας Κ. Σάββας Εισήγηση #3 23 H Οδηγία #define (directive) Ορίζει μία σταθερά: #define FPA 0.23 #define Pi 3.14159 #define { Start #define End #define Onoma Kwstas #define X? Οι τιμές πλέον ΔΕΝ είναι δυνατόν να αλλαχτούν μέσα στο πρόγραμμα. Ηλίας Κ. Σάββας Εισήγηση #3 24 8

Παράδειγμα #include <stdio.h> #define Start { #define End #define Fpa 0.23 int main() Start int c = 23; float f; f = (9.0*c)/5.0+32.0; printf("\n\n Fahrenheit = %.2f\n\n", f); Fpa = 0.20; /* FATAL ERROR */ return 0; End Ηλίας Κ. Σάββας Εισήγηση #3 25 Άσκηση (3 λύσεις) Δεδομένου ενός αριθμού από 1 μέχρι 7, γράψτε ένα πρόγραμμα το οποίο να τυπώνει την αντίστοιχη ημέρα της βδομάδας (1 για Δευτέρα κλπ). Εάν ο αριθμός είναι εκτός των ορίων 17 τότε να εκτυπώνεται ένα μήνυμα λάθους. Ηλίας Κ. Σάββας Εισήγηση #3 26 Άσκηση (1) printf( \nεισαγωγή αριθμού από 1 μέχρι 7: ); scanf( %d, &n); switch (n) { case 1: printf( \nδευτέρα! ); break; case 7 : printf( \nκυριακή! ); break; default: printf( \nεκτός ορίων ); Ηλίας Κ. Σάββας Εισήγηση #3 27 9

Άσκηση (2) if (n==1) printf( \nδευτέρα! ); if (n==2) printf.... if (n<1 n>7) printf( \nεκτός ορίων ); Ηλίας Κ. Σάββας Εισήγηση #3 28 Άσκηση (3) if (n==1) printf( \nδευτέρα! ); else if (n==2) printf.. else if (n==3).. else if (n==7) printf( \nκυριακή! ); else printf( \nεκτός ορίων ); Ηλίας Κ. Σάββας Εισήγηση #3 29 Ασκήσεις... Γράψτε ένα πρόγραμμα το οποίο αφού διαβάζει 3 πραγματικούς αριθμούς (a, b, c): 1. Προσδιορίζει εάν αντιστοιχούν σε μήκη πλευρών τριγώνου (Χρησιμοποιήστε την τριγωνική ανισότητα: Το άθροισμα των μηκών οποιονδήποτε 2 πλευρών να είναι πάντα μεγαλύτερο από το μήκος της τρίτης πλευράς). 2. Εάν πράγματι αντιστοιχούν σε τρίγωνο να υπολογίσετε το εμβαδόν του (Emvado = t(t-a)(t-b)(t-c) όπου t=(a+b+c)/2) Ηλίας Κ. Σάββας Εισήγηση #3 30 10

...Ασκήσεις... Γράψτε ένα πρόγραμμα το οποίο να μετατρέπει μονάδες του Αμερικάνικου μετρικού συστήματος στο διεθνές μετρικό σύστημα. Ο χρήστης να μπορεί να επιλέγει μεταξύ των 1.Μήκος, 2.Όγκος, 3.Δύναμη. (1 πόδι=0.3048 μέτρα, 1 κυβικό πόδι = 0.00282 κυβικά μέτρα, and 1 pound = 4.4482 newtons). Το πρόγραμμα να λειτουργεί ως εξής Ηλίας Κ. Σάββας Εισήγηση #3 31 Ασκήσεις. Επιλέξτε μετατροπή μεταξύ των: 1 Μήκος, 2 Όγκος, 3 Δύναμη Χρησιμοποιείστε την πρόταση SWITCH! Εισαγωγή της επιλογής σας: 1 Πόδια: 3 3.00 πόδια είναι 0.9144 μέτρα Ηλίας Κ. Σάββας Εισήγηση #3 32...Ασκήσεις Εάν υποθέσουμε ότι οι αλφαβητικοί βαθμοί σε ένα μάθημα είναι A, B, C, D, και F και αντιστοιχούν στους αριθμούς 4, 3, 2, 1, και 0. Γράψτε ένα πρόγραμμα το οποίο να τυπώνει το αριθμητικό αντίστοιχο εάν ο χρήστης εισάγει το αλφαβητικό βαθμό. Οι προτάσεις <if> και <switch> λίγο πολύ είναι όμοιες αλλά μπορούμε να τα καταφέρουμε και χωρίς την <switch>. Είναι αυτό σωστό? Από την άλλη μεριά, μπορούμε να τα καταφέρουμε χωρίς καθόλου <if>? Δικαιολογήστε την απάντησή σας και γράψτε μία πρόταση με <if> που δεν μπορεί να γραφεί με <switch> ή αντίστροφα για να υποστηρίξετε την άποψή σας. Ηλίας Κ. Σάββας Εισήγηση #3 33 11

Επανάληψη: Βρόγχοι (Loop Statements). Γράψτε ένα πρόγραμμα όπου να εισάγονται μη αρνητικοί ακέραιοι αριθμοί από το πληκτρολόγιο και να υπολογίζει το άθροισμα και την μέση τιμή τους Το πλήθος των αριθμών που θα εισαχθούν είναι άγνωστο. Το πρόγραμμα να τερματίζει όταν εισαχθεί ο αριθμός -1. Ποιο μέρος του προγράμματος πρέπει να επαναλαμβάνεται?... int number, sum, counter; float average; printf( \nεισαγωγή μη αρνητικού αριθμού: ); scanf( %d, &number); If (number >= 0) { counter++; /* Ένας νέος αριθμός έχει εισαχθεί */ sum += number;... average = (float) sum / counter; printf( \nεισήχθησαν %d αριθμοί, counter); printf( \nμε άθροισμα = %d, sum); printf( \nκαι με μέσο όρο = %.2, average);... return 0; Ηλίας Κ. Σάββας Εισήγηση #3 34 Επανάληψη: Βρόγχοι Γράψτε ένα πρόγραμμα όπου να εισάγονται μη αρνητικοί ακέραιοι αριθμοί από το πληκτρολόγιο και να υπολογίζει το άθροισμα και την μέση τιμή τους Το πλήθος των αριθμών που θα εισαχθούν είναι άγνωστο. Το πρόγραμμα να τερματίζει όταν εισαχθεί ο αριθμός -1. Ποιο μέρος του προγράμματος πρέπει να επαναλαμβάνεται?... int number, sum, counter; float average; printf( \nεισαγωγή μη αρνητικού αριθμού: ); scanf( %d, &number); If (number >= 0) { counter++; /* Ένας νέος αριθμός έχει εισαχθεί */ sum += number;... average = (float) sum / counter; printf( \nεισήχθησαν %d αριθμοί, counter); printf( \nμε άθροισμα = %d, sum); printf( \nκαι με μέσο όρο = %.2, average);... return 0; Ηλίας Κ. Σάββας Εισήγηση #3 35 Επανάληψη: Βρόγχοι #include <stdio.h> int main() { int number, sum, counter; float average; while (number>=0) { printf( \n Εισαγωγή μη αρνητικού αριθμού : ); scanf( %d, &number); If (number >= 0) { counter++; /* Ένας νέος αριθμός έχει εισαχθεί */ sum += number; average = (float) sum / counter; printf( \ Εισήχθησαν %d αριθμοί, counter); printf( \nμε άθροισμα = %d, sum); printf( \n και με μέσο όρο = %.2, average); return 0; Σωστό? Ας το τρέξουμε για να το δοκιμάσουμε... Ηλίας Κ. Σάββας Εισήγηση #3 36 12

Εκτέλεση του Προγράμματος Εισαγωγή μη αρνητικού αριθμού :1 Εισαγωγή μη αρνητικού αριθμού : 3 Εισαγωγή μη αρνητικού αριθμού : 5 Εισαγωγή μη αρνητικού αριθμού : -1 Εισήχθησαν 1933363 αριθμοί (3) Με άθροισμα = 134513940 (9) Και μέση τιμή = 69.58 (3.00) ΓΙΑΤΙ??? Ηλίας Κ. Σάββας Εισήγηση #3 37 Οι Αρχικές Τιμές είναι ΑΠΑΡΑΙΤΗΤΕΣ #include <stdio.h> int main() { int number=0, sum=0, counter=0; float average; while (number>=0) { printf( \n Εισαγωγή μη αρνητικού αριθμού : ); scanf( %d, &number); If (number >= 0) { counter++; /* Ένας νέος αριθμός έχει εισαχθεί */ sum += number; average = (float) sum / counter; printf( \ Εισήχθησαν %d αριθμοί, counter); printf( \nμε άθροισμα = %d, sum); printf( \n και με μέσο όρο = %.2, average); return 0; Ηλίας Κ. Σάββας Εισήγηση #3 38 Εκτέλεση του Προγράμματος Εισαγωγή μη αρνητικού αριθμού : 1 Εισαγωγή μη αρνητικού αριθμού : 3 Εισαγωγή μη αρνητικού αριθμού : 5 Εισαγωγή μη αρνητικού αριθμού : -1 Εισήχθησαν 3 αριθμοί Με άθροισμα = 9 Και μέση τιμή = 3.00 Ηλίας Κ. Σάββας Εισήγηση #3 39 13

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