Środowisko programistyczne Visual Studio. Platforma.NET

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

Download "Środowisko programistyczne Visual Studio. Platforma.NET"

Transkrypt

1 Środowisko programistyczne Visual Studio Platforma.NET Język pośredni (MSIL lub IL Microsoft Intermediate Language) Podzespół (Assembly ) Struktura programu w C# Komentarze Operacje we-wy Platforma.NET.NET Framework Środowisko Uruchomieniowe (Common Language Runtime - CLR) Kod zarządzany środowisko CLR (Common Language Runtime) żądania dostępu do istniejących mechanizmów (np.: otwieranie pliku), w których pośredniczy CLR nowe funkcje, dostępne tylko z CLR, takie jak automatyczne odzyskiwanie pamięci system operacyjny Win32 biblioteka klas Serwery.Net-owe Usługi XML Web Services Narzędzia programistyczne 1

2 Język pośredni - IL kod źródłowy: C#, Visual C++, Visual Basic, J# Kompilator danego języka np. csc.exe IL kompilator bezpośredni (just-in-time comiler) kod właściwy dla danej platformy ILDASM - deasembler Ngen.exe utworzenie natywnego obrazu i umieszczenie w native image cache Podzespół (Assembly ) Logiczny zbiór jednego lub większej ilości plików EXE lub DLL zawierający kod i zasoby aplikacji Manifest podzespołu (metadane związane z podzespołem) zawiera: nazwę podzespołu (może to być nazwa silna) numer wersji podzespołu (wspólny i taki sam dla wszystkich modułów, które stanowią podzespół), informacje na temat kultury (lub języka) obsługiwanej przez podzespół listę wszystkich plików, które stanowią podzespół, wraz z ich sumami kontrolnymi listę innych wymaganych do pracy podzespołów wraz z numerami ich wersji. 2

3 Struktura programu w C# using System; namespace PierwszyProgram class Program static void Main(string[] args) Przestrzeń nazw Main - punkt startowy programu Blok kodu Start Ogólne zasady formatowania kodu Każdą instrukcję kończ znakiem średnika - ; Uważaj na wielkość liter. Używaj wcięć Stosuj komentarze komentarz w linii - // komentarz blokowy - /* */ komentarz z znacznikami XML - /// Komentarz Wykorzystuj pomoc środowiska Visual Studio przy automatycznym uzupełnianiu nazw - IntelliSense 3

4 Operacje we-wy operacje we - wy Operacja wy - wypisanie tekstu na ekranie Console.WriteLine("Tekst do wypisania"); Console.Write("Tekst do wypisania"); Operacja we - pobranie danych z klawiatury Console.ReadLine(); Console.Read(); operacje wy operacje we Projekt konsolowy 4

5 Projekt konsolowy using System; Pierwszy program w C# namespace podstawy class Program static void Main(string[] args) Console.Write("Rozpoczynamy naukę"); Console.WriteLine("Naciśnij <Enter>"); Console.ReadLine(); Console.WriteLine("Koniec programu"); 5

6 Korzystanie z Visual Studio Utworzenie nowego projektu: pojęcie projektu pojęcie rozwiązania szablon projektu Interfejs graficzny środowiska programistycznego Visual Studio zarządzanie oknami Zarządzanie projektem okienko Solution Explorer Kompilacja, budowa i poprawa błędów Uruchamianie programu Wspólny system plików Specyfikacja która określa w jaki sposób środowisko uruchomieniowe (CLR) definiuje i używa typy oraz jak nimi zarządza. Typy Typy wartości Typy referencyjny 6

7 Typy wbudowane byte od 0 do bajt sbyte od -128 do bajt short od do bajty ushort od 0 do bajty int od do bajty uint od 0 do bajty long od do bajtów ulong od 0 do bajów bool true lub false 1 bajt float liczby rzeczywiste (pojedyncza precyzja) 4 bajty double liczby rzeczywiste (podwójna precyzja) 8 bajtów decimal 28 cyfr znaczących 12 bajtów object typ bazowy dla wszystkich innych typów char 0 and (Unicody) 2 bajty string niezmienna kolekcja znaków dwubajtowych Deklaracja zmiennych typ nazwa[=wyrażenie] [,nazwa_n[=wyrażenie_n] ]; int x; int a = 10, b = 20, c; Nawa - identyfikator: składa się z liter, cyfr i znaku podkreślenia nie może zaczynać się od cyfry nie może być słowem kluczowym musi być unikalna w danym zakresie - bloku kodu 7

8 Literały Stałe logiczne true; false; Stałe całkowite dziesiętne: 0; 12; -234; szesnastkowe: 0xFF; -0xAF; sufiksy: u, l, ul Stałe rzeczywiste 2.3; 2.3e2;.23; 4f; -2.3e-10; sufiksy: f, d, m Stałe znakowe: 'a'; 'X'; '1'; '\''; '\\'; '\x004d'; '\xc' Stałe napisowe: "Napis"; "\"Pan Stałe nazwane - const const double PI = ; Pobieranie i wypisywanie wartości zmiennych Pobieranie int i; string s = Console.ReadLine(); Int i = Convert.ToInt32(s); i = Convert.ToInt32(Console.ReadLine()); Wypisywanie Console.WriteLine(s); Formatowanie String.Format("Tekst 0,10:C tekst",x); Console.WriteLine("Tekst 0,10:C tekst",x); Ogólna postać: index[,n][:symbol] 8

9 Przykład static void Main(string[] args) int a = 10, b = 20, c; string ss; Console.WriteLine("Podaj liczbę"); string s = Console.ReadLine(); int i = Convert.ToInt32(s); ss = String.Format("Tekst 0,10:C tekst",s); Console.WriteLine(ss); Console.WriteLine("Tekst 0,5:C tekst",s); Console.WriteLine("Naciśnij <Enter>"); Console.ReadLine(); Typ wartości Typy wbudowane (int, double, char) enum DniRobocze Typy wyliczeniowy Poniedzialek, Wtorek, Struktury np.: DateTime Sroda, Zmienne lokalne przechowywane na stosie Czwartek, Piatek Zmienne bezpośrednio zawierają dane Zmienne posiadają zawsze wartość (nie mogą być null) Operacja na jednej zmiennej nie wpływa na drugą, każda zmienna posiada własną kopię danych Czas życia zmiennej lokalnej - od Stos miejsca zadeklarowania do końca bloku w którym została zadeklarowana Przed użyciem zmienna musi być zainicjalizowana y x int x = 10; int y = x; 9

10 Typ wyliczeniowy Definicja typu wyliczeniowego enum DniRobocze Poniedzialek, Wtorek, Sroda, Czwartek, Piatek Użycie typu wyliczeniowego DniRobocze dzienpracy = DniRobocze.Wtorek; Wypisanie wartości typu wyliczeniowego Console.WriteLine("0", dzienpracy); //zostanie wypisane Wtorek Typ referencyjny Typy wbudowane: string, object Klasy, Interfejsy, Delegacje, Tablice Zmienne zawiera odwołanie, nie zawiera bezpośrednio danych Dane (obszar pamięci) do których odwołuje się zmienna nazywamy obiektem Obiekty przechowywane są na zarządzanej stercie Zmienne mogą nie odwoływać się do obiektu, mogą posiadać wartość NULL Operacja na jednej zmiennej może zmieć dane innej zmiennej, zmienne odwołują się do tych samych obiektów Obiekty tworzymy słowem new Czas życia obiektu jest zarządzany przez proces automatycznego odzyskiwania pamięci (garbage collection) 10

11 Typ referencyjny (cd.) string s1 = "Ala ma kota"; string s2 = s1; Obiekt s2 s1.. Ala ma kota Stos Zarządzana sterta Konwersja typów Konwersje niejawne (implicit) short s = 4; int i = s; Konwersje jawne (explicit) long l = 12; int i = (int)l; Opakowanie (boxing) utworzenie na zarządzanej stercie kopi zmiennej typu wartości i zwrócenie do tej kopi uchwytu (referencji) int i = 10; object o = i; //opakowanie int y = (int)o; //rozpakowanie 11

12 Konwersja typów Konwersje jawne za pomocą klasy CONVERT.Metoda ChangeType FromBase64CharArray FromBase64String GetTypeCode IsDBNull ToBase64CharArray ToBase64String ToBoolean ToByte ToChar ToDateTime ToDecimal ToDouble ToInt16 ToInt32 ToInt64 ToSByte ToSingle ToString ToUInt16 ToUInt32 ToUInt64 DBNull Przykład konwersji static void Main(string[] args) short s = 4; int i = s; Console.WriteLine( i); long l = 12; i = (int)l; Console.WriteLine( i); i = 10; object o = i; int y = (int)o; Console.WriteLine( y); string ss = Convert.ToString( s); Console.WriteLine(ss); Console.WriteLine("s= " + ss); Console.WriteLine("Naciśnij <Enter>"); Console.ReadLine(); 12

13 Predefiniowane operatory w C# Arytmetyczne : + - * / % Łączenie stringów: + Relacyjne: ==!= < > <= >= Przesunięcia: << >> Logiczne i bitowe: & ^ ~! && true false Inkrementacji i dekrementacji: Przypisania: = += -= *= /= %= &= = ^= <<= >>= Plus (minus) jednoargumentowy: + - Dostęp do składowej:. Wyrażenie warunkowe:?: Tworzenie obiektu: new Rzutowania: () Kontrola przepełnienia: checked unchecked Indeksowania: [] Informacje o typie: as is sizeof typeof Operacje na wskaźnikach (adresach): * -> [] & Właściwości operatorów Priorytet - kolejność działań Liczba argumentów Łączność Typ argumentów 13

14 Definicja instrukcji if else instrukcja1 instrukcja1; if(warunek) instrukcja2; instrukcja3; warune k Nie instrukacja3 Tak instrukacja2 instrukcja1; if(warunek) instrukcja1 instrukcja2; else instrukcja4; instrukcja3; instrukacja4 Nie warune k Tak instrukacja2 instrukacja3 Zagnieżdżone instrukcje if else if (warunek1) if (warunek2) instrukcja1; else instrukcja2; if (warunek1) if (warunek2) instrukcja1; else instrukcja2; if (warunek1) if (warunek2) instrukcja1; else instrukcja2; 14

15 Czy punkt należy do koła? static void Main(string[] args) double SrodekX, SrodekY, Promien; double x, y; Console.Write("Podaj współrzędną x Srodka: "); SrodekX = Convert.ToDouble(Console.ReadLine()); Console.Write("Podaj współrzędną y Srodka: "); SrodekY = Convert.ToDouble(Console.ReadLine()); Console.Write("Podaj promien okręgu: "); Promien = Convert.ToDouble(Console.ReadLine()); Console.Write("Podaj współrzędną x: "); x = Convert.ToDouble(Console.ReadLine()); Console.Write("Podaj współrzędną y: "); y = Convert.ToDouble(Console.ReadLine()); double odleglosc = Math.Sqrt((x - SrodekX) * (x - SrodekX) + (y - SrodekY) * (y - SrodekY)); if (odleglosc <= Promien) Console.WriteLine("Punkt należy do koła"); else Console.WriteLine("Punkt nie należy do koła"); Console.ReadKey(); Typy wyjątków Użycie bloków try i catch Użycie wielu bloków catch Blok finally Zgłaszanie wyjątków Wyjątki Umieść sprawdzany kod w bloku try Przechwyć ewentualne wyjątki w bloku catch 15

16 Typy wyjątków Exception SystemException ArgumentNullException ArgumentOutOfRangeException ArgumentException ArithmeticException FormatException IndexOutOfRangeException DivideByZeroException OverflowException NullReferenceException OutOfMemoryException ApplicationException Użycie bloków try i catch static void Main(string[] args) try int x = 0; int y = 10 / x; catch (Exception ex) Console.WriteLine("Uwaga wyjątek. \n0", ex.message); Console.ReadKey(); LUB catch (DivideByZeroException ex) Console.WriteLine("Uwaga wyjątek. \n0", ex.message); Console.ReadKey(); 16

17 Użycie wielu bloków catch Zgłoszony wyjątek może być obsłużony przez pojedynczy blok cache Wyjątki klas bardziej szczegółowych powinny być przechwytywane wcześniej try catch(dividebyzeroexception ex) catch(exception ex) Dobrze try catch(exception ex) Źle catch(dividebyzeroexception ex) Blok finally Instrukcje bloku finally są zawsze wykonywane Musi wystąpić po wszystkich blokach catch związanych z danym blokiem try try catch (DivideByZeroException ex) catch (Exception ex) finally Console.WriteLine("Zawsze tu stanę"); Console.ReadKey(); 17

18 Zgłaszanie wyjątków Instrukcja throw throw new Exception("Komunikat - Massage"); Ponowne zgłaszanie wyjątku try catch(exception ex) throw ; Przykład static void Main(string[] args) try int x = 10; int y = 10 / x; if (y <= 1) throw new Exception("Błąd "); catch (DivideByZeroException ex) Console.WriteLine("Wyjątek dzielenia \n0", ex.message); catch (Exception ex) Console.WriteLine("Inny wyjątek. \n0", ex.message); finally Console.WriteLine("Zawsze tu stanę"); Console.ReadKey(); 18

19 Pętla for instrukacja1; for(instr4;warunek;instr5) instrukcja2; instrukcja3; instrukcja1 instr4 Nie instrukcja3 warune k Tak instrukcja2 for(int i=1; i <= 10; i++) Console.Write("0, ",i); instr5 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Pętla while instrukacja1; while(warunek) instrukcja2; instrukcja3; Nie instrukcja3 instrukcja1 warune k Tak instrukcja2 int i = 1; while(i <= 10) Console.Write("0, ",i); i++; 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19

20 Pętla do while instrukacja1; do instrukcja2; while(warunek); instrukcja3; Nie instrukcja3 instrukcja1 instrukcja2 warune k Tak int i = 1; do Console.Write("0, ",i); i++; while(i <= 10); 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, break Wyjście z najbardziej zagnieżdżonej pętli while() for() while() if(warunek) break; instrukcja1; instrukcja3 instrukcja4; int i = 1; while(true) Console.Write("0, ",i); i++; if(i == 5) break; 1, 2, 3, 4, 20

21 Instrukcja wyboru switch Jako typ wartości wybieranej może być dowolny typ całkowity, dowolny typ wyliczeniowy oraz typ string Nie ma "swobodnego" przejścia między blokami case (default) char c; Dobrze switch(c) case 'a': case 'A': instrukcjaa1; instrukcjaa2; break; case 'b': case 'B':instrukcjaB1; break; default: instrukacja1; break; char c; Błąd switch(c) case 'a': instra1; case 'A': instrukcjaa1; instrukcjaa2; break; case 'b': instrb1; case 'B': instrukcjab1; instrukcjab2; break; default: instrukacja1; static void Main(string[] args) char c = Convert.ToChar(Console.ReadKey().KeyChar); Console.WriteLine(); switch(c) case 'a': case 'A': Console.WriteLine(c); Console.WriteLine("################"); break; case 'b': case 'B': Console.WriteLine(c); break; default: Console.WriteLine(c); Console.WriteLine("?????????"); break; Console.ReadKey(); Przykład 21

22 goto Wyjście z głęboko zagnieżdżonych pętli while() for() while() goto Etykieta; Etykieta: instrukcja1; Wewnątrz instrukcji switch Powinno się jej unikać - nieczytelny kod!!! char c; switch(c) case 'a':instra1; goto case 'A'; case 'A':instrukcjaA1; instrukcjaa2; break; case 'b': instrb1; goto default; default: instrukacja1; break; continue Przerwanie pojedynczego obiegu pętli while() if(warunek) continue; instrukcja1; for(int i = 1; i < 10; i++) if(i % 2 == 1) continue; Console.Write("0, ",i); 2, 4, 6, 8, 22

23 Definicja tablicy Rodzaj struktury danych o następujących właściwościach: jednorodność - jest złożona z elementów tego samego typu zwanego typem podstawowym tablicy swobodny dostęp - wszystkie elementy tablicy są jednakowo dostępne - w dowolnej kolejności i w jednakowym czasie stała (niezmienna) ilość elementów ciągłość - zajmuje ciągły obszar pamięci Pojedynczy element dostępny za pomocą indeksu Tworzenie tablic w C# Deklaracji zmiennej tablicowej typ [] nazwa; Utworzenie tablicy - obiektu tablicowego typ [] nazwa = new typ[ilosc_elementow]; lub nazwa = new typ[liczba_elementow]; zmienna tablicowa Obiekt tablicowy. Stos Zarządzana sterta 23

24 Tablice wielowymiarowe Tablice regularne double [,] macierz = new double[4,5]; double [,,] szescian = new double[3,5,6]; Tablice nieregularne - tablice tablic double [][] macierz2 = new double[3][]; macierz2[0] = new double[3]; macierz2[1] = new double[2]; macierz2[2] = new double[4]; macierz macierz2 Inicjalizacja tablic Tablice jednowymiarowe: int [] tab1 = new int[3]2, 3, 4; int [] tab2 = new int[]2, 3, 4; int [] tab3 = 2, 3, 4; int [] tab4 ; tab4 = new int[]2, 3, 4; Tablice wielowymiarowe regularne int[,] tab1 = 3, 4, 5, 6, 7, 8 ; Tablice nieregularne int [][] tab1 = new int[] 3, 4, 5, new int[] 6, 7, 8, 9 ; 24

25 Korzystanie z tablic Operator indeksowania [] elementy tablicy w każdym wymiarze indeksujemy od zera do n-1, gdzie n -ilość elementów w danym wymiarze podanie nieprawidłowego indeksu powoduje zgłoszenie wyjątku IndexOutOfRangeException int [] tab = new int[3]1,2,3; int x = tab[1]; //x=2 tab[2] = 5; int [,] tab2 = new int[2,3]1,2,3, 4,5,6; int y = tab2[1,2]; tab[1,1] = 2; //y=6 int [][] tab3 = new int[2][]; tab[1][0] = 5; tab2[0,0] tab2[1,0] tab[0] tab[1] tab[2] tab2[0,1] tab2[0,2] tab2[1,2] tab2[1,1] Właściwości tablic int [] tab1 = new int[3]1, 2, 3; int [,] tab2 = new int[2,3] 1, 2, 3 4, 5, 6 ; Liczba elementów tablicy: Console.WriteLine(tab1.Lenght); //3 Console.WriteLine(tab2.Lenght); //6 Wymiar tablicy: Console.WriteLine(tab1.Rank); //1 Console.WriteLine(tab2.Rank); //2 25

26 Użycie tablicy z pętlą foreach foreach(typ nazwa in kolekcja) int [] tab = 1,2,3,4,5,6; foreach(int i in tab) Console.Write("0, ",i); Console.ReadKey(); 1, 2, 3, 4, 5, 6 Ustawianie elementów na daną wartość for(int i = index; i < index + iloscelementow; i++) tab[i] = wartosc; Metoda Clear klasy Array int[] tab = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; Array.Clear(tab,2,4); foreach (int i in tab) Console.Write("0, ",i); 1, 2, 0, 0, 0, 0, 7, 8, 9, 26

27 Kopiowanie tablic typ [] tab1; typ [] tab2; tab1 = tab2; tab2 tab1.. Stos Zarządzana sterta Metoda Copy klasy Array int[] tab1 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; int[] tab2 = 11,12,13,14,15,16,17,18,19 ; Array.Copy(tab1,2,tab2,4,4); foreach (int i in tab2) Console.Write("0, ",i); 11, 12, 13, 14, 3, 4, 5, 6, 19, Odwracanie tablicy Metoda Reverse klasy Array int[] tab1 = 1, 2, 3, 4, 5, 6, 7, 8, 9; Array.Reverse(tab1, 2, 5); foreach (int i in tab1) Console.Write("0, ", i); 1, 2, 7, 6, 5, 4, 3, 8, 9, 27

28 Sortowanie tablicy Metoda Sort klasy Array int[] tab1 = 4, 1, 83, 41, 53, 36, 47, 18, 29; Array.Sort(tab1); foreach (int i in tab1) Console.Write("0, ", i); 1, 4, 18, 29, 36, 41, 47, 53, 83, Wyszukiwanie elementu w tablicy Wyszukiwanie połówkowe - tylko tablice posortowane Metoda BinarySearch klasy Array Wyszukiwanie liniowe Metoda LastIndexOf lub IndexOf klasy Array int[] tab1 = 2, 5, 7, 5, 12, 6, 5; int i = Array.IndexOf(tab1, 5); while(i!= -1) Console.Write("0, ", i); i = Array.IndexOf(tab1, 5, i+1); 1, 3, 6, 28

29 Definicja metody w języku C# static typ_zwracany nazwa(lista_argumentów) //ciało metody Metodę można definiować wewnątrz bloku klasy lub struktury Metody nie wolno definiować wewnątrz bloku innej metody class Program static void Main(string[] args) Powitanie(); Console.ReadKey(); static void Powitanie() Console.WriteLine("To ja metoda"); Wywołanie metody Wywołanie metody zdefiniowanej w bloku kodu tej samej klasy co metoda ją wywołująca NazwaMetody(argumenty); Wywołanie metody zdefiniowanej w innej klasie NazwaKlasy.NazwaMetody(argumenty); metoda, która być wywołana przez metodę innej klasy musi być metodą publiczną - zdefiniowaną z słowem public. 29

30 Wartość zwracana przez metodę Słowo kluczowe return zakończenie (wyjście z ) działania metody przekazanie wartości z funkcji - metody "nie void" static void Main() Console.WriteLine(JedenPlusJeden()); Console.ReadKey(); static int JedenPlusJeden() return 1+1; 2 "Metody void" nie muszą zawierać instrukcji return za instrukcją return stawiamy bezpośrednio średnik Metody zadeklarowane jako "nie void" muszą zawierać instrukcję return Zmienne współdzielone i lokalne Zmienne lokalne deklarowane wewnątrz metody prywatne dla metody niszczone przy wyjściu z bloku w którym były zadeklarowane Zmienne współdzielone definiowane bezpośrednio w bloku klasy (struktury) wspólne dla wszystkich metod class static typ nazwa; Zmienna lokalna może przesłonić zmienną współdzieloną - mieć tę samo nazwę co zmienna współdzielona 30

31 class Program static int i = 1; static void Main(string[] args) Console.WriteLine(i); PlusJeden(); Console.WriteLine(i); Trzy(); Console.WriteLine(i); Console.ReadKey(); static int PlusJeden() i++; Console.WriteLine(i); return i; static int Trzy() int i=3; Console.WriteLine(i); return i; Przykład Zgłoszenie wyjątku w metodzie Obsługa wyjątku poszukiwanie bloku catch obsługującego zgłoszony wyjątek rozpoczynamy od miejsca zgłoszenia wyjątku przez łańcuch funkcji wywołujących statis void f1() throw ; statis void f2() f1(); statis void Main() f2(); 31

32 Deklaracja i wywołanie metod z parametrami Deklaracja metody z parametrami Każdy parametr musi posiadać nazwę i typ Argumenty umieszczamy w nawiasach okrągłych po nazwie metody Poszczególne parametry oddzielamy przecinkiem static void Nazwa(string par1, double par2) Wywołanie metody z parametrami Każdy parametr musi mieć dostarczoną wartość odpowiedniego typu Wartości umieszczamy w nawiasach okrągłych po nazwie metody i są przypisywane argumentom na podstawie kolejności występowania Poszczególne wartości oddzielamy przecinkiem Nazwa("Napis", 4.5); string s = "Napis"; double x = 10.4; Nazwa(s, x); par1 = s; par2 = 10.4; par1 = "Napis"; par2 = 2.5; Sposoby przesyłania argumentów do metody Przesyłanie przez wartość static void Nazwa(int x) int a = 5; Nazwa(a); Przesyłanie przez referencję static void Nazwa(ref int x) int a = 5; Nazwa(ref a); Przesyłanie jako parametr wyjściowy static void Nazwa(out int x) int a; Nazwa(out a); 32

33 Przez wartość Argumenty typów referencyjnych static void M1(int [] t) t[0] = 1; static void M2(int [] t) t = new int[]1,2,3; int [] tab = 10,11,12; M1(tab); Console.Write(tab[0]); 1 int [] tab = 10,11,12; M2(tab); Console.Write(tab[0]); 10 Przez referencję i jako parametr wyjściowy static void M3(ref int [] t) t = new int[]1,2,3; int [] tab = 10,11,12; M3(ref tab); Console.Write(tab[0]); 1 class Program static int i = 1; static void Main(string[] args) Console.WriteLine(i); PlusJeden(i); Console.WriteLine(i); PlusPiec(ref i); Console.WriteLine(i); Trzy(out i); Console.WriteLine(i); Console.ReadKey(); static int PlusJeden(int i) i++; Console.WriteLine(i); return i; Przykład static int PlusPiec(ref int i) i=i+5; Console.WriteLine(i); return i; static void Trzy(out int i) i=3; Console.WriteLine(i); 33

34 Przesyłanie dowolnej liczby argumentów Używamy słowa kluczowego params w połączeniu z deklaracją argumentu typu jednowymiarowej tablicy Argument ten jest definiowany na końcu listy parametrów Może być tylko jeden argument z modyfikatorem params dla pojedynczej metody static void Nazwa(params int [] tab) Zawsze przesyłamy tylko przez wartość Sposoby wywołania metody int [] t = 1,2,3,4; Nazwa(t); Nazwa(1,2,3,4); class Program Przykład static void Main(string[] args) int[] tab1 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; foreach (int i in tab1) Console.Write("0, ", i); Console.WriteLine(); Odwracam(tab1); Console.WriteLine("##########################"); foreach (int i in tab1) Console.Write("0, ", i); Console.ReadKey(); static void Odwracam(int[] tab1) Array.Reverse(tab1); 34

35 Przeciążenie nazwy metody Użycie tej samej nazwy dla kilku metod należących do jednej klasy Metody muszą się różnić sygnaturą nazwa metody typ parametrów ilość parametrów modyfikator typu parametru Do sygnatury metody nie należą typ wartości zwracanej przez metodę nazwy parametrów metody class Program static void Main(string[] args) int[] tab1 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; foreach (int i in tab1) Console.Write("0, ", i); Console.WriteLine(); Odwracam(tab1, 3); Console.WriteLine("###########"); foreach (int i in tab1) Console.Write("0, ", i); Console.ReadKey(); Przykład static void Odwracam(int[] tab1) Array.Reverse(tab1); static void Odwracam(int[] tab1, int j) Array.Reverse(tab1, j, 2); 35

36 Argument metody Main static void Main(string[] args) Ustawienie argumentów linii poleceń w Visual Studio Menu Project/Nazwa Projektu Properties, w otwartym oknie wybrać zakładkę Debug, pole edycyjne Command line arguments:. Pojęcie rekurencji Zdolność metody (funkcji) do wywołania samej siebie Typy rekurencji rekurencja bezpośrednia rekurencja pośrednia Metoda dziel i zwyciężaj Metoda iteracyjna static long SilniaI(int n) long iloczyn = 1; for (int i = 2; i <= n; i++) iloczyn *= i; return iloczyn; Metoda rekurencyjna static long SilniaR(int n) if (n == 0 n == 1) return 1; return n * SilniaR(n - 1); 36

37 Przykład - Wieże Hanoi Mamy trzy pręty i n krążków o różnych średnicach, które są nanizane są na pierwszy pręt w porządku malejących średnic tworząc wieżę. Chcemy przenieść krążki z pierwszego pręta na drugi, przy pomocy pręta trzeciego stosując następujące zasady: w każdym kroku można przenieść dokładnie jeden krążek krążek nie może być nigdy nałożony na krążek o mniejszej średnicy static void Hanoi(uint n, string zrodlo, string cel, string tmp) if (n == 1) Console.WriteLine("Przenieś z prętu 0 na pręt 1.", zrodlo, cel); else Hanoi(n - 1, zrodlo, tmp, cel); Console.WriteLine("Przenieś z prętu 0 na pręt 1.", zrodlo, cel); Hanoi(n - 1, tmp, cel, zrodlo); Wywołanie Przykład - Wieże Hanoi static void Main(string[] args) string zrodlo="a"; string cel="b"; string tmp="c"; Hanoi(3, zrodlo, tmp, cel); Console.ReadKey(); Skutek 37

38 Nadużywanie rekurencji Unikajmy rekurencji, jeżeli istnieje oczywiste rozwiązanie iteracyjne!!! n Ciąg Fibonacciego: Fib ( n) Fib ( n 1) Fib ( n 2) dla dla n n 2 2 static long Fib(int n) if (n < 2) return n; else return Fib(n-1) + Fib(n-2); Fib(4) Fib(5) Fib(3) Fib(3) Fib(2) Fib(2) Fib(1) Fib(2) Fib(1) Fib(1) Fib(0) Fib(1) Fib(0) 1 Fib(1) Fib(0) Ciąg Fibonacciego Wywołanie static void Main(string[] args) for (int i=1; i<=10; i++) Console.WriteLine(Fib(i)); Console.ReadKey(); Skutek 38

39 Algorytmy z powrotami Start Metoda Sprawdz we: krok - opis aktualnego stanu Czy istnieje następny, dopuszczalny, nieodwiedzony stan dostępny z bieżącej pozycji N T Wybierz następny, dopuszczalny, nieodwiedzony stan (ruch) dostępny z bieżącej pozycji - krok, oznacz go jako krok2. osiognietocel=false; Stop Oznacz stan krok2 jako odwiedzony T Czy osiągnięto cel N Sprawdz(krok2); osiognietocel=true; osignietocel - pomocnicza zmienne współdzielona Stop T osiognietocel== true N Oznacz stan krok2 jako nieodwiedzony Struktury w języku C# Definicja typu strukturalnego struct Osoba public string Imie,Nazwisko; public int RokUrodzenia; Użycie typu strukturalnego Osoba os; os.imie = "Jan"; os.nazwisko = "Kowalski"; os.rokurodzenia = 1988; Console.Write("Pan(i) 0 1", os.imie, os.nazwisko); os os.nazwisko os.imie os.rokurodzenia Kowalski Jan Stos Zarządzana sterta 39

40 Kolejka FIFO Pierwszy przychodzi - pierwszy wychodzi (first in - first out) Metody Enqueue - dodanie elementu do kolejki Dequeue - pobranie elementu z kolejki inne - Clear, Peek, GetLength, IsFull, IsEmpty Implementacja w.net Framework System.Collections.Queue Implementacja początek kolejki koniec kolejki koniec kolejki a b c D E F G H I j początek kolejki Kolejka LIFO - stos Ostatni przychodzi - pierwszy wychodzi (last in - first out) Metody Push - umieszcza element na stosie Pop - zdejmuje element ze stosu inne - Clear, Peek, GetLength, IsFull, IsEmpty Implementacja w.net Framework System.Collections.Stack Implementacja: wskaźnik stosu Push wskaźnik stosu Pop wskaźnik stosu 40

41 Definicja pliku Plik - skończony zbiór danych (informacji) przechowywana na dysku, dostępna za pomocą nazwy rozszerzonej o ścieżkę dostępu, który stanowi dla systemy operacyjnego całość Atrybuty pliku tryb dostępu - typ wyliczeniowy FileAccess Read, ReadWrite, Write zasady współużytkowania - typ wyliczeniowy FileShare Delete, Inheritable, None, Read, ReadWrite, Write sposób otwarcia (utworzenia) - typ wyliczeniowy FileMode Append, Create, CreateNew, Open, OpenOrCreate, Truncate Strumienie - definicja Strumień - pewna warstwa abstrakcyjna, umożliwia nam zapis i odczyt danych z różnych źródeł Podstawowe operacje na strumieniach: czytanie danych (reading) - pobieranie danych ze strumienia i umieszczanie ich w pewnej strukturze danych zapis danych (writting) - wstawienie danych do strumienia z pewnej struktury danych ustawienie bieżącej pozycji w strumieniu (seeking) 41

42 Strumienie w bibliotece.net Framework Strumienie bezpośrednio podłączone do źródła System.IO.FileStream, System.IO.MemoryStream, System.Net.Sockets.NetworkStream Strumienie pośredniczące System.Security.Cryptography.CryptoStream, System.IO.BufferedStream Klasy używane do odczytu/zapisu z/do strumienia System.IO.BinaryReader, System.IO.BinaryWriter System.IO.StreamReader, System.IO.StreamWriter Operacje na pliku - przykład static void plik(string nazwazrodlo, string nazwacelu) FileStream zrodlo = null, cel = null; byte [] bufor = new byte[10]; int liczbabajtow = bufor.length; try zrodlo = new FileStream(nazwaZrodlo, FileMode.Open, FileAccess.Read, FileShare.Read); cel = new FileStream(nazwaCelu, FileMode.Create, FileAccess.Write, FileShare.None); do liczbabajtow = zrodlo.read(bufor, 0, bufor.length); cel.write(bufor,0,liczbabajtow); while (liczbabajtow == bufor.length); Console.WriteLine("Koniec zapisu pliku"); 42

43 Operacje na pliku - przykład catch (IOException ex) Console.WriteLine("Problemy z plikiem.\n0", ex.message); finally if (zrodlo!= null) zrodlo.close(); if (cel!= null) //cel.flush(); //Close - powinno automatycznie wywołać cel.close(); Operacje na pliku - przykład static void Main(string[] args) plik("c:\\ap\\ttt.sql", "C:\\ap\\new.sql"); Console.ReadKey(); 43

44 Operacje na strukturze systemu plików Directory służy do bezpośrednich operacji na plikach i katalogach File udostępnia metody do operacji na plikach Path operacje na tekście zawierającym informacje o ścieżce dostępu do pliku lub katalogu FileSystemWatcher ustawienie kontroli na pliku lub katalogu 44

45 Zapis-odczyt plików Obsługa zapisu-odczytu plików : FileStream Przestrzeń nazw : System.IO Zapis-odczyt plików class FileStream public FileStream(string path, FileMode mode); public FileStream(string path, FileMode mode, FileAccess fa); public override void Close(); public override void Flush(); public override int ReadByte(); public override long Seek(long offset, SeekOrigin origin); public override void WriteByte(byte value); public void SetLength(long lsize); public override long Length get; public override long Position get; set; public override bool CanReadget; public override bool CanWriteget; public override bool CanSeeekget; 45

46 Zapis-odczyt plików public FileStream(string path, FileMode mode, FileAccess fa, FileShare fs); FileMode.CreateNew FileMode.Create FileMode.Open FileMode.OpenOrCreate FileMode.Truncate FileMode.Append FileAccess.Read FileAccess.Write FileAccess.ReadWrite FileShare.None FileShare.Read FileShare.Write FileShare.ReadWrite Zapis-odczyt plików class FileStream public override int ReadByte(); public override int Read(byte [] buf, int idx, int num); public override void WriteByte(byte value); public override int Write(byte [] buf, int idx, int num); 46

47 FileMode.Append, FileMode.Create, FileMode.CreateNew, FileMode.Open, FileMode.OpenOrCreate Zapis-odczyt plików void CopyFile(string ScrFileName, string DestFileName) FileStream filein, fileout; filein = new FileStream(ScrFileName, FileMode.Open, FileAccess.Read); fileout = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); filein.seek(0, SeekOrigin.End); long len = filein.position; filein.seek(0, SeekOrigin.Begin); byte [] buffer = new byte[10000]; FileAccess.Read, FileAccess.Write, FileAccess.ReadWrite Zapis-odczyt plików try while (true) int numread = filein.read(buffer, 0, 10000); if (numread == 0) break; fileout.write(buffer, 0, numread); finally filein.close(); fileout.close(); 47

48 Zapis-odczyt plików Obsługa zapisu-odczytu plików binarnych : BinaryWriter BinaryReader Przestrzeń nazw : System.IO Pliki binarne class BinaryWriter public BinaryWriter(Stream input); public virtual void Close(); public virtual void Flush(); public virtual long Seek(int offset, SeekOrigin origin); public virtual void Write(bool); public virtual void Write(byte); public virtual void Write(char); public virtual void Write(int); public virtual void Write(long); public virtual void Write(short); 48

49 Pliki binarne class BinaryReader public BinaryReader(Stream input); public virtual void Close(); public virtual byte ReadByte(); public virtual byte ReadBoolean(); public virtual char ReadChar(); public virtual short ReadInt16(); public virtual int ReadInt32(); public virtual long ReadInt64(); public virtual string ReadString(); FileStream fileout; BinaryWriter bw; Pliki binarne fileout = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); bw.write((int)16); bw.write((long)24); bw.write(true); bw.write( Test ); bw.flush(); bw.close() 49

50 Pliki binarne FileStream filein; BinaryReader br; filein = new FileStream(DestFileName, FileMode.Open,FileAccess.Read); br = new BinaryReader(fileIn); int a = br.readint32(); long b = br.readint64(); bool c = br.readboolean(); string s = br.readstring(); br.close() Pliki binarne - serializacja class First int licznik; string nazwa; public First(int _l, string _n) licznik = _l; nazwa = _n; public int Licznik get return licznik;.. 50

51 Pliki binarne - serializacja. public string Nazwa get return nazwa; public void Zapisz(BinaryWriter bw) bw.write(licznik); bw.write(nazwa);. Pliki binarne - serializacja. public void Czytaj(BinaryReader br) licznik = br.readint32(); nazwa = br.readstring(); public static First Odtworz(BinaryReader br) int l = br.readint32(); string s = br.readstring(); return new First(l, s); 51

52 Pliki binarne - serializacja FileStream fileout; BinaryWriter bw; fileout = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); First f = new First(1, Text ); f.zapisz(bw); bw.close(); Pliki binarne - serializacja FileStream filein; BinaryReader br; filein = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = new First(); f.czytaj(br); br.close(); 52

53 Pliki binarne - serializacja FileStream filein; BinaryReader br; filein = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = First::Odtworz(br); br.close(); Zapis-odczyt plików Obsługa zapisu-odczytu plików tekstowych : TextWriter (StreamWriter, StringWriter) TextReader (StreamReader, StringReader) Przestrzeń nazw : System.IO 53

54 Pliki tekstowe TextWriter TextReader StreamWriter StringWriter StreamReader StringReader Pliki tekstowe class StreamWriter StreamWriter(Stream s); StreamWriter(Stream s, bool Append); StreamWriter(Stream s, bool Append, Encoding c); StreamWriter(Stream s, Encoding c); public int Write(.); public string WriteLine (.); public string Flush(.); public string Close(.); 54

55 Pliki tekstowe FileStream fstr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); fstr.close(); StreamWriter fout = new StreamWriter(DestFileName); if (fout!= null) fout.write( To jest ); fout.writeline( tekst! ); fout.flush(); fout.close(); Pliki tekstowe StreamWriter fout = File.CreateText( nazwa_pliku ); if (fout!= null) fout.write( To jest ); fout.writeline( tekst! ); fout.flush(); fout.close(); 55

56 Pliki tekstowe - kodowanie przestrzeń nazw: System.Text Encoding Default get; Unicode get; //2-bytes (0xFF, 0xFE) -> 0xFEFF BigEndianUnicode get; // 2-bytes (0xFE, 0xFF) -> 0xFEFF UTF8 get; //1-6 non-zero bytes RFC 2279 UTF7 get; // RFC 2152 ASCII get; //bytes 0x00 0x7F Pliki tekstowe - kodowanie FileStream fstr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); Encoding enc = new UTF7Encoding(); StreamWriter fout = new StreamWriter(fileOut, enc); if (fout!= null) fout.write( To jest ); fout.writeline( tekst! ); fout.flush(); fout.close(); 56

57 Pliki tekstowe class StreamReader public StreamReader(Stream s); public StreamReader(Stream s, Encoding e); public StreamReader(Stream s, bool Detect); public StreamReader(Stream s, Encoding e, bool Detect); public int Peek(); public int Read(); public int ReadBlock(char [] buffer, int idx, int count); public string ReadLine (); public string ReadToEnd(); Pliki tekstowe FileStream fstr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); StreamReader fin = new StreamReader(fileIn); if (fin!= null) string buf; while ((buf = fin.readline())!= null) Console.WriteLine(buf); fin.close(); 57

58 Pliki tekstowe - kodowanie FileStream fstr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); Encoding enc = new UTF7Encoding; StreamReader fin = new StreamReader(fileIn, enc); if (fin!= null) string buf; while ((buf = fin.readline())!= null) Console.WriteLine(buf); fin.close(); Środowisko class Environment public static string [] GetLogicalDrives(); public static string GetFolderPath(Environment.SpecialFolder s); public static string SystemDirectory; get; public static string CurrentDirectory; get; set 58

59 Środowisko Environment.SpecialFolder Programs, //StartMenu - Programs Personal, //Moje Dokumenty Favourites, Startup, SendTo, DesktopDirectory, Cookies, History, System, ProgramFiles, CommonProgramFiles. Środowisko string [] dyski = Environment.GetLogicalDrives(); foreach (string s in dyski) Console.WriteLine(s); Environment.CurrentDirectory = a:\\ ; string folder = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 59

60 Atrybuty plików class DirectoryInfo public DirectoryInfo(string path); public void Create(); public DirectoryInfo CreateSubdirectory(string path); public void Delete(); public void Delete(bool podkatalogi); void Refresh(); void MoveTo(string path);.. Atrybuty plików bool Exists; get; string Name; get; string FullName; get; string Extenstion; get; DirectoryInfo Parent; get; DirectoryInfo Root; get; public DirectoryInfo[] GetDirectories(); public DirectoryInfo[] GetDirectories(string pattern); public FileInfo[] GetFiles(); public FileInfo[] GetFiles(string pattern); 60

61 Atrybuty plików class Directory public static Exsits(string path); public static DirectoryInfo GetParent(string path); public static string GetDirectoryRoot (string path); public static DirectoryInfo CreateDirectory(string path); public static void Delete(string path); public static void Delete(string path, bool podkatalogi); public static void Move(string src, string dest); Atrybuty plików public static string[] GetDirectories(string path); public static string[] GetDirectories(string path, string pattern); public static string[] GetFiles(string path); public static string[] GetFiles(string path, string pattern); DateTime GetCreationTime(string path); DateTime GetLastAccessTime(string path); DateTime GetLastWriteTime(string path); void SetCreationTime(string path, DateTime dt); void SetLastAccessTime(string path, DateTime dt); void SetLastWriteTime(string path, DateTime dt); 61

62 Atrybuty plików. string pliki [] = c:\, *.* ); foreach (string s in pliki) Console.WriteLine(s); Atrybuty plików class FileInfo public FileInfo(string filename); public bool Exists; get; public string Name; get; public string FullName; get; public string Extension; get; public string DirectoryName; get; public DirectoryInfo Directory; get; public long Length; get; public FileAttributes Attributes; get;set public DateTime CreationTime; get;set public DateTime LastAccessTime; get;set public DateTime LastWriteTime; get;set.. 62

63 Atrybuty plików public FileInfo CopyTo(string filename); public FileInfo CopyTo(string filename, bool overwrite); public void MoveTo(string filename); public void Delete(); public void Refresh(); public FileStream Create(); public FileStream Open(FileMode fm); public FileStream Open(FileMode fm, FileAccess fa); public FileStream Open(FileMode fm, FileAccess fa, FileShare fs); public FileStream OpenRead(); public FileStream OpenWrite(); public StreamReader OpenText(); public StreamWriter CreateText(); public StreamWriter AppendText(); Atrybuty plików class File public static bool Exists(string filename); public static FileAttributes GetAttributes(string filename); public static DateTime GetCreationTime(string filename); public static DateTime GetLastAccessTime(string filename); public static DateTime GetLastWriteTime(string filename); public static void SetAttributes(string filename, FileAttributes fa); public static void SetCreationTime(string filename, DateTime dt); public static void SetLastAccessTime(string filename, DateTime dt); public static void SetLastWriteTime(string filename, DateTime dt);.. 63

64 Atrybuty plików public static void Copy(string s, string d); public static void Copy(string s, string d, bool overwrite); public static void Move(string s, string d); public static void Delete(string filename); public static FileStream Create(string filename); public static FileStream Open(string filename, FileMode fm); public static FileStream Open(string filename, FileMode fm, FileAccess fa); public static FileStream Open(string filename, FileMode fm, FileAccess fa, FileShare fs); public static FileStream OpenRead(string filename); public static FileStream OpenWrite(string filename); public static StreamReader OpenText(string filename); public static StreamWriter CreateText(string filename); public static StreamWriter AppendText(string filename); Atrybuty plików FileAttributes Archive, Compressed, Directory, Encrypted, Hidden, Normal, Offline, ReadOnly, System, Temporary 64

65 Atrybuty plików. string nazwa c:\autoexec.bat ; if (File.Exists(nazwa)) StreamReader fr = File.OpenText(nazwa); string buf; while ((buf = fr.readline())!= null) Console.WriteLine(buf); fr.close(); Atrybuty plików. string nazwa c:\autoexec.bat ; if (File.Exists(nazwa)) FileAttributes atr = File.GetAttributes(nazwa); FileAttributes atrnew = atr FileAttributes.ReadOnly; File.SetAttributes(nazwa, atrnew); 65

66 Interfejs jest klasą abstrakcyjną musi mieć implementację using System; interface MojInterface void Test(); class ImplementacjaInterface : MojInterface static void Main(string[] args) ImplementacjaInterface imp = new ImplementacjaInterface(); imp.test(); Console.ReadKey(); public void Test() try Console.WriteLine("Wywołano interfejs"); catch (Exception e) Console.WriteLine("Błąd interfejsu0", e); 66

67 using System; interface InterfaceRodzic void TestRodzic(); interface MojInterface : InterfaceRodzic void Test(); class ImplementacjaInterface : MojInterface static void Main(string[] args) ImplementacjaInterface imp = new ImplementacjaInterface(); imp.test(); imp.testrodzic(); Console.ReadKey(); public void Test() try Console.WriteLine("Wywołano interfejs"); catch (Exception e) Console.WriteLine("Błąd interfejsu0", e); public void TestRodzic() Console.WriteLine("Wywołano interfejs Rodzica"); Interfejs może dziedziczyć po nadrzędnym interfejsie 67

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Platforma.NET. Laboratorium nr 1 Podstawy języka C# Platforma.NET Laboratorium nr 1 Podstawy języka C# Ćwiczenie 1 1. Utwórz nowy projekt a. Z menu File wybierz New/Project b. W oknie dialogowym New Project określ następujące właściwości: typu projektu:

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wykład 4. Klasa List Kolejki Stosy Słowniki Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

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

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

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

Metodyka programowania. Podstawy C#

Metodyka programowania. Podstawy C# Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

ECLIPSE wnioski z dwóch pierwszych laboratoriów

ECLIPSE wnioski z dwóch pierwszych laboratoriów PODSTAWY PROGRAMOWANIA 3-4 WYKŁAD 22-10-2015 ECLIPSE wnioski z dwóch pierwszych laboratoriów Dodanie pliku i konfiguracji startowej (każdy uruchamiany program powinien mieć własna konfigurację startową)

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach Ćwiczenia laboratoryjne Oprogramowanie i badanie prostych metod sortowania w tablicach Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Programowanie w językach

Programowanie w językach Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie

Bardziej szczegółowo

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

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

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Wykład 2. Różnice pomiędzy językiem C++ a C#

Wykład 2. Różnice pomiędzy językiem C++ a C# Wykład 2 Różnice pomiędzy językiem C++ a C# Podstawowe typy danych w C#: - Typy liczbowe oraz znakowy - Operatory - Konwersje typów podstawowych - Typy wartościowe i referencyjne - Łańcuchy Sterowanie

Bardziej szczegółowo

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz Wykłady 1, 2 Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Podstawowe pojęcia 2. Tworzenie aplikacji w Windows Forms 3. Zawartość projektu 4. Podstawowe cechy

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

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

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi. Ekspert radzi mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8 Spis treści 1. Zarys rozwiązania...3 1.2 Case study...3 1.3 Wymagania...3 2. Projekt...3

Bardziej szczegółowo

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

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

Strumienie i serializacja

Strumienie i serializacja Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery

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

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika Wyklad 6 Typy i zmienne: wskaznikowe, referencyjne Funkcje deklaracja, definicja. Zasieg deklaracji i widocznosc zmiennych Przekazywanie parametrów przez wartosc, referencje i wskaznik Przekazywanie wyniku

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

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

Techniki Programowania

Techniki Programowania Techniki Programowania Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Dr hab. inż. Łukasz Madej, prof. AGH Budynek B5,

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

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

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony 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 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)

Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos) Algorytmy i struktury danych Wykład 3: Stosy, kolejki i listy Dr inż. Paweł Kasprowski pawel@kasprowski.pl Kolejki FIFO First In First Out (kolejka) LIFO Last In First Out (stos) Stos (stack) Dostęp jedynie

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Pliki Podstawy programowania Prawie w każdym programie jest potrzebne napisanie kodu do czytania danych z pliku lub do zapisywaniu danych do pliku. Każde środowisko programowania zawiera środki do czytania

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

II. Języki programowania

II. Języki programowania II. Języki programowania 1/30 Człowiek: Algorytm => program tworzy algorytm zapisuje algorytm w postaci programu (postać źródłowa) Komputer: tłumaczy program do kodu maszynowego (postać wykonywalna) wykonuje

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=

Bardziej szczegółowo

Przedmowa... 11 Rozdział 1. Wprowadzenie... 13

Przedmowa... 11 Rozdział 1. Wprowadzenie... 13 Spis treści Przedmowa... 11 Rozdział 1. Wprowadzenie... 13 Czym jest programowanie...13 Mnogość języków programowania...14 Edytory kodu...15 Kompilatory...15 Mity związane z programowaniem...16 Języki

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Część I Programowanie niskiego poziomu w języku C 19

Część I Programowanie niskiego poziomu w języku C 19 Spis treści Przedmowa 13 Wstęp 15 Część I Programowanie niskiego poziomu w języku C 19 Wprowadzenie 21 1 Typy 23 1.1 Fundamentalne typy danych...................... 23 1.2 Typy pochodne.............................

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 1.

Programowanie 2. Język C++. Wykład 1. 1.1 Wstęp... 1 1.2 Obiekty stałe... 3 1.3 Obiekty statyczne... 4 1.4 Wskaźniki... 5 1.5 Referencje... 8 1.6 Wskaźniki do wskaźników... 11 1.7 Definiowanie własnych typów danych, polecenie typedef... 17

Bardziej szczegółowo

KURS C/C++ WYKŁAD 6. Wskaźniki

KURS C/C++ WYKŁAD 6. Wskaźniki Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. Przypomnienie schematów blokowych BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż

Bardziej szczegółowo

KURS C/C++ WYKŁAD 1. Pierwszy program

KURS C/C++ WYKŁAD 1. Pierwszy program KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo