ΑΕΠΠ ΑΣΚΗΣΕΙΣ ΤΕΤΡΑΔΙΟΥ ΕΡΓΑΣΙΩΝ 3ΟΥ ΚΕΦ
Στο παρακάτω link υπάρχουν οι λύσεις των ασκήσεων .
https://aeppinfo.files.wordpress.com/2013/02/ask_ch03.pdf
- Στη ΔΣ4 ωστόσο καλύτερη είναι η λύση με την ΟΣΟ (παρακάτω)
- Στη ΔΤ4 σας ανεβάζω και τη πιο δύσκολη εκδοχή της με την κύλιση των στοιχείων σε περίπτωση που ο δείκτης rear "τερματίσει".
3ο ΚΕΦ - ΑΣΚΗΣΗ ΔΣ4
ΠΡΟΓΡΑΜΜΑ
cd
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:
i,
j,
year[100],
temp1,
sum,
flag
ΧΑΡΑΚΤΗΡΕΣ:
titlos[100],
temp2
ΑΡΧΗ
ΓΙΑ
i
ΑΠΟ
1
ΜΕΧΡΙ
100
ΓΡΑΨΕ
"ΔΩΣΕ ΤΟΝ ΤΙΤΛΟ ΚΑΙ ΤΗΝ ΧΡΟΝΟΛΟΓΙΑ ΤΟΥ CD"
ΔΙΑΒΑΣΕ
titlos[i],
year[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ
i
ΑΠΟ
2
ΜΕΧΡΙ
100
ΓΙΑ
j
ΑΠΟ
100
ΜΕΧΡΙ
i
ΜΕ_ΒΗΜΑ
-1
ΑΝ
year[j]
<
year[j
-
1]
ΤΟΤΕ
temp1
<-
year[j]
year[j]
<-
year[j
-
1]
year[j
-
1]
<-
temp1
temp2
<-
titlos[j]
titlos[j]
<-
titlos[j
-
1]
titlos[j
-
1]
<-
temp2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
flag
<-
0
i
<-
1
sum
<-
0
ΟΣΟ
(i
<=
100
ΚΑΙ
flag
=
0)
ΕΠΑΝΑΛΑΒΕ
ΑΝ
year[i]
<
1995
ΤΟΤΕ
sum
<-
sum
+
1
i
<-
i
+
1
ΑΛΛΙΩΣ
flag
<-
1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
3ο ΚΕΦ - ΑΣΚΗΣΗ ΔΤ4
(ΜΕ ΚΥΛΙΣΗ ΠΡΟΣ ΤΑ ΕΜΠΡΟΣ ΣΕ ΠΕΡΙΠΤΩΣΗ ΓΕΜΙΣΜΑΤΟΣ)
ΠΡΟΓΡΑΜΜΑ ΟΥΡΑ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: table[10]!υλοποιούμε την ουρά με έναν μονοδιάστατο πίνακα 10 πραγματικών
ΑΚΕΡΑΙΕΣ: i, front, rear
ΧΑΡΑΚΤΗΡΕΣ: eidos
ΑΡΧΗ
front <- 1
rear <- 0
ΓΡΑΨΕ "ΠΛΗΚΤΡΟΛΟΓΗΣΕ 1 ΓΙΑ ΕΙΣΑΓΩΓΗ, 0 ΓΙΑ ΕΞΑΓΩΓΗ ΚΑΙ ΟΤΙΔΗΟΤΕ ΑΛΛΟ ΓΙΑ ΕΞΟΔΟ"
ΔΙΑΒΑΣΕ eidos
ΟΣΟ eidos = "0" Η eidos = "1" ΕΠΑΝΑΛΑΒΕ
ΑΝ eidos = "0" ΤΟΤΕ
ΑΝ front <= rear ΤΟΤΕ
ΓΡΑΨΕ table[front]
front <- front + 1
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΟΥΡΑ ΑΔΕΙΑ"
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ_ΑΝ eidos = "1" ΤΟΤΕ
ΑΝ rear < 10 ΤΟΤΕ
rear <- rear + 1
ΔΙΑΒΑΣΕ table[rear]
ΑΛΛΙΩΣ
ΑΝ front > 1 ΤΟΤΕ
ΓΙΑ i ΑΠΟ front ΜΕΧΡΙ 10
table[i - front + 1] <- table[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
rear <- 10 - front + 1
front <- 1
ΔΙΑΒΑΣΕ table[rear]
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΟΥΡΑ ΓΕΜΑΤΗ"
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΤΕΛΟΣ"
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ "ΠΛΗΚΤΡΟΛΟΓΗΣΕ 1 ΓΙΑ ΕΙΣΑΓΩΓΗ, 0 ΓΙΑ ΕΞΑΓΩΓΗ ΚΑΙ ΟΤΙΔΗΟΤΕ ΑΛΛΟ ΓΙΑ ΕΞΟΔΟ"
ΔΙΑΒΑΣΕ eidos
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ