vasilis008
Νεοφερμένος
Στον Β' Παγκοσμιο Πόλεμο οι Γερμανοί θα σκοτώσουν όλους τους κατοίκους ενός χωριού πλην ενός. Μαζεύουν τους Ν κατοίκους του χωριού στην πλατεία τους βάζουν σε μια ευθεία και ακολουθούν την εξής διαδικασία :
αρχίζουν απο την αρχή και περνάνε τον 1ο κατοικο σκοτωνουν τον 2ο αφήνουν τον 3ο σκοτώνουν τον 4ο κ.ο.κ. Όταν φτάσουν στο τέλος της ευθείας ξανααρχίζουν από την αρχή με την λογική ότι αν ο τελευταίος κάτοικος της ευθείας την γλίτωσε τότε σκοτώνουν τον πρώτο κάτοικο της ευθειας αλλιως σκοτώνουν τον δεύτερο. Η διαδικασία επαναλαμβάνεται μέχρι να μείνει ένας μόνο επιζώντας.
Π.χ. αν υπάρχουν 9 κάτοικοι στην σειρά σκοτώνονται αυτοί στις θέσεις 2,4,6,8 μετα σκοτώνεται ο 1 καθώς ο 9 επέζησε . Τώρα έχουν επιζήσει οι 3,5,7,9. Σκοτώνονται οι 5,9 και τελικα ο 7. Ζει ο 3
Να γράψεται αλγοριθμο που να δεχεται το πληθος των κατοίκων Ν (θεωρειστε Ν>1) και να εμφανιζει την αρχική θέση αυτού που θα επιζήσει. Π.χ στο προηγουμενο παράδειγμα Ν=9 και έξοδος=3. Ευχαριστώ!
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
mostel
Πολύ δραστήριο μέλος
Στέλιος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
marsenis
Νεοφερμένος
"Ν άνθρωποι βρίσκονται ο ένας δίπλα στον άλλον ετσι ώστε να σχηματίζουν κύκλο. Αρχικά ο πρώτος έχει ένα όπλο με το οποίο σκοτώνει τον 2ο και δίνει το όπλο στον 3ο. Έπειτα ο 3ος σκοτώνει τον 4ο και δίνει το όπλο στον 5ο κ.ο.κ. Γενικά όποιος έχει το όπλο σκοτώνει τον επόμενο και δίνει το όπλο στον μεθεπόμενο. Η διαδικασία αυτή συνεχίζετε κυκλικά μέχρι να μείνει μόνο ένας άνθρωπος ζωντανός. Σε ποιά θέση θα βρίσκεται ο άνθρωπος που παραμένει ζωντανός;"
Ονομάστικε "Josephus Problem" προς τιμήν του Flavius Josephus(Εβραίος ιστορικός του 1ου αιώνα). Όπως λέει ο θρύλος, αυτός και άλλοι 40 άνθρωποι παγιδεύτηκαν σε μία σπηλιά περικυκλωμένη απο τους Ρωμαίους. Προτιμώντας όμως να αυτοκτονήσουν απο το να παραδοθούν στους ρωμαίους, αποφάσισαν να κάνουν ένα κύκλο και να πεθάνουν με τον τρόπο που περιέγραψα παραπάνω. Ο Josephus όμως δεν ήθελε να πεθάνει και έτσι υπολόγισε την θέση που πρέπει να βρίσκεται ετσι ώστε να παραμείνει ζωντανός.
Έχω σκεφτεί ένα μικρό και γρήγορο αλγόριθμο αλλα θα τον δημοσιεύσω αργότερα για να αφήσω και άλλους να το σκεφτούν.
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vasilis008
Νεοφερμένος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vasilis008
Νεοφερμένος
k <-- 2 ! η τρεχουσα θεση στον πινακα Α των κατοικων
flag <-- ΨΕΥΔΗΣ ! σημαια που μας δειχνει αν διαγραψαμε κατοικο
p <-- 1 !περιεχει την θεση του επιζων
Διαβασε Ν
j <-- Ν ! αντιστροφος μετρητης (λεει ποτε εμεινε 1 κατοικος) Για i απο 1 μεχρι Ν
Α <-- i ! γεμιζουμε τον πινακα των κατοικων
Τελος_επαναληψης
Οσο j>1 επαναλαβε
Αν Α[k]=0 τοτε ! αν διαγραψαμε τον κατοικο
k<-- k+1 ! τοτε προχωρησε στον επομενο
αλλιως_αν flag=ΨΕΥΔΗΣ τοτε !αν οχι και δεν εχει προηγηθει διαγραφη
Α[k] <-- 0 !διεγραψε τον
flag <-- ΑΛΗΘΗΣ ! αλλαξε την flag γιατι εγινε διαγραφη
j <-- j-1 !μειωσε τους ζωντανους κατοικους κατα 1
k <-- k+1 !προχωρησε στον επομενο
αλλιως_αν flag=ΑΛΗΘΗΣ τοτε !αν εχει προηγηθει διαγραφη
p <-- Α[k] !κρατα τον στην μνημη προσωρινα σαν επιζωντα
flag <-- ΨΕΥΔΗΣ !αλλαξε την flag γιατι δεν προηγηθηκε διαγραφη
k <-- k+1 !προχωρησε στον επομενο
τελος_αν
Αν k>Ν τοτε !καθε φορα που τελειωνει η ευθεια
k <-- 1 !ξανααρχιζε απο την αρχη
τελος_αν
τελος_επαναληψης
Εμφανισε p !τελευταιος επιζων
Τελος ΧΙΤΛΕΡ
-----------------------------------------
Μια λύση είναι αυτή. Αν έχετε να προτείνεται κάτι άλλο ευχαρίστως!
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
m3Lt3D
Πολύ δραστήριο μέλος
[FONT="] [/FONT]Μια μέθοδος παραδειγματισμού που χρησιμοποιούσαν πολλές φορές οι Ρωμαίοι για να αποθαρρύνουν τυχόν στασιαστές στο στράτευμα τους ήταν η εξής: Από τους στασιαστές διάλεγαν 1000 άνδρες που τους τοποθετούσαν σε μία γραμμή. Κατόπιν άρχιζαν να τους εκτελούν ανά δύο. Δηλαδή την πρώτη φορά εκτελούσαν το δεύτερο, τον τέταρτο κλπ. Εάν ο τελευταίος της σειράς επιζούσε, τοποθετούνταν πρώτος στην ευθεία για την επόμενη εκτέλεση. Με τον τρόπο αυτό, τελικά επιζούσε μόνο ένας, ο οποίος αφήνονταν ελεύθερος ώστε να κάνει γνωστή την ιστορία στο υπόλοιπο στράτευμα. Να υλοποιήσετε πρόγραμμα που θα υπολογίζει τη θέση στην αρχική ευθεία των 1000 ατόμων, που θα εξασφαλίζει τη σωτηρία!
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
tsaklam
Νεοφερμένος
Αφήστε τα τώρα αυτά και στρωθείτε στην επανάληψη! Έφτασε γαρ η ώρα…
Χωρίς άγχος και υπερβολές. Η εμπειρία δείχνει ότι όλοι γράφουν αυτό για το οποίο έχουν προετοιμαστεί.
Καλή επιτυχία σε όλους. …και μην ξεχνάτε ότι η ζωή δεν τελειώνει στις Πανελλήνιες αλλά μόλις αρχίζει
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
zenctheo
Νεοφερμένος
Με παίδεψε από χθες που το διάβασα. Ήθελα να φτιάξω ένα πρόγραμμα που να μην χρησιμοποιεί πίνακες ώστε να μην έχω πρόβλημα στο μέγιστο πλήθος των ατόμων.
Το παραθέτω.
ΠΡΟΓΡΑΜΜΑ JOSEPHUS
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν, ΝΕΚΡΟΙ, Β, Π, Ι, ΠΡΩΤΟΣ, ΑΡΧ, ΤΕΛΟΣ, ΤΕΣΤ
ΛΟΓΙΚΕΣ: ΛΑΣΤ
ΑΡΧΗ
ΓΡΑΨΕ 'ΔΩΣΤΕ ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΙΧΜΑΛΩΤΩΝ'
ΔΙΑΒΑΣΕ Ν
ΝΕΚΡΟΙ <- 0
Β <- 2
Π <- 1 !ΠΕΡΑΣΜΑ
ΓΡΑΨΕ Π, ' ΠΕΡΑΣΜΑ.θΑ ΠΕΘΑΝΟΥΝ ΟΙ'
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν ΜΕ ΒΗΜΑ Β
ΓΡΑΨΕ Ι
ΝΕΚΡΟΙ <- ΝΕΚΡΟΙ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π <- Π + 1
ΑΝ Ν MOD 2 = 0 ΤΟΤΕ
ΛΑΣΤ <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΛΑΣΤ <- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΠΡΩΤΟΣ <- 1
ΤΕΛΟΣ <- Ν
ΟΣΟ ΝΕΚΡΟΙ < Ν - 1 ΕΠΑΝΑΛΑΒΕ
ΑΝ ΛΑΣΤ = ΑΛΗΘΗΣ ΤΟΤΕ
ΑΡΧ <- ΠΡΩΤΟΣ + Β
ΤΕΛΟΣ <- ΤΕΛΟΣ - (Β DIV 2)
ΑΛΛΙΩΣ
ΑΡΧ <- ΠΡΩΤΟΣ
ΠΡΩΤΟΣ <- ΠΡΩΤΟΣ + Β
ΤΕΛΟΣ_ΑΝ
Β <- Β*2
ΓΡΑΨΕ Π, ' ΠΕΡΑΣΜΑ.θΑ ΠΕΘΑΝΟΥΝ ΟΙ'
ΓΙΑ Ι ΑΠΟ ΑΡΧ ΜΕΧΡΙ ΤΕΛΟΣ ΜΕ ΒΗΜΑ Β
ΓΡΑΨΕ Ι
ΝΕΚΡΟΙ <- ΝΕΚΡΟΙ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π <- Π + 1
ΤΕΣΤ <- Ι - Β
ΑΝ ΤΕΣΤ = ΤΕΛΟΣ ΤΟΤΕ
ΛΑΣΤ <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΛΑΣΤ <- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΠΑΡΑΜΕΝΕΙ Ο ', ΠΡΩΤΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
odyracer18
Νεοφερμένος
Να και η δικιά μου λύση σε ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ Κύριο
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ:Α[24],Λέξη_Γράμματα[15],απαντ
ΑΚΕΡΑΙΕΣ:ι,j,Λ,ν,Αρχική[15],Κλειδί[15],Τελική[15]
ΛΟΓΙΚΕΣ: done
ΑΡΧΗ
Α[1] <-- 'Α'
Α[2] <-- 'Β'
Α[3] <-- 'Γ'
Α[4] <-- 'Δ'
Α[5] <-- 'Ε'
Α[6] <-- 'Ζ'
Α[7] <-- 'Η'
Α[8] <-- 'Θ'
Α[9] <-- 'Ι'
Α[10] <-- 'Κ'
Α[11] <-- 'Λ'
Α[12] <-- 'Μ'
Α[13] <-- 'Ν'
Α[14] <-- 'Ξ'
Α[15] <-- 'Ο'
Α[16] <-- 'Π'
Α[17] <-- 'Ρ'
Α[18] <-- 'Σ'
Α[19] <-- 'Τ'
Α[20] <-- 'Υ'
Α[21] <-- 'Φ'
Α[22] <-- 'Χ'
Α[23] <-- 'Ψ'
Α[24] <-- 'Ω'
!Αρχική λέξη
ΓΡΑΨΕ'Δώσε αριθμό γραμμάτων αρχικής λέξης(Μέγιστο 15 γράμματα)'
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ Λ
ΜΕΧΡΙΣ_ΟΤΟΥ Λ<=15
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Λ
ΓΡΑΨΕ'Δώσε ',ι,'γράμμα'
ΔΙΑΒΑΣΕ Λέξη_Γράμματα[ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Λ
j <-- 1
done <-- ΨΕΥΔΗΣ
ΟΣΟ j<=24 ΚΑΙ done= ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ Λέξη_Γράμματα[ι]=Α[j] ΤΟΤΕ
Αρχική[ι] <-- j
done <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
j <-- j+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Λέξη κλειδί
ΓΡΑΨΕ 'Δώσε αριθμό γραμμάτων λέξης κλειδί(Μέγιστο 15 γράμματα)'
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ν
ΜΕΧΡΙΣ_ΟΤΟΥ ν<=15
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ ν
ΓΡΑΨΕ'Δώσε ',ι,'γράμμα'
ΔΙΑΒΑΣΕ Λέξη_Γράμματα[ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ ν
j <-- 1
done <-- ΨΕΥΔΗΣ
ΟΣΟ j<=24 ΚΑΙ done= ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ Λέξη_Γράμματα[ι]=Α[j] ΤΟΤΕ
Κλειδί[ι] <-- j
done <-- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
j <-- j+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Επιλογή διαδικασίας
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Δώσε "Κ" Για κρυπτογράφηση ή "Α" για αποκρυπτογράφηση'
ΔΙΑΒΑΣΕ απαντ
ΜΕΧΡΙΣ_ΟΤΟΥ απαντ='Α' Ή απαντ='Κ'
ΑΝ απαντ='Κ' ΤΟΤΕ
ΚΑΛΕΣΕ κρυπτογράφηση(Αρχική,Κλειδί,Τελική,Λ,ν)
ΑΛΛΙΩΣ
ΚΑΛΕΣΕ αποκρυπτογράφηση(Αρχική,Κλειδί,Τελική,Λ,ν)
ΤΕΛΟΣ_ΑΝ
!Εμφάνιση αποτελέσματος
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Λ
ΓΡΑΨΕ_ Α[Τελική[ι]]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ κρυπτογράφηση(Α,Β,Γ,χ,ψ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α[15],Β[15],Γ[15],χ,ψ,ι,j
ΑΡΧΗ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ χ
ΑΝ ι<=ψ ΤΟΤΕ
j <-- ι
ΑΛΛΙΩΣ
j <-- ι MOD ψ
ΤΕΛΟΣ_ΑΝ
ΑΝ (Α[ι]+Β[j])<=24 ΤΟΤΕ
Γ[ι] <-- (Α[ι]+Β[j])
ΑΛΛΙΩΣ
Γ[ι] <-- (Α[ι]+Β[j]) MOD 24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΔΙΑΔΙΚΑΣΙΑ αποκρυπτογράφηση(Α,Β,Γ,χ,ψ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α[15],Β[15],Γ[15],χ,ψ,ι,j
ΑΡΧΗ
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ χ
ΑΝ ι<=ψ ΤΟΤΕ
j <-- ι
ΑΛΛΙΩΣ
j <-- ι MOD ψ
ΤΕΛΟΣ_ΑΝ
ΑΝ Α[ι]-Β[j]<=0 ΤΟΤΕ
Γ[ι] <-- Α[ι]-Β[j]+24
ΑΛΛΙΩΣ
Γ[ι] <-- Α[ι]-Β[j]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
capito666
Νεοφερμένος
ΓΙΑΤΙ ΤΟ ΘΕΩΡΗΣΑ ΠΙΟ ΕΥΚΟΛΟ ΤΡΟΠΟ...:no1:
----------------------------------
ΠΡΟΓΡΑΜΜΑ_JOSEPHUS
ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Ν, i, KAT[N], ΖΩΝΤΑΝΟΙ
ΛΟΓΙΚΕΣ : Π[Ν]
ΑΡΧΗ
// ΓΕΜΙΖΩ ΕΝΑΝ ΠΙΝΑΚΑ ΜΕ ΤΩΝ ΑΡΙΘΜΟ ΤΩΝ ΚΑΤΟΙΚΩΝ ΚΑΙ ΣΕ
ΕΝΑΝ ΑΛΛΟ ΚΡΑΤΑΩ ΑΛΗΘΗΣ ΓΙΑ ΖΩΝΤΑΝΟΣ ΚΑΙ ΨΕΥΔΗΣ ΓΙΑ ΝΕΚΡΟΣ //
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
Π<-- ΑΛΗΘΗΣ
Τ_Ε
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
ΚΑΤ<-- i
T_E
ΟΣΟ Ν<>1 ΕΠΑΝΕΛΑΒΕ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν ΜΕ ΒΗΜΑ 2
Π[i+1]<-- Ψ
Τ_Ε
ΑΝ Π[Ν]=ΑΛΗΘΗΣ ΤΟΤΕ
Π<-- ψ
ΤΕΛΟΣ_ΑΝ
ΖΩΝΤΑΝΟΙ<-- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
ΑΝ Π=A TOTE
ΖΩΝΤΑΝΟΙ<-- ΖΩΝΤΑΝΟΙ+1
KAT[ΖΩΝΤΑΝΟΙ]<-- KAT
ΤΕΛΟΣ_ΑΝ
Τ_Ε
Ν<-- ΖΩΝΤΑΝΟΙ
Τ_Ε
ΕΜΦΑΝΙΣΕ "ΖΩΝΤΑΝΟΣ ΕΜΕΙΝΕ Ο", Ψ[1]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
--------------------------
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Eruyomo
Πολύ δραστήριο μέλος
Έφαγε τρελό κράξιμο
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
marios_marios_19
Νεοφερμένος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vasilis008
Νεοφερμένος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
marios_marios_19
Νεοφερμένος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vasilis008
Νεοφερμένος
temp <- Α[1]
Για i από 2 μέχρι 100
Αρχή_επανάληψης
Διάβασε Α
Μέχρις_ότου Α<>temp
temp <- Α
Τέλος_επανάληψης
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
zenctheo
Νεοφερμένος
Διάβασε Α[1]
temp <- Α[1]
Για i από 2 μέχρι 100
Αρχή_επανάληψης
Διάβασε Α
Μέχρις_ότου Α<>temp
temp <- Α
Τέλος_επανάληψης
Αν στον παραπάνω αλγόριθμο δώσω τα στοιχεία 1,2,1 με την σειρά θα τα δεχτεί. Όμως έχω δώσει δύο φορές το 1.
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
lostpfg
Νεοφερμένος
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:j,k,i,ΠΙΝ[100],temp
ΛΟΓΙΚΕΣ:done ΑΡΧΗ
j <-- 1
ΓΡΑΨΕ 'Δώστε το 1ο στοιχείο του πίνακα'
ΔΙΑΒΑΣΕ ΠΙΝ[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΓΡΑΨΕ 'Δώστε το ',i,'ο στοιχείο του πίνακα'
ΔΙΑΒΑΣΕ temp
done <- ΨΕΥΔΗΣ
k <- 1
ΟΣΟ k<=j ΕΠΑΝΑΛΑΒΕ
ΑΝ temp=ΠΙΝ[k] ΤΟΤΕ
k <- j
done <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
k <-- k+1
ΤΕΛΟΣ_ΑΝ
ΑΝ done=ΑΛΗΘΗΣ ΤΟΤΕ
k <-- 1
ΔΙΑΒΑΣΕ temp
done <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΠΙΝ <-- temp
j <-- j+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ο κώδικας βελτιώνεται αλλα δουλέυει και έτσι χωρίς να κάνει περίτες επαναλήψεις!!Αντε λιγές μέρες....γερά παίδια....
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
capito666
Νεοφερμένος
ΠΡΟΓΡΑΜΜΑ ΑΚΣΗΣΗ_ΕΞ_ΑΣΚΗΣΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:j,k,i,ΠΙΝ[100],temp
ΛΟΓΙΚΕΣ:done ΑΡΧΗ
j <-- 1
ΓΡΑΨΕ 'Δώστε το 1ο στοιχείο του πίνακα'
ΔΙΑΒΑΣΕ ΠΙΝ[1]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 100 ΓΡΑΨΕ 'Δώστε το ',i,'ο στοιχείο του πίνακα'
ΔΙΑΒΑΣΕ temp
done <- ΨΕΥΔΗΣ
k <- 1
ΟΣΟ k<=j ΕΠΑΝΑΛΑΒΕ
ΑΝ temp=ΠΙΝ[k] ΤΟΤΕ
k <- j
done <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
k <-- k+1
ΤΕΛΟΣ_ΑΝ
ΑΝ done=ΑΛΗΘΗΣ ΤΟΤΕ
k <-- 1
ΔΙΑΒΑΣΕ temp
done <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΠΙΝ <-- temp
j <-- j+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Ο κώδικας βελτιώνεται αλλα δουλέυει και έτσι χωρίς να κάνει περίτες επαναλήψεις!!Αντε λιγές μέρες....γερά παίδια....
Εχεις ενα λαθος στο προγραμμα σου καθως για τους αριθμους 1,2,2 δεν βλεπει οτι το ΠΙΝ[2]=ΠΙΝ[3] και συνεχιζει κανονικα...
Το λαθος βρισκετε στο ΑΝ temp=ΠΙΝ[k]ΤΟΤΕ και αυτο επειδη αφου τελειωσει το πρωτο οσο μετα κσαναδηνεις στο κ την τιμη 1 και ξανασυγκρινει παλι σε σχεση με το πρωτο στοιχειο του πινακα και εμεις τα θελουμε ολα διαφορετικα, οποτε μαλλον πρεπει να αλλαξεις το ΠΙΝ[κ] και να το κανεις ΠΙΝ[j]
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
marios_marios_19
Νεοφερμένος
Για κ απο 1 μεχρι 100
Αρχη_επαναληψης
λ<-1
φ<-ψευδης
Οσο (φ=ψευδης) και (λ<κ) επαναλαβε
Αν Α[λ]=Α[κ] τοτε
φ<-αληθης
αλλιως
λ<-λ+1
τελος_αν
Τελος_επαναληψης
Μεχρις_οτου φ=ψευδης
Τελος_επαναληψης
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
vasilis008
Νεοφερμένος
Αν στον παραπάνω αλγόριθμο δώσω τα στοιχεία 1,2,1 με την σειρά θα τα δεχτεί. Όμως έχω δώσει δύο φορές το 1.
οχ σωστά! δεν μπορώ να καταλάβω πως μου ήρθε και το έκανα έτσι...Ευχαριστώ τουλάχιστον τώρα το έμαθα!
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Χρήστες Βρείτε παρόμοια
-
Φορτώνει...
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.