Amstrad CPC6128, μετατροπή Αραβικών-Ελληνικών αριθμών

Τα δικά μας προγράμματα!

Συντονιστής: Developers

Άβαταρ μέλους
ZX_Jim +
Z80 power CPU
Z80 power CPU
Δημοσιεύσεις: 1407
Εγγραφή: Παρ Σεπ 04, 2009 1:06 am
Επικοινωνία:

Amstrad CPC6128, μετατροπή Αραβικών-Ελληνικών αριθμών

Μη αναγνωσμένη δημοσίευσηαπό ZX_Jim + » Πέμ Δεκ 30, 2010 10:33 pm

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

Εικόνα


Ο Zorro έγραψε:

Πέρασαν 25 χρόνια από την ημέρα που έβαλα σκοπό να κατασκευάσω ένα πρόγραμμα που να διαχειρίζεται το αρχαιο-ελληνικό σύστημα αρίθμησης...


Διάφορα ξένα έντυπα της δεκαετίας του ’80 είχαν δημοσιεύσει –εν μέσω διθυράμβων- προγράμματα δημιουργίας ρωμαϊκών αριθμών, αλλά πάντα, αυτοί οι «αριθμοί» αποτελούσαν απλώς ένα string, δηλαδή ένα σύνολο γραμμάτων που δεν σήμαιναν τίποτα περισσότερο από αυτό που έδειχαν στην οθόνη. Φυσικά, είχα βάλει από τότε σκοπό να ξεπεράσω τους ευρωπαίους και να κατασκευάσω ένα «ευφυές» πρόγραμμα, μέσω του οποιόυ οι αρχαιο-ελληνικοί αριθμοί να σημαίνουν για τον υπολογιστή ό,τι ακριβώς και οι αραβικοί αριθμοί που διαχειρίζεται.
Με το πρόγραμμα που δημιούργησα, ο υπολογιστής είναι πλέον σε θέση να «κατανοήσει» την αριθμητική αξία του κάθε αρχαιο-ελληνικού αριθμού, συνεπώς, μπορούν να γίνουν οποιεσδήποτε αριθμητικές πράξεις!

Εικόνα


Στην πράξη, το πρόγραμμα έχει –εκ κατασκευής- την δυνατότητα να διαχειρισθεί οποιονδήποτε αριθμό και οποιαδήποτε αριθμητική πράξη (με την προσθήκη περισσοτέρων δεδομένων και υπο-ρουτινών), αλλά δεν το έκρινα απαραίτητο, αρκούμενος στην διαχείριση αριθμών από -9999999.98 έως +9999999.98, εκτελώντας παράλληλα πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση. Αυτά μου αρκούσαν για να «κόψω πρώτος το νήμα». Το άν έγινε ετεροχρονισμένα, μου είναι αδιάφορο...


Οι Sinclair Jim και Darth Cotsos στάθηκαν πολύτιμοι συμπαραστάτες, προσφέροντας σε κάθε στάδιο κατασκευτής τις γνώσεις, την εμπειρία και την... κριτική τους...


Το πρόγραμμα είναι τεράστιο (καταλαμβάνει 99Κ), συνεπώς είναι χωρισμένο σε επτά υπο-προγράμματα, όπου το ένα «καλεί» το άλλο.
Μπορείτε να εκτελέσετα το πρόγραμμα γράφοντας: RUN “GR-NUM”.
Για να μελετήσετε το listing του κάθε υπο-προγράμματος, ζητήστε να δείτε πρώτα το όνομα του καθ’ ενός (γράφοντας CAT για να παρουσιαστεί η λίστα τους στην οθόνη) και κατόπιν γράψτε: LOAD “το κάθε όνομα”. Κατόπιν, γράψτε LIST και θα το δείτε (όταν «γεμίζει» η οθόνη κάθε φορά, σταματάτε προσωρινά την κύλισή του πατώντας μία φορά το πλήκτρο Esc. Για να συνεχίσετε, πατήστε ένα ποιοδήποτε άλλο πλήκτρο. Αν το πατήσετε δύο φορές, η κύλιση θα διακοπεί).


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

Εικόνα


Προσοχή!
1) Το listing θα μπορείτε να το δείτε καλύτερα, αν γυρίσετε την οθόνη σε 80 στήλες, γράφοντας πρώτα MODE 2.
Αν έχετε ήδη τρέξει το πρόγραμμα και οι χαρακτήρες είναι πλέον ελληνικοί, για να δείτε τα listings με λατινικούς χαρακτήρες (όπως έχουμε συνηθίσει), γράψτε πρώτα: SYMBOL AFTER 32.

2) Τρέχοντας το πρόγραμμα, τηρείστε αυστηρά τους κανόνες πληκτρολόγησης, που είναι γραμμένοι στις οδηγίες χρήσης! Η παραμικρή απόλιση από αυτούς, θα έχει ως αποτέλεσμα την διακοπή του, και θα πρέπει να το τρέξετε από την αρχή!

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

Εικόνα


Το πρόγραμμα καθώς και οι οδηγίες, βρίσκονται εδώ.
http://zxjim.blogspot.gr/

Άβαταρ μέλους
zorro +
Developers
Developers
Δημοσιεύσεις: 10
Εγγραφή: Τρί Νοέμ 30, 2010 5:40 pm

Re: Amstrad CPC6128, μετατροπή Αραβικών-Ελληνικών αριθμών

Μη αναγνωσμένη δημοσίευσηαπό zorro + » Παρ Δεκ 31, 2010 11:12 am

Η "εξυπνάδα" του προγράμματος έγκειται στο ότι έχουν δημιουργηθεί αριθμητικές μεταβλητές οι οποίες προκύπτουν έπειτα από επεξεργασία strings! Περνώντας μέσα από "πατενταρισμένες" υπορουτίνες, αναγκάζουν τον υπολογιστή να τα αναγνωρίσει ως αριθμούς! Την πολυπλοκότητα των αλγόριθμων αυτών μπορείτε να την δείτε αν κάνετε LIST στα υπο-προγράμματα NUM-LET και LET-NUM. Όσοι είστε λάτρεις των μαθηματικών, θα υποκλιθήτε ακόμη μία φορά στο μεγαλείο και την δύναμη που μπορεί να μας δώσει η θεωρία των αριθμών. Οι αρχαίοι συμπατριώτες μας τους λάτρεψαν και μεγαλούργησαν μέσα απ' αυτούς. Είναι χρέος μας να συνεχίσουμε την παράδοση...
Spartans! Prepare for Glory!!!

Άβαταρ μέλους
Anemos
AMD 4 ever?
AMD 4 ever?
Δημοσιεύσεις: 4654
Εγγραφή: Τρί Σεπ 01, 2009 12:40 am

Re: Amstrad CPC6128, μετατροπή Αραβικών-Ελληνικών αριθμών

Μη αναγνωσμένη δημοσίευσηαπό Anemos » Παρ Δεκ 31, 2010 11:30 am

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

Άβαταρ μέλους
ZX_Jim +
Z80 power CPU
Z80 power CPU
Δημοσιεύσεις: 1407
Εγγραφή: Παρ Σεπ 04, 2009 1:06 am
Επικοινωνία:

Re: Amstrad CPC6128, μετατροπή Αραβικών-Ελληνικών αριθμών

Μη αναγνωσμένη δημοσίευσηαπό ZX_Jim + » Παρ Δεκ 31, 2010 11:42 am

Πολύ σωστά! :)
Εδώ να σημειώσουμε ότι για το δεκαδικό μέρος των αριθμών, χρησιμοποιήθηκε ο ευφυέστερος αλγόριθμος που έχει παρουσιαστεί!
Είναι ο αλγόριθμος εύρεσης μέγιστου κοινού διαιρέτη του Ευκλείδη !!! :D
Αντί να χρησιμοποιεί διαδοχικές ακέραιες διαιρέσει, χρησιμοποιεί μόνο αφαιρέσεις !!!

Κώδικας: Επιλογή όλων

 WHILE b <> 0 do
    IF a > b THEN
      a := a - b
    ELSE
      b := b - a

Στο τέλος ο ΜΚΔ είναι αποθηκευμένος στο a!!!
http://zxjim.blogspot.gr/


Επιστροφή σε “* Home Micros programming *”



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

Μέλη σε αυτή την Δ. Συζήτηση: 2 και 0 επισκέπτες