Κυριακή 1 Νοεμβρίου 2015

Εντολή για..από...μέχρι

Η σύνταξη της εντολής είναι :

Για μεταβλητή1 από τιμή1 μέχρι τιμή1
        Εντολές
Τέλος_επανάληψης

Πως δουλεύει;
 Καταρχάς καταχωρείται στη μεταβλητή1 σαν αρχική τιμή η τιμή1. Στη συνέχεια ελέγχει εάν η μεταβλητή1 είναι μικρότερη ή ίση της τιμή2. Αν ναι τότε εκτελεί τις εντολές και επιστρέφει πίσω στην Για μεταβλητή1 από τιμή1 μέχρι τιμή1.Αυξάνει την τιμή της μεταβλητή1 κατά 1 και ελέγχει ξανά αν η μεταβλητή1 είναι μικρότερη ή ίση της τιμή2. Αν ναι τότε εκτελεί τις εντολές  και επιστρέφει πίσω στην Για μεταβλητή1 από τιμή1 μέχρι τιμή1.Αυξάνει την τιμή της μεταβλητή1 κατά 1 .... Κάνει το ίδιο μέχρι η μεταβλητή1 να είναι μεγαλύτερη της τιμή2 όπου τότε τελειώνει η επανάληψη και το πρόγραμμα συνεχίζει κάτω από το Τέλος_επανάληψης.


παράδειγμα

Αλγόριθμος πχ                    
 sum <- 0
 Για ι από 1 μέχρι 4 
   sum <- sum +2
   Εμφάνισε ι
 Τέλος_επανάληψης
 Εμφάνισε sum
Τέλος πχ

Αλγόριθμος πχ
 sum <- 0
 ι <- 1
 Όσο ι<=4 επανάλαβε 
   sum <- sum +2
   Εμφάνισε ι
 Τέλος_επανάληψης
 Εμφάνισε sum
Τέλος πχ


Δευτέρα 7 Σεπτεμβρίου 2015

Λύσεις ΕΠΑΝΑΛΗΠΤΙΚΩΝ ΑΣΚΗΣΕΩΝ

Άσκηση 1

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

Ζ <- ΨΕΥΔΗΣ
Χ <- ΑΛΗΘΗΣ
Ψ <- ΨΕΥΔΗΣ
Μεταβλητη1 <- 4
Μεταβλητη2 <- 9
Χ <- Μεταβλητη1 > Μεταβλητη2
Α <- Χ ΚΑΙ (Ψ 'Η Ζ)
Β <- (ΟΧΙ Α) ΚΑΙ (ΟΧΙ Ζ)

Ποιες οι τιμές των μεταβλητών Α και Β μετά την εκτέλεση του παρακάτω τμήματος αλγορίθμου;

Λύση :

  Μετά την εκτέλεση του παραπάνω τμήματος αλγορίθμου το Α έχει την τιμή ψευδής και το Β την τιμή αληθής




Άσκηση 2
   Να αναπτύξετε αλγόριθμο ο οποίος υλοποιεί τη λειτουργία ενός αυτόματου τυποποιητή πορτοκαλιών που είναι η παρακάτω :
Για ένα πορτοκάλι που εισάγεται στον τυποποιητή, διαβάζεται το βάρος (Β) και η διάμετρός του (Δ). Το πορτοκάλι κατατάσσεται ανάλογα με το βάρος και τη διάμετρο στις παρακάτω αναλογίες:
Αν 100<=Β<=150 και 8<=Δ<=10, τότε τυπώνεται το μήνυμα <<πρώτη διαλογή>>. Αν 6<Δ<8, τότε ανεξαρτήτως βάρους τυπώνεται το μήνυμα <<δεύτερη διαλογή>>. Σε κάθε άλλη περίπτωση τυπώνεται το μήνυμα <<χυμοποίηση>>.
(Επαναληπτικές εξετάσεις 2001)

Λύση :

Αλγόριθμος πχ
  Διάβασε Β,Δ
  Αν Β>=100 ΚΑΙ Β<=150 τότε
         Αν Δ>=8 ΚΑΙ Δ<= 10
               Εμφάνισε "Πρώτη διαλογή"
         Αλλιώς_αν Δ<6 ΚΑΙ Δ>8 τότε
               Εμφάνισε "δεύτερη διαλογή"
         Αλλιώς
                Εμφάνισε "Χυμοποίηση"
         Τέλος_αν
  Τέλος_αν
Τέλος πχ



Άσκηση 4
   Δίνεται το παρακάτω διάγραμμα ροής
Να κατασκευάσετε τον αλγόριθμο σε ψευδογλώσσα.



Λύση :

Αλγόριθμος πχ
  Διάβασε α
  Αν α<0 τότε
         α <- α*(-1)
  Τέολος_αν
  Εμφάνισε α
Τέος πχ



Δευτέρα 10 Αυγούστου 2015

Εντολή Αρχή_επανάληψης ... Μέχρις_ότου


Αρχή_επανάληψης
             Εντολές
Μέχρις_ότου συνθήκη







1. Στην τρίτη λυκείου ενός σχολείου βρίσκονται 120 μαθητές.Να γραφεί αλγόριθμος ο οποίς για κάθε μαθητή :
Α. Θα διαβάζει τους βαθμούς του στα 5 μαθήματα στις πανελλήνιες εξετάσεις (από το 0 έως το 100) καθώς επίσης και το όνομά του.
Β. Θα βρίσκει τον μέσο όρο στα 5 μαθήματα.
Γ. Θα υπολογίζει και θα εμφανίζει συνοδευόμενα από τα κατάλληλα μηνύματα, πόσοι μαθητές κόπηκαν και πόσοι είχαν μέσο όρο μεγαλύτερο ή ίσο του 50.
(Να γίνει με μέχρις_ότου)

  Λύση

Αλγόριθμος πχ
  μαθ <- 1
  count1 <- 0
  count2 <- 0
  Αρχή_επανάληψης
              Διάβασε Ον, β1, β2, β3, β4, β5
              ΜΟ <- (β1 + β2 + β3 + β4 + β5 )/5
              Αν ΜΟ>=50 τότε
                          count1 <- count1 + 1
              Aλλιώς
                          count2 <- count2 + 1
              Τέλος_αν
               μαθ = μαθη +1
  Μέχρις_ότου μαθ = 121
  Εμφάνισε " Ο αριθμός των μαθητών που κόπηκαν είναι : " , count2
  Εμφάνισε "Ο αριθμός των παιδιών που είχαν μέσο όρο μεγαλύτερο ή ίσο του 50 είναι : ", count1
Τέλος πχ



2.Δίνεται το παρακάτω κομμάτι αλγορίθμου. Να μετατραπεί σε ισοδύναμο με τη χρήση της εντολής Μέχρις_ότου

ι <- 1
Όσο ι <= 5 επανάλαβε
         Εκτύπωσε ι
         ι <- ι + 1
Τέλος_επανάληψης


  Λύση

ι <- 1
Αρχή_επανάληψης
           Εκτύπωσε ι
           ι <- ι + 1
Μέχρις ότου ι > 5

παρατήρηση: όταν μετατρέπω ένα κομμάτι αλγορίθμου από Όσο επανάλαβε σε Μέχρις ότου αντιστρέφω τη συνθήκη επανάληψης!!!!

Άγνωστος αριθμός επαναλήψεων

3. Να γραφεί αλγόριθμος ο οποίος διαβάζει από το χρήστη διάφορα αλφαριθμητικά. Στη συνέχεια βρίσκει και εμφανίζει πόσες φορές ο χρήστης έδωσε τη λέξη ''καλημέρα'' και πόσες φορές έδωσε την λέξη ''καληνύχτα''. Η εισαγωγή δεδομένων τερματίζεται όταν ο χρήστης δώσει το αλφαριθμητικό ''αντίο''.

  Λύση

Αλγόριθμος πχ
  count1 <- 0
  count2 <- 0
  Αρχή_επανάληψης
               Διάβασε λέξη
               Αν λέξη=="καλημέρα" τότε
                               count1 <- count1 + 1
               Αλλιώς_αν λέξη=="καληνύχτα"τότε
                               count2 <- count2 +1
               Τέλος_αν
  Μέχρις_ότου λέξη=="αντίο"
  Εμφάνισε "Ο χρήστης έδωσε την λέξη καλημέρα : ", count1
  Εμφάνισε "Ο χρήστης έδωσε την λέξη καληνύχτα: ", count2
Τέλος πχ


Άγνωστος αριθμός επαναλήψεων και έλεγχος εισόδου


4. Μία εταιρεία έχει άγνωστο αριθμό υπαλλήλων. Ο μισθός τους υπολογίζεται σύμφωνα με τις ώρες που δούλεψαν σύμφωνα με τα παρακάτω :

  - Από 1 έως και 35 ώρες ---> 8ευρώ/ώρα
  - Από 36 έως και 50 ώρες ---> 10ευρώ/ώρα
  - Περισσότερες από 50 ώρες ---> 11ευρώ ανά ώρα

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

  Λύση

Αλγόριθμος πχ
  Αρχή επανάληψης
              Διάβασε ώρες
              Αρχή_επανάληψης
                          Αν ώρες<0 τότε
                                   Διάβασε ώρες
                          Τέλος_αν
              Μέχρις_ότου ώρες>=0
              Αν ώρες<=35 τότε
                       μισθός <- 8*ώρες
              Αλλιώς_αν ώρες>35 ΚΑΙ ώρες<=50 τότε
                       μισθός <- 10*ώρες
              Αλλιώς
                       μισθός <- 11*ώρες
              Τέλος_αν
              Εμφάνισε μισθός
  Μέχρις_ότου ώρες==0
Τέλος πχ

Κυριακή 9 Αυγούστου 2015

Εύρεση min, max

Να γραφεί αλγόριθμος ο οποίος διαβάζει 4 θετικούς ακέραιους αριθμούς και βρίσκει τον μεγαλύτερο (max)  από αυτούς.

Όταν ψάχνουμε τον μέγιστο ακολουθούμε την παρακάτω μεθοδολογία.
Αρχικά θέτουμε στη μεταβλητή που θα υποδεχτεί τον μέγιστο (στην max δλδ) μία τιμή μικρότερη από τη μικρότερη πιθανή τιμή που μπορεί να έχουν οι αριθμοί των οποίων το μέγιστο ψάχνουμε.
Άρα στη συγκεκριμένη περίπτωση λέμε : max <- -1 ( ή θα μπορούσαμε 0,-2,-3 και ότι μικρότερο από το 1 θέλουμε).
Στη συνέχεια διαβάζουμε τον πρώτο αριθμό που δίνει ο χρήστης και λέμε στον υπολογιστή να ελέγξει αν είναι μεγαλύτερος από τον μέχρι στιγμής μέγιστος (ο οποίος είναι ο -1). Αν αυτό ισχύει τότε του λέμε να <<βαφτίσει>> μέγιστο τον αριθμό που μόλις διάβασε.
Τα παραπάνω γίνονται ως εξής :

max <- -1
Διάβασε Χ
Αν Χ>max τότε
           max <- X
Τέλος_αν

Το ίδιο και για τους υπόλοιπους 3 αριθμούς

Όμοια υπολογίζουμε το ελάχιστο (min). Μόνο που σαν αρχική τιμή αυτή τη φορά ορίζουμε μία τιμή μεγαλύτερη από τη μεγαλύτερη δυνατή τιμή των αριθμών των οποίων ψάχνουμε το ελάχιστο και αντί να εξετάσουμε αν ο αριθμός είναι μεγαλύτερος, εξετάζουμε αν είναι μικρότερος του min.


1. Να αναπτύξετε αλγόριθμο που :
α) Για κάθε μία από τις 15 χώρες της Ευρωπαϊκής Ένωσης να διαβάζει την έκταση, τον πληθυσμό και το όνομά της
β) Θα εμφανίζει τη χώρα με τη μεγαλύτερη έκταση
γ)Θα εμφανίζει τη χώρα με το μικρότερο πληθυσμό
και δ)Θα εμφανίζει τον μέσο όρο του πληθυσμού όλων των χωρών της ΕΕ.

Λύση

Αλγόριθμος πχ
  χώρες <- 1
  max <- -1
  min <- 10000000000000
  sum <- 0
  Όσο χώρες<=15 επανάλαβε
                Διάβασε Ε,Π,Ο
                Αν Ε>max τότε
                         max <- E
                         Ονmax <- O
                Τέλος_αν
                 Αν Π<min τότε
                         min <- Π
                         Ονmin <- Ο
                 Τέλος_αν
                 sum <- sum + Π
                 χώρες <- χώρες + 1
  Τέλος_επανάληψης
  Εμφάνισε "Η χώρα με τη μεγαλύτερη έκταση είναι η : ", Ονmax
  Εμφάνισε "Η χώρα με τον μικρότερο πληθυσμό είναι η : ", Oνmin
  ΜΟ <- sum/15
  Εμφάνισε "Ο μέσος όρος του πληθυσμού όλων των χωρών της ΕΕ είναι : ", ΜΟ
Τέλος πχ

Κυριακή 2 Αυγούστου 2015

Ασκήσεις με Όσο (χρήση count και sum)

Όσο συνθήκη επανάλαβε
       Εντολές
Τέλος_επανάληψης




1. Να γραφεί ο αλγόριθμος που θα εκτυπώνει τους αριθμούς από το 1 έως το 10.

  Λύση:

Αλγόριθμος ασκ1
   X < -1
   Όσο Χ < = 10 επανάλαβε
                  Εμφάνισε Χ
                  Χ <- Χ + 1
   Τέλος_επανάληψης
Τέλος ασκ1

παρατήρηση : Χρησιμοποίησα τη μεταβλητή Χ σαν μετρητή. Σε κάθε επανάληψη αυξάνεται +1 για να μπορέσω να τυπώσω όλους τους αριθμούς από το 1 εως και το 10.


2.Να γραφεί αλγόριθμος που θα τυπώνει τους άρτιους ακέραιους αριθμούς από το 2 έως το 30.

  Λύση:

Αλγόριθμος ασκ2
  x <- 2
  Όσο xmod2==0 επανάλαβε
                 Εμφάνισε x
  Tέλος_επανάληψης
Τέλος ασκ2

παρατήρηση: Έλεγξα αν είναι ο αριθμός χ άρτιος εξετάζοντας αν το υπόλοιπο της ακέραιας  διαίρεσής του με το 2 είναι το 0.


3. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει 20 αριθμούς και θα εμφανίζει όσους από αυτούς είναι άρτιοι.Επίσης θα βρίσκει και θα εμφανίζει πόσοι από αυτούς τους 20 είναι περιττοί.

  Λύση

Αλγόριθμος ασκ3
  Χ <- 1
  περιττοί <- 0
  Όσο Χ <= 20 επανάλαβε
               Αν Χmod2==0 τότε
                           Εμφάνισε Χ
               Αλλιώς
                           περιττοί <- περιττοί + 1
               Τέλος_αν
               Χ <- Χ+1
   Τέλος_επανάληψης
   Εμφάνισε περιττοί
Τέλος ασκ3


4. Ένα τμήμα σχολείου έχει 35 μαθητές. Να γραφεί ο αλγόριθμος ο οποίος για κάθε μαθητή θα διαβάζει το βαθμό του για το 1ο τρίμηνο στο μάθημα των μαθηματικών. Αν ο βαθμός του είναι μεγαλύτερος από 18,5 θα εμφανίζει το μήνυμα <<Άριστος>> , αν είναι ανάμεσα από 16 και 18,5 θα εμφανίζει το μήνυμα <<Πολύ καλός>> και αν είναι οποιοσδήποτε άλλος το μήνυμα <<Καλός>>.
Ο αλγόριθμος θα υπολογίζει και θα εμφανίζει επίσης το μέσο όρο του τμήματος για το μάθημα των μαθηματικών στο πρώτο τρίμηνο.
Θεωρείστε ότι ο χρήστης δίνει βαθμολογίες από 0 έως 20.

  Λύση

Αλγόριθμος ασκ4
  μαθητες <- 1
  συνολο <- 0        (για να βρω το μέσο όρο του τμήματος θα χρειαστεί να
                                                           ανθροίσω τους βαθμούς των μαθητών)
  Όσο μαθητες < =35 επανάλαβε
                Διάβασε βαθμος
                σύνολο <- συνολο + βαθμός
                Αν βαθμος>=18.5 τότε
                           Εμφάνισε "άροστος"
                Αλλιώς_αν βαθμος>=16 ΚΑΙ βαθμος<18.5 τότε
                          Εμφάνισε "πολύ καλός"
               Αλλιώς 
                         Εμφάνισε "καλός"
              Τέλος_αν
              μαθητές <- μαθητές +1 
   Τέλος_επανάληψης
   ΜΟ <- συνολο/35
   Εμφάνισε "Ο μέσος όρος του τμήματος στα μαθηματικά για το πρώτο τρίμηνο είναι : ", ΜΟ
Τέλος ασκ4


5. Να γραφεί ο αλγόριθμος ο οποίος θα διαβάζει πόσα γκολ πέτυχε μία ομάδα σε κάθε έναν από τους 30 αγώνες του πρωταθλήματος που αγωνίστηκε και θα υπολογίζει και θα εμφανίζει τον μέσο όρο των γκολ που είχε ανά αγώνα σε όλο το πρωτάθλημα. Θεωρείστε ότι ο χρήστης δίνει σαν αριθμό γκολ θετικούς αριθμούς

  Λύση:

Αλγόριθμος γκολ
  αγώνες<-1
  sum <- 0
  Όσο αγώνες<= 30 επανάλαβε
                Διάβασε αρ_γκολ
                sum <- sum + αργκολ
                αγώνες <- αγώνες + 1
  Τέλος_απανάληψης
  ΜΟ <- sum/30
  Εμφάνισε ΜΟ
Τέλος γκολ


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

  Λύση:

Αλγόριθμος πίνακες
  πίνακες <- 1
  sum <- 0
  count <- 0
  Όσο πίνακες <= 80 επανάλαβε
                Διάβασε τιμή, προέλ
                sum <- sum + τιμή
                Αν προέλ == ελληνικός τότε
                                 count <- count + 1
                Τέλος_αν
                πίνακες <- πίνακες +1
  Τέλος_επανάληψης
  Εμφάνισε "Ο συλλέκτης ξόδεψε συνολικά ", sum
  ΜΟ <- sum/80
  Εμφάνισε "Το μέσο κόστος των πινάκων είναι " MO
  Εμφάνισε "Ο αριθμός των ελληνικών πινάκων που αγόρασε ο συλλέκτης είναι ", count
Τέλος πίνακες



Πράξεις div και mod

Λίγα Λόγια


Πέρα από τις πράξεις της πρόσθεσης, πολλαπλασιασμού,ύψωσης σε δύναμη και λοιπά, υπάρχουν άλλες δύο που μπορεί να εκτελέσει. Αυτές είναι οι :

DIV η οποία ονομάζεται και ακέραια διαίρεση και 
MOD η οποία ονομάζεται και υπόλοιπο ακέραιας διαίρεσης.
Οι πράξεις αυτές γίνονται μόνο μεταξύ ακέραιων αριθμών








Ασκήσεις


1. Δίνεται ο παρακάτω αλγόριθμος. Τι θα τυπωθεί;

Αλγόριθμος ασκ
  Χ<-2
  Ζ<-Χ+2
  Κ<-Χ*Ζ + 7div4*Z^4mod3
  Εκτύπωσε Κ
Τέλος ασκ

  Απάντηση : θα τυπώσει 9





Λογικές Μεταβλητές

Λίγα Λόγια


- Λογικός τελεστής ΚΑΙ (υλοποιεί τη λογική πράξη της σύζευξης)

Χρησιμοποιείται για να συνδέσει δύο συνθήκες μεταξύ τους. Αυτό που προκύπτει από αυτή τη σύνδεση είναι μία σύνθετη συνθήκη η οποία είναι ΑΛΗΘΗΣ όταν και μόνο όταν και οι δύο απλούστερες συνθήκες είναι ΑΛΗΘΗΣ.

ΑΛΗΘΗΣ ΚΑΙ ΑΛΗΘΗΣ = ΑΛΗΘΗΣ
ΨΕΥΔΗΣ ΚΑΙ ΑΛΗΘΗΣ = ΨΕΥΔΗΣ
ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ

-Λογικός τελεστής Ή (υλοποιεί τη λογική πράξη της διάζευξης )

Χρησιμοποιείται για να συνδέσει δύο συνθήκες μεταξύ τους.Η συνθήκη που προκύπτει είναι ΑΛΗΘΗΣ όταν τουλάχιστον μία από τις δύο απλούστερες συνθήκες είναι ΑΛΗΘΗΣ

ΨΕΥΔΗΣ Ή ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
ΨΕΥΔΗΣ Ή ΑΛΗΘΗΣ = ΑΛΗΘΗΣ
ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ = ΑΛΗΘΗΣ
ΑΛΗΘΗΣ Ή ΑΛΗΘΗΣ = ΑΛΗΘΗΣ


-Λογικός τελεστής ΟΧΙ (υλοποιεί τη λογική πράξη της άρνησης)

Μπαίνει μπροστά από μία συνθήκη. Η σύνθετη συνθήκη που προκείπτρι είναι ΑΛΗΘΗΣ όταν η απλούστερη συνθήκη είναι ΨΕΥΔΗΣ. Αντίθετα, η συνθήκη που προκύπτει είναι ΨΕΥΔΗΣ όταν η απλούστερη συνθήκη είναι ΑΛΗΘΗΣ.

ΟΧΙ ΑΛΗΘΗΣ = ΨΕΥΔΗΣ
ΟΧΙ ΨΕΥΔΗΣ = ΑΛΗΘΗΣ


Ασκήσεις


1. Δίνονται οι τιμές των μεταβλητών Α = 5, Β = 7 και Γ = 3. Να χαρακτηρίσετε κάθε έκφραση που ακολουθεί με το γράμμα Α, αν είναι ΑΛΗΘΗΣ ή με το γράμμα Ψ αν είναι ΨΕΥΔΗΣ.

α)  ΟΧΙ(Α+Β<10)                                 Α
β) (Α>=Β)Ή(Γ<Β)                                Α
γ) ((Α>Β)ΚΑΙ(Γ<Α))Ή(Γ>5)               Ψ
δ) (ΟΧΙ(Α!=Β))ΚΑΙ(Β + Γ != 2*Α)    Ψ



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

Αν Χ>1 τότε
        Κ<- Αληθής
Αλλιώς
        Κ<-Ψευδής
Τέλος_αν

Να συμπληρώσετε την παρακάτω εντολή εκχώρησης λωστε να έχει ίδιο αποτέλεσμα με το παραπάνω τμήμα αλγορίθμου
Κ <- _________________

Απάντηση : Κ <- Χ>1....έτσι η Κ θα πάρει αυτόματα την τιμή Αληθής αν Χ>1 αλλιώς την τιμή Ψευδής