Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος συναρτήσεων εισόδου/εξόδου που µπορώ να χρησιµοποιήσω στο πρόγραµµα µου. Το βάζω σε κάθε πρόγραµµα για να µπορώ να χρησιµοποιήσω τις εντολές printf (συνάρτηση εξόδου εξάγει δεδοµένα στην οθόνη) και scanf (συνάρτηση εισόδου εισάγει δεδοµένα από το πληκτρολόγιο). Τµήµα Β Εδώ ορίζω µε define τις σταθερές στο πρόγραµµα µου.τις γράφω µε κεφαλαία γράµµατα και τις δίνω κάποια τιµή η οποία παραµένει σταθερή σε όλο το πρόγραµµα σε αντίθεση µε τις µεταβλητές.έτσι όπου συναντώ την σταθερά πχ N θα είναι σαν να έχω την αριθµητική τιµή 10 στο πρόγραµµα µου.χρησιµεύει κυρίως στoυς πίνακες. 1
Γράφω στις δηλώσεις µέσα στις συναρτήσεις: int pinakas[n]; αντί για int pinakas[10]; Αν θέλω να αλλάξω το µέγεθος του πίνακα απλά αλλάζω την Ν διαφορετικά θα έπρεπε να αλλάξω το µέγεθος του πίνακα σε κάθε εντολή του προγράµµατος όπου αυτό εµφανίζεται. Τµήµα Γ Εδώ δηλώνω τις δευτερέουσες συναρτήσεις του προγράµµατος.ουσιαστικά γράφουµε κάποιες νέες εντολές για να τις χρησιµοποιήσουµε στην κυρίως συνάρτηση του προγράµµατος. Βάζω τις δηλώσεις πάνω από την κύρια συνάρτηση του προγράµµατος ώστε αυτή να τις «βλέπει» και να µπορεί να τις χρησιµοποιήσει. Ορισµός Συνάρτησης Η συνάρτηση παίρνει ως είσοδο έναν αριθµό δεδοµένων εκτελεί κάποιες εντολές σε αυτά τα δεδοµένα και επιστρέφει ένα µόνο δεδοµένο ή κανένα ως αποτέλεσµα.οι συναρτήσεις µπορούν να πάρουν έναν οποιοδήποτε αριθµό ορισµάτων εισόδου αλλά επιστρέφουν πάντα µόνο ένα ή κανένα δεδοµένο εξόδου. Συνάρτηση που παίρνει δύο ορίσµατα εισόδου που δεν επιστρέφει κάποια τιµή Συνάρτηση που παίρνει δύο ορίσµατα εισόδου και που επιστρέφει κάποια τιµή Συνάρτηση που δεν παίρνει ορίσµατα εισόδου και δεν επιστρέφει τιµή 2
Συνάρτηση που παίρνει τρία ορίσµατα εισόδου και που επιστρέφει κάποια τιµή ύο είδη συναρτήσεων 1) Αυτές που επιστρέφουν κάποια τιµή Πχ int function_1(int orisma1,int orisma2) Αυτές εκτελούν κάποιες εντολές και στο τέλος της συνάρτησης περιέχουν µία εντολή return η οποία επιστρέφει κάποια τιµή. Η παραπάνω συνάρτηση επιστρέφει έναν ακέραιο αριθµό. Πχ προσθέτω δύο αριθµούς και επιστρέφω το άθροισµα αυτών 2) Αυτές που δεν επιστρέφουν κάποια τιµή Πχ void function_1(int orisma1,int orisma2) Πχ η printf Η παραπάνω συνάρτηση δεν επιστρέφει κάποια τιµή και δηλώνεται ως void το όρισµα εξόδου. Αυτές δεν περιέχουν return στο τέλος της συνάρτησης. Μέρη συνάρτησης 1. Τµήµα Α δηλώσεις των µεταβλητών Εδώ δηλώνω όλες τις µεταβλητές που θα χρησιµοποιήσω στην συνάρτηση. Πχ int x; int pinakas[n]; Εδώ προσέχω να µην δώσω το ίδιο όνοµα µε κάποια από τα ορίσµατα της συνάρτησης. Πχ αν έχω int athroisma(int x,int y) εν θα βάλω στο τµήµα Α την δήλωση int x; Τύποι της C Τύπος εδοµένου ήλωση Ακέραιος int x; Πραγµατικός float x; Χαρακτήρας char x; Πίνακας Ν ακεραίων int pinakas[n]; Πίνακας Ν πραγµατικών float pinakas[n]; Πίνακας Ν χαρακτήρων char pinakas[n]; 2. Τµήµα Β οι εντολές της συνάρτησης 3
Εντολή Μορφή Παρατηρήσεις Ανάθεσης x=10; Βάζω ερωτηµατικό στο τέλος.το ένα ίσον δίνει τιµή δεν συγκρίνει τιµές.συγκρίνω τιµές µε δύο ίσον.πχ (χ==10) Κλήση συνάρτησης που δεν επιστρέφει όρισµα Κλήση συνάρτησης που επιστρέφει όρισµα printf( Tei Dytikhs Makedonias ); sum=athroisma(1,1); Βάζω ερωτηµατικό στο τέλος. Βάζω ερωτηµατικό στο τέλος. Γράφω το αποτέλεσµα που επιστρέφει η συνάρτηση σε µία µεταβλητή την οποία πρέπει να ορίσω στο τµήµα Α των δηλώσεων του κυρίως προγράµµατος. If If ( συνθήκη ) (όχι ερωτηµατικό εδώ) { // == Αρχή Τµήµα True Συνθήκης== εντολές για συνθήκη True }// == Τέλος Τµήµα True Συνθήκης== else {// == Αρχή Τµήµα False Συνθήκης== εντολές για συνθήκη False }// == Τέλος Τµήµα False Συνθήκης== εν βάζω ερωτηµατικό στο τέλος. Η συνθήκη εντός της παρένθεσης. εν βάζω then. Αν ισχύει η συνθήκη εκτέλεσε το τµήµα true διαφορετικά εκτέλεσε το τµήµα false For for( i=0 ; i<10 ; i++) (όχι ερωτηµατικό εδώ) {// == Αρχή εντολών του σώµατος της for Εντολές του σώµατος της for }// == Τέλος εντολών του σώµατος της for Αποτελείται από 3 µέρη. εν βάζω ερωτηµατικό στο τέλος. Όλα τα µέρη της for εντός της παρένθεσης. Το i είναι ένας µετρητής των φορών που εκτελέστηκε η for. Πρέπει να δηλωθεί στο τµήµα Α δηλώσεων της 4
1)Μέρος Α Αρχικοποίηση του µετρητή for(i=0;i<10;i++) Ξεκινάω τον µετρητή από την τιµή 0. Μπορώ να ξεκινήσω τον µετρητή από οποιαδήποτε τιµή θέλω: Πχ for(i=5;i<10;i++) 2) Μέρος Β Συνθήκη for(i=0;i<10;i++) Πόσες φορές θα εκτελεστεί το σώµα της for Θα εκτελείται όσο ο µετρητής είναι µικρότερος του 10. 3) Μέρος Γ Αυξηση του µετρητή µετά από κάθε εκτέλεση του σώµατος της for for(i=0;i<10;i++) Εδώ λέµε πόσο θα αυξάνεται ο µετρητής µετά από κάθε εκτέλεση της for. Το i++ ισοδύναµεί µε i=i+1 Μπορώ να βάλω οποιαδήποτε αύξηση επιθυµώ: πχ for(i=0;i<10;i=i+2) συνάρτησης. Βάζω ερωτηµατικά µεταξύ των 3 τµηµάτων της for όχι κόµµα. Ο µετρητής µπορεί να µειώνεται αντί για να αυξάνεται Πχ for( i=9; i > =0; i--) Ο µετρητής αρχίζει από την τιµή 9 και σε κάθε εκτέλεση της for µειώνεται κατά 1 µέχρι ο δείκτης να γίνει µικρότερος του 0. While While (συνθήκη) (όχι ερωτηµατικό εδώ) {// == Αρχή εντολών του σώµατος της while Εντολές του σώµατος της while εν βάζω ερωτηµατικό στο τέλος. Η συνθήκη εντός της παρένθεσης }// == Τέλος εντολών του σώµατος της while Όσο ισχύει η συνθήκη εκτέλεσε το σώµα της while. Τελεστές Σύγκρισης Μορφή Ίσον Χ = = Τιµή (δύο ίσον χωρίς κενά µεταξύ τους) ιάφορο X!= Τιµή Μεγαλύτερο/Μικρότερο > / < Μεγαλύτερο ίσον >= Μικρότερο ίσον <= Σύνθετες συνθήκες Μορφή And ( (συνθήκη1) && (συνθήκη2) ) Or ( (συνθήκη1) (συνθήκη2) ) 5
Συναρτήσεις εισόδου/εξόδου Παρατηρήσεις printf( Tei Dytikhs Makedonias ); Τυπώνει Tei Dytikhs Makedonias printf( %d,x ); Τυπώνει τον ακέραιο x.βάζω %d µέσα στις παρενθέσεις στην θέση που θέλω να τυπώσω τον αριθµό.στο πρώτο %d που βρίσκει τυπώνει τον πρώτο ακέραιο που βρίσκει µετά το κόµµα.αν δεν έχουµε δώσει τιµή από πριν πχ µε x=10; εκτυπώνει ένα τυχαίο αρνητικό αριθµό.για πραγµατικό x θα έβαζα %f και για χαρακτήρα %c. εν βάζω & πριν την µεταβλητή. scanf( %d, &x ); Εισάγει έναν αριθµό από το πληκτρολόγιο και τον βάζει στην µεταβλητή x. Βάζω πάντα το & πριν την µεταβλητή. Οδηγίες προγραµµατισµού συναρτήσεων εν βάζω ερωτηµατικό στο τέλος του ονόµατος της συνάρτησης κατά τον ορισµό αυτής στο τµήµα Γ του προγράµµατος. Βάζω τo αριστερό άγκιστρο { στην αρχή και δεξιό στο τέλος } int function(int orisma1,int orisma2) (όχι ερωτηµατικό εδώ) { Αρχή Κώδικα Συνάρτησησης } Τέλος Κώδικα Συνάρτησησης Πάντα τα άγκιστρα να είναι σε ζευγάρια και στην ίδια στήλη. { <-- Ίδια στήλη }<-- Ίδια στήλη Οι εντολές της συνάρτησης να αρχίζουν κατά ένα tab πιο δεξιά από τα άγκιστρα και κάτω από το αριστερό άγκιστρο και να είναι στοιχισµένες µεταξύ τους. { } Εντολή 1; Εντολή 2; Αντίστοιχα εφαρµοζω για τα άγκιστρα των for,if,while If ( συνθήκη) { Εντολή 1; Εντολή 2; 6
} else { } Εντολή 1; Εντολή 2; Τµήµα Εδώ ορίζω την κύρια συνάρτηση του προγράµµατος.από εδω ξεκινάει η εκτέλεση του προγράµµατος.πρέπει να την βάλω σε κάθε πρόγραµµα C και µόνο µία φορά. Γράφεται ακριβώς όπως οι δευτερέουσες συναρτήσεις µόνο που δεν παίρνει ορισµατα εισόδου και δεν επιστρέφει έξοδο. Παράδειγµα 1 Ένα πρόγραµµα που ζητάει από τον χρήστη να εισάγει δύο ακέραιους αριθµούς και καλεί µία συνάρτηση αθροίσµατος για να τους προσθέσει και µετά εµφανίζει στην οθόνη το άθροισµα τους. 7
8
Παράδειγµα 2 Ένα πρόγραµµα που ζητάει από τον χρήστη να εισάγει ένα ακέραιο αριθµό και καλεί µία συνάρτηση για να τυπώσει αυτόν στην οθόνη. 9
Ασκήσεις 1. Να προσθέσετε στο τµήµα Γ του προγράµµατος 1 δύο επιπλέον συναρτήσεις που να υπολογίζουν την διαφορά και το γινόµενο δύο αριθµών.αφού γίνει αυτό να προσθέσετε κώδικα στην κύρια συνάρτηση του προγράµµατος που να καλεί αυτές τις δύο συναρτήσεις και να τυπώνει στην οθόνη την διαφορά και το γινόµενο των δύο αριθµών. Συµπληρώστε τον κώδικα µέσα στις συναρτήσεις: 10
2. Να προσθέσετε στο τµήµα Γ του προγράµµατος 2 µία επιπλέον συνάρτηση η οποία να τυπώνει στην οθόνη έναν ακέραιο αριθµό µόνο του και να αλλάζει γραµµή αφού τον τυπώσει.να την χρησιµοποιήσετε στην κύρια συνάρτηση για να τυπώσετε τους αριθµούς από το 5 εώς το 9 µε χρήση της for. Χρησιµοποιήστε το παρακάτω πρόγραµµα ως πρότυπο που τυπώνει τους αριθµούς από το 1 εως το 10. 11
12