gelcs.files. Web viewΔισδιάστατοι...

26
Δισδιάστατοι Πίνακες Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία δυο δισδιάστατων πινάκων αριθμών ιδίων διαστάσεων θα εξετάζει αν οι πίνακες είναι ίσοι, ενώ στην περίπτωση που δεν είναι θα εκτυπώνει το ποσοστό των στοιχείων που είναι ίσα. Λύση Θα ελέγξουμε αν τα στοιχεία στις αντίστοιχες θέσεις είναι ένα προς ένα ίσα Αλγόριθμος Ισότητα_Πινάκων Δεδομένα // Ν, Μ, ΠΙΝΑΚΑΣ_1, ΠΙΝΑΚΑΣ_2 // ισότητα ← αληθής ! έστω οτι οι δυο πίνακες είναι ίσοι πλήθος ← 0 Για i από 1 μέχρι N Για j από 1 μέχρι M Αν ΠΙΝΑΚΑΣ_1[i, j] <> ΠΙΝΑΚΑΣ_2[i, j] τότε ! Αν βρεθεί έστω και ένα ζεύγος τιμών που δεν είναι ίσα τότε οι πίνακες δεν είναι ίσοι ισότητα ← ψευδής Αλλιώς πλήθος ← πλήθος + 1 Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αν (ισότητα = αληθής) τότε Εκτύπωσε "Οι δύο πίνακες είναι ίσοι" Αλλιώς ποσοστό ← πλήθος / (Ν * Μ) Εκτύπωσε "Οι δύο πίνακες δεν είναι ίσοι, αλλά το ποσοστό των στοιχείων που είναι ίσα είναι ", ποσοστό Τέλος_αν Τέλος Ισότητα_Πινάκων Άσκηση 2. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία δυο δισδιάστατων πινάκων αριθμών ιδίων διαστάσεων θα επιστρέφει νέο πίνακα όπου κάθε στοιχείο του θα είναι το άθροισμα των αντίστοιχων κελιών των δυο αρχικών πινάκων. Λύση Θα προσθέσουμε ένα προς ένα τα στοιχεία στις αντίστοιχες θέσεις Αλγόριθμος Άθροισμα_Πινάκων Δεδομένα // Ν, Μ, ΠΙΝΑΚΑΣ_1, ΠΙΝΑΚΑΣ_2 // Για i από 1 μέχρι N Για j από 1 μέχρι M ΤΕΛΙΚΟΣ_ΠΙΝΑΚΑΣ[i, j] ← ΠΙΝΑΚΑΣ_1[i, j] + ΠΙΝΑΚΑΣ_2[i, j] Τέλος_επανάληψης Τέλος_επανάληψης

Transcript of gelcs.files. Web viewΔισδιάστατοι...

Page 1: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

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

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

θα εξετάζει αν οι πίνακες είναι ίσοι, ενώ στην περίπτωση που δεν είναι θα εκτυπώνει το ποσοστό των στοιχείων που είναι ίσα.

ΛύσηΘα ελέγξουμε αν τα στοιχεία στις αντίστοιχες θέσεις είναι ένα προς ένα ίσα

Αλγόριθμος Ισότητα_Πινάκων Δεδομένα // Ν, Μ, ΠΙΝΑΚΑΣ_1, ΠΙΝΑΚΑΣ_2 // ισότητα ← αληθής ! έστω οτι οι δυο πίνακες είναι ίσοι πλήθος ← 0 Για i από 1 μέχρι N Για j από 1 μέχρι M Αν ΠΙΝΑΚΑΣ_1[i, j] <> ΠΙΝΑΚΑΣ_2[i, j] τότε ! Αν βρεθεί έστω και ένα ζεύγος τιμών που δεν είναι ίσα τότε οι πίνακες δεν είναι ίσοι ισότητα ← ψευδής Αλλιώς πλήθος ← πλήθος + 1 Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αν (ισότητα = αληθής) τότε Εκτύπωσε "Οι δύο πίνακες είναι ίσοι" Αλλιώς ποσοστό ← πλήθος / (Ν * Μ) Εκτύπωσε "Οι δύο πίνακες δεν είναι ίσοι, αλλά το ποσοστό των στοιχείων που είναι ίσα είναι ", ποσοστό Τέλος_ανΤέλος Ισότητα_Πινάκων

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

θα επιστρέφει νέο πίνακα όπου κάθε στοιχείο του θα είναι το άθροισμα των αντίστοιχων κελιών των δυο αρχικών πινάκων.

ΛύσηΘα προσθέσουμε ένα προς ένα τα στοιχεία στις αντίστοιχες θέσεις

Αλγόριθμος Άθροισμα_Πινάκων Δεδομένα // Ν, Μ, ΠΙΝΑΚΑΣ_1, ΠΙΝΑΚΑΣ_2 // Για i από 1 μέχρι N Για j από 1 μέχρι M ΤΕΛΙΚΟΣ_ΠΙΝΑΚΑΣ[i, j] ← ΠΙΝΑΚΑΣ_1[i, j] + ΠΙΝΑΚΑΣ_2[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Αποτελέσματα // Ν, Μ, ΤΕΛΙΚΟΣ_ΠΙΝΑΚΑΣ //Τέλος Άθροισμα_Πινάκων

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

i.  Θα διαβάζει έναν αριθμό που θα αντιστοιχεί σε στήλη και θα υπολογίζει το ελάχιστο της στήλης αυτής

ii. Θα διαβάζει έναν αριθμό που θα αντιστοιχεί σε γραμμή και θα υπολογίζει το μέγιστο στοιχείο της γραμμής αυτής

ΛύσηΑλγόριθμος Επεξεργασία_Πινάκων1

Page 2: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Δεδομένα // Ν, Μ, ΠΙΝΑΚΑΣ // Αρχή_Επανάληψης ! ερώτημα i Διάβασε στήλη Μέχρις_Ότου (στήλη > 0) και (στήλη <= Μ) μέγιστο ← ΠΙΝΑΚΑΣ[1, στήλη] Για i από 2 μέχρι Ν Αν ΠΙΝΑΚΑΣ[i, στήλη] > μέγιστο τότε μέγιστο ← ΠΙΝΑΚΑΣ[i, στήλη] Τέλος_αν Τέλος_επανάληψης Εκτύπωσε "Το μέγιστο στοιχείο της στήλης", στήλη, "είναι το ", μέγιστο Αρχή_Επανάληψης ! ερώτημα ii Διάβασε γραμμή Μέχρις_Ότου (γραμμή > 0) και (γραμμή <= Ν) ελάχιστο ← ΠΙΝΑΚΑΣ[γραμμή, 1] Για j από 2 μέχρι M Αν ΠΙΝΑΚΑΣ[γραμμή, j] < ελάχιστο τότε ελάχιστο ← ΠΙΝΑΚΑΣ[γραμμή, j] Τέλος_αν Τέλος_επανάληψης Εκτύπωσε "Το ελάχιστο στοιχείο της γραμμής", γραμμή, "είναι το ", ελάχιστοΤέλος Επεξεργασία_Πινάκων1

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

το ελάχιστο στοιχείο κάθε στήλης και το μέγιστο στοιχείο κάθε γραμμής τοποθετώντας τα σε αντίστοιχους πίνακες

ΛύσηΑλγόριθμος Επεξεργασία_Πινάκων2 Δεδομένα // Ν, Μ // Για i από 1 μέχρι N Για j από 1 μέχρι M Διάβασε ΠΙΝΑΚΑΣ[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι N ΕΛΑΧ_ΓΡΑΜΜΩΝ[i] ← ΠΙΝΑΚΑΣ[i, 1] ! τοποθετώ το πρώτο στοιχείο Για j από 2 μέχρι M Αν ΠΙΝΑΚΑΣ[i, j] < ΕΛΑΧ_ΓΡΑΜΜΩΝ[i] τότε ΕΛΑΧ_ΓΡΑΜΜΩΝ[i] ← ΠΙΝΑΚΑΣ[i, j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Για j από 1 μέχρι M μέγιστο ← ΠΙΝΑΚΑΣ[1, j] ! τοποθετώ το πρώτο στοιχείο ! προσοχή στο ότι ο πίνακας ΠΙΝΑΚΑΣ προσπελαύνεται στήλη-γραμμή Για i από 2 μέχρι N Αν ΠΙΝΑΚΑΣ[i, j] > μέγιστο τότε μέγιστο ← ΠΙΝΑΚΑΣ[i, j] Τέλος_αν Τέλος_επανάληψης ΜΕΓ_ΣΤΗΛΩΝ[j]← μέγιστο Τέλος_επανάληψης Αποτελέσματα // Ν, ΕΛΑΧ_ΓΡΑΜΜΩΝ, Μ, ΜΕΓ_ΣΤΗΛΩΝ //Τέλος Επεξεργασία_Πινάκων2

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

πίνακας είναι αραιός. Θεωρούμε ότι ένας πίνακας είναι αραιός αν πάνω από 80% του πλήθους των στοιχείων του είναι μηδέν

Λύση

Page 3: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Σε πρώτη φάση πρέπει να υπολογιστεί το πλήθος των μηδενικών στοιχείων του πίνακα και συγκριθεί με το 80% των στοιχείων του

πίνακα

Αλγόριθμος Αραιός_Πίνακας Δεδομένα // Ν, Μ // Για i από 1 μέχρι N Για j από 1 μέχρι M Διάβασε Α[i, j] Τέλος_επανάληψης Τέλος_επανάληψης πλήθος_μηδέν ← 0 Για i από 1 μέχρι N Για j από 1 μέχρι M Αν Α[i, j] = 0 τότε πλήθος_μηδέν ← πλήθος_μηδέν + 1 Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Αν πλήθος_μηδέν >= 0.80 * Ν *Μ τότε Εκτύπωσε "Ο πίνακας είναι αραιός" Αλλιώς Εκτύπωσε "Ο πίνακας δεν είναι αραιός" Τέλος_ανΤέλος Αραιός_Πίνακας

Άσκηση 8. Να μετατρέψετε σε κωδικοποίηση το παρακάτω διάγραμμα ροής

Λύση max ← Α[1, 1] Για i από 1 μέχρι 20 Για j από 1 μέχρι 50

Page 4: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Αν (Α[i, j] > max) τότε max ← Α[i, j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εκτύπωσε max

Άσκηση 10. Η ΕΜΥ μελετάει τις θερμοκρασίες σε διάφορες πόλεις της Ελλάδας. Καταχωρούνται λοιπόν τα ονόματα των 100

πόλεων που συμμετέχουν στην έρευνα καθώς και οι θερμοκρασίες των πόλεων αυτών τον μήνα που πέρασε. Να αναπτυχθεί

αλγόριθμος όπου:

i.   Θα διαβάζει τα απαραίτητα στοιχεία. Να περιγραφούν οι δομές δεδομένων που θα χρησιμοποιηθούν

ii.  Θα εντοπίζει και θα εκτυπώνει το όνομα της κατά μέσο όρο θερμότερης πόλης του μήνα

iii. Θα εντοπίζει για κάθε πόλη τις μέρες του μήνα όπου υπάρχει θερμοκρασία μεγαλύτερη από την προηγούμενη και την

επόμενη μέρα

ΛύσηΘα χρησιμοποιήσουμε δυο πίνακες: τον πίνακα ΟΝΟΜΑΤΑ, μονοδιάστατο 100 θέσεων που θα περιέχει τα ονόματα των πόλεων και

τον πίνακα ΘΕΡΜΟΚΡΑΣΙΕΣ[100, 30] που κατέχει αντίστοιχα για κάθε πόλη την ημερήσια θερμοκρασία της. Για τη μέση

θερμοκρασία κάθε πόλης θα χρησιμοποιήσουμε μονοδιάστατο πίνακα 100 θέσεων με όνομα ΜΕΣΗ_ΘΕΡΜΟΚΡΑΣΙΑ

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

Page 5: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

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

δισδιάστατο πίνακα τα γκολ που πέτυχε κάθε μια από τις 16 ομάδες του πρωταθλήματος σε κάθε μία από τις 32 αγωνιστικές

του πρωταθλήματος και θα εκτυπώνει:

i.   Ποιά ομάδα και σε ποια αγωνιστική πέτυχε τα περισσότερα γκολ;

ii.  Την καλύτερη επίθεση του πρωταθλήματος

iii. Την χειρότερη επίθεση του πρωταθλήματος

iv.  Σε πόσους αγώνες κάθε ομάδα πέτυχε περισσότερα γκολ από το μέσο όρο της;

ΛύσηΘα χρησιμοποιήσουμε δυο πίνακες: τον πίνακα ΟΜΑΔΑ, μονοδιάστατο 16 θέσεων που θα περιέχει τα ονόματα των ομάδων και τον

πίνακα ΓΚΟΛ[16, 32] που θα περιέχει αντίστοιχα για κάθε ομάδα τα γκολ που πέτυχε στην αντίστοιχη αγωνιστική. Για την απάντηση

των ερωτημάτων ii, iii και iv θα δημιουργήσουμε τον πίνακα ΜΟ_ΓΚΟΛ μονοδιάστατο 16 θέσεων

Αλγόριθμος Α_Εθνική Δεδομένα // ΟΜΑΔΑ // Για i από 1 μέχρι 16 Για j από 1 μέχρι 32 Διάβασε ΓΚΟΛ[i, j] Τέλος_επανάληψης Τέλος_επανάληψης μέγιστος ← ΓΚΟΛ[1,1] ! ερώτημα i μεγ_γραμμή ← 1 μεγ_στήλη ← 1 Για i από 1 μέχρι 16 Για j από 1 μέχρι 32 Αν (ΓΚΟΛ[i, j] > μέγιστος) τότε μέγιστος ← ΓΚΟΛ[i, j] μεγ_γραμμή ← i μεγ_στήλη ← j Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Εκτύπωσε "Τα περισσότερα γκολ τα πέτυχε η ομάδα ", ΟΜΑΔΑ[μεγ_γραμμή]," στην ", μεγ_στήλη, " αγωνιστική" ! τέλος ερώτημα i Για i από 1 μέχρι 16 άθροισμα ← 0 Για j από 1 μέχρι 32 άθροισμα ← άθροισμα + ΓΚΟΛ[i, j] Τέλος_επανάληψης ΜΟ_ΓΚΟΛ[i] ← άθροισμα / 32 Τέλος_επανάληψης μέγιστος ← ΜΟ_ΓΚΟΛ[1] ! ερώτημα ii θέση ← 1 Για i από 2 μέχρι 16 Αν (ΜΟ_ΓΚΟΛ[i] > μέγιστος) τότε μέγιστος ← ΜΟ_ΓΚΟΛ[i] θέση ← i Τέλος_αν Τέλος_επανάληψης Εκτύπωσε "Την καλύτερη επίθεση έχει η ομάδα ", ΟΜΑΔΑ[θέση] ! τέλος ερώτημα ii ελάχιστος ← ΜΟ_ΓΚΟΛ[1] ! ερώτημα iii θέση ← 1 Για i από 2 μέχρι 16 Αν (ΜΟ_ΓΚΟΛ[i] < ελάχιστος) τότε ελάχιστος ← ΜΟ_ΓΚΟΛ[i]

Page 6: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

θέση ← i Τέλος_αν Τέλος_επανάληψης Εκτύπωσε "Την χειρότερη επίθεση έχει η ομάδα ", ΟΜΑΔΑ[θέση] ! τέλος ερώτημα iii Για i από 1 μέχρι 16 ! ερώτημα iv μετρητής ← 0 Για i από 1 μέχρι 32 Αν (ΓΚΟΛ[i, j] > ΜΟ_ΓΚΟΛ[i]) τότε μετρητής ← μετρητής + 1 Τέλος_αν Τέλος_επανάληψης Εκτύπωσε "Η ομάδα ", ΟΜΑΔΑ[i], "έχει πετύχει σε", μετρητής, " αγωνιστικές περισσότερα γκολ από το μέσο όρο της" Τέλος_επανάληψηςΤέλος Α_Εθνική

ΑσκήσειςΠίνακες

Άσκηση 2. Να αναπτύξετε αλγόριθμο ο οποίος θα καταγράφει σε έναν μονοδιάστατο πίνακα ΟΝΟΜΑΤΑ τα ονόματα 20

αθλητών που συμμετέχουν στον τελικό της σφαιροβολίας και σε έναν δισδιάστατο πίνακα ΕΠΙΔΟΣΕΙΣ τις επιδόσεις κάθε

αθλητή στις 5 προσπάθειες που δικαιούται. Στη συνέχεια ο αλγόριθμος να εκτυπώνει τα ονόματα των αθλητών που πήραν

μετάλλιο (θεωρούμε ότι μόνο 3 δικαιούνται το μετάλλιο).

ΛύσηΓια το δεύτερο ερώτημα πρέπει να δημιουργηθεί ο πίνακας ΜΕΓ_ΕΠΙΔΟΣΗ που θα περιέχει για κάθε αθλητή (δηλαδή γραμμή του

πίνακα ΕΠΙΔΟΣΕΙΣ) το μέγιστο. Στη συνέχεια θα ταξινομείται ο πίνακας αυτός με φθίνουσα διάταξη και θα εκτυπώνονται οι 3

πρώτες θέσεις του

Αλγόριθμος Σφαιροβολία Για i από 1 μέχρι 20 Διάβασε ΟΝΟΜΑΤΑ[i] Για j από 1 μέχρι 5 Διάβασε ΕΠΙΔΟΣΕΙΣ[i, j] Τέλος_Επανάληψης Τέλος_Επανάληψης Για i από 1 μέχρι 20 μέγιστος ← ΕΠΙΔΟΣΕΙΣ[i, 1] Για j από 2 μέχρι 5 Αν ΕΠΙΔΟΣΕΙΣ[i, j] > μέγιστος τότε μέγιστος ← ΕΠΙΔΟΣΕΙΣ[i, j] Τέλος_αν Τέλος_Επανάληψης ΜΕΓ_ΕΠΙΔΟΣΗ[i] ← μέγιστος Τέλος_Επανάληψης ! Δημιουργήθηκε ο πίνακας ΜΕΓ_ΕΠΙΔΟΣΗ και στη συνέχεια θα ταξινομηθεί Για i από 2 μέχρι 20 Για j από 20 μέχρι i με_βήμα -1 Αν ΜΕΓ_ΕΠΙΔΟΣΗ[j-1] < ΜΕΓ_ΕΠΙΔΟΣΗ[j] τότε ! Φθίνουσα διάταξη βοηθητική ← ΜΕΓ_ΕΠΙΔΟΣΗ[j-1] ΜΕΓ_ΕΠΙΔΟΣΗ[j-1] ← ΜΕΓ_ΕΠΙΔΟΣΗ[j] ΜΕΓ_ΕΠΙΔΟΣΗ[j] ← βοηθητική βοηθητική1 ← ONOMATA[j-1] ! Αντίστοιχη αντιμετάθεση του πίνακα ΟΝΟΜΑΤΑ ΟNOMATA[j-1] ← ONOMATA[j] ONOMATA[j] ← βοηθητική1 Τέλος_αν

Page 7: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Τέλος_Επανάληψης Τέλος_Επανάληψης Για i από 1 μέχρι 3 Εκτύπωσε "Την ", i, "η θέση κατέλαβε ο αθλητής ", ΟΝΟΜΑ[i] Τέλος_ΕπανάληψηςΤέλος Σφαιροβολία

Άσκηση 6. Ενόψει των γιορτών η εταιρεία ΧΖΣ αποφάσισε να στείλει ευχετήριες κάρτες στους πελάτες της. Να αναπτυχθεί

αλγόριθμος που με δεδομένο δισδιάστατο πίνακα ΣΤΟΙΧΕΙΑ[1000, 3] που περιέχει τα ονοματεπώνυμα των 1000 πελατών της

εταιρείας στη στήλη 1, το πατρώνυμο στη στήλη 2  και τις διευθύνσεις των πελατών στη στήλη 3, θα ταξινομεί τα στοιχεία ως

προς την πρώτη στήλη και θα εκτυπώνει τα ονόματα και τις διευθύνσεις για τις ευχετήριες κάρτες

ΛύσηΠρέπει να εφαρμοστεί ο αλγόριθμος ταξινόμησης θεωρώντας την πρώτη στήλη ως μονοδιάστατο πίνακα

Αλγόριθμος Ευχετήριες_Κάρτες Δεδομένα // ΣΤΟΙΧΕΙΑ // Πλήθος ← 1000 Για i από 2 μέχρι Πλήθος Για j από Πλήθος μέχρι i με_βήμα -1 Αν ΣΤΟΙΧΕΙΑ[j-1, 1] > ΣΤΟΙΧΕΙΑ[j, 1] τότε ! Θα ταξινομήσω με βάση την πρώτη στήλη Για k από 1 μέχρι 3 ! Αντιμετάθεση και για τις 3 στήλες βοηθητική ← ΣΤΟΙΧΕΙΑ[j-1, k] ΣΤΟΙΧΕΙΑ[j-1, k] ← ΣΤΟΙΧΕΙΑ[j, k] ΣΤΟΙΧΕΙΑ[j, k] ← βοηθητική Τέλος_Επανάληψης Τέλος_αν Τέλος_Επανάληψης Τέλος_Επανάληψης Για i από 1 μέχρι Πλήθος ! Εκτύπωση Εκτύπωσε ΣΤΟΙΧΕΙΑ[i, 1], " του ", ΣΤΟΙΧΕΙΑ[i, 2], " Διεύθυνση: ", ΣΤΟΙΧΕΙΑ[i, 3] Τέλος_ΕπανάληψηςΤέλος Ευχετήριες_Κάρτες

Άσκηση 7. Να αναπτύξετε αλγόριθμο που θα διαχειρίζεται τις κρατήσεις σε ένα πολυκινηματογράφο. Σε πίνακα ΕΡΓΟ [15,2]

θέσεων υπάρχουν τα έργα που προβάλλονται στην αντίστοιχη αίθουσα στην πρώτη στήλη και λοιπά στοιχεία (ώρα προβολής

κ.λ.π.) στη δεύτερη στήλη. Σε μονοδιάστατο πίνακα περιέχεται ΧΩΡΗΤΙΚΟΤΗΤΑ η χωρητικότητα της αντίστοιχης αίθουσας

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

όνομα του έργου που επιθυμεί να παρακολουθήσει ο θεατής και να πραγματοποιεί την κράτηση στην πρώτη διαθέσιμη

αίθουσα, ενώ αν δεν υπάρχει να εκτυπώνει αντίστοιχο μήνυμα. Για την επανάληψη της διαδικασίας να ερωτάται ο χρήστης αν

έχει ολοκληρώσει την καταχώρηση

ΛύσηΑλγόριθμος Κινηματογράφος Δεδομένα // ΕΡΓΟ, ΧΩΡΗΤΙΚΟΤΗΤΑ // Για i από 1 μέχρι 15 ΘΕΣΕΙΣ[i] ← 0 Τέλος_Επανάληψης Αρχή_Επανάληψης Εκτύπωσε "Δώστε τον τίτλο της ταινίας που επιθυμείτε να παρακολουθήσετε" Διάβασε επιθ_έργο ! θα αναζητήσουμε στην πρώτη στήλη του πίνακα ΕΡΓΟ την τιμή επιθ_έργο βρέθηκε ← ψευδής

Page 8: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

θέση ← 0 i ← 1 Όσο (βρέθηκε = ψευδής) και (i <= 15) επανάλαβε Αν (ΕΡΓΟ[i, 1] = επιθ_έργο) και (ΘΕΣΕΙΣ[i] <= ΧΩΡΗΤΙΚΟΤΗΤΑ[i]) τότε βρέθηκε ← αληθής θέση ← i Αλλιώς i ← i + 1 Τέλος_αν Τέλος_επανάληψης Αν (βρέθηκε = αληθής) τότε ΘΕΣΕΙΣ[θέση] ← ΘΕΣΕΙΣ[θέση] + 1 Εκτύπωσε "Ώρα προβολής: ", ΕΡΓΟ[i, 2] Αλλιώς Εκτύπωσε "Μάλλον πρέπει να δείτε κάποιο άλλο έργο" Τέλος_αν Εκτύπωσε "Επιθυμείτε να συνεχίσετε (Ναι/Όχι) ;" Διάβασε απάντηση Μέχρις_Ότου (απάντηση = "Όχι")Τέλος Κινηματογράφος

Άσκηση 8. Η εταιρεία διοδίων Πελοποννήσου επιθυμεί να επεξεργαστεί στατιστικά τα στοιχεία των συναλλαγών των ταμείων

της. Καταχωρεί λοιπόν τα στοιχεία των 80 ταμείων της σε μονοδιάστατο πίνακα με όνομα ΤΑΜΕΙΑ και τις ημερήσιες

εισπράξεις σε δισδιάστατο πίνακα ΕΙΣΠΡΑΞΕΙΣ[80,360] (θεωρούμε ότι κάθε μήνας έχει 30 μέρες και το έτος 360) . Να

αναπτυχθεί αλγόριθμος που θα διαβάζει τα παραπάνω στοιχεία, θα υπολογίζει και θα εκτυπώνει:

i.   Το ταμείο με τις περισσότερες εισπράξεις τη χρονιά που πέρασε

ii.  Το ταμείο με τις λιγότερες εισπράξεις το 2 τρίμηνο της χρονιάς που πέρασε

iii. Τα ταμεία που ξεπέρασαν το συνολικό μέσο όρο εισπράξεων

ΛύσηΘα χρησιμοποιήσουμε τους μονοδιάστατους πίνακες ΣΥΝ_ΕΙΣΠΡΑΞΕΙΣ, ΕΙΣΠΡΑΞΕΙΣ_ΤΡΙΜ_2 για την επίλυση της άσκησης

Αλγόριθμος Εταιρεία_Διοδίων Δεδομένα // ΤΑΜΕΙΑ, ΕΙΣΠΡΑΞΕΙΣ // Πλήθος ← 80 Για i από 1 μέχρι Πλήθος ! ερώτημα i άθροισμα ← 0 Για j από 1 μέχρι 360 άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i, j] Τέλος_επανάληψης ΣΥΝ_ΕΙΣΠΡΑΞΕΙΣ[i] ← άθροισμα Τέλος_επανάληψης μέγιστος ← ΣΥΝ_ΕΙΣΠΡΑΞΕΙΣ[1] θέση ← 1 Για i από 2 μέχρι Πλήθος Αν (ΣΥΝ_ΕΙΣΠΡΑΞΕΙΣ[i] > μέγιστος) τότε μέγιστος ← ΣΥΝ_ΕΙΣΠΡΑΞΕΙΣ[i] θέση ← i Τέλος_αν Τέλος_Επανάληψης Εκτύπωσε "Το ταμείο διοδίων με τις περισσότερες εισπράξεις είναι το ", ΤΑΜΕΙΑ[θέση] ! τέλος ερώτημα i Για i από 1 μέχρι Πλήθος ! ερώτημα ii άθροισμα ← 0 Για j από 91 μέχρι 180 ! 2ο τρίμηνο άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i, j]

Page 9: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

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

Άσκηση 10. Η εταιρεία Αρβίλογλου εισάγει και προωθεί 20 προϊόντα στην Ελληνική αγορά - οι τιμές τους περιέχονται σε

πίνακα ΤΙΜΕΣ[20] και τα ονόματα στον πίνακα ΕΠΩΝΥΜΙΑ[20]. Οι πωλήσεις σε τεμάχια που επετεύχθησαν από κάθε έναν

από τους 200 πωλητές της εταιρείας περιέχονται σε πίνακα ΠΩΛΗΣΕΙΣ[200, 20] για τα προϊόντα, ενώ τα ονόματα των

πωλητών είναι αποθηκευμένες σε πίνακα ΟΝΟΜΑ[200]. Να αναπτυχθεί αλγόριθμος που με δεδομένα τα παραπάνω στοιχεία,

θα υπολογίζει και θα εκτυπώνει:

i.   Το συνολικό ποσό είσπραξης κάθε πωλητή, και την προμήθεια των πωλητών 10% επί των πωλήσεων

ii.  Τα 5 προϊόντα με τις περισσότερες πωλήσεις (να θεωρήσετε ότι είναι μόνο 5)

ΛύσηΑλγόριθμος Πωλήσεις_Προϊόντων Δεδομένα // ΤΙΜΕΣ, ΠΩΛΗΣΕΙΣ // Για i από 1 μέχρι 200 ! ερώτημα i ! δημιουργία πίνακα ΕΙΣΠΡΑΞΕΙΣ ανά πωλητή άθροισμα ← 0 Για j από 1 μέχρι 20 άθροισμα ← άθροισμα + ΠΩΛΗΣΕΙΣ[i, j] * ΤΙΜΕΣ[j] Τέλος_Επανάληψης ΕΙΣΠΡΑΞΕΙΣ[i] ← άθροισμα Τέλος_Επανάληψης Για i από 1 μέχρι 200 Εκτύπωσε "Ο πωλητής ", ΟΝΟΜΑ[i], " θα πάρει προμήθεια ", 0.1 * ΕΙΣΠΡΑΞΕΙΣ[i] ! τέλος ερώτημα i Τέλος_Επανάληψης Για j από 1 μέχρι 20 ! ερώτημα ii ! δημιουργία πίνακα ΤΕΜ_ΠΩΛΗΣΕΙΣ ανά προϊόν άθροισμα ← 0 Για i από 1 μέχρι 200 άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i, j] Τέλος_Επανάληψης ΤΕΜ_ΠΩΛΗΣΕΙΣ[j] ← άθροισμα Τέλος_Επανάληψης

Page 10: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

! φθίνουσα ταξινόμηση του πίνακα ΤΕΜ_ΠΩΛΗΣΕΙΣ Για i από 2 μέχρι 6 Για j από 6 μέχρι i με_βήμα –1 ! φθίνουσα ταξινόμηση Αν ΤΕΜ_ΠΩΛΗΣΕΙΣ[j-1] < ΤΕΜ_ΠΩΛΗΣΕΙΣ[j] τότε βοηθητική ← ΤΕΜ_ΠΩΛΗΣΕΙΣ[j-1] ΤΕΜ_ΠΩΛΗΣΕΙΣ[j-1] ← ΤΕΜ_ΠΩΛΗΣΕΙΣ[j] ΤΕΜ_ΠΩΛΗΣΕΙΣ[j] ← βοηθητική βοηθητική1 ← ΕΠΩΝΥΜΙΑ[j-1] ΕΠΩΝΥΜΙΑ[j-1] ← ΕΠΩΝΥΜΙΑ[j] ΕΠΩΝΥΜΙΑ[j] ← βοηθητική1 Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι 5 ! εκτύπωση των 5 πιο εμπορικών προϊόντων Εκτύπωσε i, "ο προϊόν είναι το ", ΕΠΩΝΥΜΙΑ[i] Τέλος_ΕπανάληψηςΤέλος Πωλήσεις_Προϊόντων

ΑσκήσειςΠίνακες  -  (2) 

Άσκηση 3. Ο Ελληνικός Οργανισμός Τουρισμού αποφάσισε να διεξαγάγει μια έρευνα για τα ελληνικά ξενοδοχεία. Στην έρευνα

συμμετέχουν τα 7000 ξενοδοχεία της επικράτειας, και γι’ αυτά καταγράφονται οι μηνιαίες εισπράξεις για το περασμένο έτος.

Να αναπτυχθεί αλγόριθμος που:

α. Θα διαβάζει τα απαραίτητα στοιχεία.

β. Θα υπολογίζει τις ετήσιες εισπράξεις κάθε ξενοδοχείου και θα τις εκχωρεί σε έναν νέο πίνακα.

γ. Θα εκτυπώνει το όνομα του ξενοδοχείου με τις περισσότερες εισπράξεις.

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

(δηλαδή είχε έσοδα) την περασμένη χρονιά.

ε. Θα δημιουργεί και θα εκτυπώνει τον πίνακα ΤΡΙΜΗΝΑ[4], που περιέχει τις εισπράξεις που παρουσιάστηκαν ανά τρίμηνο. .

ΛύσηΑλγόριθμος ΕΟΤ Για i από 1 μέχρι 7000 ! ερώτημα α Διάβασε ΟΝΟΜΑ[i] Για j από 1 μέχρι 12 Διάβασε ΕΙΣΠΡΑΞΕΙΣ[i, j] Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι 7000 ! ερώτημα β άθροισμα ← 0 Για j από 1 μέχρι 12 άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i, j] Τέλος_επανάληψης ΕΤΗΣΙΕΣ_ΕΙΣΠΡΑΞΕΙΣ[i] ← άθροισμα Τέλος_επανάληψης ! ... ερώτημα γ: εύρεση μεγίστου και θέσης του στον πίνακα ΕΤΗΣΙΕΣ_ΕΙΣΠΡΑΞΕΙΣ Εκτύπωσε "Το ξενοδοχείο με τις περισσότερες εισπράξεις", ΟΝΟΜΑ[θέση] Για i από 1 μέχρι 7000 ! ερώτημα δ μη_μηδεν ← 0 Για j από 1 μέχρι 12 Αν ΕΙΣΠΡΑΞΕΙΣ[i, j] <> 0 τότε μη_μηδεν ← μη_μηδεν + 1 ! δεν χρησιμοποιούμε πίνακα μετρητών Τέλος_αν

Page 11: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Τέλος_επανάληψης Εκτύπωσε " Το ξενοδοχείο", ΟΝΟΜΑ[i], "λειτούργησε", μη_μηδεν, "μήνες" Τέλος_επανάληψης Για j από 1 μέχρι 4 ! ερώτημα ε άθροισμα ← 0 αρχή_τριμήνου ← 3 * (j – 1) ! πού ξεκινάει το τρίμηνο j Για i από 1 μέχρι 7000 Για k από 1 μέχρι 3 ! οι 3 μήνες του τριμήνου άθροισμα ← άθροισμα + ΕΙΣΠΡΑΞΕΙΣ[i, αρχή_τριμήνου + k] Τέλος_επανάληψης Τέλος_επανάληψης ΤΡΙΜΗΝΑ[j] ← άθροισμα Τέλος_επανάληψης Για j από 1 μέχρι 4 Εκτύπωσε ΤΡΙΜΗΝΑ[j] Τέλος_επανάληψηςΤέλος ΕΟΤ

Άσκηση 4. Η εταιρεία Αρβίλογλου διαθέτει μια ομάδα πωλητών (Ν στο πλήθος) σε όλη την Ελλάδα. Καταγράφονται σε

μονοδιάστατο πίνακα ΟΝΟΜΑ[Ν] τα ονόματα των πωλητών της εταιρείας και σε δισδιάστατο πίνακα ΠΩΛΗΣΕΙΣ[Ν, 12] οι

μηνιαίες πωλήσεις που πέτυχαν τον περασμένο χρόνο. Να αναπτυχθεί αλγόριθμος που:

α. Θα διαβάζει τα απαραίτητα στοιχεία και θα τα αποθηκεύει στους παραπάνω πίνακες.

β. Θα δημιουργεί τον πίνακα ΣΥΝ_ΠΩΛΗΣΕΙΣ που θα περιέχει τις συνολικές ετήσιες πωλήσεις κάθε πωλητή.

γ. Θα δημιουργεί τον πίνακα ΚΑΛΟΙ που θα περιέχει τα ονόματα των πωλητών με συνολικές πωλήσεις περισσότερες από 1500

€.

δ. Θα δημιουργεί τον πίνακα ΜΠΟΝΟΥΣ που θα περιέχει το μπόνους κάθε πωλητή. Το μπόνους υπολογίζεται με βάση τις

πωλήσεις κάθε πωλητή ως εξής:

Πωλήσεις S (σε €) Μπόνους (%)επί των πωλήσεων

0 S 200 11200 < S 500 15

500 < S 20

Ο πίνακας ΜΠΟΝΟΥΣ αποτελεί την έξοδο του αλγορίθμου.

ΛύσηΑλγόριθμος Αρβίλογλου Διάβασε Ν Για i από 1 μέχρι N Διάβασε ΟΝΟΜΑ[i] Για j από 1 μέχρι 12 Αρχή_επανάληψης Διάβασε ΠΩΛΗΣΕΙΣ[i, j] Μέχρις_ότου ΠΩΛΗΣΕΙΣ[i, j] >= 0 ! έλεγχος δεδομένων Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι N ! ερώτημα β άθροισμα ← 0 Για j από 1 μέχρι 12 άθροισμα ← άθροισμα + ΠΩΛΗΣΕΙΣ[i, j] Τέλος_επανάληψης ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] ← άθροισμα Τέλος_επανάληψης Π ← 0 ! δείκτης νέου πίνακα ΚΑΛΟΙ, που δεν είναι παράλληλος με τους άλλους Για i από 1 μέχρι Ν

Page 12: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Αν ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] > 1500 τότε Π ← Π + 1 ΚΑΛΟΙ[Π] ← ΟΝΟΜΑ[i] Τέλος_αν Τέλος_επανάληψης Για i από 1 μέχρι N ! ερώτημα δ Αν ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] <= 200 τότε ΜΠΟΝΟΥΣ[i] ← 11 / 100 * ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] Αλλιώς_αν ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] <= 500 τότε ΜΠΟΝΟΥΣ[i] ← 15 / 100 * ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] Αλλιώς ! > 500 ΜΠΟΝΟΥΣ[i] ← 20 / 100 * ΣΥΝ_ΠΩΛΗΣΕΙΣ[i] Τέλος_αν Τέλος_επανάληψης Αποτελέσματα // Π, ΚΑΛΟΙ, ΜΠΟΝΟΥΣ //Τέλος Αρβίλογλου

Άσκηση 6. Γνωστή γκαλερί των Αθηνών χρησιμοποιεί τις ακόλουθες δομές δεδομένων για τη διαχείριση των έργων τέχνης:

- Πίνακας ΕΡΓΟ_ΤΕΧΝΗΣ[Ν, 2], του οποίου η πρώτη στήλη περιέχει το όνομα του καλλιτέχνη που δημιούργησε το

αντίστοιχο έργο τέχνης και η δεύτερη στήλη την περιγραφή του.

- Παράλληλος πίνακας ΕΤΟΣ[Ν], που περιέχει το έτος δημιουργίας του έργου τέχνης.

- Παράλληλος πίνακας ΤΙΜΗ[Ν], που περιέχει την τιμή του συγκεκριμένου έργου.

Να αναπτυχθεί αλγόριθμος, ο οποίος με δεδομένα τα στοιχεία των πινάκων:

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

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

το έργο στη γκαλερί.

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

δ. Θα εκτυπώνει όλα τα έργα που υπάρχουν στη γκαλερί, από το παλαιότερο προς το νεότερο.

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

Page 13: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Τέλος_αν ! ερώτημα β Διάβασε ποσό Για i από 1 μέχρι Ν Αν TIMH[i] <= ποσό τότε Εκτύπωσε ΕΡΓΟ_ΤΕΧΝΗΣ[i, 1], ΕΡΓΟ_ΤΕΧΝΗΣ[i, 2], ΕΤΟΣ[i], ΤΙΜΗ[i] Τέλος_αν Τέλος_επανάληψης Για i από 2 μέχρι Ν Για j από Ν μέχρι i με_βήμα –1 ! φθίνουσα διάταξη Αν ΕΤΟΣ[j – 1] < ΕΤΟΣ[j] τότε Αντιμετάθεσε ΕΤΟΣ[j – 1], ΕΤΟΣ[j] Αντιμετάθεσε ΕΡΓΟ_ΤΕΧΝΗΣ[j – 1, 1], ΕΡΓΟ_ΤΕΧΝΗΣ[j, 1] Αντιμετάθεσε ΕΡΓΟ_ΤΕΧΝΗΣ[j – 1, 2], ΕΡΓΟ_ΤΕΧΝΗΣ[j, 2] Αντιμετάθεσε ΤΙΜΗ[j – 1], ΤΙΜΗ[j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψηςΤέλος Γκαλερί

Άσκηση 10. Στον τελικό του τριπλούν προκρίνονται οι 8 πρώτοι αθλητές των ημιτελικών. Η εταιρεία μηχανογράφησης των

αγώνων χρησιμοποιεί τον πίνακα ΟΝΟΜΑ_ΗΜ[30] με τα ονόματα των αθλητών που συμμετέχουν στον ημιτελικό αγώνα,

καθώς και τον πίνακα ΕΠΙΔΟΣΕΙΣ_ΗΜ[30, 3], που περιέχει τις επιδόσεις των αθλητών με στόχο την πρόκριση στον τελικό.

Να αναπτυχθεί αλγόριθμος ο οποίος:

α. Θα διαβάζει τα στοιχεία των παραπάνω πινάκων και θα εκτυπώνει τα ονόματα των αθλητών που προκρίνονται στον τελικό.

β. Θα δημιουργεί τους νέους πίνακες ΟΝΟΜΑ_ΤΕΛ[8] με τα ονόματα των αθλητών που συμμετέχουν στον τελικό και

ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[8, 6], του οποίου οι 3 πρώτες στήλες περιέχουν τις επιδόσεις στους προκριματικούς για τους αντίστοιχους

αθλητές του ημιτελικού. Στη συνέχεια, θα διαβάζει και τις επόμενες 3 επιδόσεις (στήλες 4, 5, 6) για κάθε αθλητή και θα

εκτυπώνει τους αθλητές που παίρνουν μετάλλια. (Δίνεται ότι υπάρχουν ακριβώς 8 αθλητές που συμμετέχουν στον τελικό.)

Παρατήρηση: Δίνεται ότι τελικά οι 2 πρώτοι αθλητές έχουν διαφορετικές επιδόσεις.

ΛύσηΑλγόριθμος Τρίαθλο Για i από 1 μέχρι 30 Διάβασε ΟΝΟΜΑ_ΗΜ[i] Τέλος_επανάληψης Για i από 1 μέχρι 30 Για j από 1 μέχρι 3 ! έλεγχος δεδομένων Αρχή_επανάληψης Διάβασε ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, j] Μέχρις_ότου ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, j] >= 0 Τέλος_επανάληψης Τέλος_επανάληψης ! δημιουργία πίνακα ΜΕΓ_ΕΠΙΔ Για i από 1 μέχρι 30 μέγιστο ← ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, 1] Για j από 2 μέχρι 3 Αν ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, j] > μέγιστος τότε μέγιστο ← ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, j] Τέλος_αν Τέλος_επανάληψης ΜΕΓ_ΕΠΙΔ_ΗΜ[i] ← μέγιστο Τέλος_επανάληψης ! ταξινόμηση του πίνακα ΜΕΓ_ΕΠΙΔ_ΗΜ, για να βρούμε τους 8 πρώτους Για i από 2 μέχρι 30

Page 14: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Για j από 30 μέχρι i με_βήμα –1 ! φθίνουσα διάταξη Αν ΜΕΓ_ΕΠΙΔ_ΗΜ[j – 1] < ΜΕΓ_ΕΠΙΔ_ΗΜ[j] τότε Αντιμετάθεσε ΜΕΓ_ΕΠΙΔ_ΗΜ[j – 1], ΜΕΓ_ΕΠΙΔ_ΗΜ[j] Αντιμετάθεσε ΟΝΟΜΑ_ΗΜ[j – 1], ΟΝΟΜΑ_ΗΜ[j] Για k από 1 μέχρι 3 Αντιμετάθεσε ΕΠΙΔΟΣΕΙΣ_ΗΜ[j – 1, 3], ΕΠΙΔΟΣΕΙΣ_ΗΜ[j, 3] Τέλος_επανάληψης Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι 8 Εκτύπωσε ΟΝΟΜΑ_ΗΜ[i] Τέλος_επανάληψης ! ερώτημα β: δημιουργία νέου πίνακα ! ΟΝΟΜΑ_ΤΕΛ (θεωρούμε ότι υπάρχουν ! 8 ξεκάθαροι νικητές) Για i από 1 μέχρι 8 ΟΝΟΜΑ_ΤΕΛ[i] ← ΟΝΟΜΑ_ΗΜ[i] Τέλος_επανάληψης ! δημιουργία νέου πίνακα ΕΠΙΔΟΣΕΙΣ_ΤΕΛ Για i από 1 μέχρι 8 ! περνάμε τις επιδόσεις των 8 πρώτων Για j από 1 μέχρι 3 ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[i, j] ← ΕΠΙΔΟΣΕΙΣ_ΗΜ[i, j] Τέλος_επανάληψης Τέλος_επανάληψης ! διαβάζουμε τις επόμενες επιδόσεις για κάθε αθλητή Για i από 1 μέχρι 8 Για j από 4 μέχρι 6 ! οι επόμενες επιδόσεις των πρώτων αθλητών Διάβασε ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[i, j] Τέλος_επανάληψης Τέλος_επανάληψης ! δημιουργία πίνακα ! ΜΕΓ_ΕΠΙΔ_ΤΕΛ ! για να βρούμε την ! τελική κατάταξη Για i από 1 μέχρι 30 μέγιστο ← ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[i, 1] Για j από 2 μέχρι 6 Αν ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[i, j] > μέγιστος τότε μέγιστο ← ΕΠΙΔΟΣΕΙΣ_ΤΕΛ[i, j] Τέλος_αν Τέλος_επανάληψης ΜΕΓ_ΕΠΙΔ_ΤΕΛ[i] ← μέγιστο Τέλος_επανάληψης ! φθίνουσα ταξινόμηση του πίνακα ΜΕΓ_ΕΠΙΔ_ΤΕΛ για να βρούμε τους 3 πρώτους ! με αντιμετάθεση του πίνακα ΟΝΟΜΑ_ΤΕΛ ! παραλλάσσουμε τον αλγόριθμο αναζήτησης συνέχεια ← Αληθής i ← 1 Όσο (συνέχεια = Αληθής) και (i <= 8) επανάλαβε Αν ΜΕΓ_ΕΠΙΔΟΣΗ[i] >= ΜΕΓ_ΕΠΙΔΟΣΗ[3] τότε Εκτύπωσε i, ΟΝΟΜΑ_ΤΕΛ[i], ΜΕΓ_ΕΠΙΔ_ΤΕΛ[i] i ← i + 1 Αλλιώς συνέχεια ← Ψευδής Τέλος_αν Τέλος_επανάληψηςΤέλος Τρίαθλο

Άσκηση 11. H εταιρεία Αρβίλογλου διαθέτει 200 πωλητές σ’ ολόκληρη την Ελλάδα. Να αναπτύξετε αλγόριθμο που θα

διαβάζει τα ονόματα των πωλητών στον μονοδιάστατο πίνακα ΟΝΟΜΑ και τις μηνιαίες πωλήσεις καθενός απ’ αυτούς, για τον

χρόνο που πέρασε, στον πίνακα ΠΩΛΗΣΕΙΣ[200, 12]. Στη συνέχεια ο αλγόριθμος θα πρέπει:

α. Nα υπολογίζει τους μέσους όρους εισπράξεων ανά πωλητή και να τους αποθηκεύει στον πίνακα ΜΟ_ΠΩΛΗΤΗΣ.

Page 15: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

β. Να υπολογίζει τους μέσους όρους εισπράξεων ανά μήνα και να τους αποθηκεύει στον πίνακα MO_ΜΗΝΑΣ.

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

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

ΛύσηΑλγόριθμος Criflame Για i από 1 μέχρι 200 Διάβασε ONOMA[i] Τέλος_επανάληψης Για i από 1 μέχρι 200 Για j από 1 μέχρι 12 Διάβασε ΠΩΛΗΣΕΙΣ [i, j] Τέλος_επανάληψης Τέλος_επανάληψης Για i από 1 μέχρι 200 ! ερώτημα α άθροισμα ← 0 Για j από 1 μέχρι 12 άθροισμα ← άθροισμα + ΠΩΛΗΣΕΙΣ[i, j] Τέλος_επανάληψης ΜΟ_ΠΩΛΗΤΗΣ[i] ← άθροισμα / 12 Τέλος_επανάληψης Για j από 1 μέχρι 12 ! ερώτημα β άθροισμα ← 0 Για i από 1 μέχρι 200 άθροισμα ← άθροισμα + ΠΩΛΗΣΕΙΣ[i, j] Τέλος_επανάληψης ΜΟ_ΜΗΝΑΣ[j] ← άθροισμα / 200 Τέλος_επανάληψης Για i από 1 μέχρι 200 ! ερώτημα γ Για j από 1 μέχρι 12 Αν ΠΩΛΗΣΕΙΣ[i, j] > ΜΟ_ΠΩΛΗΤΗΣ[i] τότε Εμφάνισε j Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Για j από 1 μέχρι 12 ! ερώτημα δ πλήθος ← 0 Για i από 1 μέχρι 200 Αν ΠΩΛΗΣΕΙΣ[i, j] > ΜΟ_ΜΗΝΑΣ[j] τότε πλήθος ← πλήθος + 1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε j, πλήθος Τέλος_επανάληψηςΤέλος Criflame

ΑσκήσειςΠίνακες  -    (3) 

Άσκηση 3. Η γραμματεία του λυκείου Τενεούπολης καταχωρεί τα ονόματα των μαθητών της 100 μαθητών της Α λυκείου και

τους 10 βαθμούς του κάθε μαθητή στα μαθήματα που βαθμολογήθηκε. Να αναπτύξετε αλγόριθμο που:

α. θα διαβάζει τα παραπάνω στοιχεία σε κατάλληλους πίνακες.

β. θα εκτυπώνει το όνομα του 5ου μαθητή και πόσες φορές έχει βαθμό άριστα.

γ. θα εκτυπώνει το μέσο όρο του 23ου μαθητή.

Page 16: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

δ. θα εκτυπώνει το μεγαλύτερο βαθμό στο 3ο μάθημα και το όνομα του μαθητή.

ε. θα εκτυπώνει το μέσο όρο στο 1ο μάθημα.

ΛύσηΑλγόριθμος ΛύκειοΓια i από 1 μέχρι 100 ! ερώτημα 1 Διάβασε Ο[i] Για j από 1 μέχρι 10 Διάβασε B[i, j] Τέλος_επανάληψηςΤέλος_επανάληψηςΕκτύπωσε Ο[5]π ← 0Για j από 1 μέχρι 10 Αν Β[5, j] >= 18 τότε π ← π + 1 Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε πS ← 0 ! ερώτημα 3Για j από 1 μέχρι 10 S ← S + ΕΙΣ[23, j]Τέλος_επανάληψηςμο ← S / 10Εκτύπωσε μοmax ← Β[1, 3] ! ερώτημα 4γρ ← 1Για i από 2 μέχρι 100 Αν Β[i, 3] > max τότε max ← Β[i, 3] γρ ← i Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε Ο[γρ], maxS ← 0 ! ερώτημα 5Για i από 1 μέχρι 10 S ← S + B[i, 1]Τέλος_επανάληψηςμο ← S / 100Εκτύπωσε μοΤέλος Λύκειο

Άσκηση 4. Σε πίνακες Π2005[200, 12] και Π2006[200, 12] έχουμε αποθηκεύσει τις μηνιαίες πωλήσεις των 200 σημείων

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

1. Ποιο σημείο πώλησης και σε ποιο μήνα επέτυχε τις περισσότερες πωλήσεις το 2005 και ποιο το 2006; Πρόκειται για το ίδιο

σημείο πώλησης;

2. Ο Μάιος του 2005 ήταν πιο προσοδοφόρος ή αυτός του 2006;

3. Πόσες φορές το σημείο πώλησης 33 είχε μεγαλύτερες πωλήσεις το 2005 και πόσες λιγότερες σε σχέση με το 2006.

4. Το 2005 ήταν καλύτερο για την εταιρεία ή το 2006;

ΛύσηΑλγόριθμος ΕταιρείαΔεδομένα // Π2005, Π2006 //! ... εύρεση max και θέση για τους πίνακες Π2005 και Π2006Εκτύπωσε γρ2005, στ2005, γρ2006, στ2006Αν γρ2005 = γρ2006 τότε Εκτύπωσε "το ίδιο σημείο πώλησης"

Page 17: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Αλλιώς Εκτύπωσε "όχι το ίδιο"Τέλος_ανΜάιος2005 ← 0 ! ερώτημα 2Μάιος2006 ← 0Για i από 1 μέχρι 200 Μάιος2005 ← Μάιος2005 + Π2005[i, 5] Μάιος2006 ← Μάιος2006 + Π2006[i, 5]Τέλος_επανάληψηςΑν Μάιος2005 > Μάιος2006 τότε Εκτύπωσε "2005"Αλλιώς_αν Μάιος2005 < Μάιος2006 τότε Εκτύπωσε "2006"Αλλιώς Εκτύπωσε "το ίδιο"Τέλος_ανμ2005 ← 0 ! ερώτημα 3μ2006 ← 0Για j από 1 μέχρι 12 Αν Π2005[33, j] > Π2006[33, j] τότε μ2005 ← μ2005 + 1 Αλλιώς_αν Π2005[33, j] < Π2006[33, j] τότε μ2006 ← μ2006 + 1 Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε μ2005, μ2006! ...εύρεση αθροίσματος πινάκων Π2005 και Π2006Αν S2005 > S2006 τότε Εκτύπωσε "2005"Αλλιώς_αν S2005 < S2006 τότε Εκτύπωσε "2006"Αλλιώς Εκτύπωσε "το ίδιο"Τέλος_ανΤέλος Εταιρεία

Άσκηση 5. Διαθέτουμε σε κατάλληλους πίνακες τις μηνιαίες πωλήσεις των 200 πωλητών της εταιρείας μας. Να αναπτύξετε

αλγόριθμο ο οποίος:

1. θα εκτυπώνει πόσοι πωλητές έχουν επιτύχει συνολικό ποσό πωλήσεων μεγαλύτερο από 1000€ κατά τους μήνες Ιούνιο-

Ιούλιο-Αύγουστο.

2. Πόσοι πωλητές είχαν το Σεπτέμβριο περισσότερες πωλήσεις από τον Μάιο.

3. Πόσοι πωλητές ήταν καλύτεροι το 2ο τρίμηνο σε σχέση με το 1ο.

4. Ο 10ος πωλητής ποιους μήνες επέτυχε πωλήσεις περισσότερες από 2000€;

5. Ο 100ος πωλητής με έναρξη τον Ιανουάριο ποιο μήνα επέτυχε συγκεντρωτικές πωλήσεις περισσότερες από 10.000€; Αν δεν

ξεπέρασε το όριο αυτό να εμφανίζεται κατάλληλο μήνυμα.

ΛύσηΑλγόριθμος εταιρείαΔεδομένα // ΕΙΣ //π ← 0 ! ερώτημα 1Για i από 1 μέχρι 200 S ← 0 Για j από 6 μέχρι 8 S ← S + ΕΙΣ[i, j] Τέλος_επανάληψης Αν S > 1000 τότε π ← π + 1

Page 18: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε ππ ← 0 ! ερώτημα 2Για i από 1 μέχρι 200 Αν ΕΙΣ[i, 9] > ΕΙΣ[i, 5] τότε π ← π + 1 Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε πμ ← 0 ! ερώτημα 3Για i από 1 μέχρι 200 S1 ← 0 Για j από 1 μέχρι 3 S1 ← S1 + ΕΙΣ[i, j] Τέλος_επανάληψης S2 ← 0 Για j από 4 μέχρι 6 S2 ← S2 + ΕΙΣ[i, j] Τέλος_επανάληψης Αν S2 > S1 τότε μ ← μ + 1 Τέλος_ανΤέλος_επανάληψηςΕκτύπωσε μΓια j από 1 μέχρι 12 ! ερώτημα 4 Αν ΕΙΣ[10, j] > 2000 τότε Εκτύπωσε j Τέλος_ανΤέλος_επανάληψηςj ← 1 ! ερώτημα 5διακοπή ← ψευδήςS ← 0Όσο (διακοπή = ψευδής) και (j <= 12) επανάλαβε S ← S + ΕΙΣ[100, j] Αν (S > 1000) τότε διακοπή ← αληθής μήνας ← j Αλλιώς j ← j + 1 Τέλος_ανΤέλος_επανάληψηςΑν διακοπή = αληθής τότε ! μήνας <> 0 Εκτύπωσε μήναςΑλλιώς Εκτύπωσε "Δεν ξεπεράστηκε το όριο"Τέλος_ανΤέλος εταιρεία

Άσκηση 6. Καταγράφουμε σε πίνακα ΟΝ τα ονόματα των 130 μαθητών της Γ γυμνασίου του δήμου Τενεούπολης και σε

πίνακα Β τους βαθμούς κάθε μαθητή σε κάθε ένα από τα 10 μαθήματα. Να αναπτύξετε αλγόριθμο ο οποίος αφού διαβάζει τα

στοιχεία των πινάκων ΟΝ και Β:

α. να εμφανίζει ποιος μαθητής έχει το μεγαλύτερο μέσο όρο, που να είναι όμως μικρότερος από 17.

β. να εμφανίζει για κάθε φοιτητή, ποιος είναι ο μέσος όρος των βαθμών του που βρίσκονται στο διάστημα [14, 18].

γ. να εμφανίζει τους μαθητές που είχαν τις περισσότερες φορές τον υψηλότερο βαθμό σε κάποιο μάθημα.

δ. να εμφανίζει τα ονόματα των μαθητών που είχαν τουλάχιστον δυο βαθμούς άριστα.

Λύση

Page 19: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Αλγόριθμος Σχολείο! ... είσοδος πινάκων ΟΝ[130] και Β[130, 10]max ← -1 ! ερώτημα αΓια i από 1 μέχρι 130 S ← 0 Για j από 1 μέχρι 10 S ← S + Β[i, j] Τέλος_επανάληψης μο ← S / 10 Αν μο > max και μο < 17 τότε max ← μο θ ← i Τέλος_ανΤέλος_επανάληψηςΑν max <> -1 τότε Εκτύπωσε ΟΝ[θ], maxΤέλος_ανΓια i από 1 μέχρι 130 ! ερώτημα β S ← 0 π ← 0 Για j από 1 μέχρι 10 Αν Β[i, j] >= 14 και Β[i, j] <= 18 τότε S ← S + Β[i, j] π ← π + 1 Τέλος_αν Τέλος_επανάληψης Αν π <> 0 τότε μο ← S / π Εκτύπωσε ΟΝ[i], μο Αλλιώς Εκτύπωσε ΟΝ[i], "κανείς βαθμός" Τέλος_ανΤέλος_επανάληψης

Για i από 1 μέχρι 130 ! ερώτημα γ Μ[i] ← 0Τέλος_επανάληψηςΓια j από 1 μέχρι 10 max ← Β [1, j] Για i από 1 μέχρι 130 Αν B[i, j] > max τότε max ← B[i, j] Τέλος_αν Τέλος_επανάληψης Για i από 1 μέχρι 130 Αν B[i, j] = max τότε M[i] ← M[i] + 1 Τέλος_αν Τέλος_επανάληψηςΤέλος_επανάληψης! ... εύρεση max πίνακα ΜΓια i από 1 μέχρι 130 Αν Μ[i] = max τότε Εκτύπωσε ΟΝ[i] Τέλος_ανΤέλος_επανάληψηςΓια i από 1 μέχρι 130 ! ερώτημα δ π ← 0 j ← 1 Όσο j <= 10 και π < 2 επανάλαβε Αν Β[i, j] > 18 τότε π ← π + 1 Αλλιώς j ← j + 1 Τέλος_αν Τέλος_επανάληψης Αν π = 2 τότε Εκτύπωσε ΟΝ[i] Τέλος_ανΤέλος_επανάληψηςΤέλος Σχολείο

Άσκηση 8. Μια εταιρεία διανομής κινηματογραφικών ταινιών έχει καταγράψει στους παρακάτω πίνακες τα στοιχεία για την

διακίνηση των ταινιών της παγκόσμια, για τη χρονιά που πέρασε: πίνακας ΤΑΙΝΙΑ[200] που περιέχει τους τίτλους των

ταινιών, πίνακας ΧΩΡΑ[120] που περιέχει τα ονόματα των 120 χωρών στις οποίες η εταιρεία δραστηριοποιείται και πίνακα

ΕΙΣΠΡΑΞΕΙΣ[200, 120] που περιέχει τις εισπράξεις από την προβολή κάθε ταινίας σε κάθε χώρα (αν κάποια ταινία δεν

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

στη συνέχεια:

1. θα εκτυπώνει τις ταινίες που έχουν τουλάχιστον σε 3 χώρες εισπράξεις μεγαλύτερες από 100.000€. Θα εκτυπωθεί μια φορά

το όνομα κάθε ταινίας.

2. θα διαβάζει το όνομα μιας χώρας και θα εκτυπώνει πόσες ταινίες έχουν προβληθεί σε αυτή.

3. θα διαβάζει τον τίτλο μιας ταινίας και θα εκτυπώνει τις χώρες που προβλήθηκε με διάταξη από αυτήν με τις περισσότερες

εισπράξεις προς αυτήν με τις λιγότερες. Οι χώρες που η ταινία δεν προβλήθηκε να μην εκτυπώνονται.

ΛύσηΑλγόριθμος ΚινηματογράφοςΓια i από 1 μέχρι 200 Διάβασε ΤΑΙΝΙΑ[i]

Page 20: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Τέλος_επανάληψηςΓια j από 1 μέχρι 120 Διάβασε ΧΩΡΑ[j]Τέλος_επανάληψηςΓια i από 1 μέχρι 200 Για j από 1 μέχρι 120 Διάβασε ΕΙΣΠΡ[i, j] Τέλος_επανάληψηςΤέλος_επανάληψηςΓια i από 1 μέχρι 200 ! ερώτημα α διακοπή ← ψευδής π ← 0 j ← 1 Όσο (διακοπή = ψευδής) και (j <= 120) επανάλαβε Αν (ΕΙΣΠΡ[i, j] > 100000) τότε π ← π + 1 Τέλος_αν Αν (π = 3) τότε Εκτύπωσε ΤΑΙΝΙΑ[i] διακοπή ← αληθής Αλλιώς j ← j + 1 Τέλος_αν Τέλος_επανάληψηςΤέλος_επανάληψηςΔιάβασε όνομα_χώρας ! ερώτημα β! ... σειριακή αναζήτηση στον πίνακα ΧΩΡΑ! με κλειδί όνομα_χώραςΑν (done = αληθής) τότε πλ ← 0 Για i από 1 μέχρι 200 Αν ΕΙΣΠΡ[i, pos] <> 0 τότε πλ ← πλ + 1 Τέλος_αν Τέλος_επανάληψης Εκτύπωσε πλΑλλιώς Εμφάνισε "Δεν υπάρχει χώρα με αυτό το όνομα"Τέλος_ανΔιάβασε τίτλος_ταινίας ! ερώτημα γ! ... σειριακή αναζήτηση στον πίνακα ΤΑΙΝΙΑ με κλειδί το τίτλος_ταινίαςΑν (done = αληθής) τότε ! φθίνουσα ταξινόμηση γραμμής pos πίνακα ΕΙΣΠΡ (μονοδιάστατος πίνακας) Για i από 2 μέχρι 120 Για j από 200 μέχρι i με_βήμα –1 Αν ΕΙΣΠΡ[pos, j-1] < ΕΙΣΠΡ[pos, j] τότε Αντιμετάθεσε ΧΩΡΑ[j-1], ΧΩΡΑ[j] Για k από 1 μέχρι 200 ! όλες οι γραμμές Αντιμετάθεσε ΕΙΣΠΡ[k, j-1], ΕΙΣΠΡ[k, j] Τέλος_επανάληψης Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης διακοπή ← ψευδής j ← 1 Όσο (διακοπή = ψευδής) και (j <= 120) επανάλαβε Αν (ΕΙΣΠΡ[pos, j] <> 0) τότε Εκτύπωσε ΧΩΡΑ[j] j ← j + 1 Αλλιώς διακοπή ← αληθής Τέλος_αν Τέλος_επανάληψης

Page 21: gelcs.files. Web viewΔισδιάστατοι Πίνακες. Άσκηση 1. Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία

Αλλιώς Εμφάνισε "Δεν υπάρχει τέτοια ταινία"Τέλος_ανΤέλος Κινηματογράφος

Άσκηση 13. Η εταιρεία DeltaTime Systems εξοπλίζει αθλητικούς αγώνες με συστήματα χρονομέτρησης. Τα συστήματα αυτά

δημιουργούν δυο παράλληλους πίνακες: τον πίνακα ΚΩΔΙΚΟΣ με τον κωδικό αριθμό κάθε αθλητή και τον πίνακα ΧΡΟΝΟΣ

με τον χρόνο που χρειάστηκε ο αθλητής να τερματίσει. (Οι πίνακες είναι ταξινομημένοι ως προς τον χρόνο). Η διοργανώτρια

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

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

α. Θα δημιουργεί τον πίνακα ΘΕΣΗ που είναι παράλληλος με τον πίνακα ΑΘΛΗΤΗΣ και περιέχει τη θέση που κατέλαβε κάθε

αθλητής.

β. Θα εκτυπώνει αλφαβητικά τα ονόματα των αθλητών και τη θέση που κατέλαβαν.

ΛύσηΑλγόριθμος DeltaTime Δεδομένα // Πλήθος, ΚΩΔΙΚΟΣ, ΑΘΛΗΤΗΣ // Για k από 1 μέχρι Πλήθος βρέθηκε ← Ψευδής pos ← 0 i ← 1 Όσο (βρέθηκε = Ψευδής) και (i <= Πλήθος) επανάλαβε Αν ΑΘΛΗΤΗΣ[k, 2] = ΚΩΔΙΚΟΣ[i] τότε βρέθηκε ← Aληθής pos ← i Αλλιώς i ← i + 1 Τέλος_αν Τέλος_επανάληψης ! ο αθλητής έχει βρεθεί σίγουρα ΘΕΣΗ[k] ← pos Τέλος_επανάληψης ! αύξουσα ταξινόμηση πίνακα ΟΝΟΜΑ με αντιμετάθεση πίνακα ΘΕΣΗ Για i από 1 μέχρι Πλήθος Εκτύπωσε ΟΝΟΜΑ[i], ΘΕΣΗ[i] Τέλος_επανάληψηςΤέλος DeltaTime