Μονοδιάστατοι Πίνακες
 

Άσκηση 1. Ποιά θα είναι τα περιεχόμενα του πίνακα Α μετά την εκτέλεση του παρακάτω αλγορίθμου;

Αλγόριθμος Δημιουργία_Πίνακα
  Για i από 1 μέχρι 5
    Α[i]  i
  Τέλος_επανάληψης
  Για i από 2 μέχρι 5
    Αν (i mod 2 = 0) τότε
      Α[i]  2 * A[i - 1] + 1
    Αλλιώς
      Α[i]  A[i] + A[i - 1]
    Τέλος_αν
  Τέλος_επανάληψης
  Αποτελέσματα // Α //
Τέλος Δημιουργία_Πίνακα
Λύση
 

    i    

   A[1]   

   A[2]   

   A[3]   

   A[4]   

   A[5]   

 1η επανάλ 

1 1        

 2η επανάλ 

2   2      

 3η επανάλ 

3     3    

 4η επανάλ 

4       4  

 5η επανάλ 

5         5

 1η επανάλ 

2 1 2 3 4 5

   2 mod 2 = 0 - Ισχύει   

    3      

 2η επανάλ 

3          

   3 mod 2 = 0 - Δεν ισχύει   

      6    

 3η επανάλ 

4          

   4 mod 2 = 0 - Ισχύει   

        13  

 4η επανάλ 

5          

   5 mod 2 = 0 - Δεν ισχύει   

          18

Οι τελικές τιμές του πίνακα είναι :  

 1 

 3 

 6 

 13 

  18 

  Άσκηση 2. Να αναπτύξετε αλγόριθμο που με δεδομένα τα στοιχεία ενός πίνακα Α[500] θα μετρά το πλήθος των στοιχείων που είναι μικρότερα του 11 και αυτά που είναι μικρότερα από το μισό του μέσου όρου.

Λύση
Αλγόριθμος Μελέτη_Πίνακα
  Δεδομένα // Α //
  Πλήθος  500
  άθροισμα  0
  Για i από 1 μέχρι Πλήθος
    άθροισμα  άθροισμα + Α[i]
  Τέλος_επανάληψης
  μο  άθροισμα / Πλήθος
  μικρότερα_11  0
  μικρότερα_μισό_μο  0
  Για i από 1 μέχρι Πλήθος
    Αν (Α[i] < 11) τότε
      μικρότερα_11  μικρότερα_11 + 1
    Τέλος_αν
    Αν (Α[i] < μο / 2) τότε
      μικρότερα_μισό_μο  μικρότερα_μισό_μο + 1
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε μικρότερα_11, μικρότερα_μισό_μο
Τέλος Μελέτη_Πίνακα

  Άσκηση 3. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένο μονοδιάστατο πίνακα Ν αριθμών θα δημιουργεί νέο πίνακα όπου θα περιέχει μόνο τους θετικούς.

Λύση
Αλγόριθμος Θετικοί
  Δεδομένα // Ν, Α //
  Μ  0  ! δείκτης νέου πίνακα
  Για i από 1 μέχρι Ν
    Αν (Α[i] > 0) τότε
      Μ  Μ + 1
      Β[Μ]  Α[i]
    Τέλος_αν
  Τέλος_επανάληψης
  Αποτελέσματα // Μ, Β //
Τέλος Θετικοί

  Άσκηση 4. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένο έναν μονοδιάστατο πίνακα αριθμών θα υπολογίζει και θα εκτυπώνει τον ελάχιστο καθώς και τη θέση του στον πίνακα.

Λύση
Αλγόριθμος Εύρεση_Ελαχίστου
  Δεδομένα // Ν, Α //
  ελάχιστος  Α[1]
  θέση  1
  Για i από 2 μέχρι N
    Αν ελάχιστος > Α[i] τότε
      ελάχιστος  A[i]
      θέση  i
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Το ελάχιστο είναι ο αριθμός ", ελάχιστο, " και βρέθηκε στη θέση ", θέση
Τέλος Εύρεση_Ελαχίστου

  Άσκηση 5. Σε έναν πίνακα μπορούν να εισαχθούν μόνο οι αριθμοί 1, 9, 11, 25 και 32. Να αναπτύξετε αλγόριθμο που με δεδομένα τα στοιχεία ενός τέτοιου πίνακα Α[100] θα μετρά τη συχνότητα εμφάνισης για κάθε έναν από τους παραπάνω αριθμούς.

Λύση

Θα χρησιμοποιήσουμε πίνακα μετρητών 5 θέσεων όπου κάθε θέση θα αποτελεί μετρητή για τους αριθμούς 1, 9, 11, 25, 32 αντίστοιχα

Αλγόριθμος Μελέτη_Πίνακα
  Δεδομένα // Α //
  Για i από 1 μέχρι 5
    ΣΥΧΝΟΤΗΤΑ[i]  0  ! αρχικοποίηση πίνακα μετρητών
  Τέλος_επανάληψης
  Για i από 1 μέχρι 100
    Επίλεξε Α[i]
     Περίπτωση 1
       ΣΥΧΝΟΤΗΤΑ[1]  ΣΥΧΝΟΤΗΤΑ[1] + 1
     Περίπτωση 9
       ΣΥΧΝΟΤΗΤΑ[2]  ΣΥΧΝΟΤΗΤΑ[2] + 1
     Περίπτωση 11
       ΣΥΧΝΟΤΗΤΑ[3]  ΣΥΧΝΟΤΗΤΑ[3] + 1
     Περίπτωση 25
       ΣΥΧΝΟΤΗΤΑ[4]  ΣΥΧΝΟΤΗΤΑ[4] + 1
     Περίπτωση Αλλιώς ! 32
       ΣΥΧΝΟΤΗΤΑ[5]  ΣΥΧΝΟΤΗΤΑ[5] + 1
    Τέλος_Επιλογών
  Τέλος_επανάληψης
  Αποτελέσματα // ΣΥΧΝΟΤΗΤΑ //
Τέλος Μελέτη_Πίνακα

  Άσκηση 6. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένο μονοδιάστατο πίνακα Ν αριθμών θα ελέγχει αν τα συμμετρικά του στοιχεία είναι ίσα.

Λύση
Αλγόριθμος Συμμετρικός_Πίνακας
  Δεδομένα // Ν, Α //
  συμμετρικός  αληθής    !  έστω οι ο πίνακας είναι συμμετρικός
  Για i από 1 μέχριdiv 2)  !  έλεγχος μέχρι το μέσο του πίνακα
    Αν Α[i] <> Α[Ν + 1 - i] τότε !  αν βρεθεί έστω και ένα ζευγάρι άνισων τιμών τότε ο πίνακας δεν είναι συμμετρικός
      συμμετρικός  ψευδής
    Τέλος_αν
  Τέλος_επανάληψης
  Αν (συμμετρικός = αληθής) τότε
    Εκτύπωσε "Συμμετρικός πίνακας"
  Αλλιώς
    Εκτύπωσε "Όχι συμμετρικός πίνακας"
  Τέλος_αν
Τέλος Συμμετρικός_Πίνακας

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

Αλγόριθμος Συμμετρικός_Πίνακας_Εναλ
  Δεδομένα // Ν, Α //
  συμμετρικός  αληθής
  i  1
  Όσο (i <= N div 2) και (συμμετρικός = αληθής) επανάλαβε
    Αν Α[i] <> Α[Ν + 1 - i] τότε
      συμμετρικός < ψευδής
    Αλλιώς
      i  i + 1
    Τέλος_αν
  Τέλος_επανάληψης
  Αν (συμμετρικός = αληθής) τότε
    Εκτύπωσε "Συμμετρικός πίνακας"
  Αλλιώς
    Εκτύπωσε "Όχισυμμετρικός πίνακας"
  Τέλος_αν
Τέλος Συμμετρικός_Πίνακας_Εναλ

  Άσκηση 7. Ο καθηγητής πληροφορικής θέλει να επεξεργαστεί στατιστικά την απόδοση των μαθητών στο μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Από τη μηχανογράφηση του σχολείου λαμβάνονται με ηλεκτρονικό τρόπο οι προφορικοί βαθμοί των δυο τετραμήνων και οι γραπτοί βαθμοί μαθητών στις εξετάσεις. Έχοντας υπόψην οτι ο μέσος προφορικός βαθμός διορθώνεται στην περίπτωση που η διαφορά του με τον γραπτό βαθμό είναι μεγαλύτερη των 2 μονάδων και πως τα ποσοστά συμμετοχής των παραπάνω στο βαθμό πρόσβσης είναι 30% και 70 % αντίστοιχα, να αναπτυχθεί αλγόριθμος που:
i. Θα υπολογίζει και θα εκτυπώνει τους βαθμούς πρόσβασης όλων των μαθητών
ii. Θα εκτυπώνει τα ονόματα των μαθητών με βαθμό πρόσβασης μικρότερο από 9.5
iii. Θα εκτυπώνει τα ονόματα των μαθητών με βαθμό πρόσβασης μεγαλύτερο από 18
iv. Ποιός είναι  ο μέγιστος βαθμός πρόσβασης;
v. Πόσοι μαθητές έχουν βαθμός πρόσβασης ίσο με τον μέγιστο;

Λύση
Αλγόριθμος Εξαγωγή_Αποτελεσμάτων
  Δεδομένα // ΟΝΟΜΑ, Α_ΤΕΤΡΑΜΗΝΟ, Β_ΤΕΤΡΑΜΗΝΟ, ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ //
  Πλήθος  50000
  Για i από 1 μέχρι Πλήθος
    προφορικός_βαθμός  (Α_ΤΕΤΡΑΜΗΝΟ[i] + Β_ΤΕΤΡΑΜΗΝΟ[i]) / 2
    Αν (προφορικός_βαθμός - ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ[i] > 2) τότε ! διόρθωση βαθμού
      προφορικός_βαθμός  ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ[i] + 2
    Αλλιώς_Αν (ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ[i] - προφορικός_βαθμός > 2) τότε
      προφορικός_βαθμός  ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ[i] - 2
    Τέλος_αν
    ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i]  0.7 * ΓΡΑΠΤΟΣ_ΒΑΘΜΟΣ[i] + 0,3 * προφορικός_βαθμός ! υπολογισμός βαθμού πρόσβασης
  Τέλος_επανάληψης
  Εκτύπωσε "Βαθμοί πρόσβασης < 9.5" ! ερώτημα ii
  Για i από 1 μέχρι Πλήθος
    Αν (ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i] < 9.5) τότε
      Εκτύπωσε ΟΝΟΜΑ[i], ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i]
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Βαθμοί πρόσβασης >= 18" ! ερώτημα iii
  Για i από 1 μέχρι Πλήθος
    Αν (ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i] >= 18) τότε
      Εκτύπωσε ΟΝΟΜΑ[i], ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i]
    Τέλος_αν
  Τέλος_επανάληψης
  μέγιστος < ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[1] ! ερώτημα iv
  Για i από 2 μέχρι 30
    Αν (ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i] > μέγιστος) τότε
      μέγιστος  ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i]
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Ο μεγαλύτερος βαθμός πρόσβασης είναι ", ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[θέση] ! τέλος ερώτημα iv
  ! Για την επίλυση του ερωτήματος "v" θα προσπελάσουμε ξανά τον πίνακα ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ, για τον εντοπισμό τιμών ίσων με το μέγιστο 
  Εκτύπωσε "Ακολουθουν οι βαθμοί πρόσβασης ίσοι με τον μέγιστο" ! ερώτημα v
  Για i από 1 μέχρι 30
    Αν (ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i] = μέγιστος) τότε
      Εκτύπωσε ΒΑΘΜΟΣ_ΠΡΟΣΒΑΣΗΣ[i]
    Τέλος_αν
  Τέλος_επανάληψης ! τέλος ερώτημα v
Τέλος Εξαγωγή_Αποτελεσμάτων

  Άσκηση 8. Η τράπεζα του κου Αρβίλογλου διαθέτει πελατολόγιο 15000 κατόχων πιστωτικής κάρτας σε ολόκληρη την Ελλάδα. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία των πελατών της τράπεζας και των οφειλών τους θα εκτυπώνει:
i.   Τα ονόματα των πελατών της τράπεζας με οφειλές πάνω του μέσου όρου
ii.  Τα ονόματα των πελατών με μηδενικές οφειλές
iii. Ποιά είναι η μεγαλύτερη οφειλή προς την τράπεζα
iv. Ποιοι πελάτες έχουν οφειλή ίση με την μέγιστη

Λύση
Αλγόριθμος Πιστωτικές_Κάρτες
  Δεδομένα // ΟΝΟΜΑΤΑ, ΟΦΕΙΛΕΣ //
  Πλήθος  15000
  άθροισμα  0      !  ερώτημα i
  Για i από 1 μέχρι Πλήθος
    άθροισμα  άθροισμα + ΟΦΕΙΛΕΣ[i]
  Τέλος_επανάληψης
  μέσος_όρος  άθροισμα / Πλήθος
  Εκτύπωσε "Ακολουθούν τα ονόματα πελατών με οφειλές πάνω του μέσου όρου"
  Για i από 1 μέχρι Πλήθος
    Αν (ΟΦΕΙΛΕΣ[i] > μέσος_όρος) τότε
      Εκτύπωσε ΟΝΟΜΑ[i]
    Τέλος_αν
  Τέλος_επανάληψης        !  τέλος ερώτημα i
  Εκτύπωσε "Ακολουθούν τα ονόματα πελατών με μηδενικές οφειλές"  !  ερώτημα ii
  Για i από 1 μέχρι Πλήθος
    Αν (ΟΦΕΙΛΕΣ[i] = 0) τότε
            Εκτύπωσε ΟΝΟΜΑ[i]
    Τέλος_αν
  Τέλος_επανάληψης      !  τέλος ερώτημα ii
  μέγιστος  ΟΦΕΙΛΕΣ[1]   !  ερώτημα iii
  Για i από 2 μέχρι 30
    Αν (ΟΦΕΙΛΕΣ[i] > μέγιστος) τότε
      μέγιστος ΟΦΕΙΛΕΣ[i]
    Τέλος_αν
  Τέλος_επανάληψης
  απο Εκτύπωσε "Ο πελάτης με τη μέγιστη οφειλή είναι ", μέγιστος
  Εκτύπωσε "Οι πελάτης με τέτοια οφειλή είναι οι ακόλουθοι"     !  τέλος ερώτημα iii
  Για i από 1 μέχρι 30   !  ερώτημα iv
    Αν (ΟΦΕΙΛΕΣ[i] = μέγιστος) τότε
            Εκτύπωσε ΟΝΟΜΑ[i]
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος Πιστωτικές_Κάρτες

  Άσκηση 9. Το τμήμα μισθοδοσίας καταχωρεί τις εισπράξεις της αλυσίδας των 30 καταστημάτων "Γιαρίτσιος ΑΕ" που διαθέτει σε έναν πίνακα. Αντίστοιχα, σε έναν πίνακα 30 θέσεων καταχωρούνται τα ονόματα - επωνυμία των καταστημάτων. Να αναπτυχθεί αλγόριθμος όπου:
i.   Να εκτυπώνει το όνομα του καταστήματος με τις μεγαλύτερες εισπράξεις
ii.  Να εκτυπώνει το όνομα του καταστήματος με τις μικρότερες εισπράξεις
iii. Να υπολογίζει και να εκτυπώνει το σύνολο των εισπράξεων της εταιρείας και τον μέσο όρο για κάθε κατάστημα

Λύση
Αλγόριθμος Αλυσίδα_Καταστημάτων
  Για i από 1 μέχρι 30
    Διάβασε ΟΝΟΜΑ[i], ΕΙΣΠΡΑΞΕΙΣ[i]
  Τέλος_επανάληψης
  μέγιστος  ΕΙΣΠΡΑΞΕΙΣ[1] ! ερώτημα i
  θέση  1
  Για i από 2 μέχρι 30
    Αν (ΕΙΣΠΡΑΞΕΙΣ[i] > μέγιστος) τότε
      μέγιστος  ΕΙΣΠΡΑΞΕΙΣ[i]
      θέση  i
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Το κατάστημα με τις μεγαλύτερες εισπράξεις είναι το ", ΟΝΟΜΑ[θέση] ! τέλος ερώτημα i
  ελάχιστος  ΕΙΣΠΡΑΞΕΙΣ[1] ! ερώτημα ii
  θέση  1
  Για i από 2 μέχρι 30
    Αν (ΕΙΣΠΡΑΞΕΙΣ[i] < ελάχιστος) τότε
      ελάχιστος  ΕΙΣΠΡΑΞΕΙΣ[i]
      θέση  i
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Το κατάστημα με τις λιγότερες εισπράξεις είναι το ", ΟΝΟΜΑ[θέση] ! τέλος ερώτημα ii
  άθροισμα ! ερώτημα iii
  Για i από 1 μέχρι 30
    άθροισμα  άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i]
  Τέλος_επανάληψης
  μέσος_όρος  άθροισμα / 30
  Εκτύπωσε "Το άθροισμα των εισπράξεων είναι ", άθροισμα
  Εκτύπωσε "Ο μέσος όρος των εισπράξεων ανά κατάστημα είναι ", μέσος_όρος
Τέλος Αλυσίδα_Καταστημάτων

Ημερομηνία τελευταίας τροποποίησης: 30/1/2006
Επικοινωνία: Τσιωτάκης Παναγιώτης