Instalacja i uruchomienie Na stronie domowej projektu Smarty znajdziemy między innymi dokumentację oraz najnowszą wersję oprogramowania.

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

Download "Instalacja i uruchomienie Na stronie domowej projektu Smarty znajdziemy między innymi dokumentację oraz najnowszą wersję oprogramowania."

Transkrypt

1 Szablony Smarty Pakiet Smarty jest obiektową biblioteką służącą do tworzenia serwisów internetowych w języku php techniką szablonów. Główna klasa zawarta w bibliotece nazywa się Smarty i realizuje przetwarzanie szablonu w stronę WWW. Podstawowa funkcjonalność każdego systemu szablonów polega na podstawieniu w miejsce zmiennych szablonu wartości ustalonych przez część logiczną aplikacji. Oprogramowanie Smarty oprócz zwykłej zamiany zmiennych umożliwia umieszczenie w szablonie instrukcji sterujących. Szablon może zawierać iteracje section oraz instrukcje if zagnieżdżone dowolną liczbę razy. Ponieważ wyrażenia stanowiące warunki instrukcji if są kompilowane do postaci php, zatem mogą one być dowolnie skomplikowane. Bardzo mocną stroną systemu Smarty jest jego wydajność, osiągnięta dzięki wbudowanemu systemowi cache. Niemal wszystkie wyniki porównania wydajności są zgodne, że Smarty jest najwydajniejszym dostępnym obecnie oprogramowaniem przetwarzania szablonów. Efektywność systemu Smarty wynika między innymi z zastosowanej techniki przetwarzania szablonu. Szablon jest kompilowany do kodu php i zapisywany w skompilowanej postaci. Kompilacja odbywa się jeden raz, zaś wszystkie późniejsze odwołania wykorzystują wersję skompilowaną szablonu. Ponowna kompilacja ma miejsce jedynie wówczas, gdy pliki szablonu ulegną zmianie. Język opisu szablonu jest rozszerzalny i może być wzbogacany o nowe funkcje. Smarty wykorzystuje technikę wtyczek, dzięki czemu dołączanie własnego kodu do biblioteki nie jest skomplikowane. Instalacja i uruchomienie Na stronie domowej projektu Smarty znajdziemy między innymi dokumentację oraz najnowszą wersję oprogramowania. Po rozpakowaniu pliku z systemem smarty na dysk twardy należy dokonać zmian w pliku konfiguracyjnym php.ini. Katalog zawierający pliki biblioteki Smarty musi być dostępny w ścieżkach poszukiwań php. Jeśli plik został rozpakowany do folderu C:\php\smarty, wówczas w pliku php.ini należy zmodyfikować zmienną konfiguracyjną include_path nadając jej wartość include_path = ".;c:\php\smarty\libs" Wówczas dołączanie biblioteki Smarty do skryptu nie wymaga podania pełnej ścieżki dostępu. Jeśli z jakichkolwiek powodów nie możemy zmieniać pliku php.ini, wówczas należy stosować pełną ścieżkę przy dołączaniu biblioteki do skryptu.

2 Smarty - składnia szablonu Szablon Smarty jest plikiem tekstowym zawierającym znaczniki HTML oraz znaczniki szablonu. Znaczniki szablonu są otoczone nawiasami klamrowymi <P>...kod strony...</p> {$znaczniksmartyphp} <P>...kod strony...</p> {#znaczniksmartyconfig#} <P>...kod strony...</p> {funkcjasmarty} Każdy ze znaczników szablonu Smarty powoduje albo wydrukowanie wartości zmiennej albo wywołanie funkcji. {$znaczniksmartyphp} drukuje na wyjściu wartość zmiennej $znaczniksmartyphp pochodzącej ze skryptu php. Podobnie, znacznik {#znaczniksmartyconfig#} powoduje wydrukowanie zmiennej #znaczniksmartyconfig# odczytanej z pliku konfiguracyjnego. Wreszcie znacznik {funkcjasmarty} wywołuje funkcję funkcjasmarty. Zmienne pochodzące ze skryptu php rozpoczynają się znakiem dolara, zmienne konfiguracyjne są otoczone haszmarkami, brak znaków dolara i haszamarków oznacza, że znacznik szablonu jest wywołaniem funkcji. Część znaczników stanowiących wywołanie funkcji posiada znaczniki zamykające poprzedzone - podobnie jak znaczniki zamykające HTML - znakiem slash {funkcjasmarty}..zawartość... {/funkcjasmarty} Ostatni możliwy znacznik Smarty {* dowolny tekst *} jest komentarzem w szablonie. Domyślna składnia szablonów Smarty wykorzystuje nawiasy klamrowe do oznaczenia zmiennych oraz funkcji. Nawiasy te możemy zastąpić dowolnymi innymi napisami, na przykład {{ oraz }} lub <!--{ oraz }-->. Powodem, dla którego może okazać się to konieczne jest chęć stosowania wewnętrznych arkuszy stylów w szablonie.

3 Pierwszy skrypt Pracę nad pierwszym skryptem rozpoczynamy od utworzenia drzewa katalogów. W folderze 01- smarty, w którym umieścimy skrypt, zakładamy dwa foldery templates oraz templates_c. Katalog templates będzie zawierał szablony stron, zaś katalog templates_c służy do przechowywania skryptów skompilowanych przez system Smarty. Przykład pierwszy składa się z dwóch plików: index.php oraz index.tpl. Skrypt index.php zawiera kod przetwarzający szablon zapisany w pliku index.tpl. Skrypt wykorzystujący system Smarty rozpoczynamy od dołączenia pliku Smarty.class.php require_once 'Smarty.class.php'; Następnie tworzymy obiekt będący egzemplarzem klasy Smarty $smarty = new Smarty; Do przypisania wartości zmiennym szablonu służy funkcja assign. Jej pierwszym parametrem jest nazwa zmiennej szablonu, zaś drugim przypisywana wartość. $smarty -> assign('tytul', 'Witaj!'); $smarty -> assign('tresc', 'Pierwsza strona stosująca szablony Smarty!'); Po dokonaniu podstawienia wartości zmiennych strona WWW jest wysyłana do klienta. Metoda display klasy Smarty wczytuje szablon z pliku, którego nazwa jest parametrem, następnie przetwarza szablon dokonując podstawienia zmiennych, po czym wysyła otrzymany kod HTML do klienta $smarty -> display('index.tpl'); Powyższe instrukcje stanowią zawartość pliku index.php. Szablon zapisany w pliku index.tpl zawiera dwie zmienne {$tytul} oraz {$tresc}. Zmienne przekazane do szablonu Smarty ze skryptu php metodą assign są otoczone nawiasami klamrowymi i poprzedzone znakiem dolara <html> <title>{$tytul}</title> <body> <p>{$tresc}</p> </body> </html> Po uruchomieniu przykładu powinniśmy zobaczyć w przeglądarce stronę WWW o tytule Witaj i treści Pierwsza strona stosująca szablony Smarty.

4 Jeśli pracujemy w systemie Unix/Linux, wówczas może się okazać koniecznym nadanie uprawnienia w do folderu template_c dla pozostałych użytkowników chmod o+w tempate_c Modyfikatory zmiennych Zmienne szablonu możemy poddać procesowi przetwarzania wykorzystując tzw. modyfikatory zmiennych. Każdy z modyfikatorów (domyślnie jest ich 21) stanowi pewnego rodzaju procedurę konwertującą napis będący argumentem. Wywołanie modyfikatora ma postać {$zmienna modyfikator} Na przykład zamianę małych liter na duże realizuje modyfikator upper. Przekształcenie zmiennej $tresc tak by zawierała jedynie duże litery sprowadza się do polecenia {$tresc upper} Przekształcenie odwrotne realizuje modyfikator lower {$tresc lower} Wszystkie standardowe modyfikatory zmiennych lp. Modyfikator Działanie 1. capitalize, zamiana liter w napisie lower, upper 2. count_characters, zliczanie znaków, akapitów, słów oraz zdań count_paragraphs, count_words, count_sentences 3. cat złączanie napisów 4. date_format formatowanie daty 5. default ustalenie wartości domyślnej zmiennej 6. escape cytowanie znaków specjalnych w napisie 7. indent wcięcia akapitów 8. nl2br konwersja znaku złamania wiersza \n na znak <br /> 9. replace, zamiana napisów oraz wyrażeń regularnych regex_replace 10. spacify rozstrzelenie napisu 11. string_format formatowanie napisu 12. strip, usuwanie białych znaków oraz znaków strip_tags 13. truncate skracanie długości napisu 14. wordwrap łamanie wierszy w napisie

5 Modyfikatory możemy ze sobą łączyć. Umieszczenie kilku modyfikatorów po nazwie zmiennej spowoduje, że zmienna zostanie poddana kolejno kilku transformacjom. Na przykład zastosowanie modyfikatorów nl2br oraz upper {$tresc nl2br upper} spowoduje, że po pierwsze znaki złamania wiersza zostaną zastąpione znacznikami <br>, a następnie wszystkie litery w otrzymanym napisie będą zastąpione dużymi odpowiednikami. Oczywiście kolejność stosowania modyfikatorów jest istotna. W powyższym przykładzie, modyfikator upper zamieni zarówno litery oryginalnego napisu jak i znaczników <br>. Niektóre spośród modyfikatorów przyjmują dodatkowe parametry. W takim przypadku parametry należy podać bezpośrednio po modyfikatorze oddzielając je znakiem dwukropka. Przykładami modyfikatorów posiadających parametry są truncate oraz wordwrap. Modyfikator truncate usuwa z napisu końcowe znaki, w taki sposób, że napis wynikowy nie przekracza zadanej długości. Parametrami modyfikatora są liczba znaków, do jakiej napis ma zostać skrócony oraz opcjonalny tekst dodawany na końcu napisu. Zastosowanie modyfikatora ma postać {$tresc truncate:90:"... "} Podobnie, stosując modyfikator wordwrap podajemy dwa parametry {$tresc wordwrap:30:"<br>"} Modyfikator wordwrap łamie wiersze w taki sposób, że w wynikowym napisie żadna linijka nie przekracza zadanej liczby znaków. Maksymalna liczba znaków w linii oraz napis dodawany na końcu każdej linii są parametrami modyfikatora. Zmienne tablicowe w szablonie Prosta zamiana napisów w szablonie na wartości wyznaczone przez skrypt nie umożliwia całkowitej separacji silnika aplikacji od oprawy graficznej. Problemy pojawią się na przykład wówczas, gdy na stronie chcemy umieścić tabelkę zawierającą informacje przechowywane w tablicy php. Jeśli chcemy usunąć zupełnie kod HTML ze skryptu php, wówczas konieczne staje się użycie w szablonie pętli. Przeanalizujmy następujący kod php $tplcars = array( 'Ford', 'Opel', 'Fiat', 'BMW', 'Mercedes', 'Renault', 'Citroen', 'Volkswagen' ); $smarty -> assign('cars', $tplcars); W skrypcie tym tworzymy nową zmienną tablicową o nazwie $tplcars, która zawiera nazwy marek samochodów. Tablica ta jest następnie przekazana do szablonu jako zmienna $cars. Naszym celem jest przygotowanie szablonu w taki sposób, aby każda marka stanowiła osobny wiersz tabeli HTML. Szablon po odebraniu zmiennej $cars musi przetworzyć ją element po elemencie i wyprodukować na wyjściu jeden wiersz tabelki HTML dla każdego elementu tablicy $cars.

6 Szablon stanowiący rozwiązanie zawiera tabelę HTML, wewnątrz której znajduje się pętla <table> {section name=car loop=$cars} <tr><td>{$cars[car]}</td></tr> {/section} </table> Pętla przetwarzająca tablicę w szablonach Smarty jest definiowana przez funkcję section. Znacznik {section...} otwiera, zaś {/section} kończy pętlę. Kod HTML umieszczony pomiędzy dwoma znacznikami section będzie powtórzony dla każdego elementu tablicy $cars. Przyjrzyjmy się parametrom funkcji section. Parametr name ustala nazwę zmiennej sterującej. Wewnątrz pętli wartość parametru name (w przykładzie: car) stanowi licznik obrotów pętli. Drugim wymaganym parametrem funkcji section jest loop. Wartością tego parametru jest tablica, względem której dokonujemy iteracji. Do elementów tablicy $cars odwołujemy się podając indeks car $car[car] Należy zwrócić baczną uwagę na parametry przekazywane pomiędzy skryptem a szablonem. W przykładzie jest to tablica zawierająca wyrazy Ford, Opel itd. W skrypcie nie występują żadne znaczniki HTML, zaś do komunikacji skryptu z szablonem stosujemy "surową" tablicę. Jest to jedno z najważniejszych przykazań warunkujących efektywne stosowanie szablonów. Zaawansowane możliwości sekcji Funkcja section posiada, poza omówionymi parametrami name oraz loop, dodatkowe parametry przedstawione w tabeli poniżej. Parametry te umożliwiają zmianę porządku przetwarzania tablicy jak również ograniczenie liczby obrotów pętli. Parametry funkcji section lp. Atrybut Typ Wymagany Wartość Opis domyślna 1. name string tak - nazwa sekcji 2. loop nazwa tak - nazwa zmiennej, która wyznacza liczbę obrotów pętli zmiennej 3. start integer nie 0 numer, od którego rozpocznie się pętla (wartość ujemna powoduje wyznaczenie numeru względem końca) 4. step integer nie 1 krok, o jaki zmieniamy wartość licznika w kolejnych obrotach pętli (wartość ujemna spowoduje przetwarzanie tablicy od końca do początku) 5. max integer nie 1 maksymalna liczba faktycznie wykonanych obrotów pętli 6. show boolean nie true wartość false powoduje, że sekcja nie zostanie w ogóle wykonana

7 Jeśli chcemy przetworzyć elementy tablicy zawierającej marki samochodów od elementu drugiego i uwzględniając co trzecią pozycję, wówczas wystarczy ustalić wartość atrybutu start=1 oraz step=3. Pamiętajmy, że elementy tablicy są numerowane od 0. Pierwszy element ma numer 0, drugi - 1, trzeci - 2, itd. {section name=car loop=$cars start=1 step=3} Jeśli tablica przekazana do szablonu zawierała następujące napisy Ford Opel Fiat BMW Mercedes Renault Citroen Volkswagen wtedy na wydruku wyprodukowanym przez sekcję pojawią się marki Opel (indeks: 1) Mercedes (indeks: 4 = 1 + 3) Volkswagen (indeks: 7 = 4 + 3) Jeśli chcemy przetworzyć elementy tablicy od ostatniego do pierwszego, wówczas wartość obu parametrów start i step powinna być równa -1 {section name=car loop=$cars start=-1 step=-1} Wydruk w tym przypadku zawierałby wszystkie marki w odwrotnej kolejności Volkswagen Citroen Renault Mercedes BMW Fiat Opel Ford Ustalając wartość atrybutu max ograniczamy liczbę faktycznie wydrukowanych wierszy. {section name=car loop=$cars max=3} Wartość 3 spowoduje, że na stronie WWW widoczne będą trzy pierwsze marki samochodów: Ford, Opel oraz Fiat. Natomiast wartość parametru show równa false spowoduje, że dana sekcja nie wyprodukuje żadnych wyników, bez względu na wartości pozostałych parametrów {section name=car loop=$cars start=2 step=2 show=false} Oprócz parametrów, sekcja może posiadać opcjonalny fragment {sectionelse}

8 {section...}...iteracja... {sectionelse}...jeśli iteracja była pusta... {/section} Treść szablonu umieszczona pomiędzy znacznikami {sectionelse} oraz {/section} będzie zawarta w stronie wynikowej wówczas, gdy żaden spośród elementów tablicy nie zostanie przetworzony przez iterację. Zmienne sekcji Oprócz atrybutów określanych w znaczniku otwierającym, sekcje posiadają również zmienne, dzięki którym mamy dostęp do informacji dotyczących numeru obrotu pętli. Typowym przykładem zastosowania zmiennych sekcji jest numeracja wierszy tabeli HTML. Składnia dostępu do zmiennych sekcji jest następująca {$smarty.section.nazwasekcji.nazwazmiennej} Nazwa sekcji jest równa wartości atrybutu name danej sekcji, zaś nazwa zmiennej jest jedną spośród dziesięciu dostępnych zmiennych. Zmienne sekcji lp. Nazwa Funkcja zmiennej 1. index Indeks przetwarzanego elementu tablicy. Pierwszy element ma numer 0 lub jest równy parametrowi start. Wartość zmiennej index jest zwiększana zgodnie z wartością atrybutu step. 2. index_prev Indeks poprzedniego elementu w tablicy. Zmienna ta uwzględnia parametr step. 3. index_next Indeks następnego elementu w tablicy. Zmienna ta uwzględnia parametr step. 4. iteration Numer obrotu pętli. Numeracja rozpoczyna się od 1 i jest zwiększana o jeden wraz z każdym przebiegiem iteracji. 5. first Wartość logiczna równa true tylko wówczas, gdy bieżącym jest pierwszy obrót pętli. 6. last Wartość logiczna równa true tylko wówczas, gdy bieżącym jest ostatni obrót pętli. 7. loop Wartość równa indeksowi ostatniego elementu tablicy. 8. total Wartość równa liczbie faktycznie przetworzonych elementów. Zmienne sekcji są przydatne między innymi przy numeracji wierszy tabeli jak również umożliwiają wyświetlanie liczby przetworzonych elementów tabeli. Poniższe rysunki przedstawiają wartości wszystkich zmiennych sekcji przetwarzających tablicę marek samochodów z poprzedniego przykładu. Pierwsza z ilustracji przedstawia wynik działania sekcji o parametrach start=3 step=2, zaś druga start=-1 step=-1.

9 Jeśli chcemy ponumerować wiersze tabeli oraz umieścić informację o liczbie faktycznie wyświetlonych wierszy, wówczas należy skorzystać ze zmiennych total oraz iteration. Poniższy szablon realizuje to zadanie <table border="1"> <tr> <td>lp.</td> <td>marka</td> </tr> {section name=car loop=$cars} <tr> <td>{$smarty.section.car.iteration}</td> <td>{$cars[car]}</td> </tr> {/section} </table> <p> liczba samochodów: {$smarty.section.car.total}. </p>

10 Wiele tablic oraz tablice wielowymiarowe Zastanówmy się, w jaki sposób przekazać do szablonu dane odczytane z pliku tekstowego. Plik nagrodynobla.txt zawiera informacje na temat nagród Nobla. Każdy wiersz opisuje jeden rok. Dane na temat kolejnych dziedzin są oddzielone dwukropkiem Za rok:fizyka:chemia:fizjologia i medycyna: :W.C. Roentgen (N):J.H. van't Hoff (Hol): :H.A. Lorentz (Hol),P. Zeeman (Hol): Zadanie to można rozwiązać na cztery nieco odmienne sposoby: stosując sześć niezależnych tablic, stosując jedną "poziomą" tablicę wielowymiarową, stosując jedną "pionową" tablicę wielowymiarową, stosując jedną asocjacyjną tablicę wielowymiarową. W zależności od konkretnej sytuacji, pewne z tych rozwiązań mogą być bardziej korzystne od innych. Iteracja wielu tablic Pierwszym najbardziej oczywistym podejściem jest utworzenie osobnej tablicy dla każdej kolumny danych zapisanej w pliku. W skrypcie przedstawionym na listingu 1 tworzymy sześć tablic $rok, $fizyka, $chemia, $medycyna, $literatura, $pokojowa, a następnie dodajemy do nich wartości odczytane z pliku. Tak ustalone tablice przekazujemy do szablonu sześciokrotnie wywołując metodę assign. Główną wadą takiego podejścia jest to, że powiązane ze sobą informacje przechowujemy w osobnych zmiennych. W ten sposób liczba różnych zmiennych występujących w skrypcie niepotrzebnie wzrośnie. Przetwarzanie wielu tablic w szablonie ilustruje listing 1. Do wyznaczenia liczby obrotów sekcji stosujemy dowolną z tablic (wszystkie tablice posiadają identyczną liczbę elementów), na przykład $rok. Wewnątrz sekcji odwołujemy się do każdej z tablic przekazując indeks sekcji. Odwołanie do tablicy $fizyka ma postać <TD>{$fizyka[nagrody]}</TD>

11 Listing 1. Skrypt przekazujący do szablonu sześć tablic. <?php $rok = array(); $fizyka = array(); $chemia = array(); $medycyna = array(); $literatura = array(); $pokojowa = array(); $plik = file('nagrodynobla.txt'); $tmpcount = count($plik); for ($i = 0; $i < $tmpcount; $i++) { $linia = explode(':', trim($plik[$i])); $rok[] = $linia[0]; $fizyka[] = $linia[1]; $chemia[] = $linia[2]; $medycyna[] = $linia[3]; $literatura[] = $linia[4]; $pokojowa[] = $linia[5]; } $smarty = new Smarty; $smarty -> assign('rok', $rok); $smarty -> assign('fizyka', $fizyka); $smarty -> assign('chemia', $chemia); $smarty -> assign('medycyna', $medycyna); $smarty -> assign('literatura', $literatura); $smarty -> assign('pokojowa', $pokojowa); $smarty -> display('index.tpl');?> Listing 2. Szablon stosujący sześć tablic. {section name=nagrody loop=$rok} <TR> <TD>{$rok[nagrody]}</TD> <TD>{$fizyka[nagrody]}</TD> <TD>{$chemia[nagrody]}</TD> <TD>{$medycyna[nagrody]}</TD> <TD>{$literatura[nagrody]}</TD> <TD>{$pokojowa[nagrody]}</TD> </TR> {/section}

12 Tablica "pionowa" Niewielkim kosztem możemy wyeliminować wadę pierwszego rozwiązania. Jeśli sześć tablic $rok, $fizyka, $chemia, $medycyna, $literatura, $pokojowa wstawiamy do jednej tablicy $tabela $tabela = array( $rok, $fizyka, $chemia, $medycyna, $literatura, $pokojowa ); wtedy przekazanie kompletu danych do szablonu będzie wymagało jednokrotnego wywołania metody assign. Wszystkie informacje są przechowywane w jednej tablicy dwuwymiarowej. Tablicę taką nazwiemy "pionową", gdyż jej współrzędne zawierają kolumny danych. Na przykład wszyscy fizycy są przechowywani w tablicy $tabela[1], zaś pisarze w tablicy $tabela[4]. Tablice pionowe okażą się bardzo wygodne przy stosowaniu funkcji dotyczących list wyboru. Listing 3. Szablon stosujący tablicę "pionową". {section name=nagrody loop=$tabela[0]} <TR> <TD>{$tabela[0][nagrody]}</TD> <TD>{$tabela[1][nagrody]}</TD> <TD>{$tabela[2][nagrody]}</TD> <TD>{$tabela[3][nagrody]}</TD> <TD>{$tabela[4][nagrody]}</TD> <TD>{$tabela[5][nagrody]}</TD> </TR> {/section} Szablon przetwarzający tablice wielowymiarową $tabela jest widoczny na listingu 3. Zmienną wyznaczająca ilość obrotów sekcji jest pierwsza współrzędna tablicy (zawierająca lata) loop=$tabela[0]. Natomiast do elementów tablicy odwołujemy się, podobnie jak w php, za pomocą dwukrotnie użytych nawiasów kwadratowych <TD>{$tabela[0][nagrody]}</TD> Tablica "pozioma" Tablica "pozioma", tym się różni od pionowej, że jej elementy odpowiadają wierszom, a nie kolumnom danych. Przygotowanie tablicy na podstawie pliku tekstowego przebiega nieco inaczej. Listing 4 ilustruje różnicę. Natomiast szablon jest niemal identyczny. Różni się wyłącznie kolejnością indeksów <TD>{$tabela[nagrody][0]}</TD> oraz parametrem loop=$tabela.

13 Listing 4. Skrypt przekazujący do szablonu tablicę "poziomą". <?php $tabela = array(); $plik = file('nagrodynobla.txt'); $tmpcount = count($plik); for ($i = 0; $i < $tmpcount; $i++) { $linia = explode(':', trim($plik[$i])); } $tabela[] = $linia; $smarty = new Smarty; $smarty -> assign('tabela', $tabela); $smarty -> display('index.tpl');?> Tablica asocjacyjna Ostatni sposób przekazywania danych wielowymiarowych do szablonu stosuje tablice asocjacyjne. W tablicach takich indeksem elementu nie jest liczba całkowita, a napis. Wewnątrz pętli for widocznej na listingu 5, tworzona jest tablica asocjacyjna $tmp. W tablicy tej indeksami są napisy 'rok', 'fizyka', 'chemia' itd. Tablica $tmp jest dodawana jako ostatni element tablicy $nagrody. Listing 5. Skrypt smarty-ex-6-d przekazujący do szablonu tablicę wielowymiarową zawierającą tablice asocjacyjne. <?php $nagrody = array(); $plik = file('nagrodynobla.txt'); $tmpcount = count($plik); for ($i = 0; $i < $tmpcount; $i++) { $linia = explode(':', trim($plik[$i])); $tmp = array( 'rok' => $linia[0], 'fizyka' => $linia[1], 'chemia' => $linia[2], 'medycyna' => $linia[3], 'literatura' => $linia[4], 'pokojowa' => $linia[5] ); } $nagrody [] = $tmp; $smarty = new Smarty; $smarty -> assign('nagrody', $nagrody); $smarty -> display('index.tpl');?>

14 Sekcja iterująca tablicę $nagrody odwołuje się do pól stosując składnię <td>{$nagrody[nobel].fizyka}</td> Kompletna sekcja została przedstawiona na listingu 6. Listing 6. Szablon. {section name=nobel loop=$nagrody} <tr> <td>{$nagrody[nobel].rok}</td> <td>{$nagrody[nobel].fizyka}</td> <td>{$nagrody[nobel].chemia}</td> <td>{$nagrody[nobel].medycyna}</td> <td>{$nagrody[nobel].literatura}</td> <td>{$nagrody[nobel].pokojowa}</td> </tr> {/section} Przedstawione cztery metody przekazywania danych wielowymiarowych możemy stosować wymiennie w zależności od potrzeb. Przykład - Piosenki - jednopoziomowe menu Folder piosenki zawiera pliki tekstowe z tekstami piosenek dla dzieci. Zadanie polega na przygotowaniu strony prezentującej piosenki w postaci strony WWW. Strona ma posiadać menu składające się z tytułów piosenek. Wybór piosenki z menu ma powodować wyświetlenie jej treści obok menu. Stosując szablony musimy ustalić interfejs komunikacyjny skryptu z szablonem. Szablon musi otrzymać tekst wybranej piosenki oraz tablicę zawierającą tytuły wszystkich dostępnych piosenek. Po odczytaniu informacji z plików skrypt php przekaże do szablonu dwie zmienne $piosenki oraz $wybrana $smarty -> assign('piosenki', $smarty -> assign('wybrana', $piosenki); $wybrana); W samym szablonie znajdzie się jedna sekcja przetwarzająca tablicę $piosenki oraz instrukcja drukująca wartość zmiennej $wybrana. Hiperłącza umieszczane w spisie piosenek przekazują metodą GET do skryptu index.php zmienną id. Identyfikatorem piosenki jest jej indeks w tablicy. Jeśli piosenki pochodzą z bazy danych i ich identyfikatory są zapisane w bazie danych, wówczas tablica piosenki powinna być wielowymiarowa i zawierać oprócz tytułów również identyfikatory.

15 Listing 10. Szablon strony z jednopoziomowym menu. <table> <tr> <td> {section name=menu loop=$piosenki} <a href="index.php?id={$smarty.section.menu.index}"> {$piosenki[menu]}</a><br> {/section} </td> <td>{$wybrana nl2br}</td> </tr> </table> Funkcje if, ifelse oraz else Warunkowe przetwarzanie fragmentu szablonu Smarty realizujemy stosując funkcje if, ifelse oraz else. Dopuszczalne są trzy warianty składni powyższych funkcji. Pierwszy wariant jest najprostszy. Określamy warunek logiczny war. W przypadku, gdy warunek jest prawdziwy wówczas fragment szablonu fragment-szablonu jest przetwarzany, w przeciwnym razie fragment-szablonu zostanie pominięty {if war} fragment-szablonu {/if} Drugi wariant składniowy funkcji if zawiera opcjonalne wywołanie funkcji else. Jeśli warunek war jest spełniony to przetworzony zostanie pierwszy-fragment-szablonu. W przypadku, gdy warunek war jest fałszywy, przetwarzamy fragment drugi-fragment-szablonu {if war} pierwszy-fragment-szablonu {else} drugi-fragment-szablonu {/if} Ostatni możliwy wariant składniowy funkcji if zawiera wywołania funkcji elseif. Funkcję elseif możemy wywoływać wielokrotnie wewnątrz bloku ograniczonego wywołaniami {if} oraz {/if}. Pierwszy spośród warunków war1, war2, war3 oraz war4, który będzie spełniony, spowoduje wykonanie odpowiadającego mu fragmentu i zakończenie całej funkcji if. Wywołanie funkcji else jest oczywiście opcjonalne.

16 {if war1} pierwszy-fragment-szablonu {elseif war2} drugi-fragment-szablonu {elseif war3} trzeci-fragment-szablonu {else} czwarty-fragment-szablonu {/if} Warunek funkcji if oraz elseif Warunek logiczny będący parametrem funkcji if oraz elseif możemy zapisać stosując notację php. Warunek szablonu Smarty różni się od warunku języka php dwoma aspektami. w szablonie Smarty operatory porównania muszą być otoczone spacjami nie możemy użyć operatorów identyczności === i nieidentyczności!==. Wprawdzie autorzy systemu Smarty zdecydowali się na wzbogacenie repertuaru operatorów o te znane z języków shell systemów U*ix (np. ne, lt czy gt), to jednak wydaje się, że ograniczenie się do operatorów języka php ułatwi zarówno tworzenie jak i późniejsze usuwanie błędów czy analizę szablonów. Zatem jeśli zmienna {$naglowek} przekazana ze skryptu php ma sterować wyświetlaniem fragmentu szablonu (wartość równa 1 zmiennej mówi, że nagłówek ma być widoczny), wówczas należy użyć funkcji if w następujący sposób {if $naglowek == 1} szablon-naglowka {/if} Natomiast jeśli zmienna {$menuitem} decyduje o wyborze opcji menu, wówczas zawartość strony możemy uzyskać stosując szablon {if $menuitem == 0} szablon-artykulu {elseif $menuitem == 1} szablon-szablon-opisu {elseif $menuitem == 2} szablon-tutoriala {else} szablon-strony-glownej {/if} Przejdźmy do praktycznego wykorzystania funkcji if.

17 Menu strony i wybrany element Przygotujmy serwis prezentujący piosenki zespołu The Beatles. Płyta p.t. "Revolver" zawiera 14 utworów. Tytuły piosenek mają stanowić menu strony przedstawione na ilustracji 1. Po wybraniu tytułu piosenki z menu, na stronie powinien pojawić się tekst utworu. Tekst utworu wyświetlamy w tym samym miejscu, w którym znajdowało się menu. Wygląd strony po wybraniu piosenki p.t. "And Your Bird Can Sing" został przedstawiony na rysunku 2. Przygotowanie serwisu rozpoczynamy od organizacji zmiennych przekazywanych w kolejnych zapytaniach. W tym przypadku wystarczy pojedyncza zmienna. Nazwiemy ją id. Hiperłącza stosowane w aplikacji będą zatem miały postać <a href="index.php?id=5">...</a> Dane do serwisu stanowią pliki tekstowe i jeden obraz. Plik revolver.jpg przedstawia okładkę płyty, zaś plik revolver.txt zawiera listę piosenek zawartych na płycie. Trzy pierwsze linijki pliku revolver.txt są następujące Taxman 2:36 taxman.txt Eleanor Rigby 2:11 eleanor_rigby.txt I'm Only Sleeping 2:58 i_m_only_sleeping.txt... Każda linijka zawiera tytuł piosenki, czas trwania oraz nazwę pliku tekstowego, w którym jest zapisany tekst utworu. Zmienna id przekazywana w zapytaniu będzie wskazywała numer wybranej piosenki. Piosenki numerujemy od 0, dzięki temu numeracja będzie zgodna z indeksem danej piosenki w tablicy po wywołaniu funkcji file. Poprawnymi wartościami zmiennej id są liczby całkowite z przedziału od 0 do 13 włącznie. Po ustaleniu zmiennej id przekazywanej w zapytaniu oraz jej dopuszczalnych wartości ustalamy dane przekazywane ze skryptu php do szablonu. Danymi będą tablica zawierająca tytuły wszystkich piosenek (zmienna $revolver), informacja o tym, czy jakaś piosenka jest wybrana (zmienna $wybrany), numer wybranej piosenki (zmienna $numer), tekst wybranej piosenki (zmienna $tekst). Możemy przystąpić do zaprogramowania skryptu index.php. Najpierw ustalamy domyślne wartości zmiennych szablonu.

18 $wybrany = false; $tekst = ''; $numer = 0; Następnie wczytujemy zawartość pliku revolver.txt i kroimy kolejne linijki znakiem $revolver = file('dane/revolver.txt'); $liczba = count($revolver); for ($i = 0; $i < $liczba; $i++) { $linia = explode(' ', trim($revolver[$i])); $revolver[$i] = $linia; } Kolejny krok to weryfikacja wartości zmiennej id i ewentualne ustalenie wartości zmiennych szablonu $wybrany, $numer oraz $tekst if (isset($_get['id'])) { if (isvalidintegerfrom($_get['id'], 0, $liczba)) { $numer = $_GET['id']; $wybrany = true; $tekst = file_get_contents('dane/'. $revolver[$numer][2]); } } Wreszcie tworzymy obiekt Smarty i przekazujemy do niego cztery zmienne $smarty = new Smarty; $smarty -> assign('revolver', $revolver); $smarty -> assign('wybrany', $wybrany); $smarty -> assign('tekst', $tekst); $smarty -> assign('numer', $numer); $smarty -> display('index.tpl');

I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014

I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014 Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 1 / 33 Smarty Igor Wojnicki Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 28 marca 2014 $Id: smarty.tex,v 1.2 2013/06/22 22:09:45 wojnicki

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

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

I.Wojnicki, Tech.Inter.

I.Wojnicki, Tech.Inter. Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 1 / 31 Frameworks oraz Serwery Aplikacji Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 28 maja 2012 Igor Wojnicki (AGH, KA) Frameworks

Bardziej szczegółowo

Kompozycja Proceduralna

Kompozycja Proceduralna Kompozycja Proceduralna Temat 11: Mechanizm szablonów stron dynamicznych na przykładzie PHP Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych 1 Plan prezentacji Role autorów w tworzeniu

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

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

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

L eszek Sewastianowicz P odstawy systemu szablonów Smarty 1 www.serwan.pl

L eszek Sewastianowicz P odstawy systemu szablonów Smarty 1 www.serwan.pl 1 www.serwan.pl Copyright 2009 Leszek Sewastianowicz wszelkie prawa zastrzeżone trener@serwan.pl www.serwan.pl Spis treści Wprowadzenie do systemu szablonów Smarty...3 Instalacja...3 Komentarze...3 Przekazywanie

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

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

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

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia Dynamiczne przetwarzanie stron dr Beata Kuźmińska-Sołśnia KLIENT Witaj INTERNET SERWER Plik HTML Witaj wyświetlanie przez przeglądarkę Witaj! Serwer WWW komputer

Bardziej szczegółowo

Napisy w PHP. Drukowanie napisów instrukcją echo

Napisy w PHP. Drukowanie napisów instrukcją echo Napisy w PHP. Drukowanie napisów instrukcją echo 1. Ćwiczenia do samodzielnego wykonania Wszystkie poniższe ćwiczenia należy samodzielnie wykonać wpisując w edytorze bez stosowania techniki kopiuj-wklej.

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

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

Oczywiście plik musi mieć rozszerzenie *.php

Oczywiście plik musi mieć rozszerzenie *.php Oczywiście plik musi mieć rozszerzenie *.php Znaczniki PHP komunikują serwerowi gdzie rozpoczyna się i kończy kod PHP. Tekst między nimi jest interpretowany jako kod PHP, natomiast poza nimi jako kod HTML.

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

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

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

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

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

ZMIENNE. Podstawy PHP

ZMIENNE. Podstawy PHP ZMIENNE Podstawy PHP zmienna - to obiekt w programowaniu, który przechowuje różnego rodzaju dane niezbędne do działania programu. Zmienna podczas działania programu może zmieniad swoje wartości (jak wskazuje

Bardziej szczegółowo

Trochę o plikach wsadowych (Windows)

Trochę o plikach wsadowych (Windows) Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

media Blitz wydajne sytemy szablonów

media Blitz wydajne sytemy szablonów Blitz wydajne sytemy szablonów Dlaczego stosować szablony? MVC Kontroler Model Widok Co to jest Blitz? Rozszerzenie PHP stworzone przez Alexey A. Rybak a. Regularnie rozwijany od 2005 roku. Szybki i lekki

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

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

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. Reformuje on znane zasady języka HTML 4 w taki sposób, aby były zgodne z XML (HTML przetłumaczony na XML).

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2] 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 JavaScript tak

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

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Instrukcja numer 06 Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Zadanie 06 Pętle w skryptach wiersza poleceń Zadanie omawia zagadnienia związane ze stosowaniem instrukcji

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

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

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

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

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Skrypty powłoki w systemie Linux

Skrypty powłoki w systemie Linux Skrypty powłoki w systemie Linux Wykonywanie codziennych czynności w systemie operacyjnym jest męczące, gdy za każdym razem trzeba wpisywać te same zestawy komend. Znacznie wygodniej byłoby zapisać je

Bardziej szczegółowo

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

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

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop. 2012 Spis treści Wstęp 9 1 HTML 5 i XHTML w pytaniach i odpowiedziach 13 Co to jest HTML 5? 13 Co to jest XHTML? 15 Czy strony utworzone w HTML

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

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

Bardziej szczegółowo

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz

Bardziej szczegółowo

JAVAScript w dokumentach HTML (2)

JAVAScript w dokumentach HTML (2) Informatyka ćw.6 JAVAScript w dokumentach HTML (2) Interakcyjne wprowadzanie danych Jednym ze sposobów jest stosowanie metody prompt dla wbudowanego obiektu window: zmienna= prompt("tekst zachęty, np.

Bardziej szczegółowo

SSK - Techniki Internetowe

SSK - Techniki Internetowe SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Plan. Raport. Tworzenie raportu z kreatora (1/3) 3 Budowa prostych raportów opartych o bazę danych Plan Co to jest raport? Tworzenie za pomocą kreatora Tworzenie opartego o polecenie SQL Edycja atrybutów Atrybuty regionu Atrybuty Atrybuty kolumn 2 Raport

Bardziej szczegółowo

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ; Do wyświetlania tekstu służy instrukcja echo echo Hello world ; PHP język ze słabą kontrolą typów. W języku php w przeciwieństwie do c++ nie musimy podawać typu zmiennej podczas jej deklaracji. Tworzenie

Bardziej szczegółowo

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

Tablice. Jones Stygar na tropie zmiennych

Tablice. Jones Stygar na tropie zmiennych Tablice Jones Stygar na tropie zmiennych Czym jest tablica? Obecnie praktycznie wszystkie języki programowania obsługują tablice. W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg (lub wektor),

Bardziej szczegółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

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

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

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

do drukowania tekstu służy funkcja echo <?php echo hello world!;?> jeżeli użyjemy jej kilka razy: <?php S t r o n a 1 Podstawy PHP 1. stwórz plik tekstowy o nazwie index.php Zawartość pliku musi mieć postać: Znaczniki kodu php: Przykładowy kod typu "hello world!" Wpisz powyższy kod do plkiku index.php Skopiuj

Bardziej szczegółowo

Pracownia Komputerowa wykład III

Pracownia Komputerowa wykład III Pracownia Komputerowa wykład III dr Magdalena Posiadała-Zezula dr Jan Suffczyński 1 Powłoki - rodzaje! W Linux ie mamy kilka powłok do wyboru:! sh : Bourne Shell, oryginalna powłoka systemu unix! csh :

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

Bardziej szczegółowo

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni, Baltie Zadanie 1. Budowanie W trybie Budowanie wybuduj domek jak na rysunku. Przedmioty do wybudowania domku weź z banku 0. Zadanie 2. Czarowanie sterowanie i powtarzanie W trybie Czarowanie z pomocą czarodzieja

Bardziej szczegółowo

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania, SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Wykład 3 1 SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Przykład Bingo 2 Treść przykładu Jak wygląda karta do

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

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

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

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

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

Technologie Informacyjne - Linux 3

Technologie Informacyjne - Linux 3 Technologie Informacyjne - 3 Instytut Matematyki Uniwersytet Gdański Tryby plików i uprawnienia Każdy z plików uniksowych posiada zbiór uprawnień określajacych, czy możemy dany plik odczytać (r), zapisać

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

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0 Słowem wstępu Część rodziny języków XSL Standard: W3C XSLT 1.0-1999 razem XPath 1.0 XSLT 2.0-2007 Trwają prace nad XSLT 3.0 Problem Zakładane przez XML usunięcie danych dotyczących prezentacji pociąga

Bardziej szczegółowo

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4 Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW 1. Zapis i odczyt sygnałów pomiarowych Do zapisu

Bardziej szczegółowo