Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Σχετικά έγγραφα
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

Πληροφορική ΙΙ Θεματική Ενότητα 2

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Αντικειμενοστρεφής Προγραμματισμός

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Αντικειμενοστρεφής Προγραμματισμός

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Θέματα Προγραμματισμού Η/Υ

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στον Προγραμματισμό

Θα εμφανίσει την τιμή 232 αντί της ακριβούς

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ

Εισαγωγή στον Προγραμματισμό

Ειδικά Θέματα Προγραμματισμού

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

6. Εισαγωγή στον προγραµµατισµό

Δομημένος Προγραμματισμός

Πληροφορική ΙΙ Ενότητα 1

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Τμήμα Μαθηματικών, ΕΚΠΑ. Ακαδ. έτος

Γλώσσες Προγραμματισμού Μεταγλωττιστές

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Δομημένος Προγραμματισμός

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Μαλούτα Θεανώ Σελίδα 1

Κεφάλαιο 1 Εισαγωγή στη C

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

03 Η ιδεατή μηχανή της Java

B. Ενσωμάτωση Ιθαγενών Μεθόδων

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

ΑΕΠΠ Ερωτήσεις θεωρίας

Η γλώσσα προγραμματισμού C

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Α. Ερωτήσεις Ανάπτυξης

Υποστηρικτικό υλικό Σημειώσεις

Η ιδεατή μηχανή της Java

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

. Μεθοδολογία Προγραμματισμού. Εισαγωγή στη Java. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

Προγραμματισμός Υπολογιστών με C++

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Ι (HY120)

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java


Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πληροφορική 2. Γλώσσες Προγραμματισμού

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ


ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Διαδικτύου

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Z L L L N b d g 5 * " # $ % $ ' $ % % % ) * + *, - %. / / + 3 / / / / + * 4 / / 1 " 5 % / 6, 7 # * $ 8 2. / / % 1 9 ; < ; = ; ; >? 8 3 " #

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

ÈÖÓ Ö ÑÑ Ò ÑÓÖ Û ÈÖÓÔØÙÕ ÛÒ ËÔÓÙ ÛÒ ÌÑ Ñ ØÓ Å Ñ Ø ÛÒ È Ò Ô Ø Ñ Ó È ØÖÛÒ Å Ñ Û Ø Ò Ô Ø Ñ ØÛÒ ÍÔÓÐÓ ØôÒ

Λειτουργικά Συστήματα. Εισαγωγή

Αρχιτεκτονικές Υπολογιστών

Transcript:

Û ØÓÒ ÔÖÓ Ö ÑÑ Ø Ñ ¾ Ç Ö ÐÓ ØÛÒ ÙÔÓÐÓ ØôÒ Ο υπολογιστής είναι εργαλείο επίλυσης προβλημάτων λόγω: ταχύτητας υπολογισμού και μεγέθους μνήμης γενικής χρησιμότητας μέσω της έννοιας του προγραμματισμού. Η λειτουργία του προσαρμόζεται στο επιλυόμενο πρόβλημα. Ενα πρόγραμμα: Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος. Υλοποιεί έναν αλγόριθμο.

Ð Ö ÑÓ Μαθηματική μεθοδολογία υπολογιστικής επίλυσης προβλήματος. Κάθε αλγόριθμος ικανοποιεί τα παρακάτω κριτήρια: Είσοδος( 0 εξωτερικά δεδομένα). Εξοδος( 1 αποτελέσμα/ατα). Ορισμένος(περιέχει σαφείς και ακριβείς οδηγίες). Κάθε οδηγία, μεμονωμένα, είναι εξαιρετικά απλή. Καλύπτει όλες τις δυνατές καταστάσεις. Τερματισμός(σε πεπερασμένο αριθμό βημάτων ή χρόνο). Συνηθέστεροι τρόποι περιγραφής αλγορίθμων: (i)ψευδοκώδικας, (ii)διάγραμμαροής. ¼ Ð ÓÖ Ñ Ò Ö Κάθε αλγόριθμος περιγράφεται τελικά μόνο με οδηγίες για: είσοδο δεδομένων, έξοδο αποτελεσμάτων, πράξεις και αναθέσεις τιμών σε μεταβλητές, έλεγχο ποσοτήτων- επιλογή ανάλογης δράσης, επαναληπτική εκτέλεση, τερματισμό. Τα βήματα ενός αλγορίθμου/προγράμματος εκτελούνται σειριακά. Ενας αλγόριθμος τερματίζει σε πεπερασμένο αριθμό βημάτων.

È Ö Ñ Ø Ð ÓÖ ÑÛÒ Μέσος όρος 2 αριθμών. Ελάχιστος 2 αριθμών. Μετατροπή δεκαδικού σε δυαδικό αριθμό. Μέγιστος N αριθμών?. Βαθμός εργαστηρίων Πληροφορικής Ι. Τελικός βαθμός Πληροφορικής Ι. ¾ Ñ Ø Ø Ò ÙÔÓÐÓ Ø ÔÐÙ ÔÖÓ Ð Ñ ØÓ 1. Ανάλυση δεδομένων του προβλήματος. 2. Μαθηματική διατύπωση του προβλήματος. 3. Ανάπτυξη τεχνικών επίλυσης: αλγόριθμος. Σχεδιασμός ή επιλογή αλγορίθμου. Συνήθως: ένα πρόβλημα πολλοί αλγόριθμοι. 4. Διατύπωση αλγορίθμου σε γλώσσα προγ/σμού: πρόγραμμα. 5. Εκτέλεση προγράμματος για συγκεκριμένα δεδομένα. 6. Ερμηνεία αποτελεσμάτων.

Ðô ÔÖÓ Ö ÑÑ Ø ÑÓ Γλώσσα μηχανής(γμ) Οι εντολές είναι αλληλουχίες bits(δυαδικών ψηφίων). Εκτελούνται άμεσα από την CPU Διαφορετική για κάθε τύπο επεξεργαστή. Γλώσσα assembly Μνημονικά ονόματα αντί bits(ίδιο πλήθος εντολών). Μετατροπή σε ΓΜ από κατάλληλο πρόγραμμα(assembler). Διαφορετική για κάθε τύπο επεξεργαστή. Γλώσσεςυψηλούεπιπέδου:π.χ. Fortran, Lisp, C, C++, Java. Υψηλή αφαίρεση ευκολότερος προγραμματισμός Μετατροπή σε ΓΜ από κατάλληλα πρόγραμματα: μεταγλωττιστές(compilers) ή διερμηνείς(interpreters) Ανεξάρτητες από τύπο επεξεργαστή portable. Hello, world Ò ÔÖ Ö ÑÑ C #include <stdio.h> main() { printf("hello, world\n"); }

Hello, world Ðô Ñ Õ Ò 0000000 457f 464c 0101 0001 0000 0000 0000 0000 0000020 0002 0003 0001 0000 82c0 0804 0034 0000 0000040 1d08 0000 0000 0000 0034 0020 0007 0028 0000060 0021 001e 0006 0000 0034 0000 8034 0804 0000100 8034 0804 00e0 0000 00e0 0000 0005 0000 0000120 0004 0000 0003 0000 0114 0000 8114 0804... 0026060 6e69 755f 6573 0064 5f5f 6164 6174 735f 0026100 6174 7472 5f00 764a 525f 6765 7369 6574 0026120 4372 616c 7373 7365 5f00 675f 6f6d 5f6e 0026140 7473 7261 5f74 005f 0026150...712γραμμές Hello, world assembly ; Hello World for Intel Assembler (MSDOS) mov ax,cs mov ds,ax mov ah,9 mov dx, offset Hello int 21h xor ax,ax int 21h Hello: db "Hello World!",13,10,"$"

Å Ø ÐÛØØ Ø compilersµ Προγράμματα που μετατρέπουν ένα πηγαίο πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου σε εκτελέσιμο(σε ΓΜ). ΑΡΧΕΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΑΡΧΕΙΟ OBJECT #include <stdio.h> main() { printf("hello, world\n"); } COMPILER 011000110100100110001010001 101100101110010101001010101 ΕΚΤΕΛΕΣΙΜΟ ΑΡΧΕΙΟ LINKER 011000110100100110001010001 101100101110010101001010101 100001100011100101010100101 111001101010011101011110010 100001100011100101010100101 111001101010011101011110010 ΑΡΧΕΙΑ/ΒΙΒΛΙΟΘΗΚΕΣ OBJECT Ο μεταγλωττιστής δεν εκτελεί το πηγαίο πρόγραμμα. Το παραγόμενο εκτελέσιμο πρόγραμμα«τρέχει» αυτόνομα σε κάθε υπολογιστή που«καταλαβαίνει» τη συγκεκριμένη ΓΜ. ÖÑ Ò interpretersµ Προγράμματα που εκτελούν άμεσα ένα πηγαίο πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου. ΠΡΟΓΡΑΜΜΑ ΙΕΡΜΗΝΕΑΣ ΕΚΤΕΛΕΣΗ Δεν παράγουν εκτελέσιμο πρόγραμμα. Για την εκτέλεση του πηγαίου προγράμματος σε κάποιον υπολογιστή απαιτείται και η ύπαρξη του διερμηνέα. Τα ερμηνευόμενα προγράμματα είναι αργότερα από τα μεταγλωττιζόμενα.

À Ðô ÔÖÓ Ö ÑÑ Ø ÑÓ Java Σχεδιάστηκεαπότον James Gosling, Sun Microsystems, ca 1995για: Καινούργια αρχή(όχι συμβατότητα προς τα πίσω). Αντικειμενοστραφή προγραμματισμό. Προγραμματισμό στο Internet. Ασφάλεια. Αρχιτεκτονικά ουδέτερη και μεταφέρσιμη: Write once, run everywhere. Εύκολη ανάπτυξη μεγάλων εφαρμογών πλήθος βιβλιοθηκών. κ.α. ¼ ³ Ò ÔÖôØÓ ÔÖ Ö ÑÑ Java /* * Εμφανίζει το μήνυμα "Hello, world" στην οθόνη. * H Java έκδοση του πρώτου προγράμματος στο κλασσικό * βιβλίο των Kernighan \& Ritchie, * "The C Programming Language" */ public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, world"); } }

Å Ø ÐôØØ ÔÖÓ Ö ÑÑ ØÓ Java Με κειμενογράφο(editor) δημιουργούμε το αρχείο: HelloWorld. java που περιέχει το παραπάνω πρόγραμμα. Το όνομα του αρχείου πρέπει: ναείναιτοίδιομετοόνοματηςκλάσης ναλήγεισε.java Μεταγλώττιση: javac HelloWorld. java που μετατρέπει το πρόγραμμα Java στο HelloWorld.java, σε bytecode στο αρχείο HelloWorld.class ¾ Bytecode & JVM Bytecode: δυαδική αναπαράσταση εκτελέσιμου προγράμματος, που όμως δεν εκτελείται σε κάποιο συγκεκριμένο υπολογιστή, αλλά εκτελείται από μια ιδεατή«μηχανή»: έναν αφηρημένο υπολογιστή που προσομοιώνεται από κατάλληλο πρόγραμμα(βλ. μηχανές Turing) Java Virtual Machine (JVM): η ιδεατή μηχανή που εκτελεί Java bytecode. Ενα αρχείο bytecode(.class) μπορεί να τρέξει στην JVM οποιουδήποτε άλλου υπολογιστή χωρίς επανα-μεταγλώττιση (portability).

Ø Ð ÔÖÓ Ö ÑÑ ØÓ Java Ηεντολή: java HelloWorld 1. θα ξεκινήσει την Java Virtual Machine 2. θα φορτώσει τον bytecode του HelloWorld.class στην JVM 3. η JVM θα εκτελέσει τον bytecode Θα εμφανιστεί στην οθόνη το μήνυμα: Hello, world Å Ø ÐôØØ Ø Ð ÔÖÓ Ö ÑÑ ØÓ Java Java προγραµµα Java compiler (javac) Java class αρχεια (bytecode) Java Virtual Machine (JVM) ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ αρχεια βιβλιοθηκων

Ì ÑÔÓÖ Ò Ô ØÖ Συντακτικά σφάλματα(syntax errors) Ανιχνεύονται από τον compiler. Σφάλματα στην εκτέλεση(run-time errors) Ανιχνευόνται από τον interpreter(σε γλώσσες που διαθέτουν ένα)καιστη Javaαπότην JVM. Σφάλματα λογικής(bugs) Ανιχνεύονται από τον προγραμματιστή(συχνά με υπομονή και επιμονή) εφ όσον αποκαλυφθούν(debugging). Βασική αρχή προγραμματισμού Σε κάθε πρόγραμμα, πάντα υπάρχει τουλάχιστον ακόμα ένα bug. ÌÓ ÔÖôØÓ bug