Συλλογή ασκήσεων και τεστ στην ΑΕΠΠ

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
Ένα θεματάκι υπερβολικό σαφώς για πανελλήνιες είναι το παρακάτω όποιος θέλει να το κοιτάξει οκ αλλά είναι εκτός φιλοσοφίας εξετάσεων...

Στον Β' Παγκοσμιο Πόλεμο οι Γερμανοί θα σκοτώσουν όλους τους κατοίκους ενός χωριού πλην ενός. Μαζεύουν τους Ν κατοίκους του χωριού στην πλατεία τους βάζουν σε μια ευθεία και ακολουθούν την εξής διαδικασία :
αρχίζουν απο την αρχή και περνάνε τον 1ο κατοικο σκοτωνουν τον 2ο αφήνουν τον 3ο σκοτώνουν τον 4ο κ.ο.κ. Όταν φτάσουν στο τέλος της ευθείας ξανααρχίζουν από την αρχή με την λογική ότι αν ο τελευταίος κάτοικος της ευθείας την γλίτωσε τότε σκοτώνουν τον πρώτο κάτοικο της ευθειας αλλιως σκοτώνουν τον δεύτερο. Η διαδικασία επαναλαμβάνεται μέχρι να μείνει ένας μόνο επιζώντας.
Π.χ. αν υπάρχουν 9 κάτοικοι στην σειρά σκοτώνονται αυτοί στις θέσεις 2,4,6,8 μετα σκοτώνεται ο 1 καθώς ο 9 επέζησε . Τώρα έχουν επιζήσει οι 3,5,7,9. Σκοτώνονται οι 5,9 και τελικα ο 7. Ζει ο 3
Να γράψεται αλγοριθμο που να δεχεται το πληθος των κατοίκων Ν (θεωρειστε Ν>1) και να εμφανιζει την αρχική θέση αυτού που θα επιζήσει. Π.χ στο προηγουμενο παράδειγμα Ν=9 και έξοδος=3. Ευχαριστώ!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

mostel

Πολύ δραστήριο μέλος

Ο Στέλιος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 1,203 μηνύματα.
Τι μακάβριο θέμα !


Στέλιος
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

marsenis

Νεοφερμένος

Ο Μάκης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών, Μαθητής Γ' λυκείου και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 19 μηνύματα.
Το πρόβλημα αυτό είναι γνωστό ως "The Josephus Problem" και η αρχική του διατύπωση είναι ως εξής:
"Ν άνθρωποι βρίσκονται ο ένας δίπλα στον άλλον ετσι ώστε να σχηματίζουν κύκλο. Αρχικά ο πρώτος έχει ένα όπλο με το οποίο σκοτώνει τον 2ο και δίνει το όπλο στον 3ο. Έπειτα ο 3ος σκοτώνει τον 4ο και δίνει το όπλο στον 5ο κ.ο.κ. Γενικά όποιος έχει το όπλο σκοτώνει τον επόμενο και δίνει το όπλο στον μεθεπόμενο. Η διαδικασία αυτή συνεχίζετε κυκλικά μέχρι να μείνει μόνο ένας άνθρωπος ζωντανός. Σε ποιά θέση θα βρίσκεται ο άνθρωπος που παραμένει ζωντανός;"

Ονομάστικε "Josephus Problem" προς τιμήν του Flavius Josephus(Εβραίος ιστορικός του 1ου αιώνα). Όπως λέει ο θρύλος, αυτός και άλλοι 40 άνθρωποι παγιδεύτηκαν σε μία σπηλιά περικυκλωμένη απο τους Ρωμαίους. Προτιμώντας όμως να αυτοκτονήσουν απο το να παραδοθούν στους ρωμαίους, αποφάσισαν να κάνουν ένα κύκλο και να πεθάνουν με τον τρόπο που περιέγραψα παραπάνω. Ο Josephus όμως δεν ήθελε να πεθάνει και έτσι υπολόγισε την θέση που πρέπει να βρίσκεται ετσι ώστε να παραμείνει ζωντανός.

Έχω σκεφτεί ένα μικρό και γρήγορο αλγόριθμο αλλα θα τον δημοσιεύσω αργότερα για να αφήσω και άλλους να το σκεφτούν. :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
ενδιαφέρον! ήξερα ότι είναι ένα γνωστό πρόβλημα αλλά δεν ήξερα τις λεπτομέριες...!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
Αλγοριθμος ΧΙΤΛΕΡ
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 !τελευταιος επιζων
Τελος ΧΙΤΛΕΡ
-----------------------------------------
Μια λύση είναι αυτή. Αν έχετε να προτείνεται κάτι άλλο ευχαρίστως!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

m3Lt3D

Πολύ δραστήριο μέλος

Ο Γιάννης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Φοιτητής και μας γράφει απο Αμπελόκηποι (Αττική). Έχει γράψει 983 μηνύματα.
Εγω το ξερω με ρωμαιους το προβλημα :P

[FONT=&quot] [/FONT]Μια μέθοδος παραδειγματισμού που χρησιμοποιούσαν πολλές φορές οι Ρωμαίοι για να αποθαρρύνουν τυχόν στασιαστές στο στράτευμα τους ήταν η εξής: Από τους στασιαστές διάλεγαν 1000 άνδρες που τους τοποθετούσαν σε μία γραμμή. Κατόπιν άρχιζαν να τους εκτελούν ανά δύο. Δηλαδή την πρώτη φορά εκτελούσαν το δεύτερο, τον τέταρτο κλπ. Εάν ο τελευταίος της σειράς επιζούσε, τοποθετούνταν πρώτος στην ευθεία για την επόμενη εκτέλεση. Με τον τρόπο αυτό, τελικά επιζούσε μόνο ένας, ο οποίος αφήνονταν ελεύθερος ώστε να κάνει γνωστή την ιστορία στο υπόλοιπο στράτευμα. Να υλοποιήσετε πρόγραμμα που θα υπολογίζει τη θέση στην αρχική ευθεία των 1000 ατόμων, που θα εξασφαλίζει τη σωτηρία!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

tsaklam

Νεοφερμένος

Η tsaklam αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 62 ετών και Καθηγητής. Έχει γράψει 4 μηνύματα.
Παιδιά μην προσπαθείτε άλλο. Το πρόβλημα έχει μεν βελτιωθεί από την πρώτη εκδοχή αλλά παραμένει ανατριχιαστικό. Τι θα λέγατε αντί να σκοτώνονται να φιλιούνται και να ψάξουμε ποιος θα μείνει αφίλητος/η;;;
Αφήστε τα τώρα αυτά και στρωθείτε στην επανάληψη! Έφτασε γαρ η ώρα…
Χωρίς άγχος και υπερβολές. Η εμπειρία δείχνει ότι όλοι γράφουν αυτό για το οποίο έχουν προετοιμαστεί.
Καλή επιτυχία σε όλους. …και μην ξεχνάτε ότι η ζωή δεν τελειώνει στις Πανελλήνιες αλλά μόλις αρχίζει
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

zenctheo

Νεοφερμένος

Ο zenctheo αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Καθηγητής. Έχει γράψει 20 μηνύματα.
Ωραίο πρόβλημα άσχετα με το πόσο μακάβριο ή όχι είναι :)
Με παίδεψε από χθες που το διάβασα. Ήθελα να φτιάξω ένα πρόγραμμα που να μην χρησιμοποιεί πίνακες ώστε να μην έχω πρόβλημα στο μέγιστο πλήθος των ατόμων.
Το παραθέτω.
Code:
  ΠΡΟΓΡΑΜΜΑ JOSEPHUS
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν, ΝΕΚΡΟΙ, Β, Π, Ι, ΠΡΩΤΟΣ, ΑΡΧ, ΤΕΛΟΣ, ΤΕΣΤ
  ΛΟΓΙΚΕΣ: ΛΑΣΤ
ΑΡΧΗ
  ΓΡΑΨΕ 'ΔΩΣΤΕ ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΙΧΜΑΛΩΤΩΝ'
  ΔΙΑΒΑΣΕ Ν
  ΝΕΚΡΟΙ <- 0
  Β <- 2
  Π <- 1                                                !ΠΕΡΑΣΜΑ
  ΓΡΑΨΕ Π, ' ΠΕΡΑΣΜΑ.θΑ ΠΕΘΑΝΟΥΝ ΟΙ'
  ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Ν ΜΕ ΒΗΜΑ Β
    ΓΡΑΨΕ Ι
    ΝΕΚΡΟΙ <- ΝΕΚΡΟΙ + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  Π <- Π + 1
  ΑΝ Ν MOD 2 = 0 ΤΟΤΕ
    ΛΑΣΤ <- ΑΛΗΘΗΣ
  ΑΛΛΙΩΣ
    ΛΑΣΤ <- ΨΕΥΔΗΣ
  ΤΕΛΟΣ_ΑΝ
  ΠΡΩΤΟΣ <- 1
  ΤΕΛΟΣ <- Ν
  ΟΣΟ ΝΕΚΡΟΙ < Ν - 1 ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΛΑΣΤ = ΑΛΗΘΗΣ ΤΟΤΕ
      ΑΡΧ <- ΠΡΩΤΟΣ + Β
      ΤΕΛΟΣ <- ΤΕΛΟΣ - (Β DIV 2) 
    ΑΛΛΙΩΣ
      ΑΡΧ <- ΠΡΩΤΟΣ
      ΠΡΩΤΟΣ <- ΠΡΩΤΟΣ + Β
    ΤΕΛΟΣ_ΑΝ
    Β <- Β*2
    ΓΡΑΨΕ Π, ' ΠΕΡΑΣΜΑ.θΑ ΠΕΘΑΝΟΥΝ ΟΙ'
    ΓΙΑ Ι ΑΠΟ ΑΡΧ ΜΕΧΡΙ ΤΕΛΟΣ ΜΕ ΒΗΜΑ Β
      ΓΡΑΨΕ Ι
      ΝΕΚΡΟΙ <- ΝΕΚΡΟΙ + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    Π <- Π + 1
    ΤΕΣΤ <- Ι - Β
    ΑΝ ΤΕΣΤ = ΤΕΛΟΣ ΤΟΤΕ
      ΛΑΣΤ <- ΑΛΗΘΗΣ
    ΑΛΛΙΩΣ
      ΛΑΣΤ <- ΨΕΥΔΗΣ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'ΠΑΡΑΜΕΝΕΙ Ο ', ΠΡΩΤΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Φυσικά αυτό είναι μια πρώτη-πρώτη προσέγγιση και σίγουρα βελτιώνεται.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

odyracer18

Νεοφερμένος

Ο Οδυσσέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Φοιτητής και μας γράφει απο Λιβανάτες (Φθιώτιδα). Έχει γράψει 24 μηνύματα.
Ενδιαφέρουσα ασκησούλα...αλλά όντως,καμία σχέση με το πνεύμα των πανελληνίων..
Να και η δικιά μου λύση σε ΓΛΩΣΣΑ
Code:
ΠΡΟΓΡΑΜΜΑ Κύριο
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ:Α[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]
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

capito666

Νεοφερμένος

Ο capito666 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Πειραιάς (Αττική). Έχει γράψει 51 μηνύματα.
ΠΟΛΥ ΕΝΔΙΑΦΕΡΟΝ ΑΣΚΗΣΗ!! ΕΓΩ ΠΑΛΙ ΠΡΟΤΕΙΜΗΣΑ ΝΑ ΤΗΝ ΛΥΣΩ ΜΕ ΠΙΝΑΚΕΣ
ΓΙΑΤΙ ΤΟ ΘΕΩΡΗΣΑ ΠΙΟ ΕΥΚΟΛΟ ΤΡΟΠΟ...: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]

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
--------------------------
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Eruyomo

Πολύ δραστήριο μέλος

Ο Μάνος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 39 ετών, Φοιτητής και μας γράφει απο Χανιά (Χανιά). Έχει γράψει 1,505 μηνύματα.
Αυτό είχε βάλει στη σχολή μας στο πρώτο έτος ένας καθηγητής (νομίζω σε java).
Έφαγε τρελό κράξιμο :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

marios_marios_19

Νεοφερμένος

Ο marios_marios_19 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Απόφοιτος. Έχει γράψει 8 μηνύματα.
Να δωθει τμημα αλγοριθμου που να γεμιζει μονοδιαστατο πινακα Α[100] και να εξασφαλιζει οτι τα στοιχεια του ειναι διακριτα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
συγγνώμη για την μάλλον χαζή ερώτηση αλλά τι ακριβώς εννοείς λέγοντας "διακριτά"???
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

marios_marios_19

Νεοφερμένος

Ο marios_marios_19 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Απόφοιτος. Έχει γράψει 8 μηνύματα.
μοναδικα να μην ιδια μεταξυ τους
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
Διάβασε Α[1]
temp <- Α[1]
Για i από 2 μέχρι 100
Αρχή_επανάληψης
Διάβασε Α
Μέχρις_ότου Α<>temp
temp <- Α
Τέλος_επανάληψης
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

zenctheo

Νεοφερμένος

Ο zenctheo αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Καθηγητής. Έχει γράψει 20 μηνύματα.
Διάβασε Α[1]
temp <- Α[1]
Για i από 2 μέχρι 100
Αρχή_επανάληψης
Διάβασε Α
Μέχρις_ότου Α<>temp
temp <- Α
Τέλος_επανάληψης


Αν στον παραπάνω αλγόριθμο δώσω τα στοιχεία 1,2,1 με την σειρά θα τα δεχτεί. Όμως έχω δώσει δύο φορές το 1.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

lostpfg

Νεοφερμένος

Ο Πέτρος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών και Φοιτητής. Έχει γράψει 38 μηνύματα.
ΠΡΟΓΡΑΜΜΑ ΑΚΣΗΣΗ_ΕΞ_ΑΣΚΗΣΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: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

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ο κώδικας βελτιώνεται αλλα δουλέυει και έτσι χωρίς να κάνει περίτες επαναλήψεις!!Αντε λιγές μέρες....γερά παίδια....:)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

capito666

Νεοφερμένος

Ο capito666 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Πειραιάς (Αττική). Έχει γράψει 51 μηνύματα.
ΠΡΟΓΡΑΜΜΑ ΑΚΣΗΣΗ_ΕΞ_ΑΣΚΗΣΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: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]
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

marios_marios_19

Νεοφερμένος

Ο marios_marios_19 αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Απόφοιτος. Έχει γράψει 8 μηνύματα.
εγω παραθετω αυτη την απαντηση...

Για κ απο 1 μεχρι 100
Αρχη_επαναληψης
λ<-1
φ<-ψευδης
Οσο (φ=ψευδης) και (λ<κ) επαναλαβε
Αν Α[λ]=Α[κ] τοτε
φ<-αληθης
αλλιως
λ<-λ+1
τελος_αν
Τελος_επαναληψης
Μεχρις_οτου φ=ψευδης
Τελος_επαναληψης
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vasilis008

Νεοφερμένος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών, Απόφοιτος και μας γράφει απο Ρόδος (Δωδεκάνησα). Έχει γράψει 74 μηνύματα.
Αν στον παραπάνω αλγόριθμο δώσω τα στοιχεία 1,2,1 με την σειρά θα τα δεχτεί. Όμως έχω δώσει δύο φορές το 1.

οχ σωστά! δεν μπορώ να καταλάβω πως μου ήρθε και το έκανα έτσι...Ευχαριστώ τουλάχιστον τώρα το έμαθα!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 14 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 8 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top