Μαθηματικά     Geogebra      Επιμόρφωση         ΑΕΠΠ        ΤΠΕ      Διάφορα      Ρήσεις     Ιστορία     Math-Games  Συνδέσεις      home
 
 
 
 
Δομή Επανάληψης

 

Να γίνει πρόγραμμα που να εκτυπώνει τις ακέραιες τιμές των χ, ψ, z που ανήκουν στο διάστημα [-50, 50] και ικανοποιούν τη συνθήκη 2χ2-2ψ5+z -2=2011


Λύση
...

ΓΙΑ χ απο  -50 μέχρι 50
ΓΙΑ ψ απο  -50 μέχρι 50
ΓΙΑ z απο  -50 μέχρι 50 
Αν 2*χ^2-2*ψ^5+z^(-1)=2011 τότε
γράψε χ, ψ, z
Τ_Ε
Τ_Ε
Τ_Ε
...

Ψηφία τριψήφιων Αριθμών
mod10      div10


Να γίνει πρόγραμμα που να εμφανίζει όλους τους αριθμούς από το 100 μέχρι το 758 που το άθροισμα των ψηφίων τους να είναι 12

 

 

 

 
Λύση
...

Για λ από 100 μέχρι 258
ψηφίο3 ← λ  mod 10
πηλίκο  ← λ  div 10
ψηφίο2 ← πηλίκο mod 10
ψηφίο1←  πηλίκο div 10
Αν ψηφίο3+ψηφίο2+ψηφίο1=12 τότε
γράψε λ
Τ_Ε
...
π.χ.
458 mod 10 δίνει 8=ψηφίο3
458 div 10 δίνει 45 = πηλίκο
45  mod 10 δίνει 5=ψηφίο2
45  div 10 δίνει 4  = ψηφίο1

Ψηφία τετραψήφιων Αριθμών
mod10      div10


Να γίνει πρόγραμμα που να εμφανίζει όλους τους αριθμούς από το 100 μέχρι το2011 που το άθροισμα των ψηφίων τους να είναι μεγαλύτερο του 12

 

Λύση
...
! Πρώτα τους τριψήφιους

Για λ από 100 μέχρι 999
ψηφίο3 ← λ  mod 10
πηλίκο  ← λ  div 10
ψηφίο2 ← πηλίκο mod 10
ψηφίο1← πηλίκο div 10
Αν ψηφίο3+ψηφίο2+ψηφίο1>12 τότε
γράψε λ
Τ_Ε
! μετά τους τετραψήφιους
Για λ από 1000 μέχρι 2011
ψηφίο4 ← λ  mod 10
πηλίκο1  ← λ  div 10
ψηφίο3 ← πηλίκο1 mod 10
πηλίκο2 ← πηλίκο1 div10
ψηφίο2←πηλίκο2 mod 10 
ψηφίο1← πηλίκο 2div 10
Αν ψηφίο4+ψηφίο3+ψηφίο2+ψηφίο1>12 τότε
γράψε λ
Τ_Ε
...

***
Ψηφία  Αριθμών
mod10      div10

Να γίνει πρόγραμμα που θα δέχεται ένα οποιοδήποτε θετικό ακέραιο και θα εκτυπώνει το άθροισμα των ψηφίων τους
   (κατά την είσοδο δεν απαιτείται έλεγχος εγκυρότητας)

 

π.χ.
458 mod 10 δίνει 8=ψηφίο3
458 div 10 δίνει 45 = πηλίκο
45  mod 10 δίνει 5=ψηφίο2
45  div 10 δίνει 4  = τελευταίο ψηφίο
τελευταίο ψηφίο div 10 =0
και η παραπάνω διαδικασία τελειώνει εδώ. Υπάρχει μια επαναληπτική διαδικασία
Λύση
 
...
Σ ← 0
Διάβασε αριθμός
Όσο αριθμός <> 0  Επανάλαβε
ψηφίο ←αριθμός mod 10
Σ ← Σ +ψηφίο
! μετατρέπουμε τον αριθμό σε πηλίκο
αριθμός ← αριθμός div10
Τ_Ε
γράψε Σ
...

πρώτοι αριθμοί

Να γίνει πρόγραμμα που θα δέχεται ένα οποιοδήποτε θετικό ακέραιο >1και θα εμφανίζει αν είναι πρώτος.
Πρώτος είναι ένας αριθμός αν αυτός διαιρείται μόνο με το 1 και τον εαυτό του
(κατά την είσοδο απαιτείται έλεγχος εγκυρότητας)

 


 

Λύση
 
...
Σ ← 0
!
έλεγχος εγκυρότητας
Αρχή επανάληψης
Διάβασε αριθμός
Μέχρις_ότου (αριθμός >1 )και (αριθμός =A_M(αριθμός) )
Για i από 1 μέχρι αριθμός
! έλεγχος διαιρετότητας
Αν αριθμός mod i =0 τότε
κ ← κ+1
τέλος_αν
Τ_Ε
αν κ=2 τότε
 γράψε  " είναι πρώτος ο", αριθμός
αλλιώς
γράψε  " δεν είναι πρώτος ο", αριθμός
τέλος_αν

 

Δύο φίλοι παίζουν τάβλι. Ένα παιχνίδι μπορεί να λήξει μονό (ο νικητής του συγκεκριμένου παιχνιδιού παίρνει 1 πόντο) ή διπλό (ο νικητής του συγκεκριμένου παιχνιδιού παίρνει 2 πόντους).

Τελικός νικητής αναδεικνύεται αυτός που θα φτάσει πρώτος στους 7 βαθμούς και θα έχει τουλάχιστο 2 βαθμούς διαφορά από τον αντίπαλό του. Π.χ. σε περίπτωση που το σκορ γίνει 6-6 ο νικητής αναδεικνύεται στους 8 βαθμούς. Αν το σκορ γίνει 7-7 τότε ο νικητής αναδεικνύεται στους 9 βαθμούς κ.ο.κ.

 

Να γραφεί αλγόριθμος ο οποίος
α) αρχικά θα διαβάζει τα ονόματα των δύο παιχτών.
β) Έπειτα επαναληπτικά θα διαβάζει για κάθε παιχνίδι το όνομα του παίχτη που κέρδισε το τρέχον παιχνίδι καθώς και τους βαθμούς με τους οποίους το κέρδισε(1 ή 2). Η επανάληψη θα τερματίζει όταν έχουμε νικητή σύμφωνα με τους κανόνες που περιγράφηκαν παραπάνω.
γ) Τέλος θα εμφανίζεται το τελικό σκορ και το όνομα του νικητή

  

ΔΙΑΒΑΣΕ Α, Β
Σ1   ←0
Σ2   ←0

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ

ΔΙΑΒΑΣΕ ΟΝΟΜΑ, ΠΟΝΤΟ
ΑΝ ΟΝΟΜΑ=Α ΤΟΤΕ
Σ1   ←  Σ1 + ΠΟΝΤΟ
ΑΛΛΙΩΣ
Σ2   ←  Σ2 + ΠΟΝΤΟ
ΤΕΛΟΣ_ΑΝ

ΜΕΧΡΙΣ_ΟΤΟΥ (Σ1≥7 Η Σ2≥7) ΚΑΙ (Σ1>Σ2+2 Η Σ2>Σ1+2)

ΑΝ Σ1>Σ2 ΤΟΤΕ
ΓΡΑΨΕ "Νικητής είναι ο:", Α,  Σ1 , Σ2
ΑΛΛΙΩΣ
ΓΡΑΨΕ "Νικητής είναι ο:", Β,  Σ2 , Σ1
ΤΕΛΟΣ_ΑΝ
 

Το κλειδί στην άσκηση είναι  η σύνθετη λογική συνθήκη
 (Σ1≥7 Η Σ2≥7 ΚΑΙ (Σ1>Σ2+2 Η Σ2>Σ1+2)
πχ σκόρ 7-5 , 9-4 που βγαίνουν απο τη α' συνθήκη αλλά ικανοποιούν και την β' (δηλ. τουλάχιστον 2 μονάδες διαφορά)
η β΄συνθήκη απο μόνη της δεν είναι ικανή π.χ  6-4 σκόρ δεν είναι αποδεκτό
 

 

ΜΕΤΑΤΡΟΠΕΣ ΣΤΗΝ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ

Να μετατραπεί το παρακάτω ώστε να χρησιμοποιεί ΓΙΑ... ΑΠΟ..ΜΕΧΡΙ..

α ← 3
β ←3
Όσο β<60  Επανάλαβε
κ  α- 4/β
β ← β+2
α← α- 4
α← α- 4*β
Τ_Ε

Λύση
α ← 3
Για β από 3 μέχρι 60 με_βήμα 2
κ← α- 4/β
α← α- 4
α← α- 4*(β+2)
Τ_Ε
...

Να μετατραπεί το παρακάτω ώστε να χρησιμοποιεί την δομή Όσο ... Επανάλαβε

Διάβασε α
για λ από 100 μέχρι α με_βήμα -2
γράψε α
Τ_Ε

Λύση
...
Διάβασε α
λ ←100
Όσο  λ>= α  Επανάλαβε
γράψε α
λ ← λ-2
Τ_Ε
...

Να μετατραπεί το παρακάτω ώστε να χρησιμοποιεί την δομή Αρχή_ Επανάληψης..Μέχρις ότου

Διάβασε α, β
Όσο  α+2*β>0   Επανάλαβε
Γράψε α, β
α ← α+β
Τ_Ε

 

 

Λύση
Αρχή_ Επανάληψης
Διάβασε α, β
 Γράψε α,β
α ← α+β
Μέχρις ότου  ΟΧΙ(α+2*β>0)
 Η λύση δεν είναι πλήρης γιατί στην ΟΣΟ  μπορεί και να μην εκτελεστεί καθόλου η ομάδα εντολών ενώ στην Αρχή επανάληψης θα εκτελεστεί μία τουλάχιστον φορά

 

Λύση
Αρχή_ Επανάληψης
Διάβασε α, β
 Αν  (α+2*β>0) τότε
Γράψε α,β
α ← α+β
Τέλος_Αν
Μέχρις ότου  ΟΧΙ(α+2*β>0)
Η λύση είναι  πλήρης

Να μετατραπεί το παρακάτω ώστε να χρησιμοποιεί την δομή Όσο ... Επανάλαβε

Διάβασε α, β
Αρχή_ Επανάληψης
Γράψε α,β
α ←  α-4
β ←  β^2
Μέχρις ότου
α+β=8

 

Λύση
Διάβασε α, β
Όσο ΟΧΙ (α+β=8)  Επανάλαβε
Γράψε α,β
α ←  α-4
β ←  β^2
Τ_Ε

Η λύση δεν είναι πλήρης γιατί μπορεί και να μην εκτελεστεί καθόλου η ομάδα εντολών ενώ στην Αρχή επανάληψης θα εκτελεστεί μία τουλάχιστον φορά

 

Λύση
Διάβασε α, β
Γράψε α,β
α ←  α-4
β ←  β^2
Όσο ΟΧΙ (α+β=8)  Επανάλαβε
Γράψε α,β
α ←  α-4
β ←  β^2
Τ_Ε
Η λύση είναι  πλήρης
Να συμπληρώσετε τα κενά(η συμπλήρωση -λύση δεν είναι μοναδική) στα παρακάτω ώστε η  εντολή  γράψε α  να εκτελεστεί 4 φορές στο καθένα. Κατόπιν να γίνουν τα διαγράμματα ροής

για λ από 10  μέχρι.....με_βήμα -2
γράψε α
Τ_Ε

 

για λ από 10  μέχρι .....  με_βήμα  0,2
γράψε α
Τ_Ε

 

α ← -10
Όσο α < 10 Επανάλαβε
α←  .....
γράψε α
Τ_Ε

 

α ← -10
Αρχή_ Επανάληψης
 α ←  α+5
γράψε α
Μέχρις ότου ...........
γράψε α

 

α ← -100
για λ από  .... μέχρι 0 με_βήμα  α
γράψε α
Τ_Ε

 

α ←100
για λ από 100 μέχρι 2*α με_βήμα .....
γράψε α
Τ_Ε

 

 

 

 

 

 

 

 

 

για λ από 10  μέχρι 4 με_βήμα -2
γράψε α
Τ_Ε

 

για λ από 10  μέχρι 10,6 με_βήμα  0,2
γράψε α
Τ_Ε

 

α ← -10
Όσο α < 10  Επανάλαβε
γράψε α
α← α+5
Τ_Ε

 

α ← -10
Αρχή_ Επανάληψης
 α ←  α+5
γράψε α
Μέχρις ότου α<=5
γράψε α

 

α ← -100
για λ από  300 μέχρι 0 με_βήμα  α
γράψε α
Τ_Ε

 

 

α ←100
για λ από 100 μέχρι 2*α με_βήμα 30
γράψε α
Τ_Ε

 

Δίνεται το παρακάτω τμήμα αλγορίθμου:

Χ 50

ΟΣΟ Χ > 0 ΕΠΑΝΑΛΑΒΕ

ΓΙΑ Υ ΑΠΟ 2 ΜΕΧΡΙ 6 ΜΕ_ΒΗΜΑ 2

Χ Χ – 10

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Χ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

1. Πόσες φορές θα εκτελεστεί η εντολή ΓΡΑΨΕ Χ;

2. Πόσες φορές θα εκτελεστεί η εντολή εκχώρησης

Χ Χ – 10;

3. Ποιες είναι οι διαδοχικές τιμές των μεταβλητών Χ και

Υ σε όλες τις επαναλήψεις;

4. Να μετατραπεί σε ισοδύναμο τμήμα αλγορίθμου που να χρησιμοποιεί αποκλειστικά την δομή επανάληψης α) ΟΣΟ...  ΕΠΑΝΑΛΑΒΕ
β) ΓΙΑ... ΑΠΟ... ΜΕΧΡΙ ...
ΜΕ_ΒΗΜΑ...

 

 

Απάντηση

Η συνθήκη στην ΟΣΟ:  50>0 οπότε η ΓΙΑ θα εκτελεστεί 3 φορές και το χ θα γίνει 20 κατόπιν
Η συνθήκη στην ΟΣΟ:  20>0 οπότε η ΓΙΑ θα εκτελεστεί άλλες 3 φορές και το χ θα γίνει -10
Επομένως η    
ΓΡΑΨΕ Χ     θα εκτελεστεί 2 φορές και η Χ Χ – 10   6 φορές

Χ 50

ΟΣΟ Χ > 0 ΕΠΑΝΑΛΑΒΕ
Υ
←2

ΟΣΟ Υ <= 6  ΕΠΑΝΑΛΑΒΕ

Χ Χ – 10
Υ← Υ+2

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Χ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 

Προσοχή εδώ δεν θα κάνουμε τυφλή μετατροπή της ΟΣΟ  σε ΓΙΑ γιατί στο αρχικό τμήμα ο εξωτερικός βρόχος εκτελείται 2 φορές και εξαρτάται απο τον εσωτερικό
έτσι
Χ 50
ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 2 

ΓΙΑ Υ ΑΠΟ 2 ΜΕΧΡΙ 6 ΜΕ_ΒΗΜΑ 2

Χ Χ – 10

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ Χ

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ