Αποστολέας Θέμα: Φυσικη γλωσσα κατα βηματα  (Αναγνώστηκε 975 φορές)

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Φυσικη γλωσσα κατα βηματα
« στις: 31 Μάι 2017, 10:36:09 μμ »
Καλησπέρα σας μια ερώτηση θέλω να κάνω σε μια άσκηση του περσινού οεφε  η ασκηση ελεγε να μετατρέψετε απο φυσική γλώσσα σε ισοδύναμο  αλγοριθμο με τη χρήση δομημενου προγραμματισμού
Βημα 1:διαβασε α,β
Βημα 2:αν α>0 και β>0τοτε πήγαινε στο βημα 3αλλιώς πήγαινε στο βήμα1
Βημα 3:s<--0
B ημα 4:αν βmod2=1 τοτε πηγαινε στο βήμα 5 αλλιώς  πήγαινε στο βήμα 6
Βημα 5: s<--s+α
Βημα 6: α<--α*2
Βημα7:β<--βdiv2
Βημα8: αν β=0τοτε πήγαινε στο βημα 9 αλλιως πηγαινε στο βημα 4
Βημα9:εμφανισε s
Οι επισημες λύσεις δίνουν σαν απάντηση
Αρχη επαναληψης
  Διαβασε α,β
Μεχρις οτου α>0 και β>0
S<--0
Αρχη επαναληψης
   Αν β mod2=1 τοτε
       S<--s+α
   Τελος αν
   α<-- α*2
   Β<--βdiv2
Μεχρις οτου β=0
Εμφανισε s
  Η ερώτηση μου είναι η εξής γιατί χρησιμοποιεί αν τελος αν και οχι αν αλλιως  τελος αν το τεταρτο βήμα με μπερδεύει

bagelis

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 511
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #1 στις: 31 Μάι 2017, 10:52:04 μμ »
Το βήμα 6 θα εκτελεστεί ούτως ή άλλως ανεξαρτήτως της τιμής της συνθήκης του βήματος 4.
Αν η συνθήκη στο βήμα 4 είναι ψευδής τότε θα εκτελεστεί το 6
Αν η συνθήκη στο βήμα 4 είναι αληθής τότε θα εκτελεστεί το 5 και ακολούθως το 6
Άρα το 6 εκτελείται πάντα, άρα είναι έξω από το ΑΝ

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

Bημα 4:αν βmod2=1 τοτε s<--s+α


theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 116
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #2 στις: 31 Μάι 2017, 11:24:10 μμ »
Πως θα ήταν  η φυσκικη γλώσσα  γραμμένη για να χρησιμοποιούσα αν  αλλιως;;;;

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 380
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #3 στις: 01 Ιούν 2017, 12:05:30 πμ »
Υπάρχει ο τελεστής Όχι (ή Not) οπότε μια ΑΝ όχι Α>5 τότε ...Όμως σε ορισμένες γλώσσες πιάνει το If (συνθήκη) Else...
Το ΟΧΙ μπορεί να είναι σύμβολο (έτσι είναι στη C και στη Java)
https://stackoverflow.com/questions/4775379/using-not-operator-in-if-conditions
https://www.tutorialspoint.com/cprogramming/c_operators.htm δες τo logical not
Το Όχι, ή Not λέγεται unary operator επειδή μπορεί να υπάρχει στην αρχή έκφρασης (ενώ πχ το DIV δεν ανήκει σε αυτούς τους τελεστές γιατί θέλει αριστρά και δεξιά έκφραση).
https://en.wikipedia.org/wiki/Unary_operation
Επίσης λέγεται logical negation https://en.wikipedia.org/wiki/Negation
Στη φυσική γλώσσα θα ήταν Αν οχι το α μεγαλύτερο β τότε... (δεν μπορεί να γίνει Αν α μεγαλύτερο β διαφορετικά, δεν στέκει συντακτικά στη φυσική γλώσσα)

Πάντως στην άσκηση είναι επίτηδες τα βήματα έτσι που δεν χρειάζεται μια τέτοια δομή με όχι. Και εκεί είναι το "δύσκολο" της άσκησης, να κατανοήσει κανείς τη πραγματική ροή και να την ταιριάξει σε πρόγραμμα.

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2219
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #4 στις: 01 Ιούν 2017, 01:15:41 πμ »
Πως θα ήταν  η φυσκικη γλώσσα  γραμμένη για να χρησιμοποιούσα αν  αλλιως;;;;

Bημα 4:αν βmod2=1 τοτε πηγαινε στο βήμα 5 αλλιώς  πήγαινε στο βήμα 7
Βημα 5: s<--s+α
Βήμα 6: Πήγαινε στο βήμα 8
Βημα 7: α<--α*2
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 891
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #5 στις: 01 Ιούν 2017, 09:53:17 πμ »
Μια ιδέα είναι να φτιάχνεις το διάγραμμα ώστε να καταλάβεις πραγματικά τη ροή
Φιλικά,
Γιώργος Θαλασσινός

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2219
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #6 στις: 01 Ιούν 2017, 10:56:53 πμ »
Μια καλύτερη ιδέα είναι να μην ξαναζητηθεί ποτέ τέτοιο αναχρονιστικό θέμα
 >:D >:D >:D
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 891
Απ: Φυσικη γλωσσα κατα βηματα
« Απάντηση #7 στις: 01 Ιούν 2017, 11:04:10 πμ »
χαχαχα
Συμφωνώ τα μάλα !
Φιλικά,
Γιώργος Θαλασσινός