ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: Τρίτη 10/11/2015, 22:00

Σχετικά έγγραφα
ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσµία: 3/12/2018, 23:59

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 1. Προθεσμία: Τετάρτη 9/11/2016, 21:00

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 5/12/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

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

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 27/11/11, 22:00

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

Προγραµµατισµός Ι Εργαστήριο 3ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Προγραμματισμός Ι Εργαστήριο 5ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 9/1/2015, 22:00

Προγραµµατισµός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Προθεσµία: 10/12/2014, 22:00

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

abistarakis PASS - Σωστή κατασκευή tgz και ονοµασία αρχείων

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: Τετάρτη 25/11/2015, 22:00

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

lab7: Συμβολοσειρές Συμβολοσειρές Ασφάλεια εισόδου Αναγνωσιμότητα κώδικα (σχόλια, στοίχιση, περιγραφικά ονόματα μεταβλητών, κτλ.)

Προγραμματισμός Ι Εργαστήριο 8ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 8 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 8ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 8 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα.

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

ΑΕΜ ή username. Sheet2

Βαθμός Σχόλιο. lab3_grades

ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ - ΜΕΡΟΣ Γ'

Δεν έστειλες την άσκηση 1, και αυτό που έστειλες ήταν σκέτο αρχείο, όχι το tgz που ζητούσε η εκφώνηση.

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

lab2grades - Στη scanf υπολογίζετε τουλάχιστον 5 χαρακτήρες %5.2f προδιαγραφές που ζητούνται στην εκφώνηση. -

Sheet3_2. Τα literals (3.0, 1.5, κτλ) πρέπει να ορίζονται ως σταθερές.

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

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

lab4grades Παράδοση ασκήσεων: -Όλα καλά Άσκηση 1η: -Σωστή 357 PASS

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Λύσεις για τις ασκήσεις του lab5

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

CE 120. Φροντιστήριο 14/10/2011

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

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

Ημερομηνία: Παρασκευή 27 Οκτωβρίου 2017 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

FAIL PASS PASS οριακά

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

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

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

lab6grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ Διαδικαστικά: Όλα οκ.

lab2grades printf("calculus: %.4lf\n", calculus);

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

Εισαγωγή στην πληροφορική

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

ΣΧΟΛΙΑ ΓΙΑ ΤΟ LAB 1. Sheet3_2

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση.

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

Γλώσσα Προγραμματισμού C

Δομημένος Προγραμματισμός

Εισαγωγή στην πληροφορική

Κεφάλαιο 5ο: Εντολές Επανάληψης

lab7grades -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή µεταφορά στοιχείων µια θέση αριστερά.

Transcript:

ΣΕΤ ΑΣΚΗΣΕΩΝ 1 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2015-2016 Προθεσµία: Τρίτη 10/11/2015, 22:00 Διαβάστε πριν ξεκινήσετε Διαβάστε την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραµµά σας στο χαρτί. Ίσως σας φανεί χρήσιµο και µιλιµετρέ χαρτί (ψάξτε στο google για print graph paper) Για κάθε στάδιο, αποφασίστε τι µεταβλητές θα χρειαστείτε, τι ονόµατα θα τους δώσετε, αν χρειάζονται σταθερές κι αν ναι για ποιες ποσότητες, τι δοµές ελέγχου θα χρησιµοποιήσετε για κάθε λειτουργία και πώς θα κάνετε τους υπολογισµούς που χρειάζονται. Μη διστάζετε να ζητήσετε βοήθεια! Χρησιµοποιήστε κατά προτίµηση το forum προγραµµατισµού και µόνο αν είναι απαραίτητο email (π.χ. αν πραγµατικά επιβάλλεται να στείλετε κάποιο κοµµάτι κώδικα µαζί µε το µήνυµά σας). Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι και 2 ατόµων. Δε χρειάζεται να είστε οµάδα µε το ίδιο άτοµο που είστε στο εργαστήριο. Μπορείτε να συζητάτε τις ασκήσεις µε συµφοιτητές σας αλλά δεν επιτρέπεται η ανταλλαγή κώδικα µε οποιονδήποτε τρόπο. Ξεκινήστε νωρίς! Ο προγραµµατισµός είναι πάντα ΠΟΛΥ πιο χρονοβόρος από ότι περιµένετε. Εκπρόθεσµες ασκήσεις δε γίνονται δεκτές. Οι ασκήσεις σας θα βαθµολογηθούν στα παρακάτω (χωρίς ιδιαίτερη σειρά): Ορθότητα Γενική µορφοποίηση προγράµµατος (στοίχιση, ονόµατα µεταβλητών και σταθερών, κτλ.) Σχεδιασµός προγράµµατος και αποτελεσµατική χρήση κατάλληλων δοµών, µεταβλητών, σταθερών κτλ. Συµµόρφωση µε τις προδιαγραφές Αποτελεσµατικά σχόλια, σύµφωνα µε τους κανόνες σχολιασµού του σχετικού φυλλαδίου.

Άσκηση 1 : ASCII art Το πρόγραµµά σας πρέπει να αποθηκευτεί σε αρχείο µε όνοµα hw1a.c Θα γράψετε ένα πρόγραµµα το οποίο σχεδιάζει στην οθόνη µια εικόνα αρχαίου ναού µε χρήση χαρακτήρων ASCII και διάφορα επαναλαµβανόµενα µοτίβα. Η εικόνα είναι παραµετροποιηµένη µε βάση τον αριθµό κιόνων. Για παράδειγµα, αν ο χρήστης προσδιορίσει 2 κίονες, το πρόγραµµα παράγει το ναό:..--''''--.. ================ [][][][][][][][] @.==.@ @.==.@ '' '' ============ ============== ================ Αν ο χρήστης προσδιορίσει 6 κίονες, το πρόγραµµα παράγει το ναό:..--''''--....--'' ''--....--'' ''--.. ================================================ [][][][][][][][][][][][][][][][][][][][][][][][] @.==.@ @.==.@ @.==.@ @.==.@ @.==.@ @.==.@ '' '' '' '' '' '' ============================================ ============================================== ================================================

Το πρόγραµµά σας πρέπει να ικανοποιεί τις παρακάτω απαιτήσεις: Πρέπει να περιέχει µια µεταβλητή που εκφράζει πλήθος κιόνων και το πρόγραµµα να είναι γραµµένο µε τέτοιο τρόπο ώστε αν αλλάξει η αρχική τιµή της, να αλλάξει αντίστοιχα και το µέγεθος της εικόνας που ζωγραφίζεται. Το πλήθος πρέπει να το δίνει ο χρήστης και µπορείτε να θέσετε λογικούς περιορισµούς στις ιδιότητές του. Πρέπει να περιέχει τουλάχιστον µια δοµή επανάληψης while (ή do-while) µε σύνθετη συνθήκη που αποτελείται από 3 ή περισσότερα µέρη. Για παράδειγµα, το πρόγραµµα µπορεί να ελέγχει αν το πλήθος κιόνων που προσδιόρισε ο χρήστης είναι άρτιος αριθµός εντός συγκεκριµένου εύρους. Πρέπει να περιέχει εµφωλευµένα loops βάθους 2 (π.χ. for... { for...{ }) Πρέπει να περιέχει τουλάχιστον εµφωλευµένα loops βάθους 3 (π.χ. for... { for... { for... { }}) Κάθε εντολή printf που συµµετέχει στο σχεδιασµό της εικόνας µπορεί να εκτυπώνει µόνο ένα απλό µοτίβο χωρίς επαναλαµβανόµενα κοµµάτια. Για παράδειγµα, επιτρέπεται το printf("=") αλλά όχι το printf("==="). Οµοίως, επιτρέπεται το printf("@.==.@") αλλά όχι το printf("@.==.@ @.==.@"). Με άλλα λόγια, για όλα τα επαναλαµβανόµενα µοτίβα πρέπει να χρησιµοποιείτε δοµές επανάληψης. Μπορείτε να κάνετε µικροαλλαγές σε µοτίβα, εφόσον ικανοποιούνται οι παραπάνω απαιτήσεις. Συµβουλές: ΜΗΝ προσπαθήσετε να γράψετε όλο το πρόγραµµα σε ένα βήµα γιατί θα κάνετε λάθη και θα σας πάρει πολύ περισσότερο χρόνο. Υλοποιήστε τα ξεχωριστά κοµµάτια του ναού σας ένα-ένα και µην προχωράτε στο επόµενο αν δεν είστε απολύτως σίγουροι ότι λειτουργεί σωστά αυτό που γράψατε. Καλό είναι κάθε φορά που ολοκληρώνετε ένα κοµµάτι να κατασκευάζετε ένα αντίγραφο του αρχείου C, για παράδειγµα µε όνοµα hw1stadio1.c, hw2stadio2.c κτλ, ώστε αν αργότερα κάνετε κάποιο λάθος, να έχετε ακόµη πρόσβαση στο προηγούµενο σωστό κοµµάτι. Εννοείται πως θα παραδώσετε µόνο την τελική έκδοση του προγράµµατος. Προτείνουµε να ξεκινήσετε από το πιο εύκολο κοµµάτι (σκάλες), µετά στο ενδιάµεσης δυσκολίας (κίονες) και τέλος το αέτωµα που έχει αρκετά µεγάλο βαθµό δυσκολίας. Δώστε µεγάλη προσοχή στη στοίχιση. Είναι πολύ εύκολο να γίνει λάθος στο πού κλείνει κάποιο άγκιστρο αν δεν προσέξετε. Δώστε καλά ονόµατα στις µεταβλητές σας. Επαναχρησιµοποιήστε τους µετρητές των for loops όπου ενδείκνυται αντί να δηλώνετε καινούργιους. Ενδεικτικά, η δική µας λύση έγινε µε ακριβώς 3 µετρητές (i, j, k). Σε καµία περίπτωση δε θέλουµε να δούµε i1, i2, i3, i4 κτλ. Κάθε φορά που υλοποιείτε ένα κοµµάτι, γράψτε σχόλια που να εξηγούν τι ακριβώς σχεδιάζει αυτό το κοµµάτι κώδικα. Θα βοηθήσουν και εσάς, και εµάς στη διόρθωση. Χρησιµοποιήστε σταθερές (π.χ. για το εύρος του µεγέθους, βασικά µοτίβα όπως τα κιονόκρανα, κτλ.) για να είναι πιο ευανάγνωστο το πρόγραµµά σας.

Άσκηση 2 : Bitwise operations Το πρόγραµµά σας πρέπει να αποθηκευτεί σε αρχείο µε όνοµα hw1b.c Σε αυτή την άσκηση, θα χρησιµοποιήσετε τη δυαδική αναπαράσταση ενός αριθµού για να κωδικοποιήσετε πληροφορίες για µια ψηφοφορία. Σε µια τάξη γυµνασίου µε 16 µαθητές γίνονται εκλογές για πρόεδρο τάξης και υπάρχει ένας αριθµός υποψηφίων. Κάθε µαθητής µπορεί να ψηφίσει όσους υποψηφίους θέλει, και στο τέλος, ο υποψήφιος µε τις περισσότερες ψήφους θα εκλεγεί πρόεδρος. Κάθε µαθητής έχει έναν αύξοντα αριθµό από 0 έως και 15. Θα χρησιµοποιήσουµε µια 16-µπιτη µεταβλητή (για παράδειγµα unsigned short) για να αναπαραστήσουµε τις ψήφους που έλαβε ένας υποψήφιος από τους 16 µαθητές. Αυτό σηµαίνει πως αν το i-οστό λιγότερο σηµαντικό bit είναι 1, τότε ο i-οστός µαθητής ψήφισε υπέρ αυτού του υποψηφίου. Αντίστοιχα, αν το i-οστό bit είναι 0, τότε ο i-οστός µαθητής δεν ψήφισε υπέρ αυτού του υποψηφίου. Για παράδειγµα, αν ένας υποψήφιος πήρε ψήφους από τους µαθητές 0, 3, 8, 9 και 15, τότε στη µεταβλητή που αναπαριστά τις ψήφους θα πρέπει να αποθηκευτεί ο δυαδικός αριθµός ή πιο κατανοητά στο δεκαεξαδικό σύστηµα: 0x8309. Το πρόγραµµά σας πρέπει να κάνει τα εξής: 1000 0011 0000 1001 1. Εκτυπώνει το µήνυµα "Enter number of candidates: " 2. Διαβάζει το πλήθος υποψηφίων. 3. Αν δοθεί µη-θετικός αριθµός, εκτυπώνει το µήνυµα λάθους "ERROR: The number of candidates must be positive!" ακολουθούµενο από χαρακτήρα αλλαγής γραµµής κι επαναλαµβάνει τα βήµατα 1-3. 4. Για κάθε υποψήφιο, a. Εκτυπώνει το µήνυµα "Enter votes for candidate C: " όπου C ο αύξων αριθµός του υποψηφίου (ξεκινώντας το µέτρηµα από το 0). b. Διαβάζει τις ψήφους που έλαβε ο υποψήφιος, σε δεκαεξαδική µορφή, όπως περιγράφεται πιο πάνω. c. Εκτυπώνει ένα χαρακτήρα tab, το µήνυµα "V votes" όπου V το πλήθος ψήφων που έλαβε αυτός ο υποψήφιος, και χαρακτήρα αλλαγής γραµµής. 5. Παράλληλα, το πρόγραµµα υπολογίζει ποιος υποψήφιος έχει λάβει τις περισσότερες ψήφους. Σε περίπτωση ισοψηφίας, επιλέγεται (αυθαίρετα) ο πρώτος από όσους έχουν το µέγιστο πλήθος ψήφων. 6. Τέλος, το πρόγραµµα εκτυπώνει το µήνυµα "The winner is candidate C with V votes." ακολουθούµενο από χαρακτήρα αλλαγής γραµµής. C είναι ο αύξων αριθµός του νικητή και V το πλήθος των ψήφων που έλαβε. Βοήθεια: Δείτε εδώ πληροφορίες για το ποιος κωδικός της scanf είναι κατάλληλος για unsigned short. Δείτε εδώ πληροφορίες για τους ειδικούς escape characters στη C.

Παράδειγµα εκτέλεσης (η είσοδος του χρήστη µε κόκκινο): Enter number of candidates: 4 Enter votes for candidate 0: 8309 5 votes Enter votes for candidate 1: 7AC1 8 votes Enter votes for candidate 2: 4B23 7 votes Enter votes for candidate 3: D619 8 votes The winner is candidate 1 with 8 votes Πώς να παραδώσετε τη δουλειά σας Πριν παραδώσετε το πρόγραµµά σας, προσθέστε σε σχόλια στην αρχή του αρχείου τα πλήρη ονόµατα και ΑΜ των µελών της οµάδας. Παρακαλούµε να γράφετε τα σχόλια ΜΟΝΟ µε λατινικούς χαρακτήρες. Κατασκευάστε ένα φάκελο µε όνοµα hw1_epwnumo1_am1_epwnumo2_am2 και αντιγράψτε µέσα σε αυτόν το hw1a.c και το hw1b.c Πηγαίνετε στο φάκελο µέσα στον οποίο βρίσκεται το κατασκευάσατε και γράψτε την παρακάτω εντολή: hw1_epwnumo1_am1_epwnumo2_am2 που tar czvf hw1_epwnumo1_am1_epwnumo2_am2.tgz hw1_epwnumo1_am1_epwnumo2_am2 Στείλτε email: στη διεύθυνση ce120lab@gmail.com αντίγραφο (CC) στον άλλο µέλος της οµάδας σας θέµα (subject) CE120 hw1 και συνηµµένο αρχείο το hw1_epwnumo1_am1_epwnumo2_am2.tgz