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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
Advertisements

Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλώσσα Προγραμματισμού
ΜΑΘ-3122/106 Προγραμματισμός
Αντικείμενα, Κλάσεις και Μέθοδοι
Προγραμματισμός ΙΙ – C#
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΣΥΝΑΡΤΗΣΕΙΣ.
Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1.5 Γλώσσες Προγραμματισμού
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 13: Επαναληπτικό μάθημα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Το περιεχόμενο του μαθήματος διατίθεται.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Από την ιδέα μέχρι το λογισμικό. Ξεκινώντας από το πρόβλημα...
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 11: Βελτιστοποίηση Ενδιάμεσου Κώδικα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Δομές Δεδομένων και Αρχεία
Βασικά στοιχεία της Java
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Εφαρμογές Πολυμέσων: Εισαγωγή στην HTML (1)
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Ξεχωριστή Μεταγλώττιση & Χώροι Ονομάτων Αντικειμενοστραφής Προγραμματισμός.
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 10: Εισαγωγή στο Προγραμματισμό με το MatLab 7.x (Μέρος 1 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Ενότητα 3: Μικροϋπολογιστές Ιωάννης Έλληνας Τμήμα Η/ΥΣ
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Γλώσσες προγραμματισμού Ένας αλγόριθμος όταν περιγραφεί με μια μορφή που τη δέχεται ένας υπολογιστής, λέγεται πρόγραμμα (prοgram, prοgramme)
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός Ι
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός ΗΥ Ενότητα 11: Header Files. Διδάσκων: Ηλίας Κ Σάββας,
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εργαστήριο 9 : Scratch (Μέρος 9_Β) Δημήτριος Νικολός ΤΕΕΑΠΗ
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός
ΕνΟτητα # 6: Ms Word IΙΙ CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Ενότητα 4 : Τελεστές της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Προγραμματισμός κινητών συσκευών
Προγραμματισμός κινητών συσκευών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Προγραμματισμός κινητών συσκευών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Αντικειμενοστραφής Προγραμματισμός ΙΙ Ενότητα 2: Δομή Ενός Προγράμματος C# Νικόλαος Θ. Λιόλιος, Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Δομή Ενός Προγράμματος C# Σκοποί ενότητας Σκοπός μας είναι να μάθουμε: Βασικές τεχνικές προγραμματισμού Πώς να γράφουμε μικρού και μεσαίου μεγέθους προγράμματα Τη γλώσσα προγραμματισμού C# (μοιάζει με τη Java) Βασικούς αλγόριθμους και δομές δεδομένων Εργαλεία συγγραφής προγραμμάτων (π.χ. Visual Studio) Να διευρύνουμε τις γνώσεις μας στην Επιστήμη της Πληροφορικής Θα ασχοληθούμε πολύ με τον προγραμματισμό Θα μάθουμε το Microsoft Visual Studio . NET C# Compiler Δομή Ενός Προγράμματος C#

Δομή Ενός Προγράμματος C# Περιεχόμενα ενότητας Επίπεδα γλωσσών Προγραμματισμού Μεταγλώττιση και εκτέλεση ενός προγράμματος C# Δομή ενός προγράμματος C# Δομή Ενός Προγράμματος C#

Επίπεδα γλωσσών Προγραμματισμού Κάθε τύπος CPU έχει τη δική του γλώσσα μηχανής (machine language) Τα άλλα επίπεδα δημιουργήθηκαν για διάφορους λόγους, π.χ., να διευκολύνουν τη δημιουργία και κατανόηση προγραμμάτων από ανθρώπους γλώσσα μηχανής (machine language) π.χ. 8051 γλώσσα assembly ενδιάμεση γλώσσα (intermediate language) π.χ. MSIL Γλώσσες ανωτέρου επιπέδου (high-level) π.χ. C, C++, Java, C# Δομή Ενός Προγράμματος C# 6

Παράδειγμα Γλώσσας Μηχανής 177312 137272 001400 026400 017400 000012 000007 004420 010400 011000 000010 005023 012000 012400 000010 003426 013400 000007 000430 003000 064474 064556 037164 000001 024003 053051 000001 041404 062157 000545 007400 064514 062556 072516 061155 071145 060524 066142 000545 002000 060555 067151 000001 024026 046133 060552 060566 066057 067141 027547 072123 064562 063556 024473 000526 005000 067523 071165 062543 064506 062554 000001 046014 067151 067543 067154 065056 073141 006141 004000 004400 000007 006031 015000 015400 000001 040433 070440 067565 062564 060552 060566 064457 027557 071120 067151 051564 071164 060545 000555 003400 071160 067151 066164 000556 012400 046050 060552 060566 066057 067141 027547 072123 064562 063556 024473 000126 000041 000006 000007 000000 000000 000002 000001 000010 000011 000001 000012 000000 000035 000001 000001 000000 025005 000267 130401 000000 000400 005400 000000 003000 000400 000000 003400 004400 006000 006400 000400 005000 000000 030400 001000 000400 000000 010400 000262 011002 133003 002000 000262 011002 133005 002000 000261 000000 000001 000013 000000 000016 000003 000000 000016 000010 000020 000020 000021 000001 000016 000000 000002 000017 Ένας αριθμός μπορεί να είναι μία εντολή ή απλώς δεδομένα. Δομή Ενός Προγράμματος C# 7

Παράδειγμα Γλώσσας Assembly movl (%edx,%eax), %ecx movl 12(%ebp), %eax leal 0(,%eax,4), %edx movl $nodes, %eax movl (%edx,%eax), %eax fldl (%ecx) fsubl (%eax) movl 8(%ebp), %eax Όπως η γλώσσα μηχανής αλλά με σύμβολα αντί για αριθμούς. Δομή Ενός Προγράμματος C# 8

Παράδειγμα C++/C#/Java bool DetermineNeighbor(int i, int j) { double distanceX = (nodes[i].x - nodes[j].x); double distanceY = (nodes[i].y - nodes[j].y); double distanceSquare = disx * disx + disy * disy; double distance = sqrt(distanceSquare); if (distance < radius) return true; else return false; } Οι τρείς γλώσσες έχουν πάρα πολλές ομοιότητες. Δομή Ενός Προγράμματος C# 9

Μεταγλώττιση Προγράμματος Ένα πρόγραμμα που γράφτηκε σε μια γλώσσα υψηλού επιπέδου, πρέπει να μεταγλωττιστεί σε γλώσσα μηχανής πριν να μπορέσει να εκτελεστεί σε ένα συγκεκριμένο είδος επεξεργαστή (CPU) Ο μεταγλωττιστής (compiler ) είναι ένα εργαλείο (πρόγραμμα) το οποίο μεταφράζει πηγαίο κώδικα από μία γλώσσα (source) σε κάποια άλλη (target) Δομή Ενός Προγράμματος C# 10

C# - Μεταγλώττιση και Εκτέλεση Ο μεταγλωττιστής (compiler) της C# μεταγλωττίζει πηγαίο κώδικα από C# (αρχεία .cs) σε μια ειδική μορφή πού λέγεται Ενδιάμεση Γλώσσα της Microsoft (Microsoft Intermediate Language ή MSIL) Η MSIL δεν είναι γλώσσα μηχανής για κανένα γνωστό είδος επεξεργαστή. Είναι μια γλώσσα για ένα εικονικό υπολογιστή (virtual machine) Το περιβάλλον «Common Language Runtime (CLR)» κατόπιν μεταφράζει το αρχείο MSIL Χρησιμοποιεί μια τεχνική που λέγεται just-in-time compiler (JIT) για να μεταφράσει το πρόγραμμα από μορφή MSIL σε γλώσσα μηχανής καθώς το πρόγραμμα εκτελείται. Δομή Ενός Προγράμματος C# 11

C# Μεταγλώττιση και εκτέλεση MSIL C# compiler C# source code Machine code Just in time compiler Δομή Ενός Προγράμματος C# 12

Ένα απλό C# Πρόγραμμα (1 από 2) //========================================== ================ // // File: HelloWorld.cs // Author: Author's Name Email: author@server.gr // Classes: HelloWorld // -------------------- // This program prints a string called "Hello, World!” Δομή Ενός Προγράμματος C# 13

Ένα απλό C# Πρόγραμμα (2 από 2) using System; class HelloWorld { static void Main(string[] args) Console.WriteLine (“Hello, World!”); } Δομή Ενός Προγράμματος C# 14

Δομή ενός Προγράμματος C# (1 από 2) Σχόλια (προεραιτικά) //========================================== ================ // // File: HelloWorld.cs // Author: Author's Name Email: author@server.gr // Classes: HelloWorld // -------------------- // This program prints a string called "Hello, World!” Δομή Ενός Προγράμματος C# 15

Δομή ενός Προγράμματος C# (2 από 2) Εισαγωγή βιβλιοθηκών (προεραιτικά) using System; Ορισμός κλάσης και πεδίου ονομάτων (namespace ) class HelloWorld { static void Main(string[] args) Console.WriteLine (“Hello, World!”); } Δομή Ενός Προγράμματος C# 16

Λευκά κενά και Σχόλια (1 από 2) Λευκά Κενά (White Space) Συμπεριλαμβάνονται το κενό (space), νέα γραμμή, στηλοθέτες (tabs) και κενές γραμμές Προγράμματα σε C# θα πρέπει να είναι έτσι διαμορφωμένα, με σωστές εσοχές, έτσι ώστε να διευκολύνεται η αναγνωσιμότητα Οι εσοχές θα πρέπει να χρησιμοποιούνται ομοιόμορφα Σχόλια Τα σχόλια αγνοούνται από τον μεταγλωττιστή, χρησιμοποιούνται μόνο από τον άνθρωπο. Δομή Ενός Προγράμματος C# 17

Λευκά κενά και Σχόλια (2 από 2) Δύο είδη σχολίων Σχόλια μίας ολόκληρης γραμμής //… // αυτό το σχόλιο εκτείνεται έως το τέλος της γραμμής Σχόλια πολλαπλών γραμμών /* … */ /* αυτό το σχόλιο εκτείνεται μέχρι να βρεθεί το ειδικό σύμβολο τερματισμού. Μπορεί να εκτείνεται σε περισσότερες από μία γραμμές. */ Δομή Ενός Προγράμματος C# 18

Προσδιοριστές (Identifiers) (1 από 2) Ένα τέτοιο όνομα μπορεί να αποτελείται μόνο από γράμματα, ψηφία, και τον χαρακτήρα υπογράμμισης (underscore) Δεν μπορεί να αρχίζει με ψηφίο Η C# είναι case sensitive δηλ. διαφοροποιείται μεταξύ κεφαλαίων και μικρών (πεζών) χαρακτήρων και συνεπώς οι λέξεις args και Args θεωρούνται δύο διαφορετικοί προσδιοριστές Δομή Ενός Προγράμματος C# 19

Προσδιοριστές (Identifiers) (2 από 2) Στο διπλανό πρόγραμμα οι προσδιοριστές είναι οι λέξεις: System, HelloWorld, Main, args, και WriteLine using System; class HelloWorld { static void Main(string[] args) Console.WriteLine(“Hello, World!”); } Δομή Ενός Προγράμματος C# 20

Identifiers: Keywords (1 από 2) παράδειγμα: else Οι λέξεις κλειδιά είναι μέρος της γλώσσας και έχουν απόλυτα καθορισμένο τρόπο χρήσης Δομή Ενός Προγράμματος C# 21

Identifiers: Keywords (1 από 2) Όλες οι λέξεις κλειδιά της C# είναι με πεζά γράμματα! Δομή Ενός Προγράμματος C# 22

Χώροι Ονομάτων – Namespaces (1 από 2) Διαχωρίζουμε τους χώρους ονομάτων για να αποφύγουμε συγκρούσεις ονομάτων! Όλος ο κώδικας της βιβλιοθήκης .NET είναι οργανωμένος σε χώρους ονομάτων! Αν δεν προσδιορίσουμε κάποιο χώρο ονομάτων για το πρόγραμμά μας, τότε όλος ο κώδικας που γράφουμε σε C# θα συμπεριλαμβάνεται σε ένα προϋπάρχοντα χώρο που λέγεται global namespace Για να αναφερθούμε στον κώδικα από ένα συγκεκριμένο χώρο χρησιμοποιούμε το όνομα του χώρου (π.χ System.Console) ή εισάγουμε το χώρο στο πρόγραμμά μας (π.χ using System; ) Δομή Ενός Προγράμματος C# 23

Χώροι Ονομάτων – Namespaces (1 από 2) using System; class HelloWorld { static void Main(string[] args) Console.WriteLine(“Hello World!”); } class HelloWorld { static void Main(string[] args) System.Console.WriteLine(“Hello World!”); } Δομή Ενός Προγράμματος C# 24

Δομή ενός προγράμματος σε C# - Συνέχεια Σχόλια (προαιρετικά) Βιβλιοθήκες (προαιρετικά) Μία (υποχρεωτικά) ή περισσότερες κλάσεις (classes) Μία κλάση περιέχει δηλώσεις μεταβλητών και μία ή περισσότερες μεθόδους (methods) Μία μέθοδος περιέχει εντολές προγράμματος Έναν ή και περισσότερους χώρους ονομάτων (namespaces) (προαιρετικό) Όλα τα παραπάνω θα αναλυθούν σύντομα με λεπτομέρεια Δομή Ενός Προγράμματος C# 25

Δομή Ενός Προγράμματος C# C# Η κλάση (Class) // σχόλια για την κλάση class HelloWorld { } όνομα κλάσης ο κορμός της κλάσης //Σχόλια φυσικά μπορούν να προστεθούν οπουδήποτε Δομή Ενός Προγράμματος C# 26

Δομή Ενός Προγράμματος C# C# Classes Το όνομα της κλάσης είναι ένας προσδιοριστής Μπορεί να αποτελείται από: Γράμματα, ψηφία και υπογράμμιση (_) Δεν μπορεί να ξεκινάει με ψηφίο Μπορεί όμως να ξεκινάει με το σύμβολο (@) Συνθήκη: Ονόματα κλάσεων ξεκινάνε με κεφαλαίο γράμμα. Αν το όνομα είναι αποτέλεσμα σύνθεσης λέξεων, τότε η κάθε λέξη θα έχει το πρώτο γράμμα κεφαλαίο (π.χ., MyFirstClass) Το σώμα της κλάσης ξεκινάει με αριστερή αγγύλη ({) Το σώμα της κλάσης τελειώνει με δεξιά αγγύλη (}) Δομή Ενός Προγράμματος C# 27

Δομή Ενός Προγράμματος C# C# Μέθοδοι (Methods) using System class HelloWorld { } static void Main (string[] args) { } // σχόλια για τη μέθοδο Console.WriteLine(“Hello C# World!”); Console.WriteLine(“Προγραμματισμός ΙΙ - CS331”); Δομή Ενός Προγράμματος C# 28

Δομή Ενός Προγράμματος C# Μέθοδοι Είναι συστατικά στοιχεία ενός προγράμματος Η μέθοδος Main Κάθε εφαρμογή τύπου κονσόλας ή και παραθυρική, πρέπει να έχει οπωσδήποτε μία μέθοδο που λέγεται Main Όλα τα προγράμματα ξεκινάνε την εκτέλεσή τους από τη μέθοδο Main Ένα ζεύγος από αγγύλες χρησιμοποιείται στη αρχή ({) και το τέλος (}) κάθε μεθόδου Εντολές Κάθε εντολή τελειώνει με ένα ερωτηματικό ; Δομή Ενός Προγράμματος C# 29

Δομή Ενός Προγράμματος C# ………..(1 από 2) Δύο σχόλια μονής γραμμής. Αγνοούνται από το μεταγλωττιστή και χρησιμοποιούνται μόνο για να βοηθήσουν άλλους προγραμματιστές να καταλάβουν το πρόγραμμά μας. 1 // Welcome1.cs 2 // Εφαρμογή τύπου κονσόλας σε C#. 3 4 using System; 5 Η οδηγία (directive) using. Ενημερώνει το μεταγλωττιστή ώστε να συμπεριλάβει τη βιβλιοθήκη (χώρο ονομάτων) System. Μία κενή γραμμή. Αγνοείται από το μεταγλωττιστή. Χρησιμοποιείται μόνο για να κάνει το πρόγραμμα πιο ευανάγνωστο. Δομή Ενός Προγράμματος C# 30

Δομή Ενός Προγράμματος C# ………..(2 από 2) 6 class Welcome1 { 8 static void Main( string[] args ) 9 { 10 Console.WriteLine( "Welcome to C# Programming!" ); 11 } 12 } Η αρχή της κλάσης Welcome1. Ξεκινάει με τη λέξη κλειδί class ακολουθούμενη από το όνομα της κλάσης. Η αρχή της μεθόδου Main. Από εδώ ξεκινάει η εκτέλεση του προγράμματος. Η εντολή Console.WriteLine τυπώνει ένα αλφαριθμητικό. Δομή Ενός Προγράμματος C# 31

Εφαρμογή Κονσόλας και Εφαρμογή Windows (1 από 2) Εφαρμογή τύπου Κονσόλας Χωρίς γραφικό περιεχόμενο (παράθυρα) Μόνο κείμενο μπορεί να εισαχθεί ή να τυπωθεί Εκτελούνται από τη γραμμή εντολών (Command Prompt ή DOS Prompt) Εφαρμογή τύπου Windows Φόρμες με πολλούς και διάφορους τρόπους εισαγωγής ή εκτύπωσης δεδομένων Γραφικό περιβάλλον για διασύνδεση με το χρήστη (Graphical User Interfaces - GUI). Δομή Ενός Προγράμματος C# 32

Εφαρμογή Κονσόλας και Εφαρμογή Windows (2 από 2) Το γραφικό περιβάλλον κάνει την εισαγωγή ή και την εκτύπωση δεδομένων πιο εύκολη και πιο φιλική για το χρήστη (user friendly!) Message boxes Συμπεριλαμβάνεται στη βιβλιοθήκη (namespace) System.Windows.Forms Χρησιμοποιείται για να απεικονίσει πληροφορίες στο χρήστη Δομή Ενός Προγράμματος C# 33

Δομή Ενός Προγράμματος C# ………..(1 από 2) // HelloWorldWin.cs // Printing multiple lines in a dialog Box. 3 4 using System; 5 using System.Windows.Forms; 6 7 class Welcome4 Η εντολή αυτή θα απεικονίσει το περιεχόμενο σε ένα παράθυρο μηνύματος και όχι σαν απλό κείμενο στην κονσόλα Δομή Ενός Προγράμματος C# 34

Δομή Ενός Προγράμματος C# ………..(2 από 2) 8 { 9 static void Main( string[] args ) 10 { 11 MessageBox.Show( "Welcome\nto\nC#\nprogramming!" ); 12 } 13 } Η εντολή αυτή θα απεικονίσει το περιεχόμενο σε ένα παράθυρο μηνύματος και όχι σαν απλό κείμενο στην κονσόλα Δομή Ενός Προγράμματος C# 35

Δομή Ενός Προγράμματος C# Λάθη Προγράμματος Ένα πρόγραμμα μπορεί να έχει τρείς τύπους λαθών, Ο μεταγλωττιστής θα βρει τα συντακτικά λάθη και άλλα βασικά λάθη (λάθη μεταγλώττισης - compile-time errors), Εάν υπάρχουν τέτοιου είδους λάθη τότε δεν δημιουργείται η εκτελέσιμη έκδοση του προγράμματος, Ένα άλλο είδος προβλήματος μπορεί να εμφανιστεί κατά την εκτέλεση του προγράμματος, π.χ. διαίρεση διά του μηδενός, το οποίο προκαλεί μη αναμενόμενη εξαίρεση με ενδεχόμενη πρόωρη έξοδο του προγράμματος (λάθη χρόνου εκτέλεσης - run-time errors), Τέλος, ένα πρόγραμμα μπορεί να τρέχει αλλά να μη βγάζει τα σωστά αποτελέσματα (λογικά λάθη - logical errors). Δομή Ενός Προγράμματος C# 36

Τέλος Ενότητας