Πως λύνεαι ένα πρόβληµα. Όπως έχουµε ήδη αναφέρει, α βήµαα για ην παραγωγή λογισµικού είναι: 1. Καανόηση προβλήµαος 2. Επίλυση ου προβλήµαος 3. Λογικός έλεγχος ης λύσης (αν υπάρχουν λάθη πήγαινε σο 1.) 4. Κωδικοποίηση 5. Μεάφραση & Ορθογραφικός έλεγχος (αν υπάρχουν λάθη πήγαινε σο 4) 6. Λογικός έλεγχος (αν υπάρχουν λάθη πήγαινε σο 2) 7. Παραγωγή (εκέλεση ου προγράµµαος σε πραγµαικές συνθήκες) Η εξειδίκευση ων ριών πρώων βηµάων που αποελούν και ο ανικείµενο ου µαθήµαος είναι: 1. άλυση ου προβλήµαος 2. Σύνθεση ης λύσης 3. Έλεγχος ης λύσης 4. Εξέαση οριακών συνθηκών 5. Ορισικοποίηση ης λύσης. άλυση ου προβλήµαος Καά ην ανάλυση ου προβλήµαος γίνοναι α παρακάω βήµαα καά σειρά: Κααγραφή δοκιµασικών δεδοµένων που προκύπουν αβίασα από ην εκφώνηση ου προβλήµαος. Κααγραφή ων αποελεσµάων που πρέπει να προκύψουν από ην επεξεργασία αυών ων δεδοµένων. άλυση ης ανθρώπινης επεξεργασίας σε λειουργίες υπολογισή. Το ελευαίο βήµα είναι και ο δυσκολόερο, δεδοµένου όι ο υπολογισής έχει ις γνωσές ρεις δυναόηες: πρόσθεση, σύγκριση, µεαφορά. Αυό σηµαίνει όι κάθε µορφής επεξεργασία θα πρέπει να κααγραφεί σαν λειουργία υπολογισή. Όλα α παραπάνω αποελούν ην αρχή ης εκµηρίωσης, που θα συνοδεύει κάθε φάση. Σύνθεση Σε αυή ην φάση αναζηείαι κα' αρχήν η βασική επεξεργασία που θα περιλαµβάνεαι σην επαναληπική διαδικασία. Θυµίζουµε όι, ένα πρόβληµα προκειµένου να είναι καάλληλο για λυθεί από υπολογισή πρέπει να έχει κάποιο από α παρακάω χαρακηρισικά ή συνδυασµό ους: επαναλαµβανόµενες λειουργίες, µεγάλο όγκο δεδοµένων, πολύπλοκους υπολογισµούς. Έσι α παρακάω βήµαα θα πρέπει να είναι: Κααγραφή ης βασικής επεξεργασίας ου αλγόριθµου. Αυή θα είναι σύµφωνη µε ις δυναόηες ου υπολογισή. Συµπλήρωση µε υποσηρικικές ενολές, προκειµένου η βασική επεξεργασία να είναι ολοκληρωµένη και πλήρης. Καθορισµός ης επαναληπικής διαδικασίας µε ην επιλογή ης καάλληλης δοµής σύµφωνα µε ις δεδοµένες συνθήκες. Τεχνικός έλεγχος ο οποίος θα διαπισώσει, ποιες ενολές δεν µπορούν να εκελεσούν λόγω έλλειψης προϋποθέσεων. Συνήθως αφορά σε συγκρίσεις µεαβληών που δεν έχουν περιεχόµενο, ή σε αριθµηικές πράξεις µε πεδία χωρίς αρχικές ιµές. Ακόµα θα διαπισώσει αν ο αλγόριθµος έχει είσοδο, επεξεργασία, έξοδο. Νέσωρ Ιωαννίδης Σελίδα 1 από 5
Κάθε παραδοχή, όπως για παράδειγµα, αρχικές ιµές και ιµές ερµαισµού πρέπει να συµπληρώνουν ην εκµηρίωση αυής ης φάσης. Έλεγχος λειουργίας. Σε αυή ην φάση ο αλγόριθµος ελέγχεαι µε α δοκιµασικά δεδοµένα που είχαν χρησιµοποιηθεί και για ον σχεδιασµό ου. Εκελείαι ο αλγόριθµος, µε "δοκιµή σο γραφείο". Τα παραγόµενα αποελέσµαα συγκρίνοναι µε α αναµενόµενα. Κάθε απόκλιση σηµαίνει όι υπάρχει λογικό λάθος. ΠΡΟΣΟΧΗ: Κάθε φορά που διαπισώνεαι λογικό λάθος και γίνεαι η διόρθωσή ου, ο έλεγχος πρέπει να αρχίζει από ην αρχή. Κάθε παραδοχή που γίνεαι, αποελεί σοιχείο ης εκµηρίωσης ου φακέλου ου προγράµµαος. Εξέαση ακραίων συνθηκών. Πριν παραδοθεί ο αλγόριθµος για α επόµενα βήµαα, πρέπει να εξεασεί η συµπεριφορά ου σε ακραίες περιπώσεις δεδοµένων. Έσι σε αυή η φάση: Γίνεαι αλλαγή ων δεδοµένων προκειµένου να εξεασούν όλες δυναές περιπώσεις. Κάθε νέα οµάδα δεδοµένων κααγράφεαι µαζί µε α αποελέσµαα ης. Ελέγχεαι η λειουργία ου αλγόριθµου. χρειασεί να γίνουν αλλαγές σις λειουργίες ου, ΥΠΟΧΡΕΩΤΙΚΑ αυές οι αλλαγές θα πρέπει να εξεασούν και µε α δεδοµένα που έχουν χρησιµοποιηθεί µέχρι σιγµής. Κάθε παραήρηση κααγράφεαι και αποελεί σοιχείο ης εκµηρίωσης. Ορισικοποίηση ης λύσης. Ένας ελευαίος έλεγχος αποδεικνύει όι έχουν ληφθεί υπ' όψιν όλες οι πιθανές περιπώσεις. Η λύση ορισικοποιείαι. Εφαρµογή ίνοναι αριθµοί από ο πληκρολόγιο. Να σχεδιασεί ο αλγόριθµος που ενοπίζει ον µεγαλύερο από αυούς και ην θέση ου. Σηµείωση: η περίπωση πολλαπλού µέγισου, ισόηας όλων ων αριθµών κ.ά θα εξεασούν ση φάση ων ακραίων συνθηκών. άλυση ου προβλήµαος x είναι η µεαβληή εισόδου, max η βοηθηική µεαβληή που αποθηκεύει ον µέγισο και θ η µεαβληή που κραά ην θέση ου αριθµού, ο παρακάω πίνακας µπορεί να είναι µία περίπωση που λύνει ο πρόβληµα. x Max θ 2 7 4 4-1 7 5 0 Νέσωρ Ιωαννίδης Σελίδα 2 από 5
Η µεαβληή max προφανώς παίρνει ιµή µεά από σύγκριση ου x και ου max. Άρα η βασική επεξεργασία είναι: Επειδή όµως πρέπει να αποθηκεύεαι και η θέση ου x χρειάζεαι ένας µερηής που θα µερά ην σειρά ης ιµής που έχει διαβασεί και αποθηκεύεαι σο max. Εποµένως ο πίνακας γίνεαι: Και η ενολή γίνεαι: x Max θ i 2 7 4 1 4 2-1 3 7 4 5 5 0 6 Εφ' όσον αυή ενολή επαναλαµβάνεαι, προφανώς θα πρέπει να εκελείαι µε νέα δεδοµένα. Αυά δεν µπορεί να είναι άλλα από νέα ιµή για ο x και νέα ιµή για ο i. Επειδή ο x είναι εξωερική µεαβληή παίρνει ιµή µε ην ενολή ιάβασε, ενώ ο i σαν εσωερική µεαβληή παίρνει ιµή µε πράξη, σην προκειµένη περίπωση πρόσθεση. Η επεξεργασία είναι ώρα: Σηµείωση: Παρακάω θα δούµε πως η θέση ου, επηρεάζει ην αρχική ιµή ης µεαβληής. Μεά και από αυό ο βήµα, µπορούµε να ορίσουµε ην επαναληπική διαδικασία µε αρκεή βεβαιόηα όι δεν έχουµε παραλείψει ίποα. Η επεξεργασία θα µπορεί να είναι ώρα: Νέσωρ Ιωαννίδης Σελίδα 3 από 5
Ο εχνικός έλεγχος δίνει ις εξής παραηρήσεις: Η συνθήκη x "" δεν µπορεί να ελεγχθεί γιαί ο x δεν έχει ιµή. Η συνθήκη x > max δεν µπορεί να ελεγχθεί γιαί ούε ο x ούε ο max έχουν ιµή. Η ενολή δεν µπορεί να εκελεσεί γιαί ο i δεν έχει αρχική ιµή. Ο αλγόριθµος δεν έχει έξοδο. Ο αλγόριθµος γίνεαι ώρα: Προσοχή: Η αρχικοποίηση ης max µε ην ιµή ου πρώου x που διαβάζεαι είναι η καλλίερη επιλογή. ο επόµενο βήµα συµπληρώνει ον αλγόριθµο µε ην έξοδο: Εµφάνισε max, θ σε αυό ο σηµείο ο αλγόριθµος είναι έοιµος για έλεγχο. Για ον έλεγχο θα χρησιµοποιήσουµε α ίδια δεδοµένα, ώσε να ελεγχθούν α αποελέσµαα. x Max θ i Παραηρήσεις 2 2 1 πριν αρχίσει η επανάληψη 4 4 2 2 όαν ο x=4 ο I=2-1 7 5 0 Νέσωρ Ιωαννίδης Σελίδα 4 από 5
Ο έλεγχος σαµαά γιαί παραηρούµε όι ενώ ο max παίρνει ην ιµή 2 ο θ δεν παίρνει ην ιµή 1, όπως έπρεπε αλλά πρώη ιµή ου είναι ο 2. Αυό συµβαίνει γιαί δεν παίρνει αρχική ιµή (εκός επανάληψης). εποµένως ο αλγόριθµος διορθώνεαι και γίνεαι: Εµφάνισε max, θ Τώρα ο αλγόριθµος παρουσιάζει και ο χαρακηρισικό ης υποποίησης. ηλαδή οι µεαβληές max και θ παίρνουν µε ην ίδια ιµή, είε είναι αρχική ιµή είε αλλαγή λόγω επεξεργασίας. ο έλεγχος επαναλαµβάνεαι από ην αρχή. x Max θ i Παραηρήσεις 2 2 1 πριν αρχίσει η επανάληψη 4 4 2 2 όαν ο x=4 ο I=2-1 7 4 3 όαν ο x=7 ο I=4 7 4 5 5 0 6 Αυός ο έλεγχος ορισικοποιεί ον αλγόριθµο. Σαν ακραίες περιπώσεις µπορούµε να θεωρήσουµε ην ύπαρξη δύο ή περισσόερων "µεγίσων" σα δεδοµένα. Σε αυή ην περίπωση πρέπει να είναι σαφές αν ο αλγόριθµος δίνει σωσό αποέλεσµα και ποιου µέγισου δίνει ην θέση. Μια δοκιµή θα δώσει ις απανήσεις. Ιδιαίερη συζήηση πρέπει να γίνει για ην περίπωση ου πολλαπλού µέγισου. Άσκηση: Επειδή οι µέχρι σιγµής "γνώσεις" δεν επιρέπουν ην διαύπωση αλγόριθµου, για ην περίπωση ου πολλαπλού µέγισού, ζηείαι από ους φοιηές να διαυπώσουν ην λύση µε ην φρασική µέθοδο. Νέσωρ Ιωαννίδης Σελίδα 5 από 5