Βοήθεια/Απορίες στην ΑΕΠΠ - Ασκήσεις

Τι πιστεύετε για την ΑΕΠΠ;

Αποτελέσματα της δημοσκόπησης (Ψήφισαν 53)
  • Εύκολη

    Ψήφοι: 30 56.6%
  • Δύσκολη

    Ψήφοι: 23 43.4%
  • ΔΞ/ΔΑ

    Ψήφοι: 0 0.0%

mina14

Νεοφερμένος

Η mina14 αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 31 ετών και Μαθητής Γ' λυκείου. Έχει γράψει 23 μηνύματα.
ΒΟΗΘΕΙΑ!!!Πως βρίσκουμε το 4ο μικροτερο στοιχειο ενος δυσδυαστατου?Βισκουμε το 1 μετα κανουμε την ιδια διαδικασια εξαιρωντας το1 για να βρουμε το 2 κτλ μεχρι το 4 η υπαρχει καποιος αλλος τροπος?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

meteo_xampos

Νεοφερμένος

Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
spyros2309 η λύση σου ήταν σωστή σε ότι αφορά τη σκέψη, όμως σε αρκετά σημεία έχει λάθος...
Το πρώτο λάθος και σημαντικότερο είναι η χρήση πινάκων σε άσκηση με άγνωστο πλήθος επαναλήψεων (δε σου λέει πόσα θα είναι τα πακέτα
που θα αγοραστούν)... Δεν ξέρεις από την αρχή το μέγεθος του πίνακα που θα χρησιμοποιήσεις... Έχει μαλλιάσει η γλώσσα μου να λέω στους μαθητές μου ότι δεν πρέπει να χρησιμοποιούμε πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων, εκτός και αν στο ζητάει η άσκηση... Πολλοί μαθητές όταν αντιμετωπίζουν ασκήσεις που πριν τους πίνακες τις λύνανε, τώρα που ξεκινάνε επαναλήψεις, σε παρόμοιες ασκήσεις βάζουν πίνακες μέσα στη λύση και ας μη χρειάζεται και να μη το λέει η άσκση...

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

Το τρίτο λάθος είναι ότι στη Για που κάνεις αναζήτηση μεγίστου, πρέπει να γράψεις Για κ από 2 μέρχι π...

Γενικά, είναι λάθος να χρησιμοποιείς πίνακες σε ασκήσεις με άγνωστο πλήθος επαναλήψεων...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

GiannhsD17

Νεοφερμένος

Ο GiannhsD17 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών και Μαθητής Γ' λυκείου. Έχει γράψει 21 μηνύματα.
Μπορείς να ταξινομήσεις τον δισδιάστατο μέσω ενός μονοδιάστατου σε αύξουσα σειρά και τότε το 4ο μικρότερο στοιχείο θα είναι το Π[4] (αν Π ο πίνακας σου)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Spyros2309

Νεοφερμένος

Ο Ποιο να 'ναι.... αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Μαθητής Γ' λυκείου και μας γράφει απο Κομοτηνή (Ροδόπη). Έχει γράψει 74 μηνύματα.
κ, Χαράλαμπε συμφωνώ στο τελευταίο. ΓΙατί υπάρχει πιθανότητα το ι να είναι π+1. Οπότε στη τελευταία επανάληψη δε θα βρίσκει τιμή.
Όσο για τον πίνακα χωρίς να γνωρίζω τις επαναλήψεις (διαστάσεις) και στο ότι βάζω χαρακτήρες και αριθμούς δε συμφωνώ ότι είναι λάθος.
Αλγόριθμο κάνω, όχι πρόγραμμα :)
Στους αλγόριθμους μπορώ να χρεισιμοποιήσω έναν πίνακα Ν,Μ θέσεων, και εφόσον δεν υπάρχει δήλωση μεταβλητών μπορώ να κάνω τα πάντα σ αυτόν.
Στο κάτω κάτω αλγόριθμος δεν είναι προγραμματισμός, πιο πολύ τείνει σε κωδικοποιημένη φυσική γλώσσα παρά σε μια γλώσσα προγραμματισμού με κανόνες κτλ.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

meteo_xampos

Νεοφερμένος

Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
Δεν έχει σημασία Σπύρο αν γράφεις πρόγραμμα ή αλγόριθμο... Σε πίνακα επιτρέπεται να βάλεις ενός τύπου δεδομένα μόνο...
Και σε ότι αφορά τις διαστάσεις του πίνακα πρέπει να είναι γνωστές, γιατί οι πίνακες που χρησιμοποιείται στον προγραμματισμό
είναι στατικές δομές δεδομένων, άρα θα πρέπει στην έναρξη του αλγορίθμου ή του προγράμματος να δεσμεύσεις γνωστό αριθμό
κόμβων για να αποθηκεύσεις τα δεδομένα σου... Μπορείς να κάνεις ότι θες σε μια δομή δεδομένων, και να βάζεις όσα στοιχεία θές
και οποιουδήποτε είδους θες μόνο όταν χρησιμοποιείς δυναμικές δομές δεδομένων...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Spyros2309

Νεοφερμένος

Ο Ποιο να 'ναι.... αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Μαθητής Γ' λυκείου και μας γράφει απο Κομοτηνή (Ροδόπη). Έχει γράψει 74 μηνύματα.
Οκ, να μη βάλω μεταβλητές διαφορετικού τύπου στο πίνακα, να γίνει σε 2 πίνακες :)
Ν θέσεων ο καθένας.
Δεν αλλάζω την αποψή μου ότι μπορώ να κάνω πίνακα Ν θέσεων σε αλγόριθμο. Δε με σταματάει κανένας :)
Δε χρειάζεται να τον δηλώσω κάπου, ώστε να πρέπει να δηλώσω τη χωριτηκότητά του, οπότε κάλλιστα μπορώ να κάνω αυτό το "τρικ".

Πάμε πάλι:
Code:
ΑΛΓΟΡΙΘΜΟΣ μπεεεεεεεεεεεεεε

      ΓΡΑΨΕ 'Πληκτρολογήστε το ποσό που θέλετε να ξοδέψετε.'
      ΔΙΑΒΑΣΕ χ
      ι <-- τ
      π <-- 0
      π2 <-- 0
      ΟΣΟ χ> 0 ΕΠΑΝΑΛΑΒΕ
            ι <-- ι + 1
            ΓΡΑΨΕ 'Δώσε τη τιμή του', ι,'ου πακέτου.'
            ΔΙΑΒΑΣΕ  ΜΠΕ1[ ι]
            ΑΝ χ-ΜΠΕ1[ι]>=0 ΤΟΤΕ
                  π <-- π+1
                  ΓΡΑΨΕ 'Δώσε τη μάρκα του', ι,'ου πακέτου.'
                  ΔΙΑΒΑΣΕ ΜΠΕ2[ι]
                  ΑΝ ΜΠΕ[2,ι]>2 ΤΟΤΕ π2 <-- π2 + 1
                  χ <-- χ - ΜΠΕ2[ι]
            ΑΛΛΙΩΣ
                  ΓΡΑΨΕ 'Δε μπορείτε να αγοράσετε αυτό το πακέτο -- Η αγορά τελείωσε'
                  χ <-- -1
            ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ χ = 0 ΤΟΤΕ ΓΡΑΨΕ '«Εξαντλήθηκε όλο το ποσό»'
      μεγ <-- 1
      ελ <-- ΜΠΕ2[1]
      ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ π
            ΑΝ ΜΠΕ2[ι] > ΜΠΕ2[μεγ] ΤΟΤΕ μεγ <-- ι
            ΑΝ ΜΠΕ2[ι] < ελ ΤΟΤΕ ελ <-- ΜΠΕ2[ι]
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Μάρκα ακριβότερου πακέτου:', ΜΠΕ1[μεγ]
      ΓΡΑΨΕ 'Τιμή φθηνότερου πακέτου:', ελ
      ΓΡΑΨΕ 'Αγοράσατε συνολικά', π,' πακέτα ρύζι, από τα οποία ', π2,' κοστίζουν πάνω από 2?.'
ΤΕΛΟΣ
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

ptsiotakis

Εκκολαπτόμενο μέλος

Ο ptsiotakis αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 271 μηνύματα.
Δεν αλλάζω την αποψή μου ότι μπορώ να κάνω πίνακα Ν θέσεων σε αλγόριθμο. Δε με σταματάει κανένας :)
Δε χρειάζεται να τον δηλώσω κάπου, ώστε να πρέπει να δηλώσω τη χωριτηκότητά του, οπότε κάλλιστα μπορώ να κάνω αυτό το "τρικ".

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

Σε ασκήσεις που εισάγεται άγνωστο πλήθος στοιχείων ΔΕ μπορούν να χρησιμοποιηθούν πίνακες και αν το κάνεις στις εξετάσεις θα σου στερήσει μόρια, όπως έχει γίνει ήδη στο παρελθόν.
Καλό είναι να αναθεωρήσεις τη στρεβλή εικόνα που έχεις για το θέμα αυτό και ΚΑΛΗ ΕΠΙΤΥΧΙΑ σε όλους
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kostaspotter

Νεοφερμένος

Ο Κώστας αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Μαθητής Γ' λυκείου και μας γράφει απο Ηράκλειο (Κρήτη). Έχει γράψει 74 μηνύματα.
Παιδιά έστειλε λέει το υπουργείο διευκρίνηση προχθές για τις συναρτήσεις που χρησιμοποιούμε!
Έλεγαν και καλά πως ως γνωστόν η συνάρτηση επιστρέφει μόνο μια τιμή στο κυριο πρόγραμμα!Έτσι αν υθέλουμε να βρούμε το άθροισμα στοιχείων ενός πίνακα μέσα σε συνάρτηση τότε δεν πρέπει να κάνουμε το παρακάτω:
Έστω πως ο πίνακας έχει 100 στοιχεία τα οποία μπορεί να είναι είτε πραγματικοί έιτε ακέραιοι!

ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ

ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Θέλουν από εδώ και πέρα να το κάνουμε έτσι:

ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100], SUM
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ

SUM <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
SUM <- SUM + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- SUM
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Δλδ δεν θέουν να γίνεται κατευθείαντο άθροισμα στο όνομα της συνάρτησης!Θέλουν να χρησιμοποιούμε μια άλλη μεταβλητή να αποθηκεύει το άθροισμα και στο τέλος να καταχωρούμε το άθροισμα στο όνομα της συνάρτησης!
Μας το είπε ο καθηγητής στο σχολείο!Τους το έστειλαν λέει αυτή τη βδομάδα!Για ρωτήστε και εσείς!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Μιχάλης9867

Πολύ δραστήριο μέλος

Ο Μιχάλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Φοιτητής και μας γράφει απο Νάξος (Κυκλάδες). Έχει γράψει 895 μηνύματα.
παντως εγω περσυ με τον δευτερο τροπο το εκανα...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

meteo_xampos

Νεοφερμένος

Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
Πότε έστειλε το υπουργείο τέτοια διευκρίνηση; Μπορείς να δώσεις το link;
Πάντως, αν το γράψεις έτσι

ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ

ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

...είναι ΛΑΘΟΣ γιατί χρησιμοποιείς το όνομα της συνάρτησης (το οποίο ΔΕΝ είναι μεταβλητή),
και στα δεξιά μιας έκφρασης, και είναι σα να καλείται η συνάρτηση από τον εαυτό της, και
αυτό ονομάζεται αναδρομή στον προγραμματισμό, πράγμα το οποίο (δυστυχώς :)) δεν το χετε
στην ύλη σας...
Προσέξετε μη το κάνετε αυτό στις εξετάσεις... Πάντα θα κάνετε τον υπολογισμό που σας
ζητάει η συνάρτηση, και μετά πριν γράψετε ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ, στο όνομα της
συνάρτησης αποθηκεύετε αυτό που υπολογίσατε, όπως έδειξε και η δεύτερη (ΣΩΣΤΗ)
λύση...

 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Μπάμπης ο Άλλος

Δραστήριο μέλος

Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
Πότε έστειλε το υπουργείο τέτοια διευκρίνηση; Μπορείς να δώσεις το link;
Πάντως, αν το γράψεις έτσι

ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝΑΚΑΣ[100]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ

ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ + ΠΙΝΑΚΑΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

...είναι ΛΑΘΟΣ γιατί χρησιμοποιείς το όνομα της συνάρτησης (το οποίο ΔΕΝ είναι μεταβλητή),
και στα δεξιά μιας έκφρασης, και είναι σα να καλείται η συνάρτηση από τον εαυτό της, και
αυτό ονομάζεται αναδρομή στον προγραμματισμό, πράγμα το οποίο (δυστυχώς :)) δεν το χετε
στην ύλη σας...
Προσέξετε μη το κάνετε αυτό στις εξετάσεις... Πάντα θα κάνετε τον υπολογισμό που σας
ζητάει η συνάρτηση, και μετά πριν γράψετε ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ, στο όνομα της
συνάρτησης αποθηκεύετε αυτό που υπολογίσατε, όπως έδειξε και η δεύτερη (ΣΩΣΤΗ)
λύση...


Η συνάρτηση καλεί τον εαυτό της (Αναδρομή)? Μα για να κάνεις κλήση της συνάρτησης πρέπει να βάλεις παραμέτρους.
Δεν ξέρω αν και για ποίο λόγο είναι λάθος το παραπάνω.

Πάντως αν είμαι σωστά ενημερωμένος για να έκανε κλήση του εαυτού της η συνάρτηση θα έπρεπε να είναι

ΑΘΡΟΙΣΜΑΠΙΝΑΚΑΣ<---ΑΘΡΟΙΣΜΑΠΙΝΑΚΑΣ(ΠΑΡΑΜΕΤΡΟΣ) + ΠΙΝΑΚΑΣ

Κάνω λάθος?

Επίσης, λές παραπάνω ότι το όνομα της συνάρτησης που χρησιμοποιείται δεν είναι μεταβλήτη.
Εάν ο καθηγητής μου μου τα έχει πεί σωστά, το όνομα της συνάρτησης ΕΙΝΑΙ μεταβλητή, απλά δεν την δηλώνουμε στις μεταβλητές γιατί η δηλωσή της γίνεται στην πρώτη γραμμή της συνάρτησης, εκεί που λέμε :ΠΡΑΓΜΑΤΙΚΗ/ΑΚΕΡΑΙΑ κλπ.

Εάν κάνω λάθος σε ο,τιδήποτε παρακαλώ διορθώστε με για να μην τα κάνω μαντάρα στις εξετάσεις :D
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

meteo_xampos

Νεοφερμένος

Ο Χαράλαμπος Καρανδεινός αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών, Καθηγητής και μας γράφει απο Ιεράπετρα (Λασιθίου). Έχει γράψει 12 μηνύματα.
Το όνομα της συνάρτησης δρά ΣΑΝ μεταβλητή. Δεν είναι μεταβλητή. Δεν μπορούμε να το χρησιμοποιούμε και στα δεξιά μιας έκφρασης...
Το σωστό είναι να βάζεις στο όνομα της συνάρτησης αυτό που υπολογίσες (εδώ το άθροισμα του πίνακα) πριν το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ...
Τρέξε το παρακάτω στο Διερμηνευτή να δείς τι συμβαίνει (στην συνάρτηση έβαλα σαν παράμετρο πίνακα αφού έτσι την ορίζουμε)...
Ο Διερμηνευτής βρίσκεται στη διεύθυνση https://users.sch.gr/alkisg/. Κατεβάζεις το exe αρχείο και το τρέχεις...

ΠΡΟΓΡΑΜΜΑ Τάδε
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[5], Α
ΑΚΕΡΑΙΕΣ: i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΠΙΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝ)
ΓΡΑΨΕ Α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

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

---------------------------------------------------------------

Η χρήση ονόματος συνάρτησης και στα δεξιά μιας έκφρασης μας οδηγεί σε αναδρομή και αυτό είναι εκτός ύλης (δες και στο κεφάλαιο 10.7). ΑΠΑΓΟΡΕΥΤΕΤΑΙ!!! Μη το κάνετε θα κοπούν μονάδες!!!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

Μπάμπης ο Άλλος

Δραστήριο μέλος

Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
Το όνομα της συνάρτησης δρά ΣΑΝ μεταβλητή. Δεν είναι μεταβλητή. Δεν μπορούμε να το χρησιμοποιούμε και στα δεξιά μιας έκφρασης...
Το σωστό είναι να βάζεις στο όνομα της συνάρτησης αυτό που υπολογίσες (εδώ το άθροισμα του πίνακα) πριν το ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ...
Τρέξε το παρακάτω στο Διερμηνευτή να δείς τι συμβαίνει (στην συνάρτηση έβαλα σαν παράμετρο πίνακα αφού έτσι την ορίζουμε)...
Ο Διερμηνευτής βρίσκεται στη διεύθυνση https://users.sch.gr/alkisg/. Κατεβάζεις το exe αρχείο και το τρέχεις...

ΠΡΟΓΡΑΜΜΑ Τάδε
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΠΙΝ[5], Α
ΑΚΕΡΑΙΕΣ: i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΠΙΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝ)
ΓΡΑΨΕ Α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

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


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

Πάντως αυτό:
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ(ΠΙΝΑΚΑΣ) + ΠΙΝΑΚΑΣ[Ι]

προφανώς και είναι αναδρομή αφού καλείς την ίδια τη συνάρτηση μέσα στη συνάρτηση.

Αυτό:
ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ <- ΑΘΡΟΙΣΜΑΠΙΝΑΚΑ+ ΠΙΝΑΚΑΣ[Ι]


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

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Μπάμπης ο Άλλος

Δραστήριο μέλος

Ο Μπάμπης ο Άλλος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Παλαιό Φάληρο (Αττική). Έχει γράψει 418 μηνύματα.
2) Για το ερώτημα:

«Όταν μια συνάρτηση αλλάζει το περιεχόμενο των παραμέτρων της, οι αλλαγές αυτές επιστρέφουν πίσω στις πραγματικές παραμέτρους;»

Στην ενότητα 10.5. Διαδικασίες και συναρτήσεις (Βιβλίο Μαθητή, σελ. 210) αναφέρεται: «Οι διαδικασίες μπορούν να εκτελέσουν οποιαδήποτε λειτουργία από αυτές που μπορεί να εκτελέσει ένα πρόγραμμα. Να εισάγουν δεδομένα, να εκτελέσουν υπολογισμούς, να μεταβάλλουν τις τιμές των μεταβλητών και να τυπώσουν αποτελέσματα. Με τη χρήση των παραμέτρων αυτές τις τιμές μπορούν να τις μεταφέρουν και στα άλλα υποπρογράμματα. Αντίθετα η λειτουργία των συναρτήσεων είναι πιο περιορισμένη. Οι συναρτήσεις υπολογίζουν μόνο μία τιμή, αριθμητική, χαρακτήρα ή λογική και μόνο αυτήν επιστρέφουν στο υποπρόγραμμα που την κάλεσε». Επίσης, στη σελ. 213 του Βιβλίου Μαθητή αναφέρεται: «Ο μηχανισμός που επιτυγχάνεται αυτό, είναι ο εξής: Το κύριο πρόγραμμα πριν την κλήση της συνάρτησης … όπου η τιμή του εμβαδού εκχωρείται στη μεταβλητή Εμ».

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

Νομίζω ότι υπήρχε κάποιο μπέρδεμα όταν αρχίσατε την κουβέντα λοιπόν.

Η συνάρτηση απ' όσο γνωρίζω- και εάν σε αυτό το πλαίσιο που παραθέτω αναφερόσασταν- Μπορεί να αποθηκεύσει τις τιμές άφοβα στον εαυτό τους.

Μπορείτε να την χρησιμοποιήσετε μέσα σε έκφραση και να κάνετε όλες τις εργασίες σας με αυτή. Στο τέλος, όταν γίνει η επιστροφή στο αρχικό πρόγραμμα, το αρχικό πρόγραμμα θα πάρει την τελική τιμή που έχει υπολογίσει αυτή η συνάρτηση.

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

Παράδειγμα:

ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α,Β,Γ,Δ
ΑΡΧΗ
ΔΙΑΒΑΣΕ Α,Β
ΚΑΛΕΣΕ ΑΞΙΟΛΟΓΗΣΗ(Α,Β,Γ)
ΑΝ Γ>=Α ΤΟΤΕ
ΓΡΑΨΕ Α
ΑΛΛΙΩΣ
ΓΡΑΨΕ Β
Τ_ΑΝ
ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΑΞΙΟΛΟΓΗΣΗ(Α,Β,Γ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α,Β,Γ,Δ
ΑΡΧΗ
Α<--Α+2
Β<--Β-3
Δ<--Α*Β-2
Γ<--Δ^2-(Α+Β)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

Εδώ τα λογικά λάθη είναι στο ότι εμείς ΔΕΝ ΘΕΛΑΜΕ ΝΑ ΑΛΛΑΞΟΥΝ ΟΙ ΑΡΧΙΚΕΣ ΤΙΜΕΣ ΤΟΥ Α,Β.
Θέλαμε να κανουμε σύγκριση του Γ με τις αρχικές τιμές του Α,Β.

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

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

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

rafaa

Νεοφερμένος

Η Ρ.+ Θ. = &lt;3 αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 31 ετών, Μαθητής Γ' λυκείου και μας γράφει απο Χαλάνδρι (Αττική). Έχει γράψει 64 μηνύματα.
παιδια εχει καποιος να μου στειλει διαγωνισματα σε στυλ πανελληνιων???
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

dianechristy

Εκκολαπτόμενο μέλος

Η dianechristy αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 185 μηνύματα.
Ξερει κανεις ποια ειναι η ιεραρχια των λογικων τελεστων??
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Rempeskes

Επιφανές μέλος

Ο Rempeskes αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 8,045 μηνύματα.
Ρε σ έχεις στα χέρια σ την μεγαλύτερη βιβλιοθήκη όλων των εποχών
και ακόμα ρωτάς τον κάθε πικραμένο για βοήθεια;

γκουγκλ ιτ!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Rania.

Πολύ δραστήριο μέλος

Η Rania. αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 31 ετών και Φοιτήτρια. Έχει γράψει 1,778 μηνύματα.
Ξερει κανεις ποια ειναι η ιεραρχια των λογικων τελεστων??

Πρωτα παει το οχι, οι αλλες δεν ειναι ιεραρχικα δομημενες.
Αναλογα με τις παρενθεσεις.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

dianechristy

Εκκολαπτόμενο μέλος

Η dianechristy αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 185 μηνύματα.
Θενξ...:) Δεν ειχα τον χρονο να ψαξω και χρειαζόμουν μια αμεση απαντηση...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

tsabatman

Νεοφερμένος

Ο tsabatman αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 44 ετών και Καθηγητής. Έχει γράψει μόλις ένα μήνυμα.
η ιεραρχια των λογικων τελεστων ειναι οχι και η αφου στον προγραμματισμο το and συμβολιζει τον πολλαπλασιασμο και το or την προσθεση
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 13 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

Top