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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

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

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

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

Βασικές Αρχές Προγραμματισμού

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

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

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

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

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

Διαδικασία Ανάπτυξης Λογισμικού

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

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

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

Transcript:

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Παράδειγμα 1 /* Υπολογισμός εμβαδού κύκλου δίνοντας την ακτίνα */ #include <stdio.h> #define PI 3.14159265359 main() { int r; /* ακτίνα */ double emv; /* εμβαδόν */ printf("δώσε ακτίνα : "); scanf ("%d", &r); emv = PI*r*r; printf("κύκλος με ακτίνα %d έχει εμβαδό %f\n", r, emv); system("pause"); } 2

Παράδειγμα 2 (όχι καλό) #include <stdio.h> /* Τύπωσε τους βαθμούς σε κλίμακα Κελσίου και Φαρενάιτ. */ /* γνωρίζοντας τον τύπο: celcius = (5/9) (fahr 32) */ #define FAHR1 0 #define FAHR2 20 #define FAHR3 40 #define FAHR4 60 main() { int celcius1, celcius2, celcius3, celcius4; celcius1 = 5 * (FAHR1-32) / 9; printf("%d\t%d\n", FAHR1, celcius1); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius2 = 5 * (FAHR2-32) / 9; printf("%d\t%d\n", FAHR2, celcius2); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius3 = 5 * (FAHR3-32) / 9; printf("%d\t%d\n", FAHR3, celcius3); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius4 = 5 * (FAHR4-32) / 9; printf("%d\t%d\n", FAHR4, celcius4); /* Τύπωσε ακέραιο, tab, ακέραιο */ } Το αποτέλεσμα θα είναι: 0-17 20-6 40 4 60 15 Προβλήματα: α) η τιμή celsius δεν είναι αναγκαστικά ακέραια! β) τι θα κάναμε αν είχαμε πολύ περισσότερες τιμές να αντιστοιχίσουμε; 3

Βελτιωμένο παράδειγμα 2 /* δημιουργία και εμφάνιση πίνακα αντιστοιχίας θερμοκρασιών Fahrenheit- Celsius από το 0 μέχρι το 500, ανά 20, γνωρίζοντας ότι C= (5/9) (F-32) */ #include <stdio.h> main() { int fahr; float celsius; } int lower=0,upper= 500, step = 20; fahr=lower; printf("\n FAHRENHEIT CELSIUS "); printf("\n-----------------------------"); while(fahr <= upper) { } celsius = (float)5/9*(fahr-32); printf("\n%6d\t\t%10.2f",fahr,celsius); fahr += step; printf("\n"); system ("PAUSE"); Το αποτέλεσμα θα είναι: FAHRENHEIT CELSIUS ----------------------------- 0-17.78 20-6.67 40 4.44 Πιέστε ένα πλήκτρο για συνέχεια... 60 15.56 80 26.67 100 37.78 120 48.89 140 60.00 160 71.11 180 82.22 200 93.33 220 104.44 240 115.56...... 480 248.89 500 260.00 4

Εντολή επανάληψης for Συντάσσεται ως εξής: αρχικοποίηση μετρητή for ( ; ; ) εντολή; συνθήκη ή παράσταση βήμα μεταβολής μετρητή 5

#include <stdio.h> #define LOWER 0 #define UPPER 500 #define STEP 20 Παράδειγμα 2 ξανά με for main() { int fahr; float celsius; printf("\n FAHRENHEIT CELSIUS "); printf("\n-----------------------------"); for(farh=lower; fahr<=upper; farh+=step) { celsius=(float)5/9 *(fahr-32); printf("\n %5d\t\t%9.2f ",fahr,celsius); } } 7

Εκφράσεις (expressions) Οι εκφράσεις στη C είναι συντακτικές μορφές που παράγονται από το συνδυασμό μεταβλητών, σταθερών, και τελεστών (operators). Προς το παρόν θα ασχοληθούμε με ακέραιες και πραγματικές μεταβλητές. Μεταβλητές ακέραιου, και πραγματικού τύπου μπορούν να συνδυαστούν με αριθμητικούς τελεστές. Το σημαντικό στοιχείο είναι ο τύπος του αποτελέσματος που προκύπτει. 8

Προγράμματα της C Τα προγράμματα της C αποτελούνται από προτάσεις (εντολές, statements) και οι προτάσεις αποτελούνται από τελεστές και εκφράσεις. Μία πρόταση είναι μία πλήρης οδηγία προς τον υπολογιστή για να φέρει σε πέρας μία πράξη (λειτουργία). Οι προτάσεις της C τελειώνουν με ένα ελληνικό ερωτηματικό εκτός τις #define, #include. x = 2+3; είναι μία πρόταση εκχώρησης. Οδηγεί τον υπολογιστή να προσθέσει το 2 και το 3 και να εκχωρήσει το αποτέλεσμα στη μεταβλητή x. 9

Παραδείγματα x = 2+3 ; x = 2 + 3 ; Γενικά, ο μεταγλωττιστής δε λαμβάνει υπ όψη του κενά διαστήματα (spaces), στηλογνώμονες (tabs) και κενές γραμμές εκτός και αν αποτελούν τμήμα συμβολοσειρών κυριολεκτικών σταθερών (ορμαθοί - ακολουθίες χαρακτήρων = strings) (μεταξύ " ") 10

Παραδείγματα Οι προτάσεις καλό είναι να εισάγονται μία ανά γραμμή Μέσα σε σταθερές συμβολοσειρών δεν αγνοούνται τα κενά διαστήματα Έγκυρο: printf( Hello World! ); Όχι έγκυρο: printf( Hello World! ); Σωστό: printf( Hello \ World! ); 11

Προτάσεις Οι προτάσεις σε ένα πρόγραμμα πρέπει να εισάγονται μία ανά γραμμή με ένα τυποποιημένο σχήμα για τα διαστήματα γύρω από τις μεταβλητές και τους τελεστές. Κρατήστε ευανάγνωστο τον πηγαίο σας κώδικα. 12

Σύνθετες προτάσεις ή σύνθετες εντολές Μία σύνθετη πρόταση λέγεται μπλοκ (block) και είναι μία ομάδα 2 ή περισσότερων προτάσεων της C οι οποίες περιλαμβάνονται σε άγκιστρα. Να τοποθετείτε τα άγκιστρα μόνα τους στις προτάσεις για να είναι ξεκάθαρες η αρχή και το τέλος ενός μπλοκ. 13

Υπολογισμός των εκφράσεων Μία έκφραση είναι οτιδήποτε που υπολογίζεται σε μία αριθμητική τιμή. Η απλούστερη έκφραση της C αποτελείται από ένα απλό στοιχείο: Μία κυριολεκτική σταθερά, μία μεταβλητή ή συμβολική σταθερά. Μία κυριολεκτική σταθερά έχει τη δική της τιμή. Μία συμβολική σταθερά έχει την τιμή που της έχει δοθεί όταν δημιουργήθηκε, π.χ. με #define. Mία μεταβλητή έχει την τρέχουσα τιμή που της εκχωρήθηκε τελευταία από το πρόγραμμα. 14

Σύνθετες εκφράσεις Οι σύνθετες εκφράσεις αποτελούνται από απλές εκφράσεις συνδεδεμένες με τελεστές. 2+8; x=a+10; x=6+(y=4+5); 15

Μοναδιαίοι τελεστές μεταβολής κατά ένα ++x, --y, Πρόσθεση ή αφαίρεση της μονάδας από τον τελεστέο, ισοδύναμες των x=x+1, y=y-1. Δηλαδή αύξηση ή μείωση του τελεστέου κατά ένα. Χρησιμοποιούνται με μεταβλητές, όχι με σταθερές. 16

Μοναδιαίοι Τελεστές Οι δύο μοναδιαίοι τελεστές μπορούν να τοποθετηθούν πριν απο τον τελεστέο (μορφή προθέματος) ή μετά από τον τελεστέο (μορφή επιθέματος) και δεν είναι ισοδύναμοι. Όταν χρησιμοποιούνται σε προθεματική μορφή, οι τελεστές αύξησης και μείωσης τροποποιούν τον τελεστέο τους πριν χρησιμοποιηθεί. Όταν χρησιμοποιούνται σε επιθεματική μορφή, οι τελεστές αύξησης και μείωσης τροποποιούν τον τελεστέο τους αφού χρησιμοποιηθεί. 17

Τελεστές Παράδειγμα x=10; y=x++; Η τιμή της x είναι 11 και της y 10. Χρησιμοποιούμε και μετά αυξάνουμε Παράδειγμα x=10; y=++x; Η τιμή της x είναι 11 και της y 11. Αυξάνουμε και μετά χρησιμοποιούμε 18

19

Αποτέλεσμα 5 4 4 3 3 2 2 1 1 0 20

Μετατροπή τύπων Όταν οι μεταβλητές/σταθερές είναι του ιδίου τύπου το αποτέλεσμα είναι γενικά του αυτού τύπου. Όταν όμως οι μεταβλητές/σταθερές σε μία έκφραση δεν είναι του ιδίου τύπου τότε λέμε ότι έχουμε μία μικτή έκφραση. Στη C υπάρχουν μερικοί απλοί κανόνες αυτόματης μετατροπής τύπων στις μικτές εκφράσεις. Γενικά ο κανόνας είναι να μετατρέπεται ο τύπος με το μικρότερο μέγεθος στον τύπο με το μεγαλύτερο μέγεθος έτσι ώστε να μη χάνεται πληροφορία. Για παράδειγμα εάν f είναι float και i είναι integer τότε στην έκφραση f+i o i μετατρέπεται σε float. Η έκφραση υπολογίζεται στον τύπο με το μεγαλύτερο μέγεθος Το αποτέλεσμα είναι τύπου όμοιου με τον «μεγαλύτερο» τύπο στην έκφραση. Εκφράσεις που αναθέτουν ένα τύπο μεγαλύτερου μεγέθους σε ένα μικρότερο (π.χ. i = f) συνήθως προκαλούν την δημιουργία μιας προειδοποίησης (warning) από τον μεταφραστή (compiler) και γενικά πρέπει να αποφεύγονται. 25

Μέγεθος Πίνακας μετατροπής τύπων Ο παρακάτω πίνακας δείχνει τον τύπο του αποτελέσματος σαν συνάρτηση των τύπων στην έκφραση. Μέγεθος Operand types short int ή short long int ή int float double long double short int ή short short int ή short long int ή int float double long double long int ή int long int ή int long int ή int float double long double float float float float double long double double double double double double long double long double long double long double long double long double long double 26

Μετατροπή τύπων κατά την ανάθεση Οι μετατροπές τύπων συμβαίνουν και με τον τελεστή ανάθεσης π.χ. Α = Β Η έκφραση στα δεξιά του τελεστή (=) προβιβάζεται στον τύπο της μεταβλητής στα αριστερά του τελεστή ανάθεσης Αυτό όμως μπορεί να προκαλέσει προβλήματα όπως αναφέρθηκε προηγουμένως αν η μεταβλητή είναι «χαμηλότερου» τύπου. Παράδειγμα. Εάν d είναι double, και i είναι int τότε η ανάθεση d = i; Θα προκαλέσει την μετατροπή της ακέραιας μεταβλητής i σε τύπο double ώστε η ανάθεση να επιτευχθεί. Όμως η ανάθεση i = d θα προκαλέσει τον υποβιβασμό της double μεταβλητής d σε τύπο int οπότε το δεκαδικό μέρος της d θα χαθεί. 27

Σφάλματα υπολογισμών σε εκφράσεις 563.8 + 631.9 1195.7 1196 + 321.6 1517.6 1518 Σφάλματα στον υπολογισμό αριθμητικών εκφράσεων μπορούν να παρουσιασθούν λόγω Χρήσης περιορισμένου αριθμού ψηφίων Χρήσης τεχνικών προσέγγισης της τιμής μιας συνάρτησης ή έκφρασης αντί του άμεσου υπολογισμού της τιμής της 321.6 Παράδειγμα + 631.9 Η πρόσθεση των αριθμών 563.8, 631.9, και 321.6 953.5 όταν είμαστε 953.5 περιορισμένοι σε τέσσερα ψηφία έχει σαν αποτέλεσμα + 1518 563.8 όταν προσθέσουμε 563.8, 631.9, και 321.6, και αποτέλεσμα 1517 όταν προσθέσουμε 321.6, 631.9, και 563.8. 1517.3 1517 Από το παράδειγμα βλέπουμε ότι η διάταξη των όρων του αθροίσματος επηρεάζει το τελικό αποτέλεσμα. Η σωστή απάντηση είναι 1517.3. 28

Είσοδος και έξοδος χαρακτήρων text stream ή file (ρεύμα κειμένου) stdin - πρότυπη είσοδος (standard input) stdout - πρότυπη έξοδος (standard output) char c; c = getchar ( ); putchar (c); // function prototypes // int getc (FILE *stream); // int getchar (void); // int putc (int c, FILE *stream); // int putchar (int c); 29

Πληθώρα ασκήσεων χωρίς άλλη γνώση για είσοδο ή έξοδο Αντιγραφή αρχείων κειμένου Μέτρηση χαρακτήρων αρχείου κειμένου Μέτρηση γραμμών αρχείου κειμένου Μέτρηση λέξεων αρχείου κειμένου 30

Αντιγραφή αρχείων διάβασμα ενός χαρακτήρα ενόσω (ο χαρακτήρας δεν είναι ένδειξη τέλους αρχείου) έξοδος του χαρακτήρα που μόλις διαβάστηκε διάβασμα ενός χαρακτήρα #include <stdio.h> /* αντιγραφή της εισόδου στην έξοδο */ main() { char c; } c = getchar(); while ( c!= EOF) { putchar(c) ; c = getchar(); } printf ("\nπληκτρολόγησε ό,τι θέλεις και \ ENTER (ή CTRL+Z για τέλος):\n"); while ( ( c =getchar () )!= EOF) putchar (c) ; 31

Μέτρηση γραμμών αρχείου κειμένου /* Μέτρηση γραμμών της πρότυπης εισόδου */ #include <stdio.h> main() { char ch; int nl=0; printf ("\nπληκτρολόγησε ό,τι θέλεις \ και ENTER (ή CTRL+Z για τέλος):\n"); while ((ch = getchar())!= EOF) if (ch == \n ) nl++; printf ("Υπήρχαν %d γραμμές.\n",nl); } 32

Ασκήσεις 1) Να γίνει ένα πρόγραμμα το οποίο να αντιγράφει την πρότυπη είσοδο (stdin) στην πρότυπη έξοδο (stdout) χαρακτήρα χαρακτήρα μέχρι να συναντήσει το «σύμβολο τέλους αρχείου», μετατρέποντας όμως όλους τους πεζούς χαρακτήρες σε κεφαλαίους. 2) Να γίνει ένα πρόγραμμα το οποίο να υπολογίζει για τους πρώτους εκατό φυσικούς αριθμούς το άθροισμα, τον μέσο όρο και το γινόμενο. Χρησιμοποιείστε την εντολή επανάληψης for. 33