Κεφάλαιο 8 Κουτσοδόντης Ανέστης Σελίδα 1
8.1 Επιλογή Η διαδικασία επίλυσης πολλών προβληµάτων παρουσιάζει το ακόλουθο χαρακτηριστικό: σε κάποιο στάδιο χρειάζεται να αποφασιστεί ποια θα είναι η επόµενη πράξη. Η απόφαση αυτή λαµβάνεται µε βάση το αποτέλεσµα κάποιας συνθήκης. Γενικά η διαδικασία της επιλογής περιλαµβάνει τον έλεγχο κάποιας συνθήκης που µπορεί να έχει δύο τιµές ΑΛΗΘΕΙΑ - ΨΕΜΑ και ακολουθεί η απόφαση εκτέλεσης κάποιας ενέργειας µε βάση την τιµή ης λογικής αυτής συνθήκης. 1.. Τελεστές Σύγκρισης Οι τελεστές σύγκρισης είναι: =, <, >, >< (ή <> διάφορο), >=, <= Οι τελεστές σύγκρισης χρησιµοποιούνται για τη σύγκριση µεταξύ µεταβλητών, σταθερών και αριθµών. Με τη βοήθεια των τελεστών σύγκρισης δηµιουργούνται εκφράσεις οι οποίες είτε ισχύουν είτε δεν ισχύουν. ηλ. έχουν τιµή Αληθής ή Ψευδής. Οι εκφράσεις που το αποτέλεσµά τους είναι Αληθής ή Ψευδής ονοµάζονται λογικές συνθήκες ή συνθήκες ή λογικές εκφράσεις. Παράσταση Τελεστής σύγκρισης Παράσταση Σύνταξη λογικής έκφρασης ή συνθήκης Παράσταση1,2 Σταθερά, µεταβλητή, αριθµητική παράσταση (τύποι δεδοµένων µπορεί να είναι ακέραιες, πραγµατικές, χαρακτήρων ή αλφαριθµητικές και λογικές) Η σύγκριση χαρακτήρων στηρίζεται στην αλφαβητική σειρά ('α' < 'β' ) και βασικά την σειρά που έχουν στον ASCII ή UNICODE κώδικα δηλαδή την κωδικοποίηση τους στον Η/Υ. Η σύγκριση αλφαριθµητικών δεδοµένων βασίζεται στη σύγκριση χαρακτήρα προς χαρακτήρα. Η σύγκριση λογικών έχει έννοια µόνο στην περίπτωση του ίσου (=) και του διάφορου (<>), διότι οι τιµές είναι µόνο δύο (ΑΛΗΘΕΙΑ - ΨΕΜΑ). Για παράδειγµα οι ακόλουθες λογικές συνθήκες είναι αληθείς ενώ οι λογικές συνθήκες είναι ψευδείς 5>2 7<= 10 8<>10 10 > 20 5*2><10 Οι τελεστές σύγκρισης µπορούν να συνδυαστούν µε αριθµητικούς τελεστές και µεταβλητές για να δηµιουργήσουν πιο σύνθετες εκφράσεις. Για παράδειγµα α + 5 > β + γ - 2. Σε αυτή την περίπτωση πρώτα εκτελούνται οι αριθµητικές πράξεις και έπειτα γίνεται η σύγκριση. Παρατήρηση: Στις λογικές συνθήκες ποτέ δεν χρησιµοποιούµε το βέλος της εντολής εκχώρησης. Το βέλος εκχωρεί τιµή, ενώ το = ελέγχει ισότητα. Αν Α και Β µεταβλητές µε τιµές 5 και 8 αντίστοιχα, να χαρακτηρισθεί καθεµία από τις ακόλουθες λογικές συνθήκες ως αληθής ή ψευδής. Κουτσοδόντης Ανέστης Σελίδα 2
1) Α > Β 2) Α + 4 > Β 3) Α - Β < 0 4) Α + Β -10<> 0 5) Α^2 mod 2 > 8.5 6) (Α+Β) div 2 = 6 7) Α-Β> Α^2 Β^2 8) Α < Β * 2/16 + 3 9) Α 10 >= -2 * Α Για να απαντήσουµε στις ασκήσεις αυτού του τύπου, πρέπει να υπολογίζουµε την τιµή των εκφράσεων που βρίσκονται πριν και µετά από τον τελεστή σύγκρισης και έπειτα να δούµε αν ισχύει ή όχι ο τελεστής σύγκρισης. 1) Ψευδής, γιατί το Α έχει τιµή 5, που είναι µικρότερη από την τιµή του Β. 2) Αληθής, γιατί το Α + 4 ισούται µε 9, άρα είναι µεγαλύτερο από την τιµή του Β.. 3) Αληθής, γιατί το Α - Β ισούται µε -3, άρα είναι µικρότερο από 0 4) Αληθής, γιατί το Α + Β -10 ισούται µε 3, δηλ. διάφορο του µηδέν 5) Ψευδής, γιατί Α^2 mod 2 = 5^2 mod 2 = 1. 6) Αληθής, γιατί (Α + Β) div 2 = (5 + 8) div 2 = 6. 7) Αληθής, γιατί Α - Β = -3, ενώ Α^2 Β^2 = 5^2 8^2 = -39. 8) Ψευδής, γιατί Β*2/16 +3 = 8*2/16 + 3 = 4, δηλ. µικρότερο από την τιµή του Α. 9) Αληθής, γιατί Α - 10 = 5-10 = -5, ενώ -2 * Α = -2 * 5 = -10. Αν Α, Β και Γ αριθµητικές µεταβλητές, να συµπληρωθεί ο ακόλουθος πίνακας αληθείας. Για την συµπλήρωση του ακόλουθου πίνακα, αρκεί να υπολογίζουµε τις συνθήκες στις τελευταίες στήλες του πίνακα για τις διάφορες τιµές των Α, Β και Γ. Α Β Γ Α+Β=Γ Α>=Γ+2*Β Α+Β+Γ<>60 10 20 30 Αληθής Ψευδής Ψευδής 15 10 20 Ψευδής Ψευδής Αληθής 100 10 5 Ψευδής Αληθής Αληθής 2.. Οι λογικοί τελεστές ΚΑΙ (σύζευξη) Ή (διάζευξη) ΌΧΙ (άρνηση) 2.1 Ο λογικός τελεστής ΚΑΙ. Ο λογικός τελεστής και (σύζευξη) συνδέει δυο ή περισσότερες λογικές συνθήκες και πρέπει όλες οι προτάσεις να είναι αληθείς για να είναι αληθής και η συνδυασµένη πρόταση. ηλαδή, η έκφραση Λογική Συνθήκη (Α) ΚΑΙ Λογική Συνθήκη (Β) για να είναι αληθής πρέπει και η Α και η Β να είναι αληθής. Σε οποιαδήποτε άλλη περίπτωση είναι ψευδής. Να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) 2 > 1 και 3 > 2 2) 2 > 1 και 3 > 5 3) 10> 5 και 15 > 10 και 20 > 22 Κουτσοδόντης Ανέστης Σελίδα 3
1) Αληθής, γιατί και το 2 > 1 είναι αληθής και το 3 > 2 είναι αληθής. 2) Ψευδής, γιατί το 2 > 1 είναι αληθής, αλλά το 3 > 5 είναι ψευδής. 3) Ψευδής, γιατί το 10 > 5 είναι αληθής, το 15 > 10 είναι αληθής, αλλά το 20 > 22 είναι ψευδής. 2.2 Ο λογικός τελεστής Ή. Ο λογικός τελεστής ή (διάζευξη) συνδέει δυο ή περισσότερες λογικές συνθήκες και πρέπει τουλάχιστον µια να είναι αληθής για να είναι και η συνδυασµένη. ηλαδή, η έκφραση Λογική Συνθήκη (Α) Η Λογική Συνθήκη (Β) για να είναι αληθής πρέπει τουλάχιστον µια από τις προτάσεις να είναι αληθής. Η έκφραση είναι ψευδής µόνο αν και οι δυο εκφράσεις είναι ψευδείς. Παράδειγµα:Να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) 2 > 1 ή 3 > 2 2) 2 > 1 ή 3 > 5 3) 10 < 5 ή 20> 22 1) Αληθής, γιατί και οι δυο λογικές συνθήκες είναι αληθείς. 2) Αληθής, γιατί το 2 > 1 είναι αληθής. 3) Ψευδής, γιατί και οι δυο λογικές συνθήκες είναι ψευδείς. 2.3 Ο λογικός τελεστής ΌΧΙ. Ο λογικός τελεστής όχι (άρνηση) εφαρµόζεται σε µια λογική συνθήκη και επιστρέφει λογική τιµή αντίθετη από αυτή της συνθήκης. ηλαδή, η έκφραση ΟΧΙ Λογική Συνθήκη (Α) είναι αληθής, αν η λογική συνθήκη Α είναι ψευδής. Όταν η Α είναι αληθής, η έκφραση είναι ψευδής. Να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής: 1) όχι (2 > 1) 2) όχι (5 > 6) 1) Ψευδής, γιατί το 2 > 1 είναι αληθής, άρα το όχι (2 > 1) είναι ψευδής. 2) Αληθής, γιατί το 5 > 6 είναι ψευδής, άρα το όχι (5 > 6) είναι αληθής. Αν Α και Β λογικές συνθήκες ο πίνακας αληθείας είναι. Α Β Α ΚΑΙ Β Α Η Β ΟΧΙ Α Αληθής Αληθής Αληθής Αληθής Ψευδής Αληθής Ψευδής Ψευδής Αληθής Ψευδής Ψευδής Αληθής Ψευδής Αληθής Αληθής Ψευδής Ψευδής Ψευδής Ψευδής Αληθής Γνωρίζουµε ότι: Α και Β είναι αληθής, όταν και οι δυο συνθήκες είναι αληθείς, Α ή Β είναι αληθής, όταν τουλάχιστον µια από τις συνθήκες, όχι Α επιστρέφει την αντίθετη λογική τιµή από αυτή που έχει η συνθήκη Α. Κουτσοδόντης Ανέστης Σελίδα 4
Οι σύνθετες συνθήκες και η ιεραρχία των λογικών τελεστών Οι σύνθετες συνθήκες είναι εκφράσεις, όπου συνδυάζονται οι λογικοί τελεστές, µε τους τελεστές σύγκρισης και τους αριθµητικούς τελεστές. Παραδείγµατα, σύνθετων συνθηκών αποτελούν: 1. (4 > 5 και 5 > 6) ή (4 > 3 και 6 > 2) 2. (α> β ή β> γ) και όχι (γ > 4 + δ^2) 3. 5 > 2 ή 2> 3 και 3 > 4 Ο υπολογισµός των σύνθετων συνθηκών εξαρτάται από την προτεραιότητα των αριθµητικών και λογικών πράξεων. Οι λογικοί τελεστές που υπάρχουν σε µια έκφραση εκτελούνται µε την ακόλουθη ιεραρχία: 1. Όχι (άρνηση). 2. Και (σύζευξη). 3. Ή (διάζευξη). Να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) (3 > 2 και 5 > 6) ή (4> 3) 2) όχι 10 > 2 και 5 > 2 Για τον υπολογισµό των σύνθετων λογικών συνθηκών, θα υπολογίζουµε τµηµατικά τις απλές συνθήκες. 1) (3>2 ΚΑΙ 5>6) Η (4>3) (Αληθής ΚΑΙ Ψευδής) Η Αληθής Ψευδής Η Αληθής Αληθής ηλ. έγινε υπολογισµός των συνθηκών εντός των παρενθέσεων και κατόπιν συνδυάστηκαν τα αποτελέσµατα. 2) όχι 10 > 2 και 5 > 2 ΟΧΙ Αληθής ΚΑΙ Αληθής Ψευδής ΚΑΙ Αληθής Ψευδής Στο συγκεκριµένο παράδειγµα δεν υπάρχουν παρενθέσεις, οπότε σύµφωνα µε την προτεραιότητα των λογικών τελεστών, πρώτα εκτελείται το ΟΧΙ και κατόπιν το ΚΑΙ. Αν α και β µεταβλητές µε τιµή 10 και 20 αντίστοιχα, να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) β = 20 ή β < 10 και όχι β > α 2) όχι (α > α + β και β > α ή όχι α + β = 25) Όταν στις σύνθετες συνθήκες περιλαµβάνονται µεταβλητές, τότε για τον υπολογισµό τους πρέπει να αντικαταστήσουµε τις τιµές και κατόπιν να υπολογίσουµε την τιµή. Κουτσοδόντης Ανέστης Σελίδα 5
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 1) β = 20 Η β < 10 ΚΑΙ ΟΧΙ β > α 20 = 20 Η 20 < 10 ΚΑΙ ΟΧΙ 20 > 10 Αληθής ή Ψευδής και όχι Αληθής Αληθής ή Ψευδής και Ψευδής Αληθής ή Ψευδής Αληθής 2) όχι (α > α+β και β > α ή όχι α+β = 25) όχι (10 > 30 και 20 > 10 ή όχι 30 = 25) όχι (Ψευδής και Αληθής ή όχι Ψευδής) όχι (Ψευδής και Αληθής ή Αληθής) όχι (Ψευδής ή Αληθής) όχι (Αληθής) Ψευδής Να χαρακτηρισθεί η ακόλουθη συνθήκη ως Αληθής ή Ψευδής. (4>5και5>6)ή(4>2και6>2) Για να γίνει πιο εύκολα αντιληπτός ο υπολογισµός των σύνθετων συνθηκών, παραθέτουµε τον ακόλουθο γραφικό τρόπο, όπου φαίνεται άµεσα µε ποια ιεραρχία εκτελούνται οι λογικές πράξεις.. Αληθής (4>5 και 5>6) ή (4>2 και 6>2) Ψ Ψ Α Α Ψ Η Α Α Αν Α, Β, Γ αριθµητικές µεταβλητές, να συµπληρωθεί ο ακόλουθος πίνακας αληθείας. Α Β Γ Α>Β ΚΑΙ Β>2 Η Γ<3 ΟΧΙ Α =Β ΚΑΙ Α<>Γ 4 5 6 Ψευδής Αληθής -10-10 3 Ψευδής Ψευδής Για να συµπληρώσουµε τον πίνακα, θα πρέπει να αντικαταστήσουµε στις συνθήκες τις τιµές των µεταβλητών και κατόπιν να υπολογίσουµε τις τιµές των συνθηκών. Κουτσοδόντης Ανέστης Σελίδα 6
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον ΑΣΚΗΣΕΙΣ ΑΛΥΤΕΣ 1. Αν Α, Β και Γ µεταβλητές µε τιµές 10,20 και 30 αντίστοιχα, να χαρακτηρισθεί καθεµία από τις ακόλουθες λογικές συνθήκες ως αληθής ή ψευδής. 1) Α > Β + Γ 2) Α + Γ <>Β 3) Α - Β + Γ - 20 < 0 4) Α^2 >< Β + Γ 5) Α^2 = 2*(Β + Γ) 6) (Α + Β) div 10 = 0 7) Α + Γ > Α ^ 2 Γ^2 8) Α + Β + Γ div 2 = 45 9)Α*Β=Γ 2. Να συµπληρώσετε τον παρακάτω πίνακα µε τις λέξεις αληθής ή ψευδής για τις αντίστοιχες τιµές των µεταβλητών α και β. α β α / β * β >=2 α/2 > 4+α α+1><α-1 α-1 < β + 1-2 -1 2 2-1 -3 3 1 3. Να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) 5 > 2 ή 3 > 4 2) 10 > 100 και 100 < 200 3) 100> 10 και 10 > 20 4) όχι 20> 30 και 15 = 10 + 5 5) όχι (3 > 2 και 5 >= 6) 6) όχι 10 > 30 και όχι 10 <= 5 ή 4 < 8 4. Να υπολογίσετε τις τιµές των παρακάτω συνθηκών, όταν οι µεταβλητές α, β, γ και δ περιέχουν τις τιµές -2, 2, 3 και 5 αντίστοιχα. ί) όχι (α > 2) ίί) (β >= 0) η (δ = γ) ίίί) (α>< γ - 5) ή (γ < δ) ίν) (α>< β) και (γ>< δ-2) 5. Σε ποιες από τις παρακάτω περιπτώσεις οι συνθήκες είναι αληθείς, δεδοµένου ότι οι µεταβλητές α, β, γ και δ περιέχουν τις τιµές 3, -1,3 και 2 αντίστοιχα; ί) όχι(α >< 10) ίί) (α-γ =<0)και (δ>3) ίίί) (α - β = γ - β) ή (δ >< γ) ίν) όχι ((α ><1) και (2 = δ)) 6. Αν Χ και Υ ακέραιες µεταβλητές να συµπληρωθεί ο ακόλουθος πίνακας αληθείας. Χ Ψ Χ<Ψ Χ>Ψ ΚΑΙ ΟΧΙ Χ<10 Χ-15 <> Ψ ΟΧΙ (Χ+Ψ>10) 5-20 10 5 20 2-5 0 7. Αν Α, Β και Γ ακέραιες µεταβλητές να χαρακτηρισθεί καθεµία από τις ακόλουθες συνθήκες ως Αληθής ή Ψευδής. 1) Α> Β και Β < Γ, αν Α=1, Β=2, Γ=3 2) (Α = Β) και όχι (Β = Γ), αν Α=1Ο, Β=-2, Γ=0 3) Α> Β H Β = Α + Γ H OXI Β> Γ, αν Α=20, Β=0, Γ=-20 4) Β mod Γ = Α div 10 και Α > Γ, αν Α=100, Β=50, Γ=20 Κουτσοδόντης Ανέστης Σελίδα 7
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 5) (Α> 5 και Β> Ο) ή (όχι (Α> 3 ή Α < 4», αν Α = 6, Β = 16 6) όχι «Α> 5 ή Β > Ο) ή (Α> 3 και Α < 4», αν Α = 6, Β = 16 8. Αν Χ=3, Υ=6, Φ=7 ποιο είναι το αποτέλεσµα των ακόλουθων εκφράσεων; 1) (Χ mod Υ = 0) και (Χ mod Φ ><0) 2) όχι (Υ > Φ) και (Υ > 2) 3) όχι (όχι (Υ > Φ) ή όχι (Φ > 2)) 4) (Χ div Υ = 0 ) ή (Χ mod 2 = 0) 9. Αν Α, Β και Γ λογικές συνθήκες να συµπληρωθεί ο ακόλουθος πίνακας αληθείας Α Β Γ Α Η Β ΚΑΙ ΟΧΙ Γ Α ΚΑΙ Γ Η Β ΟΧΙ (Α ΚΑΙ Β Η Γ) Αληθής Αληθής Αληθής Αληθής Ψευδής Ψευδής Ψευδής Αληθής Αληθής Ψευδής Ψευδής Ψευδής 10. Έστω τέσσερις απλές λογικές συνθήκες ΣΙ, Σ2, Σ3 και Σ4. Να υπολογίσετε την τιµή της σύνθετης λογικής συνθήκης (ΣΙ ή Σ2) και όχι(σ3) ή Σ2 και Σ4 για τις παρακάτω τιµές των απλών συνθηκών: ί) ΣΙ = αληθής, Σ2 = ψευδής, Σ3 = αληθής, Σ4 = ψευδής, ίί) ΣΙ = ψευδής, Σ2 = αληθής, Σ3 = ψευδής, Σ4 = αληθής. 11. Έστω δύο λογικές συνθήκες ΣΙ και Σ2. Η παρακάτω σύνθετη λογική συνθήκη λέγεται αποκλειστική διάζευξη (όχι (ΣΙ) και (Σ2 )) ή (ΣΙ και (όχι (Σ2 ))) Να φτιάξετε τον πίνακα τιµών για οποιοδήποτε δυνατό συνδυασµό τιµών των συνθηκών ΣΙ και Σ2. Παρατηρώντας τον πίνακα τιµών, να εξηγήσετε γιατί αυτή η σύνθετη λογική συνθήκη ονοµάζεται αποκλειστική διάζευξη. Κουτσοδόντης Ανέστης Σελίδα 8
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 8.1.1 Περιορισµένη Επιλογή Υπάρχει περίπτωση σε µια εντολή επιλογής, στην περίπτωση που ισχύει η συνθήκη, να εκτελεστεί µια σειρά εντολών, ενώ στην αντίθετη περίπτωση να µη θέλουµε να εκτελεστεί κάποια εντολή. Στην περίπτωση αυτή χρησιµοποιούµε τη δοµή περιορισµένης επιλογής. ΑΝ <συνθήκη> ΤΟΤΕ οµάδα εντολών Εντολές συνθήκη 8.1.2 Απλή Επιλογή Σε µια εντολή επιλογής, στην περίπτωση που ισχύει η συνθήκη, να εκτελείται µια σειρά εντολών, ενώ στην αντίθετη περίπτωση εκτελείται µια δεύτερη σειρά εντολών. Στην περίπτωση αυτή χρησιµοποιούµε τη δοµή απλής επιλογής. ΑΝ <συνθήκη> ΤΟΤΕ οµάδα εντολών 1 ΑΛΛΙΩΣ οµάδα εντολών 2 συνθήκη Εντολές 1 Εντολές 2 Παράδειγµα:Να δοθεί πρόγραµµα για την εύρεση απόλυτης τιµής πραγµατικού αριθµού. ΠΡΟΓΡΑΜΜΑ Απόλυτη_τιµή ΠΡΑΓΜΑΤΙΚΟΙ:Αρ, Απολ_Τιµ ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό =' ΙΑΒΑΣΕ Αρ ΑΝ Αρ>0 ΤΟΤΕ Απολ_Τιµ Αρ ΑΛΛΙΩΣ Απολ_Τιµ Αρ * (-1) ΓΡΑΨΕ ' ',Αρ,' ='Απολ_Τιµ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Απόλυτη_τιµή Κουτσοδόντης Ανέστης Σελίδα 9
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 8.1.3 Πολλαπλή επιλογή Είναι δυνατό σε κάποιο σηµείο του προγράµµατος οι εντολές να χωριστούν σε περισσότερες από µία οµάδες και να εκτελεστούν οι εντολές µόνο µιας οµάδας, ανάλογα µε την τιµή µιας συνθήκης. Στην περίπτωση αυτή χρησιµοποιούµε τη δοµή πολλαπλής επιλογής, η οποία φαίνεται σε µορφή ψευδοκώδικα στη συνέχεια: 1 ος τροπος ΕΠΙΛΕΞΕ <εκφραση> ΠΕΡΙΠΤΩΣΗ <τιµή1> οµάδα εντολών 1 ΠΕΡΙΠΤΩΣΗ <τιµή2> οµάδα εντολών 2... ΠΕΡΙΠΤΩΣΗ <τιµήn-1 οµάδα εντολών n-1 ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ οµάδα εντολών n ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ 2 ος τροπος ΑΝ <συνθήκη1> ΤΟΤΕ οµάδα εντολών 1 ΑΛΛΙΩΣ_ΑΝ <συνθήκη2> ΤΟΤΕ οµάδα εντολών 2 ΑΛΛΙΩΣ_ΑΝ <συνθήκη3> ΤΟΤΕ οµάδα εντολών 3.. ΑΛΛΙΩΣ οµάδα εντολών ν 8.1.4 Εµφωλευµένη επιλογή Παράδειγµα: Επίλυση Πρωτοβάθµιας Εξίσωσης. Ο αλγόριθµος σε µορφή ψευδοκώδικα δίνεται στη συνέχεια: ΠΡΟΓΡΑΜΜΑ ΑΒάθµΕξίσωση ΠΡΑΓΜΑΤΙΚΟΙ:α β, Χ ΧΑΡΑΚΤΗΡΩΝ: Υ ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό α=' ΙΑΒΑΣΕ α ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό β=' ΙΑΒΑΣΕ β ΑΝ α<>0 ΤΟΤΕ Υ 'υπάρχει µοναδική λύση' X -β/α ΓΡΑΨΕ ' Χ=', χ ΑΛΛΙΩΣ ΑΝ β<>0 ΤΟΤΕ Υ 'αδύνατη' ΑΛΛΙΩΣ Υ 'αόριστη' ΓΡΑΨΕ Υ ΤΕΛΟΣ ΑΒάθµΕξίσωση. Κουτσοδόντης Ανέστης Σελίδα 10
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ασκήσεις 8ου Κεφαλαίου Ασκήσεις Επιλογής 1. Να γράψετε πρόγραµµα που να διαβάζει ένα αριθµό πραγµατικό και να υπολογίζει και να τυπώνει την τετραγωνική ρίζα του. 2. Να γραφεί πρόγραµµα που θα διαβάζει έναν αριθµό και θα επιστρέφει την απόλυτη τιµή του χωρίς να γίνει χρήση της συνάρτησης Α - Τ( ). 3. Να γραφεί πρόγραµµα που θα διαβάζει τη θερµοκρασία µιας πόλης και θα εµφανίζει το µήνυµα "Καύσωνας" αν η θερµοκρασία ξεπερνά τους 38 C. ιαφορετικά θα εµφανίζει το µήνυµα "Κανονική θερµοκρασία". 4. Να γραφεί πρόγραµµα που θα διαβάζει έναν αριθµό και θα ελέγχει αν είναι θετικός διψήφιος και θα εµφανίζει κατάλληλο µήνυµα. 5. Να γραφεί πρόγραµµα που θα δέχεται σαν είσοδο δυο αριθµούς και θα ελέγχει µε µια εντολή ΑΝ... ΤΟΤΕ, αν και οι δυο αριθµοί είναι θετικοί διψήφιοι. 6. Να γραφεί πρόγραµµα που θα διαβάζει τους βαθµούς ενός µαθητή Β' Εν. Λυκείου στα τρία µαθήµατα κατεύθυνσης. Κατόπιν να εµφανίζει "Υψηλή βαθµολογία" αν ο µέσος όρος των µαθηµάτων είναι µεγαλύτερος ή ίσος του 18 ή "Χαµηλή βαθµολογία" στην αντίθετη περίπτωση. Οι βαθµοί δίνονται στην κλίµακα 1 ως 200, συνεπώς πρέπει να µετατραπούν στην κλίµακα 1 ως 20. 1 7. Το εµβαδόν τριγώνου δίδεται από τον τύπο βυ. Να γραφεί πρόγραµµα που αφού 2 υπολογίσει το εµβαδόν να εµφανίζει το µήνυµα "Μικρό εµβαδόν" αν το εµβαδόν είναι µικρότερο ή ίσο από 100 και το µήνυµα "Μεγάλο εµβαδόν" αν το είναι µεγαλύτερο από 100. 8. Το κλιµατιστικό σύστηµα ενός εµπορικού κέντρου τίθεται σε λειτουργία αν η µέση θερµοκρασία από τις µετρήσεις τριών αισθητήρων ξεπερνά τους 20 C. Να γραφεί πρόγραµµα που θα διαβάζει τις θερµοκρασίες από τους τρεις αισθητήρες και θα ελέγχει αν πρέπει να τεθεί σε λειτουργία το κλιµατιστικό σύστηµα. 9. Ένα βιβλιοπωλείο πουλάει βιβλία µε 4% ΦΠΑ και όλα τα υπόλοιπα είδη µε 18%. Τα βιβλία έχουν κωδικό 1. Να γραφεί πρόγραµµα που να διαβάζει τον κωδικό και το κόστος του προϊόντος που αγόρασε κάποιος πελάτης και να εµφανίζει τι πρέπει να πληρώσει ο πελάτης προσθέτοντας ΦΠΑ. 10. Να γραφεί πρόγραµµα που να διαβάζει ένα όνοµα. Στην περίπτωση που το όνοµα είναι "Ελευθέριος" ή "Ελευθερία" να εµφανίζει το µήνυµα "Καληµέρα". ιαφορετικά να εµφανίζει το µήνυµα " εν σε γνωρίζω". 11. Ένα θέατρο έχει δυο κατηγορίες εισιτηρίων, για ενήλικους και για ανήλικους. Οι ενήλικοι πληρώνουν 15, ενώ οι ανήλικοι 10. Να γραφεί πρόγραµµα που θα ζητά την ηλικία ενός θεατή και θα υπολογίζει το κόστος του εισιτηρίου του. (Ενήλικος>=18) 12. Να γράψετε πρόγραµµα που να ζητάει την µεταβλητή Χ και υπολογίζει την X + 7 παράσταση: Υ=. Να διακρίνεται περιπτώσεις. X 1 13. Να γράψετε πρόγραµµα που να ζητάει την µεταβλητή Χ και υπολογίζει την 5X 2 παράσταση: Υ=. Να διακρίνεται περιπτώσεις. X ( X + 2) Κουτσοδόντης Ανέστης Σελίδα 11
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 14. Να γράψετε πρόγραµµα που να ζητάει τις µεταβλητές Χ και Υ και υπολογίζει την 2 2 X 1 Y + 2 παράσταση: Ζ=. Να διακρίνεται περιπτώσεις. X + 4 ( X 4)( Y + 2) 15. Να γράψετε πρόγραµµα που να ζητάει την µεταβλητή Χ και υπολογίζει την 2 Χ παράσταση: Υ= 7. Χωρίς την χρησιµοποίηση της συνάρτησης Α_Τ. 2Χ + 1 16. Να γράψετε πρόγραµµα που να ζητάει ένα ακέραιο αριθµό και θα εµφανίζει το διπλάσιο του, αν το τελευταίο του ψηφίο είναι το 3 ή το 4, ενώ σε διαφορετική περίπτωση, θα υπολογίζει και θα εµφανίζει το τριπλάσιο του. 17. Να γράψετε πρόγραµµα που να ζητάει δύο ακέραιους αριθµούς. Αν και οι δύο είναι άρτιοι ή περιττοί, τότε να εµφανίζει τον µέσο όρο τους. ιαφορετικά να εµφανίζει την διαφορά τους. 18. Να γραφεί πρόγραµµα που θα διαβάζει τρεις τιµές προϊόντων σε και αντίστοιχα τρεις ποσότητες από αυτά τα προϊόντα. Να υπολογιστεί το συνολικό καθαρό ποσό που πρέπει να πληρώσει ο αγοραστής. Αν το καθαρό ποσό είναι µεγαλύτερο από 100 να γίνεται χρέωση ΦΠΑ 6%, αλλιώς να γίνεται χρέωση ΦΠΑ 18%. Στο τέλος να εµφανίζεται τι τελικά πρέπει να πληρώσει ο αγοραστής. 19. Μια οικογένεια κατανάλωσε Χ Kwh ηµερήσιου ηλεκτρικού ρεύµατος και Υ Kwh νυκτερινού ρεύµατος. Το κόστος του ηµερήσιου είναι 0,10 και του νυχτερινού είναι 0,05 ανά Kwh. Να γραφεί πρόγραµµα που: i. Να διαβάζει τα Χ και Υ ii. Να υπολογίζει και να εµφανίζει το συνολικό κόστος της κατανάλωσης ρεύµατος της οικογένειας. iii. Να εµφανίζει το µήνυµα ΥΠΕΡΒΟΛΙΚΗ ΚΑΤΑΝΑΛΩΣΗ, αν το συνολικό κόστος είναι µεγαλύτερο από 500. (Θέµα Σεπτεµβρίου 2000) 20. Στο κοινοβούλιο µιας χώρας απαιτείται πλειοψηφία 2/3 των παρόντων βουλευτών σε µια συνεδρίαση, για να µπορέσει να εγκριθεί ένα νοµοσχέδιο. Να γραφεί πρόγραµµα που θα διαβάζει τον αριθµό των βουλευτών που παρευρίσκονταν κατά την διάρκεια µιας συνεδρίασης, καθώς και τον αριθµό των βουλευτών που ψήφισαν υπέρ του νοµοσχεδίου και θα ελέγχει αν µπορεί να εγκριθεί το νοµοσχέδιο. 21. Σε τρεις διαφορετικούς αγώνες πρόκρισης για την Ολυµπιάδα του Σίδνεϋ στο άλµα εις µήκος ένας αθλητής πέτυχε τις επιδόσεις a,b,c. Να αναπτύξετε πρόγραµµα το οποίο: Να διαβάζει τις τιµές των επιδόσεων a,b,c Να υπολογίζει και να εµφανίζει τη µέση τιµή των παραπάνω τιµών Να εµφανίζει το µήνυµα «ΠΡΟΚΡΙΘΗΚΕ», αν η παραπάνω µέση τιµή είναι µεγαλύτερη των 8 µέτρων. 22. Να γράψετε πρόγραµµα που να ζητάει ένα ακέραιο αριθµό και θα εξετάζει αν είναι πολλαπλάσιο του 5. Στην συνέχεια να εµφανίζει κατάλληλο µήνυµα ανάλογα µε το αν είναι ή δεν είναι πολλαπλάσιο του 5. 23. Να γραφεί πρόγραµµα που θα δέχεται ως είσοδο ένα ακέραιο αριθµό και θα εµφανίζει το µήνυµα "Ο αριθµός είναι πολλαπλάσιο του 3", αν ο αριθµός είναι πολλαπλάσιο του 3 ή το µήνυµα "Ο αριθµός δεν είναι πολλαπλάσιο του 3", αν ο αριθµός δεν είναι πολλαπλάσιο του 3. 24. Οι µαθητές των ΤΕΕ για να εισαχθούν σε κάποιο ΤΕΙ διαγωνίζονται Πανελληνίως σε τρία µαθήµατα. Για να εισαχθεί κάποιος µαθητής σε ένα συγκεκριµένο ΤΕΙ πρέπει ο συνολικός αριθµός µορίων στα τρία µαθήµατα αυτά, να είναι µεγαλύτερος ή ίσος της βάσης εισαγωγής στο συγκεκριµένο ΤΕΙ. Για τον υπολογισµό του αριθµού µορίων, οι βαθµοί των τριών µαθηµάτων πολλαπλασιάζονται επί έναν συντελεστή και στο τέλος Κουτσοδόντης Ανέστης Σελίδα 12
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον προστίθενται και διαιρούνται µε το τρία. Το βασικό µάθηµα έχει συντελεστή 1.3, ενώ τα υπόλοιπα µαθήµατα έχουν συντελεστή 0.85. Για τον υπολογισµό του συνολικού αριθµού µορίων ο µέσος όρος πολλαπλασιάζεται µε το 100 και είναι ακέραιος. Με δεδοµένη τη βάση εισαγωγής, να υπολογίζεται ο συνολικός αριθµός µορίων των βαθµών του µαθητή και να ελέγχεται αν ο µαθητής µπορεί να εισαχθεί στο τµήµα. 25. Να γραφεί πρόγραµµα που θα δέχεται σαν είσοδο τρεις µεταβλητές. Οι δυο πρώτες µεταβλητές θα είναι αριθµητικές, ενώ η τρίτη µεταβλητή θα είναι αλφαριθµητική. Το πρόγραµµα θα εµφανίζει το άθροισµα των δυο πρώτων µεταβλητών όταν η τρίτη µεταβλητή έχει τιµή "+" και τη διαφορά των δυο πρώτων όταν η τρίτη µεταβλητή ισούται µε "-", διαφορετικά να εµφανίζει λάθος σύµβολο. 26. Να γραφεί πρόγραµµα που θα διαβάζει δυο αριθµούς και έναν χαρακτήρα από τους +, -, *, / και θα εκτελεί την πράξη που αντιστοιχεί στον χαρακτήρα. Επίσης θα εµφανίζει µήνυµα λάθους σε περίπτωση που ο χαρακτήρας δεν είναι ένας από τους +, -, *, /. 27. Να γράψετε πρόγραµµα που να ζητάει την µεταβλητή Χ και υπολογίζει την 3 X 3 X +, Χ 0 X + 4 παράσταση: Υ=. Να διακρίνεται περιπτώσεις. 2 X X + 1 +, Χ < 0 X 1 X 28. Να γράψετε πρόγραµµα που να δέχεται σαν είσοδο τρεις πραγµατικούς αριθµούς και θα εµφανίζει τον µεσαίο από τους τρεις. 29. Χρησιµοποιώντας τη δοµή πολλαπλής επιλογής Επίλεξε, να γραφεί πρόγραµµα που θα διαβάζει έναν αριθµό από 1 ως 7 και θα εµφανίζει την αντίστοιχη ηµέρα της εβδοµάδος. Αν δοθεί άλλος αριθµός να εµφανίζει µήνυµα λάθους. 30. Να γραφεί πρόγραµµα που θα διαβάζει τα ονόµατα των οµάδων ενός αγώνα του Mundial και τα γκολ που έβαλε καθεµία από τις δυο οµάδες. Στη συνέχεια θα εµφανίζει το όνοµα της νικήτριας οµάδας ή το µήνυµα "Ισοπαλία" αν ο αγώνας έληξε ισόπαλος. 31. Να γράψετε πρόγραµµα που να διαβάζει τον µισθό ενός υπαλλήλου και να υπολογίζει και να τυπώνει τον καθαρό µισθό αν ο φόρος είναι: Μισθός ( ) Φόρος 0 έως 5.570 0% 5.570,1 έως 7.940 5% 7.940,1 έως 12.710 15% 12.710,1 έως.. 30% ΠΡΟΣΟΧΗ : Αυτές οι ασκήσεις είναι ασκήσεις κλίµακας και ο υπολογισµός γίνεται κλιµακωτά, δηλαδή σε κάθε διάστηµα υπολογίζω το ποσοστό αφαιρώντας τα προηγούµενα ποσά. (ό µ οιες ασκήσεις είναι η ΕΗ, ΟΤΕ, Κινητά τηλέφωνα, Νερό ) 32. Μια εταιρεία κινητής τηλεφωνίας ακολουθεί ανά µήνα την πολιτική τιµών που φαίνεται στον παρακάτω πίνακα: Πάγιο 5 Χρόνος τηλεφωνηµάτων (δευτερόλεπτα) Χρονοχρέωση ( /δευτερόλεπτο) 1-500 0,015 501-800 0,009 801 και άνω 0,005 Κουτσοδόντης Ανέστης Σελίδα 13
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Να αναπτύξετε πρόγραµµα το οποίο: Να διαβάζει τη χρονική διάρκεια των τηλεφωνηµάτων ενός συνδροµητή σε διάστηµα ενός µήνα Να υπολογίζει τη µηνιαία χρέωση του συνδροµητή. Να εµφανίζει (τυπώνει) τη λέξη «ΧΡΕΩΣΗ» και τη µηνιαία χρέωση του συνδροµητή. 33. 'Evα Internet Cafe χρεώνει κλιµακωτά τους πελάτες που χρησιµοποιούν τους υπολογιστές του ως εξής: για την πρώτη ώρα, χρεώνει 0.02 ανά λεπτό χρήσης για τα επόµενα 30', πέραν της 1 ης ώρας, χρεώνει 0.015 ανά λεπτό για τον υπόλοιπο χρόνο, πέραν της 1.5 ώρας, χρεώνει 0.01. Να γραφεί πρόγραµµα που θα υπολογίζει συνολικά τι πρέπει να πληρώσει κάποιος που έκανε χρήση ενός υπολογιστή για Χ λεπτά της ώρας. 34. Μια εταιρεία χρεώνει την τιµή του κάθε υπολογιστή ανάλογα το µέγεθος της παραγγελίας σύµφωνα µε τον παρακάτω πίνακα: ΦΠΑ 18% Ποσότητα Τιµή κάθε Η/Υ ( ) 1-50 590 51-100 525 101-200 470 201 και άνω 440 Να αναπτύξετε πρόγραµµα το οποίο: Να διαβάζει την ποσότητα της παραγγελίας ενός πελάτη Να υπολογίζει και να εµφανίζει το ΚΟΣΤΟΣ παραγγελίας. Να υπολογίζει και να εµφανίζει το ΦΠΑ. Να εµφανίζει (τυπώνει) το συνολικό κόστος (ΚΟΣΤΟΣ +ΦΠΑ). 35. Να γράψετε πρόγραµµα που να διαβάζει 4 αριθµούς και να υπολογίζει και να τυπώνει τον µέγιστο. 36. Σε ένα σούπερ µάρκετ υπάρχουν τρεις µάρκες καφέ φίλτρου διαφορετικής χώρας προέλευσης, όπως φαίνεται στον ακόλουθο πίνακα: ΧΩΡΑ Τιµή Ποσότητα Γαλλία 1 100 γρ. Γερµανία 4 600 γρ. Ιταλία 2,9 250 γρ. Να γραφεί πρόγραµµα που θα εµφανίζει τη χώρα προέλευσης όπου ο καφές έχει την πω συµφέρουσα τιµή. 37. Να γράψετε πρόγραµµα που να ζητάει το έτος και να βρίσκει αν αυτό είναι δίσεκτο ή όχι και να τυπώνει το ανάλογο µήνυµα. ( ίσεκτο χαρακτηρίζεται το έτος που είναι πολλαπλάσιο του 4 χωρίς να είναι πολλαπλάσιο του 100, ή είναι πολλαπλάσιο του 400). 38. Να γραφεί πρόγραµµα που θα επιλύεται πλήρως η πρωτοβάθµια εξίσωση αχ+β=0. (Θα δίνονται οι συντελεστές α και β θα υπολογίζεται και θα εµφανίζεται η ανάλογη απάντηση). 39. Να γραφεί πρόγραµµα που θα διαβάζει έναν ακέραιο αριθµό. Κατόπιν να εµφανίσει κατάλληλο µήνυµα για το αν ο αριθµός είναι µεταξύ του 1 και του 999. Επιπλέον, όταν ο αριθµός είναι µεταξύ του 1 και του 999 να εµφανίζει µήνυµα για το αν είναι µονοψήφιος, διψήφιος ή τριψήφιος. 40. Να γράψετε πρόγραµµα που να ζητάει τις πλευρές ενός τριγώνου, να εξετάζει αν αυτές µπορούν να αποτελούν πλευρές (τριγωνική ανισότητα α+β>γ και α+γ>β και Κουτσοδόντης Ανέστης Σελίδα 14
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον β+γ>α) να υπολογίζει το εµβαδόν του µε τον τύπο του Ηρωνα, διαφορετικά να εµφανίζει το µήνυµα ' ΕΝ ΕΙΝΑΙ ΠΛΕΥΡΕΣ ΤΡΙΓΩΝΟΥ'. 41. Να γράψετε πρόγραµµα που να δέχεται ένα ακέραιο αριθµό και θα εκτελεί τις παρακάτω λειτουργίες: Στην περίπτωση που είναι άρτιος και διαιρείται µε το 4 θα εµφανίζει το µήνυµα 'ΕΙΝΑΙ ΑΡΤΙΟΣ ΚΑΙ ΠΟΛΛΑΠΛΑΣΙΟ ΤΟΥ 4' Στην περίπτωση που είναι άρτιος και ΕΝ διαιρείται µε το 4 θα εµφανίζει το µήνυµα 'ΕΙΝΑΙ ΑΡΤΙΟΣ' Στην περίπτωση που είναι περιττός και διαιρείται µε το 5 θα εµφανίζει το µήνυµα 'ΕΙΝΑΙ ΠΕΡΙΤΤΟΣ ΚΑΙ ΠΟΛΛΑΠΛΑΣΙΟ ΤΟΥ 5' Στην περίπτωση που είναι περιττός και ΕΝ διαιρείται µε το 5 θα εµφανίζει το µήνυµα 'ΕΙΝΑΙ ΠΕΡΙΤΤΟΣ' 42. Να γράψετε πρόγραµµα που να διαβάζει 3 γωνίες τριγώνου και να τυπώνει το είδος του τριγώνου (Οξυγώνιο ή Αµβλυγώνιο ή Ορθογώνιο). 43. Να γραφεί πρόγραµµα που θα να ζητάει από τον χρήστη να εισάγει ένα τριψήφιο αριθµό. Στην συνέχεια να κάνει τα εξής: i. Να ελέγχει αν ο χρήστης έδωσε τριψήφιο αριθµό και αν ναι τότε: 1. Να αναλύει τον αριθµό σε εκατοντάδες, δεκάδες και µονάδες. 2. Να ελέγχει αν το άθροισµα είναι µεγαλύτερο του 20 και αν ναι να εµφανίζει µήνυµα 'ΜΕΓΑΛΟ ΤΟ ΑΘΡΟΙΣΜΑ'. ii. Αν ο χρήστης δεν έδωσε τριψήφιο αριθµό, να εµφανίζει το µήνυµα 'ΛΑΘΟΣ ΑΡΙΘΜΟΣ'. 44. Να γραφεί πρόγραµµα που θα επιλύεται πλήρως η δευτεροβάθµια εξίσωση αχ 2 +βχ+γ=0. (Θα δίνονται οι συντελεστές α, β και γ θα υπολογίζονται και θα εµφανίζονται οι ανάλογες απαντήσεις). 45. Να γραφεί πρόγραµµα που θα δέχεται ένα αριθµό φορολογικού µητρώου (ΑΦΜ) ενός φορολογούµενου και θα τυπώνει την χρονική περίοδο στην οποία θα πρέπει να καταθέσει την φορολογική δήλωση του στην εφορία, ανάλογα µε τον λήγοντα του ΑΦΜ ως εξής: Λήγοντας -0- θα καταθέσουν από 1 Μαρτίου έως 3 Μαρτίου Λήγοντας -1- θα καταθέσουν από 4 Μαρτίου έως 6 Μαρτίου Λήγοντας -2- θα καταθέσουν από 7 Μαρτίου έως 9 Μαρτίου Λήγοντας -3- θα καταθέσουν από 10 Μαρτίου έως 11 Μαρτίου Λήγοντας -4- θα καταθέσουν από 12 Μαρτίου έως 15 Μαρτίου Λήγοντας -5- θα καταθέσουν από 16 Μαρτίου έως 18 Μαρτίου Λήγοντας -6- θα καταθέσουν από 19 Μαρτίου έως 21 Μαρτίου Λήγοντας -7- θα καταθέσουν από 22 Μαρτίου έως 24 Μαρτίου Λήγοντας -8- θα καταθέσουν από 25 Μαρτίου έως 27 Μαρτίου Λήγοντας -9- θα καταθέσουν από 28 Μαρτίου έως 31 Μαρτίου 46. Να γραφεί πρόγραµµα που θα δέχεται την τρέχουσα ηµεροµηνία, µε µορφή τριών µεταβλητών και να βρίσκει την επόµενη ηµεροµηνία. 47. Σε σταθµό διοδίων ελέγχεται το τροχοφόρο που περνά και πληρώνει το ανάλογο αντίτιµο. Αν είναι ΙΤΡΟΧΟ πληρώνει 1, αν είναι επιβατικό αυτοκίνητο 2 και αν είναι φορτηγό 2.5. Να γραφεί πρόγραµµα όπου θα δίνεται το είδος του οχήµατος ( : για δίτροχα, Ε: για επιβατικά και Φ: για φορτηγά, να ελέγχει το είδος και να τυπώνει το αντίστοιχο αντίτιµο που πρέπει να πληρωθεί. 48. Με το νέο σύστηµα πληρωµής των διοδίων, οι οδηγοί των τροχοφόρων έχουν τη δυνατότητα να πληρώνουν το αντίτιµο των διοδίων µε ειδική µαγνητική κάρτα. Υποθέστε ότι Κουτσοδόντης Ανέστης Σελίδα 15
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον υπάρχει µηχάνηµα το οποίο διαθέτει είσοδο για την κάρτα και φωτοκύτταρο. Το µηχάνηµα διαβάζει από την κάρτα το υπόλοιπο των χρηµάτων και το αποθηκεύει σε µία µεταβλητή Υ και, µε το φωτοκύτταρο, αναγνωρίζει τον τύπο του τροχοφόρου και το αποθηκεύει σε µία µεταβλητή Τ. Υπάρχουν τρεις τύποι τροχοφόρων: δίκυκλα ( ), επιβατικά (Ε) και φορτηγά (Φ), µε αντίτιµο διοδίων 1, 2 και 3 ευρώ αντίστοιχα. Να αναπτύξετε πρόγραµµα, που: ελέγχει τον τύπο του τροχοφόρου και εκχωρεί στη µεταβλητή Α το αντίτιµο των διοδίων, ανάλογα µε τον τύπο του τροχοφόρου ελέγχει την πληρωµή των διοδίων µε τον παρακάτω τρόπο. Αν το υπόλοιπο της κάρτας επαρκεί για την πληρωµή του αντιτίµου των διοδίων, αφαιρεί το ποσό αυτό από την κάρτα. Αν η κάρτα δεν έχει υπόλοιπο, το µηχάνηµα ειδοποιεί µε µήνυµα για το ποσό που πρέπει να πληρωθεί. Αν το υπόλοιπο δεν επαρκεί, µηδενίζεται η κάρτα και δίνεται µε µήνυµα το ποσό που αποµένει να πληρωθεί. 49. Να αναπτύξετε αλγόριθµο ο οποίος υλοποιεί τη λειτουργία ενός αυτόµατου τυποποιητή πορτοκαλιών που είναι η παρακάτω: Για κάθε πορτοκάλι που εισάγεται στον τυποποιητή, διαβάζεται η τιµή του βάρους του (Β) και η διάµετρός του ( ). Το πορτοκάλι κατατάσσεται ανάλογα µε το βάρος και τη διάµετρό του ως εξής: Αν 100 Β 150 και 8 < 10, τότε τυπώνεται το µήνυµα "πρώτη διαλογή". Αν 6 < < 8, τότε, ανεξαρτήτως βάρους, τυπώνεται το µήνυµα "δεύτερη διαλογή". Σε κάθε άλλη περίπτωση τυπώνεται το µήνυµα "χυµοποίηση". 50. Ο τελικός βαθµός ενός µαθητή σ' ένα µάθηµα υπολογίζεται µε βάση την προφορική και τη γραπτή βαθµολογία του µε την ακόλουθη διαδικασία: Αν η διαφορά των δύο βαθµών είναι µεγαλύτερη από πέντε (5) µονάδες, τότε ο προφορικός βαθµός προσαρµόζεται (δηλαδή αυξάνεται ή µειώνεται) έτσι, ώστε η αντίστοιχη διαφορά να µειωθεί στις τρεις (3) µονάδες, αλλιώς ο προφορικός βαθµός παραµένει αµετάβλητος. Ο τελικός βαθµός είναι ο µέσος όρος των δύο βαθµών. Παράδειγµα προσαρµογής προφορικού βαθµού: Αν ο γραπτός βαθµός είναι 18 και ο προφορικός 11, τότε ο προφορικός γίνεται 15, ενώ, αν ο γραπτός είναι 10 και ο προφορικός 19, τότε ο προφορικός γίνεται 13. Να αναπτύξετε έναν πρόγραµµα όπου: α. να διαβάζει τους δύο βαθµούς. β. να υπολογίζει τον τελικό βαθµό σύµφωνα µε την παραπάνω διαδικασία. γ. να εµφανίζει τον τελικό βαθµό και, αν αυτός είναι µεγαλύτερος ή ίσος του 10, το µήνυµα ΠΡΟΑΓΕΤΑΙ, αλλιώς το µήνυµα ΑΠΟΡΡΙΠΤΕΤΑΙ. (Μονάδες 5) 51. Να γραφεί πρόγραµµα που θα εµφανίζει το παρακάτω µενού επιλογών: α. Πρόσθεση β. Αφαίρεση γ. Πολλαπλασιασµός δ. ιαίρεση ώσε επιλογή: Στη συνέχεια ο χρήστης θα δίδει µια επιλογή πληκτρολογώντας α, β, γ ή δ, το πρόγραµµα θα τη διαβάζει και κατόπιν θα ζητά δυο αριθµούς εµφανίζοντας το µήνυµα " ώσε δυο αριθµούς". Αφού διαβαστούν οι δυο αριθµοί θα εκτελείται η πράξη που αντιστοιχεί στην επιλογή του χρήστη. 52. Ο βασικός µισθός ενός δηµοσίου υπαλλήλου προσαυξάνεται κατά 5% αν είναι απόφοιτος Λυκείου, 10% αν είναι απόφοιτος ΤΕΙ και 20% αν είναι απόφοιτος ΑΕΙ. Επιπλέον, οι απόφοιτοι ΤΕΙ ή ΑΕΙ παίρνουν 5% αύξηση αν είναι κάτοχοι Μεταπτυχιακού Κουτσοδόντης Ανέστης Σελίδα 16
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον διπλώµατος ή 10% αν είναι κάτοχοι ιδακτορικού διπλώµατος. Αν είναι κάτοχοι και των δυο τίτλων παίρνουν πάλι 10%. Να γραφεί πρόγραµµα που θα διαβάζει τα απαραίτητα στοιχεία και θα εµφανίζει το µισθό του δηµοσίου υπαλλήλου. 53. Μια εταιρεία κινητής τηλεφωνίας έχει δυο προγράµµατα: 1. Στο πρώτο πρόγραµµα το πάγιο είναι 12 κάθε µήνα και ο πελάτης πληρώνει 1.5 λεπτά του για κάθε δευτερόλεπτο συνοµιλίας. 2. Στο δεύτερο πρόγραµµα ο πελάτης πληρώνει 15 µηνιαίο πάγιο και αν στη διάρκεια ενός µήνα έχει µιλήσει µέχρι και 1 ώρα, πληρώνει 3 λεπτά του για κάθε δευτερόλεπτο συνοµιλίας. Για κάθε δευτερόλεπτο συνοµιλίας πέραν της µιας ώρας, πληρώνει 0.5 λεπτά του. Να γραφεί πρόγραµµα που θα υπολογίζει και θα εµφανίζει πόσα πληρώνει, µε την κάθε προσφορά, κάποιος που έχει µιλήσει Χ δευτερόλεπτα στη διάρκεια ενός µήνα. Επίσης να εµφανίζει µήνυµα για την πιο συµφέρουσα προσφορά. Κουτσοδόντης Ανέστης Σελίδα 17
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 8.2 Επαναληπτικές δοµές Κατά την επίλυση διαφόρων προβληµάτων συναντούµε συχνά διαδικασίες κατά τις οποίες ελέγχεται µια συνθήκη και επαναλαµβάνεται η εκτέλεση µιας οµάδας εντολών ανάλογα µε το αν ισχύει η δεν ισχύει η συνθήκη. Για την περιγραφή τέτοιων περιπτώσεων στους αλγορίθµους χρησιµοποιούµε µια σύνθετη εντολή, την εντολή επανάληψης. Οι τρεις µορφές επαναληπτικής δοµής είναι όσο - επανέλαβε, αρχή_επανάληψης - µέχρις_ότου, για - µέχρι - τέλος_επανάληψης οι οποίες λέγονται εντολές επανάληψης η βρόχος επανάληψης. 8.2.1 Πρώτη µορφή επαναληπτικής δοµής (όσο - επανέλαβε) Η πρώτη µορφή της επαναληπτικής δοµής σε ψευδοκώδικα έχει την ακόλουθη µορφή: ΟΣΟ <συνθήκη > ΕΠΑΝΕΛΑΒΕ οµάδα εντολών ΤΕΛΟΣ_ΕΠΑΜΑΛΗΨΗΣ Συνθήκη Αληθής Εντολές Ψευδής Κουτσοδόντης Ανέστης Σελίδα 18
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Σε αυτή τη µορφή της εντολής επανάληψης ο έλεγχος γίνεται στην αρχή, πριν την εκτέλεση της οµάδας εντολών. Αν αυτή ικανοποιείται, τότε εκτελείται ξανά η οµάδα εντολών, όσο η συνθήκη παραµένει αληθής. Όταν η συνθήκη γίνει ψευδής, λήγει η εκτέλεση της επαναληπτικής δοµής. Προφανώς, οι οδηγίες µέσα στο σώµα του βρόχου µπορεί να µην εκτελεστούν ποτέ όταν η συνθήκη είναι ψευδής εν γνωρίζουµε εκ των προτέρων τον αριθµό των επαναλήψεων. Πρέπει να υπάρχει εντολή που θα τροποποιεί την συνθήκη, έτσι ώστε να γίνει κάποια στιγµή ψευδής, αλλιώς ο βρόχος δεν θα σταµατήσει ποτέ, και το υπόλοιπο του προγράµµατος δεν θα εκτελεστεί ποτέ. Ο βρόχος που δεν σταµατάει ονοµάζεται ατέρµων. Η δοµή ΟΣΟ ΕΠΑΝΕΛΑΒΕ χρησιµοποιείται όταν δεν γνωρίζουµε τον ακριβή αριθµό των επαναλήψεων. Παράδειγµα Να γραφεί ο αλγόριθµος υπολογισµού της πέµπτης δύναµης, χρησιµοποιώντας τη δοµή επανάληψης όσο-κάνε. ΠΡΟΓΡΑΜΜΑ Πέµπτη_ ύναµη ΠΡΑΓΜΑΤΙΚΟΙ :Ρ, α ΑΚΕΡΑΙΟΙ :Ι ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό α=' ΙΑΒΑΣΕ α P 1 I 1 ΟΣΟ (i<=5) ΕΠΑΝΕΛΑΒΕ P P*a I i+1 ΓΡΑΨΕ 'Ρ=',Ρ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Πέµπτη_ ύναµη 8.2.2 εύτερη µορφή εντολής επανάληψης (ΑΡΧΉ_ΕΠΑΝΑΛΗΨΗΣ-ΜΕΧΡΙΣ_ΟΤΟΥ) Η δεύτερη µορφή της εντολής επανάληψης σε µορφή ψευδοκώδικα φαίνεται στη συνέχεια: _ΕΠΑΝΑΛΗΨΗΣ οµάδα εντολών ΜΕΧΡΙΣ_ΟΤΟΥ <συνθήκη τέλους> Κουτσοδόντης Ανέστης Σελίδα 19
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Εντολές Συνθήκη Ψευδής Αληθής Σε αυτή τη µορφή της εντολής επανάληψης ο έλεγχος γίνεται µετά την εκτέλεση της οµάδας εντολών. Αυτό σηµαίνει ουσιαστικά ότι η οµάδα εντολών εκτελείται τουλάχιστο µία φορά. Μετά την εκτέλεση της οµάδας εντολών ελέγχεται η συνθήκη. Αν αυτή δεν ικανοποιείται, τότε εκτελείται ξανά η οµάδα εντολών, όσο η συνθήκη παραµένει ψευδής. Όταν η συνθήκη γίνει αληθής, λήγει η εκτέλεση της επαναληπτικής δοµής. Προφανώς, οι οδηγίες µέσα στο σώµα του βρόχου εκτελούνται τουλάχιστον µία φορά. εν γνωρίζουµε εκ των προτέρων τον αριθµό των επαναλήψεων. Πρέπει να υπάρχει εντολή που θα τροποποιεί την συνθήκη, έτσι ώστε να γίνει κάποια στιγµή αληθής, αλλιώς ο βρόχος δεν θα σταµατήσει ποτέ, και το υπόλοιπο του προγράµµατος δεν θα εκτελεστεί ποτέ. Ο βρόχος που δεν σταµατάει ονοµάζεται ατέρµων. Η δοµή ΕΠΑΝΑΛΗΨΗΣ χρησιµοποιείται όταν δεν γνωρίζουµε τον ακριβή αριθµό των επαναλήψεων. Παράδειγµα Υπολογισµού της πέµπτης δύναµης, µε Αρχή_Επανάληψης. ΠΡΟΓΡΑΜΜΑ Πέµπτη_ ύναµη ΠΡΑΓΜΑΤΙΚΟΙ :Ρ, α ΑΚΕΡΑΙΟΙ :Ι ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό α=' ΙΑΒΑΣΕ α P 1 i 1 _ΕΠΑΝΑΛΗΨΗΣ P P*a i i+1 ΜΕΧΡΙΣ_ΟΤΟΥ (i > 5) ΓΡΑΨΕ 'Ρ=',Ρ ΤΕΛΟΣ Πέµπτη_ ύναµη Εφαρµογή Να γράψετε πρόγραµµα που να διαβάζει ένα ακέραιο αριθµό. ιαφορετικά να επαναλαµβάνεται η διαδικασία. Κουτσοδόντης Ανέστης Σελίδα 20
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 1 ος Τρόπος Με την ΟΣΟ ΓΡΑΨΕ ' ώσε αριθµό :' ΙΑΒΑΣΕ Αρ! Α_Μ(χ) Ακέραιο µέρος χ ΟΣΟ Αρ<>Α_Μ(Αρ) ΕΠΑΝΕΛΑΒΕ ΓΡΑΨΕ ' ώσε ξανά ριθµό :' ΙΑΒΑΣΕ Αρ 2 ος Τρόπος Με την ΜΕΧΡΙΣ_ΟΤΟΥ _ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ' ώσε αριθµό :' ΙΑΒΑΣΕ Αρ ΜΕΧΡΙΣ_ΟΤΟΥ Αρ=Α_Μ(Αρ) Οι διαφορές των δοµών επανάληψης Όσο... επανάλαβε και Αρχήεπανάληψης... Μέχρις-ότου είναι: Στο Όσο... επανάλαβε οι εντολές µπορεί να µην εκτελεστούν ποτέ, γιατί µπορεί να µην ισχύσει ποτέ η συνθήκη, ενώ στο Αρχή_επανάληψης... Μέχρις_ότου οι εντολές θα εκτελεστούν τουλάχιστον µια φορά. Στο Όσο... επανάλαβε ο έλεγχος της συνθήκης γίνεται στην αρχή, ενώ στο Αρχή_επανάληψης... Μέχρις_ότου στο τέλος. Στο Όσο... επανάλαβε η επανάληψη συνεχίζει όσο η συνθήκη είναι αληθής, ενώ στο Αρχή_επανάληψης... Μέχρις_ότου η επανάληψη συνεχίζει όσο η συνθήκη είναι ψευδής, δηλ. µέχρι η συνθήκη να γίνει αληθής. Στο Όσο... επανάλαβε η συνθήκη είναι η άρνηση της συνθήκης (ΟΧΙ Συνθήκη) στο Αρχή_επανάληψης... Μέχρις_ότου. Η µετατροπή της δοµής επανάληψης Όσο... επανάλαβε σε Αρχή_επανάληψης... Μέχρις_ ότου γίνεται ως εξής: Όσο επανάλαβε Όσο Συνθήκη επανάλαβε Οµάδα εντολών Τέλος_επανάληψης Αρχή_επανάληψης.Μέχρις_ότου Αν Συνθήκη τότε Αρχή_επανάληψης Οµάδα εντολών Μέχρις_ότου (ΌΧΙ Συνθήκη) Τέλος_αν Για τη µετατροπή θα πρέπει να προσέξουµε δυο σηµεία: Επειδή η επανάληψη Όσο... επανάλαβε εκτελείται όσο η συνθήκη είναι αληθής, ενώ η Αρχή_επανάληψης... Μέχρις_ότου εκτελείται όσο η συνθήκη είναι ψευδής, θα πρέπει να χρησιµοποιήσουµε τον τελεστή της άρνησης στη συνθήκη στο Μέχρις_ότου, δηλ. Όχι Συνθήκη. Επειδή η Όσο... επανάλαβε µπορεί να µην εκτελεστεί ποτέ, ενώ η Αρχή_επανάληψης... Μέχρις_ότου εκτελείται τουλάχιστον µια φορά, χρησιµο- Κουτσοδόντης Ανέστης Σελίδα 21
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον ποιούµε µια απλή επιλογή µέσα στην οποία έχουµε την εντολή επανάληψης Αρχή_επανάληψης... Μέχρις_ότου. Με αυτόν τον τρόπο, µόνο αν ισχύει από την αρχή η συνθήκη θα εκτελεστούν οι εντολές της Αρχή_επανάληψης... Μέχρις_ότου. Η µετατροπή της δοµής επανάληψης Αρχή_επανάληψης.. Μέχρις_ότου σε Όσο... επανάλαβε γίνεται ως εξής: Αρχή_επανάληψης.Μέχρις_ότου Αρχή_επανάληψης Οµάδα εντολών Μέχρις_ότου (Συνθήκη) Όσο.. επανάλαβε Οµάδα εντολών Όσο (ΟΧΙ Συνθήκη) επανάλαβε Οµάδα εντολών Τέλος_επανάληψης Για τη µετατροπή θα πρέπει να προσέξουµε δυο σηµεία: 1. Επειδή η επανάληψη Αρχή_επανάληψης... Μέχρις_ότου εκτελείται όσο η συνθήκη είναι ψευδής, ενώ η Όσο. επανάλαβε εκτελείται όσο η συνθήκη είναι αληθής, θα πρέπει να χρησιµοποιήσουµε τον τελεστή της άρνησης στη συνθήκη στο Όσο... επανάλαβε, δηλ. Όχι Συνθήκη. 2. Επειδή η Αρχή_επανάληψης... Μέχρις_ότου εκτελείται τουλάχιστον µια φορά, ενώ η Όσο ο.. επανάλαβε µπορεί να µην εκτελεστεί ποτέ, γράφουµε µια φορά τις εντολές της επανάληψης Αρχή-επανάληψης... Μέχρις-ότου πριν το Όσο... επανάλαβε. Έτσι εξασφαλίζουµε ότι θα εκτελεστούν τουλάχιστον µια φορά. 8.2.3 Τρίτη µορφή επαναληπτικής δοµής (για-µέχρι-τελος_επανάληψης) Όταν είναι γνωστός εκ των προτέρων ο αριθµός των επαναλήψεων, µπορεί να χρησιµοποιηθεί η τρίτη µορφή της επαναληπτικής δοµής, η οποία έχει τη ακόλουθη µορφή: ΓΙΑ µεταβλητή ΑΠΟ αρχή ΜΕΧΡΙ τέλος ΜΕ_ΒΗΜΑ λ οµάδα εντολών µεταβλητή αρχή :είναι ένα είδος µετρητή. H εντολή αυξάνει την µεταβλητή κάθε φορά που εκτελεί το βρόχο. Η αύξηση γίνεται κατά µεταβολή λ. Π.Χ : Ι Ι + λ :είναι µια αρ. τιµή ή αριθµητική παράσταση, από την οποία ζητάτε να αρχίσει το µέτρηµα. Κουτσοδόντης Ανέστης Σελίδα 22
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον τέλος :είναι µια αρ. τιµή ή αριθµητική παράσταση, που λεει µέχρι ποιο αριθµό πρέπει να µετρήσει. Όταν αναθέτετε τιµές στην αρχή και το τέλος ακολουθείτε τις παρακάτω υποδείξεις: Μπορείτε να χρησιµοποιήσετε θετικές και αρνητικές τιµές για την αρχή και το τέλος. Μπορείτε να χρησιµοποιήσετε ακέραιες και δεκαδικές τιµές για την αρχή και το τέλος. Μπορείτε να χρησιµοποιήσετε ακέραιες και δεκαδικές τιµές και θετικές και αρνητικές τιµές για την µεταβολή λ. Η τιµή της αρχής πρέπει να είναι µικρότερη ή ίση της τιµής του τέλους όταν λ θετικό. Η τιµή της αρχής πρέπει να είναι µεγαλύτερη ή ίση της τιµής του τέλους όταν λ θετικό. Η τιµή της αρχής δεν είναι υποχρεωτικά 1. Αν αρχή και τέλος είναι ίση αριθµοί τότε ο βρόχος εκτελείται µία φορά. Αν η αρχή είναι µεγαλύτερος αριθµός από το τέλος και λ θετικό τότε δεν εκτελείται καµία φορά. Παράδειγµα Να γραφεί πρόγραµµα υπολογισµού της πέµπτης δύναµης, χρησιµοποιώντας τη δοµή επανάληψης ΓΙΑ. ΠΡΟΓΡΑΜΜΑ Πέµπτη_ ύναµη ΠΡΑΓΜΑΤΙΚΟΙ :Ρ, α ΑΚΕΡΑΙΟΙ :Ι ΓΡΑΨΕ ' ώσε πραγµατικό αριθµό α=' ΙΑΒΑΣΕ α P 1 ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 5 ΜΕ ΒΗΜΑ 1 P P*α ΓΡΑΨΕ 'Ρ=', Ρ ΤΕΛΟΣ Πέµπτη_ ύναµη. 8.2.4 Εµφωλευµένη Επανάληψη Είναι δυνατό στην οµάδα εντολών µιας επαναληπτικής δοµής να ενυπάρχουν επαναληπτικές δοµές ή δοµές επιλογής. Στο παράδειγµα που ακολουθεί χρησιµοποιείται το χαρακτηριστικό αυτό. Παράδειγµα : Να υπολογιστεί το Σ=1 ν +2 ν + +100 ν ΠΡΟΓΡΑΜΜΑ Άθροισµα ΑΚΕΡΑΙΟΙ :I, j, S, P Κουτσοδόντης Ανέστης Σελίδα 23
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον ΓΡΑΨΕ ν= ΙΑΒΑΣΕ ν j 1 S 0 ΟΣΟ (j<=100) ΕΠΑΝΕΛΑΒΕ P 1 i 1 ΟΣΟ i<=ν ΕΠΑΝΕΛΑΒΕ P P*j i i+1 ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣ S S+P j j+1 ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'S=',S ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Μετατροπή της Για Από Μέχρι σε δοµή επανάληψης Όσο... επανάλαβε 1 η Περίπτωση: τ1<=τ2 ΓΙΑ ΑΠΟ ΜΕΧΡΙ ΓΙΑ Μεταβλητή ΑΠΟ τ1 ΜΕΧΡΙ τ2 ΜΕ_ΒΗΜΑ τ3 Οµάδα εντολών ΟΣΟ ΕΠΑΝΑΛΑΒΕ Μεταβλητή τ1 ΟΣΟ Μεταβλητή <= τ2 ΕΠΑΝΑΛΑΒΕ Οµάδα εντολών 2 η Περίπτωση: τ1>=τ2 (τ3 αρνητικό) Μεταβλητή Μεταβλητή + τ3 ΓΙΑ ΑΠΟ ΜΕΧΡΙ ΓΙΑ Μεταβλητή ΑΠΟ τ1 ΜΕΧΡΙ τ2 ΜΕ_ΒΗΜΑ τ3 Οµάδα εντολών ΟΣΟ ΕΠΑΝΑΛΑΒΕ Μεταβλητή τ1 ΟΣΟ Μεταβλητή >= τ2 ΕΠΑΝΑΛΑΒΕ Οµάδα εντολών Κουτσοδόντης Ανέστης Σελίδα 24 Μεταβλητή Μεταβλητή + τ3 Για τη µετατροπή από τη δοµή επανάληψης Για... από... µέχρι τη δοµή επανάληψης Όσο... επανάλαβε πρέπει: 1. Πριν την επανάληψη Όσο... επανάλαβε, πρέπει να αρχικοποιήσουµε τη µεταβλητή της επανάληψης Για... από... µέχρι στην τιµή τ1, δηλ. µεταβλητή τ1. 2. Η συνθήκη της επανάληψης Όσο... επανάλαβε θα γίνει µεταβλητή<= τ2 ή µεταβλητή >= τ2, ανάλογα αν η ισχύει τ1<=τ2 ή τ1>=τ2.
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 3. Θα µεταφέρουµε τις εντολές της επανάληψης Για... από... µέχρι όπως είναι στην επανάληψη Όσο... επανάλαβε. 4. Πριν το Τέλος_επανάληψης στην επανάληψη Όσο... επανάλαβε θα προσθέσουµε στη µεταβλητή την τιµή του βήµατος (αν το µε_βήµα λείπει θα την αυξήσουµε κατά 1). Μετατροπή της επανάληψης Όσο... επανάλαβε σε δοµή Για Από Μέχρι Η µετατροπή της δοµής επανάληψης Όσο... επανάλαβε σε δοµή επανάληψης Για... από... µέχρι είναι δυνατή µόνο όταν η δοµή επανάληψης Όσο... επανάλαβε έχει την εξής µορφή: µεταβλητή τ1 Όσο µεταβλητή τελεστής σύγκρισης τ2 επανάλαβε Οµάδα εντολών µεταβλητή µεταβλητή+τ3 Τέλος_επανάληψης όπου ο τελεστής σύγκρισης είναι ένας από τους: <, <=, >, >= Στην περίπτωση αυτή η ισοδύναµη µορφή επανάληψης Για... από... µέχρι είναι: Για µεταβλητή από τ1 µέχρι τ2 µε_βήµα τ3 Οµάδα εντολών Τέλος_επανάληψης Γίνονται δηλαδή οι εξής αλλαγές: Αναγνωρίζουµε τη µεταβλητή που θα χρησιµοποιήσουµε στο Για... από... µέχρι. Αυτή καθορίζεται από τη συνθήκη της επανάληψης Όσο... επανάλαβε, βλέποντας ποια µεταβλητή συγκρίνουµε. Η αρχική τιµή τ1 της µεταβλητής είναι η τιµή που γράφουµε µετά το από στη δοµή επανάληψης Για.... από... µέχρι και η εντολή εκχώρησης µεταβλητή τ1 δεν µεταφέρεται. Η τελική τιµή τ2 είναι η τιµή που γράφουµε στο µέχρι στη δοµή επανάληψης Για... από... µέχρι. ηλ. η συνθήκη της Όσο... επανάλαβε είναι ουσιαστικά το µέχρι της Για... από... µέχρι. Γράφουµε την οµάδα εντολών της Όσο... επανάλαβε όπως είναι στη Για...από...µέχρι. Η τελευταία εντολή της επανάληψης Όσο... επανάλαβε καθορίζει το βήµα µεταβολής της µεταβλητής της επανάληψης Για... από... µέχρι και αντικαθισταται από το µε_βήµα. Κουτσοδόντης Ανέστης Σελίδα 25
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Προσοχή χρειάζεται στην περίπτωση όπου ο τελεστής σύγκρισης είναι> ή <, διότι η µεταβλητή της συνθήκης στο Όσο... επανάλαβε δεν θα πάρει την τιµή τ2. Όταν ο τελεστής σύγκρισης είναι ο < τότε η επανάληψη Για... από... µέχρι γίνεται: Για µεταβλητή Από τ1 Μέχρι τ2-1 Με_βήµα τ3 Όταν ο τελεστής σύγκρισης είναι ο > τότε η επανάληψη Για... από... µέχρι γίνεται: Για µεταβλητή Από τ1 Μέχρι τ2+1 Με_βήµα τ3 Παρατήρηση: Για να ανακαλύψουµε σε µια άσκηση αν πρέπει να χρησιµοποιήσουµε δοµή επανάληψης και ποια ακριβώς δοµή επανάληψης, θα κάνουµε τις εξής ερωτήσεις: Ερώτηση: Η άσκηση αναφέρεται σε ένα αντικείµενο (προϊόν, βαθµό, κ.λ.π.) ή σε πολλά; Αν η άσκηση αναφέρεται σε πλήθος αντικειµένων πρέπει να χρησιµοποιήσουµε επανάληψη, αλλιώς πρέπει να χρησιµοποιήσουµε δοµή ακολουθίας ή επιλογής. Ερώτηση: Γνωρίζουµε τον αριθµό των αντικειµένων από την αρχή; Με άλλα λόγια είναι γνωστός ο αριθµός των επαναλήψεων; Αν ο αριθµός των επαναλήψεων είναι γνωστός τότε θα χρησιµοποιήσουµε τη δοµή επανάληψης Για... από... µέχρι. Αν δεν είναι γνωστός, τότε πρέπει να απαντήσουµε και την επόµενη ερώτηση. Ερώτηση: Η εκφώνηση της άσκησης µας δίνει συνθήκη τερµατισµού του αλγορίθ- µου; Αν ναι, τότε θα χρησιµοποιήσουµε µια από τις δοµές επανάληψης Όσο... επανάλαβε ή Αρχή_επανάληψης... Μέχρις_ότου. Την Αρχή_επανάληψης... Μέχρις_ότου θα τη χρησιµοποιήσουµε αν ο αλγόριθµος πρέπει να εκτελεστεί τουλάχιστον µια φορά. Αν δεν µας δίνεται συνθήκη τερµατισµού του αλγορίθµου, τότε πρέπει να ζητήσουµε από τον χρήστη το πλήθος των αντικειµένων που θα επεξεργαστεί ο αλγόριθµος, δηλ. τον αριθµό των επαναλήψεων. Κουτσοδόντης Ανέστης Σελίδα 26
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 8.3 Παρακολούθηση Τιµών των µεταβλητών µε Πίνακα Τιµών Ποιες θα είναι οι τιµές των µεταβλητών µετά την εκτέλεση του αλγορίθµου; Τι θα εκτυπώσει το παρακάτω τµήµα του αλγόριθµου; Στα ερωτήµατα αυτά απαντάµε µε την χρήση πίνακα τιµών. Ο πίνακας αυτός έχει τρεις οµάδες στηλών Βήµατα - Μεταβλητές - Έλεγχος. Η λειτουργία του γίνεται όπως παρακάτω: 1 Α:=0; 2 Ι:= 10; _ΕΠΑΝΑΛΗΨΗΣ 3 Α Α +4* Ι 4 Ι Ι -2.5 5 ΜΕΧΡΙΣ_ΟΤΟΥ Ι<=5; 6 ΓΡΑΨΕ Α; ΕΚΤΕΛΕ ΣΗΣ ΒΗΜΑΤΑ ΕΛΕΓΧΟΣ ΑΛΓΟΡΙΘ ΜΟΥ Α Ι I<=5 ΑΠΟΤ. ΣΥΝΘΗΚΗΣ 1 1 0 2 2 0 10 3 3 40 10 4 4 40 7,5 ΕΠΟΜΕΝΟ ΒΗΜΑ 5 5 40 7,5 7,5<=5 Όχι 3 6 3 70 7,5 7 5 70 5 5<=5 ναι 6 8 6 70 9 10 11 12 Κουτσοδόντης Ανέστης Σελίδα 27
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ασκήσεις Με Πίνακα Τιµών Θέµατα εξετάσεων 1. Να εκτελέσετε το παρακάτω τµήµα αλγορίθµου, για Κ = 24 και L = 40. Να γράψετε στο τετράδιό σας τις τιµές των µεταβλητών Χ, Υ καθώς αυτές τυπώνονται µε την εντολή Εµφάνισε Χ, Υ (τόσο µέσα στη δοµή επανάληψης όσο και στο τέλος του αλγορίθµου). Χ Κ Y L Αν Χ < Υ τότε ΤΕΜΡ Χ Χ Υ Υ ΤΕΜΡ Τέλος_αν Όσο Υ<>0 επανάλαβε ΤΕΜΡ Υ Υ Χ ΜOD Y Χ TEMP Γράψε Χ, Υ Τέλος_επανάληψης Υ (Κ * L) DIV X Γράψε Χ, Υ 2. ίνεται τα παρακάτω τµήµατα αλγορίθµων: Κ = 4 Όσο Κ >= 1 επανάλαβε Α 1 Αν Κ<>2 τότε Για i από 1 µέχρι Κ Α 2 * Α Γράψε i, Α Τέλος_επανάληψης Τέλος_αν Κ Κ/2 Τέλος_επανάληψης Καθώς εκτελείται το παραπάνω τµήµα αλγορίθµου, ποιες τιµές τυπώνονται µε την εντολή Γράψε i, Α Κουτσοδόντης Ανέστης Σελίδα 28 Χ 1 Όσο Χ<5 επανάλαβε Α Χ+2 Β 3*Α-4 C Β-Α+4 Αν Α > Β τότε Αν Α > C τότε MAX A αλλιώς MAX C Τέλος_αν αλλιώς Αν Β > C τότε MAX Β αλλιώς MAX C Τέλος_αν Τέλος_αν Γράψε Χ, Α, Β, C, MAX Χ Χ+2 Τέλος_επανάληψης Ποιες είναι οι τιµές των µεταβλητών Χ, Α, Β, C, MAX που θα εµφανιστούν κατά την εκτέλεση του παραπάνω τµήµατος αλγορίθµου;
Κεφάλαιο 8 ο Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον 3. Τι θα εµφανίσουν στην οθόνη τα παρακάτω τµήµατα προγραµµάτων: Σ 0 Ι 1 ΟΣΟ Ι<4 ΕΠΑΝΕΛΑΒΕ Σ Σ +Ι Ι Ι + 1 Α 4*Ι - 10 ΑΝ Α > 0 ΤΟΤΕ Β Α + 2* Σ ΓΡΑΨΕ Β ΤΕΛΟΣ_ΟΣΟ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 4. Έστω τµήµατα αλγορίθµου Μ 0 Ζ 0 για Χ από 0 µέχρι 10 µε βήµα 2 αν Χ<5 Ζ Ζ+Χ αλλιώς Μ Μ+Χ-1 Τέλος_αν Τέλος_επανάληψης Να γράψετε στο τετράδιό σας τις τιµές των µεταβλητών Χ, Μ, Ζ σε όλες τις επαναλήψεις. Σ 2 Ι 0 _ΕΠΑΝΑΛΗΨΗΣ Σ Σ *Ι Ι Ι + 2 Α 3*Ι - 10 ΑΝ Α >2 ΤΟΤΕ Β Α - 2* Σ ΓΡΑΨΕ Β ΜΕΧΡΙΣ_ΟΤΟΥ Ι > 4 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ D 2 για Χ από 2 µέχρι 5 µε βήµα 2 Α 10*Χ Β 5*Χ+10 C Α+Β-(5*Χ) D 3*D-5 Υ Α+Β-C+D Τέλος_Επανάληψης Να βρείτε τις τιµές των µεταβλητών Α,B,C,D,X και Υ σε όλες τις επαναλήψεις. Κουτσοδόντης Ανέστης Σελίδα 29
Ασκήσεις στην ΑΝάπτυξη Εφαρµογών Ασκήσεις Με πίνακα Τιµών 1. Τι θα εµφανίσουν τα παρακάτω τµήµατα προγραµµάτων: Π1. α 5 Όσο α>1 Επανάλαβε Γράψε α^2 α α-2 Τέλος_Επανάληψης. Π4. α 1 κ 0 Όσο α<6 Επανάλαβε κ κ+α α α+2 Τέλος_Επανάληψης Γράψε κ. Π2. α 50 β 10 Όσο α< >β Επανάλαβε Γράψε α+β α α-10 β β+10 Τέλος_Επανάληψης. Π5. α 10 γ 20 Όσο α<γ και γ>6 Επανάλαβε Αν α<14 τότε Γράψε α-γ α α+3 Αλλιώς Γράψε α+γ γ γ-4 Τέλος_Αν Τέλος_Επανάληψης Π3. Α 5 Αρχή_Επανάληψης Γράψε α^2 α α-2 Μέχρις_Ότου α<2. Π6. α 10 β 20 γ 30 Όσο α>2 Επανάλαβε α α-2 β β-5 γ 2*β δ α+γ Τέλος_Επανάληψης Γράψε α,β,γ,δ. 2. Να µετατραπούν τα τµήµατα Π4 και Π5 της προηγούµενης άσκησης σε ισοδύναµα µε την δοµή Αρχή_Επανάληψης. 3. Να γίνουν τα διαγράµµατα ροής στα Π3, Π4 της προηγούµενη άσκησης. 4. Τι θα εµφανίσουν τα παρακάτω τµήµατα προγραµµάτων αν δοθεί σαν είσοδος η τιµή 10: Π1 Π2 ιάβασε χ. Όσο χ^2 > 10 Επανάλαβε ιάβασε α Αν χ>5 Τότε β 3 Γράψε χ Όσο (α>β) Και (β>0) Επανάλαβε Αλλιώς α α+2 Γράψε -χ β β-1 Τέλος_Αν Τέλος_Επανάληψης Χ χ-3 Γράψε α, β Τέλος_Επανάληψης. Π3. ιάβασε ψ Αρχή_Επανάληψης Αν ψ mod 2=0 Τότε Γράψε Αρτιος Αλλιώς Γράψε Περιττός Τέλος_Αν ψ ψ+3 Μέχρις_Οτου ψ>20. Π4 ιάβασε ψ Αν ψ>0 Τότε χ ψ-3 Ψ χ-3 Αλλιώς Χ ψ-2 Τέλος_Αν Αρχή_Επανάληψης Γράψε χ+ψ ψ ψ-2 Μέχρις_Οτου χ+ψ<5 Κουτσοδόντης Ανέστης Σελίδα 30 1/4/2008
Ασκήσεις στην ΑΝάπτυξη Εφαρµογών 5. Να µετατραπούν τα τµήµατα Π3 και Π4 της προηγούµενης άσκησης σε ισοδύναµα µε την δοµή Όσο Επανάλαβε. 6. Να γίνουν τα διαγράµµατα ροής στα Π3, Π4 της προηγούµενη άσκησης. 7. Να µετατραπούν τα παρακάτω τµήµα προγραµµάτων(αλγορίθµων) σε ισοδύναµα χρησιµοποιώντας την δοµή επανάληψης Για..Απο..Μέχρι. Π1 Κ 5 Όσο Κ>=1 Επανάλαβε Γράψε Κ^2 Τέλος_Επανάληψης Π3 Σ 0 Κ -100 Όσο Κ>=-200 Επανάλαβε Σ Σ+Κ Γράψε Κ Π2 Λ 1 Όσο Λ<6 Επανάλαβε Μ Λ-2 Λ Λ+2 Τέλος_Επανάληψης Γράψε Λ, Μ Π4 Πλήθος 0 Λ 200 Όσο Λ<=500 Επανάλαβε Πλήθος Πλήθος+1 Λ Λ+50 Κ Κ-10 Τέλος_Επανάληψης Τέλος_Επανάληψης Γράψε Πλήθος Γράψε Σ 8. Τι θα εµφανίσουν τα παρακάτω τµήµατα προγραµµάτων: Π1 ΓΙΑ Χ ΑΠΟ 1 ΜΕΧΡΙ 10 Γράψε -χ Τέλος_Επανάληψης Π3. Χ 10 ΓΙΑ Ψ ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ ΒΗΜΑ 3 Αν Χ+Ψ>15 Τότε Ζ Χ+Ψ Αλλιώς Ζ Χ-Ψ Τέλος_Αν ΓΡΑΨΕ Χ,Ψ,Ζ. Π2. α -2 ΓΙΑ β ΑΠΟ -6 ΜΕΧΡΙ 0 ΜΕ ΒΗΜΑ -2 ΓΡΑΨΕ β-α Τέλος_Επανάληψης. Π4. Χ 2 ΓΙΑ Ψ ΑΠΟ Χ ΜΕΧΡΙ 10 ΜΕ ΒΗΜΑ Χ+2 ΓΡΑΨΕ Ψ ΓΡΑΨΕ Χ+Ψ=,Χ+Ψ. Κουτσοδόντης Ανέστης Σελίδα 31 1/4/2008
Ασκήσεις στην ΑΝάπτυξη Εφαρµογών 9. Να µετατραπούν τα τµήµατα Π3 και Π4 της προηγούµενης άσκησης σε ισοδύναµα µε την δοµή Όσο Επανάλαβε. 10. Να γίνουν τα διαγράµµατα ροής στα Π3, Π4 της προηγούµενη άσκησης. 11. Τι θα εµφανίσει το ακόλουθο τµήµα προγράµµατος και τι τιµές θα έχουν οι µεταβλητές α και β µετά το τέλος του προγράµµατος. Για ι Από 1 Μέχρι 3 α 10 β 5 Αρχή_Επανάληψης Αν α>5 Τότε Γράψε α^2 Αλλιώς Γράψε α+2 Τέλος_Αν α α-2 Μέχρις_Ότου α<β Τέλος_Επανάληψης 12. Τι θα εµφανίσουν τα παρακάτω τµήµατα προγραµµάτων, πόσες φορές θα εκτελεστούν και ποιες είναι οι τιµές των µεταβλητών α,β,γ,δ σε κάθε επανάληψη αν δοθούν σαν είσοδος οι αριθµοί 5,10: Π1 ιάβασε α,β γ α+5 δ β MOD 2 Όσο (α< β) και ΟΧΙ(β<0) ΕΠΑΝΑΛΑΒΕ α α+1 β β-1 γ δ DIV 3 δ β*2 Τέλος_Επανάληψης Γραψε α,β,γ+δ Π2. ιάβασε β,α Για ι Από 1 Μέχρι 3 α α+1 Τέλος_Επανάληψης γ α^2 δ β-2 Για ι Από 1 Μέχρι 5 Με_Βήµα 2 α α+ι β β-1 γ γ+δ δ α+β Τέλος_Επανάληψης Γράψε α,β,γ,δ. Κουτσοδόντης Ανέστης Σελίδα 32 1/4/2008