1ΗΣ ΣΕΛΙΔΑΣ ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΔΙΑΓΩΝΙΣΜΑΤΟΣ Β ΤΕΤΡΑΜΗΝΟΥ ΘΕΜΑ Α Α1. α) x > 99 ΚΑΙ x < 1000 β) ΣΥΝΑΡΤΗΣΗ ΕΙΝΑΙ_ΑΡΤΙΟΣ(x): ΛΟΓΙΚΗ ΑΚΕΡΑΙΕΣ: x ΑΝ x mod 2 = 0 ΤΟΤΕ ΕΙΝΑΙ_ΑΡΤΙΟΣ <- ΑΛΗΘΗΣ ΕΙΝΑΙ_ΑΡΤΙΟΣ <- ΨΕΥΔΗΣ γ) ΔΙΑΔΙΚΑΣΙΑ ΕΜΦΑΝΙΣΕ_ΠΡΩΤΟ_ΨΗΦΙΟ(x) ΑΚΕΡΑΙΕΣ: x ΓΡΑΨΕ x div 100 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ δ) ΔΙΑΔΙΚΑΣΙΑ ΕΜΦΑΝΙΣΕ_ΤΕΛΕΥΤΑΙΟ_ΨΗΦΙΟ(x) ΑΚΕΡΑΙΕΣ: x ΓΡΑΨΕ x mod 10 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ε) ΣΥΝΑΡΤΗΣΗ ΕΙΝΑΙ_ΠΡΩΤΟΣ(x): ΛΟΓΙΚΗ ΑΚΕΡΑΙΕΣ: x, i ΛΟΓΙΚΕΣ: ΔΕΝ_ΒΡΕΘΗΚΕ_ΔΙΑΙΡ i <- 2 ΔΕΝ_ΒΡΕΘΗΚΕ_ΔΙΑΙΡ <- ΑΛΗΘΗΣ ΟΣΟ i < x ΚΑΙ ΔΕΝ_ΒΡΕΘΗΚΕ_ΔΙΑΙΡ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ ΑΝ x mod i = 0 ΤΟΤΕ ΔΕΝ_ΒΡΕΘΗΚΕ_ΔΙΑΙΡ <- ΨΕΥΔΗΣ i <- i + 1 ΕΙΝΑΙ_ΠΡΩΤΟΣ <- ΔΕΝ_ΒΡΕΘΗΚΕ_ΔΙΑΙΡ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ
2ΗΣ ΣΕΛΙΔΑΣ Α2. 1-γ, 2-β, 3-δ, 4-στ, 5-ε Α3. α) Α 0 Κ 100 ΑΛΗΘΗΣ Κ<0 Λ 4 ΨΕΥΔΗΣ ΑΛΗΘΗΣ Λ>80 ΨΕΥΔΗΣ ΓΡΑΨΕ Κ^2 + Λ^2 Λ Λ+4 Κ Κ-1 ΓΡΑΨΕ 'ΤΕΛΟΣ' β) Αλγόριθμος Θέμα_Α3 Α 0 Κ 100 Όσο Κ >= 0 επανάλαβε Λ 4 Όσο Λ =< 80 επανάλαβε Γράψε Κ^2 + Λ^2 Λ Λ + 4 Κ Κ - 1 Τέλος Θέμα_Α3 ΤΕΛΟΣ 2ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ
3ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Β Β1. α) 6 β) 3 γ) 2,3 και 2,2 και 3,3 Β2. Αλγόριθμος Φυσσαλίδα Δεδομένα // table, n // αντιμ 0 συγκ 0 Για i από 2 μέχρι n Για j από n μέχρι i με_βήμα -1 συγκ συγκ + 1 Αν table[j - 1] > table[j] τότε Εμφάνισε i, j Αντιμετάθεσε table[j - 1], table[j] αντιμ αντιμ + 1 Εμφάνισε συγκ Εμφάνισε αντιμ Αποτελέσματα // table // Τέλος Φυσσαλίδα Β3. Αλγόριθμος Ταξινομημένος Δεδομένα // table, n // ταξιν Αληθής Για i από 2 μέχρι n Για j από n μέχρι i με_βήμα -1 Αν table[j - 1] < table[j] τότε ταξιν Ψευδής Αν ταξιν = Αληθής τότε Εμφάνισε 'ΤΑΞΙΝΟΜΗΜΕΝΟΣ' αλλιώς Εμφάνισε 'ΜΗ ΤΑΞΙΝΟΜΗΜΕΝΟΣ' Τέλος Ταξινομημένος ΤΕΛΟΣ 3ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ
4ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Γ Γ1. ΣΥΝΑΡΤΗΣΗ ΓΡΑΜΜΗ_ΣΤΗΛΗ (ΠΙΝ, Γραμμή, Στήλη, Τιμή): ΛΟΓΙΚΗ ΑΚΕΡΑΙΕΣ: ΠΙΝ[9, 9], Γραμμή, Στήλη, Τιμή, i ΓΡΑΜΜΗ_ΣΤΗΛΗ <- ΑΛΗΘΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9 ΑΝ ΠΙΝ[Γραμμή, i] = Τιμή Η ΠΙΝ[i, Στήλη] = Τιμή ΤΟΤΕ ΓΡΑΜΜΗ_ΣΤΗΛΗ <- ΨΕΥΔΗΣ Γ2. ΣΥΝΑΡΤΗΣΗ ΠΕΡΙΟΧΗ (ΠΙΝ, Γραμμή, Στήλη, Τιμή): ΛΟΓΙΚΗ ΑΚΕΡΑΙΕΣ: i, j, ΠΙΝ[9, 9], Γραμμή, Στήλη, Τιμή ΠΕΡΙΟΧΗ <- ΑΛΗΘΗΣ ΓΙΑ i ΑΠΟ Γραμμή ΜΕΧΡΙ Γραμμή + 2 ΓΙΑ j ΑΠΟ Στήλη ΜΕΧΡΙ Στήλη + 2 ΑΝ ΠΙΝ[i, j] = Τιμή ΤΟΤΕ ΠΕΡΙΟΧΗ <- ΨΕΥΔΗΣ ΤΕΛΟΣ 4ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ
5ΗΣ ΣΕΛΙΔΑΣ Γ3. ΔΙΑΔΙΚΑΣΙΑ ΣΥΜΠΛΗΡΩΜΕΝΗ_ΠΕΡΙΟΧΗ(ΠΙΝ, Γραμμή, Στήλη) ΑΚΕΡΑΙΕΣ: ΠΙΝ[9, 9], ΨΗΦΙΑ[9], Γραμμή, Στήλη, i, j, k ΛΟΓΙΚΕΣ: ΚΕΝΗ_ΘΕΣΗ, ΔΙΠΛΟ_ΨΗΦΙΟ ΚΕΝΗ_ΘΕΣΗ <- ΨΕΥΔΗΣ ΔΙΠΛΟ_ΨΗΦΙΟ <- ΨΕΥΔΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9 ΨΗΦΙΑ[i] <- 0 ΓΙΑ i ΑΠΟ Γραμμή ΜΕΧΡΙ Γραμμή + 2 ΓΙΑ j ΑΠΟ Στήλη ΜΕΧΡΙ Στήλη + 2 ΑΝ ΠΙΝ[i, j] = 0 ΤΟΤΕ ΚΕΝΗ_ΘΕΣΗ <- ΑΛΗΘΗΣ ΨΗΦΙΑ[ΠΙΝ[i, j]] <- ΨΗΦΙΑ[ΠΙΝ[i, j]] + 1 ΑΝ ΚΕΝΗ_ΘΕΣΗ = ΑΛΗΘΗΣ ΤΟΤΕ ΓΡΑΨΕ 'ΕΛΛΙΠΗΣ' k <- 1 ΟΣΟ k <= 9 ΚΑΙ ΔΙΠΛΟ_ΨΗΦΙΟ = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ ΑΝ ΨΗΦΙΑ[k] > 1 ΤΟΤΕ ΔΙΠΛΟ_ΨΗΦΙΟ <- ΑΛΗΘΗΣ k <- k + 1 ΑΝ ΔΙΠΛΟ_ΨΗΦΙΟ = ΑΛΗΘΗΣ ΤΟΤΕ ΓΡΑΨΕ 'ΕΛΕΓΧΟΣ ΨΗΦΙΩΝ' ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 9 ΑΝ ΨΗΦΙΑ[k] > 1 ΤΟΤΕ ΓΡΑΨΕ k ΓΡΑΨΕ 'ΕΓΚΥΡΗ ΠΕΡΙΟΧΗ' ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΤΕΛΟΣ 5ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ
6ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Δ Αλγόριθμος Περικοπές Μισθ_Κόστος 0 Μισθ_Κόστος_Π 0 Θέση_min 0 Θέση_max 0 min_περικοπή 9999999 max_περικοπή 0 Για i από 1 μέχρι 100 Διάβασε ΟΝ[i] Διάβασε ΜΙΣΘ[i] Μισθ_Κόστος Μισθ_Κόστος + ΜΙΣΘ[i] Αν ΜΙΣΘ[i] < 1200 τότε Περικοπή 0.07* ΜΙΣΘ[i] αλλιώς_αν ΜΙΣΘ[i] < 1600 τότε Περικοπή 0.15* ΜΙΣΘ[i] αλλιώς Περικοπή 0.25*ΜΙΣΘ[i] Αν ΜΙΣΘ[i] - Περικοπή > 3000 τότε Περικοπή ΜΙΣΘ[i] - 3000 Ν_ΜΙΣΘ[i] ΜΙΣΘ[i] - Περικοπή Μισθ_Κόστος_Π Μισθ_Κόστος_Π + Ν_ΜΙΣΘ[i] Αν Περικοπή < min_περικοπή τότε min_περικοπή Περικοπή Θέση_min i Αν Περικοπή > max_περικοπή τότε max_περικοπή Περικοπή Θέση_max i Εμφάνισε 'Ποσοστό περικοπών μισθολογικού κόστους: ', ((Μισθ_Κόστος - Μισθ_Κόστος_Π)/Μισθ_Κόστος)*100 Εμφάνισε 'Μέγιστη περικοπή: ', ΟΝ[Θέση_max], ' Ποσό: ', max_περικοπή Εμφάνισε 'Ελάχιστη περικοπή: ', ΟΝ[Θέση_min], ' Ποσό: ', min_περικοπή Εμφάνισε 'Μέσος μισθός πριν τις περικοπές:', Μισθ_Κόστος/100 Εμφάνισε 'Μέσος μισθός μετά τις περικοπές:', Μισθ_Κόστος_Π/100 Τέλος Περικοπές ΤΕΛΟΣ 6ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ