Αποστολέας Θέμα: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD  (Αναγνώστηκε 1541 φορές)

landreou

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« στις: 29 Μάι 2013, 10:18:33 πμ »
Γειά σας φίλοι του ΣτΠ
μία άσκηση να παραθέσω θα ήθελα να μου πέιτε τις απόψεις σας

ΕΚΦΩΝΗΣΗ
Ένας κωδικός χρήστη αποτελείται το πολύ από 10 χαρακτήρες και το ελάχιστο από 6.
Ο κωδικός αυτός μπορεί να περιέχει οποιοδήποτε χαρακτήρα αλλά
[α] τουλάχιστον ένα σύμβολο (“$’, “#’, “@’, “!’, “%’, “*’) και
[β] δύο αριθμούς (0-9).
[γ] Επιπλέον απαγορεύεται η εισαγωγή του κενού.

Να γίνει αλγόριθμος που θα ελέγχει την εγκυρότητα ενός κωδικού.

έχουμε τους περιορισμούς
-> 6 με 10 χαρακτήρες
-> ενα τουλαχιστο σύμβολο (“$’, “#’, “@’, “!’, “%’, “*’)
-> όχι κενα

[1] Πότε θα καταλαβαίνουμε ότι ο χρήστης σταματάει την πληκτρολόγηση ;

[2] Θα ελέγχουμε χαρακτήρα προς χαρακτήρα τον κωδικό που δίνει ο χρήστης ;

[3] Με εμφωλευμένες σίγουρα επαναλήψεις αλλα ποιά μέσα στην άλλη

landreou

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #1 στις: 03 Ιούν 2013, 02:40:15 μμ »
Καμια ιδέα για την άσκηση ;

( Σιγη Ιχθύος στο ΣτΠ...... )

CyberMove

  • Νέος
  • *
  • Μηνύματα: 8
  • 404 Error!
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #2 στις: 17 Ιούν 2013, 02:33:37 πμ »
Καλησπέρα από εμένα.

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

Στην άσκηση τώρα:

[1] Όταν ικανοποιηθούν τα κριτήρια που έχεις δώσει (Το αναλύω στο [3] αυτό).

[2] Μπορούμε και με την τεχνική χαρακτήρα προς χαρακτήρα ή λογικά να κάνουμε έναν πίνακα με max 10 στοιχεία και όσα στοιχεία δεν χρησιμοποιεί να τα γεμίζει με "-" και ύστερα να κάνει έλεγχο για τις προϋποθέσεις? (θα ήταν ανούσιο).

[3] Με ΌΣΟ και οι εξωτερική θα είναι για το Μήκος του Κωδικού και η ενδιάμεση και η εσωτερική να είναι όποια να'ναι αφού αν δεν ικανοποιηθεί κάποιο κριτήριο δεν θα ισχύει ο κωδικός.


Συγνώμη αν είπα κάτι λάθος ή είχα λάθος συνειρμό.
 :)
If Grandma_Had_Rolls = TRUE Then
        MsgBox.Style ("Grandma = TROLLEY")
End_If

landreou

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #3 στις: 17 Ιούν 2013, 07:52:42 πμ »
Δεν κατάλαβα τι είπες.
Δώσε πιο δομημένα τη σκέψη σου να καταλάβω μήπως και βρω άκρη.

Αποστολάτος Άκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 87
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #4 στις: 17 Ιούν 2013, 12:41:48 μμ »
Καλημέρα...
1. Από όσο ξέρω στη γλώσσα δεν υπάρχει η δυνατότητα να "κόψουμε" συμβολοσειρές , παρα μόνο να τις συγκρίνουμε αλφαβητικά. Άρα εκ των πραγμάτων για να υλοποιηθεί η άσκηση πρέπει να πάς χαρακτήρα - χαρακτήρα.
2. Το πως θα τερματίσεις εξαρτάται από το πως θα θέσεις την εκφώνηση.
πχ. Να σταματά όταν ολοκληρώσει την εισαγωγή του κωδικού(ανεξάρτητα απο το αν είναι λάθος ή σωστό)........
Να σταμάτα όταν ο χρήστης δώσει έγκυρο κωδικό....
Να σταματά όταν δοθεί σωστός κωδικός ή δώσει 3 φορές λάθος.....
Στο δικό μου το μυαλό δε μπορείς να την υλοποιήσεις χωρίς χαρακτήρα ελέγχου για τον τερματισμό(πχ "*")

CyberMove

  • Νέος
  • *
  • Μηνύματα: 8
  • 404 Error!
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #5 στις: 17 Ιούν 2013, 12:50:22 μμ »
Λέω:

[1] Όταν ικανοποιηθούν τα κριτήρια που έχεις δώσει.
      -> 6 με 10 χαρακτήρες.
      -> ενα τουλαχιστο σύμβολο (“$’, “#’, “@’, “!’, “%’, “*’).
      -> όχι κενα.

[2] Όπως το σκέφτηκα,καλύτερα χαρακτήρα προς χαρακτήρα.
O πίνακας  ΚΩΔΙΚΟΣ[10] θα είναι κάπως έτσι:
|P|4|S|$|W|O|R|D|1|-|

(Το "-" δηλώνει ότι ο χρήστης έχει τελειώσει με την εισαγωγή ψηφίων.).


[3] Οι βρόχοι είναι λίγο μεγάλοι και πολύπλοκοι (όπως το είδα εγώ) γιατί θα πρέπει να ελέγχει και αν υπάρχουν τα γράμματα,εκτός από τα ειδικά σύμβολα και την μη χρήση κενού χαρακτήρα.

Δεν ξέρω αν επιτρέπεται να κάνεις αυτό:
ΚΩΔΙΚΟΣ>="A" και ΚΩΔΙΚΟΣ<="Ω". (Δηλαδή να ελέγχεις αν το στοιχείο είναι κάποιο γράμμα από το αλφάβητο.)

Αν επιτρέπεται (που κατά 99% νομίζω ότι επιτρέπεται),τότε είναι κάπως πιο εύκολο.

« Τελευταία τροποποίηση: 17 Ιούν 2013, 02:35:57 μμ από CyberMove »
If Grandma_Had_Rolls = TRUE Then
        MsgBox.Style ("Grandma = TROLLEY")
End_If

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 429
  • Real stupidity beats ΑΙ any time
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #6 στις: 17 Ιούν 2013, 02:23:33 μμ »
Παράθεση
[1] Πότε θα καταλαβαίνουμε ότι ο χρήστης σταματάει την πληκτρολόγηση ;

Όπως είναι γραμμένη η εκφώνηση,αυτό δεν θα έπρεπε να σε απαχολήσει.Είναι θέμα της συνάρτησης που τραβάει το inpout.Ἀμα διαβάζει γραμμή,τότε θα σταματάει με το enter.

Παράθεση
[2] Θα ελέγχουμε χαρακτήρα προς χαρακτήρα τον κωδικό που δίνει ο χρήστης ;

Ναι.

Παράθεση
[3] Με εμφωλευμένες σίγουρα επαναλήψεις αλλα ποιά μέσα στην άλλη

Γιατί εμφωλευμένες;Θα φτιάξεις μια βασική συνάρτηση check_password(ο_κωδικός_εδώ) ,που θα περιέχει 2 πίνακες,έναν με τους χαρακτήρες,έναν με τους αριθμούς και θα είναι wrapper πάνω σε δύο άλλες συναρτήσεις.Οι δύο αυτές θα ελέγχουν τους περιορισμούς σου,με αναζητήσεις στου πίνακες και μπορείς να κάνεις και ακόμα μία για το κενό,ή να το συμπεριλάβεις σαν έλεγχο σε αυτήν που θα ελέγχει για τους ειδικούς χαρακτήρες.Μετα θα επιστρέφεις το λογικό ΑΝD όλων των wrapped συναρτήσεων.

Γενικά μπορείς να έχεις τους πίνακες και μέσα στις wrapped συναρτήσεις,απλά έγραψα αυτό που μου ήρθε εκείνη τη στιγμή.

chzisi

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: ΑΣΚΗΣΗ ΜΕ ΕΛΕΓΧΟ ΚΩΔΙΚΟΥ PASSWORD
« Απάντηση #7 στις: 26 Ιούν 2013, 10:39:47 μμ »
Συγνώμη αν κατάλαβα σωστα, ψαχνουμε έναν αλγόριθμο στα πλαίσια του μαθήματος, έτσι?
Αν είναι έτσι, έχω μια πρόταση, δεδομένης της παραμέτρου που έθεσες ότι όταν τελειώνει την πληκτρολόγηση, δίνει το "-" που δεν θεωρείται στοιχείο του κωδικού αλλά χαρακτήρας τερματισμού.

Αλγόριθμος Κωδικός
Κωδικός_δεκτός ← Ψευδής
Αρχή_επανάληψης
  ι ← 1
  Αρχή_επανάληψης
    Διάβασε χαρ[ι]
    ι ← ι + 1
  Μέχρις_ότου ι > 11 ή χαρ[ι - 1] = "-"
  πλ ← ι - 1
  Αν χαρ[πλ] = "-" και πλ ≥ 6 τότε
    πλ ← ι - 1
    πλήθος_αριθμών ← 0
    Βρέθηκε_σύμβολο ← Ψευδής
    Βρέθηκε_κενό ← Ψευδής
    Για ι από 1 μέχρι πλ
      Αν χαρ[ι] ≥ "0" και χαρ[ι] ≤ "9" τότε
        πλήθος_αριθμών ← πλήθος_αριθμών + 1
      Τέλος_αν
      Αν χαρ[ι] = "$" ή χαρ[ι] = "#" ή χαρ[ι] = "@" ή χαρ[ι] = "!" ή χαρ[ι] = "%" ή χαρ[ι] = "*" τότε
        Βρέθηκε_σύμβολο ← Αληθής
      Τέλος_αν
      Αν χαρ[ι] = " " τότε
        Βρέθηκε_κενό ← Αληθής
      Τέλος_αν
    Τέλος_επανάληψης
    Αν πλήθος_αριθμών ≥ 2 και Βρέθηκε_σύμβολο = Αληθής και Βρέθηκε_κενό = Ψευδής τότε
      Εμφάνισε "Κωδικός δεκτός"
      Κωδικός_δεκτός ← Αληθής
    αλλιώς
      Εμφάνισε "Ελέγξτε τις παραμέτρους"
    Τέλος_αν
  αλλιώς
    Εμφάνισε "Ο Κωδικός πρέπει να έχει μήκος 6 με 10 χαρακτήρες"
  Τέλος_αν
Μέχρις_ότου Κωδικός_δεκτός = Αληθής
Τέλος Κωδικός