Μάθημα : ΓΕΛ Γ - ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Κωδικός : 0754020319

G-GEL - ΔΗΜΗΤΡΙΟΣ ΜΑΣΣΑΣ

Ενότητες μαθήματος

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ-ΤΥΠΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ (ΠΡΑΞΕΙΣ)

Υπολογισμός αθροισμάτων στοιχείων

ΠΡΟΓΡΑΜΜΑ Εύρεση_αθροίσματος_στοιχείων_ενός_μονοδιάστατου_πίνακα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, Πίνακας1[30], sum
ΑΡΧΗ
  Πίνακας1[1] <- 12
  Πίνακας1[2] <- 55
  Πίνακας1[3] <- 76
  Πίνακας1[4] <- 8
  Πίνακας1[5] <- 0
  Πίνακας1[6] <- 22
  Πίνακας1[7] <- 33
  Πίνακας1[8] <- 42
  Πίνακας1[9] <- 55
  Πίνακας1[10] <- 36
  Πίνακας1[11] <- 44
  Πίνακας1[12] <- 75
  Πίνακας1[13] <- 82
  Πίνακας1[14] <- 99
  Πίνακας1[15] <- 100
  Πίνακας1[16] <- 1
  Πίνακας1[17] <- 8
  Πίνακας1[18] <- 11
  Πίνακας1[19] <- 16
  Πίνακας1[20] <- 23
  Πίνακας1[21] <- 41
  Πίνακας1[22] <- 21
  Πίνακας1[23] <- 66
  Πίνακας1[24] <- 35
  Πίνακας1[25] <- 8
  Πίνακας1[26] <- 7
  Πίνακας1[27] <- 72
  Πίνακας1[28] <- 43
  Πίνακας1[29] <- 72
  Πίνακας1[30] <- 11

  sum <- 0

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
    sum <- sum + Πίνακας1[i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ "Το άθροισμα των στοιχείων του πίνακα είναι το: ", sum
 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Εύρεση_αθροίσματος_στοιχείων_ενός_μονοδιάστατου_πίνακα 

Εύρεση του μέγιστου ή του ελάχιστου

ΠΡΟΓΡΑΜΜΑ Εύρεση_του_μικρότερου_στοιχείου_ενός_μονοδιάστατου_πίνακα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, Πίνακας1[30], minimum
ΑΡΧΗ
  Πίνακας1[1] <- 12
  Πίνακας1[2] <- 55
  Πίνακας1[3] <- 76
  Πίνακας1[4] <- 8
  Πίνακας1[5] <- 0
  Πίνακας1[6] <- 22
  Πίνακας1[7] <- 33
  Πίνακας1[8] <- 42
  Πίνακας1[9] <- 55
  Πίνακας1[10] <- 36
  Πίνακας1[11] <- 44
  Πίνακας1[12] <- 75
  Πίνακας1[13] <- 82
  Πίνακας1[14] <- 99
  Πίνακας1[15] <- 100
  Πίνακας1[16] <- 1
  Πίνακας1[17] <- 8
  Πίνακας1[18] <- 11
  Πίνακας1[19] <- 16
  Πίνακας1[20] <- 23
  Πίνακας1[21] <- 41
  Πίνακας1[22] <- 21
  Πίνακας1[23] <- 66
  Πίνακας1[24] <- 35
  Πίνακας1[25] <- 8
  Πίνακας1[26] <- 7
  Πίνακας1[27] <- 72
  Πίνακας1[28] <- 43
  Πίνακας1[29] <- 72
  Πίνακας1[30] <- 11

minimum  <- Πίνακας1[1]

ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Πίνακας1[i] < minimum ΤΟΤΕ
minimum <- Πίνακας1[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "Το μικρότερο στοιχείο του πίνακα είναι το: ", minimum
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Εύρεση_του_μικρότερου_στοιχείου_ενός_μονοδιάστατου_πίνακα

Ταξινόμηση των στοιχείων

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_Φυσαλίδας_BUBBLE_SORT_ΕΥΘΕΙΑΣ_ΑΝΤΑΛΛΑΓΗΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, Πίνακας1[30], temp
ΑΡΧΗ
  Πίνακας1[1] <- 12
  Πίνακας1[2] <- 55
  Πίνακας1[3] <- 76
  Πίνακας1[4] <- 8
  Πίνακας1[5] <- 0
  Πίνακας1[6] <- 22
  Πίνακας1[7] <- 33
  Πίνακας1[8] <- 42
  Πίνακας1[9] <- 55
  Πίνακας1[10] <- 36
  Πίνακας1[11] <- 44
  Πίνακας1[12] <- 75
  Πίνακας1[13] <- 82
  Πίνακας1[14] <- 99
  Πίνακας1[15] <- 100
  Πίνακας1[16] <- 1
  Πίνακας1[17] <- 8
  Πίνακας1[18] <- 11
  Πίνακας1[19] <- 16
  Πίνακας1[20] <- 23
  Πίνακας1[21] <- 41
  Πίνακας1[22] <- 21
  Πίνακας1[23] <- 66
  Πίνακας1[24] <- 35
  Πίνακας1[25] <- 8
  Πίνακας1[26] <- 7
  Πίνακας1[27] <- 72
  Πίνακας1[28] <- 43
  Πίνακας1[29] <- 72
  Πίνακας1[30] <- 11

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 30
    ΓΙΑ j ΑΠΟ 30 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
      ΑΝ Πίνακας1[j - 1] > Πίνακας1[j] ΤΟΤΕ
        temp <- Πίνακας1[j - 1] 
        Πίνακας1[j - 1] <- Πίνακας1[j] 
        Πίνακας1[j] <- temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ "Ο ταξινομημένος πίνακας είναι: "
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
    ΓΡΑΨΕ Πίνακας1[i], ", "
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Ταξινόμηση_Φυσαλίδας_BUBBLE_SORT_ΕΥΘΕΙΑΣ_ΑΝΤΑΛΛΑΓΗΣ 

Αναζήτηση ενός στοιχείου

ΠΡΟΓΡΑΜΜΑ Σειριακή_Αναζήτηση
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, Πίνακας1[30], num, position
ΑΡΧΗ
  Πίνακας1[1] <- 12
  Πίνακας1[2] <- 55
  Πίνακας1[3] <- 76
  Πίνακας1[4] <- 8
  Πίνακας1[5] <- 0
  Πίνακας1[6] <- 22
  Πίνακας1[7] <- 33
  Πίνακας1[8] <- 42
  Πίνακας1[9] <- 55
  Πίνακας1[10] <- 36
  Πίνακας1[11] <- 44
  Πίνακας1[12] <- 75
  Πίνακας1[13] <- 82
  Πίνακας1[14] <- 99
  Πίνακας1[15] <- 100
  Πίνακας1[16] <- 1
  Πίνακας1[17] <- 8
  Πίνακας1[18] <- 11
  Πίνακας1[19] <- 16
  Πίνακας1[20] <- 23
  Πίνακας1[21] <- 41
  Πίνακας1[22] <- 21
  Πίνακας1[23] <- 66
  Πίνακας1[24] <- 35
  Πίνακας1[25] <- 8
  Πίνακας1[26] <- 7
  Πίνακας1[27] <- 72
  Πίνακας1[28] <- 43
  Πίνακας1[29] <- 72
  Πίνακας1[30] <- 11

  ΓΡΑΨΕ "Ποιός είναι ο αριθμός προς αναζήτηση στον πίνακα; "
  ΔΙΑΒΑΣΕ num

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
    ΑΝ Πίνακας1[i] = num ΤΟΤΕ
      position <- i
      ΓΡΑΨΕ "Ο αριθμός αναζήτησης ", num, " Βρέθηκε στη θέση ", position, " του πίνακα."
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Σειριακή_Αναζήτηση

ΠΡΟΓΡΑΜΜΑ Δυαδική_Αναζήτηση_σε_ταξινομημένο_πίνακα
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Πίνακας[Μέγεθος_Πίνακα] 
ΑΡΧΗ

  ΚΑΛΕΣΕ Γέμισμα_μονοδιάστατου_πίνακα_με_αριθμούς(Πίνακας) 
  ΚΑΛΕΣΕ Προβολή_Πίνακα (Πίνακας) 
  ΚΑΛΕΣΕ Ταξινόμηση_Φυσαλίδας(Πίνακας) 
  ΚΑΛΕΣΕ Δυαδική_Αναζήτηση(Πίνακας) 

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Δυαδική_Αναζήτηση_σε_ταξινομημένο_πίνακα

!------------------------
ΔΙΑΔΙΚΑΣΙΑ Γέμισμα_μονοδιάστατου_πίνακα_με_αριθμούς (Πίνακας1) 
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Πίνακας1[Μέγεθος_Πίνακα] 
ΑΡΧΗ
  Πίνακας1[1] <- 12
  Πίνακας1[2] <- 55
  Πίνακας1[3] <- 76
  Πίνακας1[4] <- 8
  Πίνακας1[5] <- 0
  Πίνακας1[6] <- 22
  Πίνακας1[7] <- 33
  Πίνακας1[8] <- 42
  Πίνακας1[9] <- 55
  Πίνακας1[10] <- 36
  Πίνακας1[11] <- 44
  Πίνακας1[12] <- 75
  Πίνακας1[13] <- 82
  Πίνακας1[14] <- 99
  Πίνακας1[15] <- 100
  Πίνακας1[16] <- 1
  Πίνακας1[17] <- 8
  Πίνακας1[18] <- 11
  Πίνακας1[19] <- 16
  Πίνακας1[20] <- 23
  Πίνακας1[21] <- 41
  Πίνακας1[22] <- 21
  Πίνακας1[23] <- 66
  Πίνακας1[24] <- 35
  Πίνακας1[25] <- 8
  Πίνακας1[26] <- 7
  Πίνακας1[27] <- 72
  Πίνακας1[28] <- 43
  Πίνακας1[29] <- 72
  Πίνακας1[30] <- 11

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Γέμισμα_μονοδιάστατου_πίνακα_με_αριθμούς

!------------------------
ΔΙΑΔΙΚΑΣΙΑ Προβολή_Πίνακα (Πίνακας1) 
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Δείκτης_Πίνακα, Πίνακας1[Μέγεθος_Πίνακα] 
ΑΡΧΗ
  ΓΙΑ Δείκτης_Πίνακα ΑΠΟ 1 ΜΕΧΡΙ 30
    ΓΡΑΨΕ (Πίνακας1[Δείκτης_Πίνακα]), ", "
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Προβολή_Πίνακα 

!------------------------
ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση_Φυσαλίδας(Πίνακας1) 
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, Πίνακας1[Μέγεθος_Πίνακα], temp
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 30
    ΓΙΑ j ΑΠΟ 30 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
      ΑΝ Πίνακας1[j - 1] > Πίνακας1[j] ΤΟΤΕ
        temp <- Πίνακας1[j - 1] 
        Πίνακας1[j - 1] <- Πίνακας1[j] 
        Πίνακας1[j] <- temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ "Ο ταξινομημένος πίνακας είναι: "
  ΓΡΑΨΕ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 30
    ΓΡΑΨΕ Πίνακας1[i], ", "
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Ταξινόμηση_Φυσαλίδας 

!------------------------
ΔΙΑΔΙΚΑΣΙΑ Δυαδική_Αναζήτηση (Πίνακας1) 
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Πίνακας1[Μέγεθος_Πίνακα], min, max, βήματα, αρχη_, τελος, μεση, απαντηση
  ΛΟΓΙΚΕΣ: βρεθηκε
 
ΑΡΧΗ
  min <- Εύρεση_ελάχιστου_σε_ταξινομημένο_Πίνακα(Πίνακας1) 
  max <- Εύρεση_Μέγιστου_σε_ταξινομημένο_Πίνακα(Πίνακας1) 

  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ
    ΓΡΑΨΕ 'Δώσε τον αριθμό προς αναζήτηση από το ', min, ' μέχρι το ', max, ': '
    ΔΙΑΒΑΣΕ απαντηση
  ΜΕΧΡΙΣ_ΟΤΟΥ απαντηση >= min ΚΑΙ απαντηση <= max
 

  αρχη_ <- 1
  τελος <- Μέγεθος_Πίνακα
  βήματα <- 0
  βρεθηκε <- ΨΕΥΔΗΣ
  ΟΣΟ αρχη_ <= τελος ΚΑΙ βρεθηκε = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    βήματα <- βήματα + 1
    μεση <- (αρχη_ + τελος) DIV 2
   
    ΓΡΑΨΕ 'Αριθμός προς αναζήτηση: ', απαντηση, ' ,Αρχή: ', αρχη_, ' ,Μέση: ', μεση, ' ,Τέλος: ', τελος

    ΑΝ Πίνακας1[μεση] = απαντηση ΤΟΤΕ
      βρεθηκε <- ΑΛΗΘΗΣ
    ΑΛΛΙΩΣ_ΑΝ Πίνακας1[μεση] < απαντηση ΤΟΤΕ
      αρχη_ <- μεση + 1
    ΑΛΛΙΩΣ
      τελος <- μεση - 1
    ΤΕΛΟΣ_ΑΝ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ βρεθηκε = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'Ο αριθμός ', απαντηση, ' βρέθηκε στη θέση: ', μεση, ' μετά από ', βήματα, ' βήματα.'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Ο αριθμός ', απαντηση, ' ΔΕΝ βρέθηκε.'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Δυαδική_Αναζήτηση 

!------------------------
ΣΥΝΑΡΤΗΣΗ Εύρεση_ελάχιστου_σε_ταξινομημένο_Πίνακα(Πίνακας1): ΑΚΕΡΑΙΑ
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ

  ΑΚΕΡΑΙΕΣ: Πίνακας1[Μέγεθος_Πίνακα] 
ΑΡΧΗ
  Εύρεση_ελάχιστου_σε_ταξινομημένο_Πίνακα <- Πίνακας1[1] 
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

!------------------------
ΣΥΝΑΡΤΗΣΗ Εύρεση_Μέγιστου_σε_ταξινομημένο_Πίνακα(Πίνακας1): ΑΚΕΡΑΙΑ
ΣΤΑΘΕΡΕΣ
  Μέγεθος_Πίνακα = 30
ΜΕΤΑΒΛΗΤΕΣ

  ΑΚΕΡΑΙΕΣ: Πίνακας1[Μέγεθος_Πίνακα] 
ΑΡΧΗ
  Εύρεση_Μέγιστου_σε_ταξινομημένο_Πίνακα <- Πίνακας1[Μέγεθος_Πίνακα] 
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ 

Συγχώνευση

ΠΡΟΓΡΑΜΜΑ Συγχώνευση_2_ταξινομημένων_πινάκων
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α[30], Β[30], Γ[60], I, J, Κ, Ν, Μ, Λ
! Α και Β αρχικοί πίνακες
! Γ τελικός πίνακας
ΑΡΧΗ
! Γέμισμα πινάκων
  Α[1] <- 7
  Α[2] <- 9
  Α[3] <- 10
  Α[4] <- 11
  Α[5] <- 16
  Α[6] <- 22
  Α[7] <- 24
  Α[8] <- 25
  Α[9] <- 26
  Α[10] <- 28
  Α[11] <- 30
  Α[12] <- 32
  Α[13] <- 44
  Α[14] <- 45
  Α[15] <- 46
  Α[16] <- 47
  Α[17] <- 52
  Α[18] <- 53
  Α[19] <- 54
  Α[20] <- 59
  Α[21] <- 61
  Α[22] <- 62
  Α[23] <- 63
  Α[24] <- 65
  Α[25] <- 71
  Α[26] <- 73
  Α[27] <- 74
  Α[28] <- 80
  Α[29] <- 92
  Α[30] <- 100

  Β[1] <- 0
  Β[2] <- 1
  Β[3] <- 3
  Β[4] <- 5
  Β[5] <- 12
  Β[6] <- 20
  Β[7] <- 24
  Β[8] <- 25
  Β[9] <- 26
  Β[10] <- 29
  Β[11] <- 35
  Β[12] <- 36
  Β[13] <- 44
  Β[14] <- 45
  Β[15] <- 46
  Β[16] <- 47
  Β[17] <- 55
  Β[18] <- 56
  Β[19] <- 57
  Β[20] <- 59
  Β[21] <- 60
  Β[22] <- 61
  Β[23] <- 62
  Β[24] <- 63
  Β[25] <- 66
  Β[26] <- 68
  Β[27] <- 71
  Β[28] <- 77
  Β[29] <- 95
  Β[30] <- 99

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