Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επιλογής => Μήνυμα ξεκίνησε από: Λαμπράκης Μανώλης στις 24 Ιουλ 2013, 05:05:52 ΜΜ

Τίτλος: Μετατροπή σε δομές αν
Αποστολή από: Λαμπράκης Μανώλης στις 24 Ιουλ 2013, 05:05:52 ΜΜ
Καλησπέρα σε όλους

ήθελα να ρωτήσω το εξής.  έχουμε το παρακάτω τμήμα αλγορίθμου

Αν κ>0 τότε
     εμφάνισε "α"
αλλιώς
      αν λ>0 τότε
            εμφάνισε "β"
      αλλιώς
             εμφάνισε "γ"
τέλος_αν

για να απαλείψουμε την εμφωλευμένη δομή μπορούμε να γράψουμε το εξής?

αν κ>0 τότε
     εμφάνισε "α"
αλλιώς_αν κ<=0 και λ>0 τότε
      εμφάνισε "β"
αλλιώς
       εμφάνισε "γ"
τέλος_αν

1η ερώτηση --> το τμήμα αλλιώς είναι σωστά τοποθετημένο???καλύπτει τις περιπτωσεις που δεν καλύπτονται με τις παραπάνω συνθήκεςή μήπως αντί του αλλιώς χρειάζεται αλλιώς_αν κ<=0 και λ<=0 ???

2η ερώτηση --> στο αλλιώς_αν μπορούμε να γράψουμε αλλιώς_αν λ>0, με την λογική ότι το κ<=0 το έχουμε ελέγξει στην παραπάνω συνθήκη???? 

3η ερώτηση --> αν μπορούμε να κάνουμε το 2, τότε θα έχουμε

αν κ>0 τότε
   εμφάνισε "α"
αλλιώς_αν λ>0 τότε
   εμφάνισε "β"
αλλιώς
   εμφανισε γ"

μπορούμε να έχουμε αρχικά έλεγχο για μία μεταβλητή στο Αν και στη συνέχεια έλεγχο για μία δεύτερη στο αλλιώς_αν (όπως στο παράδειγμα)?? Με τη δομή Αν...αλλιως_αν....αλλώς  δεν καλύπτουμε περιπτώσεις της ίδιας μεταβλητής, δηλαδή στις συνθήκες δεν πρέπει καπου να υπάρχει και η κ στο παράδειγμά μας????

περιμένω τις απόψεις σας, γιατί έχω κολλήσει λιγάκι

ευχαριστώ
Τίτλος: Απ: Μετατροπή σε δομές αν
Αποστολή από: petrosp13 στις 24 Ιουλ 2013, 06:58:13 ΜΜ
Αν σχεδιάσεις το διάγραμμα του πρώτου κώδικα σου και του τελευταίου, θα δεις ότι είναι ακριβώς το ίδιο, οπότε δεν χρειάζονται οι περιττοί έλεγχοι!
Τίτλος: Απ: Μετατροπή σε δομές αν
Αποστολή από: Λαμπράκης Μανώλης στις 24 Ιουλ 2013, 08:15:17 ΜΜ
συμφωνώ, απλά μου φαίνεται περίεργη δομή πχ

Αν χ>0 τότε
    εμφάνισε "α"
Αλλιώς_αν κ>0
     εμφανισε "β"
αλλιώς
     εμφάνισε "γ"
τέλος_αν

έχω στο μυαλό μου πως εξετάζουμε τιμές για το χ, οπότε θα το έβαζα και στη δεύτερη συνθήκη...
Τίτλος: Απ: Μετατροπή σε δομές αν
Αποστολή από: petrosp13 στις 25 Ιουλ 2013, 07:57:28 ΠΜ
H πρώτη συνθήκη όμως σου αποκλείει το 1/3 των περιπτώσεων του χ και οι υπόλοιπες 2/3 θεωρούνται σίγουρες από εκεί και πέρα, οπότε δεν χρειάζεται να ελεγχθούν και ελέγχονται μόνο αυτά που χρειάζεται
Τίτλος: Απ: Μετατροπή σε δομές αν
Αποστολή από: Λαμπράκης Μανώλης στις 05 Μαρ 2014, 12:55:20 ΜΜ
ήθελα να τσεκάρω μία μετατροπή σχετική μα τα παραπάνω, δεν ανοίγω νέο θέμα

αν κ>0 τότε
    αν λ>0 τότε
         εντολές 1
    αλλιώς
         εντολές 2
     τέλος_αν
αλλιώς_αν π<0 τότε
    αν λ=0 τότε
       εντολές 2
    αλλιώς
        εντολές 1
   τέλος_αν
αλλιώς
   εντολές 1
τέλος_αν

είναι ισοδύναμο με

αν (κ>0 και λ>0) ή (κ<=0 και π<0 και λ <>0) ή (κ<=0 και π>=0 ) τότε
   εντολές 1
αλλιώς_αν (κ>0 και λ<=0) ή (κ<=0 και π<0 και λ=0) τότε
   ενολές 2
τέλος_αν

σωστά  ή χάνω κάτι ???

ευχαριστώ