ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΘΕΜΑ Α. Μονάδες 10 Α2.

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Πέµπτη 17/12/2015, 22:00

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

Διαδικασιακός Προγραμματισμός

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Διαδικασιακός Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΘΕΜΑ Α. Μονάδες 10 Α2.

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Ανάπτυξη και Σχεδίαση Λογισμικού

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Τελευταίο Μάθημα

ΚΕΦΑΛΑΙΑ 3 & 9 (ΠΙΝΑΚΕΣ)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΦΡΟΝΤΙΣΤΗΡΙΟ Μ.Ε. «ΠΕΡΙ ΓΝΩΣΕΩΣ»

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Μεθόδων Επίλυσης Προβλημάτων

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Ασκήσεις - Μελέτες περίπτωσης για το μάθημα Προγραμματισμός II

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσμία: 17/1/14, 22:00

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Εργαστήριο 5. Εαρινό Εξάμηνο

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΔΙΑΦΟΡΑ ΘΕΜΑΤΑ. Ως «γειτονικά» ορίζονται τα κελιά που συγγενεύουν οριζόντια, κάθετα και διαγώνια. Για παράδειγμα γειτονικά του Α[3,3] είναι τα:

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

Στοίβες με Δυναμική Δέσμευση Μνήμης

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα προηγούμενα ακαδημαϊκά έτη: ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

ΑΕΠΠ Ερωτήσεις θεωρίας

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

ΦΡΟΝΤΙΣΤΗΡΙΟ ΦΑΣΜΑ 21/4/2013

ΑΣΚΗΣΗ 1. Structural Programming

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 4 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Δείκτες Δομές Το τέταρτο σύνολο ασκήσεων θα εξετασθεί μαζί με το τρίτο την εβδομάδα 20-24.01.2014 (ο κάθε φοιτητής θα εξεταστεί την ώρα του τμήματός του, για κάθε υποερώτημα ο φοιτητής θα πρέπει να έχει το αντίστοιχο αρχείο κώδικα C αποθηκευμένο στο λογαριασμό του στο diogenis.ceid.upatras.gr το οποίο θα πρέπει να έχει μεταγλωττιστεί χωρίς σφάλματα, ενώ για το σύνολο των ερωτημάτων θα πρέπει να έχει φέρει και μια εκτυπωμένη αναφορά με τις απαντήσεις του ). H άσκηση 8 είναι προαιρετική (με αρχεία) δεν συνεισφέρει βαθμολογικά. Σημείωση: αν χρειάζεται συμπερίληψη της βιβλιοθήκης <math.h>, τότε θα πρέπει η μεταγλώττιση να πραγματοποιηθεί με την οδηγία lm, δηλαδή η μεταγλώττιση να γίνει ως εξής: gcc lm ονομα_αρχείου

Άσκηση 1 Να γραϕεί πρόγραμμα που θα ζητάει από το χρήστη να του δώσει τις διαστάσεις για να κατασκευάσει ένα δισδιάστατο πίνακα ακεραίων. Μόλις ο χρήστης δώσει τις δύο διαστάσεις, το πρόγραμμα θα δεσμεύει δυναμικά μνήμη για τον πίνακα με χρήση της malloc και θα διαβάζει από τον χρήστη μια ακέραια τιμή για κάθε στοιχείο του πίνακα. Στη συνέχεια, να κατασκευαστεί συνάρτηση, η οποία θα καλείται από το πρόγραμμα και να εκτελεί τα παρακάτω: να υπολογίζει το άθροισμα κάθε γραμμής του πίνακα και να το αποθηκεύει σ' ένα νέο πίνακα. να επιστρέϕει το νέο πίνακα στο κύριο πρόγραμμα. Το κύριο πρόγραμμα θα πρέπει να εκτυπώνει τα στοιχεία του νέου πίνακα που δημιουργήθηκε απ' τη συνάρτηση. Άσκηση 2 Ο αλγόριθμος ταξινόμησης με επιλογή (selection sort) για ένα πίνακα (έστω Α) n στοιχείων βασίζεται σε σάρωμα του πίνακα και εφαρμογή επαναληπτικά των ακόλουθων τριών βημάτων: (i) επιλογή του στοιχείου με την ελάχιστη τιμή, (ii) ανταλλαγή του με το πρώτο στοιχείο Α[0], (iii) επανάληψη των (i), (ii) με τα υπόλοιπα στοιχεία (Α[1]...Α[n-1]). Μετά από n-1 επαναλήψεις τα στοιχεία του πίνακα θα είναι διατεταγμένα κατά αύξουσα σειρά. Σχεδιάστε αλγόριθμο ο οποίος διαβάζει ένα σύνολο από αλφαριθμητικά και: (i) φτιάχνει ένα ιστόγραμμα των μηκών των αλφαριθμητικών (για τον ορισμό του ιστογράμματος κοιτάξτε την άσκηση 10 του τρίτου συνόλου ασκήσεων), (ii) τα διατάσσει χρησιμοποιώντας τον αλγόριθμο ταξινόμησης με επιλογή. Υπόδειξη: Για την σύγκριση αλφαριθμητικών προτείνεται η συνάρτηση int strcmp(char * cs, char * ct) της βιβλιοθήκης <string.h>. Άσκηση 3 Ρητός λέγεται ο αριθμός που μπορεί να εκφραστεί ώς πηλίκο δύο ακεραίων. Ορίστε τη δομή rational για αναπαράσταση ρητών (με μέλη της τους δύο ακεραίους). Στη συνέχεια ορίστε ως συναρτήσεις τις λειτουργίες: (α) δημιουργίας ρητού rational makerational(int α, int b) με δεδομένα που δίνει ο χρήστης. (β) πρόσθεσης ρητών rational Addrational(rational r1,rational r2) που να επιστρέφει το άθροισμα δύο ρητών που δίνεται από τον τύπο: num1/den1 + num2/den2 = (num1 * den2 + num2 * den1)/(den1 * den2), (γ) πολλαπλασιασμού δύο ρητών rational multiply(rational r1, rational r2) που να επιστρέφει το γινόμενο δύο ρητών αριθμών, με βάση τον ακόλουθο τύπο: num1/den1 * num2/den2 = (num1 * num2)/(den1 * den2). (δ) μία συνάρτηση void printrational(rational r), που να εμφανίζει τον ρητό r στην οθόνη ως κλάσμα. Επισημαίνεται ότι όλες οι συναρτήσεις θα πρέπει (με εύρεση του μέγιστου κοινού διαιρέτη αριθμητή και παρονομαστή) να μετατρέπουν τους ρητούς αριθμούς που τους δίνονται και να δίνουν το αποτέλεσμα στους μικρότερους δυνατούς όρους. Για παράδειγμα ο πολλαπλασιασμός 1/2 επί 2/3 θα πρέπει να δίνει ως αποτέλεσμα τον αριθμό 1/3 και όχι το 2/6. Υλοποιείστε κυρίως πρόγραμμα που να τεστάρει τις συγκεκριμένες συναρτήσεις.

Άσκηση 4 Μια αεροπορική εταιρία πραγματοποιεί κάθε μέρα δέκα πτήσεις με διαφορετικούς τύπους αεροσκαφών. Για κάθε πτήση της η εταιρία κρατάει τα εξής στοιχεία: τον αριθμό της πτήσης,το πλήθος των θέσεων του αεροσκάφους και τον αριθμό των επιβαινόντων.να γραφεί πρόγραμμα το οποίο: (i) θα ζητάει να δωθούν από το πληκτρολόγιο και θα καταχωρεί τα στοιχεία κάθε πτήσης, (ii) θα υπολογίζει το συνολικό αριθμό των επιβατών όλων των πτήσεων, (iii) θα υπολογίζει πόσες από τις πτήσεις έχουν πληρότητα.μια πτήση θεωρείται ότι έχει πληρότητα όταν έχει διαθέσει τουλάχιστον το 80% των θέσεων του αεροσκάφους. Τα ζητούμενα (ii) και (iii) να γίνουν με χρήση κατάλληλων συναρτήσεων. Άσκηση 5 Ένας καθηγητής θέλει να καταχωρεί τα στοιχεία των φοιτητών (N σε σύνολο) που έχουν επιλέξει το μάθημα του και στην συνέχεια να εμφανίζεται στην οθόνη του το ονοματεπώνυμο των φοιτητών που έχουν γράψει τον μεγαλύτερο βαθμό και ποιος είναι αυτός ο βαθμός, το ονοματεπώνυμο των φοιτητών που έχουν δώσει περισσότερες φορές το μάθημα του και ποιος είναι αυτός ο αριθμός καθώς και το ονοματεπώνυμο των φοιτητών που είναι μεγαλύτερο έτος και ποιο έτος είναι αυτό. Στο πρόγραμμα να χρησιμοποιείται δομή με τα παρακάτω στοιχεία φοιτητών: Όνομα φοιτητή Επώνυμο φοιτητή Βαθμός μαθήματος Φορές που έδωσαν το μάθημα Έτος φοιτητή Να δώσετε δύο υλοποιήσεις μία με πίνακα και μία με δείκτη. Άσκηση 6 Θεωρείστε δύο συμβολοσειρές Α και Β καθεμία μέγιστου μήκους Μ-1. Κάθε συμβολοσειρά θεωρούμε ότι μοντελοποιεί ένα κείμενο συνεπώς αποτελείται από μία ακολουθία λέξεων με κάθε λέξη να αποτελείται από συνεχόμενες εμφανίσεις αριθμητικών και αλφαβητικών χαρακτήρων, όλων του Αγγλικού αλφαβήτου. Υποθέτουμε ότι οι λέξεις οριοθετούνται με ένα ή περισσότερα κενά και ότι γίνεται διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων. Να υλοποιήσετε κώδικα που διαβάζει το περιεχόμενο των Α και Β και για κάθε λέξη της Α δημιουργεί μία ακολουθία με τις θέσεις εμφάνισής της στη Β (ως θέση εμφάνισης μία λέξης εννοούμε τον αριθμό του κελιού του Β στο οποίο η λέξη αρχίζει να εμφανίζεται). Η υλοποίηση της ακολουθίας γίνεται είτε με λίστα 1, είτε με πίνακα. Στη συνέχεια ο κώδικας για κάθε διακριτή λεξη του Α, εκτυπώνει τις θέσεις εμφάνισης της στο Β. Υπόδειξη: Για την εύρεση των λέξεων που εμφανίζονται σε μία συμβολοσειρά προτείνεται να χρησιμοποιηθεί η συνάρτηση char * strtok(char *s, char * ct) της βιβλιοθήκης <string.h>. 1 Για λίστες θα μιλήσουμε στο μάθημα της θεωρίας (12 και 13/12 κοιτάξτε και 9ο σύνολο διαφανειών) και στο φροντιστήριο (10 και 11/12)

Για την σύγκριση αλφαριθμητικων προτεινεται η συνάρτηση int strcmp(char *cs, char * ct) της βιβλιοθήκης <string.h>. Άσκηση 7 Θεωρείστε ότι δίδεται ο εξής ορισμός δομής: struct node { int data; struct node *next; }; Με βάση τον ορισμό αυτό, το ζητούμενο είναι να σχεδιάσετε και να υλοποιήσετε μια συνδεδεμένη λίστα στοιχείων που ικανοποιεί τον κανόνα πρόσβασης First-In-First-Out, με άλλα λόγια μια δομή ουράς (queue). Στις δομές αυτές το στοιχείο το οποίο εντέθηκε πρώτο στη λίστα (με μία πράξη Insert) είναι και αυτό που θα διαγραφεί πρώτο (με μία πράξη Delete). Αυτή η λογική πράξεων μπορεί να υλοποιηθεί αν η ένθεση στοιχείων γίνεται στο τέλος της λίστας, ενώ η διαγραφή αφαιρεί στοιχεία από την αρχή της λίστας. Γράψτε συναρτήσεις σύμφωνα με τα παρακάτω πρότυπα, καθώς και ένα πρόγραμμα επίδειξης void Insert(struct node **headref, int newdata); int Delete(struct node **headref), int GetNth(struct node *head, int index); int Count(struct node *head, int searchfor) Η συνάρτηση Insert() δέχεται ως όρισμα ένα δείκτη στον δείκτη που αντιστοιχεί στην κεφαλή της λίστας. Δεσμεύει μνήμη, με κλήση της malloc(), για μια δομή του τύπου struct node, αποθηκεύει σ αυτήν την ακέραια τιμή newdata (στο πεδίο data), και συνδέει κατάλληλα την νέα δομή (βάσει του πεδίου next) ώστε η λίστα να ικανοποιεί τον κανόνα πρόσβασης First-In-First-Out, συνεπώς ενθέτει το νέο στοιχείο στο τέλος της λίστας. Η συνάρτηση Delete() δέχεται ως όρισμα ένα δείκτη στον δείκτη που αντιστοιχεί στην κεφαλή της λίστας διαγράφει και επιστρέφει ένα στοιχείο της λίστας έτσι ώστε να ικανοποιείται ο κανόνας First In First Out, συνεπώς διαγράφει και επιστρέφει το πρώτο στοιχείο της λίστας. Η GetNth() δέχεται ως όρισμα τον δείκτη που αντιστοιχεί στην κεφαλή της λίστας, και την θέση (ως ακέραια τιμή που ξεκινά από το 0) ενός στοιχείου. Εφόσον η λίστα περιέχει στοιχείο στην καθοριζόμενη θέση, η συνάρτηση επιστρέφει την τιμή του πεδίου data για το στοιχείο αυτό, διαφορετικά εκτυπώνει κατάλληλο μήνυμα και επιστρέφει την τιμή 0. Η Count() δέχεται ως όρισμα τον δείκτη που αντιστοιχεί στην κεφαλή της λίστας, και μια ακέραια τιμή. Εξετάζει ένα-προς-ένα όλα τα στοιχεία της λίστας και επιστρέφει σε πόσα από αυτά το πεδίο data ισούται με την αναζητούμενη τιμή (επιστρέφει 0 εάν η τιμή δεν εμφανίζεται στην λίστα). Γράψτε την main() η οποία εμφανίζει μενού επιλογών στο χρήστη: 1. Insert 2. Delete 2. Get-Nth 3. Count 4. Έξοδος Ανάλογα με την επιλογή του χρήστη ζητούνται τα απαραίτητα στοιχεία (π.χ. για την πράξη Insert ζητείται από τον χρήστη η ακέραια τιμή newdata) και καλείται η κατάλληλη συνάρτηση.

Άσκηση 8 (προαιρετική με αρχεία, δεν μετράει στη βαθμολογία) Σε πολλές εφαρμογές είναι χρήσιμη η χρήση ενός λεξικού με ορισμούς εννοιών αλφαριθμητικών. Το λεξικό συνεπώς μπορεί να θεωρηθεί ότι είναι ενας πίνακας δομών όπου σε κάθε θέση αποθηκεύεται το αλφαριθμητικό και ο ορισμός του. Ορίστε συνεπώς μία δομή με το όνομα lexicon_entry και με μέλη δύο αλφαριθμητικά (λέξη και ορισμός της) και ένα πίνακα lexicon με Ν στοιχεία της δομής και υλοποιείστε μία συνάρτηση που γεμίζει τον πίνακα με στοιχεία. Υλοποιείστε κυρίως πρόγραμμα το οποίο διαβάζει από ένα αρχείο με το όνομα input.txt μία συμβολοσειρά Α που θεωρούμε ότι μοντελοποιεί ένα κείμενο συνεπώς αποτελείται από μία ακολουθία λέξεων με κάθε λέξη να αποτελείται από συνεχόμενες εμφανίσεις αριθμητικών και αλφαβητικών χαρακτήρων, όλων του Αγγλικού αλφαβήτου. Υποθέτουμε ότι οι λέξεις οριοθετούνται με ένα ή περισσότερα κενά και ότι γίνεται διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων. Το πρόγραμμα θα πρέπει να εντοπίζει τις λέξεις του Α που υπάρχουν στο λεξικό και να αντικαθιστά κάθε μία από αυτές με τον ορισμό της όπως διατυπώνεται στο λεξικό δημιουργώντας έτσι ένα νέο κείμενο Β. Το κείμενο Β θα πρέπει να αποθηκεύεται από τον χρήστη σε ένα αρχείο με το όνομα output.txt. Υπόδειξη: Για την εύρεση των λέξεων που εμφανίζονται σε μία συμβολοσειρά προτείνεται να χρησιμοποιηθεί η συνάρτηση char * strtok(char *s, char * ct) της βιβλιοθήκης <string.h>. Για την σύγκριση αλφαριθμητικων προτεινεται η συνάρτηση int strcmp(cs, ct) της βιβλιοθήκης <string.h>.