TEI Σερρών - Τμήμα Πληροφορικής & Επικοινωνιών

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

Download "TEI Σερρών - Τμήμα Πληροφορικής & Επικοινωνιών"

Transcript

1 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Διαδικαστικός Προγραμματισμός Δρ. Πάρις Μαστοροκώστας Αναπληρωτής Καθηγητής Σέρρες 2006

2 ΠΕΡΙΕΧΟΜΕΝΑ Περιεχόμενα i Κεφάλαιο 1: Εισαγωγή βασικά στοιχεία προγράμματος 1.1 Εισαγωγή Ιστορική αναδρομή Εργαλεία ανάλυσης προβλημάτων Στάδια υλοποίησης προγράμματος Βασικά στοιχεία προγράμματος Λεξιλόγιο της γλώσσας C Δεσμευμένες λέξεις Λέξεις κλειδιά Αναγνωριστές Κανόνες δημιουργίας ευανάγνωστων προγραμμάτων Κεφάλαιο 2: Μεταβλητές σταθερές Ι/Ο κονσόλας 2.1 Η έννοια της μεταβλητής Δήλωση μεταβλητής Ονομασία μεταβλητής Τύποι μεταβλητών Ο τύπος του χαρακτήρα Μη εκτυπούμενοι χαρακτήρες Παράδειγμα Ο τύπος του ακεραίου Παράδειγμα Τύποι πραγματικών αριθμών Παράδειγμα Ι/Ο κονσόλας Οι συναρτήσεις getche, getch Η συνάρτηση getchar Η συνάρτηση putchar Η συνάρτηση kbhit Παράδειγμα i

3 Κεφάλαιο 3: Τελεστές εκφράσεις 3.1 Ορισμοί σημειογραφίες Σημειογραφία Κατηγορίες εκφράσεων της C προτεραιότητα και προσεταιριστικότητα Παράδειγμα Τελεστές αύξησης και μείωσης Παράδειγμα Παράδειγμα Τελεστές ανάθεσης Συσχετιστικοί τελεστές Λογικοί τελεστές Παράδειγμα Μετατροπές τύπων Υπονοούμενες μετατροπές Παράδειγμα Ρητές μετατροπές τελεστής typecast Τελεστής sizeof Κεφάλαιο 4: Έλεγχος ροής προτάσεις υπό συνθήκη διακλάδωσης 4.1 Έλεγχος ροής Επιλεκτική εκτέλεση προτάσεων Παράδειγμα Υπό συνθήκη διακλάδωση if else Παράδειγμα Ο υποθετικός τελεστής Παράδειγμα Υπό συνθήκη διακλάδωση switch Παράδειγμα Παράδειγμα Κεφάλαιο 5: Προτάσεις επανάληψης βρόχοι 5.1 Γενικά Βρόχος while do Βρόχος do while Βρόχοι με συνθήκη εισόδου στη C Βρόχος while ii

4 Παράδειγμα Παράδειγμα Βρόχος for Παράδειγμα Παράδειγμα Ο τελεστής κόμμα (,) Μετασχηματισμός βρόχων while for Παράδειγμα Βρόχος με συνθήκη εξόδου στη C (do while) Παράδειγμα Παράδειγμα Ένθετοι βρόχοι Παράδειγμα Παράδειγμα Διακοπτόμενοι βρόχοι στη C Η κωδική λέξη break Παράδειγμα Η πρόταση continue Παράδειγμα Η πρόταση goto Παράδειγμα Κανόνες για τη χρήση των προτάσεων ροής του ελέγχου Κεφάλαιο 6: Πίνακες αλφαριθμητικά 6.1 Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Αρχικοποίηση πολυδιάστατου πίνακα Παράδειγμα Αποθήκευση των πινάκων στη μνήμη Το αλφαριθμητικό Αρχικοποίηση αλφαριθμητικού Είσοδος έξοδος αλφαριθμητικών Εισαγωγή αλφαριθμητικού Εκτύπωση αλφαριθμητικού Παράδειγμα Συναρτήσεις αλφαριθμητικών iii

5 6.8.1 Η συνάρτηση μήκους αλφαριθμητικού Παράδειγμα Η συνάρτηση αντιγραφής αλφαριθμητικού Η συνάρτηση συνένωσης αλφαριθμητικών Παράδειγμα Η συνάρτηση σύγκρισης αλφαριθμητικών Παράδειγμα Κεφάλαιο 7: Δημιουργία προγραμμάτων παραδείγματα 7.1 Γενικά Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Πρόβλημα Κεφάλαιο 8: Δομές απαριθμητικοί τύποι δεδομένων 8.1 Απαριθμητικοί τύποι δεδομένων Παράδειγμα H λέξη κλειδί typedef Ορισμός δομής δήλωση μεταβλητών Παράδειγμα Απόδοση αρχικών τιμών στις δομές Αναφορά στα μέλη δομής Ένθεση δομών Παράδειγμα Παράδειγμα Κεφάλαιο 9: Συναρτήσεις 9.1 Οι έννοιες του αρθρωτού σχεδιασμού και της συνάρτησης Βασικά στοιχεία συναρτήσεων iv

6 9.2.1 Δήλωση συνάρτησης Ορισμός συνάρτησης Κλήση συνάρτησης Παράδειγμα Παράδειγμα Παράδειγμα Είδη και εμβέλεια μεταβλητών Τοπικές μεταβλητές Παράδειγμα Καθολικές μεταβλητές Παράδειγμα Εμβέλεια μεταβλητών Παράδειγμα Διάρκεια μεταβλητών Παράδειγμα Παράδειγμα Πίνακες ως παράμετροι συναρτήσεων Παράδειγμα Αναδρομικές συναρτήσεις Παράδειγμα Κεφάλαιο 10: Δείκτες 10.1 Η έννοια του δείκτη Δήλωση δείκτη Ανάθεση τιμής σε δείκτη Προσπέλαση μεταβλητής με χρήση δείκτη Παράδειγμα Δείκτες και συναρτήσεις Μεταβίβαση παραμέτρων Παράδειγμα Παράδειγμα Παράδειγμα Παράδειγμα Συναρτήσεις με τύπο επιστροφής δείκτη Παράδειγμα Δείκτες και δομές v

7 Δείκτες εντός δομών Παράδειγμα Παράδειγμα Παράδειγμα Δείκτες και η λέξη κλειδί typedef Ορίσματα της γραμμής διαταγής Παράδειγμα Κεφάλαιο 11: Δυναμική διαχείριση μνήμης δείκτες σε αλφαριθμητικά 11.1 Η έννοια της δυναμικής διαχείρισης μνήμης Οι συναρτήσεις malloc, calloc και free Παράδειγμα Η συνάρτηση realloc Παράδειγμα Πίνακες δεικτών Παράδειγμα Δείκτες σε δείκτες Πολυδιάστατοι πίνακες με δεδομένα αριθμητικών τύπων Παράδειγμα Συναρτήσεις οριζόμενες από το χρήστη για τη δέσμευση/αποδέσμευση μνήμης Παράδειγμα Δείκτες και συναρτήσεις αλφαριθμητικών Η συνάρτηση εύρεσης χαρακτήρα σε αλφαριθμητικό Παράδειγμα Η συνάρτηση εύρεσης αλφαριθμητικού σε αλφαριθμητικό Παράδειγμα Παράδειγμα Κεφάλαιο 12: Αρχεία 12.1 Γενικά Τα κανάλια stdin, stdout, stderr Η ενδιάμεση μνήμη δείκτης αρχείου Κατηγορίες αρχείων Άνοιγμα κλείσιμο αρχείου Ανάγνωση εγγραφή χαρακτήρων σε αρχεία Η συνάρτηση εγγραφής χαρακτήρων putc vi

8 Παράδειγμα Η συνάρτηση ανάγνωσης χαρακτήρων getc Παράδειγμα Παράδειγμα Μορφοποιούμενες συναρτήσεις εισόδου εξόδου σε αρχεία Η συνάρτηση fprintf Παράδειγμα Η συνάρτηση fscanf Παράδειγμα Ανάγνωση εγγραφή σε δυαδικά αρχεία Η συνάρτηση fread Παράδειγμα Η συνάρτηση fwrite Παράδειγμα Παράδειγμα Η συνάρτηση feof Tυχαία προσπέλαση δυαδικού αρχείου Η συνάρτηση fseek Παράδειγμα Ανάγνωση εγγραφή χαρακτήρων με χρήση των fread/fwrite Ανάγνωση εγγραφή γραμμή ανά γραμμή Παράδειγμα Παράδειγμα Παράδειγμα Βιβλιογραφία vii

9 Κεφάλαιο 1 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ 1.1 Εισαγωγή Αντικείμενο του παρόντος συγγράματος είναι η εισαγωγή του αναγνώστη στη λογική του προγραμματισμού Η/Υ. Το ενδιαφέρον εστιάζεται στον καλούμενο διαδικαστικό προγραμματισμό (procedural programming), βασικά στοιχεία του οποίου είναι η δόμηση του προγράμματος και η επαναλαμβανόμενη χρήση υποπρογραμμάτων, τα οποία είτε επιτελούν εργασίες γενικής φύσης είτε απευθύνονται σε ένα τμήμα του συνολικού προβλήματος. Στόχος είναι η κατανόηση των αρχών του προγραμματισμού και η εμπέδωση της φιλοσοφίας του, έτσι ώστε ο αναγνώστης να μπορεί χωρίς δυσχέρειες να προχωρήσει σε άλλες μορφές προγραμματισμός (object oriented programming). προγραμματισμού, όπως ο αντικειμενοστραφής Στην προσπάθεια αυτή θα χρησιμοποιηθεί ως πλατφόρμα μία γλώσσα προγραμματισμού υψηλού επιπέδου, η γλώσσα C. Ο όρος γλώσσα υψηλού επιπέδου υποδηλώνει ότι δεν είναι κατασκευασμένη για να λειτουργεί σε συγκεκριμένη αρχιτεκτονική υπολογιστή αλλά δύναται να λειτουργήσει σε πληθώρα αρχιτεκτονικών, γεγονός που σημαίνει ότι: Οι διάφορες αρχιτεκτονικές υπολογιστών για να λειτουργήσουν χρησιμοποιούν ένα σύνολο εντολών, το οποίο χρησιμοποιεί τη γλώσσα μηχανής της εκάστοτε αρχιτεκτονικής. Επομένως, έαν κάποιος προγραμματίσει κάνοντας χρήση της γλώσσας μηχανής μίας αρχιτεκτονικής, τα προγράμματά του δε θα είναι συμβατά με άλλες αρχιτεκτονικές. Το αντιστάθμισμα αυτού του μειονεκτήματος είναι ότι στο παρελθόν, που οι υπολογιστές είχαν λίγη μνήμη και χαμηλή ταχύτητα, ο προγραμματισμός σε γλώσσα μηχανής χειριζόταν αποδοτικότερα τους πόρους του μηχανήματος.

10 1.2 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Για να είναι μία γλώσσα συμβατή με τις γλώσσες μηχανής διαφόρων αρχιτεκτονικών, θα πρέπει να λαμβάνει χώρα μεταγλώττιση από τη γλώσσα προγραμματισμού στην εκάστοτε γλώσσα μηχανής. Όντως αυτό συμβαίνει και το λογισμικό που επιτελεί τη συγκεκριμένη εργασία ονομάζεται μεταγλωττιστής (compiler). Με βάση τα παραπάνω, οι γλώσσες προγραμματισμού υψηλού επιπέδου είναι μεταγλωττισμένες γλώσσες, αποσκοπώντας στο να είναι ευανάγνωστες και κατανοητές. Σε ό,τι αφορά τη C, παρουσιάζει μία σειρά από ενδιαφέροντα και χρήσιμα χαρακτηριστικά: Μπορεί να χρησιμοποιηθεί και ως γλώσσα προγραμματισμού χαμηλού επιπέδου, επιτρέποντας άμεση πρόσβαση στους πόρους του υπολογιστή. Είναι σχετικά μικρή και εύκολη στην εκμάθηση. Υποστηρίζει δομημένο προγραμματισμό. Είναι αποτελεσματική, παράγοντας συμπαγή και γρήγορα στην εκτέλεση προγράμματα. Αποτελεί μαζί με τη C++ τις ευρύτερα χρησιμοποιούμενες γλώσσες σε ερευνητικά και αναπτυξιακά προγράμματα, γεγονός που έχει δημιουργήσει μία πολλή μεγάλη εγκατεστημένη βάση εφαρμογών που αναπτύχθηκαν με αυτές τις γλώσσες και πρέπει να συντηρούνται και να εξελίσσονται. 1.2 Ιστορική αναδρομή Η C επινοήθηκε το 1972 από τον Dennis Ritchie, στα εργαστήρια Bell. Δημιουργήθηκε για να εξυπηρετήσει το λειτουργικό σύστημα Unix, το οποίο έως τότε ήταν γραμμένο σε assembly. Ο δημιουργός του Unix, Ken Thompson, φίλος και συνεργάτης του Ritchie, είχε δημιουργήσει την πρόγονο της C, τη γλώσσα B. Και οι δύο γλώσσες έχουν κοινή καταγωγή από τη γλώσσα BCPL, η οποία είχε αναπτυχθεί από τον Martin Richards κατά το πέρασμά του απο το Τεχνολογικό Ινστιτούτο της Μασσαχουσέττης (MIT) το 1967, στηριζόμενη στη γλώσσα CPL (Cambridge Programming Language) του πανεπιστημίου του Cambridge. Και οι τρεις γλώσσες κατασκευάστηκαν στα πλαίσια του προγράμματος MAC και του απόγονού του Multics, τα οποία στόχευαν στην κατανομή των πόρων των υπολογιστών σε πολλούς χρήστες. Τα δύο αυτά προγράμματα, στα οποία συνέπραξαν το ΜΙΤ, η General Electric και τα εργαστήρια Bell, απετέλεσαν τη θερμοκοιτίδα πολλών προγραμμάτων λογισμικού, που

11 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ 1.3 κυριαρχούν από τη δεκαετία του 1960 έως σήμερα. Για ενδελεχή μελέτη της ιστορίας του λογισμικού, ο αναγνώστης μπορεί να ανατρέξει στην αναφορά [12]. Η C, ούσα ευέλικτη και αποδοτική χρησιμοποιήθηκε αρχικά για τον προγραμματισμό συστημάτων στο Unix. To 1974 εμφανίσθηκε από τον Brian Kernighan το πρώτο γραπτό κείμενο για τη γλώσσα, υπό τον τίτλο Programming in C: A Tutorial. Το 1977 έγινε η πρώτη επίσημη τεκμηρίωση της γλώσσας με το βιβλίο The C Programming Language από τους Kernighan και Ritchie. Το βιβλίο αυτό απετέλεσε το «ευαγγέλιο» των προγραμματιστών της C, αποκαλούμενο «Λευκή Βίβλος» ή «πρότυπο K&R». Με την πάροδο του χρόνου η γλώσσα C άρχισε να χρησιμοποιείται και σε άλλα πεδία εφαρμογών, πέραν του προγραμματισμού συστημάτων. Η εμφάνιση των μεταγλωττιστών της γλώσσας στο MS DOS και ο μεγάλος αριθμός προγραμμάτων βιβλιοθήκης που κατασκευάστηκαν, οδήγησαν τη γλώσσα στο απόγειό της στα τέλη της δεκαετίας του Βέβαια η γλώσσα γνώρισε πολλές αλλαγές, οδηγούμενη τελικά στην επονομαζόμενη ANSI έκδοση. Η τελευταία ενημέρωση της γλώσσας έγινε το Τα τελευταία χρόνια τα ηνία έχει λάβει ο αντικειμενοστρεφής προγραμματισμός και στην κατεύθυνση αυτή συνέβαλλε η γλώσσα C++, που επινοήθηκε το 1983 από το Δανό Bjarne Stroustrup στα εργαστήρια της ΑΤ&Τ (το τμήμα των εργαστήρια Bell που πήγαν στην AT&T όταν η εταιρεία διασπάσθηκε το 1995). H C++ ή C με τάξεις μπορεί να θεωρηθεί απόγονος της C, αν και έχει αρκετές διαφορές. Γεγονός είναι ότι αντικατέστησε τη C σε πολύ μεγάλο ποσοστό και αποτελεί σήμερα μία από τις κυρίαρχες γλώσσες προγραμματισμού. 1.3 Εργαλεία ανάλυσης προβλημάτων Για την ανάλυση ενός προβλήματος και την κατάρτιση του μοντέλου που θα υλοποιηθεί σε κώδικα υπάρχουν τρία εργαλεία: 1. Η φυσική γλώσσα (natural language), σύμφωνα με την οποία το πρόβλημα αναλύεται σε απλές προτάσεις της καθομιλουμένης γλώσσας, χρησιμοποιώντας το συντακτικό αυτής. 2. Το διάγραμμα ροής (flow chart), σύμφωνα με το οποίο απεικονίζεται γραφικά η εξέλιξη του προβλήματος, με χρήση ειδικών συμβόλων. 3. Ο ψευδοκώδικας (pseudocode), ο οποίος μετασχηματίζει τη φυσική γλώσσα σε μία σειρά προτάσεων που χρησιμοποιούν το συντακτικό γλώσσας προγραμματισμού, χωρίς

12 1.4 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ να ακολουθούν επακριβώς το φορμαλισμό συγκεκριμένης γλώσσας. Δεν υπάρχουν γενικοί κανόνες για την υιοθέτηση κάποιου από τα τρία εργαλεία. Η χρήση καθενός εκ των τριών εξαρτάται από τον εκάστοτε προγραμματιστή και το συγκεκριμένο πρόβλημα. Μία ενδεικτική περιγραφή της λειτουργίας των ανωτέρω εργαλείων θα γίνει με τη βοήθεια του ακόλουθου παραδείγματος: Να μετατραπούν οι βαθμοί Farenheit σε βαθμούς Κελσίου, χρησιμοποιώντας την εξίσωση μετασχηματισμού C=(F-32))5/9. 1. Με χρήση φυσικής γλώσσας Ζήτησε από το χρήστη τη θερμοκρασία σε βαθμούς F Διάβασε την τιμή που δίνει ο χρήστης Αποθήκευσε την τιμή σε θέση αποθήκευσης που ονομάζεται degf Υπολόγισε τους βαθμούς C με χρήση μαθηματικής σχέσης Αποθήκευσε το αποτέλεσμα σε θέση αποθήκευσης που ονομάζεται degc Τύπωσε το περιεχόμενο της degc 2. Με χρήση διαγράμματος ροής 2. Με χρήση ψευδοκώδικα print enter degrees in Farenheit read degf degc = (degf - 32) * 5 / 9 print degc

13 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Στάδια υλοποίησης προγράμματος Το υπολογιστικό πρόγραμμα είναι μία ακολουθία εντολών, με τις οποίες ο υπολογιστής εκτελεί μία συγκεκριμένη εργασία και επιλύει ένα δοθέν πρόβλημα. Η υλοποίηση ενός προγράμματος περιλαμβάνει τέσσερα στάδια: 1. Η συγγραφή του πηγαίου κώδικα (source code). Στο βήμα αυτό χρησιμοποιείται ένας συντάκτης προγράμματος (text editor) για τη συγγραφή του κώδικα. Συνήθως χρησιμοποιείται ο ενσωματωμένος συντάκτης της C. Το αποτέλεσμα είναι ένα αρχείο κειμένου, αναγνώσιμο από οποιονδήποτε συντάκτη (DOS editor, notepad, wordpad, πρόγραμμα επεξεργασίας κειμένου), το οποίο έχει κατάληξη.c (ή.cpp εάν χρησιμοποιείται η C++). 2. H μεταγλώττιση του πηγαίου κώδικα (compilation). Η διαδικασία της μεταγλώττισης εκτελείται αυτόματα από το μεταγλωττιστή (compiler) και παράγεται ο τελικός ή αντικείμενος κώδικας (object code), που είναι ο κώδικας σε γλώσσα μηχανής. Στο στάδιο αυτό ανιχνεύονται τα συντακτικά σφάλματα (syntax errors), τα οποία είναι σφάλματα που οφείλονται σε παραβίαση των συντακτικών κανόνων, και αναφέρονται υπό μορφή λίστας (οπότε μπορούν να διορθωθούν προτού εκτελεσθεί το πρόγραμμα). Εάν δεν υπάρχουν συντακτικά σφάλματα, το αρχείο που προκύπτει ονομάζεται έχει το όνομα του αρχείου του πηγαίου κώδικα και κατάληξη.obj. 3. Η σύνδεση του αντικείμενου κώδικα. Στο τρίτο στάδιο επιτελείται η διεργασία της σύνδεσης (linking), η οποία είναι πλήρως αυτοματοποιημένη και γίνεται με χρήση του συνδέτη (linker). Το αποτέλεσμα της σύνδεσης είναι η δημιουργία του εκτελέσιμου κώδικα ή η αναφορά τυχόν προβλημάτων, όπως για παράδειγμα η αδυναμία εντοπισμού μίας συνάρτησης ή μίας εξωτερικής μεταβλητής. Ο εκτελέσιμος κώδικας αποθηκεύεται σε αρχείο που έχει το όνομα του πηγαίου κώδικα και επέκταση.exe. Πλέον το πρόγραμμα έχει ξεφύγει από το περιβάλλον της γλώσσας προγραμματισμού και μπορεί να εκτελεσθεί όπως ένα οποιοδήποτε εκτελέσιμο αρχείο του υπολογιστή. Ο συνδέτης έχει τη δυνατότητα να συνδέσει περισσότερα του ενός αρχεία αντικείμενου κώδικα. Επιπλέον, αναζητά σε βιβλιοθήκες τα σώματα των συναρτήσεων που ο προγραμματιστής χρησιμοποίησε στο πρόγραμμά του (λεπτομέρειες στην 1.5 και σε επόμενα κεφάλαια). 4. Η εκτέλεση του προγράμματος. Στο τελευταίο στάδιο εκτελείται ή «τρέχει» το

14 1.6 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ αρχείο.exe και ελέγχεται η ορθή λειτουργία του προγράμματος. Τα σφάλματα που ανακύπτουν στο στάδιο αυτό ονομάζονται σημασιολογικά σφάλματα (semantic errors). Οφείλονται σε κακή σχεδίαση της λύσης του προβλήματος και, δυστυχώς, αναγνωρίζονται στο χρόνο εκτέλεσης. Χαρακτηριστικό σφάλμα εκτέλεσης είναι η διαίρεση αριθμού με το μηδέν, ενέργεια που δεν ανιχνεύεται ως λανθασμένη κατά τη μεταγλώττιση. Σε περίπτωση σφάλματος, ο προγραμματιστής επιστρέφει στο πρώτο στάδιο, όπου κάνει τις διορθώσεις, και επαναλαμβάνει τα υπόλοιπα στάδια έως ότου το πρόγραμμα λειτουργήσει επιτυχώς. 1.5 Βασικά στοιχεία προγράμματος Έστω το ακόλουθο απλό πρόγραμμα: /********************************************* This program prints out the sentence "This is a test." ******************************************* */ #include<stdio.h> void main () printf( "This is a test.\n" ); // end of main Η καρδιά ενός προγράμματος της γλώσσας C είναι η λέξη main. Αντιστοιχεί στο κύριο τμήμα του κώδικα και χρησιμοποιείται για να γνωστοποιήσει το σημείο έναρξης εκτέλεσης του προγράμματος. Μετά τη main ακολουθεί το εισαγωγικό αριστερό άγκιστρο () και κατόπιν οι γραμμές του προγράμματος. Η main, και μαζί το πρόγραμμα, τερματίζει με το καταληκτικό δεξί άγκιστρο (). Στο παρόν πρόγραμμα η main αποτελείται από μία μόνο πρόταση κλήσης της συνάρτησης printf, η οποία ανήκει στη βασική βιβλιοθήκη συναρτήσεων της C. Η βιβλιοθήκη συναρτήσεων περιλαμβάνει τον κώδικα πρότυπων συναρτήσεων και αποτελείται από μία σειρά αρχείων, τα οποία έχουν την κατάληξη h. Τα αρχεία αυτά ονομάζονται αρχεία κεφαλίδας (header files) και περιλαμβάνουν συναρτήσεις συναφούς λειτουργίας. Δηλώνονται πριν από τη main, με χρήση της οδηγίας προς τον προεπεξεργαστή include ως εξής:

15 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ 1.7 #include <όνομα_αρχείου_κεφαλίδας.h> Στην παρούσα περίπτωση το αρχείο κεφαλίδας είναι το stdio.h (standard input output), το οποίο περιλαμβάνει συναρτήσεις σχετιζόμενες με τις συσκευές εισόδου (π.χ. πληκτρολόγιο) και εξόδου (π.χ. οθόνη). Η συνάρτηση main εκτός από προτάσεις και κλήσεις σε συναρτήσεις βιβλιοθήκης μπορεί να καλεί και άλλες συναρτήσεις, οι οποίες δημιουργούνται από το προγραμματιστή. Μία συνάρτηση είναι ένα σύνολο προτάσεων με ένα δεδομένο όνομα, όπως είναι η main ή η printf. Οι προτάσεις αποτελούν το σώμα (body) της συνάρτησης και περικλείονται σε άγκιστρα. Οι συναρτήσεις πριν από τη main και αναπτύσσουν τον κώδικά τους είτε πάνω είτε κάτω από τη main 1. Όλες οι προτάσεις τελειώνουν με ερωτηματικό (;) (semicolon), το οποίο ονομάζεται σύμβολο του τερματιστή προτάσεων (statement terminator symbol). Eξαίρεση αποτελούν οι οδηγίες προς τον προεπεξεργαστή, όπως είναι η include, οι οποίες αρχίζουν πάντοτε με δίεση (#) και δεν τελειώνουν με ερωτηματικό. Η έξοδος του προγράμματος είναι η έξοδος της printf: This is a test. Οι τρεις πρώτες γραμμές του ανωτέρω προγράμματος είναι σχόλια (comments) και δεν αποτελούν τμήμα του κώδικα, καθώς δε λαμβάνονται υπόψη από το μεταγλωττιστή. To σχόλιο είναι κείμενο ανάμεσα σε /* και */ και μπορεί να τοποθετηθεί οπουδήποτε μέσα στο πρόγραμμα. Μπορεί να επεκταθεί σε περισσότερες από μία γραμμές. Σε περίπτωση που πρέπει να τοποθετηθεί ένα σχόλιο σε κάποιο σημείο μίας γραμμής και να μην επεκταθεί σε άλλη γραμμή, χρησιμοποιείται το σύμβολο // και ακολούθως τοποθετείται το σχόλιο, όπως συμβαίνει στο τέλος του ανωτέρω προγράμματος (το κείμενο end of main είναι σχόλιο). Τα σχόλια πρέπει να χρησιμοποιούνται αφειδώς γιατί καταστούν τον κώδικα ευανάγνωστο και συνεισφέρουν στην επεξήγηση δυσνόητων σημείων. Είναι θεμιτό να ευθυγραμμίζονται τα σύμβολα των σχολίων και να μην τοποθετούνται ποτέ σχόλια μέσα σε σχόλια (ένθετα σχόλια) γιατί μπορεί να δημιουργηθεί πρόβλημα σε μερικούς μεταγλωττιστές. Παρακάτω παρουσιάζονται μερικές περιπτώσεις σωστών και λανθασμένων σχολίων: 1 Λεπτομερής ανάλυση του συντακτικού και της λειτουργίας των συναρτήσεων στο αντίστοιχο κεφάλαιο.

16 1.8 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ α) /* Αυτό /* το σχόλιο */ είναι λανθασμένο */ β) /* Αυτό το σχόλιο είναι σωστό */ Παρατηρήσεις: 1. Η γλώσσα C διαχωρίζει τα κεφαλαία γράμματα από τα μικρά (case sensitive). Η εντολή Printf δεν είναι ίδια με την printf. Όλες οι εντολές στη C γράφονται με μικρά γράμματα! 2. Η σωστή στηλοθεσία είναι πολύ σημαντική καθώς καθιστά τον κώδικα ευανάγνωστο. 3. Η συνάρτηση printf ανήκει στις μορφοποιούμενες συναρτήσεις εισόδου εξόδου. Ονομάζεται μορφοποιούμενη γιατί δίνει τη δυνατότητα στο χρήστη να μορφοποιήσει την έξοδό της, δυνάμενη να εκτυπώσει μεταβλητές διαφόρων τύπων και με διάφορους τρόπους, χρησιμοποιώντας κατάλληλα σύμβολα. Δυαδική της printf είναι η scanf, η οποία λαμβάνει πληροφορία από την είσοδο (πληκτρολόγιο). Η πρόταση printf( "This is a test.\n" ); καλεί την printf για να τυπωθεί το καθορισμένο κείμενο. Τα ορίσματα εισόδου (input arguments) περικλείονται από παρενθέσεις και προσδιορίζουν το προς εκτύπωση κείμενο και τη μορφή με την οποία θα εκτυπωθεί. Τέλος, το σύμβολο \n, που ανήκει στις ακολουθίες διαφυγής, σημαίνει «μετακινήσου στην επόμενη γραμμή». Λεπτομερής περιγραφή της λειτουργίας των συναρτήσεων εισόδου εξόδου δίνεται στο επόμενο κεφάλαιο. 4. Πέραν της include, μία σημαντική οδηγία προς τον προεπεξεργαστή είναι η define, η οποία αντιστοιχίζει ένα όνομα με μία σταθερά ή με μία σειρά χαρακτήρων. Οποτεδήποτε εμφανίζεται το όνομα μέσα στον κώδικα, αντικαθίσταται αυτόματα με την τιμή της σταθεράς ή τη συμβολοσειρά. Για παράδειγμα, εάν χρησιμοποιηθεί η λέξη TRUE στη θέση της τιμής 1 και η λέξη FALSE στη θέση της τιμής 0, θα δοθούν δύο define ως εξής: #define TRUE 1 #define FALSE 0

17 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ 1.9 Εάν αντικατασταθεί ολόκληρη φράση, μπορεί να εμφανισθεί στην οθόνη με χρήση της printf: #define TITLOS "TEI of Serres\nDpt of Informatics and Communications\n" printf( TITLOS ); To αποτέλεσμα είναι: TEI of Serres Dpt of Informatics and Communications Μία συνηθισμένη χρήση της define είναι για τον καθορισμό του μεγέθους στοιχείων, όπως είναι η διάσταση ενός πίνακα, τα οποία μπορεί να αλλάξουν κατά την εκτέλεση του προγράμματος. Περισσότερα για αυτό το ζήτημα θα αναφερθούν στο κεφάλαιο Λεξιλόγιο της γλώσσας C Από τα αναφερθέντα στην προηγούμενη παράγραφο γίνεται φανερό ότι η λειτουργία τής C στηρίζεται σε ένα λεξιλόγιο. Το λεξιλόγιο της C περιλαμβάνει τέσσερις μείζονες κατηγορίες λέξεων: 1. Δεσμευμένες λέξεις 2. Λέξεις κλειδιά 3. Τελεστές 4. Αναγνωριστές Δεσμευμένες λέξεις Οι δεσμευμένες λέξεις (reserved words) χρησιμοποιούνται από τη C κατά τρόπο αποκλειστικό και πρέπει να αποφεύγεται η χρήση τους ως ονόματα. Αποτελούνται από: Ονόματα συναρτήσεων πρότυπης βιβλιοθήκης (runtime function names), όπως printf, abs κ.λ.π. Macro names. Είναι ονόματα που περιέχονται σε αρχεία κεφαλίδας για ορισμό μακροεντολών, π.χ. EOF, INT_MAX. Τype names. Είναι ονόματα τύπων σε ορισμένα αρχεία κεφαλίδας, π.χ. time_t, va_list. Ονόματα εντολών προεπεξεργαστή (preprocessor). Είναι ονόματα που χρησιμοποιεί προεπεξεργαστής της C και έχουν προκαθορισμένη σημασία, π.χ. include, define. Ονόματα που αρχίζουν με το χαρακτήρα υπογράμμισης _ και έχουν δεύτερο

18 1.10 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ χαρακτήρα τον ίδιο ή κεφαλαίο γράμμα, π.χ. _DATE_, _FILE_ Λέξεις κλειδιά Οι λέξεις κλειδιά (keywords) είναι λεκτικές μονάδες, οι οποίες είτε μόνες τους είτε με άλλες λεκτικές μονάδες χαρακτηρίζουν κάποια γλωσσική κατασκευή. Π.χ. η λέξη int αναπαριστά τον ακέραιο τύπο δεδομένων και το ζεύγος if else χρησιμοποιείται στον έλεγχο ροής προγράμματος. Οι λέξεις κλειδιά, αν και είναι ένας περιορισμός των γλωσσών, αυξάνουν την αναγνωσιμότητα και αξιοπιστία των προγραμμάτων ενώ ταυτόχρονα επιταχύνουν τη διαδικασία της μεταγλώττισης. Λέξεις κλειδιά όπως if, else, for, case, while, do έχουν γίνει κοινά αποδεκτές, διευκολύνοντας την εκμάθηση των γλωσσών προγραμματισμού. Στον πίνακα που ακολουθεί παρατίθενται οι λέξεις κλειδιά της C: Αναγνωριστές auto else register union break enum return unsigned case extern short void char float signed volatile const for sizeof while continue goto static default if struct do int switch double long typedef Πίνακας 1.1 Λέξεις κλειδιά της C Οι αναγνωριστές (identifiers) είναι λεκτικές μονάδες που κατασκευάζει ο προγραμματιστής. Αυτές οι λεκτικές μονάδες χρησιμοποιούνται συνήθως ως ονόματα που ο προγραμματιστής δίνει σε δικές του κατασκευές, όπως μεταβλητές, σταθερές, συναρτήσεις και δικούς του τύπους δεδομένων. Ένα όνομα προσδιορίζει μοναδιαία, από το σύνολο των κατασκευών του προγράμματος, την κατασκευή στην οποία αποδόθηκε, εξ ου και το όνομα αναγνωριστής. Περισσότερα στοιχεία για τους αναγνωριστές σημειώνονται στην

19 ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Κανόνες δημιουργίας ευανώγνωστων προγραμμάτων Θα πρέπει να αποφεύγονται ονόματα ενός χαρακτήρα, όπως i, j, x, y (εκτός από ειδικές περιπτώσεις που θα εξετασθούν αργότερα). Τα ονόματα που χρησιμοποιούνται θα πρέπει να είναι εκφραστικά ονόματα. Συγκεκριμένα: 1. Η μεταβλητή που αναπαριστά την ταχύτητα θα μπορούσε να ονομασθεί velocity και τη μέγιστη τιμή της max_velocity ή maxvelocity. 2. Η συνάρτηση που εμφανίζει τα λάθη στην οθόνη μπορεί να λάβει τα ενδεικτικά ονόματα display_error ή displayerror. Για καλύτερη αναγνωσιμότητα των μεταβλητών που αποτελούνται από δύο ή περισσότερες λέξεις ο προγραμματιστής θα πρέπει να αποφασίσει εάν θα χρησιμοποιήσει τη μορφή display_error ή τη μορφή displayerror. Η σύμβαση που θα επιλεγεί θα πρέπει να τηρηθεί σε όλο το πρόγραμμα. Θα πρέπει να χρησιμοποιούνται μικρά γράμματα για ονόματα μεταβλητών.

20 Κεφάλαιο 2 ΜΕΤΑΒΛΗΤΕΣ ΣΤΑΘΕΡΕΣ Ι/Ο ΚΟΝΣΟΛΑΣ 2.1 Η έννοια της μεταβλητής Ένα από τα βασικότερα πλεονεκτήματα του υπολογιστή είναι η δυνατότητά του να διαχειρίζεται πληροφορία, σε μορφή αριθμητικών δεδομένων, γραμμάτων ή ακολουθίας γραμμάτων. Τα δεδομένα αποθηκεύονται στη μνήμη και απαιτούν ένα μέσο για να κληθούν από τα προγράμματα, να εισαχθούν σε υπολογισμούς και να δημιουργήσουν νέα δεδομένα. Αρχικά οι προγραμματιστές χειρίζονταν τα δεδομένα δουλεύοντας με τις διευθύνσεις μνήμης στις οποίες ήταν αποθηκευμένα. Με την αύξηση του μεγέθους και της πολυπλοκότητας των προγραμμάτων, αυτός ο τρόπος διαχείρισης έθετε πολλούς περιορισμούς και αποτελούσε πηγή προβλημάτων. Η λύση στο πρόβλημα της αναφοράς σε δεδομένα και στη διαχείρισή τους δόθηκε με την εισαγωγή της έννοιας των μεταβλητών, οι οποίες είναι φορείς δεδομένων. Το όνομα μίας μεταβλητής είναι άμεσα συνδεδεμένο με τη διεύθυνση στην οποία είναι αποθηκευμένο το δεδομένο. Με τον τρόπο αυτό ο προγραμματιστής μπορεί να χειρισθεί δεδομένα χωρίς να γνωρίζει την ακριβή διεύθυνση της μνήμης όπου αυτά τοποθετούνται. Επιγραμματικά, η χρήση των μεταβλητών είναι ίδια με εκείνη της άλγεβρας, π.χ. η παράσταση y=3x+5 ισχύει τόσο στα μαθηματικά όσο και στις γλώσσες προγραμματισμού, με τα x και y να είναι μεταβλητές. Ωστόσο στον προγραμματισμό η χρήση της είναι γενικευμένη: η μεταβλητή είναι μία θέση μνήμης για ένα δεδομένο. Δημιουργείται όταν δηλώνεται και η τιμή της μπορεί να είναι άγνωστη έως ότου χρησιμοποιηθεί από το πρόγραμμα Δήλωση μεταβλητής Οι μεταβλητές δηλώνονται με πρόταση ορισμού, η οποία τελειώνει πάντοτε με (;). Η

21 2.2 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ μορφή της δήλωσης είναι: data_type var, var, ; π.χ. int counter1, counter2; Οι μεταβλητές δηλώνονται στην αρχή μίας συνάρτησης, συνήθως αμέσως μετά το εισαγωγικό άγκιστρο (), και οπωσδήποτε πριν από τη χρήση τους. Η δήλωση γνωστοποιεί στο μεταγλωττιστή το όνομα και τις ιδιότητες της μεταβλητής. Μία δήλωση έχει ως αποτέλεσμα τη σύνδεση του ονόματος της μεταβλητής με: τον ανάλογο τύπο δεδομένων, γεγονός που λαμβάνει χώρα στο χρόνο μεταγλώττισης (compile time) μία θέση μνήμης κατάλληλου μεγέθους, γεγονός που λαμβάνει χώρα στο χρόνο εκτέλεσης (run time) Ονομασία μεταβλητής Σε ό,τι αφορά την ονοματολογία, ακολουθούνται οι εξής κανόνες: Στην C τα ονόματα των μεταβλητών σχηματίζονται από: α) τα γράμματα του αλφαβήτου β) τα ψηφία 0 έως 9 γ) το χαρακτήρα υπογράμμισης (underscore) Το όνομα πρέπει να ξεκινά με γράμμα ή με χαρακτήρα υπογράμμισης (στη δεύτερη περίπτωση ο επόμενος χαρακτήρας πρέπει να είναι μικρό γράμμα). Το όνομα δεν πρέπει να είναι ίδιο με δεσμευμένη λέξη. Σημαντικοί είναι μόνο οι πρώτοι 31 χαρακτήρες του ονόματος. Οι υπόλοιποι δε λαμβάνονται υπόψη. Τα όνομα μεταβλητής πρέπει να είναι ενδεικτικό της ιδιότητάς της ή του τύπου δεδομένου που αντιπροσωπεύει, έτσι ώστε να δίνει πληροφορία στον προγραμματιστή. Με βάση τα παραπάνω, ακολουθούν ενδεικτικές περιπτώσεις ονοματολογίας. Έγκυρα ονόματα μεταβλητών: totalarea max_amount counter1 Counter1 _temp_in_f Μη έγκυρα ονόματα μεταβλητών: $product total% 3rd

22 ΜΕΤΑΒΛΗΤΕΣ ΣΤΑΘΕΡΕΣ Ι/Ο ΚΟΝΣΟΛΑΣ 2.3 Απαράδεκτα ονόματα μεταβλητών: l 1 x2 maximum_number_of_students_in_my_class 2.2 Τύποι μεταβλητών Οι μεταβλητές της γώσσας C ανήκουν σε δύο κατηγορίες. Η κατηγορία των βαθμωτών τύπων περιλαμβάνει τους ακέραιους (integers), οι οποίοι δηλώνονται με την κωδική λέξη int, τους πραγματικούς, οι οποίοι μερίζονται στους αριθμούς κινητής υποδιαστολής με κωδική λέξη float και τους αριθμούς διπλής ακρίβειας με κωδική λέξη double, τη μεταβλητή χαρακτήρα (character, char), τους δείκτες (pointers) και τον απαριθμητικό τύπο (enumerated, enum). Στην κατηγορία των συναθροιστικών τύπων ανήκουν οι πίνακες, οι δομές (struct) και οι ενώσεις (union). Στη συνέχεια του κεφαλαίου γίνεται αναφορά στους βασικούς τύπους της C: char, int, float, double και σε επόμενο κεφάλαιο αναπτύσσονται οι πίνακες. Οι άλλοι τύποι μεταβλητών θα μελετηθούν αργότερα Ο τύπος του χαρακτήρα Ο τύπος του χαρακτήρα (char) παριστάνει απλούς χαρακτήρες του αλφάβητου της γλώσσας. Βρίσκεται ανάμεσα σε απλά εισαγωγικά (π.χ. 'C', '2', '*', ')'). Η δήλωση της μεταβλητής χαρακτήρα ακολουθεί τον εξής φορμαλισμό: char όνομα_μεταβλητής; π.χ. char choice; Υπάρχει η δυνατότητα ταυτόχρονα με τη δήλωση να αποδοθεί αρχική τιμή στη μεταβλητή: char choice='α'; Η εισαγωγή τιμών στις μεταβλητές χαρακτήρα γίνεται με χρήση της συνάρτησης scanf και του προσδιοριστή (specifier) %c (character). Η πρόταση scanf( "%c", &ch ); διαβάζει από την κύρια είσοδο (πληκτρολόγιο) ένα χαρακτήρα και τον αποδίδει στη 1 Στην πορεία ανάγνωσης του κειμένου ο αναγνώστης θα παρατηρήσει ότι οι ονομασίες των μεταβλητών δε συνάδουν πάντοτε με τους κανόνες που αναφέρονται, καθώς χρησιμοποιούνται μεταβλητές με ένα ή δύο γράμματα. Η χρήση τους γίνεται συγγραφική αδεία, επιβληθείσα για λόγους πρακτικούς, έτσι ώστε να μη διευρύνεται ο κώδικας.

23 2.4 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ μεταβλητή ch. Θα πρέπει να προσεχθεί η χρήση του & πριν από τη μεταβλητή. Ονομάζεται τελεστής διεύθυνσης και προηγείται πάντοτε των μεταβλητών στην εντολή scanf. Η εκτύπωση μεταβλητών χαρακτήρα γίνεται με χρήση της συνάρτησης printf και του προσδιοριστή %c. Η πρόταση printf( "The character is %c\n", choice ); θα τυπώσει (θεωρώντας ότι στη choice εισήχθη ο Α) Παρατήρηση: The character is Α Επειδή κάθε χαρακτήρας του κώδικα ASCII (American Standard Code for Information Interchange) αντιστοιχεί σε έναν οκταψήφιο δυαδικό αριθμό, εάν αντί του %c χρησιμοποιηθεί ο προσδιοριστής %d (decimal), η printf θα εμφανίσει τον ASCII κωδικό τού χαρακτήρα. Η πρόταση θα τυπώσει printf( "The ASCII Code of %c is %d\n", choice,choice); The ASCII Code of A is 65 όπου 65 είναι το δεκαδικό ισοδύναμο του δυαδικού κωδικού ASCII για το χαρακτήρα Α. Ο μεταγλωττιστής απαιτεί 1 byte μνήμης για την αποθήκευση της τιμής μίας μεταβλητής χαρακτήρα. Στο σχήμα 2.1 παρουσιάζονται οι διαδικασίες της αποθήκευσης και ανάκλησης για το χαρακτήρα Α. Η τιμή της μεταβλητής μετατρέπεται σε ακέραιο (ενέργεια 1 του σχήματος 2.1), ο οποίος αποθηκεύεται (ενέργεια 2). Στην περίπτωση ανάκλησης της τιμής, εκτελείται η αντίστροφη διεργασία. Ο αριθμός μετατρέπεται σε χαρακτήρα μέσω του προσδιοριστή %c και ακολούθως είτε τυπώνεται ο χαρακτήρας (ενέργεια 3) είτε τυπώνεται το δεκαδικό ισοδύναμο μέσω του προσδιοριστή %d (ενέργεια 4). Σε κάθε περίπτωση, ο μεταγλωττιστής είναι υπεύθυνος για το ότι ο υπολογιστής διαχειρίζεται τα bits και bytes σύμφωνα με τους τύπους που δηλώνονται.

24 ΜΕΤΑΒΛΗΤΕΣ ΣΤΑΘΕΡΕΣ Ι/Ο ΚΟΝΣΟΛΑΣ 2.5 Σχ Μη εκτυπούμενοι χαρακτήρες Αποθήκευση και ανάκληση ASCII χαρακτήρα Οι σταθερές τύπου χαρακτήρα «νέα γραμμή (new-line)» και «στηλοθέτης (tab)» ανήκουν στην κατηγορία των μη εκτυπούμενων χαρακτήρων, τους οποίους η C αναπαριστά με τις «ακολουθίες διαφυγής (escape sequences)» \n και \t, αντίστοιχα. Η παρακάτω πρόταση δίνεται ως παράδειγμα χρήσης χαρακτήρων διαφυγής: printf( "Write, \" a \\ is a backslash. \"\n" ); Η πρόταση θα εμφανίσει στην κύρια έξοδο (οθόνη): Write, " a \ is a backslash. " Οι μη εκτυπούμενοι χαρακτήρες και οι αντίστοιχες ακολουθίες διαφυγής παρατίθενται στον πίνακα 2.1: Χαρακτήρας Ακολουθία Χαρακτήρας Ακολουθία συναγερμός (κουδούνι) \a πλάγια γραμμή \\ οπισθοχώρηση \b λατινικό ερωτηματικό \? αλλαγή σελίδας \f μονό εισαγωγικό \ νέα γραμμή \n διπλό εισαγωγικό \ επαναφορά κεφαλής \r οκταδικός αριθμός \ooo οριζόντιος στηλοθέτης \t δεκαεξαδικός αριθμός \xhhh κατακόρυφος στηλοθέτης \v Πίνακας 2.1 Μη εκτυπούμενοι χαρακτήρες και αντίστοιχες ακολουθίες διαφυγής

25 2.6 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Παράδειγμα 2.1 Να καταστρωθεί πρόγραμμα που να επιτελεί τα παρακάτω: Ζήτησε από το χρήστη ένα χαρακτήρα Πάρε από το χρήστη το χαρακτήρα Τύπωσε το χαρακτήρα και τον ASCII κωδικό του Βρες τον επόμενο χαρακτήρα Τύπωσέ τον μαζί με τον κωδικό του #include <stdio.h> void main() char ch,next_ch; printf( "Write a character:\t" ); scanf( "%c",&ch ); printf( "The ASCII code of char %c is %d\n", ch, ch ); next_ch=ch+1; /* βρίσκει τον επόμενο χαρακτήρα */ printf( "The ASCII code of char %c is %d\n", next_ch, next_ch ); Ο τύπος του ακεραίου Ο τύπος του ακεραίου (int από τη λέξη integer) χρησιμοποιείται για να παραστήσει ακέραιους αριθμούς. Η περιοχή τιμών εξαρτάται από την αρχιτεκτονική του μηχανήματος. Για έναν υπολογιστή που διαθέτει 2 bytes (16 bits) για κάθε ακέραιο, το σύνολο των δυνατών τιμών είναι 16 2 = Εάν θεωρηθεί ότι τις μισές τιμές θα καταλάβουν αρνητικοί ακέραιοι και τις υπόλοιπες μισές θετικοί, η περιοχή τιμών του τύπου int είναι από έως , με την ακόλουθη αντιστοιχία δυαδικής και δεκαδικής τιμής: ( 32768) ( ) 2 10 ( 1) ( ) 2 10

26 ΜΕΤΑΒΛΗΤΕΣ ΣΤΑΘΕΡΕΣ Ι/Ο ΚΟΝΣΟΛΑΣ 2.7 ( ) 2 (0) 10 ( ) ( ) 2 10 Η δήλωση της μεταβλητής ακεραίου ακολουθεί τον εξής φορμαλισμό: int όνομα_μεταβλητής; π.χ. int num; Υπάρχει η δυνατότητα ταυτόχρονα με τη δήλωση να αποδοθεί αρχική τιμή στη μεταβλητή: int num=46; Εάν πριν από τη λέξη int τοποθετηθεί ο προσδιοριστής long τότε οι ακέραιοι long int εξασφαλίζουν αποθηκευτικό χώρο 32 bits. Αντίστοιχα, ο προσδιοριστής unsigned χρησιμοποιείται πριν από τη λέξη int για να χαρακτηρίσει τη μεταβλητή χωρίς πρόσημο, η οποία λαμβάνει τιμές από 0 έως για ακέραιο 16 bits. Σε περιβάλλοντα 4 bytes (32 bits) όπως τα Windows XP, το σύνολο των δυνατών τιμών είναι 32 2 = Έτσι οι προσημασμένοι ακέραιοι αποθηκεύουν τιμές στο διάστημα από έως Ένας ακέραιος short int είναι τουλάχιστον 16 bits και ο int είναι τουλάχιστον τόσο μεγάλος όσο ο short int (συνήθως είναι 32 bits). Η εισαγωγή τιμών στις ακέραιες μεταβλητές γίνεται με χρήση της συνάρτησης scanf και του προσδιοριστή %d. Η πρόταση scanf( "%d", &num ); διαβάζει από το πληκτρολόγιο έναν ακέραιο και τον αποδίδει στη μεταβλητή num. Η εκτύπωση ακέραιων μεταβλητών γίνεται με χρήση της συνάρτησης printf και των προσδιοριστών %d, %o, %x για την εμφάνιση σε δεκαδική, οκταδική και δεκαεξαδική μορφή, αντίστοιχα. Οι προσδιοριστές l (long), h (short), και u (unsigned) τοποθετούνται πριν από τους d, o, x. H πρόταση printf( "dec=%d, octal=%o, hex=%x", num,num,num ); θα τυπώσει (θεωρώντας ότι η num λαμβάνει την τιμή 46): dec=46, octal=56, hex=2e Παρατηρήσεις: 1. Υπάρχει η δυνατότητα να καθορισθεί ο αριθμός των ψηφίων που θα τυπωθούν,

27 2.8 ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ τοποθετώντας τον επιθυμητό αριθμό ανάμεσα στο % και το d. Εάν ο αριθμός είναι μικρότερος από τον απαιτούμενο αριθμό ψηφίων του ακέραιου, η επιλογή δε θα ληφθεί υπόψη. Στην αντίθετη περίπτωση, στις πλεονάζουσες θέσεις θα τοποθετηθούν κενά. Για το λόγο αυτό, ο αριθμός που τοποθετείται στον προσδιοριστή %d ονομάζεται καθοριστικό ελάχιστου πλάτους πεδίου. Με αυτόν τον τρόπο, σε διαδοχικές printf θα υπάρξει ευθυγράμμιση των αποτελεσμάτων κατά στήλες (βλ. Παράδειγμα 5.9). Οι προτάσεις printf( "dec=%1d, octal=%4o, hex=%4x", num,num,num ); θα τυπώσουν αντίστοιχα printf( "dec=%4d, octal=%4o, hex=%4", num,num,num ); dec=46, octal= 56, hex= 2e dec= 46, octal= 56, hex= 2e 2. Όταν γράφεται ένας αριθμός στον πηγαίο κώδικα χωρίς δεκαδικό ή εκθετικό μέρος, ο μεταγλωττιστής το χειρίζεται ως ακέραια σταθερά. Η σταθερά 245 αποθηκεύεται ως int, ενώ η σταθερά αποθηκεύεται ως long int. Εάν ορισθεί η σταθερά 8965 ως 8965L, ο μεταγλωττιστής αναγκάζεται να δεσμεύσει χώρο για long int. Παράδειγμα 2.2 Να καταστρωθεί πρόγραμμα που να εξετάζει το μήκος του τύπου ακεραίου. #include <stdio.h> #include <climits.h> void main() // limits.h για παλαιότερα συστήματα int number_int=int_max; // Μέγιστος int: ορίζεται στο climits.h short int number_short=shrt_max; // Μέγιστος short int long int number_long=long_max; // Μέγιστος long integer /* ο τελεστής sizeof δίνει το μέγεθος ενός τύπου δεδομένου ή μίας μεταβλητής */ printf( "int is %d bytes\n",sizeof(int) );

28 ΜΕΤΑΒΛΗΤΕΣ ΣΤΑΘΕΡΕΣ Ι/Ο ΚΟΝΣΟΛΑΣ 2.9 printf( "short is %d bytes\n",sizeof(short) ); printf( "long is %d bytes\n",sizeof(long) ); printf( "\nmax int:%d min int:%d\n",number_int,int_min ); printf( "\nmax short:%d min short:%d\n",shrt_max,shrt_min ); printf( "\nmax long:%d min long:%d\n",number_long,long_min ); Από τα αποτελέσματα προκύπτει ότι ταυτίζονται τα bytes για int και long, γιατί στην έκδοση 5 της Borland C++ και με λειτουργικά συστήματα Windows 95 και μεταγενέστερα ο int καταλαμβάνει 4 bytes Τύποι πραγματικών αριθμών Οι πραγματικοί αριθμοί είναι οι αριθμοί που διαθέτουν κλασματικό μέρος και εκφράζονται συνήθως στις ακόλουθες μορφές: Αριθμός με δεκαδικά Επιστημονική σημειογραφία Εκθετική σημειογραφία x e x e x e+04 Η γλώσσα C διαθέτει δύο τύπους για αναπαράσταση πραγματικών αριθμών. Τον τύπο float για αριθμούς κινητής υποδιαστολής απλής ακρίβειας και τον τύπο double για αριθμούς κινητής υποδιαστολής διπλής ακρίβειας. Η δήλωση της μεταβλητής float ή double ακολουθεί τον εξής φορμαλισμό:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού ΚΕΦΑΛΑΙΟ 1 ο Περί Προγραμματισμού και Γλωσσών Προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα Οι ηλεκτρονικοί υπολογιστές είναι ηλεκτρονικές συσκευές (όπως είναι και ένα ραδιόφωνο) που επιτρέπουν

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

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

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

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

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

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

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Εισαγωγή στην Fortran ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός (Λέκτορας) nearchos@cs.ucy.ac.cy Γραφείο #B120, Τηλ. ext. 2744 FORTRAN: Ιστορική Αναδρομή 1954 1957, πρώτος

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

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

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

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

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

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

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

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

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

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

Αναπαράσταση Μη Αριθμητικών Δεδομένων Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο προγραμματισμό Η/Υ

Εισαγωγή στο προγραμματισμό Η/Υ Εισαγωγή στο προγραμματισμό Η/Υ Fortran 90/95/2003 Silverfrost FTN95: Fortran for Windows http://www.silverfrost.com/default.aspx http://users.auth.gr/~ppi/fortran/ Ηλεκτρονικός Υπολογιστής Hardware Software

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

Από την πρώτη στην τέταρτη έκδοση...

Από την πρώτη στην τέταρτη έκδοση... Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

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

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

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

Fortran και Αντικειμενοστραφής προγραμματισμός. www.corelab.ntua.gr/courses/fortran_naval/naval

Fortran και Αντικειμενοστραφής προγραμματισμός. www.corelab.ntua.gr/courses/fortran_naval/naval Fortran και Αντικειμενοστραφής προγραμματισμός Διδάσκοντες: www.corelab.ntua.gr/courses/fortran_naval/naval Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών / ΤΕΙ Λάρισας, Προγραμματισμός Ι

Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών / ΤΕΙ Λάρισας, Προγραμματισμός Ι ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι ( Γλώσσα Προγραμματισμού C ) Δρ. Ηλίας Κ. Σάββας, Χρήστος

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

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

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

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

Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C

Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C Ελευθέριος. Πολυχρονόπουλος Επίκουρος Καθηγητής ΠΑΤΡΑ 2008

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

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

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

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

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

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

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

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

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

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

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ «Βασική Θεωρία, Παραδείγματα και Εργαστηριακές Ασκήσεις για την Εισαγωγή στον Προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο. Εισαγωγή. Ενδεικτικές. σελίδες

Κεφάλαιο. Εισαγωγή. Ενδεικτικές. σελίδες Κεφάλαιο Εισαγωγή Η γλώσσα C σε βάθος Εισαγωγή Οκτώβριος του 1983. Ως µεταπτυχιακός φοιτητής, γνώρισα µια δεκαοχτάχρονη αµερικανιδούλα που την έλεγαν BCPL. H σχέση µας κράτησε ένα χρόνο περίπου. Ευέλικτη

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

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

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

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

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

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

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

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

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

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

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

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

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

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

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

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

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

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

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

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

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

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Εκθετική Παράσταση (Exponential Notation) Οι επόµενες είναι ισοδύναµες παραστάσεις του 1,234 123,400.0

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

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

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

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

Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

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

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

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

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

Κεφάλαιο 2: Μεταφραστές

Κεφάλαιο 2: Μεταφραστές Κεφάλαιο 2: Μεταφραστές Αρχές Γλωσσών και Προγραμματισμού Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

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