Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 5 WSTĘP DO INFORMATYKI

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

Download "Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 5 WSTĘP DO INFORMATYKI"

Transkrypt

1 Dr inż. Grażyna KRUPIŃSKA D-10 pokój 227 WYKŁAD 5 WSTĘP DO INFORMATYKI

2 Czym jest programowanie 2 Programowanie rozwiązywanie problemów przy użyciu komputera. Teoria rozwiązywania problemów (George Polya): Zrozumienie problemu, Wymyślenie planu postępowania, Wykonanie planu, Weryfikacja. Programowanie: projektowanie, tworzenie, testowanie, Problem Algorytm Program. utrzymywanie kodu źródłowego napisanego w języku programowania.

3 Architektura a organizacja 3 Architektura komputera: atrybuty widzialne dla programisty, atrybuty mające wpływ na sposób tworzenia programu, bywa trwała może przetrwać wiele lat. lista rozkazów, rozmiar reprezentacji typów danych, mechanizmy wejścia/wyjścia, metody adresowania pamięci.

4 Architektura a organizacja 4 Organizacja komputera: rozwiązania sprzętowe niewidzialne dla programisty sposób realizacji konkretnej architektury, zmienia się szybko wraz z rozwojem technologii. sygnały sterujące, interfejsy komputer/urządzenia peryferyjne, wykorzystywana technologia pamięci

5 John von Neumann 5 John von Neumann (ur. 28.XII.1903 w Budapeszcie, zm. 8.II.1957 w Waszyngtonie), inżynier chemik, fizyk, matematyk i informatyk. Wniósł znaczący wkład do wielu dziedzin matematyki, szczególnie teorii gier. Uporządkował formalizm matematyczny mechaniki kwantowej. Przyczynił się do rozwoju numerycznych prognoz pogody.

6 Uniwersalna maszyna Turinga 6 Turing zaproponował, aby układ sterowania MT zapisać na taśmie i wyposażyć maszynę w uniwersalny układ sterowania. Von Neuman rozwinął później UMT w prototyp komputera zaproponował, aby UMT modyfikowała równie program MT, a nie tylko dane. Program przechowywany w pamięci razem z danymi.

7 Architektura von Neumanna 7 EDVAC (1945 r.) - Electronic Discrete Variable Automatic Computer IAS komputer skonstruowany w Princeton Institute for Advanced Studies przez von Neumanna ALU Pamięć główna Programowa jednostka sterująca Wejściewyjście Jednostka centralna CPU

8 Maszyna von Neumann a 8 Pamięc główna służy do przechowywania zarówno danych jak i rozkazów programów Pamięć główna ALU może wykonać działania na liczbach binarnych Jednostka arytmetyczno logiczna ALU Programowa jednostka sterująca Jednostka sterująca pobiera rozkazy z pamięci i powoduje ich wykonanie Wejściewyjście Pracą urządzeń wejściewyjście kieruje jednostka sterująca

9 Architektura von Neumanna 9 ma skończoną i funkcjonalnie pełną listę rozkazów ma możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych dane i instrukcje w takim systemie powinny być jednakowo dostępne dla jednostki centralnej informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.

10 Krótka historia C 10 The Development of the C Language Dennis M. Ritchie Martin Richards tworzy język BCPL Basic Combined rogramming Language Ken Thompson tworzy język B Denis Ritchie (Bell Labs) tworzy język C podczas prac nad systemem operacyjnym UNIX na komputerze DEC PDP B. Kernighan i D. Ritchie opisują standard języka C zawartego w systemie UNIX w wersji V w książce The C Programming Language (wydanie polskie 1994).

11 Krótka historia C Powstaje komitet mający za zadanie opracowanie standardu ANSI Wprowadzenie standardu ANSI C, standard zaadaptowany przez ISO, w efekcie ANSI/ISO C 1995 Standard C z 1989 uzupełniony o Amendment 1, stanowi podstawowy dokument dla standardu C++ i określa podzbiór C języka C++. Wersję C zdefiniowaną w standardzie z 1989 określa się jako C Powstaje standard C99, oparty na C89. Główne prace polegały na dodaniu kilku bibliotek funkcji do metod numerycznych oraz rozwoju kilku specjalnych możliwości takich jak tablice o zmiennych rozmiarach oraz wskaźniki typu restrict.

12 12 Jak C miało się przez lata

13 13 Jak C ma się dzisiaj

14 Słowa kluczowe 14 C standardy języka: C89 32 słowa kluczowe (27 standard K&R + 5 komitet ANSI ) C99 = C = 37 słów kluczowych auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while _Bool _Imaginary restrict Complex inline

15 Słowa kluczowe 15 Istnieją jeszcze słowa kluczowe stanowiące rozszerzenie standardu, wprowadzone przez twórców danego kompilatora, pozwalające lepiej wykorzystać dane środowisko systemu operacyjnego. Niektóre często stosowane dodatkowe słowa kluczowe: asm, far, huge, near, pascal, interrupt.

16 Standard języka 16 Standard języka C określa minimalny zestaw funkcji, zwanych biblioteką standardową, dostępnych ze wszystkimi kompilatorami C. C język nierestrykcyjny: C nie wykonuje prawie żadnego sprawdzania błędów wykonania. Za obsługę błędów odpowiada programista. Język C umożliwia odczyt i zapis poza zasięgiem tablicy! Nie wymaga ścisłej zgodności typów między parametrem i argumentem. Dopuszcza prawie każdy typ argumentu, o ile da się go rozsądnie przekształcić do typu parametru. Konwersja następuje automatycznie. Język dla programistów, którzy są świadomi tego co robią.

17 Plusy dodatnie 17 Wydajność: niewielka objętość kodu wynikowego, duża szybkość działania, Przenośność na poziomie źródła: programy napisane w C na jednej platformie systemowej mogą być po drobnych modyfikacjach kompilowane i uruchamiane na innej. Elastyczność: programowanie systemowe (możliwość bezpośredniego operowania na bitach, bajtach słowach i wskaźnikach) obliczenia numeryczne, kompilatory, interpretery (Python, Ruby), systemy wbudowane.

18 Plusy ujemne 18 Elastyczność języka i bogactwo operatorów pozwala popełniać błędy, które w innych językach byłyby niemożliwe (==, =), (;), (&). Zwięzłość C oraz bogactwo operatorów pozwala tworzyć kod źródłowy charakteryzujący się niezwykłym zawikłaniem. ( Trudność utrzymania i modyfikowania dużych programów. Brak klas, pakietów, interfejsów. int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hello, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}

19 Język C strukturalny 19 Główny składnik struktury języka C to funkcja. podstawowy element konstrukcyjny języka, w której realizowane są poszczególne zadania programu, pozwalają nadać programowi charakter modularny Istnieje również możliwość definiowania bloków

20 #include <stdio.h> #define Pi 3.14 //dyrektywy preprocesora //deklaracje zmiennych globalnych float potega (float,int); prototypy funkcji int main (void) { int promien; float pole; printf("podaj promien kola "); scanf("%d",&promien); /*wczytanie wartosci zmiennej*/ pole = Pi * potega(promien,2); printf("pole kola o promieniu %d wynosi %4.1f",promien, pole); return 0; } //definicja funkcji main() float potega (float liczba, int wykladnik) { int i; float wynik; wynik = 1.0; for (i = 0; i < wykladnik; i++) wynik *= liczba; return wynik;} //definicje funkcji

21 Kompilacja 21 GCC (the GNU Compiler Collection) jest podstawowym kompilatorem dla systemów uniksowych program - ciąg rozkazów powodujących określone zachowanie się komputera, kod źródłowy - tekst programu napisany w języku programowania (np. C, C++), zawierający znaki w kodzie ASCII. Może również zawierać znaki spoza tego kodu, ale tylko w obrębie zmiennych tekstowych lub komentarzy, preprocesor - program dokonujący wstępnej analizy kodu źródłowego, który to kod następnie poddawany jest obróbce przez kompilator, kompilator - program tłumaczący kod źródłowy, poddany wcześniej obróbce przez preprocesor, do postaci kodu binarnego, o postaci zależnej od systemu operacyjnego, konsolidator(linker) - program łączący pliki w kodzie binarnym, będące wynikiem działania kompilatora, tak, by powstał w wyniku kod maszynowy programu, gotowy do wykonania w danym systemie operacyjnym.

22 kod źródłowy programu *.c, *.cpp pliki nagłówkowe ( systemowe, własne) *.h PREPROCESOR kod źródłowy z dołączonymi plikami nagłówkowymi po wykonaniu dyrektyw KOMPILATOR plik binarny *.o, *.obj pliki binarne bibliotek (systemowych i własnych), których pliki nagłówkowe były wcześniej dołączone LINKER pliki wykonywalny

23 Preporcesor 23 W tej fazie wykonywane są tzw. dyrektywy preprocesora instrukcje poprzedzone znakiem #, m.in. #inlude, #define - wykonywane są definicje i makra, oraz wstawiane pliki gcc -E prog_1.c > prog_1_pre

24 Preporcesor 24 #include <stdio.h> #define Pi 3.14 float potega (float,int); int main (void) { int promien; float pole; printf("podaj promien kola "); scanf("%d",&promien); pole = Pi * potega(promien,2); printf("pole kola o promieniu %d wynosi %4.1f \n",promien, pole); return 0; }

25 Preporcesor 25 int main (void) { int promien; float pole; printf("podaj promien kola "); scanf("%d",&promien); pole = 3.14 * potega(promien,2); printf("pole kola o promieniu %d wynosi %4.1f \n",promien, pole); return 0; }

26 Kompilacja i optymalizacja 26 Jest to proces zamieniający kod w danym języku programowania najpierw na pośredni język kompilatora, usuwa np. pętle zamieniając je na zwykłe warunki oraz instrukcje goto, a potem przygotowuje kod do translacji na assemblera gcc -c prog_1.c -fdump-tree-all float potega (float liczba, int wykladnik) { int i; float wynik; wynik = 1.0; for (i = 0; i < wykladnik; i++) wynik *= liczba; return wynik;}

27 Generacja kodu w asemblerze 27 Na podstawie przygotowanego przez preprocesor kodu źródłowego może zostać wygenerowany kod w assemblerze, będący symboliczną reprezentacją kodu binarnego, uruchamialnego przez procesor (*.s) gcc -S prog_1.c

28 Generacja kodu maszynowego 28 Kod maszynowy (relokowalny) nie posiada potrzebnych nagłówków oraz może posiadać tzw. niezdefiniowane referencje (unsolved symbols ). Oznacza to, że jeśli np. załączyliśmy plik funkcje.h z samymi prototypami funkcji, assembler nie musi jeszcze wiedzieć gdzie ta funkcja jest, byle miał informację, że taka funkcja gdzieś jest, tak się nazywa i ma daną sygnaturę. Wynikiem tej fazy jest tzw. obiekt (rozszerzenie.o) Na tym etapie można wyliczyć adresy obiektów i kodu znajdujących się w tym module względem początku modułu. Adresy odnoszące się do obiektów i kodu w innych modułach mogą zostać związane dopiero na etapie konsolidacji. gcc -c prog_1.c as prog_1.s -o prog_1.o

29 Linkowanie (konsolidacja) 29 Polega na zebraniu wszystkich obiektów razem i złączeniu ich w wykonywalny program. Konsolidator wymaga skojarzenia symboli (nazw), musi wiedzieć gdzie znajduje się kod danej funkcji. Rozwiązań symboli (czy też: definicji referencji) może także szukać w bibliotekach dzielonych (.so, samego pliku nie dołączy, jedynie utworzy odnośnik) i statycznych (.a, ten plik już zostanie dołączony do aplikacji statycznie). Na tym etapie wśród linkowanych obiektów musi znaleźć się funkcja main. Aby dolinkować bibliotekę, trzeba dodać do argumentów wywołania nazwę biblioteki, która znajduje się w folderze domyślnym bibliotek dla kompilatora gcc v prog_1.o o prog_1

30 30 Linkowanie (konsolidacja)

31 Wszystko razem 31 Program gcc jest tylko interfejsem, sterownikiem. GCC (jako pakiet) składa się z wielu programów. Każda faza budowania ma przydzieloną osobną aplikację. Preprocesor: cpp (C PreProcessor), tworzy plik gotowy do kompilacji (-E) Kompilator: cc (lub cc1, C Compiler), kompiluje do assemblera (-S) Assembler: as, assembluje kod do kodu maszynowego platformy docelowej (-c) Konsolidator: ld tworzy końcowy program z utworzonych obiektów

32 Wszystko razem 32 Każdemu etapowi tworzenia obrazu procesu w pamięci towarzyszy odpowiednie przekształcanie adresów, począwszy od etykiet i innych symboli, a skończywszy na fizycznych adresach komórek pamięci. W modelu von Neumana adresy dotyczą rozkazów (instrukcji) oraz zmiennych (danych). Jeśli w programie źródłowym występują adresy, to mają one najczęściej postać symboliczną (etykiety w asemblerze) lub abstrakcyjną (wskaźniki w C). Adresy związane z lokalizacją pojawiają się na etapie translacji i są odpowiednio przekształcane aż do uzyskania adresów fizycznych.

33 Standardy i ostrzeżenia 33 -std= definicja standardu języka, zgodnie z którym chcemy skompilować nasz program standard c89 standard c99 float potega (float liczba, int wykladnik) { int i; float wynik; wynik = 1.0; for (i = 0; i < wykladnik; i++) wynik *= liczba; return wynik;} float potega (float liczba, int wykladnik) { float wynik; wynik = 1.0; for (int i = 0; i < wykladnik; i++) wynik *= liczba; return wynik;}

34 Standardy i ostrzeżenia 34 standard c99 domyślnym standardem jest c89 float potega (float liczba, int wykladnik) { float wynik; wynik = 1.0; for (int i = 0; i < wykladnik; i++) wynik *= liczba; return wynik;} gcc prog_1.c -o prog_1 gcc prog_1.c -o prog_1 std=c99

35 Standardy i ostrzeżenia 35 #include<stdio.h> Taka konstrukcja nie jest dopuszczona w standardzie C (ani C++), kompilator GCC przepuści na etapie optymalizacji będzie int main (void) wiedział co z tym zrobić { int i,n; scanf ("%d",&n); int tab[n]; for (i = 0; i < n; i++) { tab[i] = 2*i; printf("%d ", tab[i]); } printf(" \n"); return 0; } gcc prog_2.c -o prog_2

36 Standardy i ostrzeżenia 36 #include<stdio.h> Taka konstrukcja nie jest dopuszczona w standardzie C (ani C++), kompilator GCC przepuści na etapie optymalizacji będzie int main (void) wiedział co z tym zrobić { int i,n; scanf ("%d",&n); int tab[n]; for (i = 0; i < n; i++) { tab[i] = 2*i; printf("%d ", tab[i]); } printf(" \n"); return 0; } gcc prog_2.c -o prog_2 pedantic

37 Standardy i ostrzeżenia 37 #include<stdio.h> int main (void) { int i,n, tab[4]; for (i = 0; i < 4; i++) { tab[i] = 2*i; printf("%d ", tab[i]); } printf(" \n"); return 0; } gcc prog_3.c -o prog_3 Wall

38 Standardy i ostrzeżenia 38 #include<stdio.h> int main (void) { int n; scanf( %d,n); if (n = 4){ { printf( Wpisales 4 "); } printf(" \n"); return 0; } gcc prog_4.c -o prog_4

39 Standardy i ostrzeżenia 39 #include<stdio.h> int main (void) { int n; scanf( %d,n); if (n = 4){ { printf( Wpisales 4 "); } printf(" \n"); return 0; } gcc prog_4.c -o prog_4 -Wall

40 Typy danych 40 W C89 zdefiniowanych jest 5 podstawowych typów danych: brak wartości void, znak char (You can pronounce the C keyword char in at least three ways: like the English words char, care, or car (or maybe even character); the choice is arbitrary.) liczba całkowita int, liczba zmiennoprzecinkowa float, liczba zmiennoprzecinkowa podwójnej precyzji double.

41 Typy danych 41 Typy podstawowe stanowią bazę do budowania typów złożonych i typów zmodyfikowanych. Rozmiar oraz zakres zmienia się w zależności od procesora oraz kompilatora. Nie można przyjmować ŻADNYCH założeń odnośnie rozmiaru typów, jeżeli chcemy zapewnić przenośność programu między środowiskami wykonania. W C zastrzeżenia dotyczą jedynie minimalnego zakresu, a nie rozmiaru w bajtach.

42 Typy danych 42 Typ void służy do deklarowania funkcji, które nie zwracają wartości oraz do tworzenia wskaźnika ogólnego przeznaczenia. Zmienna typu char zawsze zajmuje 1 bajt. Wartości char na ogół odpowiadają wartościom zdefiniowanym w zbiorze ASCII. Wartości z poza tego zbioru traktowane są różnie przez różne kompilatory. Zmienna typu int zazwyczaj rozmiar jest równy długości słowa w środowisku, w którym wykonuje się program, np: w środowiskach 32bitowych typ int zajmuje 32 bity.

43 Typy danych 43 Modyfikatory typów zmieniają znaczenie typu podstawowego, w celu lepszego dostosowania go do rozwiązywanego problemu. Modyfikatory typu int signed, unsigned, long, short. Modyfikatory typu char signed, unsigned. Modyfikator long stosujemy z typem double (oraz w standardzie C99 z typem long int co daje typ long long int ) Integer Type Limits: <limits.h> Float Type Limits: <float.h>

44 Typ Typowy rozmiar w bitach Minimalny zakres 44 char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int long long int (C99) unsigned long int unsigned long long int (C99) limits.h makra określające granice dla typów ścisłych

45 45 Typ Typowy rozmiar w bitach Minimalna liczba cyfr znaczących Minimalna wartość wykładnika Maksymalna wartość wykładnika float double long double float.h makra określające właściwości typów zmiennoprzecinkowych

46 46

47 47 <limits.h>

48 48

49 49 <float.h>

50 Identyfikatory 50 Identyfikatory to nazwy zmiennych, funkcji, etykiet, itp. Identyfikator może zawierać jeden lub więcej znaków. Pierwszy znak musi być literą lub znakiem podkreślenia, pozostałe muszą być literami, cyframi lub znakami podkreślenia. W identyfikatorach rozróżniana jest wielkość znaków. Licz poprawne $Z[21 niepoprawne licz _var_11 nowa_zmienna 11_zmienna nowe ego nowa-zmienna

51 Identyfikatory 51 Identyfikatory zewnętrzne, używane w procesie konsolidacji, to nazwy funkcji oraz zmiennych globalnych współdzielonych przez pliki źródłowe. Identyfikatory wewnętrzne nieużywane w procesie konsolidacji, np. nazwy zmiennych lokalnych. W C89 znaczących jest co najmniej 6 (C99 31) pierwszych znaków identyfikatora zewnętrznego i 31 (C99 63) pierwszych znaków identyfikatora wewnętrznego. W C++ znaczące są co najmniej 1024 początkowe znaki. Identyfikator nie może być identyczny ze słowem kluczowym języka C/C++, ani z nazwą funkcji bibliotecznej.

52 Identyfikatory 52 Umowne reguły pomagające zachować czytelność kodu nazwy zmiennych piszemy małymi literami: i, file nazwy stałych (zadeklarowanych przy pomocy #define) piszemy wielkimi literami: #define SIZE nazwy funkcji piszemy małymi literami: printf() wyrazy w nazwach oddzielamy znakiem podkreślenia: open_file, close_all_files

53 Zmienne 53 Zmienna to nazwa komórki w pamięci, używanej do przechowywania wartości, które program może modyfikować. Charakterystyka zmiennej: typ listazmiennych; typ określa jakiego rodzaju wartości dana zmienna może przechowywać. nazwa identyfikator. wartość modyfikowalna informacja określonego typu. Zmienna musi być zadeklarowana przed użyciem. W języku C nazwa zmiennej nie ma nic wspólnego z jej typem.

54 Zmienne 54 Ogólna postać deklaracji: typ listazmiennych; int i, j, k; double x; double x_1; float xyz; short int sil; static signed char zmc; void abc;

55 Zmienne 55 Deklaracje zmiennych umieszcza się w jednym z trzech podstawowych miejsc: wewnątrz funkcji zmienne lokalne, w definicji parametrów funkcji parametry formalne, poza wszelkimi funkcjami zmienne globalne. Zmienne lokalne czasami określane jako zmienne automatyczne. Słowo kluczowe auto deklaruje zmienne jako automatyczne praktycznie nie jest używane ponieważ wszystkie nieglobalne zmienne są domyślenie automatyczne.

56 Zmienne lokalne 56 Ze zmiennych lokalnych mogą korzystać tylko instrukcje znajdujące się w tym samym bloku{}, w którym znajduje się deklaracja zmiennej. Zmienne lokalne istnieją tylko w czasie wykonywania bloku kodu, w którym zostały zadeklarowane. Zmienna lokalna tworzona jest po przekazaniu sterowania do jej bloku i niszczona, gdy sterowanie go opuszcza. Zmienne utworzone w jednym bloku nie mają wpływu na zmienne o tej samej nazwie zadeklarowane w innym bloku kodu.

57 57 Zmienne lokalne

58 58 Zmienne lokalne

59 59 Zmienne lokalne

60 Zmienne lokalne 60 W C89 należy deklarować zmienne lokalne na początku bloku, w którym są definiowane, przed wszelkimi innymi instrukcjami.

61 Zmienne lokalne 61 Przy wywoływaniu funkcji powstają jej zmienne lokalne, a gdy funkcja kończy działanie, zmienne lokalne przestają istnieć. Zmienne lokalne nie zachowują swoich wartości pomiędzy kolejnymi wywołaniami funkcji, o ile nie zostały zadeklarowane jako zmienne statyczne, przy pomocy modyfikatora static. Parametry formalne funkcji zachowują się jak zmienne lokalne. Zmienne lokalne przechowywane są na stosie.

62 Zmienne globalne 62 Zmienne globalne są widzialne w całym programie i można z nich korzystać, modyfikować ich wartości, w dowolnym miejscu programu. Zachowują swoją wartość przez cały czas działania programu. Zmienne globalne tworzy się, deklarując je poza wszelkimi funkcjami. Zmienne globalne przechowywane są w stałych miejscach pamięci, zarezerwowanych dla nich przez kompilator.

63 Zmienne globalne 63 Zmienne globalne przydają się w programach, w których wiele funkcji intensywnie korzysta z tych samych danych. Należy unikać stosowania niepotrzebnych zmiennych globalnych. Zmienne globalne zajmują pamięć przez cały czas działania programu, a nie tylko wtedy gdy są potrzebne.

64 Zasięgi widoczności 64 Standard języka C definiuje 4 zasięgi widzialności identyfikatora: zasięg pliku zaczyna się na początku i kończy na końcu pliku odnosi się tylko do identyfikatorów zadeklarowanych poza wszelkimi funkcjami. Zmienne o zasięgu pliku to zmienne globalne. zasięg bloku zaczyna się {, a kończy }. Zasięg bloku funkcji rozciąga się na listę parametrów w definicji funkcji. Zmienne w zasięgu bloku są zmiennymi lokalnymi.

65 Zasięgi widoczności 65 zasięg prototypu funkcji identyfikatory zadeklarowane w prototypie funkcji, widoczne wewnątrz prototypu funkcji zasięg funkcji zaczyna się {, a kończy }.Zasięg funkcji dotyczy jedynie etykiet. Etykieta służy jako obiekt docelowy instrukcji goto i musi znajdować się w tej samej funkcji co ta instrukcja

66 Kwalifikatory typu 66 Kwalifikator typu steruje sposobem dostępu do zmiennej i modyfikowania jej. Kwalifikator musi poprzedzać nazwę typu, którego dotyczy. W standardzie C89 zdefiniowane zostały dwa kwalifikatory typu, charakteryzujące stałość (const) oraz ulotność (volatile) zmiennej.

67 Kwalifikatory typu - const 67 Zmiennych typu const program nie może zmodyfikować. Zmiennym typu const można nadać wartość początkową. const int a = 10; Kwalifikator const może odnosić się również do wskaźnika, bądź też do wskazywanej przezeń wartości

68 Kwalifikatory typu - const 68 Kwalifikator const może odnosić się również do wskaźnika, bądź też do wskazywanej przezeń wartości const int *ptr; // ptr wskazuje na stałą wartość typu int int * const pts=&a; // pts jest stałym wskaźnikiem const int * const ptt; // ptt jest stałym wskaźnikiem na stałą wartość

69 Kwalifikatory typu - const 69 const int *ptr; // ptr wskazuje na stałą wartość typu int wartość zmiennej wskaźnikowej ptr może ulec zmianie. wartość zmiennej *ptr musi pozostać stała int * const pts=&a; // pts jest stałym wskaźnikiem wartość zmiennej wskaźnikowej pts jest stała. wartość zmiennej *pts może ulec zmianie. const int * const ptt; // ptt jest stałym wskaźnikiem na stałą wartość wartość zmiennej wskaźnikowej ptt jest stała. wartość zmiennej *ptt musi pozostać stała.

70 Kwalifikatory typu - const 70 Kwalifikator const jest często wykorzystywany do deklarowania wskaźników będących formalnymi parametram funkcji: void fun(const int * tab); Dane wskazywane przez parametr tab nie mogą ulec zmianie (przy użyciu zmiennej tab). Dobry sposób na ochronę danych przed przypadkową zmianą wartości. Kwalifikator const jest używany często w funkcjach z biblioteki standardowej C. char *strcat(char*, const char *);

71 Kwalifikatory typu - volatile 71 Modyfikator volatile informuje kompilator, że wartość zmiennej może się zmienić w sposób niezależny od programu. Wartość zmiennej modyfikowana jest bez jakiegokolwiek przypisania jej wartości w programie. Zwykle jest on wykorzystywany w odniesieniu do adresów sprzętowych lub danych współdzielonych z innymi, działającymi równolegle programami.

72 72 Kwalifikatory typu const i volatile Kwalifikatory const i volatile nie wykluczają się nawzajem. Zegar sprzętowy komputera nie powinien być modyfikowany przez program (const), ale równocześnie jest modyfikowany przez czynniki inne niż program (volatile). const volatile char * port = (const volatile char *) 0x30; port wskazuje na wartość, która nie może być zmieniana przez program (const), ale może być modyfikowana przez czynniki zewnętrzne (volatile).

73 Specyfikatory klasy pamięci 73 W języku C występują 4 modyfikatory określające klasę przechowywania: extern static register auto Modyfikatory informują kompilator jak przechowywać wartości. klasa_przechowywania typ nazwa_zmiennej; Standardy C89 oraz C99, ze względu na wygodę składniową, określają, że typedef to specyfikator klasy. W powszechnym rozumieniu tego pojęcia typedef nie jest specyfikatorem klasy

74 Specyfikatory klasy pamięci 74 Z punktu widzenia procesu konsolidacji istnieją 3 kategorie nazw : zewnętrzne nazwy funkcji i zmiennych globalnych dostępne dla wszystkich plików, z których składa się program, wewnętrzne obiekty o zasięgu pliku zdeklarowane jako static znane jedynie w pliku, w którym znajduje się ich deklaracja żadne zmienne lokalne znane jedynie we własnym bloku.

75 Deklaracja a definicja 75 Deklaracja deklaruje nazwę i typ obiektu. Definicja przydziela miejsce w pamięci obiektowi. Ten sam obiekt może mieć kilka deklaracji i tylko jedną definicję. Często deklaracje są jednocześnie definicjami.

76 Specyfikator extern 76 extern używamy aby zadeklarować zmienną zdefiniowaną w innej części programu, np. w innym pliku, w dalszej części programu

77 Specyfikator extern 77 Modyfikator extern informuje kompilator, że zmienne o podanych typach i nazwach mają swoje definicje gdzie indziej i nie trzeba dla nich tworzyć miejsca w pamięci. Podczas konsolidacji linker rozwiązuje odwołania do zmiennych typu extern.

78 Specyfikator static 78 Zmienne statyczne (static) to trwałe zmienne znajdujące się wewnątrz pliku bądź funkcji. Wartości zmiennych statycznych nie znikają pomiędzy wywołaniami funkcji. Modyfikator static ma różny wpływ na zmienne lokalne i globalne.

79 Specyfikator static 79 Statyczne zmienne lokalne. Gdy zmiennej lokalnej zostanie przypisany modyfikator static to kompilator utworzy dla niej stałe miejsce w pamięci, analogicznie jak dla zmiennej globalnej. Lokalna zmienna statyczna widoczna jest tylko w tym bloku gdzie została zdefiniowana. Lokalna zmienna statyczna to zmienna lokalna, która zachowuje swoją wartość pomiędzy wywołaniami funkcji.

80 80 Specyfikator static

81 Specyfikator static 81 Statyczne zmienne globalne. Przypisanie zmiennej globalnej modyfikatora static informuje kompilator, że należy utworzyć zmienną globalną znaną jedynie w pliku, w którym znajduje się jej deklaracja. Procedury z innych plików nie będą miały do niej dostępu.

82 82 Specyfikator static

83 83 Specyfikator static

84 Specyfikator register 84 Modyfikator register początkowo odnosił się jedynie do zmiennych typu int, char oraz do wskaźników. Obecnie można go stosować do zmiennych dowolnego typu. Stosuje się go do zmiennych lokalnych i parametrów formalnych. Standardy C89 i C99 określają, że zmienna rejestrowa ma zapewnić najszybszy możliwy dostęp do jej wartości. W praktyce zmienne typu int oraz char są umieszczane w rejestrach procesora.

85 Specyfikator register 85 Zmienne rejestrowe są optymalizowane pod kątem szybkości działania i stosowane są tam gdzie ma miejsce wiele odwołań do tej samej zmiennej, np. pętle. W pojedynczym bloku dopuszczalna liczba zmiennych rejestrowych optymalizowanych pod kątem szybkości działania wynika z cech środowiska, jak i szczegółów implementacji języka C.

86 Inicjowanie zmiennych 86 Deklarując zmienną można nadać jej wartość początkową w następujący sposób: typ nazwa_zmiennej = wartość; char ch = 'a'; char znak_jeden = '1'; int zm = 12; float flo = 12e-7; Zmienne globalne oraz zmienne statyczne inicjujemy tylko raz w momencie deklaracji. Niestatyczne zmienne lokalne inicjowane są za każdym razem, gdy sterowanie przechodzi do bloku, w którym znajduje się ich deklaracja.

87 Inicjowanie zmiennych 87 Niezainicjowane zmienne lokalne mają nieokreśloną wartość. Niezainicjowane zmienne statyczne mają zerową wartość. Niezainicjowane zmienne globalne mają zerową wartość.

88 Stałe 88 Stałe to ustalone wartości, których program nie może zmienić; Mogą należeć do jednego z podstawowych typów. Sposób reprezentacji stałej zależy od jej typu. Stałe nazywane też są wartościami natychmiastowymi lub literałami Stałe znakowe: 'a', '%'. Stałe całkowite: 123, 3242 Stałe zmiennoprzecinkowe: , e11.

89 Stałe 89 int 1, 123, -123 long int 35000L, -34L unsigned int 10000U, 987u float F, 4.34e2f double , long double L

90 Stałe 90 W C można używać liczb zapisanych w systemach ósemkowym lub szesnastkowym. int hex = 0x80 //8016 = int oct = 012 //128 = 1010 Stała tekstowa to zbiór znaków otoczonych znakami cudzysłowu '' zbiór znaków i cyfra 2 otoczonych '' Uwaga: a zmienna, 'a' znak, '' a '' stała tekstowa, tablica znaków zakończona znakiem końca łańcucha

91 Stałe 91 Sekwencje specjalne to znaki sterujące, których nie można wpisywać bezpośrednio z klawiatury \b - backspace \f - nowa strona \n - nowy wiersz \r - powrót karetki \t - poziomy tabulator \" - znak cudzysłowu \ - apostrof \\ - lewy ukośnik \v - pionowy tabulator \a - dzwonek \? - znak zapytania \N - stała ósemkowa (N oznacza stała zapisana ósemkowo) \xn - stała szesnastkowa

Zmienne, stałe i operatory

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

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

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11 Typy danych Przemysław Gawroński D-10, p. 234 Wykład 1 25 lutego 2019 (Wykład 1) Typy danych 25 lutego 2019 1 / 11 Outline 1 Literatura 2 Programowanie proceduralne 3 Podstawowe typy danych (Wykład 1)

Bardziej szczegółowo

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne język C - wprowadzenie Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość

Bardziej szczegółowo

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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,

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

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

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

Języki i metody programowania. Omówienie języków C, C++ i Java

Języki i metody programowania. Omówienie języków C, C++ i Java Języki i metody programowania Omówienie języków C, C++ i Java Język C Język programowania ogólnego przeznaczenia Historia: M. Richards - BCPL - lata 60-te ubiegłego stulecia K. Thompson - B dla UNIX (DEC

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

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

Wstęp do programowania

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

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

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

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

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

Bardziej szczegółowo

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

WYKŁAD 1 - KONSPEKT. Program wykładu:

WYKŁAD 1 - KONSPEKT. Program wykładu: mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Wstęp do programowania 1

Wstęp do programowania 1 Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short

Bardziej szczegółowo

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 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

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

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 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

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

Bardziej szczegółowo

Podstawy programowania w języku C

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

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

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

Bardziej szczegółowo

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

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

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 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

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

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 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ć

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

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

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

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład I I Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Zaliczenie przedmiotu Na laboratorium można zdobyć 100 punktów. Do zaliczenia niezbędne jest

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM

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

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia Struktura programu W programach napisanych w C++ litery wielkie i małe są rozróżniane i często po nauce Pascala są przyczyną błędów. Program napisany w języku C++ składa się zazw yczaj z następujących

Bardziej szczegółowo

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia Krzysztof Banaś Podstawy programowania 1 Programowanie Programowanie typowe kroki zapis kodu źródłowego w pliku tekstowym kompilacja usuwanie

Bardziej szczegółowo

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1 Język ANSI C Pierwsze starcie. Programowanie Proceduralne 1 Znowu trochę historii 1972 Dennis Ritchie (Bell Labs.,New Jersey), projekt języka C na bazie języka B 1973 UNIX, jądro w C, pierwszy przenośny

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard

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

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 3 Konstrukcje sterujące Krzysztof Banaś Podstawy programowania 1 Kod źródłowy i wykonanie programu Kod źródłowy w języku programowania zawiera przepis wykonania programu

Bardziej szczegółowo

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

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

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

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

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

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 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

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa Język C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

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

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 5 6 7 Charakter wykładu ˆ zakłada znajomość idei programowania strukturalnego (np. w Pascalu) oraz podstaw używania środowiska UNIX (wykonywanie

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

Inżynieria Wytwarzania Systemów Wbudowanych

Inżynieria Wytwarzania Systemów Wbudowanych GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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 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.

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

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

Bardziej szczegółowo

Języki programowania - podstawy

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

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

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

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* 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

Bardziej szczegółowo

Część 4 życie programu

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ęść

Bardziej szczegółowo

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo