Α. Πρώτη προαπαιτούµενη Κάθε οµάδα θα πρέπει να δηµιουργήσει ένα πρόγραµµα, το οποίο θα περιέχει µια συνάρτηση (όπως ζητείται παρακάτω), η οποία θα καλείται από το κυρίως πρόγραµµα (main). (Προαιρετικά βάλτε χρώµα στα µηνύµατά σας). Α1. H συνάρτηση f(x,y) θα τυπώνει ένα µιγαδικό αριθµό µε µορφή x+yi. Α2. H συνάρτηση θα υπολογίζει τον κύβο ενός αριθµού f(n): n*n*n. Α3. H συνάρτηση f(a,b) θα αποφασίζει αν ο αριθµός a είναι µικρότερος από τον αριθµό b. Α4. H συνάρτηση f(a,b) θα υπολογίζει τον µεγαλύτερο από δυο αριθµούς. Α5. H συνάρτηση θα υπολογίζει το γινόµενο δυο αριθµών f(x,y): x*y. Α6. H συνάρτηση f(x,y) θα αποφασίζει αν ο αριθµός x είναι πολλαπλάσιο του y. Α7. H συνάρτηση θα υπολογίζει την υποτείνουσα ενός τριγώνου f(x,y): sqrt(x 2 +y 2 ). Α8. H συνάρτηση f(x) θα αποφασίζει αν ο αριθµός x είναι πρώτος αριθµός (είναι µεγαλύτερος του 1 και έχει την ιδιότητα οι µόνοι φυσικοί διαιρέτες του να είναι το 1 και ο εαυτός του). Π.χ. πρώτοι αριθµοί είναι 2, 3, 5, 7, 11, 13, 17, 19. Α9. H συνάρτηση f(x) θα αποφασίζει αν ένας αριθµός x είναι ο τέλειος αριθµός (το άθροισµα των θετικών διαιρέτων του -εκτός του αριθµού x- είναι ίσο µε τον αριθµό ). Π.χ. ο αριθµός 6 είναι τέλειος αριθµός γιατί 6 = 1 + 2 + 3. (τέλειοι 6, 28, 496, 8128..) Α10. H συνάρτηση f(x,y) θα υπολογίζει τον MΚ δυο αριθµών (ο µέγιστος κοινός διαιρέτης δυο αριθµών είναι ο µεγαλύτερος κοινός ακέραιος που διαιρεί ταυτόχρονα και το x και το y. Π.χ. αν x=150 και y=350 MK (150,350)=50 (* ο ΜΚ µπορεί να υπολογιστεί αναδροµικά µε τον αλγόριθµο του Ευκλείδη: ΜΚ (x,y)=x αν y=0, αλλιώς MΚ (x,y)=μκ (y, x%y). ) Β. εύτερη προαπαιτούµενη Κάθε οµάδα θα πρέπει να δηµιουργήσει µε έναν editor (π.χ. notepad) ένα αρχείο, που περιέχει µια σειρά αριθµών (όπως ζητείται παρακάτω), και αφού διαβάσει το αρχείο θα τυπώνει µήνυµα για την εγκυρότητα της σειράς (εκτός Β4,Β5,Β6 που θα τυπώνουν απλό µήνυµα). Σε όλες τις σειρές ο τελευταίος αριθµός 99999 δεν ανήκει στην σειρά, αλλά δηλώνει το τέλος της ανάγνωσης. (Προαιρετικά βάλτε χρώµα στα µηνύµατά σας). B1. Σειρά : 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός π.χ. το 53 να ελέγχεται αν είναι περιττός (µονός). Αν όλοι είναι περιττοί τυπώστε µήνυµα ότι η σειρά είναι έγκυρη. B2. Σειρά : 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός π.χ. το 22 να ελέγχεται αν είναι άρτιος (ζυγός). Αν είναι όλοι ζυγοί τυπώστε µήνυµα ότι η σειρά είναι έγκυρη. B3. Σειρά : 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός π.χ. το 27 να ελέγχεται αν είναι πολλαπλάσιο του 3. Αν είναι όλοι τυπώστε µήνυµα ότι η σειρά είναι έγκυρη. B4. Σειρά: 24778 5723 14522 5849 16756 29869 31768 5125 19810 15060 3860 16640 20963 21295 3164 99999. Να βρεθεί και να τυπωθεί ο µικρότερος αριθµός της σειράς. B5. Σειρά: 26962 24464 5705 28145 23281 16827 9961 491 2995 11942 4827 5436 32391 14604 BK -Προαπαιτούμενες Ασκήσεις 3ου Εργαστηρίου - σελίs 1
3902 153 292 12382 17421 99999. Να βρεθεί και να τυπωθεί ο µεγαλύτερος της σειράς. B6. Σειρά: 95 4 1 12 19 14 11 190 157 2 12 6 16 177 19 10 360 7 8 114 3 6 17 16 11 4 129 3 5 13 9 17 87 99999. Να βρεθεί και να τυπωθεί το άθροισµα της σειράς. B7. Σειρά: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός π.χ. το 41 να ελέγχεται αν είναι πρώτος αριθµός. Αν είναι όλοι τυπώστε µήνυµα ότι η σειρά είναι έγκυρη. B8. Σειρά: 153 370 371 407 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός π.χ. το 370 να τον συγκρίνετε µε το άθροισµα των κύβων των τριών ψηφίων του π.χ. 3 3 +7 3 +0 3. Αν όλοι οι αριθµοί έχουν αυτή την ιδιότητα τυπώστε µήνυµα ότι είναι έγκυρη σειρά Amstrong. B9. Σειρά: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 99999. Όταν θα διαβάζεται ένας οποιοσδήποτε αριθµός (εκτός από τους 2 πρώτους) π.χ. το 610 να τον συγκρίνετε µε το άθροισµα των 2 προηγούµενων αναγνωσθέντων αριθµών π.χ 233+377. Αν οι αριθµοί έχουν αυτή την ιδιότητα τυπώστε µήνυµα ότι είναι έγκυρη σειρά Fibonacci. B10. Σειρά:1 0 0 0 1 1 0 1 0 1 1 0 2 0 1 1 0 3 0 1 1 0 4 0 1 1 0 5 0 1 1 0 6 0 1 1 0 7 0 1 1 0 8 0 1 1 0 9 0 1 1 1 0 1 1 99999. Όταν θα διαβάζεται σειριακά πέντε συνεχόµενους αριθµούς π.χ. 1 0 0 01 θα ελέγχεται αν είναι παλίνδροµος αριθµός δηλ. αν διαβάζεται και ανάποδα. Αν όλες οι σειριακές πεντάδες είναι παλίνδροµοι αριθµοί τυπώστε µήνυµα ότι η σειρά είναι έγκυρη. Γ. Τρίτη προαπαιτούµενη Κάθε οµάδα θα πρέπει να δηµιουργήσει ένα πρόγραµµα, το οποίο θα καθορίζει µια δοµή -µε µεταβλητές µέλη (ή/και συναρτήσεις µέλη) της δοµής ελεύθερης επιλογής, η οποία θα χρησιµοποιείται στο κυρίως πρόγραµµα (main). (Προαιρετικά βάλτε χρώµα στα µηνύµατά σας) Γ1. οµή χρήµατα µε 2 πεδία: ευρώ και λεφτά. Γ2. οµή προϊόν µε 2 πεδία: βάρος και τιµή Γ3. οµή σηµείο µε 2 πεδία: συντεταγµένες x και y Γ4. οµή µιγαδικός µε 2 πεδία: πραγµατικό και φανταστικό µέρος Γ5. οµή κάρτα µε 3 πεδία: αριθµός, χρώµα, είδος(κούπα,καρό,µπαστούνια,σπαθιά) Γ6. οµή ηµεροµηνία µε 3 πεδία: χρόνος, µήνας, ηµέρα. Γ7. οµή άτοµο µε 4 πεδία: όνοµα, ταυτότητα, ηλικία, βάρος Γ8. οµή υπάλληλος µε 4 πεδία: αριθµός υπαλλήλου,ηλικία,φύλο,µισθός Γ9. οµή διεύθυνση µε 6 πεδία: όνοµα, οδός, αριθµός,πόλη, κωδικός,χώρα Γ10. οµή σπουδαστής µε 6 πεδία: ΑΜ,επώνυµο,όνοµα,ηλικία,τµήµα,εξάµηνο Σηµείωση: Xρήση Συναρτήσεων επιτρεπτή ΟΧΙ ΧΡΗΣΗ ΠΙΝΑΚΩΝ BK -Προαπαιτούμενες Ασκήσεις 3ου Εργαστηρίου - σελίs 2
ΣΥΝΑΡΤΗΣΕΙΣ Κατεβάστε τα δυο αρχεία "gconsole.h" και "gconsole.cpp» από το 3 ο εργαστήριο και σώστε τα στο directory που θα δουλέψετε 07colorcall.cpp // Kλήση συναρτήσεων //BK 16/03/10-07colorcall - Kλήση συναρτήσεων από το αρχείο gconsole - enum #include "gconsole.h" //Τα 2 αρχεία "gconsole.h" & "gconsole.cpp" πρέπει //να είναι στο ίδιο directory µε το αρχείο σας εδώ το 07colorcall //Κλήση συνάρτησης χωρίς παραµέτρους cout << "Using the function init_graphics to initialize the graphics...\n\n"; set_color(cred, cblack); //Κλήση συνάρτησης µε 2 παραµέτρους cout << "Use the function set_color to write RED...\n\n"; cout << "Look at file gconsole.h...there are some declarations.. \n"; cout << "A list of colors is found in enum color e.g. cblack, cdark_blue,...\n\n"; set_color(cgreen); //Κλήση συνάρτησης µε 1 παράµετρο, η 2 η παίρνει cblack cout << "change color to GREEN and make our function...\n"; int fonoma(int x) return x * x; int main () cout << fonoma(3); return 0; Η συνάρτηση που θα δηµιουργήσετε θα είναι ή πριν την main() ή µετά την main() αλλά θα έχει δηλωθεί πριν int fonoma(int x); int main () cout << fonoma(3); return 0; int fonoma(int x) return x * x; BK -Προαπαιτούμενες Ασκήσεις 3ου Εργαστηρίου - σελίs 3
ΣΥΝΑΡΤΗΣΕΙΣ ηµιουργία και κλήση Απαιτούνται τα δυο αρχεία "gconsole.h" και "gconsole.cpp» από το 3 ο εργαστήριο 08Funcpollaplasio.cpp // Function call by value //BK 16/03/10-08funcpoll - ηµιουργία και κλήση συνάρτησης pollaplasio. #include "gconsole.h" int pollaplasia (int number,int other=1) //Πολλαπλάσιο ενός αριθµού λέγεται ο αριθµός που προκύπτει, όταν τον πολλαπλασιάσω //µε έναν άλλο αριθµό: pollaplasio = number * other int result=0; //αν θέλουµε να δούµε όλα τα πολλαπλάσια του number από το 0 έως other for (int i = 0; i <= other; i++) result = i * number ; cout << result << " "; cout << ") ===> "; return result; //return (number * other);//αν ήθελα µόνο το other pollaplasio του number set_color(cgreen, cblack); cout << "\nto POLLAPLASIO TOY 2 EPI 1 EINAI: (" ; cout << pollaplasio (2);//Κλήση συνάρτησης µε την 1η παράµετρο, η 2η παίρνει το 1. cout << "\nto POLLAPLASIO TOY 2 EPI 3 EINAI: (" ; cout << pollaplasio (2,3); //Κλήση συνάρτησης µε 2 παραµέτρους int x = 16 ; int p; cout << "\nto POLLAPLASIO TOY 2 EPI 16 EINAI: (" ; p = pollaplasio (2,x); cout << p; cout <<endl; BK -Προαπαιτούμενες Ασκήσεις 3ου Εργαστηρίου - σελίs 4
ΟΜΕΣ ηµιουργία και χρήση Απαιτούνται τα δυο αρχεία "gconsole.h" και "gconsole.cpp» από το 3 ο εργαστήριο 09Structmathitis.cpp // οµή όλες οι µεταβλητές και οι συναρτήσεις µέλη της δοµής είναι προσπελάσιµες στην main µε την τελεία π.χ. Μ1.AM //BK 16/03/10-09structmath - ηµιουργία και χρήση δοµής #include "gconsole.h" struct mathitis int AM; char onoma[20]; int vathmos; ; void perase() if (vathmos>5) cout << " PERASE\n" ; else cout << " APETYXE\n"; set_color(cred, cwhite); mathitis M1 ; mathitis M2 = 1204,"GIORGOS PANTAS",8; M1.AM=73421; M1.vathmos=3; cout << "O FOITHTHS ME AM: " << M1.AM ; M1.perase(); BK -Προαπαιτούμενες Ασκήσεις 3ου Εργαστηρίου - σελίs 5