ΠΛΗ10 ΜΑΘΗΜΑ 2.3: ΤΕΛΕΣΤΕΣ ΚΑΙ Η ΕΝΤΟΛΗ ΑΠΟΦΑΣΗΣDimitris Psounis
A. Θεωρία
1) Τελεστές
1.1) Γενικά
1.2) Ο τελεστής εκχώρησης
1.3) Αριθμητικοί Τελεστές
1.4) Σχεσιακοί Τελεστές
1.5) Λογικοί Τελεστές
2) Η Εντολή Απόφασης
2.1) Γενικά
2.2) Πρώτη Μορφή (ΕΆΝ)
2.3) Δεύτερη Μορφή (ΕΆΝ…ΑΛΛΙΩΣ)
2.4) Εμφωλιασμένες Εντολές Απόφασης
Β.Ασκήσεις
Α. Πίνακες
Α.1) Εισαγωγή στους Πίνακες
Α.1.1) Μονοδιάστατοι Πίνακες
Α.1.2) Παράδειγμα
B. Δομές Επανάληψης
Β.1) Γενικά
Β.2) Η δομή for
Β.2.1) Συντακτικό της for
Β.2.2) Διάγραμμα Ροής Προγράμματος
Β.2.3) Παραδείγματα Εκτέλεσης
Β.3) Η δομή do…while
Β.3.1) Συντακτικό της do…while
Β.3.2) Διάγραμμα Ροής Προγράμματος
Β.3.3) Παραδείγματα Εκτέλεσης
Β.3.4) Αμυντικός Προγραμματισμός
Β.4) Η δομή while
Β.4.1) Συντακτικό της while
Β.4.2) Διάγραμμα Ροής Προγράμματος
Β.4.3) Παραδείγματα Εκτέλεσης
Β.4.4) Αμυντικός Προγραμματισμός
Β.5) Συμπεράσματα
Β.5.1) Προτεινόμενη χρήση των δομών επανάληψης
Β.5.2) Προσομοίωση της for από την while και τη do..while
Γ) Ασκήσεις
Γ.1) Άθροισμα και Γινόμενο Αριθμών
Γ.2) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Αθροισμάτων
Γ.3) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Παραλληλογράμμου
Γ.4) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Τριγώνου
Γ.5) Άθροισμα Αριθμών με Χρήση Πίνακα
Γ.6) Γινόμενο Αριθμών με Χρήση Πίνακα
Γ.7) Ελάχιστος από N αριθμούς
Γ.8) Μέσος Όρος Ν αριθμών
ΠΛΗ10 ΜΑΘΗΜΑ 2.3: ΤΕΛΕΣΤΕΣ ΚΑΙ Η ΕΝΤΟΛΗ ΑΠΟΦΑΣΗΣDimitris Psounis
A. Θεωρία
1) Τελεστές
1.1) Γενικά
1.2) Ο τελεστής εκχώρησης
1.3) Αριθμητικοί Τελεστές
1.4) Σχεσιακοί Τελεστές
1.5) Λογικοί Τελεστές
2) Η Εντολή Απόφασης
2.1) Γενικά
2.2) Πρώτη Μορφή (ΕΆΝ)
2.3) Δεύτερη Μορφή (ΕΆΝ…ΑΛΛΙΩΣ)
2.4) Εμφωλιασμένες Εντολές Απόφασης
Β.Ασκήσεις
Α. Πίνακες
Α.1) Εισαγωγή στους Πίνακες
Α.1.1) Μονοδιάστατοι Πίνακες
Α.1.2) Παράδειγμα
B. Δομές Επανάληψης
Β.1) Γενικά
Β.2) Η δομή for
Β.2.1) Συντακτικό της for
Β.2.2) Διάγραμμα Ροής Προγράμματος
Β.2.3) Παραδείγματα Εκτέλεσης
Β.3) Η δομή do…while
Β.3.1) Συντακτικό της do…while
Β.3.2) Διάγραμμα Ροής Προγράμματος
Β.3.3) Παραδείγματα Εκτέλεσης
Β.3.4) Αμυντικός Προγραμματισμός
Β.4) Η δομή while
Β.4.1) Συντακτικό της while
Β.4.2) Διάγραμμα Ροής Προγράμματος
Β.4.3) Παραδείγματα Εκτέλεσης
Β.4.4) Αμυντικός Προγραμματισμός
Β.5) Συμπεράσματα
Β.5.1) Προτεινόμενη χρήση των δομών επανάληψης
Β.5.2) Προσομοίωση της for από την while και τη do..while
Γ) Ασκήσεις
Γ.1) Άθροισμα και Γινόμενο Αριθμών
Γ.2) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Αθροισμάτων
Γ.3) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Παραλληλογράμμου
Γ.4) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Τριγώνου
Γ.5) Άθροισμα Αριθμών με Χρήση Πίνακα
Γ.6) Γινόμενο Αριθμών με Χρήση Πίνακα
Γ.7) Ελάχιστος από N αριθμούς
Γ.8) Μέσος Όρος Ν αριθμών
Α. Δείκτες
1) Η μνήμη του υπολογιστή
2) Η έννοια του δείκτη
3) Ορισμός Δείκτη
4) Απόδοση τιμής σε δείκτη (Ο τελεστής &)
5) Απόδοση τιμής μέσω δείκτη (ο τελεστής *)
6) Παράδειγμα χρήσης δείκτη
Β. Δείκτες και Πίνακες
1) Το όνομα ενός πίνακα είναι δείκτης
2) Αποθήκευση ενός πίνακα στη μνήμη
3) Αριθμητική Δεικτών
4) Ισοδύναμος Συμβολισμός για πρόσβασή σε πίνακα
Γ. Δείκτες και Συναρτήσεις
1) Διοχέτευση Δείκτη σε Συνάρτηση
2) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Τιμής
3) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Αναφοράς
Δ. Παρατηρήσεις
1) Διοχέτευση πίνακα ως όρισμα σε συνάρτηση
2) Η Σταθερά NULL
Ασκήσεις
1) Θεωρία
1.1) Κύκλος Ανάπτυξης Προγράμματος
1.1.1) Βήματα Δημιουργία ενός Προγράμματος
1.1.2) Κατέβασμα και εγκατάσταση του Dev-C++
1.2) Το πρώτο πρόγραμμα σε C
1.2.1) Περιγραφή του προγράμματος
1.2.2) Συγγραφή του προγράμματος
1.2.3) Μεταγλώττιση του προγράμματος
1.2.4) Σύνδεση των αρχείων
1.2.5) Εκτέλεση του προγράμματος
1.2.6) Λίγα λόγια για το πρόγραμμα
2) Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Ροές
1) Γενικά
2) Η ροή προκαθορισμένης εισόδου stdin
3) Η ροή προκαθορισμένης εξόδου stdout
4) Η ροή προκαθορισμένης εξόδου λαθών stderr
Β. Συναρτήσεις ροής εισόδου stdin
1) Γενικά
2) Η συνάρτηση getchar()
3) Η συνάρτηση getch()
4) Η συνάρτηση getche()
5) H συνάρτηση ungetc()
6) Η συνάρτηση gets()
7) Η συνάρτηση fgets()
8) Η συνάρτηση scanf()
9) Η συνάρτηση fflush()
A. Πρόσθετα Στοιχεία της Ψευδογλώσσας
1) Μαθηματικές Συναρτήσεις
2) Επιλογή με Πολλά Ενδεχόμενα
3) Τύποι Δεδομένων
4) Δείκτες και Δομές Δεδομένων
5) Η εντολή GOTO
6) Χειρισμός Εξαιρέσεων
1) Το Δεκαδικό Σύστημα Αρίθμησης
1.1) Δεκαδικός Αριθμός
1.2) Δεκαδικός Αριθμός Κινητής Υποδιαστολής
2) Αναπαράσταση ενός Αριθμού σε ένα Σύστημα Αρίθμησης
3) Το Δυαδικό Σύστημα Αρίθμησης
3.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε Δυαδικό
3.2) Μετατροπή από Δυαδικό σε Δεκαδικό
3.3) Ασκήσεις
4) Το Οκταδικό Σύστημα Αρίθμησης
4.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε Οκταδικό
4.2) Μετατροπή από Οκταδικό σε Δεκαδικό
4.3) Ασκήσεις
5) Το Δεκαεξαδικό Σύστημα Αρίθμησης
5.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε 16αδικό
5.2) Μετατροπή από 16αδικό σε Δεκαδικό
5.3) Ασκήσεις
6) Άλλα Συστήματα Αρίθημησης
6.1) Κωδικοποίηση Αριθμών και Μετατροπή από το Δεκαδικό
6.2) Μετατροπή σε Δεκαδικό
7) Μετατροπές Αριθμών
7.1) Η σχέση των δυαδικών με οκταδικούς
7.2) Η σχέση των δυαδικών με δεκαεξαδικούς
7.3) Μετατροπές σε άλλα συστήματα αρίθμησης
7.4) Ασκήσεις
Α. Έλεγχος Προγράμματος
1) Η εντολή άμεσης επανάληψης continue
2) Η εντολή διακοπής επανάληψης break
3) Η εντολή μεταφοράς ελέγχου προγράμματος goto
4) Η εντολή ελέγχου πολλαπλής συνθήκης switch
Β. Προγραμματιστικές Τεχνικές
1) Ατέρμονες Βρόχοι για την κατασκευή menu
2) Άμεση Έξοδος από το πρόγραμμα
3) Εκτέλεση Εντολών Συστήματος
Γ.Ασκήσεις
Α. Δείκτες
1) Η μνήμη του υπολογιστή
2) Η έννοια του δείκτη
3) Ορισμός Δείκτη
4) Απόδοση τιμής σε δείκτη (Ο τελεστής &)
5) Απόδοση τιμής μέσω δείκτη (ο τελεστής *)
6) Παράδειγμα χρήσης δείκτη
Β. Δείκτες και Πίνακες
1) Το όνομα ενός πίνακα είναι δείκτης
2) Αποθήκευση ενός πίνακα στη μνήμη
3) Αριθμητική Δεικτών
4) Ισοδύναμος Συμβολισμός για πρόσβασή σε πίνακα
Γ. Δείκτες και Συναρτήσεις
1) Διοχέτευση Δείκτη σε Συνάρτηση
2) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Τιμής
3) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Αναφοράς
Δ. Παρατηρήσεις
1) Διοχέτευση πίνακα ως όρισμα σε συνάρτηση
2) Η Σταθερά NULL
Ασκήσεις
1) Θεωρία
1.1) Κύκλος Ανάπτυξης Προγράμματος
1.1.1) Βήματα Δημιουργία ενός Προγράμματος
1.1.2) Κατέβασμα και εγκατάσταση του Dev-C++
1.2) Το πρώτο πρόγραμμα σε C
1.2.1) Περιγραφή του προγράμματος
1.2.2) Συγγραφή του προγράμματος
1.2.3) Μεταγλώττιση του προγράμματος
1.2.4) Σύνδεση των αρχείων
1.2.5) Εκτέλεση του προγράμματος
1.2.6) Λίγα λόγια για το πρόγραμμα
2) Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Ροές
1) Γενικά
2) Η ροή προκαθορισμένης εισόδου stdin
3) Η ροή προκαθορισμένης εξόδου stdout
4) Η ροή προκαθορισμένης εξόδου λαθών stderr
Β. Συναρτήσεις ροής εισόδου stdin
1) Γενικά
2) Η συνάρτηση getchar()
3) Η συνάρτηση getch()
4) Η συνάρτηση getche()
5) H συνάρτηση ungetc()
6) Η συνάρτηση gets()
7) Η συνάρτηση fgets()
8) Η συνάρτηση scanf()
9) Η συνάρτηση fflush()
A. Πρόσθετα Στοιχεία της Ψευδογλώσσας
1) Μαθηματικές Συναρτήσεις
2) Επιλογή με Πολλά Ενδεχόμενα
3) Τύποι Δεδομένων
4) Δείκτες και Δομές Δεδομένων
5) Η εντολή GOTO
6) Χειρισμός Εξαιρέσεων
1) Το Δεκαδικό Σύστημα Αρίθμησης
1.1) Δεκαδικός Αριθμός
1.2) Δεκαδικός Αριθμός Κινητής Υποδιαστολής
2) Αναπαράσταση ενός Αριθμού σε ένα Σύστημα Αρίθμησης
3) Το Δυαδικό Σύστημα Αρίθμησης
3.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε Δυαδικό
3.2) Μετατροπή από Δυαδικό σε Δεκαδικό
3.3) Ασκήσεις
4) Το Οκταδικό Σύστημα Αρίθμησης
4.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε Οκταδικό
4.2) Μετατροπή από Οκταδικό σε Δεκαδικό
4.3) Ασκήσεις
5) Το Δεκαεξαδικό Σύστημα Αρίθμησης
5.1) Κωδικοποίηση Αριθμών και Μετατροπή από Δεκαδικό σε 16αδικό
5.2) Μετατροπή από 16αδικό σε Δεκαδικό
5.3) Ασκήσεις
6) Άλλα Συστήματα Αρίθημησης
6.1) Κωδικοποίηση Αριθμών και Μετατροπή από το Δεκαδικό
6.2) Μετατροπή σε Δεκαδικό
7) Μετατροπές Αριθμών
7.1) Η σχέση των δυαδικών με οκταδικούς
7.2) Η σχέση των δυαδικών με δεκαεξαδικούς
7.3) Μετατροπές σε άλλα συστήματα αρίθμησης
7.4) Ασκήσεις
Α. Έλεγχος Προγράμματος
1) Η εντολή άμεσης επανάληψης continue
2) Η εντολή διακοπής επανάληψης break
3) Η εντολή μεταφοράς ελέγχου προγράμματος goto
4) Η εντολή ελέγχου πολλαπλής συνθήκης switch
Β. Προγραμματιστικές Τεχνικές
1) Ατέρμονες Βρόχοι για την κατασκευή menu
2) Άμεση Έξοδος από το πρόγραμμα
3) Εκτέλεση Εντολών Συστήματος
Γ.Ασκήσεις
A. Πρόσθετα Στοιχεία της Ψευδογλώσσας
1) Μαθηματικές Συναρτήσεις
2) Επιλογή με Πολλά Ενδεχόμενα
3) Τύποι Δεδομένων
4) Δείκτες και Δομές Δεδομένων
5) Η εντολή GOTO
6) Χειρισμός Εξαιρέσεων
1.1) Οκταδικό σε Δεκαδικό. Δεκαδικό σε Δυαδικό
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Προβλημα σε Πίνακα Αληθείας
1.4) Διάγραμμα Ροής Προγράμματος για Άθροισμα
A. Θεωρία
1) Τελεστές
1.1) Γενικά
1.2) Ο τελεστής εκχώρησης
1.3) Αριθμητικοί Τελεστές
1.4) Σχεσιακοί Τελεστές
1.5) Λογικοί Τελεστές
2) Η Εντολή Απόφασης
2.1) Γενικά
2.2) Πρώτη Μορφή (ΕΆΝ)
2.3) Δεύτερη Μορφή (ΕΆΝ…ΑΛΛΙΩΣ)
2.4) Εμφωλιασμένες Εντολές Απόφασης
Β.Ασκήσεις
A. Θεωρία
1. Αλγόριθμοι και Ψευδογλώσσα
1.1) Ορισμός Αλγορίθμου
1.2) Ψευδογλώσσα
1.3) Γενική Συνθήκη για τη συνέχεια των μαθημάτων
2) Εγκατάσταση του Μεταγλωττιστή
2.1) Εγκατάσταση του DevC++
2.2) Εγκατάσταση του Μεταγλωττιστή Ψευδογλώσσας
3) Το πρώτο μας πρόγραμμα σε ψευδογλώσσα
3.1) Δημιουργία Αρχείου Ψευδογλώσσας
3.2) Πληκτρολόγηση του Κώδικα του Προγράμματος
3.3) Μεταγλώττιση του προγράμματος
3.4) Εκτέλεση του προγράμματος
4) Εντολές Εισόδου/Εξόδου
4.1) Εντολή «Διάβασε»
4.2) Εντολή «Τύπωσε»
4.3) Είσοδος/Έξοδος σε Μεταβλητές
Ασκήσεις
A. Θεωρία
1. Αλγόριθμοι και Ψευδογλώσσα
1.1) Ορισμός Αλγορίθμου
1.2) Ψευδογλώσσα
1.3) Γενική Συνθήκη για τη συνέχεια των μαθημάτων
2) Εγκατάσταση του Μεταγλωττιστή
2.1) Εγκατάσταση του DevC++
2.2) Εγκατάσταση του Μεταγλωττιστή Ψευδογλώσσας
3) Το πρώτο μας πρόγραμμα σε ψευδογλώσσα
3.1) Δημιουργία Αρχείου Ψευδογλώσσας
3.2) Πληκτρολόγηση του Κώδικα του Προγράμματος
3.3) Μεταγλώττιση του προγράμματος
3.4) Εκτέλεση του προγράμματος
1.1) Από δεκαεξαδικό σε οκταδικό
1.2) Αφαίρεση με συμπλήρωμα ως προς 2
1.3) Πρόσθεση στο δεκαεξαδικό
1.4) Εύρεση πύλης δεδομένου πίνακα αληθείας
2.1) Άθροισμα και Γινόμενο Τετραγώνων Αριθμών Πίνακα σε Ψευδογλώσσα
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
3. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
3∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Ο όρος αναδροµή αναφέρεται σε µια συνάρτηση που καλεί τον εαυτό της!
Άρα µια συνάρτηση (ή διαδικασία) που στο σώµα της καλεί τον εαυτό της, θα ονοµάζεται
αναδροµική συνάρτηση (αντίστοιχα αναδροµική διαδικασία).
Η δηµιουργία µιας αναδροµικής συνάρτησης είναι πολύ χρήσιµη, ιδίως όταν κατασκευάζουµε
πράγµατα που ορίζονται αναδροµικά!
Ας δούµε ένα παράδειγµα:
Το παραγοντικό του φυσικού αριθµού n ορίζεται ως:
! ∙ 1 ∙ 2 ∙ ⋯ 2 ∙ 1
π.χ. έχουµε 1! 1, 2! 2 ∙ 1, 3! 3 ∙ 2 ∙ 1 6, 4! 4 ∙ 3 ∙ 2 ∙ 1 24 κ.ο.κ.
Το παραγοντικό ορίζεται ωστόσο και αναδροµικά ως εξής:
! ∙ 1 ! αν 1
! 1, αν 1
5. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
5∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Στον υπολογισµό µίας αναδροµικής συνάρτησης, κάθε αναδροµική κλήση έχει και το δικό της
χώρο στη µνήµη.
Ας δούµε πως τρέχει η κλήση factorial(3):
Καλεί την factorial(2):
Καλεί την factorial(1):
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
n
…
Χώρος
της fact(3)
3
y
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
Χώρος
της fact(1)
n y
1
6. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
6∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
H factorial(1) επιστρέφει 1:
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 2*1.
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 3*2
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
Χώρος
της fact(1)
n y
1 1
1
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
2
1
n
Χώρος
της fact(3)
3
y
6
2
main
7. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
7∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Για να απεικονίσουµε τις αναδροµικές κλήσεις που γίνονται προτιµάται µία παράσταση όπου
κάθε αναδροµική κλήση στοιχίζεται λίγο δεξιότερα.
Με τον τρόπο αυτό µπορούµε να παρακολουθήσουµε αρκετά ικανοποιητικά την εκτέλεση ενός
αναδροµικού κώδικα:
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΚΛΗΣΗ factorial(3)
(3=1) ΟΧΙ
y:=factorial(2)
ΚΛΗΣΗ factorial(2)
(2=1) ΟΧΙ
y:=factorial(1)
ΚΛΗΣΗ factorial(1)
(1=1) ΝΑΙ
Επιστρέφει 1
y=1
Επιστρέφει 2*1=2
y=2
Επιστρέφει 3*2=6
8. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
8∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Κλασικό παράδειγµα αλγορίθµου που µπορεί να υλοποιηθεί αναδροµικά είναι η δυαδική
αναζήτηση (Binary Search).
Ο αλγόριθµος που είδαµε να υλοποιείται µε επανάληψη στους πίνακες, τώρα µπορεί να
αναδιατυπωθεί µε αναδροµή.
Σκεπτικό δυαδικής αναζήτησης µε αναδροµή του στοιχείου x σε έναν ταξινοµηµένο σε αύξουσα
σειρά πίνακα:
Αν το µεσαίο στοιχείο είναι το x, το στοιχείο βρέθηκε!
Αν το x είναι µικρότερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του
πίνακα από την αρχή µέχρι το µεσαίο στοιχείο
Αν το x είναι µεγαλύτερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του
πίνακα από το µεσαίο στοιχείο µέχρι το τέλος
11. Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
11∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της δυαδικής
αναζήτησης και παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[1 3 5 7 9]
αναζητώντας το στοιχείο 7
Σηµείωση: Στο σηµείο αυτό συνίσταται να µελετήσετε πρώτα τις δύο εφαρµογές (αριθµοί
Fibonacci και αλγόριθµος Ευκλείδη) και έπειτα να προχωρήσετε µε την θεωρία του µαθήµατος.
12. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
12∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Ένας ακόµη κλασικός αλγόριθµος ταξινόµησης που µάλιστα λειτουργεί µε αναδροµή, είναι η
Ταξινόµηση µε Συγχώνευση (Merge Sort).
Ο αλγόριθµος λειτουργεί ως εξής:
Ταξινοµεί το αριστερό κοµµάτι του πίνακα
Ταξινοµεί το δεξί κοµµάτι του πίνακα
Συγχωνεύει τα δύο ταξινοµηµένα πλέον κοµµάτια σε µία ταξινοµηµένη ακολουθία
Η ταξινόµηση κάθε κοµµατιού γίνεται µε αναδροµική κλήση της ίδιας διαδικασίας.
13. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
13∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ merge_sort(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
∆Ε∆ΟΜΕΝΑ
middle: INTEGER;
ΑΡΧΗ
ΕΑΝ (start<finish) ΤΟΤΕ
ΕΑΝ (start+1=finish) ΤΟΤΕ /* 2 στοιχεία */
ΕΑΝ (PIN[start]>PIN[finish]) ΤΟΤΕ
ΥΠΟΛΟΓΙΣΕ swap(%PIN[start],%PIN[finish]);
ΕΑΝ-ΤΕΛΟΣ
ΑΛΛΙΩΣ /* περισσότερα από 2 στοιχεία */
middle:=(start+finish) DIV 2;
ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,start,middle);
ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,middle+1,finish);
ΥΠΟΛΟΓΙΣΕ merge(%PIN,start,finish);
ΕΑΝ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
28. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
28∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η διαδικασία merge δουλεύει ως εξής:
Σαρώνει τους δύο πίνακες ταυτόχρονα από αριστερά προς τα δεξιά.
Συγκρίνει τα δύο τρέχοντα στοιχεία των πινάκων
Επιλέγει το µικρότερο και το βάζει στην επόµενη θέση της ταξινοµηµένης ακολουθίας
Όταν εξαντληθούν τα στοιχεία του ένος από τους δύο πίνακες, βάζουµε όσα στοιχεία απέµειναν
από τον άλλο πίνακα στο τέλος της ταξινοµηµένης ακολουθίας.
Στο παράδειγµα βλέπουµε µερικά βήµατα και τους µετρητές που χρησιµοποιούνται.
30. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
30∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Μία υλοποίηση της merge είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ merge(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
∆Ε∆ΟΜΕΝΑ
C: ARRAY[1..MAX_N] OF INTEGER;
middle: INTEGER;
i,j,k:INTEGER;
n: INTEGER;
m: INTEGER;
ΑΡΧΗ
middle:=(start+finish) DIV 2;
/* 1ος πίνακας PIN[start...middle]*/
i:=start;
n:=middle;
/* 2ος πίνακας PIN[middle+1...finish]*/
j:=middle+1;
m:=finish;
/* C: συγχωνευµένος πίνακας */
k:=1; (συνεχίζεται…)
31. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
31∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Μία υλοποίηση της merge είναι η ακόλουθη:
(συνέχεια…)
/* 1. Συγχώνευση των δύο πινάκων */
ΕΝΟΣΩ (i<=n AND j<=m) ΕΠΑΝΑΛΑΒΕ
ΕΑΝ (PIN[i]<PIN[j]) ΤΟΤΕ
C[k]:=PIN[i];
k:=k+1;
i:=i+1;
ΑΛΛΙΩΣ
C[k]:=PIN[j];
k:=k+1;
j:=j+1;
ΕΑΝ-ΤΕΛΟΣ
ΕΝΟΣΩ-ΤΕΛΟΣ
(συνεχίζεται…)
32. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
32∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
/* 2. Αντιγραφή του πίνακα που «περισσεύει στο τέλος του συγχωνευµένου πίνακα */
ΕΑΝ (i=n+1) ΤΟΤΕ /* Εξαντλήθηκε ο 1ος πίνακας */
ΕΝΟΣΩ (j<=m) ΕΠΑΝΑΛΑΒΕ
C[k]:=PIN[j];
k:=k+1;
j:=j+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΑΛΛΙΩΣ /* Εξαντλήθηκε ο 2ος πίνακας */
ΕΝΟΣΩ (i<=n) ΕΠΑΝΑΛΑΒΕ
C[k]:=PIN[i];
k:=k+1;
i:=i+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
/* 3. Αντιγραφή του C στον PIN */
k:=1;
i:=start;
ΕΝΟΣΩ (i<=finish) ΕΠΑΝΑΛΑΒΕ
PIN[i]:=C[k];
i:=i+1;
k:=k+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
33. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
33∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και
παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
34. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
34∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Τελευταίος αλγόριθµος ταξινόµησης που θα µελετήσουµε (και λειτουργεί µε αναδροµή), είναι η
Γρήγορη Ταξινόµηση (Quick Sort).
Ο αλγόριθµος λειτουργεί ως εξής:
Επιλέγει ένα Στοιχείο του Πίνακα (Οδηγό Στοιχείο – Εδώ το στοιχείο που είναι στην πρώτη
θέση)
Χωρίζει τον πίνακα σε δύο µέρη:
Τα στοιχεία που είναι µικρότερα του οδηγού στοιχείου
Τα στοιχεία που είναι µεγαλύτερα ή ίσα του οδηγού στοιχείου
Επαναλαµβάνει αναδροµικά στους δύο υποπίνακες που προέκυψαν.
35. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
35∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ quick_sort(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
ΑΡΧΗ
ΕΑΝ (start<finish) ΤΟΤΕ
pos=partition(%PIN,start,finish); /* ∆ιαµέριση του πίνακα */
ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,start,pos); /* Αναδροµή στον αριστερό υποπίνακα */
ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,pos+1,finish);/* Αναδροµή στον δεξιό υποπίνακα */
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
37. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
37∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η διαµέριση των στοιχείων στα µικρότερα και µεγαλύτερα ή ίσα µπορεί να γίνει µε πολλούς
τρόπους:
Π.χ. ένας απλός τρόπος είναι να χρησιµοποιήσουµε έναν βοηθητικό πίνακα που να
βάζουµε στα αριστερά τα µικρότερα στοιχεία και στα δεξιά τα µεγαλύτερα στοιχεία του
οδηγού.
Ωστόσο εµείς θα µελετήσουµε έναν τρόπο διαµέρισης, που αναφέρεται ως σχήµα του Hoare:
Σαρώνουµε τον πίνακα από αριστερά ψάχνοντας για ένα στοιχείο που είναι µεγαλύτερο (ή
ίσο) του οδηγού
Σαρώνουµε τον πίνακα από δεξιά ψάχνοντας για ένα στοιχείο που είναι µικρότερο (ή ίσο)
του οδηγού
Ανταλλάσσουµε τα δύο στοιχεία και επαναλαµβάνουµε µέχρι να γίνει ο χωρισµός των
στοιχείων.
Θα µελετήσουµε το σχήµα του Hoare µε παραδείγµατα (επόµενη διαφάνεια)
39. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
39∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση της partition µε το σχήµα του Hoare σε ψευδογλώσσα είναι η ακόλουθη:
ΣΥΝΑΡΤΗΣΗ
partition(%PIN,start,finish):INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
partition: INTEGER;
∆Ε∆ΟΜΕΝΑ
pivot,i,j: INTEGER;
stop: BOOLEAN;
ΑΡΧΗ
pivot:=PIN[start];
i:=start-1;
j:=finish+1;
stop:=FALSE;
ΕΝΟΣΩ (stop=FALSE) ΕΠΑΝΑΛΑΒΕ
ΕΠΑΝΑΛΑΒΕ
j:=j-1;
ΜΕΧΡΙ (PIN[j]<=pivot)
ΕΠΑΝΑΛΑΒΕ
i:=i+1;
ΜΕΧΡΙ (PIN[i]>=pivot)
ΕΑΝ (i<j) ΤΟΤΕ
ΥΠΟΛΟΓΙΣΕ swap(%PIN[i],%PIN[j]);
ΑΛΛΙΩΣ
stop:=TRUE;
partition:=j;
ΕΑΝ-ΤΕΛΟΣ
ΕΝΟΣΩ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
40. Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
40∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και
παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
41. Β. Ασκήσεις
Εφαρµογή 1 (Αναδροµή: Η ακολουθία FIbonacci)
41∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η ακολουθία fibonacci ορίζεται ως:
Fn=Fn-1+Fn-2, για n>2
F2=1
F1=1
Για παράδειγµα έχουµε F1=1,F2=1,F3=2,F4=3,F5=5,F6=8 κ.ο.κ.
Ορίστε την συνάρτηση fibonacci(n) που δέχεται ως όρισµα έναν φυσικό και επιστρέφει το n-
οστό fibonacci.
Έπειτα κατασκευάστε έναν αλγόριθµο που διαβάζει από τον χρήστη έναν ακέραιο και
υπολογίζει και επιστρέφει τον αριθµό fibonacci του αριθµού που εισήγαγε ο χρήστης.
42. Β. Ασκήσεις
Εφαρµογή 2 (Αναδροµή: ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη)
42∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
O αλγόριθµος του Ευκλείδη για την εύρεση του Μέγιστου Κοινού ∆ιαιρέτη δύο (φυσικών)
αριθµών:
Ξεκινά µε ένα ζεύγος φυσικών και σχηµατίζει ένα νέο ζευγάρι µε τον µικρότερο αριθµό και
την διαφορά του µικρότερου από τον µεγαλύτερο αριθµό.
Η διαδικασία επαναλαµβάνεται εωσότου οι αριθµοί γίνουν ίσοι. Ο αριθµός αυτός είναι ο
ΜΚ∆ των αρχικών αριθµών.
Μαθηµατικά ο ΜΚ∆(a,b) όπου a,b είναι φυσικοί:
Είναι ίσο µε a, αν a=b
Είναι ίσο µε ΜΚ∆(a,b-a), αν a<b
Είναι ίσο µε ΜΚ∆(a-b,b), αλλιώς
Κατασκευάστε έναν αλγόριθµο που θα υλοποιεί µε µία αναδροµική συνάρτηση τον υπολογισµό
του ΜΚ∆ και θα ζητάει από το χρήστη να εισάγει τους δύο φυσικούς, θα κάνει κατάλληλη κλήση
της συνάρτησης και θα τυπώνει τον ΜΚ∆ των αριθµών.
43. Β. Ασκήσεις
Εφαρµογή 3 (Πρόγραµµα: Ταξινόµηση Πίνακα)
43∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Επεκτείνετε το πρόγραµµα της ταξινόµησης πινάκων ώστε να ενσωµατώνει και τους
αλγορίθµους της ταξινόµησης µε συγχώνευση (Merge Sort) και της γρήγορης ταξινόµησης
(Quick Sort).