1/3 Podstwy progrmowni oiektowego emil: m.tedzki@p.edu.pl stron: http://rgorn.p.ilystok.pl/~tedzki/ Mrek Tędzki
Wymgni wstępne: Wskzn yły znjomość podstw progrmowni strukturlnego (w dowolnym języku). Temty zjęć: 1. Pojecie progrmu. Zmienne, typy zmiennych, instrukcje przypisni, opertory, instrukcje wejści/ wyjści. Instrukcje wrunkowe.. Instrukcje itercyjne. Opertory logiczne. 3. Typy tlicowe. Algorytmy dotyczące tlic (sortownie, wyszukiwnie). 4. Wyodręninie kodu w postci funkcji. Wywoływnie funkcji. Prmetry funkcji. 5. Pojecie klsy i oiektu. Skłdowe klsy: pol i metody. Tworzenie i usuwnie oiektów. 6. Pojecie interfejsu i implementcji. Hermetyzcj. Kompozycj - korzystnie z gotowych kls. 7. Dziedziczenie. Wywołni konstruktorów w dziedziczeniu. Rzutownie w górę i w dół. Ndpisywnie metod - polimorfizm. 8. Typy interfejsowe. Korzystnie z mechnizmu wyjątków. Klsy generyczne. Litertur i oprogrmownie: 1. Microsoft Visul Studio (może yć w wersji Express) lu MonoDevelop (dl środowisk Linux). Mrcin Lis: C#. Prktyczny kurs (Helion) 3. Adm Boduch: Wstęp do progrmowni w języku C# (Helion) 4....czy jedn z wielu innych książek dotyczących podstw progrmowni w C# 5. Mteriły dostępne w Internecie, np.: http://www.cshrp-sttion.com/ http://ivlo.neostrd.pl/cs_lekcje/index.htm Zliczenie: Brk odręnej oceny z wykłd. Ocen łączn z zjęć z tego przedmiotu n podstwie Prcowni Specjlistycznej. /3
3/3 Progrmownie: Proces projektowni i tworzeni kodu źródłowego progrmów komputerowych. PROBLEM ALGORYTM PROGRAM lgorytmizcj kodownie P R O G R A M O WA N I E Algorytm: Skończony, uporządkowny ciąg jsno zdefiniownych czynności, koniecznych do wykonni pewnego rodzju zdń. Przepis podjący w skończonej liczie kroków rozwiąznie określonego prolemu. Algorytm możn zpisć w dowolnym języku (np. język polski). Inne sposoy zpisu lgorytmu: schemty lokowe, pseudokod.
4/3 Przykłd: wyświetl npis powitlny wczytj liczę jeśli licz jest ujemn zmień ją n dodtnią wyciągnij pierwistek z liczy wypisz wynik zkończ progrm Console.Write("Podj liczę "); doule x; x = doule.prse(console.redline()); if (x < 0) x = -x; doule wynik = Mth.Sqrt(x); Console.WriteLine(wynik); Console.RedKey(); x = -x START wyświetl podj liczę TAK wczytj x x<0? wynik = sqrt(x) wypisz wynik END NIE
5/3 przykłdowy progrm w C#: // Progrm.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; nmespce ConsoleAppliction1 clss Progrm Console.WriteLine("Hello!"); Console.RedKey(); progrm: ciąg znków - rozmir znków m znczenie skłdniki: - słow kluczowe - identyfiktory - stłe i npisy - opertory - seprtory
6/3 // tu umieszczmy nsz kod Console.WriteLine("cześć!"); Console.Write(" + = "); Console.WriteLine( + ); /* ten frgment zostnie zignorowny Console.WriteLine("3 / = "); */ Console.WriteLine("A jk wypisć \"cudzysłów\"?"); Console.WriteLine("Jk w tkim rzie wypisć znk \\?"); Console.WriteLine(" + = " + 4); Console.WriteLine(" + = 0", 4); Console.RedKey(); efekt: cześć! + = 4 A jk wypisć "cudzysłów"? Jk w tkim rzie wypisć znk \? + = 4 + = 4
7/3 co to jest zmienn? int ; int, c; c
8/3 co to jest zmienn? int ; int, c; = ; c
9/3 co to jest zmienn? int ; int, c; = ; = 3; 3 c
10/3 co to jest zmienn? int ; c int, c; = ; 3 5 = 3; c = + ; Console.WriteLine("wynik wynosi " + c); Console.WriteLine("0 + 1 = ",,, c); wynik wynosi 5 + 3 = 5
11/3 int ; c int, c; = ; 3 5 = 3; c = + ; Console.WriteLine("wynik wynosi " + c); Console.WriteLine("0 + 1 = ",,, c); Console.WriteLine(); // wrtość zmiennej Console.WriteLine(""); // npis "" int e; Console.WriteLine(e); // łąd! e = 100; Console.WriteLine(e); // ok Console.RedKey();
// typ zmiennej // cłkowity int ; // również long, short, yte = ; doule x; // również flot, deciml x =.5; ool ; = true; // lu flse chr z; z = '@'; // nie mylić z "@" string txt; txt = "dzień dory";,5 True @ dzień dory Console.WriteLine("0\n1\n\n3\n4",,x,,z,txt); Console.RedKey(); 1/3
13/3 // podstwienie int =,, c; = ; = ; // łąd // ok 10 = ; // łąd = 10; // ok + = c // łąd c = + ; // ok 10 10 c c c c 1
14/3 // zmin dwóch zmiennych int, ; = ; = 3; Console.WriteLine("=0, =1",, ); // złe rozwiąznie = ; = ; Console.WriteLine("=0, =1",, ); Console.RedKey(); 3 =, =3 =3, =3 3 3 3 3
15/3 // zmin dwóch zmiennych int, ; = ; = 3; Console.WriteLine("=0, =1",, ); // dore rozwiąznie int c; c = ; = ; = c; Console.WriteLine("=0, =1",, ); Console.RedKey(); =, =3 =3, = 3 3 3 3 3 c c c c
int = 5, =, c; c = 5 / ; // wynik: c = 5 % ; // reszt z dzieleni c = + 3 / - 3 * 5 + 11 % 3; c = ( + 3) / - 3 * (5 + 11 % 3); c += ; // c = c + ; c++; // c = c + 1; c--; // c = c - 1; doule x =, y; y = Mth.Sqrt(x); // pierwistek kwdrtowy y = Mth.Pow(, 3); // potęg y = Mth.As(-1.5); // wrtość ezwzględn y = Mth.Sin(Mth.PI / 6); // sinus y = Mth.Round(Mth.E); // zokrąglenie 16/3
17/3 // konwersj typów int x; doule y; x = 5 / ; // wynik: y = 5 / ; // wynik: y = 5.0 / ; // wynik:.5 y = (doule)5 / ; // wynik:.5 y = 1.0 + 5 / ; // wynik: 3 y = 1 + 5 /.0; // wynik: 3.5 y = x; // ok x = y; // łąd! x = (int)y; // ok (ocięcie części ułmkowej)
18/3 funkcje wejści/ wyjści: // poiernie wrtości z konsoli Console.Write("Jk msz n imię? "); string imie; imie = Console.RedLine(); Console.WriteLine("0 to rdzo łdne imię", imie); // poiernie wrtości liczowej Console.Write("Ile msz lt? "); string wiek; wiek = Console.RedLine(); Console.WriteLine("Nprwdę? A j 0!", wiek * + 7); int w = int.prse(wiek); Console.WriteLine("Nprwdę? A j 0!", w * + 7); Console.RedKey();
19/3 // znk '.' jko miejsce dziesiętne przy wczytywniu // i wypisywniu licz rzeczywistych System.Threding.Thred.CurrentThred.CurrentCulture = new System.Gloliztion.CultureInfo("en-US"); Console.Write("Podj npis > "); string npis = Console.RedLine(); Console.Write("Podj liczę cłkowitą > "); int = int.prse(console.redline()); Console.Write("Podj liczę rzeczywistą > "); doule = doule.prse(console.redline()); Console.WriteLine("podłeś: 0, 1, ", npis,, ); Console.RedKey();
0/3 przelicznie wlut: Console.Write("Podj kwotę w euro: "); doule euro = doule.prse(console.redline()); const doule przelicznik = 3.97; doule zł = Mth.Round(euro / przelicznik, ); Console.WriteLine("0 euro = 1 zł", euro, zł); Console.RedKey(); inne rozwiąznie: doule zł = euro / przelicznik; Console.WriteLine("0 euro = 1:F zł", euro, zł);
1/3 pole trójkąt Console.WriteLine("Progrm olicz pole trójkąt"); Console.Write("Podj długość podstwy: "); doule = doule.prse(console.redline()); Console.Write("Podj wysokość: "); doule h = doule.prse(console.redline()); doule pole = * h / ; Console.WriteLine("Pole trójkąt wynosi 0", pole); Console.RedKey();
/3 przelicznie minut n godziny: Console.WriteLine("Podj czs w minutch"); int minuty = int.prse(console.redline()); int godziny = minuty / 60; minuty %= 60; godziny %= 4; Console.WriteLine("0:1:00", godziny, minuty); Console.RedKey();
pierwistki równni kwdrtowego: Console.WriteLine("Pierwistki równni kwdrtowego."); Console.Write("Podj : "); doule = doule.prse(console.redline()); Console.Write("Podj : "); doule = doule.prse(console.redline()); Console.Write("Podj c: "); doule c = doule.prse(console.redline()); doule delt = * - 4 * * c; doule x1 = (- - Mth.Sqrt(delt)) / ( * ); doule x = (- + Mth.Sqrt(delt)) / ( * ); Console.WriteLine("x1 = 0\nx = 1", x1, x); Console.RedKey(); 3/3