250 likes | 357 Views
Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα. Χρ. Κοίλιας Αναπλ. Καθ. Τμ. Πληροφορικής ΤΕΙ Αθήνας. ή. ποιες επεκτάσεις χρειάζεται η ψευδογλώσσα, ώστε να μην είναι απαραίτητη η ΓΛΩΣΣΑ. 1. Μεταβλητές.
E N D
Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα Χρ. Κοίλιας Αναπλ. Καθ. Τμ. Πληροφορικής ΤΕΙ Αθήνας
ή ποιες επεκτάσεις χρειάζεται η ψευδογλώσσα, ώστε να μην είναι απαραίτητη η ΓΛΩΣΣΑ
1. Μεταβλητές • Πινάκων. Όπως και οι απλές μεταβλητές, αλλά ακολουθούνται από ζεύγος παρενθέσεων ή αγκυλών που περικλείουν έναν ή περισσότερους δείκτες (indexes) χωριζόμενους με κόμμα. Π.χ. Α(3) ή Α[3] και Χ(i, j) ή X[i, j] αλλά και Α3και Χijαντίστοιχα.
2. Τελεστές • Αριθμητικοί +, -, *, /, mod, div, ^ αλλά και 23 Σημ. Ωστόσο η γραφή δεικτών και εκθετών με τον υπολογιστή είναι πρόβλημα.
Συναρτησιακοί τελεστές ή Συναρτήσεις • Αριθμητικές Τριγωνομετρικές: ημ(x), συν(x), εφ(x), τοξεφ(x) Μαθηματικές: abs(x), exp(x), log(x), ln(x), sqr(x), int(x). αλλά και [x], |x|, x • Αλφαριθμητικές left(x, 1), right(x, 2), mid(x, i, j), len(x)
3. Είσοδος και Έξοδος τιμών α) Είσοδος Διάβασελίστα_μεταβλητών β) Έξοδος {Γράψε | Εμφάνισε | Εκτύπωσε} λίστα_μεταβλητών ή/και σταθερών Προβλήματα Γράψε "Αποτελέσματα:", x, 2, 5 Λύσεις • τελεία αντί για κόμμα στις αριθμ. σταθερές • Αλλαγή του κόμματος ως διαχωριστή στη λίστα • Οι σταθερές πάντα σε εισαγωγικά (δηλ. αλφαριθμητικές)
Εναλλακτικά Χρήση των εντολών Δεδομένα και Αποτελέσματα ΑλγόριθμοςΆθροισμα_1 Διάβασε α, β γ α + β Γράψεγ ΤέλοςΆθροισμα_1 ΑλγόριθμοςΆθροισμα_2 Δεδομένα // α, β // γ α + β Αποτελέσματα// γ // ΤέλοςΆθροισμα_2
Σε άλλα βιβλία χρησιμοποιούνται οι εντολές Είσοδος και Έξοδος, π.χ. ΑλγόριθμοςΆθροισμα_2 Είσοδος: α, β Έξοδος : γ γ α + β ΤέλοςΆθροισμα_2
Πρόβλημα 1. Να γραφεί αλγόριθμος ο οποίος να διαβάζει τα στοιχεία του πίνακα Α και να …. • Λύση. Γράφονται οι εντολές ανάγνωσης των στοιχείων του πίνακα και μετά οι εντολές επεξεργασίας του. • Πρόβλημα 2. Δίδεται ο πίνακας Α. Να γραφεί αλγόριθμος ο οποίος …. • Λύση. Ο αλγόριθμος ξεκινά με τη γραμμή Δεδομένα // Α() // και ακολουθούν οι εντολές επεξεργασίας του πίνακα.
Συμπέρασμα Οι εντολές Δεδομένα και Αποτελέσματα • Συντομεύουν τη γραφή των αλγορίθμων • Απαλλάσσουν από τη γραφή τετριμμένου κώδικα και επικεντρώνουν την προσοχή στο προς επίλυση πρόβλημα. • Προτρέπουν το δομημένο προγραμματισμό • Είναι απαραίτητες για την κλήση αλγόριθμου από αλγόριθμο (βλ. παρακάτω).
4. Πολλαπλή εντολή επιλογής Επίλεξεέκφραση Περίπτωση τιμές_1 εντολές_1 Περίπτωσητιμές_2 εντολές_2 ............................... Περίπτωσητιμές_ν εντολές_ν Περίπτωση αλλιώς εντολές_αλλιώς Τέλος_επιλογών Οι τιμές_i μπορεί να είναι: • διάφορες τιμές χωριζόμενες με κόμμα π.χ. 1, 3, 7, 11 • τιμές που ορίζονται με τη χρήση ενός σχεσιακού τελεστή π.χ. > 10 • τιμές που είναι όροι αριθμητικής προόδου
5. Γενικό επαναληπτικό σχήμα 1η σύνταξη Κάνε [ {όσο | μέχρις ότου} συνθήκη ] εντολές επανάληψη 2η σύνταξη Κάνε εντολές επανάληψη[ {όσο | μέχρις ότου} συνθήκη ]
6. Κλήση αλγόριθμου από αλγόριθμο Ένας αλγόριθμος μπορεί να καλεί έναν άλλο με χρήση της εντολής Κάλεσε
α) Με χρήση καθολικών μεταβλητών Αλγόριθμος Καλών Καθολικές Μεταβλητέςα, β, γ Διάβασε α, β ΚάλεσεΚαλούμενος Γράψε"Αποτέλεσμα = ", γ Τέλος Καλών Αλγόριθμος Καλούμενος γ α + β Τέλος Καλούμενος
β) Με μεταβίβαση τιμών ΑλγόριθμοςΚαλών Διάβασε α, β ΚάλεσεΚαλούμενος (α, β, γ) Γράψε "Αποτέλεσμα = ", γ Τέλος Καλών Αλγόριθμος Καλούμενος Δεδομένα// x, y // z x + y Αποτελέσματα // z // Τέλος Καλούμενος Η αντιστοιχία των μεταβλητών των δύο αλγορίθμων γίνεται με τη σειρά που αναφέρονται στις αντίστοιχες γραμμές, δηλ. α x, β y και γ z. Ερώτηση Με αναφορά ή με τιμή; Απάντηση Με τιμή
γ) Αναδρομή Αλγόριθμος ΜΚΔ Δεδομένα// x, y // z x mody Ανz 0 τότε ΚάλεσεΜΚΔ (y, z, m) αλλιώς m y Τέλος_αν Αποτελέσματα // m // ΤέλοςΜΚΔ
7. Συναρτήσεις ΣυνάρτησηF Δεδομένα // x, y // F←x^2+y^2+x*y ΤέλοςF κλήση ΕμφάνισεF(1,2)
8. Αποθήκευση αποτελεσμάτων και είσοδος προαποθηκευμένων τιμών
Είσοδος Διάβασε [από πληκτρολόγιο] α Διάβασε από αρχείο α Έξοδος Εμφάνισε [στην οθόνη] α Γράψε [στον εκτυπωτή] α Γράψεστο αρχείο α
Παραδείγματα • Διάβασε “STOCK.DAT”, α • Γράψε“CUSTOMER.TXT”, α ή πιο τυπικά • Άνοιξε“STOCK.DAT” για Είσοδοωςf1 • Διάβασεf1, α • Άνοιξε “CUSTΟMER.TXT” για Έξοδοως f2 • Γράψεf2, α
ή αλά BASIC • Άνοιξε“STOCK.DAT” για Είσοδοως #1 • Διάβασε#1, α • Άνοιξε “CUSTΟMER.TXT” για Έξοδοως #2 • Γράψε#2, α
Παραδείγματα a) Εκτύπωση διαδοχικού αρχείου ΑλγόριθμοςList_Seq_File Άνοιξε"CUST.SEQ"για Είσοδο ως#1 Όσο όχιΕΟF(1)επανάλαβε Διάβασε#1, κωδ, ον_μο, ΑΦΜ, υπολ Εκτύπωσεον_μο, υπολ Τέλος_επανάληψης Κλείσε#1 ΤέλοςList_Seq_File
β) Εκτύπωση άμεσου αρχείου (random) Αλγόριθμος List_Rnd_File Άνοιξε"CUST.DAT" ως #1 Πεδία#1, κωδ, ον_μο, ΑΦΜ, υπολ αρ_εγγρ 0 Όσο όχι ΕΟF(1) επανάλαβε αρ_εγγρ αρ_εγγρ +1 Διάβασε#1, αρ_εγγρ Εκτύπωσε ον_μο, υπολ Τέλος_επανάληψης Κλείσε#1 Τέλος List_Rnd_File
τελειώνοντας • Το μάθημα δεν πρέπει να ασχολείται με άλλες δομές δεδομένων εκτός από τον πίνακα
και τέλος … Το όνομα του μαθήματος να γίνει [Εισαγωγή στην] Αλγοριθμική