ΠΡΟΓΡΑΜΜΑ οδμελ121_10
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: επιλογή, ν, θ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
ΑΡΧΗ
ν <- 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ '1.Εισαγωγή νέου συνδρομητή'
ΓΡΑΨΕ '2.Διαγραφή συνδρομητή'
ΓΡΑΨΕ '3.Διόρθωση δεδομένων συνδρομητή'
ΓΡΑΨΕ '4.Αναζήτηση συνδρομητή'
ΓΡΑΨΕ '5.Εμφάνιση Τηλεφωνικού Καταλόγου'
ΓΡΑΨΕ '6.Έξοδος'
ΔΙΑΒΑΣΕ επιλογή
ΑΝ επιλογή = 1 ΤΟΤΕ
ΚΑΛΕΣΕ εισαγωγή(ΤΚ, ν)
ΑΛΛΙΩΣ_ΑΝ επιλογή = 2 ΤΟΤΕ
ΚΑΛΕΣΕ διαγραφή(ΤΚ, ν)
ΑΛΛΙΩΣ_ΑΝ επιλογή = 3 ΤΟΤΕ
ΚΑΛΕΣΕ διόρθωση(ΤΚ, ν)
ΑΛΛΙΩΣ_ΑΝ επιλογή = 4 ΤΟΤΕ
ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
ΑΛΛΙΩΣ_ΑΝ επιλογή = 5 ΤΟΤΕ
ΚΑΛΕΣΕ εμφάνιση(ΤΚ, ν)
ΑΛΛΙΩΣ_ΑΝ επιλογή = 6 ΤΟΤΕ
ΓΡΑΨΕ 'τερματισμός προγράματος...'
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ επιλογή = 6
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!================================================= 1
ΔΙΑΔΙΚΑΣΙΑ εισαγωγή(ΤΚ, ν)
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], α, β, γ
ΑΚΕΡΑΙΕΣ: ν, ι, ξ
ΑΡΧΗ
ΑΝ ν < Μ ΤΟΤΕ
ΓΡΑΨΕ 'Δώσε όνομα, διεύθυνση, τηλέφωνο'
ΔΙΑΒΑΣΕ α, β, γ
ν <- ν + 1
ΤΚ[ν, 1] <- α
ΤΚ[ν, 2] <- β
ΤΚ[ν, 3] <- γ
! bubblesort
ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ ν
ΓΙΑ ξ ΑΠΟ ν ΜΕΧΡΙ ι ΜΕ_ΒΗΜΑ -1
ΑΝ ΤΚ[ξ, 1] < ΤΚ[ξ - 1, 1] ΤΟΤΕ
ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 1], ΤΚ[ξ - 1, 1])
ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 2], ΤΚ[ξ - 1, 2])
ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 3], ΤΚ[ξ - 1, 3])
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'πίνακας ήδη γεμάτος'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!================================================= 2
ΔΙΑΔΙΚΑΣΙΑ διαγραφή (ΤΚ, ν)
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
ΑΚΕΡΑΙΕΣ: ν, ι, θ
ΑΡΧΗ
ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
ΑΝ θ = 0 ΤΟΤΕ
ΓΡΑΨΕ 'δεν βρέθηκε ο συνδρομητής'
ΑΛΛΙΩΣ
ΤΚ[θ, 1] <- " "
ΤΚ[θ, 2] <- " "
ΤΚ[θ, 3] <- " "
ΓΙΑ ι ΑΠΟ θ ΜΕΧΡΙ ν - 1
ΚΑΛΕΣΕ αντι(ΤΚ[ι, 1], ΤΚ[ι + 1, 1])
ΚΑΛΕΣΕ αντι(ΤΚ[ι, 2], ΤΚ[ι + 1, 2])
ΚΑΛΕΣΕ αντι(ΤΚ[ι, 3], ΤΚ[ι + 1, 3])
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ν <- ν - 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!================================================= 3
ΔΙΑΔΙΚΑΣΙΑ διόρθωση (ΤΚ, ν)
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], α, β, γ
ΑΚΕΡΑΙΕΣ: ν, επιλογή, θ
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε όνομα ή τηλέφωνο προς διόρθωση'
ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
ΑΝ θ = 0 ΤΟΤΕ
ΓΡΑΨΕ 'δεν βρέθηκε ο συνδρομητής'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'δώσε τα νέα στοιχεία: όνομα, διεύθυνση, τηλέφωνο'
ΔΙΑΒΑΣΕ α, β, γ
ΤΚ[θ, 1] <- α
ΤΚ[θ, 2] <- β
ΤΚ[θ, 3] <- γ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!================================================= 4
ΔΙΑΔΙΚΑΣΙΑ αναζήτηση(ΤΚ, ν, θ)
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], κλειδί
ΑΚΕΡΑΙΕΣ: ν, επιλογή, αρχ, τελ, μέση, θ
ΛΟΓΙΚΕΣ: φλαγ
ΑΡΧΗ
ΓΡΑΨΕ 'Τι θέλετε να δώσετε; 1 για όνομα, 3 για τηλέφωνο'
ΔΙΑΒΑΣΕ επιλογή
ΔΙΑΒΑΣΕ κλειδί
αρχ <- 1
τελ <- ν
φλαγ <- ΨΕΥΔΗΣ
θ <- 0
ΟΣΟ φλαγ = ΨΕΥΔΗΣ ΚΑΙ αρχ <= τελ ΕΠΑΝΑΛΑΒΕ
μέση <- (αρχ + τελ) div 2
ΑΝ ΤΚ[μέση, επιλογή] = κλειδί ΤΟΤΕ
φλαγ <- ΑΛΗΘΗΣ
θ <- μέση
ΑΛΛΙΩΣ_ΑΝ ΤΚ[μέση, επιλογή] < κλειδί ΤΟΤΕ
αρχ <- μέση + 1
ΑΛΛΙΩΣ
τελ <- μέση - 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!================================================= 5
ΔΙΑΔΙΚΑΣΙΑ εμφάνιση(ΤΚ, ν)
ΣΤΑΘΕΡΕΣ
Μ = 500
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
ΑΚΕΡΑΙΕΣ: ν, ι, ξ
ΑΡΧΗ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ ν
ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΡΑΨΕ ΤΚ[ι, ξ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!================================================= Ε
ΔΙΑΔΙΚΑΣΙΑ αντι(x, y)
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: x, y, temp
ΑΚΕΡΑΙΕΣ: ω
ΑΡΧΗ
temp <- x
x <- y
y <- temp
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ