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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Α. 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 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

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

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

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

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

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

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

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

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

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

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

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

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

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

EΒ ΟΜΑ Α 4 Η. οµές επανάληψης while και do while

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

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

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

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

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

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

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

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

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

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

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

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

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

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

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

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

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

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

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

Δομές Επανάληψης. Εισαγωγή στη C++

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή

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

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

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

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

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

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

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

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

Διάγραμμα Ροής. Σελίδα 1 από 10

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

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

Προγραμματισμός I (Θ)

Ασκήσεις & παραδείγματα για επανάληψη

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

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

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

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

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

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

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

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

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

Transcript:

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas Γρήγορος Πίνακας Αναφοράς Σύνταξης if-else switch Σύνταξη if (λογική έκφραση) πρόταση (εις) (λογική έκφραση =ΑΛΗΘΗΣ); else πρόταση (εις) (λογική έκφραση =ΨΕΥΔΗΣ); switch (τιμή ελέγχου) case τιμή 1: πρόταση (εις); break; case τιμή 2: πρόταση (εις); break; default : πρόταση (εις); break; Παραδείγματα if (a>b) c=(a+b); printf( \n c = %d, c); else printf ( \nκαμία ενέργεια ); switch (traffic_light) case Κ : case κ : printf( \nκοκκινο---σταματήστε ); break; case Π : case π : printf( \nπρασινο---περάστε ); break; Ηλίας Κ. Σάββας Εισήγηση #4 2 Γλώσσα Προγραμματισμού C Εισήγηση #4 Επαναληπτικές δομές: while, do-while, for. Ηλίας Κ. Σάββας Εισήγηση #4 3 1

Η Πρόταση while Επιβάλει την επανάληψη μίας ή και περισσοτέρων προτάσεων όσο η έκφραση ελέγχου παραμένει ΑΛΗΘΗΣ: while (έκφραση ελέγχου) πρόταση 1; πρόταση 2; πρόταση N; Ηλίας Κ. Σάββας Εισήγηση #4 4 Παράδειγμα counter = 0; /* μετρητής */ while (counter < 11) a = counter * counter; printf( \n %d : %d, counter, a); counter++; printf( \n\n Ο μετρητής τώρα είναι %d\n, counter); Ηλίας Κ. Σάββας Εισήγηση #4 5 Πρόγραμμα: Τρέχων Άθροισμα Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα σύνολο αριθμών από το πληκτρολόγιο και να εμφανίζει το τρέχων άθροισμα τους. Το πρόγραμμα να τερματίζει όταν εισαχθεί ο αριθμός 0. Ηλίας Κ. Σάββας Εισήγηση #4 6 2

Λύση Int main() int total=0, num=1; while (num!=0) printf( \nπαρακαλώ δώστε έναν αριθμό (0 για τέλος): ); scanf( %d, &num); total += num; printf( \nτρέχων άθροισμα %d, total); printf( \n\nτο τελικό άθροισμα είναι %d\n\n, total); Ηλίας Κ. Σάββας Εισήγηση #4 7 Ο Βρόγχος do-while Παρόμοια με τον βρόγχο του while, ο do-while βρόγχος ελέγχει την έκφραση ελέγχου μετά την εκτέλεση των προτάσεων που περιέχονται στον βρόγχο. do πρόταση 1; πρόταση 2; πρόταση N; while (έκφραση ελέγχου); Ηλίας Κ. Σάββας Εισήγηση #4 8 Παράδειγμα counter = 0; /* μετρητής */ do a = counter * counter; printf( \n %d : %d, counter, a); counter++; while (counter < 11); printf( \n\n Ο μετρητής τώρα είναι %d\n, counter); Ηλίας Κ. Σάββας Εισήγηση #4 9 3

Πρόγραμμα: Τρέχων Άθροισμα Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα σύνολο αριθμών από το πληκτρολόγιο και να εμφανίζει το τρέχων άθροισμα τους. Το πρόγραμμα να τερματίζει όταν εισαχθεί ο αριθμός 0. Ηλίας Κ. Σάββας Εισήγηση #4 10 Λύση Int main() int total=0, num; do printf( \nπαρακαλώ δώστε έναν αριθμό (0 για τέλος): ); scanf( %d, &num); total += num; printf( \n Τρέχων άθροισμα %d, total); while (num!=0); printf( \n\n Το τελικό άθροισμα είναι %d\n\n, total); while (num!=0) printf( \nπαρακαλώ δώστε έναν αριθμό (0 για τέλος): ); scanf( %d, &num); total += num; printf( \n Τρέχων άθροισμα %d, total); Ηλίας Κ. Σάββας Εισήγηση #4 11 Η Πρόταση for Εκτελεί μία ή περισσότερες προτάσεις για ένα προκαθορισμένο αριθμό: for (αρχική έκφραση; Έκφραση συνέχισης; Έκφραση μεταβολής) πρόταση 1; πρόταση 2; πρόταση N; Ηλίας Κ. Σάββας Εισήγηση #4 12 4

Παράδειγμα for counter=0; counter < 11; counter++) a = counter * counter; printf( \n %d : %d, counter, a); printf( \n\n Ο μετρητής τώρα είναι %d\n, counter); Ηλίας Κ. Σάββας Εισήγηση #4 13 Πρόγραμμα: Εμφάνιση Πίνακα Τετραγώνων και Κύβων printf( \nπαρακαλώ εισάγετε έναν αριθμό: ); scanf( %d, &n); printf( \nαριθμός Τετράγωνο Κύβος ); printf( \n-------------------------------------- ); for (i=1; i<=n; i++) s = i * i; c = s * i; printf( \n%10d, %10d, %10d, i, s, c); Ηλίας Κ. Σάββας Εισήγηση #4 14 Άσκηση: Αναμενόμενη Έξοδος? int i,j=5; for (i=10; i>0; j*=2, i/=2) printf("%5d %5d\n", i, j); printf("\n\n%5d %5d\n\n\n", i, j); Ηλίας Κ. Σάββας Εισήγηση #4 15 5

Έξοδος i j 10 5 5 10 2 20 1 40 0 80 Ηλίας Κ. Σάββας Εισήγηση #4 16 Άσκηση Να ξαναγράψετε το ακόλουθο με χρήση του βρόγχου for: total = 0; i = 0; while (i<10) scanf( %d, &n); total += n; i++; /* for loop */ total = 0; for (i=0; i<10; i++) scanf( %d, &n); total += n; Ηλίας Κ. Σάββας Εισήγηση #4 17 Γρήγορος Πίνακας Αναφοράς Σύνταξης Σύνταξη while while (έκφραση ελέγχου) προτάσεις; do while do προτάσεις; while (έκφραση ελέγχου); for for (Αρχική έκφραση; Έκφραση συνέχισης; Έκφραση μεταβολής) προτάσεις; Παραδείγματα int i = 1; while (i<100) s = i * i; printf( %d %d, i, s); i++; int i = 1; do s = i * i; printf( %d %d, i, s); i++; while (i<100; int i ; for (i=1; i<100; i++) s = i * i; printf( %d %d, i, s); Ηλίας Κ. Σάββας Εισήγηση #4 18 6

Μέση Βαθμολογία Ο κάθε φοιτητής έχει πέντε μαθήματα ανά εξάμηνο. Σε κάθε μάθημα η βαθμολογία κυμαίνεται από 0 έως 10. Γράψτε ένα C πρόγραμμα το οποίο να υπολογίζει τον μέσο όρο του εξαμήνου. #define Courses 5 /* Συνολικός αριθμός μαθημάτων */ int i, g, sum = 0; float mo; for (i=1; i<=courses; i++) printf("\nεισαγωγή του βαθμού του %d μαθήματος:", i); scanf("%d", &g); sum += g; mo = (float) sum / Courses; printf("\n\nμέση Βαθμολογία=%.2f\n\n", mo); Ηλίας Κ. Σάββας Εισήγηση #4 19 Μέση Βαθμολογία Να ξαναγραφεί το πρόγραμμα αλλά με χρήση της πρότασης do. #define Courses 5 /* Συνολικός αριθμός μαθημάτων */ int i=1, g, sum = 0; float mo; while (i <= Courses) printf("\nεισαγωγή του βαθμού του %d μαθήματος:", i); scanf("%d", &g); sum += g; i++; mo = (float) sum / Courses; printf("\n\n Μέση Βαθμολογία =%.2f\n\n", mo); Ηλίας Κ. Σάββας Εισήγηση #4 20 Καλή Πρακτική Εισαγωγή αποδεκτής τιμής: printf("\nεισαγωγή του βαθμού (αποδεκτοί βαθμοί:0,1,2,,10) : ); scanf("%d", &g); do printf("\n Εισαγωγή του βαθμού (αποδεκτοί βαθμοί:0,1,2,,10) : ); scanf("%d", &g); while (g<0 g>10); Ηλίας Κ. Σάββας Εισήγηση #4 21 7

Μέση Βαθμολογία Ξαναγράψτε το πρόγραμμα της μέσης βαθμολογίας αλλά για ένα άγνωστο πλήθος μαθημάτων. Ηλίας Κ. Σάββας Εισήγηση #4 22 int i=0, g, sum = 0; float mo; int cont = 0; do do printf("\nεισαγωγή του βαθμού του %d μαθήματος: (ή -1για τερματισμό): ", i+1); scanf("%d", &g); while (g<-1 g>4); if (g!= -1) sum += g; i++; while ( g!= -1); mo = (float) sum / i; printf("\nαριθμός μαθημάτων : %d", i); printf("\n\nμέση βαθμολογία=%.2f\n\n", mo); Ηλίας Κ. Σάββας Εισήγηση #4 23 Επιλογή Επαναληπτικής Δομής While: Ο έλεγχος επανάληψης γίνεται στην αρχή. Εάν η συνθήκη επανάληψης είναι ψευδής τότε η είσοδος στον βρόγχο δεν πραγματοποιείται. Έτσι, εάν υπάρχει το ενδεχόμενο να μην πρέπει να εκτελεσθούν ούτε μία φορά οι προτάσεις του βρόγχου τότε πρέπει να χρησιμοποιηθεί η πρόταση while. scanf( %d, &x); while (x!= τιμή ελέγχου)... scanf( %d, &x); Ηλίας Κ. Σάββας Εισήγηση #4 24 8

Επιλογή Επαναληπτικής Δομής Do..while: Σε αντίθεση με την while, η do while ελέγχει την συνθήκη επανάληψης αφού εκτελεστεί μία φορά ο βρόγχος της επανάληψης. Πολύ χρήσιμη δομή για έλεγχο τιμών εισόδου από το πληκτρολόγιο. /* Επαλήθευση τιμής */ do printf( εισαγωγή αριθμού από 0 έως..10 : ); scanf( %d, &x); while (x<0 x>10); Ηλίας Κ. Σάββας Εισήγηση #4 25 Επιλογή Επαναληπτικής Δομής for: Συνήθως για γνωστό αριθμό επαναλήψεων. for (i=1; i<100; i++) s = pow(i,2); c = pow(i,3); q = pow(i,4); printf( %d %d %d %d, i,s,c,q) Ηλίας Κ. Σάββας Εισήγηση #4 26 Άσκηση 1: Τόκος Καταθέσεων Ας υποθέσουμε ότι ανοίγουμε ένα λογαριασμό σε τράπεζα με συγκεκριμένο κεφάλαιο και επιτόκιο 1.5% για κάθε τετράμηνο. Επίσης, ας υποθέσουμε ότι δεν κάνουμε νέες καταθέσεις ούτε και αναλήψεις αλλά θέλουμε να παρακολουθούμε την πορεία του κεφαλαίου μας ανά τετράμηνο για κάποιο χρονικό διάστημα. Αλγόριθμος: Είσοδος αρχικού κεφαλαίου και προσδοκώμενα έτη κατάθεσης, Εκτύπωση επικεφαλίδων, Υπολογισμός πλήθους τετραμήνων σε σχέση με τα έτη κατάθεσης, Για κάθε τετράμηνο: Υπολογισμός τόκου, Υπολογισμός νέου κεφαλαίου, Εκτύπωση τόκου και νέου κεφαλαίου. Ηλίας Κ. Σάββας Εισήγηση #4 27 9

Τόκος Καταθέσεων #define Epitokio 0.015 float kefalaio, tokos; int xronia, tetramina, tel_tetramino; printf("\nεισαγωγή αρχικού κεφαλαίου:"); scanf("%f", &kefalaio); printf("\nεισαγωγή ετών κατάθεσης:"); scanf("%d", &xronia); /* Επικεφαλίδες */ printf("\nτετράμηνο\tτόκος\t Κεφάλαιο\n\n"); tel_tetramino = 3* xronia; for (tetramina=1; tetramina<=tel_tetramino; tetramina++) tokos = kefalaio * Epitokio; kefalaio += tokos; printf("\n%2d\t%6.2f \t\t %8.2f", tetramina, tokos, kefalaio); printf("\n\n"); Ηλίας Κ. Σάββας Εισήγηση #4 28 Άσκηση 2: Πλήθος Λέξεων σε Πρόταση Ανάλυση: Υποθέτουμε ότι μόνο ένα κενό διαχωρίζει τις λέξεις και ότι η πρόταση τελειώνει με τελεία. Αλγόριθμος: Αρχικοποίηση του μετρητή λέξεων στο μηδέν, Διάβασε ένα χαρακτήρα Εφόσον ο χαρακτήρας δεν είναι τελεία /*τέλος πρότασης */ Εάν ο χαρακτήρας είναι διάστημα, αύξησε τον μετρητή κατά ένα, Διάβασε τον επόμενο χαρακτήρα, Τέλος του εφόσον Αύξησε τον μετρητή λέξεων κατά ένα (γιατί?) Εκτύπωσε τον μετρητή λέξεων. Ηλίας Κ. Σάββας Εισήγηση #4 29 Πλήθος Λέξεων σε Πρόταση #define Teleia '.' #define Keno ' ' char c; int word_c = 0; printf("\n\nεισάγετε μία πρόταση : "); c=getchar(); /*scanf("%c", &c); */ while (c!= Teleia) if (c == Keno) word_c++; c = getchar(); /*scanf("%c", &c);*/ word_c++; printf("\n\nto πλήθος των λέξεων στην πρόταση είναι: %d\n\n", word_c); Ηλίας Κ. Σάββας Εισήγηση #4 30 10

Συνοπτικά Οι προτάσεις που περιέχονται σε ένα βρόγχο while εκτελούνται καμία η περισσότερες φορές, Οι προτάσεις που περιέχονται σε ένα βρόγχο do-while εκτελούνται τουλάχιστον μία φορά, Και οι δύο παραπάνω προτάσεις χρησιμοποιούν μία συνθήκη για να ελέγξουν το πλήθος των επαναλήψεων, και Όλες οι προτάσεις που περιέχονται σε ένα βρόγχο while ή do while εκτελούνται όσο η συνθήκη αληθεύει, Η πρόταση for αποτελεί μία γενικευμένη εντολή επανάληψης και εμπεριέχει τρεις παραμέτρους (Αρχική έκφραση; Έκφραση συνέχισης; Έκφραση μεταβολής). Ηλίας Κ. Σάββας Εισήγηση #4 31 Ασκήσεις (1) Να ξαναγραφεί ο παρακάτω κώδικας με for: x = 30; while (x >= 3) printf( %d\t, x); x-=3; for (x=30; x>=3; x-=3) printf( %d\t, x); Ηλίας Κ. Σάββας Εισήγηση #4 32 Ασκήσεις (2) Γράψτε ένα πρόγραμμα που να εκτυπώνει το μήνυμα Hello World! δέκα φορές στην οθόνη. for (i=1; i<=10; i++) printf( Hello World!\n ); i=1; while (i <=10) printf( Hello World!\n ); i++; Ηλίας Κ. Σάββας Εισήγηση #4 33 11

Ασκήσεις (3) Ένα έτος είναι δίσεκτο εάν ισχύει μία από τις ακόλουθες δύο συνθήκες: 1) εάν διαιρείται ακριβώς με το 4 αλλά όχι με το 100 ή 2) εάν διαιρείται ακριβώς με το 400. Να γραφεί ένα πρόγραμμα το οποίο να προσδιορίζει όλα τα δίσεκτα χρόνια από το1 έως το 2020. Ηλίας Κ. Σάββας Εισήγηση #4 34 Δίσεκτα Έτη #define Start 1 #define End 2020 int year, counter = 0; for (year=start; year<=end; year++) if ( year % 400 == 0) counter++; printf("%d είναι δίσεκτο \n", year); else if ( year % 4 == 0 && year % 100!= 0) counter++; printf("%d είναι δίσεκτο \n", year); printf("\n\n\nσυνολικός αριθμός δίσεκτων %d\n\n", counter); Ηλίας Κ. Σάββας Εισήγηση #4 35 Ασκήσεις (4) Πρώτος αριθμός είναι ο φυσικός αριθμός (μη αρνητικός ακέραιος) ο οποίος έχει μόνο δύο διαιρέτες: το 1 και τον εαυτό του. Να γραφεί ένα πρόγραμμα το οποίο να εξετάζει εάν ένας δεδομένος αριθμός είναι ή όχι πρώτος αριθμός. Ηλίας Κ. Σάββας Εισήγηση #4 36 12

Πρώτοι Αριθμοί Version 1 #incude <stdio.h> int number, i; int isprime=1; printf("\nεισαγωγή ενός φυσικού αριθμού: "); scanf("%d", &number); for (i=2; i<number; i++) if (number % i == 0) isprime = 0; if (isprime == 1) printf("\n\nο αριθμός %d είναι ΠΡΩΤΟΣ!\n\n", number); else printf("\n\n Ο αριθμός %d ΔΕΝ είναι ΠΡΩΤΟΣ!\n\n", number); Ηλίας Κ. Σάββας Εισήγηση #4 37 Πρώτοι Αριθμοί Version 2 int number, i=2; int isprime = 1; printf("\n Εισαγωγή ενός φυσικού αριθμού :"); scanf("%d", &number); while (i<=number/2 && isprime == 1) if ( number % i == 0) isprime = 0; i++; if (isprime == 1) printf("\n\nο αριθμός %d είναι ΠΡΩΤΟΣ!\n\n", number); else printf("\n\n Ο αριθμός %d ΔΕΝ είναι ΠΡΩΤΟΣ!\n\n", number); Ηλίας Κ. Σάββας Εισήγηση #4 38 Ασκήσεις (5) Άθροισμα όλων των περιττών αριθμών στο διάστημα 1 έως 99. int odd, s = 0; for (odd=1; odd<=99; odd+=2) s += odd; printf("\n\nάθροισμα = %d\n\n", s); Ηλίας Κ. Σάββας Εισήγηση #4 39 13

Ρολόι: Version 1 Να γραφεί πρόγραμμα το οποίο να εμφανίζει όλες τις ώρες και τα λεπτά σε 24- ωρη βάση, π.χ. 0:01 0:02 0:03. 12:59 13:00 13:01 23:59 int hours, mins; for (hours=0; hours<24; hours++) printf("\n"); /*Νέα γραμμή για κάθε ώρα*/ for (mins=0; mins<60; mins++) printf("%02d:%02d\t", hours, mins); printf("\n\n"); Ηλίας Κ. Σάββας Εισήγηση #4 40 Ρολόι: Version 2 Τροποποιήστε το προηγούμενο πρόγραμμα ώστε να εμφανίζεται η ώρα σε δεκαπεντάλεπτα. int hours, mins; for (hours=0; hours<24; hours++) printf("\n"); for (mins=0; mins<60; mins+=15) printf("%02d:%02d\t", hours, mins); printf("\n\n"); Ηλίας Κ. Σάββας Εισήγηση #4 41 Ασκήσεις (6) Γράψτε ένα πρόγραμμα που να εμφανίζει ένα πίνακα γινομένων 10 επί 10 (προπαίδεια) με χρήση 2 for. Η εκτύπωση να είναι ως εξής: 1 2 3.. ----------------------------------- 1 1 2 3... 2 2 4 6. 3 3 6 9.. Ηλίας Κ. Σάββας Εισήγηση #4 42 14

Πίνακας Γινομένων 10 επί 10 int i, j; /* Επικεφαλίδες */ printf("\n "); for (i=1; i<=10; i++) printf("%6d", i); printf("\n"); for (i=1; i<=65; i++) printf("-"); for (i=1; i<11; i++) printf("\n%3d ", i); for (j=1; j<11; j++) printf("%6d", i*j); Ηλίας Κ. Σάββας Εισήγηση #4 43 Τέλος της #4 Εισήγησης Ερωτήσεις??? Χρησιμοποιήστε το email εάν θέλετε να με ρωτήσετε οτιδήποτε: savvas@teilar.gr Σημειώσεις Μαθήματος (και όχι μόνο): http://e-class.teilar.gr/ Ηλίας Κ. Σάββας Εισήγηση #4 44 15