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

28
ΛΗΣΟΤ ΕΤΑΜΘ ΘΑ ΓΤΛΜΑΘΟ ΚΘΣΟΥΩΡΟΤ Ειζαγωγή ζηην έννοια ηος Αλγοπίθμος και ζηον ππογπαμμαηιζμό

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

Page 1: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

Page 2: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

Page 3: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

Page 4: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

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

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

Δπίιπζε

Page 5: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

επίζθεςεο

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

επίζθεςεο

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

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

ζπκκεηνρήο

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

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

Page 6: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

αλαιπηηθή

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

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

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

Page 7: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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, ζα ππάξμεη θάπνην πξόβιεκα ζηνλ αιγόξηζκν;

Page 8: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

10 πέηαλα

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

Αλγορίθμοσ

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

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

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

Page 9: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

θαηαλνεηέο.

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

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

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

Page 10: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

Page 11: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

Page 12: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

Page 13: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

Page 14: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

Page 15: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

Page 16: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

Page 17: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

Page 18: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

000000000000000100000010000001100000000000100000

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

Page 19: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

Λύζη

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

Page 20: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

Page 21: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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 );

}

Page 22: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

Αιθάβεην

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

Κεμηιόγην

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

πληαθηηθό

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

Page 23: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

Page 24: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

Page 25: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

Αιγόξηζκνο

Πξόγξακκα

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

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

Page 26: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

ζηα ινγηθά

Page 27: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

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

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

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

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

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

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

Παπάδειγμα

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

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

Page 28: εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό

Κνγηθά Κάζε

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

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