Τώρα είναι Πέμ 28 Μαρ 2024 11:06 am

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Τετ 15 Νοέμ 2006 03:00 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 21 Ιούλ 2005 10:34 am
Δημοσιεύσεις: 11
Τοποθεσία: ΚΑΣΤΟΡΙΑ
Θα ήθελα να δω κάποιες λύσεις στο πρόβλημα της μετατροπής του παρακάτω προγράμματος σε ισοδύναμο με τη χρήση της δομής ΓΙΑ ΑΠΟ ΜΕΧΡΙ. Είναι δυσκολότερο από ότι αρχικά φαίνεται!
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ Μετατροπή
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x,y,z
ΑΡΧΗ
  x <-- 0
  y <-- 1
  ΟΣΟ x<10 ΕΠΑΝΑΛΑΒΕ
    y <-- y*y
    z <-- 1+y
    x <-- x+2
    y <-- y-x
    ΓΡΑΨΕ x,y,z
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Μετατροπή


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Τετ 22 Νοέμ 2006 12:21 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 21 Ιούλ 2005 10:34 am
Δημοσιεύσεις: 11
Τοποθεσία: ΚΑΣΤΟΡΙΑ
OK, το πρόβλημα εδώ είναι ότι μέσα σε μια επανάληψη, η μεταβλητή που σηματοδοτεί το τέλος της δομής επανάληψης (x) μεταβάλλεται και έπειτα λαμβάνει μέρος σε υπολογισμούς για τη νέα τιμή του y. Στην ΓΙΑ όμως η μεταβολή του μετρητή γίνεται αυτόματα και στο τέλος της επανάληψης. Άρα ο δεύτερος υπολογισμός του y, γίνεται με την ΜΗ αλλαγμένη τιμή του x. Παραθέτω εγώ μια πιθανή λύση.

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ Μετατροπή
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x,y,z,i
ΑΡΧΗ
  x <-- 0
  y <-- 1
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ ΒΗΜΑ 2
    y <-- y*y
    z <-- 1+y
    x <-- x+2    ! Εδώ αλλάζει τιμή το x
    y <-- y-x    ! Ο υπολογισμός του νέου y γίνεται με τη νέα τιμή του x
    ΓΡΑΨΕ x,y,z
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 

Εδώ κάναμε χρήση μιας μεταβλητής i η οποία χρησιμεύει απλά για την μέτρηση των επαναλήψεων και δεν λαμβάνει μέρος σε καμιά πράξη. Το x, συνεχίζει να αυξάνεται "χειροκίνητα" ώστε να γίνεται σωστά και ο υπολογισμός της δεύτερης τιμής του y.


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 04 Δεκ 2006 11:51 am 
Χωρίς σύνδεση

Εγγραφή: Πέμ 21 Ιούλ 2005 10:34 am
Δημοσιεύσεις: 11
Τοποθεσία: ΚΑΣΤΟΡΙΑ
Ορίστε και ένα άλλο ενδεχόμενο λύσης όπου δε χρησιμοποιούμε ανεξάρτητο μετρητή. Εδώ το x που λαμβάνει μέρος στις πράξεις είναι και ο μετρητής, απλά μετά την "χειροκίνητη" αύξηση απαιτείται η επαναφορά του στην προηγούμενη τιμή μετά τη ΓΡΑΨΕ, ώστε να αυξηθεί αυτόματα με την τιμή του βήματος.
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ Μετατροπή
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x,y,z
ΑΡΧΗ
  y <-- 1
  ΓΙΑ x ΑΠΟ 0 ΜΕΧΡΙ 8 ΜΕ ΒΗΜΑ 2
    y <-- y*y
    z <-- 1+y
    x <-- x+2    ! Εδώ αλλάζει τιμή το x
    y <-- y-x    ! Ο υπολογισμός του νέου y γίνεται με τη νέα τιμή του x
    ΓΡΑΨΕ x,y,z
    x <-- x-2    ! Εδώ επανέρχεται το x για να αυξηθεί ξανά αυτόματα με το βήμα
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Κυρ 21 Ιαν 2007 01:35 am 
Χωρίς σύνδεση

Εγγραφή: Κυρ 12 Οκτ 2003 01:52 am
Δημοσιεύσεις: 189
Τοποθεσία: ΝΙΚΑΙΑ - ΠΕΙΡΑΙΑΣ
και μια ακόμα απάντηση αν και καθυστερημένη
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ Μετατροπή
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: x , y , z
ΑΡΧΗ
  y <-- 1
  ΓΙΑ x ΑΠΟ 0 ΜΕΧΡΙ 8 ΜΕ ΒΗΜΑ 2
    y <-- y*y
    z <-- 1 + y
    y <-- y - (x+2)
    ΓΡΑΨΕ x+2 , y , z
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: