Συνθήκη επανέλαβε... Μέχρι

Ξεκίνησε από Mhtsos, 30 Νοε 2012, 12:54:34 ΠΜ

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

Mhtsos

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

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

dpa2006

για την αρχή επανάληψης δες εδώ
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
    Διάβασε αριθμός
    <εντολές>
Μέχρις_Ότου αριθμός<=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

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

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

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

petrosp13

Παράθεση από: dpa2006 στις 30 Νοε 2012, 10:49:38 ΠΜ
για την αρχή επανάληψης δες εδώ
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
    Διάβασε αριθμός
    <εντολές>
Μέχρις_Ότου αριθμός<=0
<εντολές>

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

Mhtsos

Η άσκηση λέει να διαβάζει έναν αριθμό και θα εμφανίζει το διπλάσιο του.αυτο θα επαναλαμβάνεται συνεχώς μέχρι να δοθεί ένας αρνητικός αριθμός η το μηδέν.

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

Παράθεση από: petrosp13 στις 30 Νοε 2012, 05:23:19 ΜΜ
Όταν δοθεί αρνητικός αριθμός ή μηδέν, οι εντολές μέσα στην επανάληψη δεν θα πρέπει να εκτελεστούν
Το πρόβλημα λύνεται με μια εντολή Διάβασε πριν την επανάληψη και μια εντολή Διάβασε πριν την συνθήκη του Μέχρις_Ότου

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

petrosp13

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

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

Παράθεση από: petrosp13 στις 30 Νοε 2012, 11:19:54 ΜΜ
... θεωρώ μη λογικό να ελεγχθεί μια τέτοια περίπτωση

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

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

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

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

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