Απορίες σε λογικό διάγραμμα For / τιμές παραμέτρων σε διαδικασία

Ξεκίνησε από Λαμπράκης Μανώλης, 02 Μαρ 2015, 10:02:42 ΠΜ

« προηγούμενο - επόμενο »

Λαμπράκης Μανώλης

καλημέρα σε όλους

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

1) λογικό διάγραμμα στην for δεν έχει το βιβλίο ... εγώ αυτό που μπορώ να σκεφτώ σαν λύση είναι  α) να κάνουμε το αντίστοιχο διάγραμμα ροής της while, όπως στο ΑΕΠΠ β) να κάνουμε το σχήμα με το τετράγωνο που έχει το σχολικό βιβλίο για την Για...κάποια ιδέα ???

2)στην διαδικασία, στο παράδειγμα σελ 114 του σχολικού θέλω να ρωτήσω  α) στο κύριο πρόγραμμα, εμφανίζει αρχική τιμή για το άθροισμα 0.00 ... δεν βλέπω κάποια αρχικοποίηση, στην pascal αν μία πραγματική μεταβλητή δεν αρχικοποιηθεί, όπως εδώ, έχει τιμή 0.00 ?? δεν πρέπει να την αρχικοποιήσουμε για να την χρησιμοποιήσουμε ???  β) κατά την κλήση  διαδικασίας, οι πραγματικές παράμετροι δίνουν τιμές στις τυπικές...η παράμετρος μεταβλητής sum, παίρνει κάποια τιμή από την athr ??? δηλαδή αν κάναμε writeln(sum); πρώτη πρώτη εντολή στη διαδικασία, θα εμφάνιζε κάποια τιμή ??

ευχαριστώ

Λαμπράκης Μανώλης

ερώτηση νο 3: μπορεί μία πραγματική και τυπική παράμετρος να έχουν το ίδιο όνομα ??

περιμένω τις απαντήσεις σας

Sammy Dead

Στην 1), ναι πρέπει να γίνει νοητή μετατροπή σε while και μετά το διάγραμμα με συνθήκη.
Στη 2), α) πρέπει να αρχικοποιηθεί η athr οπότε είναι άκυρο το writeln(athr) πριν πάρει τιμή. β)Κατά την κλήση οι παράμετροι τιμών δίνουν τιμές μέσα στη διαδικασία ενώ οι παράμετροι μεταβλητών παίρνουν τιμές από τη διαδικασία και τις επιστρέφουν στο κυρίως. Οπότε η athr δεν έχει τιμή άρα ούτε η sum.

γ) μπορούν

Λαμπράκης Μανώλης

Παράθεση από: Sammy Dead στις 02 Μαρ 2015, 11:39:31 ΠΜ
Στην 1), ναι πρέπει να γίνει νοητή μετατροπή σε while και μετά το διάγραμμα με συνθήκη.
Στη 2), α) πρέπει να αρχικοποιηθεί η athr οπότε είναι άκυρο το writeln(athr) πριν πάρει τιμή. β)Κατά την κλήση οι παράμετροι τιμών δίνουν τιμές μέσα στη διαδικασία ενώ οι παράμετροι μεταβλητών παίρνουν τιμές από τη διαδικασία και τις επιστρέφουν στο κυρίως. Οπότε η athr δεν έχει τιμή άρα ούτε η sum.

γ) μπορούν


Συμφωνούμε απόλυτα και στα 3 .... το θέμα είναι ότι
--> το 1 δεν το λέει κάπου στο βιβλίο, και κάποιος μαθητής μπορεί να πει "θα κάνω το αντίστοιχο της ΓΙΑ που έχει το βιβλίο" .... αλήθεια θα είνια σωστό ?? εγώ θεωρώ ναι, αφού δεν λέει κάτι άλλο το βιβλίο
--> το 2 το έχει παράδειγμα το βιβλίο .... και είναι δύσκολο να πεις "το έχει λάθος το βιβλίο, θα κάνετε άλλο εσείς" στους μαθητές...καλώς ή κακώς υπάρχει η αμφιβολία
--> το 3 ξανά δεν αναφέρεται, αν και λίογ που έψαξα είδα πως δεν γίνεται,τώρα τι να πω δεν ξέρω

κάποια πρόταση σε αυτά ???

ευχαριστώ για την απάντηση

Sammy Dead

1. Ναι, εφόσον υπάρχει στο βιβλίο μπορεί να το κάνει όπως θέλει ο μαθητής.

2. Κι όμως τρέχει χωρίς αρχικοποίηση. Έτρεξα ένα παράδειγμα και δε μου βγαλε error.

3. Και όπως συμβαίνει στο 2) και η sum έχει αρχική τιμή 0 πριν πάρει το άθροισμα. Αυτή όμως η τιμή δεν έρχεται από το κυρίως.

Τσέκαρε αυτό που έτρεξα:

https://ideone.com/4aNjp2

Sammy Dead

Και παραμέτρους με το ίδιο όνομα μπορούμε να έχουμε (γίνονται και ωραίες ασσκήσεις έτσι >:D >:D)

https://ideone.com/yE7vLA

Λαμπράκης Μανώλης

καλησπέρα

εγώ που το έτρεξα σε ένα άλλο online  μεταφραστή pascal δεν μου έτρεξε....το θέμα είναι ότι μπορούμε να βγάλουμε γενικό κανόνα ?? το 0 από που προκύπτει, αυτό δεν έχω καταλάβει ... αν είναι η παράμετρος integer έχει τιμή 0 αν δεν αριχκοποιηθεί, αν είναι real ο.οο ???? αν είναι char?? αν είναι string ??? τι τιμές έχουν αρχικά ??? τι διαφορά έχει η τιμή 0 που έχουμε δώσει από την τιμή 0 που εμφανίζεται δίχως αρχικοποίηση  ??? δεν μπορώ να τα ξεκαθαρίσω... τι άποψη έχεις/έχετε για αυτά ???

ευχαριστώ

Sammy Dead

Μόνο με δοκιμές. Αλλά αν είναι θέμα compiler, τότε εγώ θα έλεγα να δώσουμε σα γενικό κανόνα, πάντα αρχικοποίηση.

Πουγαρίδης Απόστολος

Το βιβλίο είναι κακογραμμένο και έχει πάρα πολλά λάθη. Το μόνο που θα ήθελα να προσθέσω είναι ότι το λογικό διάγραμμα της for ( Για ν φορές επανάλαβε) είναι απλά τραγικό και δεν μπορεί να εφαρμοστεί σε πολλές περιπτώσεις της συγκεκριμένης δομής επανάληψης. Το λογικό και αυτονόητο είναι αν ποτέ μπει μια άσκηση μετατροπής από ψευδοκώδικα σε λογικό διάγραμμα που περιλαμβάνει την εντολή for, να σχεδιάσει ο μαθητής το διάγραμμα της WHILE. Στην περίπτωση που η FOR είναι πολύ απλή, για παράδειγμα μια επαναληπτική δομή με 10 επαναλήψεις και απλές εντολές εντός βρόγχου, τότε ίσως να είναι σωστό να χρησιμοποιηθεί και το διάγραμμα του βιβλίου.  Για τις παραμέτρους γνωρίζουμε ότι ισχύουν τοπικά, επομένως μπορούν να είναι ίδιες, προτείνετε βέβαια αυτή η λογική γιατί  συσχετίζει το περιεχόμενο των παραμέτρων και κάνει πιο εύκολο τον προγραμματισμό.
Απόστολος Πουγαρίδης
Καθηγητής πληροφορικής ΠΕ19
www.tolispougaridis.gr
http://websites.tolispougaridis.gr