wczesnej fazie rozwoju, zaimplementowano

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

Download "wczesnej fazie rozwoju, zaimplementowano"

Transkrypt

1 Tworzymy aplikacje okienkowe z PHP-Qt Thomas Moenicke Stopień trudności: Wraz z pojawieniem się PHP-GTK, PHP zawitał na desktopach jako prosty i wygodny język do tworzenia obiektowo zorientowanych aplikacji okienkowych. Pora się zmierzyć z Qt kolejnym standardem GUI, na którym opiera się m.in. KDE. Dzięki PHP-Qt jest to proste zadanie... W SIECI 1. strona domowa PHP-Qt 2. dokumentacja Qt 3. strona główna firmy Trolltech 4. products/qt/learnmore/ classchart klasa Qt 4.1 Choć PHP-Qt znajduje się we wczesnej fazie rozwoju, zaimplementowano w nim już najważniejsze technologie, co umożliwia tworzenie prostych aplikacji. Pokażemy później, jak pisać w PHP programy korzystające z Qt na przykładzie kalkulatora. Zacznijmy jednak od ogólnego omówienia Qt. Qt zawiera bibliotekę klas, a także narzędzia ułatwiające tworzenie aplikacji oraz internacjonalizację. W tej pierwszej znajduje się ponad 400 klas odpowiedzialnych za tworzenie graficznych interfejsów użytkownika (GUI, ang. Graphical User Interface), wygląd aplikacji okienkowych (layout), obsługę SQL-a, sieci, XML-a, internacjonalizację, współpracę z OpenGL i wiele innych. Qt4.1 i 4.2 zawierają również silnik obsługi PDF-ów, wsparcie dla tworzenia grafiki SVG, frameworki: Graphics-View oraz undo (cofanie operacji), arkusze stylów dla widgetów (kontrolek) czy wspar- cie dla standardu D-BUS pod Linuksem i Uniksem. Wspomniane wersje Qt umożliwiają również integrację aplikacji z konkurencyjnym wobec KDE środowiskiem GNOME. W najnowszej wersji PHP-Qt zostało zaimplementowanych 75 należących do Qt klas. Następne wydanie, nad którym trwają prace, ma zawierać prawie wszystkie spośród wspomnianych 400 klas. Biblioteka Qt ma rozwinięty, doj- Co powinieneś wiedzieć... Powinieneś znać podstawy programowania obiektowego. Przydatna będzie również znajomość ogólnych zasad tworzenia interfejsów graficznych (GUI) w Qt lub innych systemach widgetów (np. wxwidgets czy GTK). Co obiecujemy... Pokażemy, jak korzystając z PHP-Qt utworzyć w PHP aplikację korzystającą z Qt (kalkulator) i objaśnimy podstawowe zagadnienia związane z Qt. 2

2 PHP-Qt Dla początkujących rzały model obiektowy, a jej API jest eleganckie i przejrzyste, co ułatwia tworzenie aplikacji i czyni je przyjemniejszym. Firma Trolltech (twórca Qt) rozpowszechnia Qt4 na podwójnej licencji (komercyjnej lub GNU GPL) dla platform X11 (X-Window), MacOS X i MS Windows. Przejdźmy teraz do naszego kalkulatora (zob. Rysunek 1), na podstawie którego pokażemy, jak stosować główne koncepcje Qt, takie jak sygnały (ang. signals), sloty (ang. slots), dziedziczenie, definiowanie wyglądu (layout), łańcuchy, przeciążenie metod (overloading) oraz zmiana typów (ang. type casting). Kalkulator będzie umożliwiał wykonywanie podstawowych operacji arytmetycznych. Będzie miał pamięć do przechowywania liczb, wyświetlacz, klawiaturę numeryczną oraz przyciski służące do kasowania pojedynczych cyfr lub całych wpisanych wartości oraz wykonywania obliczeń. Aplikacje wphp-qt: zaczynamy Zanim jednak przejdziemy do kalkulatora, musimy wiedzieć, jak utworzyć okno główne aplikacji. W tym celu przyjrzyjmy się prostszemu przykładowi z Listingu 1. Instalacja i szybki start Obecna wersja PHP-Qt pracuje wyłącznie pod Linuksem; planowane wydanie (port) dla Windows nie zostało jeszcze ukończone. Na dołączonej do pisma płycie CD PHP Solutions Live! umieszczamy zainstalowane, gotowe do pracy PHP-Qt wraz z omawianym przez nas przykładem. Jeśli chcesz zainstalować PHP-Qt na swoim komputerze, musisz pobrać źródła najnowszego wydania tej biblioteki pod adresem i rozpakować je na twardym dysku.. Opiszemy instalację wersji Poza samym PHP-Qt potrzebne będą: źródła parsera PHP5.1 (lub nowszego), źródła PHP-Qt, pliki nagłówkowe Qt 4.1 i skompilowana biblioteka Qt. Zalecana jest kompilacja PHP z użyciem prefiksu (parametr --prefix), aby zachować obecną na dysku wersję PHP (jeżeli takową posiadamy). Jak zwykle, zaczynamy od wykonania polecenia configure:./configure prefix=/usr/local/php make make install (wykonujemy tę operację zalogowani jako root) Następnie przechodzimy do katalogu php_qt i wpisujemy:./configure --with-php_qt[=/path/to/qtheaders] --with-qtlib[=/path/to/qtlib] --with-php-config=/usr/local/php-5.1.1/bin/php-config Ostatni parametr wskazuje skrypt php-config, drugi ścieżkę dostępu do skompilowanej biblioteki Qt, a pierwszy pliki nagłówkowe Qt. Możemy teraz skompilować kod źródłowy wykonując make install (musimy być zalogowani jako root). Po udanej kompilacji oraz instalacji powinniśmy móc uruchomić tutoriale dołączone do pakietu PHP-Qt poleceniem: /usr/local/php-5.1.1/bin/php-qt/tutorials/t1/main.php Jesteśmy gotowi, aby napisać nasz pierwszy program: jak zwykle będzie to Hello World (przykład z tutoriala 1), którego efekt działania pokazujemy na Rysunku 2: Figure 1. Kalkulator stworzony w PHP-Qt Zaczynamy od utworzenia nowej instancji $app klasy QApplication. Dziedziczy ona z QCoreApplication i jest główną klasą Qt, zarządzającą ustawieniami oraz interakcją z użytkownikiem (control flow). Możemy przekazać parametry $argc i $argv do jego konstruktora. Następnie tworzymy obiekt $window klasy QWidget, która z kolei jest klasą bazową dla wszystkich widgetów (kontrolek). Jej zadaniem jest ich prezentacja na ekranie oraz odbieranie zdarzeń. Z jej pól, slotów i metod mogą korzystać wszystkie obiekty, które z niej dziedziczą. Obiekt $window będzie głównym oknem naszej aplikacji. Ustawimy jego rozmiar metodą resize() na 200 (szerokość) i 120 pikseli (wysokość). Kolejnym obiektem, który utworzymy, będzie przycisk (ang. button) $quit klasy QPushbutton. Przypiszemy mu napis Quit, który się na nim ukaże i zagnieździmy go w oknie $window: w taki właśnie sposób umieszczamy kontrolki w oknach. Następnie ustawimy współrzędne przycisku $quit (kolumna, wers, szerokość, wysokość) używając jego metody setgeometry(). Ostatnią rzeczą, którą zrobimy z naszym przyciskiem, bedzie przypisanie mu sygnału clicked() odpowiadającego za jego kliknięcie myszką oraz slotu quit(): w ten sposób kliknięcie tego przycisku będzie powodowało zakończenie działania aplikacji. Dodajmy, że slot quit() jest wbudowaną metodą klasy QApplication. Przypisując nazwę obiektu $app if(!extension_loaded('php_qt')) { dl('php_qt.'. PHP_SHLIB_SUFFIX); $app = new Qapplication($argc,$argv); $hello = new QPushButton("Hello world!"); $hello->show(); Figure 2. Hello World w PHP-Qt 3

3 PHP-Qt Listing 1. Prosty przykład działania Qt: okienko zawierające przycisk Quit $app = new QApplication($argc,$argv); $window = new QWidget(); $window->resize(200,120); $quit = new QPushButton("Quit", $window); $quit->setgeometry(10, 40, 180, 40); $quit->connect($quit,signal("clicked()"),$app,slot("quit()")); $window->show(); określamy też przynależność przycisku $quit do naszej aplikacji. Teraz pozostało wyświetlenie okna na ekranie ($window->show() oraz uruchomienie głównej pętli naszej aplikacji ($app->exec()). Zostanie ona zatrzymana jeżeli główny widget (okno) zostanie zniszczony lub po wywołaniu exit(). Figure 3. Główny widget w Qt Tworzymy kalkulator Przyjrzyjmy się teraz budowie kalkulatora. Składa się on z dwóch klas: Calculator (calculator.php) i Button (button.php) oraz głównego skryptu main.php, który uruchamia całą aplikację (Listing 2). Plik calculator.php zawiera 390 linijek kodu, więc nie będziemy go szczegółowo omawiać: skupimy się na tych fragmentach, które będą nam potrzebne do wyjaśnienia jego działania. Kompletny skrypt main.php, a także klasy Calculator i Button są dostępne w pakiecie PHP-Qt (examples/calculator/calculator.php). Tam też możemy od razu przetestować jego działanie. Przejdźmy teraz do skryptu main.php. Na samym początku sprawdzamy, czy rozszerzenie php_qt zostało załadowane i jeśli nie, ładujemy je. Następnie dołączamy plik calculator.php i podobnie jak w naszym poprzednim przykładzie, tworzymy instancję $app klasy QApplication. Potem inicjujemy okno główne kalkulatora, które u nas jest instancją $calc klasy Calculator, pokazujemy je ($calc->show() i uruchamiamy pętlę główną aplikacji ($app->exec()). Okno główne: dziedziczenie Jak już wspomnieliśmy, okno główne Calculator jest klasą pochodną wobec QDialog, tak więc wszystkie metody, sygnały i sloty tej drugiej są dziedziczone. Możemy je przystosować do naszych potrzeb i tworzyć nowe, np. te, które odnoszą się do przycisków. Potrzebujemy metod obsługujących działania użytkownika, czyli slotów. Będą nimi: digitclicked() (kliknięcie klawisza cyfry), unaryoperatorclicked() (kliknięcie przycisku...), additiveoperatorclicked() (kliknięcie przycisku dodawania), multiplicative- OperatorClicked() (kliknięcie przycisku mnożenia), equalclicked() (kliknięcie przycisku równa się), pointclicked() (kliknięcie przycisku kropki), change- SignClicked() (kliknięcie przycisku +/ - służącego do zmiany znaku), backspaceclicked() (kliknięcie backspace, czyli kasowanie cyfry), clear() (czyszczenie wpisanej lub wyliczonej wartości), clearall() (czyszczenie całego wyświetlacza), clearmemory() (czyszczenie pamięci kalkulatora), read _ Memory() (odczyt pamięci kalkulatora), setmemory() (ustawianie wartości w pamięci kalkulatora) i addtomemory() (dodawanie wartości w pamięci kalkulatora). Nazwy wszystkich slotów będą zapisane w tablicy $slots (Listing 3), dzięki której biblioteka Qt będzie je mogła obsłużyć. Potrzebne będą też metody, które nie są slotami: createbutton(), która tworzy przyciski, abortoperation() do wycofania działania oraz calculate(), która będzie obliczać wynik. Sygnały i sloty szczegóły Przejdźmy teraz do bardziej szczegółowego omówienia zagadnienia sygnałów i slotów. Jak już wiemy, są one jedną z podstawowych koncepcji w Qt, a ich zadaniem jest łączenie wydarzeń (np. kliknięcia myszką przycisku dodawania tym zajmują się sygnały) z metodami, które je obsługują (np. dodawanie dwóch liczb, co z kolei jest zadaniem slotów). Slot jest wywoływany po wysłaniu przez widget połączonego z nim sygnału. Sloty to zwyczajne metody w modelu obiektowym PHP5, które mogą być publiczne (public), chronione (protected) lub prywatyne (private) i możemy je bezpośrednio wywoływać (niekoniecznie wskutek wystąpienia zdarzenia). Naturalną koleją rzeczy jest ich łączenie z sygnałami. Jeden sygnał mo- Listing 2. Główny plik kalkulatora (main.php) <?php if(!extension_loaded('php_qt')){ dl('php_qt.'.php_shlib_suffix); require_once('calculator.php'); $app=new Qapplication($argc,$argv); $calc = new Calculator(); $calc->show();?> Listing 3. Deklarujemy sloty w tablicy $slots jest to wymagane przez Qt private $slots = array( "digitclicked()", "unaryoperatorclicked()", "additiveoperatorclicked()", "multiplicativeoperatorclicked()", "equalclicked()", "pointclicked()", "changesignclicked()", "backspaceclicked()", "clear()", "clearall()", "clearmemory()", "read_memory()", "setmemory()", "addtomemory()" ); private $signals = array(""); 4

4 PHP-Qt Dla początkujących że być podpięty do wielu slotów, a jeden slot do wielu sygnałów. Co więcej, możemy łączyć sygnały między sobą. Bardzo ważne jest to, że w Qt klasa, która może korzystać z sygnałów i slotów, musi dziedziczyć po QObject. Więcej na ten temat możemy przeczytać w drugim tutorialu Qt. Przyjrzyjmy się jeszcze raz prostemu przykładowi z Listingu 1, który składa się wyłącznie z okna głównego i przycisku Quit powodującego zakończenie działania aplikacji. Wszystkie widgety dziedziczące z QWidget, w tym nasz przycisk QPushButton, wysyłają sygnały przy wystąpieniu dowolnego wydarzenia. W naszym przykładzie jest to sygnał clicked(), wysyłany przez przycisk, który klikniemy myszką. Więcej o sygnałach i slotach można przeczytać w tutorialu 7 PHP-Qt. Do łączenia slotów z sygnałami służy metoda connect() danego widgetu, np.: connect($quit,signal("clicked()"), $app,slot("quit()")) Metody SLOT() i SIGNAL() są wymagane, aby zdefiniować sloty i sygnały bez ich użycia nie będzie to możliwe. Metody te odpowiadają makrom SIGNAL i SLOT z Qt dla C++. Aby rozłączyć sloty i sygnały, możemy użyć metody disconnect(), ale przeważnie nie jest to wymagane, gdyż Qt rozdziela je automatycznie w momencie zniszczenia obiektu, którego one dotyczą. Obecna wersja PHP-Qt nie obsługuje jeszcze slotów z parametrami: funkcjonalność ta jest planowana w najstępnych wersjach tej biblioteki. Wszystkie spośród używanych przez nas przycisków są obiektami klasy QPush- Button, która dziedziczy z QAbstractButton. Z tej drugiej dziedziczą również inne klasy przycisków, takie jak Q3Button, QCheckBox czy RadioButton. Wyświetlaczem kalkulatora będzie pole tekstowe obiekt $display klasy QLineEdit, która. reprezentuje pojedynczą linię tekstu z możliwością edycji. Jak w prawdziwym kalkulatorze, przy inicjacji tej klasy wpisujemy wartość 0 (jako parametr wysłany do konstruktora). Tekst zawarty w tym polu odczytamy korzystając z metody $display->text(), zaś do wpisania go użyjemy metody settext(). Definiowanie wyglądu (layoutu) okienka Zdefiniujmy teraz wygląd (layout) naszego kalkulatora. Określa on sposób organizacji widgetów w oknie. Podstawową klasą służącą do definiowania layoutu (menedżerem layoutu, ang. layout manager)jest QLayout, z której dziedziczą inne, takie jak QHBoxLayout, QVBox- Layout czy QGridLayout. Główną zaletą menedżerów layoutu jest to, że automatycznie rozmieszczają one elementy w oknie, wymagając od programisty jedynie podania podstawowych parametrów (np. kolumny i wersu). W naszym kalkulatorze użyjemy klasy QGridLayout, która traktuje okno aplikacji jako siatkę (ang. grid) podzieloną na wiersze i kolumny. Przyciski naszego kalkulatora są pogrupowane wg funkcji: operatory [[unary]], dodawania i mnożenia, cyfry oraz inne (np. kasowanie cyfr). Każda z grup ma po jednym slocie. Przyciski są tworzone z użyciem wspomnianej już metody createbutton(), która wymaga dwóch parametrów: opisu, który zostanie wyświetlony na klawiszu oraz slotu. Slotami będą metody wymienione w zmiennej $slots z Listingu 3, które będą połączone z sygnałem clicked() odpowiednich przycisków (np. slot additiveoperatorclicked() połączymy z sygnałem clicked() przycisku dodawania). Sposób rozmieszczenia przycisków reprezentujących cyfry przedstawiamy Listing 4. Rozmieszczamy (w pętli) przyciski odpowiadające za cyfry w kalkulatorze for ($i = 1; $i < $this->numdigitbuttons; ++$i) { $row = ceil(((8 - ($i+1))) / 3) + 2; $column = ceil((($i-1) % 3)) + 1; $this->mainlayout->addwidget($this->digitbuttons[$i], (int) $row, (int) $column); na Listingu 4. Korzystając z metody addwidget() obiektu $this->mainlayout() klasy QGridLayout, każdemu z nich przypisujemy konkretną kolumnę i wers, np. equalbutton (przycisk równa się) będzie miał położenie (5,5). Metoda addwidget wymaga podania trzech parametrów: obiektu (np. przycisku), wersu i kolumny. Dodatkowo, możemy zdefiniować dwa opcjonalne parametry: rowspan i col- Span, które pozwalają na łączenie kilku wersów lub kolumn w jedną, podobnie jak ma to miejsce w tabelach HTMLowych. Przeciążenie metod (overloading) Powiedzieliśmy, że parametry rowspan i colspan są opcjonalne. Przyciski w naszym kalkulatorze, poza backspacebutton, clearbutton() i clearallbutton(), są dodawane do layoutu metodą addwidget() jedynie z trzema parametrami (obiekt, wers i kolumna). Opcjonalność rowspan i colspan nie jest osiągana przez przypisywanie im wartości domyślnych w deklaracji metody addwidget(), tylko przez przeciążenie (ang. overloading) tej metody. Parametrem o wartości domyślnej jest natomiast Alignment, ustawiony standardowo na 0. Nagłówki metody addwidget() z rowspan i colspan przetłumaczone na PHP wyglądają następująco: QGridLayout::addWidget ($widget, $fromrow, $fromcolumn, $rowspan, $columnspan, $alignment = 0) A oto wersja bez parametrów pozwalających na łączenie wersów i kolumn: QgridLayout::addWidget ($widget, $row, $column, $alignment = 0) Na koniec nadajemy okienku tytuł PHP Solutions Calculator. Zmiana typów (ang. type casting) Zobaczmy teraz, w jaki sposób klasa Calculator odnajduje przycisk wciśnięty przez użytkownika. W tym celu przyjrzymy się metodzie unaryoperatorclicked() (Listing 5). Do określenia, który przycisk został wciśnięty służy metoda sender() 5

5 PHP-Qt zwraca ona obiekt, który wysłał sygnał. Metoda ta należy do klasy QObject (z której dziedziczy każdy widget, również przycisk), a dostęp do niej jest możliwy dzięki $this. Widzimy już, dlaczego klasa Calculator dziedziczy z QDialog, która z kolei jest klasą pochodną wobec QObject. Dokładniejsze informacje na temat dziedziczenia klas w Qt znajdują się pod adresem learnmore/classchart/. No dobrze, ale metoda sender() zwraca obiekt klasy QObject, a nam jest potrzebny przycisk. Użyjemy więc funkcji qobject _ cast(), która zamieni obiekt typu QObject na takowy. Wymaga ona podania dwóch parametrów: istniejącego obiektu oraz nowej, anonimowej instancji (w tym przypadku Button("")) i zwraca obiekt docelowy (tej samej klasy, co obiekt podany jako drugi parametr). Następnie odczytujemy liczbę wpisaną przez użytkownika. W tym celu skorzystamy z metody text() klasy obiektu $display (naszego wyświetlacza). Otrzymany rezultat będzie typu QString, a my potrzebujemy liczby, na której będziemy mogli wykonywać działania. Przekonwertujemy więc łańcuch na liczbę przy użyciu metody to- Double(): jeśli konwersja się nie powiedzie, wynikiem będzie 0.0 i wywołana zostanie metoda abortoperation() klasy Calculator. QString: obsługa łańcuchów w Qt Przyjrzyjmy się teraz możliwościom Qt w dziedzinie łańcuchów. Biblioteka ta oferuje szerokie możliwości obsługi standardu unicode, łańcuchów i pojedynczych znaków. Ułatwia też konwersję typów znaków oraz internacjonalizację. Na Listingu 5 korzystamy z metody tr(), która należy do klasy QObject i klas pochodnych wobec niej. Zwraca ona tłumaczenie podanego łańcucha lub ten sam łańcuch, jeżeli nie ma dla niego tłumaczenia. Zaleca się jej stosowanie wobec wszystkich napisów, które chcemy wyświetlać. PHP-Qt automatycznie konwertuje wszystkie łańcuchy PHP na obiekty klasy QString. Większość metod Qt również zwraca łańcuchy tego typu. Korzystanie z QString daje wiele rozmaitych możliwości manipulacji łańcuchami, takich jak ich liczenie, łączenie, zastępowanie, kasowanie, dzielenie czy konwersja standardów (ASCII/Unicode/UTF8/UTF16/ Latin1 oraz typy numeryczne i niektóre operatory). Wszystkie łańcuchy przechowywane w Qt są domyślnie typu Unicode: stosowanie tego typu wobec łańcuchów podawanych jako parametry metod gwarantuje, że będą wyświetlane poprawnie. Podsumowanie Zademonstrowaliśmy podstawowe możliwości PHP-Qt i na ich podstawie można ocenić, że rozwój tej biblioteki zmierza w dobrym kierunku. Obecnie, twórcy tego pakietu zajmują się integracją ze SMOKE (który zostanie użyty w następnych wersjach PHP-Qt i jest dołączony w obecnym wydaniu tego pakietu; jego celem jest utworzenie powiązań (ang. bindings) pomiędzy PHP a Qt/KDE) oraz przenosinami PHP-Qt do działającego w systemie Subversion repozytorium KDE. Nic więc nie stoi na przeszkodzie, aby wprowadzić do PHP-Qt pozostałe klasy należące do Qt i KDE. Co więcej, PHP-Qt ma być dostępne niezależnie od KDE i nie wymagać żadnych pakietów oprócz parsera PHP i biblioteki Qt. Lista mailingowa i repozytorium Subversion pozwalają natomiast śledzić rozwój pakietu PHP-Qt, który z każdą wersją staje się coraz lepszy. Listing 5. Zastosowanie metod qobject_cast i tr() klasy QObject function unaryoperatorclicked() { $clickedbutton = qobject_cast($this->sender(), new Button("")); $clickedoperator = $clickedbutton->text(); $operand = $this->display->text()->todouble(); $result; if ($clickedoperator->toascii() == $this->tr("sqrt")->toascii()) { if ($operand < 0.0) { $this->abortoperation(); return; $result = sqrt($operand); else if ($clickedoperator->toascii()==$this->tr("x\262")->toascii()) { $result = pow($operand, 2.0); else if ($clickedoperator->toascii()==$this->tr("1/x")->toascii()) { if ($operand == 0.0) { $this->abortoperation(); return; $result = 1.0 / $operand; $this->display->settext(qstring::number($result)); $this->waitingforoperand = true; O autorze Thomas Mönicke studiuje informatykę na Politechnice Brandenburskiej w Cottbus. Jest autorem biblioteki PHP-Qt. Tworzy aplikacje GIS- i webowe dla Niemieckiego Instytutu Archeologicznego, a także pracuje nad systemem P2P do widekonferencji o nazwie BRAVIS. kontakt z autorem: thomas.moenicke@kd .net 6

Podstawy programowania w Qt4

Podstawy programowania w Qt4 Podstawy programowania w Qt4 Rafał Rawicki 21 kwietnia 2007 Co to jest Qt? Zestaw bibliotek dla języka C++ oraz narzędzia roszerzające jego możliwości Ponad 400 klas Introspekcja oraz mechanizm sygnałów

Bardziej szczegółowo

Qt sygnały i designer

Qt sygnały i designer Qt sygnały i designer Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan

Bardziej szczegółowo

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom: 1. QT creator, pierwsze kroki. Qt Creator wieloplatformowe środowisko programistyczne dla języków C++, JavaScript oraz QML, będące częścią SDK dla biblioteki Qt. Zawiera w sobie graficzny interfejs dla

Bardziej szczegółowo

Programowanie w środowiskach RAD Qt i C++

Programowanie w środowiskach RAD Qt i C++ Programowanie w środowiskach RAD Qt i C++ Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wprowadzenie do programowania w języku C++ z wykorzystaniem biblioteki Qt Qt i QtCreator Aktualnie

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

Praca z aplikacją designer

Praca z aplikacją designer Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2014 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Programowanie, część III

Programowanie, część III 9 kwietnia 2010 Biblioteki i podsystemy graficzne Biblioteki graficzne (ang. graphics library) Są potrzebne, aby można było programować grafikę w C++, ponieważ (niestety) we współczesnych systemach komputerowych

Bardziej szczegółowo

Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek

Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd

Bardziej szczegółowo

Programowanie w środowiskach RAD QtCreator, Qt i C++

Programowanie w środowiskach RAD QtCreator, Qt i C++ Programowanie w środowiskach RAD QtCreator, Qt i C++ Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wprowadzenie do programowania w C++ z wykorzystaniem biblioteki Qt Sygnały i sloty Sygnały

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Qt - podstawowe cechy

Qt - podstawowe cechy Qt - podstawowe cechy Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Graficzny Interfejs Użytkownika mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Graficzny Interfejs

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

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

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

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

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

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Wymagana wiedza wstępna: 1) Student musi 1) Znać język C 2) Znać zasady zarządzania pamięcią w komputerze 3) Znać pojecie wskaźnika

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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

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

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz Dynamiczne i wydajne tworzenie interfejsu użytkownika Piotr Michałkiewicz Główne punkty prezentacji View i ViewGroup w kodzie OnClick() i Tag Space widget i GridLayout Dynamiczne dodawanie widgetów Animations

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

Uruchamianie bazy PostgreSQL

Uruchamianie bazy PostgreSQL Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL

Bardziej szczegółowo

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS Wymagana wiedza wstępna: 1) Student musi 1) Umieć stworzyć projekt aplikacji konsolowej w XCode z wykorzystaniem Objective-C

Bardziej szczegółowo

Zaawansowane programowanie w C++

Zaawansowane programowanie w C++ Zaawansowane programowanie w C++ Micha l Tanaś, PhD Adam Mickiewicz University, Faculty of Physics http://www.amu.edu.pl/~mtanas Michal.Tanas@amu.edu.pl Wykonanie klasycznego programu System operacyjny

Bardziej szczegółowo

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,

Bardziej szczegółowo

Laboratorium 8 ( Android -pierwsza aplikacja)

Laboratorium 8 ( Android -pierwsza aplikacja) Dr Mirosław Łątka Informatyka dla medycyny Jesień 2012 Laboratorium 8 ( Android -pierwsza aplikacja) Naszym celem jest stworzenie aplikacji, która wyświetla zdjęcie Alberta Einsteina. Jeden z przycisków

Bardziej szczegółowo

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4 Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Obsługa sieci Wykład

Bardziej szczegółowo

Wykład 03 JavaScript. Michał Drabik

Wykład 03 JavaScript. Michał Drabik Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

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

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Windows 10 - Jak uruchomić system w trybie

Windows 10 - Jak uruchomić system w trybie 1 (Pobrane z slow7.pl) Windows 10 - Jak uruchomić system w trybie awaryjnym? Najprostszym ze sposobów wymuszenia na systemie przejścia do trybu awaryjnego jest wybranie Start a następnie Zasilanie i z

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) I. WSTĘP Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) Algorytm - sposób na osiągnięcie celu w pewnych ograniczonych krokach. Program komputerowy realizuje zawsze algorytm.

Bardziej szczegółowo

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik Wizualne systemy programowania Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Kolekcje List

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

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Python wstęp. Michał Bereta www.michalbereta.pl

Python wstęp. Michał Bereta www.michalbereta.pl Python wstęp Michał Bereta www.michalbereta.pl Wprowadzenie... 1 Źródła wiedzy... 1 Uruchomienie interpretera Pythona... 2 Python jako kalkulator użycie interaktyne... 2 Uruchamianie skryptów z plików...

Bardziej szczegółowo

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Interfejs użytkownika Rok akademicki: 2014/2015 Kod: MIO-1-613-s Punkty ECTS: 4 Wydział: Inżynierii Metali i Informatyki Przemysłowej Kierunek: Inżynieria Obliczeniowa Specjalność: - Poziom

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki

Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania został skonstruowany w oparciu o następujące dokumenty: Rozporządzenie MEN z dnia 7 września 2004 roku w sprawie zasad oceniania,

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI Skrypty obsługi bazy danych. Przykład zastosowania do tworzenia własnego systemu receptur lub zdarzeniowego zapisu parametrów do bazy danych w systemie asix3.

Bardziej szczegółowo

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików... 49 Konsola... 49 Zapisanie rezultatu do pliku... 50

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików... 49 Konsola... 49 Zapisanie rezultatu do pliku... 50 Spis treści Rozdział 1. Instalacja systemu Aurox...5 Wymagania sprzętowe... 5 Rozpoczynamy instalację... 6 Wykrywanie i instalacja urządzeń... 7 Zarządzanie partycjami... 10 Konfiguracja sieci i boot loadera...

Bardziej szczegółowo

Pakiet AutoRun Menu. Sławomir Pogodziński. Podyplomowe Studium Programowania i Zastosowań Komputerów

Pakiet AutoRun Menu. Sławomir Pogodziński. Podyplomowe Studium Programowania i Zastosowań Komputerów Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowań Komputerów Sławomir Pogodziński Pakiet AutoRun Menu Praca dyplomowa wykonana

Bardziej szczegółowo

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Interfejs GUI wysokiego poziomu Pojęcie

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

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

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Tytuły Wykonawcze. Opis systemu tworzenia dokumentacji TW-1

Tytuły Wykonawcze. Opis systemu tworzenia dokumentacji TW-1 Tytuły Wykonawcze Opis systemu tworzenia dokumentacji TW-1 Program pozwala na tworzenie tytułów wykonawczych według Rozporządzenia Ministra Finansów z dnia 16 maja 2014 r. 1.Główne cechy systemu -ewidencja

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

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

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF 1. Wstęp Treści zawarte w tym dokumencie mogą być przydatne w przypadku konieczności dokonania konwersji dokumentów tworzonych z

Bardziej szczegółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

JAVA?? to proste!! Autor: wojtekb111111

JAVA?? to proste!! Autor: wojtekb111111 1 JAVA?? to proste!! 2 Niniejszy tutorial przedstawia krótkie wprowadzenie do programowania w języku JAVA. Jakie narzędzia na początku potrzebujemy do rozpoczęcia programowania w tym języku? JDK (java

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

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

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

Programowanie w środowisku graficznym GUI

Programowanie w środowisku graficznym GUI Programowanie w środowisku graficznym GUI 1. Wprowadzenie Język C# jest stworzony do szybkiego tworzenia aplikacji przy pomocy zintegrowanego środowiska programistycznego IDE (ang. Itegrated Development

Bardziej szczegółowo