<style type="text/css"> p { text-align: left;} .reveal pre code { height: 100%; max-height: 100%; box-sizing: border-box; } </style>

Deklaracje zmiennej:

typ nazwa_zmiennej;

Zmienne przechowują wartości:

typ zmiennej: określa rodzaj danych, zakres wartości, dozwolone operacje na wartości

nazwa zmiennej: dozwolone znaki a-zA-z0-9_ (cyfra nie może być pierwszym znakiem)

Przykład:

int i; // typ całkowity (4B) long j; // typ całkowity (4B) float x; // typ rzeczywisty (4B) double y; // typ rzeczywisty (8B) char znak; // typ znakowy (1B) string napis; // łańcuch znakowy (napis, kolekcja znaków)
using System; // tu nie deklarujemy zmiennych !!! namespace Zmienne { // tu też nie deklarujemy zmiennych class Program { // Zmienna zadeklarowana w tym miejscu staje się polem klasy Program int a; static void Main(string[] args) { // Zmienna zadeklarowana w tym miejscu jest dostępna w funkcji Main int b; } } }

Operator przypisania =

zmienna = wartość;

Przykład:

i = 2; j = 4L; // wartość long x = 3.14f; // wartość float y = 4.600; // wartość double c = '*'; // znak gwiazdki napis = "Witaj Świecie"; // łańcuch znakowy

typ zmienna = wartość;

int i = 2; long j = 4L; float x = 3.14f; double y = 4.600; char c = 'X'; string napis = "Witaj Świecie";

var zmienna = wartość;

var i = 2; var j = 4L; var x = 3.14f; var y = 4.600; var c = 'X'; var napis = "Witaj Świecie";

Typy danych

Zapis w kodzie C#	Typ	Opis
1	int	Liczba całkowita ze znakiem
1U	uint	Liczba całkowita bez znaku
1L	long	Liczba całkowita 64-bitowa
1UL	ulong	Liczba całkowita 64-bitowa bez znaku
1F	float	Liczba
1.2M	decimal	Liczba całkowita ze znakiem o zwiększonej precyzji (dzięki zapisowi podobnemu do liczb zmiennoprzecinkowych)
Zapis w kodzie C#	Typ	Opis
1.0	double	Liczba zmiennoprzecinkowa
1.2E3	double	Liczba zmiennoprzecinkowa w notacji naukowej ( )
0123	uint	Liczba ósemkowa
0x1a	uint	Liczba szesnastkowa
Operator	Opis	Przykład
+	dodawanie argumentów	x = x + 1
-	odejmowanie argumentów	x = y - 5
*	mnożenie operatorów	x = 5 * 5
/	dzielenie operatorów	x = x / y
%	operacja dzielenia modulo	x = x % 3
++	zwiększanie wartości o 1	x++ lub ++x
--	zmniejszanie wartości o 1	x-- lub --x

Kolejność operacji: mnożenie i dzielenie przed odejmowaniem i odejmowaniem.

Pierwszeństwo maja wyrażenia w nawiasach ( )

Przykład:

double x = 3.14; int k = 42; char znak = 'C'; k = k + 1; x = k - 100; x = x * x; k = x / 2; k++; --k;

Jaki będzie wynik?

1 + 2 * 3 (1 + 2) * 3 1 / 2 1.0 / 2 1 / 2.0 1.0 / 2.0 * 3.0
int i = 1; Console.WriteLine(++i); Console.WriteLine(i++);

Napisz program, który wyznaczy pole oraz obwód koła o podanym promieniu .

Liczba w C#

Math.PI

W jaki sposób wczytać liczbę z konsoli?

Klasa Convert

k = System.Convert.ToInt32(x); y = System.Convert.ToDouble(x);

W jaki sposób wypisac liczbę w konsili?

int a = 42; Console.WriteLine("To jest liczba " + a.ToString()); Console.WriteLine("To jest liczba {0}", a); Console.WriteLine($"Liczba wynosi {a}");

Napisz program, który poprosi użytkownika o podanie 2 liczb rzeczywistych a następnie wypisze ich sumę, różnicę, iloczyn oraz iloraz.
Przykładowy wynik działania programu:

Podaj dwie liczby:
1
3
Oto wynik:
1.0 + 3.00 = 4.000
1.0 - 3.00 = -2.000
1.0 * 3.00 = 3.000
1.0 / 3.00 = 0.333

Co się stanie gdy druga podana liczba będzie zerem?

Operator	Opis	Przykład
==	czy równe ?	x == y
>	czy większe ?	x > y
<	czy mniejsze ?	x < y
>=	czy większe lib równe?	x >= y
<=	czy mniejsze lub równe?	x <= y

Przykład

if ( x == 0 ) { Console.WriteLine("Pamiętaj cholero nie dziel przez zero!"); }
Operator	Opis	Przykład
&&	operator i (AND)	x>5 && x<10
||	operator lub (OR)	x>5 || x <=-5
!	negacja (operator NOT)	!x

Przykład

if ( a > 0 && b < 0 ) { Console.WriteLine("Obie wartości są dodatnie"); }
Operator	Opis	Przykład
=	prosty operator przypisania.	x = y + z
+=	operator dodawania i przypisywania w jednym.	x += y
-=	operator odejmowania i przypisywania w jednym.	x -= 2.3
*=	operator mnożenia i przypisania w jednym.	x*=Math.PI
/=	operator dzielenia i przypisania w jednym.	x /= 2
sizeof()	zwraca rozmiar typu danych w bajtach	sizeof(int), rozmiar: 4
typeof()	zwraca typ klasy	typeof(klasa)
? :	wynikiem jest jedna z dwóch wartość zależnie od spełnienia warunku	x = (a < b) ? „TAK” : „NIE”
is	sprawdzenie, czy obiekt jest danego typu	if (x is Int32)
as	rzutowanie bez zwracania wyjątku jeżeli rzutowanie się nie uda (tylko typy referancyne i nulowalne)	y = x as string

Rzutowanie jawne

(double)42 // wynik 42.0 (int)0.99 // wynik 0, utrata precyzji !!!

Rzutowanie niejawne

double x = 42; // Jest OK int x = 0.5; // NIE jest OK, błąd int x = (int)0.5; // Jawne rzutowanie, jest OK ale utrata dokładności

Zamiana łańcuchów na typy liczbowe

Klasa System.Convert
ToInt32(), ToDouble(), ToString(), ...

double x = Convert.ToDouble(Console.ReadLine());

Metoda Parse() dla każdego typu wbudowanego

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

Zamiana na łancych znakowy:

Metoda ToString() każdego obiektu

int x = 42; Console.WriteLine(x.ToString());

Metoda Frormat(wartosc) klasy String

int x = 42; string s = String.Format("Liczba x = {0}", x);

Składnia: {indeks:format}

double x = 2.0 / 3.0; Console.WriteLine("Zmienna x = {0}", x); Console.WriteLine("Zmienna x = {0:F}", x); Console.WriteLine("Zmienna x = {0:F1}", x); Console.WriteLine("Zmienna x = {0:C}", x); Console.WriteLine("Zmienna x = {0:P1}", x);

Zmienna x = 0,6666666666666666
Zmienna x = 0,667
Zmienna x = 0,7
Zmienna x = 0,67 zł
Zmienna x = 66,7%

Format	Opis	Przykład
F lub f	fixed-point liczba z przecinkiem	„F” -> 1,294
„F1” -> 1,3
E lub e	notaca naukowa	„E” -> 1,123E+002
C lub c	waluta (zależnie od ustawień lokalizaci)	„C” -> 10,10 zł
P lub p	procent wartości ułamkowej	„P” -> 10,1%
X lub x	zapis szesnastkowy (tylko liczby całkowite)	„X” -> FF

Zobacz: Standard numeric format strings

Składnia: {indeks,szerokość:format}

double x = 1.29; Console.WriteLine("|{0}|", x); Console.WriteLine("|{0,10}|", x); Console.WriteLine("|{0,-10}|", x); Console.WriteLine("|{0,-10:F1}|", x);

|1,29|
| 1,29|
|1,29 |
|1,3 |

String.Format(format)

łancuchy interpolowane $„{zmianna:format}”

metoda ToString(format)

double x = 1.29; var s1 = String.Format("|{0,-10:F1}|", x); var s2 = $"|{x,-10:F1}|"; var s3 = x.ToString("F1"); // tylko format wartości Console.WriteLine(s1 + '\n' + s2 + '\n' + s3 );

|1,3 |
|1,3 |
1,3