Αποστολέας Θέμα: Συνθήκη επανέλαβε... Μέχρι  (Αναγνώστηκε 1344 φορές)

Mhtsos

  • Νέος
  • *
  • Μηνύματα: 5
Συνθήκη επανέλαβε... Μέχρι
« στις: 30 Νοέ 2012, 12:54:34 πμ »
Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς  μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;

Π.χ
Αρχή
Επανέλαβε
Διάβασε χ
Αν χ>0
Τότε
Αρχή
Υ:=x*2
Εμφάνισε y
Τέλος
Μέχρι χ<=0
Τέλος 

dpa2006

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 618
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #1 στις: 30 Νοέ 2012, 10:49:38 πμ »
για την αρχή επανάληψης δες εδώ
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
    Διάβασε αριθμός
    <εντολές>
Μέχρις_Ότου αριθμός<=0
<εντολές>
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

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2780
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #2 στις: 30 Νοέ 2012, 02:09:51 μμ »
Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς  μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;

Εξαρτάται από το ποιο είναι το ζητούμενο! Ποιο είναι το ζητούμενο στη περίπτωση που αναφέρεις;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2213
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #3 στις: 30 Νοέ 2012, 05:23:19 μμ »
για την αρχή επανάληψης δες εδώ
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
    Διάβασε αριθμός
    <εντολές>
Μέχρις_Ότου αριθμός<=0
<εντολές>

Αυτό δεν είναι ακριβώς σωστό
Όταν δοθεί αρνητικός αριθμός ή μηδέν, οι εντολές μέσα στην επανάληψη δεν θα πρέπει να εκτελεστούν
Το πρόβλημα λύνεται με μια εντολή Διάβασε πριν την επανάληψη και μια εντολή Διάβασε πριν την συνθήκη του Μέχρις_Ότου
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Mhtsos

  • Νέος
  • *
  • Μηνύματα: 5
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #4 στις: 30 Νοέ 2012, 09:55:53 μμ »
Η άσκηση λέει να διαβάζει έναν αριθμό και θα εμφανίζει το διπλάσιο του.αυτο θα επαναλαμβάνεται συνεχώς μέχρι να δοθεί ένας αρνητικός αριθμός η το μηδέν.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2780
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #5 στις: 30 Νοέ 2012, 10:45:38 μμ »
Όταν δοθεί αρνητικός αριθμός ή μηδέν, οι εντολές μέσα στην επανάληψη δεν θα πρέπει να εκτελεστούν
Το πρόβλημα λύνεται με μια εντολή Διάβασε πριν την επανάληψη και μια εντολή Διάβασε πριν την συνθήκη του Μέχρις_Ότου

Κι αν δοθεί από την αρχή αρνητικός αριθμός ή μηδέν (στην 1η Διάβασε), πάλι δεν θα πρέπει να διασφαλισθεί ότι οι εντολές δεν θα εκτελεστούν για αυτόν τον αριθμό;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2213
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #6 στις: 30 Νοέ 2012, 11:19:54 μμ »
Προφανώς με μια επανάληψη Όσο λύνεται και αυτό το πρόβλημα, αν και θεωρώ μη λογικό να ελεγχθεί μια τέτοια περίπτωση
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2780
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #7 στις: 02 Δεκ 2012, 01:58:43 μμ »
... θεωρώ μη λογικό να ελεγχθεί μια τέτοια περίπτωση

Το θέμα είναι αν θα θεωρηθεί σωστό να μην ελεγχθεί...

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1089
Απ: Συνθήκη επανέλαβε... Μέχρι
« Απάντηση #8 στις: 02 Δεκ 2012, 11:17:59 μμ »
Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς  μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;

Π.χ
Αρχή
Επανέλαβε
Διάβασε χ
Αν χ>0
Τότε
Αρχή
Υ:=x*2
Εμφάνισε y
Τέλος
Μέχρι χ<=0
Τέλος 

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