LinuxFanClub Wiki

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

User Tools

Site Tools


el:school:lessons:programmatismos:pascal:askisi6_epiloges_case_char

Άσκηση 6 - Επιλογές - case

  • Μεταξύ άλλων μέχρι στιγμής έχουμε δει μεταβλητές τύπου string και integer και πως ελέγχουμε αν ισχύει ή όχι κάτι με την if .. then .. else (2 περιπτώσεις).
  • Στην νέα άσκηση θα δούμε επιπλέον τα εξής :
    • Νέο τύπο μεταβλητής char
    • Πως επιλέγουμε τι θα κάνουμε μεταξύ πολλών περιπτώσεων με την case
  • Κάθε πρόγραμμα κάνει αρκετά πράγματα. Θα φτιάξουμε λοιπόν το πρώτο μας μενού επιλογών.
  1. ΔΗΜΙΟΥΡΓΙΑ ΕΡΓΟΥ : Θα δημιουργήσουμε το νέο έργο epiloges
    • Κάνουμε όμοιες ενέργειες όπως στην Άσκηση1, όπου hello τώρα ο τίτλος είναι epiloges
  2. ΕΝΤΟΛΕΣ
    • Το μενού μας θα είναι ως εξής :
        1. Διαίρεση Ακεραίων
        2. Διαίρεση Πραγματικών
        3. Μονά/Ζυγά
        0. Έξοδος
    1. Φτιάξτε το με εντολές εμφάνισης στην Οθόνη που γνωρίζετε.
    2. Αφήστε μία κενή γραμμή με μια writeln(' '); και ζητήστε από τον χρήστη να εισάγει επιλογή εμφανίζοντάς του στην Οθόνη το κατάλληλο μήνυμα.
    3. Διαβάστε ότι έγραψε ο χρήστης και αποθηκεύστε το σε μια μεταβλητή π.χ. epilogi (Τι τύπου είναι; Δηλώστε την..)
    4. Τώρα θα εισάγουμε τον κώδικα που θα χρησιμοποιήσει την τιμή της μεταβλητής epilogi και θα κάνει 4 διαφορετικά πράγματα.
        case epilogi of
           1: writeln('**ΔΙΑΙΡΕΣΗ ΑΚΕΡΑΙΩΝ**');
           2: writeln('**ΔΙΑΙΡΕΣΗ ΠΡΑΓΜΑΤΙΚΩΝ**');
           3: writeln('**ΜΟΝΑ/ΖΥΓΑ**');
           0: writeln('Γεια..');
        end  {case}
    • Η εντολή case λειτουργεί ως εξής. Όταν η τιμή της μεταβλητής είναι 1 θα εκτελέσει την εντολή δίπλα, δηλαδή writeln('*Διαίρεση Ακεραίων*');. Όταν είναι 2 αντίστοιχα κτλ
    • Μετά το end έχουμε βάλει σε σχόλια {case} για να θυμόμαστε ότι είναι το τέλος της case.
    • Η απλή σύνταξη της case είναι λοιπόν η εξής:
        case {μεταβλητή} of
           {τιμή μεταβλητής}: {εντολή ή εντολές μέσα σε begin .. end} 
           {άλλη τιμή μεταβλητής}: {εντολή ή εντολές μέσα σε begin .. end} 
        end  
  3. ΠΡΟΣΘΗΚΗ 1
    1. Χειριζόμαστε τις τιμές 1,2,3,0. Τι θα γίνει όμως αν ο χρήστης επιλέξει π.χ. 5; Εκτελέστε το πρόγραμμα και δώστε σαν χρήστης επιλογή 5.
    2. Το πρόγραμμα δεν πήγε σε καμία από τις περιπτώσεις 1,2,3,0 και δεν εμφάνισε κανένα μήνυμα. Λογικό. Θα ήταν πιο ωραίο να εμφανιζόταν ένα μήνυμα π.χ. Λάθος επιλογή. Πάνω από την end λοιπόν βάλτε else writeln('Λάθος επιλογή'); και ξαναμεταγλωττίστε και εκτελέστε. Καλύτερο;
  4. ΠΡΟΣΘΗΚΗ 2
    • Πολλές φορές θέλουμε η έξοδος να γίνεται από κάποιο γράμμα π.χ. q από το quit (παραιτούμαι) ή x από το exit και όχι το 0.
    • Όμως ορίσαμε την μεταβλητή epilogi ως integer να λαμβάνει δηλαδή ακεραίους. H case δέχεται και μοναδικούς χαρακτήρες που δηλώνονται ως char
    1. Αλλάξτε την δήλωση της μεταβλητής epilogi ώστε να είναι char (ένας μόνο χαρακτήρας).
    2. Αλλάξτε επίσης μέσα στην case τα 1, 2, 3 σε '1', '2', '3' γιατί τώρα τα χρησιμοποιούμε ως χαρακτήρες. Αλλάξτε επίσης το 0 σε 'x'


  • ΕΠΕΚΤΑΣΗ 1 / ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ
    • Ζητήστε από τον χρήστη να σας δώσει 2 ακεραίους αριθμούς.
    • Δώστε του μια λίστα με επιλογές και διαβάστε την επιλογή που θα κάνει
        1. Πρόσθεση
        2. Αφαιρεση
        3. Πολλαπλασιασμός
        q. Έξοδος
    • Με χρήση case και μία εντολή μόνο σε κάθε περίπτωση, κάντε την αντίστοιχη πράξη και αποθηκεύστε σε μια νέα μεταβλητή το αποτέλεσμα.
    • Έξω από την case εμφανίστε το αποτέλεσμα
el/school/lessons/programmatismos/pascal/askisi6_epiloges_case_char.txt · Last modified: Y/m/d H:i by vagk