Think Python. How to Think Like a Computer Scientist. Έκδοση Σεπτέμβριος 2014

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

Download "Think Python. How to Think Like a Computer Scientist. Έκδοση 1.0.3 Σεπτέμβριος 2014"

Transcript

1 i Think Python How to Think Like a Computer Scientist Έκδοση Σεπτέμβριος 2014

2 Think Python Πώς να Σκέφτεσαι σαν Επιστήμονας της Πληροφορικής Version Σεπτέμβριος 2014 Allen Downey Μετάφραση-Επιμέλεια: Ποικιλίδης Ζαχαρίας Επιβλέπων: Δρ. Βλάχος Βασίλειος ΤΕΙ of Larisa

3 Copyright 2012 Allen Downey. Παραχωρείται η άδεια προς αντιγραφή, διανομή και/ή τροποποίηση αυτού του εγγράφου σύμφωνα με τους όρους της άδειας Creative Commons Attribution-NonCommercial 3.0 Unported License, η οποία είναι διαθέσιμη στην σελίδα Η αρχική μορφή αυτού του βιβλίου είναι πηγαίος κώδικας L A TEX. Η μεταγλώττιση αυτού του κώδικα L A TEX έχει ως αποτέλεσμα τη δημιουργία μίας ανεξάρτητης συσκευής αναπαράστασης του βιβλίου, η οποία μπορεί να μετατραπεί σε άλλες μορφές και να τυπωθεί. Ο πηγαίος κώδικας της αγγλικής έκδοσης του βιβλίου είναι διαθέσιμος στον σύνδεσμο: com.

4 iv

5 Πρόλογος Λίγα λόγια για το βιβλίο Το βιβλίο αυτό αποτελεί μετάφραση του αγγλικού βιβλίου Think Python του καθηγητή Allen B. Downey από το κολέγιο εφαρμοσμένης μηχανικής Franklin W. Olin. Η μετάφραση διεκπεραιώθηκε στα πλαίσια της πτυχιακής μου εργασίας στο Τμήμα Μηχανικών Πληροφορικής Τ.Ε. του ΑΤΕΙ Λάρισας. Η εργασία αυτή μου έδωσε την ευκαιρία να εργαστώ με το L A TEX και να μάθω τα βασικά για τη δημιουργία ενός εγγράφου. Για την επεξεργασία του πηγαίου κώδικα του βιβλίου χρησιμοποιήθηκε το εργαλείο texmaker τόσο σε περιβάλλον Linux (ubuntu 13.04/13.10) όσο και σε Windows 7. Αρχικά χρησιμοποίησα το πακέτο babel για να την παράλληλη χρήση ελληνικών και λατινικών χαρακτήρων αλλά στην πορεία άλλαξα την μηχανή σε XƎTEX γιατί το XeLaTeX έχει εγγενή υποστήριξη για unicode. Αυτή είναι η πρώτη έκδοση του βιβλίου στα ελληνικά και είναι βασισμένη στην του αρχικού βιβλίου. Ο πηγαίος κώδικας του ελληνικού βιβλίου είναι διαθέσιμος στο σύνδεσμο... Κάθε διόρθωση η παρατήρηση πάνω σε αυτόν τον κώδικα είναι ευπρόσδεκτη και θα εκτιμηθεί ιδιαίτερα. Το βιβλίο πραγματεύεται τη γλώσσα προγραμματισμού Python αλλά επικεντρώνεται περισσότερο στον προγραμματισμό και την επίλυση προβλημάτων παρά στη γλώσσα αυτή κάθε αυτή. Μερικά από τα χαρακτηριστικά στοιχεία αυτού του βιβλίου είναι: Στο τέλος κάθε κεφαλαίου υπάρχει μία ενότητα σχετικά με την αποσφαλμάτωση. Αυτές οι ενότητες παρουσιάζουν κάποιες γενικές τεχνικές για την εύρεση και την αποφυγή σφαλμάτων σχετικά με τις παγίδες της Python. Κάθε κεφάλαιο έχει ασκήσεις η οποίες κυμαίνονται από μικρά τεστ κατανόησης μέχρι και κάποια ουσιαστικά προγράμματα και υπάρχουν λύσεις για τις περισσότερες από αυτές. Υπάρχει μία σειρά από μελέτες περιπτώσεων, οι οποίες είναι μεγαλύτερα παραδείγματα με ασκήσεις, λύσεις και συζήτηση. Μερικές είναι βασισμένες στη Swampy, μία σουίτα από προγράμματα Python την επιμέλεια της οποίας έχει ο καθηγητής Allen B. Downey. Η Swampy, παραδείγματα κώδικα και κάποιες λύσεις είναι διαθέσιμες στον σύνδεσμο com. Κατά την έκταση του βιβλίου λαμβάνει χώρα μία εκτενής συζήτηση σχετικά με τα σχέδια ανάπτυξης ενός προγράμματος και τα βασικά σχεδιαστικά πρότυπα. Στο τέλος του βιβλίου υπάρχουν παραρτήματα σχετικά με την αποσφαλμάτωση, την ανάλυση αλγορίθμων και και τα διαγράμματα UML με το πακέτο Lumpy. v

6 vi ΠΡΟΛΟΓΟΣ Εύχομαι να σας αρέσει το αποτέλεσμα και να σας βοηθήσει να μάθετε πως να σκέφτεστε και πως να προγραμματίζετε σαν επιστήμονες της πληροφορικής. Ευχαριστίες Αρχικά θα ήθελα να ευχαριστήσω τον καθηγητή Allen Downey για την επιλογή του να κυκλοφορήσει αυτό το βιβλίο κάτω από την Άδεια Ελεύθερης Τεκμηρίωσης GNU με αποτέλεσμα να μου δώσει την δυνατότητα να μεταφράσω αυτό το βιβλίο στα Ελληνικά. Επίσης θα ήθελα να ευχαριστήσω τον επιβλέπων καθηγητή μου Βλάχο Βασίλειο γιατί μου έδωσε την ευκαιρία να ασχοληθώ με αυτό το βιβλίο στα πλαίσια της πτυχιακής μου εργασίας. Ελπίζω αυτό το βιβλίο να αποτελέσει ένα χρήσιμο εργαλείο εκμάθησης προγραμματισμού στο Τμήμα Μηχανικών Πληροφορικής του ΤΕΙ της Λάρισας και γιατί όχι και αλλού. Τέλος θα ήθελα να ευχαριστήσω τους γονείς μου Βασίλη και Φωτεινή, που με στήριξαν όλα αυτά τα χρόνια καθώς επίσης και την κοπέλα μου Ελεονώρα για την πολύτιμη βοήθειά της στην μετάφραση αρκετών δυσνόητων σημείων του βιβλίου. Λίστα συνεισφερόντων του αρχικού βιβλίου Περισσότεροι από από 100 προσεκτικοί αναγνώστες έχουν στείλει προτάσεις και διορθώσεις τα περασμένα χρόνια για το αρχικό βιβλίο στα Αγγλικά. Αυτή είναι μια λίστα με σχεδόν όλους όσους βοήθησαν στην ανάπτυξη και τελειοποίηση του αγγλικού βιβλίου. Lloyd Hugh Allen sent in a correction to Section 8.4. Yvon Boulianne sent in a correction of a semantic error in Chapter 5. Fred Bremmer submitted a correction in Section 2.1. Jonah Cohen wrote the Perl scripts to convert the LaTeX source for this book into beautiful HTML. Michael Conlon sent in a grammar correction in Chapter 2 and an improvement in style in Chapter 1, and he initiated discussion on the technical aspects of interpreters. Benoit Girard sent in a correction to a humorous mistake in Section 5.6. Courtney Gleason and Katherine Smith wrote horsebet.py, which was used as a case study in an earlier version of the book. Their program can now be found on the website. Lee Harr submitted more corrections than we have room to list here, and indeed he should be listed as one of the principal editors of the text. James Kaylin is a student using the text. He has submitted numerous corrections. David Kershaw fixed the broken cattwice function in Section Eddie Lam has sent in numerous corrections to Chapters 1, 2, and 3. He also fixed the Makefile so that it creates an index the first time it is run and helped us set up a versioning scheme. Man-Yong Lee sent in a correction to the example code in Section 2.4. David Mayo pointed out that the word unconsciously in Chapter 1 needed to be changed to subconsciously. Chris McAloon sent in several corrections to Sections 3.9 and Matthew J. Moelter has been a long-time contributor who sent in numerous corrections and suggestions to the book.

7 vii Simon Dicon Montford reported a missing function definition and several typos in Chapter 3. He also found errors in the increment function in Chapter 13. John Ouzts corrected the definition of return value in Chapter 3. Kevin Parks sent in valuable comments and suggestions as to how to improve the distribution of the book. David Pool sent in a typo in the glossary of Chapter 1, as well as kind words of encouragement. Michael Schmitt sent in a correction to the chapter on files and exceptions. Robin Shaw pointed out an error in Section 13.1, where the printtime function was used in an example without being defined. Paul Sleigh found an error in Chapter 7 and a bug in Jonah Cohen s Perl script that generates HTML from LaTeX. Craig T. Snydal is testing the text in a course at Drew University. He has contributed several valuable suggestions and corrections. Ian Thomas and his students are using the text in a programming course. They are the first ones to test the chapters in the latter half of the book, and they have made numerous corrections and suggestions. Keith Verheyden sent in a correction in Chapter 3. Peter Winstanley let us know about a longstanding error in our Latin in Chapter 3. Chris Wrobel made corrections to the code in the chapter on file I/O and exceptions. Moshe Zadka has made invaluable contributions to this project. In addition to writing the first draft of the chapter on Dictionaries, he provided continual guidance in the early stages of the book. Christoph Zwerschke sent several corrections and pedagogic suggestions, and explained the difference between gleich and selbe. James Mayer sent us a whole slew of spelling and typographical errors, including two in the contributor list. Hayden McAfee caught a potentially confusing inconsistency between two examples. Angel Arnal is part of an international team of translators working on the Spanish version of the text. He has also found several errors in the English version. Tauhidul Hoque and Lex Berezhny created the illustrations in Chapter 1 and improved many of the other illustrations. Dr. Michele Alzetta caught an error in Chapter 8 and sent some interesting pedagogic comments and suggestions about Fibonacci and Old Maid. Andy Mitchell caught a typo in Chapter 1 and a broken example in Chapter 2. Kalin Harvey suggested a clarification in Chapter 7 and caught some typos. Christopher P. Smith caught several typos and helped us update the book for Python 2.2. David Hutchins caught a typo in the Foreword. Gregor Lingl is teaching Python at a high school in Vienna, Austria. He is working on a German translation of the book, and he caught a couple of bad errors in Chapter 5. Julie Peters caught a typo in the Preface. Florin Oprina sent in an improvement in maketime, a correction in printtime, and a nice typo. D. J. Webre suggested a clarification in Chapter 3. Ken found a fistful of errors in Chapters 8, 9 and 11. Ivo Wever caught a typo in Chapter 5 and suggested a clarification in Chapter 3.

8 viii ΠΡΟΛΟΓΟΣ Curtis Yanko suggested a clarification in Chapter 2. Ben Logan sent in a number of typos and problems with translating the book into HTML. Jason Armstrong saw the missing word in Chapter 2. Louis Cordier noticed a spot in Chapter 16 where the code didn t match the text. Brian Cain suggested several clarifications in Chapters 2 and 3. Rob Black sent in a passel of corrections, including some changes for Python 2.2. Jean-Philippe Rey at Ecole Centrale Paris sent a number of patches, including some updates for Python 2.2 and other thoughtful improvements. Jason Mader at George Washington University made a number of useful suggestions and corrections. Jan Gundtofte-Bruun reminded us that a error is an error. Abel David and Alexis Dinno reminded us that the plural of matrix is matrices, not matrixes. This error was in the book for years, but two readers with the same initials reported it on the same day. Weird. Charles Thayer encouraged us to get rid of the semi-colons we had put at the ends of some statements and to clean up our use of argument and parameter. Roger Sperberg pointed out a twisted piece of logic in Chapter 3. Sam Bull pointed out a confusing paragraph in Chapter 2. Andrew Cheung pointed out two instances of use before def. C. Corey Capel spotted the missing word in the Third Theorem of Debugging and a typo in Chapter 4. Alessandra helped clear up some Turtle confusion. Wim Champagne found a brain-o in a dictionary example. Douglas Wright pointed out a problem with floor division in arc. Jared Spindor found some jetsam at the end of a sentence. Lin Peiheng sent a number of very helpful suggestions. Ray Hagtvedt sent in two errors and a not-quite-error. Torsten Hübsch pointed out an inconsistency in Swampy. Inga Petuhhov corrected an example in Chapter 14. Arne Babenhauserheide sent several helpful corrections. Mark E. Casida is is good at spotting repeated words. Scott Tyler filled in a that was missing. And then sent in a heap of corrections. Gordon Shephard sent in several corrections, all in separate s. Andrew Turner spotted an error in Chapter 8. Adam Hobart fixed a problem with floor division in arc. Daryl Hammond and Sarah Zimmerman pointed out that I served up math.pi too early. And Zim spotted a typo. George Sass found a bug in a Debugging section. Brian Bingham suggested Exercise Leah Engelbert-Fenton pointed out that I used tuple as a variable name, contrary to my own advice. And then found a bunch of typos and a use before def. Joe Funke spotted a typo. Chao-chao Chen found an inconsistency in the Fibonacci example.

9 ix Jeff Paine knows the difference between space and spam. Lubos Pintes sent in a typo. Gregg Lind and Abigail Heithoff suggested Exercise Max Hailperin has sent in a number of corrections and suggestions. Max is one of the authors of the extraordinary Concrete Abstractions, which you might want to read when you are done with this book. Chotipat Pornavalai found an error in an error message. Stanislaw Antol sent a list of very helpful suggestions. Eric Pashman sent a number of corrections for Chapters Miguel Azevedo found some typos. Jianhua Liu sent in a long list of corrections. Nick King found a missing word. Martin Zuther sent a long list of suggestions. Adam Zimmerman found an inconsistency in my instance of an instance and several other errors. Ratnakar Tiwari suggested a footnote explaining degenerate triangles. Anurag Goel suggested another solution for is_abecedarian and sent some additional corrections. And he knows how to spell Jane Austen. Kelli Kratzer spotted one of the typos. Mark Griffiths pointed out a confusing example in Chapter 3. Roydan Ongie found an error in my Newton s method. Patryk Wolowiec helped me with a problem in the HTML version. Mark Chonofsky told me about a new keyword in Python 3. Russell Coleman helped me with my geometry. Wei Huang spotted several typographical errors. Karen Barber spotted the the oldest typo in the book. Nam Nguyen found a typo and pointed out that I used the Decorator pattern but didn t mention it by name. Stéphane Morin sent in several corrections and suggestions. Paul Stoop corrected a typo in uses_only. Eric Bronner pointed out a confusion in the discussion of the order of operations. Alexandros Gezerlis set a new standard for the number and quality of suggestions he submitted. We are deeply grateful! Gray Thomas knows his right from his left. Giovanni Escobar Sosa sent a long list of corrections and suggestions. Alix Etienne fixed one of the URLs. Kuang He found a typo. Daniel Neilson corrected an error about the order of operations. Will McGinnis pointed out that polyline was defined differently in two places. Swarup Sahoo spotted a missing semi-colon. Frank Hecker pointed out an exercise that was under-specified, and some broken links. Animesh B helped me clean up a confusing example.

10 x ΠΡΟΛΟΓΟΣ Martin Caspersen found two round-off errors. Gregor Ulm sent several corrections and suggestions. Dimitrios Tsirigkas suggested I clarify an exercise. Carlos Tafur sent a page of corrections and suggestions. Martin Nordsletten found a bug in an exercise solution. Lars O.D. Christensen found a broken reference. Victor Simeone found a typo. Sven Hoexter pointed out that a variable named input shadows a build-in function. Viet Le found a typo. Stephen Gregory pointed out the problem with cmp in Python 3. Matthew Shultz let me know about a broken link. Lokesh Kumar Makani let me know about some broken links and some changes in error messages. Ishwar Bhat corrected my statement of Fermat s last theorem.

11 Περιεχόμενα Πρόλογος v 1 Ο τρόπος του προγράμματος Η γλώσσα προγραμματισμού Python Τι είναι ένα πρόγραμμα Τι είναι η αποσφαλμάτωση; Συντακτικά λάθη Λάθη χρόνου εκτέλεσης Λογικά λάθη Πειραματική αποσφαλμάτωση Επίσημες και τυπικές γλώσσες Το πρώτο πρόγραμμα Αποσφαλμάτωση Ορολογία Ασκήσεις Μεταβλητές, εκφράσεις και δηλώσεις Τιμές και τύποι Μεταβλητές Ονόματα μεταβλητών και λέξεις κλειδιά Τελεστές και τελεστέοι Εκφράσεις και δηλώσεις Διαδραστική λειτουργία και λειτουργία σεναρίων Η σειρά των πράξεων Πράξεις συμβολοσειρών Σχόλια Αποσφαλμάτωση Ορολογία Ασκήσεις Συναρτήσεις Κλήσεις συναρτήσεων Συναρτήσεις μετατροπής τύπων Μαθηματικές Συναρτήσεις Σύνθεση Προσθέτοντας νέες συναρτήσεις Ορισμοί και χρήσεις Ροή εκτέλεσης Παράμετροι και ορίσματα xi

12 xii ΠΕΡΙΕΧΟΜΕΝΑ 3.9 Οι μεταβλητές και οι παράμετροι είναι τοπικές Διαγράμματα στοίβας Γόνιμες και κενές συναρτήσεις Γιατί συναρτήσεις Εισαγωγή από μονάδα λογισμικού με from Αποσφαλμάτωση Ορολογία Ασκήσεις Μελέτη περίπτωσης: σχεδίαση διεπαφής TurtleWorld Απλή επανάληψη Ασκήσεις Ενθυλάκωση Γενίκευση Σχεδίαση διεπαφής Ανακατασκευή κώδικα Πλάνο ανάπτυξης Συμβολοσειρά τεκμηρίωσης Αποσφαλμάτωση Ορολογία Ασκήσεις Δηλώσεις υπό συνθήκη και αναδρομή Τελεστής υπολογισμού υπολοίπου ακέραιας διαίρεσης Λογικές εκφράσεις Λογικοί τελεστές Εκτέλεση υπό συνθήκη Εναλλακτική εκτέλεση Αλυσιδωτές συνθήκες Εμφωλευμένες συνθήκες Αναδρομή Διαγράμματα στοίβας για αναδρομικές συναρτήσεις Άπειρη αναδρομή Είσοδος από το πληκτρολόγιο Αποσφαλμάτωση Ορολογία Ασκήσεις Γόνιμες Συναρτήσεις Επιστρεφόμενες τιμές Σταδιακή ανάπτυξη Σύνθεση Λογικές συναρτήσεις Περισσότερη αναδρομή Άλμα πίστης Ένα ακόμα παράδειγμα Έλεγχος τύπων Αποσφαλμάτωση Ορολογία Ασκήσεις

13 ΠΕΡΙΕΧΟΜΕΝΑ xiii 7 Επανάληψη Πολλαπλή εκχώρηση Ενημέρωση μεταβλητών Η δήλωση while Η δήλωση break Τετραγωνικές ρίζες Αλγόριθμοι Αποσφαλμάτωση Ορολογία Ασκήσεις Συμβολοσειρές Μία συμβολοσειρά είναι μία ακολουθία Η δήλωση len Διάσχιση με for Τεμάχια συμβολοσειράς Οι συμβολοσειρές είναι αμετάβλητες Αναζήτηση Επανάληψη και καταμέτρηση Μέθοδοι συμβολοσειρών Τελεστής in Σύγκριση συμβολοσειρών Αποσφαλμάτωση Ορολογία Ασκήσεις Μελέτη περίπτωσης: λογοπαίγνια Διαβάζοντας λίστες λέξεων Ασκήσεις Αναζήτηση Βρόγχοι επανάληψης με δείκτες Αποσφαλμάτωση Ορολογία Ασκήσεις Λίστες Μια συμβολοσειρά είναι μία ακολουθία Οι λίστες είναι ευμετάβλητες Διασχίζοντας μία λίστα Πράξεις συμβολοσειρών Λίστες και τεμάχια Μέθοδοι λιστών Map, filter και reduce Διαγραφή στοιχείων Λίστες και συμβολοσειρές Αντικείμενα και τιμές Ψευδώνυμα Ορίσματα λίστας Αποσφαλμάτωση Ορολογία Ασκήσεις

14 xiv ΠΕΡΙΕΧΟΜΕΝΑ 11 Λεξικά Το λεξικό ως ένα σύνολο από μετρητές Λεξικά και βρόχοι Αντίστροφη αναζήτηση Λεξικά και λίστες Σημείωμα Καθολικές μεταβλητές Ακέραιοι μεγάλου μήκους Αποσφαλμάτωση Ορολογία Ασκήσεις Πλειάδες Οι πλειάδες είναι αμετάβλητες Εκχώρηση πλειάδων Οι πλειάδες σαν επιστρεφόμενες τιμές Οι πλειάδες σαν ορίσματα μεταβλητού μήκους Λίστες και πλειάδες Λεξικά και πλειάδες Συγκρίνοντας πλειάδες Ακολουθίες ακολουθιών Αποσφαλμάτωση Ορολογία Ασκήσεις Μελέτη περίπτωσης: επιλογή δομής δεδομένων Ανάλυση συχνότητας λέξεων Τυχαίοι αριθμοί Ιστόγραμμα λέξεων Οι πιο συνηθέστερες λέξεις Προαιρετικές παράμετροι Αφαίρεση λεξικών Τυχαίες λέξεις Ανάλυση Μαρκόφ Δομές δεδομένων Αποσφαλμάτωση Ορολογία Ασκήσεις Αρχεία Διάρκεια Διάβασμα και γράψιμο Τελεστής διαμόρφωσης Ονόματα αρχείων και διαδρομές Πιάσιμο εξαιρέσεων Βάσεις δεδομένων Σειριοποίηση Σωληνώσεις Γράψιμο αρθρωμάτων Αποσφαλμάτωση Ορολογία

15 ΠΕΡΙΕΧΟΜΕΝΑ xv 14.12Ασκήσεις Κλάσεις και αντικείμενα Τύποι ορισμένοι από το χρήστη Ιδιότητες Ορθογώνια παραλληλόγραμμα Τα στιγμιότυπα σαν επιστρεφόμενες τιμές Τα αντικείμενα είναι μεταβλητά Αντιγραφή Αποσφαλμάτωση Ορολογία Ασκήσεις Κλάσεις και συναρτήσεις Ώρα Αγνές συναρτήσεις Συναρτήσεις τροποποίησης Πρωτοτυποποίηση εναντίον σχεδιασμού Αποσφαλμάτωση Ορολογία Ασκήσεις Κλάσεις και μέθοδοι Αντικειμενοστραφή χαρακτηριστικά Εκτύπωση αντικειμένων Ένα ακόμη παράδειγμα Ένα πιο σύνθετο παράδειγμα Η μέθοδος init Η μέθοδος str Υπερφόρτωση τελεστών Αποστολή βάση τύπου Πολυμορφισμός Αποσφαλμάτωση Διεπαφή και υλοποίηση Ορολογία Ασκήσεις Κληρονομικότητα Αντικείμενα τραπουλόχαρτων Ιδιότητες κλάσεων Συγκρίνοντας τραπουλόχαρτα Τράπουλες Τύπωση τράπουλας Προσθήκη, αφαίρεση, ανακάτεμα και ταξινόμηση Κληρονομικότητα Διαγράμματα κλάσεων Αποσφαλμάτωση Ενθυλάκωση δεδομένων Ορολογία Ασκήσεις Tkinter 201

16 xvi ΠΕΡΙΕΧΟΜΕΝΑ 19.1 Γραφική διασύνδεση χρήστη Κουμπιά και επιστροφές κλήσεων Γραφικά στοιχεία Καμβά Ακολουθίες συντεταγμένων Περισσότερα γραφικά στοιχεία Πακετάρισμα γραφικών στοιχείων Μενού και αντικείμενα με δυνατότητα κλήσης Δεσμοί Αποσφαλμάτωση Ορολογία Ασκήσεις Αʹ Αποσφαλμάτωση 215 Αʹ.1 Συντακτικά λάθη Αʹ.1.1 Συνεχίζω να κάνω αλλαγές αλλά δεν υπάρχει διαφορά Αʹ.2 Λάθη χρόνου εκτέλεσης Αʹ.2.1 Το πρόγραμμά μου δεν κάνει απολύτως τίποτα Αʹ.2.2 Το πρόγραμμά μου κρεμάει Αʹ.2.3 Παίρνω μία εξαίρεση όταν τρέχω το πρόγραμμα Αʹ.2.4 Πρόσθεσα πολλές δηλώσεις print και πελάγωσα με την έξοδο Αʹ.3 Σημασιολογικά λάθη Αʹ.3.1 Το πρόγραμμά μου δεν δουλεύει Αʹ.3.2 Έχω μία μεγάλη έκφραση η οποία δεν κάνει αυτό που θα περίμενα Αʹ.3.3 Έχω μία μέθοδο ή μία συνάρτηση η οποία δεν επιστρέφει αυτό που θα περίμενα Αʹ.3.4 Έχω κολλήσει πραγματικά και χρειάζομαι βοήθεια Αʹ.3.5 Όχι, χρειάζομαι πραγματικά βοήθεια Βʹ Ανάλυση Αλγορίθμων 225 Βʹ.1 Τάξη αύξησης Βʹ.2 Ανάλυση των βασικών πράξεων της γλώσσας Βʹ.3 Ανάλυση των αλγόριθμων αναζήτησης Βʹ.4 Πίνακες κατακερματισμού Γʹ Lumpy 235 Γʹ.1 Διάγραμμα κατάστασης Γʹ.2 Διάγραμμα στοίβας Γʹ.3 Διαγράμματα αντικειμένων Γʹ.4 Αντικείμενα συναρτήσεων και κλάσεων Γʹ.5 Διαγράμματα Κλάσεων

17 Κεφάλαιο 1 Ο τρόπος του προγράμματος Στόχος αυτού του βιβλίου είναι να σας διδάξει πώς να σκέφτεστε σαν επιστήμονες της πληροφορικής. Αυτός ο τρόπος σκέψης συνδυάζει κάποια από τα καλύτερα χαρακτηριστικά των μαθηματικών, της μηχανικής και της φυσικής επιστήμης. Όπως οι μαθηματικοί, έτσι και οι επιστήμονες της πληροφορικής χρησιμοποιούν τυπικές γλώσσες (formal) για να υποδηλώσουν ιδέες (και ειδικότερα υπολογισμούς). Όπως οι μηχανικοί, σχεδιάζουν πράγματα, συνθέτουν επιμέρους μέρη σε συστήματα και αξιολογούν τις συμβιβαστικές λύσεις σε σχέση με τις εναλλακτικές. Όπως οι επιστήμονες, παρατηρούν την συμπεριφορά πολύπλοκων συστημάτων, διαμορφώνουν τις υποθέσεις, και εξετάζουν τις προβλέψεις. Η πιο σημαντική ικανότητα για έναν επιστήμονα της πληροφορικής είναι η επίλυση προβλημάτων. Επίλυση προβλημάτων είναι η δυνατότητα να διατυπώνεις προβλήματα, να σκέφτεσαι δημιουργικά όσον αφορά τις λύσεις και να εκφράζεις μια λύση με σαφήνεια και ακρίβεια. Όπως προκύπτει, η διαδικασία του να μαθαίνεις να προγραμματίζεις είναι μία εξαιρετική ευκαιρία για να εξασκήσεις τις ικανότητές σου πάνω στην επίλυση προβλημάτων. Γι αυτό το λόγο αυτό το κεφάλαιο ονομάζεται, Ο τρόπος του προγράμματος. Ως ένα βαθμό, θα μάθετε να προγραμματίζετε, η οποία είναι μία χρήσιμη δεξιότητα από μόνη της. Ως έναν άλλο βαθμό, θα χρησιμοποιήσετε τον προγραμματισμό ως μέσο για ένα τέλος. Όσο προχωράμε, αυτό το τέλος θα γίνεται πιο ξεκάθαρο. 1.1 Η γλώσσα προγραμματισμού Python Η γλώσσα προγραμματισμού που θα μάθετε είναι η Python. Η Python είναι ένα παράδειγμα γλώσσας υψηλού επιπέδου. Άλλες γλώσσες υψηλού επιπέδου που ενδεχομένως να έχετε ακούσει είναι η C, η C++, η Perl και η Java. Επίσης υπάρχουν και γλώσσες χαμηλού επιπέδου, οι οποίες μερικές φορές αναφέρονται και ως γλώσσες μηχανής ή συμβολικές γλώσσες. Μιλώντας γενικά, οι υπολογιστές μπορούν να τρέξουν μόνο προγράμματα τα οποία είναι γραμμένα σε γλώσσες χαμηλού επιπέδου. Έτσι, προγράμματα τα οποία είναι γραμμένα σε μία γλώσσα υψηλού επιπέδου πρέπει πρώτα να επεξεργαστούν για να μπορούν να τρέξουν. Αυτή η επιπλέον επεξεργασία παίρνει κάποιο χρόνο, το οποίο είναι ένα μικρό μειονέκτημα των γλωσσών υψηλού επιπέδου. Τα πλεονεκτήματα είναι τεράστια. Πρώτον, είναι πολύ ευκολότερο να προγραμματίζεις σε μία γλώσσα υψηλού επιπέδου. Προγράμματα γραμμένα σε μία γλώσσα υψηλού επιπέδου χρειάζονται λιγότερο 1

18 2 ΚΕΦΑΛΑΙΟ 1. Ο ΤΡΟΠΟΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ SOURCE CODE INTERPRETER OUTPUT Σχήμα 1.1: Ένας διερμηνέας επεξεργάζεται το πρόγραμμα κομμάτι κομμάτι ή αλλιώς διαβάζει γραμμές και εκτελεί υπολογισμούς. SOURCE CODE COMPILER OBJECT CODE EXECUTOR OUTPUT Σχήμα 1.2: Ένας μεταγλωττιστής μετατρέπει τον πηγαίο κώδικα σε αντικειμενικό κώδικα, ο οποίος τρέχει από έναν εκτελεστή υλικού. χρόνο για να γραφτούν, είναι μικρότερα και διαβάζονται ευκολότερα, και είναι πιο πιθανό να είναι σωστά. Δεύτερον, οι γλώσσες υψηλού επιπέδου είναι φορητές, που σημαίνει ότι μπορούν να τρέξουν σε διαφορετικά είδη υπολογιστών με μερικές ή καθόλου τροποποιήσεις. Προγράμματα χαμηλού επιπέδου μπορούν να τρέξουν μόνο σε ένα είδος υπολογιστή και πρέπει να ξαναγραφτούν για να τρέξουν σε κάποιον άλλο. Λόγω αυτών των πλεονεκτημάτων, σχεδόν όλα τα προγράμματα γράφονται σε γλώσσες υψηλού επιπέδου. Οι γλώσσες χαμηλού επιπέδου χρησιμοποιούνται μόνο σε μερικές εξειδικευμένες εφαρμογές. Δύο είδη προγραμμάτων μετατρέπουν μία γλώσσα υψηλού επιπέδου σε μία γλώσσα χαμηλού επιπέδου: οι διερμηνείς (interpreters) και οι μεταγλωττιστές (compilers). Ένας διερμηνέας διαβάζει ένα πρόγραμμα υψηλού επιπέδου και το εκτελεί, αυτό σημαίνει ότι κάνει ό,τι λέει το πρόγραμμα. Επεξεργάζεται το πρόγραμμα κομμάτι κομμάτι, αλλιώς διαβάζει γραμμές και εκτελεί υπολογισμούς. Εικόνα 1.1 δείχνει τη δομή ενός διερμηνέα. Ένας μεταγλωττιστής διαβάζει το πρόγραμμα και το μεταφράζει ολόκληρο πριν ξεκινήσει να τρέχει το πρόγραμμα. Σε αυτό το πλαίσιο, το πρόγραμμα υψηλού επιπέδου ονομάζεται πηγαίος κώδικας (source code), και το μεταφρασμένο πρόγραμμα ονομάζεται αντικειμενικός κώδικας (object code) ή εκτελέσιμο (executable). Όταν ένα πρόγραμμα μεταγλωττιστεί, μπορείτε να το εκτελέσετε επανειλημμένα χωρίς περαιτέρω μετάφραση. Εικόνα 1.2 δείχνει τη δομή ενός μεταγλωττιστή. Η Python θεωρείτε μία διερμηνευμένη γλώσσα επειδή τα προγράμματά της εκτελούνται από έναν διερμηνέα. Υπάρχουν δύο τρόποι χρήσης του διερμηνέα: διαδραστική λειτουργία (interactive mode) και σεναριακή λειτουργία (script mode). Στην διαδραστική λειτουργία, πληκτρολογούμε προγράμματα σε Python και ο διερμηνέας εμφανίζει το αποτέλεσμα: >>> Το σύμβολο, >>>, είναι ο προτροπέας (prompt) που χρησιμοποιεί ο διερμηνέας για να υποδείξει ότι είναι έτοιμος. Αν πληκτρολογήσετε 1 + 1, ο διερμηνέας απαντάει 2. Εναλλακτικά, μπορείτε να αποθηκεύσετε κώδικα σε ένα φάκελο και να χρησιμοποιήσετε το διερμη-

19 1.2. ΤΙ ΕΙΝΑΙ ΕΝΑ ΠΡΟΓΡΑΜΜΑ 3 νέα για να εκτελέσει τα περιεχόμενα του φακέλου, το οποίο ονομάζεται ένα σενάριο (script). Κατά παράδοση, τα σενάρια της Python έχουν ονόματα τα οποία έχουν κατάληξη.py. Για να εκτελεστεί το σενάριο, πρέπει να πείτε στο διερμηνέα το όνομα του φακέλου. Εάν έχετε ένα σενάριο με όνομα dinsdale.py και δουλεύετε σε ένα παράθυρο εντολών UNIX, πληκτρολογείτε python dinsdale.py. Σε άλλα περιβάλλοντα ανάπτυξης, οι λεπτομέρειες εκτέλεσης των σεναρίων είναι διαφορετικές. Μπορείτε να βρείτε οδηγίες για το περιβάλλον σας στην ιστοσελίδα της Python Όταν δουλεύετε στην διαδραστική λειτουργία σας βοηθάει να εξετάζετε μικρά κομμάτια κώδικα επειδή μπορείτε να τα πληκτρολογήσετε και να εκτελεστούν άμεσα. Αλλά για κάτι παραπάνω από λίγες γραμμές, θα πρέπει να αποθηκεύσετε τον κώδικά σας σαν σενάριο ώστε να μπορείτε να τον τροποποιήσετε και να το εκτελέσετε στο μέλλον. 1.2 Τι είναι ένα πρόγραμμα Ένα πρόγραμμα είναι μία ακολουθία εντολών η οποία προσδιορίζει πως θα εκτελεστεί ένας υπολογισμός. Αυτός ο υπολογισμός μπορεί να είναι κάτι μαθηματικό, όπως το να λύνεις ένα σύστημα εξισώσεων ή το να βρίσκεις τις ρίζες ενός πολυωνύμου, αλλά επίσης μπορεί να είναι ένας συμβολικός υπολογισμός, όπως το να ψάχνεις και να αντικαθιστάς κείμενο μέσα σε ένα έγγραφο ή (περιέργως) να μεταγλωττίζεις ένα πρόγραμμα. Οι λεπτομέρειες είναι διαφορετικές σε κάθε γλώσσα, αλλά μερικές βασικές εντολές εμφανίζονται σχεδόν σε κάθε γλώσσα: είσοδος: Εισάγονται δεδομένα από το πληκτρολόγιο, ένα αρχείο, ή οποιαδήποτε άλλη συσκευή. έξοδος: Εμφανίζονται δεδομένα στην οθόνη ή στέλνονται σε κάποιο αρχείο ή συσκευή. μαθηματικά: Εκτελούνται βασικές μαθηματικές πράξεις όπως πρόσθεση και πολλαπλασιασμός. εκτέλεση υπό συνθήκη: Ελέγχονται συγκεκριμένες συνθήκες και εκτελείται ο κατάλληλος κώδικας. επανάληψη: Εκτελείται κάποια ενέργεια κατ επανάληψη, με κάποια παραλλαγή. Είτε το πιστεύετε είτε όχι, λίγο πολύ αυτό είναι όλο. Κάθε πρόγραμμα που έχετε χρησιμοποιήσει, ανεξάρτητα από το πόσο περίπλοκο ήταν, απαρτίζεται από εντολές που μοιάζουν λίγο πολύ όπως αυτές. Έτσι μπορείτε να φανταστείτε τον προγραμματισμό σαν μία διαδικασία κατά την οποία σπάμε μία μεγάλη και πολύπλοκη εργασία σε όλο και μικρότερες υποδιεργασίες μέχρις ότου οι υποδιεργασίες να είναι αρκετά απλές για να εκτελεστούν με μία από αυτές τις βασικές εντολές. Αυτό μπορεί να είναι λίγο ασαφές, αλλά θα επανέλθουμε σε αυτό το θέμα όταν θα μιλήσουμε για αλγόριθμους. 1.3 Τι είναι η αποσφαλμάτωση; Ο προγραμματισμός είναι επιρρεπής σε λάθη. Για ανεξήγητους λόγους, τα λάθη στον προγραμματισμό ονομάζονται στα αγγλικά bugs ενώ στα ελληνικά σφάλματα και η διαδικασία εντοπισμού τους ονομάζεται debugging ή αποσφαλμάτωση στα ελληνικά. Τρία είδη λαθών μπορεί να συμβούν σε ένα πρόγραμμα: συντακτικά λάθη, λάθη χρόνου εκτέλεσης και λογικά λάθη. Είναι χρήσιμο να γίνει διάκριση μεταξύ τους προκειμένου να εντοπίζονται γρηγορότερα.

20 4 ΚΕΦΑΛΑΙΟ 1. Ο ΤΡΟΠΟΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Συντακτικά λάθη Η Python μπορεί να εκτελέσει ένα πρόγραμμα μόνο εάν έχει σωστή σύνταξη, διαφορετικά ο διερμηνέας εμφανίζει μήνυμα λάθους. Η σύνταξη αφορά τη δομή ενός προγράμματος και τους κανόνες αυτής της δομής. Για παράδειγμα, οι παρενθέσεις πρέπει να είναι πάντα ζεύγη, έτσι το (1 + 2) είναι σωστό, αλλά το 8) είναι ένα συντακτικό λάθος (syntax error). Στα Αγγλικά οι αναγνώστες δέχονται τα περισσότερα συντακτικά λάθη, για αυτό μπορούμε να διαβάζουμε την ποίηση του e. e. cummings χωρίς να αραδιάζουμε μηνύματα λάθους. Η Python δεν είναι τόσο επιεικής. Εάν υπάρχει έστω και ένα συντακτικό λάθος οπουδήποτε μέσα στο πρόγραμμα, η Python θα εμφανίσει ένα μήνυμα λάθους και θα σταματήσει, και δεν θα μπορείτε να τρέξετε το πρόγραμμα. Κατά τη διάρκεια των πρώτων εβδομάδων της προγραμματιστικής σας καριέρας, πιθανότατα θα ξοδέψετε πολύ χρόνο στον εντοπισμό συντακτικών λαθών. Όσο αποκτάτε εμπειρία θα κάνετε λιγότερα λάθη και θα τα εντοπίζετε γρηγορότερα Λάθη χρόνου εκτέλεσης Ο δεύτερος τύπος λάθους είναι τα λάθη χρόνου εκτέλεσης (runtime errors), ονομάζονται έτσι επειδή τα λάθη δεν εμφανίζονται μέχρις ότου αρχίσει το πρόγραμμα να τρέχει. Αυτά τα λάθη ονομάζονται επίσης εξαιρέσεις (exceptions) επειδή συνήθως υποδεικνύουν ότι κάτι σημαντικό (και κακό) έχει συμβεί. Τα λάθη χρόνου εκτέλεσης είναι σπάνια στα απλά προγράμματα που θα δείτε στα πρώτα κεφάλαια, έτσι ίσως πάρει λίγο χρόνο μέχρι να συναντήσετε ένα Λογικά λάθη Ο τρίτος τύπος λάθους είναι τα λογικά λάθη (semantic errors). Εάν υπάρχει ένα λογικό λάθος στο πρόγραμμά σας θα τρέξει επιτυχώς από την άποψη ότι ο υπολογιστής δεν θα παράξει κανένα μήνυμα λάθους, αλλά δεν θα κάνει το σωστό. Θα κάνει κάτι διαφορετικό. Συγκεκριμένα, θα κάνει αυτό που του είπατε να κάνει. Το πρόβλημα είναι ότι το πρόγραμμα που γράψατε δεν είναι το πρόγραμμα που θέλατε να γράψετε. Το νόημα του προγράμματος (η σημασιολογία του) είναι λάθος. Η αναγνώριση λογικών λαθών μπορεί να είναι δύσκολη γιατί απαιτεί να δουλέψετε προς τα πίσω κοιτάζοντας την έξοδο του προγράμματος προσπαθώντας να καταλάβετε τι συμβαίνει Πειραματική αποσφαλμάτωση Μία από τις πιο σημαντικές ικανότητες που θα αποκτήσετε είναι η αποσφαλμάτωση. Παρόλο που μπορεί να είναι μια επίπονη διαδικασία, η αποσφαλμάτωση είναι ένα από τα πιο πνευματικώς πλούσια, προκλητικά και ενδιαφέροντα μέρη του προγραμματισμού. Υπό μία έννοια, η αποσφαλμάτωση είναι σαν την δουλειά του ντετέκτιβ. Έρχεστε αντιμέτωποι με ενδείξεις, και πρέπει να συμπεράνετε από ποιες διαδικασίες και συμβάντα προκύπτουν τα αποτελέσματα που βλέπετε. Η αποσφαλμάτωση μοιάζει επίσης σαν μία πειραματική επιστήμη. Από τη στιγμή που έχετε μία ιδέα για το τι πηγαίνει λάθος, τροποποιείτε το πρόγραμμα και ξαναδοκιμάζετε. Εάν η υπόθεσή σας ήταν σωστή, τότε μπορείτε να προβλέψετε το αποτέλεσμα της τροποποίησης και να είστε ένα βήμα πιο κοντά σε ένα λειτουργικό πρόγραμμα. Εάν η υπόθεσή σας ήταν λανθασμένη, πρέπει να κάνετε μία νέα υπόθεση. Όπως έχει τονίσει ο Sherlock Holmes, Όταν έχετε αποκλείσει το αδύνατο, οτιδήποτε

Γλώσσα προγραμματισμού python

Γλώσσα προγραμματισμού python Προηγούμενο Σημειώσεις Επόμενο Γλώσσα προγραμματισμού python Η γλώσσα αυτή γράφτηκε από τον Ολλανδό προγραμματιστή Guido van Rossum στα τέλη της δεκαετίας 1980-90. Η έκδοση 2.0 δημοσιεύτηκε στις 16 Οκτωβρίου

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

ΗΥ101: Εισαγωγή στην Πληροφορική

ΗΥ101: Εισαγωγή στην Πληροφορική Δρ. Χρήστος Ηλιούδης Τι είναι η ; Η διαδικασία του προγραμματισμού είναι μία πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη (πραγματοποιείται από ανθρώπους!!!). Τα προγραμματιστικά λάθη λέγονται bugs και

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 2 Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές Σύνοψη Το κεφάλαιο αυτό εισάγει τον αναγνώστη σε βασικές έννοιες που είναι χρήσιμες για την απόκτηση μιας πρώτης εμπειρίας με την Python. Προαπαιτούμενη

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 4: Θεματική Ενότητα: Είσοδος/έξοδος, μεταβλητές, αναθέσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

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

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

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

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

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

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

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

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

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

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1 Εισαγωγή στην Γλώσσα Προγραμματισμού Python 12/10/16 costis@teicrete.gr 1 Διάφορες Γλώσσες Προγραμματισμού C or C++ Java Perl Scheme Fortran Python Matlab 12/10/16 costis@teicrete.gr 2 Περίληψη Παρουσίασης

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 1 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

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

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

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

Θεωρία Προγραμματισμού

Θεωρία Προγραμματισμού Θεωρία Προγραμματισμού 1) Τι ονομάζουμε Αλγόριθμο; Ονομάζεται μια ακολουθία από πεπερασμένο αριθμό εντολών, που αν εκτελεστούν με ακρίβεια, οδηγούν στη πραγματοποίηση μιας εργασίας. 2) Τι ονομάζουμε ανάλυση

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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

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

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

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

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

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)

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

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης Προγραμματισμός Υπολογιστών & Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

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

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε Κεφάλαιο 9: Αναδρομή Ο τρόπος με τον οποίο σκεφτήκαμε και σχεδιάσαμε τις συναρτήσεις στο προηγούμενο κεφάλαιο ακολουθούσε τη φιλοσοφία του προγραμματισμού που είχαμε αναπτύξει σε όλο το προηγούμενο βιβλίο.

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Πληροφορική Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. Κωνσταντίνος Καρατζάς

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

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

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

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - 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 Πολλοί άνθρωποι

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

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

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

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

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή Ποιος είμαι εγώ! 2 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA, 7/2004-7/2006 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 - H Υπεύθυνη των

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

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

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

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

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

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

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

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

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

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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