Απλά ενα Blog
Από τα μεγαλύτερα ερωτήματα της ανθρωπότητας σε ότι αφορά το διαδίκτυο πάντα ήταν το ερώτημα για ποιόν λόγο πραγματικά χρειαζόμαστε τα blogs.
Πέμπτη 17 Μαΐου 2012
Κυριακή 18 Μαρτίου 2012
Δευτέρα 12 Μαρτίου 2012
O Κουμαρτζής - Το πρώτο μου πρόγραμμα σε Javascript!
Καλησπέρα μικρά αθώα κατσικάκια του διαδικτύου. Αυτό είναι το πρώτο μου πρόγραμμα. Παίξτε όσο θέλετε αλλά να θυμάστε ότι δεν παίζουμε με πραγματικά λεφτά οκ;
Εδώ είναι ο κώδικας :)Τετάρτη 4 Ιανουαρίου 2012
Σετάροντας τον Υπολογιστή μου.
Ναι έλειψα πολύ καιρό, και τα πράγματα έχουν αλλάξει. Ναι... πάντα αλλάζουν.
Αλλά την περίοδο της αδράνειας μου, μετά από την περίοδο της σκληρής 24ώρης μελέτης 2 μηνών, την έκλεισε το γεγονός ότι σέταρα τον Υπολογιστή μου. Για να είμαι πιο ειλικρινής, μαζί με τον υπολογιστή μου σέταρα και την ζωή μου, αλλά αυτό υποθέτω ότι είναι άλλου παπά ευαγγέλιο.
Στο θέμα μας όμως (αν υπάρχει τέτοιο πράγμα στις γραμμές που γράφω). Αυτά που έκανα για το καλό μου υπολογιστή είναι τα εξής:
1)Τακτοποίησα τα αρχεία... δηλαδή για να είμαι ειλικρινής πέταξα το 90% των αρχείων μου, σε έναν υπερφάκελο που έχω εν ονόματι χαβούζα. Τουλάχιστον τακτοποιήθηκε λιγάκι η επιφάνεια εργασίας, και έτσι μπορώ και βλέπω πάλι το wallpaper.
2)Έφτιαξα και πάλι τον λογαριασμό μου στο Twitter, Τον οποίο τον είχα διαγράψει γιατί είχα σιχαθεί την ζωή μου, και αυτή την φορά, αποφάσισα ότι τουλάχιστον στο Twitter θα γράφω στα αγγλικά, και θα το έχω για θέματα παιχνιδιών, υπολογιστών και διαδικτύου, (όχι άλλο συνελεύσεις... όχι άλλο ειδήσεις, όχι άλλο ιδεολογίες).
3)Αναβάθμισα και ρύθμισα τον firefox μου, αλλά ξαφνικά άρχισε τις μαλακίες... όποτε τον αποχαιρέτησα και άρχισα να χρησιμοποιώ Google Chrome τον οποίο φυσικά τον σέταρα και αυτόν.
4)φόρτωσα τα προιόντα της adobe, και τα δοκίμασα, (όλα λειτουργούν μια χαρά) και άρχισα να ετοιμάζω κάποια πράγματα που χρειαζόμουν, που για να τα ετοιμάσω, χρειαζόμουν κάποια συγκεκριμένα προγράμματα της Adobe, όπως είναι το dreamweaver, το photoshop και το premiere.
5) ενεργοποίησα και πάλι τον wamp server, (σε αυτό σημείο πρέπει να ομολογήσω ότι μπήκα στον πειρασμό να τοποθετήσω από την αρχή MySQL και Apache και να τα σετάρω, μόνος μου, αλλά τελικά επικράτησε η φωνή της τεμπελιάς και έτσι απλά ξανάάνοιξα τον wamp server και ξεκίνησα να παίζω λίγο με joomla.
6) μια σειρά από πράξεις μου την καθόρισε το μεγάλο ερώτημα, "Να κάνω εκπομπή από το σπίτι μου;" και τελικά από τα αποτελέσματα των προσπαθειών μου, η απάντηση ήταν αρνητική. Ενώ βρήκα κάποιες καλές λύσεις για Virtual Camera, (για να μετατρέψω μια τηλεοπτική εκπομπή σε ραδιοφωνική) , με το θέμα ήχος δεν υπήρξε κάποια πρόοδος. Και εκτός αυτού, δεν μπορούν όλα σε αυτό τον κόσμο να είναι ψηφιακά. Υπολογιστής είναι, δεν εξομοιωτής ζωής της google. :)
Από τις προσπάθειες μου προκύπτουν κάποια ερωτήματα, που η προσπάθεια ελπίζω να φέρει απαντήσεις κάποια στιγμή. Να διαβάσω και άλλο; Με τι ρυθμούς; Να βγώ στην παραγωγή; Σε τι αντικείμενο, και με τι πελάτες; Να κάνω ξανά εκπομπή; Τι εκπομπή, και με τι θέμα;
Τι θα κάνω με την ζωή μου τελικά;
Θα πεθάνει ο Χαιλάντερ;
Μεγάλα αναπάντητα ερωτήματα... και η ζωή συνεχίζεται...
Αλλά την περίοδο της αδράνειας μου, μετά από την περίοδο της σκληρής 24ώρης μελέτης 2 μηνών, την έκλεισε το γεγονός ότι σέταρα τον Υπολογιστή μου. Για να είμαι πιο ειλικρινής, μαζί με τον υπολογιστή μου σέταρα και την ζωή μου, αλλά αυτό υποθέτω ότι είναι άλλου παπά ευαγγέλιο.
Στο θέμα μας όμως (αν υπάρχει τέτοιο πράγμα στις γραμμές που γράφω). Αυτά που έκανα για το καλό μου υπολογιστή είναι τα εξής:
1)Τακτοποίησα τα αρχεία... δηλαδή για να είμαι ειλικρινής πέταξα το 90% των αρχείων μου, σε έναν υπερφάκελο που έχω εν ονόματι χαβούζα. Τουλάχιστον τακτοποιήθηκε λιγάκι η επιφάνεια εργασίας, και έτσι μπορώ και βλέπω πάλι το wallpaper.
2)Έφτιαξα και πάλι τον λογαριασμό μου στο Twitter, Τον οποίο τον είχα διαγράψει γιατί είχα σιχαθεί την ζωή μου, και αυτή την φορά, αποφάσισα ότι τουλάχιστον στο Twitter θα γράφω στα αγγλικά, και θα το έχω για θέματα παιχνιδιών, υπολογιστών και διαδικτύου, (όχι άλλο συνελεύσεις... όχι άλλο ειδήσεις, όχι άλλο ιδεολογίες).
3)Αναβάθμισα και ρύθμισα τον firefox μου, αλλά ξαφνικά άρχισε τις μαλακίες... όποτε τον αποχαιρέτησα και άρχισα να χρησιμοποιώ Google Chrome τον οποίο φυσικά τον σέταρα και αυτόν.
4)φόρτωσα τα προιόντα της adobe, και τα δοκίμασα, (όλα λειτουργούν μια χαρά) και άρχισα να ετοιμάζω κάποια πράγματα που χρειαζόμουν, που για να τα ετοιμάσω, χρειαζόμουν κάποια συγκεκριμένα προγράμματα της Adobe, όπως είναι το dreamweaver, το photoshop και το premiere.
5) ενεργοποίησα και πάλι τον wamp server, (σε αυτό σημείο πρέπει να ομολογήσω ότι μπήκα στον πειρασμό να τοποθετήσω από την αρχή MySQL και Apache και να τα σετάρω, μόνος μου, αλλά τελικά επικράτησε η φωνή της τεμπελιάς και έτσι απλά ξανάάνοιξα τον wamp server και ξεκίνησα να παίζω λίγο με joomla.
6) μια σειρά από πράξεις μου την καθόρισε το μεγάλο ερώτημα, "Να κάνω εκπομπή από το σπίτι μου;" και τελικά από τα αποτελέσματα των προσπαθειών μου, η απάντηση ήταν αρνητική. Ενώ βρήκα κάποιες καλές λύσεις για Virtual Camera, (για να μετατρέψω μια τηλεοπτική εκπομπή σε ραδιοφωνική) , με το θέμα ήχος δεν υπήρξε κάποια πρόοδος. Και εκτός αυτού, δεν μπορούν όλα σε αυτό τον κόσμο να είναι ψηφιακά. Υπολογιστής είναι, δεν εξομοιωτής ζωής της google. :)
Από τις προσπάθειες μου προκύπτουν κάποια ερωτήματα, που η προσπάθεια ελπίζω να φέρει απαντήσεις κάποια στιγμή. Να διαβάσω και άλλο; Με τι ρυθμούς; Να βγώ στην παραγωγή; Σε τι αντικείμενο, και με τι πελάτες; Να κάνω ξανά εκπομπή; Τι εκπομπή, και με τι θέμα;
Τι θα κάνω με την ζωή μου τελικά;
Θα πεθάνει ο Χαιλάντερ;
Μεγάλα αναπάντητα ερωτήματα... και η ζωή συνεχίζεται...
Δευτέρα 14 Νοεμβρίου 2011
Ορισμός συνάρτησης
[πηγή]
Όπως και με τις μεταβλητές, πριν κάνετε χρήση κάποιας συνάρτησης θα πρέπει να δώσετε οδηγίες στη γλώσσα για τη μορφή της ώστε να ξέρει πως θα τη χρησιμοποιήσει. Ο ορισμός μιας απλής συνάρτησης είναι ο ακόλουθος:
Για να ορίσουμε μία συνάρτηση πρώτα δηλώνουμε τον τύπο των δεδομένων
που θα επιστρέφει, μετά το όνομά της και τέλος τα ορίσματα
που θα δέχεται μέσα σε παρενθέσεις. Ας τα εξετάσουμε ένα προς ένα:
Εάν η συνάρτηση δεν επιστρέφει κάποια τιμή στο κυρίως πρόγραμμα που την καλεί, τότε πριν το όνομά της γράφουμε τη λέξη void (κενό). Όταν η συνάρτηση δεν επιστρέφει κάποια τιμή που να τη χρησιμοποιεί το κυρίως πρόγραμμα, λειτουργεί ως διαδικασία, δηλαδή απλώς κάτι κάνει. Στην περίπτωσή μας τυπώνει 20 φορές το σύμβολο του αστεριού (*) στην οθόνη. Εάν όμως η συνάρτηση επιστρέφει κάποια τιμή στο σημείο του προγράμματος που την καλεί τότε θα πρέπει πριν το όνομά της να δηλώσουμε τον τύπο των δεδομένων που επιστρέφει. Έτσι αν επιστρέφει ακέραια τιμή θα γράφαμε πρώτα int και μετά το όνομά της, αν επιστρέφει πραγματικό αριθμό θα γράφαμε πρώτα float και μετά το όνομά της κ.λ.π.
Το σημαντικό που θα πρέπει να παρατηρήσετε στις περιπτώσεις που η συνάρτηση επιστρέφει τιμή είναι η εντολή return μέσα στο σώμα της συνάρτησης. Μετά τη δεσμευμένη λέξη return ακολουθεί η παράσταση με την επιστρεφόμενη τιμή. Φυσικά ο τύπος δεδομένων της τιμής που επιστρέφεται θα πρέπει να είναι ίδιος με τον τύπο δεδομένων που προηγείται του ονόματος της συνάρτησης.
Εάν πριν από το όνομα της συνάρτησης δεν υπάρχει η λέξη void αλλά ένας
τύπος δεδομένων είτε από τους ενσωματωμένους της γλώσσας είτε ορισμένος
από το χρήστη, τότε μέσα στο σώμα της συνάρτησης θα πρέπει να υπάρχει
εντολή return.
Η τιμή αυτή που επιστρέφεται μπορεί να χρησιμοποιηθεί στον υπολογισμό μιας παράστασης ή να αποδοθεί σε μια μεταβλητή.
Για το όνομα της συνάρτησης ισχύει ότι και για τα ονόματα των μεταβλητών. Θα πρέπει να χρησιμοποιείται πάντα το όνομα της συνάρτησης όπως είναι στο σημείο ορισμού της και να μη μπερδεύετε μικρούς με κεφαλαίους χαρακτήρες.
Μετά το όνομα της συνάρτησης υπάρχουν τα ορίσματά της μέσα σε παρενθέσεις. Ακόμα και όταν δεν υπάρχουν ορίσματα είμαστε υποχρεωμένοι να γράφουμε πάντα τις παρενθέσεις. Οι παρενθέσεις είναι τα σύμβολα που ξεχωρίζουν τις συναρτήσεις από τις μεταβλητές.
Στο παραπάνω παράδειγμα η συνάρτηση typestars () τυπώνει 20 φορές ένα σύμβολο στην οθόνη. Εάν την αλλάξουμε λίγο έτσι ώστε ο χρήστης να αποφασίζει πόσες φορές θα τυπωθεί το σύμβολο, θα γράφαμε:
Τα ορίσματα τα οποία εσωκλείονται μέσα σε παρενθέσεις είναι μεταβλητές οι οποίες δέχονται τιμές από το σημείο κλήσης της συνάρτησης. Μέσα στις παρενθέσεις γίνεται δήλωση των μεταβλητών, για αυτό και η σημειογραφία:
Εάν είναι περισσότερα του ενός, τα ορίσματα χωρίζονται μεταξύ τους με
κόμμα. Τα ορίσματα είναι που κάνουν τις συναρτήσεις να εκτελούν
διαφορετικά πράγματα, ανάλογα με την είσοδο που δέχονται. Ειδάλλως χωρίς
ορίσματα, οι συναρτήσεις θα επαναλάμβαναν τις ίδιες εντολές κάθε φορά
που θα τις καλούσαμε.
Όπως και με τις μεταβλητές, πριν κάνετε χρήση κάποιας συνάρτησης θα πρέπει να δώσετε οδηγίες στη γλώσσα για τη μορφή της ώστε να ξέρει πως θα τη χρησιμοποιήσει. Ο ορισμός μιας απλής συνάρτησης είναι ο ακόλουθος:
|
void
typestars ()
{ for (int i=0; i<20; i++) cout << *;
cout << endl;
} |
Εάν η συνάρτηση δεν επιστρέφει κάποια τιμή στο κυρίως πρόγραμμα που την καλεί, τότε πριν το όνομά της γράφουμε τη λέξη void (κενό). Όταν η συνάρτηση δεν επιστρέφει κάποια τιμή που να τη χρησιμοποιεί το κυρίως πρόγραμμα, λειτουργεί ως διαδικασία, δηλαδή απλώς κάτι κάνει. Στην περίπτωσή μας τυπώνει 20 φορές το σύμβολο του αστεριού (*) στην οθόνη. Εάν όμως η συνάρτηση επιστρέφει κάποια τιμή στο σημείο του προγράμματος που την καλεί τότε θα πρέπει πριν το όνομά της να δηλώσουμε τον τύπο των δεδομένων που επιστρέφει. Έτσι αν επιστρέφει ακέραια τιμή θα γράφαμε πρώτα int και μετά το όνομά της, αν επιστρέφει πραγματικό αριθμό θα γράφαμε πρώτα float και μετά το όνομά της κ.λ.π.
Το σημαντικό που θα πρέπει να παρατηρήσετε στις περιπτώσεις που η συνάρτηση επιστρέφει τιμή είναι η εντολή return μέσα στο σώμα της συνάρτησης. Μετά τη δεσμευμένη λέξη return ακολουθεί η παράσταση με την επιστρεφόμενη τιμή. Φυσικά ο τύπος δεδομένων της τιμής που επιστρέφεται θα πρέπει να είναι ίδιος με τον τύπο δεδομένων που προηγείται του ονόματος της συνάρτησης.
Η τιμή αυτή που επιστρέφεται μπορεί να χρησιμοποιηθεί στον υπολογισμό μιας παράστασης ή να αποδοθεί σε μια μεταβλητή.
Για το όνομα της συνάρτησης ισχύει ότι και για τα ονόματα των μεταβλητών. Θα πρέπει να χρησιμοποιείται πάντα το όνομα της συνάρτησης όπως είναι στο σημείο ορισμού της και να μη μπερδεύετε μικρούς με κεφαλαίους χαρακτήρες.
Μετά το όνομα της συνάρτησης υπάρχουν τα ορίσματά της μέσα σε παρενθέσεις. Ακόμα και όταν δεν υπάρχουν ορίσματα είμαστε υποχρεωμένοι να γράφουμε πάντα τις παρενθέσεις. Οι παρενθέσεις είναι τα σύμβολα που ξεχωρίζουν τις συναρτήσεις από τις μεταβλητές.
Στο παραπάνω παράδειγμα η συνάρτηση typestars () τυπώνει 20 φορές ένα σύμβολο στην οθόνη. Εάν την αλλάξουμε λίγο έτσι ώστε ο χρήστης να αποφασίζει πόσες φορές θα τυπωθεί το σύμβολο, θα γράφαμε:
|
void
typestars (int n)
{ for (int i=0; i<n; i++)//n επαναλήψεις του βρόχου cout << *;
cout << endl;
} |
Τα ορίσματα τα οποία εσωκλείονται μέσα σε παρενθέσεις είναι μεταβλητές οι οποίες δέχονται τιμές από το σημείο κλήσης της συνάρτησης. Μέσα στις παρενθέσεις γίνεται δήλωση των μεταβλητών, για αυτό και η σημειογραφία:
|
int
n
|
Κυριακή 13 Νοεμβρίου 2011
Η γλώσσα C++
τελειώνω για σήμερα για να μην την χάσω βάζω εδώ την γλώσσα:
[πηγή]
These tutorials explain the C++ language from its basics up to the newest features of ANSI-C++, including basic concepts such as arrays or classes and advanced concepts such as polymorphism or templates. The tutorial is oriented in a practical way, with working example programs in all sections to start practicing each lesson right away.
[ Download the entire tutorial as a PDF file ]
[πηγή]
These tutorials explain the C++ language from its basics up to the newest features of ANSI-C++, including basic concepts such as arrays or classes and advanced concepts such as polymorphism or templates. The tutorial is oriented in a practical way, with working example programs in all sections to start practicing each lesson right away.
[ Download the entire tutorial as a PDF file ]
Introduction
Basics of C++
Control Structures
Compound Data Types
Object Oriented Programming
Advanced Concepts
C++ Standard Library
Οι λέξεις κλειδιά CONST και VOLATILE - CONCOM.CPP
[πηγή]
Στις αρχικές δηλώσεις υπάρχουν δυο νέες λέξεις κλειδιά, οι οποίες δεν υπήρχαν στην
αρχική C, αλλά είναι τμήμα του προτύπου ANSI-C. Η λέξη const χρησιμοποιείται για
να ορίσει μια σταθερά. Η σταθερά START είναι ακέραιου τύπου (int) και παίρνει αρχική
τιμή 3. Ο μεταγλωττιστής δεν επιτρέπει την ηθελημένη ή κατά λάθος αλλαγή της τιμής
της START γιατί έχει δηλωθεί σαν σταθερά. Οποιαδήποτε απόπειρα αλλαγής της τιμής
μιας σταθεράς θα έχει σαν αποτέλεσμα την εμφάνιση ενός μηνύματος λάθους. Εφόσον δεν
επιτρέπεται η αλλαγή της τιμής μιας σταθεράς, είναι καλό να αρχικοποιείται όταν
δηλώνεται, ώστε να έχει μια χρήσιμη τιμή. Ο μεταγλωττιστής δεν απαιτεί την αρχικοποίηση
της και δεν εμφανίζει μήνυμα λάθους αν αυτή δεν γίνει.
Θα παρατηρήσατε ότι η λέξη const επίσης χρησιμοποιείται στην δήλωση της συνάρτησης,
για να δείξει ότι η τυπική παράμετρος data_value είναι μια σταθερά για την συνάρτηση.
Κάθε προσπάθεια να αλλαχθεί η τιμή σε αυτή την μεταβλητή θα δώσει λάθος. Αυτή είναι
μια απλή τεχνική που μπορεί να προστεθεί στο πρόγραμμα ώστε να αυξήσει την ικανότητα
του μεταγλωττιστή να ανιχνεύει λάθη για τον χρήστη.
Η λέξη κλειδί volatile επίσης υπάρχει στην ANSI-C αλλά όχι και στην αρχική C. Η τιμή
μιας volatile μεταβλητής δεν μπορεί να αλλάξει από τον προγραμματιστή, μπορεί όμως να
υπάρξει κάποιος μηχανισμός που να αποτρέπει την αλλαγή, όπως μια διακοπή χρονομέτρου
που θα προκαλέσει αύξηση της τιμής της. Ο μεταγλωττιστής πρέπει να γνωρίζει ότι αυτή η
τιμή μπορεί να αλλάξει από κάποια εξωτερική δύναμη, όταν βελτιστοποιεί τον κώδικα.
Η μελέτη της βελτιστοποίησης του κώδικα είναι αρκετά ενδιαφέρουσα, αλλά έξω από τους
σκοπούς αυτού του συγγράμματος. Σημειώνεται ότι και μια σταθερά μπορεί να γίνει volatile,
που σημαίνει ότι δεν μπορεί ο προγραμματιστής να την αλλάξει, αλλά η αλλαγή μπορεί να
γίνει από κάποια λειτουργία του υλικού ή του λειτουργικού συστήματος.
Προσωρινά αφήνουμε τις προτάσεις εξόδου. Θα τις μελετήσουμε αργότερα στο κεφάλαιο. Αν
είστε εξοικειωμένοι στον προγραμματισμό με τον αρχικό ορισμό της C, σίγουρα θα βρείτε
το πρόγραμμα κάπως παράξενο. Εδώ φαίνεται η προτυποποίηση και ο νέος τρόπος ορισμού
των συναρτήσεων, όπως ορίζεται στο πρότυπο ANSI-C. Η προτυποποίηση είναι προαιρετική
στη C,αλλά απολύτως αναγκαία στη C++. Γι αυτό το κεφάλαιο 4 ασχολείται με αυτό το θέμα.
Είναι καιρός να φορτώσετε και να εκτελέσετε το πρώτο σας πρόγραμμα με το όνομα
CONCOM.CPP αν δεν το έχετε κάνει ήδη, έτσι ώστε να βεβαιωθείτε οτι το περιβάλλον
προγραμματισμού σας δουλεύει σωστά αλλά και να μάθετε τα ιδιαίτερα χρακτηριστικά του.
Μην ανησυχείτε αν δεν καταλαβαίνετε τι κάνει το πρόγραμμα, θα το αντιληφθείτε
σύντομα. Το κείμενο του προγράμματος ακολουθεί παρακάτω και το αποτέλεσμά του, μετά
από επιτυχή μετάφραση και εκτέλεση, θα είναι η εμφάνιση στην οθόνη των μηνυμάτων.
Αποτελέσματα εκτέλεσης
The value of the index is 3
The value of the index is 4
The value of the index is 5
The value of the index is 6
The value of the index is 7
The value of the index is 8
#include "iostream.h" '*this is the stream definition
file */
void print_it(const int dara_value);
main()
{
const int START = 3; // The value of START cannot be
changed
const int STOP = 9; // The value of STOP cannot be
changed
volatile int CENTER = 6; /* The value of CENTER may be
changed
by something external to
this
program. */
int index; /* A normal C variable */
for (index = START ; index < STOP ; index++)
print_it(index);
} /* End of program */
void print_it(const int data_value)
{
cout << "The value of the index is " << data_value << "\n";
}
}CONCOM.CPP
Κατεβάστε το πρόγραμμα στον υπολογιστή σας
Εγγραφή σε:
Σχόλια (Atom)
