Δήλωση πίνακα Ν στοιχείων

Ξεκίνησε από Akis73, 23 Οκτ 2021, 03:32:05 ΜΜ

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

Akis73

Καλησπέρα σε όλους,

Όπως το λέει ήδη και ο τίτλος ::) πως γίνεται ακριβώς η δήλωση ενός πίνακα Ν στοιχείων στο τμήμα δηλώσεων ενός προγράμματος;
Στον διερμηνευτή μου εμφανίζει το παρακάτω μήνυμα όταν προσπαθώ να τον δηλώσω ως Π[Ν]

"Δεν επιτρέπονται μεταβλητές ή μη ενσωματωμένες συναρτήσεις στη δήλωση των ορίων του πίνακα"

Laertis

#1
Παράθεση από: Akis73 στις 23 Οκτ 2021, 03:32:05 ΜΜ
Καλησπέρα σε όλους,

Όπως το λέει ήδη και ο τίτλος ::) πως γίνεται ακριβώς η δήλωση ενός πίνακα Ν στοιχείων στο τμήμα δηλώσεων ενός προγράμματος;
Στον διερμηνευτή μου εμφανίζει το παρακάτω μήνυμα όταν προσπαθώ να τον δηλώσω ως Π[Ν]

"Δεν επιτρέπονται μεταβλητές ή μη ενσωματωμένες συναρτήσεις στη δήλωση των ορίων του πίνακα"
Αν στείλω ένα παιδί στο περίπτερο να μου πάρει Ν τσίχλες, πόσες εννοώ, πόσες θα ζητήσει, και πόσες θα του δώσει ο περιπτεράς;  :laugh:
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

alkisg

Δεν επιτρέπεται στην ΑΕΠΠ, κι έτσι ο Διερμηνευτής δεν το υποστηρίζει.
Κι όμως θα ήταν ιδιαίτερα βολικό αν εντός των υποπρογραμμάτων επιτρεπόταν η χρήση παραμέτρων κατά τη δήλωση πινάκων:

Κώδικας: ΓΛΩΣΣΑ
ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση(Α, Ν)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν, Α[Ν]


Έτσι όπως είναι τώρα, θέλουμε άλλη διαδικασία Ταξινόμηση για έναν πίνακα 20 καθηγητών, και άλλη για έναν πίνακα 100 μαθητών...

Akis73

Στους αλγόριθμους επιτρέπεται να γράψουμε το παρακάτω:

Δεδομένα // Ν,Π //

Στα προγράμματα δεν υπάρχει κάποιος τρόπος δηλαδή; Τι κάνουμε στις ασκήσεις που ζητάνε να διαβαστούν πίνακες Ν στοιχείων;

alkisg

Δηλώνεις όλους τους πίνακες π.χ. με 1000 στοιχεία, και θέτεις περιορισμό το Ν να είναι <= 1000...

pvs

Στο Διερμηνευτή η μόνη περίπτωση που δέχεται γράμμα με σκοπό τη δήλωση του μέγεθους του πίνακα είναι η παρακάτω. Αλλά και πάλι πρέπει να ορίσεις πόσο είναι το Ν

ΣΤΑΘΕΡΕΣ
Ν=1000
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α[Ν]

George Eco

#6
Παράθεση από: alkisg στις 23 Οκτ 2021, 08:38:14 ΜΜ
Δηλώνεις όλους τους πίνακες π.χ. με 1000 στοιχεία, και θέτεις περιορισμό το Ν να είναι <= 1000...

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

Akis73 ας πούμε πως υποθέτεις πως το Ν είναι προκαθορισμένη σταθερά, μπας και τα καταφέρουμε...

Δυστυχώς η  εντολή σε ψευδογλώσσα

ΔΕΔΟΜΕΝΑ // //

όπως ορίζεται στα πλαίσια του μαθήματος υπονοεί
ΔΙΑΒΑΣΕ Ν
ή
Σταθερά Ν με συγκεκριμένη τιμή στη καλύτερη, που πρέπει όμως να δοθεί σε ΓΛΩΣΣΑ ρητά πριν την ΑΡΧΗ,
οπότε έρχεται κι η ρήξη με τη ΓΛΩΣΣΑ.


Η ΓΛΩΣΣΑ είναι ασύμβατη με τη ψευδογλώσσα.

Pvs δεν είχα δει την απάντησή σου κι έδωσα διπλότυπο κατεβατό. Σωστός, πολύ σωστός.

pgrontas

#7
Παράθεση από: George Eco στις 23 Οκτ 2021, 10:24:08 ΜΜ
Οι αλγόριθμοι σε ψευδογλώσσα που έχει, αντιμετωπίζουν τους πίνακες ως δυναμικές δομές, μετά η ΓΛΩΣΣΑ απαιτεί ως στατική δομή τους πίνακες και τη συνέχεια σε αλγορίθμους πάνω σε πίνακες που πρέπει να μάθουν τα παιδιά για αναζήτηση και ταξινόμηση έρχεται η ρήξη.

Akis73 ας πούμε πως υποθέτεις πως το Ν είναι προκαθορισμένη σταθερά, μπας και τα καταφέρουμε...

Δυστυχώς η  εντολή σε ψευδογλώσσα

ΔΕΔΟΜΕΝΑ // //

όπως ορίζεται στα πλαίσια του μαθήματος υπονοεί
ΔΙΑΒΑΣΕ Ν
ή
Σταθερά Ν με συγκεκριμένη τιμή στη καλύτερη, που πρέπει όμως να δοθεί σε ΓΛΩΣΣΑ ρητά πριν την ΑΡΧΗ,
οπότε έρχεται κι η ρήξη με τη ΓΛΩΣΣΑ.


Η ΓΛΩΣΣΑ είναι ασύμβατη με τη ψευδογλώσσα.

Pvs δεν είχα δει την απάντησή σου κι έδωσα διπλότυπο κατεβατό. Σωστός, πολύ σωστός.

Η εντολή δεδομένα ΔΕΝ είναι ισοδύναμη με το τμήμα δηλώσεων.
Δείχνει κάποιες τιμές τις οποίες 'γνωρίζει' ο αλγόριθμος πριν ξεκινήσει την εκτέλεση. Δεν μας ενδιαφέρει το πώς τα γνωρίζει καθώς έχει στόχο ακριβώς να απαλλάξει τον αλγόριθμο από τέτοιες λεπτομέρειες.
Κατά συνέπεια όταν σε κάποιον αλγόριθμο εμφανίζεται ΔΕΔΟΜΕΝΑ //Π,Ν// όπου Π πίνακας, εννοείται ότι το Ν είναι γνωστό  ΠΡΙΝ την εκτέλεση και ΔΕΝ χρειάζεται να ξαναδιαβαστεί από τον αλγόριθμο και ότι ο πίνακας έχει Ν στοιχεία προσυμπληρωμένα και ούτε αυτά χρειάζεται να ξαναδιαβαστούν.
Άρα η εντολή δεδομένα δεν αναιρεί την στατικότητα της δομής.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

George Eco

#8
Παράθεση από: pgrontas στις 24 Οκτ 2021, 10:47:52 ΠΜ
Η εντολή δεδομένα ΔΕΝ είναι ισοδύναμη με το τμήμα δηλώσεων.
Προφανώς, δεν είπε ποτέ κανείς κάτι τέτοιο.

Παράθεση από: pgrontas στις 24 Οκτ 2021, 10:47:52 ΠΜ
Κατά συνέπεια όταν σε κάποιον αλγόριθμο εμφανίζεται ΔΕΔΟΜΕΝΑ //Π,Ν// όπου Π πίνακας, εννοείται ότι το Ν είναι γνωστό  ΠΡΙΝ την εκτέλεση και ΔΕΝ χρειάζεται να ξαναδιαβαστεί από τον αλγόριθμο και ότι ο πίνακας έχει Ν στοιχεία προσυμπληρωμένα και ούτε αυτά χρειάζεται να ξαναδιαβαστούν.
Κι αφού αυτό είναι ΑΔΥΝΑΤΟ με ΓΛΩΣΣΑ έρχεται σε ρήξη.
Η εντολή ΔΕΔΟΜΕΝΑ είναι ασύμβατη με τη ΓΛΩΣΣΑ εδώ. Δε γίνεται να γεμίσεις πίνακα στο τμήμα δηλώσεων συνάδελφε. Κι ούτε να δώσεις τη διάστασή του μετά την ΑΡΧΗ, λόγω στατικότητας στα πλαίσια του μαθήματος. Αυτό λέω. Ακόμα κι αν προσπαθήσουμε να συνηγορήσουμε με Ν = σταθερά κι ορισμένη στο τμήμα δηλώσεων, ε δε γίνεται να πάρει τιμή από το χρήστη.

Πώς λοιπόν επέρχεται το συμπέρασμα πως η εντολή ΔΕΔΟΜΕΝΑ δεν αναιρεί την στατικότητα της δομής κατά την υλοποίηση σε ΓΛΩΣΣΑ; Μια χαρά την αναιρεί, δυστυχώς, όταν κληθούμε να κάνουμε υλοποίηση στη ΓΛΩΣΣΑ.

Αν το Ν είναι γνωστή τιμή τότε θα έπρεπε εξ αρχής να ξεκαθαρίζεται στο μαθητή.
Για παράδειγμα θα μπορούσαν να πουν:
"Ο παρακάτω αλγόριθμος κάνει αναζήτηση σε ένα πίνακα εκατό στοιχείων."
Γιατί να μπουρδουκλώνουν τα πράγματα με ένα ΓΕΝΙΚΟ αλγόριθμο που δεν υλοποιείται γενικά σε ΓΛΩΣΣΑ;

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

pgrontas θα συμφωνήσω όμως μαζί σου. Η ΔΕΔΟΜΕΝΑ δε δημιουργεί πρόβλημα στη στατικότητα, αν μελετήσουμε τη ψευδογλώσσα μόνη της. Πολύ καλά το λες. Το πρόβλημα είναι στη ΓΛΩΣΣΑ και στον ορισμό της στο βιβλίο. Τι να κάνουμε; Άσε που όποιο παιδί ξέρει τη REDIM της Visual Basic έχει άμεσα απορίες που απαντώνται στο κλίμα, "Ε, τι να κάνουμε, η ΓΛΩΣΣΑ ως εργαλείο, όπως την όρισαν, αντιμετωπίζει τον πίνακα ως στατική δομή". Κι όταν τα παιδιά ρωτάνε γιατί δε κάνουμε Python όπως στα ΕΠΑΛ, ή Java (υπάρχουν παιδιά που ρωτούν τέτοια), τότε δε ξέρω τι να απαντήσω...


pgrontas

Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 ΜΜ
Προφανώς, δεν είπε ποτέ κανείς κάτι τέτοιο.
Μπορεί να μην γράφτηκε ρητά αλλά πλανάται στην συζήτηση, οπότε θεωρησα καλό να ξεκαθαριστεί. Έπρεπε να το βάλω πάνω από το quote για να γίνει πιο σαφές.

Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 ΜΜ
Η εντολή ΔΕΔΟΜΕΝΑ είναι ασύμβατη με τη ΓΛΩΣΣΑ εδώ. Δε γίνεται να γεμίσεις πίνακα στο τμήμα δηλώσεων συνάδελφε. Κι ούτε να δώσεις τη διάστασή του μετά την ΑΡΧΗ, λόγω στατικότητας στα πλαίσια του μαθήματος. Αυτό λέω. Ακόμα κι αν προσπαθήσουμε να συνηγορήσουμε με Ν = σταθερά κι ορισμένη στο τμήμα δηλώσεων, ε δε γίνεται να πάρει τιμή από το χρήστη.

Πώς λοιπόν επέρχεται το συμπέρασμα πως η εντολή ΔΕΔΟΜΕΝΑ δεν αναιρεί την στατικότητα της δομής κατά την υλοποίηση σε ΓΛΩΣΣΑ; Μια χαρά την αναιρεί, δυστυχώς, όταν κληθούμε να κάνουμε υλοποίηση στη ΓΛΩΣΣΑ.
Δεν μπορούμε να κρίνουμε αν είναι ασύμβατα δύο ΔΙΑΦΟΡΕΤΙΚΑ πράγματα.

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

Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 ΜΜ
Αν το Ν είναι γνωστή τιμή τότε θα έπρεπε εξ αρχής να ξεκαθαρίζεται στο μαθητή.
Για παράδειγμα θα μπορούσαν να πουν:
"Ο παρακάτω αλγόριθμος κάνει αναζήτηση σε ένα πίνακα εκατό στοιχείων."
Είναι νομίζω προφανές πως αν έλεγαν ότι ο αλγόριθμος αφορά πίνακα 100 στοιχείων, τότε εύλογα προκύπτει η ερώτηση: "Με 101 στοιχεία δεν ισχύει ο αλγόριθμος?". 
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

alkisg

Να γραφεί ένα <Χ> που να ταξινομεί έναν πίνακα Ν στοιχείων.
Όπου το <Χ> είναι αλγόριθμος σε Ψευδογλώσσα, διαδικασία, ή πρόγραμμα σε ΓΛΩΣΣΑ.

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

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

Εάν μπορούσαμε να προτείνουμε αλλαγές στο βιβλίο, θα έπρεπε να ζητήσουμε και στις δύο περιπτώσεις να επιτρέπεται δήλωση πίνακα Α[Ν]. Αυτό δεν σημαίνει δυναμικότητα πινάκων, είναι ακόμα στατική δομή αφού το Ν είναι γνωστό πριν την εκτέλεση του σχετικού (υπο)προγράμματος. Τώρα στην Ψευδογλώσσα δεν καταλαβαίνουμε καν ότι το Α είναι πίνακας έτσι που το δηλώνουμε.

Αλλά και το να ορίζουμε ένα μέγιστο 1000 και να χρησιμοποιούμε τελικά τα Ν πρώτα, δεν μειώνει ιδιαίτερα την ποιότητα της λύσης μας... και στην Pascal 30 χρόνια πριν, έτσι κάναμε...

George Eco

Καλά το είπες Άλκη. Πριν 30 χρόνια.  Πάντα το λέω, το μάθημα πρέπει να προχωρήσει. Πρέπει να αναβαθμιστεί.
Φυσικά καταλαβαίνω πως δεν είναι και τόσο απλό. Το κατανοώ. Αλλά έχω μια ελπίδα για το καλύτερο.

dpa2006

Πρέπει να πάμε μπροστά
Δεν είναι εύκολες οι μεταβατικές περίοδοι αλλά πρέπει να δρομολογηθεί η μετάβαση...
Μια ιδέα...
https://plirom.schools.ac.cy/index.php/el/yliko/didaktiko-yliko
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

George Eco

#13
Παράθεση από: dpa2006 στις 30 Οκτ 2021, 10:26:58 ΜΜ
Πρέπει να πάμε μπροστά
Δεν είναι εύκολες οι μεταβατικές περίοδοι αλλά πρέπει να δρομολογηθεί η μετάβαση...
Μια ιδέα...
https://plirom.schools.ac.cy/index.php/el/yliko/didaktiko-yliko
Συνάδελφε αυτά είναι της Κύπρου έτσι;
Προσωπικά θέλω εδώ να τοποθετηθώ. Δεν έχω κοιτάξει τα βιβλία εις βάθος, αλλά σε γενικές γραμμές, βλέπω πως έχει πολλή ύλη. Δε ξέρω κατά πόσο θα είχαν όφελος όλα αυτά και σε τι βαθμό, στα παιδιά στη Γ Λυκείου. Δε ξέρω το Πρόγραμμα Σπουδών της Κύπρου και ποιος δίνει αυτό το μάθημα και για ποιες Σχολές, αλλά νομίζω πως σε αυτό το σημείο το μάθημα πραγματεύεται ύλη που θα ήταν καλό να μελετηθεί σε Τριτοβάθμιο ίδρυμα στο πρώτο του έτος.  Από τη μία μου αρέσει περισσότερο από το βιβλίο που έχουμε σε ΓΛΩΣΣΑ, προφανώς, αλλά από την άλλη, Β Έκδοση 2018 κι επιλέξαν μια κλασική γλώσσα προγραμματισμού, αντί μιας μοντέρνας. Δε διαφέρει και πολύ από το να πάμε σε pascal.

Νομίζω πως χάνεται εδώ το βασικό νόημα του εκμοντερνισμού του μαθήματος. Θα μου άρεσε Java αλλά είναι σκληρή γλώσσα για παιδιά Γ Λυκείου, έτσι νομίζω. Κι αυτή για πρωτοετείς θα την έβαζα, σε κάποια Σχολή, αν κι αγαπημένη μου. Εξού κι είχα προτείνει στο άλλο thread που το συζητούσαμε τη Python3. Αντί να εστιάζουμε τόσο πολύ σε δομές δεδομένων, θα μπορούσαμε να βλέπαμε το μάθημα σε στυλ δομημένος διαδικαστικός προγραμματισμός στην αρχή κι αντικειμενοστραφής προγραμματισμός στη συνέχεια. Έχοντας πλούτο υλικού, για μια εύχρηστη, ζωντανή γλώσσα, δοκιμασμένη επιτυχώς σε παιδιά στο ΕΠΑΛ, νομίζω είναι η βέλτιστη επιλογή.
Επίσης η μετάβαση από ΓΛΩΣΣΑ σε Python3 μπορεί να γίνει σχετικά εύκολα.

Βέβαια, όπως είπα, C++ καλύτερα από ΓΛΩΣΣΑ, αλλά ο εχθρός του καλύτερου είναι το ακόμα πιο καλό. Αλλά το τι είναι καλό, τι καλύτερο και τι κακό, είναι υποκειμενικά.

Νομίζω πως πρέπει να αναβαθμιστεί ΟΛΟ το Πρόγραμμα Σπουδών.

akalest0s

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

Παράθεση από: George Eco στις 24 Οκτ 2021, 12:32:19 ΜΜ
Αν το Ν είναι γνωστή τιμή τότε θα έπρεπε εξ αρχής να ξεκαθαρίζεται στο μαθητή.
Για παράδειγμα θα μπορούσαν να πουν:
"Ο παρακάτω αλγόριθμος κάνει αναζήτηση σε ένα πίνακα εκατό στοιχείων."
Γιατί να μπουρδουκλώνουν τα πράγματα με ένα ΓΕΝΙΚΟ αλγόριθμο που δεν υλοποιείται γενικά σε ΓΛΩΣΣΑ;
Που είναι το μπουρδούκλωμα; Ξαναλέω, προσωπικά θα προτιμούσα να μην έχουμε και τα δύο, στα πλαίσια του ΑΕΠΠ, αλλά από την άλλη δεν είναι και τόσο μεγάλο θέμα. Δεν υπάρχει λόγος να μεταφέρεις λέξη προς λέξη, μια άσκηση Γλώσσας σε ψευδογλώσσα, ή αντίστροφα. Τα παιδιά, αν τους εξηγήσεις, ξέρουν τι θα πει γενίκευση και εφαρμογή. Καταλαβαίνουν τι θα πει επίσης, να μιλάς άνθρωπος με άνθρωπο ή άνθρωπος με μηχανή. Οι κατάλληλες μετατροπές προκύπτουν αβίαστα.

πχ. Αν ο ψευδοκώδικας μιλάει για πίνακα μεγέθους Ν, στην Γλώσσα θα χρησιμοποιήσεις όποιο μέγεθος θες, ίδιο σύνολο με το Ν, ώστε να εφαρμόσεις κατάλληλα.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

George Eco

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

dpa2006

#16
Παράθεση από: George Eco στις 31 Οκτ 2021, 01:22:45 ΠΜ
Συνάδελφε αυτά είναι της Κύπρου έτσι;
Προσωπικά θέλω εδώ να τοποθετηθώ. Δεν έχω κοιτάξει τα βιβλία εις βάθος, αλλά σε γενικές γραμμές, βλέπω πως έχει πολλή ύλη. Δε ξέρω κατά πόσο θα είχαν όφελος όλα αυτά και σε τι βαθμό, στα παιδιά στη Γ Λυκείου. Δε ξέρω το Πρόγραμμα Σπουδών της Κύπρου και ποιος δίνει αυτό το μάθημα και για ποιες Σχολές, αλλά νομίζω πως σε αυτό το σημείο το μάθημα πραγματεύεται ύλη που θα ήταν καλό να μελετηθεί σε Τριτοβάθμιο ίδρυμα στο πρώτο του έτος.  Από τη μία μου αρέσει περισσότερο από το βιβλίο που έχουμε σε ΓΛΩΣΣΑ, προφανώς, αλλά από την άλλη, Β Έκδοση 2018 κι επιλέξαν μια κλασική γλώσσα προγραμματισμού, αντί μιας μοντέρνας. Δε διαφέρει και πολύ από το να πάμε σε pascal.

Νομίζω πως χάνεται εδώ το βασικό νόημα του εκμοντερνισμού του μαθήματος. Θα μου άρεσε Java αλλά είναι σκληρή γλώσσα για παιδιά Γ Λυκείου, έτσι νομίζω. Κι αυτή για πρωτοετείς θα την έβαζα, σε κάποια Σχολή, αν κι αγαπημένη μου. Εξού κι είχα προτείνει στο άλλο thread που το συζητούσαμε τη Python3. Αντί να εστιάζουμε τόσο πολύ σε δομές δεδομένων, θα μπορούσαμε να βλέπαμε το μάθημα σε στυλ δομημένος διαδικαστικός προγραμματισμός στην αρχή κι αντικειμενοστραφής προγραμματισμός στη συνέχεια. Έχοντας πλούτο υλικού, για μια εύχρηστη, ζωντανή γλώσσα, δοκιμασμένη επιτυχώς σε παιδιά στο ΕΠΑΛ, νομίζω είναι η βέλτιστη επιλογή.
Επίσης η μετάβαση από ΓΛΩΣΣΑ σε Python3 μπορεί να γίνει σχετικά εύκολα.

Βέβαια, όπως είπα, C++ καλύτερα από ΓΛΩΣΣΑ, αλλά ο εχθρός του καλύτερου είναι το ακόμα πιο καλό. Αλλά το τι είναι καλό, τι καλύτερο και τι κακό, είναι υποκειμενικά.

Νομίζω πως πρέπει να αναβαθμιστεί ΟΛΟ το Πρόγραμμα Σπουδών.
Καλημέρα ναι είναι Κύπρος
έχουν κάνει μετάβαση σε νέο πρόγραμμα σπουδών Πληροφορικής Δευτεροβάθμιας περίπου όταν κάναμε κι εμείς,άρα δεν είναι πολύ παλαιό
Ναι συμφωνώ πως δείχνει πολύ η ύλη.
Δείχνουν να έχουν καλή διαχείριση ωρών, αλλά δεν έχω feedback από Κύπρο προς το παρόν για το πως προχώρησε στην πράξη το εν λόγω πρόγραμμα.
Όσον αφορά την εισαγωγική Γλώσσα Προγραμματισμού πλέον στο ΠαΜακ έχουν την Python...
Μου άρεσε το νέο πρόγραμμα σπουδών τους, αν και θυμίζει λίγο ΕΜΠ...
https://www.uom.gr/dai/odhgoi-spoydon

https://www.uom.gr/assets/site/public/nodes/4254/9476-Syllabus2020-2021GR.pdf

Στο παραπάνω λινκ σελ 21.

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

Η C/C++ και η Java είναι ακατάλληλες για εισαγωγικές γλώσσες προγραμματισμού, δεν είναι μόνο δική μου άποψη.


https://gregorulm.com/no-java-is-not-a-good-first-programming-language/


Την ίδια άποψη έχουν εκφράσει και άλλοι συνάδελφοι...
Ακούστε για λίγα δευτερόλεπτα από το σημείο αυτό τον κο Παπαδάκη
https://www.youtube.com/watch?v=bWbBoGPLoEE&t=3725s


Νομίζω πως είναι πολύ σημαντικά αυτά που λέει και φυσικά μας αφορούν όλους.
Και ο κος Συρρής που πραγματοποίησε το ιστοσεμινάριο την άνοιξη του 2020 είναι γνωστός πιστεύω.

Καλημέρα
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

George Eco

Παράθεση από: dpa2006 στις 02 Νοε 2021, 10:42:14 ΠΜ

Η C/C++ και η Java είναι ακατάλληλες για εισαγωγικές γλώσσες προγραμματισμού, δεν είναι μόνο δική μου άποψη.
Χαίρομαι πολύ που δεν είμαι ο μόνος με αυτή την αντίληψη. Ναι προφανώς είναι βαριές γλώσσες κι αν τις συγκρίνεις με τη Python3 για παράδειγμα, είναι ξεκάθαρο το ποια είναι πιο κατάλληλη.
Ευχαριστώ για τα πολύ ενδιαφέροντα links και μακάρι να τραβήξουμε σε μια πιο μοντέρνα ρότα μετά από 21 χρόνια.

Καρκαμάνης Γεώργιος

Παράθεση από: Akis73 στις 23 Οκτ 2021, 03:32:05 ΜΜ
Καλησπέρα σε όλους,

Όπως το λέει ήδη και ο τίτλος ::) πως γίνεται ακριβώς η δήλωση ενός πίνακα Ν στοιχείων στο τμήμα δηλώσεων ενός προγράμματος;


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

Δεν μπορεί να υπάρχει τέτοια εκφώνηση και να απααιτεί λύση σε ΓΛΩΣΣΑ με τμήμα δηλώσεων.

andreas_p

Το μέγεθος του Ν , σε ΓΛΩΣΣΑ , ορίζεται ρητά και κατηγορηματικά. Μιλάμε για στατικούς πίνακες.

evry

Sorry για το offtopic
Στο ερώτημα Java ή Python η άλλη άποψη:
Why Java Should Be Your First Language Instead Of Python

Εντάξει είπαμε ότι η Java δεν είναι καλή επιλογή για πρώτη γλώσσα αλλά μην τα μηδενίζουμε όλα, υπάρχουν εκπαιδευτικά περιβάλλοντα για εισαγωγή στην Java ,όπως το BlueJ και το GreenFoot και έχουν γραφτεί πολλά Papers για θέματα διδακτικής στο θέμα αυτό
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

George Eco

Παράθεση από: evry στις 05 Νοε 2021, 08:21:08 ΜΜ
Sorry για το offtopic
Στο ερώτημα Java ή Python η άλλη άποψη:
Why Java Should Be Your First Language Instead Of Python

Εντάξει είπαμε ότι η Java δεν είναι καλή επιλογή για πρώτη γλώσσα αλλά μην τα μηδενίζουμε όλα, υπάρχουν εκπαιδευτικά περιβάλλοντα για εισαγωγή στην Java ,όπως το BlueJ και το GreenFoot και έχουν γραφτεί πολλά Papers για θέματα διδακτικής στο θέμα αυτό

Και με αυτό συμφωνώ. Η Python είναι scripting γλώσσα, η Java είναι πιο σοβαρή, σε εξαναγκάζει να μάθεις σωστά αντικειμενοστραφή. Για πρώτο έτος σε Τριτοβάθμιο Ίδρυμα νομίζω είναι εξαιρετική γλώσσα.

dpa2006

Παράθεση από: evry στις 05 Νοε 2021, 08:21:08 ΜΜ
Sorry για το offtopic
Στο ερώτημα Java ή Python η άλλη άποψη:
Why Java Should Be Your First Language Instead Of Python

Εντάξει είπαμε ότι η Java δεν είναι καλή επιλογή για πρώτη γλώσσα αλλά μην τα μηδενίζουμε όλα, υπάρχουν εκπαιδευτικά περιβάλλοντα για εισαγωγή στην Java ,όπως το BlueJ και το GreenFoot και έχουν γραφτεί πολλά Papers για θέματα διδακτικής στο θέμα αυτό


Καλησπέρα,
ελπίζω πως δεν έγινε παρανόηση των γραφέντων μου
Σε καμία περίπτωση δεν μηδενίζω την Java...
Έχω διδαχθεί Java και μάλιστα είχα την τύχη να την διδαχθώ κοντά (1999) στη δημιουργία της
Την θεωρώ καλύτερη από την C++ για διδασκαλία Δομών Δεδομένων και το βιβλίο του Lafore είναι εξαιρετικό (το διδάχθηκα)

Είναι εξαιρετική γλώσσα αλλά θα την προτιμούσα ένα βήμα αργότερα σε σχέση με την Python για παράδειγμα.
Αν και προέρχομαι από την Pascal (πρώτη γλώσσα προγραμματισμού 1990) είμαι υπέρμαχος της Python για την ευκολία της και την ισχύ της.
Συμφωνώ πως η μεγάλη διάδοση της οφείλεται στην ισχυρή της παρουσία στην επεξεργασία Δεδομένων.
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

George Eco

Επαυξάνοντας, έχω να πω πως το βιβλίω των Deitel  Java: How to program, είναι ένα τεράστιο πλήρες εγχειρίδιο που μου αρέσει ιδιαίτερα.
Επι της Java τώρα, είχε πέσει κάτω από το ραντάρ μου, αλλά υπάρχει ήδη βιβλίο στα ΕΠΑΛ (δε το δίνουν Πανελλήνιες) το οποίο περιέχει Java με swing και στο τέλος σου πετά και το AppInventor. Είναι πολύ πολύ συνοπτικό, αλλά δε παύει να χαρίζει ένα πολύ καλό εφόδιο για το μέλλον στα παιδιά. Ενθουσιάστηκα.
Παράλληλα δίνουν Πανελλήνιες σε Python2. Ελπίζω να δούμε σύντομα σε 3.

Θέλω να πω, είναι δυνατόν παιδιά του ΕΠΑΛ να έρχονται σε επαφή με δύο αντικειμενοστραφείς γλώσσες, και στη Γ Λυκείου να μην υπάρχει ΕΝΑ ουσιαστικό εργαλείο διδασκαλίας; Τέλος πάντων, back on topic, σε αλγοριθμικό επίπεδο το Ν είναι οκ, σε ΓΛΩΣΣΑ θα έχουμε δεδομένο Ν κι όχι γενική μορφή. Έτσι αντιμετωπίζεται μόνο.

dpa2006

#24
Παράθεση από: George Eco στις 08 Νοε 2021, 02:58:30 ΜΜ
Επαυξάνοντας, έχω να πω πως το βιβλίω των Deitel  Java: How to program, είναι ένα τεράστιο πλήρες εγχειρίδιο που μου αρέσει ιδιαίτερα.
Επι της Java τώρα, είχε πέσει κάτω από το ραντάρ μου, αλλά υπάρχει ήδη βιβλίο στα ΕΠΑΛ (δε το δίνουν Πανελλήνιες) το οποίο περιέχει Java με swing και στο τέλος σου πετά και το AppInventor. Είναι πολύ πολύ συνοπτικό, αλλά δε παύει να χαρίζει ένα πολύ καλό εφόδιο για το μέλλον στα παιδιά. Ενθουσιάστηκα.
Παράλληλα δίνουν Πανελλήνιες σε Python2. Ελπίζω να δούμε σύντομα σε 3.

Θέλω να πω, είναι δυνατόν παιδιά του ΕΠΑΛ να έρχονται σε επαφή με δύο αντικειμενοστραφείς γλώσσες, και στη Γ Λυκείου να μην υπάρχει ΕΝΑ ουσιαστικό εργαλείο διδασκαλίας; Τέλος πάντων, back on topic, σε αλγοριθμικό επίπεδο το Ν είναι οκ, σε ΓΛΩΣΣΑ θα έχουμε δεδομένο Ν κι όχι γενική μορφή. Έτσι αντιμετωπίζεται μόνο.


Καλημέρα,
συμφωνώ απόλυτα με αυτά που λες.
Μου έκανε μεγάλη εντύπωση και εμένα το βιβλίο της Java ΕΠΑΛ, που δίνουν ενδοσχολικά.
Όσον αφορά βιβλία για την κατανόηση της Java των Deitel είναι πιστεύω το καλύτερο με αρκετά καλό του Herb Schildt.


Σχολικό Java
http://ebooks.edu.gr/ebooks/v/pdf/8547/4544/24-0535_Eidika-Themata-ston-Programmatismo-Ypologiston_G-EPAL_Vivlio-Mathiti/


Μικρή παρένθεση:
Στη Γενική παιδεία
Υπάρχει βιβλίο Πληροφορική ΕΠΑΛ σε ΑΛΓΟΡΙΘΜΟ για Β
http://www.iep.edu.gr/images/IEP/EPISTIMONIKI_YPIRESIA/Epist_Monades/B_Kyklos/Tee/2016/BEpal/2016_Epal_Eis_HY.pdf


και Python για Γ
http://www.iep.edu.gr/images/IEP/EPISTIMONIKI_YPIRESIA/Epist_Monades/B_Kyklos/Tee/2016/GEpal/2016_GEpal_Eis_HY.pdf






αλλά και το αντίστοιχο εισαγωγικό μάθημα στη Β είναι Python...
http://ebooks.edu.gr/ebooks/v/pdf/8547/4630/24-0615-01_Arches-Programmatismou-Ypologiston_B-EPAL_Simeioseis-Mathiti/

Εγώ είχα σημειώσεις για εισαγωγή στη Java και τελικά βρήκα τους Deitel... :) ;D
Το πρόβλημα των βιβλίων με Python2 (η οποία είναι πλέον κατηργημένη...  :( [size=78%] )[/size] είναι σοβαρό...
Επίσης σοβαρό θέμα είναι και η έκδοση της Java που χρησιμοποιείς...
Ειδικά αν έχεις παλαιό εργαστήριο δεν πιστεύω πως υπάρχουν πολλές επιλογές...


Έχω ελπίδες ότι με τα νέα προγράμματα σπουδών να δούμε Python3...
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science