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

Μέγεθος: 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 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

Κεφάλαιο 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 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

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

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

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

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

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

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

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

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

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

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ Αχιλλέας Αχιλλέως, Τµήµα Πληροφορικής, Πανεπιστήµιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 2 ΠρογραµµατισµόςΗ/Υ Θέµατα ιάλεξης οµή Προγράµµατος C Μεθοδολογία

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Βρόχοι Επανάληψη (Loop) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή

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

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΟΔΗΓΙΕΣ: ΝΑ ΑΠΑΝΤΗΣΕΤΕ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ. Το εξεταστικό δοκίμιο αποτελείται από δύο Ενότητες Α και Β. ΕΝΟΤΗΤΑ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ορθή απάντηση

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Λογικό και (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0) 0ι Λογικοί Τελεστές: Πρόκειται για τελεστές που μας επιτρέπουν να συνδυάσουμε απλές εκφράσεις συσχετισμού και να δημιουργήσουμε πιό πολύπλοκες λογικές εκφράσεις. Εχουμε λοιπόν: && Λογικό "και" (AND) μας

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Οι Βασικοί κανόνες Κατανόηση

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής Διάλεξη 1 Πράξεις Τελεστές Έλεγχος Ροής Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 Αριθμητικοί Τελεστές- Αριθμητικές Πράξεις 2 Internal use only Αριθμητικοί

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java 1 ο & 2 o ΕΠΙΠΕΔΟ Αναλυτικό Πρόγραμμα Εξετάσεων Σελίδα: 1/20 Απρίλιος 2011 Γλωσσών Προγραμματισμού

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επιλογής Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επιλογής (Απόφασης) Εκτέλεση υπό συνθήκη IF THEN IF THEN ELSE IF THEN

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4) Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε

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

Υπο-προγράμματα στη Fortran

Υπο-προγράμματα στη Fortran ΦΥΣ 145 - Διαλ.05 1 Υπο-προγράμματα στη Fortran q Mέχρι τώρα τα προβλήματα και τα προγράμματα που έχουμε δεί ήταν αρκετά απλά και επομένως ένα και μόνο πρόγραμμα ήταν αρκετό για να τα λύσουμε q Όταν τα

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Μάντεψε τον Αριθμό. Έχω Ένα Μυστικό. Το Βρήκα;

Μάντεψε τον Αριθμό. Έχω Ένα Μυστικό. Το Βρήκα; Μάντεψε τον Αριθμό Ένα από τα πρώτα προγράμματα που συνηθίζεται να φτιάχνουν οι μαθητευόμενοι προγραμματιστές είναι ένα παιχνίδι στο οποίο ο παίκτης προσπαθεί να μαντέψει τον μυστικό αριθμό που έχει σκεφτεί

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα: ΠΛΗΡΟΦΟΡΙΚΗ Ημερομηνία και ώρα εξέτασης: Τρίτη, 6 Ιουνίου 2006 07:30 10:30

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΩΤΗΣΕΙΣ 1. Τι καλείται ψευδοκώδικας; 2. Τι καλείται λογικό διάγραμμα; 3. Για ποιο λόγο είναι απαραίτητη η τυποποίηση του αλγόριθμου; 4. Ποιες είναι οι βασικές αλγοριθμικές δομές; 5. Να περιγράψετε τις

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

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Βασικές Αλγοριθμικές Δομές 2 Εισαγωγή Οι αλγοριθμικές δομές εκφράζουν διαφορετικούς τρόπους γραφής ενός αλγορίθμου.

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

Κεφάλαιο 4ο: Εντολές επιλογής

Κεφάλαιο 4ο: Εντολές επιλογής Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 4ο: Εντολές επιλογής Μέχρι τώρα παρατηρήσαµε ότι τα προβλήµατα που αντιµετωπίσαµε είχαν σειριακή κίνηση, δηλαδή η µία εντολή

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

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

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

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

Πρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13

Πρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 11 1. Εισαγωγικά Στοιχεία... 13 Το πρώτο πρόγραμμα... 15 Οι βασικοί τύποι δεδομένων και ο χειρισμός τους... 19 Σταθερές και Μεταβλητές... 19 Σταθερές τύπου ακεραίου... 19 Μεταβλητές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου 2.87 Να περιγραφεί η δομή επανάληψης Μέχρις_ότου Ημορφή της δομής επανάληψης Μέχρις_ότου είναι: Μέχρις_ότου Συνθήκη Η ομάδα εντολών στο εσωτερικό της επανάληψης, εκτελείται μέχρις ότου ισχύει η συνθήκη

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί

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