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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

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

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

Προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

1. Ουρά α. Απώθηση 2. Στοίβα β. Εξαγωγή γ. Ώθηση δ. Εισαγωγή

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ο (ΜΟΝΟΔΙΑΣΤΑΣΤΟΙ ΠΙΝΑΚΕΣ)

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

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

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

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

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

Μιχάλης Αρταβάνης κλάδου Πληροφορικής ΠΕ19

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

! ΘΕΜΑ A Α2. ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΚΕΙΟΥ. Ονοµατεπώνυµο:

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

Στήλη Β Προτάσεις. 1. Όσο συνθήκη επανάλαβε εντολές Τέλος_επανάληψης 2. Αρχή_επανάληψης εντολές Μέχρις_ότου συνθήκη

Στήλη Β Προτάσεις α. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής β. Ο βρόχος επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

lab9grades Άσκηση 1 - Σωστοί τύποι (παραµέτρων και επιστρεφόµενης τιµής) της series_cosh.

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Αν ( Α < Β και C <> D ) και ( B > D ή Β =D ) τότε K 1 Τέλος_αν. χωρίς τη χρήση λογικών τελεστών. Μονάδες 10

1. Ουρά α. Απώθηση 2. Στοίβα β. Εξαγωγή γ. Ώθηση δ. Εισαγωγή

Τρίτη, 1 Ιουνίου 2004 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

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

δήλωσης δεδοµένων και σε παραβίαση των συντακτικών κανόνων της γλωσσάς.

β. Ποιοι λόγοι θα μας οδηγούσαν στο να αναθέσουμε την επίλυση προβλημάτων στον υπολογιστή; (μονάδες 4) (Μονάδες 6)

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

8 FORTRAN 77/90/95/2003

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

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

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

Transcript:

ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 27/11/11, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ ΑΥΤΗ ΤΗΝ ΕΝΟΤΗΤΑ!! ) Διαβάστε ολόκληρη την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραµµά σας στο χαρτί. Αποθηκεύστε το πρόγραµµά σας σε ένα αρχείο µε όνοµα hw2.c Μην προσπαθήσετε να γράψετε το πρόγραµµα µια κι έξω. Να υλοποιείτε µία-µία τις συναρτήσεις µε τη µέθοδο που χρησιµοποιήσαµε στο φροντιστήριο (αρχικά όλες οι συναρτήσεις είναι άδειες). Μετά την υλοποίηση κάθε µίας συνάρτησης, την τεστάρετε εκτεταµένα, διορθώνετε ότι λάθη έχει και µετά προχωράτε στην επόµενη συνάρτηση. Μην παραλείπετε να αποθηκεύετε αντίγραφα του προγράµµατός σας κάθε φορά που υλοποιείτε ένα µεγάλο κοµµάτι, ώστε αν σε κάποιο επόµενο στάδιο καταστραφεί το αρχείο σας, θα έχετε µια παλιότερη έκδοση από την οποία µπορείτε να συνεχίσετε. Τις επιµέρους "εκδόσεις" να τις ονοµάζετε µε διαφορετικά ονόµατα. Η άσκηση βαθµολογείται ως προς την ορθότητα, καλή χρήση συναρτήσεων, καλή χρήση δοµών ελέγχου κι επανάληψης, σωστή χρήση σταθερών, αναγνωσιµότητα και σχολιασµό. Επίσης, πρέπει να ακολουθήσετε ακριβώς τις προδιαγραφές κάθε συνάρτησης και η έξοδος του προγράµµατός σας να είναι ακριβώς ίδια µε την αναµενόµενη. Μη διστάζετε να ζητήσετε βοήθεια! Μπορείτε να χρησιµοποιήσετε το forum προγραµµατισµού (http://infserver.inf.uth.gr/courses/coding/) και φυσικά email. Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι 2 ατόµων. Μπορείτε να συζητάτε τις ασκήσεις µε συµφοιτητές σας αλλά δεν επιτρέπεται η ανταλλαγή κώδικα µε οποιοδήποτε τρόπο. Ξεκινήστε νωρίς! Ο προγραµµατισµός είναι πάντα ΠΟΛΥ πιο χρονοβόρος από ό,τι περιµένετε. Εκπρόθεσµες ασκήσεις δε γίνονται δεκτές.

Άσκηση: Σταθµός διοδίων Εισαγωγή Θα γράψετε ένα πρόγραµµα το οποίο χρησιµοποιείται από ένα πλήρως αυτοµατοποιηµένο σταθµό διοδίων για να συλλέξει στοιχεία για τα οχήµατα που περνούν από το σταθµό. Το πρόγραµµα ανιχνεύει κι αποθηκεύει τον τύπο κάθε οχήµατος που περνά, την πινακίδα και το ποσό που χρωστάει ο οδηγός (κάποιοι οδηγοί περνούν τα διόδια χωρίς να πληρώνουν όλο το ποσό που οφείλουν). Αφού έχει συλλέξει όλες τις πληροφορίες, εντοπίζει οχήµατα που πέρασαν πολλαπλές φορές ώστε να κρατά µόνο µία καταχώρηση ανά όχηµα και τέλος υπολογίζει κι εκτυπώνει στατιστικά στοιχεία για τις οφειλές των οχηµάτων. Ακολουθούν λεπτοµερείς οδηγίες για το πώς πρέπει να λειτουργεί το πρόγραµµά σας και τι συναρτήσεις πρέπει να περιέχει. Δοµές Δεδοµένων Το πρόγραµµά σας πρέπει να χρησιµοποιεί δύο πίνακες: Ο πρώτος είναι διδιάστατος πίνακας χαρακτήρων σε κάθε γραµµή του οποίου αποθηκεύονται τα στοιχεία µιας πινακίδας αυτοκινήτου. Αυτά είναι : δύο ή τρία γράµµατα, ένα κενό, τέσσερα ψηφία, ένα κενό, κι ένας χαρακτήρας (C, B, T, ή Μ) ο οποίος αναπαριστά τον τύπο του αυτοκινήτου. Ο δεύτερος είναι ένας µονοδιάστατος πίνακας αριθµών κινητής υποδιαστολής ο οποίος σε κάθε κελί i περιέχει το ποσό που χρωστάει ο οδηγός του οχήµατος που βρίσκεται στη θέση i του διδιάστατου πίνακα. Αν ο οδηγός είχε πληρώσει όλο το αντίτιµο ή περισσότερο τότε αποθηκεύεται η τιµή 0, διαφορετικά αποθηκεύεται το ποσό που χρωστάει. Επειδή δε γνωρίζουµε εκ των προτέρων πόσα αυτοκίνητα θα περάσουν από τα διόδια, οι πίνακες πρέπει να έχουν αρκετά µεγάλο µέγεθος (τουλάχιστον 10000). Πρέπει να σκεφτείτε τι τιµή είναι κατάλληλη για να αποθηκευτεί σε αχρησιµοποίητες θέσεις του πίνακα ώστε να σηµατοδοτεί ότι είναι "άδειες". Συµβουλή: αρχικά δώστε µικρό µέγεθος στους πίνακες για να µπορείτε να ελέγξετε εύκολα το πρόγραµµά σας, αλλά πριν παραδώσετε την άσκηση αλλάξτε το. Στάδια προγράµµατος Το πρόγραµµά σας πρέπει να αποτελείται από τα παρακάτω στάδια, τα οποία θα αναλυθούν σε επόµενες ενότητες: 1. Διαβάζει τα δεδοµένα από το πληκτρολόγιο και τα αποθηκεύει στους πίνακες που περιγράφονται στην προηγούµενη ενότητα. 2. Ταξινοµεί τα περιεχόµενα των πινάκων ως προς τις πινακίδες (λεξικογραφικά), σε αύξουσα σειρά 3. Απαλείφει πολλαπλές καταχωρήσεις ανά όχηµα και ανανεώνει αναλόγως τις οφειλές 4. Εκτυπώνει τα στοιχεία των οχηµάτων και τις αντίστοιχες οφειλές 5. Υπολογίζει κι εκτυπώνει στατιστικά στοιχεία 1: Ανάγνωση και αποθήκευση δεδοµένων Για την ανάγνωση και αποθήκευση δεδοµένων, γράψτε µια συνάρτηση η οποία παίρνει ως παραµέτρους ένα διδιάστατο πίνακα χαρακτήρων κι ένα µονοδιάστατο πίνακα αριθµών κινητής υποδιαστολής και δεν επιστρέφει τίποτα. Η συνάρτηση διαβάζει από το πληκτρολόγιο ένα χαρακτήρα ο οποίος εκφράζει τον τύπο ενός οχήµατος. Ο τύπος µπορεί να είναι ένας από τους παρακάτω:

M ή m για µοτοσικλέτα C ή c για αυτοκίνητο B ή b για λεωφορείο T ή t για φορτηγό Ακολούθως, διαβάζει τα γράµµατα µιας πινακίδας, τα οποία είναι δύο ή τρία και µετά τα ψηφία τα οποία είναι πάντα τέσσερα. Προσέξτε: τα ψηφία πρέπει να διαβαστούν ως συµβολοσειρά και όχι ως ακέραιος (γιατί µπορεί να ξεκινούν από το µηδέν). Τέλος, διαβάζει ένα αριθµό κινητής υποδιαστολής ο οποίος αναπαριστά το ποσό που πλήρωσε το συγκεκριµένο αυτοκίνητο. Μπορείτε να υποθέσετε ότι η είσοδος θα είναι πάντα έγκυρη. Στον πρώτο πίνακα αποθηκεύεται η πινακίδα ως εξής: τα γράµµατα, ένα κενό, οι αριθµοί, ένα κενό και τέλος ένας από τους χαρακτήρες 'M', 'C', 'B', ή 'T' ανάλογα µε τον τύπο του οχήµατος. Σηµειώστε πως ο τύπος πρέπει να εµφανίζεται µε κεφαλαίο γράµµα στην πινακίδα, ακόµη κι αν στην είσοδο δόθηκε ως µικρό. Προσέξτε να τερµατίζει σωστά σε '\0' η συµβολοσειρά σας. Στην αντίστοιχη θέση του δεύτερου πίνακα πρέπει να αποθηκευτεί το ποσό που οφείλει ο οδηγός. Έχετε διαβάσει πόσο πλήρωσε, και γνωρίζετε από το hw1 πόσο είναι το αντίτιµο για κάθε τύπο οχήµατος. Σας θυµίζουµε: 1.25 για µοτοσικλέτες 2.35 για αυτοκίνητα 8.40 για φορτηγά 16.50 για λεωφορεία Αν ο οδηγός πλήρωσε ακριβώς το ποσό που πρέπει, ή πλήρωσε παραπάνω (οπότε εννοείται ότι πήρε ρέστα αν και το πρόγραµµά µας δεν ασχολείται µε αυτό), τότε χρωστάει 0 ευρώ. Αν πλήρωσε λιγότερα, τότε χρωστάει τη διαφορά. 2: Ταξινόµηση Γράψτε µια συνάρτηση η οποία χρησιµοποιεί τον αλγόριθµο selection sort για να ταξινοµήσει τα στοιχεία των οχηµάτων σε αύξουσα σειρά, λεξικογραφικά µε βάση τις πινακίδες. Μην ξεχάσετε ότι ο πίνακας των οφειλών πρέπει πάντα να διατηρείται έτσι ώστε στη θέση i να είναι το ποσό που οφείλει το όχηµα που βρίσκεται στη θέση i του πίνακα πινακίδων. 3: Απαλοιφή πολλαπλών καταχωρήσεων Τώρα που οι πινακίδες είναι ταξινοµηµένες, αν υπάρχουν πολλαπλές καταχωρήσεις για το ίδιο όχηµα, θα πρέπει να είναι σε διαδοχικές θέσεις του πίνακα. Σκοπός µας είναι να σβήσουµε όλες τις διπλοκαταχωρήσεις εκτός από µία, στην οποία θα αντιστοιχεί το συνολικό ποσό που οφείλει αυτό το αυτοκίνητο. Ας υποθέσουµε πως έχετε εντοπίσει ότι οι καταχωρήσεις ανάµεσα στις θέσεις start και end αναφέρονται όλες στο ίδιο όχηµα. Γράψτε αρχικά µια βοηθητική συνάρτηση η οποία παίρνει ως παραµέτρους τον πίνακα οφειλών και τις θέσεις start και end κι επιστρέφει το άθροισµα των οφειλών για αυτές τις θέσεις. Ακολούθως, γράψτε µια συνάρτηση που διατρέχει τον πίνακα πινακίδων, εντοπίζει διαδοχικές θέσεις µε την ίδια πινακίδα και τις σβήνει όλες εκτός από µία. Το ίδιο φυσικά γίνεται και στον πίνακα οφειλών στον οποίο όµως θα αποθηκευτεί το σύνολο των οφειλών (χρησιµοποιήστε τη βοηθητική συνάρτηση). Μπορείτε είτε να µαρκάρετε τις κενές θέσεις ως "άδειες" ή να µετακινήσετε τα επόµενα κελιά στα αριστερά, όσες θέσεις χρειάζεται.

4: Εκτύπωση στοιχείων Γράψτε µια συνάρτηση η οποία εκτυπώνει τα περιεχόµενα των πινάκων ως εξής: Για κάθε όχηµα εκτυπώνει: Την πινακίδα όπως αυτή έχει αποθηκευτεί στον πίνακα πινακίδων, και έτσι ώστε να καταλαµβάνει 11 θέσεις, ένα κόµµα, ένα κενό, το αντίστοιχο οφειλόµενο ποσό µε δύο δεκαδικά ψηφία, ένα χαρακτήρα αλλαγής γραµµής. Στο τέλος εκτυπώνει σε νέα γραµµή µια σειρά από 20 χαρακτήρες = και ένα χαρακτήρα αλλαγής γραµµής. Δεν πρέπει να εκτυπώνεται τίποτα για "άδειες" θέσεις του πίνακα. 5: Υπολογισµός στατιστικών Γράψτε µια βοηθητική συνάρτηση η οποία υπολογίζει κι επιστρέφει το συνολικό ποσό που οφείλουν όλα τα οχήµατα. Γράψτε µια βοηθητική συνάρτηση η οποία παίρνει ως παράµετρο τον τύπο ενός οχήµατος και ό,τι άλλο χρειάζεται και υπολογίζει κι επιστρέφει το µέσο οφειλόµενο ποσό ανά όχηµα τέτοιου τύπου επί του συνόλου των οχηµάτων αυτού του τύπου που χρωστούν ποσό µεγαλύτερο του µηδενός. Γράψτε µια συνάρτηση η οποία χρησιµοποιεί τις παραπάνω βοηθητικές συναρτήσεις για να εκτυπώσει τα παρακάτω µηνύµατα: Total amount owed: V euros Motorcycles owe X euros on average. Cars owe W euros on average. Buses owe Y euros on average. Trucks owe Z euros on average. όπου V το συνολικό οφειλόµενο ποσό, X το µέσο ποσό για µοτοσυκλέτες, W το µέσο ποσό για αυτοκίνητα, Y το µέσο ποσό για λεωφορεία και Z το µέσο ποσό για φορτηγά. Όλα τα ποσά πρέπει να έχουν δύο δεκαδικά ψηφία. Έλεγχος ορθότητας Το πρόγραµµά σας πρέπει να λειτουργεί σωστά και να εκτυπώνει όλα τα µηνύµατα και αποτελέσµατα ακριβώς µε τον τρόπο που σας περιγράφουµε. Για να µπορέσετε να ελέγξετε την ορθότητα θα σας δώσουµε ενδεικτικά αρχεία εισόδου και εξόδου. Υπάρχει ένας εύκολος τρόπος να συγκρίνετε τα δικά σας αποτελέσµατα µε τα δικά µας: Ας υποθέσουµε ότι το εκτελέσιµο πρόγραµµά σας λέγεται hw2, το ενδεικτικό αρχείο εισόδου λέγεται input1.txt και το αντίστοιχο αρχείο εξόδου που σας έχουµε δώσει λέγεται stdout1.txt Η εντολή:./hw1 < input1.txt > myout1.txt εκτελεί το πρόγραµµά σας µε την ενδεικτική είσοδο input1.txt και αποθηκεύει τα αποτελέσµατα στο αρχείο εξόδου myout1.txt Η εντολή diff -b myout1.txt stdout1.txt συγκρίνει το δικό σας αρχείο εξόδου µε το δικό µας. Αν υπάρχουν διαφορές, τις εµφανίζει (γραµµή-γραµµή). Αν δεν υπάρχουν διαφορές, δεν κάνει τίποτα. Για περισσότερες πληροφορίες δείτε τα παραρτήµατα Α και Β του φυλλαδίου για το hw1.

Πρέπει το πρόγραµµα που θα µας παραδώσετε να παράγει έξοδο που δεν έχει διαφορές από τη δική µας. Πριν παραδώσετε το πρόγραµµά σας, προσθέστε σε σχόλια στην αρχή του αρχείου τα πλήρη ονόµατα και ΑΜ των µελών της οµάδας. Παρακαλούµε να γράφετε τα σχόλια ΜΟΝΟ µε λατινικούς χαρακτήρες. Απαγορεύεται αυστηρά η χρήση καθολικών µεταβλητών. Σηµείωση: Αν ξεκινήσετε το πρόγραµµα πριν τη διάλεξη της Τετάρτης 16/11 όπου θα µάθετε για πίνακες ως παραµέτρους συναρτήσεων, µπορείτε προσωρινά να ορίσετε τους πίνακες ως καθολικές µεταβλητές. ΑΛΛΑ µετά θα πρέπει να διορθώσετε το πρόγραµµά σας ώστε να τους περνάτε ως παραµέτρους όπου χρειάζεται. Το πρόγραµµα που θα παραδώσετε τελικά δεν πρέπει να περιέχει ούτε µια καθολική µεταβλητή. Αρχεία προς παράδοση: hw2.c Πώς να παραδώσετε τη δουλειά σας (Ακολουθείστε τις οδηγίες ακριβώς αλλιώς µπορεί να µη δούµε τα αρχεία σας) Κατασκευάστε ένα φάκελο µε όνοµα epwnumo1_am1_epwnumo2_am2 και αντιγράψτε µέσα σε αυτόν το hw2.c Πηγαίνετε στο φάκελο µέσα στον οποίο βρίσκεται το κατασκευάσατε και γράψτε την παρακάτω εντολή: tar czf epwnumo1_am1_epwnumo2_am2.tgz epwnumo1_am1_epwnumo2_am2 που epwnumo1_am1_epwnumo2_am2 Στείλτε email: στη διεύθυνση ce120lab@gmail.com αντίγραφο (CC) στον άλλο µέλος της οµάδας σας θέµα (subject) CE120 hw2 και επικολληµένο αρχείο το epwnumo1_am1_epwnumo2_am2.tgz