Έλεγχος Εγκυρότητας με ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ

Ξεκίνησε από Delta2000, 27 Οκτ 2017, 12:10:30 ΜΜ

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

Delta2000

Ποτέ δεν κατάλαβα γιατί η θεωρία του αεππ λέει οτί η ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ είναι μόνο για συγκεκριμένο πλήθος επαναλήψεων. Επίσης δεν καταλαβαίνω γιατί ενώ διδάσκονται τρόποι ελέγχου εγκυρότητας με όσο και αρχή_επανάληψης, δεν διδάσκεται και τρόπος με για..απο..μεχρι και ας μην είναι η πιο ουσιώδης μέθοδος, όμως υπάρχει τρόπος στην γλώσσα να γίνει και έτσι. Αν κάποιος τρέλος βάλει πανελληνίες θέμα μετατροπής ελέγχου εγκυρότητας από αρχή_επανάληψης σε για..απο..μέχρι αμφιβάλλω ότι θα σκεφτούν πολλοί εξεταζόμενοι μια λυση. Παραθέτω το τμήμα κώδικα σε ΓΛΩΣΣΑ παρακάτω:

ΠΡΟΓΡΑΜΜΑ  Ελεγχος_Εγκυρότητας_με_Για_Απο_Μέχρι
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ονομα
  ΑΚΕΡΑΙΕΣ:i,κ
ΑΡΧΗ
  κ <-- 1
  Για i απο 1 μέχρι κ
    Διάβασε ονομα
    Αν όνομα = ' ' τότε
      κ <-- κ+1
      Γράψε 'Πληκτρολογήστε ένα έγκυρο όνομα'
    Τέλος_Αν
  Τέλος_Επανάληψης
Τέλος_Προγράμματος


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

petrosp13

Απαγορεύεται σε δομή "Για" να αλλάζει εντός του βρόχου η μεταβλητή, η αρχική και η τελική τιμή, καθώς και το βήμα
Η δομή "Για" χρησιμοποιείται αυστηρά για τυποποιημένες περιπτώσεις
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Delta2000

Παράθεση από: petrosp13 στις 27 Οκτ 2017, 02:26:20 ΜΜ
Απαγορεύεται σε δομή "Για" να αλλάζει εντός του βρόχου η μεταβλητή, η αρχική και η τελική τιμή, καθώς και το βήμα
Η δομή "Για" χρησιμοποιείται αυστηρά για τυποποιημένες περιπτώσεις
Η γλωσσομάθεια πάντως δεν μου πέταξε κάποιο σφάλμα στην εκτέλεση του αλγορίθμου.

gpapargi

#3
Είχε συζητηθεί παλαιότερα το αν η αλλαγή του μετρητή της Για εντός της Για είναι συντακτικό σφάλμα ή απλώς κακή προγραμματιστική τεχνική. Υπήρξαν διαφωνίες. Για τον ένα ή τον άλλο λόγο πάντως δε χρησιμοποιείται.

Επειδή πρόσεξα ότι κάτι τέτοιο το σκέφτονται τα καλά μυαλά και είναι άδικο να είναι καλύτεροι και να κάνουν κάτι μη αποδεκτό, τους λέω αν αν συλλάβουν τέτοια λύση λύση να το κάνουν "νόμιμα" ως εξής:

τερμάτισε<--ψευδής
Όσο τερμάτισε = ψευδής και ...
  ...
  Αν <συνθήκη> τότε
     τερμάτισε <--αληθής
  Τέλος_αν

Τέλος_επανάληψης

Η παραπάνω προσέγγιση προωθείται από το σχολικό βιβλίο και εμπεριέχει ακριβώς τον ίδιο τρόπο σκέψης με αυτόν της αλλαγής του μετρητή της Για.

petrosp13

Γενικά, υπάρχουν πάμπολλοι τρόποι να σταματήσει μια επανάληψη "Όσο", γιατί να εμπλέξουμε την τυποποιημένη "Για" σε αυτή την περίπτωση;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής