Obsługa klawiszy specjalnych
|
|
- Leszek Wrona
- 8 lat temu
- Przeglądów:
Transkrypt
1 13 Obsługa klawiszy specjalnych Oprócz klawiszy alfanumerycznych na klawiaturze peceta jest sporo klawiszy specjalnych. Najlepiej stosować klawisze specjalne zgodnie z ich typowym przeznaczeniem O klawiszach specjalnych Ogólnie rzecz biorąc, klawisze specjalne generują zamiast pojedynczego bajta (jak klawisz z literą) kody dwubajtowe. Zwyczajny klawisz, którego bajt może być zdeszyfrowany przy użyciu kodu ASCII, możemy wczytywać tak: Var Klawisz : Char;... Klawisz := ReadKey; i porównywać go z zadaną wartością tak: If (Klawisz = #27) Then... lub tak: If (Klawisz = A ) Then... Aby program poprawnie reagował na klawisz (dowolny) naciśnięty przez użytkownika, możemy posłużyć się funkcją KeyPressed(). Ta funkcja tylko sprawdza, czy został naciśnięty jakikolwiek klawisz (technicznie rzecz biorąc czy w buforze klawiatury oczekuje znak), ale nie wczytuje tego znaku z bufora. Oczekujący znak pozostaje w kolejce i najbliższa funkcja ReadKey() może go wczytać. Możemy zatem wywoływać funkcję ReadKey() tylko wtedy, gdy użytkownik rzeczywiście coś nacisnął. Jeśli nie, program może nadal działać. Na listingu zaprezentowano program przykładowy.
2 Rozdział 13 t Obsługa klawiszy specjalnych Listing L1301.PAS Uses Crt; Var Znak : Char; BEGIN Repeat Write(. ); If KeyPressed Then If (Znak = A ) Then Break; Until (False); END. Program będzie drukował kropki, nie czekając na naciśnięcie klawisza, ale jeśli A zostanie naciśnięte, natychmiast posłusznie zareaguje. W podobnie złożony sposób musimy wczytywać kody klawiszy, jeśli chcemy poprawnie odróżnić klawisze zwykłe od specjalnych i rozpoznać interesujące nas klawisze specjalne. Prosty program wykrywający takie klawisze może wyglądać na przykład tak, jak na listingu L1302.PAS. Zanim jednak zostanie przytoczony kompletny listing, omówimy pewną sztuczkę techniczną użytą w tym przykładzie. Repeat Write(. ); If KeyPressed Then If (Znak = A ) Then Break; Until (False); Jest to konstrukcja pętli nieskończonej, którą przerywa od wewnątrz instrukcja Break (przerwij). Ten fragment kodu jest równoważny zapisowi: Repeat Write(. ); If KeyPressed Then Until (Znak = A ); Zauważmy, że analogiczną, przerywaną od wewnątrz pętlę programową można skonstruować, posługując się słowem kluczowym While (dopóki). Są jednak dwie istotne 12
3 13.1. O klawiszach specjalnych różnice. Po pierwsze, zamiast False mamy True; po drugie, warunek jest sprawdzany na wejściu do pętli, a nie na wyjściu z niej. While (True) Do Write(. ); If KeyPressed Then If (Znak = A ) Then Break; W wielu nowoczesnych językach programowania (nie tylko w Pascalu, także w C, C++ czy Javie) oprócz słowa Break istnieje jeszcze jedno słowo o podobnym przeznaczeniu, stanowiące swoiste uzupełnienie słowa Break. Chodzi mianowicie o słowo Continue (kontynuować), ale w tym momencie jeszcze go nie użyjemy. Listing L1302.PAS Uses Crt; Var Znak : Char; BEGIN WriteLn( Rozpoznaje klawisze specjalne... ); Repeat If KeyPressed Then If (Znak = #0) Then WriteLn( Klawisz specjalny! ); If (Znak = #27) Then Break; Until (False); END. Ten kod pozwala wykryć m.in. klawisze: qq funkcyjne F1 F10 (tabela 13.1), qq kursora (strzałki), q q Insert PageDown. Sprawdziliśmy, że pierwszy bajt jest zerem, został więc pominięty w tabelach 13.1 i Ponieważ jednak klawisze sterujące mogą być naciskane łącznie z klawiszami modyfikującymi (Shift, Alt, Ctrl), kodów jest sporo. 13
4 Rozdział 13 t Obsługa klawiszy specjalnych Tabela Kody klawiszy funkcyjnych F1 F10 Klawisz Bez modyfikatora +Shift +Ctrl +Alt F F F F F F F F F F Tabela Kody klawiszy kursora (strzałek) Klawisz Bez modyfikatora +Ctrl W lewo W prawo W górę W dół Niektóre klawisze specjalne powiązane są z kodami sterującymi ASCII (zakres od 0 do 31) i w związku z tym nie generują kodu dwubajtowego, lecz jednobajtowy. Takie znaki sterujące wraz z odpowiadającą im kombinacją (np. Ctrl+C = ^C, Ctrl+Z = ^Z) podano w tabeli Tabela Jednobajtowe znaki sterujące Oznaczenie Kod Działanie ^@ (NUL) 0 Puste miejsce ^C (Break) 3 Przerwij (ETX koniec tekstu) ^G (Bell) 7 Beep ^H (BackSpace) 8 Cofnij kursor ^I (Horizontal Tab) 9 Tabulacja 14
5 13.1. O klawiszach specjalnych ^J (Line Feed) 10 O jeden wiersz w dół ^L (Form Feed) 12 O stronę w dół ^M (CR) 13 Kursor na początek wiersza ^P (Del) 16 Usuń znak ^Z (EOF) 26 Koniec pliku tekstowego ^] (Esc) 27 Esc Spacja 32 Odstęp Ctrl+Enter 10 Jak ^J Przechodzenie między kolejnymi oknami Turbo Pascala możesz realizować za pomocą klawisza Alt+numer okna, na przykład Alt+1, Alt+2 (tabela 13.4). Dzieje się tak, ponieważ klawisze cyfr także w połączeniu z klawiszem Alt generują specjalne kody dwubajtowe. Ostatnia, dodatkowa kombinacja zamieszczona w tej tabeli (Shift+Tab) jest często stosowana do przechodzenia między elementami sterującymi okienek dialogowych (rysunek 22.3). Tabela Kody dwubajtowe tworzone z wykorzystaniem klawisza Alt Klawisze Kod Klawisze Kod Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Shift+Tab 0 15 W tabeli 13.5 zebrane zostały niektóre specjalne klawisze sterujące i ich kody. Tabela Kody specjalnych klawiszy sterujących Klawisz Bez modyfikatora +Shift +Ctrl Home End PageUp PageDown
6 Rozdział 13 t Obsługa klawiszy specjalnych Insert Del Enter 13, Działanie innych kombinacji można sprawdzić za pomocą programu testującego. Listing L1303.PAS Uses Crt; Var Znak : Char; BEGIN WriteLn( Wprowadz klawisz lub kombinacje klawiszy: ); Repeat If ( Ord(Znak) In [1..31] ) Then WriteLn( Znak sterujacy ); If ( Ord(Znak) In [ ] ) Then Write(#13+#10+ Zwykly znak: ); If ( Ord(Znak) In [ ] ) Then WriteLn( Rozszerzony kod ASCII ); If ( Ord(Znak) In [ ] ) Then WriteLn( Znak semigraficzny ); If ( Ord(Znak) In [ ] ) Then Write(Znak); If (Znak = #0) Then If ( Ord(Znak) In [59..68] ) Then WriteLn( Klawisz F, Ord(Znak) - 58) Else Write(#13+#10+ Inny klawisz specjalny... ); Until (Znak = #27); END. Wyjaśnijmy konstrukcję wyrażenia warunkowego: If ( Ord(Znak) In [1..31] ) Then WriteLn( Znak sterujacy ); Funkcja Ord(Znak), której nazwa pochodzi od ORDering number (numer kolejny, porządkowy), zwraca numer w kodzie ASCII wczytanego znaku przechowywanego w zmiennej Znak. Ten numer jest następnie porównywany z zadanym zakresem:... In [1..31] 16
7 13.2. Instrukcje While i Case Jeśli liczba należy do przedziału 1 31, następuje wykonanie tego, co znajduje się po Then (tu: wydrukowanie stosownego komunikatu). Oto druga nieco bardziej skomplikowana konstrukcja:... Then WriteLn( Klawisz F, Ord(Znak) - 58) Jest to wywołanie procedury wyprowadzającej na ekran z dwoma parametrami. Pierwszy parametr łańcuch znaków jest oczywisty: WriteLn( Klawisz F,... );. Drugi stanowi wyrażenie, którego wartość program musi obliczyć, a następnie wyprowadzić wynik na ekran: WriteLn(..., Ord(Znak) - 58 );. Skoro klawisze funkcyjne mają kody, na przykład F1 0 59, F2 0 60, to po odjęciu od kodu liczby 58 uzyskamy dodatkową informację numer klawisza funkcyjnego: q q = 1 --> F1, q q = 2 --> F2 itd. I ostatnia sztuczka techniczna zastosowana w programie. Parametry przekazywane przy wywołaniu funkcji lub procedury mogą być wyrażeniami. Jeśli takie wyrażenie jest wyrażeniem arytmetycznym typu Write( 2+3 ), wszystko jest oczywiste. Wyniki takich wyrażeń obliczane są najpierw, a następnie to te właśnie wyniki przekazywane są jako parametry procedurze. W naszym przypadku wyrażenie ma postać: Write(#13+#10+ Zwykly znak: ); Oznacza ono dodawanie łańcuchów znakowych. Zapis #13+#10+ Zwykly znak: oznacza: Do napisu Zwykły znak: dodaj na początku kod specjalny 13, 10, czyli przed wyprowadzeniem napisu przenieś kursor na początek nowego wiersza. Posługując się programem tego typu, możemy wykrywać naciśnięcie dowolnej kombinacji klawiszy, jeśli tylko ma ona własny unikalny kod Instrukcje While i Case Rozważanie kolejnych możliwych wariantów można przeprowadzić za pomocą tzw. drabinki, posługując się konstrukcjami warunkowymi typu: If ( warunek1 ) Then... Else If ( warunek2 ) Then... Else... Jednak często znacznie wygodniejsze bywa zastosowanie słowa kluczowego Case (wariant). Sposób zastosowania tej instrukcji przedstawiony został na prostym przykładzie. Listing L1304.PAS Uses Crt; Var Znak : Char; BEGIN 17
8 Rozdział 13 t Obsługa klawiszy specjalnych While (Znak <> #27) Do Case Znak Of A.. Z, a.. z : WriteLn( Litera ); : WriteLn( Cyfra ); +, -, *, / : WriteLn( Operator ); Else WriteLn( Znak Specjalny ); END. Zwróćmy uwagę, że konstrukcja: Case ZMIENNA Of wariant1: instrukcje; wariant2: instrukcje;... Else instrukcje; End musi być zakończona własnym słowem End. Instrukcja pętli While sprawdza warunek na początku (na wejściu) i wykonuje pętlę programową, dopóki warunek jest spełniony. While (warunek) Do... A oto poprzedni przykład zmodyfikowany za pomocą konstrukcji Case: Listing L1305.PAS Uses Crt; Var Znak : Char; BEGIN Write(Ord(Znak)); ReadKey; 18
9 13.2. Instrukcje While i Case WriteLn( Wprowadz klawisz lub kombinacje klawiszy: ); While (Znak <> #27) Do Case (Ord(Znak)) Of 1..31: WriteLn( Znak sterujacy ); : Write(#13+#10+ Zwykly znak. ); : WriteLn( Rozszerzony kod ASCII ); : WriteLn( Znak semigraficzny ); { : Write(Znak); <-- Dublowanie! } If (Znak = #0) Then Case (Ord(Znak)) Of : WriteLn( Klawisz F, Ord(Znak) - 58) Else Write(#13+#10+ Inny klawisz specjalny... ); END. Dodana na początku sekwencja: Write(Ord(Znak)); ReadKey; ma na celu pokazanie, że już w chwili, gdy warunek wykonania pętli jest sprawdzany: While (Znak <> #27) Do zmienna Znak ma nadaną automatycznie przez kompilator Pascala wartość początkową = 0. Gdyby tak nie było (nie wszystkie kompilatory wstępnie zerują zmienne), zmienna Znak mogłaby mieć nieokreśloną przypadkową wartość. Jest to efekt o tyle niebezpieczny, że praktyka niezainicjowania zmiennej przed jej użyciem może spowodować wadliwą pracę programu. Prawidłowa praktyka powinna wyglądać tak: 19
10 Rozdział 13 t Obsługa klawiszy specjalnych Znak := #0; While (Znak <> #27) Do... Drugi efekt uboczny, na jaki należy tu zwrócić uwagę, to zagadnienie nakładania się lub wyłączności zakresów wartości. Jest to cecha zależna od wersji kompilatora. W Turbo Pascalu 7 i w Delphi przedziały wartości rozpatrywane wewnątrz instrukcji Case nie mogą się nakładać: : Write(#13+#10+ Zwykly znak. ); : WriteLn( Rozszerzony kod ASCII ); : WriteLn( Znak semigraficzny ); { : Write(Znak); <-- Dublowanie! } Dlatego właśnie ta część programu musiała być ujęta w nawiasy i stać się komentarzem. Klawisze kursora można w wygodny sposób zastosować także do zmiany prędkości animacji grafiki. Oto fragment kodu, w którym strzałki przyspieszają lub spowalniają przełączanie stron. Zwloka := 100; If (KeyPressed) Then Ch := ReadKey; If (Ch = #0) Then Ch := ReadKey; Case (Ord(Ch)) Of 75 : Inc (Zwloka); 77 : Dec (Zwloka);... SetVisualPage(P1); Delay(Zwloka); SetVisualPage(P2); Delay(Zwloka);... 20
Programowanie strukturalne i obiektowe. Podrêcznik do nauki zawodu technik informatyk
Idź do Spis treści Przykładowy rozdział Katalog książek Katalog online Zamów drukowany katalog Twój koszyk Dodaj do koszyka Cennik i informacje Zamów informacje o nowościach Zamów cennik Czytelnia Fragmenty
Bardziej szczegółowoProgramowanie w Turbo Pascal
Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji
Bardziej szczegółowoWykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe
Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;
Bardziej szczegółowoINSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};
INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE
Bardziej szczegółowoKlawisze funkcyjne w OpenOffice.org Writer
Klawisze funkcyjne w OpenOffice.org Writer F2 Ctrl + F2 F3 Ctrl + F3 F4 Shift + F4 F5 Ctrl + Shift + F5 F7 Ctrl + F7 F8 Ctrl + F8 Shift + F8 Ctrl+Shift+F8 F9 Ctrl + F9 Shift + F9 Ctrl + Shift + F9 Ctrl
Bardziej szczegółowoWprowadzenie komentarzy do programu
Wprowadzenie komentarzy do programu W programach mogą wystąpić objaśnienia, uwagi zamykane w klamrach { } lub nawiasach z gwiazdką (* *). Komentarze ułatwiają zrozumienie programów. Przyjmijmy, że komentarze
Bardziej szczegółowoOpis klawiatury komputerowej
Spis treści utworzony przez NN Opis klawiatury komputerowej...1 1.1.Esc...1 1.2.F1 F12...1 1.3.Backspace...1 1.4.Tab...1 1.5.Caps Lock...2 1.6.Enter...2 1.7.Shift...2 1.8.Ctrl...2 1.9.Alt...2 1.10.Caps
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoPo 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ółowoP R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne
1. Wstęp Turbo Pascal jest jednym z najpopularniejszych języków programowania wyższego poziomu. Program napisany w tym języku jest ciągiem zdań opisującym określony algorytm. Nazywamy go postacią źródłową
Bardziej szczegółowoOpis: 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ółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegółowoPascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
Bardziej szczegółowoSkrypty 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ółowo1 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ółowoSpis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Bardziej szczegółowoprzedmiot 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ółowoWykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1
Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoPodstawy 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ółowoKlawiatura komputerowa.
Klawiatura komputerowa. Zdjęcie: www.xpec.pl Klawiatura komputerowa. Klawiatura komputerowa uporządkowany zestaw klawiszy służący do ręcznego sterowania lub wprowadzania danych do komputera. Najpopularniejszym
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowoWstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
Bardziej szczegółowoProgramowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego
Bardziej szczegółowoWIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}
1 WIADOMOŚCI WSTĘPNE Programowanie komputerów najogólniej mówiąc polega na zapisaniu pewniej listy poleceń do wykonania przez komputer w pewnym umownym języku Taką listę poleceń nazywamy programem Program
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowo1 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ółowoLaboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
Bardziej szczegółowoLaboratorium 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ółowoEdytor tekstu MS Office Word
Edytor tekstu program komputerowy ukierunkowany zasadniczo na samo wprowadzanie lub edycję tekstu, a nie na nadawanie mu zaawansowanych cech formatowania (do czego służy procesor tekstu). W zależności
Bardziej szczegółowoMETODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Bardziej szczegółowo1. Wprowadzanie danych z klawiatury funkcja scanf
1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),
Bardziej szczegółowoEdytor tekstu Notatnik
Temat: komputerowe pisanie w edytorze tekstu 1 (pierwsze dokumenty tekstowe) Edytor tekstu umożliwia tworzenie dokumentu tekstowego, jego wielokrotne redagowanie (pisanie, modyfikowanie istniejącego tekstu,
Bardziej szczegółowoUwagi 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ółowoPASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka
PASCAL Kompendium Środowisko TURBO PASCAL Skróty klawiaturowe Edycja kodu F1 Pomoc spis treści CTRL + F1 Pomoc kontekstowa SHIFT + strzałki Zaznaczanie bloku CTRL + INSERT Skopiowanie zaznaczonego bloku
Bardziej szczegółowoWykład V PASCAL - operacje na znakach i łańcuchach; - dźwięk,
Podstawy programowania Wykład V PASCAL - operacje na znakach i łańcuchach; - dźwięk, 1 Podstawy programowania Łańcuchy i znaki 2 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD I. Znaki i
Bardziej szczegółowoPodstawy 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ółowoBudowa i generowanie planszy
Gra Saper została napisana w. Jest dostępna w każdej wersji systemu Windows. Polega na odkrywaniu zaminowanej planszy tak, aby nie trafić na minę. Gra działa na bardzo prostej zasadzie i nie wymaga zaawansowanego
Bardziej szczegółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoPowtórka algorytmów. Wprowadzenie do języka Java.
Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy
Bardziej szczegółowofor (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }
Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo
Bardziej szczegółowoOto istotne informacje o skrótach klawiszowych ZoomText:
Rozdział 6 Skróty klawiaturowe Skróty klawiszowe to kombinacje klawiszy, których naciśnięcie powoduje wykonanie komend ZoomTexta bez konieczności aktywowania interface u użytkownika ZoomText. Prawie wszystkie
Bardziej szczegółowoDIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0
Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje
Bardziej szczegółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowoLaboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH
Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach
Bardziej szczegółowoPython 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ółowoPodstawy programowania
Podstawy programowania Część trzecia sterujące wykonaniem programu wprowadzenie Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoPodstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
Bardziej szczegółowoProgramowanie 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ółowoSłowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury
Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne
Bardziej szczegółowoSystem 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ółowoBloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Bardziej szczegółowoPodstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Bardziej szczegółowoKrótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp
Krótki kurs obsługi środowiska programistycznego Turbo Pascal 7.0 1 z 12 Wstęp Środowisko programistyczne Turbo Pascal, to połączenie kilku programów w jeden program. Środowisko to zawiera m.in. kompilator,
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowoINSTRUKCJE PĘTLI, INSTRUKCJA WYBORU. Instrukcja pętli For to do
INSTRUKCJE PĘTLI, INSTRUKCJA WYBORU Instrukcja pętli For to do Instrukcja ta określa dokładnie ile razy zostanie powtórzony dany ciąg instrukcji. Postać pętli for w Pascalu: for zmienna : = początek to
Bardziej szczegółowofor (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }
Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo
Bardziej szczegółowoSkróty klawiaturowe w systemie Windows 10
Skróty klawiaturowe w systemie Windows 10 Skróty klawiaturowe to klawisze lub kombinacje klawiszy, które zapewniają alternatywny sposób na wykonanie czynności zwykle wykonywanych za pomocą myszy. Kopiowanie,
Bardziej szczegółowoAnaliza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
Bardziej szczegółowoInformatyka 1. Przetwarzanie tekstów
Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie
Bardziej szczegółowoP R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe
Pakiet crt zawiera procedury i funkcje, które pozwalają na sterowanie trybem ekranu, kolorami, oknami i dźwiękiem. Opisy procedur są zawarte w pliku pomocy, można je wyświetlić z menu Help Standard units
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Bardziej szczegółowoWstęp do informatyki. stęp do informatyki Polecenia (cz.2)
Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać
Bardziej szczegółowotyp zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word
Pascal - powtórka Alfabet, Nazwy W odróŝnieniu do C w Pascal nie odróŝnia małych i duŝych liter. Zapisy ALA i ala oznaczają tę samą nazwę. Podobnie np. słowo kluczowe for moŝe być zapisane: FOR. W Pascalu
Bardziej szczegółowoPę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ółowoPliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Bardziej szczegółowoWstęp do Informatyki dla bioinformatyków
Wstęp do Informatyki dla bioinformatyków Wykład 12 - Programowanie w BASHu Trochę bardziej zaawansowane Bartek Wilczyński 25.1.2016 Organizacyjne Bardzo proszę o wypełnienie ankiet w USOS Szczególnie zależy
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część czwarta Wariacje na temat instrukcji iteracyjnych Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoJęzyk programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
Bardziej szczegółowoWykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice
Podstawy programowania Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice 1 Podstawy programowania Iteracja 2 III. Iteracja Iteracja o nieznanej liczbie powtórzeń while warunek do instrukcja_do_wykonania;
Bardziej szczegółowoKompendium wiedzy z Pascala
Kompendium wiedzy z Pascala Niektóre rzeczy (np. skróty klawiszowe) odnoszą się do wersji Turbo Pascala 5.5 lub 7.0 (w których my nie pracujemy). Jednak zostawiam te informację poniewaŝ dobrze jest wiedzieć
Bardziej szczegółowoSkróty klawiaturowe w programie Microsoft Excel 2013
y klawiaturowe w programie Microsoft Excel 2013 Przewodnik y klawiaturowe w programie Microsoft Excel 2013 zawiera ponad 200 różnych kombinacji klawiszy wraz z opisem ich działania, których użycie pozwala
Bardziej szczegółowoForPascal Interpreter języka Pascal
Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowoElementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.
Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia
Bardziej szczegółowoAlgorytmika 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ółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Bardziej szczegółowoOPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowo1 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ółowoPodstawy 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ółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoSkrypty 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ółowoTrzy ważne słowa w C
23 Trzy ważne słowa w C Zacznijmy od prostych analogii do przykładów znanych już z części poświęconej Pascalowi. W C, posługując się funkcjami bibliotecznymi, możemy łatwo napisać podobne programy. Oto
Bardziej szczegółowoInformatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1
Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny 2010 dla WINDOWS cz. 1 Slajd 1 Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz kalkulacyjny
Bardziej szczegółowoPodstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Bardziej szczegółowoZapis 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ółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Bardziej szczegółowoZasady Programowania Strukturalnego
Zasady Programowania Strukturalnego Rafał Jakubowski Zespół Teoretycznej Biofizyki Molekularnej rjakubowski@fizyka.umk.pl www.fizyka.umk.pl/~rjakubowski Tel: 33 46 Konsultacje w sem. letnim 11/12: środa,
Bardziej szczegółowoPodstawy programowania w C++
Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout
Bardziej szczegółowoJak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Bardziej szczegółowo#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoJęzyki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
Bardziej szczegółowoWstęp do programowania
wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości
Bardziej szczegółowoInstrukcja warunkowa i wyboru
Instrukcja warunkowa i wyboru projektowanie algorytmów instrukcje sterujące języka Pascal instrukcja warunkowa operatory relacyjne i logiczne instrukcja wyboru echniki programowania I s.3-1 Projektowanie
Bardziej szczegółowoPodstawy pracy z edytorem tekstu. na przykładzie Open Office
Podstawy pracy z edytorem tekstu na przykładzie Open Office inż. Krzysztof Głaz krzysztof.glaz@gmail.com http://krzysztofglaz.eu.org Wprowadzenie Dokument ten został napisany jako pomoc dla osób, które
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowo