background image



Język programowania



Algorytm



Elementy języka programowania



Przydział pamięci



Zmienne i stałe



Instrukcje 



Typy danych



O

peratory i wyrażenia (wstępnie)



Kompilacja i konsolidacja

Wyk

Wyk

ł

ł

ad

ad

: J

: J

ę

ę

zyk programowania

zyk programowania

background image

Język programowania dostarcza abstrakcji pozwalającej 
modelowa
ć problem (opisać byty w nim uczestniczące oraz 
sposób ich przetworzenia tak, aby otrzyma
ć rozwiązanie 
problemu)

Czym jest programowanie

Czym jest programowanie

Programowanie …

Sposób reprezentowania problemu prowadzi programistę do 
wyboru:

• Zbliżyć się do maszyny (język asemblera: szybki, nieczytelny, 
nieelastyczny)
• Zbliżyć się do człowieka (opis słowny: wysoki poziom abstrakcji, 
elastyczny)

Ostatecznym celem programowania jest utworzenie 
programu rozwi
ązującego określony problem (zapisanie 
algorytmu rozwi
ązania w języku programowania)

background image

Definicja j

Definicja j

ę

ę

zyka programowania

zyka programowania



Język programowania to system notacji (sposób) 
przekazywania komputerowi poleceń do wykonania. 



Język programowania pozwala na precyzyjny zapis 

algorytmów

oraz innych zadań, jakie komputer ma 

wykonać.



Język programowania składa się ze zbioru reguł
syntaktycznych oraz semantycznych, które opisują, jak 
należy budować poprawne wyrażenia oraz jak komputer 
ma je rozumieć.

Imperatywne języki programowania definiują proces wykonywania jako 

sekwencję instrukcji zmieniających stan programu. Programy składają się z 

ciągu komend do wykonania przez komputer.

background image

J

J

ę

ę

zyki programowania

zyki programowania



strukturalne ↔ obiektowe



kompilowane ↔ interpretowane



maszynowe (asemblerowe) ↔ wysokiego poziomu



imperatywne ↔ deklaratywne



uniwersalne ↔ dedykowane dla dziedziny



„stacjonarne” ↔ skryptowe



C++



C#



Java



Basic



Delphi



PHP



ASP



Ruby



Perl



Python



Lisp



Prolog



Fortran



Modula

background image

Algorytm

Algorytm

Algorytm jest ściśle określoną procedurą obliczeniową, 

generującą dla właściwych danych wejściowych 
żądane dane wyjściowe → wynik działania algorytmu.

Algorytm jest ściśle określoną procedurą obliczeniową, 

generującą dla właściwych danych wejściowych 
żądane dane wyjściowe → wynik działania algorytmu.



Algorytm jest poprawny, gdy dla każdego 
egzemplarza problemu algorytm zatrzymuje się
(kończy się) o daje dobry wynik.



Algorytm jest uniwersalny, gdy rozwiązuje „szerszy”
zakres problemów.



Algorytm jest efektywny jeśli ma odpowiednią do 
problemu 

złożoność obliczeniową

.

http://pl.wikipedia.org/wiki/Algorytm

background image

Elementy j

Elementy j

ę

ę

zyka programowania

zyka programowania

void Main()

{

float zm = 12.07;

int x = 10.31 * Math.Log(zm);

Console.WriteLine(„Wynik = {0}”, x);

}

stała

zmienna

typ wartości

funkcja standardowa

10.31 * Math.Log(zm);

Wyrażenie:

int x = 10.31 * Math.Log(zm);

Instrukcja:

Kurs C# on-line: http://www.tibik.nazwa.pl/

background image

Przydzia

Przydzia

ł

ł

pami

pami

ę

ę

ci w programie dla danych

ci w programie dla danych



Rejestry

(

najszybsza forma pamięci, ich liczba jest mocno 

ograniczona → procesor)



Stos

(umieszczony w pamięci RAM, bezpośrednio 

obsługiwany przez procesor poprzez wskaźnik stosu 
(szybki), kompilator musi znać dokładny rozmiar i czas 
życia danych przechowywanych na stosie)



Sterta

(w pamięci RAM, kompilator nie musi znać rozmiaru 

danych ani wiedzieć jak długo dane będą zajmowały 
obszar na stercie, operator new, elastyczne i 
czasochłonne rozwiązanie)



Obszar stałych

(najczęściej umieszczone bezpośrednio w 

kodzie, przez co są zabezpieczone przed zmianami)

Dane typów 

referencyjnych

Dane typów 

skalarnych

background image

Program. Kompilacja. Uruchomienie

Program. Kompilacja. Uruchomienie



Kompilacja

- kod źródłowy jest tłumaczony do postaci 

kodu maszynowego, czyli sekwencji elementarnych 

operacji gotowych do bezpośredniego przetworzenia 

przez procesor komputera. Jeżeli dany język 

programowania podlega kompilacji, określany jest 

mianem 

kompilowanego języka programowania



Interpretacja

- kod źródłowy (linia po linii) jest na 

bieżąco tłumaczony i wykonywany przez dodatkowy 

program zwany interpreterem. 



Kod bajtowy

– rozwiązanie polegające na kompilacji 

programów do postaci pośredniej (ang. 

byte code

). Jest 

ona wykonywana przez wirtualne maszyny tłumaczące 

elementarne rozkazy byte-code'u na rozkazy procesora. 

Kompilacja do kodu maszynowego zapewnia najwyższą wydajność programom, lecz zabiera 

ona bardzo dużo czasu, zaś wygenerowany kod jest ściśle powiązany z platformą sprzętową.

background image

Program 

Program 

kod 

kod 

ź

ź

r

r

ó

ó

d

d

ł

ł

owy, kod wykonywalny

owy, kod wykonywalny



Program źródłowy 

(zapisany w notacji języka 

programowania)



Postać skompilowana

(program zapisany jako 

instrukcje procesora)



Postać wykonywalna - konsolidacja

(linkowanie od ang.

link

-

łączyć

) to proces 

polegający na połączeniu skompilowanych 
modułów (plików zawierających kod obiektowy 
i/lub plików bibliotek statycznych) i utworzeniu 
pliku wykonywalnego

background image

Identyfikatory

Identyfikatory



Konwencja wielbłądzia: nazwy zaczynają się małą

literą lub podkreśleniem

normalnaTemperatura = 36.6;



Konwencja Pascalowa: nazwy zaczynają się dużą

literą

NormalnaTemperatura = 36.6;



Konwencja węgierska:

iNormalnaTemperatura = 36.6;

Identyfikatory to nazwy nadawane typom, funkcjom (metodom), 

zmiennym, stałym, obiektom i innym jednostkom programu

Identyfikatory to nazwy nadawane typom, funkcjom (metodom), 

zmiennym, stałym, obiektom i innym jednostkom programu

background image

Znaki specjalne

Znaki specjalne



\’ (apostrof)



\” (cudzysłów)



\\ (odwrócony ukośnik = backslash)



\0 (null)



\a (alarm)



\b (znak cofania)



\n (nowy wiersz)



\r (powrót karetki)



\t (tabulacja)



\v (tabulacja pionowa)

napis = „To jest napis z cudzysłowem \” i coś”;

background image

Sta

Sta

ł

ł

e

e



Literały

x = 7;
a = "Ala";
c = 'A';



Stałe symboliczne

const float normalnaTemp = 36.6;



Wyliczenia

enum Rozmiar: int

{ M = 30, S = 40, L = 50, XL = 60}

Wartości, które nie mogą zostać zmienione

background image

Wbudowane typy warto

Wbudowane typy warto

ś

ś

ci

ci

Liczby całkowite bez znaku. 
Wartości: 0 .. 65535

UInt32

2

ushort

Liczby całkowite ze znakiem. 
Wartości: -32768 .. 32767

Int16

2

short

Liczby całkowite ze znakiem. 
Wartości: -128 .. 127

SByte

1

sbyte

Wartości logiczne 

true

lub 

false

Boolean

1

bool

Znaki w formacie Unicode

Char

1

char

Liczby bez znaku. Wartości 0..255

Byte

1

byte

Opis

Typ
CLS

Rozmiar

Typ

CLS = Common Language Specification

background image

Wbudowane typy warto

Wbudowane typy warto

ś

ś

ci (2)

ci (2)

Liczba całkowita ze znakiem. Wartości -
2147483648 .. 2147483647 

Int32

4

int

Liczba całkowita ze znakiem. Wartości: 
0 .. 0xffffffffffffffff 

UInt64

8

ulong

Liczba całkowita ze znakiem. Wartości: 
-

9223372036854775808 .. 9223372036854775807

Int64

8

long

Liczby zmiennoprzecinkowe. 

Decimal

16

decimal

Liczby zmiennoprzecinkowe. 

Double

8

double

Liczby zmiennoprzecinkowe. Wartości: ±
1,5*10

-45

.. ± 3,4*10

38

Single

4

float

Liczby całkowite bez znaku. Wartości: 0 .. 
4294967295

UInt32

4

uint

Opis

Typ
CLS

Rozmia
r

Typ

http://pl.wikipedia.org/wiki/C_Sharp

background image

Zmienne

Zmienne



Wszystkie zmienne w języku C# są traktowane jako 
obiekty (a zatem każdy typ jest klasą)



Każdy obiekt posiada własną pamięć (i adres)



Każdy obiekt posiada swój typ (jest instancją
określonej klasy), co określa jakie czynności można 
na nim wykonać

Obiekt ma stan, zachowanie i tożsamość

(Grady Booch)

Może posiadać dane wewnętrzne (określające jego stan), 

metody/funkcje (określające jego zachowanie) i można go 

odróżnić od pozostałych (poprzez adres) 

int x;
int y = 5;