Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα Χρ. Κοίλιας Αναπλ. Καθ. Τμ. Πληροφορικής ΤΕΙ Αθήνας
ή ποιες επεκτάσεις χρειάζεται η ψευδογλώσσα, ώστε να μην είναι απαραίτητη η ΓΛΩΣΣΑ
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. Είσοδος και Έξοδος τιμών 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 mod y Κάλεσε ΜΚΔ (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
τελειώνοντας Το μάθημα δεν πρέπει να ασχολείται με άλλες δομές δεδομένων εκτός από τον πίνακα
[Εισαγωγή στην] Αλγοριθμική και τέλος … Το όνομα του μαθήματος να γίνει [Εισαγωγή στην] Αλγοριθμική