el:school:lessons:programmatismos:pascal:askisi2_readln
Άσκηση 2 - readln - μεταβλητές
Στην προηγούμενη άσκηση ο Η/Υ με την εντολή writeln εμφάνισε/έγραψε ένα μήνυμα στην οθόνη (προκαθορισμένη έξοδος).
Με την εντολή readln(μεταβλητη) ο Η/Υ περιμένει από τον χρήστη να δώσει κάτι από το πληκτρολόγιο (προκαθορισμένη είσοδος). Ο Η/Υ λοιπόν διαβάζει από το πληκτρολόγιο και αποθηκεύει ότι του δίνει ο χρήστης σε μια μεταβλητή
Εμείς ορίζουμε ένα όνομα στην μεταβλητή που να ταιριάζει με αυτό που θα αποθηκευτεί. Π.χ. εάν ζητήσει ο Η/Υ το όνομά μας είναι λογικό να το αποθηκεύσει σε μια μεταβλητή onoma με την εντολή readln(onoma).
Οι μεταβλητές έχουν τύπους, ανάλογα με το τι αποθηκεύουμε κάθε φορά.
ΔΗΜΙΟΥΡΓΙΑ ΕΡΓΟΥ - Θα δημιουργήσουμε το νέο έργο systaseis
Κάνουμε όμοιες ενέργειες με την προηγούμενη Άσκηση όπου hello τώρα ο τίτλος είναι systaseis
ΕΝΤΟΛΕΣ
Ανάμεσα στο BEGIN .. END. τοποθετούνται οι εντολές του προγράμματος.
Εμφανίζουμε το μήνυμα Πως σε λένε; με την εντολή που μάθαμε στην προηγούμενη άσκηση
Στην συνέχεια ζητάμε από τον χρήστη να πληκτρολογήσει κάτι που θα το αποθηκεύσουμε στην μεταβλητή onoma. Η εντολή είναι readln(onoma);
Τέλος με την παρακάτω εντολή θα εμφανίσουμε ένα μήνυμα μαζί με το όνομα που μας έδωσε ακριβώς πριν ο χρήστης. Η εντολή είναι writeln('Γεια σου', onoma);
ΜΕΤΑΓΛΩΤΤΙΣΗ / ΕΚΤΕΛΕΣΗ
Πηγαίνουμε Build/Μεταγλώττιση ή F8 για να δημιουργηθεί από το systaseis.pas σε pascal το εκτελέσιμο πρόγραμμα systaseis.exe (στα Windows) ή systaseis (στο Linux) σε γλώσσα μηχανής
Η μεταγλώττιση απέτυχε! Μας βγάζει μήνυμα Αποτυχία μεταγλώττισης μαζί με τον λόγο Error : Identifier not found “onoma”.
-
Είναι η β) περίπτωση. Προσπαθήσαμε να χρησιμοποιήσουμε την μεταβλητή onoma χωρίς να την έχουμε ορίσει στο var
Κάθε μεταβλητή πρέπει να ορίζεται στο var ώστε να γνωρίζει ο υπολογιστής αν θα αποθηκεύσει σε αυτήν κείμενο, αριθμό ή κάτι άλλο. Την ορίζουμε κάτω από το var, γράφοντας onoma : string;
Ξαναπροσπαθούμε να κάνουμε μεταγλώττιση και εκτέλεση.
ΔΙΟΡΘΩΣΕΙΣ / ΑΛΛΑΓΕΣ
Βλέπουμε ότι μας υπογραμμίζεται η δήλωση var i : byte; Και στα μυνήματα μεταγλώττισης εμφανίζεται Note: Local variable “i” not used
-
Είναι η α) περίπτωση. Ορίσαμε μια μεταβλητή στο var αλλά δεν την χρησιμοποιούμε οπότε μπορούμε να την διαγράψουμε από το var
Η μεταβλητή i τύπου byte (μικρός ακέραιος) ορίστηκε μόνη της από το geany και δεν χρειάζεται. Διαγράφουμε το i : byte;. ΠΡΟΣΟΧΗ δεν διαγράφουμε το var είναι προσδιοριστικό για τις δηλώσεις.
Ξανακάνουμε μεταγλώττιση και εκτέλεση. Βλέπουμε ότι το Γεια σου είναι κολλητά με το όνομα. Κάντε μια αλλαγή στον κώδικα για να ξεκολλήσουν.
Προσθέστε στην ίδια γραμμή μετά το κείμενο Γεια σου και την μεταβλητή onoma, το κείμενο . Χάρηκα για την γνωριμία.
ΠΡΟΣΘΗΚΕΣ
Ωραία μάθαμε το όνομα του χρήστη, είμαστε περίεργοι να μάθουμε όμως και την ηλικία. Προσθέστε τον κατάλληλο κώδικα.
Δηλαδή δώστε ένα όνομα στην μεταβλητή που θα αποθηκεύσουμε την ηλικία π.χ. ilikia και να είναι τύπου integer.
Βάλτε τις εντολές στον κώδικα που θα ρωτάει τον χρήστη την ηλικία του, θα διαβάζει από το πληκτρολόγιο και θα εμφανίζει τέλος το μήνυμα Είσαι (ηλικία) χρονών. Εγώ είμαι μόλις 3, όπου ηλικία θα μπει η τιμή της μεταβλητής που έβαλε ο χρήστης.
ΕΝΤΟΛΗ write
Η εντολή writeln έχει το χαρακτηριστικό ότι αφού εμφανίσει το μήνυμά της αλλάζει γραμμή. Κάποιες φορές όμως θέλουμε να παραμείνουμε στην ίδια γραμμή π.χ. ώστε να γράψει ο χρήστης το όνομά του δίπλα από το κείμενο Πως σε λένε; και όχι από κάτω. Ομοίως και όταν τον ρωτάμε την ηλικία του. Κάντε τις αλλαγές από writeln σε write στις 2 ερωτήσεις. ΠΡΟΣΟΧΗ! Μην κολλήσετε την απάντηση με την ερώτηση.
el/school/lessons/programmatismos/pascal/askisi2_readln.txt · Last modified: Y/m/d H:i by vagk