Tworzenie instancji klas z konstruktorami Rozdzia³ 2 Tworzenie instancji klas z konstruktorami

Wielkość: px
Rozpocząć pokaz od strony:

Download "Tworzenie instancji klas z konstruktorami Rozdzia³ 2 Tworzenie instancji klas z konstruktorami"

Transkrypt

1 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami Rozdzia³ 2 Tworzenie instancji klas z konstruktorami W tym rozdziale: Tworzenie konstruktora klasy. Tworzenie wielu konstruktorów dla jednej klasy. Inicjowanie instancji klasy za pomoc¹ konstruktora. Implementowanie metody ToString dla klasy. Tworzenie tablicy instancji klasy. U ywanie tablicy instancji klasy jako Ÿród³a danych kontrolki ListBox. Szacunkowy czas 1 godz. 30 min. W poprzednim rozdziale tworzyliœmy klasê Book, która zawiera³a w³aœciwoœci Text i Title. Do utworzenia nowej instancji klasy wystarcz¹ trzy wiersze kodu: jeden z deklaracj¹ i utworzeniem instancji klasy, jeden w celu ustawienia w³aœciwoœci Text i jeden w celu ustawienia w³aœciwoœci Title. W tym rozdziale tworzymy konstruktor klasy, który bêdzie umo liwia³ jednoczesne wykonywanie wszystkich tych trzech kroków: deklarowanie, tworzenie instancji i inicjowanie pól. Konstruktory Konstruktor to blok kodu wykonywany w wyniku uruchomienia s³owa kluczowego new (New lub new w zale noœci od jêzyka) podczas tworzenia instancji klasy. Konstruktory maj¹ nastêpuj¹ce zalety: Konstruktor mo e przyjmowaæ parametry, które umo liwiaj¹ inicjowanie pól w chwili tworzenia obiektu. Konstruktor mo e sprawdzaæ poprawnoœæ przekazywanych do niego parametrów podczas tworzenia klasy. Klasa mo e mieæ wiele konstruktorów. Ka dy mo e przyjmowaæ inny zestaw parametrów. Jeden konstruktor mo e wywo³ywaæ inne konstruktory. Przy definiowaniu konstruktorów w jêzykach Visual Basic i Visual C# stosujemy nieco ró ne sk³adnie. W jêzyku Visual Basic konstruktor bezparametrowy deklarujemy tak: Public Sub New() End Sub W Visual C# ten sam konstruktor nale y zadeklarowaæ, u ywaj¹c nazwy klasy: public Book() {

2 28 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym W obu przypadkach konstruktor deklaruje siê za pomoc¹ s³owa kluczowego public (Public lub public). Konstruktor jest niezbêdny do tworzenia instancji klasy za pomoc¹ s³owa kluczowego new. Konstruktor mo na tak e zadeklarowaæ za pomoc¹ s³owa kluczowego private (Private lub private). Jeœli zdefiniujesz tylko jeden konstruktor w klasie i bêdzie on prywatny, kod kliencki nie bêdzie w stanie tworzyæ adnych instancji klasy. Jeœli w danej klasie nie zostanie zdefiniowany aden konstruktor, kompilator sam wygeneruje pusty, publiczny i bezparametrowy konstruktor taki jak pokazany na powy szych listingach. W takiej sytuacji nale y w jakiœ inny sposób zagwarantowaæ polom klasy poprawne inicjowanie wartoœci (choæ jest to wbrew ca³ej filozofii konstruktorów). Inna implementacja klas ksi¹ ek W poprzednim rozdziale zaraz po zainicjowaniu klasy okreœlane by³y wartoœci w³aœciwoœci Text i Title. W tym rozdziale utworzysz dwa ró ne konstruktory do inicjowania pól klasy. Pierwszy, konstruktor domyœlny, bêdzie tworzy³ instancjê dok³adnie tak jak w rozdziale 1. Drugi konstruktor bêdzie inicjowa³ w³aœciwoœci Title i Text. Wprowadzimy jeszcze jedn¹ zmianê. Obiekty ksi¹ ek bêd¹ przechowywane w prostej tablicy, a nie w specjalnie utworzonym obiekcie Library. Tablica ta bêdzie stanowi³a Ÿród³o danych dla kontrolki ListBox. Tworzenie konstruktorów klasy Book To æwiczenie jest rozbudowaniem æwiczenia z rozdzia³u 1. Utworzymy nowy projekt, ale wykorzystamy w nim formularz i klasê Book utworzon¹ w rozdziale 1. Nastêpnie zmodyfikujemy klasê Book, dodaj¹c do niej dwa konstruktory i metodê ToString. Tworzenie projektu Aby utworzyæ ten projekt, wykonaj nastêpuj¹ce czynnoœci: 1. Utwórz nowy projekt aplikacji Windows i nadaj mu nazwê ReadMoreBooks. 2. Kliknij prawym przyciskiem myszy formularz Form1 w eksploratorze rozwi¹zañ i wybierz z menu podrêcznego polecenie Delete (usuñ). Kliknij przycisk OK, aby potwierdziæ zamiar usuniêcia. 3. Kliknij prawym przyciskiem myszy projekt ReadMoreBooks w eksploratorze rozwi¹zañ, wska Add (dodaj) i kliknij polecenie Add Existing Item (dodaj istniej¹cy element). 4. W oknie Add Existing Item przejdÿ do pliku Form1.vb lub pliku Form1.cs z rozdzia³u 1, kliknij go i naciœnij przycisk Open (otwórz). Do projektu ReadMoreBooks zostanie dodana nowa kopia formularza Form1. 5. Kliknij prawym przyciskiem myszy projekt ReadMoreBooks w eksploratorze rozwi¹zañ, wska Add (dodaj) i kliknij polecenie Add Existing Item (dodaj istniej¹cy element).

3 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami W oknie Add Existing Item przejdÿ do pliku Book z rozdzia³u 1, kliknij go, a potem naciœnij przycisk Open (otwórz). Do projektu ReadMoreBooks zostanie dodana klasa Book. Konwersja tekstu z pola na w³aœciwoœæ Dziêki utworzeniu konstruktora bêdziemy mogli okreœlaæ, czy pole Text lub Title klasy Book jest puste. Aby dodatkowo rozszerzyæ przydatnoœæ tekstu, przekszta³cimy go na w³aœciwoœæ (w dalszej czêœci tej ksi¹ ki nie bêdzie wiele pól publicznych). 1. Kliknij dwukrotnie plik Book.vb lub Book.cs (w zale noœci od u ywanego jêzyka) w eksploratorze rozwi¹zañ, aby otworzyæ go w edytorze kodu. 2. Zmieñ pole Text na prywatne. Pamiêtaj, e zgodnie z konwencj¹ pola takie maj¹ prefiks m_. Private m_text As String = "" private string m_text = ""; 3. Dodaj definicjê w³aœciwoœci Text do klasy. Public Property Text()As String Get Return m_text End Get Set(ByVal Value As String) m_text = Value End Set End Property //Visual C# public string Text { get { return m_text; set { m_text = value; Formatowanie kodu C# W jêzyku C# do oddzielania instrukcji stosuje siê œrednik. Dziêki temu Visual C# oferuje wiêksz¹ kontrolê nad formatowaniem kodu ni Visual Basic. W cytowanym wy ej fragmencie kodu C# zastosowano bardziej zwart¹ postaæ definicji. Mo - na i warto to robiæ, o ile nie odbywa siê to kosztem czytelnoœci kodu. Dodawanie konstruktora bezparametrowego 1. Jeœli u ywasz Visual C#, w plikach Book.cs i Form1.cs zmieñ przestrzeñ nazw na ReadMoreBooks. Ten krok spowoduje, e wszystkie deklaracje klas znajd¹ siê w jednej przestrzeni nazw projektu. Dziêki temu deklarowanie zmiennych klasowych bêdzie prostsze. Zmieñ deklaracjê przestrzeni nazw na pocz¹tku pliku na nastêpuj¹c¹:

4 30 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym // Tylko Visual C# // Zmieñ w plikach Book.cs i Form1.cs namespace ReadMoreBooks 2. W Visual Basicu, jeœli trzeba, kliknij pozycjê Book (ReadMoreBooks) na liœcie Class Name (nazwa klasy). W Visual C# kliknij pozycjê ReadMoreBooks.Book na liœcie Class Name (nazwa klasy). 3. Z listy rozwijanej Method Name (nazwa metody) wybierz pozycjê New (nowa), jeœli u ywasz Visual Basica. Kliknij pozycjê Book, jeœli u ywasz Visual C#. Do klasy Book zostanie dodany nastêpuj¹cy kod: Public Sub New() End Sub public Book() { // // Do zrobienia: Dodaæ treœæ konstruktora // Twoim nastêpnym zadaniem bêdzie utworzenie konstruktora z parametrami. Jedna klasa mo e mieæ wiele konstruktorów, o ile ró ni¹ siê one list¹ parametrów. Tworzenie konstruktora parametrycznego Podczas tworzenia konstruktorów z parametrami pamiêtaj, e kod konstruktora jest wykonywany zawsze po inicjacjach pól. Mo na zatem przes³aniaæ inicjacje pól, czyli wpisywaæ do pól wartoœci inne ni inicjacyjne. 1. Po deklaracjach pól dodaj poni szy kod, który zawiera deklaracjê konstruktora z dwoma parametrami: title i text. Nie modyfikuj istniej¹cego konstruktora, który utworzy³eœ w poprzednim podrozdziale. Public Sub New(ByVal title As String,ByVal text As String) End Sub //Visual C# public Book(string title, string text){ 2. Dodaj poni szy kod do nowego konstruktora. Dziêki temu tytu³ ani tekst ksi¹ ki nie bêdzie pusty. Jeœli jest pusty, generowany jest wyj¹tek. Wyj¹tek zatrzymuje dzia³anie programu i uniemo liwia utworzenie instancji klasy. If (title <> "") And (text <> "") And _ (Not IsNothing(title)) And (Not IsNothing(text)) Then m_title = title m_text = text Else Throw New Exception("Title or text is an empty string.") End If if ((title!= "") && (text!= "") && (title!= null) && (text!= null)) {

5 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami 31 m_title = title; m_text = text; else { throw new System.Exception("Title or text is an empty string."); Jeœli usuniesz konstruktor bezparametrowy utworzony w poprzednim podrozdziale, kod kliencki zostanie zmuszony do korzystania z tego nowego konstruktora. Oznacza to, e nie zostan¹ utworzone adne instancje klasy, jeœli nie bêdzie znany tekst i tytu³ ksi¹ ki. Dodawanie metody ToString W rozdziale 1 u ywaliœmy ³añcucha znaków z pola Title podczas wyœwietlania pola listy w projekcie ReadBooks. W tym rozdziale instancje klasy Book bêd¹ przechowywane w tablicy, mo emy wiêc skorzystaæ z faktu, i Ÿród³em danych dla pola listy mo e byæ tablica. Jeœli zdefiniujemy metodê ToString dla klasy obiektów przeznaczonych do wyœwietlania, pole listy bêdzie mog³o za jej pomoc¹ wyœwietlaæ poszczególne elementy z tablicy. Dodaj tê metodê do klasy Book: Public Overrides Function ToString() As String Return m_title End Function public override string ToString() { return m_title; W przypadku biblioteki.net Framework nie mo na w³aœciwie nie zauwa yæ faktu, e wszystkie klasy s¹ pochodnymi klasy System.Object. S³owo kluczowe override (w Visual Basicu Overrides, a w Visual C# override) w deklaracji metody oznacza, e zamiast metody ToString zdefiniowanej w klasie System.Object powinna byæ u ywana metoda ToString z klasy Book. Metoda zdefiniowana w przestrzeni nazw System.Object powoduje tylko wypisanie nazwy klasy ReadMoreBooks.Book. To ju koniec zmian w definicji klasy Book. Obs³uga b³êdów sprawdzania poprawnoœci za pomoc¹ konstruktora Z sytuacj¹, w której parametr title lub text oka e siê ³añcuchem pustym, mo na poradziæ sobie na ró ne sposoby: Mo na wygenerowaæ wyj¹tek, jak w tym rozdziale. W takim przypadku nie dochodzi to utworzenia instancji klasy Book. Wykonywanie programu jest zatrzymywane na wierszu kodu zawieraj¹cym s³owo kluczowe new. Na sytuacjê tak¹ mo na zareagowaæ za pomoc¹ bloku Try (Try lub try), w którym da siê naprawiæ b³¹d.

6 32 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym Mo na zast¹piæ pole ³añcuchem pustym. Jeœli napisa³eœ konstruktor wymuszaj¹cy stosowanie niepustych ³añcuchów w polach text i title, nie powinieneœ stosowaæ tej metody. Jeœli u y³eœ konstruktora jako wygodnego sposobu przypisywania wartoœci do w³aœciwoœci na etapie inicjacji klasy, zast¹pienie pola ³añcuchem pustym mo e byæ decyzj¹ rozs¹dn¹. Jeœli postanowisz zastêpowaæ pole ³añcuchem pustym, nie zapomnij uœwiadomiæ programistom, e pola text i title instancji klasy Book mog¹ zawieraæ ³añcuchy puste. U ywanie konstruktorów Teraz zast¹pisz wiele wierszy kodu jednym wywo³aniem konstruktora. Zast¹pisz tak e klasê Library tablic¹ i wykorzystasz mo liwoœæ wi¹zania danych biblioteki.net Framework, stosuj¹c tablicê jako Ÿród³o danych dla pola listy. Usuwanie kodu, który zostanie zast¹piony nowym 1. Kliknij prawym przyciskiem myszy pozycjê Form1 w eksploratorze rozwi¹zañ i wybierz z menu podrêcznego polecenie View Code (poka kod), aby otworzyæ edytor kodu. 2. Usuñ metodê showpage_click. 3. Usuñ deklaracjê pola Library z klasy Form1. Pole to zast¹pisz tablic¹ instancji klasy Book. ' Usuñ ten wiersz z projektu Visual Basica Private m_library As Library // Usuñ ten wiersz z projektu Visual C# private Library m_library; 4. Usuñ kod z procedury zdarzeñ Form1_Load. 5. Usuñ kod z metody listofbooks_selectedindexchanged. Zostanie ci tylko interfejs. Teraz dodasz kod, który odtworzy zachowanie programu znane z rozdzia³u 1. Tworzenie instancji klasy Book przy u yciu konstruktora Dodasz do metody Form1_Load kod tworz¹cy tablicê z instancjami klasy Book i wi¹ ¹cy j¹ z kontrolk¹ ListBox. 1. Utwórz instancjê klasy Book przeznaczon¹ na baœnie, u ywaj¹c konstruktora z dwoma parametrami. Dodaj nastêpuj¹cy kod do metody Form1_Load: Dim fairytales As Book = _ New Book("Fairy Tales", "Once upon a time there was a bear.") Book fairytales = new Book("Fairy Tales", "Once upon a time there was a bear.");

7 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami 33 Zwróæ uwagê na to, e kiedy wpiszesz s³owo new lub New, w zale noœci od u ywanego jêzyka, funkcje inteligencji Visual Studio (zwane IntelliSense) wska ¹ ci, e masz zdefiniowane dwa konstruktory, jak widaæ na za³¹czonym rysunku. Gdy do dyspozycji jest wiele konstruktorów, mówimy, e s¹ one przeci¹ one. 2. Utwórz instancjê klasy Book przeznaczon¹ na przepisy kucharskie, korzystaj¹c z konstruktora z dwoma parametrami: Dim cookies As Book = New Book("Cookies", _ "Chocolate chip cookies are the most delicious cookies.") Book cookies = new Book("Cookies", "Chocolate chip cookies are the most delicious cookies."); Tworzenie tablicy instancji klasy Book 1. Po deklaracjach klasy Book dodaj nastêpuj¹cy kod, tworz¹cy tablicê: Dim m_library() As Book = New Book() {fairytales, cookies Book[] m_library = new Book[] {fairytales, cookies; 2. Po deklaracji tablicy dodaj nastêpuj¹cy kod, który sprawi, e tablica zostanie wykorzystana jako Ÿród³o danych kontrolki ListBox: listofbooks.datasource = m_library listofbooks.datasource = m_library; Oto kompletny kod metody: Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim fairytales As Book = _ New Book("Fairy Tales", "Once upon a time there was a bear.") Dim cookies As Book = New Book("Cookies", _ "Chocolate chip cookies are the most delicious cookies.") Dim m_library() As Book = New Book() {fairytales, cookies listofbooks.datasource = m_library End Sub private void Form1_Load(object sender, System.EventArgs e) { Book fairytales = new

8 34 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym Book("Fairy Tales", "Once upon a time there was a bear."); Book cookies = new Book("Cookies", "Chocolate chip cookies are the most delicious cookies."); Book[] m_library = new Book[] {fairytales, cookies; listofbooks.datasource = m_library; Reagowanie na wybranie elementu z listy reprezentowanej kontrolk¹ ListBox Po uruchomieniu aplikacji w kontrolce ListBox pojawi¹ siê tytu³y ksi¹ ek. Poniewa Ÿród³em danych kontrolki ListBox jest tablica instancji klasy Book, ka dy element z listy reprezentuje jedn¹ instancjê klasy Book. Teraz dodasz kod, który bêdzie pobiera³ dan¹ instancjê i wyœwietla³ wybran¹ stronê. 1. Do obs³ugi zdarzenia SelectedIndexChanged kontrolki ListBox o nazwie listofbooks dodaj nastêpuj¹cy kod: Dim thebook As Book = CType(listOfBooks.SelectedItem, Book) Book thebook = (Book)(listOfBooks.SelectedItem); Jak widzia³eœ w rozdziale 1, obiekty z kontrolki ListBox s¹ traktowane jak instancje obiektu System.Object. Metoda CType nie zmienia instancji, a jedynie jej widok w czasie wykonywania kodu. Sk³adnia C# jest trochê inna, ale ma taki sam efekt. Egzemplarz ksi¹ ki bêdzie traktowany nie jak instancja klasy System.Object, ale jak instancja klasy Book. 2. Pod instrukcj¹ CType dodaj nastêpuj¹cy kod, wyœwietlaj¹cy tekst jednej strony: titlelabel.text = thebook.title thebook.pagelength = Decimal.ToInt32(pageLength.Value) page.text = thebook.getpage(decimal.toint32(pagetodisplay.value)) titlelabel.text = thebook.title; thebook.pagelength = Decimal.ToInt32(pageLength.Value); page.text = thebook.getpage(decimal.toint32(pagetodisplay.value)); Poniewa pagelength.value jest w³aœciwoœci¹ stringow¹ kontrolki pagelength, nie mo na bezpoœrednio przypisaæ jej wartoœci do w³aœciwoœci ca³kowitoliczbowej thebook.pagelength. Dlatego potrzebna jest metoda Decimal.ToInt32, która przekszta³ci string pagelength.value na liczbê ca³kowit¹. 3. Uruchom i przetestuj program. Powinien dzia³aæ tak samo jak aplikacja z rozdzia³u 1. Te dwa æwiczenia demonstruj¹ pewne opcje dostêpne przy projektowaniu obiektów i aplikacji. W rozdziale 1 zaprojektowa³eœ klasy Book i Library, które mia³y stanowiæ model do rozwi¹zywanego zadania. W tym rozdziale zaprojektowa³eœ tylko klasê Book, a potem zaimplementowa³eœ funkcjonalnoœæ klasy Library, wykorzystuj¹c mo li-

9 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami 35 woœci kontrolek systemu Windows dla platformy.net. Funkcjonalnoœæ klasy Library zapewni³a kontrolka ListBox wspó³pracuj¹ca z tablic¹. Deklarowanie i inicjowanie tablic Tablice instancji klas mo na deklarowaæ i inicjowaæ na wiele sposobów. Oto sk³adnia zastosowana w poprzednim podrozdziale (Visual Basic): Dim m_library() As Book = New Book() {fairytales, cookies A to inny sposób zadeklarowania tej samej tablicy: Dim books() As Book = _ {New Book("Title1", "Text1"), New Book("Title2", "Text2") Jeszcze inny: Dim m_library() As Book = {fairytales, cookies I jeszcze inny: Dim books(2) As Book books(0) = New Book("Title1", "Text1") books(1) = New Book("Title2", "Text2") books(2) = New Book("Title3", "Text3") Typy referencyjne i wartoœciowe Aby zrozumieæ, o co chodzi w ostatnich trzech fragmentach kodu, musisz poznaæ pojêcie typu referencyjnego i typu wartoœciowego w jêzykach Visual Basic i Visual C#. Ka da zmienna deklarowana w tej ksi¹ ce bêdzie jednego b¹dÿ drugiego typu. Typy danych w Visual Basicu i C# W jêzyku Visual Basic ka da zmienna jest typu referencyjnego lub wartoœciowego. W jêzyku C# wystêpuje jeszcze trzecia kategoria: typy wskaÿnikowe. Zmiennej typu wskaÿnikowego, podobnej do wskaÿnika z C++, mo na u yæ tylko w niezabezpieczonym bloku kodu. W tej ksi¹ ce nie zajmujemy siê kodem niezabezpieczonym. Zmienn¹ typu referencyjnego tworzymy za ka dym razem, gdy deklarujemy j¹ jako: klasê (na przyk³ad Book), interfejs (interfejsy s¹ omawiane w rozdziale 9), tablicê (na przyk³ad Dim numbers() as Integer), string, obiekt (na przyk³ad Dim x As Object), delegacjê (delegacje zostan¹ omówione w rozdziale 7). Typ wartoœciowy powstaje w wyniku zadeklarowania zmiennej jako typu: ca³kowitoliczbowego (na przyk³ad Integer lub int),

10 36 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym zmiennopozycyjnego (na przyk³ad Double lub double), logicznego (na przyk³ad Boolean lub bool), wyliczeniowego (na przyk³ad System), strukturowego (na przyk³ad DateTime). Zarówno w przypadku deklarowania zmiennej typu wartoœciowego, jak i przy deklarowaniu zmiennej typu referencyjnego dla zmiennej rezerwowane jest pewne miejsce w pamiêci. Jednak w przypadku typu wartoœciowego w miejscu tym przechowywana jest wartoœæ zmiennej, a w przypadku zmiennej typu referencyjnego referencja do wartoœci (instancji klasy znajduj¹cej siê gdzieœ w pamiêci). Zatem deklaracje referencyjne powoduj¹ zarezerwowanie tylko takiej iloœci pamiêci, która wystarczy na odwo³anie siê do instancji klasy Book. Dim abook as Book; Book abook; Gdy instancja klasy tworzona jest za pomoc¹ operatora new (w Visual Basicu New, a w Visual C# new), rezerwowana jest pamiêæ na pola zadeklarowane w klasie. Poni - sze wyra enia powoduj¹ zarezerwowanie pamiêci na pola Text, PageLength i Title klasy Book. Operator new zwraca adres miejsc w pamiêci zawieraj¹cych wartoœci pól. New Book("theTitle", "thetext") new Book("theTitle", "thetext") Poni sze instrukcje tworz¹ instancjê klasy Book i przypisuj¹ zmiennej abook miejsce nowej instancji. abook = New Book("theTitle", "thetext") abook = new Book("theTitle", "thetext") Jaka jest zatem wartoœæ zmiennej abook w pierwszym zestawie instrukcji, zanim nast¹pi powy sze przypisanie? Z definicji wartoœci¹ typu referencyjnego przed inicjacj¹ jest Nothing w Visual Basicu oraz null w C#. Poni szy kod zwraca wartoœæ True: Dim abook as Book MessageBox.Show((aBook Is Nothing).ToString()) Book abook; MessageBox.Show((aBook == null).tostring()); Visual Basic do testowania wartoœci typów referencyjnych oferuje s³owo kluczowe Is.C# pozwala na stosowanie operatora porównania ==. Visual Basic udostêpnia te metodê IsNothing do testowania wartoœci referencji. Zwraca ona wartoœæ logiczn¹ True, jeœli referencja jest równa Nothing. Poni szy fragment kodu jest odpowiednikiem poprzedniego: Dim abook As Book MessageBox.Show(IsNothing(aBook).ToString()) Jeœli spróbujesz u ywaæ w³aœciwoœci lub metod referencji równej Nothing, zostanie wygenerowany b³¹d, a to dlatego, e nie ma jeszcze danych instancji, na których mo -

11 Rozdzia³ 2 Tworzenie instancji klas z konstruktorami 37 na by operowaæ. B³¹d ten jest znany jako wyj¹tek System.NullReferenceException. Aby program sta³ siê bardziej odporny, nale y sprawdzaæ, czy dana referencja nie jest równa null (w przypadku Visual Basica Nothing). Sprawdzenie takie nale y stosowaæ szczególnie w przypadku przekazywania metody jako parametru. Mamy bowiem wtedy mniejsz¹ kontrolê nad stanem zmiennej. Specyfika typów referencyjnych dotyka takich zagadnieñ, jak kopiowanie, sprawdzanie równoœci i zbieranie œmieci (odzyskiwanie pamiêci). Kopiowanie omawiane jest w rozdziale 10, sprawdzanie równoœci w rozdziale 12, a zbieranie œmieci w rozdziale 8. Deklaracje tablic W pierwszych trzech przyk³adach z podrozdzia³u Deklarowanie i inicjowanie tablic u yto ró nych odmian nastêpuj¹cej sk³adni: Dim m_library() As Book = {fairytales, cookies W tym przyk³adzie tablicê elementów otrzymujemy dziêki nawiasom klamrowym. Identyfikator fairytales mo na zast¹piæ wyra eniem New Book("Fairy Tales", "Once upon a time"), poniewa wyra enie to zwraca referencjê do instancji klasy. Ten przyk³ad jest nieco inny od pozosta³ych: Dim books(2) As Book books(0) = New Book("Title1", "Text1") books(1) = New Book("Title2", "Text2") books(2) = New Book("Title3", "Text3") Pierwsza instrukcja nie tworzy adnych instancji klasy Book. Tworzy jedynie tablicê instancji klasy Book. W wierszach od drugiego do czwartego instancje klasy Book s¹ tworzone i przypisywane do referencji. Krótkie podsumowanie Zadanie tworzenie konstruktora bez parametrów tworzenie konstruktora parametrycznego Sposób wykonania Wybierz w edytorze kodu nazwê klasy z listy Class Name (nazwa klasy) i wybierz New (w przypadku Visual Basica) lub nazwê klasy z listy (w Visual C#) z listy rozwijanej Method Name (nazwa metody). Albo Dodaj ten kod (Visual Basic): Public Sub New() End Sub Lub ten kod (Visual C#): public Book() { Utwórz konstruktor bez parametrów. Dodaj parametry tak samo jak w przypadku metody dowolnej klasy.

12 38 Microsoft Visual Basic.NET i Microsoft Visual C#.NET w programowaniu obiektowym Zadanie tworzenie tablicy instancji referencji tworzenie tablicy instancji sprawdzanie, czy referencja jest równa Nothing b¹dÿ null Sposób wykonania Dodaj nastêpuj¹cy kod (Visual Basic): Dim books() As Book lub kod (Visual C#): Book[] books; Dodaj nastêpuj¹cy kod (Visual Basic): Dim books() As Book = _ { New Book(), New Book() lub kod (Visual C#): Book[] books = { new Book(), new Book(); Dodaj nastêpuj¹cy kod (Visual Basic): Dim abook As Book If IsNothing(aBook) Then ' Miejsce na kod dla ' referencji pustej End If lub kod (Visual C#): Book abook; if (abook == null) { // Miejsce na kod dla // referencji pustej

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Zadanie5_28 Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min) Opis zadania Wykorzystaj gotowy projekt Nowe auto, a nastpnie zaprojektuj klas bazow NoweAuto

Bardziej szczegółowo

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10)

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10) 5.5. Wyznaczanie zer wielomianów 79 gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10) gdzie stopieñ wielomianu p 1(x) jest mniejszy lub równy n, przy

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Visual Studio 2005 jest

Bardziej szczegółowo

ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009.

ER RATA do ksi¹ ki Symfonia C++ Stan dard. wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. Strona wiersz G - od góry D - od do³u Jest Powinno byæ 1 6 D nadzieje

Bardziej szczegółowo

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

Bardziej szczegółowo

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW ZA CZNIKI ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW Pola, do których wprowadzamy dane, mog¹ byæ: znakowe, numeryczne, typu daty oraz typu memo (pola tekstowe). Istniej¹ ró nice w wykorzystaniu

Bardziej szczegółowo

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse... KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,

Bardziej szczegółowo

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Ćwiczenie laboratoryjne Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Tematy ćwiczenia realizacja stosu lub kolejki dla tablicowej lub listowej reprezentacji. operacje na stosie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w

Bardziej szczegółowo

3 Delegacje. 3.1 Tworzenie delegacji. 3.2 Skojarzenie delegacji z procedurą czy funkcją

3 Delegacje. 3.1 Tworzenie delegacji. 3.2 Skojarzenie delegacji z procedurą czy funkcją 3 Delegacje Delegacja to specjalny typ danych, który przechowuje referencję (adres) do procedury lub funkcji. W środowisku.net delegacja jest odpowiednikiem wskaźnika (pointer) do funkcji znanego z języka

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

1. Podstawy budowania wyra e regularnych (Regex)

1. Podstawy budowania wyra e regularnych (Regex) Dla wi kszo ci prostych gramatyk mo na w atwy sposób napisa wyra enie regularne które b dzie s u y o do sprawdzania poprawno ci zda z t gramatyk. Celem niniejszego laboratorium b dzie zapoznanie si z wyra

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Microsoft Management Console

Microsoft Management Console Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co

Bardziej szczegółowo

Tablice, DataGridView

Tablice, DataGridView Tablice, DataGridView Gdy rośnie liczba danych do przechowywania w programie, a następnie ich obrobienia - pojawiają się nowe struktury danych (moŝna by powiedzieć pojemniki na dane) zwane tablicami. Tablica

Bardziej szczegółowo

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej. Formularze VBA Przykład1 INTERAKTYWNY FORMULARZ Program tworzący interaktywny formularz. Objaśnienie: w dowolnym momencie można wprowadzić wartość w polu tekstowym ID, Excel VBA wczytuje odpowiedni rekord.

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo

Bardziej szczegółowo

Aplikacje geodezyjne

Aplikacje geodezyjne Aplikacje geodezyjne 1. Azymut ze współrzędnych Utwórz nowy projekt o nazwie Azymut. W oknie rozmieść kontrolki mniej więcej zgodnie z rysunkiem. Obiekty mają zmienione następujące wartości cech: cecha

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania... Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Aplikacje w środowisku VBA. Visual Basic for Aplications

Aplikacje w środowisku VBA. Visual Basic for Aplications Aplikacje w środowisku VBA Visual Basic for Aplications Podstawowe informacje o VBA Visual Basic for Aplications, w skrócie VBA, to język programowania rozwijany przez Microsoft, którego zastosowanie pozwala

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE: Praca z projektemi w MS VB.NET Scenariusz lekcji Scenariusz lekcji 1 TEMAT LEKCJI: Praca z projektami w MS VB.NET. 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicje podstawowych pojęć związanych

Bardziej szczegółowo

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function: Programowanie obiektowe. Obiekt Obiekt to dowolny element, który możemy wydzielić i którym możemy manipulować. W terminologii informatycznej obiekt to samodzielna jednostka zawierająca zarówno dane, jak

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Stronicowanie na ¹danie

Stronicowanie na ¹danie Pamiêæ wirtualna Umo liwia wykonywanie procesów, pomimo e nie s¹ one w ca³oœci przechowywane w pamiêci operacyjnej Logiczna przestrzeñ adresowa mo e byæ du o wiêksza od fizycznej przestrzeni adresowej

Bardziej szczegółowo

Projektowanie bazy danych

Projektowanie bazy danych Projektowanie bazy danych Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeo wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Praca na wielu bazach danych część 2. (Wersja 8.1)

Praca na wielu bazach danych część 2. (Wersja 8.1) Praca na wielu bazach danych część 2 (Wersja 8.1) 1 Spis treści 1 Analizy baz danych... 3 1.1 Lista analityczna i okno szczegółów podstawowe informacje dla każdej bazy... 3 1.2 Raporty wykonywane jako

Bardziej szczegółowo

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile sterowniki znajduj¹ siê na stronie www.centrumksero.pl w zak³adce DO POBRANIA/STEROWNIKI

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

Rys Mo liwe postacie funkcji w metodzie regula falsi

Rys Mo liwe postacie funkcji w metodzie regula falsi 5.3. Regula falsi i metoda siecznych 73 Rys. 5.1. Mo liwe postacie funkcji w metodzie regula falsi Rys. 5.2. Przypadek f (x), f (x) > w metodzie regula falsi 74 V. Równania nieliniowe i uk³ady równañ liniowych

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET dostęp do bazy danych Baza Microsoft SQL Server Compact

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Rozdzia l 3. Laboratorium 3. danych zawierajac

Rozdzia l 3. Laboratorium 3. danych zawierajac Rozdzia l 3 Laboratorium 3 3.1. Tablice Tablica jest struktura danych zawierajac a zmienne tego samego typu. CLR środowiska.net Framework wspiera tworzenie tablic jedno oraz wielo wymiarowych. 3.1.1. Tablice

Bardziej szczegółowo

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Po³¹czenie iphone'a/ipad a do Smart Multishare USB

Po³¹czenie iphone'a/ipad a do Smart Multishare USB INSTRUKCJA OBSLUGI Po³¹czenie iphone'a/ipad a do Smart Multishare USB Smart Multishare USB jest produktem, który pozwala Ci bezprzewodowo transmitowaæ elementy takie jak zdjêcia, filmy video, muzykê i

Bardziej szczegółowo

DJCONTROL INSTINCT I DJUCED PIERWSZE KROKI

DJCONTROL INSTINCT I DJUCED PIERWSZE KROKI DJCONTROL INSTINCT I DJUCED PIERWSZE KROKI INSTALACJA Włóż płytę CD-ROM. Uruchom program instalacyjny. Wykonaj instrukcje. 1 6 2 7 3 4 5 1- alans kanałów 1 2 (wyjście miksu) 2- Głośność kanału 1 (lewego)

Bardziej szczegółowo

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Rozliczenia z NFZ. Ogólne założenia. Spis treści Rozliczenia z NFZ Spis treści 1 Ogólne założenia 2 Generacja raportu statystycznego 3 Wczytywanie raportu zwrotnego 4 Szablony rachunków 4.1 Wczytanie szablonów 4.2 Wygenerowanie dokumentów rozliczenia

Bardziej szczegółowo

STRUKTURA MENU STRUKTURA MENU

STRUKTURA MENU STRUKTURA MENU ZA CZNIKI STRUKTURA MENU Po wywo³aniu systemu SM-BOSS (poprzez napisanie BOSS i wciœniêcie klawisza Enter) na ekranie zobaczymy g³ówne menu systemu. Standardowo sk³ada siê ono z pozycji, które pozwalaj¹

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

IV. UK ADY RÓWNAÑ LINIOWYCH

IV. UK ADY RÓWNAÑ LINIOWYCH IV. UK ADY RÓWNAÑ LINIOWYCH 4.1. Wprowadzenie Uk³ad równañ liniowych gdzie A oznacza dan¹ macierz o wymiarze n n, a b dany n-elementowy wektor, mo e byæ rozwi¹zany w skoñczonej liczbie kroków za pomoc¹

Bardziej szczegółowo

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku Prosta książka telefoniczna z wykorzystaniem zapisu do pliku Celem zajęć będzie napisanie prostego programu okienkowego, którego zadaniem będzie zapisywanie imienia, nazwiska, adresu-email oraz numeru

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Instrukcja laboratoryjna nr.4

Instrukcja laboratoryjna nr.4 Języki programowania na platformie.net cz.2 2016/17 Instrukcja laboratoryjna nr.4 Język Visual Basic for.net Prowadzący: Tomasz Goluch Wersja: 3.1 I. Współpraca Visual Basic z C# Cel: Wykorzystanie w kodzie

Bardziej szczegółowo

Wstęp do programowania obiektowego. Wykład 2

Wstęp do programowania obiektowego. Wykład 2 Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe

Bardziej szczegółowo

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If Platforma.NET laboratorium 1 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET podstawowe elementy języka Poniżej przedstawiono podstawowe instrukcje sterujące

Bardziej szczegółowo

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET. Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET. Czym są procedury? Efektywne tworzenie często polegać będzie na ponownym wykorzystywaniu

Bardziej szczegółowo

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Programowanie obiektowe w VB cz 2

Programowanie obiektowe w VB cz 2 Programowanie obiektowe w VB cz 2 Interfejsy Interfejsy są listą metod, właściwości, zdarzeń i indeksowników. Jeśli jakaś klasa implementuje jakiś interfejs, znaczy to, że użytkownik tej klasy może skorzystać

Bardziej szczegółowo

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0 ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0 Copyright 2010, Polskie Towarzystwo Informatyczne Zastrzeżenie Dokument ten został opracowany na podstawie materiałów źródłowych pochodzących

Bardziej szczegółowo

Wtedy wystarczy wybrać właściwego Taga z listy.

Wtedy wystarczy wybrać właściwego Taga z listy. Po wejściu na stronę pucharino.slask.pl musisz się zalogować (Nazwa użytkownika to Twój redakcyjny pseudonim, hasło sam sobie ustalisz podczas procedury rejestracji). Po zalogowaniu pojawi się kilka istotnych

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest internetowemu menedżerowi sprzedaży BaseLinker.

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę SrodekLokomocji. a) dodaj w niej pola iloscmiejsc (int) oraz

Bardziej szczegółowo

AMPS Sterownik temperatur Instrukcja obs³ugi

AMPS Sterownik temperatur Instrukcja obs³ugi AMPS Sterownik temperatur Instrukcja obs³ugi Pod³¹czyæ sterownik do pr¹du. Instalacja powinna byæ przeprowadzona przez wykwalifikowany personel i tylko zgodnie z instrukcj¹. AMPS nie ponosi odpowiedzialnoœci

Bardziej szczegółowo

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56 INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56 Program Liczarka 2000 służy do archiwizowania i drukowania rozliczeń z przeprowadzonych transakcji pieniężnych. INSTALACJA PROGRAMU Program instalujemy na komputerze

Bardziej szczegółowo

Podstawy informatyki

Podstawy informatyki Podstawy informatyki Programowanie w języku Visual Basic.NET Instrukcja do zajęć laboratoryjnych Opracował: mgr inż. Jacek DIAKUN Ćwiczenie 1. Utworzyć program zawierający jedno okno i przycisk. Po kliknięciu

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu

Bardziej szczegółowo

Informacje o omawianym programie. Założenia programu omawianego w przykładzie

Informacje o omawianym programie. Założenia programu omawianego w przykładzie 1 Komunikacja człowiek - komputer Przedmiot: Komunikacja człowiek - komputer Ćwiczenie: 3 Temat dwiczenia: Projektowanie interfejsu programu typu bazodanowego dr Artur Bartoszewski CZĘŚD I analiza przykładowego

Bardziej szczegółowo