εισαγωγή στην έννοια του αλγορίθμου και στον...

Post on 04-Jul-2015

987 views 1 download

Transcript of εισαγωγή στην έννοια του αλγορίθμου και στον...

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

Ειζαγωγή ζηην έννοια ηος Αλγοπίθμος και ζηον

ππογπαμμαηιζμό

Ση νλνκάδνπκε πξόβιεκα; Ση ζέινπκε λα θάλνπκε;

Πξόβιεκα ζεσξνύκε θάζεδήηεκα πνπ ηίζεηαη πξνοεπίιπζε, θάζε θαηάζηαζεπνπ καο απαζρνιεί θαηπξέπεη λα αληηκεησπηζηεί.

Να ρξεζηκνπνηήζνπκε ηνλππνινγηζηή γηα λα ιύζνπκεην πξόβιεκα.

Επίιπζε πξνβιεκάηωλ ζηνλ ππνινγηζηή

Γηα πνηνπο ιόγνπο αλαζέηνπκε ηελ επίιπζε ελόο

πξνβιήκαηνο ζε ππνινγηζηή;

• Για την ταχφτητα εκτζλεςησ των υπολογιςμών

• Για την πολυπλοκότητα των υπολογιςμών

• Για την διαχείριςη μεγάλου πλήθουσ δεδομζνων

• Για την επαναληπτικότητα των διαδικαςιών

ηάδηα αληηκεηώπηζεο ελόο πξνβιήκαηνο

• Καηαλννύκε ην πξόβιεκα. • Πξέπεη δειαδή λα θαηαιάβνπκε θαιά ην πεξηερόκελό ηνπ.Καηαλόεζε

• Γηαθξίλνπκε θαη θαηαγξάθνπκε ηα δεδνκέλα ηνπ πξνβιήκαηνο δειαδή ηα ζηνηρεία πνπ καο είλαη γλσζηά θαη κπνξνύλ λα καο βνεζήζνπλ ζηελ επίιπζε.

Καηαγξαθή Γεδνκέλσλ

• Καηαγξάθνπκε ην δεηνύκελν ηνπ πξνβιήκαηνο δειαδή απηό πνπ ςάρλνπκε.

Καηαγξαθή Εεηνπκέλνπ

• Πξνζδηνξίδνπκε ην πιαίζην/ρώξν κέζα ζην νπνίν εληάζζεηαη ην πξόβιεκα.

• Αλαιύνπκε έλα ζύλζεην πξόβιεκα ζε απινύζηεξα πξνβιήκαηα. Αλάιπζε

Δπίιπζε

Παξάδεηγκα αλάιπζεο ζύλζεηνπ

πξνβιήκαηνο ζε απινύζηεξα

Οξγάλωζε Εθπαηδεπηηθήο Εθδξνκήο

Δύξεζε ηνπ ηόπνπ

επίζθεςεο

Καζνξηζκόο εκεξνκελίαο

επίζθεςεο

Σξόπνο κεηαθνξάο

Τπνινγηζκόο αληηηίκνπ

ζπκκεηνρήο

πγθέληξσζε βεβαηώζεσλ ζπκκεηνρήο

πγθέληξσζε ρξεκάησλ

κε ηε βνήζεηα αιγνξίζκνπ

Ζ πεξηγξαθή ηεο ιύζεοζα πξέπεη λα είλαη:

πνιύ ζπγθεθξηκέλε

αλαιπηηθή

θαη λα δίλεηαη κε κηαζεηξά από βήκαηα.

Αιγόξηζκν νλνκάδνπκε ηεζαθή θαη αθξηβή πεξηγξαθήκηαο ζεηξάο μερσξηζηώλνδεγηώλ - βεκάησλ γηα ηελεπίιπζε ελόο πξνβιήκαηνο.

Πεξηγξαθή ηεο ιύζεο ελόο πξνβιήκαηνο

Γηα παξάδεηγκα αο δνύκε ηα βήκαηα πνπ πξέπεη λα αθνινπζεζνύλ, ώζηε λα καγεηξέςεη έλαο άπεηξνο κάγεηξαο κηα καθαξνλάδα:

1. Άλνημε ην κάηη ηεο θνπδίλαο ζην 2.

2. Βάιε 3 ιίηξα λεξό ζε κία θαηζαξόια ρσξεηηθόηεηαο 4 ιίηξσλ.

3. Βάιε ηελ θαηζαξόια ζην κάηη ηεο θνπδίλαο, πνπ έρεηο ήδε

αλάςεη.

4. Πξόζζεζε ζηελ θαηζαξόια κία θνπηαιηά ηεο ζνύπαο αιάηη.

5. Πεξίκελε κέρξη λα βξάζεη ην λεξό.

6. Βγάιε ηα καθαξόληα από ην παθέην.

7. Βάιε ηα καθαξόληα ζηελ θαηζαξόια.

8. Αλαθάηεπε ηα καθαξόληα γηα 10 ιεπηά.

9. Κιείζε ην κάηη ηεο θνπδίλαο πνπ άλνημεο.

10. Βγάιε ηελ θαηζαξόια από ην κάηη ηεο θνπδίλαο.

11. Άδεηαζε ηα καθαξόληα από ηελ θαηζαξόια ζε έλα ζνπξσηήξη.

12. Ρίμε θξύν λεξό από ηε βξύζε ζηα καθαξόληα γηα 20

δεπηεξόιεπηα.

13. Άθεζε γηα 2 ιεπηά ηα καθαξόληα λα ζηξαγγίμνπλ.

14. εξβίξηζε ηα καθαξόληα ζην πηάην.

15. Πξόζζεζε ζε θάζε πηάην 3 θνπηαιηέο ηεο ζνύπαο ηξηκκέλν

ηπξί.

Eξωηήζεηο:

1 Ση ζα ζπκβεί αλ μεράζνπκε ηελ εληνιή 9 ζηνλ παξαπάλσ αιγόξηζκν;

2 Μπνξνύκε λα αληηκεηαζέζνπκε ηηο εληνιέο 7 θαη 8;

3 Ση ζα ζπκβεί, αλ αληηθαηαζηήζνπκε ηελ εληνιή ζην βήκα 4 κε ηελ εληνιή «πξόζζεζε αιάηη»;

4 Αλ αληηκεηαζέζνπκε ηηο εληνιέο 1 θαη 2, ζα ππάξμεη θάπνην πξόβιεκα ζηνλ αιγόξηζκν;

Θδηόηεηεο ελόο αιγνξίζκνπ

1. Ιάπνηε πξέπεη λα ηειεηώλεη

Αλγόριθμος δημιοσργίας ενός λοσλοσδιού με

10 πέηαλα

Το αποηέλεζμα σλοποίηζης ηοσ

Αλγορίθμοσ

επανάλαβε 10 θορές[ζτεδίαζε_πέηαλο]

Επαλάιαβε ζπλερώο [ζρεδίαζε πέηαιν]

Ζ παξαπάλσ νδεγία δελ κπνξεί λα ζεσξεζεί αιγόξηζκνο γηαηί νππνινγηζηήο ζα ζρεδηάδεη πέηαια ζπλερώο ρσξίο λα ζηακαηήζεη πνηέ!

2. Οη εληνιέο ζα πξέπεη λα έρνπλ αθξίβεηα θαη ζαθήλεηα

3. Οη εληνιέο ζα πξέπεη λα είλαη

εθθξαζκέλεο κε απιά ιόγηα

ώζηε λα είλαη απόιπηα

θαηαλνεηέο.

Θδηόηεηεο ελόο αιγνξίζκνπ

ώζηε λα κελ κπεξδεπηεί απηόο πνπζα πινπνηήζεη ηνλ αιγόξηζκν θαηηηο εθηειέζεη κε ιαλζαζκέλνηξόπν.

Γηα παξάδεηγκα ζε κηα ζπληαγήκαγεηξηθήο ζα πξέπεη λαπεξηγξάςνπκε αθξηβώο ηελπνζόηεηα αιαηηνύ πνπ ζα ξίμεη νκάγεηξαο (π.ρ κηα θνπηαιηά ή 20gr)

ρεδίαζε Αιγνξίζκνπ

Γελ πξέπεη λα μερλάκε όηη ν αιγόξηζκνο είλαη επεξηγξαθή ηεο ιύζεο ελόο πξνβιήκαηνο κε κηαζπγθεθξηκέλε δηαδνρηθή ζεηξά βεκάησλ.

Γηα λα κπνξέζνπκε λα πεξηγξάςνπκε ζε θάπνηνληα βήκαηα πνπ νδεγνύλ ζηε ιύζε ελόοπξνβιήκαηνο, πξέπεη πξώηα λα έρνπκε θαηαλνήζεηην πξόβιεκα, λα βξνύκε ιύζε θαη ζηε ζπλέρεηα λαπεξηγξάςνπκε ηε ιύζε κε κνξθή αιγνξίζκνπ.

1o Παξάδεηγκα ζρεδίαζεο αιγνξίζκνπ

Έρεη θάπνηνο έλα πξόβαην, έλα ιύθν θαη έλα θαθάζη κερόξηα ζηε κία όρζε ελόο πνηακνύ θαη ζέιεη λα ηα πεξάζεηζηελ απέλαληη όρζε ρξεζηκνπνηώληαο κία βάξθα. Η βάξθαόκσο είλαη κηθξή θαη κπνξεί λα κεηαθέξεη, εθηόο από ηνλίδην, άιιν έλα από ηα δώα ή ην θαθάζη. Ωζηόζν δελ πξέπεη λακείλνπλ καδί ν ιύθνο κε ην πξόβαην θαη ην πξόβαην κε ηαρόξηα. Μπνξείηε λα δώζεηε νδεγίεο ζην βαξθάξε γηα ην πώοπξέπεη λα θάλεη ηε κεηαθνξά ηνπο;

Δεδνκέλα: 1 πξόβαην, 1 ιύθνο, 1 θαθάζη κε ρόξηα, κία ζέζε επηπιένλ ζηε βάξθα, 2 όρζεο πνηακνύ.

Πιαίζην ηνπ πξνβιήκαηνο:

Ο ιύθνο δελ πξέπεη λα κείλεη καδί κε ην πξόβαην.Σν πξόβαην δελ πξέπεη λα κείλεη καδί κε ηα ρόξηα.

Ζεηνύκελν: Να πεξάζεη ν ιύθνο, ην πξόβαην θαη ην θαθάζη κε ηα ρόξηα ζηελ απέλαληη όρζε.

1o Παξάδεηγκα ζρεδίαζεο αιγνξίζκνπ

Γηα λα θαηαλνήζνπκε θαιύηεξα ην πεξηβάιινλ ηνππξνβιήκαηνο κπνξνύκε λα θάλνπκε κηα ζρεκαηηθήαλαπαξάζηαζε ηνπ ζην ραξηί.

Σώξα είκαζηε έηνηκνη λα ζθεθηνύκε ηηο πηζαλέο ιύζεηο ηνππξνβιήκαηνο.

Αιγόξηζκνο γηα ην παξάδεηγκα

Αξρή ηνπ αιγνξίζκνπ:

1. Βάιε ην πξόβαην ζηε βάξθα.2. Πήγαηλε ζηελ απέλαληη όρζε.3. Άθεζε ην πξόβαην ζηελ όρζε.4. Γύξλα πίζσ ζηελ αξρηθή όρζε.5. Φόξησζε ην θαθάζη κε ηα

ρόξηα.6. Πήγαηλε ζηελ απέλαληη όρζε.7. Άθεζε ην θαθάζη ζηελ όρζε.8. Βάιε ην πξόβαην ζηε βάξθα.

9. Πήγαηλε ζηελ αξρηθή όρζε. 10. Άθεζε ην πξόβαην ζηελ όρζε. 11. Βάιε ην ιύθν ζηε βάξθα.12. Πήγαηλε ζηελ απέλαληη όρζε.13. Άθεζε ην ιύθν ζηελ όρζε.14. Γύξλα πίζσ ζηελ αξρηθή όρζε.15. Βάιε ην πξόβαην ζηε βάξθα16. Πήγαηλε ζηελ απέλαληη όρζε.17. Άθεζε ην πξόβαην ζηελ όρζε.

Σέινο ηνπ αιγνξίζκνπ

2o Παξάδεηγκα ζρεδίαζεο αιγνξίζκνπ

Πεξηγξάςηε ζε έλα κηθξό παηδί πώο ζα δεκηνπξγήζεηκε ηηο παηνύζεο ηνπ έλα ηεηξάγσλν ζηελ άκκν πνπθάζε πιεπξά ζα έρεη κήθνο 5 βήκαηα.

1. Πεξπάηεζε 5 βήκαηα κπξνζηά.

2. ηξίςε δεμηά θαηά ελελήληα κνίξεο.

3. Πεξπάηεζε 5 βήκαηα κπξνζηά.

4. ηξίςε δεμηά θαηά ελελήληα κνίξεο.

5. Πεξπάηεζε 5 βήκαηα κπξνζηά.

6. ηξίςε δεμηά θαηά ελελήληα κνίξεο.

7. Πεξπάηεζε 5 βήκαηα κπξνζηά.

Αξρή ηνπ Αιγνξίζκνπ

Σέινο ηνπ Αιγνξίζκνπ

Τινπνίεζε Αιγνξίζκνπ κε ππνινγηζηή

Ο Αιγόξηζκνο είλαη εθθξαζκέλνο ζε γιώζζαθαηαλνεηή γηα ηνλ άλζξσπν.

Γηα λα πινπνηεζεί από ηνλ ππνινγηζηή πξέπεη λαεθθξαζηεί ζε γιώζζα θαηαλνεηή γηα ηνλππνινγηζηή.

Πξόγξακκα είλαη ε αλαπαξάζηαζε ελόο αιγνξίζκνπ ζεγιώζζα θαηαλνεηή γηα έλα ππνινγηζηή.

Απνηειείηαη από κηα ζεηξά εληνιώλ πνπ δίλνληαη ζηνλππνινγηζηή κε ζθνπό λα εθηειέζεη κηα ζπγθεθξηκέλειεηηνπξγία ή λα ππνινγίζεη έλα επηζπκεηό απνηέιεζκα.

Ζ δηαδηθαζία ζύληαμεο (θαηαζθεπήο) ελόο πξνγξάκκαηνοιέγεηαη Πξνγξακκαηηζκόο, ελώ ηα άηνκα πνπ γξάθνπλθαη ζπληάζζνπλ έλα πξόγξακκα νλνκάδνληαηΠξνγξακκαηηζηέο.

Τινπνίεζε Αιγνξίζκνπ κε ππνινγηζηή

Άλζξωπνο θαη Τπνινγηζηήο Γιώζζα Λεραλήο

Δίλαη ε γιώζζα πνπθαηαιαβαίλεη ν Ζ/Τ θαηαπνηειείηαη κόλν από ηαςεθία 0 θαη 1.

Γηα λα δώζνπκε ζηνλΖ/Τ ηηο απαηηνύκελεοεληνιέο πξέπεη απηέο λαείλαη δηαηππσκέλεο ζεαπηή ηελ πνιύ ρακεινύεπηπέδνπ γιώζζα.

Πξνγξακκαηηζκόο

Πξνγξακκαηηζκόο ζε γιώζζα κεραλήο

ε έλα πξόγξακκαγξακκέλν ζε γιώζζακεραλήο όιεο νη εληνιέοαπνηεινύληαη από κηαζεηξά «0» θαη «1»

000000000000000100000010000001100000000000100000

Σκήκα Πξνγξάκκαηνοζε γιώζζα κεραλήο

Πξόβιεκα πξνγξακκαηηζκνύ ζε γιώζζα κεραλήο

Πνιύ δύζθνινο ν πξνγξακκαηηζκόο θαζώο ππάξρεηκεγάιε δηαθνξά ζην επίπεδν ηεο γιώζζαο πνπ κηιάεην άλζξσπνο θαη ηεο γιώζζαο πνπ θαηαιαβαίλεη νππνινγηζηήο.

Λύζη

Οη γιώζζεο πξνγξακκαηηζκνύ, νη νπνίεο είλαηηερλεηέο γιώζζεο πνπ ηηο θαηαιαβαίλνπλ νηππνινγηζηέο θαη κνηάδνπλ κε ηελ θπζηθή καο γιώζζα.

Γιώζζεο Πξνγξακκαηηζκνύ

Παξάδεηγκα πξνγξάκκαηνο

void DisplayBlock(SBlock Block)

{

if (Block.nY < 1) return;

RECT rcBlock = g_rcBlock;

rcBlock.left = Block.nColor * BLOCK_DIAMETER;

rcBlock.right = Block.nColor * BLOCK_DIAMETER +

BLOCK_DIAMETER;

g_pDisplay->Blt( (DWORD)Block.nX * BLOCK_DIAMETER - 2 ,

(DWORD)Block.nY * BLOCK_DIAMETER ,

g_pSecondarySurface, &rcBlock );

}

Υαξαθηεξηζηηθά γιωζζώλ Πξνγξακκαηηζκνύ

Αιθάβεην

Τν ζύλνιν ησλ ραξαθηήξσλ πνπ ρξεζηκνπνηνύληαη από ηε γιώζζα.

Κεμηιόγην

Τν ζύλνιν ησλ ιέμεσλ πνπ αλαγλσξίδεη ε γιώζζα.

πληαθηηθό

Τν ζύλνιν ησλ θαλόλσλ πνπ πξέπεη λα αθνινπζνύκε, γηα λα ζπλδένπκε ιέμεηο ζε πξνηάζεηο.

Παξαδείγκαηα γισζζώλ πξνγξακκαηηζκνύ

Οινθιεξωκέλν πξνγξακκαηηζηηθό πεξηβάιινλ

Οη ζύγρξνλεο γιώζζεο πξνγξακκαηηζκνύ καο πξνζθέξνπλέλα θηιηθό πεξηβάιινλ πξνγξακκαηηζκνύ ην νπνίναπνηειείηαη από δηάθνξα εξγαιεία πνπ βνεζάλε ηνλπξνγξακκαηηζηή λα γξάςεη θαη λα δηνξζώζεη ην πξόγξακκάηνπ.

Σα κύπια επγαλεία είλαη:

• έλαο εξειδικεςμένορ κειμενογπάθορ, πνπ ρξεζηκεύεηγηα ηε ζύληαμε θαη ηε δηόξζσζε ηνπ πξνγξάκκαηνο θαη

• έλα ππόγπαμμα-μεηαθπαζηήο πνπ κεηαηξέπεη ηηονδεγίεο καο ζηε κνξθή πνπ ηηο θαηαιαβαίλεη νεπεμεξγαζηήο, δειαδή ζε κηα ζεηξά από 0 θαη 1.

Η εθηέιεζε ελόο αιγνξίζκνπ από ηνλ ππνινγηζηή

Αιγόξηζκνο

Πξόγξακκα

Μεηαηξνπή πξνγξάκκαηνο ζε 0 θαη 1 (γιώζζα κεραλήο)

Δθηέιεζε ηνπ πξνγξάκκαηνο ζηελ Κ.Μ.Δ

πληαθηηθά θαη Κνγηθά ιάζε

Σα ιάζε πνπ κπνξνύκε λα θάλνπκε όηαλ γξάθνπκεέλα πξόγξακκα κπνξνύλ λα ρσξηζηνύλ ζε δύνθαηεγνξίεο:

ζηα ζπληαθηηθά

ζηα ινγηθά

πληαθηηθά Κάζε

Αλ ζε θάπνηα νδεγία έρνπκε θάλεη ιάζνο

ζην αιθάβεην,

ζην ιεμηιόγην ή

ζην ζπληαθηηθό

ηόηε ην πξόγξακκα πνπ κεηαηξέπεη ηηο νδεγίεο καο ζε 0 θαη 1 ζακαο δώζεη έλα θαηάιιειν κήλπκα ιάζνπο ώζηε λα καο βνεζήζεη λαδηνξζώζνπκε ην ιάζνο καο. Σα ιάζε απηά νλνκάδνληαηζπληαθηηθά ιάζε.

Παπάδειγμα

ΜΠ100 (πξέπεη λα ππάξρεη θελό αλάκεζα ζηελ εληνιή ΜΠ θαη ην100)

Δ 90 (δελ ππάξρεη εληνιή Δ αιιά ΓΔ)

Κνγηθά Κάζε

Αλ ην απνηέιεζκα πνπ πξνθύπηεη από ηελ εθηέιεζε ελόοπξνγξάκκαηνο δελ είλαη ην αλακελόκελν, ηόηε ην πξόβιεκα δεβξίζθεηαη ζηνλ ηξόπν εθηέιεζεο, αιιά ζηνλ αιγόξηζκν πνπθαηαζθεπάζακε.ηελ πεξίπησζε απηή ιέκε όηη έρνπκε θάλεη έλα ινγηθό ιάζνο θαηζα πξέπεη λα ειέγμνπκε κηα πξνο κηα ηηο εληνιέο ηνπ αιγνξίζκνπγηα λα δηαπηζηώζνπκε αλ δίλνπκε ηηο θαηάιιειεο εληνιέο κε ηεζσζηή ζεηξά.

ΠαπάδειγμαΜΠ 100ΓΔ 90Σν πξόγξακκα ζα εθηειεζηεί θαλνληθά θαη ε ρειώλα ζα ζηξίςεηδεμηά 90 κνίξεο, ελώ εκείο ζέιακε λα ζηξίςεη 80 κνίξεο.