- program p_name(input) - uses crt

Σχετικά έγγραφα
- program p_name(output); - uses crt;

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

ιαφάνειες παρουσίασης #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

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

Pascal. 26 Οκτωβρίου 2011

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Γ Τάξη ΕΠΑ.Λ. Κώστας Κωσταλίας Εκπαιδευτικός ΠΕ19

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ 15 ΚΕΦΑΛΑΙΟ 1 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΟΙ ΠΡΑΓΜΑΤΙΚΟΙ ΜΕΤΑΒΛΗΤΕΣ ΛΟΓΙΚΟΥ ΤΥΠΟΥ ΑΛΦΑΡΙΘΜΗΤΙΚΑ...

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

ιαφάνειες παρουσίασης #5

Κεφάλαιο 9 : Βασικές εντολές

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Δομή προγράμματος στη Fortran

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

Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

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

Δομή προγράμματος στη Fortran

Προγραμματισμός PASCAL

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

Κεφάλαιο 10 Επανάληψη Ασκήσεις 02

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΕΠΑ.Λ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική Προγραµµατισµός Υπολογιστών Κεφάλαιο 9 Σηµειώσεις 03. Εντολή Εκχώρησης - Αντικατάστασης

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Pascal. 15 Νοεμβρίου 2011

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κανονική εξέταση, Φεβρουάριος 2005

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

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

8 FORTRAN 77/90/95/2003

2.2.3 Η εντολή Εκτύπωσε

Γενικές Πληροφορίες Πρέπει να προγραµµατίσουµε τα είδη επιλέγοντας τον κωδικό είδους ανάλογο µε την ύπαρξη ζυγαριάς ετικέτας- scanner ή όχι.

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

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension.

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

Pascal - Βασικές Έννοιες

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

ιαφάνειες παρουσίασης #4

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ιαφάνειες παρουσίασης #2

Αποτελέσματα προόδου

επιµέλεια Θοδωρής Πιερράτος

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

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

Κεφάλαιο 8ο: Αρχεία. 8.1 Τι είναι αρχείο;

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

Βιοµηχανικοί Αυτοµατισµοί

ΕΠΑ.Λ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική Προγραµµατισµός Υπολογιστών Κεφάλαιο 10 Εργαστηριακή ραστηριότητα 02 ΑΠΑΝΤΗΣΕΙΣ

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

Ο ΗΓΙΕΣ ΧΡΗΣΤΗ AR-7664

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 10/11/12, 22:00

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Σκοπός. Εργαστήριο 5 Εντολές Επιλογής

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59

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

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

Transcript:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 9 : Βασικές Εντολές 1. Εισαγωγή Εντολές Εισόδου Κάθε Η/Υ έχει µία προκαθορισµένη συσκευή ή αρχείο απ όπου γίνεται η είσοδος δεδοµένων για ένα πρόγραµµα. Μια πολύ κοινή συσκευή εισόδου είναι το πληκτρολόγιο. Σε κάθε υλοποίηση της Pascal αυτή η συσκευή είναι γνωστή σαν ένα προκαθορισµένο αρχείο µε όνοµα Input (µεταβλητή τύπου αρχείου). Κάθε εντολή εισόδου σε ένα πρόγραµµα Pascal διαβάζει απ αυτό το αρχείο εκτός και αν ο χρήστης έχει ορίσει ένα διαφορετικό αρχείο. Για την είσοδο δεδοµένων ένα πρόγραµµα Pascal χρησιµοποιούµε τις διαδικασίες read και readln. Σε κάθε περίπτωση οι παραπάνω διαδικασίες διαβάζουν δεδοµένα από ένα αρχείο. Αυτό το αρχείο µπορεί να είναι ένα κανονικό αρχείο ή µία συσκευή (πληκτρολόγιο) την οποία η Pascal χειρίζεται σαν αρχείο. Για να χρησιµοποιήσουµε τις εντολές read και readln θα πρέπει στην επικεφαλίδα του προγράµµατος να δηλώσουµε το αρχείο input καθώς επίσης και τη βιβλιοθήκη crt - program p_name(input) - uses crt 2. Οι εντολές read και readln Για την είσοδο δεδοµένων από το πληκτρολόγιο σε ένα πρόγραµµα Pascal χρησιµοποιούνται οι διαδικασίες (procedures) read και readln που ονοµάζονται εντολές εισόδου. Οι ίδιες εντολές µπορούν να χρησιµοποιηθούν και για το διάβασµα δεδοµένων από αρχεία που βρίσκονται αποθηκευµένα στο σκληρό δίσκο του υπολογιστή. Ωστόσο στα πλαίσια του µαθήµατός µας δεν θα µας απασχολήσει αυτή η περίπτωση παρά µόνο η χρήση τους για είσοδο δεδοµένων από το πληκτρολόγιο. 2.1. Η εντολή read Μορφή read(µεταβλητή_1, µεταβλητή_2,..., µεταβλητή_ν) Λειτουργία Όταν η εκτέλεση ενός προγράµµατος φτάσει σε µια εντολή read τότε η εκτέλεση του διακόπτεται και το πρόγραµµα περιµένει να διαβάσει δεδοµένα από το πληκτρολόγιο. Η εντολή read περιµένει να διαβάσει από το πληκτρολόγιο, τόσα δεδοµένα όσα οι µεταβλητές που δίνονται µέσα στην παρένθεση. Κάθε δεδοµένο που διαβάζεται αποθηκεύεται σε µια µεταβλητή. Τα δεδοµένα αποθηκεύονται στις µεταβλητές µε τη σειρά που δίνονται ξεκινώντας από την πρώτη µεταβλητή, ένα σε κάθε µεταβλητή. 1

Η εκτέλεση του προγράµµατος θα συνεχίζει µε την επόµενη εντολή όταν διαβαστούν τόσα δεδοµένα όσα και οι µεταβλητές που δίνονται ως ορίσµατα στην εντολή read. Αν µια εντολή read βρει διαθέσιµα περισσότερα δεδοµένα απ ότι οι µεταβλητές της, θα διαβάσει τα πρώτα από αυτά, τόσα όσα το πλήθος των µεταβλητών της. Τα υπόλοιπα θα είναι διαθέσιµα για την επόµενη εντολή εισόδου. 2.1.1. Εισαγωγή αριθµητικών δεδοµένων Όταν εισάγουµε αριθµητικά δεδοµένα µπορούµε να δίνουµε είτε ένα σε κάθε γραµµή (δηλαδή γράφουµε αριθµό και πατάµε enter) είτε περισσότερα από ένα σε µια γραµµή χωρισµένα µε ένα ή περισσότερα κενά (γράφουµε όλους τους αριθµούς σε µια γραµµή και πατάµε enter). Παράδειγµα Παρακάτω δίνεται ο πηγαίος κώδικας προγράµµατος από το αρχείο read_1.pas 1. program read_1(input, output); 4. a,b,c,d,e,f,g,h,i,j:integer; 5. begin 6. writeln('εκτέλεση read(a); ΩΣΤΕ ΕΝΑΝ ΑΡΙΘΜΟ ΚΑΙ ΠΑΤΗΣΤΕ ENTER'); 7. read(a); 8. writeln('a=',a); writeln(); 9. writeln('εκτέλεση read(a,b,c); ΩΣΤΕ ΤΡΕΙΣ ΑΡΙΘΜΟΥΣ ΧΩΡΙΣΜΕΝΟΥΣ ΜΕ ΚΕΝΟ ΚΑΙ ΠΑΤΗΣΤΕ ENTER'); 10. read(a,b,c); 11. writeln('a=',a,' ','b=',b,' ','c=',c); writeln(); 12. writeln('εκτέλεση read(e,d); ΩΣΤΕ ΕΝΑΝ ΑΡΙΘΜΟ ΚΑΙ ΠΑΤΗΣΤΕ ENTER. ΣΤΗ ΣΥΝΕΧΕΙΑ ΩΣΤΕ ΑΛΛΟΝ ΕΝΑΝ'); 13. read(d,e); 14. writeln('d=',d,' ','e=',e); writeln(); 15. writeln('εκτέλεση read(f,g); ΩΣΤΕ ΕΞΙ ΑΡΙΘΜΟΥΣ ΧΩΡΙΣΜΕΝΟΥΣ ΜΕ ΚΕΝΟ ΚΑΙ ΠΑΤΗΣΤΕ ENTER'); 16. read(f,g); 17. writeln('f=',f,' ','g=',g); writeln(); 18. writeln('εκτέλεση read(h,i,j);'); 19. read(h,i,j); 20. writeln('h=',h,' ','i=',i,' ','j=',j); writeln(); 21. end. 2

Γραµµή Προγράµµατος Στην πρώτη στήλη του παρακάτω πίνακα δίνονται αποµονωµένες οι εντολές read του παραπάνω προγράµµατος (έντονα γράµµατα). Για κάθε εντολή read στην πρώτη στήλη εισάγονται τα δεδοµένα που φαίνονται στην δεύτερη στήλη. Να συµπληρώσετε στην τρίτη στήλη τις τιµές των µεταβλητών µετά την εκτέλεση κάθε εντολής. ΕΝΤΟΛΗ ΔΕΔΟΜΕΝΑ ΤΙΜΗ 7 read(a); 11<enter> a= ΜΕΤΑΒΛΗΤΩΝ ΜΕΤΑ ΤΗΝ ΕΚΤΕΛΕΣΗ 10 read(a,b,c); 12 13 14<enter> a= b= c= 13 read(d,e); 15 <enter> 16<enter> d= e= 16 read(f,g) 17 18 19 20 21 22<enter> f= g= 19 read(h,i,j); h= i= j= Ανοίξτε µε το πρόγραµµα PAME το αρχείο του παραπάνω προγράµµατος (read_1.pas), εκτελέστε το και επαληθεύστε τις τιµές που συµπληρώσατε στον παραπάνω πίνακα. Παρατηρήσεις - Όταν εισάγουµε αριθµούς (χωρισµένους µε κενό) για µια εντολή read πως θα γνωρίζει το πρόγραµµά µας ότι έχει τελειώσει η εισαγωγή των δεδοµένων; Η εντολή συνεχίζει να διαβάζει µέχρις ότου ο χρήστης πατήσει enter. Όταν ο χρήστης πατήσει enter Αν το πλήθος των αριθµών είναι ίσο µε τις µεταβλητές της εντολής, ολοκληρώνεται η εκτέλεση της εντολής Αν το πλήθος των αριθµών είναι µικρότερο από τις µεταβλητές της εντολής, το πρόγραµµα θα περιµένει να διαβάσει και άλλους αριθµούς. Αν το πλήθος των αριθµών είναι µεγαλύτερο από τις µεταβλητές, οι επιπλέον αριθµοί θα παραµείνουν διαθέσιµοι για την επόµενη εντολή read. Συνεπώς αν έχουµε µια εντολή read για ανάγνωση αριθµών µε πολλές παραµέτρους (π.χ. read(a,b,c)) τότε µπορούµε να δίνουµε τους αριθµούς είτε έναν σε κάθε γραµµή πατώντας enter µετά από κάθε αριθµό είτε όλους µαζί σε µια γραµµή χωρισµένους µε κενό. - Η εντολή read(d,e); στην τρίτη γραµµή του πίνακα περιµένει να διαβάσει δύο αριθµούς. Αν δώσουµε αρχικά µία τιµή (15) και πατήσουµε enter δε θα τελειώσει η εκτέλεση της read γιατί δεν διάβασε δεδοµένα για όλες τις µεταβλητές τις. Η εντολή read θα διαβάσει και την τιµή (16) που θα δώσουµε στην επόµενη σειρά. 3

- Η εντολή read(f,g); στην τέταρτη γραµµή του πίνακα περιµένει να διαβάσει δύο αριθµούς. Αν δώσουµε έξι αριθµούς τότε η εντολή θα διαβάσει τους δύο πρώτους (17 και 18). Οι υπόλοιποι θα είναι διαθέσιµοι για επόµενη εντολή read. Έτσι η εντολή read(h,i,j) στη συνέχεια θα διαβάσει τους τρεις επόµενους αριθµούς (19, 20, 21) ενώ ο τελευταίος αριθµός 22 δεν θα διαβαστεί από καµιά εντολή. - Οι εντολές read(a);read(b);read(c); είναι ισοδύναµες µε την εντολή read(a,b,c); 2.1.2. Τύποι Όταν εισάγουµε αριθµητικά δεδοµένα µε την εντολή read θα πρέπει να προσέχουµε ώστε οι τύποι των δεδοµένων που δίνουµε από το πληκτρολόγιο να ταιριάζουν µε τους τύπους των αντίστοιχων µεταβλητών της εντολής read. Δίνεται το παρακάτω πρόγραµµα σε Pascal (αρχείο read_2.pas) 1. program read_2(input,output); 4. a:integer; 5. b:real; 6. begin 7. writeln('εκτέλεση read(a,b); ΩΣΤΕ ΥΟ ΑΡΙΘΜΟΥΣ ΚΑΙ ΠΑΤΗΣΤΕ ENTER'); 8. read(a,b); 9. writeln('a=',a,' ','b=',b); writeln(); 10.end. Ποιοι από τους παρακάτω συνδυασµούς δεδοµένων εισόδου είναι σωστοί για την εντολή read τους παραπάνω προγράµµατος; ΔΕΔΟΜΕΝΑ ΕΙΣΟΔΟΥ ΣΩΣΤΟ / ΛΑΘΟΣ 11 12.89 11 12 11 3.23456e+002 12.89 11 3.2e+01 12 ΕΠ ΑΛ Ανοίξτε µε το πρόγραµµα PAME το αρχείο του παραπάνω προγράµµατος (read_2.pas), εκτελέστε το και επαληθεύστε τις τιµές που συµπληρώσατε στον παραπάνω πίνακα Παρατηρήσεις - Η εντολή read(a,b); του παραπάνω προγράµµατος περιµένει να διαβάσει έναν ακέραιο και έναν πραγµατικό αριθµό. - Ο πρώτος και ο τρίτος συνδυασµός δεδοµένων είναι απόλυτα σωστοί αφού το 11 είναι σταθερά τύπου integer και τα 12.89 και 3.23456e+002 σταθερές τύπου real. 4

- Ο δεύτερος συνδυασµός είναι επίσης σωστός παρόλο που ζητάµε ένας ακέραιος αριθµός (12) να αποθηκευτεί σε µια µεταβλητή τύπου real. Αυτό είναι αποδεκτό από την Pascal. - Ο τέταρτος και ο πέµπτος συνδυασµός είναι λάθος γιατί ζητάµε να αποθηκευτεί ένας πραγµατικός αριθµός 12.89 ή 3.2e+01 σε µια µεταβλητή τύπου integer. - Ο τελευταίος συνδυασµός είναι λάθος γιατί αντί για αριθµούς δίνουµε σαν είσοδο µια σταθερά αλφαριθµητικού τύπου. Συµπέρασµα Σε κάθε µεταβλητή τύπου integer στη λίστα εισόδου πρέπει να αντιστοιχεί µε µια σταθερά τύπου integer στη γραµµή µε τα δεδοµένα εισόδου Σε κάθε µεταβλητή τύπου real στη λίστα εισόδου πρέπει να αντιστοιχεί µε µια σταθερά τύπου integer ή real στη γραµµή µε τα δεδοµένα εισόδου 2.1.3. Εισαγωγή χαρακτήρων Όταν διαβάζουµε µε τη read δεδοµένα τύπου char τότε πρέπει να προσέχουµε διότι το κενό είναι χαρακτήρας και δεν µπορούµε να το χρησιµοποιήσουµε για διαχωριστικό. Δίνεται το παρακάτω πρόγραµµα (αρχείο read_char.pas) 1. program read_char(input, output); 4. a,b,c:char; 5. begin 6. read(a,b,c); 7. writeln('a=',a,', b=',b,', c=',c); writeln(); 8. end. Συµπληρώστε στον παρακάτω πίνακα για κάθε συνδυασµό δεδοµένων εισόδου στην πρώτη στήλη τις τιµές των µεταβλητών στη δεύτερη Δεδοµένα εισόδου Μεταβλητές abc a= b= c= a b c a= b= c= Ανοίξτε µε το πρόγραµµα PAME το αρχείο του παραπάνω προγράµµατος (read_char.pas), εκτελέστε το και επαληθεύστε τις τιµές που συµπληρώσατε στον παραπάνω πίνακα Παρατηρήσεις Το κενό είναι χαρακτήρας, γι αυτό στο δεύτερο συνδυασµό το κενό που χωρίζει a και b αποθηκεύεται ως χαρακτήρας στη µεταβλητή b, και ο χαρακτήρας b σαν τιµή στη µεταβλητή c. 2.2. Η εντολή readln Μορφή readln(µεταβλητή_1, µεταβλητή_2,..., µεταβλητή_ν) Λειτουργία 5

Παράδειγµα Η εντολή readln λειτουργεί µε τον ίδιο τρόπο όπως η read µε µία διαφορά. Η εντολή readln διαβάζει δεδοµένα οργανωµένα σε γραµµές. Δηλαδή διαβάζει ότι δίνεται σε µια γραµµή και περνάει τον έλεγχο στην επόµενη γραµµή απ όπου θα διαβάσει η επόµενη εντολή read. Το παραπάνω πρακτικά σηµαίνει ότι αν σε µια γραµµή δοθούν περισσότερα δεδοµένα από τις µεταβλητές της readln τότε τα επιπλέον δεδοµένα αγνοούνται. Δίνεται το παρακάτω πρόγραµµα (αρχείο readln_1.pas) 1. program readln_1(input, output); 4. a,b,c,d:integer; 5. begin 6. writeln(' ΩΣΕ ΤΕΣΣΕΡΙΣ ΑΡΙΘΜΟΥΣ ΧΩΡΙΣΜΕΝΟΥΣ ΜΕ ΚΕΝΟ ΚΑΙ ΠΑΤΑ ENTER. META ΩΣΕ ΚΑΙ ΆΛΛΟΥΣ YΟ ΧΩΡΙΣΜΕΝΟΥΣ ΜΕ ΚΕΝΟ'); 7. writeln('readln(a,b,c);'); 8. readln(a,b,c); 9. writeln('readln(d);'); 10. readln(d); 11. writeln('a=',a,', b=',b,', c=',c,', d=',d); writeln(); 12. writeln(' ΩΣΕ ΤΕΣΣΕΡΙΣ ΑΡΙΘΜΟΥΣ ΧΩΡΙΣΜΕΝΟΥΣ ΜΕ ΚΕΝΟ ΚΑΙ ΠΑΤΑ ENTER'); 13. writeln('read(a,b,c);'); 14. read(a,b,c); 15. writeln('read(d);'); 16. read(d); 17. writeln('a=',a,', b=',b,', c=',c,', d=',d); writeln(); 18. end. Συµπληρώστε στην τελευταία γραµµή του παρακάτω πίνακα µε τις τιµές των µεταβλητών µετά την εκτέλεση των εντολών read και readln του προγράµµατος Γραµµή Προγράµµατος ΕΝΤΟΛΗ ΔΕΔΟΜΕΝΑ ΤΙΜΗ ΜΕΤΑΒΛΗΤΩΝ ΜΕΤΑ ΤΗΝ ΕΚΤΕΛΕΣΗ 8 readln(a,b,c); 1 2 3 4<enter> a= b= c= 10 readln(d); 5 6<enter> d= 14 read(a,b,c); 1 2 3 4<enter> a= b= c= 16 read(d); 5 6<enter> d= 6

Ανοίξτε µε το πρόγραµµα PAME το αρχείο του παραπάνω προγράµµατος (readln_1.pas), εκτελέστε το και επαληθεύστε τις τιµές που συµπληρώσατε στον παραπάνω Παρατηρήσεις Στο παραπάνω παράδειγµα στην περίπτωση των δύο διαδοχικών εντολών readln συνέβη το εξής: o Η πρώτη readln ζητάει να διαβάσει τρεις τιµές και εµείς δώσαµε τέσσερις σε µια γραµµή. Αφού εκτελεστεί η readln διαβάζει τις τρεις πρώτες τιµές και την τέταρτη την πετάει. o Έτσι όταν εκτελείται η επόµενη readln περιµένει από το χρήστη νέες τιµές από το πληκτρολόγιο Στην περίπτωση των δύο διαδοχικών read o Η πρώτη read ζητάει να διαβάσει τρεις τιµές και εµείς δώσαµε τέσσερις σε µια γραµµή. Αφού εκτελεστεί η read διαβάζει τις τρεις πρώτες τιµές και η τέταρτη παραµένει διαθέσιµη για επόµενη εντολή read ή readln.. o Έτσι όταν εκτελείται η επόµενη read διαβάζει την τέταρτη τιµή που περίσσεψε από την προηγούµενη read. Η εντολή readln όταν δοθεί χωρίς παραµέτρους έχει σαν αποτέλεσµα να περνάει ο έλεγχος στην επόµενη γραµµή. Δηλαδή παραλείπονται όλα τα δεδοµένα που θα δοθούν σε µία γραµµή Συνεπώς εντολή readln(a,b); είναι ισοδύναµη µε τις εντολές read(a,b);readln(); Δίνεται το παρακάτω πρόγραµµα (αρχείο readln_2.pas). Εκτελέστε το και επιβεβαιώστε την τελευταία παρατήρηση. 1. program readln_2(input, output); 4. a,b:integer; 5. begin 6. writeln('readln(a,b);'); 7. readln(a,b); 8. writeln('a=',a,', b=',b); writeln(); 9. writeln('read(a); read(b); readln();'); 10. read(a); 11. read(b); 12. readln(); 13. writeln('a=',a,', b=',b); writeln(); 14. end. 7

Άσκηση Σε κάθε γραµµή του παρακάτω πίνακα, δίνεται στην πρώτη στήλη µια οµάδα εντολών readln. Στη δεύτερη στήλη δίνονται τα δεδοµένα που εισάγονται από το πληκτρολόγιο. Παρατηρήστε ότι σε κάθε γραµµή δίνονται δύο ακέραιες τιµές. Να συµπληρώσετε στην Τρίτη στήλη τα περιεχόµενα των µεταβλητών µετά την εκτέλεση των εντολών readln. readln(); <enter> a = 1 readln(a); readln(b); readln(c); <enter> <enter> 70 80 <enter> b = c = read(a); 2 readln(b,c,d); readln(e,f); c = d = e = f = readln(a,b,c); 3 read(d); readln(e,f); c = d = e = f = 70 80 readln(a,b,c); 4 readln(d,e); c = d = e = readln(a,b); 5 readln(c,d); c = d = readln(e); e = readln(a,d); 6 readln(); c = readln(c); 8