Αλγόριθμος ασκ1σετ2
Δεδομένα // ΕΠ //
ΜΑΧ ← ΕΠ[1]
ΧΡ_Δ_ΜΑΧ ← 1
ΜΙΝ ← ΕΠ[1]
ΧΡ_Δ_ΜΙΝ ← 1
Για i από 2 μέχρι 6
Αν ΕΠ[i] > ΜΑΧ τότε
ΜΑΧ ← ΕΠ[i]
ΧΡ_Δ_ΜΑΧ ← i
Τέλος_αν
Αν ΕΠ[i] < ΜΙΝ τότε
ΜΙΝ ← ΕΠ[i]
ΧΡ_Δ_ΜΙΝ ← i
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'μεγαλύτερη επισκεψιμότητα: ', ΧΡ_Δ_ΜΑΧ + 7, ':31-', ΧΡ_Δ_ΜΑΧ + 8, ':30'
Εμφάνισε 'μικρότερη επισκεψιμότητα: ', ΧΡ_Δ_ΜΙΝ + 7, ':31-', ΧΡ_Δ_ΜΙΝ + 8, ':30'
ΠΟΣ ← ΜΑΧ - ΜΙΝ
Εμφάνισε ΠΟΣ, '%'
Τέλος ασκ1σετ2
Αλγόριθμος ασκ2σετ2
Δεδομένα //AUTO , ΑΞΙΟΛ//
Αρχή_επανάληψης
Διάβασε αρ1
Μέχρις_ότου αρ1 ≥ 1 και αρ1 ≤ 8
Αρχή_επανάληψης
Διάβασε αρ2
Μέχρις_ότου αρ2 ≥ 1 και αρ2 ≤ 8
Αρχή_επανάληψης
Διάβασε αρ3
Μέχρις_ότου αρ3 ≥ 1 και αρ3 ≤ 8
max1 ← ΑΞΙΟΛ[αρ1,1]
μοντ1 ← AUTO[1]
Για j από 2 μέχρι 50
Αν ΑΞΙΟΛ[αρ1,j] > max1 τότε
max1 ← ΑΞΙΟΛ[αρ1,j]
μοντ1 ← j
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μοντ1
max2 ← ΑΞΙΟΛ[αρ2,1]
μοντ2 ← AUTO[1]
Για j από 2 μέχρι 50
Αν ΑΞΙΟΛ[αρ2,j] > max2 τότε
max2 ← ΑΞΙΟΛ[αρ2,j]
μοντ2 ← j
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μοντ2
max3 ← ΑΞΙΟΛ[αρ3,1]
μοντ3 ← AUTO[1]
Για j από 2 μέχρι 50
Αν ΑΞΙΟΛ[αρ3,j] > max3 τότε
max3 ← ΑΞΙΟΛ[αρ3,j]
μοντ3 ← j
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μοντ3
Τέλος ασκ2σετ2
Αλγόριθμος ασκ3σετ2
Για i από 1 μέχρι 8
Διάβασε ΟΝ[i]
Για j από 1 μέχρι 10
Διάβασε ΧΡ[i,j]
Τέλος_επανάληψης
Τέλος_επανάληψης
min ← 10^20
max ← -1
Για i από 1 μέχρι 8
time ← 0
Για j από 1 μέχρι 10
time ← time + ΧΡ[i,j]
Τέλος_επανάληψης
Αν time > max τότε
max ← time
τελευταίος ← i
Τέλος_αν
Αν time < min τότε
min ← time
νικητής ← i
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε ΟΝ[νικητής]
Εμφάνισε ΟΝ[τελευταίος]
Τέλος ασκ3σετ2
...αν στην παραπάνω άσκηση (3) δε γνωρίζει ο μαθητής πώς να αποφύγει τη δημιουργία περιττού πίνακα, τότε για να βρει τα δύο ονόματα μπορεί να δημιουργήσει νέο πίνακα time[8] ο οποίος περιέχει τους συνολικούς χρόνους των 8 αθλητών από τους 10 γύρους που έτρεξαν....η ιστορία με τους περιττούς πίνακες είναι μεγάλη...εδώ μπορεί κάλλιστα κάποιος να ισχυριστεί ότι δεν πειράζει η δημιουργία πίνακα μιας και τρέχουμε αλγόριθμο ή κάποιος άλλος να θεωρήσει (ορθώς κατά την άποψή μου στη συγκεκριμένη περίπτωση) ότι είναι μικρών διαστάσεων ο πίνακας. Έτσι, θα έχουμε:
.
.
Για i από 1 μέχρι 8
time[i] ← 0
Για j από 1 μέχρι 10
time[i] ← time[i] + ΧΡ[i,j]
Τέλος_επανάληψης
Τέλος_επανάληψης
min
← time[1]posmin
← 1max ← time[1]
posmax ← time[1]
Για i από 2 μέχρι 8
Αν time > max τότε
max ← time
posmax ← i
Τέλος_αν
Αν time < min τότε
min ← time
posmin ← i
Τέλος_αν
Τέλος_επανάληψηςΕμφάνισε ΟΝ[posmin]
Εμφάνισε ΟΝ[posmax]
.
.
ΠΡΟΓΡΑΜΜΑ ασκ4σετ2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, parking
ΠΡΑΓΜΑΤΙΚΕΣ: απ[22], τ[22], minprice
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 22
ΔΙΑΒΑΣΕ απ[i], τ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
parking ← 0
minprice ← 10^60
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 22
ΑΝ απ[i] >= 600 ΚΑΙ απ[i] <= 1400 ΤΟΤΕ
ΑΝ τ[i] < minprice ΤΟΤΕ
minprice ← τ[i]
parking ← i
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ parking = 0 ΤΟΤΕ
ΓΡΑΨΕ 'κανένα parking'
ΑΛΛΙΩΣ
ΓΡΑΨΕ τ[parking]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Αλγόριθμος ασκ5σετ2
Για i από 1 μέχρι 22
Διάβασε ονεπ[i], λ[i], θ[i]
Τέλος_επανάληψης
maxεπ ← -1
maxαμ ← -1
maxκ ← -1
maxτ ← -1
Για i από 1 μέχρι 22
Αν θ[i] = 'Ε' τότε
Αν λ[i] > maxεπ τότε
maxεπ ← λ[i]
Τέλος_αν
αλλιώς_αν θ[i] = 'Α' τότε
Αν λ[i] > maxαμ τότε
maxαμ ← λ[i]
Τέλος_αν
αλλιώς_αν θ[i] = 'Κ' τότε
Αν λ[i] > maxκ τότε
maxκ ← λ[i]
Τέλος_αν
αλλιώς
Αν λ[i] > maxτ τότε
maxτ ← λ[i]
Τέλος_αν
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'περισσότερα λεπτά επιθετικών:'
Για i από 1 μέχρι 22
Αν θ[i] = 'Ε' τότε
Αν λ[i] = maxεπ τότε
Εμφάνισε ονεπ[i]
Τέλος_αν
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'περισσότερα λεπτά αμυντικών:'
Για i από 1 μέχρι 22
Αν θ[i] = 'Α' τότε
Αν λ[i] = maxαμ τότε
Εμφάνισε ονεπ[i]
Τέλος_αν
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'περισσότερα λεπτά μέσων:'
Για i από 1 μέχρι 22
Αν θ[i] = 'Κ' τότε
Αν λ[i] = maxκ τότε
Εμφάνισε ονεπ[i]
Τέλος_αν
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'περισσότερα λεπτά τερματοφυλάκων:'
Για i από 1 μέχρι 22
Αν θ[i] = 'τ' τότε
Αν λ[i] = maxτ τότε
Εμφάνισε ονεπ[i]
Τέλος_αν
Τέλος_αν
Τέλος_επανάληψης
Τέλος ασκ5σετ2
ΠΡΟΓΡΑΜΜΑ elections
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ποσ
ΑΚΕΡΑΙΕΣ: i, j, max, posmax, ψηφ[25, 36], s[25], s_all
ΧΑΡΑΚΤΗΡΕΣ: κομ[25]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 25
ΔΙΑΒΑΣΕ κομ[i]
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 36
ΔΙΑΒΑΣΕ ψηφ[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
max ← -1
s_all ← 0 ! αθροιστής ψήφων όλων των κομμάτων
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 25
s[i] ← 0 ! αθροιστής ψήφων κόμματος, θα χρειαστεί πιο κάτω για τα ποσοστά
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 36
s[i] ← s[i] + ψηφ[i, j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ s[i] > max ΤΟΤΕ
max ← s[i]
posmax ← i
ΤΕΛΟΣ_ΑΝ
s_all ← s_all + s[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'νικητής εκλογών:', κομ[posmax]
ΓΡΑΨΕ 'τα παρακάτω κόμματα έχουν >3%:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 25
ποσ ← s[i]/36*100
ΑΝ ποσ > 3 ΤΟΤΕ
ΓΡΑΨΕ κομ[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 36
max ← -1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 25
ΑΝ ψηφ[i, j] > max ΤΟΤΕ
max ← ψηφ[i, j]
posmax ← i
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'την εκλογική περιφέρεια, ', j, 'την κέρδισε το κόμμα: ', κομ[posmax]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου