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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΕΜ ή username. Sheet2

Εντολή ΓΡΑΨΕ. Εντολή ιάβασε

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

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

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

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

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

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

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

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

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

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

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

lab5grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ ΑΣΚΗΣΗΣ ΑΛΛΑ ΣΧΟΛΙΑ

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

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

επιµέλεια Θοδωρής Πιερράτος

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

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

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

Στήλες:

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

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

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

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

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

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

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

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

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

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

G-Remote Banking e-banking ΜΕΤΑΦΟΡΕΣ ΜΑΖΙΚΕΣ ΜΕΤΑΦΟΡΕΣ

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

lab11 - Να εκτυπώνεις πιο κατατοπιστικά µηνύµατα λάθους. Αν είναι όλα ίδια, δεν είναι ξεκάθαρο ποιο αρχείο έχει πρόβληµα.

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

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

Τ και τιµή του Β θετική µετατρέπεται ισοδύναµα στην εντολή Όσο ως εξής:

% % % >1000 0%

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Transcript:

ΣΕΤ ΑΣΚΗΣΕΩΝ 1 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 25/11/13, 22:00 Διαβάστε πριν ξεκινήσετε Διαβάστε την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραµµά σας στο χαρτί. Για κάθε στάδιο, αποφασίστε τι µεταβλητές θα χρειαστείτε, τι ονόµατα θα τους δώσετε, αν χρειάζονται σταθερές κι αν ναι για ποιες ποσότητες, τι δοµές ελέγχου θα χρησιµοποιήσετε για κάθε λειτουργία και πώς θα κάνετε τους υπολογισµούς που ζητούνται. Μη διστάζετε να ζητήσετε βοήθεια! Μπορείτε να χρησιµοποιήσετε κατά προτίµηση το forum προγραµµατισµού (http://courses.inf.uth.gr/coding/?page_id=143) και µόνο αν είναι απαραίτητο email (π.χ. αν πραγµατικά επιβάλλεται να στείλετε κάποιο κοµµάτι κώδικα µαζί µε το µήνυµά σας). Μην προσπαθήσετε να γράψετε το πρόγραµµα µια κι έξω. Για κάθε στάδιο που ολοκληρώνετε, βεβαιωθείτε ότι κάνει compile και λειτουργεί σωστά και µετά να προχωράτε στο επόµενο στάδιο. Κάθε φορά που τελειώνετε ένα στάδιο, να αποθηκεύετε ένα αντίγραφο του προγράµµατος όπως είναι µέχρι εκείνο το σηµείο. Έτσι, αν σε κάποιο επόµενο στάδιο καταστραφεί το αρχείο σας, θα έχετε µια παλιότερη έκδοση από την οποία µπορείτε να συνεχίσετε. Τις επιµέρους "εκδόσεις" να τις ονοµάζετε µε διαφορετικά ονόµατα (πχ. hw1stadio1.c, hw1stadio2.c). Εννοείται πως θα παραδώσετε µόνο την τελική έκδοση του προγράµµατος. Σε κάθε στάδιο σας δίνουµε µια εκτίµηση της δυσκολίας του (διαβάθµιση από 1 έως 3 αστεράκια). Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι 2 ατόµων. Δε χρειάζεται να είστε οµάδα µε το ίδιο άτοµο που είστε στο εργαστήριο. Μπορείτε να συζητάτε τις ασκήσεις µε συµφοιτητές σας αλλά δεν επιτρέπεται η ανταλλαγή κώδικα µε οποιοδήποτε τρόπο. Ξεκινήστε νωρίς! Ο προγραµµατισµός είναι πάντα ΠΟΛΥ πιο χρονοβόρος από ότι περιµένετε. Εκπρόθεσµες ασκήσεις δε γίνονται δεκτές. Οι ασκήσεις σας θα βαθµολογηθούν στα παρακάτω (χωρίς ιδιαίτερη σειρά): Ορθότητα Γενική µορφοποίηση προγράµµατος (στοίχιση, ονόµατα µεταβλητών, κτλ.) Σχεδιασµός προγράµµατος και αποτελεσµατική χρήση κατάλληλων δοµών, µεταβλητών, σταθερών κτλ. Συµµόρφωση µε τις προδιαγραφές Αποτελεσµατικά σχόλια, σύµφωνα µε τους κανόνες σχολιασµού του σχετικού φυλλαδίου.

Άσκηση : Διαχείριση Ταµείου σε Χώρο Στάθµευσης Οχηµάτων Εισαγωγή Θα γράψετε ένα πρόγραµµα το οποίο χρησιµοποιείται σε ένα χώρο στάθµευσης οχηµάτων για να διαχειριστεί τις πληρωµές και να καταγράψει στατιστικά στοιχεία. Το πρόγραµµα ανιχνεύει τον τύπο κάθε οχήµατος που µπαίνει στο χώρο, υπολογίζει το ποσό που θα πληρωθεί κατά την έξοδο µε βάση τη διάρκεια στάθµευσης, διαχειρίζεται τη συναλλαγή και στο τέλος της ηµέρας καταγράφει στατιστικά στοιχεία. Ακολουθούν λεπτοµερείς οδηγίες για το πώς πρέπει να λειτουργεί το πρόγραµµά σας και στάδια κατασκευής του. ΜΗΝ προσπαθήσετε να γράψετε όλο το πρόγραµµα σε ένα βήµα γιατί θα κάνετε λάθη και θα σας πάρει πολύ περισσότερο χρόνο. Αποθηκεύστε το πρόγραµµά σας σε ένα αρχείο µε όνοµα hw1.c Στάδιο 1: Ανίχνευση τύπου οχήµατος ( ) Γράψτε ένα πρόγραµµα το οποίο διαβάζει από το πληκτρολόγιο τον τύπο κάθε οχήµατος που µπαίνει στο χώρο στάθµευσης και µετρά πόσα οχήµατα κάθε τύπου έχουν σταθµεύσει µέχρι το τέλος της ηµέρας. Για την ακρίβεια, το πρόγραµµά σας πρέπει να εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Enter vehicle type (M,m,C,c,T,t,B,b) or x to exit: ακολουθούµενο από ένα κενό. Οι πιθανοί τύποι οχηµάτων είναι µοτοσυκλέτα (m ή M), αυτοκίνητο (c ή C), φορτηγό (t ή T) και λεωφορείο (b ή B). Αν δοθεί x θεωρούµε ότι είναι το τέλος της ηµέρας και δε θα έρθουν άλλα οχήµατα. Αν δοθεί οποιαδήποτε άλλη επιλογή, το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα λάθους Error: Invalid vehicle type " Χ "! όπου Χ είναι ο άκυρος τύπος οχήµατος που δόθηκε, κι επαναλαµβάνει τα παραπάνω βήµατα. Στο τέλος της ηµέρας, το πρόγραµµα εκτυπώνει τα παρακάτω: Τον τίτλο MOTORCYCLES: ακολουθούµενο από χαρακτήρα αλλαγής γραµµής Ένα χαρακτήρα tab, το µήνυµα Number:X όπου X το πλήθος µοτοσυκλετών που στάθµευσαν στο χώρο, και Τον τίτλο CARS: ακολουθούµενο από χαρακτήρα αλλαγής γραµµής Ένα χαρακτήρα tab, το µήνυµα Number:X όπου X το πλήθος αυτοκινήτων που στάθµευσαν στο χώρο, και Τον τίτλο "TRUCKS:" ακολουθούµενο από χαρακτήρα αλλαγής γραµµής Ένα χαρακτήρα tab, το µήνυµα "Number:X" όπου X το πλήθος φορτηγών που στάθµευσαν στο χώρο, και Τον τίτλο "BUSES:" ακολουθούµενο από χαρακτήρα αλλαγής γραµµής Ένα χαρακτήρα tab, το µήνυµα "Number:X" όπου X το πλήθος λεωφορείων που στάθµευσαν στο χώρο, και Ολοκληρώστε αυτό το στάδιο και βεβαιωθείτε ότι λειτουργεί σωστά πριν προχωρήσετε στο επόµενο.

Στάδιο 2: Υπολογισµός διάρκειας στάθµευσης ( ) Προσθέστε κώδικα στο πρόγραµµα που γράψατε για το στάδιο 1 έτσι ώστε να καταγράφονται οι ώρες εισόδου κι εξόδου του κάθε οχήµατος και να υπολογίζεται το ποσό που πρέπει να πληρώσουν. Για την ακρίβεια, όταν δοθεί έγκυρος τύπος οχήµατος, το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Enter entry time (HH:MM, 24hr clock): ακολουθούµενο από ένα κενό. Η ώρα εισόδου πρέπει να δοθεί στη µορφή HH:MM (για παράδειγµα 13:20 ή 9:00 ). Η ώρα πρέπει να είναι µεταξύ 0 και 23 (συµπεριλαµβανοµένων) ενώ τα λεπτά µεταξύ 0 και 59 (συµπεριλαµβανοµένων). Αν δε δοθούν έγκυρα νούµερα, τότε το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα λάθους Error: Hour must be between 0 and 23 and minute must be between 0 and 59! ακολουθούµενο από χαρακτήρα αλλαγής γραµµής κι επαναλαµβάνει τα παραπάνω βήµατα. Εφόσον δοθεί σωστά η ώρα εισόδου, το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Enter exit time (HH:MM, 24hr clock): ακολουθούµενο από ένα κενό και κάνει τον ίδιο έλεγχο εγκυρότητας. Επιπλέον,το πρόγραµµα ελέγχει αν η ώρα εξόδου είναι µεταγενέστερη της ώρας εισόδου (θεωρείστε ότι η είσοδος και η έξοδος γίνονται πάντα την ίδια µέρα). Αν όχι, τότε εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Error: Exit time must be after entrance time! ακολουθούµενο από χαρακτήρα αλλαγής γραµµής κι επαναλαµβάνει το βήµα εισαγωγής της ώρας εξόδου. Εφόσον έχουν δοθεί σωστά οι ώρες εισόδου κι εξόδου, το πρόγραµµα υπολογίζει πόσο πρέπει να πληρώσει ο οδηγός, ανάλογα µε τον τύπο του οχήµατος. Οι τιµές ανά ώρα στάθµευσης είναι 0.75 ευρώ για µοτοσυκλέτες, 2.25 για αυτοκίνητα, 5.40 για φορτηγά, 8.60 για λεωφορεία και το σύνολο υπολογίζεται ανά λεπτό. Στο τέλος της ηµέρας, το πρόγραµµα εκτυπώνει τα παρακάτω: Στην κατηγορία MOTORCYCLES, µετά το µήνυµα Number:X που γράψατε στο προηγούµενο στάδιο, εκτυπώνεται ένας χαρακτήρας tab, το µήνυµα Average parking time: H hrs M min όπου H και Μ είναι η µέση διάρκεια στάθµευσης µοτοσυκλετών σε ώρες και λεπτά αντίστοιχα, και χαρακτήρας αλλαγής γραµµής. Τόσο το H, όσο και το Μ καταλαµβάνουν 2 θέσεις. Στη γραµµή που ακολουθεί εκτυπώστε ένα χαρακτήρα tab, το µήνυµα Income:Y όπου Y τα συνολικά έσοδα σε ευρώ από τη στάθµευση µοτοσυκλετών, και χαρακτήρα αλλαγής γραµµής. Το Υ πρέπει να έχει χώρο για 4 ακέραια ψηφία και 2 δεκαδικά. Εκτυπώστε παρόµοια µηνύµατα για τα αυτοκίνητα, φορτηγά και λεωφορεία στις αντίστοιχες κατηγορίες. Μετά την εκτύπωση του εισοδήµατος για τα λεωφορεία, εκτυπώστε το µήνυµα Total income:υ όπου Υ το σύνολο των εσόδων από όλα τα οχήµατα (ίδιο φορµάρισµα µε πριν), και χαρακτήρα αλλαγής γραµµής. Ακολούθως, εκτυπώστε ένα χαρακτήρα αλλαγής γραµµής, το µήνυµα Z% is moto income και χαρακτήρα αλλαγής γραµµής. Το Ζ είναι το ποσοστό εσόδων από τη στάθµευση µοτοσυκλετών επί του συνόλου των εσόδων και πρέπει να έχει ακριβώς δύο δεκαδικά ψηφία. Εκτυπώστε παρόµοια µηνύµατα για τα αυτοκίνητα, φορτηγά και λεωφορεία στις επόµενες τρεις γραµµές, αντικαθιστώντας το moto µε car, truck και bus αντίστοιχα. Ολοκληρώστε αυτό το στάδιο και βεβαιωθείτε ότι λειτουργεί σωστά πριν προχωρήσετε στο επόµενο.

Στάδιο 3: Διαχείριση πληρωµής ( ) Μετά τον υπολογισµό του ποσού πληρωµής για ένα όχηµα, το πρόγραµµα πρέπει να ζητά το ποσό από τον πελάτη, να δέχεται την πληρωµή του και να υπολογίζει τα ρέστα που θα του δώσει. Για την ακρίβεια, το πρόγραµµα εκτυπώνει το µήνυµα Please pay Χ euros: ακολουθούµενο από ένα κενό. Το Χ είναι το ποσό που πρέπει να πληρώσει ο πελάτης σε ευρώ κι εµφανίζεται µε δύο δεκαδικά ψηφία. Αφού διαβαστεί το ποσό που δίνει ο πελάτης, το πρόγραµµα πρέπει να επιβεβαιώσει ότι είναι αρκετό. Αν όχι, τότε το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Please pay another Χ euros: ακολουθούµενο από ένα κενό. Το Χ είναι το υπόλοιπο που πρέπει να δώσει ο πελάτης ώστε να καλυφθεί το ποσό που χρωστάει. Η διαδικασία επαναλαµβάνεται µέχρι να καλυφθεί το ποσό. Εφόσον ο πελάτης δώσει αρκετά χρήµατα, το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα You paid Y ακολουθούµενο από χαρακτήρα αλλαγής γραµµής. Το Υ είναι το συνολικό ποσό που έδωσε τελικά ο πελάτης, κι έχει 2 δεκαδικά ψηφία. Ακολούθως το πρόγραµµα υπολογίζει τα ρέστα που πρέπει να δώσει. Για ευκολία, υποθέτουµε ότι δίνει µόνο ευρώ, εικοσάλεπτα, πεντάλεπτα και λεπτά. Για τα ρέστα θα πρέπει να δίνεται ο µικρότερος δυνατός αριθµός κερµάτων. Με άλλα λόγια, κατά τον υπολογισµό των ρέστων δίνουµε όσο το δυνατό περισσότερα κέρµατα µεγαλύτερης αξίας πριν αρχίσουµε να υπολογίζουµε τον αριθµό των κερµάτων αµέσως µικρότερης αξίας που θα δοθούν κ.ο.κ. Το πρόγραµµα εκτυπώνει χαρακτήρα αλλαγής γραµµής και το µήνυµα Please take your change: ακολουθούµενο από ένα κενό. Μετά, για κάθε υποδιαίρεση εκτυπώνει την ποσότητα, ένα κενό, την υποδιαίρεση και ένα κενό. Στο τέλος εκτυπώνει ένα χαρακτήρα αλλαγής γραµµής. Χρησιµοποιήστε euros, twenties, fives και cents για τις υποδιαιρέσεις. Αν κάποια ποσότητα είναι µηδέν, δεν εκτυπώνεται το αντίστοιχο µήνυµα. Προσοχή: Στην περίπτωση που κάποιος µπει και βγει από το χώρο εντός του ίδιου λεπτού, τότε το ποσό πληρωµής είναι µηδενικό, και το πρόγραµµα εκτυπώνει απλά το µήνυµα No payment required. ακολουθούµενο από χαρακτήρα αλλαγής γραµµής. Σε αυτή την περίπτωση δεν εκτυπώνεται τίποτα από τα παραπάνω. Σηµειώσεις για την ακρίβεια υπολογισµών: Όταν υπολογίζετε το ποσό που πρέπει να πληρώσει ένας οδηγός, πρέπει να το στρογγυλεύετε στα δύο δεκαδικά ψηφία. Για παράδειγµα, αν µια µοτοσυκλέτα παρκάρει για 10 λεπτά, τότε πρέπει να πληρώσει 0.13 κι όχι 0.125 ευρώ. Προβλήµατα ακρίβειας µπορεί να σας εµφανιστούν και κατά τον υπολογισµό των ρέστων. Για παράδειγµα, µπορεί το πρόγραµµα να υπολογίσει ότι τα ρέστα είναι 4.9999999 ευρώ αντί για 5. Για να λύσετε το πρόβληµα, µπορείτε να κάνετε στρογγυλοποιήσεις χρησιµοποιώντας τις συναρτήσεις round ή lround ή κάποιο άλλο έξυπνο τρόπο. Αν χρησιµοποιήσετε τις συναρτήσεις, γράψτε y = round(x) για να αναθέσετε στη µεταβλητή y την τιµή της µεταβλητής x στρογγυλοποιηµένη (εννοείται εσείς δε θα χρησιµοποιήσετε τέτοια ονόµατα µεταβλητών). Θα πρέπει επίσης να κάνετε #include το αρχείο math.h και όταν γράψετε την εντολή gcc να προσθέσετε στο τέλος και την επιλογή -lm (παύλα ελ εµ)

Στάδιο 4: Έλεγχος ορθότητας Το πρόγραµµά σας πρέπει να λειτουργεί σωστά και να εκτυπώνει όλα τα µηνύµατα και αποτελέσµατα µε τον τρόπο που σας περιγράφουµε. Για να µπορέσετε να ελέγξετε την ορθότητα θα σας δώσουµε ενδεικτικά αρχεία εισόδου και εξόδου. Μπορείτε να χρησιµοποιήσετε ανακατεύθυνση για να παράγετε τη δική σας έξοδο µε βάση την είσοδο που σας δίνουµε: Ας υποθέσουµε ότι το εκτελέσιµο πρόγραµµά σας λέγεται hw1, το ενδεικτικό αρχείο εισόδου λέγεται input1.txt και το αντίστοιχο αρχείο εξόδου που σας έχουµε δώσει λέγεται stdout1.txt Η εντολή:./hw1 < input1.txt > myout1.txt εκτελεί το πρόγραµµά σας µε την ενδεικτική είσοδο input1.txt και αποθηκεύει τα αποτελέσµατα στο αρχείο εξόδου myout1.txt (αντί για την οθόνη) Η εντολή diff -b myout1.txt stdout1.txt συγκρίνει το δικό σας αρχείο εξόδου µε το δικό µας. Αν υπάρχουν διαφορές, τις εµφανίζει (γραµµή-γραµµή). Αν δεν υπάρχουν διαφορές, δεν κάνει τίποτα. Πρέπει το πρόγραµµα που θα µας παραδώσετε να παράγει έξοδο που δεν έχει καθόλου διαφορές από τη δική µας. Πώς να παραδώσετε τη δουλειά σας Πριν παραδώσετε το πρόγραµµά σας, προσθέστε σε σχόλια στην αρχή του αρχείου τα πλήρη ονόµατα και ΑΜ των µελών της οµάδας. Παρακαλούµε να γράφετε τα σχόλια ΜΟΝΟ µε λατινικούς χαρακτήρες. Κατασκευάστε ένα φάκελο µε όνοµα hw1_epwnumo1_am1_epwnumo2_am2 και αντιγράψτε µέσα σε αυτόν το hw1.c Πηγαίνετε στο φάκελο µέσα στον οποίο βρίσκεται το κατασκευάσατε και γράψτε την παρακάτω εντολή: hw1_epwnumo1_am1_epwnumo2_am2 που tar czf 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