Αποστολέας Θέμα: Για i απο...  (Αναγνώστηκε 7074 φορές)

coolio

  • Νέος
  • *
  • Μηνύματα: 2
Για i απο...
« στις: 15 Φεβ 2006, 08:06:07 μμ »
Ειμαι μαθητής της 3ης ταξης του ενιαίου λυκειου και έχω κάποια παράπονα σχετικα με το μαθημα!

Επειδή γνωρίζω αρκετα καλα μπορώ να πω , τρεις γλώσσες προγραμματισμου, βλέπω πως στις ασκήσεις του βιβλίου παρουσιάζονται μεγάλα κενα και σκοτεινά μερη για την επεξήγηση της "ψευδογλώσσας" !

Θα ήθελα κάποιος να μου απαντήσει στις :

1)Γινεται διάκριση πεζών/ κεφλαίων στη γλώσσα;
2)Δεν αναφέται η σειρα "ισχυρότητας των λογικών τελεστών!
   Γνωρίζω πως η σειρά τους είναι ΟΧΙ, ΚΑΙ , Η , αλλα στο βιββλιο δεν αναφέρεται πουθενά αυτό! ΕΠΕΙΔΗ δεν αναφέρεται η σειρά στις πανελλήνιες δεν πρέπει να χωρίζουν τις πράξεις με παρενθέσεις
π.χ.   ΟΧΙ( (10<40 Η 80>100)ΚΑΙ (20<45)  )

3)παραθέτω το κομματι του κώδικα :

Για ι απο 1 μεχρι Ν
      Αν    Α[ι] = α   τοτε
            θέση <--  ι
            ι <--  Ν+1
Τελος_επανάλληψης 

Ειχα ασκηση στο διαγώνισμα να γραψω αλγόριθμο που να βρίσκει την πρώτη θέση που εμφανίζεται το στοιχείο που θα δώσει ο χρήστης (υποτίθεται πως υπάρχει στον πίνακα) !

Μου την πέιρε λάθος την άσκηση επειδή τερματισα την "για" μεταβάλοντας το "ι" .
Δικαιολογία :
Στο τετράδιο ασκήσεων λέει πως δεν ππρεπει να παρεμβαινουμε στη "για"...
Απ' οσο ξέρω απο προγραμματισμό μπορώ να το πράξω αυτό!
Ποια είναι η άποψή σας;

 ;D ;D ;D ;D ;D

Τα παιδία στη τάξη δισκολέυονται να μάθουν να γράφουν κωδικα!
Τους φαίνεται δύσκολο (ευτυχώς για εμένα για να αριστεύσω στις πανελλαδικές)
Στην οιπόλοιπα σχολεία  στην ελλαδα σημβαίνει το ίδιο ;

Φιλικα.

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3301
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Για i απο...
« Απάντηση #1 στις: 16 Φεβ 2006, 09:39:31 πμ »

Αγαπητέ φίλε,

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

Το βιβλίο έχει αρκετά θολά σημεία (μερικά από τα οποία αναφέρεις) αλλά αυτό δε σημαίνει οτι όλα αυτά είναι λάθη. Πολλά έγιναν συνειδητά. Δεν μπήκαν σε τόσες λεπτομέρειες γιατί δεν ήταν αυτό ο σκοπός τους μαθήματος.

1. Στο βιβλίο καθηγητή λέει οτι όλα τα παραδείγματα του διδακτικού πακέτου σε ΓΛΩΣΣΑ είναι με κεφαλαία, αλλά δεν λέει οτι αυτό είναι συντακτικά απαραίτητο - αυτή είναι η αλήθεια. Για λόγους ομοιογένειας λοιπόν σχεδόν όλα τα βοηθήματα και καθηγητές πράττουν το ίδιο. Κάποιοι άλλοι όμως (οι αυθεντίες) γράφουν με πεζά ή και αλλιώς (χρήση Εμφάνισε στο πρόγραμμα κ.λ.π.)
Αυτό δεν αποκλείει και θέματα πανελλαδικών που έγραφαν προγράμματα (ή και υποπρογράμματα) με πεζά γράμματα. Δεν είναι λάθος, αλλά μερικά πράγματα πρέπει να προβάλλονται και υπο παιδαγωγικό πρίσμα και την πλευρά των μαθητών

Από την άλλη, μπορεί κανείς να υπογράψει, οτι αν κάποιος μαθητής γράψει με πεζά ένα πρόγραμμα, δεν θα βρεθεί κάποιος εξεταστής που θα του κόψει μονάδες;

2. Έχει συζητηθεί διεξοδικά το θέμα στο παρόν forum, το θέμα δεν καλύπτεται στο βιβλίο. Προσωπικά, θεωρώ οτι το όχι εκτελείται πρώτο και τα και, ή με τη σειρά που εμφανίζονται - οπωσδήποτε πρέπει στο γραπτό να γραφτεί η υπόθεση που πραγματοποιείς στη σκέψη σου (αφού δεν γνωρίζω την ιεραρχία και, ή θεωρώ οτι έχουν ίδια ιεραρχία και τα εκτελώ από αριστερά προς τα δεξιά)

3. Στο τετράδιο μαθητή λέει πως ποτέ δεν πρέπει να τροποποιείς στο Για την αρχική, τελική τιμή, το βήμα και την τιμή του μετρητή εντός του βρόχου.
Αφού είσαι μαθητής, αυτό το κείμενο απευθύνεται κυρίως σε σένα
ΔΕΝ ΜΠΟΡΩ ΝΑ ΣΚΕΦΤΩ ΚΑΠΟΙΟ ΛΟΓΟ ΓΙΑ ΝΑ ΜΗΝ ΤΟ ΚΑΝΕΙΣ. Αν θέλεις να υλοποιήσεις μια επανάληψη που τερματίζεται νωρίτερα, υπάρχει η ωραιότατη δομή Όσο (η Για χρησιμοποιείται σε γνωστό εξαρχής πλήθος επαναλήψεων)...

Κατά τη γνώμη μου, καλώς σου έκοψε ο καθηγητής την άσκηση, για να σε οδηγήσει τώρα (έγκαιρα, πριν τις εξετάσεις) στη σωστή κατεύθυνση

Όλοι οι μαθητές της κατεύθυνσής σου δυσκολεύονται στην κατανόηση των εννοιών του μαθήματος.
Το δικό μου σλογκαν είναι πως το μάθημα είναι εύκολο αν ΣΚΕΦΤΟΜΑΣΤΕ ΑΠΛΑ και λύνουμε κάθε άσκηση ΒΗΜΑ-ΒΗΜΑ

Έχεις ένα σαφές πλεονέκτημα λόγω των πρότερων γνώσεών σου, αλλά πρέπει να βρεις μια φόρμουλα, ώστε αυτό να μην σου δημιουργήσει πρόβλημα. Και να θυμάσαι οτι πάντα έχεις να πάρεις κάτι καινούριο με την προσοχή σου καθηγητές σου...

Καλή επιτυχία στο δύσκολο έργο σου. Δίνεις 6 (ή 7) μαθήματα και όχι 1

Με εκτίμηση,

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Για i απο...
« Απάντηση #2 στις: 16 Φεβ 2006, 10:43:31 πμ »
Και τα 3 θέματα που έθεσες είναι εύστοχα και μας έχουν απασχολήσει κατά καιρούς.

Απαντώ καταρχήν στο 3ο

Καταρχήν να πω ότι και εγώ διαφωνώ με τον αλγόριθμό σου και το συγκεκριμένο παράδειγμα της εξόδου από την «Για» με αλλάγή του μετρητή το έχω θέσει ευθέως σε ένα άλλο θέμα που άνοιξα με τίτλο «Ανορθόδοξοι αλγόριθμοι».

Όμως δε μου αρκεί σαν αιτιολόγηση το «Έτσι τα λέει το βιβλίο». Το βιβλίο κάνει και λάθη αλλά πέρα από αυτό με ενδιαφέρουν τα επιχειρήματα και όχι το τι λέει κάποιο  βιβλίο. Το να επικαλείσαι το σχολικό βιβλίο είναι ένα καλό επιχείρημα όταν θες να εξηγήσεις γιατί διδάσκεις κάτι και όχι όταν θες να εξηγήσεις γιατί ισχύει κάτι. Θα προσπαθήσω να σταθώ στο δεύτερο.

Στον προγραμματισμό δεν ισχύει το «Ότι τρέχει και δίνει σωστά αποτελέσματα είναι σωστό». Παλιά τα προγράμματα ήταν εντελώς άναρχα. Η χρήση της εντολής goto τα έκανε δυσανάγνωστα και δύσκολα μπορούσαν να συντηρηθούν. Ακόμα και ο ίδιος ο προγραμματιστής μετά από λίγο καιρό δεν μπορούσε να καταλάβει τα ίδια του τα προγράμματα..

Σιγά σιγά άρχισαν κάποιοι να καταλαβαίνουν ότι ο τρόπος με τον οποίο είναι φτιαγμένα τα προγράμματα θα πρέπει να διέπεται από κάποιες αρχές. Ο δομημένος προγραμματισμός άρχισε να θεμελιώνεται.

Με αυτά θέλω να πω ότι πλέον στον προγραμματισμό δεν είναι σωστό ότι τρέχει και δίνει σωστά αποτελέσματα. Υπάρχουν και άλλα πράγματα που πρέπει να τηρεί ο προγραμματιστής. Φαντάσου κάτι σαν συμβάσεις που πρέπει να τηρούνται από όλους έτσι ώστε να μπορεί ο ένας να διαβάσει τον κώδικα του άλλου ευκολότερα, να μπορείς να πάρεις κώδικα από ένα πρόγραμμα και να το μεταφέρεις σε άλλο πρόγραμμα κλπ.

Ο σωστός προγραμματισμός έχει κάποια φιλοσοφία.

Η εντολή «Όσο.. επανάλαβε» φτιάχτηκε έτσι ώστε να μπορεί να διακοπεί από κάτι που συμβαίνει μέσα στο βρόχο. Αυτό μπορεί να είναι και το ότι φτάσαμε σε κάποιον αριθμό επαναλήψεων.
Η εντολή «Για.. από.. μέχρι» φτιάχτηκε για να εγγυάται σταθερό αριθμό επαναλήψεων. Αυτός ακριβώς είναι ο λόγος για τον οποίο χρησιμοποιήσαμε συγκεκριμένη  λεκτική περιγραφή της εντολή «Για.. από.. μέχρι» και όχι κάποια άλλη.

Το ερώτημα που θέτεις είναι σαν λες «μπορώ να κόψω την εντολή Για αλλάζοντας το μετρητή;» Η απάντηση είναι ότι μπορείς! Αλλά θα ανοίξεις το σκουπιδοντενεκέ και θα πετάξεις μέσα το λόγο για τον οποίο φτιάξαμε αυτές τις 2 εντολές και δε φτιάξαμε μόνο μία.

Ο αλγόριθμός σου είναι αντίθετος στη φιλοσοφία του προγραμματισμού. Πρόκειται για ένα λάθος που είναι συνηθισμένο σε αυτοδίδακτους προγραμματιστές. Συνήθως σημαίνει ότι ο προγραμματιστής έχει μεγαλύτερη εξοικείωση με τη «Για» ενώ αποφεύγει την «Οσο».

Όταν με το καλό συνεχίσεις την ενασχόλησή σου με τον προγραμματισμό (αν διαλέξεις βέβαια τέτοια κατεύθυνση στις σπουδές σου) θα δεις ότι δεν είναι καθόλου αρκετό το να γνωρίζεις κάποια γλώσσα. Επίσης δεν έχει σημασία το πόσες γλώσσες γνωρίζεις. Σημασία έχει να ξέρεις να προγραμματίζεις, δηλαδή να μυηθείς σε όλη τη φιλοσοφία του προγραμματισμού.

Απαντώ στο 1ο

Ο υπολογιστής χρησιμοποιεί διαφορετικό κωδικό όταν αποθηκεύει τα κεφαλαία και τα μικρά γράμματα. Έτσι στη γενική περίπτωση άλλο κεφαλαία και άλλο μικρά. Πολλά περιβάλλοντα το τηρούν αυτό και είναι case sensitive. Σε άλλα αυτό δεν ισχύει και όλα τα γράμματα αντιμετωπίζονται το ίδιο. Επειδή δεν υπάρχει κάποια εγκεκριμένη υλοποίηση της ΓΛΩΣΣΑΣ δεν γνωρίζουμε με βεβαιότητα τι ισχύει σε αυτή την περίπτωση. Επειδή το βιβλίο στον ορισμό των εντολών τα έχει όλα κεφαλαία έτσι για λόγους ασφάλειας τα βάζουμε κεφαλαία. Επίσης τα βάζουμε κεφαλαία για λόγους ομοιομορφίας. Καλό είναι να γράφουμε με ένα τρόπο και ας είναι αυτός του διδακτικού πακέτου. Αλλά δε νομίζω να υπάρχει κανείς που θα κόψει βαθμούς αν χρησιμοποιήσει κανείς μικρά. Τη σκέψη βαθμολογούμε. Και αυτή δεν κρύβεται πίσω από το μέγεθος των χαρακτήρων.

Απαντώ και στο 2ο

Στο ζήτημα της προτεραιότητας των λογικών τελεστών έχει γίνει μεγάλη κουβέντα.
Στη λογική άλγευρα μπορείς να ορίσεις το «ΚΑΙ» να έχει μεγαλύτερη προτεραιότητα από το «Ή» αλλά μπορείς να τα ορίσεις να έχουν και την ίδια προτεραιότητα. Συνήθως τα βιβλία την ορίζουν με τον πρώτο τρόπο. Σπάνια ορίζεται ο δεύτερος.
Δυστυχώς το βιβλίο δεν ορίζει την προτεραιότητα των λογικών τελεστών. Οπότε υπάρχει ασάφεια. Στα μαθηματικά δεν αρκεί να ορίσεις μια πράξη. Πρέπει να πεις πως εντάσσεται και στο υπόλοιπο περιβάλλον. Από κουβέντες που κάναμε λίγο πολύ όλοι συμφωνούμε στο ότι υπάρχει ασάφεια στο βιβλίο. Φαίνεται όμως πως αυτοί που βάζουν τα θέματα είναι γνώστες τις κατάστασης και δε θα βάλουν την κακιά ερώτηση

Α Ή Β ΚΑΙ Γ

η οποία θα ξεμπροστιάσει την ασάφεια.

Εύχομαι καλή επιτυχία


evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3510
  • to Iterate is human to Recurse divine
Απ: Για i απο...
« Απάντηση #3 στις: 16 Φεβ 2006, 04:44:25 μμ »
Γενικά συμφωνώ με αυτά που λες απλά έχω να προσθέσω δυο πράγματα (1 ερώτηση)

1)Είχα την εντύπωση ότι γενικά όσον αφορά το θέμα της προτεραιότητας των λογικών τελεστών, προηγείται το ΟΧΙ, μετα είναι το ΚΑΙ, και μετά είναι το Ή. Ξέρεις κάποια γλώσσα στην οποία να ισχύει κάτι διαφορετικό?

2) Όσον αφορά την goto σήμερα χρησιμοποιείται αρκετά το αδερφάκι της η break (βλέπε switch στις C,C++,Java) και μην ξεχνάμε και τα exceptions τα οποία είναι ουσιαστικά άλμα σε άλλο σημείο του προγράμματος, και όπως είχε πει και ο Ken Thomson

If you want to go somewhere, goto is the best way to get there :-)


Στο ζήτημα της προτεραιότητας των λογικών τελεστών έχει γίνει μεγάλη κουβέντα.
Στη λογική άλγευρα μπορείς να ορίσεις το «ΚΑΙ» να έχει μεγαλύτερη προτεραιότητα από το «Ή» αλλά μπορείς να τα ορίσεις να έχουν και την ίδια προτεραιότητα. Συνήθως τα βιβλία την ορίζουν με τον πρώτο τρόπο. Σπάνια ορίζεται ο δεύτερος.
Δυστυχώς το βιβλίο δεν ορίζει την προτεραιότητα των λογικών τελεστών. Οπότε υπάρχει ασάφεια. Στα μαθηματικά δεν αρκεί να ορίσεις μια πράξη. Πρέπει να πεις πως εντάσσεται και στο υπόλοιπο περιβάλλον. Από κουβέντες που κάναμε λίγο πολύ όλοι συμφωνούμε στο ότι υπάρχει ασάφεια στο βιβλίο. Φαίνεται όμως πως αυτοί που βάζουν τα θέματα είναι γνώστες τις κατάστασης και δε θα βάλουν την κακιά ερώτηση

Α Ή Β ΚΑΙ Γ

η οποία θα ξεμπροστιάσει την ασάφεια.

Εύχομαι καλή επιτυχία


What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

moi

  • Επισκέπτης
Απ: Για i απο...
« Απάντηση #4 στις: 17 Φεβ 2006, 01:14:08 πμ »
Εγώ πάντως πιστεύω ότι δεν ξέρεις τρεις γλώσσες προγραμματισμού(δεν εννοώ τα ονόματά τους)  :o

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Για i απο...
« Απάντηση #5 στις: 17 Φεβ 2006, 10:01:19 πμ »
Για την προτεραιότητα των τελεστών δε μίλησα για κάποιες γλώσσες αλλά για τα μαθηματικά της υπόθεσης. Αυτά που γράφω τα είχα διαβάσει στο βιβλίο λογικής σχεδίασης του Mano. Πιο παλιά είχε γίνει κάποια κουβέντα και νομίζω ότι υπήρξαν κάποιοι μέσα στο στέκι που είχαν αναφέρει ότι σε κάποιες γλώσσες η προτεραιότητα είναι από αριστερά προς τα δεξιά. Εγώ δε γνωρίζω κάποια τέτοια γλώσσα αλλά αυτό δε λέει τίποτα. Αφενός η μνήμη μου είναι άθλια, αφετέρου δεν ξέρω πολλές γλώσσες.

Για το θέμα της goto δε διαφωνούμε. Είχα αναφέρει την άποψή μου στο θέμα

https://alkisg.mysch.gr/steki/index.php?topic=221.0

Όπως βλέπεις ούτε εγώ είμαι απόλυτος. Βέβαια η break αν και κάνει άλμα το κάνει με κάποιους περιορισμούς. Δεν το κάνει αυθαίρετα όπως goto που μπορεί να σου κάνει τον κώδικα μπάχαλο.

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

Στην απάντησή μου στον coolio τη χρησιμοποίησα για να του εξηγήσω ότι ο προγραμματισμός έχει κάποιες αρχές και φιλοσοφία. Ουσιαστικά επικαλέστηκα τις περιπτώσεις που η goto κάνει τον κώδικα μπάχαλο. Δεν είπα ότι αυτό συμβαίνει πάντα.

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

Βέβαια όσοι καταλαβαίνουν τη διαφορά έτσι κι αλλιώς δεν τη  χρησιμοποιούν στα πλαίσια του μαθήματος  :)

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

Προκόπης

  • Επισκέπτης
Απ: Για i απο...
« Απάντηση #6 στις: 21 Φεβ 2006, 12:39:44 πμ »
Νομίζω οτι το πρόβλημά σου στην λανθασμένη άσκηση είναι , τελικά , η έλλειψη της τέλος_αν και οχι η "βίαιη" διακοπή τηε εντολής "Για ....   ".
Είναι όμως πολύ καλή πνευματική και προγραμματιστική άσκηση , η χρήση των άλλων δύο μορφών επαναληπτικής δομής και κάκιστη τακτική της καθολικής χρήσης της " Για ....   ".
Θα ήθελα να μάθω όμως , αν το πολύ καλό ενδιαφέρον σου για το συγκεκριμένο μάθημα , το εχεις και για τα υπόλοιπα μαθήματα . Σου το εύχομαι.
Φιλικά

EleniK

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 708
Απ: Για i απο...
« Απάντηση #7 στις: 21 Φεβ 2006, 10:18:46 πμ »
Αγαπητέ μαθητή,

θα σου είναι ιδιαίτερα χρήσιμες οι γνώσεις σου στον προγραμματισμό, ειδικά αφού περάσεις σε κάποια σχετική σχολή. Παρολαυτά για το συγκεκριμένο μάθημα, έχω συναντήσει μαθητές με καλές γλώσσες προγραμματισμού. Κανείς από αυτούς δεν πήρε 100! Οι πολλές τους γνώσεις μάλλον τους μπέρδευαν παρά τους βοήθησαν. Έχεις κάποιο πλεονέκτημα αλλά πρέπει να μάθεις να σκέφτεσαι και να ενεργείς με τους κανόνες που προσδιορίζει το συγκεκριμένο μάθημα και όχι γενικά από τις γλώσσες προγραμματισμού. Αντίθετα, παιδιά με καμία προηγούμενη σχέση με προγραμματισμό κατάφεραν πολλές φορές να φτάσουν το 100 και αυτό γιατί είχαν πιο καθαρή και απλή σκέψη.
Πρόσεξε λοιπόν και καλή σου επιτυχία.   
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

pchrist

  • Νέος
  • *
  • Μηνύματα: 5
Απ: Για i απο...
« Απάντηση #8 στις: 15 Μάρ 2009, 11:30:43 μμ »
Μια ερώτηση για την Για ...

Έστω Για i απο τ1 μέχρι τ2 με_βήμα τ3

1. Αν τι<τ2 και τ3<0 τι θα γίνει; Ελέγχεται πρώτα το βήμα ή εκτελούνται τα βήματα κανονικά οπότε έχουμε ατέρμων βρόχο;
2. Αν τ1=τ2 τότε τι γίνεται ανάλογα με το βήμα; Αν είναι θετικό έχω μία επανάληψη και τέλος (όπως έχουμε συνηθίσει αν ήταν τ1 διάφορο του τ2). Αν όμως είναι αρνητικό συμβαίνει το ίδιο ή όχι;

Τελικά γίνεται έλεγχος του βήματος στην αρχή πριν εκτελεστεί οτιδήποτε ή γίνεται μόνο έλεγχος τ1-τ2 και καθορίζεται το κριτήριο - είδος ανισότητας;


π.χ

Για i από 1 μέχρι 4 με_βήμα -1
   Εμφάνισε i
Τέλος_επανάληψης

Αν θεωρήσω ότι ελέγχω τ1-τ2<0 άρα ελέγχω πάντα αν τ1<=τ2 τότε έχω ατέρμων βρόχο
Αν θεωρήσω από την αρχή ότι έχω αρνητικό βήμα τότε ελέγχω τ1>=τ2 άρα δεν εκετελείται ποτε


Η κρίσιμη ερώτηση αν τ1=τ2 τότε τι γίνεται;

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1128
Απ: Για i απο...
« Απάντηση #9 στις: 16 Μάρ 2009, 12:55:37 πμ »
Το συγκεκριμένο ερώτημα που θέτεις έχει συζητηθεί πολλές φορές στο στέκι
Μπορείς κάνοντας μια αναζήτηση να βρεις όσες πληροφορίες θέλεις. Επιγραμματικά:

1. Πρώτα ελέγχεται η συνθήκη και μετά εκτελούνται οι εντολές
2. Η συνθήκη καθορίζεται από το βήμα.
3. Αν τι<τ2 και τ3<0 τότε δεν εκτελείται
4. Αν τ1=τ2 για θετικό και για αρνητικό βήμα θα εκτελεστεί μια φορά


nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 367
  • ___
Απ: Για i απο...
« Απάντηση #10 στις: 17 Μάρ 2009, 07:38:50 πμ »
Αν και έχει περάσει καιρός, τι έχετε να πείτε για τη έλλειψη του Τέλος_Αν στο παράδειγμα στην αρχή της συζήτησης;
Δηλαδή το τμήμα:

Για Ι από 1 μέχρι 10
  Αν Ι<=5 τότε
      Εμφάνισε 'Ναι'
Νίκος Ξένος
nkxenos@yahoo.gr

nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 367
  • ___
Απ: Για i απο...
« Απάντηση #11 στις: 17 Μάρ 2009, 07:42:13 πμ »
Sorry για το προηγούμενο, λάθος.

Αν και έχει περάσει καιρός, τι έχετε να πείτε για τη έλλειψη του Τέλος_Αν στο παράδειγμα στην αρχή της συζήτησης;
Δηλαδή το τμήμα:
 
  Αλγόριθμος Α1
  Διάβασε Ι
  Αν Ι<=5 τότε
      Εμφάνισε 'Ναι'
      Εμφάνισε 'Οχι'
  Τέλος Α1

είναι σωστό;
Αν είναι τι ακριβώς θα εμφανίσει; Τι λέτε;
Νίκος Ξένος
nkxenos@yahoo.gr

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2805
  • Πύργος Ηλείας
Απ: Για i απο...
« Απάντηση #12 στις: 17 Μάρ 2009, 08:53:58 πμ »
Sorry για το προηγούμενο, λάθος.

Αν και έχει περάσει καιρός, τι έχετε να πείτε για τη έλλειψη του Τέλος_Αν στο παράδειγμα στην αρχή της συζήτησης;
Δηλαδή το τμήμα:
 
  Αλγόριθμος Α1
  Διάβασε Ι
  Αν Ι<=5 τότε
      Εμφάνισε 'Ναι'
      Εμφάνισε 'Οχι'
  Τέλος Α1

είναι σωστό;
Αν είναι τι ακριβώς θα εμφανίσει; Τι λέτε;

Κανονικά δεν είναι σωστό... Ας πούμε ότι έχει συντακτικό λάθος...

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1511
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: Για i απο...
« Απάντηση #13 στις: 17 Μάρ 2009, 09:59:14 πμ »
Αν το Ι<=5 τότε θα εμφανίσει και "ναι" και "όχι"
Αν το Ι>5 τότε θα εμφανίσει  "όχι"
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2805
  • Πύργος Ηλείας
Απ: Για i απο...
« Απάντηση #14 στις: 17 Μάρ 2009, 10:04:35 μμ »
Αν το Ι<=5 τότε θα εμφανίσει και "ναι" και "όχι"
Αν το Ι>5 τότε θα εμφανίσει  "όχι"

Δεν συμφωνώ!

Νομίζω ότι η μόνη περίπτωση που στους αλγορίθμους δεν μπαίνει Τέλος_αν σε εντολή Αν είναι όταν έχουμε μία μόνο εντολή που θα πρέπει να τοποθετείται δεξιά από το "τότε". Στις άλλες περιπτώσεις πρέπει να μπαίνει και Τέλος_αν. Στη Γλώσσα ούτε καν προβλέπεται κάτι τέτοιο (πρέπει να μπαίνει πάντα Τέλος_αν).

Γιατί δηλαδή να θεωρήσουμε ότι το "Εμφάνισε 'Ναι'" ανήκει στο "τότε" της Αν; Και τότε γιατί να μη θεωρήσουμε ότι η μόνη εντολή που υπάρχει στο "τότε" είναι η "κενή εντολή" που υπάρχει δεξιά από αυτό;  >:D
Άρα έτσι καμία Εμφάνισε δεν ανήκει στην Αν, άρα θα εμφανίζεται και το 'Ναι' και το 'Όχι' σε κάθε περίπτωση!

Εγώ λοιπόν πιστεύω ότι ο προηγούμενος τρόπος γραφής δεν πρέπει να χρησιμοποιείται...