Κυριακή 16 Μαρτίου 2014

ΛΥΣΕΙΣ 3ο ΣΕΤ ΑΣΚΗΣΕΩΝ

Αλγόριθμος ασκ1σετ3
Για i από 1 μέχρι 85
     Διάβασε κωδ[i]
Τέλος_επανάληψης
Εμφάνισε 'δώστε τον κωδικό σας'
Διάβασε κωδικός
βρέθηκε ← Ψευδής
i ← 1
Όσο i ≤ 85 και βρέθηκε = Ψευδής επανάλαβε
       Αν κωδικός = κωδ[i] τότε
           βρέθηκε ← Αληθής
           pos ← i
       Τέλος_αν
       i ← i + 1
Τέλος_επανάληψης
Αν βρέθηκε = Ψευδής τότε
     Εμφάνισε 'Ανύπαρκτος κωδικός, δεν επιτρέπεται η πρόσβαση'
αλλιώς
     Εμφάνισε 'Καλώς ήρθατε στο Εργαστήριο Πληροφορικής'
Τέλος_αν
Τέλος ασκ1σετ3



Αλγόριθμος ασκ2σετ3
Δεδομένα //κατ,N//
Διάβασε επωνυμία
υπάρχει ← Ψευδής
i ← 1
Όσο i ≤ N και υπάρχει = Ψευδής επανάλαβε
       Αν επωνυμία = κατ[i] τότε
            υπάρχει ←  Αληθής
       Τέλος_αν
       i ← i + 1
Τέλος_επανάληψης
Αν υπάρχει = Ψευδής τότε
     Εμφάνισε 'μπορείτε να το ονομάσετε: ', επωνυμία
αλλιώς
     Εμφάνισε 'δε μπορείτε να το ονομάσετε έτσι'
Τέλος_αν
Τέλος ασκ2σετ3



Αλγόριθμος ασκ3σετ3
Για i από 1 μέχρι 24
     Διάβασε ον[i],χωρ[i],επιδ[i]
Τέλος_επανάληψης
Για i από 2 μέχρι 4    ! 3 περάσματα για τους 3 πρώτους
     Για j από 24 μέχρι i με_βήμα -1
          Αν επιδ[j-1] < επιδ[j] τότε
              Αντιμετάθεσε επιδ[j-1],επιδ[j]
              Αντιμετάθεσε ον[j-1],ον[j]
              Αντιμετάθεσε χωρ[j-1],χωρ[j]
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
Για i από 1 μέχρι 3
     Εμφάνισε ον[i],χωρ[i],επιδ[i]
Τέλος_επανάληψης
Τέλος ασκ3σετ3 



Αλγόριθμος ασκ4σετ3
Δεδομένα //γκολ//
ολαγκολ ← 0                      !όλα τα γκολ στο πρωτάθλημα -> ερ.ΣΤ
λιγ_γκολ ← 10^6                  !min των γκολ μιας ομάδας -> ερ.Δ
Για i από 1 μέχρι 18
      αθρ ← 0                      !ερ.Α
      Για j από 1 μέχρι 34
           αθρ ← αθρ + γκολ[i,j]
      Τέλος_επανάληψης
      Εμφάνισε αθρ                 !ερ.Α
      ολαγκολ ← ολαγκολ + αθρ
      Αν αθρ < λιγ_γκολ τότε
          λιγ_γκολ ← αθρ
          ομάδα ← i
      Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε 'τα λιγότερα σε όλο το πρωτάθλημα: ', ομάδα
Εμφάνισε 'σε όλο το πρωτάθλημα: ', ολαγκολ  !ερ.ΣΤ
περγκολ ← -1                                !ερ.Γ
Για j από 1 μέχρι 34
      αθρ ← 0                                 ! ερ.Β
      Για i από 1 μέχρι 18
           αθρ ← αθρ + γκολ[i,j]
      Τέλος_επανάληψης
      Εμφάνισε αθρ                             !ερ.Β
      ολαγκολ ← ολαγκολ + αθρ
      Αν αθρ > περγκολ τότε
          περγκολ ← αθρ
          αγωνιστική ← j
      Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε αγωνιστική                         !ερ.Γ
λιγ_γκολ ← γκολ [1,1]
ομάδα ← 1
αγωνιστική ← 1
Για i από 1 μέχρι 18
     Για j από 1 μέχρι 34
          Αν γκολ[i,j] < λιγ_γκολ τότε
               λιγ_γκολ ← γκολ[i,j]
               ομάδα ← i
               αγωνιστική ← j
          Τέλος_αν
     Τέλος_επανάληψης
Τέλος_επανάληψης
Εμφάνισε λιγ_γκολ,ομάδα,αγωνιστική
Για i από 1 μέχρι 18                         !ερ.Ζ
      flag ← Ψευδής
      j ← 1
      Όσο j ≤ 5 και flag = Ψευδής επανάλαβε
             Αν γκολ[i,j] > ολαγκολ/(34*18) τότε
                  flag ← Αληθής
                 Εμφάνισε 'η ομάδα ', i , 'είχε τέτοιο ματς'
             αλλιώς
                 j ← j + 1
            Τέλος_αν
       Τέλος_επανάληψης
Τέλος_επανάληψης
Τέλος ασκ4σετ3


!! για το Ζ ερώτημα...με τη βοήθεια της λογικής μεταβλητής κόβουμε τις περιττές επαναλήψεις όταν μια ομάδα έχει πετύχει > μ.ο. του πρωταθλήματος....δε θα την παίρναμε αν π.χ. ζητούσε σε πόσα ματς το πέτυχε η κάθε ομάδα... 


Αλγόριθμος ασκ5σετ3
Για i από 1 μέχρι 8000
    Διάβασε ΟΝΟΜΑ[i]
    Εμφάνισε 'δώσε με τη σειρά έτη, μήνες και μέρες προϋπηρεσίας'
    Διάβασε έτη , μήνες , μέρες
    ΠΡΟΫΠ[i,1] ← έτη
    ΠΡΟΫΠ[i,2] ← μήνες
    ΠΡΟΫΠ[i,3] ← μέρες
    ΣΥΝ_ΗΜΕΡΕΣ[i] ← ΠΡΟΫΠ[i,1]*365 + ΠΡΟΫΠ[i,2]*30 + ΠΡΟΫΠ[i,3]
Τέλος_επανάληψης
max ← ΣΥΝ_ΗΜΕΡΕΣ[1]
onmax ← ΟΝΟΜΑ[1]
min ← ΣΥΝ_ΗΜΕΡΕΣ[1]
Για i από 2 μέχρι 8000
      Αν ΣΥΝ_ΗΜΕΡΕΣ[i] > max τότε
           max ← ΣΥΝ_ΗΜΕΡΕΣ[i]
           onmax ← ΟΝΟΜΑ[i]
      Τέλος_αν
      Αν ΣΥΝ_ΗΜΕΡΕΣ[i] < min τότε
           min ← ΣΥΝ_ΗΜΕΡΕΣ[i]
      Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε onmax
Για i από 1 μέχρι 8000
     Αν ΣΥΝ_ΗΜΕΡΕΣ[i] = min τότε
         Εμφάνισε ΟΝΟΜΑ[i]
     Τέλος_αν
Τέλος_επανάληψης
Διάβασε name
found ← Ψευδής
i ← 1
Όσο i ≤ 8000 και found = Ψευδής επανάλαβε
       Αν name = ΟΝΟΜΑ[i] τότε
           found ← Αληθής
           pos ← i
       αλλιώς
           i ← i + 1
       Τέλος_αν
Τέλος_επανάληψης
Αν found = Αληθής τότε
     Εμφάνισε ΠΡΟΫΠ[pos,1], ΠΡΟΫΠ[pos,2], ΠΡΟΫΠ[pos,3]
αλλιώς
     Εμφάνισε 'λάθος όνομα εκπαιδευτικού'
Τέλος_αν
Για i από 2 μέχρι 8000
     Για j από 8000 μέχρι i με_βήμα -1
          Αν ΣΥΝ_ΗΜΕΡΕΣ[j-1] > ΣΥΝ_ΗΜΕΡΕΣ[j] τότε
               Αντιμετάθεσε ΣΥΝ_ΗΜΕΡΕΣ[j-1], ΣΥΝ_ΗΜΕΡΕΣ[j]
               Αντιμετάθεσε ΟΝΟΜΑ[j-1], ΟΝΟΜΑ[j]
               Για k από 1 μέχρι 3
                    Αντιμετάθεσε ΠΡΟΫΠ[k,j-1], ΠΡΟΫΠ[k,j]
               Τέλος_επανάληψης
          αλλιώς
               Αν ΣΥΝ_ΗΜΕΡΕΣ[j-1] = ΣΥΝ_ΗΜΕΡΕΣ[j] τότε
                   Αν ΟΝΟΜΑ[j-1] > ΟΝΟΜΑ[j] τότε
                        Αντιμετάθεσε ΟΝΟΜΑ[j-1], ΟΝΟΜΑ[j]
                        Για k από 1 μέχρι 3
                             Αντιμετάθεσε ΠΡΟΫΠ[k,j-1], ΠΡΟΫΠ[k,j]
                        Τέλος_επανάληψης
                   Τέλος_αν
               Τέλος_αν
           Τέλος_αν
      Τέλος_επανάληψης
Τέλος_επανάληψης
Για i από 1 μέχρι 8000
     Εμφάνισε ΣΥΝ_ΗΜΕΡΕΣ[i], ΟΝΟΜΑ[i]
Τέλος_επανάληψης
Τέλος ασκ5σετ3

! η ταξινόμηση του 2D δεν χρειάζεται και γίνεται καθαρά για να τη δουν οι μαθητές
 



Αλγόριθμος ασκ6σετ3
Για i από 1 μέχρι 16
     Διάβασε models[i]
     smod[i] ← 0
     Για j από 1 μέχρι 8
          σ ← 0
          Για k από 1 μέχρι 6
               Διάβασε βαθ
               σ ← σ + βαθ
          Τέλος_επανάληψης
          ΒΑΘΜ[i,j] ← σ/6
          smod[i] ← smod[i] + ΒΑΘΜ[i,j]
          Εμφάνισε smod[i]
      Τέλος_επανάληψης
Τέλος_επανάληψης
Για i από 2 μέχρι 16
     Για j από 16 μέχρι i με_βήμα -1
          Αν smod[j-1] < smod[j] τότε
              Αντιμετάθεσε smod[j-1] , smod[j]
              Αντιμετάθεσε models[j-1] , models[j]
              Για k από 1 μέχρι 8
                   Αντιμετάθεσε ΒΑΘΜ[j-1,k] , ΒΑΘΜ[j,k]
             Τέλος_επανάληψης
          αλλιώς
             Αν smod[j-1] = smod[j] και ΒΑΘΜ[j-1,8] < ΒΑΘΜ[j,8] τότε
                 Αντιμετάθεσε models[j-1] , models[j]
                 Για k από 1 μέχρι 8
                      Αντιμετάθεσε ΒΑΘΜ[j-1,k] , ΒΑΘΜ[j,k]
                 Τέλος_επανάληψης
             Τέλος_αν
          Τέλος_αν
      Τέλος_επανάληψης
Τέλος_επανάληψης
Εμφάνισε 'νικήτρια: ' , models[1]
Διάβασε υποψ
βρέθηκε ← Ψευδής
i ← 1
Όσο i ≤ 16 και βρέθηκε = Ψευδής επανάλαβε
       Αν υποψ = models[i] τότε
           βρέθηκε ← Αληθής
           pos  ← i
      αλλιώς
           i ← i + 1
      Τέλος_αν
Τέλος_επανάληψης
Αν βρέθηκε = Αληθής τότε
    max ← ΒΑΘΜ[pos,1]
    roundmax ← 1
    min ← ΒΑΘΜ[pos,1]
    roundmin ← 1
    Για j από 2 μέχρι 8
         Αν ΒΑΘΜ[pos,j] > max τότε
             max ← ΒΑΘΜ[pos,j]
             roundmax ← j
         Τέλος_αν
         Αν ΒΑΘΜ[pos,j] < min τότε
             min ← ΒΑΘΜ[pos,j]
             roundmin ← j
         Τέλος_αν
    Τέλος_επανάληψης
    Εμφάνισε roundmax , roundmin
αλλιώς
    Εμφάνισε 'δεν υπάρχει τέτοιο όνομα'
Τέλος_αν
max ← -1                                  !για να βρω απ' όλες
Για i από 1 μέχρι 16
     max_αυξ ← ΒΑΘΜ[i,2] - ΒΑΘΜ[i,1]       !ψάχνω κάθε κοπέλας αύξηση
     Για j από 3 μέχρι 8
          Αν ΒΑΘΜ[i,j] - ΒΑΘΜ[i,j-1] > max_αυξ τότε
              max_αυξ ← ΒΑΘΜ[i,j] - ΒΑΘΜ[i,j-1]
          Τέλος_αν
     Τέλος_επανάληψης
     Αν max_αυξ > max τότε
          max ← max_αυξ
          pos ← i
    Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε model[pos]
Τέλος ασκ6σετ3
 



Αλγόριθμος ασκ7σετ3
Δεδομένα //Α,Β//
Πλ ← 0
x ← 0
Για i από 1 μέχρι 50
     found ← Ψευδής
     Για j από 1 μέχρι 2000
          Αν Α[i] = Β[j] τότε
              Εκτύπωσε 'Βρέθηκε στη θέση', j
              found ← Αληθής
          Τέλος_αν
     Τέλος_επανάληψης
     Αν found = Αληθής τότε
         Πλ ← Πλ + 1
     αλλιώς                                          ! Δημιουργία νέου πίνακα
         x ← x + 1
        ΠΙΝ[x] ← A[i]
     Τέλος_αν
Τέλος_επανάληψης
Εκτύπωσε 'Ποσοστό βρεθέντων στοιχείων', Πλ/50*100 , '%'
Αν x ≠ 0 τότε
    Εκτύπωσε 'οι παρακάτω τιμές δεν υπάρχουν στον Β:'
    Για i από 1 μέχρι x
         Εκτύπωσε ΠΙΝ[i]
    Τέλος_επανάληψης
αλλιώς
    Εκτύπωσε 'όλα τα στοιχεία του Α υπάρχουν στον Β'

Τέλος_αν
Τέλος ασκ7σετ3

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου