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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εγχειρίδιο Χρήστη - Μαθητή

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

Πίνακες, περιγράµµατα και σκίαση

lab0: Εισαγωγή σε Linux

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

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

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

ΑΕΜ ή username. Sheet2

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

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

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

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

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

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

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

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

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

FAIL PASS PASS οριακά

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Τσαουσάκης Σταύρος ΠΕ70 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 3

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Γ-ΓΥΜΝΑΣΙΟΥ (1) ΣΕΛ 1 / 6

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

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Μεθοδολογία προβλημάτων με Δομή Επανάληψης

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

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

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ

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

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Η εντολή «επανέλαβε Χ»

Εξεταστική Περίοδος Φεβρουαρίου ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Η Μέρα της Εβδομάδας. Πες Μου Πότε

ΘΕΜΑΤΑ ΠΡΟΚΑΤΑΡΤΙΚΗΣ ΦΑΣΗΣ 7 ου ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ 1995 ΘΕΜΑΤΑ ΓΥΜΝΑΣΙΟΥ

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

for for for for( . */

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

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

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

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

Transcript:

ΣΕΤ ΑΣΚΗΣΕΩΝ 1 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2018-2019 Προθεσµία: 3/12/2018, 23:59 Διαβάστε πριν ξεκινήσετε Διαβάστε την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραµµά σας στο χαρτί. Ίσως σας φανεί χρήσιµο και µιλιµετρέ χαρτί (ψάξτε στο google για print graph paper) Για κάθε στάδιο, αποφασίστε τι µεταβλητές θα χρειαστείτε, τι ονόµατα θα τους δώσετε, αν χρειάζονται σταθερές κι αν ναι για ποιες ποσότητες, τι δοµές ελέγχου θα χρησιµοποιήσετε για κάθε λειτουργία και πώς θα κάνετε τους υπολογισµούς που χρειάζονται. Μη διστάζετε να ζητήσετε βοήθεια! Χρησιµοποιήστε κατά προτίµηση το χώρο συζητήσεων στο eclass και, µόνο αν είναι απαραίτητο, στείλτε email µε απορίες στο ce120lab@gmail.com (π.χ. αν πραγµατικά επιβάλλεται να στείλετε κάποιο κοµµάτι κώδικα µαζί µε το µήνυµά σας). Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι και 2 ατόµων. Δε χρειάζεται να είστε οµάδα µε το ίδιο άτοµο που είστε στο εργαστήριο. Μπορείτε να συζητάτε τις ασκήσεις µε συµφοιτητές σας αλλά δεν επιτρέπεται η ανταλλαγή κώδικα µε οποιονδήποτε τρόπο. Ξεκινήστε νωρίς! Ο προγραµµατισµός είναι πάντα ΠΟΛΥ πιο χρονοβόρος από ότι περιµένετε. Εκπρόθεσµες ασκήσεις δε γίνονται δεκτές. Οι ασκήσεις σας θα βαθµολογηθούν στα παρακάτω (χωρίς ιδιαίτερη σειρά): Ορθότητα Γενική µορφοποίηση προγράµµατος (στοίχιση, ονόµατα µεταβλητών και σταθερών, κτλ.) Σχεδιασµός προγράµµατος και αποτελεσµατική χρήση κατάλληλων δοµών, µεταβλητών, σταθερών κτλ. Αν πιάσετε τον εαυτό σας να κάνει πολλά κοµµάτια κώδικα copy+paste, τότε µάλλον υπάρχει καλύτερος τρόπος να υλοποιήσετε αυτό που σκέφτεστε. Οι ασκήσεις έχουν ως θέµα τις επαναλήψεις - µη χρησιµοποιήσετε πίνακες. Συµµόρφωση µε τις προδιαγραφές Αποτελεσµατικά σχόλια, σύµφωνα µε τους κανόνες σχολιασµού του σχετικού φυλλαδίου.

Άσκηση 1 : Ηµερολόγιο Το πρόγραµµά σας πρέπει να αποθηκευτεί σε αρχείο µε όνοµα hw1a.c. Σε αυτή την άσκηση θα γράψετε ένα πρόγραµµα το οποίο εκτυπώνει το ηµερολόγιο για το µήνα και έτος γέννησης του χρήστη. Για να µπορέσει να το κάνει αυτό, θα πρέπει να γνωρίζει από ποια µέρα της εβδοµάδας ξεκινά ο µήνας γέννησης. Αυτό θα υπολογίζεται µετρώντας πόσες ηµέρες έχουν περάσει από τη µέρα γέννησης µέχρι και την 31/12/2017 η οποία γνωρίζουµε ότι ήταν Κυριακή. Το πρόγραµµά σας πρέπει να λειτουργεί ως εξής: Βήµα 1: Εκτυπώνει το µήνυµα "Enter birthdate (M/Y): " (υπάρχει κενό µετά το χαρακτήρα ':') και διαβάζει την ηµεροµηνία γενεθλίων στη µορφή M/Y όπου Μ ο µήνας και Y το έτος. Ο µήνας πρέπει να είναι µεταξύ 1 και 12 και το έτος µεταξύ 1582 και 2017 (συµπεριλαµβανοµένων), διαφορετικά το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα "ERROR: Month must be between 1 and 12 and year between 1582 and 2017." ακολουθούµενο από χαρακτήρα αλλαγής γραµµής και το βήµα επαναλαµβάνεται µέχρις ότου δοθούν έγκυρα στοιχεία. Βήµα 2: Το πρόγραµµα µετρά όλες τις ηµέρες από 1/1/Υ µέχρι και 31/12/2017. Τα δίσεκτα έτη έχουν 366 ηµέρες, ενώ τα κανονικά 365. Ένα έτος είναι δίσεκτο αν διαιρείται ακριβώς µε το 4 αλλά όχι µε το 100. Κατ'εξαίρεση του παραπάνω κανόνα, αν ένα έτος διαιρείται ακριβώς µε το 400, τότε επίσης είναι δίσεκτο. Το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα "1/1/Y to 1/1/2018: D days" ακολουθούµενο από χαρακτήρα αλλαγής γραµµής, όπου Y το έτος γέννησης και D το πλήθος ηµερών που υπολόγισε σε αυτό το βήµα. Βήµα 3: Στο παραπάνω βήµα µετρήσαµε όλες τις ηµέρες του έτους Y, πράγµα που δεν είναι σωστό εκτός αν ο χρήστης γεννήθηκε την πρωτοχρονιά αυτού του έτους. Πρέπει τώρα να αφαιρεθεί από το σύνολο το πλήθος ηµερών από 1/1/Υ µέχρι 1/Μ/Υ. Λάβετε υπόψη ότι κάποιοι µήνες έχουν 31 ηµέρες, κάποιοι 30 και ο Φεβρουάριος έχει 29 ή 28 αναλόγως αν το έτος είναι δίσεκτο ή όχι. Το πρόγραµµα εκτυπώνει το µήνυµα "Birthday to 1/1/2018: D days" ακολουθούµενο από δύο χαρακτήρες αλλαγής γραµµής, όπου D το τελικό πλήθος ηµερών που υπολόγισε σε αυτό το βήµα. Βήµα 4: Εφόσον γνωρίζουµε οτι η 31/12/2017 ήταν Κυριακή καθώς και πόσες µέρες είναι από τα γενέθλια µέχρι τότε, µπορούµε να υπολογίσουµε τι µέρα είναι όταν ξεκινά ο µήνας γενεθλίων. Το πρόγραµµα εκτυπώνει: Mon Tue Wed Thu Fri Sat Sun ακολουθούµενο από χαρακτήρα αλλαγής γραµµής. Το συνολικό πλάτος που καταλαµβάνει κάθε ηµέρα, περιλαµβάνοντας κενά, είναι 4 θέσεις. Στις επόµενες γραµµές εµφανίζονται οι αντίστοιχες ηµεροµηνίες ξεκινώντας από τη σωστή µέρα. Κάθε αριθµός πρέπει να καταλαµβάνει 4 θέσεις. Για παράδειγµα, αν η είσοδος του προγράµµατος είναι 2/1980, τότε εκτυπώνεται: Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Ενδεικτικά αρχεία εισόδου: a_in_1, a_in_2, a_in_3, a_in_4 Αντίστοιχα αρχεία εξόδου: a_out_1, a_out_2, a_out_3, a_out_4

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

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

Πώς να παραδώσετε τη δουλειά σας Πριν παραδώσετε το πρόγραµµά σας, προσθέστε σε σχόλια στην αρχή του αρχείου τα πλήρη ονόµατα και ΑEΜ των µελών της οµάδας. Παρακαλούµε να γράφετε τα σχόλια ΜΟΝΟ µε λατινικούς χαρακτήρες. 1. Κατασκευάστε ένα κατάλογο µε όνοµα hw1submit και αντιγράψτε µέσα σε αυτόν το hw1a.c και το hw1b.c 2. Κάντε δεξί κλικ στον κατάλογο hw1submit και επιλέξτε Compress here as tar.gz 3. Πηγαίνετε στο Autolab, 4. Επιλέξτε το Homework1. (a) Αν είστε οµάδα δύο ατόµων, κατασκευάστε µια οµάδα µέσω της επιλογής Group Options. Αυτή θα ισχύει µόνο για το Homework 1. (b) Κάντε Submit το hw1submit.tar.gz στο Autolab.