3.38 Σε ένα αγώνα σφαίρας συμμετέχουν 15 αθλητές. Κάθε αθλητής κάνει 5 προσπάθειες. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει επώνυμο και τις 5 μετρήσεις κάθε αθλητή και θα εμφανίζει για κάθε αθλητή τη καλύτερη προσπάθεια του. Επίσης θα εμφανίζει τον πρώτο, το δεύτερο και τον τρίτο αθλητή. Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε : 1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών, 2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα αποτελέσματα των 5 προσπαθειών του. Πίνακας Ονομάτων Παπαδάκης Γεωργίου Φαράκος Οικονόμου Βασιλείου Πίνακας Προσπαθειών 42 54 55 46 39 43 52 51 49 41 46 58 51 53 21 42 54 55 46 39 42 54 55 46 39
3.38 Σε ένα αγώνα σφαίρας συμμετέχουν 15 αθλητές. Κάθε αθλητής κάνει 5 προσπάθειες. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει επώνυμο και τις 5 μετρήσεις κάθε αθλητή και θα εμφανίζει για κάθε αθλητή τη καλύτερη προσπάθεια του. Επίσης θα εμφανίζει τον πρώτο, το δεύτερο και τον τρίτο αθλητή. Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε : 1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών, 2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα αποτελέσματα των 5 προσπαθειών του. Στη συνέχεια με μια διπλή επανάληψη θα υπολογίζουμε το μέγιστο για κάθε γραμμή του πίνακα Προσπαθειών. Πίνακας Καλύτερης Πίνακας Ονομάτων Πίνακας Προσπαθειών Προσπάθειας ανά Αθλητή Παπαδάκης Γεωργίου Φαράκος Οικονόμου Βασιλείου 42 43 46 40 42 54 52 58 54 57 Άρα ο τρίτος πίνακας περιέχει τη μεγαλύτερη τιμή κάθε γραμμής του 2 ου πίνακα. 55 51 51 55 51 46 49 53 56 46 39 41 21 49 37 55 52 58. 56 57
3.38 Σε ένα αγώνα σφαίρας συμμετέχουν 15 αθλητές. Κάθε αθλητής κάνει 5 προσπάθειες. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει επώνυμο και τις 5 μετρήσεις κάθε αθλητή και θα εμφανίζει για κάθε αθλητή τη καλύτερη προσπάθεια του. Επίσης θα εμφανίζει τον πρώτο, το δεύτερο και τον τρίτο αθλητή. Χρησιμοποιούμε 2 πίνακες για να αποθηκεύσουμε : 1. Σε ένα πίνακα 15 θέσεων τα επώνυμα των αθλητών, 2. Σε ένα πίνακα 15x5 θα αποθηκεύω σε κάθε γραμμή του, για κάθε αθλητή τα αποτελέσματα των 5 προσπαθειών του. Στη συνέχεια με μια διπλή επανάληψη θα υπολογίζουμε το μέγιστο για κάθε γραμμή του πίνακα Προσπαθειών. Πίνακας Καλύτερης Πίνακας Ονομάτων Πίνακας Προσπαθειών Προσπάθειας ανά Αθλητή Παπαδάκης Γεωργίου Φαράκος Οικονόμου Βασιλείου 42 43 46 40 42 54 52 58 54 57 Άρα ο τρίτος πίνακας περιέχει τη μεγαλύτερη τιμή κάθε γραμμής του 2 ου πίνακα. 55 51 51 55 51 46 49 53 56 46 39 41 21 49 37 55 52 58. 56 57 max τιμές Αφού υπολογιστεί ο πίνακας με τις καλύτερες προσπάθειες, μπορούμε να εμφανίσουμε το επώνυμο κάθε αθλητή δίπλα στο αντίστοιχο στοιχείο του πίνακα,
Αλγόριθμος Αθλητές ΑΝΑΠΤΥΞΗ Για i από 1 μέχρι 15 ΕΦΑΡΜΟΓΩΝ Εμφάνισε Δώσε το επώνυμο του αθλητή, i Διάβασε Επώνυμο[ i ] Για i από 1 μέχρι 15 Για j από 1 μέχρι 5 Εμφάνισε Διάβασε Μέτρηση[ i,j ] Για i από 1 μέχρι 15 max[ i ] Μέτρηση[i,1] Για i από 1 μέχρι 15 Για j από 1 μέχρι 5 Δώσε τη μέτρηση της προσπάθειας, j του αθλητή,i Αν Μέτρηση[i,j] > max[ i ] τότε max [ i ] Μέτρηση[i,j] Τέλος_αν Για i από 1 μέχρι 15 Εμφάνισε Εμφάνισε είναι, max[i]! Το πρώτο στοιχείο κάθε γραμμής Η καλύτερη προσπάθεια του, Επώνυμο[i] Για i από 2 μέχρι 15 Για j από 15 μέχρι i με βήμα -1 Τέλος Αν max[ j-1] < max[ j ] τότε! Φθίνουσα σειρά Αντιμετάθεσε max[j-1], max[j] Αντιμετάθεσε Επώνυμο[j-1], Επώνυμο[j] Τέλος_αν Για i από 1 μέχρι 3 Εμφάνισε Επώνυμο[ i ] Εμφάνισε Θέση, i Αθλητές
3.39 Δίνεται ο παρακάτω κατάλογος όπου φαίνονται οι τιμές σε Ευρώ, 4 προϊόντων υπολογιστών από 5 καταστήματα. ETHERNET TFT Monitor USB Πληκτρολόγιο Καταστήματα SOFT-IN FRAME-T MicroComp PC View Spyzy Net 10 220 12 13 12 245 16 11 11 295 16 13 24 230 20 11 17,5 200 21 8 Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τα στοιχεία του καταλόγου, θα τα αποθηκεύει στις κατάλληλες δομές δεδομένων και θα υπολογίζει τη μέση τιμή για κάθε προϊόν. Επίσης θα υπολογίζεται το σύνολο των εσόδων κάθε καταστήματος σε περίπτωση που ένας πελάτης αγοράσει και τα τέσσερα προϊόντα. Χρησιμοποιούμε 3 πίνακες για να αποθηκεύσουμε : 1. Σε ένα πίνακα 4 θέσεων τα όνομα κάθε προϊόντος, 2. Σε ένα πίνακα 5 θέσεων θα αποθηκεύω τα ονόματα των πελατών. 3. Σε ένα πίνακα 4x5 θέσεων θα αποθηκεύω τις τιμές των προϊόντων. Κάθε γραμμή του τρίτου πίνακα θα έχει τις τιμές κάθε προϊόντος. Όταν ένας πελάτης αγοράσει και τα 4 προϊόντα Πρέπει στην ουσία να υπολογίσουμε το άθροισμα κατά στήλη. Και να το εμφανίσουμε με το όνομα του αντίστοιχου καταστήματος.
Αλγόριθμος Τιμές_Προϊόντων ΑΝΑΠΤΥΞΗ! Διάβασμα στοιχείων ΕΦΑΡΜΟΓΩΝ Για i από 1 μέχρι 4 Εμφάνισε Δώσε το επώνυμο του προϊόντος, i Διάβασε Προϊόν[ i ] Για i από 1 μέχρι 5 Εμφάνισε Διάβασε Κατάστημα[ i ] Για i από 1 μέχρι 4 Για j από 1 μέχρι 5 Δώσε το όνομα του καταστήματος, i Εμφάνισε Δώσε τη τιμή του προϊόντος Διάβασε Τιμή [i,j]! Υπολογισμός μέσης τιμής για κάθε προϊόν Για i από 1 μέχρι 4 Άθροισμα[i] 0 Για i από 1 μέχρι 4 Για j από 1 μέχρι 5 Άθροισμα[i] Άθροισμα[i] +Τιμή [i,j ] Για i από 1 μέχρι 4 Τέλος Η μέση τιμή του προϊόντος,προϊόν [i] Εμφάνισε Εμφάνισε είναι,άθροισμα [i]/5! Υπολογισμός εσόδων ανά κατάστημα Για j από 1 μέχρι 5 ΆθροισμαΣ[j] 0 Για j από 1 μέχρι 5 Για i από 1 μέχρι 4 ΆθροισμαΣ[j] ΆθροισμαΣ[j] +Τιμή [i,j ] Για j από 1 μέχρι 5 Εμφάνισε Τα έσοδα του καταστήματος,κατάστημα [j] Εμφάνισε είναι,άθροισμασ[j] Τιμές_Προϊόντων
Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα, πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου. Χρησιμοποιούμε ένα πίνακα για να αποθηκεύσουμε : Πίνακας Α 50x50 θέσεων Πίνακας Α 50x50 θέσεων Α 1,2... Α 1,49 Α 1,50 Α 3,50 Α 2,49 Α 2,50 ή Α 1,2... Α 1,49 Α 1,50 Α 2,49 Α 2,50 Α 3,49 Α 3,50 Α 3,49 Α 49,2 Α 49,49 Α 49,50 Α 50,1 Α 50,2 Α 49,1 Α 50,50 Α 49,2 Α 49,49 Α 49,50 Α 50,49 Α 50,1 Α 50,2 Α 49,1 Α 50,50 Α 50,49 Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων Δηλώνω νούμερο πχ α = 49
Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα, πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου. Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε : Πίνακας Α 50x50 θέσεων Πίνακας Α 50x50 θέσεων Α 1,2... Α 1,49 Α 3,49 Α 2,49 ή Α 1,2... Α 1,50 Α 2,50 Α 3,50 Α 49,1 Α 49,2 Α 49,49 Α 50,1 Α 50,2 Α 50,50 Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων Δηλώνω νούμερο πχ α = 49
Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα, πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου. Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε : Πίνακας Α 50x50 θέσεων Πίνακας Α 50x50 θέσεων Α 1,2... Α 1,49 Α 3,49 Α 2,49 ή Α 1,2... Α 1,50 Α 2,50 Α 3,50 Α 49,1 Α 49,2 Α 49,49 Α 50,1 Α 50,2 Α 50,50 Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων Δηλώνω νούμερο πχ α = 49
Να γραφεί αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα 50x50.Στη συνέχεια θα ζητά έναν αριθμό από το 1 έως το 50 (αν ο αριθμός δεν είναι μεταξύ του 1 και 50 να ζητείται επαναληπτικά μέχρι να δοθεί αποδεκτό νούμερο) και θα δημιουργεί έναν 2ο πίνακα 49x49 στον οποίο θα έχουν αντιγραφεί τα στοιχεία του πρώτου πίνακα, πλην των στοιχείων που βρίσκονται στη γραμμή και τη στήλη που αντιστοιχεί στον αριθμό εισόδου. Χρησιμοποιούμε 1πίνακα για να αποθηκεύσουμε : Πίνακας Α 50x50 θέσεων Πίνακας Α 50x50 θέσεων Α 1,2... Α 1,49 Α 3,49 Α 2,49 ή Α 1,2... Α 1,49 Α 2,49 Α 3,49 Α 49,1 Α 49,2 Α 49,49 Α 49,1 Α 49,2 Α 49,49 Πίνακας Β 49x49 θέσεων Πίνακας Β 49x49 θέσεων Δηλώνω νούμερο πχ α = 49
Στην ουσία χωρίζουμε τον πίνακα Π σε 4 τμήματα: Έστω ότι δηλώνω α=25 Π 1 Στήλες Παραμένουν όπως είναι 1 24 Για i από 1 μέχρι α-1 επανέλαβε Στήλες Μεταφορά προς τα αριστερά 26 50 Για i από 1 μέχρι α-1 επανέλαβε 1 Για j από 1 μέχρι α-1 επανέλαβε Για j από α+1 μέχρι 50 επανέλαβε γραμμές α-1 24 Β[i,j] Α[i,j] Β[i,j-1] Α[i,j] 24 γραμμές 25,25
Για παράδειγμα στο 2ο τεταρτημόριο Α 37,37
Για παράδειγμα στο 2ο τεταρτημόριο Β 37,36 Δηλαδή μειώνεται κατά 1 η στήλη.
Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα: Έστω ότι δηλώνω α=25 Α 1 1 24 Παραμένουν όπως είναι Για i από 1 μέχρι α-1 επανέλαβε 26 50 Μεταφορά προς τα αριστερά Για i από 1 μέχρι α-1 επανέλαβε 1 Για j από 1 μέχρι α-1 επανέλαβε Για j από α+1 μέχρι 50 επανέλαβε Β[i,j] Α[i,j] Β[i,j-1] Α[i,j] 24 24 26 1 24 Μεταφορά προς τα πάνω α+1 Για i από α+1 μέχρι 50 επανέλαβε Για j από 1 μέχρι α-1 επανέλαβε γραμμές Β[i-1,j] Α[i,j] 25,25 50 Στήλες
Για παράδειγμα στο 3ο τεταρτημόριο Α 35,15
Για παράδειγμα στο 3ο τεταρτημόριο Β 34,15 Δηλαδή μειώνεται κατά 1 η γραμμή.
Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα: Έστω ότι δηλώνω α=25 Α 1 1 24 Παραμένουν όπως είναι Για i από 1 μέχρι α-1 επανέλαβε 26 50 Μεταφορά προς τα αριστερά Για i από 1 μέχρι α-1 επανέλαβε 1 Για j από 1 μέχρι α-1 επανέλαβε Για j από α+1 μέχρι 50 επανέλαβε Β[i,j] Α[i,j] Β[i,j-1] Α[i,j] 24 24 26 1 24 Μεταφορά προς τα πάνω Για i από α+1 μέχρι 50 επανέλαβε 25,25 Μεταφορά προς τα πάνω & αριστερά 26 50 Για i από α+1 μέχρι 50 επανέλαβε 26 Για j από 1 μέχρι α-1 επανέλαβε Β[i-1,j] Α[i,j] Για j από α+1 μέχρι 50 επανέλαβε Β[i-1,j-1] Α[i,j] γραμμές 50 50 Στήλες
Για παράδειγμα στο 4ο τεταρτημόριο Α 35,35
Για παράδειγμα στο 4ο τεταρτημόριο Β 34,34 Δηλαδή μειώνεται κατά 1 και η γραμμή και η στήλη.
Στην ουσία χωρίζουμε τον πίνακα σε 4 τμήματα: Έστω ότι δηλώνω α=25 Α 1 1 24 Παραμένουν όπως είναι Για i από 1 μέχρι α-1 επανέλαβε 26 50 Μεταφορά προς τα αριστερά Για i από 1 μέχρι α-1 επανέλαβε 1 Για j από 1 μέχρι α-1 επανέλαβε Για j από α+1 μέχρι 50 επανέλαβε Β[i,j] Α[i,j] Β[i,j-1] Α[i,j] 24 24 26 1 24 Μεταφορά προς τα πάνω Για i από α+1 μέχρι 50 επανέλαβε 25,25 Μεταφορά προς τα πάνω & αριστερά 26 50 Για i από α+1 μέχρι 50 επανέλαβε 26 Για j από 1 μέχρι α-1 επανέλαβε Για j από α+1 μέχρι 50 επανέλαβε 50 Άρα ο αλγόριθμος είναι: Β[i-1,j] Α[i,j] Β[i-1,j-1] Α[i,j] 50
Αλγόριθμος Διαγραφή_Γραμμής_Στήλης Για i από 1 μέχρι 50 Για j απόκεφάλαιο 1 μέχρι 50 3 ο Εμφάνισε Δώσε το στοιχείο,i, j του πίνακα Α Διάβασε Α[ i,j ] Αρχή_επανάληψης Διάβασε α Μέχρις_ότου α>=1 και α=<50 Για i από 1 μέχρι α-1 Για j από 1 μέχρι α-1 Β [ i, j ] A [i,j] Για i από 1 μέχρι α-1 Για j από α+1 μέχρι 50 Β [ i, j-1 ] A [i,j] Για i από α+1 μέχρι 50 Για j από 1 μέχρι α-1 Β [ i-1, j ] A [i,j]!1 α 50! 1ο τεταρτημόριο! 2ο τεταρτημόριο! 3ο τεταρτημόριο Για i από α+1 μέχρι 50 Για j από α+1 μέχρι 50 Τέλος Β [ i-1, j-1 ] A [i,j] Διαγραφή_Γραμμής_Στήλης! 4ο τεταρτημόριο
3.41 Να γραφεί αλγόριθμος που θα διαβάζει έναν πίνακα Α 3 γραμμών και 4 στηλών Πίνακας Α 3x4 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,4 Α 3,3
3.41 Να γραφεί αλγόριθμος που θα διαβάζει έναν πίνακα Α 3 γραμμών και 4 στηλών Και θα το μετατρέπει σε έναν μονοδιάστατο πίνακα 12 στοιχείων. Πίνακας Α 3x4 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,4 Α 3,3 Πίνακας Β 12 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,3 Α 3,4 Άρα ο αλγόριθμος είναι:
3.41 Αλγόριθμος Μετατροπή_πίνακα Για i από 1 μέχρι 3 Για j από 1 μέχρι 4 Εμφάνισε Δώσε το στοιχείο,i, j του πίνακα Α Διάβασε Α[ i,j ] Πίνακας Α 3x4 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,3 Α 3,4 j=1 j=2 j=3 j=4 Για j από 1 μέχρι 4! Όσες στήλες Β [ j ] A [1, j ]! 1η Γραμμή Τέλος Μετατροπή_πίνακα Πίνακας Β 12 θέσεων ΑB 1,1 1 ΑB 1,2 2 ΑB 1,3 3 ΑB 1,4 4
3.41 Αλγόριθμος Μετατροπή_πίνακα Για i από 1 μέχρι 3 Για j από 1 μέχρι 4 Εμφάνισε Δώσε το στοιχείο,i, j του πίνακα Α Διάβασε Α[ i,j ] Πίνακας Α 3x4 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,3 Α 3,4 j=1 j=2 j=3 j=4 Για j από 1 μέχρι 4! Όσες στήλες Β [ j ] A [1, j ]! 1η Γραμμή Β [ j +4] A [2, j ]! 2η Γραμμή Τέλος Μετατροπή_πίνακα Πίνακας Β 12 θέσεων B 2 B 3 B 4 ΑB 2,1 5 ΑB 2,2 6 ΑB 2,3 7 B 1 B 8 Α 2,4
3.41 Αλγόριθμος Μετατροπή_πίνακα Για i από 1 μέχρι 3 Για j από 1 μέχρι 4 Εμφάνισε Δώσε το στοιχείο,i, j του πίνακα Α Διάβασε Α[ i,j ] Πίνακας Α 3x4 θέσεων Α 1,2 Α 1,3 Α 1,4 Α 2,3 Α 2,4 Α 3,3 Α 3,4 j=1 j=2 j=3 j=4 Για j από 1 μέχρι 4! Όσες στήλες Β [ j ] A [1, j ]! 1η Γραμμή Β [ j +4] A [2, j ] Β [ j +8] A [3, j ]! 2η Γραμμή! 3η Γραμμή Τέλος Μετατροπή_πίνακα Πίνακας Β 12 θέσεων B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 B 9 ΑB 3,2 10 ΑB 3,3 11 Α 3,4 B 12
Επικοινωνία: spzygouris@gmail.com