1.1) Λογική Συνάρτηση σε Κύκλωμα
Λογική Συνάρτηση σε Πίνακα Αλήθειας
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Πρόσθεση στο Δεκαεξαδικό
16δικό σε Δεκαδικό
Θεωρία
1) Στοιχεία ενός προγράμματος C
2) Η συνάρτηση main()
3) H οδηγία #include
4) Μεταβλητές
5) Εντολές
5.1) Η εντολή printf
5.2) Η εντολή scanf
6) Συναρτήσεις Χρήστη
6.1) Το πρωτότυπο μιας συνάρτησης
6.2) Το σώμα μιας συνάρτησης
6.3) Κλήση μιας συνάρτησης
7) Σχόλια Προγράμματος
Ασκήσεις
1.1) Λογική Συνάρτηση σε Κύκλωμα
Λογική Συνάρτηση σε Πίνακα Αλήθειας
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Πρόσθεση στο Δεκαεξαδικό
16δικό σε Δεκαδικό
Θεωρία
1) Στοιχεία ενός προγράμματος C
2) Η συνάρτηση main()
3) H οδηγία #include
4) Μεταβλητές
5) Εντολές
5.1) Η εντολή printf
5.2) Η εντολή scanf
6) Συναρτήσεις Χρήστη
6.1) Το πρωτότυπο μιας συνάρτησης
6.2) Το σώμα μιας συνάρτησης
6.3) Κλήση μιας συνάρτησης
7) Σχόλια Προγράμματος
Ασκήσεις
Θεωρία
1) Στοιχεία ενός προγράμματος C
2) Η συνάρτηση main()
3) H οδηγία #include
4) Μεταβλητές
5) Εντολές
5.1) Η εντολή printf
5.2) Η εντολή scanf
6) Συναρτήσεις Χρήστη
6.1) Το πρωτότυπο μιας συνάρτησης
6.2) Το σώμα μιας συνάρτησης
6.3) Κλήση μιας συνάρτησης
7) Σχόλια Προγράμματος
Ασκήσεις
1.1) Οκταδικό σε Δεκαδικό. Δεκαδικό σε Δυαδικό
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Προβλημα σε Πίνακα Αληθείας
1.4) Διάγραμμα Ροής Προγράμματος για Άθροισμα
Α. Δείκτες
1) Η μνήμη του υπολογιστή
2) Η έννοια του δείκτη
3) Ορισμός Δείκτη
4) Απόδοση τιμής σε δείκτη (Ο τελεστής &)
5) Απόδοση τιμής μέσω δείκτη (ο τελεστής *)
6) Παράδειγμα χρήσης δείκτη
Β. Δείκτες και Πίνακες
1) Το όνομα ενός πίνακα είναι δείκτης
2) Αποθήκευση ενός πίνακα στη μνήμη
3) Αριθμητική Δεικτών
4) Ισοδύναμος Συμβολισμός για πρόσβασή σε πίνακα
Γ. Δείκτες και Συναρτήσεις
1) Διοχέτευση Δείκτη σε Συνάρτηση
2) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Τιμής
3) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Αναφοράς
Δ. Παρατηρήσεις
1) Διοχέτευση πίνακα ως όρισμα σε συνάρτηση
2) Η Σταθερά NULL
Ασκήσεις
ΓΛΩΣΣΑ 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
Διδακτέα - Εξεταστέα ύλη για το μάθημα "Οικονομία" (ΑΟΘ) της Γ τάξης του Επαγγελματικού λυκείου. Μπορείτε να δείτε και αναλυτικά την ύλη του μαθήματος επιλέγοντας τον παρακάτω σύνδεσμο:
https://view.genially.com/6450d17ad94e2600194eb286
1. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
1
ΠΛΗ10 – ΤΕΣΤ 32
Θέµα 3: Ερωτήµατα σε Γλώσσα C
Ερώτηµα 1
Να γράψετε τη συνάρτηση isSymmetric() στη γλώσσα προγραµµατισµού C, η οποία έχει ως παράµετρο έναν
τετραγωνικό (NxN) πίνακα a, ακεραίων αριθµών, και ελέγχει αν ο πίνακας είναι συµµετρικός, κάνοντας τις
ελάχιστες δυνατές συγκρίσεις στοιχείων. Η συνάρτηση δεν διαβάζει και δεν τυπώνει τίποτα, απλώς
επιστρέφει την τιµή 1 αν ο πίνακας είναι συµµετρικός και την τιµή 0 αν ο πίνακας δεν είναι συµµετρικός.
Στη συνέχεια, να χρησιµοποιήσετε τη συνάρτηση σε ένα πρόγραµµα που θα ζητά από το χρήστη να
εισάγει τα στοιχεία ενός τετραγωνικού πίνακα και θα εµφανίζει στην οθόνη µήνυµα ότι ο πίνακας είναι (ή
δεν είναι) συµµετρικός.
2. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
2
Ερώτηµα 2
Έστω το παρακάτω πρόγραµµα:
#include <stdio.h>
int func1(int x)
{
printf("%d, ",x);
return func2(x+5);
}
int func2(int x)
{
printf("%d, ",x);
if (x==0) return x;
else return func1(x/2);
}
main()
{
int i;
printf("Dwse i ");
scanf("%d",&i);
func1(i);
}
Τι θα εµφανίσει το πρόγραµµα όταν ο χρήστης δώσει (1) i=-15 (2) i=3
3. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
3
Ερώτηµα 3
Οι τετραγωνικοί αριθµοί ορίζονται ως εξής: Ο πρώτος τετραγωνικός αριθµός είναι ο αριθµός 1, ενώς οι
επόµενοι αριθµοί υπολογίζονται από το άθροισµα διαδοχικών θετικών περιττών αριθµών. Για παράδειγµα,
ο δεύτερος τετραγωνικός αριθµός είναι ο αριθµός 4 (4=1+3) και ο τρίτος τετραγωνικός αριθµός είναι ο
αριθµός 9 (9=1+3+5)
Να γραφεί πρόγραµµα σε γλώσσα προγραµµατισµού C, το οποίο να διαβάζει έναν θετικό ακέραιο αριθµό
Ν µε χρήση αµυντικού προγραµµατισµού και εµφανίζει τους Ν πρώτους τετραγωνικούς αριθµούς.
4. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
4
Ερώτηµα 4
Να γραφεί πρόγραµµα σε γλώσσα προγραµµατισµού C, το οποίο διαβάζει έναν θετικό ακέραιο αριθµό,
χωρίς χρήση αµυντικού προγραµµατισµού και εµφανίζει µήνυµα που να αναφέρει αν ο αριθµός έχει
επαναλαµβανόµενα ψηφία ή όχι. Για παράδειγµα ο αριθµός 462459 έχει επαναλαµβανόµενα ψηφία (το 4),
ενώ ο αριθµός 27341 δεν έχει.
5. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
5
Ερώτηµα 5
Η παρακάτω συνάρτηση υπολογίζει τον µέγιστο κοινό διαιρέτη δύο θετικών ακέραιων αριθµών µε τον
αλγόριθµο του Ευκλείδη. Ξαναγράψτε τη συνάρτηση mkd() ώστε να είναι αναδροµική χωρίς να αλλάξει η
λειτουργία της.
int mkd(int a, int b)
{
int t;
while (a%b!=0)
{
t=a%b;
a=b;
b=t;
}
return b;
}
6. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
6
Θέµα 4: Ερωτήµατα σε ∆οµές ∆εδοµένων
Ερώτηµα 1
Στον παρακάτω πίνακα δίνεται η συνεχόµενη αναπαράσταση δυαδικού δένδρου αναζήτησης (σηµειώνεται ότι
για τις τιµές x1,x2,M,x11 που αποθηκεύονται στους κόµβους του δένδρου δεν ισχύει απαραίτητα ότι x1 < x2 <
x3 κ.λπ.). Οι θέσεις χωρίς περιεχόµενο υποδεικνύουν ότι στις αντίστοιχες θέσεις του δένδρου δεν υπάρχουν
κόµβοι.
1) Σχεδιάστε το αντίστοιχο δένδρο.
2) Βρείτε τη µικρότερη και τη µεγαλύτερη τιµή στο δένδρο και αιτιολογήστε την απάντησή σας.
3) Ποιες από τις τιµές x5 και x8 είναι µεγαλύτερη και γιατί;
4) ∆ώστε τη µεταδιατεταγµένη διαπέραση του δένδρου.
5) Θεωρήστε ότι το δένδρο σαρώνεται µε την ενδοδιατεταγµένη διαπέραση και τα δεδοµένα των κόµβων
του ωθούνται σε µία στοίωα µε διαδοχικές λειτουργίες εισαγωγής (push). Στη συνέχεια όλα τα δεδοµένα
απωθούνται (εξάγονται) από τη στοίβα µε διαδοχικές λειτουργίες pop και εισάγονται σε µία νέα δοµή
δένδρου – σωρού. Ποια τιµή θα βρεθεί στη ρίζα του δένδρου – σωρού που θα προκύψει στο τέλος;
Αιτιολογήστε την απάντηση σας.
7. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 32
www.psounis.gr
7
Ερώτηµα 2
Έστω συνδεδεµένη λίστα µε στοιχεία φοιτητών του ΕΑΠ, στην οποία κάθε κόµβος περιέχει τρία στοιχεία: Αριθµό
Μητρώου, Τελική Βαθµολογία, και δείκτη στον επόµενο κόµβο. Η λίστα είναι ταξινοµηµένη σε αύξουσα διάταξη
βάσει των αριθµών µητρώου. Γράψτε σε γλώσσα προγραµµατισµού C τη δήλωση του κόµβου της λίστας και γράψτε
τη συνάρτηση insert_ordered_list που εισάγει στη λίστα έναν νέο κόµβο µε αριθµό µητρώου ΑΜ και τελική
βαθµολογία Β. Τα ΑΜ και Β καθώς και ο δείκτης start στην αρχή της λίστας είναι παράµετροι της διαδικασίας.