Αποστολέας Θέμα: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)  (Αναγνώστηκε 4636 φορές)

droopy

  • Θαμώνας
  • ***
  • Μηνύματα: 37
  • you know what... i'm happy
ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« στις: 05 Απρ 2008, 11:03:59 μμ »
ΔΤ1 ΚΕΦΑΛΑΙΟ 6 ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ

ΟΣΟ συνθηκη_1 ΕΠΑΝΑΛΑΒΕ
   εντολη_2
     ΑΝ συνθηκη_3 ΤΟΤΕ
        εντολη_4
        GOTO !Label
     ΑΛΛΙΩΣ
        εντολη_5
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Label

θα ήθελα να σχολιάσετε την παρακάτω λύση:

ΟΣΟ συνθηκη_1 και ΟΧΙ(συνθηκη_3) ΕΠΑΝΑΛΑΒΕ
  εντολη_2
  εντολη_5
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ συνθηκη_1=αληθης τοτε
εντολη_2
εντολη_4
τελος_αν

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5024
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #1 στις: 05 Απρ 2008, 11:48:10 μμ »
Δεν είναι σωστή. Ένα παράδειγμα είναι π.χ. αν η συνθήκη_3 γίνει ΑΛΗΘΗΣ, ενώ η συνθήκη_1 παραμείνει ΨΕΥΔΗΣ.
Τότε στο αρχικό παράδειγμα εκτελείται η εντολή_4, ενώ στην παραπάνω λύση όχι.

Το βιβλίο καθηγητή προτείνει την παρακάτω λύση:
Κώδικας: Text
  1. ΑΡΧΗ
  2.   ΟΣΟ συνθήκη1 ΕΠΑΝΑΛΑΒΕ
  3.     Εντολή2
  4.     ΑΝ συνθήκη3 ΤΟΤΕ
  5.       Εντολή4
  6.       H συνθήκη1 γίνεται ΨΕΥΔHΣ
  7.     ΑΛΛΙΩΣ
  8.       Εντολή5
  9.     ΤΕΛΟΣ_ΑΝ
  10.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  11.  

και ένας λογικός τρόπος να μεταφράσουμε το "Η συνθήκη1 γίνεται ΨΕΥΔΗΣ" είναι να προσθέσουμε μια boolean μεταβλητή (σημαία) στη συνθήκη1: ΟΣΟ συνθήκη1 ΚΑΙ flag=ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ

droopy

  • Θαμώνας
  • ***
  • Μηνύματα: 37
  • you know what... i'm happy
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #2 στις: 08 Απρ 2008, 06:20:38 μμ »
Aν η συνθήκη_1 είναι ΨΕΥΔΗΣ αυτό σημαίνει ότι δεν θα εκτελεστεί καμία εντολή στο 1ο πρόγραμμα όπως και στο δεύτερο.

Επομένως νομίζω ότι η περίπτωση που περιέγραψες δουλεύει και για τις 2 περιπτώσεις

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5024
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #3 στις: 08 Απρ 2008, 07:27:34 μμ »
Σόρρυ, εννοούσα να γίνει (όχι να παραμείνει) ψευδής. Αναλυτικά:

Μπαίνουμε στο loop με συνθήκη_1 = αληθής και συνθήκη_3 = ψευδής.
Και έστω ότι η εντολή_2 αντιστρέφει και τις δύο συνθήκες και τις κάνει
συνθήκη_1 = ψευδής, συνθήκη_3 = αληθής.

Στην πρώτη περίπτωση θα εκτελεστούν: εντολή_2, εντολή_4.
Στη δεύτερη περίπτωση θα εκτελεστούν: εντολή_2, εντολή_5.


Ένα παράδειγμα εντολής που αντιστρέφει δύο συνθήκες μαζί:
α <- 10 (ενώ πριν ήταν αρνητικός)
και οι δύο συνθήκες να είναι α < 0, α > 5.

droopy

  • Θαμώνας
  • ***
  • Μηνύματα: 37
  • you know what... i'm happy
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #4 στις: 08 Απρ 2008, 09:39:39 μμ »
Eυχαριστώ.

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2450
  • I 'm not young enough to know everything
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #5 στις: 09 Απρ 2008, 12:58:40 μμ »
Η συγκεκριμένη άσκηση είναι φωτογραφία της σειριακής αναζήτησης. Οπότε καλύτερα μεταφέρεις τη γνώση της αναζήτησης και καθαρίζεις. Είναι κάτι σαν υλοποίηση break σε ψευδογλώσσα.

Επίσης νομίζω πως στο συγκεκριμένο παράδειγμα ένα διάγραμμα ροής δεν μπορεί να βοηθήσει.

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

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5024
    • alkisg@im.sch.gr
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #6 στις: 23 Μάι 2009, 01:48:20 μμ »
Τέλος θα ήθελα να επαναλάβω για μια ακόμα φορά ότι ασκήσεις μετατροπής αδόμητου σε δομημένο πηγαίνουν το μάθημα πολύ πίσω. Ελπίζω πως δε θα τις ξαναδούμε ποτέ σε εξετάσεις.

...τώρα κατάλαβα τι εννοούσε ο Γιώργος:  ;D  >:D


nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 360
  • ___
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #7 στις: 23 Μάι 2009, 07:36:31 μμ »
 ;D ;D ;D ;D
Νίκος Ξένος
nkxenos@yahoo.gr

tsakmaki

  • Οπαδός
  • **
  • Μηνύματα: 12
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #8 στις: 24 Μάι 2009, 10:40:48 πμ »
Δείτε κι αυτό:

ΑΡΧΗ
ΛΟΓΙΚΗ<--ΣΥΝΘΗΚΗ1
ΟΣΟ ΛΟΓΙΚΗ ΕΠΑΝΑΛΑΒΕ
  ΕΝΤΟΛΗ 2
  ΑΝ ΣΥΝΘΗΚΗ 3 ΤΟΤΕ
      ΕΝΤΟΛΗ 4
      ΛΟΓΙΚΗ<--ΨΕΥΔΗΣ
  ΑΛΛΙΩΣ
      ΕΝΤΟΛΗ 5
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

vistrian

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 175
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #9 στις: 24 Μάι 2009, 11:15:28 πμ »
f<-Ψευδής
ΟΣΟ συνθηκη_1 και f=Ψευδής ΕΠΑΝΑΛΑΒΕ
   εντολη_2
     ΑΝ συνθηκη_3 ΤΟΤΕ
        εντολη_4
        f<-Αληθής
     ΑΛΛΙΩΣ
        εντολη_5
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
VR in Computing

tsakmaki

  • Οπαδός
  • **
  • Μηνύματα: 12
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #10 στις: 24 Μάι 2009, 11:23:00 πμ »
ΟΚ
Αλλά πες μου αν υπάρχει κάτι που σ`ενοχλεί στη λύση που παρέθεσα

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #11 στις: 24 Μάι 2009, 11:27:57 πμ »

  Θα πω εγώ τι με ενοχλεί

 Μπορούμε να γράψουμε

ΙΣΧΥΕΙ <- ΑΛΗΘΗΣ
ΟΣΟ ΙΣΧΥΕΙ ΕΠΑΝΑΛΑΒΕ
αντί για
ΟΣΟ ΙΣΧΥΕΙ=ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ

φυσικά και μου φαίνεται λογικό, δε λέω αλλά το έχει δει κανείς πουθενά στο διδακτικό πακέτο?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

tsakmaki

  • Οπαδός
  • **
  • Μηνύματα: 12
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #12 στις: 24 Μάι 2009, 11:49:33 πμ »
ΑΡΧΗ
ΛΟΓΙΚΗ<--ΣΥΝΘΗΚΗ1
ΟΣΟ ΛΟΓΙΚΗ=ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
  ΕΝΤΟΛΗ 2
  ΑΝ ΣΥΝΘΗΚΗ 3 ΤΟΤΕ
      ΕΝΤΟΛΗ 4
      ΛΟΓΙΚΗ<--ΨΕΥΔΗΣ
  ΑΛΛΙΩΣ
      ΕΝΤΟΛΗ 5
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ετσι είναι καλύτερα. Συμφωνώ. Αν και ο στόχος δεν ήταν αυτός αλλα απλά να μην προσθέσω επιπλέον συνθήκη στην ΟΣΟ.
Πέρα απ` το διδακτικό πακέτο δεν αποκλείω να πέσει κάτι σαν ..  ΑΝ flag ΤΟΤΕ..
Θάθελα τη γνώμη σας

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1465
  • Δεν αντέχω την (συμ)-πίεσηηη .......
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #13 στις: 24 Μάι 2009, 05:57:47 μμ »
Δε νομίζω ... Πιθανότερο βλέπω να βάζουν στη θεωρία τι είναι σημαία (flag) και γιατί τη χρησιμοποιούμε (Κεφ.8 ) 8)
« Τελευταία τροποποίηση: 24 Μάι 2009, 06:19:34 μμ από Laertis »
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3190
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΑΣΚΗΣΗ ΔΤ1 KEΦΑΛΑΙΟ 6 (GOTO)
« Απάντηση #14 στις: 24 Μάι 2009, 06:42:37 μμ »
Σημαία είναι το σύμβολο κάθε κράτους και το χρησιμοποιούμε κυρίως για τα αμφίβια (όσα έμβυα όντα έχουν βρόχους ή βρόγχους)