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

Γενικό Λύκειο => Γ΄ Λυκείου => Τμηματικός προγραμματισμός => Μήνυμα ξεκίνησε από: pthomop στις 15 Απρ 2009, 10:54:34 πμ

Τίτλος: Διαδικασία και στοιχεία πινάκων
Αποστολή από: pthomop στις 15 Απρ 2009, 10:54:34 πμ
Καλημέρα παιδιά. Ειναι επιτρεπτό να στείλω μεμονωμένα κάποιο στοιχείο του πίνακα σε μια διαδικασία? Για παράδειγμα:

Κώδικας: [Επιλογή]
Για i απο 1 μέχρι 10
  Διαβασε Α[Ι]
  Κάλεσε ΔΙΑΔ(Α[i],sum)
Tελος_επαναληψης

Κάνοντας την υπόθεση το στοχείο του πίνακα να προστεθεί με κάποιες άλλες τυπικές μεταβλητές της διαδικασίας και να επιστραφεί το άθροισμά τους.
Συνάδελφος μου είπε οτι κατι τετοιο δεν είναι επιτρεπτό. Εσεις τι λετε ?
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: sstergou στις 15 Απρ 2009, 11:28:02 πμ
Μπορείς, μόνο που πρέπει κατά την κλήση της διαδικασίας να στείλεις ένα μόνο στοιχείο και όχι όλο τον πίνακα, δηλαδή στο συγκεκριμένο παράδειγμα :
Κώδικας: [Επιλογή]
Κάλεσε Διαδ(α[i], sum)
edit: Απ'ότι είδα αυτό έχεις γράψει κι εσύ, αλλά επειδή δεν το έχεις βάλει ανάμεσα σε περιοχή κώδικα
Κώδικας: [Επιλογή]
[code][\code] το smf νομίζει ότι γράφεις bbcode και έτσι σου έφαγε τις αγκύλες και το i. Το διορθώνω
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: gpapargi στις 15 Απρ 2009, 12:17:08 μμ
Το στοιχείο του πίνακα είναι μεταβλητή, άρα μπορείς όπως μπορείς για κάθε μεταβλητή.
Αυτό από συντακτική άποψη.
Η δική μου ένσταση αφορά καθαρά τη φιλοσοφία του τμηματικού προγραμματισμού. Γιατί να κάνεις κάτι με υποπρόγραμμα τη στιγμή που γίνεται απλούστερα χωρίς αυτό;
Ο τμηματικός προγραμματισμός είναι για να κάνουμε τη ζωή μας ευκολότερη και όχι για να εισάγουμε δυσκολία με τεχνητό τρόπο.
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: pthomop στις 15 Απρ 2009, 06:10:28 μμ
Eυχαριστώ για την απάντηση. Περσι στο 3ο  Θέμα μερικά παιδιά χρησιμοποίησαν πίνακα με τα αυτοκίνητα και έστελναν το στοιχείο του πίνακα στην διαδικασία για τον υπολογισμό της χρέωσης.
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: Καρκαμάνης Γεώργιος στις 16 Απρ 2009, 12:39:32 πμ
όταν περνάμε στοιχείο πινάκα σε υποπρόγραμμα, χρειάζεται προσοχη κατά την δήλωση του υποπρογράμματος όπου η αντίστοιχη τυπική παράμετρος που θα δεχτεί το στοιχείο του πινάκα να είναι μεταβλητή και όχι στοιχείο πίνακα.
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: NickTG στις 10 Απρ 2021, 05:49:19 μμ
Δεν ξέρω αν πρέπει να ανοίξω καινούριο θέμα.
Επείδη είναι κάτι αντίστοιχο (και επειδη εκανα και κοπο να το βρω το θεμα :P )..

Αν εχω εναν δισδιάστατο πίνακα μπορώ να στελνω σε διαδικασια καποια γραμμη και αυτη να τη διαχειριζεται σαν μονοδιαστατο?

Εστω ενας πινακας ακεραιων πχ. ΔΙΣΔΙΑΣΤΑΤΟΣ[10,25]
πχ για τη ι-η γραμμη (ισως η  γραμμη να δινεται απο το χρηστη ή οτιδηποτε) μπορω να κανω :
....
ΓΙΑ ι ΑΠΟ 3 ΜΕΧΡΙ 7
  ΚΑΛΕΣΕ ΔΙΑΔ(ΔΙΣΔΙΑΣΤΑΤΟΣ[ι])
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
...
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(ΜΟΝ_ΠΙΝ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΜΟΝ_ΠΙΝ[25]
ΑΡΧΗ
 
  ΓΡΑΨΕ "......................."
 
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
...
Φανταζομαι οχι?
Δηλαδη ασχετως με το τι θελω να κανω σε εναν δισδιαστατο μεσω συναρτησης ή διαδικασίας παντα πρεπει να στελνω ολοκληρο τον δισδιαστατο και μετα αναλογα παιζω με γραμμες και στηλες?

Ευχαριστώ..
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: andreas_p στις 10 Απρ 2021, 09:30:56 μμ
ΟΧΙ !

ΓΙΑ ι ΑΠΟ 3 ΜΕΧΡΙ 7
  ΚΑΛΕΣΕ ΔΙΑΔ(ΔΙΣΔΙΑΣΤΑΤΟΣ[ι])
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
...
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(ΜΟΝ_ΠΙΝ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΜΟΝ_ΠΙΝ[25]
ΑΡΧΗ
 
  ΓΡΑΨΕ "......................."
 
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
.
ΝΑΙ.

ΓΙΑ ι ΑΠΟ 3 ΜΕΧΡΙ 7
  ΚΑΛΕΣΕ ΔΙΑΔ(ΔΙΣΔΙΑΣΤΑΤΟΣ, ι)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
...
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(ΠΙΝ, Γ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΠΙΝ[10,25], Γ
ΑΡΧΗ
 
  ΓΡΑΨΕ "......................."
 
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
...
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: NickTG στις 11 Απρ 2021, 01:53:16 πμ
Άρα η εκφώνηση του τύπου :

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

Είναι λανθασμένη?
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: petrosp13 στις 11 Απρ 2021, 01:59:19 πμ
Λανθασμένη δεν είναι αλλά απαιτεί να αντιγράψεις τον δισδιάστατο σε μονοδιάστατο, να καλέσεις το υποπρόγραμμα και να αντιγράψεις τον μονοδιάστατο πίσω στον δισδιάστατο!!
Εκτός αν εννοείς ότι θα ταξινομεί κάθε γραμμή (ή στήλη), οπότε η μόνη αλλαγή είναι ότι θα αντιγράφεις μέσα σε επανάληψη την γραμμή (ή στήλη) σε μονοδιάστατο, θα καλείς το υποπρόγραμμα και θα αντιγράφεις τελικά πίσω τον μονοδιάστατο στην γραμμή (ή στήλη)
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: ripper στις 11 Απρ 2021, 03:06:24 μμ
Φανταζομαι οχι?
Δηλαδη ασχετως με το τι θελω να κανω σε εναν δισδιαστατο μεσω συναρτησης ή διαδικασίας παντα πρεπει να στελνω ολοκληρο τον δισδιαστατο και μετα αναλογα παιζω με γραμμες και στηλες?

Πρέπει να έχεις ίδιο τύπο παραμέτρων και προφανώς, αν μιλάμε για πίνακες, ίδιες διαστάσεις.
2 ιδέες, έστω πως βρίσκεις και τυπώνεις άθροισμα κάθε γραμμής :

Κώδικας: [Επιλογή]
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
  ΚΑΛΕΣΕ ΔΙΑΔ(ΔΙΣΔΙΑΣΤΑΤΟΣ,ι)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
...
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(Π,Ι)
ΜΕΤΑΒΛΗΤΕΣ
  ......
ΑΡΧΗ
  ΑΘΡ <- 0
  ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 25
      ΑΘΡ <- ΑΘΡ + Π[Ι,Ξ]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ ΑΘΡ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ



Κώδικας: [Επιλογή]
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
  ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 25
      ΝΕΟ[Ξ] <- ΔΙΣΔΙΑΣΤΑΤΟΣ[Ι,Ξ]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ         
  ΚΑΛΕΣΕ ΔΙΑΔ(ΝΕΟ)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
...
ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔ(Π)
ΜΕΤΑΒΛΗΤΕΣ
  ...
ΑΡΧΗ
  ΑΘΡ <- 0
  ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 25
      ΑΘΡ <- ΑΘΡ + Π[Ξ]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ ΑΘΡ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: NickTG στις 14 Απρ 2021, 01:14:19 πμ
Ευχαριστω πολύ παιδια.
Καταλαβα αρα ειτε η αντιγραφη σε εναν νεο πινακα, ειτε το να στειλω ολοκληρο το δισδιαστατο ειναι αναγκαστικό ..
Αρα η γλωσσα δουλευει με "πραγματικους-αληθινους" πινακες και οχι πινακες που μπορουν να εχουν πινακες για στοιχεια τους
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: Καρκαμάνης Γεώργιος στις 16 Απρ 2021, 10:03:22 πμ
Ευχαριστω πολύ παιδια.
Καταλαβα αρα ειτε η αντιγραφη σε εναν νεο πινακα, ειτε το να στειλω ολοκληρο το δισδιαστατο ειναι αναγκαστικό ..
Αρα η γλωσσα δουλευει με "πραγματικους-αληθινους" πινακες και οχι πινακες που μπορουν να εχουν πινακες για στοιχεια τους
Ως προς το κομμάτι της αντιγραφής πίνακα σε γενικές γραμμές ισχύει:
- ένας μονοδιάστατος πίνακας μπορεί να αντιγραφεί σε έναν μονοδιάστατο ή σε μια γραμμή/στήλη ενός δισδιάστατου

- ένας δισδιάστατος πίνακα μπορεί να αντιγραφεί ολόκληρος ή μέρος του σε έναν δισδιάστατο πίνακα

-μια γραμμή/στήλη ενός δισδιάστατου πίνακα μπορεί να αντιγραφεί σε έναν μονοδιάστατο πίνακα

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

Γενικά καλό είναι να θυμόμαστε το πως λειτουργεί η ΓΛΩΣΣΑ για τις ανάγκες του μαθήματος και όχι ως μια πραγματική γλώσσα προγραμματισμού που σαφώς αντιμετωπίζουν τους πίνακες με άλλη λογική

Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: George Eco στις 16 Απρ 2021, 10:27:30 πμ

Γενικά καλό είναι να θυμόμαστε το πως λειτουργεί η ΓΛΩΣΣΑ για τις ανάγκες του μαθήματος και όχι ως μια πραγματική γλώσσα προγραμματισμού που σαφώς αντιμετωπίζουν τους πίνακες με άλλη λογική

Νομίζω πως ο κος Καρκαμάνης το έθεσε τέλεια το θέμα. Συμφωνώ 100% μαζί του και δεν έχω να συμπληρώσω κάτι. Πρέπει πάντα να έχουμε κατά νου τα πλαίσια του μαθήματος και τους στόχους του, οι οποίοι άλλωστε εξετάζονται και στις Πανελλήνιες αν μη τι άλλο!
Τίτλος: Απ: Διαδικασία και στοιχεία πινάκων
Αποστολή από: NickTG στις 16 Απρ 2021, 12:07:59 μμ
Αν ήταν ξεκάθαρο τι ισχύει για τη "λειτουργία" της ΓΛΩΣΣΑΣ δε θα διαφωνούσα. .. ( κάποιοι συμφωνούμε κάποιοι όχι, σεβαστά όλα )
μην επεκταθουμε όλοι μας όμως ο καθένας με την αποψη του για θέματα που δεν είναι της παρούσης και δε θα καταλήξουν και κάπου..
Ευχαριστώ πολύ για τις διευκρινίσεις.