Πέμπτη, 10 Μαρτίου 2016

Εγχειρίδιο της Μ2000 - Τεύχος 27ο

16.7 Ιστόγραμμα

Θέλουμε να δείξουμε μια ομάδα τιμών για κάποιες περιόδους δειγματοληψίας. Η ομάδα περιέχει τρεις τιμές από τρια σημεία και μας ενδιαφέρει να δούμε την σχέση αυτών μεταξύ τους, και πως αυτή αλλάζει σε κάθε περίοδο. Προφανώς αν δείξουμε νούμερα δεν θα έχουμε κάτι άμεσα κατονοητό. Τα νούμερα θέλουν προσοχή και επιπλέον οι αναλογίες τους δεν γίνονται άμεσα αντιληπτές.

Θα φτιάξουμε αυτό:




Φόντο 2,5
Πένα 14
Δρομέας 0,0
Άδειασε \\ αδείαζω το σωρό τιμών ή χρησιμοποιώ το Σωρός Νέος { εντολές }
\\ μεταβλητές...δοκιμάστε να αλλάξετε νούμερα
Τίτλος.Γραφήματος$="Γράφημα Ρύπου Χ σε ppm Ανά Ισοβαθή"
Αριστερό.όριο=1000
Άνω.όριο=2000 \\ όχι ο τίτλος μέσα
Σειρές=4 \\ 4 σειρές με νούμερα - 4 χρώμαματα
Μέρη=5 \\ 5 μέρη (τόποι-σημεία) ή χρονικοί περίοδοι
Πλάτος.Σειράς=1800
Πλάτος.Ιστογράμματος=450
Μετάθεση.Ιστογράμματος=300
Τύπος.Γραμμάτων=12
Γωνία.Γραμμάτων=πι/8
Ύψος.Χαρακτήρων =Μέγεθος.Χ("Α", "Arial",Τύπος.Γραμμάτων,Γωνία.Γραμμάτων)
Στοίχιση.Κέντρο=2
Βασικό.Ύψος=4000
Πλάτος.Γραφήματος=Πλάτος.Σειράς*Μέρη-(Πλάτος.Σειράς-Πλάτος.Ιστογράμματος-Μετάθεση.Ιστογράμματος*(Σειρές-1))
\\ χρωματίζω το φόντο
Θέση Αριστερό.όριο, Άνω.όριο
Βάψε Πλάτος.Γραφήματος*1.03, Βασικό.Ύψος,1,5
\\ εδώ είναι η κλίμακα. Έχω τιμές μεταξύ 0 και 900
Ελάχιστο=0
Μέγιστο=900
Κλίμακα=(Μέγιστο-Ελάχιστο )/Βασικό.Ύψος
\\ Για το υπόμνημα
Σειρά 3,"Επιφάνεια",6,"5 μέτρα",7,"10 μέτρα",9,"15 μέτρα"
\\ Για την παραγωγή ιστογραμμάτων
Σειρά 3,100,350,700,830,500
Σειρά 6,150,400,600,530,600
Σειρά 7,190,450,680,650,600
Σειρά 9,290,550,780,750,700
\\ Για τα μέρη
Σειρά "Κανάλι","Λυγιά","Αλωνάκι","Αμμουδιά","Πάργα"
\\ Βάζω τίτλο
Θέση Αριστερό.όριο+Πλάτος.Γραφήματος/2,Άνω.Όριο-Ύψος.Χαρακτήρων*2.5
Επιγραφή Τίτλος.Γραφήματος$,"Arial Black", Τύπος.Γραμμάτων*1.3,0,Στοίχιση.Κέντρο
\\ ετοιμάζω τον υπολογισμό θέσης για το υπόμνημα
Ζ=Βασικό.Ύψος/(Σειρές*(Σειρές*.6))
Θέση Αριστερό.όριο+Πλάτος.Γραφήματος*1.2+Πλάτος.Σειράς/2,Άνω.Όριο+Ζ
Επιγραφή "Υπόμνημα","Courier New", Τύπος.Γραμμάτων*1.2,0, Στοίχιση.Κέντρο
Βήμα -Πλάτος.Σειράς/2, Ύψος.Χαρακτήρων
Πένα 0 {
      Για Ι=1 Έως Σειρές
            Βάψε Πλάτος.Σειράς, Ζ , Αριθμός
            Βήμα -Πλάτος.Σειράς/2, -Ζ/2
            Επιγραφή Γράμμα$,"Courier New", Τύπος.Γραμμάτων,0, Στοίχιση.Κέντρο
            Βήμα -Πλάτος.Σειράς/2, Ζ
      Επόμενο Ι
}
\\ ετοιμάζω τις οριζόντιες γραμμές και την κλίμακα
\\ επιλέγω γραμμές με τελείες
Θέση Αριστερό.όριο, Άνω.όριο
Πάχος 1,2 {
Ι=Μέγιστο
Ζ=(Μέγιστο-Ελάχιστο)/3
Για κ=1 Έως 2 {
      Χάραξε Πλάτος.Γραφήματος*1.03,0
      Βήμα 0, -Ύψος.Χαρακτήρων/2
      Επιγραφή Γραφή$(ι," 0.00", -9),"Arial", Τύπος.Γραμμάτων
      Βήμα 0, Βασικό.Ύψος/3
      Επιγραφή Γραφή$(ι-Ζ," 0.00",-9),"Arial", Τύπος.Γραμμάτων
      Βήμα 0, Ύψος.Χαρακτήρων/2
      Χάραξε -Πλάτος.Γραφήματος*1.03,0
      Βήμα 0,Βασικό.Ύψος/3
      Ι-=Ζ*2
}
}
\\ Παράγω τα ιστογράμματα
Για Κ=1 Έως Μετάθεση.Ιστογράμματος*Σειρές Ανά Μετάθεση.Ιστογράμματος \\ ή 0 Έως 800 Ανά 400
      Διάβασε Χρ
      Για Ι =1 Έως Πλάτος.Σειράς*Μέρη Ανά Πλάτος.Σειράς
            Θέση Αριστερό.όριο+Ι+Κ,Άνω.όριο
            Τ=(Αριθμός-ελάχιστο)/Κλίμακα
            Βήμα 0, Βασικό.Ύψος-Τ
            Βάψε Πλάτος.Ιστογράμματος, Τ, Χρ
      Επόμενο Ι
Επόμενο Κ
\\ Βάζω και τις επιγραφές για κάθε μέρος
\\ η Γράμμα$ τραβάει από το σωρό αλφαριθμητικά
\\ ενώ η Αριθμός, αριθμούς. Αν δεν έχει ο σωρός να δώσει ότι ζητάμε θα βγει λάθος!
Για Ι =1 Έως Πλάτος.Σειράς*Μέρη Ανά Πλάτος.Σειράς
      Θέση Αριστερό.όριο+Ι+(Πλάτος.Ιστογράμματος+Μετάθεση.Ιστογράμματος*(Σειρές-1))/2, Άνω.όριο+Βασικό.Ύψος+Ύψος.Χαρακτήρων*1.2
      Επιγραφή Γράμμα$, "Arial", Τύπος.Γραμμάτων, Γωνία.Γραμμάτων, Στοίχιση.Κέντρο
Επόμενο Ι
\\ Τώρα περιμένουμε ένα πλήκτρο να πατηθεί!
Α$=Κομ$


16.8 Γράφημα Πίτας


Θα φτιάξουμε ένα γράφημα πίτας (180 μοίρες μόνο, ή σε ακτίνια ένα Πι, η σταθερά 3.14). Έχουμε τα στοιχεία πωλήσεων για έξι είδη, και φτιάχνουμε με απλό τρόπο το υπόμνημα, Για να έχει ενδιαφέρον υπάρχει τρόπος να κόψουμε το περιθώριο. θα μπορούσε κάποιος να καλέσει το πρόγραμμα αυτό από άλλο πρόγραμμα.
Γράφουμε στην γραμμή εντολών:
Σ "γραφ1.gsb"
Και αντιγράφουμε το παρακάτω πρόγραμμα μέχρι και την εντολή τέλος.
Το πρόγραμμα έχει γραφτεί απευθείας στο δίσκο
Χρήση γραφ1
Ανοίγει στο μέσον η παρακάτω εικόνα. Με κλικ φεύγει.Στην ουσία έτρεξε ξανά το m2000.exe χωρίς να σταματήσει το πρόγραμμα που το κάλεσε. Δείτε πως δουλεύουν τα συστήματα πελάτη-εξυπηρετητή στο τεύχος 14. Θα μπορούσαμε να κάνουμε το πρόγραμμα που καλεί να περιμένει μήνυμα από το "καλεσμένο". Όπως θα μπορούσαμε να περάσουμε κάποια αρχικά δεδομένα κατά την εκτέλεση του καλεσμένου, στο σωρό του. Εδώ αδειάζουμε το σωρό, αλλά θα μπορούσαμε να κάνουμε το πρόγραμμα να περιμένει στοιχεία. Ουσιαστικά καλούμε ένα άλλο τμήμα που θα τρέξει ίσως σε άλλο επεξεργαστή, σίγουρα όμως ως εντελώς απομονωμένο πρόγραμμα.

Εξ ορισμού όταν τρέχει ένα πρόγραμμα η Μ2000 απευθείας χωρίς να φορτωθεί από τη γραμμή εντολών, έχει "σβηστή" τη κονσόλα. Γράφουμε δηλαδή αλλά δεν εμφανίζεται. Μπορούμε να φτιάξουμε τη φόρμα μας όπως θέλουμε και όταν είμαστε έτοιμοι εκτελούμε την Άναψε.




ΤΜΗΜΑ Α {\\ Γράφημα Πίτας 1
\\ δίνουμε μέγεθος χαρακτήρων σε Points
\\ Δίνουμε μέγεθος οθόνης σε Pixels 1280X1024
Περιθώριο {Οθόνη 0}
Διάστιχο 30
Γραμματοσειρά "Tahoma"
Σημ 1 : Τύπος 14, 1440*πλάτος.σημείου,900*ύψος.σημείου
Σημ 2 : Τύπος 14, 1280*πλάτος.σημείου,1024*ύψος.σημείου
Σημ 3 : Τύπος 12, 1024*πλάτος.σημείου,768*ύψος.σημείου
Σημ 4 :
Τύπος 9, 800*πλάτος.σημείου,600*ύψος.σημείου
Σημ 5 : Τύπος 7, 640*πλάτος.σημείου,480*ύψος.σημείου
\\ Αυτόματος υπολογισμός για όλη την οθόνη
Σημ 6,1 : Φόρμα ;   \\ τακτοποιεί το περιθώριο
Σημ 6,2 :Φόρμα 60,60*ανάλυση.Υ/ανάλυση.χ/1.25
Φόρμα  \\ Κόβει το περιθώριο, και φαίνεται η επιφάνεια εργασίας
Άδειασε \\ καθαρίζει το σωρό τιμών
Πίνακας Τιμές(6), Ονόματα$(6), ΧρώμαΕπιλογής(6)
ΤίτλοςΓραφήματος$="Πωλήσεις Ημέρας σε €€Ευρώ {0:2}€"
ΥπότιτλοςΓραφήματος$="Πάγκος {0} - Πωλητής {1}"
Πάγκος$="Α"
Πωλητής$="Β. Βάσιος"
Σειρά 100.2,"Ντομάτα Α",#FF2222, 40.5, "Μαρούλι",#44AA77, 123.5, "Πατάτα Α", #B79268
Σειρά 57.85, "Καρότα", #FF5522, 34.5,"Λάχανο", #AAFF77, 14.5, "Κρεμμύδια", #FFAA99
Στη Μ=0, Σύνολο=0
Ενώ Όχι Κενό {
      Διάβασε Τιμές(Μ), Ονόματα$(Μ), ΧρώμαΕπιλογής(Μ)
      Σύνολο+=Τιμές(Μ)
      Μ++
}
Οθόνη 5,0
Τύπωσε
ΣτοΚέντρο=2
Διπλά
      Αναφορά ΣτοΚέντρο, "Γράφημα Πίτας 1"
Κανονικά
Πλάγια 1
      Αναφορά ΣτοΚέντρο, Μορφή$(ΤίτλοςΓραφήματος$, Σύνολο)
      Αναφορά ΣτοΚέντρο, Μορφή$(ΥπότιτλοςΓραφήματος$, Πάγκος$, Πωλητής$)
Πλάγια 0


Θέση Χ.Σημεία/2, Υ.Σημεία/2+Υ.Σημεία/6
Ακτίνα=Υ.Σημεία/3.5
ΑπόΓωνία=Πι/2
ΜέχριΓωνία=0

Για Μ=5 Έως 0 {
      ΑπόΓωνία=ΜέχριΓωνία
      ΜέχριΓωνία+=Πι*Τιμές(Μ)/Σύνολο
      Κύκλος Γέμισμα ΧρώμαΕπιλογής(Μ), 1.8*Ακτίνα, 1/1.5,ΧρώμαΕπιλογής(Μ), ΑπόΓωνία, ΜέχριΓωνία
}
Για Μ=0 Έως 5 {
      Δρομέας Πλάτος-12, Μ+8
      Πένα ΧρώμαΕπιλογής(Μ) { Σημάδι}
      Πένα 15 {
            Τύπωσε μέρος $(7,5),@(Πλάτος-12),Γραφή$(Τιμές(Μ)/Σύνολο,"##.00%"), ~(14);" ";Ονόματα$(Μ)
      }
}
Βήμα -1.8*Ακτίνα, 0
Βάψε 1.8*Ακτίνα, Υ.Σημεία/12, ΧρώμαΕπιλογής(0), 5
Βήμα 0, -Υ.Σημεία/12
Βάψε 1.8*Ακτίνα, Υ.Σημεία/12, ΧρώμαΕπιλογής(5), 5
Άναψε
Καθε 100 {
Αν Ενκομ$<>"" ή Δείκτης Τότε Έξοδος
}
}
Α : Τέλος
(Συνεχίζεται)



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου