Καθηγητής Πληροφορικής, ΠΕ86

9.1

Μονοδιάστατοι πίνακες
 ΣΥΖΗΤΗΣΕΙΣ ΕΝΟΤΗΤΑΣ

ΘΕΩΡΙΑ – ΠΑΡΑΔΕΙΓΜΑΤΑ

Από το σχολικό βιβλίο:

Κ9Α ΘΕΩΡΙΑ ΠΒ

Σημειώσεις – Διαφάνειες:

ΔΙΑΦΑΝΕΙΕΣ – (424η μέχρι 450η)

MORE…

Βιντεομαθήματα:

Μονοδιάστατοι Πίνακες 1 – ΣΠΥΡΟΣ ΓΕΩΡΓΙΟΣ ΖΥΓΟΥΡΗΣ

Μονοδιάστατοι Πίνακες 2 – ΣΠΥΡΟΣ ΓΕΩΡΓΙΟΣ ΖΥΓΟΥΡΗΣ

Μονοδιάστατοι Πίνακες 3 – ΣΠΥΡΟΣ ΓΕΩΡΓΙΟΣ ΖΥΓΟΥΡΗΣ

Μονοδιάστατοι Πίνακες 4 – ΣΠΥΡΟΣ ΓΕΩΡΓΙΟΣ ΖΥΓΟΥΡΗΣ

Μονοδιάστατοι Πίνακες 5 – ΣΠΥΡΟΣ ΓΕΩΡΓΙΟΣ ΖΥΓΟΥΡΗΣ

ΕΡΩΤΗΣΕΙΣ

Από το σχολικό βιβλίο:

Από άλλο υλικό:

ΑΣΚΗΣΕΙΣ

Από το σχολικό βιβλίο:

Από άλλο υλικό:

Άσκηση 1

Να πραγματοποιηθεί πρόγραμμα το οποίο θα καταχωρεί σε ένα πίνακα 200 θέσεων , 200 τυχαίους ακέραιους  αριθμούς και στη συνέχεια θα υπολογίζει το πλήθος των αρτίων. ( Θεωρήστε ότι οι αριθμοί που θα εισάγει ο χρήστης θα είναι ακέραιοι).

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_1
ΜΕΤΑΒΛΗΤΕΣ
​ ΑΚΕΡΑΙΕΣ:Ι,Π,Α[200]

ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΓΡΑΨΕ ‘ΔΩΣΕ ΕΝΑΝ ΑΚΕΡΑΙΟ ΑΡΙΘΜΟ’
ΔΙΑΒΑΣΕ Α[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<–0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΑΝ Α[Ι] MOD 2 = 0 ΤΟΤΕ
Π<–Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΡΤΙΩΝ ΕΙΝΑΙ:’,Π
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 2

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

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ ‘ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ’
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<–1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]=’ΜΑΡΙΑ’ ΤΟΤΕ
Π<–Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΤΟ ΟΝΟΜΑ ΜΑΡΙΑ ΒΡΕΘΗΚΕ:’,Π, ‘ ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 3

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

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_3
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300],ΚΕΥ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ ‘ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ’
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ’ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ’
ΔΙΑΒΑΣΕ ΚΕΥ
Π<–1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]=ΚΕΥ ΤΟΤΕ
Π<–Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΤΟ ΟΝΟΜΑ:’,ΚΕΥ,’ ΒΡΕΘΗΚΕ:’,Π, ‘ ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 4

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

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_4
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30],ΟΝ_ΜΑΧ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ ‘ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ’
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<–Β[1]
ΟΝ_ΜΑΧ<–ΟΝ[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<–Β[Ι]
ΟΝ_ΜΑΧ<–ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΤΟ ΟΝΟΜΑ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:’,ΟΝ_ΜΑΧ
ΓΡΑΨΕ ‘Ο ΒΑΘΜΟΣ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:’,ΜΑΧ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 5

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

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_5
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ ‘ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ’
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<–Β[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<–Β[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΑΝ Β[Ι]=ΜΑΧ ΤΟΤΕ
ΓΡΑΨΕ ‘ΜΕΓΙΣΤΟ ΒΑΘΜΟ ΕΙΧΕ Ο/Η:’, ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 6

Μία εταιρία καταγράφει τα ετήσια έσοδά της σε ένα μονοδιάστατο πίνακα με την ονομασία «ΕΣΟΔΑ» και τα έξοδά της σε έναν αντίστοιχο με την ονομασία «ΕΞΟΔΑ». Να γραφεί πρόγραμμα το οποίο θα καταχωρεί τα στοιχεία εσόδων – εξόδων για την τελευταία δεκαετία και θα υπολογίζει πόσες φορές η εταιρία παρουσίασε έλλειμμα, είχε δηλαδή έξοδα περισσότερα από τα έσοδα. Στη συνέχεια θα δημιουργεί ένα νέο πίνακα με την ονομασία «ΚΕΡΔΟΣ», όπου θα υπολογίζει και θα καταχωρεί τα κέρδη για κάθε χρονιά και θα υπολογίζει τον μέσο όρο των κερδών της εταιρίας για την τελευταία δεκαετία. Τέλος θα εμφανίζει πόσες χρονιές τα κέρδη ήταν πάνω από τον μέσο όρο.

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_6
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π,Π2
ΠΡΑΓΜΑΤΙΚΕΣ: ΕΣΟΔΑ[10],ΕΞΟΔΑ[10],ΚΕΡΔΟΣ[10],Μ,Σ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ’ΔΩΣΕ ΤΑ ΕΣΟΔΑ ΚΑΙ ΤΑ ΕΞΟΔΑ ΤΟΥ’,Ι,’ου ΧΡΟΝΟΥ’
ΔΙΑΒΑΣΕ ΕΣΟΔΑ[Ι], ΕΞΟΔΑ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<–0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΕΞΟΔΑ[Ι] > ΕΣΟΔΑ[Ι] ΤΟΤΕ
Π<–Π+1
ΤΕΛΟΣ_ΑΝ
ΚΕΡΔΟΣ[Ι] <– ΕΣΟΔΑ[Ι] – ΕΞΟΔΑ[Ι]
Σ<–Σ+ΚΕΡΔΟΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Μ<–Σ/10
Π2<–0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΚΕΡΔΟΣ[Ι] > Μ ΤΟΤΕ
Π2<–Π2+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΠΑΡΟΥΣΙΑΣΤΙΚΕ ΕΛΛΕΙΜΑ:’,Π,’ ΧΡΟΝΙΕΣ’
ΓΡΑΨΕ ‘ΚΕΡΔΗ ΠΑΝΩ ΑΠΟ ΤΟ ΜΕΣΟ ΟΡΟ ΕΙΧΕ:’,Π2,’ ΧΡΟΝΙΕΣ’
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 7

Δίνονται τα ονόματα και τα τηλέφωνα 1000 ατόμων. Να δημιουργηθεί πρόγραμμα το οποίο θα καταχωρεί τα παραπάνω στοιχεία σε δυο μονοδιάστατους πίνακες. Στη συνέχεια θα ζητά από το χρήστη το όνομα ενός ατόμου και θα εμφανίζει το τηλέφωνό του, στην περίπτωση που δεν υπάρχει στον πίνακα θα εμφανίζει κατάλληλο μήνυμα. (Θεωρήστε ότι οι καταχωρήσεις είναι μοναδικές).

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΣΚ_7
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,POS,ΤΗΛ[1000]
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[1000],ΚΕΥ
ΛΟΓΙΚΕΣ D

ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ ‘ΔΩΣΕ ΤΟ’,Ι,’ο ΟΝΟΜΑ ΚΑΙ ΤΗΛΕΦΩΝΟ’
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ’
ΔΙΑΒΑΣΕ ΚΕΥ
Ι<–1
POS<–0
D<– ΨΕΥΔΗΣ
ΟΣΟ Ι<=1000 ΚΑΙ D = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ ΟΝ [Ι] = KEY ΤΟΤΕ
D<– ΑΛΗΘΗΣ
POS <– Ι
ΑΛΛΙΩΣ
Ι<–Ι+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ D = ΑΛΗΘΗΣ ΤΟΤΕ
ΓΡΑΨΕ ‘ΤΟ ΤΗΛΕΦΩΝΟ ΤΟΥ/ΤΗΣ’,ΚΕΥ ,’ ΕΙΝΑΙ:’,ΤΗΛ[POS]
ΑΛΛΙΩΣ
ΓΡΑΨΕ ‘ΔΕΝ ΒΡΕΘΗΚΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣ ΟΝΟΜΑ’
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 8

Δίνεται ο αρχικός πίνακας Α[9] = [3, 4, 7, 10, 11, 6, 4, 2, 9]. Να υπολογιστεί το άθροισμα των στοιχείων του, κατόπιν το μέγιστο και ελάχιστο στοιχείο του. (Άθροισμα, ελάχιστο, μέγιστο στοιχείων πίνακα).

Λύση

ΠΡΟΓΡΑΜΜΑ ΑΘΡΟΙΣΜΑ_ΜΙΝ_ΜΑΧ_ΜΟΝΟΔΙΑΣΤΑΤΟΥ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[9], i
ΑΡΧΗ
Α[1] <- 3
Α[2] <- 4
Α[3] <- 7
Α[4] <- 10
Α[5] <- 11
Α[6] <- 6
Α[7] <- 4
Α[8] <- 2
Α[9] <- 9
! ΆΘΡΟΙΣΜΑ ΣΤΟΙΧΕΙΩΝ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ
SUM <- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 9
SUM <- SUM + A[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! ΕΥΡΕΣΗ ΜΙΝ ΣΤΟΙΧΕΙΟΥ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ
ΜΙΝ <- Α[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 9
ΑΝ A[i] < ΜΙΝ ΤΟΤΕ
ΜΙΝ <- A[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! ΕΥΡΕΣΗ ΜΑΧ ΣΤΟΙΧΕΙΟΥ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ
ΜΑΧ <- Α[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 9
ΑΝ A[i] > ΜΑΧ ΤΟΤΕ
ΜΑΧ <- A[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 9

Δίνονται οι αρχικοί πίνακες Α[5] = [3, 4, 7, 10, 11] και Β[4] = [6, 4, 2, 9]. Να γίνει τελικός πίνακας Γ[9] όπου θα αντιγράφουν στις πρώτες 5 θέσεις τα στοιχεία του πίνακα Α και στις υπόλοιπες τα στοιχεία του πίνακα Β.

Λύση

ΠΡΟΓΡΑΜΜΑ ΕΝΩΣΗ_ΠΙΝΑΚΩΝ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[5], Β[4], Γ[9], i, j, k
ΑΡΧΗ
! εισαγωγή στοιχείων πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
Γ[i] <- Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! α τρόπος
ΓΙΑ i ΑΠΟ 6 ΜΕΧΡΙ 9
Γ[i] <- Β[i-5]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! b τρόπος
j <- 1 ! ξεχωριστός δείκτης για τον πίνακα β
ΓΙΑ i ΑΠΟ 6 ΜΕΧΡΙ 9 (4 επαναλήψεις)
Γ[i] <- Β[j]
j <- j + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΈΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 10

Δίνονται οι πίνακες Α[12] και Β[5] και Γ[7]. Να αντιγραφούν τα 5 πρώτα στοιχεία του Α στον Β και τα υπόλοιπα στον Γ.

Λύση

ΠΡΟΓΡΑΜΜΑ ΔΙΑΧΩΡΙΣΜΟΣ_ΠΙΝΑΚΩΝ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[12], Β[5], Γ[7], i, j, k
ΑΡΧΗ
! εισαγωγή στοιχείων πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 7
Β[i] <- Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!α τρόπος
j <- 1
ΓΙΑ i ΑΠΟ 8 ΜΕΧΡΙ 12 ! 5 επαναλήψεις
Γ[j] <- Α[i]
j <- j +1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!β τρόπος
ΓΙΑ i ΑΠΟ 8 ΜΕΧΡΙ 12 ! 5 επαναλήψεις
Γ[i-7] <- Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΈΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 11

Δίνονται οι πίνακες Α[10] και Β[10] και Γ[20]. Να αντιγραφούν τα στοιχεία του πίνακα Α και Β εναλλάξ στον πίνακα Γ, δηλαδή Γ[1] = Α[1], Γ[2]=Β[1] κοκ.

Λύση

ΠΡΟΓΡΑΜΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΙ_11
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[12], Β[5], Γ[7], i, j, k
ΑΡΧΗ
! εισαγωγή στοιχείων πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
ΔΙΑΒΑΣΕ Α[i], B[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
j <- 1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 19 ΜΕ ΒΗΜΑ_2
Γ[i] <- A[j]
j <- j + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
k <- 1
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 20 ΜΕ ΒΗΜΑ_2
Γ[i] <- B[k]
k <- k+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 12

Δίνονται οι πίνακες Α[10], Β[10]. Να αντιγραφούν τα στοιχεία του πίνακα Α στον πίνακα Β ως εξής: Β[10]<- Α[1], Β[9]<- Α[2].

Λύση

ΠΡΟΓΡΑΜΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΙ_12
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[10], i, B[10], j
ΑΡΧΗ
j <- 10
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
Β[j] <- A[i]
j <- j-1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!β τρόπος (μαθηματική σχέση με τον i)
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
Β[10-i+1]<- A[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 13

Δίνεται οι πίνακας Α[11]. Να αντιστραφούν τα στοιχεία του πίνακα Α ως προς το στοιχείο 6 ως εξής:
Α[1]<->Α[11], Α[2]<->Α[10], Α[3]<->Α[9], Α[4]<->Α[8], Α[5]<->Α[7].

Λύση

ΠΡΟΓΡΑΜΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΙ_13
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[11], i
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
tmp <- A[i]
A[i] <- A[11-i+1]
A[11-i+1] <- temp
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Λύση με βοηθητικό πίνακα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
B[i] <- A[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
j <- 1
ΓΙΑ i ΑΠΟ 11 ΜΕΧΡΙ 7
A[j] <- A[i]
j <- j+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
j <- 1
ΓΙΑ i ΑΠΟ 11 ΜΕΧΡΙ 7
A[i]<- B[j]
j<- j+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 14

Δίνεται ο αρχικός πίνακας Α[6] και ο τελικός Β [12]. Να αντιγραφούν σε διπλότυπα τα στοιχεία του πίνακα Α στον πίνακα Β. Δηλαδή Α[1] = Β [1] = Β [2] κοκ.

Λύση

ΠΡΟΓΡΑΜΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΙ_14
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Α[6], Β[12], i, j
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 6
ΔΙΑΒΑΣΕ Α[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! α τρόπος
! j=1,3,5,7,9,11 (6 τιμές)
! j+1=2,4,6,8,10,12

j <- 1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 6
Β [j] <- Α[i]
Β [j+1] <- Α[i]
j <- j + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! β τρόπος
! j=1,3,5,7,9,11 (6 τιμές)
j <- 1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 6
Β [j] <- Α[i]
j <- j + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! j=2,4,6,8,10,12 (6 τιμές)
j <- 2
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 6
Β [j] <- Α[i]
j <- j + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 15

Να εισάγετε σε πίνακες Ο και Β 100 θέσεων τα ονόματα 100 μαθητών και τους βαθμούς τους ένα μάθημα. Στη συνέχεια να δημιουργήσετε τους πίνακες Ο1 και Β1 πάλι 100 θέσεων και γεμίστε με ‘ – ‘ τον Ο1 και με -1 τον Β1.
Το πρόγραμμα που θα φτιάξετε να ελέγχει ποιοι μαθητές έχουν βαθμό μεγαλύτερο απο 17,5 και να τοποθετεί τα ονόματα και τους βαθμούς τους στις πρώτες θέσεις των πινάκων Ο1 και Β1 αντίστοιχα. Τέλος να γίνει φθίνουσα ταξιμόμηση του πίνακα Β1 και να εμφανίσετε τα ονόματα και τους βαθμούς των μαθητών με βαθμό πάνω απο 17,5.​

Λύση

ΠΡΟΓΡΑΜΜΑ ΜΠ15
​ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ : Β[100], Β1[100]
ΧΑΡΑΚΤΗΡΕΣ : Ο[100], Ο1[100]
ΑΚΕΡΑΙΕΣ : ι, μ, κ, τ, τ1
ΑΡΧΗ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 100 !ΓΕΜΙΣΜΑ ΠΙΝΑΚΩΝ
ΔΙΑΒΑΣΕ Ο[ι], Β[ι]
Ο1[ι] <- ‘ – ‘
Β1[ι] <- -1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣκ<-0 !ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ Ο1, Β1
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΝ Β[ι] > 17.5 ΤΟΤΕ
κ<-κ+1
Β1[κ] <- Β[ι]
Ο1[κ]<- Ο[ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ κ !ΦΘΙΝΟΥΣΑ ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ Β1 ΚΑΙ Ο1
ΓΙΑ μ ΑΠΟ κ ΜΕΧΡΙ ι ΜΕ_ΒΗΜΑ -1
ΑΝ Β1[μ-1] < Β1[μ] ΤΟΤΕ
τ<-Β1[μ-1]
Β1[μ-1]<-Β1[μ]
Β1[μ]<-ττ1<-Ο1[μ-1]
Ο1[μ-1]<-Ο1[μ]
Ο1[μ]<-τ1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ κ
ΓΡΑΨΕ Ο1[ι], Β1[ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
​ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 16

Σε έναν πίνακα μπορούν να εισαχθούν μόνο οι αριθμοί 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
Τέλος_Επιλογών
Τέλος_επανάληψης
Αποτελέσματα // ΣΥΧΝΟΤΗΤΑ //
Τέλος Μελέτη_Πίνακα

Άσκηση 17

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

Λύση

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

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

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

Άσκηση 18

Ένας πίνακας χαρακτήρων Α[Ν] περιέχει χαρακτήρες, αλλά έναν μόνο χαρακτήρα σε κάθε θέση. Να γραφεί αλγόριθμος σε ψευδογλώσσα ο οποίος να κάνει μια κυκλική μετάθεση των στοιχείων προς τα δεξιά. Δηλαδή το πρώτο στοιχείο να γίνει δεύτερο, το δεύτερο τρίτο …κτλ μέχρι το τελευταίο στοιχείο, το οποίο πρέπει να γίνει πρώτο. Για παράδειγμα αν Α=[α,β,γ,δ] τότε μετά την εκτέλεση του αλγορίθμου Α=[δ,α,β,γ]. Τι αλλαγές πρέπει να κάνετε στον αλγόριθμο για να λειτουργείη μετάθεση αριστερόστροφα;

Λύση

Είναι μια γενίκευση της αντιμετάθεσης δύο αριθμών. Αρκεί να κρατήσουμε σε προσωρινή μνήμη το τελευταίο στοιχείο και μετά να μεταθέσουμε όλα τα υπόλοιπα. Τέλος βάζουμε την προσωρινή μνήμη στη σωστή θέση
Αλγόριθμος ΣβούραΔεξιά
Ν <-4
Α[1] <-‘α’
Α[2]<- ‘β’
Α[3]<- ‘γ’
Α[4]<- ‘δ’
προσ <-Α[Ν] ! κράτα το τελευταίο στοιχείο←
Για κ από Ν μέχρι 2 με_βήμα -1 ! από το τέλος προς την αρχή
Α[κ] <-Α[κ – 1] ! το κάθε στοιχείο μία θέση δεξιά
Τέλος_επανάληψης
Α[1] <-προσ ! το τελευταίο στοιχείο γίνεται πρώτο
Για κ από 1 μέχρι Ν
Εμφάνισε Α[κ], ” “
Τέλος_επανάληψης
Τέλος
Για να πετύχουμε την σβούρα προς τα αριστερά πρέπει να κρατήσουμε σε προσωρινή μνήμη το πρώτο στοιχείο, μετά να κάνουμε την μετάθεση των στοιχείων από την αρχή προς το τέλος (Α[κ]<- Α[κ+1] με όρια στην Για-απο-μέχρι το 1 έως Ν-1) και τέλος να τοποθετήσουμε την προσωρινή μνήμη στο τελευταίο στοιχείο.

Άσκηση 19

Ο καθηγητής πληροφορικής θέλει να επεξεργαστεί στατιστικά την απόδοση των μαθητών στο μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Από τη μηχανογράφηση του σχολείου λαμβάνονται με ηλεκτρονικό τρόπο οι προφορικοί βαθμοί των δυο τετραμήνων και οι γραπτοί βαθμοί μαθητών στις εξετάσεις. Έχοντας υπόψην οτι ο μέσος προφορικός βαθμός διορθώνεται στην περίπτωση που η διαφορά του με τον γραπτό βαθμό είναι μεγαλύτερη των 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
Τέλος Εξαγωγή_Αποτελεσμάτων

Άσκηση 20

Η τράπεζα του κου Αρβίλογλου διαθέτει πελατολόγιο 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]
Τέλος_αν
Τέλος_επανάληψης
Τέλος Πιστωτικές_Κάρτες

Άσκηση 21

Το τμήμα μισθοδοσίας καταχωρεί τις εισπράξεις της αλυσίδας των 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
άθροισμα ← 0 ! ερώτημα iii
Για i από 1 μέχρι 30
άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i]
Τέλος_επανάληψης
μέσος_όρος ← άθροισμα / 30
Εκτύπωσε “Το άθροισμα των εισπράξεων είναι “, άθροισμα
Εκτύπωσε “Ο μέσος όρος των εισπράξεων ανά κατάστημα είναι “, μέσος_όρος
Τέλος Αλυσίδα_Καταστημάτων

ΓΙΑ ΤΟ ΣΠΙΤΙ…

ΣΤΕΙΛΕ ΜΟΥ ΤΙΣ ΑΠΑΝΤΗΣΕΙΣ: ΕΔΩ

ΘΕΜΑΤΑ ΠΑΝΕΛΛΗΝΙΩΝ