5
Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 .... 1 | UOP/mm/df/14 Teze: O proceduralnom i OOP programiranju Microsoft Visual C# je Microsof-ov moćni komponentno-orjentisan jezik sa značajnom ulogom u arhitekturi Microsoft.NET Framework-a (slično ulozi koji je jezik C imao za razvoj UNIX-a). Namenjena za razvoj OOP aplikacija u Microsoft.NET okruženju. Istorijat Komparacija proceduralnog i OOP programiranja Proceduralno programiranje. Pojam algoritma. Pseudokod. Primeri algoritma: linijski algoritmi, algoritmi sa razgranatom strukturom, algoritmi sa ciklusima, višestruke petlje, primeri... Odabrani primeri algoritama... suvi prolaz. Proceduralno programiranje kao neophodna komponenta OOP programiranja. Pojam procedura: Funkcije (Function...) i Potprogrami (Subroutine...). Razlike i sličnosti: Pojmovi objektno orjentisanog programiranja: objekti svojstva, metode, događaji klase kolekcije klasa enkapsulacija nasleđivanje polimorfizam... Uvod u razvojno okruženje. Početak programiranja u C#. Početni koraci u kreiranju aplikacija. Aplikacije: Konzolne / Console Application/, WPF (Windows Presentation Foundation)... kreiranje aplikacija sa podesivim formama koje nisu pravougaonog oblika itd..., Grafičke aplikacije / Windows Forms Application/... Napomena: Svi elementi dati su za okruženje Visual Studio 2008. Slika 1. Kreiranje novog projekta

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan ... u... · Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft

  • Upload
    vunhi

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 ....

1 | U O P / m m / d f / 1 4

Teze:

O proceduralnom i OOP programiranju

Microsoft Visual C# je Microsof-ov moćni komponentno-orjentisan jezik sa značajnom ulogom u arhitekturi Microsoft.NET Framework-a (slično ulozi koji je jezik C imao za razvoj UNIX-a).

Namenjena za razvoj OOP aplikacija u Microsoft.NET okruženju.

Istorijat

Komparacija proceduralnog i OOP programiranja

Proceduralno programiranje.

Pojam algoritma. Pseudokod.

Primeri algoritma: linijski algoritmi, algoritmi sa razgranatom strukturom, algoritmi sa ciklusima, višestruke petlje, primeri...

Odabrani primeri algoritama... suvi prolaz.

Proceduralno programiranje kao neophodna komponenta OOP programiranja.

Pojam procedura: Funkcije (Function...) i Potprogrami (Subroutine...). Razlike i sličnosti:

Pojmovi objektno orjentisanog programiranja:

objekti

svojstva, metode, događaji

klase

kolekcije klasa

enkapsulacija

nasleđivanje

polimorfizam...

Uvod u razvojno okruženje. Početak programiranja u C#.

Početni koraci u kreiranju aplikacija.

Aplikacije: Konzolne / Console Application/, WPF (Windows Presentation Foundation)... kreiranje aplikacija sa podesivim formama koje nisu pravougaonog oblika itd..., Grafičke aplikacije / Windows Forms Application/...

Napomena: Svi elementi dati su za okruženje Visual Studio 2008.

Slika 1. Kreiranje novog projekta

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 ....

2 | U O P / m m / d f / 1 4

Razvoj konzolne aplikacije

Objašnjenja:

prozor Code and Text Editor

pojam: Project

Okvir Solution Explorer

Objašenja: Solution (MM14-A), MM14-A.sln, MM14-A.csproj, Properties, AssemblyInfo.cs, References, Sklopovi (assemblies), App.config

Program.cs je izvorna C# datoteka i prikazana je u prozoru Code and Text editor.

Solution: MM14-A

Primer koda

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

//Konzolna aplikacija ... Console.WriteLine, Console.ReadLine, --//if...int, string, %

namespace MM14_A

{

class Program

{

static void Main(string[] args)

{

int a, b, c; // deklarisanje celobrojnih varijabli

string ime;

Console.WriteLine("mr Milovan Milivojevic /// Dordje Forst /// 2014");

Console.WriteLine('\n'+"Zdravo svima na severnoj i juznoj polulopti");

Console.WriteLine('\n' + "Unesite Vase ime!");

ime = Console.ReadLine();

Console.WriteLine("Zdravo " + ime);

Console.WriteLine("Unesi a: ");

a = int.Parse(Console.ReadLine());

Console.WriteLine("Vrednost za a je: " + a);

Console.WriteLine("Unesi b: ");

b = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Vrednost za b je: " + b);

c = a + b;

Console.WriteLine("Zbir je c= " + c);

//drugi nacin ispisa

Console.WriteLine("Vrednost promenjive a je: {0}, vrednost promennjive b: je {1}.

{0}+{1}={2}", a, b, c);

if (a > b)

Console.WriteLine("A je vece od B");

else if (a == b)

{

Console.WriteLine("A je JEDANKO B");

}

else

{

Console.WriteLine("A je razlicito od B");

}

}

}

}

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 ....

3 | U O P / m m / d f / 1 4

Datoteka Program.cs definiše klasu zvanu Program. Klasa Program sadrži metodu Main. U C# svi izvršni kodovi moraju se nalaziti u nekoj metodi. Metode moraju pripadati nekoj klasi.

Metoda Main je ulazna tačka programa. Ova metoda mora biti definisana u klasi Program kao statička.

Program se startuje sa ctrl + F5 ili sa menija Debug Start Without Debugging.

Upotreba prostora imena (Name Space).

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

Direktiva using uključuje navedene prostore imena koji sadrže najčešće korišćene klase u okviru Visual Studio okruženja za razvoj konzolnih aplikacija.

Direktiva using jednostavno dovodi stavke prostora imena u područje važenja i oslobađa programera potrebe da potpuno imenuje klase tokom razvoja koda projekta.

Dodavanje imenovanih prostora: DTM na fasciklu References.... Add Reference ...

ELEMENTARNI primeri za učenje sintakse: using System;

//using System.Collections.Generic;

//using System.Linq;

//using System.Text;

namespace MM14_A1

{

class Program

{

static void Main(string[] args)

{

double prvi, drugi, zbir;

string ime;

Console.WriteLine("Unesi prvi broj:");

prvi=Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Unesi drugi broj:");

drugi = Convert.ToDouble(Console.ReadLine());

zbir = prvi + drugi;

Console.WriteLine("Zbir brojeva prvog ,{0} i drugog {1} je {2}", prvi,drugi,

zbir);

/*ili

Console.WriteLine("Zbir brojeva prvog ,{0} i drugog {1} je {2}", prvi+drugi);*/

int broj ,i;

broj = 6;

broj++; // postfix notacija

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 ....

4 | U O P / m m / d f / 1 4

//float a55 = 5.6F;

//double a34 = 6.345343333e-3;

double a = 5.44;

//a=broj;

broj = (int)a; // !!! Izraz zahteva posebno razjasnjenje

i = 1; // operator dodele = ... razlukuje se od operatora poredjenja ==

Console.WriteLine("Ovo je broj, {0}, a promenjiva A: {1}, pa opet prvi broj {0}",

broj++, a);

Console.WriteLine("Ovo je broj " + a );

//opciono: Console.WriteLine("Ovo je broj " + a.ToString);

double Tf, Tc;

Console.WriteLine("Unesi temperaturu u Farenhajtima:");

Tf = Convert.ToDouble(Console.ReadLine());

Tc = ((double)5 / 9) * (Tf - 32);

Console.WriteLine("Temperatura u stepenima Celizijusa je: {0} celzijusa", Tc);

Console.ReadKey();

}

}

}

U prethodom primeru analizirati kood i to posebno sa aspekta: o Komentara u kodu o Postavljanja komentara na ekranu o Učitavanja sa tastature o Upotrebe preopterećenih metoda o Deklarisanje primitivnih tipova podataka i varijabli. o ,,parsiranja’’, ,,kastovanja’’ i ,,konvertovanja’’ o Iskaza dodele o Iskaza uslovnog prelaska: if ... else if....

Primeri: deklarisanje varijabli, if ... else if ... , logički operatori OR i AND... parsiranje... Console,WriteLine. Upotreba klase Math

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

// Program sa upotrebom logickih relacija poredjenja AND: && i OR: || jednako == ...

razlicito !=

//Primena klase Math .... Struktura if ... else if ... else

namespace MM14_A2

{

class Program

{

static void Main(string[] args)

{

int x;

double y;

Console.WriteLine("Uneti x:");

x = int.Parse(Console.ReadLine());

if (x < 5 && x % 2 == 0)

{

y = Math.Pow(x, 2);

}

else if (x > 25 || x % 2 != 0)

{

y = x / 3;

}

Uvod u Objektno Programiranje /// VPTŠ Užice /// Milovan Milivojević / Đorđe Forst /// 2014 Izvodi: Microsoft Visual C#2012, John Sharp, CET:Portabilis, Beograd,2013 ....

5 | U O P / m m / d f / 1 4

else

{

y = Math.Cos(x);

}

Console.WriteLine ("Resenje je {0} za zadato {1}.",y ,x);

}

}

}

Primer:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MM14_A3

{

class Program

{

static void Main(string[] args)

{

double a, b, c, max;

Console.WriteLine("Unesite Prvi broj:");

a = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Unesite Drugi broj:");

b = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Unesite Treci broj:");

c = Convert.ToDouble(Console.ReadLine());

if(a>b&&a>c) max=a;

else if (b>c) max=b;

else max=c;

Console.WriteLine("Maksimum je {0}.",max);

// druga varijanta

max = a;

if (b > max) max = b;

if (c > max) max = c;

Console.WriteLine("Maksimum je {0}.", max);

Console.ReadKey ();

}

}

}