Τρίτη 19 Απριλίου 2016

Ασκήσεις – Γλώσσα Προγραμματισμού C#


Ασκησεις :  

 

Άσκηση 1 :

 

 Να γραφτεί ένα πρόγραμμα που να εμφανίζει στην οθόνη "Hello world" .


Άσκηση 2 :


Γράψτε ένα πρόγραμμα που να διαβάζει το όνομα του χρήστη και να τυπώνει ένα προσαρμοσμένο στο όνομα του χρήστη "Hello" μήνυμα. 

Άσκηση 3 : 

Γράψτε ένα απλό πρόγραμμα που να υπολογίζει το τετράγωνο ενός αριθμού. Τη σχετική λειτουργία πρέπει να την εκτελέι κατάλληλη μέθοδος μιας κλασης. Χρησιμοποιείστε μια in παράμετρο για να περάσετε μια τιμή στη μέθοδο αυτή. Επισημαίνεται οτι στην περίπτωση αυτή η μεταβλητή της μεθόδου αρχικοποιείται με ένα αντίγραφο της τιμής. 

 Άσκηση 4 :  

Γράψτε ένα πρόγραμμα που να εμφανίζει τα περιεχόμενα ενός αρχείου πηγαίου κώδικα σε C# στην οθόνη.

 Άσκηση 5 :

Γράψτε ένα πρόγραμμα στην που να εμφανίζει οθόνη  την τρέχουσα ημερομηνία και ώρα. 


Καλή επιτυχία!

Δευτέρα 18 Απριλίου 2016

Χρήσιμα link

Εκμάθηση μέσω βίντεο




Εισαγωγή στη C#



1) Τι είναι η C# ; 


Η C# είναι μία ολοκληρωμένη αντικειμενοστραφής γλώσσα προγραμματισμού σχεδιασμένη για τη δημιουργία λογισμικού σε .Net Framework.

  • Τα πάντα στη C# είναι αντικείμενα

  • Παρέχει άμεση πρόσβαση σε τεράστιες βιβλιοθήκες κλάσεων του .Net Framework & ασφάλεια των τύπων της.   


2)Απλό παράδειγμα C# προγράμματος:

Θα δούμε παρακάτω τη σύνταξη και τη δομή ενός απλού προγράμματος (Console Application) στη C# που εμφανίζει το μήνυμα ‘’Hello World’’ και θα αναλύσουμε γραμμή γραμμή τα μέρη του:

1.    using System;      

2.    namespace MyNamespace 
3.    
4.    {
5.       class Helloworld   
6.       {
7.        static void Main() 
a.        {
i.          Console.WriteLine("Hello World");
ii.          Console.ReadKey();

b.        }
8.       }
9.      } 
 

3)Χώροι ονομάτων (Namespaces):

Σε ένα C# πρόγραμμα χρησιμοποιούμαι Namespaces για την οργάνωση του κώδικα μας.
Στο παραπάνω πρόγραμμα χρησιμοποιήσαμε τον χώρο ονομάτων System (γραμμή 1 του παραδείγματος) μέσο της λέξης κλειδιού using ,το οποίο περιλαμβάνει έτοιμες κλάσεις και μεθόδους του .ΝΕΤ με έτοιμο επαναχρησιμοποιήσιμο κώδικα!


Ένα Namespace μπορεί να περιέχει τους εξής τύπους :

• Namespaces
• Classes
• Delegates
• Enums
• Structs
• Interfaces

Για τη δημιουργία ενός δικού μας Namespace χρησιμοποιούμε τη δεσμευμένη λέξη-κλειδί namespace (γραμμή 2), έτσι η κλάση Helloworld (γραμμή 4) εμπεριέχεται στο MyNamespace που δημιουργήσαμε.


Στη συνέχεια του κώδικα μπορούμε να δούμε πως μπορούμε να εμφανίσουμε στη γραμμή εντολών το μήνυμα "Hello World". Η μέθοδος Main() (γραμμή 6) περιέχει την εντολή Console.WriteLine("Hello World"); ,η οποία εμφανίζει το τελικό μήνυμα.



ΠΑΡΑΤΗΡΉΣΕΙΣ:

  • Η κλάση Console ανήκει στο χώρο ονομάτων System
    και η WriteLine() είναι μέθοδος της Console.

    Εάν δεν χρησιμοποιούσαμε την εντολή using System; Η εντολή θα συντασσόταν System.Console.WriteLine("Hello Word");


  • Χρησιμοποιούμε την τελεία ανάμεσα από Namespaces, κλάσεις και μεθόδους για να δείξουμε τι εμπεριέχεται σε τι. Πχ.

namespace N1     // N1
{
    class C1      // N1.C1
    {
        Method() C2   // N1.C1.C2()
        {
        }
    }
    namespace N2  // N1.N2
    {
        class C2   // N1.N2.C2
        {
        }
    }
}

  • Την εντολή Console.ReadKey(); την χρησιμοποιούμε απλά για να κρατήσουμε το
    παράθυρο της γραμμής εντολών ανοικτό και να δούμε το μήνυμα που εμφανίζουμε,
    το πρόγραμμα απλά περιμένει ο χρήστης να πατήσει κάποιο κουμπί και στη
    συνέχεια τερματίζει.


    4)Ψευδώνυμα (Aliases):

    Μπορούμε να χρησιμοποιούμε ψευδώνυμα (Aliases) για να κάνουμε τον κώδικα μας ακόμα πιο σύντομο και να αποφύγουμε να γράφουμε μακροσκελείς εντολές. Πχ.

    Μπορούμε να χρησιμοποιούμε ψευδώνυμα (Aliases) για να κάνουμε τον κώδικα μας ακόμα πιο σύντομο και να αποφύγουμε να γράφουμε μακροσκελείς εντολές. Πχ.
    using  Alias = System.Console ;
                
    namespace MyNamespace
    {
        public class Helloworld
        {
           static void Main()
            {   
                Alias.WriteLine("Hello World");
                Console.ReadKey();
            }
         }
     

    5)Σχόλια:

    Μπορούμε να χρησιμοποιούμε σχόλια στον κώδικά μας κυρίως για να εξηγούμε κάποια σημεία του, όπως τη λειτουργία μιας κλάσης/μεθόδου που δημιουργήσαμε ,έτσι ώστε να γίνεται ο κώδικας εύκολος στην ανάγνωση τόσο για μας ,αν θελήσουμε κάποια στιγμή να τον ανατρέξουμε να δούμε τη λειτουργία του, αλλά και για κάποιο τρίτο πρόσωπο που θα χρειαστεί να τον δει.

    Τα σχόλια συντάσσονται χρησιμοποιώντας αυτόν τον συμβολισμό ( // ) ,εάν επρόκειτο για μία γραμμή σχολίου:
    //Αυτό είναι ένα σχόλιο


    ή αν το σχόλιο απαιτεί παραπάνω γραμμή με αυτόν τον τρόπο:

    /* Αυτό είναι
    ένα σχόλιο */

    Με τον τρόπο αυτό ο compiler προσπερνάει οτιδήποτε βρίσκεται μετά τα εισαγωγικά και δεν επηρεάζει το τελικό αποτέλεσμα του προγράμματος.

    Παραδείγματα σχολίων:
     
     Console.WriteLine("Hello World"); //Output a greeting

    Console.WriteLine("Hello World"); /*Output
    a greeting*/

    Π Ρ Ο Σ Ο Χ Η
    Εάν χρησιμοποιούσαμε τα διπλά εισαγωγικά μπροστά από την Console.WriteLine κάπως έτσι: // Console.WriteLine("Hellow Word"); Output a greeting ,τότε ο compiler θα προσπερνούσε αυτήν την εντολή σαν σχόλιο και το αποτέλεσμα της δεν θα εμφανιζόταν ποτέ στην οθόνη.

    6)Δήλωση μεταβλητών, Ανάθεση-Σύγκριση τιμών &
    Εμφάνιση αποτελεσμάτων στην οθόνη:

    Σε ένα C# πρόγραμμα μπορούμε να δηλώσουμε μεταβλητές σε οποιοδήποτε σημείο του προγράμματος , πριν τις χρησιμοποιήσουμε για κάποια πράξη.
  • Για να δηλώσουμε μία μεταβλητή ορίζουμε πρώτα τον τύπο της και ύστερα το όνομα της.
    πχ. int x; string y1; long z_2;

  • Για να κάνουμε ανάθεση τιμής σε μεταβλητές χρησιμοποιούμε το ίσον ( = )
    πχ. x = 5; Ή η ίδια εντολή ως int x = 5; άν την δηλώναμε ταυτόχρονα μαζί με την
    ανάθεση της τιμής. char y = 'h'; Κτλ.



  • Για σύγκριση μεταβλητών ισχύουν :
    >= μεγαλύτερο ή ίσο

    <= μικρότερο ή ίσο

    == ίσο

    != διάφορο

  • Για να εμφανίσουμε το περιεχόμενο μεταβλητών στην οθόνη η C# χρησιμοποιεί τη μέθοδο WriteLine() με δύο τρόπους σύνταξης.
Παρακάτω θα δούμε σε ένα απλό πρόγραμμα που εμφανίζει το άθροισα δύο ακεραίων τον τρόπο δήλωσης μεταβλητών, την ανάθεση τιμών σε αυτές και τέλος πώς να εμφανίζουμε μεταβλητές με τη χρήση της WriteLine() :

using System;

namespace MyNamespace
{
    class Sum_x1_x2
    {
        static void Main()
        {   
            // 1ος τρόπος δήλωσης στην αρχή του προγράμματος
            int x1 = 5; 
            int x2 = 3;
            int y = x1 + x2;
            
            // 1ος τρόπος σύνταξης της WriteLine
            Console.WriteLine(" Το αποτέλεσμα είναι : {0} ", y) ;
            
            /* To output είναι: Το αποτέλεσμα είναι : 8
               Στη θέση του συμβόλου {0} η WriteLine 
               τοποθετεί την τιμή που έχει το y.Το μηδέν 
               μέσα στα άγκιστρα δείχνει τη θέση 
               της μεταβλητής μετά το κόμμα μέσα στη Writeline.
               Αν θέλαμε να εμφανίσουμε παραπάνω μεταβλητές
               θα κάναμε το εξής:
               Console.WriteLine("{0} + {1} = {2}",x1,x2,y);
               Το output εδώ θα ήταν : 5 + 3 = 8
               Στη θέση του {0} πάει η τιμή της x1, στο {1} η x2 
               και στο {2} η y.
            */

            string z = "!!!"; /*2ος τρόπος δήλωσης κατά τη ροή του 
                                προγράμματος */

           // 2ος τρόπος σύνταξης της WriteLine
            Console.WriteLine("To αποτέλεσμα είναι : {0}" +z ,y);
            
            /* Γιατί +z ??? 
               Στη WriteLIne οτιδήποτε είναι μέσα σε εισαγωγικά
               αποτελεί string. Η μεταβλητή z είναι επίσης ένα
               string. Βλέπουμε λοιπόν ότι μπορούμε να προσθέσουμε
               δύο strings μαζί και το αποτέλεσμα θα έιναι 
               το ένα string να "κολλήσει" πίσω από το άλλο. 
               Το output εδώ θα δώσει : To αποτέλεσμα είναι : 8!!! 
             */

             Console.ReadKey();

        }
    }
} 
 

ΠΑΡΑΤΗΡΗΣΕΙΣ:



  • Η C# είναι Case sensitive ,
    Για να δηλώσουμε την Main() χρησιμοποιήσαμε κεφαλαίο M! Θα ήταν λάθος να λέγαμε static void main(). ο compiler εξ ορισμού καταλαβαίνει ότι το βασικό πρόγραμμα βρίσκεται στην μέθοδο Main() και όχι στην main().

    Εννοείται πως int y ≠ int Y !

  • Keywords,
    Στη C# υπάρχουν δεσμευμένες λέξεις-κλειδιά.

    Δεν μπορούμε να δηλώσουμε πχ μια μεταβλητή με όνομα Console/int/void/class,

    όπως επίσης δεν μπορούμε να βάζουμε αριθμό μπροστά από μεταβλητή!

  • Σταθερές ( Constans ),
    Η δήλωση των σταθερών στο C# πρόγραμμα όπως πχ. Η τιμή του π=3.14. γίνεται με αυτόν τον τρόπο : const double p = 3.14;

  • Στη WriteLine() υπάρχουν 2 τρόποι εμφάνισης μεταβλητών.
    1ος τρόπος ως συνεχόμενο string

    2ος τρόπος με int μεταβλητές :

    πχ.

    int x = 1;

    int y = 2;

    int sum = x + y;
//1ος τρόπος
Console.WriteLine(x + "+" + y + "=" + sum);
// outuput 1+2=3

//2ος τρόπος
Console.WriteLine("{0}+{1}={2}",x,y,sum);
//output 1+2=3

 


 

Ιστορία


Κατά την διάρκεια της δημιουργείας της πλατφόρμας .ΝΕΤ οι κλάσσεις και οι βιβλιοθήκες γράφτηκαν χρησιμοποιώντας ένα κομπάιλερ με το όνομα Simple Managed C (SMC). Τον Ιανουάριο του 1999 ο Anders Hejlsberg συγκρότησε μια ομάδα με σκοπό να φτιάξει μια καινούρια γλώσσα με όνομα Cool (C-like Object Oriented Language). Παρόλο που η Microsoft σκεφτόταν να κρατήσει το ονομα Cool σαν το τελικό όνομα της γλώσσας αυτό δεν έγινε ποτέ για λόγους πνευματικών δικαιωματών. Μέχρι τον Ιούλιο του 2000 όπου ανακοινώθηκε η πλατφόρμα .NET η γλώσσα είχε είδη μεταονομαστεί σε C# στην οποία αργότερα εισήχθησαν οι βιβλιοθήκες της ASP.NET.
Ο James Gosling, (σχεδιαστής της Java) το 1994 μαζί με τον Bill Joy (συνιδρυτής της Sun Microsystems)αποκάλεσαν την C# μια απομίμιση της Java. Ο Gosling επίσης συμπλήρωσε οτι η C# είναι ίδια με την Java απλά χωρίς αξιοπιστεία παραγωγηκώτητα και ασφάλεια. Οι συγγραφείς ενος βιβλίου της C# ισχυρίστικαν οτι η Java και η C# ειναι πανομοιότυπες επαναληπτικές και χωρίς καινοτομίες. Τον Ιούνιο του 2000 ο Anders Hejlsberg υποστήριξε οτι η C# δεν είναι κλώνος της Java αλλά οτι είναι πολύ πιο κοντά στην C++.
Από τότε που κυκλοφόρησε η δεύτερη έκδοση της C# το Νοέμβριο του 2005, η C# και η Java άρχισαν να απομακρύνονται η μία από την άλλη, με αποτέλεσμα όσο περνάει ο καιρός να μοιάζουν όλο και λιγότερο. Μια από τις πρώτες σημαντικές διαφορές ήταν στην υλοποιήση των generic object . Η C# παρέχει "πρώτης-κλάσης" generic objects τα οποία μπορούν να χρησιμοποιηθούν σαν οποιαδήποτε άλλη κλάση με τον κώδικα να εκτελείται κατά τη διάρκεια της φόρτωσής της. Αντιθέτως τα generic object της Java παρέχονται από τη γλώσσα κατά τη διάρκεια της σύνταξής της και δεν επηρεάζουν τον ήδη υπάρχων κώδικα. Επιλέον η C# πρόσθεσε κάποια ακόμα χαρακτηριστικά στην τρίτη έκδοσή της τα οποία επιτρέπουν στους προγραμματιστές να χρησιμοποιουν τεχνικές όπως τα closures.
Η C# είχε κάποτε μια μασκότ που ονομαζόταν Andy (Αντι) σαν φόρος τιμης στον σχεδιαστή της, αλλά αποσύρθηκε στις 29 Ιανουαρίου του 2004.

C Sharp

 

C Sharp (γλώσσα προγραμματισμού)



Η C# (C Sharp, ελληνική προφ. Σι Σάρπ,) είναι μια γλώσσα προγραμματισμού Η/Υ. Δημιουργήθηκε απο την Microsoft μέσα από την πλατφόρμα .NET και αργότερα αναγνωριστηκε επισήμως απο την Ecma (ECMA-334) και την ISO (ISO/IEC 2327:2006). Είναι μια απ τις γλώσσες προγραμματισμού που δημιουργήθηκαν για την Common Language Infrastructure. O κύριος σκοπός της γλώσσας είναι να είναι απλή αντικειμενοστρεφής γλώσσα για γενική χρήση. Ο διοικητής της ομάδα που διαχειρίζεται την γλώσσα ονομάζεται Anders Hejlsberg. Στις 15 Αυγούστου 2012 κυκλοφόρησε η έκδοση 5.0 η οποία είναι η πιο πρόσφατη μέχρι σήμερα.