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

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: iliasthes στις 11 Φεβ 2010, 07:21:06 ΜΜ

Τίτλος: Μεταβλητή ελέγχου στη For
Αποστολή από: iliasthes στις 11 Φεβ 2010, 07:21:06 ΜΜ
Καλησπέρα συνάδελφοι. Είχα την εντύπωση οτι στην εντολή επανάληψης η μεταβλητή ελέγχου στην εντολή for μπορεί να είναι είτε ακέραιου τύπου είτε τύπου χαρακτήρα, αλλά δεν μπορεί να είναι πραγματικού τύπου ή αλφαριθμητικού.

Το βιβλίο δεν αναφέρει τίποτα, αλλά σε ένα βιβλίο έλεγε οτι μπορεί να είναι οποιουδήποτε τύπου εκτός από πραγματικού. Δηλαδή αν βάλεις for i:='kalimera' to 'kalinixta' πως θα βρει τα βήματα; Υποθέτω πως το βιβλίο είναι λάθος, αλλά μια δεύτερη γνώμη θα με βοηθούσε.
Τίτλος: Απ: Μεταβλητή ελέγχου στη For
Αποστολή από: Ιωάννης Γκίνης στις 11 Φεβ 2010, 08:38:33 ΜΜ
Η μεταβλητή ελέγχου πρέπει να είναι τακτικού (ordinal) τύπου που σημαίνει:
οτιδήποτε άλλο είναι λανθασμένο.

Το βιβλίο βέβαια για ακόμη μια φορά δε μας τα λέει και τόσο καλά:
ΠαράθεσηΗ αρχική και η τελική τιμή του κύκλου for μπορεί να είναι μια έκφραση οποιουδήποτε διατεταγμένου τύπου. Έτσι, εκτός από ακέραιες τιμές μπορούμε να χρησιμοποιήσουμε μεταβλητές με τιμές τύπου χαρακτήρα char ή λογικού τύπου (boolean).
...και σ' αυτό το σημείο «παθαίνω τη συνήθη κρίση μου» από τις παραλείψεις / ασάφειες που έχει αυτή η παράγραφος.
Τίτλος: Απ: Μεταβλητή ελέγχου στη For
Αποστολή από: iliasthes στις 11 Φεβ 2010, 10:00:32 ΜΜ
Ευχαριστώ για τη βοήθεια Τελικά και το πανεπιστημιακό βιβλίο που είχα λάθος τα έλεγε  :D. Εντάξει θέλει να βάλεις και τη λογική σου, ποιο θα είναι το επόμενο βήμα σε ένα αλφαριθμητικό και σε έναν πραγματικό αριθμό, αλλά καλό είναι να ορίζονται με σαφήνεια.
Τίτλος: Απ: Μεταβλητή ελέγχου στη For
Αποστολή από: Ιωάννης Γκίνης στις 11 Φεβ 2010, 11:00:03 ΜΜ
Άσχετο με το θέμα αλλά... η ιστορία με τους πραγματικούς και τη For με πάει λίγο πίσω. Ήταν μόλις το πρώτο μου μήνυμα στο forum και είχα νιώσει πολύ άσχημα  :-[

Τα υπόλοιπα εδώ: https://alkisg.mysch.gr/steki/index.php?topic=181.msg1120#msg1120
Τίτλος: Απ: Μεταβλητή ελέγχου στη For
Αποστολή από: iliasthes στις 11 Φεβ 2010, 11:19:25 ΜΜ
Συνάδελφε, οι απορίες που πολλές φορές έχουμε είναι αστείες και έχουν να κάνουν με το γεγονός οτι πρόκειται για ένα πανελλαδικώς εξαταζόμενο μάθημα και ένα βιβλίο με αρκετά λάθη και παραλαείψεις. Για μένα το να διαπιστώσω αυτό που ρώτησα δεν ήθελε τίπτα παραπάνω παρά να ετοιμάσω από ένα παράδειγμα για κάθε περίπτωση τύπου δεδομένων της μεταβλητής ελέχγου και να διαπιστώσω ποιες είναι αποδεκτές (πάλι βέβαια κάποια χαρακτηριστικά της γλώσσας εξαρτώνται από την έκδοση του μεταγλωττιστή που έχεις, πχ θυμάμαι στο περιβάλλον TP 7 αν δεν αρχικοποιούσες μια μεταβλητή της έδινε μια τυχαία τιμή μέσα στα αποδεκτά όρια του τύπου της ενώ στον free-pascal compiler που χρησιμοποιώ δίνει αρχική τιμή το 0 αν δεν αρχικοποιήσεις τη μεταβλητή).

Οπότε πάντα μια δεύτερη ή και τρίτη γνώμη σε βοηθάει να σιγουρευτείς.
Τίτλος: Απ: Μεταβλητή ελέγχου στη For
Αποστολή από: Καρκαμάνης Γεώργιος στις 17 Φεβ 2010, 08:59:10 ΠΜ
Παράθεση από: iliasthes στις 11 Φεβ 2010, 07:21:06 ΜΜ
Το βιβλίο δεν αναφέρει τίποτα, αλλά σε ένα βιβλίο έλεγε οτι μπορεί να είναι οποιουδήποτε τύπου εκτός από πραγματικού. Δηλαδή αν βάλεις for i:='kalimera' to 'kalinixta' πως θα βρει τα βήματα; Υποθέτω πως το βιβλίο είναι λάθος, αλλά μια δεύτερη γνώμη θα με βοηθούσε.
Ισως σκόπιμα το βιβλίο δεν εμβαθύνει καθώς οι μαθητές πρέπει να μάθουν τα βασικά στον προγραμματισμά προς το παρον.