Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 1 ΕΝΟΤΗΤΑ 1η Βασικές Έννοιες & ΑΛΓΟΡΙΘΜΟΙ.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 1 ΕΝΟΤΗΤΑ 1η Βασικές Έννοιες & ΑΛΓΟΡΙΘΜΟΙ."— Μεταγράφημα παρουσίασης:

1 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 1 ΕΝΟΤΗΤΑ 1η Βασικές Έννοιες & ΑΛΓΟΡΙΘΜΟΙ

2 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 2 Η επιστήμη της Πληροφορικής Η επιστήμη που ασχολείται με την Παράσταση, Οργάνωση, Διαχείριση, Μετάδοση της "πληροφορίας", είτε ως πληροφορία είτε ως "δεδομένα Ορισμός της πληροφορίας: (Claude Shannon, "The Mathematical Theory of Communication", 1948) “Information is a decrease in uncertainty” Πληροφορία είναι ό,τι μειώνει την εντροπία Εντροπία είναι το μέτρο της αταξίας / αβεβαιότητας

3 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 3 Τι είναι ηλεκτρονικός υπολογιστής; Computer –Μια σύνθετη συσκευή, ικανή να πραγματοποιεί μαθηματικούς υπολογισμούς και να διακρίνει καταστάσεις στοιχειωδών δεδομένων Πρόγραμμα ηλεκτρονικού υπολογιστή –Ένα σύνολο εντολών εκτελέσιμων από Η/Υ, που καθορίζουν την επεξεργασία δεδομένων και γενικά την "συμπεριφορά" ενός υπολογιστή Υλικό (Hardware) –Το σύνολο των επιμέρους συσκευών που απαρτίζουν ένα υπολογιστικό σύστημα CPU, πληκτρολόγιο, ποντίκι, οθόνη, σκληρός δίσκος, μνήμη, CD- ROM, κ.ά. Λογισμικό (Software) –Προγράμματα που τρέχουν σε έναν Η/Υ Λειτουργικό σύστημα, προγράμματα εφαρμογών

4 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 4 Λογισμικό Το συστατικό των υπολογιστών που δεν είναι απτό Λογισμικό συστήματος (systems software) –Πρόγραμμα που φέρει τον υπολογιστή σε λειτουργία και τον καθιστά διαθέσιμο στον άνθρωπο Λειτουργικά συστήματα (operating systems) Προγράμματα μόνιμα αποθηκευμένα στη ROM του υπολογιστή και των συσκευών του (BIOS, firmware) Λογισμικό εφαρμογών (application software) –Προγράμματα που κάνουν χρήσιμες στον άνθρωπο εργασίες

5 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 5 Τι είναι υπολογιστής; Μια μηχανή που εκτελεί αυτόματα πνευματικές εργασίες ρουτίνας ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ –Ταχύτητα –Αξιοπιστία αποτελεσμάτων Ένας υπολογιστής διεκπεραιώνει μόνον εκείνες τις εργασίες που μπορούν να προσδιοριστούν σύμφωνα με τις απλές λειτουργίες που μπορεί να εκτελέσει

6 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 6 Λειτουργίες του ΗΥ 1.Αποθηκεύει έναν αριθμό σε κάθε μνήμη του 2.Τοποθετεί το περιεχόμενο μιας μνήμης σε μια άλλη μνήμη 3.Κάνει αριθμητικές συγκρίσεις με το περιεχόμενο 2 μνημών κάθε φορά 4.Κάνει απλές αριθμητικές πράξεις με παράγοντες το περιεχόμενο μνημών

7 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 7 Αλγόριθμος Ορισμός : περιγράφει την μέθοδο με την οποία μια εργασία μπορεί να διεκπεραιωθεί και αποτελείται από μια πεπερασμένη ακολουθία βημάτων.

8 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 8 Αλγόριθμος: Ένα σύνολο εντολών που περιγράφει πως θα υλοποιηθεί μια διεργασία εύρηκα! Πρόγραμμα: C

9 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 9 ΑΛΓΟΡΙΘΜΟΙ : Μέθοδοι για την επίλυση προβλημάτων, κατάλληλες για την υλοποίησή τους με ΗΥ –Γενικά ανεξάρτητοι από τα χαρακτηριστικά του υλικού –Πιθανώς κατάλληλοι για πολλές γλώσσες προγραμματισμού Είσοδος και έξοδος Τα προβλήματα πρέπει να είναι καλώς ορισμένα –Garbage in Garbage out (GIGO) –Τα προγράμματα εκτελούν πάντοτε μια συγκεκριμένη και καλώς ορισμένη διεργασία

10 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 10 Στιγμιότυπα του προβλήματος Ορθότητα των αλγορίθμων – σωστή λύση για κάθε στιγμιότυπο των δεδομένων εισόδου –Λανθασμένοι αλγόριθμοι είναι δυνατόν να μην εμφανίσουν τα σφάλματα που εμπεριέχουν Ψευδοκώδικας – δεν δίνεται έμφαση στις δομές δεδομένων

11 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 11 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ : μέθοδοι οργάνωσης των δεδομένων που χρησιμοποιούνται στους υπολογισμούς. ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑΤΑ

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

13 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 13 Διάκριση μεταξύ αλγορίθμου και της αναπαράστασής του Ο αλγόριθμος είναι μια αφηρημένη έννοια και διαφοροποιείται από την αναπαράστασή του. Ο ίδιος αλγόριθμος μπορεί να αναπαρασταθεί με πολλούς διαφορετικούς τρόπους. Ένα πρόγραμμα αποτελεί την αναπαράσταση ενός αλγορίθμου. ΤΟ ΒΑΣΙΚΟ ΠΡΟΒΛΗΜΑ : –Το επίπεδο λεπτομέρειας στο οποίο πρέπει να περιγραφεί ένας αλγόριθμος.

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

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

16 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 16 Επειδή ωστόσο η αναπαράσταση των αλγορίθμων σ’ αυτό το επίπεδο είναι κουραστική, συνήθως χρησιμοποιούμε ένα σύνολο από αρχέτυπα «υψηλοτέρου επιπέδου», καθένα από τα οποία αποτελείται από ένα συνδυασμό αρχετύπων χαμηλότερου επιπέδου που αντιστοιχούν στις στοιχειώδεις πράξεις μιας υπολογιστικής μηχανής. Το αποτέλεσμα είναι μια τυποποιημένη γλώσσα προγραμματισμού στην οποία οι αλγόριθμοι μπορούν να εκφράζονται σε μια εννοιολογικά ανώτερη μορφή από τη γλώσσα των στοιχειωδών πράξεων

17 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 17 Ψευδοκώδικας Είναι ένα σύστημα συμβολισμού στο οποίο οι ιδέες μπορούν να παρουσιάζονται άτυπα κατά τη διαδικασία ανάπτυξης αλγορίθμων. Συνήθως είναι γνωστή η γλώσσα προγραμματισμού που θα χρησιμοποιηθεί για την υλοποίηση του αλγορίθμου. Έτσι ο ψευδοκώδικας που χρησιμοποιείται κατά τη διάρκεια των πρώτων σταδίων ανάπτυξης, αποτελείται από δομές σύνταξης – σημασιολογίας που είναι παρόμοιες αλλά λιγότερο αυστηρές, από αυτές που χρησιμοποιούνται στη γλώσσα προγραμματισμού.

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

19 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 19 Παράδειγμα με χρήση ψευδοκώδικα Αλγόριθμος που περιγράφει τον υπολογισμό του αθροίσματος : 1 + 2 + 3 + … + n n : ένας γνωστός ακέραιος > 0: 1. Θέσε ‘sum’ ίσο με 0 και το μετρητή k ίσο με 1. 2. Επανέλαβε τα παρακάτω μέχρις ότου k είναι μεγαλύτερο του n : 2.1 πρόσθεσε ‘sum’ και k και αποθήκευσε το αποτέλεσμα στο‘sum’ 2.2 αύξησε το k κατά 1 3. Το αποτέλεσμα είναι αποθηκευμένο στο‘sum’

20 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 20 Υλοποίηση σε γλώσσα C++ cin >> n; /* εισαγωγή τιμής για το n */ sum = 0; /* αρχικοποίηση αθροιστή */ /* επαναληπτική διαδικασία */ for (int k = 1; k<=n; k++) sum += k; /* τέλος επαναληπτικής διαδικασίας */ cout << sum; /* εμφάνιση αποτελέσματος*/

21 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 21 Γιατί μελετούμε αλγορίθμους ; Για την εκμάθηση των τρόπων επίλυσης προβλημάτων Για την επιλογή του κατάλληλου αλγόριθμου, με κριτήριο την αποτελεσματικότητα καθώς και τους επιβαλλόμενους περιορισμούς: –Χώρου και χρόνου ως συνάρτηση του πλήθους των δεδομένων Για τη διαίρεση μεγάλων προβλημάτων σε μικρότερα που μπορούν να λυθούν ευκολότερα

22 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 22 Για την κατανόηση των βασικών τρόπων επίλυσης προβλημάτων μέσω Η/Υ, ανεξάρτητα από το διαθέσιμο υλικό και λογισμικό –Παρόμοια με την εκμάθηση των βασικών αριθμητικών πράξεων αν και μια αριθμομηχανή κάνει τις πράξεις γρηγορότερα! Για την εύρεση του αποδεκτού μεγέθους βελτιστοποίησης της επίλυσης των προβλημάτων –Αξίζει η βελτίωση του χρόνου ολοκλήρωσης ενός προγράμματος κατά 3ms σε σχέση με τη δαπάνη 5 ωρών για την εύρεση καλύτερης λύσης;

23 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 23 Ιδιότητες αλγορίθμων Πληρότητα Περατότητα Αποτελεσματικότητα χώρου – χρόνου Ακρίβεια - ευστάθεια

24 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 24 Ανάλυση αλγορίθμων Πρόβλεψη των πόρων που απαιτεί ο αλγόριθμος για την εύρεση μιας αποτελεσματικής λύσης ενός προβλήματος. –Απαιτήσεις σε χώρο (πολυπλοκότητα χώρου) –Απαιτήσεις σε χρόνο (πολυπλοκότητα χρόνου) Καλύτερη περίπτωση Χειρότερη περίπτωση Μέση περίπτωση

25 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 25 Πως επιλύουμε τα προβλήματα ; Απλώς «τα λύνουμε» Φαντασία και τύχη Δοκιμή και επαλήθευση Εμπειρία (πιθανόν κάποιου άλλου) Επιστημονικά

26 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 26 Η διαδικασία επίλυσης προβλημάτων Problem specification Algorithm Program Executable (solution) Design Implementation Compilation Analysis

27 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 27 Η διαδικασία επίλυσης προβλημάτων Problem specification Algorithm Program Executable (solution) Analysis Design Implementation Compilation

28 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 28 Ιστορική αναδρομή (μηχανές) Αρχαία εποχή (άβακες, μηχανή των Αντικυθήρων, μηχανές του Ήρωνα) 1600-1800 μηχανή του Pascal κλπ Charles Babbage (αναλυτική μηχανή) Ada – έννοια προγράμματος 1890- Hollerith – διάτρητα δελτία 1936 Alan Turing – μηχανή Turing (1943 - enigma) 1944 Mark I 1946 ENIAC I 1948 Von Neumann – αρχή του αποθηκευμένου προγράμματος

29 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 29 Ιστορική αναδρομή (αλγόριθμοι) Η λέξη αλγόριθμος προέρχεται από παραφθορά του ονόματος του μαθηματικού Abu Ja’Far Mohammed Ibn Musa al-Khwarizmi (9ος αιώνας μ.Χ., Khowarezm - τώρα Khiva στο Uzbekistan ) που το βιβλίο του “Hisab Al-Jabr wa-al-Muqabilah” έβαλε τα θεμέλια της Άλγεβρας. ( Book on arithmetic: –Hindu numeration, decimal numbers, use of zero, method for finding square root –Latin translation (c.1120 CE): “Algoritmi de numero Indorum” ) –http://www-groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Al-Khwarizmi.html

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

31 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 31 Αλγόριθμος του Ευκλείδη-εύρεση του ΜΚΔ Εισαγωγή των x, y αν y>0 τότε ΜΚΔ(x,y)=ΜΚΔ(y, υπόλοιπο διαίρεσης x/y) αν y=0 τότε ΜΚΔ(x,y)=x

32 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 32 Αλγόριθμος του Ερατοσθένη Εύρεση πρώτων αριθμών μεταξύ 1 και Ν 1.Καταγράφω τους αριθμούς 1 έως Ν σε μια λίστα 2.Για κάθε πρώτο αριθμό που συναντώ διαγράφω τα πολλαπλάσιά του 3.Αν ο πρώτος αριθμός που συναντώ είναι μικρότερος από την τετραγωνική ρίζα του Ν πηγαίνω στο βήμα 2 αλλιώς οι αριθμοί που απομένουν είναι οι ζητούμενοι πρώτοι αριθμοί

33 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 33 Από τους αλγορίθμους στα προγράμματα πρόβλημα πρόγραμμα σε C πρόγραμμα σε C Αλγόριθμος: Ένα σύνολο εντολών που περιγράφει πως θα υλοποιηθεί μια διεργασία

34 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 34 Επεξεργαστής Είναι το μέσο που φέρει σε πέρας μια διεργασία εκτελώντας τον αλγόριθμο που την περιγράφει Ο υπολογιστής είναι μια μορφή επεξεργαστή με τρία βασικά τμήματα : –Μονάδες εισόδου – εξόδου –Μονάδα επεξεργασίας –Μονάδα Μνήμης

35 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 35 Χαρακτηριστικά της μνήμης των ΗΥ Χωρητικότητα Τρόπος αποθήκευσης Διαφορά με την ανθρώπινη μνήμη

36 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 36 Προγραμματισμός – Γλώσσες Προγραμματισμού Πρόγραμμα Εντολές και προτάσεις / δηλώσεις Μετάφραση –Διερμηνείς (interpreter) –Μεταγλωττιστές (compiler) –Γλώσσες προγραμματισμού (χαμηλού – υψηλού επιπέδου)

37 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 37 Στόχοι των γλωσσών προγραμματισμού Εύκολη και περιεκτική έκφραση του αλγορίθμου : –Άμεσα κατανοητή από τον υπολογιστή –Άμεσα κατανοητή από τους ανθρώπους –Εύκολη στην επιθεώρηση του προγράμματος Να ελαχιστοποιείται η πιθανότητα λάθους κατά τον μετασχηματισμό του αλγορίθμου σε πρόγραμμα

38 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 38 Τεχνοτροπίες προγραμματισμού Spaghetti programming Δομημένος προγραμματισμός Αντικειμενοστρεφής προγραμματισμός Λογικός προγραμματισμός

39 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 39 Χαρακτηριστικά των γλωσσών Συντακτικό γλώσσας Ο επεξεργαστής πρέπει να είναι ικανός να κατανοήσει τα σύμβολα που χρησιμοποιεί ο αλγόριθμος – συντακτικά λάθη Σημασιολογία Πρέπει να προσδοθεί σημασία σε κάθε βήμα σε συνάρτηση με τις λειτουργίες που πρέπει να περατωθούν– σημασιολογικά λάθη - ασυνέπειες

40 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 40 Οι κανόνες της γλώσσας προγραμματισμού αφορούν... –Τα σύμβολα, τις εντολές, τις δομές της γλώσσας –Τον τρόπο χρήσης των ιδιαίτερων χαρακτηριστικών κάθε υλοποίησης της γλώσσας (Visual C++, Borland C++, gcpp, κλπ) –Τους γενικούς κανόνες και παραδοχές που αφορούν όλα τα προγράμματα Η “δυσκολία” εκμάθησης μιας γλώσσας προγραμματισμού εντοπίζεται –Στην απόσταση από τη φυσική γλώσσα του ανθρώπου –Στους κανόνες σύνταξης οι οποίοι συμβάλλουν στον εμπλουτισμό της σημασιολογίας διότι οι Η/Υ δεν διαθέτουν ευφυία

41 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 41 Υπάρχει πλήθος γλωσσών προγραμματισμού ανάλογα με –Το επίπεδο της τεχνολογίας των υπολογιστών –Την επικρατούσα φιλοσοφία ανάπτυξης λογισμικού –Το πεδίο εφαρμογής Παραδείγματα (περίπου με χρονολογική σειρά) –FORTRAN,COBOL, BASIC, ALGOL, PASCAL, PROLOG, LISP, C, C++, JAVA

42 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 42 Για να κατασκευάσουμε ένα πρόγραμμα που επιλύει ένα πρόβλημα πρέπει να βρούμε έναν αλγόριθμο την επίλυση του προβλήματος Ένας αλγόριθμος πρέπει να είναι 1.Σαφώς και απερίφραστα ορισμένος 2.Αποτελεσματικός 3.Πεπερασμένος, δηλ. τερματίζει μετά από έναν αριθμό βημάτων.

43 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 43 Απόδειξη της ορθότητας αλγορίθμου Πρέπει να αποδείξουμε ότι ο αλγόριθμος –Τερματίζει πάντα –Όταν τερματίζει έχει το επιθυμητό αποτέλεσμα

44 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 44 Έλεγχος Πρακτικά δεν είναι εύκολη η τυπική απόδειξη της ορθότητας ενός αλγορίθμου Μια εναλλακτική στρατηγική είναι ο έλεγχος του προγράμματος: Δοκιμάζουμε τη λειτουργία του προγράμματος με ένα σύνολο δεδομένων εισόδου και συγκρίνουμε τις εξόδους του προγράμματος με τις επιθυμητές “Ο έλεγχος αποκαλύπτει την παρουσία λαθών στο πρόγραμμα και όχι την απουσία τους” E. Dijkstra Ο έλεγχος δεν αποτελεί απόδειξη της ορθότητας αλλά αυξάνει την πεποίθησή μας ότι το πρόγραμμα δουλεύει σωστά

45 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 45 Απαιτήσεις των αλγορίθμων 1.Ο αλγόριθμος να μπορεί να περιγραφεί χρησιμοποιώντας ένα σύνολο λέξεων από συγκεκριμένο αλφάβητο και με συγκεκριμένους δομικούς και σημασιολογικούς κανόνες 2.Το πρόβλημα να μπορεί να περιγραφεί ακριβώς από ένα σύνολο δεδομένων (δεδομένα εισόδου), με τα οποία θα εκτελεστεί ο αλγόριθμος 3.Οι εντολές του αλγορίθμου εκτελούνται είτε βήμα προς βήμα, είτε μόνον αν αληθεύει μια συνθήκη, είτε επαναληπτικά. 4.Το αποτέλεσμα κάθε εντολής προσδιορίζεται απόλυτα από τον αλγόριθμο, τα δεδομένα εισόδου και τα αποτελέσματα προηγούμενων εντολών 5.Η τελική απάντηση (δεδομένα εξόδου) πρέπει να είναι σαφώς καθορισμένη 6.Ο αλγόριθμος πρέπει να τερματίζεται μετά την εκτέλεση πεπερασμένου πλήθους βημάτων, ανεξάρτητα από τα δεδομένα εισόδου

46 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 46 Ο ρόλος του Alan Turing στην Επιστήμη των Υπολογιστών Τυποποίηση των εννοιών του αλγορίθμου και του υπολογισμού. Εισήγαγε την αφηρημένη μηχανή υπολογισμού (Turing machine). Σχεδίαση τον υπολογιστή ACE (Automatic Computing Engine). Πρότεινε το περίφημο Turing test για τον καθορισμό της Τεχνητής Νοημοσύνης (Artificial Intelligence - AI). Σχεδίασε μια μηχανή αποκρυπτογράφησης του κώδικα Enigma (Turing-Welchman bombe) κατά τον Β΄ Παγκόσμιο Πόλεμο.

47 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 47 Τα όρια του υπολογισμού Υπάρχουν προβλήματα που έχει αποδειχτεί ότι δεν είναι δυνατόν να επιλυθούν (τουλάχιστον ακριβώς) από τους υπολογιστές : Halting problem, το δέκατο πρόβλημα του Hilbert (Θεώρημα του Matiyasevich). Επιπλέον, υπάρχουν προβλήματα που ο χρόνος επίλυσής τους είναι τεράστιος, για μη τετριμμένο μέγεθος του προβλήματος (intractable). Παράδειγμα: Το πρόβλημα του περιοδεύοντος πωλητή (TSP).

48 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 48 Παράδειγμα “δύσκολου” προβλήματος Χρωματισμός γράφων (graph coloring) Είναι δυνατός ο χρωματισμός των κόμβων του γράφου με 3 χρώματα; Ένας χρωματισμός είναι έγκυρος αν κανένα ζευγάρι κόμβων που συνδέονται με μια ακμή δεν έχουν το ίδιο χρώμα. Η λύση του παιχνιδιού Sudoku είναι δυνατόν να αναχθεί σε ένα πρόβλημα χρωματισμού γράφων Ο καθορισμός του προγράμματος διδασκαλίας σε ένα σχολείο επίσης ανάγεται στο πρόβλημα χρωματισμού γράφων.

49 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 49 Συστατικά αλγορίθμου Τιμές και μεταβλητές Εντολή (instruction) Ακολουθία (sequence) Διαδικασία (procedure) Επιλογή (selection) Επανάληψη (repetition) Τεκμηρίωση (documentation)

50 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 50 Τιμές Αντιπροσωπεύουν ποσότητες, ποσά ή μετρήσεις Μπορεί να είναι αριθμητικές ή αλφαβητικές Συχνά έχουν μια μονάδα μέτρησης Παράδειγμα : –Τα υλικά μιας συνταγής μαγειρικής

51 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 51 Μεταβλητές Χώροι όπου καταχωρούνται οι τιμές Το περιεχόμενο των μεταβλητών αλλάζει καθώς καταχωρούνται νέες τιμές ΠΕΡΙΟΡΙΣΜΟΙ : Οι μεταβλητές περιέχουν πάντοτε ένα είδος τιμών

52 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 52 Εντολές Κάποια ενέργεια που είναι απλή… …και σαφής… ….η οποία μπορεί να αναγνωριστεί από το σύστημα… …και μπορεί να εκτελεστεί Οι εντολές επενεργούν με συγκεκριμένο τρόπο στις τιμές και τις μεταβλητές Ορισμένες μπορούν να εφαρμοστούν μόνο σε συγκεκριμένους τύπους τιμών ή μεταβλητών Όταν γράφουμε έναν αλγόριθμο πρέπει κάθε εντολή να είναι απλή και σαφής

53 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 53 Ακολουθία (sequence) Είναι μια σειρά εντολών … … που πρέπει να εκτελεστεί η μια μετά την άλλη … … χωρίς αμφιβολία ή δισταγμό…

54 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 54 Διαδικασία (procedure) Μια ακολουθία εντολών με συγκεκριμένο όνομα στην οποία αναφερόμαστε με το όνομά της Μια εντολή που συμπεριλαμβάνει μια διαδικασία αναφέρεται ως «κλήση συνάρτησης» Μια διαδικασία περιλαμβάνει συνήθως ένα σύνολο παραμέτρων

55 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 55 Επιλογή (selection) Μια εντολή που αποφασίζει ποια από τις δύο πιθανές ακολουθίες εντολών θα εκτελεσθεί Η απόφαση λαμβάνεται ελέγχοντας μια απλή συνθήκη true / false –Απλή συνθήκη (simple condition) –Εμφωλιασμένες συνθήκες (nested condition)

56 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 56 Επανάληψη (repetition) Επανάληψη μιας εντολής … –… κατά τη διάρκεια (while) ή μέχρι (until) να συμβεί κάποια συνθήκη (true ή false)… –Ο έλεγχος της συνθήκης γίνεται κάθε φορά πριν από την επανάληψη της εντολής Η επανάληψη είναι γνωστή και ως iteration ή loop Δυνατότητες επανάληψης –Καθορισμένο πλήθος εξ αρχής (do, for) –Υπό συνθήκη Έλεγχος τερματισμού στην αρχή (while, do while, while do) Έλεγχος τερματισμού στο τέλος (repeat – until)

57 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 57 Τεκμηρίωση (documentation) Καταγράφει τι κάνει ο αλγόριθμος Περιγράφει πως γίνεται Εξηγεί το σκοπό κάθε συστατικού του αλγορίθμου Περιλαμβάνει όλους τους περιορισμούς και τις προβλέψεις

58 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 58 Η διαδικασία ανάπτυξης λογισμικού Πλήρης καθορισμός του προβλήματος Λεπτομερής ανάλυση του προβλήματος Προσεκτικός σχεδιασμός του προβλήματος Αποτελεσματική κωδικοποίηση του αλγορίθμου Εξαντλητικός έλεγχος του κώδικα Ευκρινής τεκμηρίωση του συστήματος

59 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 59 Κατά βήματα (top-down) σχεδίαση αλγορίθμου Καταγραφή των απαιτήσεων του προβλήματος Διάσπαση του προβλήματος σε επιμέρους τμήματα Περαιτέρω διαίρεση κάθε βήματος σε μικρότερα Η διαίρεση συνεχίζεται μέχρι το κάθε βήμα να μπορεί να υλοποιηθεί από μια εντολή Το μέγεθος της διεργασίας πρέπει να μπορεί να εκφραστεί με βάση τις 4 βασικές λειτουργίες του επεξεργαστή είτε με μια δομή που υποστηρίζει η επιλεγόμενη γλώσσα προγραμματισμού

60 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 60 Κατά βήματα (top-down) σχεδίαση -- παράδειγμα Learn Prepare Study Reinforce Read Make notes Prepare questions Attend lecture Listen and think Complete prac Attend tute Record answers to questions Revise notes Read lecture notes Read textbook Read exercise Design algorithm Code solution Test and document Record insights

61 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 61 Ένας ΗΥ μπορεί να διερμηνεύσει οτιδήποτε είναι σωστά διατυπωμένο σε μια γλώσσα προγραμματισμού

62 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 62 ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ

63 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 63 Εύρεση και εμφάνιση του ΜΚΔ 2 αριθμών Εισαγωγή των αριθμών x,y WHILE (y<>0) DO Υπολόγισε το υπόλοιπο της διαίρεσης x/y Αντικατέστησε το x με το y Αντικατέστησε το y με το υπόλοιπο Τύπωσε ως απάντηση την τιμή του y

64 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 64 Υπολογισμός της Ν-οστής δύναμης ενός αριθμού x 1.Διάβασε τις τιμές των x, N 2.Θέσε αρχική τιμή για το γινόμενο ίση με το 1 3.Επανέλαβε N φορές Πολλαπλασίασε το γινόμενο με το x 4.Τύπωσε το γινόμενο

65 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 65 Εύρεση του μέγιστου μιας σειράς αριθμών Εισαγωγή του πρώτου αριθμού της λίστας Θέσε σαν μεγαλύτερο τον πρώτο αριθμό της λίστας Επανέλαβε –Πάρε τον επόμενο αριθμό της λίστας –αν ο αριθμός αυτός > από τον μεγαλύτερο μέχρι τώρα τότε θέσε σαν μεγαλύτερο τον τρέχοντα αριθμό μέχρι να τελειώσουν όλοι οι αριθμοί της λίστας Τύπωσε ή εμφάνισε τον μεγαλύτερο αριθμό

66 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 66 Εύρεση του Ν! Διάβασε την τιμή του Ν μέχρις ότου Ν>=0 Θέσε το γινόμενο ίσο με 1 Επανέλαβε για κάθε ακέραιο από το 1 έως Ν Πολλαπλασίασε το γινόμενο με τον ακέραιο Εκχώρησε το αποτέλεσμα στο γινόμενο Τύπωσε την τιμή του γινομένου

67 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 67 Εναλλαγή των περιεχομένων 2 θέσεων μνήμης (swap) Είσοδος Α, Β Αντέγραψε το περιεχόμενο της θέσης Α σε μια νέα θέση C ( C  A ) Αντέγραψε το περιεχόμενο της θέσης Β στη θέση Α (Α  Β ) Αντέγραψε το περιεχόμενο της θέσης C στη θέση B (B  C ) Εμφάνισε το περιεχόμενο των θέσεων Α, Β

68 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 68 Υπολογισμός της προπαίδειας Για i από 1 μέχρι N με_βήμα 1 Τέλος_επανάληψης_j Διάβασε N Για j από 1 μέχρι N με_βήμα 1 num  i * j Εκτύπωσε num Τέλος_επανάληψης_i

69 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 69 Υπολογισμός του S  1, AR  1, PA  1, K  2, L  1 Για i από 1 μέχρι N με βήμα 1 Εκτύπωσε S AR  AR * X 2 PA  PA * (K-1)*K K  K + 2 L  -L S  S + L * (AR / PA) Τέλος επανάληψης Διάβασε X, N

70 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 70 Δομημένος προγραμματισμός Διευκόλυνση στην ανάπτυξη κατά τμήματα Ευκολία και ταχύτητα στην κωδικοποίηση Καλύτερη ποιότητα προγραμμάτων Ευκολία σε διορθώσεις και συντήρηση Τεκμηρίωση ενσωματωμένη στο πρόγραμμα

71 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 71 ΑΣΚΗΣΕΙΣ ΣΕ ΑΛΓΟΡΙΘΜΟΥΣ

72 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 72 Επανέλαβε Στείλε 100€ στο γραφείο «τέλειος γάμος» Ραντεβού με το επιλεγμένο άτομο Μέχρι να βρεθεί ο τέλειος σύζυγος ΥΠΑΡΧΕΙ ΛΑΘΟΣ ;;;;;;

73 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 73 Βρείτε έναν αλγόριθμο που θα βρίσκει αν ένας ακέραιος θετικός αριθμός είναι μονός ή ζυγός Βήμα 1. Διάβασε έναν ακέραιο αριθμό μέχρις ότου ο αριθμός να είναι >0. Βήμα 2. Υπολόγισε το υπόλοιπο της διαίρεσης του αριθμού με το 2. Βήμα 3. Αν το υπόλοιπο είναι ίσο με 0 εμφάνισε το μήνυμα «ο αριθμός είναι ΖΥΓΟΣ» διαφορετικά εμφάνισε το μήνυμα «ο αριθμός είναι ΜΟΝΟΣ».

74 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 74 Βρείτε έναν αλγόριθμο που θα εμφανίζει όλους τους τετραψήφιους ακέραιους και θετικούς αριθμούς που περιέχουν μόνον τα ψηφία 1,2,3 ή 4. Βήμα 1. Για τιμές της μεταβλητής I από 1 έως 4 Βήμα 2. Για τιμές της μεταβλητής J από 1 έως 4 Βήμα 3. Για τιμές της μεταβλητής K από 1 έως 4 Βήμα 4. Για τιμές της μεταβλητής L από 1 έως 4 Βήμα 5. Υπολόγισε την τιμή της μεταβλητής Α από τον τύπο Α=1000*I+100*J+10*K+L Βήμα 6. Εμφάνισε (ή εκτύπωσε) την τιμή της μεταβλητής Α

75 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 75 Βρείτε έναν αλγόριθμο που θα εμφανίζει τριψήφιους ακέραιους θετικούς αριθμούς που ικανοποιούν τη σχέση του παραδείγματος 153 = 1 3 + 5 3 + 3 3 Βήμα 1. Για τιμές της μεταβλητής I από 0 έως 9 Βήμα 2. Για τιμές της μεταβλητής J από 0 έως 9 Βήμα 3. Για τιμές της μεταβλητής K από 0 έως 9 Βήμα 4. Υπολόγισε την τιμή της μεταβλητής Α από τον τύπο Α=100*I+10*J+K Βήμα 5. Υπολόγισε την τιμή της μεταβλητής Β από τον τύπο Β=I*Ι*Ι+J*J*J+K*K*K Βήμα 6. Αν ισχύει Α==Β εμφάνισε (ή εκτύπωσε) την τιμή της μεταβλητής Α

76 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 76 Να γράψετε έναν αλγόριθμο για να παράγετε και να εμφανίσετε τους 50 πρώτους όρους της ακολουθίας Fibonacci : 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89... Κάθε όρος της ακολουθίας είναι το άθροισμα των δύο προηγουμένων όρων ενώ οι δύο πρώτοι όροι είναι ίσοι με 1.

77 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 77 Υπολογισμός όρων της ακολουθίας fibonacci First  0 sec  1 Αν N >= 1 τότε Εκτύπωσε first Διάβασε N Για i από 1 μέχρι N με_βήμα 1 sum  first + sec Εκτύπωσε sum First  sec Sec  sum Τέλος_επανάληψης_i Αν N >= 2 τότε Εκτύπωσε sec

78 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 78 Βρείτε έναν αλγόριθμο που βρίσκει ποια ημέρα της εβδομάδας αντιστοιχεί σε μια δοσμένη ημερομηνία, αν είναι γνωστή η πρώτη ημέρα του έτους. Δεδομένα εισόδου (ακέραιοι αριθμοί): –Αριθμός ημέρας π.χ. 25 (έλεγχος ορίων π.χ. 1-30 ή 31 ή 28 ή 29) –Αριθμός μήνα π.χ. 11 (έλεγχος για τιμές 1-12) –Αριθμός 1ης ημέρας του έτους (π.χ. για το έτος 2008 Τρίτη. Σε ποιόν αριθμό θα αντιστοιχηθεί;)


Κατέβασμα ppt "ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ /01 1 ΕΝΟΤΗΤΑ 1η Βασικές Έννοιες & ΑΛΓΟΡΙΘΜΟΙ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google