ΕΡΓΑΣΤΗΡΙΟ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Στόχοι Δοµές ελέγχου (συνθήκες, επαναλήψεις) Πριν ξεκινήσετε Βήµα 1: Πηγαίνετε στο φάκελο ce120 και κατασκευάστε µέσα σε αυτόν ένα φάκελο µε όνοµα lab4. Μέσα σε αυτό το φάκελο θα αποθηκεύσετε τις απαντήσεις σας για το σηµερινό εργαστήριο. Βήµα 2: Ανοίξτε το Kate. Αν δεν έχετε κάνει τις ρυθµίσεις για τη στοίχιση, κάντε τις τώρα. Οδηγίες εδώ. Βήµα 3: Κάντε τις ασκήσεις της εβδοµάδας. Σας θυµίζουµε πως η εντολή για να κάνετε compile ένα αρχείο µε όνοµα lab4.c είναι : gcc -g -Wall lab4.c -o lab4 και αν δεν υπάρχουν λάθη, θα δηµιουργηθεί το εκτελέσιµο αρχείο lab4 το οποίο µπορείτε να τρέξετε γράφοντας./lab4 1
Άσκηση 1 Το πρόγραµµα που θα γράψετε για την άσκηση 1 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab4a.c µέσα στο φάκελο lab4. Διαβάστε όλη την εκφώνηση της άσκησης πριν αρχίσετε να γράφετε κώδικα! Σε αυτή την άσκηση θα γράψετε ένα πρόγραµµα το οποίο διαβάζει τους βαθµούς των φοιτητών µιας τάξης και υπολογίζει στατιστικά στοιχεία. Το πρόγραµµα λειτουργεί ως εξής: 1. Εκτυπώνει την ερώτηση: How many students? 2. Διαβάζει από το πληκτρολόγιο την επιλογή του χρήστη. Μια τάξη µπορεί να έχει το πολύ 200 φοιτητές, οπότε αν ο χρήστης δώσει µεγαλύτερο νούµερο ή µη θετικό, τότε η ερώτηση επαναλαµβάνεται. 3. Για κάθε ένα φοιτητή το πρόγραµµα εκτυπώνει το µήνυµα Enter grade (A-B-C-F): και διαβάζει ένα βαθµό. Δυνατοί βαθµοί είναι A, B, C ή F. Αν δοθεί οποιοσδήποτε άλλος βαθµός τότε επαναλαµβάνεται το µήνυµα και γίνεται εισαγωγή νέου βαθµού. Ανάλογα µε το τι δόθηκε αυξάνεται το πλήθος των αντίστοιχων βαθµών. 4. Στο τέλος, το πρόγραµµα εκτυπώνει τα παρακάτω µηνύµατα: Failed: V Passed : W As: X, Bs: Y, Cs: Z όπου V το πλήθος των φοιτητών που απέτυχαν (πήραν F), W το πλήθος των φοιτητών που πέρασαν (πήραν Α, Β ή C), Χ το πλήθος των Α Υ το πλήθος των Β Ζ το πλήθος των C Μπορείτε να χρησιµοποιήσετε το \t στην printf για να εµφανιστεί το tab στην τελευταία γραµµή. 2
Άσκηση 2 Στην άσκηση 2 θα γράψετε µια παραλλαγή της άσκησης 1. Προτείνουµε να κατασκευάσετε ένα αντίγραφο του αρχείου lab4a.c και να το ονοµάσετε lab4b.c. Προσοχή! Γράψτε το νέο κώδικα στο lab4b.c και βεβαιωθείτε ότι βρίσκεται αποθηκευµένο στο φάκελο lab4. Διαβάστε όλη την εκφώνηση της άσκησης πριν αρχίσετε να γράφετε κώδικα! Σε αυτή την άσκηση θα κάνετε την εισαγωγή δεδοµένων πιο ευέλικτη, θα αλλάξετε τη λειτουργία του προγράµµατος στην περίπτωση που δόθηκε λάθος βαθµός και θα υπολογίσετε επιπλέον στατιστικά. Το νέο σας πρόγραµµα πρέπει να µπορεί να δεχτεί τους βαθµούς είτε µε µικρά είτε µε κεφαλαία γράµµατα. Επιπλέον, αν δοθεί λάθος βαθµός, τότε το πρόγραµµα πρέπει να εκτυπώνει το µήνυµα Invalid grade πριν επαναλάβει την εκτύπωση του µηνύµατος Enter grade... και την εισαγωγή του βαθµού. Στο τέλος του προγράµµατος πρέπει να εκτυπώνεται ΚΑΙ το παρακάτω µήνυµα: Success rate: S% όπου S το ποσοστό επιτυχίας των φοιτητών γραµµένο µε δύο δεκαδικά ψηφία. Για παράδειγµα, αν έδωσαν το µάθηµα 50 φοιτητές και 35 από αυτούς πήραν A, B ή C τότε το ποσοστό επιτυχίας είναι 70.00% HINT: Σας συµφέρει να χρησιµοποιήσετε while και όχι for ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΑΠΟΣΤΟΛΗ ΤΩΝ ΑΣΚΗΣΕΩΝ ΒΡΙΣΚΟΝΤΑΙ ΣΤΟ ΤΕΛΟΣ ΤΟΥ ΦΥΛΛΑΔΙΟΥ Συµπληρωµατικές ασκήσεις Εάν έχετε χρόνο, κάντε και τις παρακάτω ασκήσεις. Αν δεν έχετε χρόνο να τις κάνετε στο εργαστήριο, τότε προχωρήστε στην ενότητα "Αποστολή ασκήσεων". 3
Άσκηση 3 Το πρόγραµµα που θα γράψετε για την άσκηση 3 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab4c.c µέσα στο φάκελο lab4. Γράψτε ένα πρόγραµµα το οποίο διαβάζει από το πληκτρολόγιο ένα θετικό ακέραιο και "ζωγραφίζει" στην οθόνη µια σκακιέρα από αστεράκια, µεγέθους όσο ο ακέραιος. Για παράδειγµα, αν δοθεί 4, τότε το πρόγραµµα πρέπει να εµφανίζει στην οθόνη το σχήµα: Άσκηση 4 Το πρόγραµµα που θα γράψετε για την άσκηση 3 πρέπει να το αποθηκεύσετε σε αρχείο µε όνοµα lab4d.c µέσα στο φάκελο lab4. Γράψτε ένα πρόγραµµα το οποίο διαβάζει από το πληκτρολόγιο ένα θετικό ακέραιο και "ζωγραφίζει" στην οθόνη ένα σχήµα σαν το παρακάτω, όπου στην πρώτη γραµµή βρίσκεται ένα αστεράκι και σε κάθε επόµενη γραµµή ένα αστεράκι περισσότερο από την προηγούµενη, µέχρις ότου σχεδιαστούν τόσα όσο είναι ο ακέραιος. Για παράδειγµα, αν δοθεί 4, τότε το πρόγραµµα πρέπει να εµφανίζει στην οθόνη το σχήµα: * ** *** **** 4
Αποστολή του προγράµµατος για διόρθωση και σχολιασµό Η αποστολή γίνεται από τον οδηγό. Για να στείλετε το πρόγραµµά σας για βαθµολόγηση, ανοίξτε ένα τερµατικό (ή χρησιµοποιήστε αυτό του Kate), πηγαίνετε στο φάκελο lab4, και χρησιµοποιήστε την εντολή mkdir για να κατασκευάσετε ένα νέο φάκελο µε βάση τα ονόµατα των δύο µελών της οµάδας. Για την ακρίβεια, το όνοµα του φακέλου πρέπει να είναι (µε λατινικούς χαρακτήρες) : επώνυµο1_am1_επώνυµο2_αμ2 Για παράδειγµα, mkdir doufexi_1234_antonopoulos_5678 ΑΜ είναι ο τετραψήφιος αριθµός µητρώου σας. Αντιγράψτε το lab4a.c µέσα στο νέο φάκελο (cp lab4a.c doufexi_1234_antonopoulos_5678) Αντιγράψτε το lab4b.c µέσα στο νέο φάκελο (cp lab4b.c doufexi_1234_antonopoulos_5678) Τέλος πακετάρετε και συµπιέστε το φάκελο µε το πρόγραµµά σας. Η εντολή είναι tar czvf επώνυµο1_αμ1_επώνυµο2_αμ2.tgz επώνυµο1_αμ1_επώνυµο2_αμ2 Θα πρέπει να δηµιουργηθεί το αρχείο µε όνοµα επώνυµο1_αμ1_επώνυµο2_αμ2.tgz Αν εµφανιστεί κάποιο µήνυµα λάθους, ζητήστε βοήθεια! Στείλτε ένα email στη διεύθυνση: ce120lab@gmail.com CC στον πλοηγό, µε τίτλο (subject): CE120 lab4 συνηµµένο (attached) το αρχείο: επώνυµο1_αμ1_επώνυµο2_αμ2.tgz Αφού στείλετε το email, επιβεβαιώστε ότι είχε σωστό attachment κι ότι έλαβε αντίγραφο και ο πλοηγός. Ο πλοηγός µπορεί να ξεπακετάρει το tgz αρχείο στο δικό του υπολογιστή από τερµατικό, µε την εντολή tar xzf επώνυµο1_αμ1_επώνυµο2_αμ2.tgz 5