Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: P.Tsiotakis στις 15 Φεβ 2006, 09:25:21 ΠΜ

Τίτλος: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: P.Tsiotakis στις 15 Φεβ 2006, 09:25:21 ΠΜ
Θα ήθελα να ενημερώσω τους συναδέλφους οτι σχεδιαγράμματα για τη θεωρία του μαθήματός μας (και για τα υπόλοιπα στο Ενιαίο Λύκειο) υπάρχουν στην ιστοσελίδα της συναδέλφου Λέττα Ελένης - http://users.sch.gr/elant/   (αν και διαφωνώ σε κάποια σημεία του κεφαλαίου 10)

Πάντως, για το κεφάλαιο 6 , για το οποίο οι μαθητές χρειάζονται σχεδιάγραμμα, έχει κάνει ΕΚΠΛΗΚΤΙΚΗ δουλειά (πιο συγκεκριμένα http://users.sch.gr/elant/anaptixi/anaptixi.htm )

Γνώμη: Οι clopy-righters μπορούν να βγάλουν φωτοτυπίες αφού κόψουν το υποσέλιδο στην εκτύπωση    :o

Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: nikolasmer στις 16 Μαρ 2013, 12:07:28 ΜΜ
Στην ιστοσελίδα της συναδελφου Λέττα Ελένης αντέγραψα και επικολλώ σε αυτό το σημείο ενα πρόγραμμα με το υποπρόγραμμα Αντιμετάθεση.
Επαναλαμβάνω το τμήμα κώδικα παρακάτω είναι πνευματική ιδιοκτησία της κυρίας Λέττα Ελένης.

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

ΚΑΛΕΣΕ Αντιμετάθεση(Πίνακας[ j-1], Πίνακας[ j ])

και η επικεφαλίδα της Διαδικασίας να είναι:

Διαδικασία Αντιμετάθεση (α,β)

με τις ανάλογες τροποποιήσεις του κώδικα;

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

Πρόγραμμα_ταξινόμηση_φύσαλίδας2
Μεταβλητές
ακέραιος:  Πίνακας[100 ], ι, j : ακέραιος

Αρχή
Για ι από 1 μέχρι 100
Γράψε «Δώσε στοιχείο του πίνακα»
Διάβασε Πίνακας[ι]
Τέλος_Επαναληψης

Για ι από 2 μέχρι ν100
Για j από 100 μέχρι ι με βήμα –1
Αν Πίνακας[j-1] >Πίνακας[j] τότε

ΚΑΛΕΣΕ Αντιμετάθεση(Πίνακας[ j-1], Πίνακας[ j ], j )

Τέλος_Αν
Τέλος_Επαναληψης
Τέλος_Επανάληψης
Γ
ια ι από 1 μέχρι 100
Γράψε Πίνακας[ι]
Τέλος_Επαναληψης
Τέλος_Προγράμματος

Διαδικασία Αντιμετάθεση (Α[δείκτης-1], Α[δείκτης], δείκτης)
Μεταβλητές
ακέραιος: Α[100], δείκτης, βοηθητική

Αρχή
βοηθητική <-- Α [δείκτης-1]
Α[δείκτης-1] <-- Α[δείκτης]
Α[δείκτης] <-- βοηθητική
Τέλος_διαδικασίας

Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: P.Tsiotakis στις 16 Μαρ 2013, 02:02:03 ΜΜ
αν όλα είναι ακέραια τότε ΝΑΙ

ένα κελί ενός πίνακα είναι στην ουσία μεταβλητή

(http://ptsiotakis.mysch.gr/old/aepp/aepp_ask10_1.htm ασκήσεις 14, 15)
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: petrosp13 στις 16 Μαρ 2013, 05:45:08 ΜΜ
Θα έλεγα ότι η υλοποίηση της συναδέλφου δεν είναι η ιδανική, καθώς έχει ως παραμέτρους στην διαδικασία 2 στοιχεία ενός πίνακα και έτσι αναγκάζεται να στείλει ολόκληρο τον πίνακα στην διαδικασία
Επίσης, δεν γνωρίζω κατά πόσο είναι εφικτό να υπάρχει τέτοια λίστα παραμέτρων
Κώδικας [Επιλογή]
Διαδικασία δ (Α[i],i)

Το προτιμότερο και σίγουρο είναι αυτό που λέει ο Παναγιώτης
Όταν ένα υποπρόγραμμα καλείται με παραμέτρους που είναι στοιχεία πίνακα, το υποπρόγραμμα θα έχει παραμέτρους μεταβλητές ίσου αριθμού για να αντιγράφονται τα στοιχεία αυτά
Απλό και βέλτιστο
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: pgrontas στις 16 Μαρ 2013, 08:37:29 ΜΜ
Παράθεση από: nikolasmer στις 16 Μαρ 2013, 12:07:28 ΜΜ
Πάνω σε αυτό το κομμάτι ήθελα να εκφράσω μια απορία.
Θα μπορούσε η κλήση της διαδικασίας να είναι:

ΚΑΛΕΣΕ Αντιμετάθεση(Πίνακας[ j-1], Πίνακας[ j ])

και η επικεφαλίδα της Διαδικασίας να είναι:

Διαδικασία Αντιμετάθεση (α,β)

με τις ανάλογες τροποποιήσεις του κώδικα;
Φυσικά και ναι και έτσι θα έπρεπε να είναι το σωστό.

Αντίθετα ο ορισμός συνάρτησης
Κώδικας [Επιλογή]

Διαδικασία Αντιμετάθεση (Α[δείκτης-1], Α[δείκτης], δείκτης)

είναι εντελώς λάθος, καθώς συγχέει τις τυπικές παραμέτρους με τις πραγματικές και τον ορισμό της συνάρτησης με την κλήση της.
Άσε που η δήλωση Α[δείκτης-1] δεν ξέρω αν θα μπορούσε ποτέ να αποτιμηθεί στο compilation.
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: nikolasmer στις 17 Μαρ 2013, 09:00:11 ΜΜ
Παράθεση από: pgrontas στις 16 Μαρ 2013, 08:37:29 ΜΜ
Φυσικά και ναι και έτσι θα έπρεπε να είναι το σωστό.

Αντίθετα ο ορισμός συνάρτησης
Κώδικας [Επιλογή]

Διαδικασία Αντιμετάθεση (Α[δείκτης-1], Α[δείκτης], δείκτης)

είναι εντελώς λάθος, καθώς συγχέει τις τυπικές παραμέτρους με τις πραγματικές και τον ορισμό της συνάρτησης με την κλήση της.
Άσε που η δήλωση Α[δείκτης-1] δεν ξέρω αν θα μπορούσε ποτέ να αποτιμηθεί στο compilation.

Συμφωνώ απόλυτα μαζί σου pgrontas.

Σας ευχαριστώ πολύ κύριοι για τις απαντήσεις και τις παρατηρήσεις σας .
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: Λευτέρης Δουκέρης στις 18 Μαρ 2013, 06:07:01 ΜΜ
Καλησπέρα. Νομίζω ότι η γλώσσα απαγορεύει αυτού του είδους κλήση:
ΚΑΛΕΣΕ Αντιμετάθεση(Πίνακας[ j-1], Πίνακας[ j ])
Παρόλο που συμφωνώ με τον Παναγιώτη ότι και ο Πίνακας[ j-1], Πίνακας[ j ] είναι στην ουσία μεταβλητές άρα ορθά χρησιμοποιούνται σαν παράμετροι. Εγώ θα πρωτινά
στο πρόγραμμα να γράφαμε το εξής:

Για ι από 2 μέχρι ν100
   Για j από 100 μέχρι ι με βήμα –1
      Αν Πίνακας[j-1] >Πίνακας[j] τότε
                      α<-- Πίνακας[ j-1]
                       β <--Πίνακας[ j]
      ΚΑΛΕΣΕ Αντιμετάθεση(α , β)

      Τέλος_Αν
   Τέλος_Επαναληψης
Τέλος_Επανάληψης
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: petrosp13 στις 18 Μαρ 2013, 06:10:23 ΜΜ
Για ποιο λόγο να απαγορεύεται η κλήση με παραμέτρους στοιχεία πίνακα;
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: andreas_p στις 18 Μαρ 2013, 07:23:20 ΜΜ
Για ι από 2 μέχρι ν100
   Για j από 100 μέχρι ι με βήμα –1
      Αν Πίνακας[j-1] >Πίνακας[j] τότε
                      α<-- Πίνακας[ j-1]
                       β <--Πίνακας[ j]
      ΚΑΛΕΣΕ Αντιμετάθεση(α , β)
      Τέλος_Αν
   Τέλος_Επαναληψης
Τέλος_Επανάληψης

Ναι, αλλά έτσι αφήνεις "άθικτα" , τα στοιχεία  Πίνακας[ j-1], Πίνακας[ j]  ....


Α
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: Λευτέρης Δουκέρης στις 18 Μαρ 2013, 09:46:44 ΜΜ
καλησπέρα.
εχεις απόλυτο δίκιο.
το συμπληρώνω

Για ι από 2 μέχρι ν100
Για j από 100 μέχρι ι με βήμα –1
      Αν Πίνακας[j-1] >Πίνακας[j] τότε
                      α<-- Πίνακας[ j-1]
                       β <--Πίνακας[ j]
      ΚΑΛΕΣΕ Αντιμετάθεση(α , β)
                      Πίνακας[ j-1] <-- α
                       Πίνακας[ j] <-- β

      Τέλος_Αν
   Τέλος_Επαναληψης
Τέλος_Επανάληψης

Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: evry στις 19 Μαρ 2013, 03:15:38 ΜΜ
Νομίζω ότι η Αντιμετάθεσε στο παρακάτω τμήμα προγράμματος είναι περιττή, αφού αν αφαιρεθεί θα έχουμε το ίδιο αποτέλεσμα.

Παράθεση από: lefteris_doy στις 18 Μαρ 2013, 09:46:44 ΜΜ
καλησπέρα.
εχεις απόλυτο δίκιο.
το συμπληρώνω

Για ι από 2 μέχρι ν100
Για j από 100 μέχρι ι με βήμα –1
      Αν Πίνακας[j-1] >Πίνακας[j] τότε
                      α<-- Πίνακας[ j-1]
                       β <--Πίνακας[ j]
      ΚΑΛΕΣΕ Αντιμετάθεση(α , β)
                      Πίνακας[ j-1] <-- α
                       Πίνακας[ j] <-- β

      Τέλος_Αν
   Τέλος_Επαναληψης
Τέλος_Επανάληψης


Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: Λευτέρης Δουκέρης στις 19 Μαρ 2013, 11:23:54 ΜΜ
καλησπέρα.
δεν νομίζω ότι είναι περιττή η διαδικασία Αντιμετάθεση(α , β) γιατί η διαδικασία αντιμεταθέτει τις τιμές  και σκοπός της άσκησης είναι να γίνεται κλιση υποπρογράμματος που να αντιμεταθέτει τις τιμές.
Συμφωνώ πάντως ότι είναι σωστό , να γίνει  κλίση της διαδικασίας με
ΚΑΛΕΣΕ Αντιμετάθεση(Πίνακας[ j-1] , Πίνακας[ j] ) απλά θυμάμαι ότι πριν καιρό σε μια ενημέρωση μας είχαν πει ότι κάτι τέτοιο δεν το υποστηρίζει η ΓΛΩΣΣΑ άποψη με την οποία διαφωνώ και για αυτό πρότεινα και την παρακάτω λύση

Για ι από 2 μέχρι ν100
Για j από 100 μέχρι ι με βήμα –1
      Αν Πίνακας[j-1] >Πίνακας[j] τότε
                      α<-- Πίνακας[ j-1]
                       β <--Πίνακας[ j]
      ΚΑΛΕΣΕ Αντιμετάθεση(α , β)
                      Πίνακας[ j-1] <-- α
                       Πίνακας[ j] <-- β
      Τέλος_Αν
   Τέλος_Επαναληψης
Τέλος_Επανάληψης
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: petrosp13 στις 19 Μαρ 2013, 11:27:30 ΜΜ
Παράθεση από: lefteris_doy στις 19 Μαρ 2013, 11:23:54 ΜΜ
σε μια ενημέρωση μας είχαν πει ότι κάτι τέτοιο δεν το υποστηρίζει η ΓΛΩΣΣΑ

Ενημέρωση από ποιον και πάνω σε τι;
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: evry στις 19 Μαρ 2013, 11:30:33 ΜΜ
Αν αφαιρέσεις την Αντιμετάθεσε το πρόγραμμα δεν θα κάνει ακριβώς τα ίδια? Δεν θα έχεις το ίδιο αποτέλεσμα?
Ποιος ο λόγος λοιπόν να τη χρησιμοποιήσεις?

Παράθεση από: lefteris_doy στις 19 Μαρ 2013, 11:23:54 ΜΜ
καλησπέρα.
δεν νομίζω ότι είναι περιττή η διαδικασία Αντιμετάθεση(α , β) γιατί η διαδικασία αντιμεταθέτει τις τιμές  και σκοπός της άσκησης είναι να γίνεται κλιση υποπρογράμματος που να αντιμεταθέτει τις τιμές.
Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: novaro στις 08 Απρ 2014, 03:21:16 ΜΜ
Συνάδελφοι οι παράμετροι σε διαδικασίες σίγουρα μπορούν να είναι κελιά ενός πίνακα αφού αυτά συνιστούν απλές μεταβλητές. Η κλήση αυτή θα είναι call by reference οπότε κάθε αλλαγή των τυπικών παραμέτρων στη ΔΙΑΔΙΚΑΣΙΑ θα έχει αντίκτυπο στις πραγματικές παραμέτρους (κελιά του πίνακα του κυρίου προγράμματος). Φαίνεται ξεκάθαρα στο παράδειγμα του σχολικού βιβλίου στα υποπρογράμματα με το Διαφ1 κτλ. Όπως αφήνεται να εννοηθεί στο βιβλίο όλα τα περάσματα στις διαδικασίες είναι call by reference και όλα τα περάσματα σε συναρτήσεις είναι call by value π.χ

{κύριο}
Β<----10
Α<---- ΑΥΞ(Β)
ΓΡΑΨΕ 'Β=',Β,' Α=', Α   
ΚΑΛΕΣΕ ΑΥΞΗΣΗ(Β)
ΓΡΑΨΕ 'Β=', Β

Το πρόγραμμα θα γράψει Β=10 Α=11
και Β=11



ΣΥΝΑΡΤΗΣΗ ΑΥΞ(Α)
....
ΑΥΞ<---Α+1
Α<-Α+5 //ΔΕΝ ΘΑ ΕΧΕΙ ΑΝΤΙΚΤΥΠΟ ΣΤΗΝ ΠΡΑΓΜΑΤΙΚΗ ΠΑΡΑΜΕΤΡΟ Β
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΑΥΞΗΣΗ(Α)
....
Α<---Α+1  //ΘΑ ΕΧΕΙ ΑΝΤΙΚΤΥΠΟ ΣΤΗΝ ΠΡΑΓΜΑΤΙΚΗ ΠΑΡΑΜΕΤΡΟ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ



Παραθέτω τον ορισμό
The call by reference method of passing arguments to a subprogram copies the address of an argument into the formal parameter. Inside the subprogram, the address is used to access the actual argument used in the call. This means that changes made to the parameter affect the passed argument.

Σχετικά με τη γλώσσα και το πέρασμα παραμέτρων.
https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD/ (https://alkisg.mysch.gr/%CE%93%CE%9B%CE%A9%CE%A3%CE%A3%CE%91/%CE%9C%CE%B5%CF%84%CE%B1%CE%B2%CE%AF%CE%B2%CE%B1%CF%83%CE%B7_%CF%80%CE%B1%CF%81%CE%B1%CE%BC%CE%AD%CF%84%CF%81%CF%89%CE%BD/)

Τίτλος: Απ: Σχεδιαγράμματα για τη θεωρία του μαθήματος ΑΕΠΠ
Αποστολή από: novaro στις 09 Απρ 2014, 10:17:15 ΠΜ
Αυτό συνάδελφοι δουλεύει κανονικά με βάση το προηγούμενο ποστ

ΠΡΟΓΡΑΜΜΑ τεστ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[5], Ι
ΑΡΧΗ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
    Α[Ι] <- Ι
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'ΠΡΙΝ'
  ΓΡΑΨΕ Α[2], ',', Α[3]
  ΓΡΑΨΕ 'ΜΕΤΑ'

  ΚΑΛΕΣΕ ΑΝΤΙΜ(Α[2], Α[3])
  ΓΡΑΨΕ Α[2], ',', Α[3]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΑΝΤΙΜ(Α, Β)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α, Β, Τ
ΑΡΧΗ
  Τ <- Α
  Α <- Β
  Β <- Τ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ