ΜΟΝΟ ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Οι µεθοδολογίες που ακολουθούν αφορούν µονοδιάστατο πίνακα Α[N] (διάστασης Ν). Άθροισµα Γινόµενο Μέσος όρος sum sum + A[i] Εµφάνισε sum g g g * Α[i] Εµφάνισε g sum sum + A[i] ΜΟ sum/n Εµφάνισε MO Πλήθος (πχ άρτιων) Μέγιστο (και θέση) Ελάχιστο (και θέση) πλήθος 0! Έλεγχος για άρτιους Αν Α[i] mod 2=0 τότε πλήθος πλήθος + Εµφάνισε πλήθος! Mοναδικές τιµές max A[] (θέση_max ) Αν Α[i] > max τότε max A[i] (θέση_max i) Εµφάνισε max (,θέση_max) Μέγιστο (Μη Mοναδικές τιµές) Ελάχιστο (Μη Mοναδικές τιµές) max A[] Αν Α[i] > max τότε max A[i] Εµφάνισε max Πλήθος 0 Αν Α[i] = max τότε Εµφάνισε Θέση:, i Πλήθος Πλήθος + Εµφάνισε Εµφανίσεις,πλήθος min A[] Αν Α[i] < min τότε min A[i] Εµφάνισε min Πλήθος 0 Αν Α[i] = min τότε Εµφάνισε Θέση:, i Πλήθος Πλήθος + Εµφάνισε Εµφανίσεις,πλήθος! Mοναδικές τιµές min A[] (θέση_min ) Αν Α[i] < min τότε min A[i] (θέση_min i) Εµφάνισε min (,θέση_min) Ταξινόµηση (αύξουσα) Για j από Ν µέχρι i µε_βήµα - Αν Α[j-]>A[j] τότε temp Α[j-] Α[j-] Α[j] Α[j] temp Για ταξινόµηση σε φθίνουσα σειρά η µόνη αλλαγή που πρέπει να γίνει είναι το > να γίνει < στη συνθήκη Αν Ταξινόµηση µε παράλληλους πίνακες Για j από Ν µέχρι i µε_βήµα - Αν Α[j-]>A[j] τότε temp Α[j-] Α[j-] Α[j] Α[j] temp temp Β[j-] Β[j-] Β[j] Β[j] temp Για ταξινόµηση σε φθίνουσα σειρά η µόνη αλλαγή που πρέπει να γίνει είναι το > να γίνει < στη συνθήκη Αν Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9
! Πίνακας µε µοναδικές τιµές done ψευδής position 0 i Όσο done=ψευδής ΚΑΙ i <= Ν επανάλαβε Αν Α[i]=key τότε done αληθής position i Αλλιώς i i+ Αν done=αληθής τότε Εµφάνισε "Βρέθηκε στη θέση:", position Αλλιώς Εµφάνισε " εν βρέθηκε" Μεθοδολογίες Πινάκων Αναζήτηση της τιµής key! Πίνακας µε µή µοναδικές τιµές i Πλήθος_εµφανίσεων 0 Όσο i <= Ν επανάλαβε Αν Α[i]=key τότε Πλήθος_εµφανίσεων Πλήθος_εµφανίσεων+ Εµφάνισε "Βρέθηκε στη θέση:", i i i+ Αν Πλήθος_εµφανίσεων > 0 τότε Εµφάνισε "Eµφανίσεις:", Πλήθος_εµφανίσεων Αλλιώς Εµφάνισε " εν βρέθηκε" ΙΣ ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Οι µεθοδολογίες που ακολουθούν αφορούν δισδιάστατο πίνακα Α[N,Μ]. Τις χρησιµοποιούµε όταν το ζητούµενο είναι ένα για ολόκληρο τον πίνακα. Άθροισµα Γινόµενο Μέσος όρος sum sum + A[i,j] Εµφάνισε sum g g g * Α[i,j] Εµφάνισε g sum sum + A[i,j] ΜΟ sum / (N*M) Εµφάνισε MO Πλήθος (πχ άρτιων) Μέγιστο (και θέση) Ελάχιστο (και θέση) πλήθος 0 Αν Α[i,j] mod 2=0 τότε πλήθος πλήθος + Εµφάνισε πλήθος max A[,] (γρ ) (στ ) Αν Α[i,j] > max τότε max A[i,j] (γρ i) (στ j) Εµφάνισε max (,γρ, στ) min A[,] (γρ ) (στ ) Αν Α[i,j] < min τότε min A[i,j] (γρ i) (στ j) Εµφάνισε min (,γρ, στ) Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9 2
Επεξεργασίες δισδιάστατων πινάκων κατά γραµµή Ο νέος πίνακας Χ που θα σχηµατιστεί θα είναι µονοδιάστατος πίνακας µε διάσταση όσες οι γραµµές του αρχικού µας πίνακα Α (δηλαδή Ν γραµµές) Ο πίνακας Χ[Ν] µπορεί να σχηµατιστεί από τις διαδικασίες: άθροισµα κατά γραµµή o αν θέλουµε να υπολογίσουµε τον µέσο όρο κατά γραµµή θα πρέπει πρώτα να βρούµε το άθροισµα κατά γραµµή και στη συνέχεια να χρησιµοποιήσουµε έναν νέο πίνακα όπου κάθε θέση του πίνακα θα υπολογίζεται από το αντίστοιχο στοιχείο του πίνακα που έχει το άθροισµα κατά γραµµή διαιρεµένο µε το συνολικό πλήθος των Μ στοιχείων. γινόµενο κατά γραµµή µέγιστο κατά γραµµή o αν θέλουµε και τη θέση του µεγίστου τότε απαιτείται ένας ακόµα πίνακας που θα ελάχιστο κατά γραµµή o αν θέλουµε και τη θέση του ελαχίστου τότε απαιτείται ένας ακόµα πίνακας που θα µέτρηση πλήθους (π.χ. θετικών) κατά γραµµή Πίνακας Α[Ν,Μ] Πίνακας Χ[Ν] Μ στήλες i i N γραµµές N Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9 3
Επεξεργασίες δισδιάστατων πινάκων κατά στήλη Ο νέος πίνακας Σ που θα σχηµατιστεί θα είναι µονοδιάστατος πίνακας µε διάσταση όσες οι στήλες του αρχικού µας πίνακα Α (δηλαδή Μ γραµµές) Ο πίνακας Σ[Μ] µπορεί να σχηµατιστεί από τις διαδικασίες: άθροισµα κατά στήλη o αν θέλουµε να υπολογίσουµε τον µέσο όρο κατά στήλη θα πρέπει πρώτα να βρούµε το άθροισµα κατά στήλη και στη συνέχεια να χρησιµοποιήσουµε έναν νέο πίνακα όπου κάθε θέση του πίνακα θα υπολογίζεται από το αντίστοιχο στοιχείο του πίνακα που έχει το άθροισµα κατά γραµµή διαιρεµένο µε το συνολικό πλήθος των Ν στοιχείων. γινόµενο κατά στήλη µέγιστο κατά στήλη o αν θέλουµε και τη θέση του µεγίστου τότε απαιτείται ένας ακόµα πίνακας που θα ελάχιστο κατά στήλη o αν θέλουµε και τη θέση του ελαχίστου τότε απαιτείται ένας ακόµα πίνακας που θα µέτρηση πλήθους (π.χ. θετικών) κατά στήλη Πίνακας Α[Ν,Μ] j Μ στήλες N γραµµές j M Πίνακας Σ[Μ] Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9 4
ΙΣ ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ κατά γραµµές ή κατά στήλες Οι µεθοδολογίες που ακολουθούν αφορούν δισδιάστατο πίνακα Α[N,Μ]. Τις χρησιµοποιούµε όταν ζητείται κάτι για κάθε γραµµή ή κάθε στήλη. Άθροισµα κατά γραµµή sum[ i ] 0 sum[ i ] sum[ i ] + A[i,j] Εµφάνισε sum[ i ] Γινόµενο κατά γραµµή g[ i ] g[ i ] g[ i ] * A[i,j] Εµφάνισε g[ i ] Μέσος όρος κατά γραµµή sum[ i ] 0 sum[ i ] sum[ i ] + A[i,j] ΜΟ[ i ] sum[ i ]/M Εµφάνισε MO[ i ] Άθροισµα κατά στήλη sum[ j ] 0 sum[ j ] sum[ j ] + A[i,j] Εµφάνισε sum[ j ] Γινόµενο κατά στήλη g[ j ] g[ j ] g[ j ] * A[i,j] Εµφάνισε g[ j ] Μέσος όρος κατά στήλη sum[ j ] 0 sum[ j ] sum[ j ] + A[i,j] MO[ j ] sum[ j ]/N Εµφάνισε MO[ j ] Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9 5
Πλήθος κατά γραµµή (πχ θετικών) Πλήθος[ i ] 0 Αν Α[i,j]>0 τότε Πλήθος[ i ] Πλήθος[ i ] + Εµφάνισε Πλήθος[ i ] Μέγιστο κατά γραµµή max[i] A[i,] Αν Α[i,j]>max[i] τότε max[i] A[i,j] Εµφάνισε max[i] Μέγιστο κατά γραµµή και θέση max[i] A[i,] Θέση_max[i] Αν Α[i,j]>max[i] τότε max[i] A[i,j] Θέση_max[i] j Εµφάνισε max[i], Θέση_max[i] Πλήθος κατά στήλη (πχ θετικών) Πλήθος[ j ] 0 Αν Α[i,j]>0 τότε Πλήθος[ j ] Πλήθος[ j ] + Εµφάνισε Πλήθος[ j ] Μέγιστο κατά στήλη max[j] A[,j] Αν Α[i,j]>max[j] τότε max[j] A[i,j] Εµφάνισε max[j] Μέγιστο κατά στήλη και θέση max[j] A[,j] Θέση_max[j] Αν Α[i,j]>max[j] τότε max[j] A[i,j] Θέση_max[j] i Εµφάνισε max[j], Θέση_max[j] Με όµοιο τρόπο µπορούµε να γράψουµε τον αλγόριθµο για ελάχιστο κατά γραµµή, ελάχιστο κατά στήλη, ελάχιστο κατά γραµµή και θέση και τέλος ελάχιστο κατά στήλη και θέση Αυτό που αλλάζει είναι ότι χρησιµοποιούµε πίνακες min και θέση_min όπου στους παραπάνω αλγορίθµους αναφέρει max και θέση_max. Επίσης στην εντολή επιλογής Αν η συνθήκη είναι : Α[i,j] < min[i] όταν ζητάµε ελάχιστο κατά γραµµή Α[i,j] < min[j] όταν ζητάµε ελάχιστο κατά στήλη Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ9 6