Θέμα με διόδια (Ιούνιος 2002)

Ξεκίνησε από despoina, 25 Οκτ 2012, 09:32:03 ΜΜ

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

despoina

αλγόριθμος Θέμα_3
διάβασε Τ
διάβασε Υ
αν Τ = "Δ" τότε
Α ← 1
αλλιώς_αν Τ = "Ε" τότε
Α ←  2
αλλιώς_αν Τ = "Φ" τότε
Α  ← 3
τέλος_αν
αν Υ >= Α τότε
L ←  Υ - Α
αλλιώς_αν Υ = 0 τότε
εμφάνισε Α
αλλιώς_αν Υ < Α τότε
π  ← Α - Υ
Υ  ← 0
εμφάνισε π
τέλος_αν
τέλος Θέμα_3

Η ερώτησή μου είναι η εξής: H εντολή L ←  Υ - Α που δεν έχει γραφτεί ως Υ←  Υ-Α, είναι λανθασμένη;

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

Τι εκφράζει το L; Από τη στιγμή που λίγο παρακάτω έχεις Υ<-0 για να δείξεις ότι το υπόλοιπο της κάρτας μηδενίζεται, θα έπρεπε να έχεις Υ<- Υ-Α  για να δείξεις ότι το υπόλοιπο της κάρτας μειώνεται.

Και επίσης για να δείξεις ότι το (νέο) υπόλοιπο αποτελεί (και) έξοδο του αλγορίθμου, ενώ δεν ζητείται να εμφανιστεί, θα έπρεπε να έχεις ως προτελευταία εντολή του αλγορίθμου το εξής:

Αποτελέσματα // Υ //

despoina

Πού ορίζεται όμως ότι η έξοδος του αλγορίθμου είναι το Υ; Στην περίπτωση μάλιστα του αλλιώς_αν Υ < Α, έξοδος είναι το π. Και στην περίπτωση που Υ = 0 τότε έξοδος είναι το Α.  :-\

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

Παράθεση από: denia_k στις 25 Οκτ 2012, 10:11:18 ΜΜ
Πού ορίζεται όμως ότι η έξοδος του αλγορίθμου είναι το Υ; Στην περίπτωση μάλιστα του αλλιώς_αν Υ < Α, έξοδος είναι το π. Και στην περίπτωση που Υ = 0 τότε έξοδος είναι το Α.  :-\

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

despoina

Το κατάλαβα το σκεπτικό σου Νίκο! Η λογική αυτή λοιπόν ισχύει και γενικά; Για παράδειγμα στις ασκήσεις που υπολογίζεται κάτι, αλλά δεν τυπώνεται θα πρέπει εμείς να το δηλώνουμε με // Αποτελέσματα; //, ακόμα κι αν ο αλγόριθμος έχει ήδη κάποια έξοδο;

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

Παράθεση από: denia_k στις 26 Οκτ 2012, 12:11:27 ΠΜ
Το κατάλαβα το σκεπτικό σου Νίκο! Η λογική αυτή λοιπόν ισχύει και γενικά; Για παράδειγμα στις ασκήσεις που υπολογίζεται κάτι, αλλά δεν τυπώνεται θα πρέπει εμείς να το δηλώνουμε με // Αποτελέσματα; //, ακόμα κι αν ο αλγόριθμος έχει ήδη κάποια έξοδο;

Ναι, εφόσον αποτελεί ζητούμενο της άσκησης.