Πρόλογος ISBN Copyright, 2 η έκδοση, Σεπτέμβριος 2011, Ν. Π. Καραμπετάκης, Eκδόσεις Zήτη.
|
|
- Ἀράχνη Μοσχοβάκης
- 9 χρόνια πριν
- Προβολές:
Transcript
1
2 iv Πρόλογος ISBN Copyright, 2 η έκδοση, Σεπτέμβριος 2011, Ν. Π. Καραμπετάκης, Eκδόσεις Zήτη Tο παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του ελληνικού νόμου (N.2121/1993 όπως έχει τροποποιηθεί και ισχύει σήμερα) και τις διεθνείς συμβάσεις περί πνευματικής ιδιοκτησίας. Aπαγορεύεται απολύτως η άνευ γραπτής άδειας του εκδότη κατά οποιοδήποτε τρόπο ή μέσο αντιγραφή, φωτοανατύπωση και εν γένει αναπαραγωγή, εκμίσθωση ή δανεισμός, μετάφραση, διασκευή, αναμετάδοση στο κοινό σε οποιαδήποτε μορφή (ηλεκτρονική, μηχανική ή άλλη) και η εν γένει εκμετάλλευση του συνόλου ή μέρους του έργου. Φωτοστοιχειοθεσία Eκτύπωση Βιβλιοδεσία Π. ZHTH & Σια OE 18 ο χλμ Θεσσαλονίκης - Περαίας T.Θ Περαία Θεσσαλονίκης T.K Tηλ.: Fax: info@ziti.gr BIBΛIOΠΩΛEIO ΘΕΣΣΑΛΟΝΙΚΗΣ - KENTPIKH ΔIAΘEΣH: Aρμενοπούλου Θεσσαλονίκη Tηλ.: Fax sales@ziti.gr BIBΛIOΠΩΛEIO AΘHNΩN - ENΩΣH EKΔOTΩN BIBΛIOY ΘEΣΣAΛONIKHΣ: Στοά του Bιβλίου (Πεσμαζόγλου 5) AΘHNA Tηλ.-Fax: AΠOΘHKH AΘHNΩN - ΠΩΛHΣH XONΔPIKH: Aσκληπιού 60 - Eξάρχεια , Aθήνα Tηλ.-Fax: athina@ziti.gr ΗΛΕΚΤΡΟΝΙΚΟ ΒΙΒΛΙΟΠΩΛΕΙΟ:
3 Πρόλογος 3 Πρόλογος Το βιβλίο αυτό γράφτηκε για τις ανάγκες του μαθήματος «Εισαγωγή στον Προγραμματισμό Η/Υ» * που διδάσκεται στο Α εξάμηνο του Τμήματος Μαθηματικών του Α.Π.Θ.. Κύριος στόχος του βιβλίου αυτού είναι να εξοικιώσει τον αρχάριο προγραμματιστή με τις βασικές αρχές του προγραμματισμού των Η/Υ χρησιμοποιώντας την γλώσσα προγραμματισμού FORTRAN 90 καθώς και στοιχεία της FORTRAN 95 και FORTRAN Το σημαντικότερο στο βιβλίο αυτό είναι ότι σχεδόν κάθε πρόγραμμα συνοδεύεται από τον αντίστοιχο αλγόριθμο, στον οποίο περιγράφονται τα βήματα επίλυσης του προβλήματος, δίνοντας έτσι την δυνατότητα στον αναγνώστη να μεταφέρει εύκολα αυτά που έμαθε και σε άλλες γλώσσες προγραμματισμού. Για την καλύτερη κατανόηση της ύλης οι αναγνώστες παροτρύνονται α) να εκτελέσουν τα έτοιμα προγράμματα που παρουσιάζονται στο βιβλίο έτσι ώστε να αποκτήσουν εξοικίωση με τον προγραμματισμό σε Fortran, β) να προσπαθούν να επιλύουν τις δραστηριότητες αλλά και τις ασκήσεις επανάληψης που προτείνονται σε κάθε ενότητα που έχουν ως στόχο την ενεργό συμμετοχή τους και την εμπέδωση της ύλης. Σε περίπτωση αδυναμίας επίλυσης των δραστηριοτήτων θα πρότεινα μια καλή επανάληψη της ύλης που σχετίζεται με την επίλυση της δραστηριότητας. Οι λύσεις των δραστηριοτήτων παρουσιάζονται στο τέλος κάθε ενότητας και χρησιμεύουν ως οδηγός αυτοαξιολόγησης για την πορεία εκμάθησης του αναγνώστη. Το βιβλίο αυτό αποτελεί βελτιωμένη έκδοση του βιβλίου «Εισαγωγή στην Fortran 90/95» από τον ίδιο συγγραφέα. Στην έκδοση αυτή έχουν προστεθεί τα παρακάτω: Στο πρώτο κεφάλαιο (Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran) προστέθηκε η ενότητα 1.6 η οποία εισάγει τους αναγνώστες στην έννοια της πολυπλοκότητας των αλγορίθμων, και συνεπώς στην μέτρηση της απόδοσης των αλγορίθμων που κατασκευάζουν, ενώ σε παραδείγματα που ακολουθούν στο υπόλοιπο βιβλίο αρκετές φορές αναλύεται και η πολυπλοκότητα των αλγορίθμων που δίνονται. Στο κεφάλαιο αυτό επίσης δίνονται οδηγίες για την υλοποίηση ενός * Διαφάνειες και χρήσιμο υλικό από το μάθημα αυτό μπορεί να βρει ο αναγνώστης στις ιστοσελίδες και
4 4 Πρόλογος προγράμματος στην Intel Visual Fortran στο περιβάλλον του Microsoft Visual Studio Στο δεύτερο κεφάλαιο (Βασικά στοιχεία ενός προγράμματος στη Fortran 90) προστέθηκαν επιπλέον πληροφορίες για τον τρόπο αποθήκευσης ακεραίων και πραγματικών αριθμών στην μνήμη του Η/Υ, με σκοπό να γίνει πιο εύκολα αντιληπτή η κατηγοριοποίηση των μεταβλητών που δέχονται ακέραιους και πραγματικούς αριθμούς στην Fortran. Επίσης με τον τρόπο αυτό γίνεται αντιληπτό ότι: α) τα μεγέθη των αριθμών που χρησιμοποιούμε στην Fortran είναι συγκεκριμένα και β) υπάρχει τις περισσότερες φορές μια διαφορά μεταξύ της ακριβής τιμής του α- ριθμού που δίνουμε και της τιμής που ουσιαστικά δέχεται ο υπολογιστής στην μνήμη του ακόμα και αν ο αριθμός που θέλουμε να αποθηκεύσουμε έχει πεπερασμένα δεκαδικά ψηφία. Με τον τρόπο αυτό γίνεται μια μικρή εισαγωγή σε έννοιες που συναντούμε στον κοινό κλάδο των Μαθηματικών αλλά και της Πληροφορικής που ονομάζεται Αριθμητική Ανάλυση. Στοιχεία από την Αριθμητική Ανάλυση συναντούμε και σε άλλα κεφάλαια όπως το κεφάλαιο 6 όπου γίνεται μια αναφορά στη μέθοδο Newton- Raphson, στο κεφάλαιο 8 όπου γίνεται ο υπολογισμός του π με την μέθοδο Monte- Carlo, πέρα από τις εφαρμογές του κεφαλαίου 10 που υπήρχαν και στην πρώτη έκδοση. Στο έβδομο κεφάλαιο (Πίνακες) υπάρχουν πλέον τρεις τρόποι ταξινόμησης πινάκων: α) ταξινόμηση με επιλογή (selection sort), β) ταξινόμηση με αντιμετάθεση (ή αλλιώς ταξινόμηση φυσαλίδας (bubble sort)) και γ) ταξινόμηση με παρεμβολή (insertion sort). Στο όγδοο κεφάλαιο (Διαδικασίες και Συναρτήσεις) αναλύονται άλλοι δύο αλγόριθμοι ταξινόμησης: α) ο αλγόριθμος ταξινόμησης μέσω συγχώνευσης (merge-sort) και β) ο αλγόριθμος ταξινόμησης με διαμερισμό (ή διαφορετικά quicksort). Με την παρουσίαση διαφορετικών αλγορίθμων ταξινόμησης θέλουμε να τονίσουμε ότι για το ίδιο πρόβλημα πολλές φορές υπάρχουν διαφορετικοί τρόποι επίλυσης, τους οποίους και μπορούμε να συγκρίνουμε μελετώντας την πολυπλοκότητα του καθενός από αυτούς. Έτσι γίνεται μια εισαγωγή στον σημαντικό αυτό κλάδο της Πληροφορικής που ασχολείται με Αλγορίθμους και Πολυπλοκότητα. Έχει προστεθεί ένα επιπλέον κεφάλαιο (το 9 ο κεφάλαιο), στο οποίο γίνεται μια εισαγωγή στους δείκτες (pointers) καθώς και στη χρήση τους για την δημιουργία δυναμικών δομών δεδομένων όπως οι απλά γραμμικές λίστες (singly linear lists). Τέλος το βιβλίο εμπλουτίστηκε με επιπλέον λυμένες αλλά και άλυτες ασκήσεις.
5 Πρόλογος 5 Θα ήθελα να ευχαριστήσω τον Ομότιμο Καθηγητή κ. Κωνσταντίνο Λάζο του Τμήματος Πληροφορικής του Α.Π.Θ., για τις πολύτιμες συμβουλές του όλα αυτά τα χρόνια που συνεργαστήκαμε, καθώς και την κα. Μπλέρη Καββαδία, τον κ. Γιώργο Ραχώνη, την κα. Κατερίνα Χατζηφωτεινού και την κα. Γρηγοριάδου Αναστασία με τους οποίους συνεργάστηκα στενά για μεγάλο διάστημα στη διδασκαλία του μαθήματος. Θα ήθελα επίσης να ευχαριστήσω την εταιρεία Compaq και την υπεύθυνη του προγράμματος κα. C. Staudinger, οι οποίοι διέθεσαν δωρεάν την Compaq Visual Fortran στο Τμήμα Μαθηματικών για την κάλυψη των αναγκών του μαθήματος. Τα προγράμματα που παρουσιάζονται έχουν γραφεί και εκτελεστεί στην Compaq Visual Fortran και στην Intel Visual Fortran. Τέλος, και πιο πολύ από όλους, θα ήθελα να ευχαριστήσω την οικογένεια μου για την υπομονή αλλά και συμπαράσταση που μου δείξανε κατά τη συγγραφή του βιβλίου.
6 Περιεχόμενα 7 Περιεχόμενα 1 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortan 1.1 Ποια είναι τα βασικά μέρη από τα οποία αποτελείται ένας Η/Υ; Ποια είναι η δομή του υλικού ενός Η/Υ; Ποιες είναι οι βασικές κατηγορίες λογισμικού; Τι είναι αλγόριθμος; Τι είναι γλώσσα προγραμματισμού; Τι είναι προγραμματισμός; Πως μετράμε την απόδοση ενός αλγορίθμου; Πώς θα μεταφράσουμε και θα εκτελέσουμε ένα πρόγραμμα στη Intel Visual Fortran; Σύνοψη Απαντήσεις στις δραστηριότητες Βασικά στοιχεία ενός προγράμματος στην Fortran 90/95/ Πότε δημιουργήθηκε ή FORTRAN; Ποιο είναι το αλφάβητο της FORTRAN 90/95/2003; Ποιο είναι το λεξιλόγιο της FORTRAN 90/95/2003; Ποια είναι τα δεδομένα που χειρίζεται ένα πρόγραμμα και σε ποιες κατηγορίες χωρίζονται; Εκφράσεις στη Fortran 90/95/ Συναρτήσεις Σύνοψη Απαντήσεις στις δραστηριότητες Δομή ενός προγράμματος 3.1 Από τι αποτελείται ένα πρόγραμμα στην FORTRAN; Πώς δηλώνουμε την επικεφαλίδα και το τέλος του προγράμματος; Τμήμα δηλώσεων Πώς δηλώνουμε το τμήμα των προτάσεων; Πώς δηλώνουμε το τμήμα των διαδικασιών και συναρτήσεων; Σύνοψη... 84
7 8 Περιεχόμενα 4 Ο τελεστής ανάθεσης και οι εντολές εισόδου - εξόδου 4.1 Ο τελεστής ανάθεσης Η εντολή εισόδου READ Οι εντολές εξόδου PRINT-WRITE Απλά προβλήματα εισόδου-εξόδου Παρατηρήσεις στις εντολές εισόδου-εξόδου Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις δραστηριότητες Εντολές συνθήκης και διακλάδωσης 5.1 Η εντολή GOTO Η εντολή IF-THEN-ELSE Η εντολή SELECT-CASE Παραδείγματα με συνθήκες Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις Δραστηριότητες Οι εντολές επανάληψης 6.1 Ανακύκλωση και χρήση μετρητών σε προγράμματα Η εντολή DO Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις δραστηριότητες Πίνακες 7.1 Τι είναι οι πίνακες και πού χρειάζονται; Πίνακες στην Fortran 90/95/ Μονοδιάστατοι πίνακες Πως ταξινομούμε τα στοιχεία ενός πίνακα; Με ποιον τρόπο γίνεται η αναζήτηση ενός στοιχείου σε έναν ήδη ταξινομημένο πίνακα; Πως συγχωνεύουμε δύο ταξινομημένους πίνακες; Ταυτόχρονη επεξεργασία δύο ή περισσοτέρων πινάκων
8 Περιεχόμενα Πολυδιάστατοι πίνακες Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις δραστηριότητες Διαδικασίες και συναρτήσεις 8.1 Τι είναι το υποπρόγραμμα και ποια είδη υποπρογραμμάτων υπάρχουν; Συναρτήσεις Διαδικασίες Γρήγοροι τρόποι ταξινόμησης πινάκων με την χρήση αναδρομικών διαδικασιών Άλλοι τρόποι σύνδεσης του προγράμματος με το υποπρόγραμμα Τι είναι τα Modules; Βιβλιοθήκες συναρτήσεων - διαδικασιών Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις δραστηριότητες Δείκτες και Δυναμικές Δομές Δεδομένων 9.1 Δείκτες Λίστες Χρήση δεικτών σε διαδικασίες Δείκτης ως αποτέλεσμα συνάρτησης Άλλες κατηγορίες συνδεδεμένης λίστας Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις Δραστηριότητες Αρχεία 10.1 Τι είναι αρχείο; Αρχεία Σειριακής Προσπέλασης Αρχεία άμεσης ή τυχαίας προσπέλασης Σύνοψη Επαναληπτικές ασκήσεις Απαντήσεις στις Δραστηριότητες
9 10 Περιεχόμενα 11 Εφαρμογές 11.1 Επίλυση διαφορικών εξισώσεων Επίλυση εξισώσεων διαφορών καθώς και συστημάτων εξισώσεων διαφορών Σύνοψη Ασκήσεις Απαντήσεις στις Δραστηριότητες Βιβλιογραφία Παράρτημα Α Λογικό Διάγραμμα Παράρτημα Β Συνοπτικός Πίνακας Εντολών Παράρτημα Γ Πώς θα μεταφράσουμε και θα εκτελέσουμε ένα πρόγραμμα στη Compaq Visual Fortran Ευρετήριο
10 1 ο Κεφάλαιο Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran Σκοπός Σκοπός του κεφαλαίου αυτού είναι να παρουσιάσει α) μια συνοπτική περιγραφή της δομής των Η/Υ, β) μια διαδικασία επίλυσης προβλημάτων με την βοήθεια του Η/Υ, γ) έναν τρόπο μέτρησης της απόδοσης των αλγορίθμων, δ) το περιβάλλον της Intel Visual Fortran. Προσδοκώμενα αποτελέσματα Έχοντας διαβάσει το κεφάλαιο αυτό θα είσαι σε θέση: να δώσεις τον ορισμό του υπολογιστή, να περιγράψεις τα δύο βασικά μέρη από τα οποία αποτελείται ο Η/Υ, να δώσεις το βασικό ορισμό του υλικού (hardware) ενός Η/Υ, να περιγράψεις τη βασική δομή του καθώς και να δώσεις μια σύντομη περιγραφή των τμημάτων που το απαρτίζουν, να δώσεις τον ορισμό του λογισμικού, καθώς και να περιγράψεις δύο βασικές κατηγορίες λογισμικού, να ορίσεις τι είναι αλγόριθμος, να ορίσεις τι είναι γλώσσα προγραμματισμού και να περιγράψεις τις δύο μεγάλες κατηγορίες στις οποίες χωρίζονται οι γλώσσες προγραμματισμού, να διαχωρίσεις την λειτουργία του διερμηνέα από αυτή του μεταφραστή, να περιγράψεις την διαδικασία εκτέλεσης και μετάφρασης ενός προγράμματος, να περιγράψεις τα στάδια του προγραμματισμού, να περιγράψεις με ποιον τρόπο μετρούμε την απόδοση ενός αλγορίθμου, να εισάγεις ένα πρόγραμμα γραμμένο σε FORTRAN 90/95/2003 στο περιβάλλον της Intel Visual Fortran και να το εκτελείς.
11 12 Κεφάλαιο 1 Έννοιες κλειδιά Υλικό (hardware) Λογισμικό (software) Λειτουργικό σύστημα Κύρια Μνήμη (RAM) Κεντρική μονάδα επεξεργασίας (CPU) Λογισμικό συστήματος Αλγόριθμος Λογισμικό εφαρμογών Πηγαίος Κώδικας Αντικείμενο Πρόγραμμα Ασυμπτωτική πολυπλοκότητα Θ f n, O f n, Ω f n, o f n, ω f n ( ( )) ( ( )) ( ( )) ( ( )) ( ( )) Εισαγωγικές Παρατηρήσεις Στο κεφάλαιο αυτό θα εισάγουμε βασικές έννοιες που αφορούν τη δομή του Η/Υ και θα περιγράψουμε τα στάδια υλοποίησης ενός προγράμματος με τη βοήθεια της FORTRAN 90/95/2003. Πιο συγκεκριμένα, στην ενότητα 1.1 θα αναφέρουμε ότι ένας υπολογιστής αποτελείται από δύο βασικά μέρη: το υλικό (hardware) και το λογισμικό (software) και θα προχωρήσουμε στη συνοπτική περιγραφή τους στις ενότητες 1.2 και 1.3. Στην ενότητα 1.4 θα αναφέρουμε τι είναι αλγόριθμος ενώ στην ενότητα 1.5 θα δούμε τι είναι γλώσσα προγραμματισμού και σε ποιες βασικές κατηγορίες μπορούμε να χωρίσουμε τις γλώσσες προγραμματισμού. Στην ενότητα 1.6 θα αναφέρουμε τα 7 βασικά στάδια του προγραμματισμού. Στην ενότητα 1.7 αναφέρουμε μεθόδους κατηγοριοποίησης της γενικής συμπεριφοράς των αλγορίθμων μέσω της ασυμπτωτικής πολυπλοκότητας του χρόνου εκτέλεσης. Τέλος, στην ενότητα 1.8 θα εξηγήσουμε πώς μπορεί να υλοποιηθεί στην Intel Visual Fortran (έκδοση 11) στο περιβάλλον του Microsoft Visual Studio 2008 ένα πρόγραμμα που έχουμε γράψει στη FORTRAN 90/95/ Ποια είναι τα βασικά μέρη από τα οποία αποτελείται ένας Η/Υ; Ο ηλεκτρονικός υπολογιστής (Η/Υ) είναι μια ηλεκτρονική συσκευή, η οποία επεξεργάζεται με μεγάλη ακρίβεια και ταχύτητα έναν τεράστιο όγκο πληροφοριών. Η βασική διαφορά του από άλλες ηλεκτρονικές συσκευές βρίσκεται στη δυνατότητα προγραμματισμού του. Είναι δυνατό ο ίδιος Η/Υ, με τη βοήθεια διαφορετικών προγραμμάτων να είναι το ίδιο χρήσιμος σε ένα Φυσικό, σε ένα Μαθηματικό, σε ένα Μηχανικό κ.τ.λ.
12 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 13 O Η/Υ αποτελείται από το Hardware ή υλικό και το Software ή λογισμικό. Με τον όρο Hardware αναφερόμαστε στις διάφορες μονάδες εισόδου, επεξεργασίας και εξόδου του Η/Υ, όπως το πληκτρολόγιο, η κεντρική μονάδα επεξεργασίας, η οθόνη κ.τ.λ., ενώ με τον όρο Software στα προγράμματα τα οποία κατευθύνουν τον Η/Υ. Τα προγράμματα αυτά αποτελούν ένα σύνολο από οδηγίες γραμμένες κατά τέτοιο τρόπο, ώστε να είναι άμεσα κατανοητές από τον Η/Υ. Η/Υ Υλικό Λογισμικό Σχήμα 1.1 Τα μέρη του Η/Υ. 1.2 Ποια είναι η δομή του υλικού ενός Η/Υ; Στο παρακάτω σχήμα φαίνονται τα βασικά μέρη από τα οποία αποτελείται το υλικό του Η/Υ: Κεντρική Μονάδα Επεξεργασίας Αριθμητική Αριθμητική && Λογική Λογική Μονάδα Μονάδα Μονάδες Εισόδου Μονάδα Ελέγχου Μονάδες Εξόδου Μνήμη Κύρια Μνήμη Δευτερεύουσα Μνήμη Σχήμα 1.2 Δομή του υλικού του Η/Υ
13 14 Κεφάλαιο 1 όπου: Μονάδες Εισόδου: Είναι το σύνολο των μονάδων με τις οποίες επιτυγχάνεται η είσοδος των πληροφοριών στον Η/Υ, π.χ. πληκτρολόγιο, ποντίκι, κ.τ.λ. Κύρια Μνήμη (RAM): Η μονάδα αυτή χρησιμοποιείται για την αποθήκευση του προγράμματος, των δεδομένων, καθώς επίσης και των ενδιάμεσων και τελικών αποτελεσμάτων του προγράμματος, πριν αυτά εμφανιστούν στην οθόνη ή τυπωθούν στον εκτυπωτή ή γραφτούν σε κάποια μονάδα δευτερεύουσας μνήμης, όπως ο μαγνητικός δίσκος, το CD-ROM, το DVD-ROM, κ.λπ. Κεντρική Μονάδα Επεξεργασίας (CPU): Η μονάδα στην οποία γίνονται οι κάθε είδους επεξεργασίες των πληροφοριών, καθώς και ο συντονισμός και έλεγχος των λειτουργιών του Η/Υ. Αποτελείται από την αριθμητική και λογική μονάδα, τη μονάδα ε- λέγχου και μονάδες μνήμης. Μονάδες Εξόδου: Είναι το σύνολο των μονάδων με τις οποίες επιτυγχάνεται η έξοδος των αποτελεσμάτων από τον Η/Υ π.χ. οθόνη, εκτυπωτής, κ.τ.λ. Μερικές μονάδες του Η/Υ, όπως ο σκληρός δίσκος, και το modem, μπορούν να θεωρηθούν ως μονάδες εισόδου-εξόδου γιατί δίνουν πληροφορίες στον Η/Υ και παίρνουν από αυτόν. 1.3 Ποιες είναι οι βασικές κατηγορίες λογισμικού; Ο Η/Υ αποτελεί μια ηλεκτρονική συσκευή, η οποία λειτουργεί μόνο κάτω από ένα σύνολο προγραμμάτων, τα οποία όλα μαζί αποτελούν το λογισμικό ή software του Η/Υ. Το λογισμικό του Η/Υ χωρίζεται σε δύο κατηγορίες: α) στο λογισμικό συστήματος και β) στο λογισμικό των εφαρμογών. Λογισμικό Λογισμικό Συστήματος Λογισμικό Εφαρμογών Σχήμα 1.3 Κατηγορίες λογισμικού Λογισμικό Συστήματος: Αποτελείται από όλα εκείνα τα προγράμματα που εξασφαλίζουν τη σύνδεση όλων των μονάδων μεταξύ τους και τον έλεγχο των λειτουργιών
14 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 15 τους. Το λογισμικό συστήματος περιλαμβάνει κυρίως το λειτουργικό σύστημα και τα μεταφραστικά προγράμματα. Το λειτουργικό σύστημα (Λ.Σ.) είναι ο συνδετικός κρίκος μεταξύ του υλικού από τη μια πλευρά και των προγραμμάτων εφαρμογής από την άλλη. Πρωταρχικός ρόλος του Λ.Σ. είναι η εύκολη και αποδοτική χρήση του υλικού από το χρήστη. Σε γενικές γραμμές το Λ.Σ. καθορίζει στον υπολογιστή πώς να καλεί κάποιο πρόγραμμα από μια μονάδα αποθήκευσης, πώς να αποθηκεύει δεδομένα σ αυτές, πώς να χειρίζεται την οθόνη και τον εκτυπωτή και σε γενικές γραμμές αναλαμβάνει την διαχείριση και συντονισμό του υλικού του υπολογιστή που απαιτείται για την εκτέλεση μιας ολοκληρωμένης εργασίας. Το Λ.Σ. και η αρχιτεκτονική των Η/Υ έχουν επηρεάσει το ένα το άλλο σε μεγάλο βαθμό. Η ραγδαία εξέλιξη, λοιπόν, στο χώρο της αρχιτεκτονικής των Η/Υ οδήγησε και στην αντίστοιχη εξέλιξη του χώρου των λειτουργικών συστημάτων (αν και πολλές φορές συνέβη και το αντίθετο). Σήμερα υπάρχουν δύο κατηγορίες λειτουργικών συστημάτων: α) Τα λειτουργικά συστήματα που μπορούν να εξυπηρετούν ένα χρήστη κάθε φορά και χρησιμοποιούνται στους μικροϋπολογιστές. Τέτοια λειτουργικά συστήματα είναι το WINDOWS XP, τα WINDOWS NT Workstation, Windows 2000, Windows 7, Windows Vista κ.τ.λ. Χρήστης Λογισμικό Εφαρμογών & Μεταφραστές Λειτουργικό Σύστημα Υλικό Σχήμα 1.4 Σχέση Υλικού Λογισμικού - Χρήστη.
15 16 Κεφάλαιο 1 β) Τα λειτουργικά συστήματα που έχουν την δυνατότητα να εξυπηρετούν συγχρόνως περισσότερους από ένα χρήστες (σε δίκτυα υπολογιστών). Τέτοια λειτουργικά συστήματα είναι το Solaris, Unix/Linux και διάφορες εκδόσεις των Microsoft Windows όπως Windows Server 2008, Novel Netware, Cisco IOS, Junos κ.τ.λ.. Σήμερα πλέον τα λειτουργικά συστήματα που χρησιμοποιούνται για ατομικούς υπολογιστές διαθέτουν δυνατότητες για την εξυπηρέτηση ενός δικτύου υπολογιστών όπως το MAC OS X και όλες οι εκδόσεις των Microsoft Windows. Λογισμικό Εφαρμογών: Εδώ ανήκουν όλα τα προγράμματα ή σύνολα προγραμμάτων που γράφονται για να διεκπεραιώνουμε με τη βοήθεια του Η/Υ διάφορες εργασίες, όπως προγράμματα επεξεργασίας κειμένου, προγράμματα σχεδίασης, λογιστικά φύλλα κ.λ.π. 1.4 Τι είναι αλγόριθμος; Αλγόριθμος είναι η ακριβής περιγραφή μιας αυστηρά καθορισμένης σειράς ενεργειών που πρέπει να ακολουθήσουμε ώστε να φέρουμε σε πέρας μια διαδικασία ή να λύσουμε ένα πρόβλημα, με την προϋπόθεση ότι η διαδικασία αυτή θα τερματίσει σε πεπερασμένο χρόνο. Στην περίπτωση της Πληροφορικής χρησιμοποιούμε για την περιγραφή αυτή μια γλώσσα που έχει ίδια δομή μ αυτή που χρησιμοποιεί ο υπολογιστής και η οποία περιγράφει σειρές βημάτων με τρόπο αυστηρό, μαθηματικά ξεκάθαρο, χωρίς ασάφειες και διφορούμενα. Ένας από τους πιο γνωστούς ιστορικούς αλγόριθμους είναι ο αλγόριθμος του Ευκλείδη για την εύρεση του μέγιστου κοινού διαιρέτη δύο ακεραίων αριθμών ο οποίος περιέχεται στο 7 ο βιβλίο των Στοιχείων. 7 ο βιβλίο των Στοιχείων Πρόταση 2 Δύο ἀριθμῶν δοθέντων μὴ πρώτων πρὸς ἀλλήλους τὸ μέγιστον αὐτῶν κοινὸν μέτρον εὑρεῖν. Ἔστωσαν οἱ δοθέντες δύο ἀριθμοὶ μὴ πρῶτοι πρὸς ἀλλήλους οἱ ΑΒ, ΓΔ. δεῖ δὴ τῶν ΑΒ, ΓΔ τὸ μέγιστον κοινὸν μέτρον εὑρεῖν. Εἰ μὲν οὖν ὁ ΓΔ τὸν ΑΒ μετρεῖ, μετρεῖ δὲ καὶ ἑαυτόν, ὁ ΓΔ ἄρα τῶν ΓΔ, ΑΒ κοινὸν μέτρον ἐστίν. καὶ φανερόν, ὅτι καὶ μέγιστον: οὐδεὶς γὰρ μείζων τοῦ ΓΔ τὸν ΓΔ μετρήσει. Εἰ δὲ οὐ μετρεῖ ὁ ΓΔ τὸν ΑΒ, τῶν ΑΒ, ΓΔ ἀνθυφαιρουμένου ἀεὶ τοῦ ἐλάσσονος ἀπὸ τοῦ μείζονος λειφθήσεταί τις ἀριθμός, ὃς μετρήσει τὸν πρὸ ἑαυτοῦ. μονὰς μὲν γὰρ οὐ λειφθήσεται: εἰ δὲ μή, ἔσονται οἱ ΑΒ, ΓΔ πρῶτοι πρὸς ἀλλήλους: ὅπερ οὐχ ὑπόκειται. λειφθήσεταί τις ἄρα ἀριθμός, ὃς μετρήσει τὸν πρὸ ἑαυτοῦ. καὶ ὁ μὲν ΓΔ τὸν ΒΕ μετρῶν λειπέτω ἑαυτοῦ ἐλάσσονα τὸν ΕΑ, ὁ δὲ ΕΑ τὸν ΔΖ μετρῶν λειπέτω ἑαυτοῦ ἐλάσσονα τὸν ΖΓ, ὁ δὲ ΓΖ τὸν ΑΕ μετρείτω. ἐπεὶ οὖν ὁ ΓΖ τὸν ΑΕ μετρεῖ, ὁ δὲ ΑΕ τὸν ΔΖ μετρεῖ, καὶ ὁ ΓΖ ἄρα τὸν ΔΖ μετρήσει: μετρεῖ δὲ καὶ ἑαυτόν: καὶ ὅλον ἄρα τὸν ΓΔ μετρήσει. ὁ δὲ ΓΔ
16 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 17 τὸν ΒΕ μετρεῖ: καὶ ὁ ΓΖ ἄρα τὸν ΒΕ μετρεῖ: μετρεῖ δὲ καὶ τὸν ΕΑ: καὶ ὅλον ἄρα τὸν ΒΑ μετρήσει: μετρεῖ δὲ καὶ τὸν ΓΔ: ὁ ΓΖ ἄρα τοὺς ΑΒ, ΓΔ μετρεῖ. ὁ ΓΖ ἄρα τῶν ΑΒ, ΓΔ κοινὸν μέτρον ἐστίν. λέγω δή, ὅτι καὶ μέγιστον. εἰ γὰρ μή ἐστιν ὁ ΓΖ τῶν ΑΒ, ΓΔ μέγιστον κοινὸν μέτρον, μετρήσει τις τοὺς ΑΒ, ΓΔ ἀριθμοὺς ἀριθμὸς μείζων ὢν τοῦ ΓΖ. μετρείτω, καὶ ἔστω ὁ Η. καὶ ἐπεὶ ὁ Η τὸν ΓΔ μετρεῖ, ὁ δὲ ΓΔ τὸν ΒΕ μετρεῖ, καὶ ὁ Η ἄρα τὸν ΒΕ μετρεῖ: μετρεῖ δὲ καὶ ὅλον τὸν ΒΑ: καὶ λοιπὸν ἄρα τὸν ΑΕ μετρήσει. ὁ δὲ ΑΕ τὸν ΔΖ μετρεῖ: καὶ ὁ Η ἄρα τὸν ΔΖ μετρήσει: μετρεῖ δὲ καὶ ὅλον τὸν ΔΓ: καὶ λοιπὸν ἄρα τὸν ΓΖ μετρήσει ὁ μείζων τὸν ἐλάσσονα: ὅπερ ἐστὶν ἀδύνατον: οὐκ ἄρα τοὺς ΑΒ, ΓΔ ἀριθμοὺς ἀριθμός τις μετρήσει μείζων ὢν τοῦ ΓΖ: ὁ ΓΖ ἄρα τῶν ΑΒ, ΓΔ μέγιστόν ἐστι κοινὸν μέτρον: [ ὅπερ ἔδει δεῖξαι ]. Πόρισμα Ἐκ δὴ τούτου φανερόν, ὅτι ἐὰν ἀριθμὸς δύο ἀριθμοὺς μετρῇ, καὶ τὸ μέγιστον αὐτῶν κοινὸν μέτρον μετρήσει: ὅπερ ἔδει δεῖξαι. Σχήμα ο βιβλίο των Στοιχείων του Ευκλείδη όπου διατυπώνεται ο ευκλείδιος αλγόριθμος από την βιβλιοθήκη του Clay Mathematics Institute Η λέξη αλγόριθμος προέρχεται από το όνομα του άραβα μαθηματικού Abu Ja far Mohammed ibn Musa al Khowarizmi (περίπου 780 μ.χ. 850 μ.χ.), το οποίο σημαίνει ο Μωχάμετ, ο υιός του Μωϋσή από το Χαρίζμ που είναι η σημερινή πόλη Khiva του Ουζμπεκιστάν. Το βιβλίο του al Khowarizmi για το ινδικό σύστημα υπολογισμού «Κανόνες σύνθεσης και αναγωγές» διασώθηκε μόνο στα λατινικά όπου ξεκινάει με τον τίτλο Dixit algorismi.. (όπως είπε ο al Khowarizmi) και είχε μεγάλη απήχηση στον
17 18 Κεφάλαιο 1 12 ο αιώνα σε σημείο που ο υπολογισμός ονομάστηκε algorism και από εκεί προέκυψε ο όρος algorithm ή αλγόριθμος. Ένα άλλο γνωστό βιβλίο του ίδιου συγγραφέα είναι το Al-kitab al muhtasar fi hisab al-jabr wa-l-muqabala (το συνοπτικό βιβλίο των υπολογισμών μέσω της αποκατάστασης και της αναγωγής) όπου το al-jabr που σημαίνει αποκατάσταση restoration, είναι η διαδικασία μεταφοράς μιας ποσότητας από την μια πλευρά της εξίσωσης στην άλλη με ταυτόχρονη αλλαγή πρόσημου π.χ x = 2x 3x x + 3x = 2x ενώ το al-muqabala που σημαίνει αναγωγή 2 reduction, είναι η διαδικασία της αναγωγής ομοίων όρων π.χ 4x = 2x. Η εργασία αυτή ονομάστηκε εν συντομία al-jabr και από αυτή προήλθε η ονομασία algebra ή άλγεβρα. Σχήμα 1.6 Σελίδα από την μετάφραση στα λατινικά του βιβλίου του al Khowarizmi που αρχίζει με τις λέξεις Dixit algorismi.. (όπως είπε ο al Khowarizmi) 1.5 Τι είναι γλώσσα προγραμματισμού; Η ανάγκη επικοινωνίας του ανθρώπου με τον Η/Υ σε μια κοινή γλώσσα ανέπτυξε τις διάφορες γλώσσες προγραμματισμού. Γλώσσα προγραμματισμού είναι ένα σύνολο γραμμάτων, αριθμών, λέξεων και συντομογραφικών μνημονικών σημείων που διέπονται από ειδικό συντακτικό και χρησιμοποιούνται στην ανάπτυξη αλγορίθμων στον υπολογιστή.
18 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 19 Η ποικιλία των γλωσσών προγραμματισμού οφείλεται στο ότι κάποιες γλώσσες υ- περτερούν έναντι άλλων σε συγκεκριμένες εφαρμογές, ή προσφέρουν καλύτερη υποστήριξη, ή είναι ευκολότερες στην εκμάθηση τους. Γενικά, τις γλώσσες προγραμματισμού μπορούμε να τις χωρίσουμε σε δύο κατηγορίες: Οι γλώσσες χαμηλού επιπέδου που βρίσκονται κοντά στις στοιχειώδεις εντολές μηχανής ενός συγκεκριμένου Η/Υ και γι αυτό διαφέρουν από Η/Υ σε Η/Υ. Η γλώσσα που είναι πιο κοντά στο επίπεδο της μηχανής είναι η γλώσσα μηχανής. Η ανάγκη επίτευξης μια γλώσσας χαμηλού επιπέδου που να μοιάζει περισσότερο στη γλώσσα του ανθρώπου, χωρίς να ξεφεύγει από το επίπεδο της μηχανής, δημιούργησε τη γλώσσα Assembly. Υπάρχει μάλιστα ειδικό πρόγραμμα που ονομάζεται Assembler, το οποίο αναλαμβάνει να μεταφράσει τα προγράμματα που είναι γραμμένα στη γλώσσα αυτή σε γλώσσα μηχανής. Οι γλώσσες υψηλού επιπέδου που προσεγγίζουν την ανθρώπινη γλώσσα περισσότερο από ότι οι γλώσσες χαμηλού επιπέδου και είναι ειδικά σχεδιασμένες, ώστε προγράμματα τα οποία είναι γραμμένα σ αυτές να εκτελούνται από οποιονδήποτε υπολογιστή. Τέτοιες γλώσσες είναι οι BASIC, FORTRAN, PASCAL, PROLOG, C++, Java, κ.τ.λ. Το πρόγραμμα που γράφουμε σε μια γλώσσα υψηλού επιπέδου μεταφράζεται πάντοτε μέσω ειδικών προγραμμάτων στη γλώσσα που καταλαβαίνει ο Η/Υ, δηλαδή τη γλώσσα μηχανής. Τα προγράμματα που κάνουν τη μετάφραση αυτή είναι ο Interpreter ή ο Compiler. Interpreter (Διερμηνέας) Μεταφράζει μια-μια τις εντολές συγχρόνως με την ε- κτέλεση τους. Compiler (Μεταφραστής) Μεταφράζει μια φορά ολόκληρο το πρόγραμμα. Στη συνέχεια το μεταφρασμένο πρόγραμμα εκτελείται. Η Fortran 90/95/2003, που θα αναλύσουμε παρακάτω, διαθέτει μεταφραστή για τη μετατροπή του προγράμματος σε γλώσσα μηχανής. Λίστα με Λάθη ιόρθωση Λαθών Λίστα με Λάθη Βιβλιοθήκες ή αντικείμενα αρχεία Είσοδος εδομένων Πηγαίος Κώδικας Μετάφραση Αντικείμενο Πρόγραμμα Σύνδεση Εκτελέσιμο Πρόγραμμα Εκτέλεση Αποτελέσ ματα Προγράμματος Μετάφραση Προγράμματος Σύνδεση Προγράμματος Εκτέλεση Προγράμματος Σχήμα 1.7 Φάση υλοποίησης ενός προγράμματος.
19 20 Κεφάλαιο 1 Ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου ονομάζεται συνήθως πηγαίος κώδικας (source code). Μετά τη μετατροπή του σε γλώσσα μηχανής από το μεταφραστή (compiler) δημιουργείται το αντικείμενο πρόγραμμα (object program). Το αντικείμενο πρόγραμμα αποθηκεύεται σε αρχείο που έχει το όνομα του αρχείου του πηγαίου κώδικα και επέκταση.obj. Το αντικείμενο πρόγραμμα στη συνέχεια συνδέεται με βιβλιοθήκες της γλώσσας προγραμματισμού και άλλα αντικείμενα προγράμματα προκειμένου να δημιουργηθεί ο εκτελέσιμος κώδικας ή αλλιώς το εκτελέσιμο πρόγραμμα (executable program). Το εκτελέσιμο πρόγραμμα αποθηκεύεται σε αρχείο που έχει το όνομα του αρχείου του πηγαίου κώδικα και επέκταση.exe. Το παραπάνω διάγραμμα δείχνει την διαδικασία υλοποίησης ενός προγράμματος. Δραστηριότητα 1.1 Να περιγράψετε τη διαδικασία μετάφρασης και εκτέλεσης ενός προγράμματος. Ισχύει η ίδια διαδικασία για προγράμματα που είναι γραμμένα σε γλώσσα μηχανής; 1.6 Τι είναι προγραμματισμός; Προγραμματισμός είναι μια διαδικασία που αποτελείται από καθορισμένα στάδια, σε καθένα από τα οποία γίνονται διάφορες ενέργειες με σκοπό το μετασχηματισμό του προβλήματος και της μεθόδου επίλυσης του σε μια μορφή που να είναι κατανοητή και αποδεκτή από τον Η/Υ. Τα στάδια του προγραμματισμού είναι τα ακόλουθα: Φάση Ανάλυσης (Analysis) Η αναγνώριση, ο ορισμός και ο καθορισμός των προδιαγραφών του προβλήματος. Εντοπισμός των χρήσιμων εννοιών και απλοποίηση ορισμένων στοιχείων. Φάση Σχεδιασμού (Design) Σκιαγράφηση της λύσης και διάκριση ανεξαρτήτων διαδικασιών. Επιλογή και περιγραφή ενός αλγόριθμου που να είναι: α) περατός, να τερματίζει μετά από την εκτέλεση ενός πεπερασμένου αριθμού βημάτων, β) σαφής, κάθε βήμα να καθορίζεται χωρίς καμιά αμφιβολία για τον τρόπο εκτέλεσης του, γ) γενικός, να μπορεί δηλαδή να επιλύει ένα πρόβλημα στην πιο γενική περίπτωση. Σίγουρα ένας αλγόριθμος που υπολογίζει το εμβαδό ενός οποιουδήποτε τριγώνου γνωρίζοντας τα μήκη των πλευρών του είναι πιο καλός από
20 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 21 έναν παρόμοιο που λύνει το πρόβλημα μόνο για ορθογώνια τρίγωνα. δ) αποτελεσματικός, να μπορεί δηλαδή κάθε βήμα του να εκτελεσθεί και από ένα άτομο με την χρήση χαρτιού και μολυβιού σε πεπερασμένο χρόνο, ε) αποδοτικός, η έννοια της απόδοσης ενός αλγορίθμου σχετίζεται με το πλήθος των βημάτων που απαιτούνται για την ολοκλήρωση του (χρονική πολυπλοκότητα) καθώς και με τον όγκο των δεδομένων που απαιτεί για την εκτέλεση του (χωρική πολυπλοκότητα). Ας πάρουμε για παράδειγμα αλγορίθμους που έχουν ως στόχο την επίλυση συστημάτων διαφορικών εξισώσεων που οδηγούν σε μοντέλα πρόβλεψης καιρού. Ένας αλγόριθμος που θα υπολόγιζε την πρόγνωση του αυριανού καιρού σε παραπάνω από μια μέρα δεν θα ήταν καθόλου χρήσιμος. στ) ευσταθής, αν δηλαδή υπάρχει ένα μικρό σφάλμα κατά την εισαγωγή των δεδομένων, να προσπαθεί να διατηρήσει το αντίστοιχο σφάλμα που θα προκύψει στα αποτελέσματα όσο το δυνατό πιο μικρό. Φάση Υλοποίησης (Implementation) Επιλογή της γλώσσας προγραμματισμού βάσει της φύσης του προβλήματος, των γνώσεών μας σε γλώσσες προγραμματισμού και τις δυνατότητες ή περιορισμούς που μας θέτει ο Η/Υ. Κωδικοποίηση του αλγορίθμου σε πρόγραμμα. Εκσφαλμάτωση (Debugging) Έλεγχος προγράμματος για ανίχνευση λαθών. Τα λάθη χωρίζονται σε τρεις κατηγορίες: α) συντακτικά λάθη (syntax errors), λάθη δηλαδή ως προς τον τρόπο σύνταξης του προγράμματος στην συγκεκριμένη γλώσσα προγραμματισμού π.χ. REED αντί για READ, β) λογικά λάθη (logical errors), λάθη που δεν είναι άμεσα αντιληπτά και συνήθως οφείλονται σε λανθασμένη απόδοση του αλγορίθμου ή σε περιορισμούς της γλώσσας ή του συστήματος και οδηγούν σε λάθη εκτέλεσης (run time errors) π.χ. Χ= Α/Β χωρίς να ελέγξουμε αν B 0 και γ) λάθη εκτέλεσης, λάθη που προκύπτουν κατά την διαδικασία ανάγνωσης/εγγραφής, χρήσης μη επιτρεπτών δεδομένων, χρήσης λανθασμένων ορισμάτων σε συναρτήσεις, αριθμητικών λαθών (π.χ. πολύ μεγάλοι αριθμοί) ή γενικά σε λάθη του συστήματος. Εφαρμογή του προγράμματος σε ποικίλα δεδομένα για να διαπιστωθούν τυχόν λάθη. Τεκμηρίωση Το πρόγραμμα είναι φρόνιμο να περιέχει πάντα σχόλια όπου θα επεξηγούνται τα επιμέρους στάδια του (εσωτερική τεκμηρίωση). Θα πρέπει επίσης να συντάσσεται ένας φάκελος που να περιέχει:
21 22 Κεφάλαιο 1 α) το πρόγραμμα με την λειτουργική δομή του προγράμματος, β) τον αλγόριθμο που επιλέχτηκε, γ) τις τεχνικές που χρησιμοποιήθηκαν για την υλοποίηση του αλγορίθμου, δ) τα πλεονεκτήματα και μειονεκτήματα του συγκεκριμένου αλγόριθμου, ε) αποτελέσματα δοκιμών, στ) τον κώδικα, ζ) αναλυτική επεξήγηση του κάθε τμήματος του αλγόριθμου κ.α. (εξωτερική τεκμηρίωση). Οι οδηγίες αυτές θα βοηθήσουν τον προγραμματιστή (ή και τρίτους) όταν το ξαναδιαβάσει μετά από κάποιο ορισμένο χρονικό διάστημα προκειμένου να το διορθώσει όπως και να δανειστεί τεχνικές που χρησιμοποίησε στο συγκεκριμένο πρόγραμμα για την επίλυση παρόμοιων προβλημάτων. Συντήρηση Το πρόγραμμα θα πρέπει να συντηρείται ανά τακτά χρονικά διαστήματα με την διόρθωση απρόβλεπτων λαθών που έχουν προκύψει αλλά και με την τροποποίηση-βελτίωση του λαμβάνοντας υπόψη νέα δεδομένα και νέες εξελίξεις στον τομέα που το αφορά. Παρακάτω δίνουμε ένα παράδειγμα όπου εφαρμόζουμε τα τρία πρώτα στάδια του προγραμματισμού. Παράδειγμα. Να υπολογιστεί το εμβαδόν ενός τριγώνου ΑΒΓ. Φάση Ανάλυσης Διαπιστώνουμε ότι το παραπάνω πρόβλημα δεν είναι καλά ορισμένο, διότι θα μπορούσαμε να υπολογίσουμε το εμβαδόν του τριγώνου μόνο αν γνωρίζαμε τις 3 πλευρές του, ή τις 2 πλευρές και μια γωνία του, κ.ο.κ.. Επαναδιατυπώνουμε λοιπόν το πρόβλημα με σαφήνεια. «Να υπολογιστεί το εμβαδόν ενός τριγώνου ΑΒΓ εάν είναι γνωστά τα μήκη των πλευρών του ΑΒ, ΒΓ, ΓΑ.» Καθορίζουμε την είσοδο στο πρόβλημά μας, που είναι τα μήκη των τριών πλευρών, έστω a,b,c και την έξοδο που θα είναι το εμβαδόν του τριγώνου, έ- στω E. Φάση Σχεδιασμού Έχουμε 3 ανεξάρτητες διαδικασίες: 1 η διαδικασία. Είσοδος των δεδομένων.
22 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 23 2 η διαδικασία. Υπολογισμός του εμβαδού μέσω του τύπου του Ήρωνα. 3 η διαδικασία. Έξοδος των αποτελεσμάτων. ΕΜΒΑΔΟΝ ΕΙΣΟΔΟΣ ΔΕΔΟΜΕΝΩΝ ΥΠΟΛΟΓΙΣΜΟΣ ΕΜΒΑΔΟΥ ΕΜΦΑΝΙΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ Οι παραπάνω 3 διαδικασίες μπορούν να παρασταθούν μέσω του παρακάτω ψευδοκώδικα: Ψευδοκώδικας * Βήμα 1 ο. Διάβασε a,b,c. 1 2 Βήμα 2 ο. S ( a+ b+ c) Βήμα 3 ο. E S( S a)( S b)( S c) Βήμα 4 ο. Αποτελέσματα // Ε //. ή του διπλανού λογικού διαγράμματος ή διαγράμματος ροής (δες Παράρτημα Α, Λογικό Διάγραμμα, σελ. 365) E = Είσοδος των a,b,c S ( a + b c) 1 S = + 2 ( S a)( S b)( S c) Φάση Υλοποίησης Το πρόγραμμα αυτό είναι πολύ απλό και μπορεί να υλοποιηθεί σε οποιαδήποτε γλώσσα προγραμματισμού, χωρίς κάποια ιδιαίτερα πλεονεκτήματα έναντι κάποιας άλλης γλώσσας. Παρακάτω το πρόγραμμα υλοποιείται στη FORTRAN 90. Έξοδος του Ε * Ο ψευδοκώδικας είναι μια περιγραφή του τρόπου επίλυσης ενός προβλήματος με σύντομες και περιεκτικές προτάσεις που ακολουθούν αντίστοιχη τυποποίηση με αυτή μιας γλώσσας προγραμματισμού. Παρ όλα αυτά οι προτάσεις αυτές είναι άμεσα αντιληπτές από τον άνθρωπο και δεν υπεισέρχονται σε λεπτομέρειες. Σχηματική αναπαράσταση του αλγορίθμου επίλυσης ενός προβλήματος με χρήση γεωμετρικών σχημάτων τα οποία συνδέονται με βέλη τα οποία και καθορίζουν την ροή του προγράμματος.
23 24 Κεφάλαιο 1 PROGRAM EMBADON IMPLICIT O E! Variables REAL :: A,B,C,S,E! Body of EMBADON PRI T*, A,B,C= READ*, A,B,C S=(1/2.0)*(A+B+C) E=SQRT(S*(S A)*(S B)*(S C)) PRI T*,' ' PRI T*,A,B,C PRI T*,'E=',E E D PROGRAM EMBADON Στη γραμμή 1 και 13 δηλώνεται η αρχή και το τέλος του προγράμματος. Στη γραμμή 4 δηλώνουμε ότι οι μεταβλητές που χρησιμοποιούμε στο πρόγραμμα θα πρέπει να δέχονται πραγματικές τιμές. Στη γραμμή 7 δεχόμαστε τιμές για τις μεταβλητές A,B,C από το χρήστη. Στις γραμμές 8 και 9 υπολογίζουμε το εμβαδόν Ε, ενώ στις γραμμές εκτυπώνουμε τα αποτελέσματα. Μεταφράζουμε το πρόγραμμα και εντοπίζουμε τα συντακτικά λάθη, και στη συνέχεια εκτελούμε το πρόγραμμα για να βρούμε τυχόν λογικά λάθη ή λάθη εκτέλεσης (εκσφαλμάτωση). Πράγματι, διαπιστώνουμε λάθη όταν οι τιμές των A,B,C δεν αποτελούν πλευρές τριγώνου. Στην περίπτωση αυτή, η υπόριζη ποσότητα είναι αρνητική και μας οδηγεί σε λάθη εκτέλεσης. Θα έπρεπε δηλαδή να ελέγξουμε: α) αν τα μήκη των πλευρών είναι θετικά (A>0 & B>0 & C>0) και β) αν το άθροισμα των μηκών κάθε δύο πλευρών είναι μεγαλύτερο του μήκους της τρίτης πλευράς (A+B>C, B+C>A, C+A>B). Σε παρακάτω ενότητες θα εξετάσουμε την πλήρη επίλυση του προβλήματος. 1.7 Πως μετράμε την απόδοση ενός αλγορίθμου; Για την μέτρηση της απόδοσης ενός αλγορίθμου υπάρχουν δύο τρόποι: α) Ο εμπειρικός τρόπος κατά τον οποίο υπολογίζεται ο χρόνος εκτέλεσης και η χωρητικότητα μνήμης του αλγόριθμου που απαιτούνται για την υλοποίηση του για ένα
24 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 25 σύνολο δεδομένων. Η μέθοδος αυτή έχει το μειονέκτημα ότι δίνει διαφορετικά αποτελέσματα σε διαφορετικούς υπολογιστές ή ακόμα και στο ίδιο μηχάνημα (αν έχει διαφορετική δομή). Επίσης εξαρτάται από την γλώσσα προγραμματισμού που χρησιμοποιήθηκε αλλά και το σύνολο των δεδομένων που μπορούν να διαφέρουν από περίπτωση σε περίπτωση. Θα μπορούσαμε λοιπόν να εκτελέσουμε δύο αλγόριθμους στον ίδιο υπολογιστή με τα ίδια δεδομένα και να συγκρίνουμε τους χρόνους εκτέλεσης. β) Ο θεωρητικός τρόπος όπου η μέτρηση της αποδοτικότητας εξαρτάται από το μέγεθος της εισόδου το οποίο προσδιορίζεται από μια μεταβλητή n. Για παράδειγμα σε ένα πρόβλημα αντιστροφής ενός τετραγωνικού πίνακα k k θα έχουμε n= k, σε ένα πρόβλημα ταξινόμησης k αριθμών θα έχουμε n= k ή τέλος σε ένα πρόβλημα πολλαπλασιασμού δύο αριθμών, των οποίων η αναπαράσταση απαιτεί km, bits αντίστοιχα, θα έχουμε n= k+ m. Αυτό που μας ενδιαφέρει λοιπόν είναι η ε- πίδραση που θα έχει η αύξηση του μεγέθους των εισόδων στην ταχύτητα εκτέλεσης του αλγορίθμου. Ποιά συνέπεια θα έχει για παράδειγμα ο διπλασιασμός του μεγέθους εισόδου στον χρόνο εκτέλεσης του αλγορίθμου; Θα διπλασιαστεί (γραμμική εξάρτηση); Θα τετραπλασιαστεί (τετραγωνική εξάρτηση); Ας συμβολίσουμε με την συνάρτηση f(n) τον χρόνο εκτέλεσης (χρονική πολυπλοκότητα ή time complexity) (ή την χωρητικότητα μνήμης (χωρική πολυπλοκότητα ή space complexity)) σε σχέση με το μέγεθος της εισόδου n. Ο χρόνος εκτέλεσης f(n) εξαρτάται: 1) από τον αριθμό των στοιχειωδών βημάτων που πρέπει να εκτελεστούν σε έναν αλγόριθμο. Τα στοιχειώδη αυτά βήματα που λαμβάνουμε υπόψη διαφέρουν από αλγόριθμο σε αλγόριθμο. Σε ένα πρόβλημα ταξινόμησης για παράδειγμα μας ενδιαφέρει ο αριθμός των συγκρίσεων μεταξύ φυσικών αριθμών ή/και οι αντιμεταθέσεις που θα χρειαστούν. Σε ένα πρόβλημα αντιστροφής πίνακα μας ενδιαφέρουν οι πολλαπλασιασμοί και οι διαιρέσεις που θα εκτελεσθούν. 2) από την δομή των δεδομένων. Για παράδειγμα ο χρόνος εκτέλεσης f(n) που απαιτείται για την ταξινόμηση σε αύξουσα σειρά ενός συνόλου n δεδομένων που προκύπτουν από ένα σύνολο δεδομένων ίδιου μεγέθους έστω D = { d, d,..., d 1 2 n} που είναι ήδη ταξινομημένα (πολυπλοκότητα καλύτερης περίπτωσης min f d, d D), είναι διαφορετικός από τον χρόνο που θα χρειαστεί για ένα ( ( )) σύνολο δεδομένων που είναι ήδη ταξινομημένα σε φθίνουσα σειρά (πολυπλοκό- max f d, d D ). Η ανάλυση της χειρότερης πε- τητα χειρότερης περίπτωσης ( ( )) ρίπτωσης μας δίνει ένα άνω φράγμα για την απόδοση του αλγορίθμου, ενώ της καλύτερης περίπτωσης ένα κάτω φράγμα. Εκτός της πολυπλοκότητας καλύτερης και χειρότερης περίπτωσης, έχουμε και την μέση πολυπλοκότητα που ορίζεται ως
25 26 Κεφάλαιο 1 d D ( ) f d D που είναι ο μέσος όρος των πολυπλοκοτήτων για όλα τα δεδομένα του ίδιου μεγέθους και συνήθως δύσκολα υπολογίζεται λόγω του μεγάλου αριθμού των περιπτώσεων. Αυτό που συνήθως μας ενδιαφέρει είναι η εκτίμηση της συμπεριφοράς του αλγορίθμου καθώς ο αριθμός των δεδομένων αυξάνει ( n ) ή διαφορετικά η ασυμπτωτική εκτίμηση του χρόνου εκτέλεσης f(n) (κυρίως για την χειρότερη περίπτωση) και όχι η αναλυτική μορφή του f(n) προκειμένου να συγκρίνουμε διαφορετικούς αλγορίθμους. Για τον σκοπό αυτό δίνουμε τους παρακάτω συμβολισμούς για τον ακριβή προσδιορισμό της τάξης μεγέθους της συνάρτησης f(n). Ορισμός 1.1 [Knuth, 1976] Ορίζουμε ως Θ ( g( n) ) το σύνολο των συναρτήσεων Θ ( g ( n) ) = { f ( n) : c, c R +, n N, 0 c g ( n) f ( n) c g 2 ( n) n n0} Συνεπώς f ( n) Θ ( g( n) ) αν και μόνο αν υπάρχουν θετικές σταθερές 1, 2 ώστε η γραφική παράσταση της f ( n ) να βρίσκεται μεταξύ των cg( n 1 ), 2 ( ) αρκετά μεγάλα n. Στην περίπτωση αυτή αντί να γράψουμε f ( n) ( g( n) ) γράφουμε f ( n) ( g( n) ) c c τέτοιες cg n για Θ συνήθως =Θ. Συνεπώς ο συμβολισμός Θ χρησιμοποιείται όταν θέλουμε να δηλώσουμε ότι έχουμε ένα ασυμπτωτικά άνω και κάτω φράγμα για την συνάρτηση f ( n ). Αν f ( n) =Θ ( g( n) ) τότε θα έχουμε lim = cc, R (εφόσον f ( n) + n + g n ( ) υπάρχει το όριο) που δηλώνει ότι η συνάρτηση f ( n ) αυξάνει με ανάλογο ρυθμό με f ( n) την συνάρτηση g( n ). Αν μάλιστα lim = 1 τότε η συνάρτηση n + ( ) g( n) με τον ίδιο ρυθμό με την συνάρτηση g( n ) και γράφουμε f ( n) g( n). f n αυξάνει Ορισμός 1.2 [P. Bachman, 1892]. Ορίζουμε ως O( g( n )) το σύνολο των συναρτήσεων ( ( )) = { ( ) : R +, N, 0 0 ( ) ( ) 0} O g n f n c n f n cg n n n Συνεπώς f ( n) O( g( n) ) αν και μόνο αν υπάρχει θετική σταθερά c τέτοια ώστε η γραφική παράσταση της f ( n ) να βρίσκεται κάτω από την γραφική παράσταση της
26 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 27 cg ( n ) για αρκετά μεγάλα f ( n) O( g( n) ) συνήθως γράφουμε f ( n) O( g( n) ) n. Στην περίπτωση αυτή αντί να γράψουμε =. Ο συμβολισμός O χρησιμοποιείται όταν θέλουμε να δηλώσουμε ότι έχουμε ένα ασυμπτωτικά άνω φράγμα για f n = O g n τότε θα έχουμε την συνάρτηση f ( n ). Μάλιστα αν ( ) ( ( )) f ( n) + lim = cc, {} 0 n + g( n) f ( n ) αυξάνει με πιο αργό ή το πολύ ίσο ρυθμό σε σχέση με την συνάρτηση ( ) R (εφόσον υπάρχει το όριο) που δηλώνει ότι η συνάρτηση Ορισμός 1.3 [Knuth, 1976] Ορίζουμε ως ( g( n) ) Ω ( g( n) ) = { f ( n) : c R +, n N, 0 cg 0 ( n) f ( n) n n0} g n. Ω το σύνολο των συναρτήσεων Συνεπώς f ( n) Ω ( g( n) ) αν και μόνο αν υπάρχει θετική σταθερά c τέτοια ώστε η γραφική παράσταση της f ( n ) να βρίσκεται πάνω από την γραφική παράσταση της cg ( n ) για αρκετά μεγάλα n. Στην περίπτωση αυτή αντί να γράψουμε f ( n) Ω ( g( n) ) συνήθως γράφουμε f ( n) =Ω ( g( n) ). Ο συμβολισμός Ω χρησιμοποιείται όταν θέλουμε να δηλώσουμε ότι έχουμε ένα ασυμπτωτικά κάτω φράγμα για f n =Ω g n τότε θα έχουμε την συνάρτηση f ( n ). Αν ( ) ( ( )) f ( n) + lim = cc, R n { + } (εφόσον υπάρχει το όριο) που δηλώνει ότι η συνάρτηση g( n) f ( n ) αυξάνει με το λιγότερο ίσο ή πιο γρήγορο ρυθμό σε σχέση με την συνάρτηση g( n ). f (n) cg(n) c 2 g(n) cg(n) f (n) f (n) c 1 g(n) n 0 n 0 n 0 ( ) =Ω ( g( n) ) f ( n) = O( g( n) ) f ( n) =Θ ( g( n) ) f n 3 Αν για παράδειγμα ο χρόνος εκτέλεσης είναι f ( n) ( n ) =Θ (κυβική πολυπλοκότητα) αυτό σημαίνει ότι αν διπλασιάσω το μέγεθος του προβλήματος τότε απαιτείται ( ( ) 3 3 2n = 8n ) οκταπλάσιος χρόνος για την εκτέλεση του αλγορίθμου, αν τριπλασιάσω
27 28 Κεφάλαιο 1 το μέγεθος του προβλήματος τότε απαιτείται ( ( ) 3 3 3n = 27n ) εικοσιεπταπλάσιος κ.ο.κ.. k Αλγόριθμοι των οποίων ο χρόνος εκτέλεσης τους είναι της μορφής Θ( n ), k R ονομάζονται πολυωνυμικοί και συνήθως δεν απαιτούν τόσο μεγάλη υπολογιστική προσπάθεια σε σχέση με αλγορίθμους που έχουν πολυπλοκότητα Θ( n ), Θ( n! ), Θ ( 2 ) n n και οι οποίοι ονομάζονται μη πολυωνυμικοί. Στον παρακάτω πίνακα δίνεται ο χρόνος εκτέλεσης (σε ns) ενός αλγορίθμου σε σχέση με την πολυπλοκότητα του αλγορίθμου αν υποθέσουμε ότι κάθε στοιχειώδης πράξη απαιτεί 1ns της CPU του υπολογιστή μας. Πολυπλοκότητα Μέγεθος προβλήματος (n) αλγορίθμου Θ ( n) ( n n) Θ log x x x Θ ( n ) Θ ( n ) Θ ( 2 n ) x10 9 Θ ( n! ) x x10 58 Μπορούμε να παρατηρήσουμε ότι 2 ( 2 2 3n = O n ) αλλά και 3n O( n ) =. Το φράγμα στην πρώτη περίπτωση είναι ασυμπτωτικά πολύ στενό ενώ στην δεύτερη περίπτωση δεν είναι. Για να διαχωρίσουμε τις δύο αυτές περιπτώσεις δίνουμε τον συμβολισμό o g n. ( ( )) Ορισμός 1.4 [E. Landau, 1909] Ορίζουμε ως ( ( )) o( g( n) ) = { f ( n) : c R +, n N, 0 f 0 ( n) cg( n) n n0} o g n το σύνολο των συναρτήσεων αν και μόνο αν για κάθε θετική σταθερά c η γραφική παρά- cg n για αρκετά Συνεπώς f ( n) o( g( n) ) σταση της f ( n ) βρίσκεται κάτω από την γραφική παράσταση της ( ) μεγάλα n. Στην περίπτωση αυτή γράφουμε f ( n) = o( g( n) ). Η διαφορά δηλαδή των συμβολισμών O( g( n )) και ( ( )) o g n είναι ότι στην πρώτη περίπτωση υπάρχει κάποια θετική σταθερά c για την οποία ισχύει η ανισότητα 0 f ( n) cg( n) ενώ στην δεύτερη περίπτωση η ανισότητα ισχύει για κάθε θετική f ( n) σταθερά c. Μάλιστα αν f ( n) = o( g( n) ) τότε θα έχουμε lim = 0 πρδ. n + g( n) 2 3n 3n = o( n ) μιας και έχουμε lim = 0, αλλά 3n 2 o n + 2 ( n 2 ) εφόσον n
28 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran n lim 3 0 n 2 n + =. Αυτό σημαίνει ότι η συνάρτηση ( ) g n μεγαλώνει με πιο γοργούς ρυθμούς σε σχέση με την f ( n ) καθώς το n πλησιάζει στο άπειρο. Παρόμοια με τον συμβολισμό o( g( n )) έχουμε τον συμβολισμό ω ( g( n) ). Ορισμός 1.5 Ορίζουμε ως ω ( g( n) ) το σύνολο των συναρτήσεων + ω ( g( n) ) = { f ( n) : c R, n N, 0 cg 0 ( n) f ( n) n n0} αν και μόνο αν για κάθε θετική σταθερά c η γραφική πα- Συνεπώς f ( n) ω ( g( n) ) ράσταση της f ( n ) βρίσκεται πάνω από την γραφική παράσταση της ( ) τά μεγάλα n. Στην περίπτωση αυτή γράφουμε f ( n) = ω ( g( n) ). Ισχύει ότι f ( n) = ω ( g( n) ) αν και μόνο αν g( n) o( f ( n) ) f ( n) f ( n) = ω ( g( n) ) τότε θα έχουμε lim n + g( n) ότι η συνάρτηση f ( n ) μεγαλώνει με πιο γοργούς ρυθμούς σε σχέση με την ( ) g n καθώς το n πλησιάζει στο άπειρο. cg n για αρκε- =. Μάλιστα αν = αν υπάρχει το όριο. Αυτό σημαίνει Στόχος του βιβλίου αυτού δεν είναι να ασχοληθεί με την πολυπλοκότητα των αλγορίθμων που θα παρουσιάσουμε, αλλά να δώσει ένα έναυσμα στον αναγνώστη, μέσω απλών παραδειγμάτων, για περαιτέρω μελέτη της περιοχής της Πληροφορικής που ασχολείται με την θεωρία των αλγορίθμων και της πολυπλοκότητας. 1.8 Πώς θα μεταφράσουμε και θα εκτελέσουμε ένα πρόγραμμα στην Intel Visual Fortran; Παρακάτω δίνουμε όλα τα βήματα που πρέπει να κάνετε για να εισάγετε ένα πρόγραμμα που έχετε γράψει στο περιβάλλον της Intel Visual Fortran *, να το μεταφράσετε και τέλος να το εκτελέσετε. Βήμα 1. Εκκίνηση προγράμματος Από την επιλογή Έναρξη (Start) διαλέγουμε Προγράμματα (All Programs) στη συνέχεια Microsoft Visual Studio 2008 και τέλος Microsoft Visual Studio * Στο Παράρτημα Γ, θα βρείτε οδηγίες για τον τρόπο δημιουργίας ενός προγράμματος στο περιβάλλον της Compaq Visual Fortran.
29 30 Κεφάλαιο 1 Βήμα 2. Από την επιλογή File διαλέγουμε ew και στη συνέχεια Project.
30 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 31 Στην επιλογή Project Types επιλέγουμε Intel(R) Visual Fortran. Στη συνέχεια επιλέγουμε Console Application για την δημιουργία ενός τυπικού προγράμματος στην Fortran. Θα πρέπει να επιλέξουμε μεταξύ Empty Project (κενό project όπου θα πρέπει να ενσωματώσουμε τα αρχεία που θέλουμε) και Main Program Code (δημιουργείται αρχείο το οποίο έχει ήδη την δομή ενός προγράμματος στην Fortran και στο οποίο θα ενσωματώσουμε το πρόγραμμα μας). Στο πλαίσιο ame συμπληρώνουμε το όνομα του Project Workspace (π.χ. Embado_Trigonou) ενώ στο Location συμπληρώνουμε τον κατάλογο και την δευτερεύουσα μονάδα μνήμης που θέλουμε να δημιουργηθεί το Project Workspace. Τέλος κάνουμε κλικ στο OK. Το Project Workspace δημιουργείται για να τοποθετήσουμε το σύνολο των αρχείων που θα χρειαστούμε στο πρόγραμμα μας. Αν θέλουμε οι εφαρμογές μας να περιέχουν και γραφικά ή να εκτελούνται σε παράθυρο των Windows θα πρέπει να επιλέξουμε μια διαφορετική κατηγορία (QuickWin Applications, Windowing Applications). Στις περιπτώσεις αυτές το Project Workspace θα αποτελείται από περισσότερα από ένα αρχεία, όπως το κυρίως πρόγραμμα και τα αρχεία που περιέχουν τις εξωτερικές συναρτήσεις/διαδικασίες/modules. Αν επιλέξουμε Main Program Code εμφανίζεται αρχείο το οποίο έχει ήδη την δομή ενός προγράμματος στην Fortran όπως φαίνεται παρακάτω:
31 32 Κεφάλαιο 1 Αν επιλέξουμε Empty Project δημιουργείτε ένα κενό project όπως στην παρακάτω εικόνα: Στη συνέχεια πρέπει να προσθέσουμε ένα αρχείο για να γράψουμε τον κώδικα του προγράμματος. Από το menu επιλέγουμε Project και στη συνέχεια Add ew Item. Στον παρακάτω διάλογο που θα εμφανιστεί:
32 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 33 Επιλέγουμε Fortran File (.f90) για να προστεθεί ένα νέο αρχείο όπου θα γραφεί ο κώδικας μας και εφόσον συμπληρώσουμε το όνομα του αρχείου στην επιλογή ame κάνουμε κλίκ στο Add. Αν τώρα θέλουμε να επιλέξουμε ένα αρχείο που ήδη υπάρχει στο project μας θα πρέπει να ακολουθήσουμε την πορεία Project->Add Existing Item και στη συνέχεια προσθέτουμε το αρχείο ή τα αρχεία που θέλουμε να προσθέσουμε. Βήμα 3. Θα γράψουμε το πρόγραμμα μας, τοποθετώντας κάτω από την γραμμή «!Variables» τις μεταβλητές μας και κάτω από την γραμμή «!Body of Embado_TrigonouS=(1/2.0)*» το κυρίως πρόγραμμα
33 34 Κεφάλαιο 1 Βήμα 4. Αποθηκεύουμε το πρόγραμμά μας. Από την επιλογή File διαλέγουμε Save Βήμα 5. Μετάφραση του προγράμματος Από την επιλογή Build επιλέγουμε Compile (ή Ctrl+F7 ή το αντίστοιχο εικονίδιο απο την μπάρα με τα εικονίδια)
34 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 35 Αν όλα πάνε καλά, δηλαδή δεν βρεθεί κάποιο συντακτικό λάθος τότε θα εμφανισθεί στο τέλος της οθόνης μας το παρακάτω παράθυρο: το οποίο δηλώνει ότι δε βρέθηκε κανένα συντακτικό λάθος. Σε περίπτωση που υπήρχαν λάθη, θα έπρεπε να τα εντοπίσουμε από τα μηνύματα του παραπάνω παράθυρου, να τα διορθώσουμε και να προσπαθήσουμε να ξαναμεταφράσουμε το πρόγραμμά μας. Αν παραλείπαμε το * στην 24η γραμμή του προγράμματος (S=(1/2.0)(A+B+C)) και προσπαθούσαμε να κάνουμε compile θα είχαμε το παρακάτω μήνυμα
35 36 Κεφάλαιο 1 Βήμα 6. Δημιουργία εκτελέσιμου προγράμματος Εφόσον έχει μεταφρασθεί χωρίς λάθη το πρόγραμμά μας, διαλέγουμε απο το Build την επιλογή Build Solution (ή Ctrl+Shift+B ή το αντίστοιχο εικονίδιο του BUILD απο την μπάρα με τα εικονίδια) Αν όλα πάνε καλά, χωρίς λάθη έχουμε το παρακάτω μήνυμα: Αν έχουμε λάθη, τα διορθώνουμε και ξαναεκτελούμε τα τελευταία 2 βήματα. Για την διόρθωση αρκεί να κάνουμε διπλό κλίκ πάνω στο κάθε μήνυμα λάθους για να μας οδηγήσει στην αντίστοιχη γραμμή που έγινε το λάθος. Καλό θα είναι να ξεκινούμε πάντα απο το πρώτο λάθος και έπειτα απο την διόρθωση του να ξανακάνουμε compile μιας και το λάθος αυτό μπορεί να επηρέασε και τις υπόλοιπες εντολές του προγράμματος. Σε περίπτωση που είμαστε σίγουροι ότι δεν έχουμε λάθη, μπορούμε να παραλείψουμε το βήμα 5 και να εκτελέσουμε κατευθείαν το βήμα 6, το οποίο θα εκτελέσει και τα δύο βήματα.
36 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran 37 Βήμα 7. Εκτέλεση του προγράμματος Από την επιλογή Debug διαλέγουμε Start Without Debugging (ή Ctrl+F5 ή επιλέγουμε το αντίστοιχο εικονίδιο από την μπάρα εικονιδίων) Εμφανίζεται το παράθυρο στο οποίο επιλέγουμε Yes. Στο επόμενο παράθυρο του MS-DOS εισάγουμε τα δεδομένα και εκτελείται το πρόγραμμά μας:
37 38 Κεφάλαιο 1 Η παραπάνω διαδικασία αφορά τα απλά προγράμματα με τα οποία θα ασχοληθούμε στη συνέχεια. Για περισσότερες λεπτομέρειες ο αναγνώστης μπορεί να ανατρέξει στον οδηγό βοήθειας του αντίστοιχου προγράμματος. Δραστηριότητα 1.2 Προσπάθησε να γράψεις, να μεταφράσεις και να εκτελέσεις το παρακάτω πρόγραμμα στο περιβάλλον της Intel Visual Fortran: PROGRAM TOKOS IMPLICIT O E! Variables I TEGER :: N REAL :: K,E,TK! Body of Tokos PRI T*,'GIVE ME THE INITIAL VALUE' READ*, K PRI T*,'GIVE ME THE YEARS' READ*,N PRINT*,'GIVE ME THE PERCENTAGE' READ*,E TK=K*(1+E)**N PRI T*,'THE FINAL VALUE AFTER',N,'YEARS WILL BE',TK E D PROGRAM TOKOS
38 Εισαγωγή στους Η/Υ και στο Περιβάλλον της Intel Visual Fortran Σύνοψη Ο υπολογιστής αποτελείται από το υλικό και το λογισμικό. Η δομή του υλικού περιγράφηκε στην ενότητα 1.2, ενώ οι βασικές κατηγορίες λογισμικού περιγράφηκαν στην ενότητα 1.3. Στην ενότητα 1.4 ορίσαμε τι είναι αλγόριθμος ενώ στην ενότητα 1.5 προσπαθήσαμε να περιγράψουμε τι είναι γλώσσα προγραμματισμού, καθώς και τις 2 βασικές κατηγορίες στις οποίες χωρίζονται οι γλώσσες προγραμματισμού. Η έννοια του προγραμματισμού αναλύθηκε επιγραμματικά στην ενότητα 1.6 και υλοποιήθηκαν τα στάδια του μέσω ενός απλού παραδείγματος. Η μέτρηση της απόδοσης ενός αλγορίθμου βάσει της ασυμπτωτικής συμπεριφοράς της χρονικής πολυπλοκότητας μελετήθηκε στην ενότητα 1.7. Η διαδικασία μετάφρασης και εκτέλεσης ενός προγράμματος στο περιβάλλον της Intel Visual Fortran αναλύθηκε στην ενότητα Απαντήσεις στις δραστηριότητες Ενδεικτική απάντηση Δραστηριότητας 1.1 Η διαδικασία είναι αυτή που περιγράφεται στο σχήμα 1.7. Στην περίπτωση που το πρόγραμμα ήταν γραμμένο σε γλώσσα μηχανής, δεν θα χρειαζόταν η διαδικασία μετάφρασης, η οποία ουσιαστικά μεταφράζει το πρόγραμμα σε γλώσσα μηχανής. Ενδεικτική απάντηση Δραστηριότητας 1.2 Ακολουθούμε τη διαδικασία που περιγράφηκε στην ενότητα 1.8.
Τμήμα Μαθηματικών, Α.Π.Θ.
Εισαγωγή στους Η/Υ και στο περιβάλλον της Compaq Visual Fortran Αν Καθ Νίκος Καραμπετάκης Αν. Καθ. Νίκος Καραμπετάκης Τμήμα Μαθηματικών, Α.Π.Θ. Περιεχόμενα Ποια είναι τα βασικά μέρη μρηαπό τα οποία αποτελείται
Εισαγωγή στον Προγραμματισμό H/Y (Fortran 90/95/2003)
ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Εισαγωγή στον Προγραμματισμό H/Y () Ενότητα 1: Εισαγωγή στους Η/Υ και στο περιβάλλον της Compaq Visual Fortran Νίκος Καραμπετάκης Τμήμα Μαθηματικών Άδειες Χρήσης Το παρόν εκπαιδευτικό
ΠΕΡΙΕΧΟΜΕΝΑ. 1. Εισαγωγή στους Η/Υ και στο Περιβάλλον της Compaq Visual Fortan1. 2. Βασικά στοιχεία ενός προγράμματος στη Fortran 90
ΠΡΟΛΟΓΟΣ Το βιβλίο αυτό γράφτηκε για τις ανάγκες του μαθήματος «Προγραμματισμός Η/Υ ΙΙ» που διδάσκεται στο Β εξάμηνο του Τμήματος Μαθηματικών του Α.Π.Θ.. Κύριος στόχος του βιβλίου αυτού είναι να εξοικιώσει
5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ
5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος
ISBN 978-960-456-191-9
Kάθε γνήσιο αντίτυπο φέρει την υπογραφή του συγγραφέα ISBN 978-960-456-191-9 Copyright, Ιανουάριος 2010, Σέμος Αναστάσιος, Eκδόσεις Zήτη Tο παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Εισαγωγή στο προγραμματισμό Η/Υ
Εισαγωγή στο προγραμματισμό Η/Υ Fortran 90/95/2003 Silverfrost FTN95: Fortran for Windows http://www.silverfrost.com/default.aspx http://users.auth.gr/~ppi/fortran/ Ηλεκτρονικός Υπολογιστής Hardware Software
ΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου
Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν
Α. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.
1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ
Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;
Θ. Ξένος: Άλγεβρα Α' Λυκείου (2η έκδοση) Απαντήσεις και λύσεις των ερωτήσεων & ασκήσεων
Σχολικό βιβλίο Άλγεβρα Α' Λυκείου Απαντήσεις και λύσεις των ερωτήσεων & ασκήσεων Θ. Ξένος: Άλγεβρα Α' Λυκείου (η έκδοση) Απαντήσεις και λύσεις των ερωτήσεων & ασκήσεων Μπορείτε να αντιγράψετε το παρόν
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται
ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ
Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό
Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα
Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη
Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες
Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας
Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;
5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να
Θέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός
<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1
ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που
Copyright: Βοβός Α. Νικόλαος, Eκδόσεις Zήτη, Ιανουάριος 2011
Βοβός - ΑΣΚΗΣΕΙΣ ΑΝΑΛΥΣΗΣ ISBN 978-96-46-28-9 Copyright: Βοβός Α. Νικόλαος, Eκδόσεις Zήτη, Ιανουάριος 211 Tο παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Eλληνικού νόμου (N.2121/1993
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα
Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής
Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Αλγόριθμος (algorithm) λέγεται μία πεπερασμένη διαδικασία καλά ορισμένων βημάτων που ακολουθείται για τη λύση ενός προβλήματος. Το διάγραμμα ροής
ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr
Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην
Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.
Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό Η έννοια του προβλήματος Τι είναι πρόβλημα; ΠΡΟΒΛΗΜΑΤΑ ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ Πρόβλημα είναι κάθε κατάσταση που μας απασχολεί και χρήζει αντιμετώπισης,
Κεφάλαιο 5 Ανάλυση Αλγορίθμων
Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής
ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης
5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής
Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός
Προγραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 1: Εισαγωγή στη C - Αλγόριθμοι Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε
Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.
Αλγόριθμος Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Εντολές ή οδηγίες ονομάζονται τα βήματα που αποτελούν έναν αλγόριθμο.
Μαλούτα Θεανώ Σελίδα 1
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος
Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα
Εισαγωγή στο περιβάλλον Code::Blocks
Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται
ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης
Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Θεωρία Προγραμματισμού
Θεωρία Προγραμματισμού 1) Τι ονομάζουμε Αλγόριθμο; Ονομάζεται μια ακολουθία από πεπερασμένο αριθμό εντολών, που αν εκτελεστούν με ακρίβεια, οδηγούν στη πραγματοποίηση μιας εργασίας. 2) Τι ονομάζουμε ανάλυση
Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010
Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ
Παρο υσίαση αλ γόριθμου
Παρο υσίαση αλ γόριθμου Όπως προαναφέρθηκε, η παρουσίαση ενός αλγόριθμου μπορεί να γίνει με τρεις τρόπους. Με φραστική μέθοδο, με ψευδοκώδικα και με λογικό διάγραμμα. Μπορούμε να χρησιμοποιήσουμε όποια
Εισαγωγή στην Πληροφορική
Εισαγωγή στην Πληροφορική Ανάπτυξη Λογισμικού ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Η διαδικασία ανάπτυξης λογισμικού μπορεί να
Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Εισαγωγή στην Πληροφορική
αρ χή Εισαγωγή στην Πληροφορική Σημειώσεις Παράρτημα 1 Οδηγός μελέτης για τις εξετάσεις 12/1/2017 μπορεί να συμπληρωθεί τις επόμενες μέρες Μάριος Μάντακας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Ηπείρου
ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ
ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.
ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων
Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής
Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Είσοδος:
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr Διαφάνειες: Καθ. Νικόλαος Λορέντζος 7. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα
Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1
Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,
Προγραμματισμός Ι (HY120)
Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο
Εισαγωγή στις Αρχές της επιστήμης των ΗΥ
Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.
Προγραμματισμός I (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.
ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος
Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )
Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,
ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ
1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ
Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ
Αλγόριθμοι Βασικές έννοιες ΤΕΛΟΣ Κριτήρια πληρότητας Είσοδος Έξοδος Καθοριστικότητα Περατότητα Αποτελεσματικότητα 04/01/09 βασικές έννοιες Αλγορίθμων 2 Σκοπιές μελέτης αλγορίθμων Υλικού Η ταχύτητα εκτέλεσης
ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος
ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής
ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL
8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:
Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του Αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών (όχι άπειρες), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο
Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ
1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία
Πληροφορική 2. Γλώσσες Προγραμματισμού
Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση
Πρόβλημα 37 / σελίδα 207
Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση
Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.
i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical
Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB
Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα, Πανεπιστήμιο
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural
ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ
ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να
Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι
Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση
Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.
Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα. Είδαμε τι είναι πρόβλημα, τι είναι αλγόριθμος και τέλος τι είναι πρόγραμμα. Πρέπει να μπορείτε να ξεχωρίζετε αυτές τις έννοιες και να αντιλαμβάνεστε
8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα
Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37
Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.
AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΟΚΤΩΒΡΙΟΥ 2015 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α
Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά
Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν
Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ) ΘΕΜΑ Α : A1. Να γράψετε στο φύλλο απαντήσεων τον αριθμό καθεμιάς
Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;
ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη
Πληροφορική ΙΙ Ενότητα 1
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός
Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα
Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραμματισμό (Διάλεξη 2) Περιεχόμενα Εισαγωγικές Έννοιες - Ορισμοί Ο κύκλος ανάπτυξης προγράμματος Παραδείγματα 1 Πότε χρησιμοποιούμε υπολογιστή? Χρήση υπολογιστή αν:
ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave
ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά
Copyright: Βοβός Α. Νικόλαος, Eκδόσεις Zήτη, Ιανουάριος 2011
Βοβός - ΑΣΚΗΣΕΙΣ ΕΛΕΓΧΟΣ ISBN 978-960-456-259-6 Copyright: Βοβός Α. Νικόλαος, Eκδόσεις Zήτη, Ιανουάριος 2011 Tο παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Eλληνικού νόμου (N.2121/1993
ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α ΛΥΚΕΙΟΥ Σεπτέμβριος 2007 ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ - Α ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Το μάθημα της Πληροφορικής στην Α Λυκείου έχει ως
Κεφάλαιο 4: Λογισμικό Συστήματος
Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος
Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:
Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα