LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:school:lessons:programmatismos:pascal:askisi2_readln

Άσκηση 2 - readln - μεταβλητές

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

  • ΕΠΕΚΤΑΣΗ / ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ
    1. Εμφάνιση ερώτησης Τι ομάδα υποστηρίζεις; και αποθήκευση της ομάδας σε μια μεταβλητή.
    2. Εμφάνιση ερώτησης Πόσα πρωταθλήματα έχετε πάρει; και αποθήκευση του αριθμού σε μια μεταβλητή.
    3. Εμφάνιση κειμένου Εσύ είσαι οπαδός της ομάδας (omada) και έχετε πάρει (prwtathlimata) πρωταθλήματα. Εγώ είμαι οπαδός του Big Blue που κέρδισε το 1997 τον παγκόσμιο πρωταθλητή στο σκάκι Γκάρι Κασπάροβ. Όπου (omada) και (prwtathlimata) οι αποθηκευμένες απαντήσεις που έδωσε ο χρήστης.
el/school/lessons/programmatismos/pascal/askisi2_readln.txt · Last modified: Y/m/d H:i by vagk