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

Μέγεθος: 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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 (++, --,...) και σύνθετοι τελεστές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 12 Δομές (Structures) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αφαιρετικότητα Με τις συναρτήσεις επιτυγχάνουμε αφαιρετικότητα

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ Β ) ΠΑΡΑΣΚΕΥΗ 5 ΙΟΥΝΙΟΥ 2015 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ:

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Ιανουάριος 2013 Τι είναι ένα πρόγραμμα; Πρόγραμμα είναι μία σειρά από οδηγίες που δίνουμε στον υπολογιστή προκειμένου αυτός να κάνει κάποια συγκεκριμένη εργασία Πώς

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

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ)

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ) Γενικός Σκοπός Το αναλυτικό πρόγραμμα έχει ως γενικό σκοπό να δώσει στους μαθητές τις απαιτούμενες γνωστικές, κριτικές και αναλυτικές δεξιότητες ώστε να είναι ικανοί να χρησιμοποιούν τους υπολογιστές για

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΛΥΚΕΙΟ ΑΡΧ. ΜΑΚΑΡΙΟΥ Γ - ΔΑΣΟΥΠΟΛΗ ΣΧΟΛΙΚΟ ΕΤΟΣ 2014-2015 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΗΜΕΡΟΜΗΝΙΑ: 10 /6 / 2015 ΒΑΘΜΟΣ:... ΤΑΞΗ: Β ΧΡΟΝΟΣ: 2 ώρες ΥΠ. ΚΑΘΗΓΗΤΗ:...

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

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.) ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση είναι ένας έτοιμος τύπος ο οποίος δέχεται σαν είσοδο τιμές ή συνθήκες και επιστρέφει ένα αποτέλεσμα, το οποίο μπορεί να είναι μια τιμή αριθμητική, αλφαριθμητική, λογική, ημερομηνίας

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

7. Βασικά στοιχεία προγραμματισμού

7. Βασικά στοιχεία προγραμματισμού 7. Βασικά στοιχεία προγραμματισμού 146 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Εισαγωγή Κάθε γλώσσα προγραμματισμού, όπως αναφέρθηκε, έχει το δικό της λεξιλόγιο και τα προγράμματα της ακολουθούν

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

7. Βασικά στοιχεία προγραµµατισµού.

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΔΙΔΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙΔΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Παράδοση: Πέμπτη 10 Απριλίου 2008, 24:00 (μεσάνυχτα)

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

Φροντιστήρια. Σύντομη Ιστορία της C. Μια Σύγκριση των Γλωσσών Προγραμματισμού. Τα Πλεονεκτήματα της C

Φροντιστήρια. Σύντομη Ιστορία της C. Μια Σύγκριση των Γλωσσών Προγραμματισμού. Τα Πλεονεκτήματα της C Φροντιστήρια Σύντομη Ιστορία της C Η γλώσσα προγραμματισμού C δημιουργήθηκε από τον Dennis Ritchie στα Bell Labs το 1972 όταν αυτός και ο Ken Thompson ασχολούνταν με τον σχεδιασμό του λειτουργικού συστήματος

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό, αν είναι

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 2.1 Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 1) Η τιμή του χ είναι,χ Ητιμή του χ είναι 5 Ηεντολή εμφανίζει ότι υπάρχει στα διπλά εισαγωγικά ως έχει.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

Pascal Βασικοί τύποι δεδοµένων

Pascal Βασικοί τύποι δεδοµένων Pasal Βασικοί τύποι δεδοµένων «ΜΗ ΕΝ ΠΟΛΛΟΙΣ ΟΛΙΓΑ ΛΕΓΕ, ΑΛΛ ΕΝ ΟΛΙΓΟΙΣ ΠΟΛΛΑ» Σηµαίνει: "Μη λες πολλά χωρίς ουσία, αλλά λίγα που να αξίζουν πολλά" (Πυθαγόρας) Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

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

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

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 3 ΔΟΜΕΣ ΕΠAΝΑΛΗΨΗΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

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

Τύποι, Σταθερές και Μεταβλητές

Τύποι, Σταθερές και Μεταβλητές ΚΕΦΑΛΑΙΟ 3 Τύποι, Σταθερές και Μεταβλητές Η έννοια της μεταβλητής Γενικά μπορούμε να πούμε ότι η έννοια της μεταβλητής στον προγραμματισμό είναι άμεσα συνδεδεμένη με την έννοια που αυτή έχει σε μαθηματικό

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στόχοι Μαθήματος H ανάπτυξη ικανοτήτων και η απόκτηση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1Ο Α1. Να χαρακτηρίσετε τις παρακάτω προτάσεις σαν Σωστό ή Λάθος. 1. Ο υπολογιστής είναι ο ταχύτερος μηχανισμός επεξεργασίας δεδομένων. 2. Οι εντολές

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No 05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής. ΟΙ 3 ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΔΟΜΕΣ ΣΤΗΝ ΓΛΩΣΣΑ C Η εντολή for: Η γενικευμένη σύνταξη της εντολής είναι: for (εντολή1; ; εντολή2) ΕΝΟΤΗΤΑ Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μαθησιακές δυσκολίες ΙΙ Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μάρτιος 2010 Προηγούμενη διάλεξη Μαθησιακές δυσκολίες Σε όλες

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΕΚΦΩΝΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΕΚΦΩΝΗΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΘΕΜΑ 1ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

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

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

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

ιαφάνειες παρουσίασης #1

ιαφάνειες παρουσίασης #1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

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

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

Παιχνίδια σε Javascript

Παιχνίδια σε Javascript Παιχνίδια σε Javascript Μάθημα 1ο Μια Γρήγορη Εισαγωγή στη Γλώσσα Τα Εργαλεία Την Javascript μπορούμε (όπως και την HTML) να τη γράψουμε σε ένα απλό συντάκτη κειμένου, ή σε ένα περιβάλλον όπως το Bluefish

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα; ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Τι πρέπει να ικανοποιεί ένα κομμάτι κώδικα ώστε να χαρακτηριστεί ως υποπρόγραμμα; Τα υποπρογράμματα πρέπει

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Τι είναι τα υποπρογράμματα Αυτόνομες μονάδες κώδικα Γραμμένα από τον χρήστη Η δομή

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

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Email: liliadis@fmenr.duth.gr 1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Τα προγράµµατα αποτελούνται από εντολές οι οποίες γράφονται σε έναν απλό επεξεργαστή που προσφέρει και το Περιβάλλον της Visual C++. Οι εντολές

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

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Runtime Checking (1/3) Η γλώσσα alpha είναι μια dynamic typing γλώσσα (ο τύπος μιας μεταβλητής αλλάζει ακολουθώντας τον τύπο της τιμής που κάθε φορά αποθηκεύεται

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΒΑΙΚΕ ΕΝΝΟΙΕ ΑΓΟΡΙΘΜΩΝ ΕΡΩΤΗΕΙ ΑΞΙΟΟΓΗΗ ΕΡΩΤΗΕΙ ΩΤΟΥ ΑΘΟΥ 1. ηµειώστε το γράµµα αν η πρόταση είναι σωστή και το γράµµα αν είναι λάθος. 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

Τεχνικές Προγραμματισμού

Τεχνικές Προγραμματισμού Νικόλαος Β. Πλατής Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής Τεχνικές Προγραμματισμού Μάρτιος 2001 1. Εισαγωγή 1.1 Βασικές έννοιες Η επιστήμη της Πληροφορικής μελετά την επίλυση προβλημάτων με τη βοήθεια

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

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

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

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

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

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

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

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Εισαγωγή στην Τεχνολογία της Πληροφορικής ΓΙΩΡΓΟΣ Ν. ΓΙΑΝΝΟΠΟΥΛΟΣ Λέκτορας στο Πανεπιστήμιο Αθηνών gyannop@law.uoa.gr Το «κλειστό» σύστημα ΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑ

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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