Δεδομένα στους πίνακες

Ξεκίνησε από nikosx, 31 Ιαν 2006, 01:01:44 ΜΜ

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

nikosx

Θα ήθελα να μου πείτε τη γνώμη σας για το εξής θέμα.

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

Ευχαριστώ πολύ :)
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

Φίλιππος

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

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

Οι πίνακες δηλώνονται μόνο με τ' όνομά τους.  Αν η εκφώνηση δε δίνει ούτε τον αριθμό των στοιχείων του πίνακα, θα πρέπει να δηλώνεται και αυτός με αντίστοιχη μεταβλητή (π.χ. Ν) στα δεδομένα.  π.χ.
 
Δεδομένα //Ν, Όνομα//

για ένα πίνακα Ν ομομάτων

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

EleniK

Νομίζω ότι και οι δυο λύσεις είναι σωστές. Το διαπίστωσα και πέρσυ στα θέματα (3ο θέμα)των Πανελληνίων που κάποιοι μαθητές μου διάβασαν τον πίνακα (ενώ έλεγε δίνονταί πίνακες), ενώ κάποιοι χρησιμοποίησαν το δεύτερο στυλ με τα Δεδομένα. Και οι δυο λύσεις ήταν σωστές.

Επ' ευκαιρίας ήθελα να ρωτήσω αν δίνονται δυο πίνακες διαφορετικών διαστάσεων τότε είναι σωστό το:

Δεδομένα //Α,Ν//
Δεδομένα //Β,Μ//

Φαντάζομαι πως ναι. Τι νομίζετε για το Δεδομένα //Α, Β, Ν, Μ//;  

Ευχαριστώ
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

evry

Δε νομίζω ότι και οι δυο λύσεις είναι σωστές. Όταν οι άσκηση λέει "δίνονται" και ο μαθητής χρησιμοποιεί την εντολή διάβασε δεν είναι σωστός.
    Δε λέω ότι θα του στοιχίσει πολύ βαθμολογικά αλλά σίγουρα δεν μπορεί να πάρει όλο το θέμα αφού η απάντησή του δεν ανταποκρίνεται στην εκφώνηση.
     Αν για παράδειγμα η εκφώνηση έλεγε "ΝΑ ΔΙΑΒΑΖΕΙ ΕΝΑΝ ΠΙΝΑΚΑ table, Ν ΣΤΟΙΧΕΙΩΝ" και ο μαθητής έγραφε
Δεδομένα // table, N// θα ήταν σωστός?


ΠαράθεσηΝομίζω ότι και οι δυο λύσεις είναι σωστές. Το διαπίστωσα και πέρσυ στα θέματα (3ο θέμα)των Πανελληνίων που κάποιοι μαθητές μου διάβασαν τον πίνακα (ενώ έλεγε δίνονταί πίνακες), ενώ κάποιοι χρησιμοποίησαν το δεύτερο στυλ με τα Δεδομένα. Και οι δυο λύσεις ήταν σωστές.

Επ' ευκαιρίας ήθελα να ρωτήσω αν δίνονται δυο πίνακες διαφορετικών διαστάσεων τότε είναι σωστό το:

Δεδομένα //Α,Ν//
Δεδομένα //Β,Μ//

Φαντάζομαι πως ναι. Τι νομίζετε για το Δεδομένα //Α, Β, Ν, Μ//;  

Ευχαριστώ
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis


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

Ναι, το    Δεδομένα // ν, Α, μ, Β //   είναι σωστό

Φίλιππος

Η "δηλωτική" εντολή Δεδομένα χρησιμοποιείται όταν ο αλγόριθμος "δέχεται" τα δεδομένα αντι να τα ζητάει από το χρήστη.

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

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

Τώρα, το πώς γίνεται η βαθμολόγηση των γραπτών, είναι μία άλλη υπόθεση.

Οι περισσότεροι δεν "κόβουμε" μονάδες για τέτοια λάθη αφού (1) το επίπεδο των γραπτών είναι εν γένει πολύ χαμηλό και χωρίς αυτά και (2) δεν είναι σίγουρο ότι το μάθημα διδάσκεται "σωστά" απ' όλους.

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

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

P.Tsiotakis


Μπράβο Φίλιππε για τον τρόπο που παρουσίασες το θέμα

χ

Έστω ότι η άσκηση ζητά πρόγραμμα στο οποίο είναι δεδομένος ένας μονοδιάστατος πίνακας 20 θέσεων και θέλουμε ας πούμε να υπολογίσουμε το άθροισμα των στοιχείων του πίνακα. Πως θα εισάγουμε τον πίνακα στο πρόγραμμα; Με την εντολή δεδομένα ή θα πρέπει να τον διαβάσουμε μετά τη δήλωση μεταβλητών;

Ευχαριστώ και πάλι

P.Tsiotakis


Σε πρόγραμμα δεν ΟΡΙΖΕΤΑΙ η εντολή "Δεδομένα",  όλα διαβάζονται... (εντολή ΔΙΑΒΑΣΕ)

Φίλιππος

Μία τέτοια άσκηση θα μπορούσε να ζητάει υπο-πρόγραμμα (και όχι πρόγραμμα) οπότε ο πίνακας θα ορίζεται ως τυπική παράμετρος του υποπρογράμματος.  Όποιος κληθεί να υλοποιήσει ένα τέτοιο υπο-πρόγραμμα θα μπορεί να θεωρεί όντως δεδομένες τις τιμές του πίνακα και να υλοποιήσει τον αλγόριθμο υπολογισμού αθροίσματος στοιχείων του πίνακα.

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

[glossa]
ΣΥΝΑΡΤΗΣΗ Αθροισμα_Στοιχείων_Πίνακα(Π): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Π[20], Σύνολο
ΑΡΧΗ
  Σύνολο <- 0
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 20
    Σύνολο <- Σύνολο + Π[Ι]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  Αθροισμα_Στοιχείων_Πίνακα <- Σύνολο
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
[/glossa]
Σε πρόγραμμα, όπως λέει και ο Παναγιώτης, τα πάντα "Διαβάζονται".  Δεν υπάρχει τρόπος (στα πλαίσια του μαθήματος) να λαμβάνουν τιμές διαφορετικά.

andreas

Φίλιππε, καλημέρα.

Σου ξέφυγε  το  Ι
  
    ΑΚΕΡΑΙΕΣ  :  Ι


gpapargi

Καλημέρα

Χωρίς να διαφωνώ θα περιγράψω μια λίγο διαφορετική αντίληψη για το θέμα των δεδομένων.

Θυμάμαι παλιά στη φυσική που μας δίνανε την άσκηση με το κεκλιμένο επίπεδο και μας ρωτάγανε πχ με ποια επιτάχυνση θα κινηθεί το σώμα προς τα κάτω. Στο τέλος λοιπόν λέγανε «Δίνεται το g, ο συντελεστής τριβής n, η γωνία του κεκλιμένου επιπέδου φ κλπ»

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

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

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

Σε ΓΛΩΣΣΑ τα πράγματα γίνονται αυστηρά στη σύνταξη και κάθε πρόγραμμα πρέπει να είναι αυτόνομο και να τρέχει. Εκεί τα δεδομένα πρέπει να είναι συγκεκριμένα και το πρόγραμμα να τρέχει. Οπότε δεν μπορεί να υπάρχει κάτι αντίστοιχο με τα Δεδομένα // //.

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

Αυτή είναι η οπτική μου γωνία χωρίς να είμαι απόλυτος.

Vangelis

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

Βαγγέλης