Podstawy programowania. Podstawy C#
|
|
- Alicja Dorota Zakrzewska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Podstawy programowania Podstawy C#
2 Słowa kluczowe Słowa kluczowe we wszystkich językach programowania wysokiego poziomu zbiór słów zastrzeżonych, których nie można "przedefiniować", m.in.: abstract, as, base, bool, break, byte, case, catch, char, class, const, continue, decimal, default, do, double, else, enum, event, false, float, for, foreach, if, in, int, interface, internal, long, namespace, new, null, object, operator, out, override, private, protected, public, readonly, ref, return, sbyte, short, sizeof, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, ushort, using, virtual, void, volatile, while
3 Słowa kluczowe Słowa kluczowe we wszystkich językach programowania wysokiego poziomu zbiór słów zastrzeżonych, których nie można "przedefiniować", m.in.: Łatwo rozpoznawalne: using System; namespace PodProLab1 { } class Program { } Console.ReadKey(true);
4 Słowa kluczowe kontekstowe Słowa, które są lub nie są kluczowe, zależnie od kontekstu; Nie są zastrzeżone, można użyć np. do nazwania zmiennych: add, alias, async, await, by, descending, dynamic, equals, from, get, global, group, into, join, let, nameof, on, orderby, partial, remove, select, set, value, var, when, where, yield
5 Nazwy Zasady formalne: Może zawierać litery, cyfry oraz znak podkreślenia "_" (tzw. podłoga), można używać znaków diakrytycznych, Małe i wielkie litery SĄ rozróżniane Nie może zaczynać się od cyfry Nie może być słowem kluczowym Int32 gałąź_numer_3; // ok Int32 licznik, Licznik, LICZNIK; // ok, 3 różne nazwy! Int32 2pi; // błąd! Int32 event; // błąd! Słowo kluczowe
6 Nazwy Zasady nieformalne: Klasy, pola, metody, stałe konwencja Pacal, nazwy klas i pól rzeczowniki, metod czasowniki: DaneWykresu (klasa należy unikać nazw na "I") KolorLinii (pole) ZapiszDane (metoda) Interfejsy Pascal poprzedzone literą "I" ISortable Zmienne lokalne i parametry funkcji camelcase: promień polekoła
7 Nazwy Zasady nieformalne: Nazwy powinny być znaczące: p, k, polekoła, kolorlinii Kod powinien być czytelny, kiedy do niego zajrzeć po kilku miesiącach albo dla innego programisty (tzw. samodokumentujący się) Język angielski czy polski? Odpada argument z kaleczeniem języka polskiego => reguły zespołu lub indywidualne preferencje
8 Styl Środowisko formatuje wg reguł klasycznych: Nawias "{" i "}" zawsze w nowej linii, "else" w nowej linii, wcięcia odpowiadające głębokości zagnieżdżenia Automatyczne formatowanie po zakończeniu pisania instrukcji (po wpisaniu ";" lub ostatniego "}"), o ile nie ma błędów; Nie ma re-formatowania po zmianach Na żądanie (Edit > Advanced > Format Document) Np. dla takiego kodu if (x>0) {for (i=0; i<3; i++) {z += t[i]; } } else {z = 0;}
9 Styl Środowisko formatuje wg reguł klasycznych: Nawias "{" i "}" zawsze w nowej linii, "else" w nowej linii, wcięcia odpowiadające głębokości zagnieżdżenia: if (x > 0) { for (i = 0; i < 3; i++) { z += t[i]; } } else { z = 0; }
10 Styl Alternatywne reguły formatowania, np.: Nawias "{" na końcu linii, "}" w nowej linii, "else" razem z "}" (bardziej zwarty): if (x > 0) { for (i = 0; i < 3; i++) { z += t[i]; } } else { z = 0; } - można ustawić w opcjach edytora
11 Styl Komentarze służą do dokumentowania kodu Komentarz liniowy od "//" do końca linii // Jedna linia wyjaśnienia kod Komentarz blokowy od "/*" do "*/" /* Kilka linii wyjaśnienia */ kod
12 Styl Komentarze służą do dokumentowania kodu Sekwencja "///" powoduje wstawienie szablonu dokumentacji XML, który jest czytany przez intellisense /// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> static Int32 NWD(Int32 a, Int32 b) { }
13 CTS Wspólny system typów CTS (Common Type System) Obiekt Klasa Typy proste Interfejs Typy wyliczeniowe Tablica Struktury Typy referencyjne Typy wartościowe
14 CTS Typy wartościowe Deklaracja deklarowany (tworzony) jest obiekt Int32 x; x = 7; Przypisanie obiekt jest kopiowany Int32 a, b; a = 13; b = a; (są dwa obiekty Int32, oba zawierają wartość 13)
15 CTS Typy referencyjne Deklaracja deklarowana (tworzona) jest referencja, obiekt nie istnieje dopóki nie zostanie utworzony operatorem new Button b1; b1 = new Button(); Przypisanie kopiowany jest nie obiekt, tylko referencja do niego Button b2; b2 = b1; (jest jeden obiekt Button, obie referencje wskazują na niego)
16 Typy proste C# Typ wspólny i rzutowanie Wszystkie mają wspólny typ bazowy "object" zmienną każdego typu (w tym typu prostego) można przypisać do zmiennej typu object; Odwrotne przypisania wymaga rzutowania (konwersji typów): Int32 x; object o; x = 13; o = x; x = (Int32)o; // ok Double y; y = (Double)o; // błąd! (obiekt w "o" nie jest Double)
17 Typy proste C# Typy proste Służą do przechowywania pojedynczych wartości logicznych, liczb, znaków, łańcuchów znaków Wszystkie są strukturami BCL (Base Class Library), wspólne dla.net; Struktury dostarczają wielu użytecznych metod i stałych, np. dla Int32: Int32.Parse metoda statyczna, konwertuje łańcuch na liczbę Int32 Int32.MaxValue stała, maksymalna wartość Int32 Int32.ToString metoda, konwertuje liczbę Int32 na łańcuch Mają aliasy w postaci słów kluczowych, np. Int32 int Single float Double double Boolean bool (aliasy są zapożyczone z C/C++/Java)
18 Typy proste C# Typy proste Wartości logiczne: Boolean (bool) Liczby całkowite: Byte (byte), SByte (sbyte) Int16 (short), UInt16 (ushort) Int32 (int), UInt32 (uint) Int64 (long), UInt64 (ulong) Liczby zmiennoprzecinkowe Single (float) Double (double) Decimal (decimal) Znaki i łańcuchy znaków unicode (tzw. widestring) Char (char) String (string)
19 Typy proste C# Boolean Wartości logiczne true i false (są to słowa kluczowe); Do zmiennej Boolean można wstawić wyłącznie stałą (jw.) albo rezultat operacji lub funkcji (metody), o ile jest typu Boolean Boolean niskiindeks = indeks < 0.25D; Boolean sukces = Int32.TryParse("100", out liczba); Nie jest dopuszczalna konwersja z wartości liczbowych i odwrotnie (co jest typowe dla języków C/C++): Boolean test; test = (Boolean)1; // błąd! Int32 number; number = (Int32)true; // błąd! Obowiązuje również dla warunków, np. w instrukcji warunkowej Int32 x = 7, y = 0; if (x) // błąd! (ale w C++ ok) y = 2 * x;
20 Typy proste C# Liczby całkowite: Wyróżniamy 8 odmian; różnią się obecnością znaku oraz ilością zajmowanego w pamięci miejsca (1, 2, 4 i 8 bajtów, tj. 8, 16, 32 i 64 bity) a w konsekwencji zakresem wartości Byte (byte), SByte (sbyte) Int16 (short), UInt16 (ushort) Int32 (int), UInt32 (uint) Int64 (long), UInt64 (ulong)
21 Typy proste C# Liczby całkowite: Zakres wartości wynosi od -2 n-1 do 2 n-1-1 dla wersji ze znakiem oraz od 0 do 2 n -1 dla wersji bez znaku, np.: SByte: , Byte Int16: , UInt16: ±32000, Int32: ±2 miliardy Uint32: 0.. 4,294,967, miliardy Int64: ±9,223,372,036,854,775,807 ±9e18 UInt ,446,744,073,709,551, e18 Operacje arytmetyczne (np. "+") są wykonywane na Int32 lub Int64; po dodaniu dwóch zmiennych Int16 trzeba dokonać jawnej konwersji wyniku niepraktyczne, lepiej używać Int32 Int16 x=1, y=2; Console.WriteLine((x).GetType()); // x jest Int16 Console.WriteLine((+x).GetType()); // +x to już Int32 Console.WriteLine((x+y).GetType()); // x+y też Int32
22 Typy proste C# Liczby zmiennoprzecinkowe Single (float), 32 bity Zakres wartości: 0, ±1.5e 45.. ±3.4e38, ±nieskończoność, nie-liczba 7 cyfr znaczących Double (double), 64 bity Zakres wartości: 0, ±5.0e ±1.7e308, ±nieskończoność, nie-liczba 15 cyfr znaczących Decimal (decimal), 128 bitów Zakres wartości: 0, ±1.0e-28.. ±7.9e28 28 cyfr znaczących Single i Double, po przekroczenia zakresu wartości podczas obliczeń, otrzymają wartość 0 lub ±, a ostatecznie NaN (np. 0/0, 0* ); Decimal bardziej tradycyjnie wygeneruje wyjątek programowy; Decimal ma mniejszy zakres wartości przy większej precyzji - do specyficznych zastosowań, np. obliczeń finansowych
23 Typy proste C# Znaki i łańcuchy Do zapisu znaków używany jest Unicode (1 znak = 2 bajty, UInt16), łańcuchy to sekwencje znaków Char (char) String (string) W Unicode mieszczą się znaki wszystkich "żywych" alfabetów Unicode eliminuje kłopoty ze znakami diakrytycznymi, używaniem stron kodowych itp. Obie struktury są wyposażone w liczne metody większość zadań związanych z przetwarzaniem znaków i łańcuchów jest gotowa W przetwarzaniu znaków i łańcuchów są uwzględniane ustawienia regionalne (tzw. lokalizacja) domyślnie wg ustawień systemu, ale można to zmienić
24 Typy proste C# Znaki i łańcuchy W C# łańcuchy są traktowane w specjalny sposób raz nadana wartość nie może być modyfikowana, zamiast tego tworzona jest nowa struktura (z nową wartością), a stara jest usuwana z pamięci przez GC, zupełnie inaczej niż pozostałe typy proste, w których po prostu zmienia się wartość istniejącej cały czas, tej samej zmiennej. Programy intensywnie przetwarzające łańcuch mogą z tego powodu działać wolniej każda najmniejsza zmiana wartości łańcucha, choćby jednego jego znaku, powoduje utworzenie nowej struktury i pozbycie się starej. Aby tego uniknąć należy stosować obiekt StringBuilder
25 Typy proste C# Konwersje typów prostych Konwersja automatyczna jest możliwa, gdy nie ma ryzyka utraty wartości lub pogorszenia precyzji: Int32 a; Int16 b = 77; a = b; // ok, Int32 <- Int16 w przeciwnym razie jest błędem składniowym: b = a; // błąd: Int16 <- Int32 Single y; y = 1.25; // błąd: Single <- Double Można stosować konwersje wymuszone: b = (Int16) a; Przy przekroczeniu zakresu wartości konwersja nie kończy się błędem, ale wynik może być niespodzianką
26 Typy proste C# Deklaracja zmiennych Nazwa typu i lista nazw zmiennych, rozdzielona przecinkami: Int32 a; Double x, y, z; Można połączyć deklarację z nadaniem początkowej wartości (może to dotyczyć wszystkich lub tylko wybranych zmiennych): Int32 a = 7; Double x = 13.0, y = 0.0, z; Może istnieć tylko jedna zmienna o danej nazwie, ponowna deklaracja jest błędem: Int32 n; Int32 n = 7; // błąd zmienna n już istnieje Double n; // też błąd
27 Typy proste C# Zasięg zmiennej Zasięg zmiennej lokalnej jest ograniczony do bloku (od "{" do "}"), w którym została zadeklarowana. Tym blokiem jest zawsze funkcja, jednak może to być węższy blok: static void Main(string[] args) { Double x; { Double x; // błąd zmienna x już istnieje Int32 n; } n = 7; // błąd tu już nie ma zmiennej n } { } Double n; // ok., inny blok, nowa zmienna n
28 Typy proste C# Stałe liczbowe (szerzej: literały) Stałe liczbowe maja określony typ 12 Int albo 1.2e1 Double 0x12 Int32, notacja szesnastkowa (=18 dziesiętnie) Stałe całkowite są niejawnie konwertowane na Byte i Int16, o ile wartość na to pozwala: Byte b = 500; // błąd! Aby jawnie określić typ należy stosować sufiksy: U uint (UInt32) L long (Int64) F float (Single) D double (Double) M decimal (Decimal) Single s = 1.25; // błąd! 1.25F będzie ok Decimal d = 1.25; // błąd! 1.25M będzie ok
29 Typy proste C# Stałe liczbowe (szerzej: literały) Stałe znakowe są zapisywane w apostrofach, na kilka sposobów Char a, b, c, d, e; a = 'A'; b = '\u0042'; // "B", numer znaku Unicode c = '\x0043'; // "C", notacja szesnastkowa d = (Char)68; // "D", konwersja z liczby całkowitej e = '\t'; // <tab>, tzw. sekwencja ucieczki Stałe łańcuchowe są zapisywane w cudzysłowach: String s1, s2; s1 = "Hello\r\nworld"; s2 Normalnie wykrywane są sekwencje ucieczki: "\t" tabulator, "\r" CR, "\n" LF, "\\" znak "\" Użycie "@" wyłącza sekwencje ucieczki przydatne, gdy w łąńcuchu występują znaki "\", np. ścieżkach do plików
30 Typy proste C# Typy wyliczeniowe Służą do definiowania zbioru dopuszczalnych wartości enum Color { Red, Green, Blue } Color color = Color.Red;
31 Typy proste C# Typy wyliczeniowe Można by definiować stałe "luzem", ale grozi to pomyłkami. Dzięki ścisłej kontroli typów w C#, typy wyliczeniowe gwarantują używanie zawsze poprawnych wartości Np. kolory konsoli i aplikacji okienkowych są liczbami innego typu. Dzięki typom wyliczeniowym nie ma możliwości pomylenia ich: Console.ForegroundColor = ConsoleColor.Yellow; // ok Label1.ForeColor = Color.Yellow; // ok Console.ForegroundColor = Color.Yellow; // błąd // niezgodny typ, komunikat w oknie błędów głosi: // Cannot implicitly convert type 'System.Drawing.Color' // to 'System.ConsoleColor'
32 Operatory C# Podstawowe (primary) x.y f(a) t[n] x++ x-- new Jednoargumentowe +x -x!x ~x ++x --x (typ)x Mnożenia i dodawania * / % + - Przesuwania bitów << >> Relacji i równości < <= > >= is as ==!= Bitowe i logiczne & ^ && Warunkowy?: Przypisania i rozszerzone przypisania = *= /= %= += -= <<= >>= &= ^= = (lewe) (prawe) (lewe) (lewe) (lewe) (lewe) (prawe) (prawe)
33 Operatory C# Hierarchia operatorów Określona dla danego języka programowania kolejność wykonywania operatorów w wyrażeniu Np. * jest wyżej w hierarchii niż +, więc w wyrażeniu y = a + b * c; najpierw będzie wykonane mnożenie Różne języki programowania mają różne hierarchie operatorów. O ile mnożenie jest we wszystkich językach przed dodawaniem, to operatory logiczne mogą być w hierarchii wyżej (np. Pascal) albo niżej (np. C/C++/Java/C#) niż arytmetyczne Kolejność wynikającą z hierarchii można zmieniać używając nawiasów, wyłącznie "(" i ")", które mogą być zagnieżdżone Y = ((a + b) / (c d));
34 Operatory C# Wiązanie operatorów Określona dla danego języka programowania kolejność wykonywania operatorów o tej samej hierarchii Większość operatorów ma wiązanie lewe (są wykonywane od lewej) y = a / b * c; // (a/b)*c; c w liczniku! Tylko operatory przypisania mają wiązanie prawe x = y = z = 7; Kolejność wynikającą z wiązania można zmieniać używając nawiasów, wyłącznie "(" i ")", które mogą być zagnieżdżone y = a / (b * c); // a/(b*c); c w mianowniku
35 Operatory C# Operator dostępu: x.y Daje dostęp do metod, pól, właściwości; Wpisanie "." aktywuje Intellisense widoczność elementów jest zależna od kontekstu, środowisko pamięta też co ostatnio było używane
36 Operatory C# Operatory zwiększania i zmniejszania Przyrostkowe operatory ++ oraz -- dostarczają rezultat PRZED zmianą wartości: Int32 x = 0, y; y = x++; // y=0, x=1 Operatory jednoargumentowe zwiększania i zmniejszania Przedrostkowe operatory ++ oraz -- dostarczają rezultat PO zmianie wartości: Int32 x = 0, y; y = ++x; // y=1, x=1 Kolejność ++ oraz x sugeruje kolejność czynności: ++x najpierw zwiększa, potem zwraca x, x++ odwrotnie Operatory przyrostkowe i przedrostkowe mają inną hierarchię
37 Operatory C# Operatory arytmetyczne (dwuargumentowe): mnożenia: * mnożenie, / dzielenie, % reszta z dzielenia dodawania: + - Działają (na ogół) zgodnie z intuicyjnym rozumieniem; Działanie i wynik zależy od typów argumentów: jeżeli oba są całkowite, to działanie jest wykonywane jak dla liczb całkowitych, jeżeli chociaż jeden argument jest zmiennoprzecinkowy, to działanie też: Int32 i = 3 / 4; // i = 0 Double d = 3.0 / 4D; // d = 0.75 Double z = 3 / 4; // z = 0.0 Dla typów całkowitych wynik jest przynajmniej Int32, nawet jeżeli oba argumenty są Byte lub Int16 Reszta z dzielenia działa też dla liczb zmiennoprzecinkowych (inaczej niż w C/C++) Dla typu String jest zdefiniowany operator +, oznacza konkatenację
38 Operatory C# Operatory relacji i równości: relacji: <, <=, >, >= równości: ==!= Ich sens jest inny niż w matematyce: nie są stwierdzeniem, lecz pytaniem: Boolean czywiększe = x > y; Boolean czynierówne = x!= y; Rezultat jest true (jeżeli relacja jest prawdziwa) albo false (jeżeli nie)
39 Operatory C# Operatory logiczne: negacji (not):! koniunkcja (and): && alterantywa (or): Służą do budowania bardziej złożonych wyrażeń logicznych; Należy pamiętać o hierarchii i wiązaniu, a w razie potrzeby stosować nawiasy Boolean warunek = x > y &&!(x > 13 y < 7); Warto zwrócić uwagę na hierarchię operatory && i są nisko w hierarchii (za operatorami arytmetycznymi, relacji i równości), więc na ogół nie potrzeba nawiasów, za to "!" jest znacznie wyżej i nawiasy są zwykle potrzebne: W1 = x > 0 && y > 0; // (x>0) && (y>0) W2 = x < y + 2 x == y; // (x<(y+2)) (x==y) W3 =!(x < y); // bez () jest błąd, (!x) < y
40 Operatory C# Operatory logiczne: negacji (not):! Operator negacji jest rzadko używany w wyrażeniach zawsze można zmienić znak relacji, np.!(x>0) odpowiada x<=0, albo skorzystać z praw De Morgana, np.!(x>0 && y>0) odpowiada x<=0 y<=0 Operatora negacji używa się w odniesieniu do wartości zwracanych przez funkcje lub właściwości obiektów ponieważ nie można ani nie warto zmieniać ich działania, np.: while (!stream.endofstream) { x = stream.readline(); //
41 Operatory C# Operatory logiczne: koniunkcja (and): &&, alterantywa (or): Program na ogół optymalizuje obliczanie koniunkcji i alternatywy: jeżeli w wyrażeniu (a && b) czynnik a ma wartość false, to całość będzie false, niezależnie od wartości b zatem b nie jest wyznaczane Np. poniżej jeżeli Link.IsOpen ma wartość false, to funkcja ReadData nie zostanie wywołana: ReadOK = Link.IsOpen && Link.ReadData(out buffer); Czasami ta właściwość jest wykorzystywana dla skrócenia kodu, ponieważ odpowiednio użyta zastępuje instrukcję if-else: if (!Link.IsOpen) ReadOK = false; else ReadOK = Link.ReadData(out buffer);
42 Operatory C# Operatory logiczne: koniunkcja (and): &&, alterantywa (or): Podobnie jest optymalizowane wyznaczanie operatora Przykład: if (Link.IsOpen Link.Reconnect()) { Link.ReadData(out buffer); } else { Console.WriteLine("??? "); } Kiedy funkcja Reconnect zostanie wykonana, a kiedy nie? Jaki komunikat powinien się pojawić w miejsce "???"?
43 Operatory C# Operatory przypisania: zwykły: = rozszerzone: *=, +=, Operator przypisania nie jest deklaratywny, jest poleceniem wykonywanym w określonym momencie Int32 a = 7, b = 13, w; w = a + b; // w=20 a = 13; // w=20 Rozszerzone operatory przypisania są tylko skróceniem zapisu: w += 1; // dokładnie jak w = w + 1; w *= b; // dokładnie jak w = w * b; Należy pamiętać, że wiązanie jest prawe: x = y = z = 7; // x=7 x += y *= z -= 3; // z=4, y=28, x=35
44 Operatory C# Operatory przypisania: Wszystkie operatory przypisania mają skutek (wstawienie wartości do zmiennej) oraz rezultat (wstawiona wartość), np. rezultatem y=3 jest wartość 3 (ważne: wartość, a nie zmienna lub referencja do niej) Dzięki temu poniższy kod jest poprawny: x = y = 3; Z uwagi na wiązanie prawe operatora = jest to równoważne temu: X = (y = 3); zatem do x jest wstawiany rezultat operacji y=3, czyli 3
45 Operatory C# Operatory przypisania: Fakt, że operator = posiada rezultat, pozwala robić np. takie konstrukcje: X = 2 * (y = 3); // ok, y=3, x=6 To działa, ale kod jest mało czytelny, co może prowadzić do błędów, dlatego takie użycie operatora = nie jest zalecane. Ważne są tu nawiasy, ponieważ operator "=" jest najniżej w hierarchii, zaś bez nawiasów będzie błąd składniowy: X = 2 * y = 3; // błąd, (2*y) = 3, (2*y) nie jest zmienną Czasami dopuszcza się takie nadużycie, np. w pętli while: while ("+-*".IndexOf( key = Console.ReadKey(true).KeyChar ) < 0); Wplecenie przypisania do wywołania funkcji jest konieczne, ponieważ w warunku pętli można użyć tylko jednego wyrażenia. Przy okazji rzadki przykład instrukcji pustej, która nie jest błędem
46 Operatory C# Operatory binarne: negacja ~ (NOT), koniunkcja & (AND), alternatywa (OR), ekskluzja ^ (XOR) Operatory te, w odróżnieniu od operatorów logicznych, są wykonywane na zmiennych całkowitych, bit po bicie, za wyjątkiem bitu znaku, który jest pomijany (o ile występuje). Np. dla koniunkcji (AND), bit wyniku jest równy 1 jeżeli bity obu argumentów na tej samej pozycji są równe 1 Int32 a = 5, b = 3, c; c = a & b; a: b: c:
47 Operatory C# Operatory binarne: przesuwania bitów << oraz >> Przesunięcie jest wykonywane nierekursywnie (bity wychodzące poza zmienną NIE są wstawiane na drugim jej końcu), o liczbę pozycji wskazaną drugim argumentem, ale z wyłączeniem bitu znaku: Int32 a = -15, b; b = a >> 3; a: b: // trzy "1" wcięło b = a << 10; a: b: Przesunięcie w lewo o 1 bit odpowiada mnożeniu przez 2, zaś przesunięcie w prawo dzieleniu przez 2
48 Operatory C# Operator warunkowy?: W pewnym sensie specyficzna postać instrukcji warunkowej (if), króra może być użyta w wyrażeniach; jest też nazywany "inline if": warunek? wyrażenie1 : wyrażenie2 Działanie: obliczana jest wartość warunku, następnie jeżeli warunek jest spełniony, to jako rezultat całego wyrażenia obliczana jest wartość wyrażenia1, w przeciwnym wypadku wartość wyrażenia2 Rozsądnie używany upraszcza i skraca zapis kodu, np.: if (x == 0) y = 1.0; else y = Math.Sin(x) / x; można skrócić do: y = x == 0? 1.0 : Math.Sin(x) / x;
49 Operatory C# Operator warunkowy?: Ograniczenia Warunek musi dawać rezultat typu logicznego (Boolean), oba następne wyrażenie muszą być tego samego typu lub musi istnieć automatyczna konwersja między nimi Może być użyty tylko jako część przypisania albo argument funkcji: // błędy operator?: użyty poza przypisaniem x > 0? Console.Write(">") : Console.Write("<="); x == 0? y = 1.0 : y = Math.Sin(x) / x; // poprawne użycie operatora?: Console.Write(x>0? ">" : "<="); //?: jako argument y = x == 0? 1.0 : Math.Sin(x) / x; //?: w przypisaniu
50 Aplikacje konsolowe C# Aplikacje konsolowe Środowisko VS umożliwia tworzenie aplikacji konsolowych - uruchamianych w klasycznym, czarnym oknie konsoli Kreator VS tworzy projekt zawierający: - włączenie typowych bibliotek - przestrzeń nazw (można w niej umieszczać własne klasy) - klasę Program - statyczną metodę Main
51 Aplikacje konsolowe C# Funkcja główna programu Każdy program musi zawierać funkcję główną (jak w C++); wykonanie programu polega na wykonaniu funkcji głównej.
52 Aplikacje konsolowe C# Przydatne klasy C# Math - klasa definiująca statyczne metody matematyczne, jak pierwiastek, potęga, logarytm, sinus itd. itp Double Sqrt (Double x); Double Pow (Double b, Double e); - oraz dwie stałe: liczby Π oraz e public const Double PI = ; public const Double e = ;
53 Aplikacje konsolowe C# Przydatne klasy C# Convert Klasa definiująca konwersje miedzy różnymi typami prostymi: Int16 i16; Int32 i32 = 13; i16 = Convert.ToInt16(i32); // zamiast i16 = (Int16)i32 oraz konwersje z i na typ String String ln; Int32 i32; ln = Console.ReadLine(); i32 = Convert.ToInt32(ln); // zamiast Int32.Parse(ln); albo krócej Int32 i32; i32 = Convert.ToInt32(Console.ReadLine());
54 Aplikacje konsolowe C# Przydatne klasy C# Console - klasa definiująca szereg statycznych metod do obsługi konsoli (odpowiednik strumieni cin oraz cout w C++) - najważniejsze metody: void WriteLine (String line); String ReadLine (); ConsoleKeyInfo ReadKey (Boolean noecho);
55 Aplikacje konsolowe C# Metody klasy Console WriteLine wyświetla tekst i przechodzi do nowej linii - wyświetlenie łańcucha znaków Console.WriteLine("Hello"); - wyświetlenie wartości zmiennej Console.WriteLine(x.ToString()); Console.WriteLine(x); - wyświetlenie kilku informacji Console.WriteLine("Wynik = " + x); Console.WriteLine("Suma {0} i {1} to {2}",a,b,s);
56 Aplikacje konsolowe C# Metody klasy Console ReadLine wczytuje tekst wpisany z klawiatury (do naciśnięcia <Enter>) - wczytanie łańcucha znaków i konwersja na liczbę String ln; Double x; ln = Console.ReadLine (); x = Double.Parse(ln); - jw., ale z wykrywaniem błędów Boolean ok; ok = Double.TryParse(ln, out x);
57 Aplikacje konsolowe C# Przykład aplikacji konsolowej C#
58 Instrukcje C# Instrukcja wyrażeniowa Instrukcja pusta Instrukcja blokowa Instrukcja warunkowa (if oraz if-else) Instrukcja wyboru (switch) Instrukcje iteracyjne (for, while, do-while, foreach)
59 Instrukcje C# Instrukcja wyrażeniowa: wyrażenie; Wyrażenie (kombinacja literałów, zmiennych, wywołań funkcji oraz operatorów) zakończone średnikiem, np.: promień++; pole = 2 * Math.PI * Math.Pow(promień, 2.0); Console.WriteLine("Pole wynosi {0}", pole); Nie każde wyrażenie może stać się instrukcją jedynie przypisanie, inkrementacja, dekrementacja, wywołanie funkcji oraz operator new
60 Instrukcje C# Instrukcja pusta: ; Stosuje się tam, gdzie składnia języka wymaga podania instrukcji, a nic konkretnego nie ma być zrobione. Instrukcja pusta przydaje się bardzo rzadko, a jej użycie w instrukcjach warunkowych i iteracyjnych najczęściej jest błędem, np.: if (delta<0); Console.WriteLine("Brak pierwiastków"); Średnik po warunku tworzy instrukcję pustą (która jest lub nie jest wykonywana, zależnie od wyniku sprawdzenia warunku), natomiast wydruk jest wykonywany zawsze, ponieważ w tej sytuacji NIE JEST częścią instrukcji warunkowej.
61 Instrukcje C# Instrukcja blokowa { //dowolna liczba instrukcji } Stosuje się wtedy, gdy składnia pozwala na użycie tylko jednej instrukcji, a trzeba użyć większej ich liczby. Przykład: for (i=1; i<=10; i++) { } k = i*i; Console.WriteLine("kwadrat {0} to {1}", i, k); Intencją programisty jest, aby każda iteracja składała się z dwóch instrukcji (obliczenia i wydruk). Składnia for pozwala na użycie tylko jednej instrukcji, zatem konieczne jest użycie instrukcji grupującej.
62 Instrukcje C# Instrukcja warunkowa if if (warunek) instrukcja Program oblicza wartość wyrażenia podanego jako "warunek" (musi to być wyrażenie dające rezultat typu Boolean). Jeżeli warunek jest spełniony (wartość logiczna true), program wykonuje instrukcję, w przeciwnym wypadku instrukcja jest pomijana if (a!= b) Console.WriteLine("a i b są rózne );
63 Instrukcje C# Instrukcja warunkowa if -else if (warunek) instrukcja_1 else instrukcja_2 Program oblicza wartość wyrażenia podanego jako "warunek" (musi to być wyrażenie dające rezultat typu Boolean). Jeżeli warunek jest spełniony (wartość logiczna true), wykonywana jest tylko instrukcja_1, w przeciwnym wypadku wykonywana jest tylko instrukcja_2 if (x!= 0) y = sin(x)/x; else y = 1;
64 Instrukcje C# Instrukcja wyboru switch-case Można ją traktować jako uogólnienie instrukcji warunkowej if-else O ile instrukcja warunkowa daje dwa warianty działania (dla dwóch możliwych wartości logicznych), to kluczem instrukcji wyboru może być dowolny typ prosty całkowity, znakowy, łańcuch znaków albo typ wyliczeniowy, więc możliwych jest wiele opcji W przeciwieństwie do C/C++, kluczem instrukcji wyboru może być także łańcuch znaków
65 Instrukcje C# Instrukcja wyboru switch-case switch (klucz) { case etykieta1: instrukcje break; case etykieta2: instrukcje break; default: instrukcje break; } Klucz wyrażenie dające rezultat typu całkowitego, znakowego, łańcuch znaków albo typu wyliczeniowego Etykieta literał typu zgodnego z typem klucza
66 Instrukcje C# Instrukcja wyboru switch-case Zasady i ograniczenia: Typy etykiet muszą być zgodne z typem klucza Etykiety muszą być wartościami (literałami lub stałymi), Wartości etykiet nie mogą się powtarzać; Sekcja "default" jest opcjonalna, może wystąpić co najwyżej raz Każda sekcja case MUSI być zakończona instrukcją break Kilka etykiet może mieć wspólny blok kodu switch (n) { case 1: case 7: // kod wspólny dla 1 i 7 break; // itd..
67 Instrukcje C# Instrukcja wyboru switch-case command = Console.ReadLine(); switch (command) { case "login": UserLogin(); break; case "exit": case "bye": Disconnect(); break; } default: Console.WriteLine("Unknown command"); break;
68 Instrukcje C# Instrukcja iteracyjna for Instrukcja iteracyjna z licznikiem, dobrze znana już ze starszych języków programowania powinna być stosowana przede wszystkim tam, gdzie Z GÓRY wiadomo ile dokładnie razy należy powtórzyć czynność np. obliczenie silni z 7, wydrukowanie tablicy 100 liczb itp. W językach C/C++ instrukcja for zyskała dużą elastyczność, np. licznik pętli nie musi być całkowity (w językach Basic i Pascal musi)
69 Instrukcje C# Instrukcja iteracyjna for for (inicjalizacja; warunek; inkrementacja) instrukcja Program wykonuje wyrażenie inicjalizacji, następnie oblicza wartość wyrażenia podanego jako "warunek" (musi to być wyrażenie dające rezultat typu Boolean). Jeżeli warunek jest spełniony (wartość logiczna true), program wykonuje instrukcję oraz inkrementację, po czym czynności SĄ POWTARZANE, począwszy od wyznaczenia warunku; Jeżeli warunek nie jest spełniony, to następuje wyjście z pętli. We wszystkich instrukcjach iteracyjnych (for, while, do-while) "warunek" jest warunkiem pozostania w pętli, a nie wyjścia z niej.
70 Instrukcje C# Instrukcja iteracyjna for for (inicjalizacja; warunek; inkrementacja) instrukcja inicjalizacja false warunek true instrukcja inkrementacja
71 Instrukcje C# Instrukcja iteracyjna for, przykłady // klasyczna iteracja for (i = 1; i <= 10; i++) Console.WriteLine(i); //liczenie wstecz zmienia się też warunek (na ">")! for (i = 77; i > 0; i -= 7) Console.WriteLine(i); // licznik niecałkowity for (Double d = 0.2; d <= 2.8; d += 0.15) Console.WriteLine(d); // formalnie poprawna, zawiesza program for (; ; ) ;
72 Instrukcje C# Instrukcja iteracyjna while Instrukcja iteracyjna z warunkiem powinna być stosowana przede wszystkim tam, gdzie nie wiadomo ile dokładnie razy należy powtórzyć czynność, natomiast sprawdzenie, czy czynność ma być powtarzana, powinna być zrobiona za każdym razem PRZED tą czynnością. Klasycznym przykładem while jest odczyt pliku tekstowego: nie wiadomo ile linii zawiera plik (więc nie for), ale przed próbą odczytu można sprawdzić, czy program osiągnął koniec pliku: while (NIE koniec pliku) { linia = plik.czytajlinię(); // użycie odczytanej linii }
73 Instrukcje C# Instrukcja iteracyjna while while (warunek) instrukcja Program oblicza wartość wyrażenia podanego jako "warunek" (musi to być wyrażenie dające rezultat typu Boolean). Jeżeli warunek jest spełniony (wartość logiczna true), program wykonuje instrukcję, po czym czynności SĄ POWTARZANE; Jeżeli warunek nie jest spełniony, to następuje wyjście z pętli. Jeżeli warunek od początku nie jest spełniony, to instrukcja nie jest wykonana nawet raz
74 Instrukcje C# Instrukcja iteracyjna while while (warunek) instrukcja false warunek true instrukcja
75 Instrukcje C# Instrukcja iteracyjna while, przykłady // kopiowanie pliku na ekran String line; StreamReader plik = new StreamReader(@"C:\plik.txt"); while (!plik.endofstream) { } line = plik.readline(); Console.WriteLine(line); // formalnie poprawna, chociaż zawiesza program while (true) ;
76 Instrukcje C# Instrukcja iteracyjna do-while Instrukcja iteracyjna z warunkiem powinna być stosowana tam, gdzie nie wiadomo ile dokładnie razy należy powtórzyć czynność, natomiast sprawdzenie czy czynność ma być nadal powtarzana może być zrobiona dopiero PO tej czynności. Klasycznym przykładem do-while są iteracyjne obliczenia, których powtarzanie zwiększa dokładność wyniku, zaś oceny tej dokładności można dokonać dopiero PO wykonaniu obliczeń, np. rozwiązywanie równań nieliniowych metodą Newtona: do { x = DokładniejszeRozwiązanie (x); e = SzacunkowyBłąd (x); } while (e > DopuszczalnyBłąd);
77 Instrukcje C# Instrukcja iteracyjna while do { instrukcja } while (warunek); Program wykonuje instrukcję, a następnie oblicza wartość wyrażenia podanego jako "warunek" (musi to być wyrażenie dające rezultat typu Boolean). Jeżeli warunek jest spełniony (wartość logiczna true), to czynności SĄ POWTARZANE; Jeżeli warunek nie jest spełniony, to następuje wyjście z pętli. Instrukcja zostanie wykonana przynajmniej raz
78 Instrukcje C# Instrukcja iteracyjna while do { instrukcja } while (warunek); instrukcja true warunek false
79 Instrukcje C# Instrukcja iteracyjna do-while, przykłady // obliczanie przybliżonej wartości pierwiastka Double x = 4.0, px = 4.0, e; do { px = 0.5 * (px + x / px); e = (px * px - x) / x; } while (e > 0.001);
80 Instrukcje C# Instrukcje break i continue Służą do kontrolowania instrukcji iteracyjnych: - continue przerywa bieżącą iterację, ale pętla jest dalej wykonywana - break natychmiast kończy pętlę Są używane ZAWSZE w powiązaniu z instrukcją warunkową (inaczej to, co jest za nimi, nigdy nie będzie wykonane) // pominięcie iteracji dla y<0 for (x = 0; x <= 10.0; x += 0.01) { y = // obliczenia if (y < 0) continue; } z = // obliczenia
81 Instrukcje C# Instrukcje break i continue W nietypowych sytuacjach (np. kiedy sytuacja nie pozwala na użycie pętli while lub do-while), stosuję się pętlę "nieskończoną", z której wyjście jest możliwe tylko przez instrukcję break. while (true) { // instrukcje if (warunek) break; } // instrukcje
82 Instrukcje C# Instrukcje break i continue Klasyczny przykład pętli "nieskończonej" z break NWD Euklidesa dzielna = ; dzielnik = ; while (true) { reszta = dzielna % dzielnik } if (reszta == 0) break; dzielna = dzielnik; dzielnik = reszta; NWD = dzielnik;
83 Instrukcje C# Przykład łączący różne instrukcje aplikacja konsolowa realizujące wielokrotnie działania, zależnie od wyboru użytkownika; Char key; Console.WriteLine("Naciśnij + (???), - (???) albo * (koniec)"); while (true) { while ("+-*".IndexOf(key = Console.ReadKey(true).KeyChar) < 0); } if (key == '*') break; switch (key) { case '+': Console.WriteLine("Działania dla +"); break; case '-': Console.WriteLine("Działania dla -"); break; }
MATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
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
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
Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";
1 2 Operacje na zmiennych Kolejność operacji: deklaracja, inicjacja bool decyzja; int licznik, lp; double stvat, wartpi; char Znak; string S1, S2 = "Kowalski"; przypisanie wartości podstawienie decyzja
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,
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
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
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
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
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Metodyka programowania
Metodyka programowania Przykładowe pytania Platforma.NET 1. Co to jest.net? 2. Z jakich głównych elementów (dwóch!) składa się platforma.net? 3. Wymień najważniejsze biblioteki.net i ich przeznaczenie.
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Podstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
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
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
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
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,
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ę
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer
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,
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
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,
Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
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
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Podstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
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
Materiały pomocnicze do wykładu 3 - Elementy języka Java
Materiały pomocnicze do wykładu 3 - Elementy języka Java 1) Typy danych Typy całkowite Typ Rozmiar Zakres przechowywanych danych byte 8 bitów -128 do 127 short 16 bitów -32768 do 32767 int 32 bity -2147483648
Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.
Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane
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
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
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
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Odczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Programowanie w środowiskach graficznych. Wykład 3 Język C#
Programowanie w środowiskach graficznych Wykład 3 Język C# 1 Zagadnienia 1. Wprowadzenie 2. Przestrzenie nazw 3. Typy, parametry, konwersje 4. Klasy 5. Instrukcje sterujące 6. Właściwości 7. Interfejsy,
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Języki programowania - podstawy
Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania
Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Wstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
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
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
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
SWIFT. Zaawansowane Programowanie Obiektowe
SWIFT Zaawansowane Programowanie Obiektowe Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje
Podstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
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
Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );
Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft ); Dobrą praktyką jest używanie wielkich liter jako nazw stałych. Nie jest
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
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:
Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
Programowanie komputerowe. Zajęcia 1
Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
JAVAScript w dokumentach HTML (1)
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript
Programowanie - instrukcje sterujące
Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication
Struktura pliku projektu Console Application
Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku
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
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
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
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
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Słowa kluczowe i nazwy
Materiał uzyskany ze strony: http://edu.pjwstk.edu.pl/wyklady/pro/scb/prg2cpp_files/node1.html Słowa kluczowe i nazwy Nazwy (identyfikatory) są wprowadzane do jednostki kompilacji (pliku wraz z innymi
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Instrukcje sterujące. Programowanie Proceduralne 1
Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +
Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera
KOTLIN. Język programowania dla Androida
KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Pascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
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
Cw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Java Podstawy. Michał Bereta
Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego
LibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
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
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
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
#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;