Τώρα είναι Πέμ 28 Μαρ 2024 07:01 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 26 Μάιος 2008 01:09 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 01 Μάιος 2003 10:25 pm
Δημοσιεύσεις: 38
Τοποθεσία: Καλλιθέα Αττικής
Για να γράφουμε προγράμματα σε οποιαδήποτε γλώσσα χρειάζεται να ξέρουμε τα παρακάτω:
1. Τι είδους μεταβλητές μπορούμε να χειριστούμε; (πώς θα χειριστούμε τη μνήμη, να ξέρουμε αν οι αρχικές τιμές είναι μηδέν ή "αδιάφορο" οπότε να πρέπει να τις μηδενίσουμε)
2. Ποιες είναι οι δυνατότητες επανάληψης; (πώς θα χειριστούμε τη ροή του προγράμματος)
3. Πώς αναπτύσσουμε παραστάσεις; (ποια σύμβολα και ποια προτεραιότητα έχουν, για να ξέρουμε τι θα περιμένουμε...με οποιεσδήποτε τιμές...)

Δευτερεύουσας σημασίας είναι:
1. Πώς θα διαβάζουμε και πώς θα γράφουμε τιμές σε απάντηση; (χειρισμός εισαγωγής-εξαγωγής)
2. Η αρχικοποίηση των πινάκων αν έχει βάση το 0 ή το 1 (στο πρώτο λάθος πρόγραμμα θα το καταλάβουμε)
3. Το σύνολο των έτοιμων συναρτήσεων, τόσο των αριθμητικών όσο και των αλφαριθμητικών. (θα τις βρούμε στην πορεία..μια ανάγνωση τύπου τσελεμεντέ χρειάζεται...δεν τον βάζεις στο κεφάλι σου τον ανοίγεις όποτε τον χρειαστείς). Φυσικά μας ενδιαφέρει σε κάθε περίπτωση τι λάθος μπορεί να γυρίσει η συνάρτηση.


Από κει και πέρα για όλες τις γλώσσες τα βασικά είναι τα παρακάτω:
Τι σημαίνει βήμα εκτέλεσης: Κάθε εκτέλεση μιας απλής ενέργειας που δεν δύναται να απλοποιηθεί στο επίπεδο της γλώσσας είναι ένα βήμα εκτέλεσης.
Τι σημαίνει απαριθμητής: Μια μεταβλητή που σε ένα βήμα αυξάνει κατά ένα το περιεχόμενό της..Αρχική τιμή το 0 ή όπως θέλουμε...(η αρχική τιμή εδώ λέγεται offset στο προγραμματισμό, ελληνικά μπορούμε να το λέμε επέκταση).
Τι σημαίνει πολλαπλασιαστής: Μια μεταβλητή που σε ένα βήμα εκτέλεσης αλλάζει κατά το πολλαπλάσιο ή υποπολλαπλάσιο μιας σταθεράς. Ποτέ η αρχική τιμή δεν μπορεί να είναι το μηδέν.
Πώς στήνουμε ουρές FIFO και LIFO: Εδώ πρέπει να γνωρίζουμε τα βήματα εκτέλεσης. Ο πιο εύκολος τρόπος είναι να επιδείξουμε μια κατασκευή ουράς με δυο μεταβλητές και να δείξουμε τις δυο ενέργειες, πώς βάζουμε ένα στοιχείο και πώς βγάζουμε ένα στοιχείο. Επίσης πως μπορούμε να έχουμε έλεγχο πληρότητας.
Η χρήση του Flag, της Σημαίας: Πολλές φορές είναι χρήσιμο να έχουμε κάποια μεταβλητή ως καταγραφέα γεγονότος. Η καταγραφή μπορεί να γίνει σε διάφορα σημεία της ροής του προγράμματος και ο έλεγχος επίσης σε διάφορα σημεία. Μεγάλο ρόλο παίζει πότε θα μηδενίσουμε τη σημαία...Μια προχωρημένη άποψη των σημαιών είναι τα SEMAPHORES http://en.wikipedia.org/wiki/Semaphore_(programming) για θέματα συγχρονισμού προγραμμάτων και περιφερειακών.(ελληνικά λέγονται δείκτες χειραψίας, ένας απλός δείκτης χειραψίας είναι το Printer Ready για να ξεκινήσει η επόμενη εκτύπωση).

Όλα τα προγράμματα φτιάχνονται με τους παραπάνω τρόπους!
Ακόμα και διευθύνσεις στη μνήμη να χρησιμοποιούμε αυτή θα εμφανίζεται ως ένας πίνακας Μνήμη[i] όπου το i θα είναι η διεύθυνσή, και θα προκύπτει βάσει ενός offset (επέκταση διεύθυνσης) και μια θέση απαριθμητή. Ο ίδιος ο επεξεργαστής έχει τον Program Counter τον απαριθμητή προγράμματος σε επίπεδο γλώσσας μηχανής που αυξάνει κατά το offset, την σταθερή επέκταση που δίνει κάθε εντολή ή με φόρτωμα νέας διεύθυνσης σε πήδημα (jump) ή με επέκταση θετική η αρνητική για κοντινή αλλαγή ροής (branch) ή με φόρτωμα απόλυτης διεύθυνσης...ή με φόρτωμα σχετικής διεύθυνσης όπου υπάρχει σε άλλη θέση στη μνήμη.

Αν κάποιος δεν μπορεί να αναλύσει ένα πρόγραμμα στα παραπάνω στοιχεία απλά δεν ξέρει προγραμματισμό. Φυσικά το πόσο γρήγορα κανείς θα αναλύσει ένα πρόγραμμα είναι θέμα εξάσκησης. Πάντως μέσα από αναλύσεις προγραμμάτων σε αυτά τα διακριτά στοιχεία μπορεί κανείς να μάθει προγραμματισμό και αυτός είναι ο λόγος που έγραψα όλα αυτά.

Έχω γράψει αυτό εδώ: http://www.fotodigitalshop.com/m2000/ (γλώσσα προγραμματισμού)
και αυτό εδώ: http://www.fotodigitalshop.com/page12.html (εφαρμογή επεξεργασίας και εκτύπωσης πολλών φωτογραφιών). Οπότε η εμπειρία μου μετράει!

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

Γ.Κ.
2008-2013 (διόρθωση συνδέσμων-ορθογραφικά λάθη)

_________________
Γλώσσα προγραμματισμού M2000


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 7 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: