SlideShare a Scribd company logo
1 of 2
Download to read offline
(1.1) Η έννοια του προβλήµατος
Ανάλυση προβλήµατος
(τα στάδια της προετοιµασίας για την επίλυσή του)
• Κατανόηση του προβλήµατος
• ∆οµή του προβλήµατος
• Καθορισµός απαιτήσεων
• Περιβάλλον του προβλήµατος
Κατανόηση του προβλήµατος
• Σε αυτή τη φάση διαβάζουµε πολλές φορές το πρόβληµα µέχρι να καταλάβουµε τι
µας ζητάει.
• Πολλές φορές είναι αναγκαίο να το αναδιατυπώσουµε, ώστε να είναι πιο
ξεκάθαρα τα ζητούµενα
∆οµή του προβλήµατος
• ∆ιαίρεση του προβλήµατος σε µικρότερα προβλήµατα ή ορισµός των επιµέρους
στόχων του προβλήµατος.
• Τα µικρότερα προβλήµατα λύνονται ευκολότερα. Στο τέλος θα πρέπει να
συνθέσουµε τις λύσεις τους, για να δηµιουργήσουµε τη λύση του αρχικού
προβλήµατος.
• Το βήµα αυτό, δεν είναι απαραίτητο, αν το πρόβληµα είναι µικρό και απλό.
Καθορισµός απαιτήσεων
• Καθορίζουµε τα δεδοµένα και τα ζητούµενα του προβλήµατος, ή των επιµέρους
προβληµάτων.
• Στην πληροφορική τα δεδοµένα και ζητούµενα δεν εµφανίζονται πάντα στη
διατύπωση του προβλήµατος.
• Θα πρέπει να απαντήσω στις εξής ερωτήσεις:
• Τι πρέπει να βρω (υπολογίσω); (ζητούµενο)
• Τι πρέπει να ξέρω για να βρω αυτό που θέλω; (δεδοµένα)
Περιβάλλον του προβλήµατος
Καθορισµός των κανόνων που διέπουν τη λύση που θα δώσουµε. Πχ στο πρόβληµα του
σχεδιασµού µιας εκδροµής, θα πρέπει να λάβουµε υπόψη αν πρόκειται για σχολική
εκδροµή, ή εκδροµή µε τους φίλους µας.
Ένα παράδειγµα
Θέλουµε να στρώσουµε ένα δωµάτιο του σπιτιού µας µε πλακάκια.
Κατανόηση
• Αναδιατύπωση:
Πόσα πλακάκια θα χρειαστώ για να στρώσω ένα δωµάτιο του σπιτιού µου;
∆οµή του προβλήµατος
Υποπροβλήµατα
• Ποιο είναι το εµβαδόν του δωµατίου;
• Ποιο είναι το εµβαδόν κάθε πλακιδίου;
Καθορισµός απαιτήσεων
Τα ζητούµενα κάθε υποπροβλήµατος είναι προφανή.
∆εδοµένα:
• Ποιο είναι το εµβαδόν του δωµατίου;
• Ποιες είναι οι διαστάσεις του δωµατίου;
• Ποιο είναι το εµβαδόν κάθε πλακιδίου;
• Τι σχήµα έχει το πλακάκι;
• Ποιες οι διαστάσεις του;
Περιβάλλον του προβλήµατος
Ενδεχοµένως να µας ενδιαφέρει το κόστος. Οπότε θα χρειαστούµε επιπλέον δεδοµένα:
• Ποιο είναι το µέγιστο ποσό που µπορούµε να πληρώσουµε;
• Τι επιλογές σε πλακάκια έχω και ποιο το κόστος της κάθε επιλογής;
(1.2) Η έννοια του αλγορίθµου
Ορισµός
Αλγόριθµος ονοµάζεται µια σειρά από σαφείς οδηγίες που περιγράφουν τη λύση
ενός προβλήµατος, ή τον τρόπο εκτέλεσης µιας εργασίας.
Χαρακτηριστικά των αλγορίθµων
Εκτός από τα παραπάνω, ένας αλγόριθµος θα πρέπει:
• Να ολοκληρώνεται σε συγκεκριµένο χρόνο, φθάνοντας σε ένα αποτέλεσµα.
• Να είναι εκφρασµένος µε απλά λόγια.
Παράδειγµα 1
Οι ∆έκα Εντολές, αποτελούν αλγόριθµο και γιατί;
Απάντηση
Όχι, διότι δεν έχει νόηµα η εκτέλεσή τους µε κάποια συγκεκριµένη σειρά.
Παράδειγµα 2
1.Πάρε ένα πακέτο µακαρόνια και νερό
2.Βάλε τα µέσα σε µια κατσαρόλα
3.Βάλε την κατσαρόλα στο µάτι της κουζίνας
4.Άναψε το µάτι της κουζίνας
5.Περίµενε
Απάντηση
Ο αλγόριθµος αυτός περιέχει δύο ασαφείς οδηγίες. Στην οδηγία 1, δεν
προσδιορίζεται η ποσότητα του νερού που πρέπει να προσθέσουµε. Στην οδηγία 5 δεν
προσδιορίζεται ο χρόνος που πρέπει να περιµένουµε.
Παράδειγµα 3
1.Συµπλήρωσε ένα δελτίο «Πάµε Στοίχηµα»
2.Αν αποτύχεις, συµπλήρωσε ένα δελτίο «Τζόκερ»
3.Αν αποτύχεις, αγόρασε ένα «Λαϊκό Λαχείο»
4.Αν αποτύχεις, επανέλαβε από το βήµα 1.
Απάντηση
Ο αλγόριθµος αυτός δεν φθάνει πάντα σε ένα αποτέλεσµα, αφού τερµατίζεται
όταν κερδίσουµε σε κάποιο από τα τυχερά παιχνίδια. Αυτό όµως το γεγονός δεν ξέρουµε
ούτε πότε, ούτε αν θα συµβεί. Ένας αλγόριθµος θα πρέπει πάντοτε να τελειώνει.
(1.3) Προγραµµατισµός
Βασικές έννοιες
Πρόγραµµα: Η αναπαράσταση ενός αλγορίθµου σε γλώσσα κατανοητή από τον
υπολογιστή.
Προγραµµατιστής: Ο δηµιουργός του προγράµµατος.
Προγραµµατισµός: Η διαδικασία κατασκευής των προγραµµάτων
Γλώσσες προγραµµατισµού
Οι γλώσσες που καταλαβαίνει ο υπολογιστής και χρησιµοποιούνται για την κατασκευή
των προγραµµάτων.
Αποτελούνται από ένα συγκεκριµένο σύνολο εντολών.
Οι εντολές αυτές υλοποιούν τρεις βασικές λειτουργίες:
• Πράξεις
• Συγκρίσεις
• Αποθήκευση-Φόρτωση δεδοµένων στην Κύρια Μνήµη
Γλώσσα µηχανής
Τα προγράµµατα εκτελούνται από το κύκλωµα της CPU, που βρίσκεται µέσα στο τσιπ
του επεξεργαστή.
Η γλώσσα προγραµµατισµού που καταλαβαίνει η CPU ονοµάζεται γλώσσα µηχανής.
Χαρακτηριστικά της Γλώσσας Μηχανής
• Οι εντολές της γλώσσας µηχανής παριστάνονται στην «εσωτερική γλώσσα» του
υπολογιστή, δηλαδή σε µορφή 0 και 1(δυαδικό σύστηµα).
• Ο προγραµµατισµός σε γλώσσα µηχανής είναι ιδιαίτερα δύσκολος, ακόµα και σε
έµπειρους προγραµµατιστές.
• Είναι η µοναδική γλώσσα που καταλαβαίνει ο υπολογιστής
Αυτό έχει τεράστια µειονεκτήµατα:
–Η γλώσσα δεν έχει καµία οµοιότητα µε τις ανθρώπινες.
–Οι εντολές της, υλοποιούν µόνο τις απολύτως βασικές λειτουργίες. Αυτό σηµαίνει ότι
πρέπει να χρησιµοποιήσουµε τεράστιο αριθµό από εντολές για να δηµιουργήσουµε
ακόµα και απλά προγράµµατα.
–Κάθε επεξεργαστής έχει διαφορετική γλώσσα µηχανής, που σηµαίνει ότι το πρόγραµµα
θα πρέπει να γραφτεί σε πολλές µορφές προκειµένου να εκτελεστεί από διαφορετικά
µοντέλα υπολογιστή.
Γλώσσες υψηλού επιπέδου
Είναι γλώσσες προγραµµατισµού που µοιάζουν αρκετά µε τις ανθρώπινες γλώσσες.
Λύνουν τα προβλήµατα της γλώσσας µηχανής:
–Ένας αλγόριθµος µετατρέπεται εύκολα σε πρόγραµµα.
–Υλοποιούν σύνθετες αλγοριθµικές δοµές και µπορούµε να κατασκευάσουµε δύσκολα
προγράµµατα.
–Είναι ανεξάρτητες από τον τύπο του επεξεργαστή.
Χαρακτηριστικά γλωσσών υψηλού επιπέδου
Αλφάβητο: Το ανθρώπινο αλφάβητο που χρησιµοποιεί η γλώσσα. Συνήθως το λατινικό.
Λεξιλόγιο: Οι λέξεις που αποτελούν τις εντολές της γλώσσας.
Συντακτικό: Οι κανόνες σύνδεσης µεταξύ των λέξεων ώστε να σχηµατιστούν οι εντολές.
Μεταγλωττιστές
• Μετατρέπουν τα προγράµµατα από γλώσσα υψηλού επιπέδου, σε γλώσσα
µηχανής για να εκτελεστούν από την CPU.
∆ιακρίνονται σε:
• Μεταφραστές(compilers): Μεταγλωττίζουν το πρόγραµµα, αφού έχει
ολοκληρωθεί η συγγραφή του.
• ∆ιερµηνείς(interpreters): Μεταγλωττίζουν το πρόγραµµα, εντολή-εντολή.
Λάθη κατά τον προγραµµατισµό
Συντακτικά: Οφείλονται σε λανθασµένη χρήση του λεξιλογίου ή του συντακτικού της
γλώσσας. Το πρόγραµµα δεν µεταγλωττίζεται και δεν εκτελείται. Τα εντοπίζει αυτόµατα
ο µεταγλωττιστής.
Λογικά: Οφείλονται σε λανθασµένο αλγόριθµο. Το πρόγραµµα µεταγλωττίζεται και
εκτελείται, αλλά βγάζει λανθασµένα αποτελέσµατα. Τα εντοπίζει και τα διορθώνει ο ίδιος
προγραµµατιστής.
Γλώσσες υψηλού επιπέδου(Είδη)
BASIC, Pascal: Εύχρηστες γλώσσες γενικής χρήσης, που χρησιµοποιούνται συνήθως για
την εκπαίδευση στο προγραµµατισµό.
C, C++ : Οι γλώσσες των επαγγελµατιών. Σε αυτές είναι γραµµένα τα περισσότερα
προγράµµατα που χρησιµοποιούµε.
Java, Javascript, Actionscript, php: Γλώσσες που χρησιµοποιούνται για τον
προγραµµατισµό στο ∆ιαδίκτυο (πχ κατασκευή ιστοσελίδων).
Python, Perl: Γλώσσες νέας γενιάς, ιδιαίτερα εύχρηστες, µε µεγάλες δυνατότητες και
ευρεία χρήση, που κερδίζουν όλο και περισσότερους προγραµµατιστές.
Και πολλές άλλες …

More Related Content

Similar to Πρόβλημα-->Αλγόριθμος-->Πρόγραμμα

εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμόεισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
vfilip
 
Παρουσιάσεις, Βήμα-Βήμα
Παρουσιάσεις, Βήμα-ΒήμαΠαρουσιάσεις, Βήμα-Βήμα
Παρουσιάσεις, Βήμα-Βήμα
Koustoudis Ioannis
 
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμόφε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
dimtsouk
 
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' ΓυμνασίουΔιαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
protogymnasiogeraka
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis
 

Similar to Πρόβλημα-->Αλγόριθμος-->Πρόγραμμα (20)

Πληροφορική Γ' γυμνασίου
Πληροφορική Γ' γυμνασίουΠληροφορική Γ' γυμνασίου
Πληροφορική Γ' γυμνασίου
 
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίας
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίαςΣημειώσεις Logo με ασκήσεις και θέματα θεωρίας
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίας
 
C_27102023.pdf
C_27102023.pdfC_27102023.pdf
C_27102023.pdf
 
εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμόεισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
εισαγωγή στην εννοια του αλγορίθμου και στον προγραμματισμό
 
Kef 1 4 & 1 5
Kef 1 4 & 1 5Kef 1 4 & 1 5
Kef 1 4 & 1 5
 
C_03112023.pdf
C_03112023.pdfC_03112023.pdf
C_03112023.pdf
 
ενότητα 2
ενότητα 2 ενότητα 2
ενότητα 2
 
Παρουσιάσεις, Βήμα-Βήμα
Παρουσιάσεις, Βήμα-ΒήμαΠαρουσιάσεις, Βήμα-Βήμα
Παρουσιάσεις, Βήμα-Βήμα
 
παρουσιαση αλγοριθμος γλωσσες προγραμματισμου
παρουσιαση  αλγοριθμος γλωσσες προγραμματισμουπαρουσιαση  αλγοριθμος γλωσσες προγραμματισμου
παρουσιαση αλγοριθμος γλωσσες προγραμματισμου
 
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμόφε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
φε εισαγωγή στην έννοια του αλγορίθμου και στον προγραμματισμό
 
γλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμούγλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμού
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
προγραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptxπρογραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptx
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
 
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' ΓυμνασίουΔιαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
Διαφάνειες για αλγόριθμο και προγραμματισμό - Πληροφορική Γ ' Γυμνασίου
 
προγραμματισμός - θεωρία
προγραμματισμός  - θεωρίαπρογραμματισμός  - θεωρία
προγραμματισμός - θεωρία
 
C_24112023.pdf
C_24112023.pdfC_24112023.pdf
C_24112023.pdf
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Περιβάλλοντα ανάπτυξης εφαρμογών
Περιβάλλοντα ανάπτυξης εφαρμογώνΠεριβάλλοντα ανάπτυξης εφαρμογών
Περιβάλλοντα ανάπτυξης εφαρμογών
 

Recently uploaded

5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
Athina Tziaki
 

Recently uploaded (9)

Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 

Πρόβλημα-->Αλγόριθμος-->Πρόγραμμα

  • 1. (1.1) Η έννοια του προβλήµατος Ανάλυση προβλήµατος (τα στάδια της προετοιµασίας για την επίλυσή του) • Κατανόηση του προβλήµατος • ∆οµή του προβλήµατος • Καθορισµός απαιτήσεων • Περιβάλλον του προβλήµατος Κατανόηση του προβλήµατος • Σε αυτή τη φάση διαβάζουµε πολλές φορές το πρόβληµα µέχρι να καταλάβουµε τι µας ζητάει. • Πολλές φορές είναι αναγκαίο να το αναδιατυπώσουµε, ώστε να είναι πιο ξεκάθαρα τα ζητούµενα ∆οµή του προβλήµατος • ∆ιαίρεση του προβλήµατος σε µικρότερα προβλήµατα ή ορισµός των επιµέρους στόχων του προβλήµατος. • Τα µικρότερα προβλήµατα λύνονται ευκολότερα. Στο τέλος θα πρέπει να συνθέσουµε τις λύσεις τους, για να δηµιουργήσουµε τη λύση του αρχικού προβλήµατος. • Το βήµα αυτό, δεν είναι απαραίτητο, αν το πρόβληµα είναι µικρό και απλό. Καθορισµός απαιτήσεων • Καθορίζουµε τα δεδοµένα και τα ζητούµενα του προβλήµατος, ή των επιµέρους προβληµάτων. • Στην πληροφορική τα δεδοµένα και ζητούµενα δεν εµφανίζονται πάντα στη διατύπωση του προβλήµατος. • Θα πρέπει να απαντήσω στις εξής ερωτήσεις: • Τι πρέπει να βρω (υπολογίσω); (ζητούµενο) • Τι πρέπει να ξέρω για να βρω αυτό που θέλω; (δεδοµένα) Περιβάλλον του προβλήµατος Καθορισµός των κανόνων που διέπουν τη λύση που θα δώσουµε. Πχ στο πρόβληµα του σχεδιασµού µιας εκδροµής, θα πρέπει να λάβουµε υπόψη αν πρόκειται για σχολική εκδροµή, ή εκδροµή µε τους φίλους µας. Ένα παράδειγµα Θέλουµε να στρώσουµε ένα δωµάτιο του σπιτιού µας µε πλακάκια. Κατανόηση • Αναδιατύπωση: Πόσα πλακάκια θα χρειαστώ για να στρώσω ένα δωµάτιο του σπιτιού µου; ∆οµή του προβλήµατος Υποπροβλήµατα • Ποιο είναι το εµβαδόν του δωµατίου; • Ποιο είναι το εµβαδόν κάθε πλακιδίου; Καθορισµός απαιτήσεων Τα ζητούµενα κάθε υποπροβλήµατος είναι προφανή. ∆εδοµένα: • Ποιο είναι το εµβαδόν του δωµατίου; • Ποιες είναι οι διαστάσεις του δωµατίου; • Ποιο είναι το εµβαδόν κάθε πλακιδίου; • Τι σχήµα έχει το πλακάκι; • Ποιες οι διαστάσεις του; Περιβάλλον του προβλήµατος Ενδεχοµένως να µας ενδιαφέρει το κόστος. Οπότε θα χρειαστούµε επιπλέον δεδοµένα: • Ποιο είναι το µέγιστο ποσό που µπορούµε να πληρώσουµε; • Τι επιλογές σε πλακάκια έχω και ποιο το κόστος της κάθε επιλογής; (1.2) Η έννοια του αλγορίθµου Ορισµός Αλγόριθµος ονοµάζεται µια σειρά από σαφείς οδηγίες που περιγράφουν τη λύση ενός προβλήµατος, ή τον τρόπο εκτέλεσης µιας εργασίας. Χαρακτηριστικά των αλγορίθµων Εκτός από τα παραπάνω, ένας αλγόριθµος θα πρέπει: • Να ολοκληρώνεται σε συγκεκριµένο χρόνο, φθάνοντας σε ένα αποτέλεσµα. • Να είναι εκφρασµένος µε απλά λόγια. Παράδειγµα 1 Οι ∆έκα Εντολές, αποτελούν αλγόριθµο και γιατί; Απάντηση Όχι, διότι δεν έχει νόηµα η εκτέλεσή τους µε κάποια συγκεκριµένη σειρά. Παράδειγµα 2 1.Πάρε ένα πακέτο µακαρόνια και νερό 2.Βάλε τα µέσα σε µια κατσαρόλα 3.Βάλε την κατσαρόλα στο µάτι της κουζίνας 4.Άναψε το µάτι της κουζίνας 5.Περίµενε Απάντηση Ο αλγόριθµος αυτός περιέχει δύο ασαφείς οδηγίες. Στην οδηγία 1, δεν προσδιορίζεται η ποσότητα του νερού που πρέπει να προσθέσουµε. Στην οδηγία 5 δεν προσδιορίζεται ο χρόνος που πρέπει να περιµένουµε. Παράδειγµα 3 1.Συµπλήρωσε ένα δελτίο «Πάµε Στοίχηµα» 2.Αν αποτύχεις, συµπλήρωσε ένα δελτίο «Τζόκερ» 3.Αν αποτύχεις, αγόρασε ένα «Λαϊκό Λαχείο» 4.Αν αποτύχεις, επανέλαβε από το βήµα 1. Απάντηση Ο αλγόριθµος αυτός δεν φθάνει πάντα σε ένα αποτέλεσµα, αφού τερµατίζεται όταν κερδίσουµε σε κάποιο από τα τυχερά παιχνίδια. Αυτό όµως το γεγονός δεν ξέρουµε ούτε πότε, ούτε αν θα συµβεί. Ένας αλγόριθµος θα πρέπει πάντοτε να τελειώνει.
  • 2. (1.3) Προγραµµατισµός Βασικές έννοιες Πρόγραµµα: Η αναπαράσταση ενός αλγορίθµου σε γλώσσα κατανοητή από τον υπολογιστή. Προγραµµατιστής: Ο δηµιουργός του προγράµµατος. Προγραµµατισµός: Η διαδικασία κατασκευής των προγραµµάτων Γλώσσες προγραµµατισµού Οι γλώσσες που καταλαβαίνει ο υπολογιστής και χρησιµοποιούνται για την κατασκευή των προγραµµάτων. Αποτελούνται από ένα συγκεκριµένο σύνολο εντολών. Οι εντολές αυτές υλοποιούν τρεις βασικές λειτουργίες: • Πράξεις • Συγκρίσεις • Αποθήκευση-Φόρτωση δεδοµένων στην Κύρια Μνήµη Γλώσσα µηχανής Τα προγράµµατα εκτελούνται από το κύκλωµα της CPU, που βρίσκεται µέσα στο τσιπ του επεξεργαστή. Η γλώσσα προγραµµατισµού που καταλαβαίνει η CPU ονοµάζεται γλώσσα µηχανής. Χαρακτηριστικά της Γλώσσας Μηχανής • Οι εντολές της γλώσσας µηχανής παριστάνονται στην «εσωτερική γλώσσα» του υπολογιστή, δηλαδή σε µορφή 0 και 1(δυαδικό σύστηµα). • Ο προγραµµατισµός σε γλώσσα µηχανής είναι ιδιαίτερα δύσκολος, ακόµα και σε έµπειρους προγραµµατιστές. • Είναι η µοναδική γλώσσα που καταλαβαίνει ο υπολογιστής Αυτό έχει τεράστια µειονεκτήµατα: –Η γλώσσα δεν έχει καµία οµοιότητα µε τις ανθρώπινες. –Οι εντολές της, υλοποιούν µόνο τις απολύτως βασικές λειτουργίες. Αυτό σηµαίνει ότι πρέπει να χρησιµοποιήσουµε τεράστιο αριθµό από εντολές για να δηµιουργήσουµε ακόµα και απλά προγράµµατα. –Κάθε επεξεργαστής έχει διαφορετική γλώσσα µηχανής, που σηµαίνει ότι το πρόγραµµα θα πρέπει να γραφτεί σε πολλές µορφές προκειµένου να εκτελεστεί από διαφορετικά µοντέλα υπολογιστή. Γλώσσες υψηλού επιπέδου Είναι γλώσσες προγραµµατισµού που µοιάζουν αρκετά µε τις ανθρώπινες γλώσσες. Λύνουν τα προβλήµατα της γλώσσας µηχανής: –Ένας αλγόριθµος µετατρέπεται εύκολα σε πρόγραµµα. –Υλοποιούν σύνθετες αλγοριθµικές δοµές και µπορούµε να κατασκευάσουµε δύσκολα προγράµµατα. –Είναι ανεξάρτητες από τον τύπο του επεξεργαστή. Χαρακτηριστικά γλωσσών υψηλού επιπέδου Αλφάβητο: Το ανθρώπινο αλφάβητο που χρησιµοποιεί η γλώσσα. Συνήθως το λατινικό. Λεξιλόγιο: Οι λέξεις που αποτελούν τις εντολές της γλώσσας. Συντακτικό: Οι κανόνες σύνδεσης µεταξύ των λέξεων ώστε να σχηµατιστούν οι εντολές. Μεταγλωττιστές • Μετατρέπουν τα προγράµµατα από γλώσσα υψηλού επιπέδου, σε γλώσσα µηχανής για να εκτελεστούν από την CPU. ∆ιακρίνονται σε: • Μεταφραστές(compilers): Μεταγλωττίζουν το πρόγραµµα, αφού έχει ολοκληρωθεί η συγγραφή του. • ∆ιερµηνείς(interpreters): Μεταγλωττίζουν το πρόγραµµα, εντολή-εντολή. Λάθη κατά τον προγραµµατισµό Συντακτικά: Οφείλονται σε λανθασµένη χρήση του λεξιλογίου ή του συντακτικού της γλώσσας. Το πρόγραµµα δεν µεταγλωττίζεται και δεν εκτελείται. Τα εντοπίζει αυτόµατα ο µεταγλωττιστής. Λογικά: Οφείλονται σε λανθασµένο αλγόριθµο. Το πρόγραµµα µεταγλωττίζεται και εκτελείται, αλλά βγάζει λανθασµένα αποτελέσµατα. Τα εντοπίζει και τα διορθώνει ο ίδιος προγραµµατιστής. Γλώσσες υψηλού επιπέδου(Είδη) BASIC, Pascal: Εύχρηστες γλώσσες γενικής χρήσης, που χρησιµοποιούνται συνήθως για την εκπαίδευση στο προγραµµατισµό. C, C++ : Οι γλώσσες των επαγγελµατιών. Σε αυτές είναι γραµµένα τα περισσότερα προγράµµατα που χρησιµοποιούµε. Java, Javascript, Actionscript, php: Γλώσσες που χρησιµοποιούνται για τον προγραµµατισµό στο ∆ιαδίκτυο (πχ κατασκευή ιστοσελίδων). Python, Perl: Γλώσσες νέας γενιάς, ιδιαίτερα εύχρηστες, µε µεγάλες δυνατότητες και ευρεία χρήση, που κερδίζουν όλο και περισσότερους προγραµµατιστές. Και πολλές άλλες …