Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot

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

Download "Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot"

Transkrypt

1 Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C mgr inż. Arkadiusz Chrobot 21 października 2010

2 1 Wprowadzenie Pisząc programy w języku C, szczególnie te duże, nie musimy umieszczać całości kodu źródłowego w jednym pliku. Podobnie jak w innych językach programowania możemy podzielić go na niezależne części, które mogą być kompilowane osobno i w razie konieczności włączane do innych programów. Takie pliki nazywamy bibliotekami. W języku C z bibliotekami związanie są pliki nagłówkowe, które ułatwiają korzystanie z nich. Ta instrukcja wyjaśnia w jaki sposób stworzyć własną bibliotekę statyczną lub dynamiczną i jak jej użyć w innym programie. 2 Definicje i deklaracje zmiennych oraz funkcji Aby móc użyć w programie zmiennej zdefiniowanej w innym pliku musimy posłużyć się jej deklaracją. Deklaracja zmiennej informuje kompilator, że zmienna o podanej nazwie i typie została już wcześniej w kodzie zdefiniowana. Definicja zmiennej informuje kompilator, że w miejscu jej umieszczenia trzeba przydzielić pamięć na tę zmienną i ją zainicjalizować. Każdy z plików z kodem źródłowym może zawierać osobną deklarację jednej i tej samej zmiennej nawet ten, który zawiera jej definicję (przydaje się, jeśli chcemy użyć zmiennej przed jej zdefiniowaniem). Definicja zmiennej może występować tylko w jednym pliku. Aby zadeklarować zmienną należy przed jej typem i nazwą umieścić słowo kluczowe extern. Definicja polega na podaniu typu i nazwy zmiennej. Jeśli w żadnym z plików nie zadeklarujemy zmiennej, to jej definicja stanie się równocześnie jej deklaracją. Dotychczas w programach używaliśmy właśnie takiej łącznej deklaracji i definicji. Odwrotna sytuacja, czyli podanie deklaracji zmiennej bez definicji powoduje błąd czasu kompilacji. Poniżej znajduje się przykładowy kod źródłowy, który został podzielony na dwa pliki. i n t foo ; external.c #include <s t d i o. h> prog1.c extern i n t foo ; i n t main ( void ) p r i n t f ( %d\n, foo ) ; r eturn 0 ; Czytając kod można zauważyć, że w pliku o nazwie prog1.c została użyta zmienna foo, która jest w tym pliku jest jedynie zadeklarowana. Jej definicja znajduje się w pliku external.c. Wartość początkowa tej zmiennej wynosi 0, bo jest to zmienna globalna. Jeśli chcielibyśmy w pliku external.c umieścić dodatkową zmienną, widoczną tylko w tym pliku to przed jej definicją powinniśmy umieścić słowo kluczowe static. Podobnie jak ze zmiennymi możemy postąpić z funkcjami. Aby użyć funkcji zdefiniowanej w innym pliku wystarczy umieścić jej nagłówek przed miejscem jej 1

3 wywołania, poprzedzając go słowem kluczowym extern. W nagłówku tym można pominąć nazwy argumentów, zostawiając wyłącznie typy. Oto przykład: #include <s t d i o. h> external2.c void p r i n t ( i n t v a r i a b l e ) p r i n t f ( %d\n, v a r i a b l e ) ; extern i n t foo ; extern void p r i n t ( i n t ) ; prog2.c i n t main ( void ) p r i n t ( foo ) ; r eturn 0 ; Program zapisany w pliku prog2.c korzysta również ze zmiennej foo z pliku external.c Proszę zwrócić uwagę, że tylko w pliku external2.c konieczne było włączenie pliku nagłówkowego stdio.h. Kompilacja tak napisanych programów składa się z kilku etapów. Najpierw musimy skompilować pliki, w których zdefinowane są funkcje i/lub zmienne. Tą kompilację należy wykonać tak jak pokazuje przykład 1. Opcja -c powoduje, że kompilator gcc -Wall -c library.c Przykład 1 utworzy plik obiektowy 1, o takiej samej nazwie jak plik z kodem źródłowym, ale o rozszerzeniu.o, który będzie można połączyć (ang. link) z innym plikiem. Po wykonaniu kompilacji wszystkich bibliotek możemy przystąpić do skompilowania programu głównego. Kompilację tą wykonuje się podobnie jak w kolejnym zamieszczonym przykładzie 2. Przykład 2 gcc -Wall -o program program.c library.o library2.o 3 Pliki nagłówkowe Dzięki plikom nagłówkowym możemy zebrać w jednym miejscu deklaracje wszystkich zmiennych i funkcji, których definicję są rozproszone po wielu plikach. Włącza- 1 Ta nazwa nie ma nic wspólnego z programowaniem zorientowanym obiektowo. 2

4 jąc odpowiednio przygotowany plik nagłówkowy do innych plików z kodem źródłowym unikamy konieczności wielokrotnego przepisywania deklaracji wspomnianych elementów programu. Spróbujmy zastosować plik nagłówkowy w ostatnim przykładowym programie z poprzedniego rozdziału. #i f n d e f HEADER H #d e f i n e HEADER H header.h extern i n t foo ; extern void p r i n t ( i n t ) ; #e n d i f #i n c l u d e header. h i n t foo ; external.c #include <s t d i o. h> #i n c l u d e header. h external2.c void p r i n t ( i n t v a r i a b l e ) p r i n t f ( %d\n, v a r i a b l e ) ; #i n c l u d e header. h prog2.c i n t main ( void ) p r i n t ( foo ) ; r eturn 0 ; Jak widać na załączonych listingach deklaracje zmiennej foo oraz funkcji print zostały umieszczone w pliku nagłówkowym. Można również zauważyć, że te deklaracje otoczone są instrukcjami poprzedzonymi znakiem #. Są to instrukcje preprocesora, które zapobiegają wielokrotnemu włączeniu wspomnianych deklaracji w wypadku gdybyśmy mieli do czynienia z kilkoma plikami nagłówkowymi, które wzajemnie się włączają. Zasada działania tego tych instrukcji zwanych wartownikami pliku nagłówkowego zostanie wyjaśniona w następnej instrukcji. Zaważmy, że stworzony przez nas plik nagłówkowy został włączony do wszystkich plików z rozszerzeniem.c za pomocą instrukcji include, ale nazwa tego pliku nie jest ujęta w nawiasy trójkątne, tylko w cudzysłów. Informuje to kompilator, że powinien poszukać naszego pliku nagłówkowego w katalogu bieżącym. Moglibyśmy umieścić 3

5 nazwę naszego pliku w nawiasach trójkątnych, ale wówczas musielibyśmy dołączyć katalog z naszym plikiem nagłówkowym do listy katalogów, które będą przeszukiwane przez kompilator (opcja -I ). Włączenie pliku nagłówkowego do pliku z kodem źródłowym, gdzie definiowana jest zmienna lub funkcja w opisywanym przykładzie jest opcjonalne, ale pozwala kompilatorowi na etapie kompilacji sprawdzić, czy nie ma rozbieżności między definicją i deklaracją funkcji i zmiennej. W sytuacji gdy plik nagłówkowy zawiera definicje typów lub makr preprocesora takie włączenie jest konieczne. Reasumując - zawsze opłaca się włączyć plik nagłówkowy do wszystkich plików źródłowych z nim związanych. W pliku nagłówkowym powinniśmy unikać umieszczania definicji zmiennych i funkcji, poprzestając tylko na deklaracjach. Słowo kluczowe extern przed nagłówkiem funkcji jest opcjonalne. 4 Program make Kiedy mamy kod źródłowy programu podzielony na kilka plików (jednostek kompilacji) konieczne staje się kilkukrotne wywołanie kompilatora z linii poleceń. Taka metoda kompilacji jest w przypadku dużych projektów zbyt czasochłonna. Rozwiązaniem tego problemu jest użycie narzędzia do kompilacji rozłącznej, jakim jest program make. Wielokrotna kompilacja przy pomocy tego programu sprawdza się wyłącznie do wypisania jego nazwy w linii poleceń i naciśnięcia klawisza Enter. Zanim jednak tak się stanie należy przygotować specjalny plik o nazwie Makefile, który będzie zawierał odpowiednie reguły dla takiej kompilacji. Oto plik Makefile dla przykładu, który był omawiany w poprzednim rozdziale. CC = gcc OFLAGS = Wall o CFLAGS = Wall c Makefile prog2 : prog2. c e x t e r n a l 2. o e x t e r n a l. o $ (CC) $ (OFLAGS) prog2 prog2. c e x t e r n a l. o e x t e r n a l 2. o e x t e r n a l 2. o : e x t e r n a l 2. c $ (CC) $ (CFLAGS) e x t e r n a l 2. c e x t e r n a l. o : e x t e r n a l. c $ (CC) $ (CFLAGS) e x t e r n a l. c c l e a n : rm f rm f rm f. o. a c l e a n a l l : c l e a n rm f prog2 Na początku tego pliku znajdują się deklaracje zmiennych, które posłużą do zdefiniowania odpowiednich reguł. Zmiene te definowane są poprzez podanie ich nazwy i nadanie im wartości za pomocą operatora =. W powyższym przykładzie tymi 4

6 wartościami są nazwa kompilatora oraz flagi kompilacji. Pierwsza reguła która zostanie zdefiniowana w pliku Makefile jest wykonywana domyślnie. W przykładowym pliku ta reguła nazywa się prog2 i powoduje skompilowanie pliku zawierającego funkcję main. Regułę definiuje się podając jej nazwę, która może (lecz nie musi) być taka sama jak nazwa pliku powstającego w wyniku wykonania tej reguły. Po nazwie stawiamy dwukropek. Po nim należy podać nazwy reguł, które muszą być wykonane przed definiowaną regułą. Opcjonalnie można również podać nazwy plików z kodem źródłowym niezbędnym do wykonania reguły. Działania wykonywane w ramach reguły definiowne są w następnych wierszach. W omawianym przykładzie jest to po prostu takie samo wywołanie kompilatora jakie do tej pory ręcznie wpisywaliśmy w powłoce systemowej. Jedyna różnica polega na zastąpieniu nazwy kompilatora i flag wartościami odpowiednich zmiennych. Wartości te uzyskujemy umieszczając nazwę zmiennej w nawiasach okrągłych, a przed całością stawiając znak dolara. Definicję poszczególnych reguł oddzielamy pustym wierszem. Po zdefiniowaniu pliku Makefile w katalogu z kodem źródłowym programu wystarczy wydać w powłoce systemowej polecenie make żeby wykonać kompilację programu. Tak jak napisano to wcześniej zostanie wykonana reguła prog2 oraz wszystkie inne od których ona zależy. Nie zostaną wykonane natomiast reguły clean i cleanall. Pierwsza z tych reguł jest odpowiedzialna za usunięcie zbędnych plików powstałych podczas kompilacji i edycji plików, a ostania za usunięcie wszystkich plików powstałych podczas kompilacji. Aby je wykonać należy w powłoce systemowej po słowie make wpisać nazwę reguły, która ma być wykonana. Tak możemy postąpić z dowolną regułą zdefiniowaną w pliku Makefile. Możemy również stworzyć regułę, która będzie kompilowała więcej niż jeden program. Wystarczy dla każdego z tych programów stworzyć osobną regułę kompilacji, a następnie jako pierwszą w pliku umieścić regułę która na liście zależności będzie miała wymienione te reguły. Reguła ta może być pusta, tzn. po pierwszym wierszu będą dwa wiersze puste. Program make porównuje czasy powstania plików wynikowych z czasami modyfikacji plików źródłowych. Jeśli plik wynikowy jest starszy od źródłowego, to nie wykonuje związanej z nim reguły kompilacji. Jeśli jest odwrotnie lub jeśli plik wynikowy nie istnieje to reguła jest wykonywana. Jeśli z jakiś powodów nie możemy użyć nazwy Makefile to możemy użyć nazwy makefile lub dowolnej innej. W tym ostatnim przypadku należy programowi make wskazać nazwę pliku z regułami, dodając do jego wywołania przełącznik -f i podając nazwę tego pliku. Program make jest dosyć dobrze zintegrowany z edytorem Vim. Możemy wywołać program make z poziomu tego edytora. Wystarczy w trybie poleceń wydać polecenie :cmake. Jeśli podczas kompilacji pojawią się błędy to możemy przestawiać kursor do wiersza w którym występują za pomocą poleceń :cnext i :cprev. Programu make możemy używać również dla programów napisanych w innych językach programowania. 5 Kompresja bibliotek statycznych Biblioteki statyczne są w całości włączane do kodu wynikowego kompilowanych z nimi programów, zwiększając tym samym objętość plików wynikowych. Istnieją również biblioteki dynamiczne, które nie mają tej wady. Proces ich tworzenia jest opisany w następnym rozdziale. Biblioteki statyczne można archiwizować programem ar. Pliki z rozszerzeniem.o są pakowane do plików z rozszerzeniem.a i zastępują je podczas kompilacji. Oto przykład użycia programu ar : ar rs archiwum.a external.o external2.o. Program używające skompresowanych bi- 5

7 bliotek można skompilować na dwa sposoby. Prostszy polega na umieszczeniu nazwy archiwum w wywołaniu kompilatora (przykład 3). Bardziej skomplikowany Przykład 3 gcc -Wall -o program program.c archiwum.a sposób wymaga odpowiedniej nazwy archiwum. Nie może być ona dowolna, musi rozpoczynać się przedrostkiem lib. W przypadku naszego przykładowego archiwum zamiast nazwy archiwum.a w wywołaniu programu ar należałoby więc umieścić nazwę libarchiwum.a. Taką bibliotekę możemy włączyć do programu za pomocą wywołania kompilatora przedstawionego w przykładzie 4: Uwaga: po opcjach -l, ani Przykład 4 gcc -Wall -o program program.c -L. -larchiwum -L nie występuje spacja! Opcja -l nakazuje włączenie konsolidatorowi do programu wynikowego bibliotek z archiwum o podanej nazwie. Konsolidator (ang. linker) jest programem, który odpowiedzialny jest za łączenie plików obiektowych i tworzenie pliku wynikowego. Jest uruchamiany automatycznie podczas kompilacji, ale może być wywołany również osobno. W polskiej literaturze często używa się jego angielskiej nazwy. Jeśli archiwum znajduje się w domyślnym katalogu lub katalogach, które przeszukuje kompilator podczas pracy, to wystarczy użyć tylko opcji -l. W przeciwnym przypadku należy określić także, który katalog dodatkowo kompilator powinien przeszukać, używając opcji -L. W przykładzie, po opcji -L występuje kropka oznaczająca katalog bieżący. Drugi sposób kompilacji z zarchiwizowanymi bibliotekami jest wygodniejszy, jeśli mamy do czynienia z wieloma bibliotekami, które nie znajdują się w bieżącym katalogu. 6 Biblioteki dynamiczne Biblioteki dynamiczne nazywane są w środowiskach uniksowych bibliotekami współdzielonymi lub obiektami współdzielonymi i zapisywane są w plikach wykonywalnych posiadających rozszerzenie.so. Aby stworzyć taką bibliotekę należy najpierw skompilować pliki obiektowe wchodzące w skład tej biblioteki z opcją -fpic (przykład 5). W wyniku kompilacji powstają pliki obiektowe (z rozszerzeniem.o ), gcc -Wall -c -fpic external.c Przykład 5 które możemy połączyć w jedną bibliotekę odpowiednim wywołaniem kompilatora (przykład 6). Tak powstałą bibliotekę można włączyć do programu na trzy sposoby. Przykład 6 gcc -Wall -shared -fpic -o libexternal.so external.o external2.o Pierwszy polega na wskazaniu konsolidatorowi, w czasie jego pracy, gdzie znajduje 6

8 wymagana biblioteka. Możemy to uczynić za pomocą opcji -Wl,-rpath,katalog kompilatora gcc, gdzie katalog oznacza ścieżkę do katalogu z plikiem biblioteki współdzielonej (przykład 7). Drugi sposób polega na zdefiniowaniu zmiennej środowi- Przykład 7 gcc -Wall -o prog2 prog2.c -L. -lexternal -Wl,-rpath,. skowej LD LIBRARY PATH lub na zmianie jej wartości, tak aby uwzględniała katalog, w którym znajduje się biblioteka współdzielona. Przykład 8 pokazuje jak to zrobić używając powłoki Bash. Jeśli odpowiednio ustawimy wartość tej zmiennej, to Przykład 8 export LD LIBRARY PATH=$LD LIBRARY PATH:. w wywołaniu kompilatora z przykładu 7 możemy pominąć opcję -Wl,-rpath. Trzeci sposób polega na dodaniu odpowiedniego wpisu w pliku /etc/ld.so.conf i uruchomieniu programu ldconfig, ale ta metoda wymaga posiadania specjalnych uprawnień, więc nie każdy użytkownik może z niej skorzystać. Jeśli chcemy dowiedzieć się z jakich bibliotek współdzielonych korzysta program, to możemy użyć programu ldd, który może być wywołany na przykład tak: ldd program. Zaletą bibliotek współdzielonych jest to, że są ładowane do pamięci dopiero wtedy, gdy odwoła się do nich choć jeden proces oraz to, że z jednego egzemplarza biblioteki znajdującego się w RAM komputera może korzystać wiele procesów równocześnie. Biblioteki współdzielone są również dostępne w systemach rodziny Windows, ale pod inną postacią. 7 Dynamiczne ładowanie bibliotek współdzielonych Biblioteki dynamiczne nie muszą być łączone z programem podczas kompilacji. Program może sam je załadować podczas wykonania. Takie rozwiązanie umożliwia tworzenie wtyczek (ang. plug-ins). Funkcje, które są niezbędne do skorzystania z tej możliwości nazywają się dlopen(), dlsym(), dlerror() i dlclose() i wymagają włączenia do kodu źródłowego programu pliku nagłółkowego dlfcn.h. Poniżej znajduje się przykład programu, który korzysta z tej możliwości. #include <d l f c n. h> #i n c l u d e header. h prog3.c i n t main ( void ) void handle = dlopen ( l i b e x t e r n a l. so,rtld LAZY) ; void ( p r i n t ) ( i n t ) = dlsym ( handle, p r i n t ) ; i n t foo = dlsym ( handle, foo ) ; ( p r i n t ) ( foo ) ; d l c l o s e ( handle ) ; r eturn 0 ; 7

9 Funkcja dlopen() ładuje bibliotekę o podanej przez argument nazwie do pamięci i zwraca wskaźnik na nią. Funkcja dlsym() zwraca wskaźnik adres symbolu z biblioteki, którego nazwę jej przekazujemy. Jeśli tym symbolem jest funkcja, to zwrócony adres należy zapisać we wskaźniku na funkcję i za jego pomocą tę funkcję wywoływać. Funkcja dlclose() usuwa z pamięci załadowaną bibliotekę. Bezpośrednio po każdym z wywołań tych funkcji należy (czego nie uczyniono w przykładzie) wywołać funkcję dlerror(). Jeśli wystąpi wyjątek podczas wykonywania wcześniej opisanych funkcji, to dlerror() zwróci jego opis, jesli nie, to natychmiast zakończy swoje działanie. Programy używające wyżej wymienionych funkcji należy kompilować z flagą -ldl. 8

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików. Spis treści 1 Krótkie wprowadzenie do makefile'a 1.1 Typowa reguła programu make 1.2 Zmienne w pliku Makefile 1.3 Zmienne standardowe 1.4 Zmienne automatyczne 1.5 Więcej o regułach 1.5.1 Reguły z wzorcem

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów mgr inż. Arkadiusz Chrobot 10 listopada 2010 1 Preprocesor Preprocesor jest programem uruchamianym przed właściwym procesem kompilacji

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest

Bardziej szczegółowo

Fragment wykładu z języka C ( )

Fragment wykładu z języka C ( ) Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Utworzenie pliku. Dowiesz się:

Utworzenie pliku. Dowiesz się: Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Automatyzacja kompilacji. Automatyzacja kompilacji 1/28

Automatyzacja kompilacji. Automatyzacja kompilacji 1/28 Automatyzacja kompilacji Automatyzacja kompilacji 1/28 Automatyzacja kompilacji 2/28 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c

Bardziej szczegółowo

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

Wprowadzenie do biblioteki klas C++ Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski

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

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

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

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

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Programy użytkowe (utilities)

Programy użytkowe (utilities) nm wypisuje symbole w plikach wykonywalnych, plikach wynikowych (*.o) lub ich kolekcjach (bibliotekach, *.a). Składnia: nm plik. Plik wynikowy, z którego pochodzi symbol. Wartość symbolu. Typ symbolu (najczęściej

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Programowanie w C++ Wykład 10 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Makefiles K.Grzelak (Wykład 10) Programowanie w C++ 2 / 21 Kompilacja programu zapisanego w

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.32 Nr ćwiczenia: 5 Temat: Cel ćwiczenia: Wymagane przygotowanie teoretyczne:

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

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

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

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

Programowanie niskopoziomowe

Programowanie niskopoziomowe W. Complak, J.Kniat, M. Antczak, K. Kwarciak, G. Palik, A. Rybarczyk, Ł. Wielebski Materiały Programowanie niskopoziomowe http://www.cs.put.poznan.pl/arybarczyk/c_w_0.pdf Spis treści 1. Instalacja środowiska

Bardziej szczegółowo

WPROWADZENIE DO INFORMATYKI

WPROWADZENIE DO INFORMATYKI J.NAWROCKI, M. ANTCZAK, H. ĆWIEK, W. FROHMBERG, A. HOFFA, M. KIERZYNKA, S. WĄSIK WPROWADZENIE DO INFORMATYKI PROGRAMOWANIE IMPERATYWNE ŚRODOWISKO URUCHOMIENIOWE I. INSTALACJA I KONFIGURACJA ECLIPSE CDT

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Automatyzacja kompilacji. Automatyzacja kompilacji 1/40

Automatyzacja kompilacji. Automatyzacja kompilacji 1/40 Automatyzacja kompilacji Automatyzacja kompilacji 1/40 Automatyzacja kompilacji 2/40 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c

Bardziej szczegółowo

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word) Dostosowywanie paska zadań Ćwiczenia nr 2 Edycja tekstu (Microsoft Word) Domyślnie program Word proponuje paski narzędzi Standardowy oraz Formatowanie z zestawem opcji widocznym poniżej: Można jednak zmodyfikować

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl 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

Bardziej szczegółowo

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc. Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Kompilacja i scalanie programów w linii poleceń gcc i make

Kompilacja i scalanie programów w linii poleceń gcc i make Kompilacja i scalanie programów w linii poleceń gcc i make Małgorzata Stankiewicz kwiecień 2012 Małgorzata Stankiewicz () gcc i make kwiecień 2012 1 / 26 GCC - GNU Compiler Collection GCC Zestaw kompilatorów

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Programowanie w systemie Linux. Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska

Programowanie w systemie Linux. Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska Programowanie w systemie Linux Jacek Lach Zakład Oprogramowania Instytut Informatyki Politechnika Śląska Plan Biblioteki Narzędzia pomocnicze Biblioteki statyczne Biblioteki dynamiczne Interfejs dynamicznego

Bardziej szczegółowo

Konsolidacja (linking)

Konsolidacja (linking) Konsolidacja (linking) 1 Ostatni etap budowania programu PRE- PROCESSING KOMPILACJA ASEMBLACJA LINKING Łączenie osobnych fragmentów kodu maszynowego w plik wykonywalny Wykonywana przez linker ld w systemie

Bardziej szczegółowo

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch INFORMATOR TECHNICZNY WONDERWARE Informator Techniczny nr 60 04-12-2002 Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch Wstęp PoniŜsza dokumentacja oparta na przykładach stworzonych

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

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

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

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

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

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

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

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

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

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Wstęp W tej instrukcji zawarte są procedury dotyczące użytkowania VirtualBox-a i SQLPLUS-a w zakresie: 1. Virtual Box a. podłączanie zewnętrznych współdzielonych

Bardziej szczegółowo

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++   w odpowiednim systemie operacyjnym Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy

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

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Laboratorium 0: System Linux, edytor vim i kompilator gcc. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 0: System Linux, edytor vim i kompilator gcc. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 0: System Linux, edytor vim i kompilator gcc dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 24 lutego 2015 1. Wprowadzenie W tej instrukcji został zawarty opis środowiska, które będzie

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Systemy operacyjne II Laboratorium. Część 1: Pliki wsadowe Windows

Systemy operacyjne II Laboratorium. Część 1: Pliki wsadowe Windows Uniwersytet Rzeszowski Katedra Informatyki Opracował: mgr inż. Przemysław Pardel v1.02 2010 Systemy operacyjne II Laboratorium Część 1: Pliki wsadowe Windows Zagadnienia do zrealizowania (3h) Budowa pliku

Bardziej szczegółowo

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

Materiały wprowadzające. dr inż. Arkadiusz Chrobot Materiały wprowadzające dr inż. Arkadiusz Chrobot 26 lutego 2017 Spis treści Wprowadzenie 1 1. ssh 1 2. scp 1 3. Linux Cross Reference 2 Wprowadzenie W tych materiałach wstępnych zawarte są krótkie opisy

Bardziej szczegółowo

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium: Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.

Bardziej szczegółowo

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; } #include using namespace std; Prototypy funkcji Funkcja 1 void ela(int); double info (double); int main( ); return 0; Funkcja 2 void ela(int); Funkcja 3 double info(double); return 4*t; jeszcze

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

Podstawy Programowania.

Podstawy Programowania. Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki

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

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń: W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program ". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy. *Jest taka tradycja,

Bardziej szczegółowo

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Zakład Systemów Rozproszonych

Zakład Systemów Rozproszonych Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 5: Wybrane programy użytkowe Edytor Vi Edytor Vi uruchamiany jest w oknie terminala. Przy jego pomocy możemy dokonywać następujących operacji:

Bardziej szczegółowo

Technologie Informacyjne - Linux 2

Technologie Informacyjne - Linux 2 Technologie Informacyjne - 2 Instytut Matematyki Uniwersytet Gdański Powłoka - polecenia pośredniczace Polecenie grep wypisuje z pliku lub strumienia wejściowego te wiersze, które sa zgodne z podanym wyrażeniem.

Bardziej szczegółowo

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja Część VIII C++ Przedrostkowa i przyrostkowa inkrementacja i dekrementacja W poprzednim ćwiczeniu operatory inkrementacji i dekrementacji występowały w wersji przyrostkowej. Istnieje inny sposób zapisu

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 4 Wzorce

Języki i techniki programowania Ćwiczenia 4 Wzorce Języki i techniki programowania Ćwiczenia 4 Wzorce Wzorce to metoda generacji różnych klas lub różnych funkcji. Autor: Marcin Orchel Przykład 1: Jeśli dana klasa C wykonuje obliczenia numeryczne, i wymaganiem

Bardziej szczegółowo

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2) Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1) W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

. Podstawy Programowania 2. Dwukierunkowa lista liniowa. Arkadiusz Chrobot. 7 kwietnia 2019

. Podstawy Programowania 2. Dwukierunkowa lista liniowa. Arkadiusz Chrobot. 7 kwietnia 2019 .. Podstawy Programowania 2 Dwukierunkowa lista liniowa Arkadiusz Chrobot Zakład Informatyki 7 kwietnia 2019 1 / 55 Plan.1 Wstęp.2 Typ bazowy i wskaźnik listy Tworzenie listy Dodawanie elementu do listy

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

Materiały wprowadzające. dr inż. Arkadiusz Chrobot Materiały wprowadzające dr inż. Arkadiusz Chrobot 25 lutego 2019 Spis treści Wprowadzenie 1 1. ssh 1 2. scp 2 3. Linux Cross Reference 2 Wprowadzenie W tych materiałach wstępnych zawarte są krótkie opisy

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera

Bardziej szczegółowo