====== Άσκηση 5 - Εμφωλιασμένες if ====== * Μέχρι τώρα έχουμε δει τις **writeln** και **readln**, έχουμε κάνει πράξεις και αποθηκεύσαμε τιμές σε μεταβλητές. Είδαμε τέλος πως ελέγχουμε αν ισχύει κάτι με την **if** και **τότε** εκτελούμε κάποιες εντολές **αλλιώς** εκτελούμε άλλες * Στην νέα άσκηση θα δούμε τα εξής : * Πως μπορούμε να βάλουμε if μέσα σε if κάνοντας επιπλέον ελέγχους. * Έστω λοιπόν ότι έχουμε γραφείο ευρέσεως εργασίας και υπάρχουν 4 διαθέσιμες δουλειές : **Οδηγός νταλίκας**, **Delivery με παπάκι**, **Κομμώτρια** και **Εργάτης σε οικοδομή**. * Έρχονται άτομα που ψάχνουν για δουλειά. Θα τους κάνουμε κάποιες βασικές ερωτήσεις, ώστε να τους προτείνουμε τελικά μόνο μία δουλειά. {{ :el:school:lessons:programmatismos:pascal:ergasia_flowchart_simple.png?74x49 }} - **ΔΗΜΙΟΥΡΓΙΑ ΕΡΓΟΥ** : Θα δημιουργήσουμε το νέο έργο **ergasia** * Κάνουμε όμοιες ενέργειες όπως στην Άσκηση1, όπου hello τώρα ο τίτλος είναι **ergasia** - **ΕΝΤΟΛΕΣ** - Ανάμεσα στο **BEGIN .. END.** τοποθετούνται οι εντολές του προγράμματος. - Η 1η ερώτηση που θα κάνουμε είναι **Έχεις δίπλωμα;(ναι/όχι)**. Δεν θα αλλάξουμε γραμμή ώστε να απαντήσει δίπλα. Θα διαβάσουμε από το πληκτρολόγιο και θα αποθηκεύσουμε σε μια μεταβλητή π.χ. **diploma**. - Σε παρένθεση του βάζουμε τις πιθανές απαντήσεις (ναι/όχι). Προσοχή!! Για απλότητα, αν απαντήσει οτιδήποτε άλλο εκτός από **ναι**, θεωρούμε ότι απάντησε **όχι**. - Στην συνέχεια ελέγχουμε την απάντηση με την **if** {.. εντολές για εμφάνιση ερώτησης και διάβασμα της απάντησης από πληκτρολόγιο - Τα ξέρετε ήδη.. } if diploma='ναι' then begin {.. εντολές1} end else begin {.. εντολές2} end - Στις **εντολές1** θα ξαναρωτήσουμε **Έχεις επαγγελματικό δίπλωμα;(ναι/όχι)**. Δεν θα αλλάξουμε γραμμή ώστε να απαντήσει δίπλα. Θα διαβάσουμε από το πληκτρολόγιο και θα αποθηκεύσουμε σε μια μεταβλητή π.χ. **epaggelmatiko**. - Στην συνέχεια ελέγχουμε την 2η απάντηση με την **if** .. if diploma='ναι' then begin {.. εντολές για εμφάνιση ερώτησης και διάβασμα της απάντησης από πληκτρολόγιο - Τα ξέρετε ήδη.. } if epaggelmatiko='ναι' then {εμφανίζουμε στην οθόνη μήνυμα 'Σου προτείνω εργασία σαν Οδηγός Νταλίκας' } else {εμφανίζουμε στην οθόνη μήνυμα 'Σου προτείνω εργασία σαν Delivery με παπάκι' } end else begin {.. εντολές2} end - Στο **else** τώρα θα κάνουμε αντίστοιχα ερώτηση **Τι φύλο είσαι;(Α/Γ)**. Δεν θα αλλάξουμε γραμμή ώστε να απαντήσει δίπλα. Θα διαβάσουμε από το πληκτρολόγιο και θα αποθηκεύσουμε σε μια μεταβλητή π.χ. **fylo**. - Σε παρένθεση του βάζουμε τις πιθανές απαντήσεις (Α/Γ). Προσοχή!! Για απλότητα, αν απαντήσει οτιδήποτε άλλο εκτός από **Α** (ελληνικό), θεωρούμε ότι απάντησε **Γ**. - Στην συνέχεια ελέγχουμε την 2η απάντηση με την **if** και εμφανίζουμε τα μηνύματα **Σου προτείνω εργασία ως Κομμώτρια** ή **Σου προτείνω εργασία ως Εργάτης σε Οικοδομή**, αντίστοιχα όπου πρέπει το καθένα (στο **then** ή στο **else**) {{ :el:school:lessons:programmatismos:pascal:ergasia_flowchart_full.png?74x49 }} -**ΠΡΟΣΘΗΚΕΣ 1** - Στις δηλώσεις όλες οι μεταβλητές είναι ίδιου τύπου. Δηλώστε τις όλες σε μία γραμμή. - Στον προγραμματισμό αποφεύγουμε να έχουμε ίδια πράγματα σε πολλά σημεία. Εδώ έχουμε το κείμενο **Σου προτείνω εργασία ως** 4 φορές. Αν αποφασίσουμε να το γράψουμε διαφορετικά π.χ. **Μπορείς να δουλέψεις ως** θα πρέπει να το αλλάξουμε 4 φορές. Το μοναδικό που αλλάζει κάθε φορά είναι το επάγγελμα. Θα κάνουμε λοιπόν τα εξής. - Θα ορίσουμε μια νέα μεταβλητή **protasi_ergasias** - Αντί για **writeln('Σου προτείνω εργασία σαν Οδηγός Νταλίκας')** θα έχουμε **protasi_ergasias:='Οδηγός Νταλίκας'**. Το μόνο που αλλάζει, δηλαδή. Αντίστοιχα θα αλλάξουμε και τα άλλα 3 σημεία. - Έξω από όλη την **if .. then .. else** θα εμφανίσουμε το μήνυμα **Σου προτείνω εργασία σαν //ταδε//** (όπου //τάδε// η μεταβλητή που έχει την εργασία). ---- * **ΕΠΕΚΤΑΣΗ 1 / ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ** * Δείτε την επέκταση της προηγούμενης άσκησης, όπου ο Κώστας είναι 12 χρονών και λαμβάνουμε από τον χρήστη το όνομα και την ηλικία του. * Ελέγξαμε αν ο χρήστης είναι μεγαλύτερος και εμφανίζουμε κάτι, αλλιώς εμφανίζουμε κάτι άλλο. - Στο αλλιώς να γίνει ξανά έλεγχος (με εμφωλιασμένη **if**) ώστε αν είναι ίδια ηλικία να εμφανίσει ένα ανάλογο μήνυμα αλλιώς να εμφανίσει ότι είσαι //τόσα// χρόνια μικρότερος * **ΕΠΕΚΤΑΣΗ 2 / ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ** * Δείτε το **//''{{:el:school:lessons:programmatismos:pascal:ergasia_flowchart_full.png?linkonly|Διάγραμμα Ροής}}''//** για το πρόγραμμα ergasia. * Αποτελείται από **τετράγωνα** - (εντολές ακολουθίας), **ρόμβους** - (συνθήκες if) και **βελάκια** που μας δείχνουν προς τα που θα πάει η εκτέλεση. Είναι απλό - Σχεδιάστε (με μολύβι) κάτι αντίστοιχο στο τετράδιό σας για το πρόγραμμα της **ΕΠΕΚΤΑΣΗΣ 1** με την ηλικία.