ψευδογλώσσα και πίνακες

Ξεκίνησε από gthal, 30 Μαΐου 2010, 02:23:04 ΜΜ

« προηγούμενο - επόμενο »

gpapargi

Παράθεση από: bagelis στις 02 Ιουν 2010, 04:16:44 ΜΜ
σελ 90 σχολικό βιβλίο (όπως πολύ εύστοχα εντόπισε ο συνάδελφος): Υλοποιεί αλγόριθμο χρημιμοποιώντας πίνακα με άγνωστο αρχικά πλήθος στοιχείων.
Αλγόριθμος Δύναμη2
Δεδομένα // a, b //
!Σχόλιο: αποθήκευση στοιχείων πίνακα
power[1] ← a
i ← 1
pow ← 1
Όσο pow < b επανάλαβε
i ← i+1
pow ← 2* pow
power ← power[i-1] * power[i-1]
Τέλος_επανάληψης
Σελ 32 Τετράδιο Μαθητή Αραιοί Πίνακες είναι προφανές ότι το μέγεθος του πίνακα που δημιουργείται καθορίζεται κατά τη στιγμή της εκτέλεσης. Δεν γνωρίζεις από πριν τον αριθμό των μη μηδενικών στοιχείων του δισδιάστατου πίνακα.

Αντί να αποθηκεύσουμε αυτόν το δισδιάστατο πίνακα 4x5, θα θεωρήσουμε ένα μο-
νοδιάστατο πίνακα όπου θα τοποθετήσουμε μόνο τα μη μηδενικά στοιχεία, για τα ο-
ποία όμως χρειαζόμαστε τα στοιχεία των αντίστοιχων γραμμών και στηλών. Έτσι κα-
ταλήγουμε κάθε μη μηδενικό στοιχείο να αντιπροσωπεύεται από μία τριάδα στοι-
χείων, δηλαδή <γραμμή,στήλη,τιμή>. Για το λόγο αυτό δημιουργούμε ένα μονοδιά-
στατο πίνακα 18 θέσεων για τα 6 μη μηδενικά στοιχεία του αρχικού πίνακα.


Θα προσπαθήσω να αναλύσω τα 2 παραδείγματα που αναφέρονται μέσα στο πακέτο (αυτό με την ύψωση σε δύναμη και αυτό με τους αραιούς) ως προς τη δήλωση Δεδομένα και το μέγεθος των πινάκων.

Καταρχήν γράφω πως κατά τη γνώμη μου λειτουργεί η δήλωση Δεδομένα.

Το Δεδομένα //χ// σημαίνει το πιο απλό που θα μπορούσε με βάση την έννοια της λέξης «δεδομένα»: ότι το χ είναι δεδομένο και ξέρουμε την τιμή του. Αυτό μας επιτρέπει να δηλώσουμε το μέγεθος του πίνακα όπως χρειαστεί αν εξαρτάται αποκλειστικά από το χ. Δεν είναι σωστό να προχωρήσουμε σε άλλη παραδοχή πέρα από αυτή που περιγράφω και είναι απολύτως προφανής. Το να προσπαθήσουμε να το συσχετίσουμε με τον τμηματικό είναι νομίζω αυθαίρετο. Παρόλα αυτά δεν νομίζω ότι δημιουργεί ασυνέπεια.   

Στο παράδειγμα με τους αραιούς (τετράδιο μαθητή σελίδα 32-33) λέει καθαρά ότι το πλήθος των μη μηδενικών στοιχείων είναι n. Αυτό σημαίνει ότι θέλουμε μονοδιάστατο πίνακα 3n θέσεων. Προσέξτε πως δηλώνεται αυτό:
Δεδομένα //sparse, n//
Το σημαντικό είναι ότι το n περιλαμβάνεται στα δεδομένα δεν είναι το μέγεθος του πίνακα. Το μέγεθος του πίνακα είναι 3n. Το n απλά το γνωρίζουμε και άρα μπορούμε να δηλώσουμε το μέγεθος του κατάλληλου πίνακα (που εδώ είναι 3n).

Στο σημείο αυτό πρέπει να ξεκαθαρίσουμε κάτι: Θα ήταν αρχικά λογικό να σου δίνουν έναν τελείως άγνωστο πίνακα και να σου ζητάνε συμπίεση. Δηλαδή αυτό θα θέλαμε να κάνει μια αληθινή εφαρμογή και όχι να το θεωρεί δεδομένο και άρα να λειτουργεί μόνο για αυτό. Στο σημείο αυτό θέλω να πω ότι έτσι κι αλλιώς δεν έχει νόημα να μιλάμε για συμπίεση στατικής δομής αφού το μέγεθος που καταλαμβάνεις τη μνήμη δε θα αλλάξει. Η συμπίεση είναι για αρχεία. Απλά επειδή θέλει να μας δείξει τον αλγόριθμο συμπίεσης χρησιμοποιεί τη μόνη διαθέσιμη δομή που έχουμε και επιτρέπει ομαδικό χειρισμό των δεδομένων (τον πίνακα).

Προσοχή τώρα στο εξής:
Αν ο πίνακας έχει μέγεθος κάποιο γνωστό αριθμό από την εκφώνηση (πχ μας λέει η εκφώνηση ότι το πλήθος των στοιχείων είναι ακριβώς ή το πολύ 100 και τα περιεχόμενά του είναι δεδομένα, τότε η δήλωση δεδομένα γράφεται
Δεδομένα //Α//   
Δεν γράφεται //Δεδομένα Α, 100// γιατί το 100 εννοείται ότι είναι δεδομένο. Ένα τέτοιο χαρακτηριστικό παράδειγμα μπορούμε να δούμε στο τετράδιο μαθητή κεφάλαιο 4 παράδειγμα 1 (σελίδα 37-38). Ο πίνακας με τα τηλέφωνα έχει μέγεθος 1000 και η δήλωση είναι Δεδομένα // THL//

Εννοείται πως αν ο πίνακας είναι αρχικά άδειος και τα στοιχεία του θα τα γεμίσουμε εμείς τότε δεν γράφεται τίποτα στα δεδομένα. Τα περιεχόμενά του είναι άδεια, άρα δεν έχει νόημα το Δεδομένα //Α// και το πλήθος του είναι γνωστό πχ 100 και δεν έχει νόημα σταθερός συγκεκριμένος αριθμός να μπει μέσα στα Δεδομένα.

Αυτό θεωρώ ότι συμβαίνει στο παράδειγμα με την ύψωση σε δύναμη στο βιβλίο μαθητή στη σελίδα 89-90. Τα περιεχόμενα του πίνακα δεν υπάρχουν από πριν και κατασκευάζονται από τον αλγόριθμο. Οπότε δεν έχει νόημα ο πίνακας power να είναι στα δεδομένα. Το μέγεθος του πίνακα θεωρείται γνωστό αριθμός (πχ 100) και δεν δηλώνεται. Το ερώτημα είναι: πόσο μεγάλο χρειάζεται να είναι αυτό το μέγεθος; Πως μεγαλώνει το πλήθος των χρησιμοποιούμενων με βάση τους αριθμούς που δίνονται για ύψωση σε δύναμη α^β;
Δεν έκατσα να το δω πολύ προσεκτικά αλλά βλέποντας το σχήμα στην πρώτη θέση του πίνακα είναι η δύναμη α^0, στην δεύτερη α^1, μετά το α^2, α^4, α^8 και γενικά στη θέση ν του πίνακα μπαίνει το α^(2^(ν-2)). Ατό σημαίνει ότι αγνοώντας κάτι σταθερούς όρους βγαίνει ότι για να υψώσεις στην b θέλεις περίπου (τάξη) λογάριθμο με βάση 2 του b. Πχ για να υψώσεις στην 1000000 θέλεις γύρω στις 20 θέσεις στον πίνακα.  Με δεδομένο ότι οι υπολογιστές έχουν και κάποιο όριο στους αριθμούς που υποστηρίζουν με ένα πίνακα 100 θέσεων είσαι ΟΚ και πολλά λέω.

Το συγκεκριμένο παράδειγμα μπορείς να το δεις και διαφορετικά. Δηλαδή να δεχτείς ότι ο αλγόριθμος υπολογίζει μόνο για τα συγκεκριμένα a και b την ύψωση σε δύναμη a^b και ότι αυτό σου δίνει τη δυνατότητα να ξέρεις το μέγεθος του πίνακα που είναι μια λογαριθμική συνάρτηση του b (πιθανόν λίγο ολισθημένη λόγω κάποιων σταθερών). Δηλαδή μια λογική που ισχύει και στο παράδειγμα της συμπίεσης των πινάκων που εκ των πραγμάτων (λόγω του ότι η στατική δομή δεν μπορεί να μειώσει τον αποθηκευτικό της χώρο) μιλάμε για συγκεκριμένους πίνακες μόνο και μόνο για να δείξουμε τον αλγόριθμο.

Εγώ με βάση το βιβλίο και λαμβάνοντας υπόψη την παιδαγωγική σκοπιά του πράγματος θεωρώ ότι δεν είναι δυνατόν σε ένα εκπαιδευτικό πλαίσιο να δεχόμαστε λύσεις σε ψευδογλώσσα που δεν μεταφέρονται ακριβώς σε ΓΛΩΣΣΑ γιατί τότε ο μαθητής θα φτιάξει ένα κώδικα σε ψευδογλώσσα και όταν θα πάει στο εργαστήριο για υλοποίηση θα πρέπει να τον αλλάξει. Άρα δε μεταφέρει αυτό που έγραψε στο χαρτί αλλά κάτι άλλο.

Δε με νοιάζει αν μελλοντικά φτιάξουμε ένα περιβάλλον με δυναμικούς πίνακες. Απλά πιστεύω ότι με βάση το υπάρχον βιβλίο είναι εκτός συζήτησης. Καλώς ή κακώς το βιβλίο ξεκαθαρίζει ότι ασχολείται μόνο με στατικές δομές.

Σε προηγούμενο μήνυμά μου πιστεύω ότι απέδειξα ότι αν δεχτούμε σα λύση το
Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης

ενώ δεν ξέρουμε το μέγεθος του πίνακα (πχ θέμα Γ) τότε πρέπει να δεχτούμε και το
Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης
Διάβασε α[ν+1]

Καθώς και το
Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης
Διάβασε κ
Διάβασε α[ν+κ]

Αλλά και το
ι<-0
Διάβασε χ
Όσο χ <>0 επανάλαβε
   ι<-ι+1
   Α[ι]<-χ
   Διάβασε χ
Τέλος_επανάληψης

βλέπε μήνυμα
https://alkisg.mysch.gr/steki/index.php?topic=2953.msg29448#msg29448

Αλλά το τελευταίο σημαίνει δυναμική δομή. Οπότε με βάση το υπάρχον πακέτο δεν γίνεται.

Το πρόβλημα του βιβλίου είναι πως ορίζει τις στατικές δομές στη σελίδα 56. Είναι όμως δυνατόν να οριστεί το μέγεθος κατά την εκτέλεση και η δομή να είναι στατική αφού δεν αλλάζει ο αποθηκευτικός χώρος. Όμως η πρόθεση των συγγραφέων για στατική δομή και όχι δυναμική είναι ξεκάθαρη. Η αποδοχή της λύσης
Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης

στηριζόμενη στα παραδείγματα του διδακτικού πακέτου, οδηγεί τελικά στη χρήση δυναμικών δομών και για αυτό κατά τη γνώμη μου δεν πρέπει να θεωρηθεί σωστή.

gpapargi

Παράθεση από: sstergou στις 03 Ιουν 2010, 11:26:31 ΠΜ
Περιμένω εναγωνίως να ακούσω τον ορισμό της στατικότητας του Γιώργου :)

Sorry ΣΤάθη τώρα το είδα δυστυχώς δεν τα έχω διαβάσει όλα (είναι πολλά πανάθεμά τα).
Εγώ πάντα διαλέγω την απλούστερη ερμηνεία. Στατικό σημαίνει κάτι που δεν αλλάζει και δυναμικό κάτι που αλλάζει. Άρα στατική δομή είναι η δομή στην οποία δεν αλλάζει το μέγεθος τοτυ αποθηκευτικού χώρου στη μνήμη. Δυναμική αυτή στην οποία αλλάζει.
Στη C τα είπαμε... γίνεται να δηλωθεί το μέγεθος κατά την εκτέλεση (το λάθος του σχολικού βιβλίου) και η δομή να είναι στατική αφού αν οριστεί μια φορά το μέγεθος του πίνακα μετά δεν αλλάζει. 
Η δομή που υποστηρίζεις είναι στατική. Αλλά αν την αποδεχτούμε βγάζουμε ασυνεπές το πακέτο για τους λόγους που συζητάμε (παραδείγματα).

Η προσέγγιση που έχω εγώ για το Δεδομένα //Α,ν// σε ψευδογλώσσα θεωρώ πως δεν οδηγεί το πακέτο σε ασυνέπειες οπότε δε βλέπω λόγο να μην την υιοθετήσουμε. Μένουμε ως έχει. Με τη λογική που προτείνεις εσύ πάμε για αλλαγές στο πακέτο. Εγώ πάντα κοιτάω αν κάνουμε δουλειά όπως είμαστε. Μην μπλέκουμε σε ιστορίες. Πάντα η απλούστερη λύση είναι η προτιμότερη.

Επίσης ξεκαθαρίζω ότι για εκπαιδευτικό περιβάλλον θέλω ΓΛΩΣΣΑ και ψευδογλώσσα να υποστηρίζουν ίδιες λύσεις.

Σπύρος Δουκάκης

Το βιβλίο καθηγητή αναπτύσσει με πληρότητα το ρόλο των δηλώσεων Δεδομένα και Αποτελέσματα τα οποία σημείωσα σε προηγούμενο μνμ.

Παράθεση από: sdoukakis στις 02 Ιουν 2010, 08:49:07 ΜΜ
Η έννοια των εντολών Δεδομένα και Αποτελέσματα εξηγείται στο βιβλίο καθηγητή (Βακάλη κ.α., 1999, σ. 66), όπου δίνεται έμφαση στα πλεονεκτήματα που έχει ένας αλγόριθμος με δεδομένα και αποτελέσματα. Χαρακτηριστικά αναφέρει ότι με τη χρήση των δηλωτικών εντολών Δεδομένα και Αποτελέσματα:
1.   Ο αλγόριθμος λύνει το πρόβλημα και δεν ασχολείται με τον τρόπο εισαγωγής δεδομένων και παρουσίασης αποτελεσμάτων.
2.   Αν ο αλγόριθμος υλοποιηθεί ως υποπρόγραμμα ή συνάρτηση, τότε είναι προτιμότερο να μην έχει εντολές εισόδου-εξόδου. Οι γραμμές Δεδομένα και Αποτελέσματα παραπέμπουν ακριβώς στο πέρασμα παραμέτρων στη διαδικασία.

Παράθεση από: gpapargi στις 03 Ιουν 2010, 12:24:37 ΜΜ
Καταρχήν γράφω πως κατά τη γνώμη μου λειτουργεί η δήλωση Δεδομένα.
Το Δεδομένα //χ// σημαίνει το πιο απλό που θα μπορούσε με βάση την έννοια της λέξης «δεδομένα»: ότι το χ είναι δεδομένο και ξέρουμε την τιμή του. Αυτό μας επιτρέπει να δηλώσουμε το μέγεθος του πίνακα όπως χρειαστεί αν εξαρτάται αποκλειστικά από το χ. Δεν είναι σωστό να προχωρήσουμε σε άλλη παραδοχή πέρα από αυτή που περιγράφω και είναι απολύτως προφανής. Το να προσπαθήσουμε να το συσχετίσουμε με τον τμηματικό είναι νομίζω αυθαίρετο. Παρόλα αυτά δεν νομίζω ότι δημιουργεί ασυνέπεια.   

sstergou

Γιώργο διάβασα την ανάρτησή σου με προσοχή.

Διαφωνώ σε 3 σημεία. Γενικά πιστεύω ότι

1) Η πρόθεση των συγγραφέων για τα Δεδομένα, όπως λέει και ο Σπύρος, ήταν αυτά να μπορούν να θεωρηθούν ως παράμετροι. Δεν νομίζω πως αυτό είναι αυθαίρετο, ίσα ίσα, αυτό αναφέρεται στο βιβλίο καθηγητή αλλά και υπάρχουν παραδείγματα που το στηρίζουν. Η ερμηνεία που δίνεις για τα δεδομένα είναι διαισθητική, αλλά δεν μου αρέσει γιατί εισάγει έναν διαφορετικό τρόπο σκέψης τον οποίο θεωρώ ότι πρέπει να αποφύγουμε.

2) Δεν ξέρω αν πρέπει να δεχόμαστε τα ίδια ως σωστά (στην ψευδογλώσσα και στην ΓΛΩΣΣΑ). Αλλά αν πρέπει (και αυτό είναι λογικό) τότε ίσως θα ήταν καλύτερα να δεχόμαστε αυτά που εστιάζουν στην αλγοριθμική σκέψη και όχι απαραίτητα αυτά τα οποία ισχύουν σε ένα από τα δύο. Η απόφαση ας είναι διαφορετική κάθε φορά, είμαστε πάνω απ' όλα παιδαγωγοί και μπορούμε να κρίνουμε!

3)
ΠαράθεσηΗ αποδοχή της λύσης
Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης

στηριζόμενη στα παραδείγματα του διδακτικού πακέτου, οδηγεί τελικά στη χρήση δυναμικών δομών και για αυτό κατά τη γνώμη μου δεν πρέπει να θεωρηθεί σωστή.

Εδώ διαφωνώ και πιστεύω ότι η αφηρημένη δομή του πίνακα μπορεί να χρησιμοποιηθεί με τρόπο που δεν παραβιάζει την στατικότητα και που το μέγεθός της καθορίζεται (αλλά δεν αλλάζει) κατά την εκτέλεση. Εδώ πρέπει να κρίνουμε κατά περίπτωση και σίγουρα πρέπει να έχουμε όλο τον αλγόριθμο. Η ύπαρξη δηλαδή του Διάβασε Ν δεν αποδεικνύει κάτι.

Ήρθε η ώρα μου όμως θα αποχωρήσω από αυτή τη συζήτηση, πιστεύω δεν έχω να προσθέσω κάτι άλλο και ότι έκανα τα επιχειρήματά μου σαφή και κατανοητά.

Θα ήθελα μόνο και από τον Άλκη μια απάντηση στα μηνύματα όπου περιγράφω την δομή.

Νομίζω ότι έμαθα αρκετά από την συζήτηση και χαίρομαι που αυτή διεξάχθηκε σε αυτό το κλίμα ακόμη και αν στο τέλος δεν συμφωνήσαμε όλοι με όλους! (κάτι που φυσικά ανήκει στη σφαίρα της φαντασίας).

Πάω να ρίξω καμιά βουτιά τώρα γιατί ζαλίστηκα!

Σπύρος Δουκάκης

Διαφωνώ σε αυτή την πρόταση.

Παράθεση από: gpapargi στις 03 Ιουν 2010, 12:47:36 ΜΜ
Επίσης ξεκαθαρίζω ότι για εκπαιδευτικό περιβάλλον θέλω ΓΛΩΣΣΑ και ψευδογλώσσα να υποστηρίζουν ίδιες λύσεις.

Θα μπορούσαμε βλέποντας το από άλλη οπτική να πούμε ότι:

Χάρη στη μη δυνατότητα μεταφοράς του αλγορίθμου που ανέπτυξαν με τη χρήση ψευδογλώσσας σε ΓΛΩΣΣΑ, οι μαθητές μπορούν να εκτιμούν τους περιορισμούς α) της μηχανής και β) των τεχνητών γλωσσών προγραμματισμού που σχεδιάζονται για συγκεκριμένο σκοπό, δίνοντας έμφαση σε ορισμένα χαρακτηριστικά σε βάρος βέβεια κάποιων άλλων.

gpapargi

Παράθεση από: sstergou στις 03 Ιουν 2010, 12:56:01 ΜΜ

1) Η πρόθεση των συγγραφέων για τα Δεδομένα, όπως λέει και ο Σπύρος, ήταν αυτά να μπορούν να θεωρηθούν ως παράμετροι. Δεν νομίζω πως αυτό είναι αυθαίρετο, ίσα ίσα, αυτό αναφέρεται στο βιβλίο καθηγητή αλλά και υπάρχουν παραδείγματα που το στηρίζουν. Η ερμηνεία που δίνεις για τα δεδομένα είναι διαισθητική, αλλά δεν μου αρέσει γιατί εισάγει έναν διαφορετικό τρόπο σκέψης τον οποίο θεωρώ ότι πρέπει να αποφύγουμε.

Η προσέγγισή μου δεν έρχεται σε αντίθεση με αυτό. Ακόμα και έτσι να το δούμε αυτά που γράφω είναι απολύτως συμβατά. 

Παράθεση από: sstergou στις 03 Ιουν 2010, 12:56:01 ΜΜ
3)
Εδώ διαφωνώ και πιστεύω ότι η αφηρημένη δομή του πίνακα μπορεί να χρησιμοποιηθεί με τρόπο που δεν παραβιάζει την στατικότητα και που το μέγεθός της καθορίζεται (αλλά δεν αλλάζει) κατά την εκτέλεση. Εδώ πρέπει να κρίνουμε κατά περίπτωση και σίγουρα πρέπει να έχουμε όλο τον αλγόριθμο. Η ύπαρξη δηλαδή του Διάβασε Ν δεν αποδεικνύει κάτι.

Ναι αλλά θα πρέπει να αλλάξει το διδακτικό πακέτο. Για μένα το ζητούμενο είναι το πώς πρέπει να έχουμε τα πράγματα στο νου μας χωρίς αλλαγή του πακέτου. Δηλαδή να τα καταλαβαίνουμε με ένα τρόπο ώστε το πακέτο να μην έχει ασυνέπειες και να μη χρειάζεται να αλλάξει. Αν έχουμε ένα συνεπή τρόπο να τα δούμε όλα για ποιο λόγο να αλλάξουμε τόσα πολλά;

sstergou

Γιατί Γιώργο αυτός ο κατά τα άλλα λογικός και συνεπής τρόπος σκέψης είναι τόσο δαιδαλώδης που ακόμη για μένα, που πιστεύω τον καταλαβαίνω, είναι δύσκολο να τον εξηγήσω σε έναν μαθητή.

Άσε που η συνέπειά του νομίζω ότι  "μπάζει", πράγμα που σημαίνει ότι θα έρχεται συνεχώς σε αμφισβήτηση για προφανείς λόγους όπως και έγινε με το επίμαχο θέμα.

Έτσι κι αλλιώς όλοι συμφωνούμε ότι το βιβλίο πρέπει να αλλάξει, το μόνο που μπορούμε να κάνουμε είναι να μην εξετάζουμε αυτό το θέμα (γνωστό πλήθος στοιχείων κατά την εκτέλεση), όπως και τόσα άλλα, γιατί θα πρέπει πάντα να αναμένουμε αντιδράσεις.

gpapargi

Τέλος πάντων... νομίζω πως το θέμα από δω και πέρα είναι πια υποκειμενικό. Νομίζω πως έκλεισα κι εγώ την τοποθέτησή μου και δεν έχω να πω κάτι καινούργιο. Ελπίζω να γράψω και μια γενική κριτική για τα θέματα και να πάω για μπάνιο  8)

Σπύρος Δουκάκης

Με την τελευταία παρατήρηση του Γιώργου, αναδεικνύεται ότι

1. στο επίπεδο του προγραμματισμού υπολογιστών, τα πράγματα είναι ούτως ή άλλως υποκειμενικά και εξαρτώνται από τη γλώσσα που χρησιμοποιούμε. Πόσες φορές έχουμε μιλήσει για δυνατότητες κάποιας γλώσσας έναντι κάποιας άλλης. Και πόσες φορές δεν έχουμε πει ότι αν μπορούσε να κάνει και αυτό αυτή η γλώσσα θα ήταν πολύ χρήσιμο. Ωστόσο δεν γκρινιάζουμε, δεν φωνάζουμε και δεν διαμαρτυρόμαστε στους δημιουργούς της, αφού το μόνο που λέμε είναι μπράβο που τη σχεδιάσανε...
2. στο επίπεδο της αλγοριθμικής τα πράγματα είναι πιο ξεκάθαρα. Υπάρχει απόλυτη ελευθερία σχεδίασης του αλγορίθμου και μετά ψάχνεις τη γλώσσα που υλοποιεί αυτό που προτείνεις. Εδώ, λοιπόν, η υποκειμενικότητα είναι στο μέγιστο βαθμό και εκεί έγκειται η διαφωνία μεταξύ συναδέλφων. Οι συγγραφείς έκαναν μια προσέγγιση αρκετά καλή τη στιγμή που την έκαναν. Πέρασαν τα χρόνια και θέλει επαναπροσδιορισμό, όχι επειδή δεν είναι ικανοποιητική, αλλά επειδή κάνουμε αγώνα για "πρωτότυπα" θέματα με αποτέλεσμα να κάνουμε δικές μας παραδοχές και ερμηνείες.

Παρόλα αυτά θα πρέπει να δούμε και τι γίνεται στην τριτοβάθμια εκπαίδευση. Αν ανατρέξετε σε κάποια πανεπιστημιακά συγγράμματα που διδάσκουν Αλγοριθμική (όχι προγραμματισμό) θα δείτε ότι το τμήμα αλγορίθμου

Διάβασε ν
Για ι από 1 μέχρι ν
  Διάβασε α[ι]
Τέλος_επανάληψης

υπάρχει. Δεν λέω προγραμματισμό, αφού σε αυτό το επίπεδο το ανέδειξαν άλλοι συνάδελφοι. Άρα αφού κάποιοι μαθητές μας θα το διδαχτούν στο άμεσο μέλλον, εμείς γιατί πρέπει να το απορρίψουμε;

Ένα από αυτά τα συγγράμματα ανήκει και σε υποομάδα συγγραφέων του σχολικού βιβλίου. Άρα... ο "ποιητής" κάτι θέλει να πει, αλλά δεν το είπε ολοκληρωμένα μέσα στο σχολικό βιβλίο... Ούτε καν το φαντάστηκαν οι συγγραφείς ότι θα μπορούσε να υπάρξει μία τέτοια περίπτωση. Μία προσπάθεια επιστημονικού άλματος που όπως ειπώθηκε είναι υποκειμενική.

Καταλήγοντας θα έλεγα ότι το άλμα δεν το κάνει το βιβλίο. Κατά τη γνώμη μου δεν υπάρχει ασάφεια στο βιβλίο. Το άλμα έγινε από τους θεματοδότες, που καταλάβαμε όλοι τι ήθελαν να εξετάσουν, αλλά δυστυχώς για όλη την εκπαιδευτική κοινότητα δεν τους βγήκε.

Ωστόσο με τις ανακοινώσεις τους καταπάτησαν το διδακτικό συμβόλαιο και εκεί προέκυψε το πρόβλημα, αφού αν δεν υπήρχαν οι ανακοινώσεις, δεν θα υπήρχε θέμα και δεν θα παραβίαζαν το συμβόλαιο με ότι αυτό συνεπάγεται.

Νίκος Αδαμόπουλος

Παράθεση από: Νίκος Αδαμόπουλος στις 03 Ιουν 2010, 09:58:36 ΠΜ
...
Θέλω λοιπόν να πω πως αν όντως θα μπορούσαμε ( ; ) να δηλώνουμε τον πίνακα μέσα στο υποπρόγραμμα χρησιμοποιώντας μεταβλητή (παράμετρο της διαδικασίας) τότε αυτό δεν παραβιάζει τη στατικότητα των πινάκων: Ο πίνακας δεσμεύεται χρησιμοποιώντας ένα συγκεκριμένο μέγεθος θέσεων το οποίο δεν μπορούμε να το μεταβάλουμε εντός του μπλοκ του υποπρογράμματος... Όταν τελειώσει το υποπρόγραμμα έτσι κι αλλιώς ο σχετικός χώρος αποδεσμεύεται...
Π.χ.

ΔΙΑΔΙΚΑΣΙΑ αβγ(Ν)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν, Α[Ν]
...
ΑΡΧΗ
...

Δεν είμαι σίγουρος αν στο παρελθόν έχει συζητηθεί η δυνατότητα της παραπάνω εκδοχής...  ???  Θα ήθελα να πείτε τη γνώμη σας.... Μπορεί να μου ξεφεύγει κάτι σημαντικό ... Άλκη;

... νιώθω ότι δεν πήρα ανταπάντηση με επιχειρήματα.... Άρα κρατάω αυτήν του Άλκη (του κατεξοχήν αρμόδιου για τη ΓΛΩΣΣΑ) και του mixman66...  :)

Όπως καταλαβαίνετε προσπαθώ να δείξω ότι πιθανώς να είναι ήδη υλοποιήσιμο το "αίτημα Στάθη", και μάλιστα στη ΓΛΩΣΣΑ (όπως ζητάει ο Γιώργος), όπως ισχύει τώρα στο βιβλίο* (όπως ζητάει ο Παρασκευάς), δηλαδή η κατά την εκτέλεση του προγράμματος δημιουργία στατικού πίνακα. Αυτό, έμμεσα, μέσω της κλήσης υποπρογραμμάτων όπου εκεί για όλες τις τοπικές μεταβλητές (άρα και για τους πίνακες) δεσμεύονται κατά την κλήση οι θέσεις από τη μνήμη και αποδεσμεύονται κατά την επιστροφή...

Μέχρι να λάβω κάποιο ικανοποιητικό αντεπιχείρημα, κρατάω το όλο concept και θα το επαναφέρω κάποια άλλη καταλληλότερη στιγμή...  8)

Υ.Γ Φυσικά με κάτι τέτοιο, μετά ανοίγει και ο δρόμος για την ψευδογλώσσα μέσω των Δεδομένων ...  ;)

(*) το βιβλίο δεν λέει ότι δεν γίνεται κάτι τέτοιο στη δήλωση τοπικών πινάκων των υποπρογραμμάτων (προσοχή: δεν μιλάω για πίνακες που να είναι παράμετροι...), και δεν βρίσκω κάποιον λόγο γιατί να μη γίνεται, ούτε βλέπω να γεννάει καμία ασυνέπεια στο πλαίσιο του (υπάρχοντος) διδακτικού πακέτου...

Νίκος Αδαμόπουλος


gthal

Αυτό όντως θα έπρεπε να συμβαίνει. (θα το καταλάβαινα περισσότερο αν ήταν και ο πίνακας παράμετρος όμως)
Είναι χαζό το ότι με την παρούσα υλοποίηση για να ταξινομήσουμε πχ έναν πίνακα 100 στοιχείων και ύστερα έναν πίνακα ίδιου τύπου 200 στοιχείων,  πρέπει να γράψουμε δύο διαφορετικά υποπρογράμματα.
Τι επιπλοκές θα μας φέρει αυτό;
Φιλικά,
Γιώργος Θαλασσινός

Νίκος Αδαμόπουλος

Παράθεση από: gthal στις 03 Ιουν 2010, 02:13:09 ΜΜ
Αυτό όντως θα έπρεπε να συμβαίνει. (θα το καταλάβαινα περισσότερο αν ήταν και ο πίνακας παράμετρος όμως)
Είναι χαζό το ότι με την παρούσα υλοποίηση για να ταξινομήσουμε πχ έναν πίνακα 100 στοιχείων και ύστερα έναν πίνακα ίδιου τύπου 200 στοιχείων,  πρέπει να γράψουμε δύο διαφορετικά υποπρογράμματα.
Τι επιπλοκές θα μας φέρει αυτό;

Αυτό πιθανώς σκοντάφτει στο ότι δεν θα είναι όμοια δηλωμένοι οι πίνακες στο κύριο πρόγραμμα και στο υποπρόγραμμα - στο κύριο πρόγραμμα θα πρέπει να υπάρχει σταθερό δηλωμένο μέγεθος (με την υπάρχουσα ΓΛΩΣΣΑ). Δηλαδή εγώ λέω ότι λέω για να μην ξεφύγω από την υπάρχουσα ΓΛΩΣΣΑ!

merlin

Ωραία, τώρα μένει να τοποθετηθούν και οι Παναγιώτης (Τσιωτάκης), Κώστας (Ντζιός), janag, Βασίλης Σούλας, και όσοι άλλοι "πιστοί" του Στεκιού θέλουν.
Όχι τίποτα άλλο, να μαζευτούμε κάμποσοι σε κάθε ομάδα να οργανώσουμε κανένα 5χ5 πρωτάθλημα! ;D  ;D  ;D

Η πρόταση του Νίκου (και του Στάθη κλπ) με χαλάει μόνο στο ότι δεν υπάρχει κανένα τέτοιο παράδειγμα στο βιβλίο (πρέπει να προστεθεί) και επίσης πρέπει να αλλάξει και η ΓΛΩΣΣΑ, που τα θεωρώ δύσκολα και τα 2 στην παρούσα φάση.
Αν με κάποιο μαγικό τρόπο προστεθούν αυτά τότε δεν θα έχω πρόβλημα να πάρω μεταγραφή!   :)  :)
Παρασκευάς Πανάγου
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής ΠΕ20

gpapargi

ΑΥτό που είπα ότι είναι υποκειμενικό είναι το αν ο συνεπής τρόπος που αντιλαμβάνομαι την ψευδογλώσσα είναι και "δαιδαλώδης". Άλλο λέει ναι, άλλος λέει όχι. ΕΠίσης υποκειμενικό είναι το αν χρειάζεται να αλλάξει το διδακτικό πακέτο και να πάμε σε άλλη λογική. Εγώ λέω ότι δε χρειάζεται.

Νικο σόρρυ δεν τα έχω δει όλα τα μηνύματα γιατί είναι πολλά. Πες μου ποιο είναι το ερώτημα (δώσε link) να σου πω τη γνώμη μου