ΘΕΜΑ Δ

Ξεκίνησε από Καρκαμάνης Γεώργιος, 12 Ιουν 2017, 10:25:07 ΠΜ

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

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

Εδώ σχολιάζουμε το θέμα Δ

Λαμπράκης Μανώλης

Παιδιά πάμε καλά ??? 3 υποπρογράμματα ??????

ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ

Μπορει να εχει 3 υποπρογραμματα ομως ειναι ξεκαθαρο τι τους ζητειται μονο που δεν τους το λυνει.

Λαμπράκης Μανώλης

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

pstasinos

#4
ΔΙΑΔΙΚΑΣΙΑ ΕΙΣ(ΚΩΔ[50],ΑΠ[50,6])
ΜΕΤΑΒΛΗΤΕΣ
.........
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
   ΔΙΑΒΑΣΕ κωδ
   ΚΩΔ [ i ]  <-  κωδ
   ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
      ΔΙΑΒΑΣΕ απ
      ΑΠ[i,j] <- απ
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΑΝΑΖ(κωδ,ΚΩΔ[50]) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
........
ΑΡΧΗ
θέση <- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
   ΑΝ ΚΩΔ [ i ]=κωδ ΤΟΤΕ
      θέση <- i
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝΑΖ <- θέση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΣΥΝΑΡΤΗΣΗ ΣΥΝΑΠ(i,ΑΠ[50,6],ατ) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
.........
ΑΡΧΗ
s <- 0
ΓΙΑ j ΑΠΟ ατ ΜΕΧΡΙ ατ+2
   s <- s + ΑΠ [ i , ατ ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΣΥΝΑΠ <- s
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑΔ
ΜΕΤΑΒΛΗΤΕΣ
..........
ΑΡΧΗ

ΚΑΛΕΣΕ ΕΙΣ(ΚΩΔ[50],ΑΠ[50,6])

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
   σα1τ <- ΣΥΝΑΠ( i , Α[50,60] , 1)
   ΑΠΤΡ[i,1] <- σα1τ
   σα2τ <- ΣΥΝΑΠ( i , Α[50,60] , 4)
   ΑΠΤΡ[i,1] <- σα2τ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΔΙΑΒΑΣΕ key
ΟΣΟ key<>'ΤΕΛΟΣ' ΕΠΑΝΑΛΑΒΕ
   απ <- ΑΝΑΖ(key,ΚΩΔ[50])
   ΑΝ απ=0 ΤΟΤΕ
      ΓΡΑΨΕ 'ΔΒ'
   ΑΛΛΙΩΣ_ΑΝ ΑΠΤΡ[απ,1]<10 και ΑΠΤΡ[απ,2]<10 ΤΟΤΕ
      ΓΡΑΨΕ 'ΔΣ'
   ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'ΟΔΣ'
   ΤΕΛΟΣ_ΑΝ
   ΔΙΑΒΑΣΕ key
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ



για τυχόν διορθώσεις , θα το κοιτάξω άμεσα

Vagnes

Παράθεση από: pstasinos στις 12 Ιουν 2017, 11:21:07 ΠΜ


ΣΥΝΑΡΤΗΣΗ ΑΝΑΖ(κωδ,ΚΩΔ[50]) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
........
ΑΡΧΗ
θέση <- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
   ΑΝ ΚΩΔ=κωδ ΤΟΤΕ
      θέση <- i
   ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝΑΖ <- θέση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ



Θεωρώ οτι θα ήταν πιο σωστό να χρησιμοποιηθέι σειριακή αναζητηση ώστε να τερματίζεται οταν βρεθεί..

Λαμπράκης Μανώλης

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

Λαμπράκης Μανώλης

Σε όλα βασικα στις παραμέτρους....

pstasinos

Παράθεση από: Vagnes στις 12 Ιουν 2017, 11:23:55 ΠΜ
Θεωρώ οτι θα ήταν πιο σωστό να χρησιμοποιηθέι σειριακή αναζητηση ώστε να τερματίζεται οταν βρεθεί..

Πάντα με καλή πρόθεση η λέξη ΠΙΟ ΣΩΣΤΑ είναι λάθος. Δεν υπάρχει πιο σωστά κατά τη γνώμη μου , υπάρχει όσο πιο απλά .
Το αναφέρω ΜΟΝΟ και ΜΟΝΟ για κανέναν περίεργο διορθωτή που μπορεί να του αρέσει η λύση με την ΟΣΟ.
Δεν μας εξετάζουν ως προς την πολυπλοκότητα του αλγορίθμου. Έχω πει και στα παιδιά μου να γράφουν απλά. Δεν το θεωρώ πιο λάθος και την όσο πιο ΣΩΣΤΟ.

jimmy

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

Vagnes

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

progmat

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑΔ_2017
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ι, ΑΠ[50, 6], ΑΠΤΡ[50, 2], ΘΕΣΗ
  ΧΑΡΑΚΤΗΡΕΣ: ΚΩΔ[50], Κ

ΑΡΧΗ
  ΚΑΛΕΣΕ ΕΙΣ(ΚΩΔ, ΑΠ) 
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 50
    ΑΠΤΡ[Ι, 1] <- ΣΥΝΑΠ(Ι, ΑΠ, 1) 
    ΑΠΤΡ[Ι, 2] <- ΣΥΝΑΠ(Ι, ΑΠ, 4) 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΔΙΑΒΑΣΕ Κ
  ΟΣΟ Κ <> 'ΤΕΛΟΣ' ΕΠΑΝΑΛΑΒΕ
    ΘΕΣΗ <- ΑΝΑΖ(Κ, ΚΩΔ) 
    ΑΝ ΘΕΣΗ <> 0 ΤΟΤΕ
      ΑΝ ΑΠΤΡ[ΘΕΣΗ, 1] < 10 ΚΑΙ ΑΠΤΡ[ΘΕΣΗ, 2] < 10 ΤΟΤΕ
        ΓΡΑΨΕ 'ΕΧΕΙ ΔΙΚΑΙΩΜΑ ΣΥΜΜΕΤΟΧΗΣ'
      ΑΛΛΙΩΣ
        ΓΡΑΨΕ 'ΔΕΝ ΕΧΕΙ ΔΙΚΑΙΩΜΑ ΣΥΜΜΕΤΟΧΗΣ'
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΕ'
    ΤΕΛΟΣ_ΑΝ
    ΔΙΑΒΑΣΕ Κ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


ΔΙΑΔΙΚΑΣΙΑ ΕΙΣ(ΚΩΔ, ΑΠ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΚΩΔ[50] 
  ΑΚΕΡΑΙΕΣ: Ι, J, ΑΠ[50, 6] 
ΑΡΧΗ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 50
    ΔΙΑΒΑΣΕ ΚΩΔ[Ι] 
    ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 6
      ΔΙΑΒΑΣΕ ΑΠ[Ι, J] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΑΝΑΖ(Κ, ΚΩΔ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΚΩΔ[50], Κ
  ΛΟΓΙΚΕΣ: Φ
  ΑΚΕΡΑΙΕΣ: Ι, Θ
ΑΡΧΗ
  Φ <- ΨΕΥΔΗΣ
  Ι <- 1
  ΟΣΟ Ι <= 50 ΚΑΙ Φ = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΚΩΔ[Ι] = Κ ΤΟΤΕ
      Φ <- ΑΛΗΘΗΣ
      Θ <- Ι
    ΑΛΛΙΩΣ
      Ι <- Ι + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ Φ = ΑΛΗΘΗΣ ΤΟΤΕ
    ΑΝΑΖ <- Θ
  ΑΛΛΙΩΣ
    ΑΝΑΖ <- 0
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΣΥΝΑΡΤΗΣΗ ΣΥΝΑΠ(Κ, ΑΠ, ΤΡ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΑΠ[50, 6], ΤΡ, ΑΘ, J, Κ
ΑΡΧΗ
  ΑΘ <- 0
  ΓΙΑ J ΑΠΟ ΤΡ ΜΕΧΡΙ ΤΡ + 2
    ΑΘ <- ΑΘ + ΑΠ[Κ, J] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΣΥΝΑΠ <- ΑΘ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

epsilonXi

Η ΣΥΝΑΠ βέβαια βγαίνει και σε μία γραμμή...

ΣΥΝΑΡΤΗΣΗ ΣΥΝΑΠ (χ, ΑΠ, μ):ΑΚΕΡΑΙΑ
...
ΣΥΝΑΠ <-- ΑΠ[χ,μ] + ΑΠ[χ,μ+1) + ΑΠ[χ,μ+2]
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Rathaniel

Η ΣΥΝΑΠ μπορεί να γραφεί και αλλιώς:


ΑΡΧΗ
    Σ <- 0
   Αν αρ_τριμ = 1 τότε
      Σ <- (άθροισμα 3ων πρώτων στηλών της  i γραμμης)
   Αλλιώς
      Σ<- (άθροισμα 4ης,5ης,6ης στήλης της i γραμμης)
   Τέλος_αν
   ΣΥΝΑΠ <-Σ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Χρηστίδης Αλέξανδρος,
Μηχανικός Επ/κών και Πλη/κών Συστημάτων,
Msc Στα Προηγμένα Συστήματα Πληροφορικής

Rathaniel

Θεωρώ ότι η σύνθετη επιλογή με το pos/done στην ΑΝΑΖ είναι λίγο περιττή, χωρίς να είναι λάθος φυσικά.

Με μία ανάθεση του pos στην ΑΝΑΖ είναι όλα καλά
Χρηστίδης Αλέξανδρος,
Μηχανικός Επ/κών και Πλη/κών Συστημάτων,
Msc Στα Προηγμένα Συστήματα Πληροφορικής

Rathaniel

Για άλλη μία φορά έδειξαν στα παιδιά ότι δεν γνωρίζουν τμηματικό προγραμματισμό.

Για ποιο λόγο να καλείς ΜΟΝΟ ΜΙΑ ΦΟΡΑ ένα υπο/μμα (λέω για το ΕΙΣ) ???????
Αμαν πια.....δεν θα μαθουνε ποτέ......
Χρηστίδης Αλέξανδρος,
Μηχανικός Επ/κών και Πλη/κών Συστημάτων,
Msc Στα Προηγμένα Συστήματα Πληροφορικής

itt

Παράθεση από: Rathaniel στις 12 Ιουν 2017, 04:10:46 ΜΜ
Για άλλη μία φορά έδειξαν στα παιδιά ότι δεν γνωρίζουν τμηματικό προγραμματισμό.

Για ποιο λόγο να καλείς ΜΟΝΟ ΜΙΑ ΦΟΡΑ ένα υπο/μμα (λέω για το ΕΙΣ) ???????
Αμαν πια.....δεν θα μαθουνε ποτέ......

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

novaro

Παράθεση από: Rathaniel στις 12 Ιουν 2017, 04:07:01 ΜΜ
Η ΣΥΝΑΠ μπορεί να γραφεί και αλλιώς:


ΑΡΧΗ
    Σ <- 0
   Αν αρ_τριμ = 1 τότε
      Σ <- (άθροισμα 3ων πρώτων στηλών της  i γραμμης)
   Αλλιώς
      Σ<- (άθροισμα 4ης,5ης,6ης στήλης της i γραμμης)
   Τέλος_αν
   ΣΥΝΑΠ <-Σ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Ημουν vbi σήμερα και τα έλυνα  για τα παιδιά του σχολείου που θα έβγαιναν από την εξέταση. Εγώ έτσι το έκανα . Είναι λίγο πιο cool λύση για το συγκεκριμένο θέμα. Και φυσικά αποδοτικότερη!

petrosp13

Αποδοτικότερη ενώ υλοποιείται και χωρίς δομή επιλογής;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

ntzios kostas

Στο θέμα αυτό έχω μία ένσταση. Πρέπει κάποτε να δούμε τι θα γίνει με την μοριοδότηση των θεμάτων. Δείτε τι γίνεται με την συνάρτηση  Συναπ. Πιάνει τρία μόρια, 1 για την πρώτη γράμμή, 1 για την εντολή ΣΥΝΑΠ<- Σ και 1 για τις εντολές. Θα μου πείτε μα δεν υπάρχουν άλλα μόρια. Ναι αν βάζει 5 υποερωτήματα δεν υπάρχουν. Αν βάζεις όμως 2 ή 3 χωρίς τμήμα δηλώσεων τότε υπάρχουν αρκετά ώστε να αναδείξουν και την σπουδαιότητα του θέματος..
Πρέπει από εδώ και πέρα τα ερωτήματα να είναι λίγα και το σημαντικότερο να μην βαθμολογείται το τμήμα δηλώσεων. Μετρήστε πόσα μόρια δόθηκαν σε αυτό στα σημερινά θέματα.

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

Rathaniel

Παράθεση από: itt στις 12 Ιουν 2017, 05:00:19 ΜΜ
Τι εννοείς, πόσες φορές θες να το καλέσεις; Εισαγωγή δεδομένων κάνει. Βασικά θα έλεγα ότι είναι χαρακτηριστική περίπτωση υποπρογράμματος.
Δεν υπάρχει λόγος να καλείς υπ/μμα μόνο μία φορά. Ακόμα και αν κανει εισαγωγή δεδομένων. Το ότι ειναι σύνηθες στο ΑΕΠΠ, δεν σημαίνει ότι στον προγραμματισμό είναι και το σύνηθες.

Αφου καλείς μία φορά, καλύτερα να γίνει η εισαγωγή απο το Κ.Π.
Χρηστίδης Αλέξανδρος,
Μηχανικός Επ/κών και Πλη/κών Συστημάτων,
Msc Στα Προηγμένα Συστήματα Πληροφορικής

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

Παράθεση από: Rathaniel στις 12 Ιουν 2017, 09:42:47 ΜΜ
Δεν υπάρχει λόγος να καλείς υπ/μμα μόνο μία φορά. Ακόμα και αν κανει εισαγωγή δεδομένων. Το ότι ειναι σύνηθες στο ΑΕΠΠ, δεν σημαίνει ότι στον προγραμματισμό είναι και το σύνηθες.

Αφου καλείς μία φορά, καλύτερα να γίνει η εισαγωγή απο το Κ.Π.

Με αυτό δεν συμφωνώ. Εμείς οι ίδιοι μέσα από το Στέκι το έχουμε κάνει αυτό κανόνα, ότι δηλαδή: "Δεν υπάρχει λόγος να καλείς υπ/μμα μόνο μία φορά", αλλά δεν ξέρω πού το βασίζουμε!

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

Απ' την άλλη, ακόμα και το παράδειγμα του βιβλίου έχει ξεχωριστή Διαδικασία που διαβάζει την ακτίνα του κύκλου.

evry

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

itt

Παράθεση από: Rathaniel στις 12 Ιουν 2017, 09:42:47 ΜΜ
Δεν υπάρχει λόγος να καλείς υπ/μμα μόνο μία φορά. Ακόμα και αν κανει εισαγωγή δεδομένων. Το ότι ειναι σύνηθες στο ΑΕΠΠ, δεν σημαίνει ότι στον προγραμματισμό είναι και το σύνηθες.

Αφου καλείς μία φορά, καλύτερα να γίνει η εισαγωγή απο το Κ.Π.

Φυσικά και υπάρχει λόγος, αυτό που λες δεν έχει καμια βάση. Πχ, κώδικας που κάνει initialization και cleanup θα τρέξει μια φορά στο lifetime της εφαρμογής. Ειδικά στις interactive εφαρμογές είτε σε terminal ή σε window, που η λογική είναι event driven, η ΕΙΣ μπορούσε εύκολα να ήταν σε αυτήν την περίπτωση callback σε κάποιον presenter/controller.

Το να τα έχεις χύμα στο Κ.Π / main / whatever , είναι ορισμός του antipattern για τμηματικό προγραμματισμό.

Sergio

Παράθεση από: Νίκος Αδαμόπουλος στις 12 Ιουν 2017, 09:54:01 ΜΜ
Με αυτό δεν συμφωνώ.

Συμφωνώ με τον Νίκο.

Η χρήση ενός ανεξάρτητου τμήματος προγράμματος περισσότερες από μία φορές δεν είναι ικανή-και-αναγκαία συνθήκη για την κατασκευή του.

Συχνά γίνεται αποκλειστικά για λόγους τμηματοποίησης (ή / και ευκολίας στην κατανόηση - διόρθωση) και άλλες φορές μόνο για λόγους αφαίρεσης (abstraction).
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

novaro

#25
Παράθεση από: petrosp13 στις 12 Ιουν 2017, 09:15:42 ΜΜ
Αποδοτικότερη ενώ υλοποιείται και χωρίς δομή επιλογής;;
Ναι γιατί στην επανάληψη υπάρχει ουσιαστικά ελεγχος συνθήκης για κάθε τιμή του μετρητή κατά τον έλεγχο των ορίων. Οπότε στην περίπτωση της επανάληψης οι λογικές εκφράσεις είναι 4 ενώ στην περίπτωση του τμήματος που παρέθεσε ο συνάδελφος μόνο μία.
Βάλε και την εντολή αύξησης του μετρητή σε κάθε βήμα!

gthal

Παράθεση από: ntzios kostas στις 12 Ιουν 2017, 09:27:05 ΜΜ
Στο θέμα αυτό έχω μία ένσταση. Πρέπει κάποτε να δούμε τι θα γίνει με την μοριοδότηση των θεμάτων. Δείτε τι γίνεται με την συνάρτηση  Συναπ. Πιάνει τρία μόρια

...

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

Αυτό είναι κάτι που ήθελα να σχολιάσω κι εγώ Κώστα!
Τι να πρωτοβαθμολογήσεις από τη συνάρτηση με 3 μόνο μονάδες ?  Τη στιγμή μάλιστα που την έγραψα και είδα τις μονάδες της σκέφτηκα "τσάμπα κόπος" κι ότι κι αν κάποιος μαθητής δε γράψει τη συνάρτηση αυτή καθεαυτή δεν θα χάσει και πολλά...
Ομοίως αναρωτιέμαι πώς μπορεί να βαθμολογείται ένα τμήμα δηλώσεων με 8-10 μεταβλητές με μία μονάδα μόνο;
Από την άλλη, το να μη βαθμολογείται καθόλου είναι κίνητρο να μην το γράψει καθόλου ο μαθητής κι έτσι πέφτουμε πάλι σε φάση ψευδογλώσσας.
Φιλικά,
Γιώργος Θαλασσινός

jimmy

Μία ερώτηση, προς όλους τους συναδέλφους, γιατί το έγραψα πριν και μάλλον πέρασε στο ντούκου. Οι μαθητές οι οποίοι κάλεσαν τη συνάρτηση βάζοντας αριθμό ως όρισμα (π.χ. 1 ή 4) πως θα βαθμολογηθούν; Γιατί το σχολικό βιβλίο λέει ότι οι παράμετροι είναι μεταβλητές. Υπάρχει καμία οδηγία για αυτό; Επίσης το είδα γραμμένο και σε λύσεις συναδέλφου. Με καλή διάθεση εννοείται η παρατήρηση  :)

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

Παράθεση από: jimmy στις 13 Ιουν 2017, 11:57:03 ΠΜ
Μία ερώτηση, προς όλους τους συναδέλφους, γιατί το έγραψα πριν και μάλλον πέρασε στο ντούκου. Οι μαθητές οι οποίοι κάλεσαν τη συνάρτηση βάζοντας αριθμό ως όρισμα (π.χ. 1 ή 4) πως θα βαθμολογηθούν; Γιατί το σχολικό βιβλίο λέει ότι οι παράμετροι είναι μεταβλητές. Υπάρχει καμία οδηγία για αυτό; Επίσης το είδα γραμμένο και σε λύσεις συναδέλφου. Με καλή διάθεση εννοείται η παρατήρηση  :)

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

Obelix

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

Laertis

Παράθεση από: jimmy στις 13 Ιουν 2017, 11:57:03 ΠΜ
Μία ερώτηση, προς όλους τους συναδέλφους, γιατί το έγραψα πριν και μάλλον πέρασε στο ντούκου. Οι μαθητές οι οποίοι κάλεσαν τη συνάρτηση βάζοντας αριθμό ως όρισμα (π.χ. 1 ή 4) πως θα βαθμολογηθούν; Γιατί το σχολικό βιβλίο λέει ότι οι παράμετροι είναι μεταβλητές. Υπάρχει καμία οδηγία για αυτό; Επίσης το είδα γραμμένο και σε λύσεις συναδέλφου. Με καλή διάθεση εννοείται η παρατήρηση  :)

Οι ενδεικτικές λύσεις που απέστειλε η ΚΕΕ στα βαθμολογικά κάνουν χρήση των σταθερών 1 και 4 στην κλήση της συνάρτησης, οπότε δεν υπάρχει κανένα θέμα.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Sergio

ΛΥΣΗ η οποία, στη συνάρτηση ΣΥΝΑΠ δεν κάνει χρήση τοπικής μεταβλητής για τον υπολογισμό του αποτελέσματος αλλά χρησιμοποιεί τη ΣΥΝΑΠ ως κοινή μεταβλητή (ΣΥΝΑΠ <- ΣΥΝΑΠ + ...) έχει βαθμολογική απώλεια ;;

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

epsilonXi

δε βλέπω το λόγο...

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

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

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

novaro

Παράθεση από: Sergio στις 16 Ιουν 2017, 10:10:44 ΠΜ
ΛΥΣΗ η οποία, στη συνάρτηση ΣΥΝΑΠ δεν κάνει χρήση τοπικής μεταβλητής για τον υπολογισμό του αποτελέσματος αλλά χρησιμοποιεί τη ΣΥΝΑΠ ως κοινή μεταβλητή (ΣΥΝΑΠ <- ΣΥΝΑΠ + ...) έχει βαθμολογική απώλεια ;;

Τι λέτε;
Από αυτά που γνωρίζω όταν δηλώνεται η συνάρτηση δημιουργείται από τον μεταγλωττιστή μια τοπική μεταβλητή με το όνομα της συνάρτησης που μπορεί να χρησιμοποιηθεί από τον προγραμματιστή όπως κάθε άλλη μεταβλητή.
Έτσι λοιπόν μπορούμε να κάνουμε ανάθεση σε αυτήν ενώ δεν έχει δηλωθεί καν από εμάς. Η τελική της τιμή  πριν την εντολή ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ είναι και αυτή που επιστρέφεται.

petrosp13

Ναι αλλά αυτό παραπέμπει σε αναδρομή και θα δημιουργήσει συντακτικό λάθος..
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

novaro

Παράθεση από: petrosp13 στις 16 Ιουν 2017, 01:24:19 ΜΜ
Ναι αλλά αυτό παραπέμπει σε αναδρομή και θα δημιουργήσει συντακτικό λάθος..
Για να γίνει αναδρομή πρέπει να γίνει κλήση της συνάρτησης με τα πλήρη ορίσματα της και τις παρενθέσεις. Αλλιώς αναφερόμαστε στην τοπική μεταβλητή.
Ίσως αυτή η σύγχυση που δημιουργήθηκε να είχε ως αποτέλεσμα σε γλώσσες όπως η pascal η ανάθεση να μπορεί να γίνεται και σε άλλη μεταβλητή την result.

Function Factorial(n : Integer) : Integer;
Begin
   If n = 1 Then
      Factorial := 1
   Else
      Factorial := n*Factorial(n-1);
End;

Στο παράδειγμα της Pascal η factorial είναι μεταβλητή γι'αυτό μπορεί να βρίσκεται και στο αριστερό μέρος της εντολής εκχώρησης ενώ δεξιά γίνεται η αναδρομική κλήση της συνάρτησης με ορίσμα το n-1.

andreas_p

ΣΥΝΑΠ <- ΣΥΝΑΠ + .....

γίνεται κλήση της ΣΥΝΑΠ μέσα απ ' τον εαυτό της ....

1.   Αναδρομή
2.  Με λανθασμένο τρόπο


Α

novaro

Παράθεση από: andreas_p στις 16 Ιουν 2017, 11:42:46 ΜΜ
ΣΥΝΑΠ <- ΣΥΝΑΠ + .....

γίνεται κλήση της ΣΥΝΑΠ μέσα απ ' τον εαυτό της ....

1.   Αναδρομή
2.  Με λανθασμένο τρόπο


Α
Αν το ελέγξες πάω πάσο. Δεν έχω λογο να επιμένω .

Sergio

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


1. Παρ.7.8 (Εντολή εκχώρησης):
Σύνταξη
Όνομα-Μεταβλητής <- έκφραση
Λειτουργία
Υπολογίζεται η τιμή της έκφρασης στη δεξιά πλευρά και εκχωρείται η τιμή αυτή στη μεταβλητή, που αναφέρεται στην αριστερή πλευρά.

Συμπέρασμα 1α: Στην αριστερή πλευρά μιας εντολή εκχώρησης υπάρχει όνομα μεταβλητής
Συμπέρασμα 1β: Στη δεξιά πλευρά μιας εντολή εκχώρησης υπάρχει έκφραση


2. Παρ.10.5. (Διαδικασίες και συναρτήσεις):
Οι συναρτήσεις εκτελούνται απλά με την εμφάνιση του ονόματος τους σε οποιαδήποτε έκφραση.

Συμπέρασμα 2: Η εμφάνιση του ονόματος μιας συνάρτησης σε μια έκφραση αποτελεί κλήση της συνάρτησης


3. Παρ.10.5.1. (Ορισμός και κλήση συναρτήσεων):
Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης..

Συμπέρασμα 3: Στις εντολές του σώματος της συνάρτησης, το όνομα της συνάρτησης παίζει το ρόλο μεταβλητής.


4. Παρ.10.5.1. (Ορισμός και κλήση συναρτήσεων):
Κάθε συνάρτηση εκτελείται, όπως ακριβώς εκτελούνται οι ενσωματωμένες συναρτήσεις της γλώσσας. Απλώς αναφέρεται το όνομα της σε μια έκφραση ή σε μία εντολή και επιστρέφεται η τιμή της.

Συμπέρασμα 4: (ΙΔΙΟ με το συμπέρασμα 2) Η εμφάνιση του ονόματος μιας συνάρτησης σε μια έκφραση αποτελεί κλήση της συνάρτησης.


5. Παρ.10.7. (Αναδρομή)
ΕΚΤΟΣ ύλης



Κάπως έτσι αρχίζουν οι συγκρούσεις.

Στο πλαίσιο της ύλης, η αναδρομή (τόσο ως ύλη όσο και ως ΕΝΝΟΙΑ) ΔΕΝ διδάσκεται.

Με βάση το συμπέρασμα 3, στις εντολές του σώματος της συνάρτησης, το όνομα της συνάρτησης παίζει το ρόλο μεταβλητής, κάτι το οποίο «επιβεβαιώνεται» και από το συμπέρασμα 1α.

Με βάση το συμπέρασμα 2 (όπως επαναλαμβάνεται και στο 4 και υποστηρίζεται από το συμπέρασμα 1β) η αναφορά του ονόματος της συνάρτησης σε μια έκφραση αποτελεί κλήση στη συνάρτηση.


Ναι, αλλά στο σώμα της συνάρτησης είναι μεταβλητή!! (προσπαθώ να σκεφτώ ως μαθητής τώρα..) 

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

Ναι, αλλά στο δεξιό μέλος μιας εντολής εκχώρησης υπάρχει έκφραση!! Και η αναφορά του ονόματος της συνάρτησης σε μια έκφραση αποτελεί κλήση!!

Ναι ρε φίλε, αλλά μην ξεχνάς, είμαστε ΜΕΣΑ στη συνάρτηση, και εκεί το όνομά της είναι μεταβλητή..

Ναι αλλά στο δεξιό σκέλος, που το όνομα συμπεριλαμβάνεται σε έκφραση, δεν είναι κλήση;;

Πας καλά;; Να καλέσει ΤΙ?? Τον εαυτό της;;; Σοβαρέψου !! Αφού είπαμε, μέσα στην ίδια τη συνάρτηση, το όνομά της λειτουργεί ως μεταβλητή, το λέει και το βιβλίο: (Κλήση συνάρτησης) «Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης».. (Εντολή εκχώρησης) «Υπολογίζεται η τιμή της έκφρασης στη δεξιά πλευρά και εκχωρείται η τιμή αυτή στη μεταβλητή, που αναφέρεται στην αριστερή πλευρά».   Άκου κει.. Να καλεί τον εαυτό της.. Πολύ φαντασία έχεις..

Τέλος πάντων.. Μάλλον παραμπήκα στο πετσί του ρόλου (του μαθητή).


Καταληκτικά: Παρά το γεγονός πως ως δάσκαλος διδάσκω πως πρέπει να χρησιμοποιούν τοπική μεταβλητή για τον υπολογισμό του αποτελέσματος και να εκχωρούν την τιμή της στο όνομα της συνάρτησης, όταν βρίσκομαι αντιμέτωπος με ερωτήματα της μορφής ΓΙΑΤΙ να μη χρησιμοποιήσουμε το όνομα της συνάρτησης κανονικά αφού λειτουργεί ως μεταβλητή τους αναβάλω την απάντηση για αργότερα.  Έτσι, αναγκάζομαι (στο δεύτερο πέρασμα της σχετικής ενότητας) να μιλήσω για αναδρομή (πολύ απαλά) ΜΟΝΟ-ΚΑΙ-ΜΟΝΟ για να εξηγήσω πως ΔΕΝ πρέπει να αναφέρεται το όνομα της συνάρτησης σε έκφραση για λόγους που είναι «εκτός ύλης»

Εν τούτοις, στο πλαίσιο των εξετάσεων, κλίνω υπέρ της άποψης πως ΛΥΣΗ η οποία, στη συνάρτηση ΣΥΝΑΠ δεν κάνει χρήση τοπικής μεταβλητής για τον υπολογισμό του αποτελέσματος αλλά χρησιμοποιεί τη ΣΥΝΑΠ ως κοινή μεταβλητή (ΣΥΝΑΠ <- ΣΥΝΑΠ + ...) ΔΕΝ πρέπει να έχει βαθμολογική απώλεια.
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

novaro

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

Sergio

Παράθεση από: novaro στις 17 Ιουν 2017, 09:25:04 ΜΜ
Αστέριε το έτρεξες σε ΓΛΩΣΣΑ και κάνει όντως αναδρομή; Εγώ δεν το έτρεξα αλλά ξέρω ότι αν δεν βάλεις παρένθεση και ορίσματα αν υπάρχουν δεν καλείται η συνάρτηση αλλά αναφερόμαστε στη μεταβλητή. Είπα και σε προηγούμενο ποστ ότι στην Pascal για αυτό το λόγο βάλανε την τοπική μεταβλητη result.
Ο Διερμηνευτής το ερμηνεύει ως κλήση και γι' αυτό παράγει μήνυμα λάθους:
"Περίμενα αριστερή παρένθεση για τις παραμέτρους του υποπρογράμματος «ΣΥΝΑΠ»."

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

Το πρόβλημα, όπως το περιέγραψα παραπάνω, έχει να κάνει με την απουσία της αναδρομής από την ύλη, το κείμενο του βιβλίου, αλλά και τις αναπαραστάσεις των μαθητών από το "εντός ύλης" διδαγμένο.
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

novaro

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


Σας χαιρετώ παιδιά . Καλή συνέχεια στις συζητήσεις σας. Του χρόνου πάλι θα τα πούμε στις πανελλαδικές. Να είστε όλοι καλά.

epsilonXi

εγώ νομίζω ότι κουβεδιάζουμε περισσότερο απ' όσο χρειάζεται...

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

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

θα μού πεις ότι δεν είναι το ίδιο... και θα σού πω πάλι ότι δεν έχει σημασία  :P

σημασία έχει να βγαίνει ένα σωστό νόημα, λογική


alkisg

Σόρρυ παιδιά δεν το είχα δει το θέμα.

Παράθεση από: Sergio στις 17 Ιουν 2017, 09:07:46 ΜΜ

3. Παρ.10.5.1. (Ορισμός και κλήση συναρτήσεων):
Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης..

Συμπέρασμα 3: Στις εντολές του σώματος της συνάρτησης, το όνομα της συνάρτησης παίζει το ρόλο μεταβλητής.

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

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

Έτσι για παράδειγμα στην Pascal η εντολή st := Keypress + Keypress, καλεί δύο φορές την συνάρτηση Keypress που διαβάζει ένα πλήκτρο από το πληκτρολόγιο χωρίς να περιμένει Enter.

Η μεταβλητή Result της Pascal δεν υπήρχε στην Standard Pascal και εισήχθηκε σε νεότερες εκδόσεις της Turbo Pascal σαν βοήθημα, αν ποτέ χρειαστεί να διαβάσουμε την τιμή που έχουμε καταχωρήσει στη συνάρτηση. Δεν νομίζω ότι η μεταβλητή Result μας ενδιαφέρει καθόλου στα πλαίσια της ΓΛΩΣΣΑΣ.

Όσο για τα εκτός ύλης κλπ, είναι τελείως λάθος να αλλάζουμε τους κανόνες της ΓΛΩΣΣΑΣ ανάλογα με το τι είναι κάθε χρονιά στην ύλη. Η ΓΛΩΣΣΑ είναι και διαδικασιακή και αντικειμενοστραφής και event driven κλπ, ακόμα κι αν δεν είναι στην ύλη όλα αυτά τα χρόνια ο οδηγούμενος από τα γεγονότα προγραμματισμός, ή αν δεν έχει υλοποιηθεί στον Διερμηνευτή κλπ.

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

novaro

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

Τώρα όσον αφορά τη λεπτομέρεια αυτή δεν ξέρω αν στο stackoveflow όλοι είναι σωστοί και γνωρίζουν αλλά βρήκα αυτό:

https://stackoverflow.com/questions/34979207/why-i-can-use-function-name-in-pascal-as-variable-name-without-definition
Αναφέρεται στην Pascal πάνω στην οποία είναι φτιαγμένος ο διερμηνευτής.

****************************************************
In case of usage of function name at the right side of equation, it is interpreted as variable, not as function calls:

Test := Test + 1; // Increments Test value
but you still can to call function recursively using brackets:

Test := Test() + 1; // Recursion
So, you have three ways to return value from the function (for your example):

function Test : integer;
begin
    Test := 2; // Function result = 2
    Result := 2; // Same to previous
    Exit(2); // Sets function result to 2 end exits immediately
end;
It is up to you which method to use.
******"******************"*******************†*

Κάτι μου έρχεται στο μυαλό σχετικά με r-values και l-values. Το ερώτημα είναι αν στο δεξιό μέρος της εκχώρησης το όνομα της συνάρτησης είναι η rvalue της μεταβλητής με το όνομα της συνάρτησης ή γίνεται κλήση. Η lvalue της είναι σίγουρα η διεύθυνση της μεταβλητής γι'αυτό και κάνουμε εκχώρηση. Με αυτά που είπαμε αφού στο δεξιό μέρος δεν γίνεται αποτίμηση αλλά κλήση σημαίνει ότι η μεταβλητή δεν μπορεί να συμμετέχει σε εκφράσεις γιατί δεν μπορεί να αποτιμηθεί η  r-value της.

Επίσης θέλω να δηλώσω ότι προσφέρομαι να συνεισφέρω αν υπάρχει διάθεση να μεταφέρεις την ΓΛΩΣΣΑ σε android.

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

Και για να μην είμαι και ανώνυμος μιας και δεν έχει νόημα. σε μια επιστημονική κοινότητα.

Σαρικας Σάββας
Καθηγητής Πληροφορικής


evry

#45
Συμφωνώ απόλυτα

Παράθεση από: alkisg στις 18 Ιουν 2017, 07:15:29 ΠΜ
το όνομα της συνάρτησης είναι μεταβλητή όταν και μόνο όταν είμαστε στο εσωτερικό μιας συνάρτησης, και στο αριστερό μέρος μιας εντολής εκχώρησης. Οπουδήποτε αλλού αποτελεί κλήση της συνάρτησης.

Όσο για τα εκτός ύλης κλπ, είναι τελείως λάθος να αλλάζουμε τους κανόνες της ΓΛΩΣΣΑΣ ανάλογα με το τι είναι κάθε χρονιά στην ύλη. Η ΓΛΩΣΣΑ είναι και διαδικασιακή και αντικειμενοστραφής και event driven κλπ, ακόμα κι αν δεν είναι στην ύλη όλα αυτά τα χρόνια ο οδηγούμενος από τα γεγονότα προγραμματισμός, ή αν δεν έχει υλοποιηθεί στον Διερμηνευτή κλπ.

Παράθεση από: epsilonXi στις 18 Ιουν 2017, 12:17:35 ΠΜ
δεν έχει καμία σημασία αν είναι στην ύλη η αναδρομή ή όχι... όταν τους λες για μετρητές που αυξάνονται κατά ένα, μιλάς για αναδρομή;
σημασία έχει να βγαίνει ένα σωστό νόημα, λογική

ΥΓ. Αυτό με το ότι το όνομα συνάρτησης αποτελεί μεταβλητή μόνο στο αριστερό μέλος και τη Result τι μου θύμισε ρε Άλκη, 23 χρόνια πίσω :( .  Turbo Pascal 7. Αν θυμάμαι καλά το Result ήταν μόνο στην Delphi ή στην Object Pascal?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

Σάββα δοκίμασα αυτό που λες και ισχύει, δηλαδή test := test + 1 στην Free Pascal (fp-compiler-3.0.0) δεν κάνει κλήση/αναδρομή,
ενώ αντίθετα στην Turbo Pascal 7 κάνει αναδρομή.

Επιπρόσθετα, στην Free Pascal επιτρέπεται κλήση συνάρτησης χωρίς παραμέτρους είτε ως test είτε ως test(),
ενώ στην Turbo Pascal 7 μόνο ως test. Αν βάλεις και παρενθέσεις είναι συντακτικό λάθος.

Το πρόβλημα που έχω με την υλοποίηση της Free Pascal είναι ότι η εντολή x := test + 1, αν είναι έξω από τη συνάρτηση test τότε κάνει κλήση, ενώ αν είναι μέσα στη συνάρτηση test δεν κάνει κλήση. Αυτό μου φαίνεται χαοτικό.

Οπότε να διορθώσω λέγοντας ότι ο Διερμηνευτής ακολουθεί την υλοποίηση της Turbo Pascal και όχι της Free Pascal.

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

Καλημέρα σε όλους!

Sergio

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

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

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

Στην προκείμενη περίπτωση, δηλαδή στον προβληματισμό που αρχικά διατύπωσα:
Παράθεση από: Sergio στις 16 Ιουν 2017, 10:10:44 ΠΜΛΥΣΗ η οποία, στη συνάρτηση ΣΥΝΑΠ δεν κάνει χρήση τοπικής μεταβλητής για τον υπολογισμό του αποτελέσματος αλλά χρησιμοποιεί τη ΣΥΝΑΠ ως κοινή μεταβλητή (ΣΥΝΑΠ <- ΣΥΝΑΠ + ...) έχει βαθμολογική απώλεια ;;
αυτό στο οποίο οφείλουμε να εστιάσουμε είναι τα κριτήρια βάση των οποίων θα βαθμολογήσουμε.

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

Και το ερώτημα που τίθεται είναι το εξής: πώς μπορούμε, ως δάσκαλοι να αποτρέψουμε τη διαμόρφωση αυτής της αντίληψης στο πλαίσιο της ύλης;
Ο μόνος τρόπος που έχω βρει εγώ, και χρησιμοποιώ με τους μαθητές μου, είναι κάνοντας (εκτός ύλης) αναφορά στην έννοια της αναδρομής, μόνο και μόνο για να τους εξηγήσω πως η σύγκρουση στην οποία ενδέχεται να οδηγηθούν συνεκτιμώντας τα αντικρουόμενα (βλ.παραπάνω post ) :
Είναι μεταβλητή αφού:
-   στην αριστερή πλευρά μιας εντολή εκχώρησης υπάρχει όνομα μεταβλητής,
-   στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα της συνάρτησης αλλά,
ΔΕΝ είναι μεταβλητή αφού:
-   στη δεξιά πλευρά μιας εντολή εκχώρησης υπάρχει έκφραση,
-   oι συναρτήσεις εκτελούνται απλά με την εμφάνιση του ονόματος τους σε οποιαδήποτε έκφραση,
έχει απάντηση (εκτός ύλης).

ΔΕΝ θεωρώ όμως αυτονόητο πως όλοι οι συνάδελφοι κάνουν το ίδιο και γι' αυτό, στο πλαίσιο της τελικής εξέτασης των μαθητών για την εισαγωγή τους στην τριτοβάθμια θεωρώ πως
Παράθεσηγια το συγκεκριμένο "λάθος" ΔΕΝ πρέπει να υπάρχει βαθμολογική απώλεια μονάδων.  Ούτε ΜΙΑΣ !!

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

Το κειμενάκι που επισυνάπτεται στα posts μου, σε μεγάλο βαθμό εκφράζει την αφετηρία (και προτεραιότητα) της σκέψης μου σε τέτοια θέματα.

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

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

Και, εντελώς τυχαία, σε ένα από τα τελευταία γραπτά που βαθμολογούσα εχθές, κάποιο παλληκάρι (δεν πρέπει να ήταν κοπέλα, με τέτοιο γραφικό χαρακτήρα) είχε ως μόνο λάθος το 4ο Σ/Λ (και το υπό συζήτηση ΣΥΝΑΠ <- ΣΥΝΑΠ + ...).  Το βαθμολόγησα με 98 και θεωρώ πως καλά έκανα.
Καλό μας καλοκαίρι !
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

Γιάννης Αναγνωστάκης

θεωρώ ότι θα λυθούν άπειρα απο τα προβλήματα μας εαν μεταβούμε σε ενα περιβάλλον γλώσσας προγραμματισμού όπως η Python

Το διαπίστωσα φέτος κάνοντας Python σε παιδιά του ΕΠΑ.Λ....