Προγράμματα Σπουδών Αρχικής Επαγγελματικής Κατάρτισης (ΟΑΕΔ) του Τομέα Πληροφορικής Τηλεπικοινωνιών Δικτύων ΤΜΗΜΑ Τεχνικών Εφαρμογών Πληροφορικής

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προγράμματα Σπουδών Αρχικής Επαγγελματικής Κατάρτισης (ΟΑΕΔ) του Τομέα Πληροφορικής Τηλεπικοινωνιών Δικτύων ΤΜΗΜΑ Τεχνικών Εφαρμογών Πληροφορικής"

Transcript

1 Προγράμματα Σπουδών Αρχικής Επαγγελματικής Κατάρτισης (ΟΑΕΔ) του Τομέα Πληροφορικής Τηλεπικοινωνιών Δικτύων ΤΜΗΜΑ Τεχνικών Εφαρμογών Πληροφορικής Δικτύων & Αυτοματισμού Γραφείου

2 Προγραμματισμός Ο προγραμματισμός είναι η ανάπτυξη αλγορίθμων και η υλοποίηση τους σε γλώσσες προγραμματισμού για την επίλυση προβλημάτων. Τα βήματα που ακολουθούμε είναι: Ορισμός προβλήματος Ανάλυση προβλήματος Δεδομένα, αποτελέσματα, εξαγόμενα Τι πρέπει να γίνει Υλοποίηση αλγόριθμου (γράψιμο προγράμματος) Δοκιμή και επαλήθευση Αποσφαλμάτωση (Debugging) Συντήρηση Διορθωτική Επαυξητική Τελειοποίηση Προσαρμογή Αλγόριθμος Ο αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Διατύπωση της διαδικασίας μετασχηματισμού δεδομένων στα επιθυμητά αποτελέσματα. Σχεδιασμός αλγορίθμου Σταδιακή εκλέπτυνση από πάνω προς τα κάτω Το αρχικό πρόβλημα διασπάται σταδιακά σε απλούστερα προβλήματα Η σταδιακή αυτή διάσπαση συνεχίζεται μέχρις ότου φτάσουμε σε προβλήματα που δεν διασπώνται περαιτέρω Επαλήθευση και αξιολόγηση Γλώσσες προγραμματισμού Γλώσσες χαμηλού επιπέδου (lw level languages) Εξαρτώνται από συγκεκριμένη Κεντρική Μονάδα Επεξεργασίας (CPU) Γλώσσα μηχανής (machine language) -> ακολουθίες αριθμών που δίνουν εντολές απευθείας στη «μηχανή» Συμβολική γλώσσα (assembly language) Χρήση συμβολικών κωδικών που αντιστοιχούν σε εντολές της γλώσσας μηχανής Δύσχρηστη καθώς δεν περιέχει ενσωματωμένες δομές ελέγχου ή λειτουργίες εισόδου / εξόδου Γλώσσες υψηλού επιπέδου (high level languages) Ανεξάρτητες του Η/Υ Παρέχουν διάφορες δομές ελέγχου, λειτουργίες εισόδου / εξόδου Συνδυάζουν αγγλικές λέξεις και «συνηθισμένους» μαθηματικούς τύπους Ευκολότερες και ταχύτερες Γιατί C; Συνδυάζει: δομή μιας γλώσσας υψηλού επιπέδου πληθώρα διαθέσιμων βιβλιοθηκών ισχύ και την αποτελεσματικότητα μιας γλώσσας χαμηλού επιπέδου άμεση πρόσβαση στους πόρους του Η/Υ Σχετικά μικρή κι εύκολή στην εκμάθηση Φορητή, ευέλικτη και με ισχυρές δυνατότητες Ευρύτατα χρησιμοποιούμενη γλώσσα C++ και Java Αναγκαίο εφόδιο για το πέρασμα στον αντικειμενοστραφή προγραμματισμό Ιστορία της C Αναπτύχθηκε από τον Dennis Ritchie από δύο προγενέστερες γλώσσες προγραμματισμού, τις BCPL και B, με χρήση του λειτουργικού συστήματος UNIX. Υπήρχαν διάφορες παραλλαγές της C, μη συμβατές μεταξύ τους. Το 1983 οργανώθηκε μια επιτροπή (ANSI) για την καθιέρωση ενός προτύπου: - 2 -

3 Το πρότυπο τελειοποιήθηκε το 1989 Διατέθηκε στο κοινό το 1990 Προσαρμόστηκε ελαφρά το Φάσεις υλοποίησης ενός προγράμματος C Σύνταξη κώδικα (Edit) Προεπεξεργασία (Preprcess) Μεταγλώττιση (Cmpile) Σύνδεση (Link) Φόρτωση Lad Εκτέλεση (Execute) Ένα απλό πρόγραμμα σε C: Εκτύπωση μηνύματος στην οθόνη Σχόλια Κείμενο που περιέχεται μεταξύ /* και */ (αγνοείται από τον υπολογιστή) Χρησιμοποιούνται για να περιγράψουν το πρόγραμμα /*simple.c A first prgram in C */ /*functin main begins prgram executin*/ int main (vid) printf( "Welcme t C!\n" ); return 0; /*indicate that prgram ended successfully*/ /*end functin main*/ Welcme t C! Ντιρεκτίβα προεπεξεργαστή (Preprcessr directive) Λέει στον προεπεξεργαστή να διαβάσει ένα άλλο αρχείο και να το συμπεριλάβει (include) στο πρόγραμμα Οδηγία προς τον μεταγλωττιστή <stdi.h> επιτρέπει βασικές (standard) λειτουργίες εισόδου/ εξόδου int main (vid) Ένα πρόγραμμα C μπορεί να περιέχει αρκετές συναρτήσεις πρέπει οπωσδήποτε να περιέχει τη main Από τη main ξεκινάει η εκτέλεση του προγράμματος Οι παρενθέσεις χρησιμοποιούνται για να υποδείξουν μια συνάρτηση int σημαίνει ότι η main επιστρέφει" μια τιμή που είναι ακέραιος (integer) vid σημαίνει ότι η main δεν έχει παραμέτρους Οι αγκύλες ( και ) υποδεικνύουν μια ενότητα (blck) Το σώμα όλων των συναρτήσεων πρέπει να περικλείεται σε αγκύλες printf( "Welcme t C!\n" ); Ολόκληρη η γραμμή ονομάζεται εντολή της C Όλες οι εντολές πρέπει να τερματίζουν με ένα χαρακτήρα ελληνικού ερωτηματικού (;) Καλεί μια συνάρτηση της standard βιβλιοθήκης Τυπώνει το αλφαριθμητικό (string) που περιλαμβάνεται μεταξύ των εισαγωγικών (" ") Χαρακτήρας διαφυγής (\) Υποδηλώνει ότι η printf θα πρέπει να κάνει κάτι πέρα από το συνηθισμένο \n χαρακτήρας νέας γραμμής return 0; Λέει στη main να επιστρέψει την τιμή 0-3 -

4 τιμή επιστρέφεται στη διεργασία που κάλεσε τη main συνήθως είναι το λειτουργικό σύστημα Κατά σύμβαση η τιμή 0 σημαίνει ότι το πρόγραμμα τερμάτισε κανονικά return Δεσμευμένη λέξη της C Δεξί άγκιστρο Υποδεικνύει το τέλος του σώματος της main Δεσμευμένες λέξεις ANSI C aut duble int struct break else lng switch case enum register typedef char extern return unin cnst flat shrt unsigned cntinue fr signed vid default gt sizef vlatile d if static while Περιορισμός για μια γλώσσα, αλλά αυξάνουν την αναγνωσιμότητα και αξιοπιστία των προγραμμάτων και επιταχύνουν τη διαδικασία της μεταγλώττισης Πολλές είναι αποδεκτές σε πολλές γλώσσες προγραμματισμού Γενική μορφή προγράμματος στη C εντολές προεπεξεργαστή (#include, #define, ) δηλώσεις μεταβλητών δηλώσεις συναρτήσεων int main (vid) εντολές τύπος επιστρεφόμενης-τιμής f1(λίστα παραμέτρων) τύπος επιστρεφόμενης-τιμής f2 (λίστα παραμέτρων)... τύπος επιστρεφόμενης-τιμής fν (λίστα παραμέτρων) Μεταβλητές Μια μεταβλητή αντιστοιχεί σε μια θέση της μνήμης που έχει το όνομα της μεταβλητής Κάθε μεταβλητή όνομα (αναγνωριστικό) τύπος μέγεθος τιμή Κανόνες ονόματος ή αναγνωριστικού Πρέπει να αρχίζει υποχρεωτικά με γράμμα ή με _ Μπορεί να περιέχει γράμματα, αριθμούς και χαρακτήρες υπογράμμισης (_) Δεν μπορεί να είναι δεσμευμένη λέξη Μικροί και κεφαλαίοι χαρακτήρες θεωρούνται διαφορετικοί π.χ. cunt και COUNT θεωρούνται διαφορετικές μεταβλητές Η δήλωση μιας μεταβλητής λέει στον μεταγλωττιστή τον τύπο των δεδομένων που χρησιμοποιεί η μεταβλητή τύπος όνομα-μεταβλητής Η C υποστηρίζει πέντε βασικούς τύπους δεδομένων - 4 -

5 Βασικοί τύποι δεδομένων της C Τύπος Παραδείγματα char ch; int cunter; flat f; duble d; flat x, y, z; χαρακτήρας ακέραιος αριθμός κινητής υποδιαστολής αριθμός κινητής υποδιαστολής, διπλής ακρίβειας απουσία τιμής Δεσμευμένη λέξη char int flat duble vid Εκχώρηση τιμών Γενική μορφή εντολής εκχώρησης όνομα-μεταβλητής = τιμή Παραδείγματα status = a ; int_num = 100; f_num = Γενικές και τοπικές μεταβλητές Γενικές μεταβλητές (Glbal variables) Δηλώνονται έξω από όλες τις συναρτήσεις Μπορούν να προσπελάζονται από οποιαδήποτε συνάρτηση του προγράμματος Τοπικές μεταβλητές (Lcal variables) Δηλώνονται μέσα σε μια συνάρτηση Προσπελάζονται και είναι γνωστές μόνο μέσα στη συνάρτηση στην οποία δηλώνονται Δημιουργούνται όταν καλείται η συνάρτηση και παύουν να υπάρχουν μετά τον τερματισμό της συνάρτησης Οι τοπικές μεταβλητές μιας συνάρτησης δεν συνδέονται με τις τοπικές μεταβλητές μιας άλλης συνάρτησης εντολές προεπεξεργαστή (#include, #define, ) δηλώσεις γενικών μεταβλητών δηλώσεις συναρτήσεων int main (vid) εντολές τύπος επιστρεφόμενης-τιμής f1(λίστα παραμέτρων) δηλώσεις τοπικών μεταβλητών. τύπος επιστρεφόμενης-τιμής fν (λίστα παραμέτρων) Πρόγραμμα πρόσθεσης δύο ακεραίων /*Additin Prgram*/ /*functin main begins prgram executin*/ int main () int integer1; /*first number t be input by user*/ int integer2; /*secnd number t be input by user*/ - 5 -

6 int sum; /*variable in which sum will be stred*/ printf ( Enter first integer\n ); /*prmpt*/ scanf ( %d, &integer1); /*read an integer*/ printf ( Enter secnd integer\n ); /*prmpt*/ scanf ( %d, &integer2); /*read an integer*/ sum = integer1 + integer2; /*assign ttal t sum*/ printf ( Sum is %d\n, sum); /*print sum*/ return 0; /*indicate that prgram ended successfully*/ /*end functin main*/ Αποτέλεσμα προγράμματος Enter first integer 45 Enter secnd integer 72 Sum is 117 Σχόλια, και main int integer1, integer2, sum; Δήλωση ακέραιων μεταβλητών scanf( "%d", &integer1 ); Συνάρτηση βιβλιοθήκης χρησιμοποιείται για το διάβασμα μιας τιμής από το πληκτρολόγιο Η συγκεκριμένη εντολή scanf έχει δύο ορίσματα %d - υποδεικνύει πως τα δεδομένο εισόδου είναι ένας ακέραιος αριθμός &integer1 - υποδεικνύει τη θέση της μνήμης στην οποία πρέπει να αποθηκευθεί η συγκεκριμένη τιμή & - τελεστής μνήμης = τελεστής εκχώρησης (assignment peratr) Εκχωρεί μια τιμή σε μια μεταβλητή sum = variable1 + variable2; + τελεστής αθροίσματος Η sum παίρνει την τιμή του αθροίσματος variable1 + variable2; printf( "Sum is %d\n", sum ); Ανάλογη με την scanf %d σημαίνει ότι θα τυπωθεί ένας δεκαδικός ακέραιος sum προσδιορίζει ποιος είναι ο ακέραιος που θα τυπωθεί Πράξεις μπορούν να εκτελούνται εντός μιας εντολής printf printf( "Sum is %d\n", integer1 + integer2 ); Τελεστές Αριθμητικοί + - * / % Σχεσιακοί > >= == < <=!= Λογικοί &&! Διαχείρισης μνήμης & []. -> Διαχείρισης των bits ενός byte >> & ^ ~ Αριθμητικοί τελεστές Δυαδικοί +, -, *, /, % (τελεστής υπολοίπου) - 6 -

7 x y x/y x%y Μοναδιαίοι Μοναδιαίοι αύξησης και μείωσης ++, -- Προπορευόμενοι, π.χ. ++x η αύξηση ή η ελάττωση γίνεται πριν να χρησιμοποιηθεί η τιμή της μεταβλητής στον υπολογισμό της τιμής της έκφρασης στην οποία συμμετέχει Παρελκόμενοι, π.χ. x++ η αύξηση ή η ελάττωση γίνεται μετά τον υπολογισμό της τιμής της έκφρασης στην οποία συμμετέχει Αριθμητικοί τελεστές αύξησης και μείωσης Εντολή Τιμή x Τιμή y int x=10, y=20; x; y= --x; y=x-- + y; 9 20 y= y x++; Σχεσιακοί τελεστές Λογικοί τελεστές Τελεστής Ενέργεια Τελεστής Ενέργεια > Μεγαλύτερο από >= Μεγαλύτερο ή ίσο από < Μικρότερο από <= Μικρότερο ή ίσο από == Ίσο!= Διάφορο Εκφράσεις Γενική περίπτωση && AND (λογική σύζευξη) OR (λογική διάζευξη)! NOT (λογική άρνηση) Αποτελείται από έναν ή περισσότερους τελεστέους και προαιρετικά από έναν ή περισσότερους τελεστές Τελεστέοι: μεταβλητές, σταθερές ή κλήσεις συναρτήσεων Κάθε έκφραση έχει μια τιμή Παραδείγματα απλών εκφράσεων 8 cunt func(x) MAX_NUM Παραδείγματα σύνθετων εκφράσεων 8 * 24 cunt + 4 func(x) / 3 (cunt + 32) / MAX_NUM Προτεραιότητα Αριθμητικοί τελεστές Καθορισμός επιπέδων προτεραιότητας για τους τελεστές * και / στο ίδιο επίπεδο + και στο ίδιο επίπεδο * και / σε υψηλότερο επίπεδο από τους δυαδικούς + και - μοναδιαίοι +,. υψηλότερη προτεραιότητα *, /, % ενδιάμεση προτεραιότητα δυαδικοί +,. χαμηλότερη προτεραιότητα Προσεταιριστικότητα (assciativity) Καθορισμός σειράς εφαρμογής περισσοτέρων τελεστών στο ίδιο επίπεδο (πολλά στιγμιότυπα του τελεστή) - 7 -

8 +, -, * και / είναι αριστερής προσεταιριστικότητας (εφαρμογή από αριστερά προς τα δεξιά) Τελεστής ανάθεσης είναι δεξιάς προσεταιριστικότητας num_1 = num_2 = 5 Προτεραιότητα σχεσιακών και λογικών τελεστέων Υψηλότερη! > >= < <= ==!= && Χαμηλότερη Χρήση παρενθέσεων για προσδιορισμό σειράς εφαρμογής τελεστών ή/και αύξηση αναγνωσιμότητας μιας έκφρασης Πρώτα υπολογίζονται οι εσωτερικές παρενθέσεις Προσοχή: Χρησιμοποιήστε παρενθέσεις όπου υπάρχει αβεβαιότητα Παραδείγματα 2 3 * 4 (2 3) * 4 2 (3 * 4) x + y + z * w (x + (y + (z * w))) 2 + ((4 + 2) / (7-5) 6 Ανάπτυξη προγραμμάτων δομημένου προγραμματισμού Στόχοι Κατανόηση βασικών τεχνικών επίλυσης προβλημάτων Ανάπτυξη αλγορίθμων με από πάνω προς τα κάτω (tp-dwn) σχεδιασμό Χρήση εντολών if και if else για την επιλογή ενεργειών Χρήση εντολής while για την επαναληπτική εκτέλεση εντολών σε ένα πρόγραμμα Χρήση ένθετων εντολών Κατανόηση επανάληψης ελεγχόμενης από μετρητή (cunter-cntrlled) και ελεγχόμενης από τιμή «σημαία» / «φρουρό» (sentinel-cntrlled). Πρίν γράψουμε ένα πρόγραμμα Πρέπει να έχουμε κατανοήσει πολύ καλά το πρόβλημα που θέλουμε να λύσουμε Σχεδιάζουμε προσεκτικά τον τρόπο επίλυσης του προβλήματος Ενώ γράφουμε ένα πρόγραμμα: Πρέπει να ξέρουμε ποιες δομικές μονάδες ( building blcks ) είναι διαθέσιμες Πρέπει να χρησιμοποιούμε καλές αρχές-κανόνες προγραμματισμού Αλγόριθμοι Επίλυση προβλημάτων Όλα τα προβλήματα μπορούν να επιλυθούν με την εκτέλεση μιας σειράς ενεργειών με συγκεκριμένη σειρά Αλγόριθμος: ορίζεται ως μια διαδικασία από Ενέργειες που πρέπει να εκτελεστούν Τη σειρά με την οποία εκτελούνται αυτές οι ενέργειες Έλεγχος προγράμματος Ορισμός της σειράς με την οποία εκτελούνται οι εντολές Δομές ελέγχου Σειριακή εκτέλεση Οι εντολές εκτελούνται η μια μετά την άλλη με τη σειρά που είναι γραμμένες Μεταφορά ελέγχου Η επόμενη εντολή που εκτελείται δεν είναι η επόμενη στη σειρά Η υπερβολική χρήση εντολών gt οδηγούσε σε πολλά προβλήματα Όλα τα προγράμματα γράφονται με βάση 3 δομές ελέγχου Σειριακές δομές : Ενσωματωμένες στη C: Τα προγράμματα εκτελούνται σειριακά Δομές επιλογής: - 8 -

9 Στη C υπάρχουν τρεις τύποι: if, if else, και switch Δομές επανάληψης: Στη C υπάρχουν τρεις τύποι: while, d while and fr Διάγραμμα ροής σειριακής δομής της C Γραφική αναπαράσταση αλγόριθμου Σχεδιάζεται χρησιμοποιώντας ορισμένα ειδικά σύμβολα που συνδέονται με βέλη που ονομάζονται γραμμές ροής (flwlines) Ορθογώνιο παραλληλόγραμμο (σύμβολο ενέργειας) :Υποδηλώνει οποιονδήποτε τύπο ενέργειας Έλλειψη : Υποδηλώνει την αρχή ή το τέλος ενός προγράμματος ή ενός τμήματος κώδικα Δομές ελέγχου μονής εισόδου / μονής εξόδου Σύνδεση σημείου εξόδου μιας δομής με το σημείο εισόδου της επόμενης δομής (στοίβαξη δομών ελέγχου) Διευκολύνει τη δημιουργία (το γράψιμο) προγραμμάτων Η εντολή επιλογής if Δομή επιλογής: Χρησιμοποιείται για την επιλογή μεταξύ εναλλακτικών τρόπων ενεργειών Σε ψευδοκώδικα: If ο βαθμός ενός φοιτητή είναι μεγαλύτερος ή ίσος του 60 Τύπωσε Passed Αν η συνθήκη της If είναι αληθής - true Εκτελείται η εντολή τύπωσε και το πρόγραμμα συνεχίζει με την επόμενη εντολή Αν η συνθήκη της If είναι ψευδής - false Η εντολή τύπωσε αγνοείται και το πρόγραμμα συνεχίζει με την επόμενη εντολή Προκειμένου να είναι πιο ευανάγνωστα τα προγράμματα Χωρίζουμε τις διάφορες ενότητες τοποθετώντας τις αντίστοιχες παραγράφους λίγο δεξιότερα Η C αγνοεί τα «κενά» Εντολή ψευδοκώδικα σε C: if ( grade >= 60 ) printf( "Passed\n" ); Ο κώδικας C μοιάζει αρκετά με τον ψευδοκώδικα Γενική μορφή εντολής if if (έκφραση) εντολή; Ρόμβος (σύμβολο απόφασης) Υποδεικνύει ότι πρέπει να παρθεί μια απόφαση Περιέχει μια έκφραση που μπορεί να είναι true (αληθής) ή false (ψευδής) Έλεγχος της συνθήκης, επιλογή κατάλληλης διαδρομής/ ροής Η εντολή if statement είναι μια δομή μονής εισόδου / μονής εξόδου Πρόγραμμα C Παράδειγμα: Γράψτε ένα πρόγραμμα το οποίο διαβάζει έναν αριθμό από το πληκτρολόγιο και εξακριβώνει αν αυτός ο αριθμός είναι αρνητικός ή μη-αρνητικός

10 /*Decide if input is negative r nn-negative*/ /*functin main prgram executin*/ int main() int num; /*number t be entered*/ printf( Enter an integer:\n ); scanf ( %d, &num); if (num < 0) printf ( The number is negative.\n ); if (num >= 0) printf ( The number is nn-negative.\n ); return 0; /*end main*/ Αποτέλεσμα προγράμματος Enter an integer: 10 Number is nn-negative. Enter an integer: -78 Number is negative. Enter an integer: 0 Number is nn-negative. Η εντολή επιλογής if else if: Μια ενέργεια πραγματοποιείται μόνο αν η συνθήκη της if είναι true if else: Προσδιορίζει μια ενέργεια που πρέπει να εκτελεστεί τόσο όταν η συνθήκη είναι true όσο και όταν η συνθήκη είναι false Ψευδοκώδικας: If ο βαθμός ενός φοιτητή είναι μεγαλύτερος ή ίσος του 60 Τύπωσε Passed else Τύπωσε Failed Κώδικας C: if ( grade >= 60 ) printf( "Passed\n"); else printf( "Failed\n"); Γενική μορφή εντολής if else if (έκφραση) εντολή1; else εντολή2; Τριαδικός τελεστής (?:) Έχει τρία ορίσματα (Takes three arguments) συνθήκη? εντολή if true : εντολή if false Παράδειγμα grade >= 60? printf( Passed\n ) : printf( Failed\n ); printf("%s\n",grade>= 60?"Passed":"Failed"); Διάγραμμα ροής της εντολής επιλογής if else

11 Ένθετες/ «Φωλιασμένες» (nested) εντολές if else Όταν μια εντολή if είναι ο προορισμός μιας άλλης εντολής if ή else, τότε είναι ένθετη μέσα στην πρώτη (εξωτερική) εντολή if Παράδειγμα if (cunt > max) /*εξωτερική if*/ if (errr) printf( Errr, try again. ); /*ένθετη if*/ Στην πράξη σπάνια συναντάται μεγάλο βάθος ένθεσης Ένθετες/ «Φωλιασμένες» (nested) εντολές if else Ποια if σχετίζεται με ποια else ; Μια else σχετίζεται πάντα με την πλησιέστερη if που υπάρχει στο ίδιο τμήμα κώδικα και δεν είναι συσχετισμένη με μια άλλη if Ψευδοκώδικας για ένθετες εντολές if else If ο βαθμός του φοιτητή είναι μεγαλύτερος ή ίσος του 90 Τύπωσε A else If ο βαθμός του φοιτητή είναι μεγαλύτερος ή ίσος του 80 Τύπωσε B else If ο βαθμός του φοιτητή είναι μεγαλύτερος ή ίσος του 70 Τύπωσε C else If ο βαθμός του φοιτητή είναι μεγαλύτερος ή ίσος του 60 Τύπωσε D else Τύπωσε F Γενική μορφή ένθετων εντολών if else if (έκφραση) εντολή; else if (έκφραση) εντολή; else if (έκφραση) εντολή;... else εντολή; Κώδικας C if (grade >= 90) printf( A\n ); else if (grade >= 80) printf( B\n ); else if (grade >= 70) printf( C\n ); else if (grade >=60) printf( D\n ); else printf( F\n ); Παραδείγματα if (p) /*εξωτερική if*/ if (q) printf( a and b are true ); /*ένθετη if*/ else printf( T which statement des this else apply? ); if (ch== S ) /*πρώτη if*/

12 printf( Enter a number: \n ); scanf( %d, &y); /*δεύτερη if*/ if (y) printf( Its square is %d.,y*y); else printf( Make next selectin.\n ); Η εντολή επανάληψης while Δομή επανάληψης Ο προγραμματιστής ορίζει την επανάληψη μιας ενέργειας για όσο (while) κάποια συνθήκη παραμένει αληθής (true) Ψευδοκώδικας: While υπάρχουν πράγματα στη λίστα με τα ψώνια Αγόρασε το επόμενο αντικείμενο και σβήσε το από τη λίστα Βρόχος Ομάδα εντολών που εκτελεί επανειλημμένα ένας υπολογιστής μέχρι κάποια για όσο (while) μια συνθήκη παραμένει true (αληθής) Ο βρόχος while επαναλαμβάνεται μέχρι η συνθήκη να γίνει false Παράδειγμα: int prduct = 2; while ( prduct <= 1000 ) prduct = 2 * prduct; Επανάληψη ελεγχόμενη από μετρητή (Cunter-cntrlled repetitin) Ο βρόχος επαναλαμβάνεται μέχρι ο μετρητής να πάρει μια συγκεκριμένη τιμή Συγκεκριμένη επανάληψη: ο αριθμός των επαναλήψεων είναι γνωστός Παράδειγμα: Το τμήμα ενός σχολείου αποτελείται από 10 μαθητές. Οι μαθητές έγραψαν διαγώνισμα. Οι βαθμοί είναι ακέραιοι αριθμοί από 0 ως 100. Έστω ότι είναι γνωστοί οι βαθμοί. Γράψτε ένα πρόγραμμα που να διαβάζει τους βαθμούς που του δίνει ο χρήστης και να υπολογίζει το μέσο όρο του τμήματος στο διαγώνισμα. Ψευδοκώδικας: Δώσε στο σύνολο την τιμή 0 Δώσε στον μετρητή βαθμών την τιμή 1 While ο μετρητής βαθμών είναι μικρότερος ή ίσος του 10 Διάβασε τον επόμενο βαθμό Πρόσθεσε το βαθμό στο σύνολο Πρόσθεσε ένα στο μετρητή των βαθμών Δώσε στο μέσο όρο τμήματος την τιμή του πηλίκου του συνόλου διαιρεμένου δια 10 Τύπωσε το μέσο όρο του τμήματος Πρόγραμμα C /*Class average prgram with cunter-cntrlled repetitin*/ int main()/*functin main prgram executin*/ int cunter; /*number f grade t be entered next*/ int grade; /*grade value*/ int ttal; /*sum f grades input by user*/ int average /*average f grades*/ ttal = 0; /*initialize ttal*/

13 cunter = 1; /*initialize lp cunter*/ /*prcessing phrase*/ while (cunter <=10) /*lp 10 times*/ printf ( Enter grade:\n ); /*prmpt input*/ scanf ( %d, &grade); /*read grade frm user*/ ttal = ttal + grade; /*add grade t ttal*/ cunter = cunter +1; /*increment cunter*/ /*end while*/ average = ttal/10; /*integer divisin*/ printf ( Class average is %d\n, average); /*display result*/ return 0; /*end functin main*/ Αποτέλεσμα προγράμματος Enter grade: 98 Enter grade: 76 Enter grade: 71 Enter grade: 87 Enter grade: 83 Enter grade: 90 Enter grade: 57 Enter grade: 79 Enter grade: 82 Enter grade: 94 Class average is 81 Επανάληψη ελεγχόμενη από τιμή σημαία (Sentinel-Cntrlled repetitin) Παράδειγμα : Γράψτε ένα πρόβλημα όμοιο με το προηγούμενο με τη διαφορά ότι το πρόγραμμα θα επεξεργάζεται έναν τυχαίο αριθμό βαθμών κάθε φορά που εκτελείται Άγνωστος αριθμό βαθμών Πώς θα ξέρει το πρόγραμμα πότε να σταματήσει; Χρήση ειδικής τιμής Τιμή φρουρός (sentinel), σήμα (signal), σημαία (flag) Υποδεικνύει το τέλος της εισαγωγής δεδομένων Ο βρόχος τελειώνει όταν ο χρήστης εισάγει αυτήν την ειδική τιμή Η τιμή αυτή επιλέγεται έτσι ώστε να μην συγχέεται με κάποια κανονική τιμή εισόδου (π.χ. στη συγκεκριμένη περίπτωση μπορεί να είναι -1) Σχεδίαση αλγόριθμου με τεχνική Tp-Dwn Tp-dwn σχεδιασμός Διατυπώνουμε σε ψευδοκώδικα τη γενική λειτουργία του προγράμματος (tp): Καθόρισε το μέσο όρο του τμήματος για το διαγώνισμα Διαιρούμε τη γενική λειτουργία (tp) σε μικρότερες διεργασίες που ακολουθούν μια συγκεκριμένη σειρά: Αρχικοποίησε μεταβλητές Διάβασε, άθροισε και μέτρησε τους βαθμούς του διαγωνίσματος Υπολόγισε και τύπωσε το μέσο όρο του τμήματος Στα περισσότερα προγράμματα μπορούμε να διακρίνουμε τρεις φάσεις: Αρχικοποίηση: αρχικοποιεί τις μεταβλητές του προγράμματος Επεξεργασία: παίρνει τις τιμές εισόδου και προσαρμόζει ανάλογα τις μεταβλητές του προβλήματος Τερματισμός: υπολογίζει και εκτυπώνει τα τελικά αποτελέσματα Αναλύουμε τη φάση αρχικοποίησης από Αρχικοποίησε μεταβλητές σε: Δώσε στο σύνολο την τιμή

14 Δώσε στον μετρητή βαθμών την τιμή 0 Αναλύουμε τη φάση Διάβασε, άθροισε και μέτρησε τους βαθμούς του διαγωνίσματος σε: Διάβασε τον πρώτο βαθμό (πιθανώς τη «σημαία») While ο χρήστης δεν έχει εισάγει τη «σημαία» Πρόσθεσε το βαθμό στο τρέχον σύνολο Αύξησε το μετρητή των βαθμών κατά 1 Διάβασε τον επόμενο βαθμό (πιθανώς τη «σημαία») Αναλύουμε τη φάση Υπολόγισε και εκτύπωσε το μέσο όρο του τμήματος ως εξής: If ο μετρητής δεν είναι ίσος με 0 Κάνε το μέσό όρο ίσο με το πηλίκο του συνόλου δια του μετρητή των βαθμών Τύπωσε το μέσο όρο else Τύπωσε N grades were entered Δώσε στο σύνολο την τιμή 0 Δώσε στον μετρητή βαθμών την τιμή 0 Διάβασε τον πρώτο βαθμό (πιθανώς τη «σημαία») While ο χρήστης δεν έχει εισάγει τη «σημαία» Πρόσθεσε το βαθμό στο τρέχον σύνολο Αύξησε το μετρητή των βαθμών κατά 1 Διάβασε τον επόμενο βαθμό (πιθανώς τη «σημαία») If ο μετρητής δεν είναι ίσος με 0 Κάνε το μέσό όρο ίσο με το πηλίκο του συνόλου δια του μετρητή των βαθμών Τύπωσε το μέσο όρο else Τύπωσε N grades were entered Πρόγραμμα C /*Class average prgram with sentinel-cntrlled repetitin*/ int main()/*functin main prgram executin*/ int cunter; /*number f grade t be entered next*/ int grade; /*grade value*/ int ttal; /*sum f grades input by user*/ flat average; /*number with decimal pint fr average*/ /*initializatin phrase*/ ttal = 0; /*initialize ttal*/ cunter = 1; /*initialize lp cunter*/ /*prcessing phrase*/ /*get first grade frm user*/ printf ( Enter grade, -1 t end:\n ); /*prmpt input*/ scanf ( %d, &grade); /*read grade frm user*/ /*lp while sentinel value nt yet read frm user*/ while (grade!= -1) ttal = ttal + grade; /*add grade t ttal*/ cunter = cunter +1; /*increment cunter*/ printf ( Enter grade, -1 t end:\n ); /*prmpt input*/ scanf ( %d, &grade); /*read grade frm user*/ /*end while*/ /*terminate phrase*/ /*if user endered at least ne grade*/ if (cunter!=0)

15 /*calculate average f all grades entered*/ average = (flat)ttal/cunter; /*display average with tw digits f prcisin*/ printf ( Class average is %.2f\n, average); /*end if*/ else /*if n grades were entered, utput message*/ printf ( N grades were entered ); /*end else*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Αποτέλεσμα προγράμματος Enter grade, -1 t end: 75 Enter grade, -1 t end: 94 Enter grade, -1 t end: 97 Enter grade, -1 t end: 88 Enter grade, -1 t end: 70 Enter grade, -1 t end: 64 Enter grade, -1 t end: 83 Enter grade, -1 t end: 89 Enter grade, -1 t end: -1 Class average is Enter grade, -1 t end: -1 N grades were entered Ένθετες δομές ελέγχου (Nested cntrl structures) Παράδειγμα :Δίνεται η λίστα των αποτελεσμάτων ενός διαγωνίσματος 10 φοιτητών σε ένα κολέγιο. 1 είναι ο κωδικός επιτυχίας ενώ 2 είναι ο κωδικός αποτυχίας Γράψτε ένα πρόγραμμα που να υπολογίζει και να τυπώνει τον αριθμό των επιτυχόντων και αποτυχόντων. Αν ο αριθμός των επιτυχόντων είναι μεγαλύτερος από 8 το πρόγραμμα θα πρέπει επίσης να τυπώνει ένα μήνυμα. Παρατηρούμε ότι: Το πρόγραμμα πρέπει να επεξεργαστεί 10 αποτελέσματα διαγωνίσματος Άρα μπορούμε να χρησιμοποιήσουμε επανάληψη ελεγχόμενη από μετρητή Θα πρέπει να χρησιμοποιήσουμε δύο μετρητές Αριθμός επιτυχόντων Αριθμός αποτυχόντων Κάθε αποτέλεσμα είναι ένας αριθμός - 1 ή 2 Αν ο αριθμός δεν είναι 1, μπορούμε να υποθέσουμε ότι είναι 2 Γενική λειτουργία προγράμματος Ανάλυσε τα αποτελέσματα της εξέτασης και αποφάσισε αν είναι καλά Πρώτη ανάλυση Αρχικοποίησε μεταβλητές Διάβασε τους δέκα βαθμούς και υπολόγισε τον αριθμό επιτυχόντων και αποτυχόντων Τύπωσε μια περίληψη των αποτελεσμάτων της εξέτασης και αποφάσισε αν τα αποτελέσματα είναι καλά Ανάλυση της πρότασης Αρχικοποίησε μεταβλητές σε: Αρχικοποίησε επιτυχίες με μηδέν Αρχικοποίησε αποτυχίες με μηδέν Αρχικοποίησε μετρητή φοιτητών με ένα Ανάλυση της Διάβασε τους δέκα βαθμούς και υπολόγισε τον αριθμό επιτυχόντων και αποτυχόντων σε: While ο μετρητής φοιτητών είναι μικρότερος ή ίσος του δέκα Διάβασε το επόμενο αποτέλεσμα If ο φοιτητής πέρασε Αύξησε τις επιτυχίες κατά ένα else

16 Αύξησε τις αποτυχίες κατά ένα Αύξησε το μετρητή φοιτητών κατά ένα Ανάλυση της Τύπωσε μια περίληψη των αποτελεσμάτων και αποφάσισε αν τα αποτελέσματα είναι καλά ως εξής: Τύπωσε τον αριθμό των επιτυχιών Τύπωσε τον αριθμό των αποτυχιών If περισσότεροι από οκτώ φοιτητές πέρασαν Τύπωσε Gd results! Αρχικοποίησε επιτυχίες με μηδέν Αρχικοποίησε αποτυχίες με μηδέν Αρχικοποίησε μετρητή φοιτητών με ένα While ο μετρητής φοιτητών είναι μικρότερος ή ίσος του δέκα Διάβασε το επόμενο αποτέλεσμα If ο φοιτητής πέρασε Αύξησε τις επιτυχίες κατά ένα else Αύξησε τις αποτυχίες κατά ένα Αύξησε το μετρητή φοιτητών κατά ένα Τύπωσε τον αριθμό των επιτυχιών Τύπωσε τον αριθμό των αποτυχιών If περισσότεροι από οκτώ φοιτητές πέρασαν Τύπωσε Gd results! Πρόγραμμα C /*Analysis f examinatin results*/ int main()/*functin main prgram executin*/ /*initialize variables in definitins*/ int passes =0; /*number f passes*/ int failures =0; /*number f failures*/ int student =1; /*student cunter*/ int result; /*ne exam result*/ /*prcess 10 students using cunter-cntrlled lp*/ while (student <=10) /*prmpt user fr input and btain value frm user*/ printf ( Enter result (1=passed, 2=failed): ); scanf ( %d, &result); /*if result is 1, increment passes*/ if (result = =1) passes = passes +1; /*end if*/ else /*therwise, increment failures*/ failures = failures +1; /*end else*/ student =student +1; /*increment student cunter*/ /*end while*/ /*terminatin phrase, display number f passes and failures*/ printf ( Passes %d\n, passes); printf ( Failed %d\n, failures);

17 /*if mre than 8 students passed, print Gd results! */ if (passes >8) printf ( Gd results! ); /*end if*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Αποτελέσματα προγράμματος Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 2 Enter Result (1=pass,2=fail): 2 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 2 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 2 Passed 6 Failed 4 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 2 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Enter Result (1=pass,2=fail): 1 Passed 9 Failed 1 Gd results! Εντολές ροής ελέγχου Στόχοι Χρήση εντολών fr και d while Πολλαπλή επιλογή με την εντολή switch Χρήση εντολών ροής ελέγχου break, cntinue και gt Λογικοί τελεστές && ( λογική σύζευξη ( λογικό ΚΑΙ ) ) Επιστρέφει true αν και οι δύο συνθήκες είναι true ( λογική σύζευξη ( λογικό Η ) ) Επιστρέφει true αν έστω μια από τις συνθήκες είναι true! ( λογική άρνηση (λογικό ΟΧΙ)) Αν η συνθήκη είναι true επιστρέφει false Χρήση σε βρόχους Έκφραση true && false true false!false Αποτέλεσμα false true true Έκφραση! Έκφραση 0 1 μη μηδενική τιμή 0 Έκφραση 1 Έκφραση 2 Έκφραση 1 && Έκφραση μη μηδενική τιμή 0 μη μηδενική τιμή 0 0 μη μηδενική τιμή μη μηδενική τιμή 1 Έκφραση 1 Έκφραση 2 Έκφραση 1 Έκφραση μη μηδενική τιμή

18 μη μηδενική τιμή 0 1 μη μηδενική τιμή μη μηδενική τιμή 1 Προτεραιότητα και προσεταιριστικότητα τελεστών Τελεστές Προσεταιριστικότητα Τύπος ! (type) από δεξιά προς αριστερά μοναδιαίος * / % από αριστερά προς δεξιά πολλαπλασιασμού + - από αριστερά προς δεξιά προσθετικός < <= > >= από αριστερά προς δεξιά συσχετιστικός ==!= από αριστερά προς δεξιά ισότητα && από αριστερά προς δεξιά λογική σύζευξη από αριστερά προς δεξιά λογική διάζευξη = += -= *= /= %= από δεξιά προς αριστερά ανάθεσης, από αριστερά προς δεξιά κόμμα Κύρια σημεία επανάληψης Βρόχος Ομάδα εντολών που εκτελεί επανειλημμένα ο υπολογιστής για όσο μια συνθήκη παραμένει true Επανάληψη ελεγχόμενη από μετρητή Καθορισμένη επανάληψη: ξέρουμε πόσες φορές θα εκτελεστεί ο βρόχος Χρήση μεταβλητής ελέγχου για τη μέτρηση των επαναλήψεων Επανάληψη ελεγχόμενη από τιμή σημαία Αόριστη επανάληψη Χρησιμοποιείται όταν ο αριθμός των επαναλήψεων δεν είναι γνωστός Η τιμή σημαία σημαίνει το τέλος των δεδομένων Κύρια χαρακτηριστικά επανάληψης ελεγχόμενης από μετρητή Χρειάζεται Μια μεταβλητή ελέγχου (ή μετρητής βρόχου) Αρχικοποίηση της μεταβλητής ελέγχου Μια αύξηση (ή μείωση) μέσω της οποίας η εντολή ελέγχου μεταβάλλεται κάθε φορά μέσα στο βρόχο Μια συνθήκη που ελέγχει την τιμή της μεταβλητής ελέγχου κι ανάλογα να συνεχίζεται ή να τερματίζεται ο βρόχος Παράδειγμα: int cunter = 1; // αρχικοποίηση while ( cunter <= 10 ) // επανάληψη printf( "%d\n", cunter ); ++cunter; // αύξηση Εναλλακτικά: int cunter = 1; // αρχικοποίηση while ( ++cunter <= 10 )// αύξηση και επανάληψη printf( "%d\n", cunter ); Πρόγραμμα C /*Cunter-cntrlled repetitin*/ int main()/*functin main begins prgram executin*/

19 int cunter =1; /*initializatin*/ while (cunter <=10) /*repetitin cnditin*/ printf ( %d\n, cunter); ++cunter; /*end while*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Η εντολή επανάληψης fr Χρησιμοποιείται για την επανάληψη μιας εντολής ή μιας ομάδας εντολών κατά έναν προσδιοριζόμενο αριθμό φορών. Γενική μορφή εντολής fr fr (αρχικοποίηση; συνθήκη-ελέγχου; αύξηση/μείωση) εντολή; Αρχικοποίηση παροχή αρχικής τιμής στη μεταβλητή που ελέγχει το βρόχο τη μεταβλητή ελέγχου εκτελείται μόνο μια φορά πριν ξεκινήσει ο βρόχος Συνθήκη-ελέγχου ελέγχει την τιμή της μεταβλητής ελέγχου και τη συγκρίνει με μια τιμή προορισμού στην αρχή του βρόχου Αν το αποτέλεσμα είναι true ο βρόχος επαναλαμβάνεται Αν το αποτέλεσμα είναι false ο βρόχος σταματά και η εκτέλεση του προγράμματος συνεχίζει με την εντολή που βρίσκεται αμέσως μετά από το βρόχο Γενική μορφή εντολής fr fr(αρχικοποίηση; συνθήκη-ελέγχου; αύξηση/μείωση) εντολή; Αύξηση/ μείωση εκτελείται στο τέλος του βρόχου, αφού ολοκληρωθεί η εκτέλεση της εντολής ή του τμήματος του κώδικα (της ομάδας των εντολών) που αποτελεί τον κορμό του βρόχου Σκοπός είναι η αύξηση (ή η μείωση) της μεταβλητής ελέγχου του βρόχου κατά ένα συγκεκριμένο ποσό - το βήμα αύξησης/ μείωσης Παράδειγμα: fr (int cunter =1; cunter <= 10; cunter++) printf( "%d\n", cunter ); Τυπώνει τους ακέραιους από το ένα ως το 10 Πρόγραμμα C /*Cunter-cntrlled repetitin with the fr statement*/ int main()/*functin main begins prgram executin*/ int cunter; /*define cunter*/ /*initializatin, repetitin cnditin, and increment are all included in the fr statement header.*/ fr (cunter =1; cunter <=10; cunter++) printf ( %d\n, cunter); /*end fr*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Οι βρόχοι fr μπορούν συνήθως να γραφτούν και σαν βρόχοι while: αρχικοποίηση; while ( συνθήκη-ελέγχου) Αποτέλεσμα προγράμματος

20 εντολή; αύξηση/ μείωση; Αρχικοποίηση και αύξηση/ μείωση Μπορούν να αποτελούνται από μια ομάδα εντολών που διαχωρίζονται με κόμμα (,) Παράδειγμα: fr (int i = 0, j = 0; j + i <= 10; j++, i++) printf( "%d\n", j + i ); Αριθμητικές εκφράσεις Αρχικοποίηση, συνθήκη ελέγχου και αύξηση/ μείωση μπορεί να περιέχουν αριθμητικές εκφράσεις Παράδειγμα: Αν το x είναι ίσο με 2 και το y είναι ίσο με 10 fr ( j = x; j <= 4 * x * y; j += y / x ) ισοδυναμεί με fr ( j = 2; j <= 80; j += 5 ) Πρόγραμμα C /*Summatin with fr */ int main()/*functin main begins prgram executin*/ int sum =0; /*initialize sum*/ int number; /*number t be added t sum*/ fr (number =2; number <=100; number +=2) sum += number; /*add number t sum*/ /*end fr*/ printf ( Sum is %d\n, sum); /*utput sum*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Αποτέλεσμα προγράμματος Sum is 2550 Πρόγραμμα C /*Calculating cmpund interest*/ #include <math.h> int main()/*functin main begins prgram executin*/ duble amunt; /*amunt n depsit*/ duble principal = ; /*starting principal*/

21 duble rate =.05; /*interest rate*/ int year; /*year cunter*/ /*utput table clumn head*/ printf ( %4s%21s\n, Year, Amunt n depsit ); /*calculate amunt n depsit fr each f ten years*/ fr (year =1; year <=10; year++) /*calculate new amunt fr specified year*/ amunt = principal * pw (1.0 +rate, year); /*utput ne table rw*/ printf ( %4d%21.2f\n, year, amunt); /*end fr*/ return 0; /*indicate prgram ended successfully*/ /*end functin main*/ Αποτέλεσμα προγράμματος Year Amunt n depsit Η εντολή πολλαπλής επιλογής switch Χρήσιμη όταν μια μεταβλητή ή έκφραση ελέγχεται για όλες τις δυνατές τιμές που μπορεί να πάρει και γίνονται διαφορετικές ενέργειες Γενική μορφή switch ( τιμή ) case σταθερά1: εντολές break; case σταθερά2: εντολές break;... default: εντολές break; Διάγραμμα ροής της εντολής switch Η τιμή ελέγχεται διαδοχικά έναντι μιας λίστας σταθερών (ακέραιων ή χαρακτήρων) Όταν βρεθεί ένα «ταίριασμα» εκτελείται η αλληλουχία εντολών που σχετίζεται με αυτή την περίπτωση - case μέχρι να βρεθεί μια break default Η αλληλουχία εντολών της εκτελείται αν δεν βρεθεί κανένα «ταίριασμα» Προαιρετική- αν δεν υπάρχει δεν εκτελείται καμία εντολή

22 Πρόγραμμα C /* Cunting letter grades */ int main() /* functin main begins prgram executin */ int grade; /* ne grade */ int acunt = 0; /* number f As */ int bcunt = 0; /* number f Bs */ int ccunt = 0; /* number f Cs */ int dcunt = 0; /* number f Ds */ int fcunt = 0; /* number f Fs */ printf("enter the letter grades.\n"); printf("enter the EOF character t end input.\n"); /* lp until user types end-f-file key sequence */ while ( ( grade = getchar() )!= EOF ) /* determine which grade was input */ switch ( grade ) /* switch nested in while */ case 'A': /* grade was uppercase A */ case 'a': /* r lwercase a */ ++acunt; /* increment acunt */ break; /* necessary t exit switch */ case 'B': /* grade was uppercase B */ case 'b': /* r lwercase b */ ++bcunt; /* increment bcunt */ break; /* exit switch */ case 'C': /* grade was uppercase C */ case 'c': /* r lwercase c */ ++ccunt; /* increment ccunt */ break; /* exit switch */ case 'D': /* grade was uppercase D */ case 'd': /* r lwercase d */ ++dcunt; /* increment dcunt */

23 break; /* exit switch */ case 'F': /* grade was uppercase F */ case 'f': /* r lwercase f */ ++fcunt; /* increment fcunt */ break; /* exit switch */ case '\n': /* ignre newlines, */ case '\t': /* tabs, */ case ' ': /* and spaces in input */ break; /* exit switch */ default: /* catch all ther characters */ printf("incrrect letter grade entered."); printf(" Enter a new grade.\n"); break; /* ptinal; will exit switch anyway */ /* end switch */ /* end while */ /* utput summary f results */ printf("\nttals fr each letter grade are:\n"); printf("a: %d\n", acunt); /*display number f A grades*/ printf("b: %d\n", bcunt ); /*display number f B grades*/ printf( "C: %d\n", ccunt ); /* display number f C grades*/ printf("d: %d\n", dcunt); /* display number f D grades */ printf( "F: %d\n", fcunt ); /* display number f F grades */ return 0; /* indicate prgram ended successfully */ /* end functin main */ Αποτέλεσμα προγράμματος Enter the letter grades. Enter the EOF character t end input. a b c C A d f C E Incrrect letter grade entered. Enter a new grade. D A b ^Z Ttals fr each letter grade are: A: 3 B: 2 C: 3 D: 2 F: 1 Η εντολή επανάληψης d while Παρόμοια με τη while Συνθήκη επανάληψης ελέγχεται αφού έχει εκτελεστεί ο κορμός του βρόχου Οι εντολές εκτελούνται τουλάχιστον μια φορά Γενική μορφή: d εντολές; while ( συνθήκη );

24 Παράδειγμα (έστω cunter = 1): d printf( "%d ", cunter ); while (++cunter <= 10); Τυπώνει τους ακέραιους από 1 ως 10 Διάγραμμα ροής της εντολής επανάληψης d while Πρόγραμμα C /* Using the d/while repetitin statement */ int main()/*functin main begins prgram executin*/ int cunter = 1; /* initialize cunter */ d printf( "%d ", cunter ); /* display cunter */ while ( ++cunter <= 10 ); /* end d...while */ return 0; /* indicate prgram ended successfully */ /* end functin main */ Αποτέλεσμα προγράμματος Η εντολή break Προκαλεί άμεση έξοδο από μια εντολή while, fr, d while ή switch Η εκτέλεση του προγράμματος συνεχίζει με την αμέσως επόμενη εντολή που ακολουθεί τον κορμό μιας από τις παραπάνω εντολές Η εντολή break χρησιμοποιείται συνήθως Για την πρόωρη έξοδο από ένα βρόχο Για την παράλειψη του υπόλοιπου τμήματος μιας εντολής switch Πρόγραμμα C /* Using the break statement in a fr statement */ int main() /* functin main begins prgram executin */ int x; /* cunter */ /* lp 10 times */ fr ( x = 1; x <= 10; x++ ) /* if x is 5, terminate lp */ if ( x == 5 ) break; /* break lp nly if x is 5 */ /* end if */ printf( "%d ", x ); /* display value f x */ /* end fr */ printf("\nbrke ut f lp at x == %d\n", x ); return 0; /* indicate prgram ended successfully */ /* end functin main */ Αποτέλεσμα προγράμματος Brke ut f lp at x == 5 Η εντολή cntinue Παραλείπει τις υπόλοιπες εντολές του κορμού μιας εντολής while, fr ή d while

25 Συνεχίζει με την επόμενη επανάληψη του βρόχου while και d while Ο έλεγχος της συνθήκης επανάληψης γίνεται αμέσως μετά την εκτέλεση της εντολής cntinue fr Έκτελείται η αύξηση/μείωση και στη συνέχεια γίνεται ο έλεγχος της συνθήκης επανάληψης Πρόγραμμα C /* Using the cntinue statement in a fr statement */ int main() /* functin main begins prgram executin */ int x; /* cunter */ /* lp 10 times */ fr ( x = 1; x <= 10; x++ ) /* if x is 5, cntinue with next iteratin f lp */ if ( x == 5 ) cntinue; /* skip remaining cde in lp bdy */ /* end if */ printf( "%d ", x ); /* display value f x */ /* end fr */ printf( "\nused cntinue t skip printing the value 5\n" ); return 0; /* indicate prgram ended successfully */ /* end functin main */ Αποτέλεσμα προγράμματος Used cntinue t skip printing the value 5 Η εντολή gt Μπορεί να εκτελέσει μια "μετάβαση" από ένα σημείο του προγράμματος σε ένα άλλο Η λειτουργία της βασίζεται στην ύπαρξη μιας ετικέτας, που είναι ένα όνομα που ακολουθείται από άνω κάτω τελεία. Γενική μορφή gt <ετικέτα>; Η μετάβαση γίνεται στη γραμμή που έχει την εξής μορφή <ετικέτα>: πρόταση Παράδειγμα gt mylabel; Printf("This will nt print."); mylabel: printf("this will print."); Καλύτερα να μην χρησιμοποιείται Καταστρέφει τη δόμηση του κώδικα - μπορεί να καταστήσει αδύνατη τη μελλοντική ανάγνωση του προγράμματος Δεν είναι απαραίτητη - οποιοδήποτε πρόγραμμα μπορεί να γραφτεί χωρίς τη χρήση της Σύγχιση τελεστή ισότητας (= =) και τελεστή ανάθεσης (=) Επικίνδυνο λάθος Δεν προκαλεί συντακτικό λάθος Κάθε έκφραση που παράγει μια τιμή μπορεί να χρησιμοποιηθεί σε εντολές ροής ελέγχου Μη μηδενικές τιμές θεωρούνται true, μηδενικές τιμές θεωρούνται false Παράδειγμα χρήσης τελεστή ==: if ( paycde == 4 ) printf( "Yu get a bnus!\n" ); Ελέγχει την τιμή τη μεταβλητής paycde, αν (if) είναι ίση με 4 τότε δίνεται ένα bnus

26 Παράδειγμα, αντικατάστασης == με =: if ( paycde = 4 ) printf( "Yu get a bnus!\n" ); Δίνει στη μεταβλητή paycde την τιμή 4 4 είναι μη μηδενική τιμή, επομένως η έκφραση - συνθήκη είναι true, και το bnus δίνεται ανεξάρτητη από την τιμή της μεταβλητής paycde Λογικό σφάλμα και όχι συντακτικό σφάλμα Δομημένος Προγραμματισμός Ανακεφαλαίωση Διευκολύνει την κατανόηση, τον έλεγχο, την αποσφαλμάτωση και την τροποποίηση των προγραμμάτων Κανόνες δομημένου προγραμματισμού Χρησιμοποιούνται μόνο δομές ελέγχου μονής εισόδου/ μονής εξόδου Κανόνες: Ξεκινάμε με το απλούστερο διάγραμμα ροής Κανόνας στοίβαξης: Οποιοδήποτε παραλληλόγραμμο (ενέργεια) μπορεί να αντικατασταθεί από δύο συνεχόμενα παραλληλόγραμμα (ενέργειες) Κανόνας ένθεσης: Οποιοδήποτε παραλληλόγραμμο (ενέργεια) μπορεί να αντικατασταθεί από οποιαδήποτε δομή ελέγχου (ακολουθία, if, if else, switch, while, d while ή fr) Οι κανόνες 2 και 3 μπορούν να εφαρμοστούν με οποιαδήποτε σειρά και πολλές φορές Όλα τα προγράμματα μπορούν να διαχωριστούν σε 3 βασικές ενότητες Ακολουθία αυτόματος χειρισμός από το μεταγλωττιστή (cmpiler) Επιλογή if, if else ή switch Επανάληψη while, d while ή fr Μπορούν να συνδυαστούν με 2 τρόπους Ένθεση (κανόνας 3) Στοίβαξη (κανόνας 2) Οποιαδήποτε επιλογή μπορεί να γραφεί με μια εντολή if, και οποιαδήποτε επανάληψη μπορεί να γραφεί με μια εντολή while

27 Μονάδες Προγράμματος(Prgram Mdules) στη C Συναρτήσεις Μονάδες στη C Τα προγράμματα συνδυάζουν συναρτήσεις που ορίζονται από το χρήστη με συναρτήσεις βιβλιοθήκης Η standard βιβλιοθήκη της C έχει πολλές συναρτήσεις Κλήση συναρτήσεων Όνομα συνάρτησης και παράμετροι (δεδομένα) Η συνάρτηση πραγματοποιεί κάποια λειτουργία Επιστρέφει αποτελέσματα Ανάλογο κλήσης συνάρτησης: Ένας προϊστάμενος ζητάει από έναν υπάλληλο του να κάνει κάποια εργασία Ο υπάλληλος παίρνει την πληροφορία, κάνει την εργασία κι επιστρέφει το αποτέλεσμα Απόκρυψη πληροφορίας: Ο προϊστάμενος δεν γνωρίζει λεπτομέρειες για το πώς έγινε η εργασία Μαθηματικές Συναρτήσεις Βιβλιοθήκης Πραγματοποιούν κοινούς (βασικούς) μαθηματικούς υπολογισμούς #include <math.h> Γενική μορφή κλήσης συναρτήσεων Όνομα_συνάρτησης ( παράμετρος ); Αν υπάρχουν πολλές παράμετροι διαχωρίζονται με κόμμα (,) printf( "%.2f", sqrt( ) ); Καλεί τη συνάρτηση sqrt, που επιστρέφει την τετραγωνική ρίζα της παραμέτρου Όλες οι μαθηματικές συναρτήσεις επιστρέφουν τιμές τύπου duble Οι παράμετροι μπορεί να είναι σταθερές, μεταβλητές ή εκφράσεις Συνάρτηση Περιγραφή Παράδειγμα sqrt( x ) Τετραγωνική ρίζα του x sqrt( ) "επιστρέφει" 30.0 sqrt( 9.0 ) "επιστρέφει" 3.0 exp( x ) Εκθετική συνάρτηση e x exp( 1.0 ) "επιστρέφει" exp( 2.0 ) "επιστρέφει" lg( x ) Λογάριθμος του x με βάση το e (lnx) lg( ) "επιστρέφει" 1.0 lg( ) "επιστρέφει" 2.0 lg10( x ) Λογάριθμος του x (με βάση το 10) lg10( 1.0 ) "επιστρέφει" 0.0 lg10( 10.0 ) "επιστρέφει" 1.0 lg10( ) "επιστρέφει" 2.0 fabs( x ) Απόλυτη τιμή του x fabs( 5.0 ) "επιστρέφει" 5.0 fabs( 0.0 ) "επιστρέφει" 0.0 fabs( -5.0 ) "επιστρέφει"

28 ceil( x ) flr( x ) Στρογγυλοποιεί το x στο μικρότερο ακέραιο (μεγαλύτερο ή ίσο του x) Στρογγυλοποιεί το x στο μεγαλύτερο ακέραιο (μικρότερο ή ίσο του x) ceil( 9.2 ) "επιστρέφει" 10.0 ceil( -9.8 ) "επιστρέφει" -9.0 flr( 9.2 ) "επιστρέφει" 9.0 flr( -9.8 ) "επιστρέφει" pw( x, y ) x εις την y (x y ) pw( 2, 7 ) "επιστρέφει" pw( 9,.5 ) "επιστρέφει" 3.0 fmd( x, y ) υπόλοιπο της διαίρεσης x/y σαν αριθμό κινητής υποδιαστολής fmd( , ) "επιστρέφει" sin( x ) ημίτονο του x (x σε ακτίνια) sin( 0.0 ) "επιστρέφει" 0.0 cs( x ) συνημίτονο του x (x σε ακτίνια) cs( 0.0 ) "επιστρέφει" 1.0 tan( x ) εφαπτομένη του x (x σε ακτίνια) tan( 0.0 ) "επιστρέφει" 0.0 Συναρτήσεις Χωρίζουν ένα πρόγραμμα σε μονάδες Οι μεταβλητές που ορίζονται μέσα σε μια συνάρτηση είναι τοπικές μεταβλητές (lcal variables) Γνωστές μόνο μέσα στη συνάρτηση που τις καλεί Παράμετροι Μεταδίδουν πληροφορία μεταξύ συναρτήσεων Τοπικές μεταβλητές Πλεονεκτήματα συναρτήσεων Διαίρει και βασίλευε Ευκολότερη ανάπτυξη προγράμματος Επαναχρησιμοποίηση λογισμικού (sftware reusability) Χρήση υπαρχουσών συναρτήσεων ως δομικών μονάδων για την ανάπτυξη νέων προγραμμάτων Αφαιρετικότητα - απόκρυψη λεπτομέρειας (συναρτήσεις βιβλιοθήκης - library functins) Αποφυγή επανάληψης κώδικα Πρωτότυπα συναρτήσεων Όνομα συνάρτησης Παράμετροι - τι εισάγεται στη συνάρτηση Επιστρεφόμενος τύπος τύπος δεδομένων που επιστρέφει η συνάρτηση (default int) Χρησιμοποιείται για την επικύρωση συναρτήσεων Το πρωτότυπο χρειάζεται μόνο αν ο ορισμός της συνάρτησης γίνεται μετά τη χρησιμοποίηση της συνάρτησης στο πρόγραμμα Γενική μορφή πρωτότυπου επιστρεφόμενος-τύπος όνομα-συνάρτησης (τύπος όνομα-παραμέτρου1, τύπος όνομα-παραμέτρου2, τύπος όνομα-παραμέτρουν ); Παράδειγμα int maximum( int x, int y, int z ); Παίρνει 3 ακέραιους (int) Επιστρέφει αποτέλεσμα τύπου int Σημαντικό χαρακτηριστικό των πρωτότυπων συναρτήσεων Μετατροπή των παραμέτρων στον κατάλληλο τύπο Τιμές των παραμέτρων που δεν αντιστοιχούν στους τύπους των παραμέτρων στα πρωτότυπα των συναρτήσεων μετατρέπονται στο σωστό τύπο προτού κληθεί η συνάρτηση Αυτές οι μετατροπές μπορούν να οδηγήσουν σε λανθασμένα αποτελέσματα αν δεν ακολουθούνται ορισμένοι κανόνες Κανόνες προαγωγής (prmtin rules) Καθορίζουν τον τρόπο με τον οποίο μπορούν οι τύποι δεδομένων να μετατραπούν σε άλλους τύπους χωρίς την απώλεια δεδομένων

29 Π.χ. Η μετατροπή ενός int σε duble δεν παρουσιάζει κανένα πρόβλημα. Αντίστροφα, η μετατροπή duble σε int προκαλεί αποκοπή του δεκαδικού μέρους (του μέρους του αριθμού που ακολουθεί την υποδιαστολή) Τύπος δεδομένων Χρήση στην printf Χρήση στην scanf duble %f %lf flat %f %f unsigned lng int %lu %lu lng int %ld %ld unsigned int %u %u int %d %d shrt %hd %hd char %c %c Εφαρμόζονται αυτόματα σε εκφράσεις που περιέχουν τιμές δύο ή περισσότερων τύπων (μικτού τύπου εκφράσεις) Ο τύπος κάθε μεταβλητής σε μια μικτού τύπου έκφραση "προάγεται" στον "υψηλότερο" τύπο στην έκφραση Ο πίνακας απεικονίζει τους τύπους από τον "υψηλότερο" προς το "χαμηλότερο" Ορισμός συναρτήσεων Γενική μορφή ορισμού συναρτήσεων επιστρεφόμενος-τύπος όνομα-συνάρτησης( λίστα-παραμέτρων) δηλώσεις και εντολές Όνομα-συνάρτησης: οποιοδήποτε έγκυρο αναγνωριστικό Επιστρεφόμενος-τύπος: τύπος δεδομένων του αποτελέσματος (default int) vid υποδεικνύει ότι η συνάρτηση δεν επιστρέφει τίποτα Λίστα-παραμέτρων: λίστα παραμέτρων που χωρίζονται με κόμμα (,) Για κάθε παράμετρο θα πρέπει να δηλώνεται ο τύπος της διαφορετικά θεωρείται ότι είναι τύπου int Δηλώσεις και εντολές: σώμα συνάρτησης (blck) Επιτρέπεται η δήλωση μεταβλητών μέσα στο σώμα συναρτήσεων Δεν επιτρέπεται η δήλωση συναρτήσεων μέσα σε άλλες συναρτήσεις Επιστροφή ελέγχου Αν επιστρέφεται κάποιο αποτέλεσμα return έκφραση; Αποτίμηση της έκφρασης που ακολουθεί το return αντιγραφή της τιμής στο σημείο κλήσης Αν δεν επιστρέφεται τίποτα Συνέχιση της εκτέλεσης του προγράμματος με την εντολή που ακολουθεί την κλήση της συνάρτησης Πρόγραμμα C /* Creating and using a prgrammer-defined functin */ int square( int y );/* functin prttype */ int main()/* functin main begins prgram executin */ int x; /* cunter */ /* lp 10 times and calculate and utput square f x each time */ fr ( x = 1; x <= 10; x++ ) printf( "%d ", square( x ) ); /* functin call */ /* end fr */ printf( "\n" ); return 0; /* indicates successful terminatin */

30 /* end main */ /* square functin definitin returns square f an integer */ int square( int y ) /* y is a cpy f argument t functin */ return y * y; /* returns square f y as an int */ /* end functin square */ Αποτέλεσμα προγράμματος Πρόγραμμα C /* Finding the maximum f three integers */ int maximum( int x, int y, int z ); /* functin prttype */ int main() /* functin main begins prgram executin */ int number1; /* first integer */ int number2; /* secnd integer */ int number3; /* third integer */ printf( "Enter three integers: " ); scanf( "%d%d%d", &number1, &number2, &number3 ); /*number1,number2 and number3 are arguments t the maximum functin call*/ printf( "Maximum is: %d\n", maximum( number1, number2, number3 ) ); return 0; /* indicates successful terminatin */ /* end main */ /* Functin maximum definitin */ /* x, y and z are parameters */ int maximum( int x, int y, int z ) int max = x; /* assume x is largest */ if ( y > max ) /* if y is larger than max, assign y t max */ max = y; /* end if */ if ( z > max ) /* if z is larger than max, assign z t max */ max = z; /* end if */ return max; /* max is largest value */ /* end functin maximum */ Αποτέλεσμα προγράμματος Enter three integers: Maximum is: 85 Enter three integers: Maximum is: 85 Enter three integers: Maximum is: 85 Αρχεία επικεφαλίδας (Header Files) Περιέχουν πρωτότυπα συναρτήσεων για συναρτήσεις βιβλιοθήκης <stdlib.h>, <math.h>, κλπ Φόρτωση με #include <filename> #include <math.h> Κατασκευή δικών μας αρχείων επικεφαλίδας

31 Δημιουργία αρχείου με συναρτήσεις Σώζουμε το αρχείο με το όνομα filename.h Το φορτώνουμε σε άλλα αρχεία με την εντολή #include "filename.h" Έτσι μπορούμε να επαναχρησιμοποιούμε συναρτήσεις Επικεφαλίδα standard βιβλιοθήκης (Standard library header) <ctype.h> Επεξήγηση Περιέχει πρωτότυπα συναρτήσεων που ελέγχουν ορισμένες ιδιότητες χαρακτήρων, καθώς και πρωτότυπα συναρτήσεων για συναρτήσεις που μπορούν να χρησιμοποιηθούν για την μετατροπή πεζών (μικρών) γραμμάτων σε κεφαλαία γράμματα και αντίστροφα. <math.h> <setjmp.h> <stdi.h> <stdlib.h> Περιέχει πρωτότυπα συναρτήσεων για μαθηματικές συναρτήσεις βιβλιοθήκης. Περιέχει πρωτότυπα συναρτήσεων για συναρτήσεις που επιτρέπουν την παράκαμψη της συνηθισμένης ακολουθίας κλήσης συναρτήσεων κι επιστροφής. Περιέχει πρωτότυπα συναρτήσεων για standard συναρτήσεις εισόδου / εξόδου καθώς και πληροφορίες που χρησιμοποιούνται από αυτές. Περιέχει πρωτότυπα συναρτήσεων για μετατροπή αριθμών από σε κείμενο και κειμένου σε αριθμούς, κατανομή μνήμης (memry allcatin), τυχαίους αριθμούς και άλλες γενικής χρήσης συναρτήσεις. <string.h> <time.h> Περιέχει πρωτότυπα συναρτήσεων για την επεξεργασία αλφαριθμητικών. Περιέχει πρωτότυπα συναρτήσεων και τύπους για το χειρισμό ώρας και ημερομηνίας. Κλήση συναρτήσεων: Κληση με τιμή (Call by Value) και Κλήση με αναφορά (Call by Reference) Κλήση με τιμή (Call by value) Το αντίγραφο μιας παραμέτρου περνάει στη συνάρτηση Οι αλλαγές που γίνονται στη συνάρτηση δεν επηρεάζουν την αρχική παράμετρο Χρησιμοποιείται όταν η συνάρτηση δεν χρειάζεται να τροποποιήσει την παράμετρο Αποφυγή συμπωματικών αλλαγών Κλήση με αναφορά (Call by reference) Περνάει την αρχική παράμετρο Οι αλλαγές που γίνονται στη συνάρτηση επηρεάζουν την αρχική παράμετρο Προς το παρόν εστιάζουμε στην κλήση συναρτήσεων με τιμή Δημιουργία τυχαίων αριθμών Συνάρτηση rand Φόρτωση της <stdlib.h> Επιστρέφει έναν τυχαίο" αριθμό μεταξύ 0 και RAND_MAX (τουλάχιστον 32767) i = rand(); Ψευδοτυχαίοι αριθμοί Προκαθορισμένη ακολουθία τυχαίων αριθμών Ίδια ακολουθία για κάθε κλήση συνάρτησης Για την παραγωγή ενός τυχαίου αριθμού μεταξύ 1 και n 1 + ( rand() % n ) rand() % n επιστρέφει έναν αριθμό μεταξύ 0 και n - 1 Πρόσθεση του 1 προκειμένου να είναι αριθμός μεταξύ 1 και n 1 + ( rand() % 6) αριθμός μεταξύ 1 και 6 Συνάρτηση srand <stdlib.h> Η συνάρτηση srand( seed )χρησιµοποιεί το seed ως φύτρο για νέα ακολουθία ψευδοτυχαίων αριθµών. Εάν παραλειφθεί η συνάρτηση το αρχικό φύτρο είναι πάντοτε το 1. Η srand() εκτελείται πάντοτε µία φορά στην αρχή του προγράµµατος και αρχικοποιεί τη γεννήτρια των τυχαίων αριθµών. Εάν θέλουµε να ξανατρέξουµε τον πρόγραµµά µας και να δηµιουργήσουµε νέους τυχαίους αριθµούς πρέπει να αλλάξουµε τον ακέραιο seed srand( time( NULL ) );/*lad <time.h> */ time( NULL ) Επιστρέφει το χρόνο σε δευτερόλεπτα στον οποίο μεταγλωττίστηκε (έγινε cmpiled) το πρόγραμμα Τυχαιοποιεί" το φύτρο (seed)

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

12. Συναρτήσεις (Μέρος ΙI)

12. Συναρτήσεις (Μέρος ΙI) Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 12. Συναρτήσεις (Μέρος ΙI) Ιωάννης Κατάκης Σήμερα o Συναρτήσεις χωρίς παραμέτρους o Συναρτήσεις με παραμέτρους Χωρίς επιστροφή τιμής Με επιστροφή τιμής o Εμβέλεια

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για

Διαβάστε περισσότερα

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

Διαβάστε περισσότερα

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

Διαβάστε περισσότερα

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

Διαβάστε περισσότερα

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

Διαβάστε περισσότερα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

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

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 3: Εντολές ελέγχου επανάληψη Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής Στόχοι και αντικείμενο ενότητας Βασικές κατασκευές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος #4.. ντολές πιλογής Προτάσεις διακλάδωσης υπό συνθήκη ντολές if, if Φωλιασμένα (nested) if

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

Διαβάστε περισσότερα

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 11 η Συναρτήσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

Διαβάστε περισσότερα

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ένθετες

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

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

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 3 ο : Εντολές ελέγχου > επανάληψη Στόχοι μαθήματος Να μάθετε τις λεπτομέρειες των εντολών while και for και τις περιπτώσεις

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία

Διαβάστε περισσότερα

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

Διαβάστε περισσότερα

Διάλεξη 5η: Εντολές Επανάληψης

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 7 ομές Επαναλήψεις Ο βρόχος While ομές Έλεγχου

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ψευδοτυχαίοι Αριθμοί Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Ψευδοτυχαίοι Αριθμοί Μια γεννήτρια ψευδοτυχαίων αριθμών είναι

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C

Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C Η C, όπως όλες οι γλώσσες προγραμμστισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές λειτουργίες.

Διαβάστε περισσότερα

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές! Εντολές Επανάληψης Πολλές φορές χρειάζεται να επαναλάβουμε τις ίδιες εντολές Πχ. Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα όρων μιας ακολουθίας διαδοχικών ακεραίων. Δηλαδή αν ο χρήστης δώσει τον αριθμό

Διαβάστε περισσότερα

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16) Κεφάλαιο 8.1-8.3 Πίνακες Ι (Διάλεξη 16) 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα μιλήσουμε για την δομή δεδομένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. Δήλωση Πίνακα 3. Αρχικοποίηση Πίνακα 4. Πρόσβαση

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

Διαβάστε περισσότερα

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Εντολές επιλογής Επαναλήψεις (if, switch, while) Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο

Διαβάστε περισσότερα

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while),

Διαβάστε περισσότερα

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

Διαβάστε περισσότερα

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

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

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

Διαβάστε περισσότερα

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Αναδροµή Σύντοµη Αναδροµή Η γλώσσα προγραµµατισµού C είναι µία γλώσσα

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

Διαβάστε περισσότερα

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός ΗΥ: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

Διαβάστε περισσότερα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

Διαβάστε περισσότερα

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις Προγραμματισμός Η/Y Διάλεξη 6 η : Συναρτήσεις Η C είναι συναρτησιακή γλώσσα προγραμματισμού Ως τώρα όλα τα προγράμματα που είδαμε ήταν γραμμένα μέσα στην main Τι θα κάνουμε όμως αν Το πρόγραμμα είναι τεράστιο

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #3 2 Γενικά Στο Τετράδιο #3 του Εργαστηρίου θα εξοικειωθούμε με τη χρήση της εντολής πολλαπλής

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

Διαβάστε περισσότερα

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Εισαγωγή στον προγραμματισμό Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Δομή Προγράμματος Όλα τα προγράμματα που γράψαμε έχουν λίγο πολύ την ακόλουθη μορφή: Κάποιος κώδικας εδώ main( ) {

Διαβάστε περισσότερα

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα