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

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

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

Transcript

1

2

3 Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια μετά το βιβλίο αυτό θα βρισκόταν στη τέταρτη του έκδοση και θα γνώριζε τόσο μεγάλη αποδοχή από την ακαδημαϊκή κοινότητα και το ευρύτερο αναγνωστικό κοινό. Η δεύτερη έκδοση του βιβλίου είχε ελάχιστες διαφορές από την πρώτη. Διορθώθηκαν τα όποια λάθη εντοπίστηκαν στην πρώτη έκδοση και, επιπλέον, το βιβλίο συνοδευόταν τώρα από ένα CD. Το CD περιλάμβανε το ολοκληρωμένο περιβάλλον ανάπτυξης DEV C++, τον κώδικα των προγραμμάτων του βιβλίου, καθώς και τις απαντήσεις όλων των ασκήσεων. Η τρίτη έκδοση είχε πολλές αλλαγές. Προστέθηκε ένα νέο κεφάλαιο καθώς και πολλές ενότητες στα υπάρχοντα κεφάλαια. Ορισμένα τμήματα ξαναγράφηκαν, προστέθηκαν νέα σχήματα, και βελτιώθηκαν τα υπάρχοντα. Στο συνοδευτικό CD της 3ης έκδοσης, περιέχονται πλέον όχι μόνο οι λύσεις όλων των ασκήσεων, αλλά και ο κώδικας της λύσης, όπως επίσης και ο κώδικας όλων των παραδειγμάτων του βιβλίου. Έγιναν σημαντικές αλλαγές τόσο στην εμφάνιση όσο και στη δομή του βιβλίου, γεγονός που το έκανε πιο ξεκούραστο και λειτουργικό. Από το 2009 μέχρι σήμερα διδάσκω διαδικαστικό και αντικειμενοστρεφή προγραμματισμό στο τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας του Πανεπιστημίου Αιγαίου. Η διαδικασία της διδασκαλίας, σε τόσους πολλούς φοιτητές, μου έδωσε την ευκαιρία να εντοπίσω τα σημεία που δυσκόλευαν περισσότερο και να δοκιμάσω διάφορες εκπαιδευτικές προσεγγίσεις. Η προσπάθεια αυτή αποτυπώνεται στην παρούσα έκδοση του βιβλίου. Έχουν γίνει σημαντικές προσθήκες και αλλαγές στα υπάρχοντα κεφάλαια και προστέθηκε ακόμη ένα. Η 4η αυτή έκδοση δίνει ακόμα μεγαλύτερο βάρος στο εκπαιδευτικό ύφος του βιβλίου και το εναρμονίζει πλήρως με το τελευταίο πρότυπο της γλώσσας (C99). Η ύλη πλαισιώνεται από περισσότερα παραδείγματα και ασκήσεις, προσανατολισμένα στην εμβάθυνση των εννοιών και των ιδιαίτερων χαρακτηριστικών της γλώσσας. Νίκος Μ. Χατζηγιαννάκης

4

5 Περιεχόμενα Πρόλογος Κεφάλαιο 1: Εισαγωγή Πώς να διαβάσετε αυτό το βιβλίο Η γλώσσα C Ιστορική αναδρομή Τα χαρακτηριστικά της C C Μια δομημένη γλώσσα C Μια γλώσσα για προγραμματιστές C Μια μεταφραστική γλώσσα Γιατί να μάθω C; Βασικές έννοιες του προγραμματισμού Μεταβλητές Σταθερές Παραστάσεις Εντολές Αναγνωριστικά Σχεδιασμός και ανάπτυξη προγραμμάτων Λογικό διάγραμμα Χρήση μεταβλητών σε λογικά διαγράμματα Κεφάλαιο 2: Μια πρώτη ματιά στη C Η δομή ενός προγράμματος στη C Το πρώτο σας πρόγραμμα στη C Ας ξαναγράψουμε το πρώτο μας πρόγραμμα Προγράμματα με περισσότερες συναρτήσεις Σχόλια προγράμματος Δηλώσεις μεταβλητών Ανάθεση τιμής σε μεταβλητή Αρχικές τιμές μεταβλητών Μεταβλητές μόνο για ανάγνωση Παραστάσεις Παραστάσεις με μέλη διαφορετικού τύπου Λογικές παραστάσεις Παραδείγματα κώδικα με παραστάσεις... 65

6 Η γλώσσα C σε βάθος Μετατροπή τύπου κατά την ανάθεση τιμής σε μεταβλητή Η C και οι αγκύλες της Σύνθετη πρόταση (compound statement) Προτάσεις Η οδηγία #include Η οδηγία #define Κεφάλαιο 3: Προετοιμασία για αργότερα Η C και η μνήμη Ο τελεστής & Ο τελεστής sizeof Τρεις συναρτήσεις παρακαλώ Η συνάρτηση printf() Η συνάρτηση scanf() Η συνάρτηση exit() Ολίγη if παρακαλώ Κεφάλαιο 4: Ο τύπος δεδομένων int Σταθερές τύπου int Μεταβλητές τύπου int Ακέραιοι χωρίς πρόσημο (unsigned) Αρχική τιμή μεταβλητής Αριθμητικοί τελεστές Χρήση τελεστών σύντμησης Ο τελεστής υπολοίπου % Δυαδικοί αριθμοί Μετατροπή δυαδικού σε δεκαδικό Μετατροπή δεκαδικού σε δυαδικό Οι δυαδικοί (bitwise) τελεστές Προτεραιότητα τελεστών Κεφάλαιο 5: Ο τύπος δεδομένων char Σταθερές τύπου char Οι χαρακτήρες είναι αριθμοί!!! Χαρακτήρες διαφυγής Μεταβλητές τύπου char Τρεις συναρτήσεις χειρισμού χαρακτήρων

7 Περιεχόμενα H scanf() και τα μικρά της προβλήματα! Συμβολοσειρές (character strings) Οι συμβολοσειρές έχουν τιμή; Πίνακας ASCII Κεφάλαιο 6: Float, double, και λοιποί τύποι δεδομένων Οι τύποι δεδομένων float και double Σταθερές τύπου float και double Μεταβλητές τύπου float και double Χρήση δεδομένων τύπου κινητής υποδιαστολής Η χρήση της printf() με δεδομένα κινητής υποδιαστολής Χρήση της συνάρτησης scanf() με δεδομένα τύπου float Οι συναρτήσεις pow() και sqrt() Βασικοί τύποι και παραλλαγές τους Ο τύπος δεδομένων bool Κεφάλαιο 7: Εντολές συνθήκης Η εντολή if σε μια δεύτερη ματιά H απλή πρόταση if Η πρόταση if-else Η πρόταση if - else if Η εντολή switch - case Ο τελεστής? Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης Η "επικίνδυνη" εντολή goto Ο βρόχος while O βρόχος do-while Ο βρόχος for Χορεύοντας με τη for! Απλά παραδείγματα Ένθετοι βρόχοι for Και άλλοι ένθετοι βρόχοι for Ο τελεστής "κόμμα" (,) Η εντολή break Η εντολή continue Καταμέτρηση και άθροιση σε επαναλαμβανόμενες διαδικασίες

8 Η γλώσσα C σε βάθος Υπολογισμός μέγιστου και ελάχιστου σε ένα σύνολο αριθμών Ανάγνωση χαρακτήρων από το πληκτρολόγιο Κεφάλαιο 9: Συναρτήσεις Oρισμός μιας συνάρτησης Συναρτήσεις χωρίς παραμέτρους Συναρτήσεις με παραμέτρους Συναρτήσεις που επιστρέφουν τιμή Συναρτήσεις που δεν επιστρέφουν τιμή Τύπος void Η κλήση μιας συνάρτησης Παράμετροι συνάρτησης Ορίσματα και μεταβίβαση παραμέτρων Χρήση συναρτήσεων βιβλιοθήκης Πρότυπα συναρτήσεων Συναρτήσεις χωρίς παραμέτρους, με ρητή δήλωση Ένα ξεκαθάρισμα Μετατροπή τύπου (type casting) Αυτόματη μετατροπή τύπου Κεφάλαιο 10: Εμβέλεια μεταβλητών Τοπικές μεταβλητές (local variables) Καθολικές μεταβλητές (global variables) Δήλωση τοπικών μεταβλητών σε σύνθετη πρόταση Στατικές τοπικές μεταβλητές (static local variables) Κεφάλαιο 11: Δείκτες Μεταβλητές δείκτη (Pointer variables) Δήλωση μιας μεταβλητής δείκτη Οι τελεστές & και * Μέχρι τώρα μάθαμε ότι Αριθμητική των δεικτών Δείκτες τύπου void Δείκτης NULL Εμφάνιση διευθύνσεων και περιεχόμενα δεικτών Ένας διαφορετικός τρόπος δήλωσης μιας μεταβλητής δείκτη Δείκτες και συμβολοσειρές Δείκτες σε δείκτες

9 Περιεχόμενα Δείκτες και συναρτήσεις Συναρτήσεις που επιστρέφουν δείκτη Παραστάσεις αριστερής τιμής (lvalues) Κεφάλαιο 12: Πίνακες Πίνακες (arrays) Πίνακες μίας διάστασης (1Δ) Χειρισμός πινάκων μίας διάστασης Οι πίνακες μίας διάστασης και οι δείκτες Χρήση πινάκων ως δείκτες Αρχικές τιμές ενός πίνακα μίας διάστασης Πίνακες πολλών διαστάσεων Πίνακες δύο διαστάσεων (2Δ) Χειρισμός πινάκων δύο διαστάσεων Γέμισμα πίνακα 2Δ με τυχαίους αριθμούς Άθροισμα των στοιχείων ενός πίνακα 2Δ Εύρεση της μεγαλύτερης και της μικρότερης τιμής σε έναν πίνακα 2Δ Επεξεργασία ανά γραμμή και ανά στήλη σε πίνακα 2Δ Αρχικές τιμές πινάκων 2Δ Πίνακες δύο διαστάσεων και δείκτες Πίνακες με περισσότερες από δύο διαστάσεις Πίνακες χαρακτήρων για αποθήκευση συμβολοσειρών Η χρήση της printf() και της scanf() με πίνακες χαρακτήρων Χειρισμός συμβολοσειρών Συναρτήσεις βιβλιοθήκης που εφαρμόζονται σε συμβολοσειρές Πίνακες χαρακτήρων 2Δ για αποθήκευση συμβολοσειρών Μεταβίβαση πινάκων σε συναρτήσεις Μεταβίβαση ενός πίνακα 1Δ σε συνάρτηση Παραδείγματα συναρτήσεων επεξεργασίας πινάκων Μεταβίβαση πινάκων πολλών διαστάσεων σε συναρτήσεις Άθροισμα των στοιχείων ενός πίνακα 2Δ Εύρεση της μεγαλύτερης και της μικρότερης τιμής σε έναν πίνακα 2Δ Εύρεση ενός αριθμού σε έναν πίνακα 2Δ Μορφοποιημένη εμφάνιση ενός πίνακα 2Δ

10 Η γλώσσα C σε βάθος Εμφάνιση του αθροίσματος κάθε γραμμής ενός πίνακα 2Δ Εμφάνιση της μέγιστης τιμής κάθε στήλης ενός πίνακα 2Δ Συναρτήσεις στις οποίες μεταβιβάζονται συμβολοσειρές Ένα ολοκληρωμένο πρόγραμμα επεξεργασίας ενός πίνακα 2Δ Εξειδικευμένοι πίνακες Πίνακες μεταβλητού μήκους (VLAs) Πίνακες δεικτών Δείκτες σε πίνακες Πίνακες δεικτών σε πίνακες Κεφάλαιο 13: Τύποι δεδομένων οριζόμενοι από το χρήστη Δομές (structures) Αναφορά στα πεδία μιας δομής Πίνακες από δομές Μεταβίβαση των πεδίων μιας δομής σε μια συνάρτηση Μεταβίβαση ολόκληρης της δομής σε συνάρτηση Δείκτες σε δομές Πίνακες από δομές και δείκτες Δομές μέσα σε δομές (ένθετες δομές) Πεδία εύρους ενός, ή περισσοτέρων, bit (bit fields) Ενώσεις (unions) Απαριθμήσεις (Enumerations) Η χρήση της typedef Κεφάλαιο 14: Κανάλια επικοινωνίας - Χειρισμός αρχείων Προκαθορισμένα ρεύματα Είδη ρευμάτων Χειρισμός αρχείων Αρχεία κειμένου και δυαδικά αρχεία Σειριακή και τυχαία προσπέλαση Άνοιγμα/κλείσιμο αρχείου fopen() fclose() ferror() fflush() fflushall()

11 Περιεχόμενα Αρχεία κειμένου (text files) fputc() fgetc() fprintf() fscanf() feof() fgets() fputs() Δυαδικά αρχεία (binary files) και τυχαία προσπέλαση fseek() rewind() fread() fwrite() Η λογική της τυχαίας προσπέλασης Κεφάλαιο 15: Προχωρημένα θέματα Αναδρομή Ο μηχανισμός κλήσης συναρτήσεων - χρήση της στοίβας Παράμετροι γραμμής εντολών Δείκτες σε συναρτήσεις!!! Δήλωση δείκτη σε συνάρτηση Ανάθεση τιμής σε μεταβλητή δείκτη σε συνάρτηση Κλήση συνάρτησης με τη χρήση ενός δείκτη σε συνάρτηση Έλεγχος των περιεχομένων ενός δείκτη σε συνάρτηση Δείκτες σε συναρτήσεις ως παράμετροι Πίνακες δεικτών σε συναρτήσεις Εμβόλιμες συναρτήσεις (inline functions) Προγράμματα με πολλά πηγαία αρχεία Ο μεταγλωττιστής GCC Μεταγλώττιση και σύνδεση ξεχωριστών αρχείων Δημιουργία δικών μας βιβλιοθηκών Συνοψίζοντας

12 Η γλώσσα C σε βάθος Κεφάλαιο 16: Αναζήτηση και ταξινόμηση Σειριακή αναζήτηση Δυαδική αναζήτηση (binary search) Ταξινόμηση φυσαλίδας (bubble sort) Ταξινόμηση επιλογής (selection sort) Ταξινόμηση quick sort Ταξινόμηση σε πίνακες δύο διαστάσεων Ταξινόμηση πίνακα συμβολοσειρών Κεφάλαιο 17: Δυναμική διαχείριση μνήμης Δυναμική κατανομή μνήμης Η συνάρτηση malloc() Η συνάρτηση calloc() Η συνάρτηση free() Η συνάρτηση realloc() Χρήση των συναρτήσεων χωρίς μετατροπή τύπου Δημιουργία δυναμικών πινάκων Δυναμικοί πίνακες μίας διάστασης Δυναμικοί πίνακες δύο διαστάσεων Κεφάλαιο 18: Δυναμικές δομές δεδομένων Συνδεδεμένες λίστες Απλά συνδεδεμένη λίστα (simple linked list)) Κυκλικά συνδεδεμένη λίστα (circularly linked list) Διπλά συνδεδεμένη λίστα (double linked list) Κυκλικά διπλά συνδεδεμένη λίστα Προσθήκη νέου κόμβου σε μια λίστα Υλοποίηση απλής συνδεδεμένης λίστας στη C Διατεταγμένη συνδεδεμένη λίστα Υλοποίηση της δομής στοίβας Υλοποίηση της δομής ουράς Δυαδικά δένδρα Δυαδικά δένδρα αναζήτησης Χειρισμός ενός δυαδικού δένδρου αναζήτησης Προσθήκη νέου κόμβου Αναζήτηση κόμβου Διάσχιση ενός δυαδικού δέντρου

13 Περιεχόμενα Διάσχιση κατά σειρά (in-order) Διάσχιση κατά προδιάταξη (pre-order) Διάσχιση κατά μεταδιάταξη (post-order) Διαγραφή κόμβου από το δυαδικό δένδρο Διαγραφή κόμβου χωρίς θυγατρικούς κόμβους Διαγραφή κόμβου με ένα θυγατρικό κόμβο Διαγραφή κόμβου με δύο θυγατρικούς κόμβους Διαγραφή του κόμβου ρίζας Υλοποίηση της δομής δυαδικού δένδρου αναζήτησης Κεφάλαιο 19: Ο προμεταγλωττιστής της C #include #define Μακροεντολές Μακροεντολές με περισσότερες προτάσεις #undef #if, #else, #elif και #endif #ifdef και #ifndef #error Αποσφαλμάτωση (debugging) Η μακροεντολή assert() assertions Κεφάλαιο 20: Από τη C, στη C C++, η κληρονομιά από τη C C++, μια αντικειμενοστρεφής γλώσσα Αντικειμενοστρεφής προγραμματισμός Κλάσεις και αντικείμενα (classes and objects) Ενθυλάκωση (Encapsulation) Κληρονομικότητα (Inheritance) Πολυμορφισμός (Polymorphism) Το πρώτο μας πρόγραμμα σε C Παίζοντας με αντικείμενα Το αντικείμενο cout Το αντικείμενο cin Διαφορές μεταξύ C και C Μερικά από τα νέα διαδικαστικά χαρακτηριστικά της C Τα αντικειμενοστρεφή χαρακτηριστικά της C

14 Η γλώσσα C σε βάθος Παράρτημα Α: Συναρτήσεις βιβλιοθήκης της C <ctype.h> <math.h> <stdio.h> <stdlib.h> <string.h> Παράρτημα Β: Το ολοκληρωμένο περιβάλλον του DEV C Εγκατάσταση του DEV C Οι βασικές λειτουργίες του DEV C Δημιουργία απλού προγράμματος με ένα πηγαίο αρχείο Αποθήκευση του αρχείου Σύνταξη του κώδικα Μεταγλώττιση και εκτέλεση του προγράμματος Δημιουργία νέου έργου (με περισσότερα πηγαία αρχεία) Επιλογή του είδους του έργου Προσθήκη πηγαίων αρχείων, μεταγλώττιση, και εκτέλεση του έργου. 645 Παράθυρο αποτελεσμάτων Το DEV C++ και οι Ελληνικοί χαρακτήρες Βιβλιογραφία Βιβλιογραφικές πηγές Αναφορές στο διαδίκτυο Ευρετήριο

15 Πρόλογος

16 Η γλώσσα C σε βάθος Πώς να προλογίσει κανείς ένα βιβλίο που αναφέρεται στη γλώσσα προγραμματισμού C, όταν έχουν γραφεί και ήδη κυκλοφορούν πάμπολλα βιβλία και εγχειρίδια χρήσης της C; Κι όμως, το έργο του υπογράφοντος δεν ήταν ιδιαίτερα δύσκολο, μιας και ο συγγραφέας του βιβλίου έχει φροντίσει να εφοδιάσει το δημιούργημα του με ελκυστικό και ιδιαίτερα εκπαιδευτικό περιεχόμενο, αποδίδοντας το ταυτόχρονα από μια πολύ ξεχωριστή και κατάλληλη οπτική γωνία. Ξεκινώντας ήδη από το εξώφυλλο, ο αναγνώστης προδιατίθεται για μια εις βάθος εξερεύνηση της γλώσσας C. Και δεν διαψεύδεται καθόλου στη συνέχεια, μιας και το υλικό του βιβλίου τον ταξιδεύει σ ολόκληρο τον συναρπαστικό κόσμο της C. Σε όλο αυτό το ταξίδι φαίνεται η εμμονή του συγγραφέα να ακολουθήσει προσεκτικά τη βέλτιστη διαδρομή, μ άλλα λόγια τη βέλτιστη διδακτική σειρά με απλό, κατανοητό, και εποπτικό τρόπο. Τo επιτυχημένο αποτέλεσμα αυτής της προσπάθειας δένει αποτελεσματικά με την πληρότητα του βιβλίου στην εκτενή θεώρηση της γλώσσας C, μέσα από πλήθος επεξηγηματικών σχημάτων και παραδειγμάτων. Η μεγάλη διδακτική εμπειρία του συγγραφέα είναι εμφανής και τον βοηθάει να προσεγγίζει τις πιο δύσκολες έννοιες, με ιδιαίτερο τρόπο, ώστε να γίνονται άμεσα αντιληπτές από τον αναγνώστη. Επιπλέον, το ύφος του βιβλίου είναι φιλικό και ελκυστικό, καθιστώντας το έτσι έναν ευχάριστο σύντροφο στην εκμάθηση και εμπέδωση της C. Το βιβλίο δεν σταματάει στη συμβατική κάλυψη της γλώσσας, αλλά διεισδύει και σε πιο προχωρημένους τομείς προγραμματισμού. Η αναφορά στις αναδρομικές διαδικασίες, στις μεθόδους ταξινόμησης και αναζήτησης, και η ανάπτυξη στοιχείων από τις δομές δεδομένων, όλα εναρμονισμένα με κώδικα της C, του δίνει μια πρόσθετη αξία και χαρακτήρα που συναντάται μόνο σε εξειδικευμένα βιβλία αλγορίθμων και δομών δεδομένων. Κάθε κεφάλαιο ακολουθείται από χαρακτηριστικά παραδείγματα, σύντομη ανασκόπηση, και πλήθος ασκήσεων κάθε βαθμού δυσκολίας. Το βιβλίο συνοδεύεται από ένα ολοκληρωμένο περιβάλλον ανάπτυξης της γλώσσας, τον κώδικα των παραδειγμάτων, τις απαντήσεις όλων των ασκήσεων, καθώς και από τον κώδικα των λύσεων τους. Το βιβλίο ήδη βρίσκεται στη 4η έκδοση του, γεγονός που αποδεικνύει τόσο την αποδοχή του όσο και την εμμονή του συγγραφέα για τη συνεχή βελτίωση του. Το συστήνω ανεπιφύλακτα σε εκπαιδευτικά ιδρύματα κάθε βαθμίδας, σε όσους διδάσκονται τη γλώσσα C, αλλά και σε όσους θα ήθελαν μεμονωμένα να μάθουν και να κατανοήσουν σε βάθος τη γλώσσα και τις τεχνικές προγραμματισμού που τη συνοδεύουν. Καθηγητής Πάνος Τραχανιάς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης 18

17 Κεφάλαιο Εισαγωγή

18 Η γλώσσα C σε βάθος Εισαγωγή Οκτώβριος του Ως μεταπτυχιακός φοιτητής, γνώρισα μια δεκαοχτάχρονη αμερικανιδούλα που την έλεγαν BCPL. H σχέση μας κράτησε ένα χρόνο περίπου. Ευέλικτη αλλά δύστροπη. Δύσκολο να την κατανοήσεις και δυσκολότερο να τη χειριστείς. Την επόμενη χρονιά μού γνώρισε τη μικρότερη αδελφή της, τη C. Από την πρώτη στιγμή με εντυπωσίασε, είχε πιο δομημένη σκέψη, ήταν τρομερά ευέλικτη και πολύ πιο φιλική. Η γνωριμία αυτή δεν άργησε να εξελιχθεί σε ένα μεγάλο έρωτα, ο οποίος κρατάει ακόμη και σήμερα. Από τότε συνάντησα και άλλες πολλές, πολύ πιο νέες και εμφανίσιμες, με πολλές δυνατότητες και προσόντα, έμεινα όμως πάντα πιστός στη μεσήλικα πια αγάπη μου, τη C. Ευτυχώς που είναι μόνο... μια γλώσσα προγραμματισμού! Και όμως, η πολύχρονη αυτή σχέση είχε και έναν καρπό, την παραγωγή πλούσιου εκπαιδευτικού υλικού που χρησιμοποιήθηκε όλα αυτά τα χρόνια για τη διδασκαλία της γλώσσας C και το οποίο αποτέλεσε τη βάση για τη συγγραφή αυτού του βιβλίου. Το βιβλίο αυτό απευθύνεται τόσο στον αρχάριο όσο και στον έμπειρο προγραμματιστή που θέλει να γνωρίσει τις αρχές και τη φιλοσοφία του δομημένου προγραμματισμού, μέσα από μια ευέλικτη και χωρίς όρια γλώσσα όπως η C. Με ιδιαίτερο τρόπο προσεγγίζονται όλα τα χαρακτηριστικά της γλώσσας και δίνεται έμφαση στην αναλυτική και σε βάθος επεξήγηση των "στρυφνών" της σημείων. Μεγάλο βάρος έχει δοθεί στη διδακτική σειρά αυτού του βιβλίου, ώστε η ανάγνωση και η κατανόηση ενός κεφαλαίου να προϋποθέτει μόνο τις γνώσεις που αποκτήθηκαν στα προηγούμενα κεφάλαια. Πώς να διαβάσετε αυτό το βιβλίο Αν είστε γνώστης μιας οποιασδήποτε άλλης γλώσσας προγραμματισμού μπορείτε να παραλείψετε το Κεφάλαιο 1 και να προχωρήσετε κατευθείαν στο επόμενο κεφάλαιο. Το Κεφάλαιο 2 είναι μια μικρή "περιοδεία" στη γλώσσα. Γίνεται μια πρώτη γνωριμία, ώστε να αποκτήσετε μια σφαιρική εικόνα από τη δομή και τα χαρακτηριστικά της και να μπορέσετε να καταστρώσετε τα πρώτα σας απλά προ- 20

19 Κεφάλαιο 1: Εισαγωγή γράμματα. Τα επόμενα κεφάλαια αναλύουν όλα τα χαρακτηριστικά της γλώσσας, δίνοντας έμφαση στην παρουσίαση των βασικών, αλλά και των περισσότερο πολύπλοκων εννοιών, με απλό, εποπτικό, και κατανοητό τρόπο. Τα κεφάλαια 15, 16, 17, 18 και 19, είναι μια βαθιά "βουτιά" τόσο σε εξειδικευμένες τεχνικές προγραμματισμού, όσο και στα ιδιαίτερα χαρακτηριστικά της γλώσσας. Τέλος, το κεφάλαιο 20 σας προετοιμάζει για το επόμενο φυσικό σας βήμα: Μια πρώτη επαφή με τον αντικειμενοστρεφή προγραμματισμό και τη γλώσσα C++! Το Παράρτημα Α περιέχει μια αναλυτική αναφορά στις πιο συχνά χρησιμοποιούμενες συναρτήσεις της C. Στο Παράρτημα Β θα βρείτε λεπτομέρειες για το περιβάλλον ανάπτυξης του DEV C++. Το DEV C++ είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης για τις γλώσσες C και C++, το οποίο διατίθεται δωρεάν κάτω από τη γενική άδεια χρήσης της GNU 1. Όλα τα προγράμματα που υπάρχουν σε αυτό το βιβλίο έχουν δοκιμαστεί στο περιβάλλον του DEV C++. Στο συνοδευτικό CD θα βρείτε το πρόγραμμα εγκατάστασης για το ολοκληρωμένο περιβάλλον του DEV C++, τον κώδικα των περισσοτέρων προγραμμάτων που βρίσκονται σε αυτό το βιβλίο, καθώς και τις απαντήσεις όλων των ασκήσεων. Επίσης, αποκλειστικά για το βιβλίο αυτό, έχει δημιουργηθεί ένας δικτυακός τόπος στη διεύθυνση με πλήθος επιπλέον αναφορών για τη γλώσσα C. Σας συνιστώ να εγκαταστήσετε το περιβάλλον του DEV C++ ώστε να μπορείτε να δοκιμάζετε τα παραδείγματα του βιβλίου αλλά και τα δικά σας προγράμματα. Το σύμβολο δίπλα από τον τίτλο μιας παραγράφου σημαίνει ότι η παράγραφος παρέχει εξειδικευμένη γνώση και μπορεί να παραλειφθεί σε πρώτη ανάγνωση, ή όταν δεν επιθυμούμε ιδιαίτερη εμβάθυνση. Στο μαύρο πλαίσιο που υπάρχει δίπλα από τα περισσότερα arxeio.c παραδείγματα αυτού του βιβλίου αναφέρεται το όνομα του αρχείου στο οποίο υπάρχει ο πηγαίος κώδικας του παραδείγματος. Αν έχετε ήδη εγκαταστήσει το DEV C++, ένα διπλό κλικ επάνω στο αρχείο του παραδείγματος είναι αρκετό για να ανοίξει το συγκεκριμένο αρχείο μέσα στο ολοκληρωμένο περιβάλλον του DEV C++. Η μεταγλώττιση και η εκτέλεση του προγράμματος γίνονται πλέον με ένα απλό κλικ σε ένα εικονίδιο του περιβάλλοντος (βλέπε Παράρτημα-Β)

20 Η γλώσσα C σε βάθος Η γλώσσα C Ιστορική αναδρομή Η C άρχισε να αναπτύσσεται στις αρχές του 1972 στα εργαστήρια Bell από τον Denis Ritchie ως γλώσσα προγραμματισμού συστημάτων, με σκοπό να δημιουργηθεί ένα νέο λειτουργικό σύστημα σε έναν υπολογιστή μίνι PDP-11. Η C είναι η εξέλιξη μιας προγενέστερης γλώσσας, της BCPL, η οποία αναπτύχθηκε από τον Martin Richards στα μέσα της δεκαετίας του 60. Μια πρώτη γλωσσική περιγραφή της C δημοσιεύθηκε έξι χρόνια αργότερα (1978), από τους Kernighan και Ritchie. Η έκδοση αυτή θεωρείται μέχρι σήμερα το ευαγγέλιο της C. Το 1983, το Εθνικό ίδρυμα προτύπων της Αμερικής (ANSI 2 ) ίδρυσε μία επιτροπή για να ετοιμάσει ένα πρότυπο για τη γλώσσα προγραμματισμού C. Αυτό το πρότυπο ολοκληρώθηκε το 1989 και αναφέρεται ως "ANSI C" ή C89. To 1990 το πρότυπο ANSI C, με ελάχιστες αλλαγές, αναγνωρίστηκε από το διεθνή οργανισμό προτύπων ως ISO/IEC 9899:1990. Αυτή η έκδοση της γλώσσας καλείται C90 και οι διαφορές της από τη C89 είναι ελάχιστες. Πρακτικά οι όροι "C89" και "C90" αναφέρονται στην ίδια έκδοση της γλώσσας. Μετά από το 1990, το επίσημο πρότυπο της γλώσσας παρέμεινε αμετάβλητο για αρκετά χρόνια. Η παράλληλη όμως εξέλιξη της γλώσσας C++ επέφερε αρκετές αλλαγές στη βασική σύνταξη των δομών της C, στην οποία ούτως ή άλλως βασιζόταν. Το πρότυπο C90 θα έπρεπε νε βελτιωθεί ώστε να ενσωματώσει τις αλλαγές που επέβαλε η C++ και να υπάρχει μεγαλύτερη μεταξύ τους συμβατότητα. Το Μάρτιο του 2000 το Εθνικό ίδρυμα προτύπων της Αμερικής υιοθέτησε το πρότυπο της γλώσσας ISO/IEC 9899:1999. Το πρότυπο αυτό είναι γνωστό ως C99 και αποτελεί το πιο πρόσφατο πρότυπο της γλώσσας C. Η C έχει συνδέσει το όνομα της με τα λειτουργικά συστήματα UNIX και LINUX, πολλά από τα τμήματα των οποίων έχουν αναπτυχθεί στη C. Η "στάνταρ" έκδοση της C ήταν, για πολλά χρόνια, εκείνη η οποία συνόδευε το λειτουργικό σύστημα UNIX (Ver. 5), του οποίου θεωρείται και αναπόσπαστο μέρος. 2 American National Standards Institute (ANSI) 22

21 Κεφάλαιο 1: Εισαγωγή Τα χαρακτηριστικά της C Παρά το γεγονός ότι η C θεωρείται μια γλώσσα υψηλού επιπέδου (high-level), έχει αρκετά χαρακτηριστικά που συναντώνται μόνο σε γλώσσες χαμηλού επιπέδου και στη γλώσσα μηχανής. Τα χαρακτηριστικά αυτά της προσδίδουν εκπληκτική ευελιξία και τη δυνατότητα χειρισμών "χαμηλού επιπέδου". Η C είναι ίσως η μόνη γλώσσα που μπορεί να χαρακτηριστεί ως γλώσσα "μεσαίου επιπέδου"! Η ευελιξία της C, αλλά και η έλλειψη αυστηρού ελέγχου, είναι ένα γερό εργαλείο στα χέρια ενός έμπειρου προγραμματιστή, αλλά μεγάλη ταλαιπωρία και βάσανο για τον αρχάριο. H C είναι μία "λιτή" γλώσσα. Όλες κι όλες οι δεσμευμένες λέξεις της C δεν ξεπερνούν τις 30. Αξιοσημείωτο είναι ότι η C δεν έχει ενσωματωμένες εντολές εισόδου & εξόδου, όπως και αρκετές άλλες εντολές που συναντώνται σε άλλες γλώσσες προγραμματισμού. Για το λόγο αυτόν η C περιλαμβάνει στην τυπική (στάνταρ) εγκατάστασή της "βιβλιοθήκες" με κάθε είδους συναρτήσεις για είσοδο-έξοδο, χειρισμό χαρακτήρων, χειρισμό αρχείων, γραφικών κ.λπ. C Μια δομημένη γλώσσα Το διακριτικό χαρακτηριστικό μιας δομημένης γλώσσας προγραμματισμού είναι η δυνατότητα για τμηματικό χειρισμό (modularity) του προγράμματος, με τρόπο ώστε κάθε τμήμα να μπορεί να "κρύβει" από το υπόλοιπο πρόγραμμα τον κώδικα και τις πληροφορίες που περιέχει. Η C ενθαρρύνει τη χρήση ξεχωριστών συναρτήσεων (υποπρογραμμάτων) για κάθε συγκεκριμένη λειτουργία του προγράμματος. C Μια γλώσσα για προγραμματιστές Η C παρέχει στον πραγματικό επαγγελματία προγραμματιστή αυτό που ακριβώς ζητάει: Λίγους περιορισμούς και μεγάλη ευελιξία Δυνατότητα για δομημένα προγράμματα Λίγες αλλά ισχυρά δομημένες εντολές 23

22 Η γλώσσα C σε βάθος Η C έχει όμως και απαιτήσεις. Η έλλειψη περιορισμών, και το γεγονός ότι υ- πάρχει μικρός βαθμός ελέγχου λαθών, αναγκάζουν τον προγραμματιστή να είναι πολύ προσεκτικός και να ελέγχει, μέσα από τον κώδικα του προγράμματος, πράγματα που ελέγχονται αυτόματα από άλλες γλώσσες προγραμματισμού. Ένα χαρακτηριστικό παράδειγμα είναι ότι, αν έχουμε έναν πίνακα 100 θέσεων, μπορούμε κάλλιστα να προσπελάσουμε τη θέση 105!!! Τώρα το τι θα βρούμε εκεί μέσα και το τι παρενέργειες θα υπάρξουν, αφήστε το για αργότερα. C Μια μεταφραστική γλώσσα Όλες οι γλώσσες προγραμματισμού (εκτός από τη γλώσσα μηχανής), και ανάλογα με τη φιλοσοφία με την οποία μεταφράζουν το πηγαίο πρόγραμμα σε γλώσσα μηχανής, παρουσιάζονται είτε σε ερμηνευτική (interpreter's), είτε σε μεταγλωττιζόμενη (compiler's) μορφή. Τη C θα τη συναντήσουμε σχεδόν πάντα σε μεταγλωττιζόμενη μορφή. Στο διπλανό σχήμα βλέπετε μια απλοποιημένη διαδικασία μεταγλωττισμού ενός προγράμματος μέσω μεταγλωττιστή (compiler). Το αρχείο που περιέχει τον πηγαίο κώδικα του προγράμματος (source code) μπορεί να δημιουργηθεί με οποιονδήποτε επεξεργαστή κειμένου ή μέσα από το ολοκληρωμένο περιβάλλον της γλώσσας (αν η έκδοση της γλώσσας διαθέτει τέτοιο περιβάλλον). Κατά τη διάρκεια της μεταγλώττισης (compile time), ο μεταγλωττιστής εντοπίζει τυχόν συντακτικά λάθη που υπάρχουν στον πηγαίο κώδικα. Εφόσον ο μεταγλωττιστής δεν εντοπίσει κανένα λάθος, θα δημιουργήσει ένα αρχείο που περιέχει τον εκτελέσιμο κώδικα (executable code), δηλαδή πρόγραμμα σε γλώσσα μηχανής, άμεσα εκτελέσιμο από τον Η/Υ. Στην πραγματικότητα, η διαδικασία της μεταγλώττισης είναι αρκετά διαφορετική, ιδίως όταν γίνεται χρήση βιβλιοθηκών στην οποία θα αναφερθούμε αναλυτικά στο αντίστοιχο κεφάλαιο. 24

23 Κεφάλαιο 1: Εισαγωγή Γιατί να μάθω C; Μια ερώτηση που ακούω συνέχεια από τους φοιτητές: Ποιός ο λόγος να μάθω C δεδομένου ότι υπάρχουν πιο σύγχρονες γλώσσες οι οποίες είναι περισσότερο φιλικές και έχουν περισσότερες δυνατότητες; Πάντα απαντώ με ένα παράδειγμα. Αν θέλουμε να γίνουμε πιλότοι, θα αρχίσουμε την εκπαίδευση μας από ένα Airbus ή από ένα Τσέσνα; Το Airbus είναι προφανώς πιο φιλικό, πιο ασφαλές, έχει περισσότερες δυνατότητες, σχεδόν ό- λες οι λειτουργίες του είναι αυτοματοποιημένες, και σε τελική ανάλυση είναι αυτό που θα πιλοτάρουμε, ως επαγγελματίες πιλότοι, σε μια επιβατική πτήση. Γιατί λοιπόν να αρχίσουμε από ένα Τσέσνα; Νομίζω ότι η απάντηση είναι προφανής. Με το Τσέσνα θα μάθουμε τη βασική φιλοσοφία της πτήσης χωρίς την πολυπλοκότητα σύνθετων συστημάτων. Θα έχουμε στη διάθεση μας τα βασικά και απολύτως απαραίτητα όργανα και θα γνωρίσουμε το αποτέλεσμα του κάθε χειρισμού μας. Σε ένα Airbus θα είμαστε περικυκλωμένοι από χιλιάδες διακόπτες και όργανα, ελάχιστα από τα οποία όμως έχουν να κάνουν με την ουσία της πτήσης. Μπορεί να ρυθμίζουν τη θερμοκρασία της καμπίνας, την ένταση των ηχείων ανακοινώσεων, το φωτισμό, κ.λπ. Οι αυτοματοποιημένες επίσης λειτουργίες δεν βοηθούν στο να κατανοήσουμε σε βάθος τους κανόνες και τις διαδικασίες της πτήσης. Ας έλθουμε τώρα στον προγραμματισμό. Σίγουρα υπάρχουν γλώσσες πιο σύγχρονες και πιο παραγωγικές, οι οποίες μας βοηθούν να φτιάχνουμε ελκυστικά προγράμματα σε λιγότερο χρόνο. Γιατί λοιπόν να μάθουμε C; Η C μας βοηθάει να κατανοήσουμε σε βάθος τους μηχανισμούς που οι περισσότερες "παραγωγικές" γλώσσες, για λόγους απλότητας και ευχρηστίας, κρύβουν από τον προγραμματιστή. Ο φοιτητής που σπουδάζει επιστήμες σχετικές με την πληροφορική πρέπει να έχει κατανοήσει σε βάθος όλους αυτούς τους μηχανισμούς. Είναι βέβαιο ότι στην παραγωγική διαδικασία θα χρησιμοποιήσει άλλες γλώσσες. Όμως η γνώση που απέκτησε μαθαίνοντας C θα τον βοηθήσει να επιλύει θέματα και να κατανοεί έννοιες που σε άλλες γλώσσες προγραμματισμού είναι πολύ πιο αφαιρετικές και γενικές. Ας μην ξεχνάμε, επίσης, ότι οι πλέον σύγχρονες γλώσσες προγραμματισμού, όπως η C++, η Java, και η C#, βασίζονται στη C! 25

24 Η γλώσσα C σε βάθος Βασικές έννοιες του προγραμματισμού Το τμήμα αυτό απευθύνεται στους αρχάριους στον προγραμματισμό. Αναφέρει και εξηγεί βασικές έννοιες του προγραμματισμού, απαραίτητες για τον αναγνώστη που έρχεται για πρώτη φορά σε επαφή με μια γλώσσα προγραμματισμού. Κάθε πρόγραμμα, αναπτυγμένο σε οποιαδήποτε γλώσσα προγραμματισμού, επεξεργάζεται δεδομένα και δίνει αποτελέσματα. Η επεξεργασία των δεδομένων γίνεται πάντα με έναν προκαθορισμένο τρόπο (αλγόριθμο). Τα συστατικά που συνθέτουν ένα απλό πρόγραμμα είναι οι μεταβλητές, οι σταθερές, οι παραστάσεις, και οι εντολές. Ας μην ξεχνάμε ότι ένας Η/Υ είναι ένα μηχάνημα το οποίο επιτελεί μόνο τρείς λειτουργίες: Πρόσθεση. Στη πραγματικότητα ο Η/Υ εκτελεί μόνο την πράξη της πρόσθεσης. Όλες οι άλλες πράξεις ανάγονται σε προσθέσεις. Σύγκριση. Π.χ. να συγκρίνει δύο αριθμούς και να αποφασίσει ποιος είναι μεγαλύτερος. Μεταφορά δεδομένων. Ο Η/Υ μπορεί να αποθηκεύσει στη μνήμη του δεδομένα, τα οποία μπορεί να είναι σταθερές ή να προέρχονται από αποτελέσματα πράξεων. Παρατηρούμε επομένως ότι ο Η/Υ εκτελεί πολύ απλές και βασικές λειτουργίες με χρήση όμως των οποίων επιτυγχάνει την εκτέλεση πολύπλοκων αλγορίθμων. Συνηθίζω να λέω στους φοιτητές ότι πρέπει να αντιμετωπίζουμε τον Η/Υ σαν έναν ασθενή που έχει τη νόσο Αλτσχάιμερ σε προχωρημένο στάδιο! Όσοι νοσούν από Αλτσχάιμερ έχουν απώλεια μνήμης. Δεν θυμούνται τι έκαναν το προηγούμενο δευτερόλεπτο. Οι ασθενείς αυτοί καταφεύγουν σε διάφορα τεχνάσματα για να μπορούν να λειτουργήσουν κοινωνικά. Χρησιμοποιούν χαρτάκια ή κουτάκια για να σημειώνουν τι έκαναν ώστε αργότερα να μπορούν να το ελέγχουν. Π.χ., αν φάνε πρωινό βάζουν σε έναν κουτάκι τη φράση "έφαγα πρωινό". Έτσι όταν το δούνε αργότερα θα ξέρουν ότι έφαγαν πρωινό και δεν θα ξαναφάνε. Οτιδήποτε θέλουν να θυμούνται θα πρέπει να το καταχωρίσουν σε κάποιο κουτάκι! 26

25 Κεφάλαιο 1: Εισαγωγή Μεταβλητές Ο Η/Υ ασθενής έχει στη διάθεσή του δισεκατομμύρια τέτοια κουτάκια, που δεν είναι άλλο από τις θέσεις μνήμης που διαθέτει η μνήμη RAM του κάθε συστήματος. Τα δεδομένα, καθώς και τα αποτελέσματα των πράξεων, αποθηκεύονται στα κουτάκια της κεντρικής μνήμης (RAM) του Η/Υ. Σε διαφορετική περίπτωση, σαν ασθενής με Αλτσχάιμερ, θα τα είχε ξεχάσει. Η διαχείριση της μνήμης RAM είναι βασικό μέλημα μιας γλώσσας προγραμματισμού. Για να χρησιμοποιηθεί μια θέση μνήμης μέσα από μια γλώσσα προγραμματισμού, πρέπει να της δοθεί ένα όνομα. Σε κάθε θέση μνήμης που χρησιμοποιείται σε ένα πρόγραμμα, ανατίθεται (αντιστοιχίζεται, αποδίδεται) ένα όνομα, το δε περιεχόμενο της θέσης μνήμης αποτελεί την τιμή της. Για να αναφερθεί το πρόγραμμα στη συγκεκριμένη θέση μνήμης, χρησιμοποιεί απλώς το όνομα της. Φανταστείτε την κάθε θέση μνήμης που χρησιμοποιούμε σαν ένα κουτί, στο εξωτερικό του οποίου είναι γραμμένο το όνομα του. Το περιεχόμενο του κουτιού αποτελεί την τιμή αυτής της θέσης μνήμης. Ας θεωρήσουμε τη θέση μνήμης ab η οποία περιέχει στην αρχή τον αριθμό 23, και έστω ότι με κατάλληλη εντολή αλλάζουμε το περιεχόμενό της σε 18. Παρατηρούμε ότι το κουτί (θέση μνήμης) παραμένει το ίδιο (ab), αλλά το περιεχόμενό του μεταβάλλεται. Το όνομα, λοιπόν, που αντιστοιχεί σε μία θέση μνήμης μπορεί να πάρει διαφορετικές τιμές. Γι αυτόν το λόγο κάθε όνομα θέσης μνήμης καλείται μεταβλητή (variable). Στο παραπάνω παράδειγμα η μεταβλητή ab είχε στην αρχή την τιμή 23 και μετά την τιμή 18. Ένα πρόγραμμα χρησιμοποιεί μεταβλητές για να αποθηκεύει τα δεδομένα και τα αποτελέσματα τα οποία παράγει. Κατά την εκτέλεση του προγράμματος, οι τιμές των μεταβλητών μπορεί να αλλάζουν. 27

26 Η γλώσσα C σε βάθος Μεταβλητή είναι μία θέση μνήμης, την οποία έχουμε δεσμεύσει και της έχουμε δώσει ένα όνομα. Το περιεχόμενο αυτής της θέσης μνήμης αποτελεί την τιμή αυτής της μεταβλητής. Αν πάμε σε ένα κατάστημα και ζητήσουμε να αγοράσουμε ένα κουτί το πρώτο πράγμα που θα μας ρωτήσουν είναι το τι θέλουμε να βάλουμε μέσα. Από την απάντηση μας θα εξαρτηθεί το μέγεθος του κουτιού που θα μας δώσουν. Με το ίδιο σκεπτικό, και οι θέσεις μνήμης (μεταβλητές) που χρησιμοποιεί ένα πρόγραμμα διαφέρουν ανάλογα με το τι σκοπεύουμε να αποθηκεύσουμε μέσα τους. Τα δεδομένα τα οποία χειρίζεται ένας Η/Υ μπορεί να είναι διαφορετικών τύπων (αριθμοί, χαρακτήρες κ.λπ.), οπότε θα πρέπει να υπάρχουν και οι αντίστοιχες κατηγορίες μεταβλητών για την καταχώρισή τους. Έτσι έχουμε ακέραιες μεταβλητές για αποθήκευση ακέραιων αριθμών, μεταβλητές χαρακτήρων για την αποθήκευση χαρακτήρων, κ.λπ. Μια γλώσσα προγραμματισμού μπορεί να υποστηρίζει διάφορους τύπους δεδομένων (data types). Ανάλογα με τους τύπους δεδομένων που υποστηρίζει, έχουμε και τα αντίστοιχα είδη (τύπους) μεταβλητών. Στις περισσότερες γλώσσες προγραμματισμού, πριν χρησιμοποιήσουμε μια μεταβλητή πρέπει να δηλώσουμε τον τύπο της. Η C υποστηρίζει διάφορους τύπους δεδομένων, οι βασικοί από τους οποίους είναι τέσσερις. Οι τύποι δεδομένων ορίζουν τα διαφορετικά είδη δεδομένων που μπορεί να χειριστεί μια γλώσσα προγραμματισμού. Συνήθεις τύποι δεδομένων είναι: Ο ακέραιος τύπος δεδομένων: Αναφέρεται σε δεδομένα που είναι ακέραιοι αριθμοί. Στη C, o τύπος αυτός συμβολίζεται με int. Ο πραγματικός τύπος δεδομένων: Αναφέρεται σε δεδομένα που είναι α- ριθμοί κινητής υποδιαστολής (με δεκαδικά ψηφία), με μικρή ή μεγάλη α- κρίβεια. Στη C o τύπος αυτός συμβολίζεται, αντίστοιχα, με float ή double. Ο τύπος δεδομένων χαρακτήρα: Αναφέρεται σε μεμονωμένους χαρακτήρες. Στη C o τύπος αυτός συμβολίζεται με char. 28

27 Κεφάλαιο 1: Εισαγωγή Ο λογικός τύπος δεδομένων: Αναφέρεται σε δεδομένα με τιμή αλήθεια ή ψέμα (true/false). H αρχική έκδοση της C (ANCI C ή C89/C90) δεν διέθετε ξεχωριστό τύπο για λογικά δεδομένα. Όμως το τελευταίο πρότυπο της γλώσσας (C99) υποστηρίζει το λογικό τύπο δεδομένων, ο οποίος συμβολίζεται με bool. Ο τύπος δεδομένων συνόλου χαρακτήρων: Αναφέρεται σε σύνολα χαρακτήρων (character strings). Η C δεν υποστηρίζει άμεσα αυτόν τον τύπο δεδομένων, και χειρίζεται τα σύνολα χαρακτήρων με ένα δικό της διαφορετικό τρόπο (ως πίνακες χαρακτήρων). Σταθερές Οι σταθερές (constants) είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά τη διάρκεια εκτέλεσης ενός προγράμματος. Υπάρχουν αντίστοιχες σταθερές για κάθε τύπο δεδομένων. Π.χ., μια ακέραια σταθερά είναι ένας ακέραιος αριθμός. Αριθμοί όπως το 10, το 20, το 17 κ.λπ. είναι παραδείγματα ακέραιων σταθερών (τύπου int), ενώ το 3.14 είναι μία πραγματική σταθερά (τύπου float ή double). Παραστάσεις Οι παραστάσεις (expressions) είναι πράξεις οι οποίες έχουν ένα συγκεκριμένο αποτέλεσμα. Ανάλογα με το είδος της πράξης, αλλά και από τον τύπο των δεδομένων που μετέχουν στη πράξη, οι παραστάσεις μπορεί να είναι ακέραιες, πραγματικές, ή άλλου τύπου δεδομένων. Εντολές Εντολή είναι μια φράση της γλώσσας προγραμματισμού που αναγκάζει τον Η/Υ να εκτελέσει μια συγκεκριμένη λειτουργία. Κάθε εντολή μιας γλώσσας προγραμματισμού έχει μια αυστηρά καθορισμένη σύνταξη, η οποία ορίζεται από την ίδια τη γλώσσα. Οι εντολές επιτελούν διάφορες λειτουργίες. Μια εντολή μπορεί να κάνει μια απλή πράξη ή έναν έλεγχο, να επιβάλει μια επαναληπτική διαδικασία, να εμφα- 29

28 Η γλώσσα C σε βάθος νίσει κάτι στην οθόνη, να γράψει κάτι στο δίσκο του Η/Υ κ.λπ. Σε κάθε περίπτωση, ένα πρόγραμμα αποτελείται από έναν αριθμό εντολών που εκτελούνται η μία μετά την άλλη (εκτός αν κάποια εντολή ορίσει μία διαφορετική σειρά ε- κτέλεσης). Ένα πρόγραμμα σε μια γλώσσα προγραμματισμού μπορεί να είναι ενιαίο ή να αποτελείται από περισσότερα τμήματα (υποπρογράμματα). Οι περισσότερες γλώσσες ενθαρρύνουν τον προγραμματιστή να χωρίζει το πρόγραμμα σε μικρότερα τμήματα (υποπρογράμματα). Η C είναι μια γλώσσα η οποία με τη δομή της σχεδόν επιβάλλει τον τμηματικό προγραμματισμό. Κάθε τμήμα προγράμματος (υποπρόγραμμα) στη C ονομάζεται συνάρτηση (function). Οι συναρτήσεις καλούνται με τη χρήση του ονόματός τους. Μια συνάρτηση μπορεί να εκτελεί απλώς μια λειτουργία, αλλά και να επιστρέφει κάποια τιμή στον κώδικα που την κάλεσε. Αναγνωριστικά Αναγνωριστικά (identifiers) καλούνται τα ονόματα που χρησιμοποιεί μια γλώσσα για να αναφέρεται στα επιμέρους στοιχεία της. Για παράδειγμα, το ό- νομα μιας μεταβλητής ή το όνομα μιας συνάρτησης αποτελούν αναγνωριστικά της γλώσσας. Κάθε γλώσσα έχει τους δικούς της κανόνες για τη σύνταξη των αναγνωριστικών της. Οι κανόνες αυτοί καθορίζουν το πλήθος και το είδος των επιτρεπτών χαρακτήρων. Οι κανόνες για τα αναγνωριστικά της C αναφέρονται στο επόμενο κεφάλαιο. Σχεδιασμός και ανάπτυξη προγραμμάτων Είναι προφανές ότι το γράψιμο ενός προγράμματος προϋποθέτει τη γνώση του αντικειμένου στο οποίο θα αναφέρεται το συγκεκριμένο πρόγραμμα. Για παράδειγμα, αν θέλουμε να φτιάξουμε ένα πρόγραμμα το οποίο θα απευθύνεται σε οδοντίατρους, θα πρέπει καταρχήν να γνωρίζουμε τον τρόπο με τον οποίο δουλεύει ένας οδοντίατρος, τι απαιτήσεις έχει, τι πληροφορίες θέλει να διατηρεί για τους ασθενείς του κ.λπ. Αυτό το στάδιο, κατά το οποίο εμείς ουσιαστικά 30

29 Κεφάλαιο 1: Εισαγωγή "μαθαίνουμε" τον τρόπο δουλειάς του οδοντίατρου, διακρίνοντας και κατανοώντας τα επιμέρους απλούστερα τμήματα από τα οποία αποτελείται η εργασία του, λέγεται ανάλυση. Μετά το στάδιο της ανάλυσης ακολουθεί το στάδιο του σχεδιασμού. Στο στάδιο αυτό μπορούμε, αν αυτό κριθεί απαραίτητο, να προτείνουμε νέους καλύτερους τρόπους εργασίας ή ακόμη και νέες δυνατότητες. Η ανάλυση και ο σχεδιασμός δεν έχουν απαραιτήτως άμεση σχέση με τον προγραμματισμό, αλλά χρησιμοποιούνται ως αναγκαία εργαλεία για τη σωστή και επαγγελματική κατάστρωση προγραμμάτων. Λογικό διάγραμμα Στα στάδια της ανάλυσης και του σχεδιασμού ο αναλυτής χρησιμοποιεί, εκτός των άλλων «εργαλείων» του, διαγράμματα για να δώσει μια εικόνα της λειτουργίας του υπό μελέτη συστήματος. Η σχηματική αυτή απεικόνιση ενός συστήματος χρησιμοποιεί γεωμετρικά σχήματα και καλείται λογικό διάγραμμα ή διάγραμμα ροής (flow chart). Σε αυτό το βιβλίο χρησιμοποιείται συχνά το λογικό διάγραμμα για να επεξηγηθεί η λειτουργία μιας εντολής, μιας διαδικασίας, ή ενός προγράμματος. Το διάγραμμα ροής αποτέλεσε την πρώτη μέθοδο αναπαράστασης αλγορίθμων. Για πρώτη φορά παρουσιάστηκε από τον Frank Gilbreth το 1921 και αργότερα κυριάρχησε ως μέθοδος αναπαράστασης αλγορίθμων για συστήματα Η/Υ. Α- κόμη και οι σύγχρονες τεχνικές αναπαράστασης, όπως τα διαγράμματα ενέργειας της UML 3, αποτελούν μια επέκταση των κλασικών λογικών διαγραμμάτων. Το χτίσιμο ενός λογικού διαγράμματος βασίζεται στη χρήση συγκεκριμένων γεωμετρικών σχημάτων. Υπάρχουν δεκάδες διαφορετικά σχήματα που μπορούν να χρησιμοποιηθούν σε ένα διάγραμμα ροής, ανάλογα με τη πολυπλοκότητα και τη χρήση του. Όμως σε ένα απλό κλασικό λογικό διάγραμμα τα διαφορετικά σχήματα που χρησιμοποιούνται είναι πολύ περιορισμένα. 3 Η UML (Unified Modeling Language) είναι μια σύγχρονη μέθοδος γραφικής αναπαράστασης αλγορίθμων, ιδιαίτερα χρήσιμη στον αντικειμενοστρεφή προγραμματισμό. Η ανάπτυξη της UML ξεκίνησε το 1994 και συνεχώς εξελίσσεται. 31

30 Η γλώσσα C σε βάθος Σε ένα απλό λογικό διάγραμμα χρησιμοποιούνται καθορισμένα γεωμετρικά σχήματα που το κάθε ένα υποδεικνύει μια συγκεκριμένη λειτουργία. Κάθε σχήμα αντιστοιχεί σε μία κατηγορία διαδικασίας του "υπό μελέτη" συστήματος. Για παράδειγμα, ο ρόμβος δείχνει έλεγχο ενώ το ορθογώνιο παραλληλόγραμμο επεξεργασία. Στον πίνακα που ακολουθεί αναφέρονται τα σχήματα που συνήθως χρησιμοποιούνται σε ένα λογικό διάγραμμα. Γεωμετρικό σχήμα Λειτουργία Αρχή/Τέλος διαδικασίας Επεξεργασία Έλεγχος Είσοδος/Έξοδος πληροφοριών Μεταφορά ελέγχου Σχήμα 1.1 Τα σχήματα του λογικού διαγράμματος Μέσα σε κάθε γεωμετρικό σχήμα περιγράφεται με απλά λόγια η διαδικασία που εκτελείται. 32

31 Κεφάλαιο 1: Εισαγωγή Στη διαδικασία του ελέγχου είναι δυνατές μόνο δύο α- ποφάσεις: Ναι ή Όχι. Ανάλογα με το αποτέλεσμα του Ναι ελέγχου, το διάγραμμα ροής μάς οδηγεί σε διαφορετικό παρακλάδι του. Όχι Το επόμενο λογικό διάγραμμα δείχνει τη διαδικασία που ακολουθείται όταν κάποιος καλεί το ασανσέρ μέχρι να πάει στον όροφο που τον ενδιαφέρει. Αναμφίβολα υπάρχουν πολλές εκδοχές για το σύστημα αυτό. Το λογικό διάγραµµα που ακολουθεί δείχνει εποπτικά τη λειτουργία της συγκεκριμένης διαδικασίας. Σχήμα 1.2 Το λογικό διάγραμμα της διαδικασίας κλήσης ενός ασανσέρ 33

32 Η γλώσσα C σε βάθος Το λογικό διάγραμμα ενός προβλήματος δεν καθορίζεται μονοσήμαντα. Μπορεί να είναι από εντελώς επιγραμματικό έως πολύ αναλυτικό, ανάλογα με τη χρήση για την οποία προορίζεται. Το λογικό διάγραμμα είναι ανεξάρτητο από τον προγραμματισμό και, πολύ περισσότερο, ανεξάρτητο από τη γλώσσα προγραμματισμού. Χρησιμοποιείται συχνά για να μπορέσουμε να απεικονίσουμε τη λογική ενός προγράμματος πριν αρχίσουμε να το αναπτύσσουμε. Το λογικό διάγραμμα βοηθάει να κατανοήσουμε τον τρόπο με τον οποίο θα προσεγγίσουμε τη λύση. Δεν είναι απαραίτητο να φτιάχνουμε οπωσδήποτε λογικό διάγραμμα πριν αρχίσουμε την ανάπτυξη ενός προγράμματος. Το βέβαιο είναι όμως ότι, αν δεν είμαστε σε θέση να φτιάξουμε το λογικό διάγραμμα ενός προγράμματος, είναι αδύνατο να φτιάξουμε το πρόγραμμα και αυτό να δουλεύει σωστά. Σε ένα λογικό διάγραμμα δεν αναφέρουμε εντολές κάποιας γλώσσας προγραμματισμού, αλλά περιγράφουμε τις διαδικασίες με απλά λόγια. Το λογικό διάγραμμα πρέπει να είναι τόσο αναλυτικό ώστε να είναι εμφανείς οι διαδικασίες που πρέπει να δείξουμε, και τόσο γενικό ώστε να μην εισέρχεται σε άχρηστες λεπτομέρειες. Όταν σε ένα λογικό διάγραμμα οι διαδικασίες δεν είναι συγκεκριμένου τύπου (π.χ. έλεγχος, είσοδος/έξοδος), τότε χρησιμοποιούμε μόνο το σχήμα της επεξεργασίας (ορθογώνιο) και το διάγραμμα σε αυτή την περίπτωση λέγεται διάγραμμα block. Ποτέ δεν αφήνουμε ανοιχτό ένα λογικό διάγραμμα. Δηλαδή, μετά από κάθε διαδικασία πρέπει να φαίνεται ποια θα είναι η επόμενη. Στην περίπτωση που δεν υπάρχει επόμενο βήμα, τότε θα πρέπει να οδηγούμαστε στο σχήμα της έλλειψης που σηματοδοτεί το τέλος όλης της διαδικασίας. Το λογικό διάγραμμα είναι ανεξάρτητο από τη γλώσσα προγραμματισμού. Μας βοηθάει να κατανοήσουμε ένα πρόβλημα αλλά και να σχεδιάσουμε τη λύση του. 34

33 Κεφάλαιο 1: Εισαγωγή Χρήση μεταβλητών σε λογικά διαγράμματα Η έννοια της μεταβλητής χρησιμοποιείται στα λογικά διαγράμματα για να προσδιορίσει έναν αποθηκευτικό χώρο. Για παράδειγμα, στο διπλανό λογικό διάγραμμα χρησιμοποιούνται δύο μεταβλητές. Η μεταβλητή ΑΡ στην οποία αποθηκεύεται ο αριθμός που δίνουμε, και η μεταβλητή ΟΝΟΜ στην οποία αποθηκεύεται το όνομα που πληκτρολογεί ο χρήστης. Στη συνέχεια του λογικού διαγράμματος, ο αριθμός και το όνομα αναφέρονται μέσω των ονομάτων των αντίστοιχων μεταβλητών. Π.χ. "Εμφάνισε το ΑΡ", "Εμφάνισε το ΟΝΟΜ". Το δεύτερο λογικό διάγραμμα απεικονίζει μια διαδικασία κατά την οποία μας ζητείται ένα ό- νομα και κατόπιν εμφανίζει 10 φορές στην οθόνη το όνομα που δώσαμε. Εδώ θα χρειαστούμε μία ακόμη μεταβλητή, με τη βοήθεια της οποίας θα "μετράμε" πόσες φορές εμφανίσαμε το όνομα. Έστω ότι ονομάζουμε τη μεταβλητή αυτή Κ και της δίνουμε αρχική τιμή 0. Κάθε φορά που εμφανίζουμε το όνομα, προσθέτουμε στο Κ το 1 (το αυξάνουμε κατά 1), οπότε η μεταβλητή Κ πάντα περιέχει το πλήθος των φορών που εμφανίσαμε το όνομα.τέλος, ελέγχουμε την τιμή της μεταβλητής Κ και αν αυτή είναι ίση με το 10 (που σημαίνει ότι το ό- νομα εμφανίστηκε 10 φορές), διακόπτουμε την επαναληπτική διαδικασία. Με τα παραδείγματα που ακολουθούν θα γίνει περισσότερο κατανοητή η χρήση των μεταβλητών στα λογικά διαγράμματα. 35

34 Η γλώσσα C σε βάθος Παραδείγματα Π1.1 Ας υποθέσουμε ότι θέλουμε να παίξουμε ένα παιχνίδι στο οποίο κάποιος βάζει έναν τυχαίο αριθμό στο μυαλό του και εμείς προσπαθούμε να τον βρούμε. Λέμε συνέχεια αριθμούς στον παίκτη και αυτός μας α- παντά αν ο κρυφός αριθμός είναι μεγαλύτερος ή μικρότερος. Το παιχνίδι τελειώνει μόλις βρούμε τον αριθμό. Το λογικό διάγραμμα απεικονίζει τη διαδικασία του παιχνιδιού. Μια μικρή παραλλαγή του παιχνιδιού, στην ο- ποία μόλις βρεθεί ο αριθμός ο παίκτης μάς ρωτάει αν θέλουμε να ξαναπαίξουμε, φαίνεται στο διπλανό λογικό διάγραμμα. Στην περίπτωση που απαντήσουμε ΝΑΙ, τότε ο παίκτης βάζει έναν άλλο αριθμό στο μυαλό του και το παιχνίδι ξανα-ρχίζει. Στην περίπτωση που απαντήσουμε αρνητικά, το παιχνίδι σταματάει. 36

35 Κεφάλαιο 1: Εισαγωγή Π1.2 Η διαδικασία που απεικονίζει το διπλανό λογικό διάγραμμα ζητάει συνέχεια αριθμούς και εμφανίζει στο τέλος το συνολικό τους άθροισμα. Η διαδικασία σταματάει όταν δοθεί ο αριθμός 0. Αρχικά παρατηρούμε τη χρήση των μεταβλητών στο λογικό διάγραμμα. Στο συγκεκριμένο διάγραμμα χρησιμοποιήσαμε δύο μεταβλητές: την ΑΡ και τη Σ. Στη μεταβλητή ΑΡ αποθηκεύεται ο αριθμός που μας δίνουν, και στη μεταβλητή Σ κρατάμε το μέχρι στιγμής άθροισμα των αριθμών. Κάθε φορά που βάζουμε ένα νέο αριθμό στο ΑΡ τον προσθέτουμε στο υπάρχον Σ (γι αυτό θέτουμε αρχική τιμή στο Σ το 0). Στο τέλος η μεταβλητή Σ θα περιέχει το άθροισμα όλων των αριθμών που μας έδωσαν. Σκεφτείτε τώρα τις τροποποιήσεις που θα πρέπει να γίνουν ώστε η διαδικασία να σταματάει όχι όταν δοθεί ο αριθμός 0, αλλά όταν δοθούν 100 αριθμοί. Για να γίνει αυτό, θα πρέπει να ε- πιστρατεύσουμε και μία άλλη θέση μνήμης, με χρήση της οποίας θα μετράμε πόσους αριθμούς μας έ- δωσαν. Έστω ότι ονομάζουμε τη θέση αυτή Κ, στην οποία δίνουμε αρχική τιμή 0. Κάθε φορά που μας δίνουν έναν αριθμό αυξάνουμε το Κ κατά 1, οπότε το Κ πάντα θα περιέχει το πλήθος των αριθμών που μας έδωσαν. Κάθε φορά ελέγχουμε την τιμή του Κ, και η επαναληπτική διαδικασία σταματάει όταν το Κ γίνει

36 Η γλώσσα C σε βάθος Συχνά λάθη Αφήνουμε 'ανοιχτά' τμήματα του λογικού διαγράμματος ❶. Δεν υπάρχει 'τέλος διαδικασίας' στο λογικό διάγραμμα ❷. Χρησιμοποιούμε λάθος σχήματα ❸. Μετά από έναν έλεγχο δεν πρέπει να υπάρχουν περισσότερες από δύο επιλογές. Μόνο δύο επιλογές είναι επιτρεπτές, οι οποίες σηματοδοτούνται με 'ΝΑΙ' και 'ΟΧΙ' ❹. 38

37 Κεφάλαιο 1: Εισαγωγή Ανασκόπηση Κεφαλαίου 1 Η C είναι μια μεταγλωττιζόμενη γλώσσα, τα χαρακτηριστικά της οποίας ευνοούν το δομημένο και τμηματικό προγραμματισμό. Η C είναι μια "λιτή" γλώσσα, η οποία για τις περισσότερες λειτουργίες της βασίζεται στις συναρτήσεις βιβλιοθήκης που τη συνοδεύουν. Τα διαφορετικά είδη δεδομένων που μπορεί να χειριστεί μια γλώσσα λέγονται τύποι δεδομένων. Οι βασικοί τύποι δεδομένων που υποστηρίζει η C είναι τέσσερις: int, char, float και double. Μια μεταβλητή είναι το όνομα μιας θέσης μνήμης, της οποίας η τιμή μπορεί να μεταβάλλεται. Το λογικό διάγραμμα είναι ένας εποπτικός τρόπος παρουσίασης μιας διαδικασίας ή ενός προγράμματος, και συμβάλλει στην κατανόησή του. Το λογικό διάγραμμα χρησιμοποιεί συγκεκριμένα, αλλά διαφορετικά, γεωμετρικά σχήματα για να απεικονίσει τις διαδικασίες, ανάλογα με το είδος τους. Το λογικό διάγραμμα είναι ανεξάρτητο από οποιαδήποτε γλώσσα προγραμματισμού. Ασκήσεις Κεφαλαίου Να καταστρώσετε ένα λογικό διάγραμμα το οποίο να απεικονίζει τη διαδικασία της λύσης μιας εξίσωσης δεύτερου βαθμού. 1.2 Αν γνωρίζουμε ότι: α) Δίσεκτο είναι ένα έτος όταν διαιρείται ακριβώς με το 4. β) Τα έτη που διαιρούνται ακριβώς με το 100 δεν είναι δίσεκτα ε- κτός αν διαιρούνται με το 400, καταστρώσετε ένα λογικό διάγραμμα μιας διαδικασίας η οποία να ζητάει το έτος και να απαντάει αν είναι δίσεκτο ή όχι. 1.3 Αν γνωρίζουμε ότι ένας φορολογούμενος δεν πληρώνει φόρο στην περίπτωση που έχει ετήσιο εισόδημα κάτω από 7000, πληρώνει 10% στην 39

38

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

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

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.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 Τι είναι το Υλικό και το

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

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

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

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

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

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

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

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Διδακτική της Πληροφορικής ΙΙ

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

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

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

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

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

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

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

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

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

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

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

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R.

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R. Περιεχόμενα Πρόλογος v ΚΕΦΑΛΑΙΟ 1 Προπαρασκευαστική εισαγωγή 1 ΚΕΦΑΛΑΙΟ 2 Τύποι, τελεστές, και παραστάσεις 43 ΚΕΦΑΛΑΙΟ 3 Η ροή του ελέγχου 59 ΚΕΦΑΛΑΙΟ 4 Συναρτήσεις και δομή του προγράμματος 69 ΚΕΦΑΛΑΙΟ

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

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

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

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

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

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

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

Δομές δεδομένων (2) Αλγόριθμοι

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10. Υποπρογράμματα

Κεφάλαιο 10. Υποπρογράμματα Κεφάλαιο 10 Υποπρογράμματα 10.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να καταστούν ικανοί οι μαθητές να χρησιμοποιούν υποπρογράμματα για τη δημιουργία συνθέτων προγραμμάτων. 194

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

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

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

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

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

Εισαγωγή στο GNU Octave/MATLAB

Εισαγωγή στο GNU Octave/MATLAB Εισαγωγή στο GNU Octave/MATLAB Δρ. Βασίλειος Δαλάκας Καλώς ήρθατε στο εργαστήριο Σημάτων και Συστημάτων με το λογισμικό Octave (Οκτάβα). Οι σημειώσεις αυτές έχουν βασιστεί στις σημειώσεις του εργαστηρίου

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

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

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

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

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

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

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

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

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

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

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

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

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

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

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

ΘΕΜΑ 1ο. Μονάδες 10. Β. ίνεται το παρακάτω τμήμα αλγορίθμου: Όσο Ι < 10 επανάλαβε Εμφάνισε Ι Ι Ι + 3 Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

ΘΕΜΑ 1ο. Μονάδες 10. Β. ίνεται το παρακάτω τμήμα αλγορίθμου: Όσο Ι < 10 επανάλαβε Εμφάνισε Ι Ι Ι + 3 Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΘΕΜΑ 1ο ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 4 ΙΟΥΛΙΟΥ 2007 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

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

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

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

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

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΘΕΜΑ 1 ο ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 31 MAΪΟΥ 2007 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

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

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

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

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

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

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

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

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

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

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

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

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

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: 7 Α1. Κάθε σωστή απάντηση

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

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

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

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

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

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

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

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εντολές εκχώρησης (αντικατάστασης)....1 1.1 Εισαγωγή...4 1.1.1 Χρήση ΛΣ και IDE της Turbo Pascal....4 1.1.2 Αίνιγμα...6 1.2 Με REAL...7 1.2.1 Ερώτηση...9 1.2.2 Επίλυση δευτεροβάθμιας

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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