1.1) Λογική Συνάρτηση σε Κύκλωμα
Λογική Συνάρτηση σε Πίνακα Αλήθειας
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Πρόσθεση στο Δεκαεξαδικό
16δικό σε Δεκαδικό
1.1) Λογική Συνάρτηση σε Κύκλωμα
Λογική Συνάρτηση σε Πίνακα Αλήθειας
1.2) Αφαίρεση με Συμπλήρωμα ως προς 2
1.3) Πρόσθεση στο Δεκαεξαδικό
16δικό σε Δεκαδικό
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
A. Επικοινωνία με το Λειτουργικό Σύστημα
1) Γενικά
2) Λειτουργικό Σύστημα
3) Ορίσματα Γραμμής Εντολής
3.1) Ορισμός της main με ορίσματα
3.2) Παράδειγμα με διαφορετικό πλήθος ορισμάτων
3.3) Μετατροπή συμβολοσειράς σε άλλο τύπο δεδομένων
4) Ανακατεύθυνση Εισόδου / Εξόδου
4.1) Ανακατεύθυνση εξόδου
4.2) Ανακατεύθυνση εισόδου
B. Ασκήσεις
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Άπληστος Αλγόριθμος (Αντιπαράδειγμα ε μη ορθό αλγόριθμο υπολογισμού συντομότερου μονοπατιού)
3.1) 0*1*11*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ και Κανονική Γραμματική
3.2) Διακριση Κανονικών και μη Κανονικών Γλωσσών
4) Διάκριση Γλωσσών Χωρίς Συμφραζόμενα και Γλωσσών Όχι Χωρίς Συμφραζόμενα (Γραμματική Χωρίς Συμφραζόμενα, Αυτόματο Στοίβας) και (Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα.
5.1) Μηχανή Turing για συμπλήρωμα ισότητας
5.2) Αναγωγές μη Επιλυσιμότητας
6) NP-πληρότητα (το πρόβλημα της κομβικής επικάλυψης και το πρόβλημα του ανεξαρτήτου συνόλου)
ΓΛΩΣΣΑ 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
1. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 17
www.psounis.gr
1
ΠΛΗ10 – ΤΕΣΤ 17
Θέµα 1: Εισαγωγή στους Η/Υ
Ερώτηµα 1
∆ίνεται η λογική συνάρτηση:
F = ((A AND B) OR (B AND C) OR (A AND C))
α) Σχεδιάστε το λογικό κύκλωµα που υλοποιεί τη συνάρτηση F.
β) Σχηµατίστε τον πίνακα αληθείας της F, συµπεριλαµβάνοντας και όσα ενδιάµεσα αποτελέσµατα
δηµιουργούνται.
γ) Γράψτε πρόγραµµα σε γλώσσα C, το οποίο να διαβάζει τις τιµές των εισόδων του κυκλώµατος A, B και C και
να εµφανίζει την τιµή εξόδου F της παραπάνω λογικής συνάρτησης. Το πρόγραµµα να ελέγχει αν οι τιµές των A,
B και C είναι 0 ή 1 και σε αντίθετη περίπτωση να επαναλαµβάνει την ανάγνωση.
2. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 17
www.psounis.gr
2
Θέµα 2: Ψευδογλώσσα και Αλγόριθµοι
Ερώτηµα 1
Ορίζουµε µία ακολουθία Α από αριθµούς ως εξής:
Α(1) = 1,
Α(2) = 2,
Α(n) = 2*A(n-1) + A(n-2), n >2.
1. Υπολογίστε το A(4), δείχνοντας όλους τους υπολογισµούς που θα κάνετε.
2. Γράψτε µία διαδικασία στην Ψευδογλώσσα που δέχεται ως όρισµα το n και έναν πίνακα Μ, µε n θέσεις, και
θα αποθηκεύει στις θέσεις αυτές όλους τους πρώτους n όρους της ακολουθίας A.
3. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 17
www.psounis.gr
3
Θέµα 3: Ερωτήµατα σε Γλώσσα C
Ερώτηµα 1
α) ∆ίνεται το παρακάτω ∆ιάγραµµα Ροής Προγράµµατος - ∆ΡΠ (flowchart).
1. Περιγράψτε τη λειτουργία που εκτελεί το ∆ΡΠ. ∆είξτε τα περιεχόµενα του πίνακα P, για N = 5, δίνοντας
όποιες τιµές επιθυµείτε στην εντολή ∆ΙΑΒΑΣΕ P[I,J].
2. Γράψτε πρόγραµµα σε γλώσσα C που να υλοποιεί την ίδια λειτουργία.
ΑΡΧΗ
I:=1;
ΟΧΙ
ΝΑΙ
P[I,J]:=0;
∆ΙΑΒΑΣΕ P[I,J];
I < N I:=I+1;
ΤΕΛΟΣ
ΟΧΙ
ΟΧΙ
ΝΑΙ
ΝΑΙ
J < N
I < J
J:=1;
J:=J+1;
4. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 17
www.psounis.gr
4
Ερώτηµα 2
Εξηγήστε τι κάνει το παρακάτω πρόγραµµα και τι θα τυπώσει κατά την εκτέλεσή του:
#include <stdio.h>
int my_func(int);
void main()
{
printf("%dn", my_func(10));
}
int my_func(int n)
{
if (n == 1) return 1;
return n + my_func(n-1);
}
5. ∆ηµήτρης Ψούνης – ΠΛΗ10, Τεστ 17
www.psounis.gr
5
Ερώτηµα 3
Τι θα εκτυπώσει η κλήση της παρακάτω συνάρτησης?
void func2()
{
int i = 0, k = 1;
do
{
i += (k * i) + 1;
k++;
printf("%d ", i + k);
}
while (i < 67);
}