Πίλαθεο - Μεζνδνινγηθή πξνζέγγηζε Άζθεζε 1. Η εηαηξεία "Πξναζηηαθόο Σελενύπνιεο" πξνζέιαβε ηνλ γην ηνπ θνπ Αξβίινγινπ κε θύξηα απαζρόιεζε ζηηο πιεξνθνξίεο δξνκνινγίσλ. Έρεη ζηε δηάζεζή ηνπ πίλαθα ΣΑΘΜΟ[12], πνπ πεξηέρεη ηα νλόκαηα ησλ ηζάξηζκσλ ζηαζκώλ ηνπ ηξαίλνπ (πεξηέρνληαη θαη ν πξώηνο θαη ηειεπηαίνο ζηαζκόο). Επίζεο, ππάξρεη δηαζέζηκνο ν πίλαθαο ΚΟΣΟ[12, 12], όπνπ ην ζηνηρείν ΚΟΣΟ[i, j] πεξηέρεη ην θόζηνο ηνπ εηζηηεξίνπ γηα ηε δηαδξνκή ΣΑΘΜΟ[i] -> ΣΑΘΜΟ[j], ν πίλαθαο ΚΟΣΟ είλαη δειαδή παξάιιεινο θαη σο πξνο ηηο γξακκέο αιιά θαη σο πξνο ηηο ζηήιεο κε ηνλ πίλαθα ΣΑΘΜΟ. Είλαη επλόηεην πσο ε θύξηα δηαγώληνο ηνπ πίλαθα ΚΟΣΟ πεξηέρεη 0 θαζώο δελ γίλεηαη θάπνηνο λα ηαμηδέςεη ζην κέξνο πνπ ήδε βξίζθεηαη. Επίζεο, πξέπεη λα έρεη γίλεη αληηιεπηό όηη ν πίλαθαο ΚΟΣΟ είλαη ζπκκεηξηθόο σο πξνο ηελ θύξηα δηαγώλην. Να αλαπηύμεηε αιγόξηζκν όπνπ ζα δηαβάδεη ηα ζηνηρεία ησλ παξαπάλσ πηλάθσλ θαη ζηε ζπλέρεηα: ζα δηαβάδεη ην όλνκα ηνπ ζηαζκνύ αθεηεξίαο ελόο επηβάηε θαη ην όλνκα ηνπ ηεξκαηηθνύ ζηαζκνύ θαη ζα εθηππώλεη ην θόζηνο ηνπ ηαμηδηνύ. Ο αιγόξηζκνο ζα πξέπεη ζηε ζπλέρεηα λα δηαβάδεη αλ ν επηβάηεο επηζπκεί εηζηηήξην κεη' επηζηξνθήο θαη ζε πεξίπησζε θαηαθαηηθήο απάληεζεο λα εθηππώλεη ην ζπλνιηθό θόζηνο ηνπ εηζηηεξίνπ. Δίδεηαη πσο ζε πεξίπησζε πνπ εθδνζεί εηζηηήξην κεη' επηζηξνθήο ππάξρεη έθπησζε 20%. Λύζε Ο αιγόξηζκνο αξρηθά πξέπεη λα δηαβάδεη ηα ζηνηρεία ησλ δπν πηλάθσλ. Έλα ζθαξίθεκα ησλ πηλάθσλ παξνπζηάδεηαη ζην επόκελν ζρήκα:
ηε ζπλέρεηα πξέπεη λα δηαβάδεηαη ην όλνκα ελόο ζηαζκνύ αθεηεξίαο. Δίλαη εύθνια αληηιεπηό νηη πξέπεη λα αλαδεηεζεί ην όλνκα απηό ζηνλ πίλαθα ΣΑΘΜΟ ώζηε λα εληνπηζηεί ζε πνηα ζέζε είλαη (αλ βξεζεί), έζησ θέση_αυετ. ηε ζπλέρεηα πξέπεη λα δηαβαζηεί ην όλνκα ηνπ επηζπκεηνύ ηεξκαηηθνύ ζηαζκνύ θαη βέβαηα, πξέπεη λα αλαδεηεζεί θαη απηό ην όλνκα ζηνλ πίλαθα ΣΑΘΜΟ ώζηε λα εληνπηζηεί ζε πνηα ζέζε είλαη (αλ βξεζεί), έζησ θέση_προορ. Αλ ηα πξνεγνύκελα δπν βήκαηα ηεο δηαδηθαζίαο έρνπλ ζεηηθό απνηέιεζκα ηόηε ην θόζηνο ηνπ εηζηηεξίνπ είλαη ΚΟΣΟ[ζέζε_αθεη, ζέζε_πξννξ]. ηε ζπλέρεηα, πξέπεη λα δηαβαζηεί από ην ρξήζηε ε επηζπκία ηνπ γηα έθδνζε εηζηηεξίνπ κεη' επηζηξνθήο ή όρη. Γελ μεθαζαξίδεηαη ζηελ εθθώλεζε, ηη ηύπνπ κεηαβιεηή είλαη απηή θαη ηη ηηκέο κπνξεί λα ιάβεη. Μπνξνύκε ινηπόλ, λα θάλνπκε ηελ παξαδνρή, νηη απηή ε κεηαβιεηή είλαη αιθαξηζκεηηθή θαη κπνξεί λα ιάβεη δπν ηηκέο "Ναη" θαη "Όρη" - ζα πξαγκαηνπνηεζεί θαη έιεγρνο δεδνκέλσλ Ο αιγόξηζκνο ινηπόλ, ζα είλαη: Αιγόξηζκνο Πξναζηηαθόο_Σελενύπνιεο Γηα i από 1 κέρξη 12 Δηάβαζε ΣΑΘΜΟ[i] Γηα j από 1 κέρξη 12 Δηάβαζε ΚΟΣΟ[i, j]! δηάβαζε θαη εληόπηζε ην ζηαζκό αθεηεξίαο Δηάβαζε ηαζκόο_αθεηεξίαο βξέζεθε ςεπδήο ζέζε_αθεη 0 Όζν (βξέζεθε = ςεπδήο) θαη (i <= 12) επαλάιαβε
Αλ (ΣΑΘΜΟ[i] = ηαζκόο_αθεηεξίαο) ηόηε ζέζε_αθεη i! ηέινο ζεηξηαθήο αλαδήηεζεο Αλ (βξέζεθε = ςεπδήο) ηόηε Εθηύπσζε "Γόζεθε ιάζνο όλνκα ζηαζκνύ αθεηεξίαο"! εληνπίζηεθε ζηε ζέζε ζέζε_αθεη! δηάβαζε θαη εληόπηζε ην ζηαζκό πξννξηζκνύ Δηάβαζε ηαζκόο_ηεξκαηηζκνύ βξέζεθε ςεπδήο ζέζε_πξννξ 0 Όζν (βξέζεθε = ςεπδήο) θαη (i <= 12) επαλάιαβε Αλ (ΣΑΘΜΟ[i] = ηαζκόο_ηεξκαηηζκνύ) ηόηε ζέζε_πξννξ i! ηέινο ζεηξηαθήο αλαδήηεζεο Αλ (βξέζεθε = ςεπδήο) ηόηε Εθηύπσζε "Γόζεθε ιάζνο όλνκα ζηαζκνύ πξννξηζκνύ" _αλ (ζέζε_αθεη = ζέζε_πξννξ) ηόηε! θάπνην ιάζνο έγηλε... Εθηύπσζε "Δίζαη ήδε εθεί!!"! θαη ρσξίο απηήλ ηελ πεξίπησζε, ζα εθηππσζεί 0! εληνπίζηεθε ζηε ζέζε ζέζε_πξννξ Αξρή_επαλάιεςεο! εηζηηήξην κεη' επηζηξνθήο; Δηάβαζε απάληεζε Μέρξηο_όηνπ απάληεζε = "Ναη" ή απάληεζε = "Όρη" εηζηηήξην ΚΟΣΟ[ζέζε_αθεη, ζέζε_πξννξ] Αλ (απάληεζε = "Ναη") ηόηε! έθπησζε 20% εηζηηήξην 2 * εηζηηήξην! πήγαηλε - έια εηζηηήξην εηζηηήξην - εηζηηήξην * 20 / 100 Εθηύπσζε "Σν εηζηηήξην θνζηίδεη:", εηζηηήξην Σέινο Πξναζηηαθόο_Σελενύπνιεο Άζθεζε 2. ην Εληαίν Λύθεην Σελενύπνιεο πξαγκαηνπνηνύληαη νη καζεηηθέο εθινγέο γηα ηελ αλάδεημε ηνπ 15κεινύο καζεηηθνύ ζπκβνπιίνπ. Η δηαδηθαζία είλαη απιή: ηα κέιε ηεο εθνξεπηηθήο επηηξνπήο θαηαρσξνύλ όια ηα νλόκαηα πνπ έρνπλ ςεθηζηεί ζε έλαλ πίλαθα ΨΗΦΙΣΗΚΑΝ. Οη καζεηέο ηνπ ζρνιείνπ είλαη 250 θαη θάζε καζεηήο έρεη δηθαίσκα λα ςεθίζεη κέρξη 5 ππνςεθίνπο. Να αλαπηύμεηε αιγόξηζκν ν νπνίνο: α. Να δηαβάδεη επαλαιεπηηθά ηηο ςήθνπο θάζε καζεηή θαη λα θαηαρσξεί έλα-έλα ηα νλόκαηα ζηνλ πίλαθα ΨΗΦΙΣΗΚΑΝ. β. Η εθνξεπηηθή επηηξνπή έραζε ηελ θαηάζηαζε κε ηα νλόκαηα ησλ ππνςεθίσλ, επνκέλσο πξέπεη λα αλαπηπρζεί ην ηκήκα εληνιώλ πνπ ζα
δεκηνπξγεί ηνλ πίλαθα ΤΠΟΨΗΦΙΟ πνπ ζα πεξηέρεη όια ηα δηαθνξεηηθά νλόκαηα αηόκσλ πνπ έρνπλ ςεθηζηεί (ζεσξείηαη όηη όινη έρνπλ ιάβεη ηνπιάρηζηνλ κηα ςήθν - από ηνλ εαπηό ηνπ). γ. Να δεκηνπξγεί ηνλ πίλαθα ΚΑΣΑΜΕΣΡΗΗ (παξάιιειν ζηνλ πίλαθα ΤΠΟΨΗΦΙΟ) πνπ γηα θάζε ππνςήθην ηεο εθινγηθήο δηαδηθαζίαο ην πιήζνο ησλ ςήθσλ πνπ απηόο έιαβε. δ. Να δεκηνπξγεί θαη ηειηθά λα εθηππώλεη λέν πίλαθα ΜΕΛΗ_15 πνπ ζα πεξηέρεη ηα νλόκαηα ησλ 15 κειώλ ηνπ λένπ καζεηηθνύ ζπκβνπιίνπ. Πξνζνρή! Τπάξρεη ε πεξίπησζε λα ππάξρεη ηζνςεθία ζηηο ηειεπηαίεο ζέζεηο θαη επνκέλσο πξέπεη ν ληθεηήο λα επηιεγεί κε θιήξσζε, Άξα είλαη ππνρξέσζε ηνπ αιγνξίζκνπ λα εκθαλίδεη ηα νλόκαηα όζσλ -ελδερνκέλσοζα ζπκκεηάζρνπλ ζε απηή ηελ θιήξσζε, ηε ζπλέρεηα πξέπεη λα δηαβάδεη όζα νλόκαηα θιεξώζεθαλ θαη λα ζπκπιεξώλεη ηνλ πίλαθα ΜΕΛΗ_15. Λύζε α. Σν πξώην βήκα είλαη ε δεκηνπξγία ηνπ πίλαθα ΨΗΦΙΣΗΚΑΝ, ην κέγεζνο ηνπ νπνίνπ είλαη ην πνιύ 250*5=1250. Ωζηόζν, δελ είλαη ζίγνπξν όηη όινη νη καζεηέο ζα εμαληιήζνπλ ην δηθαίσκά ηνπο, έηζη ην κέγεζνο ηνπ πίλαθα κπνξεί λα είλαη κηθξόηεξν. Απαηηείηαη ε ρξήζε δπν δνκώλ επαλάιεςεο, θαζώο πξέπεη γηα θάζε έλαλ από ηνπο 250 καζεηέο λα δηαβαζηνύλ ην πνιύ 5 επηινγέο. Ο εμσηεξηθόο βξόρνο, ζα πινπνηεζεί κε ηε δνκή Γηα θαη γηα ηνλ εζσηεξηθό ε δνκή επαλάιεςεο Όζν (πξέπεη λα επηιεγεί έλα θξηηήξην γηα ηνλ ηεξκαηηζκό ζε πεξίπησζε πνπ δελ ππάξρνπλ 5 ςήθνη. Σν θξηηήξην απηό είλαη αλ δνζεί σο όλνκα ην θελό). Σν ηκήκα αιγνξίζκνπ πνπ επηιύεη ην εξώηεκα (α) είλαη ην εμήο: Ν 0 Γηα i από 1 κέρξη 250 πιήζνο 0 Όζν (όλνκα <> " ") θαη (πιήζνο < 5) επαλάιαβε! κέρξη 5 ςήθνπο ή ηειεπηαίν όλνκα ην θελό Ν Ν + 1 ΨΗΦΙΣΗΚΑΝ[Ν] όλνκα πιήζνο πιήζνο + 1 ην ηέινο ηεο δηαδηθαζίαο ε κεηαβιεηή Ν πεξηέρεη ην ζπλνιηθό πιήζνο ησλ νλνκάησλ πνπ ςεθίζηεθαλ, ην κέγεζνο δειαδή ηνπ νκώλπκνπ πίλαθα. β. Πξέπεη λα δεκηνπξγεζεί ν πίλαθαο ΤΠΟΨΗΦΙΟ, πνπ ζα πεξηέρεη νπζηαζηηθά ηα
ζηνηρεία ηνπ πίλαθα ΨΗΦΙΣΗΚΑΝ πνπ είλαη κνλαδηθά... Πξέπεη γηα θάζε έλα ζηνηρείν ηνπ πίλαθα ΨΗΦΙΣΗΚΑΝ, λα αλαδεηείηαη ζηνλ πίλαθα ΤΠΟΨΗΦΙΟ θαη αλ δελ εληνπηζηεί λα πεξλάεη, αιιηώο λα ζπλερίδεηαη ε δηαδηθαζία κε ην επόκελν όλνκα. Άξα, ν ζθειεηόο ηνπ αιγνξίζκνπ κε ελεύθερο κείμενο ζα είλαη: Πέξαζε ην πξώην ζηνηρείν ηνπ πίλαθα ΤΠΟΨΗΦΙΟ Γηα k από 2 κέρξη Ν! ζα εμεηάζνπκε ηα ππόινηπα Ψάμε αλ ην ζηνηρείν ΨΗΦΙΣΗΚΑΝ[k], ππάξρεη ήδε ζηνλ πίλαθα ΤΠΟΨΗΦΙΟ! ζεηξηαθή αλαδήηεζε Αλ (δελ βξέζεθε πξνεγνπκέλσο) ηόηε Πέξαζε ην ζηνηρείν k ηνπ πίλαθα ΨΗΦΙΣΗΚΑΝ ζηνλ πίλαθα ΤΠΟΨΗΦΙΟ Άξα, το τμήμα αλγορίθμου ζα είλαη: ΤΠΟΨΗΦΙΟ[1] ΨΗΦΙΣΗΚΑΝ[1]! πεξλάκε ην πξώην όλνκα ππνς 1 Γηα k από 2 κέρξη Ν! ζα εμεηάζνπκε ηα ππόινηπα βξέζεθε ςεπδήο Όζν (βξέζεθε = ςεπδήο) θαη (i <= ππνς) επαλάιαβε! έρεη εμεηαζηεί κέρξη ηε ζέζε ππνς, όζα ζηνηρεία ππάξρνπλ Αλ (ΤΠΟΨΗΦΙΟ[i] = ΨΗΦΙΣΗΚΑΝ[k]) ηόηε! ηέινο ζεηξηαθήο αλαδήηεζεο Αλ (βξέζεθε = ςεπδήο) ηόηε! αλ δελ ππάξρεη ήδε ζηνλ πίλαθα, λα ην βάινπκε ππνς ππνς + 1 ΤΠΟΨΗΦΙΟ[ππνς] ΨΗΦΙΣΗΚΑΝ[k]! πεξλάκε ην επόκελν όλνκα γ. ύκθσλα κε ην πξνεγνύκελν εξώηεκα, ην πιήζνο ησλ ππνςεθίσλ πεξηέρεηαη ζηελ κεηαβιεηή υποψ. Απηό είλαη θαη ην κέγεζνο ηνπ λένπ πίλαθα ΚΑΣΑΜΔΣΡΗΗ πνπ ζα πεξηέρεη ην πιήζνο ησλ ςήθσλ θάζε ππνςεθίνπ, πξόθεηηαη γηα πίλαθα κεηξεηή. Γηα λα δεκηνπξγεζεί ν πίλαθαο απηόο πξέπεη λα ρξεζηκνπνηεζεί παξόκνηα ινγηθή κε απηή ηνπ πξνεγνύκελνπ εξσηήκαηνο. Θα εμεηάζνπκε έλα-έλα ηα ζηνηρεία θαη ζα θξαηήζνπκε από ηελ αλαδήηεζε ηε ζέζε, απμάλνλνληαο ηνλ αληίζηνηρν κεηξεηή. Ο ζθειεηόο ηνπ αιγνξίζκνπ κε ελεύθερο κείμενο ζα είλαη: αξρηθνπνίεζε ηνπο κεηξεηέο Γηα k από 1 κέρξη Ν! ζα εμεηάζνπκε έλα-έλα όια ηα ζηνηρεία Βξεο ην ζηνηρείν ΨΗΦΙΣΗΚΑΝ[k], ζε πνηα ζέζε ππάξρεη ζηνλ πίλαθα ΤΠΟΨΗΦΙΟ! ζεηξηαθή αλαδήηεζε αύμεζε ηνλ αληίζηνηρν κεηξεηή (ζίγνπξα ζα έρεη βξεζεί)
Άξα, το τμήμα αλγορίθμου ζα είλαη: Γηα k από 1 κέρξη Ν ΚΑΣΑΜΔΣΡΗΗ[k] 0! θαηακέηξεζε Γηα k από 1 κέρξη Ν βξέζεθε ςεπδήο ζέζε 0 Όζν (βξέζεθε = ςεπδήο) θαη (i <= ππνς) επαλάιαβε! ζίγνπξα ζα βξεζεί Αλ (ΤΠΟΨΗΦΙΟ[i] = ΨΗΦΙΣΗΚΑΝ[k]) ηόηε ζέζε i! ηέινο ζεηξηαθήο αλαδήηεζεο ΚΑΣΑΜΔΣΡΗΗ[ζέζε] ΚΑΣΑΜΔΣΡΗΗ[ζέζε] + 1 Σα εξσηήκαηα β θαη γ κπνξνύζαλ λα ζπγρσλεπηνύλ. ΠΩ? Δείηε ηελ νινθιεξσκέλε άζθεζε ζην ηέινο ηεο ζειίδαο... δ. Γηα ηελ επηινγή ησλ κειώλ ηνπ 15κεινύο πξέπεη αξρηθά λα ηαμηλνκεζεί ν πίλαθαο ΚΑΣΑΜΔΣΡΗΗ (κε θζίλνπζα δηάηαμε) κε ηαπηόρξνλε αληηκεηάζεζε ηνπ πίλαθα ΤΠΟΨΗΦΙΟ ώζηε λα παξακείλνπλ παξάιιεινη Γηα i από 2 κέρξη ππνς! ηαμηλόκεζε ηνπ πίλαθα ΚΑΣΑΜΕΣΡΗΗ Γηα j από ππνς κέρξη i κε_βήκα 1 Αλ ΚΑΣΑΜΔΣΡΗΗ[j-1] < ΚΑΣΑΜΔΣΡΗΗ[j] ηόηε! θζίλνπζα ηαμηλόκεζε βνεζεηηθή1 ΚΑΣΑΜΔΣΡΗΗ[j-1]! βνεζεηηθή, αιθαξηζκεηηθνύ ηύπνπ ΚΑΣΑΜΔΣΡΗΗ[j-1] ΚΑΣΑΜΔΣΡΗΗ[j] ΚΑΣΑΜΔΣΡΗΗ[j] βνεζεηηθή1! αληίζηνηρε αληηκεηάζεζε ησλ ζηνηρείσλ ηνπ πίλαθα ΤΠΟΨΗΦΙΟ, ώζηε λα παξακείλνπλ νη πίλαθεο παξάιιεινη βνεζεηηθή2 ΤΠΟΨΗΦΙΟ[j-1]! βνεζεηηθή1, αξηζκεηηθνύ ηύπνπ ΤΠΟΨΗΦΙΟ[j-1] ΤΠΟΨΗΦΙΟ[j] ΤΠΟΨΗΦΙΟ[j] βνεζεηηθή2 Απνκέλεη ε δεκηνπξγία ηνπ πίλαθα ΜΔΛΗ_15 πνπ ζα πεξηέρεη ηα νλόκαηα ησλ 15 κειώλ ηνπ λένπ καζεηηθνύ ζπκβνπιίνπ. Πξέπεη λα δνζεί πξνζνρή ζην όηη ππάξρεη πάληα ην ελδερόκελν ηζνςεθίαο. Δπνκέλσο, πξέπεη λα βξεζεί αν υπάρχουν θαη πόσοι ζηηο ηειεπηαίεο ζέζεηο. Η ινγηθή πνπ ζα αθνινπζήζνπκε είλαη απιή: ζα κειεηήζνπκε πόζνη ππνςήθηνη έρνπλ ίδην βαζκό κε απηόλ πνπ ππάξρεη ζηελ 15 ζέζε (ζε πξνεγνύκελεο θαη επόκελεο ζέζεηο). Θα πεξάζνπκε πξώηα ηα νλόκαηα
ησλ εθιεγέλησλ πξηλ από απηόλ. ηε ζπλέρεηα, ζα πξέπεη λα δηαβαζηνύλ ηα νλόκαηα πνπ θιεξώζεθαλ ώζηε λα ζπκπιεξσζεί ε 15άδα. Θα δεκηνπξγήζνπκε λέν πίλαθα πνπ ζα πεξηέρεη ηα νλόκαηα όζσλ ππνςεθίσλ έρνπλ βαζκνινγία, ίζε κε απηή ηνπ 15νπ ζηελ θαηάηαμε, όπσο επίζεο θαη λένπ πίλαθα πνπ ζα πεξηέρεη ηα ζηνηρεία όζσλ ππνςεθίσλ έρνπλ ζίγνπξα εθιεγεί (έρνπλ πεξηζζόηεξεο ςήθνπο απόεο απηέο ηνπ 15 ζηελ θαηάηαμε). κέιε 0 θιήξ 0 δηαθνπή ςεπδήο Όζν (δηαθνπή = ςεπδήο) θαη (i <= ππνς) επαλάιαβε Αλ (ΚΑΣΑΜΔΣΡΗΗ[i] > ΚΑΣΑΜΔΣΡΗΗ[15]) ηόηε! αλ έρεη πεξηζζόηεξεο ςήθνπο, εθιέγεηαη κέιε κέιε + 1 ΜΔΛΗ_15[[ηειεπη] ΤΠΟΨΗΦΙΟ[i] _αλ (ΚΑΣΑΜΔΣΡΗΗ[i] = ΚΑΣΑΜΔΣΡΗΗ[15]) ηόηε! πίλαθαο γηα θιήξσζε θιήξ θιήξ + 1 ΓΙΑ_ΚΛΗΡΩΗ[θιήξ] ΤΠΟΨΗΦΙΟ[i]! κε ιηγόηεξεο ςήθνπο, ζηακάηα ηελ επαλάιεςε δηαθνπή ςεπδήο Πξέπεη λα γίλεη θιήξσζε γηα λα θαιπθζνύλ νη ηειεπηαίεο ζέζεηο (έρνπλ απνκείλεη 15 - κέιε). Έηζη, δεηείηαη από ην ρξήζηε λα δώζεη ηα νλόκαηα όζσλ απνκέλνπλ... Θα γίλεη έιεγρνο δεδνκέλσλ ώζηε ηα νλόκαηα πνπ ζα δηαβαζηνύλ λα αλήθνπλ ζηνλ πίλαθα ΓΙΑ_ΚΛΗΡΩΗ, ώζηε ζε δηαθνξεηηθή πεξίπησζε λα επαλαιακβάλεηαη ε είζνδνο. Αλ δνζεί έλα έγθπξν όλνκα, πεξλάεη ζηνλ πίλαθα ΜΔΛΗ_15 θαη "θεύγεη" από ηνλ πίλαθα ΓΙΑ_ΚΛΗΡΩΗ, ώζηε λα κελ δνζεί μαλά Αλ (θιήξ = 1) ηόηε! δελ ππήξμαλ ηζνβαζκίεο κέιε κέιε + 1 ΜΔΛΗ_15[[15] ΓΙΑ_ΚΛΗΡΩΗ[1]! ζα κπνξνύζε θαη ΤΠΟΨΗΦΙΟΙ[15] Εθηύπσζε 15 - κέιε Γηα i από 1 κέρξη θιήξ! πνηνη ζα θιεξσζνύλ Εθηύπσζε ΓΙΑ_ΚΛΗΡΩΗ[i] Γηα k από κέιε+1 κέρξη 15! λα ζπκπιεξσζνύλ νη ππόινηπνη Αξρή_επαλάιεςεο Αξρή_επαλάιεςεο Μέρξηο_όηνπ όλνκα <> " " βξέζεθε ςεπδήο! ππάξρεη ην όλνκα; ζεηξηαθή αλαδήηεζε ζέζε 0
Όζν (βξέζεθε = ςεπδήο) θαη (i <= θιήξ) επαλάιαβε! ζίγνπξα ζα βξεζεί Αλ (ΓΙΑ_ΚΛΗΡΩΗ[i] = όλνκα) ηόηε ζέζε i! ηέινο ζεηξηαθήο αλαδήηεζεο Μέρξηο_όηνπ βξέζεθε = αιεζήο ΜΔΛΗ_15[k] ΓΙΑ_ΚΛΗΡΩΗ[ζέζε]! ζα κπνξνύζε λα είλαη θαη "όλνκα" ΓΙΑ_ΚΛΗΡΩΗ[ζέζε] " "! θεύγεη ην όλνκα από ηνλ πίλαθα Σέινο, ζα εθηππώζνπκε ηα ζηνηρεία ηνπ πίλαθα ΜΔΛΗ_15 Γηα i από 1 κέρξη 15 Εθηύπσζε ΜΔΛΗ_15[i] Οιόθιεξνο ν αιγόξηζκνο Αιγόξηζκνο Δθινγέο_ΔΛ_Σελενύπνιεο Ν 0! εξώηεκα (α) Γηα i από 1 κέρξη 250 πιήζνο 0 Όζν (όλνκα <> " ") θαη (πιήζνο < 5) επαλάιαβε! κέρξη 5 ςήθνπο ή ηειεπηαίν όλνκα ην θελό Ν Ν + 1 ΨΗΦΙΣΗΚΑΝ[Ν] όλνκα πιήζνο πιήζνο + 1! αθνινπζεί ε ιύζε ζηα εξσηήκαηα (β) θαη (γ) ππνς 0 Γηα k από 1 κέρξη Ν βξέζεθε ςεπδήο ζέζε 0 Όζν (βξέζεθε = ςεπδήο) θαη (i <= k) επαλάιαβε! έρεη εμεηαζηεί κέρξη ηε ζέζε k Αλ (ΤΠΟΨΗΦΙΟ[i] = ΨΗΦΙΣΗΚΑΝ[k]) ηόηε ζέζε i! ηέινο ζεηξηαθήο αλαδήηεζεο Αλ (βξέζεθε = ςεπδήο) ηόηε! αλ δελ ππάξρεη ήδε ζηνλ πίλαθα, λα ην
βάινπκε ππνς ππνς + 1 ΤΠΟΨΗΦΙΟ[ππνς] ΨΗΦΙΣΗΚΑΝ[k]! πεξλάκε ην επόκελν όλνκα! αλ ππάξρεη ζηνλ πίλαθα ΚΑΣΑΜΔΣΡΗΗ[ζέζε] ΚΑΣΑΜΔΣΡΗΗ[ζέζε] + 1! δώζε ηνπ κηα ςήθν, κε αύμεζε ηνπ αληίζηνηρνπ κεηξεηή! αθνινπζεί ε ιύζε ζην εξώηεκα (δ) Γηα i από 2 κέρξη ππνς! ηαμηλόκεζε ηνπ πίλαθα ΚΑΣΑΜΕΣΡΗΗ Γηα j από ππνς κέρξη i κε_βήκα 1 Αλ ΚΑΣΑΜΔΣΡΗΗ[j-1] < ΚΑΣΑΜΔΣΡΗΗ[j] ηόηε! θζίλνπζα ηαμηλόκεζε βνεζεηηθή1 ΚΑΣΑΜΔΣΡΗΗ[j-1]! βνεζεηηθή, αιθαξηζκεηηθνύ ηύπνπ ΚΑΣΑΜΔΣΡΗΗ[j-1] ΚΑΣΑΜΔΣΡΗΗ[j] ΚΑΣΑΜΔΣΡΗΗ[j] βνεζεηηθή1! αληίζηνηρε αληηκεηάζεζε ησλ ζηνηρείσλ ηνπ πίλαθα ΤΠΟΨΗΦΙΟ, ώζηε λα παξακείλνπλ νη πίλαθεο παξάιιεινη βνεζεηηθή2 ΤΠΟΨΗΦΙΟ[j-1]! βνεζεηηθή1, αξηζκεηηθνύ ηύπνπ ΤΠΟΨΗΦΙΟ[j-1] ΤΠΟΨΗΦΙΟ[j] ΤΠΟΨΗΦΙΟ[j] βνεζεηηθή2 κέιε 0 θιήξ 0 δηαθνπή ςεπδήο Όζν (δηαθνπή = ςεπδήο) θαη (i <= ππνς) επαλάιαβε Αλ (ΚΑΣΑΜΔΣΡΗΗ[i] > ΚΑΣΑΜΔΣΡΗΗ[15]) ηόηε! αλ έρεη πεξηζζόηεξεο ςήθνπο, εθιέγεηαη κέιε κέιε + 1 ΜΔΛΗ_15[[ηειεπη] ΤΠΟΨΗΦΙΟ[i] _αλ (ΚΑΣΑΜΔΣΡΗΗ[i] = ΚΑΣΑΜΔΣΡΗΗ[15]) ηόηε! πίλαθαο γηα θιήξσζε θιήξ θιήξ + 1 ΓΙΑ_ΚΛΗΡΩΗ[θιήξ] ΤΠΟΨΗΦΙΟ[i]! κε ιηγόηεξεο ςήθνπο, ζηακάηα ηελ επαλάιεςε δηαθνπή ςεπδήο Αλ (θιήξ = 1) ηόηε! δελ ππήξμαλ ηζνβαζκίεο κέιε κέιε + 1 ΜΔΛΗ_15[[15] ΓΙΑ_ΚΛΗΡΩΗ[1]! ζα κπνξνύζε θαη ΤΠΟΨΗΦΙΟΙ[15] Εθηύπσζε 15 - κέιε Γηα i από 1 κέρξη θιήξ! πνηνη ζα θιεξσζνύλ Εθηύπσζε ΓΙΑ_ΚΛΗΡΩΗ[i] Γηα k από κέιε+1 κέρξη 15! λα ζπκπιεξσζνύλ νη ππόινηπνη Αξρή_επαλάιεςεο Αξρή_επαλάιεςεο Μέρξηο_όηνπ όλνκα <> " " βξέζεθε ςεπδήο! ππάξρεη ην όλνκα; ζεηξηαθή αλαδήηεζε
ζέζε 0 Όζν (βξέζεθε = ςεπδήο) θαη (i <= θιήξ) επαλάιαβε Αλ (ΓΙΑ_ΚΛΗΡΩΗ[i] = όλνκα) ηόηε ζέζε i! ηέινο ζεηξηαθήο αλαδήηεζεο Μέρξηο_όηνπ βξέζεθε = αιεζήο ΜΔΛΗ_15[k] ΓΙΑ_ΚΛΗΡΩΗ[ζέζε]! ζα κπνξνύζε λα είλαη θαη "όλνκα" ΓΙΑ_ΚΛΗΡΩΗ[ζέζε] " "! θεύγεη ην όλνκα από ηνλ πίλαθα Γηα i από 1 κέρξη 15 Εθηύπσζε ΜΔΛΗ_15[i] Σέινο Δθινγέο_ΔΛ_Σελενύπνιεο