Γράψτε αλγόριθμο που:
α) διαβάζει τα έτη γέννησης 120 ατόμων,
β) υπολογίζει τις ηλικίες τους για το 2010,
γ) εμφανίζει τους αύξοντες αριθμούς (1-120) και τις
ηλικίες των ατόμων, κατά φθίνουσα σειρά ως προς
τις ηλικίες.
Λύση
Αλγόριθμος ΑΣΚ
Για λ από 1 μέχρι 120
Διάβασε ΕΓΕΝ[λ]
Νο[λ] <-- λ
Τέλος_επανάληψης
Για λ από 1 μέχρι 120
Η[λ] <-- 2010-ΕΓΕΝ[λ]
Τέλος_επανάληψης
Για λ από 2 μέχρι 120
Για κ από 120 μέχρι λ με_βήμα -1
Αν Η[κ-1] < Η[κ] τότε
Β1 <-- Η[κ-1]
Η[κ-1] <-- Η[κ]
Η[κ] <-- Β1
Β2 <-- Νο[κ-1]
Νο[κ-1] <-- Νο[κ]
Νο[κ] <-- Β2
Τέλος_αν
Τέλος_επανάληψης
Τέλος_επανάληψης
Για λ από 1 μέχρι 120
Εμφάνισε Νο[λ], Η[λ]
Τέλος_επανάληψης
Τέλος ΑΣΚ
Τετάρτη 21 Ιουλίου 2010
Συμπληρώστε τις σχέσεις
Έστω Μ, Ν ακέραιες μεταβλητές. Συμπληρώστε τα κενά
στις παρακάτω σχέσεις:
1. (15*Ν+20*Μ) div 5 =
2. (15*N+20*M) mod 5 =
3. (6*N+12*M) div 3 =
4. (6*N+12*M) mod 3 =
5. (N^2+M^2) div (N^2+M^2+1) =
6. (N^2+M^2) mod (N^2+M^2+1) =
Απάντηση
1. (15*Ν+20*Μ) div 5 = 5*(3*Ν+4*Μ) div 5 = 3*Ν+4*Μ
2. (15*N+20*M) mod 5 = 5*(3*Ν+4*Μ) mod 5 = 0
3. (6*N+12*M) div 3 = 3*(2*N+4*M) div 3 = 2*N+4*M
4. (6*N+12*M) mod 3 = 3*(2*N+4*M) mod 3 = 0
5. (N^2+M^2) div (N^2+M^2+1) = 0
6. (N^2+M^2) mod (N^2+M^2+1) = N^2+M^2
στις παρακάτω σχέσεις:
1. (15*Ν+20*Μ) div 5 =
2. (15*N+20*M) mod 5 =
3. (6*N+12*M) div 3 =
4. (6*N+12*M) mod 3 =
5. (N^2+M^2) div (N^2+M^2+1) =
6. (N^2+M^2) mod (N^2+M^2+1) =
Απάντηση
1. (15*Ν+20*Μ) div 5 = 5*(3*Ν+4*Μ) div 5 = 3*Ν+4*Μ
2. (15*N+20*M) mod 5 = 5*(3*Ν+4*Μ) mod 5 = 0
3. (6*N+12*M) div 3 = 3*(2*N+4*M) div 3 = 2*N+4*M
4. (6*N+12*M) mod 3 = 3*(2*N+4*M) mod 3 = 0
5. (N^2+M^2) div (N^2+M^2+1) = 0
6. (N^2+M^2) mod (N^2+M^2+1) = N^2+M^2
Άσκηση σε δυσδιάστατο πίνακα
Γράψτε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:
α) διαβάζει 22 ακέραιες τιμές και τις καταχωρεί
στήλη-στήλη στον ακέραιο πίνακα Γ[2, 11],
β) υπολογίζει και εμφανίζει:
* το ποσοστό (%) των αρνητικών τιμών,
* το μέσο όρο των θετικών τιμών.
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Γ[2, 11], λ, μ, Α, Θ, Σ
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟΘ, ΠΟΣΑ
ΑΡΧΗ
ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 11
ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 2
ΔΙΑΒΑΣΕ Γ[μ, λ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <-- 0
Θ <-- 0
Σ <-- 0
ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 11
ΑΝ Γ[μ, λ] < 0 ΤΟΤΕ
Α <-- Α+1
ΤΕΛΟΣ_ΑΝ
ΑΝ Γ[μ, λ] > 0 ΤΟΤΕ
Θ <-- Θ+1
Σ <-- Σ+Γ[μ, λ]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΠΟΣΑ <-- 100*Α/22
ΓΡΑΨΕ 'Ποσοστό αρνητικών :', ΠΟΣΑ, '%'
ΑΝ Θ > 0 ΤΟΤΕ
ΜΟΘ <-- Σ/Θ
ΓΡΑΨΕ 'Μέσος όρος θετικών :', ΜΟΘ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Δεν υπάρχουν καθόλου θετικές τιμές!'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
α) διαβάζει 22 ακέραιες τιμές και τις καταχωρεί
στήλη-στήλη στον ακέραιο πίνακα Γ[2, 11],
β) υπολογίζει και εμφανίζει:
* το ποσοστό (%) των αρνητικών τιμών,
* το μέσο όρο των θετικών τιμών.
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Γ[2, 11], λ, μ, Α, Θ, Σ
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟΘ, ΠΟΣΑ
ΑΡΧΗ
ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 11
ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 2
ΔΙΑΒΑΣΕ Γ[μ, λ]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α <-- 0
Θ <-- 0
Σ <-- 0
ΓΙΑ μ ΑΠΟ 1 ΜΕΧΡΙ 2
ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 11
ΑΝ Γ[μ, λ] < 0 ΤΟΤΕ
Α <-- Α+1
ΤΕΛΟΣ_ΑΝ
ΑΝ Γ[μ, λ] > 0 ΤΟΤΕ
Θ <-- Θ+1
Σ <-- Σ+Γ[μ, λ]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΠΟΣΑ <-- 100*Α/22
ΓΡΑΨΕ 'Ποσοστό αρνητικών :', ΠΟΣΑ, '%'
ΑΝ Θ > 0 ΤΟΤΕ
ΜΟΘ <-- Σ/Θ
ΓΡΑΨΕ 'Μέσος όρος θετικών :', ΜΟΘ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Δεν υπάρχουν καθόλου θετικές τιμές!'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Άσκηση σε μονοδιάστατο πίνακα
Δίνεται πίνακας Ν[670] πραγματικού τύπου. Γράψτε
αλγόριθμο που με δεδομένο τον παραπάνω πίνακα:
α) διαβάζει μια ακέραια τιμή Μ διασφαλίζοντας ότι αυτή
θα είναι 0 ή 1,
β) υπολογίζει και εμφανίζει:
* το άθροισμα Ν[1]+Ν[3]+...+Ν[669], αν Μ = 0
* το γινόμενο Ν[2] Χ Ν[4] Χ ... Χ Ν[670], αν Μ = 1
Λύση
Αλγόριθμος ΑΣΚ
Δεδομένα // Ν //
Αρχή_επανάληψης
Διάβασε Μ
Μέχρις_ότου (Μ = 0) Ή (Μ = 1)
Αν Μ = 0 τότε
Α <-- 0
Για λ από 1 μέχρι 669 με_βήμα 2
Α <-- Α+Ν[λ]
Τέλος_επανάληψης
Εμφάνισε Α
αλλιώς
Γ <-- 1
Για λ από 2 μέχρι 670 με_βήμα 2
Γ <-- Γ*Ν[λ]
Τέλος_επανάληψης
Εμφάνισε Γ
Τέλος_αν
Τέλος ΑΣΚ
αλγόριθμο που με δεδομένο τον παραπάνω πίνακα:
α) διαβάζει μια ακέραια τιμή Μ διασφαλίζοντας ότι αυτή
θα είναι 0 ή 1,
β) υπολογίζει και εμφανίζει:
* το άθροισμα Ν[1]+Ν[3]+...+Ν[669], αν Μ = 0
* το γινόμενο Ν[2] Χ Ν[4] Χ ... Χ Ν[670], αν Μ = 1
Λύση
Αλγόριθμος ΑΣΚ
Δεδομένα // Ν //
Αρχή_επανάληψης
Διάβασε Μ
Μέχρις_ότου (Μ = 0) Ή (Μ = 1)
Αν Μ = 0 τότε
Α <-- 0
Για λ από 1 μέχρι 669 με_βήμα 2
Α <-- Α+Ν[λ]
Τέλος_επανάληψης
Εμφάνισε Α
αλλιώς
Γ <-- 1
Για λ από 2 μέχρι 670 με_βήμα 2
Γ <-- Γ*Ν[λ]
Τέλος_επανάληψης
Εμφάνισε Γ
Τέλος_αν
Τέλος ΑΣΚ
Δευτέρα 19 Ιουλίου 2010
'Ασκηση : Απάντηση σε ερώτηση
Γράψτε αλγόριθμο που διαβάζει τις τιμές πώλησης
κάποιων ηλεκτρονικών παιχνιδιών (η είσοδος δεδομένων
ολοκληρώνεται μόλις δοθεί η απάντηση 'ΝΑΙ' στην
υποβαλλόμενη προς το χρήστη ερώτηση 'Ολοκληρώθηκε;')
και υπολογίζει:
α) τη μέση τιμή πώλησης,
β) τη μεγαλύτερη τιμή πώλησης και τον αύξοντα αριθμό
του παιχνιδιού στον οποίο αντιστοιχεί (θεωρείστε ότι
οι τιμές πώλησης είναι διαφορετικές μεταξύ τους),
γ) το ποσοστό (%) των παιχνιδιών που είχαν τιμή πώλησης
τουλάχιστον 35 ευρώ.
Λύση
Αλγόριθμος Παιχνίδια
Αθρ <-- 0
Π35 <-- 0
ΜΑΧ <-- -1000
Πληθ <-- 0
Αρχή_επανάληψης
Διάβασε Τιμή
Πληθ <-- Πληθ+1
Αθρ <-- Αθρ+Τιμή
Αν Τιμή > ΜΑΧ τότε
ΜΑΧ <-- Τιμή
Νο <-- Πληθ
Τέλος_αν
Αν Τιμή >= 35 τότε
Π35 <-- Π35+1
Τέλος_αν
Εμφάνισε 'Ολοκληρώθηκε;'
Διάβασε Χ
Μέχρις_ότου Χ = 'ΝΑΙ'
ΜΟ <-- Αθρ/Πληθ
ΠΟΣ <-- 100*Π35/Πληθ
Εμφάνισε ΜΟ, ΜΑΧ, Νο, ΠΟΣ
Τέλος Παιχνίδια
κάποιων ηλεκτρονικών παιχνιδιών (η είσοδος δεδομένων
ολοκληρώνεται μόλις δοθεί η απάντηση 'ΝΑΙ' στην
υποβαλλόμενη προς το χρήστη ερώτηση 'Ολοκληρώθηκε;')
και υπολογίζει:
α) τη μέση τιμή πώλησης,
β) τη μεγαλύτερη τιμή πώλησης και τον αύξοντα αριθμό
του παιχνιδιού στον οποίο αντιστοιχεί (θεωρείστε ότι
οι τιμές πώλησης είναι διαφορετικές μεταξύ τους),
γ) το ποσοστό (%) των παιχνιδιών που είχαν τιμή πώλησης
τουλάχιστον 35 ευρώ.
Λύση
Αλγόριθμος Παιχνίδια
Αθρ <-- 0
Π35 <-- 0
ΜΑΧ <-- -1000
Πληθ <-- 0
Αρχή_επανάληψης
Διάβασε Τιμή
Πληθ <-- Πληθ+1
Αθρ <-- Αθρ+Τιμή
Αν Τιμή > ΜΑΧ τότε
ΜΑΧ <-- Τιμή
Νο <-- Πληθ
Τέλος_αν
Αν Τιμή >= 35 τότε
Π35 <-- Π35+1
Τέλος_αν
Εμφάνισε 'Ολοκληρώθηκε;'
Διάβασε Χ
Μέχρις_ότου Χ = 'ΝΑΙ'
ΜΟ <-- Αθρ/Πληθ
ΠΟΣ <-- 100*Π35/Πληθ
Εμφάνισε ΜΟ, ΜΑΧ, Νο, ΠΟΣ
Τέλος Παιχνίδια
Άσκηση : Φρουρός
Γράψτε αλγόριθμο που διαβάζει το όνομα και το
επώνυμο των καθηγητών ενός γυμνασίου (η είσοδος
ολοκληρώνεται μόλις δοθεί ως όνομα ή ως επίθετο
το κενό διάστημα), υπολογίζει και εμφανίζει:
α) πόσοι καθηγητές έχουν το όνομα 'Νίκος',
β) το ποσοστό (%) των καθηγητών που έχουν το επώνυμο
'Καρύδης'.
Λύση
Αλγόριθμος Γυμνάσιο
Νικ <-- 0
Καρ <-- 0
Πληθ <-- 0
Αρχή_επανάληψης
Διάβασε Ον
Διάβασε Επ
Αν (Ον < > ' ') ΚΑΙ (Επ < > ' ') τότε
Πληθ <-- Πληθ+1
Αν Ον = 'Νίκος' τότε
Νικ <-- Νικ+1
Τέλος_αν
Αν Επ = 'Καρύδης' τότε
Καρ <-- Καρ+1
Τέλος_αν
Τέλος_αν
Μέχρις_ότου (Ον = ' ') Ή (Επ = ' ')
Αν Πληθ > 0 τότε
ΠοσΚαρ <-- 100*Καρ/Πληθ
Εμφάνισε Νικ, ΠοσΚαρ
αλλιώς
Εμφάνισε 'Δε δόθηκαν δεδομένα'
Τέλος_αν
Τέλος Γυμνάσιο
επώνυμο των καθηγητών ενός γυμνασίου (η είσοδος
ολοκληρώνεται μόλις δοθεί ως όνομα ή ως επίθετο
το κενό διάστημα), υπολογίζει και εμφανίζει:
α) πόσοι καθηγητές έχουν το όνομα 'Νίκος',
β) το ποσοστό (%) των καθηγητών που έχουν το επώνυμο
'Καρύδης'.
Λύση
Αλγόριθμος Γυμνάσιο
Νικ <-- 0
Καρ <-- 0
Πληθ <-- 0
Αρχή_επανάληψης
Διάβασε Ον
Διάβασε Επ
Αν (Ον < > ' ') ΚΑΙ (Επ < > ' ') τότε
Πληθ <-- Πληθ+1
Αν Ον = 'Νίκος' τότε
Νικ <-- Νικ+1
Τέλος_αν
Αν Επ = 'Καρύδης' τότε
Καρ <-- Καρ+1
Τέλος_αν
Τέλος_αν
Μέχρις_ότου (Ον = ' ') Ή (Επ = ' ')
Αν Πληθ > 0 τότε
ΠοσΚαρ <-- 100*Καρ/Πληθ
Εμφάνισε Νικ, ΠοσΚαρ
αλλιώς
Εμφάνισε 'Δε δόθηκαν δεδομένα'
Τέλος_αν
Τέλος Γυμνάσιο
Κυριακή 18 Ιουλίου 2010
Άσκηση : Ποιά είναι η τελική τιμή της μεταβλητής ζ
Ποιά είναι η τελική τιμή της μεταβλητής ζ μετά την
εκτέλεση των παρακάτω εντολών;
ζ <-- 101
Για λ από 1 μέχρι 20
Αν λ mod 2 = 0 τότε
ζ <-- ζ-8
αλλιώς
ζ <-- ζ+5
Τέλος_αν
Τέλος_επανάληψης
Απάντηση
Παρατηρούμε ότι όταν το λ είναι άρτιο, αφαιρούμε από την
τρέχουσα τιμή του ζ το 8, ενώ αν το λ είναι περιττό προσθέ-
τουμε στο ζ το 5. Αφού ανάμεσα στο 1 και στο 20 υπάρχουν
10 άρτιοι και 10 περιττοί αριθμοί, η τελική τιμή του ζ είναι:
101-10*8+10*5 = 101-80+50 = 71
εκτέλεση των παρακάτω εντολών;
ζ <-- 101
Για λ από 1 μέχρι 20
Αν λ mod 2 = 0 τότε
ζ <-- ζ-8
αλλιώς
ζ <-- ζ+5
Τέλος_αν
Τέλος_επανάληψης
Απάντηση
Παρατηρούμε ότι όταν το λ είναι άρτιο, αφαιρούμε από την
τρέχουσα τιμή του ζ το 8, ενώ αν το λ είναι περιττό προσθέ-
τουμε στο ζ το 5. Αφού ανάμεσα στο 1 και στο 20 υπάρχουν
10 άρτιοι και 10 περιττοί αριθμοί, η τελική τιμή του ζ είναι:
101-10*8+10*5 = 101-80+50 = 71
Εγγραφή σε:
Αναρτήσεις (Atom)