e-ΜΑΘΗΜΑΤΑ |
Λύσεις ασκήσεων από τον Οδηγό Μελέτης Μαθητών |
ΠΡΟΓΡΑΜΜΑ ΚΛΗΣΗ_ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ
! ΑΕΠΠ - Οδηγός Μελέτης Μαθητή
! Μη λυμένες ασκήσεις 5.4.4.9
!
!9. Να γραφεί πρόγραμμα σε «ΓΛΩΣΣΑ» το οποίο να:
!1) Καταχωρεί στους πίνακες Ημέρα[500] και Μήνα[500] την ημέρα
! και τον μήνα αντίστοιχα μιας δαπάνης, στον πίνακα Περιγραφή[500]
! την περιγραφή της δαπάνης και στον πίνακα Κόστος[500] το
! συνολικό ποσό της αντίστοιχης δαπάνης.
!2) Ταξινομεί τους πίνακες πρώτα ως προς το μήνα κατά αύξουσα τάξη
! και στην περίπτωση ίδιου μήνα η ταξινόμηση να γίνει ως προς την ημέρα,
! κατά αύξουσα τάξη.
!3) Δίνονται από το πληκτρολόγιο 2 ημερομηνίες (εκφράζουν μια χρονική
! περίοδο) να εμφανίζεται η περιγραφή κάθε δαπάνης με τα αντίστοιχα
! ποσά δαπάνης της χρονικής περιόδου που πληκτρολογήσαμε.
! Επίσης στο τέλος να εμφανίζεται το συνολικό ποσό που έχει ξοδευτεί
! την αντίστοιχη χρονική περίοδο.
!4) Να γίνεται χρήση του υποπρογράμματος ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ,
! που να ελέγχει ότι η 1η ημ/νια είναι μικρότερη από την 2η ημ/νία .
! Στην αντίθετη περίπτωση να τις αντιμεταθέτει. Να χρησιμοποιηθεί
! η διαδικασία ΑΝΤΙΜΕΤΑΘΕΣΗ όπου χρειάζεται.
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ημερα[50], Μήνα[50], i, j, temp
ΑΚΕΡΑΙΕΣ: ημέρα1, ημέρα2, μήνα1, μήνα2, start, end
ΠΡΑΓΜΑΤΙΚΕΣ: Κόστος[50], temp_Πρ, sum
ΧΑΡΑΚΤΗΡΕΣ: Περιγραφή[50], temp_Χαρ
ΛΟΓΙΚΕΣ: οκ
ΑΡΧΗ
! 1) Καταχωρεί στους πίνακες Ημέρα[50] και Μήνα[50] την ημέρα
! και τον μήνα αντίστοιχα μιας δαπάνης, στον πίνακα Περιγραφή[50]
! την περιγραφή της δαπάνης και στον πίνακα Κόστος[50] το
! συνολικό ποσό της αντίστοιχης δαπάνης.
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50
ΓΡΑΨΕ 'Δαπάνη : ', i
ΓΡΑΨΕ 'Δώστε ημέρα : '
ΔΙΑΒΑΣΕ ημερα[i]
ΓΡΑΨΕ 'Δώστε Μήνα : '
ΔΙΑΒΑΣΕ Μήνα[i]
ΓΡΑΨΕ 'Δώστε Περιγραφή : '
ΔΙΑΒΑΣΕ Περιγραφή[i]
ΓΡΑΨΕ 'Δώστε Κόστος : '
ΔΙΑΒΑΣΕ Κόστος[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!2) Ταξινομεί τους πίνακες πρώτα ως προς το μήνα κατά αύξουσα τάξη
! και στην περίπτωση ίδιου μήνα η ταξινόμηση να γίνει ως προς την ημέρα,
! κατά αύξουσα τάξη.
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 50
ΓΙΑ j ΑΠΟ 50 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
ΑΝ (Μήνα[j - 1] > Μήνα[j]) Η
& ( Μήνα[j - 1] = Μήνα[j] ΚΑΙ ημερα[j - 1] > ημερα[j]) ΤΟΤΕ
temp <- Μήνα[j - 1]
Μήνα[j - 1] <- Μήνα[j]
Μήνα[j] <- temp
temp <- ημερα[j - 1]
ημερα[j - 1] <- ημερα[j]
ημερα[j] <- temp
temp_Πρ <- Κόστος[j - 1]
Κόστος[j - 1] <- Κόστος[j]
Κόστος[j] <- temp_Πρ
temp_Χαρ <- Περιγραφή[j - 1]
Περιγραφή[j - 1] <- Περιγραφή[j]
Περιγραφή[j] <- temp_Χαρ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!3) Δίνονται από το πληκτρολόγιο 2 ημερομηνίες (εκφράζουν μια χρονική
! περίοδο)
ΓΡΑΨΕ 'Δώστε 1η Ημερομηνία (ημέρα, μήνα)'
ΔΙΑΒΑΣΕ ημέρα1, μήνα1
ΓΡΑΨΕ 'Δώστε 2η Ημερομηνία (ημέρα, μήνα)'
ΔΙΑΒΑΣΕ ημέρα2, μήνα2
!4) Να γίνεται χρήση του υποπρογράμματος ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ,
! που να ελέγχει ότι η 1η ημ/νια είναι μικρότερη από την 2η ημ/νία .
! Στην αντίθετη περίπτωση να τις αντιμεταθέτει. Να χρησιμοποιηθεί
! η διαδικασία ΑΝΤΙΜΕΤΑΘΕΣΗ όπου χρειάζεται.
ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ (ημέρα1, μήνα1, ημέρα2, μήνα2, οκ)
ΑΝ οκ = ΨΕΥΔΗΣ ΤΟΤΕ
ΚΑΛΕΣΕ ΑΝΤΙΜΕΤΑΘΕΣΗ (ημέρα1, μήνα1, ημέρα2, μήνα2)
ΤΕΛΟΣ_ΑΝ
! 3β να εμφανίζεται η περιγραφή κάθε δαπάνης με τα αντίστοιχα
! ποσά δαπάνης της χρονικής περιόδου που πληκτρολογήσαμε.
! Επίσης στο τέλος να εμφανίζεται το συνολικό ποσό που έχει ξοδευτεί
! την αντίστοιχη χρονική περίοδο.
! Για να βρούμε από ποια γραμμή των πινάκων θα αρχίσουμε την άθροιση
! κοιτάμε από την αρχή τις ημερομηνίες και όσο είναι μικρότερες από
! την επιθυμητή αρχή ελέγχουμε την επόμενη.
i <- 1
οκ <- ΑΛΗΘΗΣ
ΟΣΟ i <= 50 ΚΑΙ οκ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ ( ημερα[i], Μήνα[i], ημέρα1, μήνα1, οκ)
ΑΝ οκ = ΑΛΗΘΗΣ ΤΟΤΕ
i <- i + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
start <- i
! Για να βρούμε μέχρι οια γραμμή των πινάκων θα τελειώσουμε την άθροιση
! κοιτάμε από το τέλος τις ημερομηνίες και όσο είναι μεγαλύτερες από
! το επιθυμητό τέλος ελέγχουμε την προηγούμενη.
i <- 50
οκ <- ΑΛΗΘΗΣ
ΟΣΟ i >= 1 ΚΑΙ οκ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ ( ημέρα2, μήνα2, ημερα[i], Μήνα[i], οκ)
ΑΝ οκ = ΑΛΗΘΗΣ ΤΟΤΕ
i <- i - 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
end <- i
! ΓΡΑΨΕ start, end
sum <- 0
ΓΙΑ i ΑΠΟ start ΜΕΧΡΙ end
ΓΡΑΨΕ Περιγραφή[i], ' : ', Κόστος[i]
sum <- sum + Κόστος[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Συνολικό ποσό : ', sum
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ (η1, μ1, η2, μ2, οκ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: η1, μ1, η2, μ2
ΛΟΓΙΚΕΣ: οκ
ΑΡΧΗ
ΑΝ (μ1 < μ2) Η (μ1 = μ2 ΚΑΙ η1 < η2) ΤΟΤΕ
οκ <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
οκ <- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΝΤΙΜΕΤΑΘΕΣΗ (η1, μ1, η2, μ2)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: η1, μ1, η2, μ2, temp
ΑΡΧΗ
temp <- η1
η1 <- η2
η2 <- temp
temp <- μ1
μ1 <- μ2
μ2 <- temp
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
|