Panelinies - Texnologiki - Programatismos.. aporia..

Αλέξανδρος Διαμαντίδης adia at hellug.gr
Fri Jun 2 11:42:06 EEST 2006


* Giorgos Keramidas [2006-05-31 14:51]:
> >> Υστερα από αυτό, εγώ τουλάχιστον, χωρίς να δω τον ακριβή ορισμό
> >> της ψευδογλώσσας *ΔΕΝ* ξέρω τι ακριβώς ήθελε το θέμα.  Ασε που
> >> φοβάμαι ότι και να τον δω, πάλι δε θα ξέρω...
[...] 
> Πρέπει σίγουρα να διαβάσω προσεκτικά τα βιβλία της ύλης...
> 
> Κανείς που να τα έχει πρόχειρα και να είναι κοντά στην Πάτρα;

Με μια αναζήτηση στο δίκτυο, βρήκα το εξής:

http://www.alkisg.com/help/Bon8eia.htm

> Τα προαναφερθέντα «με αναφορά» και «με τιμή» γράφηκαν έτσι για λόγους
> ευκολίας. Στην πραγματικότητα η ΓΛΩΣΣΑ (σελ. 218 βιβλίου μαθητή) δεν
> υποστηρίζει παραμέτρους ούτε με τιμή ούτε με αναφορά, αλλά περιγράφει
> μεταβίβαση παραμέτρων με αντιγραφή (copy in - copy out). Αυτό δεν μπορεί
> να υποστηριχθεί ούτε από την Pascal ούτε από την Basic. Για παράδειγμα
> αν καλέσουμε τη Διαδικασία Αντιμετάθεσε(α, β) από το κυρίως πρόγραμμα με
> παραμέτρους γ και δ, τότε πριν τελειώσει η διαδικασία τα α, β θα έχουν
> αλλάξει τιμές αλλά τα γ και δ όχι! Μόνο όταν εκτελεστεί η εντολή
> τέλος_διαδικασίας θα αντιγραφούν οι ανανεωμένες τιμές στα α και β. Αυτό
> μπορείτε να το δείτε από την καρτέλα «Μεταβλητές» του Διερμηνευτή
> αλλάζοντας το υποπρόγραμμα που παρακολουθείτε από το πλαίσιο «Κληθέντα
> υποπρογράμματα». Μία ακόμα τεράστια διαφορά της μεταβίβασης παραμέτρων
> με αντιγραφή από τις καθιερωμένες είναι η εξής: έστω ότι έχουμε μία
> Διαδικασία Αύξησε(α, β) η οποία να αυξάνει το α και το β κατά ένα. Αν
> την καλέσουμε με παραμέτρους (α, α) δεν θα αυξήσει το α δύο φορές, αλλά
> μόνο μία! Αυτό γίνεται επειδή δημιουργούνται δύο αντίγραφα του α και
> περνιούνται παράμετροι στη διαδικασία. Η διαδικασία αυξάνει το κάθε ένα
> από αυτά κατά 1 και στο τέλος αντιγράφει την τιμή τους στις παραμέτρους,
> δηλαδή τα βάζει δύο φορές στη μεταβλητή α.


-- 
Αλέξανδρος Διαμαντίδης * adia at hellug.gr




More information about the Linux-greek-users mailing list