Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Ασκήσεις.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Ασκήσεις."— Μεταγράφημα παρουσίασης:

1 Ασκήσεις

2 Ασκήσεις με παραβίαση κριτηρίων
Σε αυτές τις ασκήσεις εξετάζουμε με τη σειρά: Περατότητα (εάν υπάρχει δομή επανάληψης) Καθοριστικότητα (εάν υπάρχει δομή επιλογής) Είσοδος, εάν π.χ. κάποιες μεταβλητές συμμετέχουν σε εκφράσεις και δεν έχουν πάρει προηγουμένως τιμή. Έξοδος, εάν π.χ. εμφανίζεται κάτι σε μια ομάδα εντολών μιας δομής επιλογής αλλά όχι σε μια άλλη της ίδιας επιλογής.

3 Παραβίαση κριτηρίων Δίνεται το παρακάτω τμήμα αλγορίθμου. Τι κριτήρια παραβιάζει; Να δικαιολογήσετε την απάντησή σας. Διάβασε Χ S <- 0 Όσο Χ<=7 επανάλαβε F <- (Χ^2+1)/(Χ-1) Εκτύπωσε F S <- S+ F Τέλος_επανάληψης Εκτύπωσε Χ, S ΑΠΑΝΤΗΣΗ Παραβιάζει το κριτήριο της περατότητας, διότι η μεταβλητή Χ δε μεταβάλλεται εντός της απανάληψης, άρα δεν αλλάζει η συνθήκη της Όσο. Παραβιάζει το κριτήριο της καθοριστικότητας, διότι αν χ= ο παρονομαστής Χ-1 γίνεται 0.

4 Μετατροπή από Όσο σε Μέχρις_ότου
Γ<-1 Πλ <-0 Διάβασε αριθμός Αν (αριθμός<>0) και (Πλ<10) τότε Αρχή_επανάληψης Γ<-Γ*αριθμός Πλ <- Πλ+1 Μέχρις_ότου (αριθμός=0) ή (Πλ=10) Τέλος_αν Εμφάνισε Γ Ο έλεγχος …Πλ<10 στην Αν ήταν περιττός στη συγκεκριμένη περίπτωση Γ<-1 Πλ <-0 Διάβασε αριθμός Όσο (αριθμός<>0) και (Πλ<10) επανάλαβε Γ<-Γ*αριθμός Πλ <- Πλ+1 Τέλος_επανάληψης Εμφάνισε Γ

5 Μετατροπή από Όσο σε Μέχρις_ότου
i  1 X  256 Αρχή_επανάληψης X  X / 2 i  i + 1 Μέχρις_ότου i>5 Ο έλεγχος Aν i<=5 πριν τη Μέχρις_ότου ήταν περιττός στη συγκεκριμένη περίπτωση αφού είναι βέβαιο ότι ισχύει την 1η φορά… i  1 X  256 Όσο (i <= 5) Επανέλαβε X  X / 2 i  i + 1 Τέλος_Επανάληψης

6 Μετατροπή από Μέχρις_ότου σε Όσο
Διάβασε κ Σ <- 0 Διάβασε α Σ <- Σ+α Όσο Σ<=κ επανάλαβε Τέλος_επανάληψης Τοποθετήσαμε της εντολές του βρόχου μια φορά πριν την Όσο, ώστε να εκτελεστούν τουλάχιστον μια φορά, όπως απαιτεί η Μέχρις_ότου… Διάβασε κ Σ <- 0 Αρχή_επανάληψης Διάβασε α Σ <- Σ+α Μέχρις_ότου Σ>κ Εμφανισε Σ

7 Μετατροπή από Όσο σε Για
X  0 Για i από 1 μέχρι 10 με_βήμα 2 X  X * i + 2 Τέλος_Επανάληψης Εμφάνισε X Παρατηρούμε την αρχική τιμή του μετρητή που βρίσκεται στην Όσο και την τελική του τιμή (με βάση τη συνθήκη) οι οποίες «συμμετέχουν» στις εντολές του βρόχου. Η μεταβολή του μετρητή εντός της Όσο γίνεται βήμα στη Για. i  1 X  0 Όσο (i <= 10) Επανέλαβε X  X * i + 2 i  i + 2 Τέλος_Επανάληψης Εμφάνισε X

8 Μετατροπή από Όσο σε Για
X  0 Για i από 20 μέχρι 1 με_βήμα -3 X  X + (i-3) Ψ  Χ * Χ Τέλος_Επανάληψης Εμφάνισε X, Ψ Παρατηρούμε ότι η μεταβολή του μετρητή i γίνεται στην αρχή της Όσο με αποτέλεσμα στις πράξεις παρακάτω να είναι ήδη μειωμένη η τιμή κατά 3 από αυτήν που ξεκινάει στην επανάληψη. Επομένως κάνουμε την παραπάνω αλλαγή στις εντολές, χωρίς να αλλάξουμε τη i αφού αλλάζει πριν το Τέλος_επανάληψης με την εντολή με_βήμα -3 i  20 X  0 Όσο (i > 0) Επανέλαβε i  i - 3 X  X + i Ψ  Χ * Χ Τέλος_Επανάληψης Εμφάνισε X, Ψ

9 Μετατροπή από Όσο σε Για
Υ  2 Για Χ από 1 μέχρι 25 με_βήμα 3 Υ  Χ + 4 Ζ  Υ + (Χ + 3) ^ 2 Τέλος_επανάληψης Εμφάνισε Ζ Η αλλαγή στην τελευταία εντολή του βρόχου γίνεται για παρόμοιους λόγους με την προηγούμενη άσκηση. Y 2 X  1 Όσο X<=25 Επανάλαβε ΥΧ+4 ΧΧ+3 ΖΥ+Χ^2 Τέλος_επανάληψης Εμφάνισε Ζ

10 Μετατροπή από Αρχή_επανάληψης σε Για
Εντολές1 i  2 Αρχή_επανάληψης Εντολές2 ii+2 Μέχρις_ότου i=12 Εντολές3 Εντολές1 Για i από 2 μέχρι 10 με_βήμα 2 Εντολές2 Τέλος_επανάληψης Εντολές3 Παρατηρούμε ότι ο μετρητής μεταβάλλεται κατά 2 και γι’ αυτό έχουμε με_βήμα 2. Επιπλέον έχουμε μέχρι 10, διότι για i=12 η επανάληψη σταματάει σύμφωνα με τον αλγόριθμο της εκφώνησης. Εναλλακτικά, μετατρέπουμε σε Όσο και από την Όσο πάμε στη Για.

11 Μετατροπή από Αρχή_επανάληψης σε Για
Χ  Α Αρχή_επανάληψης ΧΧ+2 Εκτύπωσε Χ Μέχρις_ότου Χ>=Μ Εκτύπωσε Α+2 !για την περίπτωση Α>Μ Για Χ από Α+4 μέχρι Μ+1 με_βήμα 2 Εκτύπωσε Χ Τέλος_επανάληψης Παρατηρούμε ότι ο μετρητής μεταβάλλεται κατά 2 και γι’ αυτό έχουμε με_βήμα 2. Όμως μεταβάλλεται στην αρχή, οπότε εκτυπώνεται η νέα του πλέον τιμή εντός του βρόχου (η 1η τιμή που εκτυπώνεται είναι η Α+2, μετά η Α+4 κλπ). Για το λόγο αυτό ξεκινάμε από Α+2. Επειδή τερματίζει η επανάληψη όταν Χ>=Μ έχουμε μέχρι Μ+1 για να καλύψουμε κάθε περίπτωση τιμών Α και Μ.

12 Μετατροπή από Για σε Όσο και Μέχρις_ότου
α ← 0 i ← 100 Όσο i>=1 επανάλαβε α ← α + 2^i Εκτύπωσε α i ← i- 2 Τέλος_επανάληψης Αρχή_επανάληψης !είναι περιττός ο α ← α + 2^i !έλεγχος Αν i>=1 Εκτύπωσε α !πριν την Αρχή_.... Μέχρις_ότου i<1 α ← 0 Για i από 100 μέχρι 1 με_βήμα -2 α ← α + 2^i Εκτύπωσε α Τέλος_επανάληψης

13 Άκηση με Πίνακα Τιμών Χ Υ Ζ Ι Εκτυπώνεται 3 4 2 7, 8 6 10, 8 1 7 8 9
9 10 12 13 14

14 Άκηση με Πίνακα Τιμών

15 Πίνακας Τιμών Εντολές Μνήμη Επανάληψη Α Β Γ Χ Υ Σ 1 A  13 13 2 B  Α – 12 3 Γ  Α mod Β 4 X  όχι Ψευδής Αληθής 5 Αν Χ <> Ψευδής τότε Σ  0 Υ  10 αλλιώς Α  10 Τέλος_Αν 10 6 Σ  1 i  4 Όσο i <= επανάλαβε Σ  Σ + i i  i + 4 Τέλος_επανάληψης 25 7 Γ  1 Για i από 13 μέχρι με_βήμα 10 Γ  Γ + i 14 37 Για τις εντολές 1, 6 και 7 να συμπληρώσετε με σταθερές τιμές. Για την εντολή 4 να συμπληρώσετε με τελεστή και για τις 2, 3, 5 εντολές να συμπληρώσετε με μεταβλητές.

16 Εντολές Μνήμη Επανάληψη Α Β Γ Χ Υ Σ 1 A  13 13 2 B  Α – 12 3 Γ  Α mod Β 4 X  όχι Ψευδής Αληθής 5 Αν Χ <> Ψευδής τότε Σ  0 Υ  10 αλλιώς Α  10 Τέλος_Αν 10 6 Σ  1 i  4 Όσο i <= επανάλαβε Σ  Σ + i i  i + 4 Τέλος_επανάληψης 25 7 Γ  1 Για i από 13 μέχρι με_βήμα 10 Γ  Γ + i 14 37

17 Πίνακες τιμών με Υποπρογράμματα
Πρόγρ. Διαδ1 Συν1 α β χ λ κ μ ε ζ Εμφανίζεται 1 2 4, 3, 7 7, 4, 11 4 3 7 7, 4, 20 20 11 14 6 ΠΡΟΓΡΑΜΜΑ Κλήση_Υποπρογραμμάτων ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: α, β, χ ΑΡΧΗ α <-1 β <- 2 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ α<= 4 ΤΟΤΕ ΚΑΛΕΣΕ Διαδ1(α, β, χ) ΑΛΛΙΩΣ χ <- Συν1(α, β) ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ α, β, χ ΜΕΧΡΙΣ_ΟΤΟΥ χ>11 ΓΡΑΨΕ χ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Διαδ1 (λ, κ, μ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: κ, λ, μ ΑΡΧΗ κ <- κ+1 λ <- λ+3 μ <- κ+λ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΣΥΝΑΡΤΗΣΗ Συν1(ε, ζ): ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ε, ζ ΑΡΧΗ ζ <- ζ+2 ε <- ε*2 Συν1 <- ε+ζ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Να γράψετε στο τετράδιό σας τις τιμές που θα εμφανιστούν κατά την εκτέλεση του προγράμματος.

18 Λύση Πρόγραμμα Διαδ1 Συν1 α β χ λ κ μ ε ζ Εμφανίζεται 1 2 4, 3, 7
7, 4, 11 4 3 7 7, 4, 20 20 11 14 6

19 Σημαντικά στα υποπρογράμματα
Όταν έχουμε επιστροφή από διαδικασία ΠΑΝΤΑ θα επιστρέφουμε τις τιμές των τυπικών παραμέτρων στις αντίστοιχες πραγματικές, αφού Η ΔΙΑΔΙΚΑΣΙΑ ΜΟΝΟ ΕΠΙΣΤΡΕΦΕΙ ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕΣΩ ΠΑΡΑΜΕΤΡΩΝ. Το παραπάνω ΔΕΝ ΙΣΧΥΕΙ ΓΙΑ ΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ. Οι ΣΥΝΑΡΤΗΣΕΙΣ ΔΕΝ ΕΠΙΣΤΡΕΦΟΥΝ ΤΙΜΕΣ μέσω των παραμέτρων.

20 Από Δ.Ρ. σε κώδικα Αλγόριθμος Φοιτητές_Ετος
s1 <- 0 s2 <- 0 s3 <- 0 Για i από 1 μέχρι 200 Διάβασε Ε Αν Ε = 1 τότε s1 <- s1+1 αλλιώς_αν Ε = 2 τότε s2 <- s2+1 αλλιώς_αν Ε = 3 τότε s3 <- s3+1 Τέλος_αν Τέλος_επανάληψης Εκτύπωσε s1, s2, s3 Τέλος Φοιτητές_Ετος

21 Από Δ.Ρ. σε κώδικα (εναλλακτικά)
Αλγόριθμος Φοιτητές_Ετος s1 <- 0 s2 <- 0 s3 <- 0 i<- 1 Όσο i <= 200 επανάλαβε Διάβασε Ε Αν Ε = 1 τότε s1 <- s1+1 αλλιώς_αν Ε = 2 τότε s2 <- s2+1 αλλιώς_αν Ε = 3 τότε s3 <- s3+1 Τέλος_αν I <- i+1 Τέλος_επανάληψης Εκτύπωσε s1, s2, s3 Τέλος Φοιτητές_Ετος

22 Από Δ.Ρ. σε κώδικα

23

24

25

26 Από κωδικοποίηση σε Δ.Ρ.

27

28 Άσκηση με άγνωστο πλήθος επαναλήψεων (34.18)
Στην παρακάτω άσκηση η επανάληψη εξαρτάται (κατά το ένα μέρος) από μια τιμή που διαβάζεται επαναληπτικά.

29 Αλγόριθμος Εταιρεία Έπιβάτες <- 0 Σύνολο <- 0 Διάβασε όνομα Όσο (όνομα <> ‘’τέλος’’) και (Επιβάτες < 2500) επανάλαβε Διάβασε κωδικός Αν κωδικός = ‘’Κ’’ τότε κόστος <- 45 Αλλιώς_αν (κωδικός = ‘’Σ’’) ή (κωδικός = ‘’Π’’) τότε κόστος <- 26 Αλλιώς κόστος <- 32 Τέλος_αν Επιβάτες <- Επιβάτες + 1 Σύνολο <- Σύνολο + κόστος Εκτύπωσε ‘’Κόστος εισιτηρίου: ‘’, κόστος Τέλος_επανάληψης Εκτύπωσε ‘’Εισπράξεις: ‘’, Σύνολο Εκτύπωσε ‘’Πλήθος επιβατών:’’, Επιβάτες Τέλος Εταιρεία

30

31 Άσκηση με άγνωστο πλήθος επαναλήψεων (34.20)
Στην παρακάτω άσκηση η επανάληψη δεν εξαρτάται από κάτι που διαβάζεται επαναληπτικά. Η ποσότητα που επηρεάζει την επανάληψη μεταβάλλεται κατάλληλα εντός αυτής.

32 Αλγόριθμος Εγκυκλοπαίδεια  ποσό <- 1  χρήματα <- 0  μέρες <- 0  Όσο χρήματα < 200 και μέρες < 30 επανάλαβε      μέρες <- μέρες + 1      χρήματα <- χρήματα + ποσό      ποσό <- ποσό + 0.5  Τέλος_επανάληψης  Αν χρήματα < 200 τότε     Εμφάνισε "Απομένουν: ", 200 - χρήματα  Αλλιώς     Εμφάνισε "Ημέρες: ", μέρες     Εμφάνισε "Περισσεύει ποσό: ", χρήματα - 200  Τέλος_αν  μέσο <- χρήματα / μέρες  Εμφάνισε "Ποσό ημερησίως: ", μέσο Τέλος Εγκυκλοπαίδεια

33

34 Επαναληπτική άσκηση στη δομή επανάληψης (max, min κλπ)
Ένας επιχειρηματίας αποφάσισε να διαθέσει ένα σημαντικό ποσό για φιλανθρωπικούς σκοπούς αγοράζοντας πακέτα ρύζι. Να γίνει αλγόριθμος που: Α) θα διαβάζει το ποσό που θέλει να διαθέσει ο επιχειρηματίας Β) θα διαβάζει επαναληπτικά τη μάρκα και την τιμή του κάθε πακέτου Γ) θα εμφανίζει τη μάρκα του πιο ακριβού πακέτου Δ) θα εμφανίζει την τιμή του πιο φτηνού πακέτου Ε) θα υπολογίζει και θα εμφανίζει πόσα πακέτα ρύζι κόστιζαν πάνω από 2 €. ΣΤ) θα εμφανίζει πόσα πακέτα ρύζι αγόρασε συνολικά ο επιχειρηματίας Ζ) θα εμφανίζει μήνυμα «Εξάντλησε όλο το ποσό» αν δεν περίσσεψαν καθόλου χρήματα. Ο αλγόριθμος τερματίζει όταν εξαντληθεί όλο το ποσό ή όταν δεν φτάνει για να αγοράσει και άλλο πακέτο ή όταν δοθεί αρνητική τιμή.

35

36 Αλγόριθμος Φιλανθρωπία Αρχή_επανάληψης Διάβασε ποσό Μέχρις_ότου ποσό > 0 Έξοδα <- 0 πακέτα <- 0 πακέτα_2 <- 0 max <- -1 !μια πολύ μικρή τιμή min < !μια πολύ μεγάλη τιμή Διάβασε τιμή Όσο Έξοδα + τιμή <= ποσό και τιμή >= 0 επανάλαβε Διάβασε μάρκα πακέτα <- πακέτα + 1 Αν τιμή > max τότε max <- τιμή maxM <- μάρκα Τέλος_αν Αν τιμή < min τότε min <- τιμή Έξοδα <- Έξοδα + τιμή Αν τιμή > 2 τότε πακέτα_2 <- πακέτα_2 + 1 Διάβασε τιμή Τέλος_επανάληψης Αν Έξοδα = ποσό τότε Εμφάνισε ‘’Εξαντλήθηκε όλο το ποσό’’ Τέλος_αν Εμφάνισε ‘’Πλήθος πακέτων με κόστος μεγαλύτερο των 2 € : ‘’, πακέτα_2 Αν πακέτα > 0 τότε !δικλείδα ασφαλείας για max, min… Εμφάνισε ‘’Η μάρκα του πιο ακριβού: ‘’, maxM Εμφάνισε ‘’Η τιμή του πιο φτηνού:’’, min Τέλος Φιλανθρωπία

37 Δομή επανάληψης – χρήση div και mod (35.20)
Αλγόριθμος Αποταμίευση αποτ <- 0 μ <- 0 Όσο αποτ < επανάλαβε αποτ <- αποτ + 30*2*2.70 μ <- μ+1 Αν μ mod 12 = 4 τότε !Απρίλιος Διάβασε ΔώροΠ αποτ <- αποτ + ΔώροΠ Αλλιώς_αν μ mod 12 = 0 τότε !Δεκέμβριος Διάβασε ΔώροΧ αποτ <- αποτ + ΔώροΧ αποτ <- αποτ *αποτ Τέλος_αν Τέλος_επανάληψης έτη <- μ div 12 μήνες <- μ mod 12 Εμφάνισε "Το ποσό συγκεντρώνεται σε: ", έτη, "έτη και: ", μήνες, "μήνες." Τέλος Αποταμίευση

38 Εύρεση των 2 μικρότερων τιμών σε άγνωστο πλήθος αριθμών (με γνωστό εύρος των τιμών π.χ. 0-20)
Αλγόριθμος Δύο_Μικρότεροι low1 <- 22 low2 <- 22 Διάβασε χ Όσο χ <> -1 επανάλαβε Αν χ < low1 τότε low2 <- low1 low1 <- χ Αλλιώς_αν χ < low2 και χ<>low1 τότε low2 <- χ Τέλος_αν Τέλος_επανάληψης Αν low1 <> 22 τότε Εμφάνισε low1 Αν low2 <> 22 τότε Εμφάνισε low2 Τέλος_αν Τέλος Δύο_Μικρότεροι Παρατηρήσεις: Εκτελέστε τον αλγόριθμο π.χ για τις εξής τιμές: 6, 4, 7, 2, 5, 3, 2, 3, 2, 1 Με παρόμοιο τρόπο εντοπίζουμε τις 2 μεγαλύτερες τιμές. Παρόμοια για περισσότερες Min/max τιμές. Ο αλγόριθμος καλύπτει και ισοβαθμίες

39 Άσκηση 35.12 (ΔΕ4 κεφ 8 τετράδιο μαθητή)

40 Ταξινόμηση Φυσαλίδας Στον πίνακα  Α εφαρμόζεται  φθίνουσα ταξινόμηση σύμφωνα με τον αλγόριθμο φυσαλίδας. Στον αλγόριθμο αυτό θεωρούμε ότι ο εξωτερικός  βρόχος χρησιμοποιεί τη μεταβλητή Ι και ο εσωτερικός τη μεταβλητή J.  Να συμπληρώσετε τον ακόλουθο πίνακα τιμών για τις μεταβλητές και τα στοιχεία του πίνακα.

41 Επαναληπτική άσκηση στους πίνακες
Ένα δάσκαλος οδήγησης θέλει να οργανώσει τις ώρες μαθήματος και τους πελάτες που έχει. Έτσι αναθέτει σε εσάς έναντι μεγάλης αμοιβής να γράψετε πρόγραμμα το οποίο θα εκτελεί τις παρακάτω λειτουργίες: Α) θα διαβάζει τα ονόματα των 120 πελατών του γραφείου και θα τα καταχωρεί σε μονοδιάστατο πίνακα Β) θα διαβάζει τις ώρες μαθήματος ανά ημέρα κατά τη διάρκεια του Απριλίου (χ30) για κάθε πελάτη και θα τις καταχωρεί σε δισδιάστατο πίνακα, αφού πρώτα ελέγξει ότι είναι θετικός αριθμός. Γ) Θα υπολογίζει και θα εμφανίζει τις συνολικές ώρες μαθήματος για κάθε περιττή ημέρα του μήνα. Δ) θα υπολογίζει και θα εμφανίζει πόσες ημέρες ο κάθε πελάτης δεν έκανε καθόλου μάθημα. Ε) θα εμφανίζει το όνομα ή τα ονόματα των πελατών με τις περισσότερες μέρες χωρίς μάθημα. ΣΤ) θα εμφανίζει ανά πελάτη ποια ημέρα πραγματοποίησε τις περισσότερες ώρες μάθημα Ζ) θα καταχωρεί σε νέο πίνακα τα ονόματα των πελατών με τις μηδενικές συνολικά ώρες μάθημα. Η) θα ταξινομεί και θα εμφανίζει κατά αλφαβητική σειρά τα ονόματα των παραπάνω πελατών.

42 Αλγόριθμος Σχολή Για i από 1 μέχρι 120 Διάβασε ΟΝ[i] Για j από 1 μέχρι 30 Αρχή_επανάληψης Διάβασε Ω[i, j] Μέχρις_ότου Ω[i, j] >= 0 Τέλος_επανάληψης Για j από 1 μέχρι 30 με_βήμα 2 !με ημέρες, άρα στήλες S← 0 S←S + Ω[i, j] Εμφάνισε ‘’Συνολικές ώρες μήνα:’’, S Τέλος_Επανάληψης Για i από 1 μέχρι 120 !πελάτες, άρα γρ… πλ← 0 Αν Ω[i, j] = 0 τότε πλ←πλ + 1 Εμφάνισε ‘’Μέρες χωρίς μάθημα:’’, πλ ΧΜ[i] <- πλ !τα χρειαζόμαστε σε επόμενο ερ… Στο Ε ερώτημα ζητάει αυτούς με τις περισσότερες μέρες χωρίς μάθημα. Άρα θα βρούμε το max στον XM και στη συνέχεια θα τον ξαναδιατρέξουμε και όπου το βρούμε θα εμφανίζουμε το αντίστοιχο όνομα ON[i] maxXM[1] Για i από 1 μέχρι 120 Αν max < XM[i] τότε max  XM[i] Τέλος_αν Τέλος_επανάληψης Αν max = XM[i] τότε εμφάνισε ΟΝ[i]

43 Για i από 1 μέχρι 120 !πελάτες, άρα γρ… max  -1 Για j από 1 μέχρι 30 Αν Αν max < Ω[i, j] τότε max <- Ω[i, j] Ημέρα <- j !βοηθητική αφού μας ζητάει ποια ημέρα… Τέλος_επανάληψης Εμφάνισε ‘’Η ημέρα με τις περισσότερες ώρες χωρίς μάθημα’’, Ημέρα Τέλος_Επανάληψης κ <- 0 Για i από 1 μέχρι 120 Αν XM[i] = 30 τότε κ <- κ + 1 Μ[κ] <- ΟΝ[i] Τέλος_αν Για i από 2 μέχρι 200 Για j από 200 μέχρι i με_βήμα -1 Αν Μ[j] < Μ[j-1] τότε Αντιμετάθεσε ΣΠ[j], ΣΠ[j-1] Δημιουργούμε νέο πίνακα. Αν γράφαμε πρόγραμμα θα δηλώναμε τον πίνακα Μ με το μέγιστο δυνατό πλήθος, δηλαδή: ΧΑΡΑΚΤΗΡΕΣ: Μ[120] Για i από 1 μέχρι 120 Εμφάνισε Μ[i] Τέλος_επανάληψης Τέλος Σχολή Σε πρόγραμμα: temp <- Μ[j] M[j] <- M[j-1] M[j-1] <- temp

44

45

46

47 Άσκηση στους πίνακες Οι 100 μαθητές της Γ λυκείου βαθμολογούνται σε 15 μαθήματα. Να γραφεί αλγόριθμος ο οποίος: Α) Θα διαβάζει τα ονόματα 100 μαθητών και θα τα καταχωρεί σε πίνακα ΟΝ[100]. Στη συνέχεια θα διαβάζει το βαθμό κάθε μαθητή στα 15 μαθήματα και θα καταχωρεί τις βαθμολογίες σε πίνακα Β[100,15]. Β) Θα διαβάζει το όνομα ενός μαθητή και θα εμφανίζει το μέσο όρο βαθμολογίας του. Εάν δεν υπάρχει ο μαθητής να εμφανίζεται κατάλληλο μήνυμα Γ) Θα εμφανίζει τα ονόματα των μαθητών που έχουν τις περισσότερες πρωτιές στα μαθήματα. (Λάβετε υπόψη ότι πολλοί μαθητές μπορεί να έχουν τον ίδιο βαθμό σε ένα μάθημα).

48 Αν βρέθηκε = Αληθής τότε S← 0 Για j από 1 μέχρι 15 S←S + B[pos, j]
Στο Β ερώτημα θα πρέπει να κάνουμε κάτι για το μαθητή του οποίου το όνομα διαβάσαμε (στην όνομα). Συγκεκριμένα θα πρέπει να ασχοληθούμε με τους βαθμούς του, άρα με κάποια γραμμή. Με ποια γραμμή όμως; Με αυτήν που αντιστοιχεί στο όνομά του. Άρα θα πρέπει να αναζητήσουμε αρχικά το όνομα που διαβάσαμε στον πίνακα ΟΝ. Αλγόριθμος Μαθητές Για i από 1 μέχρι 100 Διάβασε ΟΝ[i] Για j από 1 μέχρι 15 Διάβασε Β[i, j] Τέλος_επανάληψης Διάβασε όνομα i ← 1 βρέθηκε ← Ψευδής Όσο (i <= 100) και (βρέθηκε = Ψευδής) επανάλαβε Αν ΟΝ[i] = όνομα τότε βρέθηκε ← Αληθής pos← i Αλλιώς i ← i + 1 Τέλος_Αν Τέλος_Επανάληψης !Αν υπάρχει ο μαθητής που δόθηκε θα βρίσκεται Στη θέση pos, άρα και στην pos γραμμή Αν βρέθηκε = Αληθής τότε S← 0 Για j από 1 μέχρι 15 S←S + B[pos, j] Τέλος_επανάληψης MO <- S / 15 Εμφάνισε ‘’Μέσος όρος:’’, ΜΟ Αλλιώς Εμφάνισε ‘’Δεν υπάρχει ο μαθητής που δόθηκε’’ Τέλος_αν

49 Για i από 1 μέχρι 100 Πλ[i] <- 0 Τέλος_επανάληψης Για j από 1 μέχρι 15 !μαθήματα, άρα στήλες… max  -1 Αν max < B[i, j] τότε max <- B[i, j] Αν max = B[i, j] τότε !βρήκαμε κάποιον Πλ[i] <- Πλ[i] +1 !με πρωτιά στο μάθημα αυτό Τέλος_Επανάληψης maxΠλ[1] Για i από 1 μέχρι 100 Αν max < Πλ[i] τότε max  Πλ[i] Τέλος_αν Αν max = Πλ[i] τότε Εμφάνισε ΟΝ[i] Στο Γ ερώτημα θα πρέπει να διατρέξουμε τις στήλες του Β, αφού θα πρέπει να βρούμε το Max σε κάθε μάθημα. Στη συνέχεια όπου το εντοπίσουμε στη στήλη (άρα τη ξαναδιατρέχουμε) θα αυξάνουμε κατά 1 το μετρητή των πρωτιών του μαθητή που εντοπίστηκε (δηλαδή της γραμμή i). Άρα χρειαζόμαστε και έναν πίνακα 100 μετρητών Πλ, όσοι είναι και οι μαθητές. Στο τέλος βρίσκουμε το max στον Πλ και όπου το συναντήσουμε πλέον εμφανίζουμε το αντίστοιχο όνομα. Τέλος Μαθητές

50

51

52 Εύρεση των 2 μικρότερων τιμών σε πίνακα που έχει όλες τις τιμές διαφορετικές
Αλγόριθμος Δύο_Μικρότεροι Δεδομένα // Μ // low1 <- M[1] pos <- 1 Για i από 2 μέχρι 50 Αν M[i] < low1 τότε low1 <- M[i] pos <- i Τέλος_αν Τέλος_επανάληψης Αν pos <> 1 τότε low2 <- M[1] αλλιώς low2 <- M[2] Για i από 2 μέχρι 50 Αν (i <> pos και M[i] < low2) τότε low2 <- M[i] Τέλος_αν Τέλος_επανάληψης Αποτελέσματα // low1, low2 // Τέλος Δύο_Μικρότεροι Παρατηρήσεις: Εκτελέστε τον αλγόριθμο π.χ για τις εξής τιμές: 6, 4, 7, 2, 5, 3 Με παρόμοιο τρόπο εντοπίζουμε τις 2 μεγαλύτερες τιμές του table. Σε περίπτωση ίδιων τιμών (γενική περίπτωση) θα ακολουθήσουμε τη γνωστή τακτική με τις ισοβαθμιές, αφού αρχικά κάνουμε ταξινόμηση…

53 Εύρεση των 2 μικρότερων τιμών σε πίνακα που πιθανόν έχει ίδιες τιμές
Εύρεση των 2 μικρότερων τιμών σε πίνακα που πιθανόν έχει ίδιες τιμές Αν stop = Αληθής τότε Εμφάνισε ‘’Η 2η μικρότερη τιμή: ’’, Μ[pos] Αλλιώς Εμφάνισε ‘’Οι τιμές είναι όλες ίσες’’ Τέλος_αν Τέλος Δύο_Μικρότεροι Αλγόριθμος Δύο_Μικρότεροι Δεδομένα // Μ // Αύξουσα ταξινόμηση στον Μ… Εμφάνισε ‘’Η μικρότερη τιμή: ‘’, Μ[1] stop ← Ψευδής ! Ψάχνουμε να βρούμε την επόμενη μικρότερη τιμή μετά την 1η. i ← 1 Όσο (i <= 50) και (stop = Ψευδής) επανάλαβε Αν Μ[i] <> Μ[1] τότε stop ← Αληθής pos← i Αλλιώς i ← i + 1 Τέλος_Αν Τέλος_επανάληψης Αν μας ζητούσαν μόνο τη 2η μικρότερη τιμή, απλά δεν θα εμφανίζαμε το Μ[1]… Αν μας ζητούσαν και την 3η μικρότερη θα γράφαμε και πάλι τον διπλανό κώδικα, αλλά στη σύγκριση θα είχαμε M[i] <> M[pos], αφού το M[pos] όπως προέκυψε έχει τη 2η μικρότερη…

54 Συγχώνευση 2 ταξινομημένων πινάκων
ΠΡΟΓΡΑΜΜΑ Συγχώνευση ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:Α[100], Β[100], Γ[200], Ι, J, Κ, Ν, Μ, Λ ΑΡΧΗ ΓΡΑΨΕ ‘Δώσε το πλήθος των στοιχείων του πίνακα Α (<100)’ ΔΙΑΒΑΣΕ Ν ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΔΙΑΒΑΣΕ Α[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ‘Δώσε το πλήθος των στοιχείων του πίνακα Β(<100)’ ΔΙΑΒΑΣΕ Μ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Μ ΔΙΑΒΑΣΕ Β[Ι]

55 Συγχώνευση πινάκων. Ι είναι ο δείκτης για τον πίνακα Α
! Συγχώνευση πινάκων ! Ι είναι ο δείκτης για τον πίνακα Α ! J είναι ο δείκτης για τον πίνακα Β ! Κ είναι ο δείκτης για τον πίνακα Γ Ι <- 1 J <- 1 K <- 1 ΟΣΟ Ι <= Ν ΚΑΙ J <= Μ ΕΠΑΝΑΛΑΒΕ ! Όσο και τα δύο έχουν στοιχεία ΑΝ Α[Ι] < Β[J] ΤΟΤΕ Γ[Κ] <- Α[Ι] Κ <- Κ+1 Ι <- Ι+1 ΑΛΛΙΩΣ Γ[Κ] <- Β[J] J <- J +1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

56 Μεταφορά των υπολοίπων στοιχείων του Α ή του Β ΑΝ Ι > Ν ΤΟΤΕ
! Μεταφορά των υπολοίπων στοιχείων του Α ή του Β ΑΝ Ι > Ν ΤΟΤΕ !Μπήκαν όλα τα στοιχεία του Α, άρα πρέπει να μπουν του Β ΓΙΑ Λ ΑΠO Κ ΜΕΧΡΙ Ν+Μ Γ[Λ] <- Β[J] J <- J +1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΛΛΙΩΣ ! Μπήκαν όλα τα στοιχεία του Β, άρα πρέπει να μπουν του Α Γ[Λ] <- Α[Ι] Ι <- Ι+1 ΤΕΛΟΣ_ΑΝ ! Εκτύπωση τελικού πίνακα ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ Ν+Μ ΓΡΑΨΕ Γ[Λ] ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Συγχώνευση

57 Εύρεση της επικρατούσας τιμής σε πίνακα
Αν το εύρος των τιμών είναι γνωστό, π.χ. ακέραιοι βαθμοί από 1 έως 20 έχουμε: Αλγόριθμος Επικρατούσα_τιμή Δεδομένα //N// Για i από 1 μέχρι 20 ΠΛ[i] <- 0 Τέλος_επανάληψης Για i από 1 μέχρι Ν Διάβασε Π[i] δείκτης <- Π[i] ΠΛ[δείκτης] <- ΠΛ[δείκτης] + 1 max <- ΠΛ[1] Επικρατούσα <- 1 Για i από 2 μέχρι 20 Αν max < ΠΛ[i] τότε max <- ΠΛ[i] Επικρατούσα <- i Τέλος_αν Τέλος_επανάληψης Εμφάνισε Επικρατούσα Τέλος Επικρατούσα_τιμή

58 Εύρεση της επικρατούσας τιμής σε πίνακα
...... !Στη συνέχεια βρίσκουμε πόσες φορές παρουσιάζεται κάθε τιμή του Νέος στον Π... !και εκχωρούμε το πλήθος σε έναν άλλο πίνακα ΠΛ Για i από 1 μέχρι κ φορές <- 0 Για j από 1 μέχρι Ν Αν Π[ j ] = Νέος[i] τότε φορές <- φορές + 1 Τέλος_αν Τέλος_επανάληψης ΠΛ[i] <- φορές !Υπολογίζουμε το max στον Πλ κρατώντας σε βοηθητική την αντίστοιχη !τιμή από τον Νέος... Τέλος Επικρατούσα_τιμή Αν το εύρος των τιμών είναι άγνωστο έχουμε: Αλγόριθμος Επικρατούσα_τιμή Δεδομένα //N// Για i από 1 μέχρι Ν Διάβασε Π[i] Τέλος_επανάληψης !στη συνέχεια εύρεση και τοποθέτηση των μοναδικών τιμών του Π σε νέο πίνακα Νέος. …Ταξινόμηση π.χ. αύξουσα και : κ<-1 Νέος[κ] <- Π[1] Για i από 2 μέχρι Ν Αν Π[i] <> Π[i-1] τότε κ <- κ+1 Νέος[κ] <- Π[i] Τέλος_αν

59 Φυσαλίδα σε πίνακα και αντιμετάθεση σε δισδιάστατο
Αλγόριθμος Φυσαλίδα Δεδομένα // Ν, Table, Π// !έστω ότι ο Π είναι δισδιάστατος Ν γραμμών και 2 στηλών Για i από 2 μέχρι Ν Για j από N μέχρι i με_βήμα -1 Αν (Table[j] < Table [j-1]) τότε temp  Table [j] Table [j]  Table [j-1] Table [j-1]  temp Αντιμετάθεσε Π[j-1, 1], Π[j, 1] !Γίνεται αντιμετάθεση ολόκληρων Αντιμετάθεσε Π[j-1, 2], Π[j, 2] !των γραμμών j, j-1. Οι δείκτες Τέλος_Αν ! J, j-1 αντιστοιχούν εδώ στις j, j-1 Τέλος_Επανάληψης ! γραμμές Τέλος_Επανάληψης Αποτελέσματα //Table, Π// Τέλος Φυσαλίδα

60 Να γραφεί αλγόριθμος ο οποίος να συγκρίνει 2 μονοδιάστατους πίνακες Α[Ν] και Β[Ν], και να εκτυπώνει το μήνυμα “ΙΣΟΙ” αν όλα τα στοιχεία τους είναι ένα προς ένα ίσα, διαφορετικά να εκτυπώνει το μήνυμα “ΟΧΙ ΙΣΟΙ”. Αλγόριθμος Σύγκριση_πινάκων Δεδομένα //Α, Β, Ν// ίσοι <- Αληθής i <- 1 Όσο (i <= N) και (ίσοι = Αληθής) επανέλαβε Αν (Α[i] <> B[i]) τότε ίσοι <- Ψευδής Αλλιώς i <- i + 1 Τέλος_Αν Τέλος_Επανάληψης Αν (ίσοι = Αληθής) τότε Γράψε ‘Οι 2 πίνακες είναι ίσοι’ Γράψε ‘Οι 2 πίνακες δεν είναι ίσοι’ Τέλος Σύγκριση_πινάκων Πως θα γινόταν με συνάρτηση ο έλεγχος για το αν είναι ή όχι οι 2 πίνακες ίσοι (δηλαδή να επιστρέφει Αληθής ή ψευδής); Συνάρτηση ΙΣΟΤΗΤΑ (Α, Β): Λογική Μεταβλητές Ακέραιες: Α[10], Β[10], i Λογικές: ίσοι Αρχή ίσοι <- Αληθής i <- 1 Όσο (i <= N) και (ίσοι = Αληθής) επανάλαβε Αν (Α[i] <> B[i]) τότε ίσοι <- Ψευδής Αλλιώς i <- i + 1 Τέλος_Αν Τέλος_Επανάληψης ΙΣΟΤΗΤΑ <- ίσοι Τέλος_Συνάρτησης

61 Μετατροπή από μη δομημένο κώδικα σε δομημένο
ΑΡΧΗ ΟΣΟ συνθήκη1 ΕΠΑΝΑΛΑΒΕ Εντολή 2 ΑΝ συνθήκη3 ΤΟΤΕ Εντολή4 Πήγαινε στο Τέλος ΑΛΛΙΩΣ Εντολή5 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ Stop <- Ψευδής ΟΣΟ συνθήκη1 και Stop = Ψευδής ΕΠΑΝΑΛΑΒΕ Εντολή 2 ΑΝ συνθήκη3 ΤΟΤΕ Εντολή4 Stop <- Αληθής ΑΛΛΙΩΣ Εντολή5 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

62 Μετατροπή από μη δομημένο κώδικα σε δομημένο
ΑΡΧΗ ΑΝ συνθήκη1 ΤΟΤΕ Εντολή1 ΑΝ συνθήκη2 ΤΟΤΕ Εντολή2 Εντολή3 Πήγαινε στην Εντολή5 ΤΕΛΟΣ_ΑΝ Εντολή4 Εντολή5 Πήγαινε στην Αρχή Εντολή6 ΤΕΛΟΣ Όσο συνθήκη1 επανάλαβε Εντολή1 ΑΝ συνθήκη2 ΤΟΤΕ Εντολή2 Εντολή3 Αλλιώς Εντολή4 Τέλος_αν Εντολή5 Τέλος_επανάληψης Εντολή6

63 Άσκηση στα υποπρογράμματα με άγνωστο πλήθος επαναλήψεων
Άσκηση /σελ. 331

64 Όσο Διάρκεια <> -1 επανάλαβε χρέωση <- Υπολογισμός(Διάρκεια)
ΠΡΟΓΡΑΜΜΑ κλήσεις ΣΤΑΘΕΡΕΣ πάγιο = 10 ΦΠΑ = 0.19 πάγιο_κλήσης = 0.01 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Διάρκεια, πλήθος, πλήθος_3 ΠΡΑΓΜΑΤΙΚΕΣ: Σύνολο ΑΡΧΗ Σύνολο <- 0 πλήθος <- 0 πλήθος_3 <- 0 Διάβασε Διάρκεια Όσο Διάρκεια <> -1 επανάλαβε χρέωση <- Υπολογισμός(Διάρκεια) Σύνολο <- Σύνολο + χρέωση + πάγιο_κλήσης πλήθος <- πλήθος+1 Αν Διάρκεια > 180 τότε πλήθος_3 <- πλήθος_3 + 1 Τέλος_αν Τέλος_επανάληψης Αν ζητούνταν (ή θέλαμε) η λειτουργία που γίνεται με συνάρτηση να γίνε με διαδικασία, τότε θα χρειαζόμασταν 2 παραμέτρους, μια για την είσοδο των δεδομένων (Διάρκεια) και μια για την επιστροφή του αποτελέσματος (χρέωση). Οπότε στη θέση αυτής της γραμμής θα είχαμε απλά: ΚΑΛΕΣΕ Υπολογισμός (Διάρκεια, χρέωση)

65 Σύνολο <- Σύνολο + πάγιο
Σύνολο <- Σύνολο + Σύνολο*ΦΠΑ Γράψε 'Συνολική χρέωση: ', Σύνολο Γράψε 'Πλήθος κλήσεων: ', πλήθος Γράψε 'Πλήθος κλήσεων με διάρκεια πάνω απο 3 λεπτά: ', πλήθος_3 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Υπολογισμός (Δ):ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Δ ΠΡΑΓΜΑΤΙΚΕΣ: χρ ΑΡΧΗ Αν Δ <= 120 τότε χρ <- Δ*0.0020 Αλλιώς_αν Δ <= 360 τότε ! και Δ>120 είναι περιττή συνθήκη... χρ <- 120* (Δ-120)*0.0016 Αλλιώς χρ <- 120* * (Δ-360)*0.0010 Τέλος_αν Υπολογισμός <- χρ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

66 Άσκηση στα υποπρογράμματα με γνωστό πλήθος επαναλήψεων
Άσκηση /σελ. 330

67 Κάλεσε Συμμετοχή(Διάρκεια) b <- Bonus (Διάρκεια) Διάβασε συμβόλαιο
Διαδικασία Συμμετοχή(Δ) Μεταβλητές Ακέραιες: Δ, i, x Αρχή Δ <- 0 Για i από 1 μέχρι 32 Αρχή_επανάληψης Διάβασε χ Μέχρις_ότου χ>=0 και χ<=90 Δ <- Δ + χ Τέλος_επανάληψης Τέλος_διαδικασίας ΣΥΝΑΡΤΗΣΗ Βonus (Δ):ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Δ ΠΡΑΓΜΑΤΙΚΕΣ: χρ ΑΡΧΗ Επίλεξε Δ Περίπτωση > 2250 Bonus <- 6500 Περίπτωση > 1350 Bonus <- 5000 Περίπτωση > 900 Bonus <- 3500 Περίπτωση Αλλιώς Bonus <- 2500 Τέλος_επιλογών Τέλος_συνάρτησης ΠΡΟΓΡΑΜΜΑ ομάδα ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Διάρκεια, I, b ΠΡΑΓΜΑΤΙΚΕΣ: Σ, συμβόλαιο, ποσοστό ΑΡΧΗ Σ <- 0 Για i από 1 μέχρι 18 Διάβασε όνομα Κάλεσε Συμμετοχή(Διάρκεια) b <- Bonus (Διάρκεια) Διάβασε συμβόλαιο Αν b > συμβόλαιο τότε Γράψε ‘2 δόσεις των: ', b/2 Σ <- Σ + b ποσοστό <- 100*(b-συμβόλαιο)/συμβόλαιο Γράψε ποσοστό Αλλιώς Γράψε ‘2 δόσεις των: ', συμβόλαιο/2 Σ <- Σ + συμβόλαιο Τέλος_αν Τέλος_επανάληψης Γράψε ‘’Συνολικό bonus:’’, Σ Τέλος_προγράμματος

68

69 Άσκηση στα υποπρογράμματα με πίνακες
Άσκηση /σελ. 356

70 ΔΙΑΔΙΚΑΣΙΑ Ενημέρωση (ΑΠ) ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: i, j  ΠΡΑΓΜΑΤΙΚΕΣ: ΑΠ[1200, 12] ΑΡΧΗ  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 1200   ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12     ΑΝ ΑΠ[i,j] <= 650 ΤΟΤΕ       ΑΠ[i,j] <- ΑΠ[i,j] + 0.10*ΑΠ[i,j]     ΑΛΛΙΩΣ_ΑΝ ΑΠ[i,j] <= 850 ΤΟΤΕ       ΑΠ[i,j] <- ΑΠ[i,j] + 75     ΤΕΛΟΣ_ΑΝ   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΔΙΑΔΙΚΑΣΙΑ Συνολικές (ΑΠ, Σ) ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: i, j  ΠΡΑΓΜΑΤΙΚΕΣ: ΑΠ[1200, 12], Σ[1200], S ΑΡΧΗ  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 1200   S <- 0   ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12     S <- S + ΑΠ[i,j]   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ   Σ[i] <- S  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΠΡΟΓΡΑΜΜΑ Μισθοδοσία_υπαλλήλων ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: Ω[1200, 12], i  ΠΡΑΓΜΑΤΙΚΕΣ: ΑΠ[1200, 12], Σ[1200]  ΧΑΡΑΚΤΗΡΕΣ: Ο[1200]   ΑΡΧΗ  ΕΙΣΟΔΟΣ ΠΙΝΑΚΩΝ...    ΚΑΛΕΣΕ Μισθοδοσία (Ω, ΑΠ)  ΚΑΛΕΣΕ Ενημέρωση (ΑΠ)  ΚΑΛΕΣΕ Συνολικές (ΑΠ, Σ)  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 1200   ΓΡΑΨΕ Ο[i], Σ[i]  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Μισθοδοσία (Ω, ΑΠ) ΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: Ω[1200, 12], i, j  ΠΡΑΓΜΑΤΙΚΕΣ: ΑΠ[1200, 12] ΑΡΧΗ  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 1200   ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12     ΑΠ[i,j] <- 5*Ω[i,j]   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

71

72 Άσκηση στα υποπρογράμματα με πίνακες
Άσκηση /σελ. 372

73

74


Κατέβασμα ppt "Ασκήσεις."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google