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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Επαναληπτικό διαγώνισμα στην Α.Ε.Π.Π - 18 / Απριλίου / 2010 ΘΕΜΑ 1

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον Προγραμματισμό

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Επαναληπτικό Διαγώνισμα

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

Η γλώσσα προγραμματισμού C

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

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

Προγραμματισμός ΙI (Θ)

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

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

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Transcript:

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

Άσκηση 1 Να γραφεί ένα πρόγραμμα το οποίο να διαβάζει 100 ακεραίους και να τους αποθηκεύει σε ένα πίνακα. Στη συνέχεια το πρόγραμμα να εμφανίζει πόσες φορές επαναλαμβάνονται οι τιμές των στοιχείων του πίνακα μέσα σε αυτόν. Για παράδειγμα αν τα στοιχεία του πίνακα είναι {5,5,5,5,5} το πρόγραμμα να εμφανίζει 4 (αφού ο αριθμός 5 επαναλαμβάνεται τέσσερις φορές) αν είναι {1, -3, 1, 50, -3} το πρόγραμμα να εμφανίζει 2 (αφού οι αριθμοί 1 και -3 επαναλαμβάνονται από μία φορά), ενώ αν είναι {3, -1, 22, 13, -7} το πρόγραμμα να εμφανίζει 0 (αφού δεν υπάρχει στοιχείο να επαναλαμβάνεται). Άσκηση 2 Γράψτε ένα πρόγραμμα το οποίο θα δέχεται ως είσοδο ένα πίνακα αλφαριθμητικών. Κάθε αλφαριθμητικό περιέχει ένα σύνολο από λέξεις χωρισμένα από ένα ή περισσότερα κενά. Το πρόγραμμα θα μετράει το μήκος των λέξεων αυτών και θα εμφανίζει το ιστόγραμμα των μηκών με γραφικό τρόπο ως εξής: Word Length Number of Occurrences 1 2 ******* 3 ********** 4 **** 5 *** 6 ***** 7 *** 8 *** 9 * 10 11 12 13 diogenis> Επεκτάσεις: - Φροντίστε να μην προσμετρούνται τα σημεία στίξης (τελείες, παρενθέσεις κτλ) στο μήκος της λέξης. Άσκηση 3

Δημιουργήστε κώδικα που να υλοποιεί το ακόλουθο "παιχνίδι" λέξεων: αρχικά ζητείται από τον πρώτο χρήστη να εισαγάγει μια λέξη. Στη συνέχεια η οθόνη καθαρίζεται και εμφανίζονται χαρακτήρες _ στη θέση των γραμμάτων της λέξης καθώς και ένας μετρητής που δηλώνει πόσες προσπάθειες απομένουν στο δεύτερο χρήστη, που καλείται να μαντέψει τη λέξη δίνοντας έναν χαρακτήρα κάθε φορά. Αν ο εισαγόμενος χαρακτήρας υπάρχει εμφανίζεται στην κατάλληλη θέση της λέξης, αν δεν υπάρχει ο μετρητής μειώνεται κατά 1 και αν έχει επιλεχθεί ήδη εμφανίζεται ένα ενημερωτικό μήνυμα. Το παιχνίδι τελειώνει όταν βρεθούν όλα τα γράμματα της λέξης ή όταν μηδενιστεί ο μετρητής (οπότε εμφανίζονται τα κατάλληλα μηνύματα στην οθόνη). Προτείνεται: 1. όλοι οι εισαγόμενοι χαρακτήρες να μετατρέπονται σε μικρά 2. ο έλεγχος ύπαρξης ενός χαρακτήρα σε μια λέξη να γίνεται με την κλήση συνάρτησης η οποία θα λαμβάνει ως ορίσματα τη λέξη και τον χαρακτήρα προς αναζήτηση και θα επιστρέφει 0 αν δεν υπάρχει ή 1 αν υπάρχει. Υπόδειξη: Ο καθαρισμός της οθόνης γίνεται με την εντολή system( clear ) (Unix) ή system( cls ) (DOS). Άσκηση 4 η Μία από τις πιο σημαντικές χρήσεις της γλώσσας C είναι στη διαχείριση αλφαριθμητικών, και αυτό γιατί η C παρέχει πολλές ευκολίες στη διαχείρισή τους. Σκοπός της συγκεκριμένης άσκησης είναι η διερεύνηση αυτών των δυνατοτήτων, για τον αποτελεσματικό χειρισμό ενός πίνακα αλφαριθμητικών. Θεωρείστε λοιπόν ένα πίνακα Ν θέσεων όπου σε κάθε θέση αποθηκεύεται η τιμή μίας μεταβλητής τύπου δομής με δύο μέλη ένα αλφαριθμητικό και μία ακέραια τιμή που υποδηλώνει το μήκος του αλφαριθμητικού. Θεωρείστε ότι κάθε αλφαριθμητικό είναι το καθένα μέγιστου μήκους Μ-1 και αποτελείται μόνο από αριθμητικούς και αλφαβητικούς χαρακτήρες (όλοι του Αγγλικού αλφαβήτου), χωρίς κενά, με το Ν και το Μ να δηλώνονται στο πρόγραμμα σαν συμβολικές σταθερές. Έστω word_table το όνομα του πίνακα. Τυπικά η δήλωση θα δίνεται ως εξής: struct word_pair { char word[μ]; int length; }; struct word_pair word_table[n] Ζητείται να υλοποιηθούν οι εξής συναρτήσεις: Ζητείται να υλοποιηθούν οι εξής συναρτήσεις: Α. Μία συνάρτηση που θα ζητάει από τον χρήστη και θα γεμίζει τον πίνακα με Ν αλφαριθμητικά, και για κάθε αλφαριθμητικό θα υπολογίζει και θα αποθηκεύει στην αντίστοιχη θέση το μήκος του. Το μήκος του αλφαριθμητικού θα πρέπει να υπολογίζεται με δική σας συνάρτηση και όχι με συνάρτηση της βιβλιοθήκης της C. Η συνάρτηση να δηλωθεί ως void initialize(struct word_pair word_table[], int size) (με size συμβολίζεται ο αριθμός των γραμμών του πίνακα). Η είσοδος των συμβολοσειρών να γίνει με αμυντικό προγραμματισμό.

B. Μία συνάρτηση που θα δέχεται σαν είσοδο δύο αλφαριθμητικά, και θα αντικαθιστά κάθε εμφάνιση του πρώτου αλφαριθμητικού στον πίνακα με το δεύτερο αλφαριθμητικό. Η συνάρτηση να δηλωθεί ως : void replace(struct word_pair word_table[], int size, char search_string[m], char replacement_string[m]) (με size συμβολίζεται ο αριθμός των γραμμών του πίνακα, search_string το αλφαριθμητικό που αναζητούμε, και replacement_string το αλφαριθμητικό με το οποίο γίνεται η αντικατάσταση). Γ. Μία συνάρτηση που δοθείσης ενός αλφαριθμητικού εισόδου θα εντοπίζει και θα εκτυπώνει όλες τις γραμμές του πίνακα που την περιέχουν σαν υποακολουθία. Η συνάρτηση να δηλωθεί σαν void sub_sebsequence(struct word_pair word_table[], char search_string[m] (με size συμβολίζεται ο αριθμός των γραμμών του πίνακα, με search_string το αλφαριθμητικό που αναζητούμε) Δ. Χρησιμοποιώντας τον παρακάτω αρχικοποιημένο λεξικό αλφαριθμητικών lexicon για μετάφραση μεταξύ Γερμανικών και Αγγλικών λέξεων υλοποιήστε μία συνάρτηση που μεταφράζει κάθε αλφαριθμητικό του word_table στο αντίστοιχο γερμανικό αν υπάρχει στο λεξικό, διαφορετικά το αφήνει ως έχει. Η συνάρτηση να δηλωθεί ως: void translate(struct word_table word_table[], int size) (με size συμβολίζεται ο αριθμός των γραμμών του πίνακα) char lexixon[][2][m]={ { table, tafel }, { word, wort }, { car, auto }. { tree, baum }, { number, anzahl }. { drive, fahern } { bicycle, fahrrad } } Ελέγξτε τον κώδικά σας με ένα κυρίως πρόγραμμα το οποίο θα καλεί τις ανωτέρω συναρτήσεις με την σειρά με την οποία ορίστηκαν. Υποδείξεις: Προτείνεται η χρήση των συναρτήσεων. int isalnum(int ch) της βιβλιοθήκης <ctype.h> που επιστρέφει μη μηδενική τιμή (αληθή) αν ο χαρακτήρας ch είναι αριθμητικό ψηφίο ή γράμμα (πεζό ή κεφαλαίο) του αγγλικού αλφαβήτου, διαφορετικά επιστρέφει 0 char *strcpy(char *s, const char *t), συνάρτηση της βιβλιοθήκης <string.h> που αντιγράφει το αλφαριθμητικό t στο αλφαριθμητικό s.. Άσκηση 5 Να υλοποιήσετε τον αλγόριθμο ταξινόμησης BubbleSort. Ο Bubblesort είναι ένας απλός αλγόριθμος ταξινόμησης (http://en.wikipedia.org/wiki/bubble_sort) που λειτουργεί σαρώνοντας όλη την ακολουθία στοιχείων που πρέπει να διαταχθεί, συγκρίνοντας κάθε ζεύγος γειτονικών στοιχείων και εναλλάσοντάς τα αν είναι σε λάθος σειρά. Το πέρασμα

από την ακολουθία στοιχείων επαναλαμβάνεται έως ότου δεν χρειάζεται να υπάρχουν εναλλαγές στιοιχειων, γεγονός που υποδεικνύει ότι η ακολουθία είναι ταξινομημένη. Τα στοιχεία τα οποία πρέπει να ταξινομηθούν είναι πραγματικοί αριθμοί σε έναν πίνακα μεγέθους 30. Για δική σας διευκόλυνση να φτιάξετε μία συνάρτηση η οποία θα τυπώνει τον πίνακα και θα τη χρησιμοποιείτε όταν συμβαίνει μία εναλλαγή μεταξύ στοιχείων του πίνακα. Τα στοιχεία του πίνακα θα τα δίνετε εσείς από το πληκτρολόγιο. Μία δεύτερη συνάρτηση μπορεί να είναι αυτή η οποία θα πραγματοποιεί την εναλλαγή μεταξύ δύο στοιχείων του πίνακα. Aσκηση 6 Να γραϕεί πρόγραμμα που θα ζητάει από το χρήστη να του δώσει τις διαστάσεις για να κατασκευάσει ένα δισδιάστατο πίνακα ακεραίων. Μόλις ο χρήστης δώσει τις δύο διαστάσεις, το πρόγραμμα θα δεσμεύει δυναμικά μνήμη για τον πίνακα με χρήση της malloc και θα διαβάζει από τον χρήστη μια ακέραια τιμή για κάθε στοιχείο του πίνακα. Στη συνέχεια, να κατασκευαστεί συνάρτηση, η οποία θα καλείται από το πρόγραμμα και να εκτελεί τα παρακάτω: 1. θα υπολογίζει το άθροισμα κάθε στήλης του πίνακα και θα το αποθηκεύει σ' ένα νέο πίνακα. 2. να επιστρέϕει το νέο πίνακα στο κύριο πρόγραμμα. Το κύριο πρόγραμμα θα πρέπει να εκτυπώνει τα στοιχεία του νέου πίνακα που δημιουργήθηκε απ' τη συνάρτηση. Άσκηση 7 Να γράψετε πρόγραμμα το οποίο να μπορεί να λύσει ένα σύνολο εξισώσεων 3 x 3 όπως: 2x1 + 2x2-7x3 = 3-2x1+6x2-12x3=-5 x1-2x2+5x3=1 Άσκηση 8 Γράψτε πρόγραμμα που να υπολογίζει όλους τους πρώτους αριθμούς μεταξύ του 1 και του Ν χρησιμοποιώντας το κόσκινο του Ερατοσθένη. Τα βήματα του αλγορίθμου είναι: 1.καταγράφουμε όλους τους αριθμούς από το 2 μέχρι το Ν σε μια λίστα 2.για κάθε πρώτο που συναντάμε στη λίστα, διαγράφουμε από τη λίστα όλα τα πολλαπλάσιά του 3.αν ο πρώτος αριθμός που συναντάμε στη λίστα είναι μικρότερος της τετραγωνικής ρίζας του Ν, τότε επαναλαμβάνουμε το βήμα 2, διαφορετικά η λίστα περιλαμβάνει μόνο πρώτους αριθμούς Άσκηση 9 Θεωρείστε ότι δίδεται ο εξής ορισμός δομής: 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) και καλείται η κατάλληλη συνάρτηση.