Αρχική ΑΕΠΠ - Δομές Δεδομένων Λειτουργικά Συστήματα Δίκτυα Υπολογιστών ΙΙ Βάσεις Δεδομένων Παιδαγωγικά - Διδακτική
Μεταβλητή - Έκφραση Δομή Ακολουθίας Δομή Επιλογής Δομή Επανάληψης
Μονοδιάστατοι Δισδιάστατοι Πολυδιάστατοι Αναζήτηση Ταξινόμηση Στοίβα Ουρά
Συναρτήσεις Διαδικασίες Σχετικά με τις παράμετρους
Εμφάνιση μικρών αλλαγών - Αλλαγές κώδικα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
ΓΡΑΨΕ Τ[i]
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
ΓΡΑΨΕ Τ[Ι]
Min <- T[1] ! Θεωρούμε αυθαίρετα ότι το πρώτο στοιχείο του πίνακα έχει την ελάχιστη τιμή. ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[i] < Min ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i. Min <- T[i] ! Αν είναι μικρότερο τότε ενημερώνεται η μεταβλητή Min.
MΙΝ <- T[1] ! Θεωρούμε αυθαίρετα ότι το πρώτο στοιχείο του πίνακα έχει την ελάχιστη τιμή. ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[I] < MΙΝ ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i. MΙΝ <- T[Ι] ! Αν είναι μικρότερο τότε ενημερώνεται η μεταβλητή Min.
Προσοχή: Ο παραπάνω αλγόριθμος βρίσκει μόνο ποιο το ελάχιστο στοιχείο του πίνακα. Δε μας δίνει πληροφορία για το πόσα στοιχεία του πίνακα είναι ίσα με το ελάχιστο ούτε τη θέση αυτών. Για παράδειγμα, αν έχουμε τον παρακάτω πίνακα: T [14, 9, 3, 5, 7, 3] θα βρει ότι το ελάχιστο στοιχείο είναι το 3.
Αν θέλουμε να εμφανίσουμε και τη θέση που βρέθηκε το στοιχείο, τότε προσθέτουμε και μία μεταβλητή η οποία κρατάει το i.
Προσοχή: Ο παραπάνω αλγόριθμος βρίσκει μόνο ποιο είναι το ελάχιστο στοιχείο του πίνακα. Δε μας δίνει πληροφορία για το πόσα στοιχεία του πίνακα είναι ίσα με το ελάχιστο ούτε τη θέση αυτών. Για παράδειγμα, αν έχουμε τον παρακάτω πίνακα: T [14, 9, 3, 5, 7, 3] θα βρει ότι το ελάχιστο στοιχείο είναι το 3.
Αν θέλουμε να εμφανίσουμε και τη θέση που βρέθηκε το στοιχείο, τότε προσθέτουμε και μία μεταβλητή η οποία κρατάει το Ι.
Min <- T[1] ! Θεωρούμε αυθαίρετα ότι το πρώτο στοιχείο του πίνακα έχει την ελάχιστη τιμή. pos <- 1 ! Η θέση στην οποία "βρέθηκε" το ελάχιστο. ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ n ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[i] < Min ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i. Min <- T[i] ! Αν είναι μικρότερο τότε ενημερώνεται η μεταβλητή Min. pos <- i ! Ενημερώνεται και η μεταβλητή pos με τη θέση i.
MIN <- T[1] ! Θεωρούμε αυθαίρετα ότι το πρώτο στοιχείο του πίνακα έχει την ελάχιστη τιμή. POS <- 1 ! Η θέση στην οποία "βρέθηκε" το ελάχιστο. ΓΙΑ I ΑΠΟ 2 ΜΕΧΡΙ N ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[I] < MIN ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i. MIN <- T[I] ! Αν είναι μικρότερο τότε ενημερώνεται η μεταβλητή Min. POS <- I ! Ενημερώνεται και η μεταβλητή pos με τη θέση i.
Max <- T[1] ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ n
MAX <- T[1] ΓΙΑ I ΑΠΟ 2 ΜΕΧΡΙ N
Max <- T[i]
MAX <- T[I]
Άθροισμα <- 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
Άθροισμα <- Άθροισμα + Τ[i]
ΑΘΡΟΙΣΜΑ <- 0 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
ΑΘΡΟΙΣΜΑ <- ΑΘΡΟΙΣΜΑ + Τ[Ι]
Άθροισμα <- Άθροισμα / n
ΑΘΡΟΙΣΜΑ <- ΑΘΡΟΙΣΜΑ / Ν
Για i από 1 μέχρι n
Διάβασε Τ[i]
Τέλος_επανάληψης
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
ΔΙΑΒΑΣΕ Τ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 1 μέχρι n
Γράψε Τ[i]
Τέλος_επανάληψης
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
ΓΡΑΨΕ Τ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 2 μέχρι n ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
Αν Τ[i] < Min τότε ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i.
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[i] < Min ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i.
Τέλος_αν
Τέλος_επανάληψης
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 2 μέχρι n ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
Αν Τ[i] < Min τότε ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i.
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ n ! Αφού η πρώτη τιμή έχει “ελεγχθεί”, ξεκινάμε από τη θέση 2.
ΑΝ Τ[i] < Min ΤΟΤΕ ! Εξετάζεται κάθε φορά το στοιχείο στη θέση i.
Τέλος_αν
Τέλος_επανάληψης
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 2 μέχρι n
Αν Τ[i] > Max τότε
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ n
ΑΝ Τ[i] > Max ΤΟΤΕ
Τέλος_αν
Τέλος_επανάληψης
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 1 μέχρι n
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
Τέλος_επανάληψης
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 1 μέχρι n1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n1
Τέλος_επανάληψης Για i από 1 μέχρι n2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n2
Τέλος_επανάληψης
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 1 μέχρι n
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
Τέλος_επανάληψης
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Από τα παραπάνω παρατηρούμε ότι οι τιμές των δεικτών (i, j)
για τους δύο πίνακες δεν αυξάνονται σε κάθε βήμα, αλλά υπό συνθήκη (αυξάνεται ο μετρητής του πίνακα που έδωσε το μικρότερο στοιχείο). Αυτό σημαίνει ότι δε μπορούμε να χρησιμοποιήσουμε τη δομή Για
. Επίσης, από το σημείο που ένα πίνακας έδωσε όλα τα στοιχεία του δεν έχει νόημα να γίνεται σύγκριση με τον άλλο πίνακα. Αυτό που χρειάζεται είναι τα υπόλοιπα στοιχεία του πίνακα που έχει ακόμη στοιχεία, να αποδοθούν στο νέο πίνακα.
Από τα παραπάνω παρατηρούμε ότι οι τιμές των δεικτών (i, j)
για τους δύο πίνακες δεν αυξάνονται σε κάθε βήμα, αλλά υπό συνθήκη (αυξάνεται ο μετρητής του πίνακα που έδωσε το μικρότερο στοιχείο). Αυτό σημαίνει ότι δε μπορούμε να χρησιμοποιήσουμε τη δομή ΓΙΑ
. Επίσης, από το σημείο που ένα πίνακας έδωσε όλα τα στοιχεία του δεν έχει νόημα να γίνεται σύγκριση με τον άλλο πίνακα. Αυτό που χρειάζεται είναι τα υπόλοιπα στοιχεία του πίνακα που έχει ακόμη στοιχεία, να αποδοθούν στο νέο πίνακα.
Όσο i<=n1 και j<=n2 επανάλαβε
Αν Τ1[i] < T2[j] τότε
ΟΣΟ i<=n1 ΚΑΙ j<=n2 ΕΠΑΝΑΛΑΒΕ
ΑΝ Τ1[i] < T2[j] ΤΟΤΕ
αλλιώς
ΑΛΛΙΩΣ
τέλος_αν
ΤΕΛΟΣ_ΑΝ
Τέλος_επανάληψης
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Αν i>n1 τότε ! Ο Τ1 δεν έχει άλλα στοιχεία, οπότε χειριζόμαστε τον Τ2
Για l από j μέχρι n2 ! Από το σημείο που σταμάτησε ο Τ2 (j) μέχρι τέλος
ΑΝ i>n1 ΤΟΤΕ ! Ο Τ1 δεν έχει άλλα στοιχεία, οπότε χειριζόμαστε τον Τ2
ΓΙΑ l ΑΠΟ j ΜΕΧΡΙ n2 ! Από το σημείο που σταμάτησε ο Τ2 (j) μέχρι το τέλος
Τέλος_επανάληψης
αλλιώς ! Έχει τελειώσει ο Τ2
Για l από i μέχρι n1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ ! Έχει τελειώσει ο Τ2
ΓΙΑ l ΑΠΟ i ΜΕΧΡΙ n1
Τέλος_επανάληψης
Τέλος_αν
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
Για i από 1 μέχρι n
Τ[i] <- 0
Τέλος_επανάληψης
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
Τ[Ι] <- 0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Για i από 1 μέχρι n
Τ[i] <- i + a ! όπου a ένας πραγματικός αριθμός.
Τέλος_επανάληψης
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
Τ[Ι] <- Ι + a ! όπου a ένας πραγματικός αριθμός.
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Copyright 2008 - Άρης Φεργάδης