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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

Διάλεξη 18η: Διαχείρηση Αρχείων

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

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

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

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

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

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

lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ

Επεξεργασία Αρχείων Κειµένου

Ενδεικτικές λύσεις και στατιστικά

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

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

Sheet1_2. - Δεν υπάρχουν σχόλια συναρτήσεων - Να χρησιµοποιείς πιο περιγραφικά ονόµατα µεταβλητών (και σίγουρα όχι απλούς χαρακτήρες όπως c, d) Page 1

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

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

lab5 -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

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

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

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

ΑΕΜ ή username. Sheet2

επιστρέφει αριθµό που προκύπτει µε αντιστροφή των στοιχείων του πρώτου

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη

Προγραμματιστικό Περιβάλλον

Εργαστήριο 5. Εαρινό Εξάμηνο

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

Προγραμματισμός Ι (ΗΥ120)

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

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

Transcript:

ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων Χρήση σχολίων και αναγνωσιµότητα προγράµµατος Συµµόρφωση µε προδιαγραφές εισόδου/εξόδου Πριν ξεκινήσετε Κατεβάστε και αποσυµπιέστε το αρχείο hw2tests.tgz το οποίο περιέχει ενδεικτικές εισόδους και εξόδους για κάθε στάδιο. Διαβάστε την εκφώνηση προσεκτικά και σχεδιάστε το πρόγραµµά σας στο χαρτί. Αποφασίστε τι µεταβλητές θα χρειαστείτε, τι ονόµατα θα τους δώσετε, αν χρειάζονται σταθερές κι αν ναι για ποιες ποσότητες και τι δοµές θα χρησιµοποιήσετε για κάθε λειτουργία. Μη διστάζετε να ζητήσετε βοήθεια! Μπορείτε να χρησιµοποιήσετε το forum προγραµµατισµού (http://inf-server.inf.uth.gr/courses/coding/) και φυσικά email. Μην προσπαθήσετε να γράψετε το πρόγραµµα ολόκληρο από την αρχή. Για κάθε στάδιο που ολοκληρώνετε, βεβαιωθείτε ότι λειτουργεί σωστά και µετά να προχωράτε στο επόµενο στάδιο. Σε κάθε στάδιο σας δίνουµε µια εκτίµηση της δυσκολίας του (διαβάθµιση απο 1 έως 4). Η εργασία αυτή είναι ατοµική. Μπορείτε να συζητάτε τις ασκήσεις µε συµφοιτητές σας αλλά δεν επιτρέπεται η ανταλλαγή κώδικα µε οποιοδήποτε τρόπο. Ξεκινήστε νωρίς! Ο προγραµµατισµός είναι πάντα ΠΟΛΥ πιο χρονοβόρος από ό,τι περιµένετε. Εκπρόθεσµες ασκήσεις δε γίνονται δεκτές.

'Ασκηση: Αυτόµατος διορθωτής διαγωνισµάτων Θα γράψετε ένα πρόγραµµα το οποίο χρησιµοποιείται για να κάνει αυτόµατη διόρθωση ενός τεστ πολλαπλών απαντήσεων. Το πρόγραµµα διαβάζει τις σωστές απαντήσεις, διαβάζει τις απαντήσεις των φοιτητών και υπολογίζει το σκορ κάθε φοιτητή και στοιχειώδη στατιστικά για την απόδοση της τάξης. Ακολουθούν λεπτοµερείς οδηγίες για το πώς πρέπει να λειτουργεί το πρόγραµµά σας και στάδια κατασκευής του. ΜΗΝ προσπαθήσετε να γράψετε όλο το πρόγραµµα σε ένα βήµα γιατί θα κάνετε λάθη και θα σας πάρει πολύ περισσότερο χρόνο. Κάθε στάδιο χτίζει πάνω στο προηγούµενο. Υπάρχει περίπτωση ένα στάδιο να µεταβάλλει τον κώδικα προηγουµένου σταδίου. Στάδιο 1: Εισαγωγή δεδοµένων και έλεγχος απαντήσεων ( ) Γράψτε ένα πρόγραµµα το οποίο διαβάζει και βαθµολογεί τις απαντήσεις που έδωσαν 15 φοιτητές σε ένα τεστ που πολλαπλών απαντήσεωντο πρόγραµµά σας πρέπει να εκτελεί τις εξής λειτουργίες: Διαβάζει από το πληκτρολόγιο µια συµβολοσειρά η οποία αποτελείται από χαρακτήρες 'Α', 'Β', 'C' και 'D' και αναπαριστά τις σωστές απαντήσεις. Μπορείτε να θεωρήσετε ότι υπάρχουν ακριβώς 20 ερωτήµατα. Για κάθε φοιτητή, διαβάζει από το πληκτρολόγιο ένα τετραψήφιο ακέραιο ο οποίος αναπαριστά τον αριθµό µητρώου ενός φοιτητή και µια συµβολοσειρά η οποία αποτελείται από 20 χαρακτήρες που αναπαριστούν τις απαντήσεις που έδωσε ο φοιτητής. Μπορείτε να θεωρήσετε ότι ο φοιτητής απάντησε όλα τα ερωτήµατα και οι απαντήσεις είναι πάντα 'A' ή 'B' ή 'C' ή 'D'. Κάθε φορά που διαβάζει τις απαντήσεις ενός φοιτητή, τις συγκρίνει µε τις σωστές απαντήσεις και αποθηκεύει το σκορ του φοιτητή (πλήθος απαντήσεων που δόθηκαν σωστά) Στο τέλος, εκτυπώνει για κάθε φοιτητή τον αριθµό µητρώου, ο οποίος καταλαµβάνει 4 θέσεις (µε µηδενικά στην αρχή αν χρειάζεται), άνω-κάτω τελεία και τέλος το σκορ, το οποίο πρέπει να είναι ένας ακέραιος που καταλαµβάνει 3 θέσεις. Οι πληροφορίες για κάθε ένα φοιτητή εµφανίζονται σε νέα γραµµή. Το πρόγραµµά σας πρέπει να χρησιµοποιεί τα εξής: Ένα string (πίνακα χαρακτήρων) στο οποίο αποθηκεύονται οι σωστές απαντήσεις Ένα πίνακα ακεραίων στον οποίο αποθηκεύονται τα ΑΕΜ των φοιτητών Ένα πίνακα ακεραίων στον οποίο αποθηκεύονται τα σκορ των φοιτητών. Θεωρείστε ότι το ΑΕΜ και το σκορ κάθε φοιτητή βρίσκονται σε αντίστοιχες θέσεις στους δύο πίνακες. Εκτός από τα παραπάνω θα χρειαστείτε και άλλες βοηθητικές δοµές και µεταβλητές. Δείτε τα παραδείγµατα ενδεικτικής εισόδου και αντίστοιχης εξόδου γι'αυτό το στάδιο στο φάκελο stage1tests. Παρατηρείστε πώς δεν υπάρχουν µηνύµατα που ενηµερώνουν το χρήστη για το τι δεδοµένα πρέπει να δώσει.

Για να µπορέσετε να εµφανίζετε µηδενικά στην αρχή κάποιου ΑΕΜ που τα πρώτα του ψηφία είναι 0, υπάρχει ένας ειδικός κωδικός στο printf. Θα πρέπει να βρείτε µόνοι σας ποιος είναι αυτός. Ολοκληρώστε αυτό το στάδιο και βεβαιωθείτε ότι λειτουργεί σωστά πριν προχωρήσετε στο επόµενο. Στάδιο 2: Μεταβλητός αριθµός φοιτητών/ερωτήσεων ( ) Στο προηγούµενο στάδιο θεωρήσατε ότι ο αριθµός των ερωτήσεων είναι πάντα 20 και ο αριθµός των φοιτητών πάντα 15. Σε αυτό το στάδιο θα αλλάξετε το πρόγραµµά σας ώστε να µπορεί να λειτουργήσει για µεταβλητό αριθµό ερωτήσεων και φοιτητών, υπό την προϋπόθεση ότι αυτοί δεν ξεπερνούν το 20 και το 15 αντίστοιχα. Προσθέστε κώδικα στην αρχή του προγράµµατος ο οποίος: διαβάζει το πλήθος των ερωτήσεων αν το πλήθος υπερβαίνει το 20 ή είναι µικρότερο του 1, το ξαναδιαβάζει έως ότου δοθεί αριθµός στο σωστό εύρος διαβάζει το πλήθος των φοιτητών αν το πλήθος υπερβαίνει το 15 ή είναι µικρότερο του 1, το ξαναδιαβάζει έως ότου δοθεί αριθµός στο σωστό εύρος µεταβάλλει τον υπόλοιπο κώδικα του πρώτου σταδίου ώστε να λειτουργεί για το συγκεκριµένο αριθµό φοιτητών και ερωτήσεων. Οι θέσεις των πινάκων που "περισσεύουν" µένουν κενές και δεν πρέπει να χρησιµοποιούνται πουθενά. Δείτε τα παραδείγµατα ενδεικτικής εισόδου και αντίστοιχης εξόδου γι'αυτό το στάδιο στο φάκελο stage2tests Απαγορεύεται αυστηρά η χρήση καθολικών µεταβλητών. Ολοκληρώστε αυτό το στάδιο και βεβαιωθείτε ότι λειτουργεί σωστά πριν προχωρήσετε στο επόµενο. Στάδιο 3: Εισαγωγή συναρτήσεων ( ) Στο πρώτο στάδιο, ο έλεγχος ορθότητας των απαντήσεων κάθε φοιτητή έγινε µέσα στη main. Σε αυτό το στάδιο θα µεταβάλλετε το πρόγραµµά σας ώστε αυτός ο έλεγχος να γίνεται µέσω µιας συνάρτησης την οποία καλείτε από τη main. Γράψτε µια συνάρτηση η οποία συγκρίνει τις απαντήσεις που έδωσε ένας φοιτητής µε τις σωστές απαντήσεις και υπολογίζει και αποθηκεύει το σκορ του στον αντίστοιχο πίνακα. Η συνάρτησή σας πρέπει οπωσδήποτε να παίρνει ως παραµέτρους τον πίνακα των σκορ και τον πίνακα που περιέχει τις σωστές απαντήσεις. Θα χρειαστούν κι άλλες παράµετροι - πρέπει να αποφασίσετε ποιες. Η συνάρτηση δε χρειάζεται να επιστρέφει τίποτα. Καλέστε τη συνάρτησή σας στο κατάληλο σηµείο της main. Απαγορεύεται αυστηρά η χρήση καθολικών µεταβλητών. Για τον έλεγχο του προγράµµατός σας µπορείτε να χρησιµοποιήσετε τα ίδια παραδείγµατα εισόδου/

εξόδου µε το στάδιο 2. Ολοκληρώστε αυτό το στάδιο και βεβαιωθείτε ότι λειτουργεί σωστά πριν προχωρήσετε στο επόµενο. Στάδιο 4: Υπολογισµός στατιστικών ( ) Γράψτε µια συνάρτηση η οποία παίρνει ως παραµέτρους τον πίνακα των σκορ και ό,τι άλλο χρειάζεται και κάνει τους εξής υπολογισµούς: Μετρά πόσοι φοιτητές έχουν απαντήσει σωστά τουλάχιστον το 90% των ερωτήσεων Μετρά πόσοι φοιτητές έχουν απαντήσει σωστά τουλάχιστον το 70% των ερωτήσεων, αλλά λιγότερο από το 90% Μετρά πόσοι φοιτητές έχουν απαντήσει σωστά τουλάχιστον το 50% των ερωτήσεων, αλλά λιγότερο από το 70% Μετρά πόσοι φοιτητές έχουν απαντήσει σωστά λιγότερο από το 50% των ερωτήσεων Μετά τους υπολογισµούς, η συνάρτησή σας πρέπει να εκτυπώνει τα αποτελέσµατα ως εξής: Στην πρώτη γραµµή εµφανίζεται ο βαθµός Α, άνω-κάτω τελεία, και το πλήθος των φοιτητών της πρώτης κατηγορίας. Το πλήθος καταλαµβάνει 2 θέσεις. Στη δεύτερη γραµµή εµφανίζεται ο βαθµός B, άνω-κάτω τελεία, και το πλήθος των φοιτητών της δεύτερης κατηγορίας. Το πλήθος καταλαµβάνει 2 θέσεις. Στην τρίτη γραµµή εµφανίζεται ο βαθµός C, άνω-κάτω τελεία, και το πλήθος των φοιτητών της τρίτης κατηγορίας. Το πλήθος καταλαµβάνει 2 θέσεις. Στην τέταρτη γραµµή εµφανίζεται ο βαθµός F, άνω-κάτω τελεία, και το πλήθος των φοιτητών της τέταρτης κατηγορίας. Το πλήθος καταλαµβάνει 2 θέσεις. Καλέστε τη συνάρτησή σας στο τέλος της main. Δείτε τα παραδείγµατα ενδεικτικής εισόδου και αντίστοιχης εξόδου γι'αυτό το στάδιο στο φάκελο stage4tests. Στάδιο 5: Επαλήθευση () Βεβαιωθείτε ότι το πρόγραµµά σας διαβάζει την είσοδο και εκτυπώνει την έξοδο ακριβώς όπως περιγράφεται παραπάνω. Μπορείτε να χρησιµοποιήσετε και το διαθέσιµο εκτελέσιµο προγραµµα για να δείτε πώς πρέπει να λειτουργεί το πρόγραµµά σας. Χρησιµοποιήστε ανακατεύθυνση και την εντολή diff όπως περιγράφεται στο πρώτο σετ ασκήσεων.

Πώς να παραδώσετε τη δουλειά σας (Ακολουθείστε τις οδηγίες ακριβώς αλλιώς η άσκησή σας δε θα διορθωθεί και θα θεωρηθεί µη παραδοτέα) Αποθηκεύστε το πρόγραµµά σας σε ένα αρχείο µε όνοµα hw2.c Κατασκευάστε ένα φάκελο µε όνοµα επ ώνυμο_ όνομα_ ΑΕΜ _email και αντιγράψτε µέσα σε αυτόν το hw2.c Πηγαίνετε στο φάκελο µέσα στον οποίο βρίσκεται το επ ώνυμο_ όνομα_ ΑΕΜ _email που κατασκευάσατε και γράψτε την παρακάτω εντολή: tar czf epwnumo_onoma_aem_email.tgz epwnumo_onoma_aem_email Στείλτε email στη διεύθυνση ce120lab@gmail.com και ένα αντίγραφο (CC) στον εαυτό σας µε θέµα (subject) "CE120 hw2 tmimax " (όπου Χ είναι ο αριθµός του τµήµατος σας, δηλαδή 1-5) και επικολληµένο αρχείο το epwnumo_onoma_aem_email.tgz Όταν έρθει το αντίγραφο που στείλατε στον εαυτό σας, επιβεβαιώστε οτι περιέχει το σωστό αρχείο και ότι το αρχείο περιέχει τον κώδικά σας. Αν έχει γίνει κάποιο λάθος µπορείτε να ξαναστείλετε την άσκηση, εφόσον δεν έχει περάσει η προθεσµία.

Παράρτηµα Α: Ανακατεύθυνση στο Linux Μέχρι στιγµής, έχετε δεί πως να γράφετε ένα πρόγραµµα που διαβάζει από το πληκτρολόγιο και γράφει στην οθόνη. Αυτό που συµβαίνει στην πραγµατικότητα είναι ότι το πρόγραµµα διαβάζει από το λεγόµενο standard input (stdin, προκαθορισµένη είσοδος) και γράφει στο λεγόµενο standard output (stdout, προκαθορισµένη έξοδος). Τυπικά, το standard input είναι συνδεδεµένο µε το πληκτρολόγιο και το standard output µε την οθόνη. Στην πρώτη άσκηση του σηµερινού εργαστηρίου θέλουµε να διαβάσουµε από το πληκτρολόγιο 120 αριθµούς. Αυτό είναι αρκετά µεγάλο νούµερο - θα ήταν πιο πρακτικό αν είχαµε αυτούς τους αριθµούς σε ένα αρχείο και διαβάζαµε από το αρχείο. Το Linux µας επιτρέπει να επιτύχουµε κάτι τέτοιο µε την "ανακατεύθυνση". Όταν το πρόγραµµα παράγει έξοδο, µπορούµε να την ανακατευθύνουµε από την οθόνη σε ένα αρχείο. Οµοίως, όταν το πρόγραµµα θέλει να διαβάσει είσοδο, την ανακατευθύνουµε ώστε να γίνεται από αρχείο, αντί από το πληκτρολόγιο. Για να ανακατευθύνουµε την είσοδο χρησιµοποιούµε το ειδικό σύµβολο < Παράδειγµα:./myprogram < input Το πρόγραµµα myprogram παίρνει την είσοδό του από το αρχείο input. Για να ανακατευθύνουµε την έξοδο χρησιµοποιούµε το ειδικό σύµβολο > Παράδειγµα:./myprogram > output Το πρόγραµµα myprogram γράφει την έξοδό του στο αρχείο output. Παράδειγµα:./myprogram < input > output Το πρόγραµµα myprogram παίρνει την είσοδό του από το αρχείο input και γράφει την έξοδό του στο αρχείο output. Γράψτε σε ένα αρχείο µε όνοµα data.c το παρακάτω πρόγραµµα: #include<stdio.h> int main(int argc, char *argv[]) { int i; for (i=0; i<120; i++) { printf( %d\n, i); } return 0; } Κάντε compile κι εκτελέστε το. Θα δείτε να τυπώνει στην οθόνη 120 αριθµούς. Τώρα, εκτελέστε το µε ανακατεύθυνση εξόδου προς ένα αρχείο µε όνοµα data:./data > numbers.txt Δε θα εµφανιστεί τίποτα στην οθόνη, αλλά αν ανοίξετε το numbers.txt θα δείτε µέσα τους 120 ακεραίους.

Παράρτηµα Β: Σύγκριση αρχείων Η εντολή diff του Linux χρησιµοποιείται για να ελέγχουµε αν δυο αρχεία είναι ίδια. Δοκιµάστε τη! Φτιάξτε ένα αντίγραφο του αρχείου data.c από το προηγούµενο παράρτηµα και ονοµάστε το data2.c. Μετά, στη γραµµή εντολής γράψτε: diff -b data.c data2.c Δε θα βγεί τίποτα γιατί τα αρχεία είναι ίδια. Τώρα, κάντε κάποιες αλλαγές στο data2.c και ξαναδοκιµάστε. To diff θα παρουσιάσει όλες τις διαφορές ανάµεσα στα δύο προγράµµατα. Μπορείτε να χρησιµοποιείτε ανακατεύθυνση για να εκτυπώνετε την έξοδο ενός προγράµµατός σας σε αρχείο, να κάνετε το ίδιο και για την έξοδο του εκάστοτε εκτελέσιµου που σας δίνουµε και µετά να χρησιµοποιήσετε diff για να δείτε αν τα αποτελέσµατα είναι ίδια. Με τον ίδιο τρόπο θα ελέγχουµε κι εµείς τα αποτελέσµατα των προγραµµάτων σας όποτε είναι δυνατό. Παράρτηµα C: Μαθηµατική βιβλιοθήκη Αν το πρόγραµµά σας χρησιµοποιεί συναρτήσεις από τη µαθηµατική βιβλιοθήκη (όπως οι sin, cos, round, κτλ), τότε πρέπει να κάνετε δύο πράγµατα για παραχθεί εκτελέσιµο: 1. Να προσθέσετε τη γραµµή #include<math.h> στην αρχή του προγράµµατος. 2. Όταν κάνετε compile να προσθέσετε την επιλογή -lm στο τέλος της εντολής (gcc)