Γενικό Λύκειο > Διαδικασίες

Πίνακες διαφορετικών διαστάσεων (διαδικασία)

(1/3) > >>

kiro:

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

ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Α)
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Β)


ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Π)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ Π[100]
ΑΚΕΡΑΙΕΣ ί
ΑΡΧΗ
ΓΙΑ ί ΑΠΟ 1 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ Π[ί]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

1)   Μπορούμε με μια διαδικασία να καλέσουμε και τους δυο πίνακες?

               ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Α,Β)

2)   Στην περίπτωση που μας έδιναν δυο πίνακες 50 και 100 διαστάσεων τι θα κάναμε?

Θα ήταν σωστός ο παρακάτω τρόπος?

ΠΡΟΓΡΑΜΜΑ ….
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[50],Β[100]
ΑΚΕΡΑΙΕΣ: πλήθος
ΑΡΧΗ
πλήθος<- 50
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Α)
πλήθος<-100
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Β)
TΕΛΟΣ_ΠΡΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος, Π)   
 ΣΤΑΘΕΡΕΣ
   Ν = 5000 
 ΜΕΤΑΒΛΗΤΕΣ
       ΠΡΑΓΜΑΤΙΚΕΣ :Π[Ν]
       ΑΚΕΡΑΙΕΣ: ί, πλήθος
        ΑΡΧΗ
         ΓΙΑ ί ΑΠΟ 1 ΜΕΧΡΙ Ν
               ΔΙΑΒΑΣΕ Π[ί]
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


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



Vangelis:
1- Ναι γιατί όχι, δεν υπάρχει περιορισμός πλήθους μεταβλητών. Φυσικά θέλει αλλαγή ο κώδικας της διαδικασίας (ακόμα ένα loop κ.λπ)
2- Δεν νομίζω ότι θα δουλέψει περνάς ένα πίνακα 100 (ή 50)  θέσεων και τον αντιστοιχείς σε έναν με 5000 θέσεις ο οποίος θα επιστρέψει πάλι στον 100 που φυσικά δεν τον χωράει (ασχετα αν μόνο τα 100 πρώτα κελιά του είναι γεμάτα)

xaidi:
1) Δεν μπορείς να αλλάζεις τον αριθμό των μεταβλητών όταν καλείς την διαδικασία ενώ την έχει δημιουργήσει με μια παράμετρο. είναι λάθος
δηλαδή ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Π) και την χρησιμοποιείς ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Α,Β)


2) ΠΡΟΓΡΑΜΜΑ ….
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[50],Β[100]
ΑΚΕΡΑΙΕΣ: πλήθος
ΑΡΧΗ
πλήθος<- 50
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Α)
πλήθος<-100
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Β)
TΕΛΟΣ_ΠΡΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος, Π)   
ΜΕΤΑΒΛΗΤΕΣ
       ΠΡΑΓΜΑΤΙΚΕΣ :Π[100]
       ΑΚΕΡΑΙΕΣ: ί, πλήθος
        ΑΡΧΗ
ΔΙΑΒΑΣΕ πλήθος
         ΓΙΑ ί ΑΠΟ 1 ΜΕΧΡΙ πλήθος
               ΔΙΑΒΑΣΕ Π[ί]
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

S:
ΠΡΟΓΡΑΜΜΑ PIN
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[100],Β[100]
ΑΚΕΡΑΙΕΣ: πλήθος
ΑΡΧΗ
πλήθος<- 50
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Α)
πλήθος<-100
ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος ,Β)
   ! ... 
TΕΛΟΣ_ΠΡΓΡΑΜΜΑΤΟΣ PIN

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (πλήθος, Π)   
ΜΕΤΑΒΛΗΤΕΣ
       ΠΡΑΓΜΑΤΙΚΕΣ :Π[100]
       ΑΚΕΡΑΙΕΣ: ί, πλήθος
        ΑΡΧΗ
ΔΙΑΒΑΣΕ πλήθος
         ΓΙΑ ί ΑΠΟ 1 ΜΕΧΡΙ πλήθος
               ΔΙΑΒΑΣΕ Π[ί]
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

kiro:
1) Δηλ αν το κάνω :

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Π,K) και την χρησιμοποιείς ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΣΤΟΙΧΕΙΩΝ (Α,Β) ειναι σωστό?

2)Το πρόγραμμα που γράψατε xaidi και S είναι σωστό? Δηλ αν έχω δυο διαφορετικούς σε διαστάσεις πίνακες δηλώνω απλά τον μεγαλύτερο και τους καλώ ξεχωριστά?

Απλά μπερδεύτηκα και λίγο με το παρακάτω. Τι λετε?

Παράθεση από: ptsiotakis στις Μαρτίου. 01, 2006, 03:46:57 pm
ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση (Πλήθος, ΠΙΝΑΚΑΣ)
ΣΤΑΘΕΡΕΣ
 Ν = 50000 ! μέγιστο πλήθος
ΜΕΤΑΒΛΗΤΕΣ
 ΑΚΕΡΑΙΕΣ: ΠΙΝΑΚΑΣ[Ν], βοηθ
 ΑΚΕΡΑΙΕΣ : Πλήθος, i, j
ΑΡΧΗ
 ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Πλήθος
 ΓΙΑ j ΑΠΟ Πλήθος ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
 ΑΝ (ΠΙΝΑΚΑΣ[j-1] > ΠΙΝΑΚΑΣ[j]) ΤΟΤΕ ! αύξουσα ταξινόμηση
 βοηθ <- ΠΙΝΑΚΑΣ[j-1]
 ΠΙΝΑΚΑΣ[j-1] <- ΠΙΝΑΚΑΣ[j]
 ΠΙΝΑΚΑΣ[j] <- βοηθ
 ΤΕΛΟΣ_ΑΝ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ερώτημα α.
Πλήθος <- 50
ΚΑΛΕΣΕ Ταξινόμηση (Πλήθος, Α)


ερώτημα β.
Πλήθος <- 1000
ΚΑΛΕΣΕ Ταξινόμηση (Πλήθος, Α)

Δεν μπορούμε στην παραπάνω διαδικασία να δώσουμε ως είσοδο πίνακα μεγαλύτερο από 50.000 θέσεις
Ναι, χαραμίζουμε στην πρώτη περίπτωση 49.950 θέσεις και στην δεύτερη 49.000, ε και τι μ' αυτό;

Με εκτίμηση,

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση