Σπάσιμο Τριψήφιου Κωδικού

Ξεκίνησε από nikolasmer, 07 Οκτ 2017, 04:56:00 ΜΜ

« προηγούμενο - επόμενο »

nikolasmer

Γειά σε όλους.

Δεν γνωρίζω την πατρότητα της παρακάτω άσκησης απλά προσπαθώ να βρώ καμία καλή λύση για αυτή.
Αν υπάρχουν ιδέες (λύση με τις λιγότερες επαναλήψεις) θα ήθελα να τις δώ.

Ένα αρχείο που περιέχει χρήσιμες πληροφορίες είναι «κλειδωμένο» με κωδικό. Ο κωδικός είναι τριψήφιος αριθμός από 111 μέχρι 999 και ισχύει ότι x < y < z, καθώς και ότι ο x είναι άρτιος και ο z περιττός. Να γραφεί πρόγραμμα το οποίο θα εμφανίζει όλους τους πιθανούς κωδικούς.

Επίσης παίζει ρόλο και η σειρά των ψηφίων, δηλαδή θα πρέπει να βρούμε συνδυασμούς ή όχι;
Μερεντίτης Νικόλαος
Πληροφορικός

alkisg

Χωρίς έλεγχο, οπότε μπορεί να μου ξέφυγε κάτι:
Κώδικας: ΓΛΩΣΣΑ
ΓΙΑ x ΑΠΟ 2 ΜΕΧΡΙ 8 ΜΕ_ΒΗΜΑ 2
  ΓΙΑ y ΑΠΟ x+1 ΜΕΧΡΙ 9
    ΓΙΑ z ΑΠΟ y + y mod 2 + 1 ΜΕΧΡΙ 9 ΜΕ_ΒΗΜΑ 2
      ΓΡΑΨΕ 100*x + 10*y + z
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

bugman

Σίγουρα έχει λάθος!
Διότι αν x=8 τότε y=9 οπότε ο z δεν μπορεί να είναι μεγαλύτερος του y, αφού μπορεί να είναι μέχρι 9 άρα το y<z δεν θα ισχύει
άρα η διόρθωση είναι στο ΓΙΑ x ΑΠΟ 2 ΜΕΧΡΙ 6 ΜΕ_ΒΗΜΑ 2

petrosp13

Αυτό μάλλον βελτίωση είναι, όχι λάθος...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

odysseas

Εγώ προτείνω ο Άλκης ν' αρχίσει να δίνει μικρές επιταγές για κάθε λάθος που εντοπίζεται στον κώδικά του, όπως ο Knuth.  ;)

alkisg

Ώπα τότε θα πρέπει να σταματήσω να γράφω κώδικα ενόσω κάνω ταυτόχρονα remote support σε σχολεία, γιατί θα ξεφραγκιαστώ!!! :D

bugman

Στη ΓΛΩΣΣΑ δεν θα βγει λάθος το πρόγραμμα του aliksg, γιατί δεν θα τρέξει η γραμμή 4 όταν το Ζ θα είναι από 10 μέχρι 9. Επειδή όμως μπορούμε να αποκλείσουμε άσκοπες κλήσεις, με ορθότερο προσδιορισμό ορίων, μπορούμε να πούμε την "σπουδή" του alkisg "λάθος", έχει παραπάνω πράγματα που δεν ζητούνται!

alkisg

Και η δεύτερη γραμμή θέλει αλλαγή, σε
  ΓΙΑ y ΑΠΟ x+1 ΜΕΧΡΙ 7

petrosp13

Παράθεση από: bugman στις 09 Οκτ 2017, 12:20:12 ΠΜ
Στη ΓΛΩΣΣΑ δεν θα βγει λάθος το πρόγραμμα του aliksg, γιατί δεν θα τρέξει η γραμμή 4 όταν το Ζ θα είναι από 10 μέχρι 9. Επειδή όμως μπορούμε να αποκλείσουμε άσκοπες κλήσεις, με ορθότερο προσδιορισμό ορίων, μπορούμε να πούμε την "σπουδή" του alkisg "λάθος", έχει παραπάνω πράγματα που δεν ζητούνται!


Λάθος είναι κάτι που λογικά θα πρέπει να κοπούν μονάδες αν το εφαρμόσει μαθητής
Σε αυτή την λύση θα κόβαμε μονάδες;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

dpa2006

Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

bugman

Ο κώδικας είναι εδώ και πατάμε το Run (αν θέλουμε έχουμε επιλογή Text και όχι Console, για να αντιγράψουμε την εξαγωγή).
https://onlinegdb.com/S1VoJwT3W


Code=235
Code=237
Code=239
Code=245
Code=247
Code=249
Code=257
Code=259
Code=267
Code=269
Code=279
Code=289
Code=457
Code=459
Code=467
Code=469
Code=479
Code=489
Code=679
Code=689


(άρα η δεύτερη γραμμή που πρότεινε ο Άλκης με όριο το 7 είναι λάθος).

alkisg

Indeed, δεν είχα ξαναδιαβάσει πρόσφατα την εκφώνηση και νόμιζα ότι ζήταγε y περιττός αντί για z περιττός.