Wyrażenia regularne i język AWK

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

Download "Wyrażenia regularne i język AWK"

Transkrypt

1 Plik źródłowy: G:\nugae_documents\phd\studenci\WDI\zadania\07cw5-awk.doc; Data: J.Nawrocki, M. Antczak, K. Kwarciak, G. Palik Ćwiczenie nr 6 Wyrażenia regularne i język AWK Środowisko uruchomieniowe 1. Pobrać plik SimpleAWKforWindows.zip (AWK95) ( 2. Rozpakować powyższe archiwum w katalogu roboczym (na zajęciach najprawdopodobniej C:\Temp). 3. Ważne pliki wykorzystywane podczas kompilacji: a. awk95.exe wykonywalny plik reprezentujący interpreter programów napisanych w języku AWK, b. in.txt plik tekstowy zawierający dane wejściowe (tekst, który powinien zostać przetworzony), c. out.txt wyjściowy plik tekstowy zawierający rezultaty (zwrócony tekst będący wynikiem przetwarzania zapisanego w kodzie programu na danych znajdujących się w pliku wejściowym), d. prog.awk kod źródłowy programu zapisany w języku AWK, e. run.bat zawiera składnię polecenia uruchamiającego interpreter AWK programu zapisanego w pliku prog.awk, który będzie operował na danych z pliku wejściowego in-.txt, a wyniki przetwarzania będą zapisywane w pliku wyjściowym out.txt. awk95 -f kod_zrodlowy.awk <strumien_wejsciowy >strumien_wyjsciowy np.: awk95 -f prog.awk <in.txt >out.txt AWK w pigułce Składnia wywołania AWK: awk [-Fs] "program" [plik1 plik2...] # komendy zapisywane są w linii poleceń # DOSa. awk 'program{print "foo"}' plik1 # pojedyncze cudzysłowy otaczają argumenty # wywołania, które mogą zawierać podwójne # cudzysłowy. # Uwaga: Dopóki AWK akceptuje pojedyncze cudzysłowy znajdujące się wokół argumentów # podawanych z linii poleceń systemu operacyjnego, oznacza to, że ścieżki do plików, które # zawierają w sobie pojedyncze cudzysłowy nie są rozpoznawane przez AWK, pomimo nawet, # że są poprawnymi ścieżkami z punktu widzenia systemu operacyjnego. Aby AWK rozpoznał # plik foo'bar to podana nazwa musi być zapisana w następujący sposób foo"'"bar. awk [-Fs] -f plik_źródłowy_programu [plik1 plik2...] # komendy zapisywane są w # linii poleceń DOSa. Jeżeli plik1 jest pominięty wtedy AWK zakłada, że analizowane dane są pobierane ze standardowego wejścia (konsola systemowa). Argument wywołania oznaczony jako -Fz ustawia separator pól FS na znak "z". Plik źródłowy AWK składa się z następujących reguł przetwarzania: "wzorzec {instrukcje}" Jeżeli {instrukcje} są pominięte, w regule przetwarzania, wtedy domyślnie jest wykonywane wypisanie wiersza na standardowe wyjście {print $0}. Jeżeli "wzorzec" jest pominięty w regule przetwarzania, wtedy każdy wiersz pliku wejściowego jest poddawany działaniu instrukcji zdefiniowanych w bloku {instrukcje}. Pola są separowane najczęściej przez jedną lub więcej spacji lub tabulatorów: "pole1 pole2".

2 Jeżeli poniżej opisane przykłady poleceń znajdują się w pliku źródłowym, a nie są uruchamiane z linii poleceń, wtedy mogą zostać pominięte podwójne cudzysłowy. Podstawowe polecenia AWK: "NR == 5" plik wypisuje w rezultacie 5 wiersz (linia od góry) z pliku o nazwie plik. Uwaga: "==" oznacza operator porównania. {FOO = 5} przypisanie do zmiennej FOO wartości "5". Uwaga: pojedyncze "=" oznacza operator przypisania. "$2 == 0 {print $1}" Jeżeli zawartość drugiego pola (pola są indeksowane od 1) jest równa 0 to w wyniku, na wyjściu, zostanie wypisana zawartość pola pierwszego. "$3 < 10" Jeżeli numeryczna zawartość trzeciego pola jest mniejsza od 10, wtedy wiersz '$3 < "10"' zawierający to pole zostaje wypisany na wyjście. (numeryczne porównanie). podczas porównywania łańcuchów wykorzystywane są pojedyncze cudzysłowy. -f pgmfile [$3 < "10"] wykorzystywane jest polecenie "-f pgmfile" podczas porównywania łańcuchów. "$3 ~ /regexp/" wypisanie wiersza, w którym trzecie pole spełnia opisane wyrażenie regularne /regexp/. '$3 ~ "regexp"' "NF > 4" "$NF > 4" "{print NF}" "{print $NF}" regexp może wystąpić w łańcuchu oznaczonym dwoma cudzysłowami. Podwójne cudzysłowy mogą zastępować backlashes w wyrażeniach regularnych. Wyrażenie zapisane z wykorzystaniem cudzysłowów wymagają istnienia znaku dopasowania (~). wypisanie wierszy, w których występuje 5 lub więcej pól. wypisanie wierszy, w których w ostatnim polu znajduje się wartość, co najmniej 5. wypisuje na wyjściu ilość pól (wyrazów) znajduje się w każdym wierszu. wypisuje ostatnie pole dla każdego przetwarzanego wiersza. "/regexp/" "/text file/" wypisuje tylko te wiersze, które zawierają wyrażenie regularne "regexp". wiersze zawierające "text" lub "file" (wielkość liter ma znaczenie!) "/foo/ {print "za", NR}" błędnie zapisany argument zawierający wyrażenie regularne, który nie zadziała poprawnie podczas uruchomienia z linii poleceń!! '/foo/ {print "za", NR}' poprawnie zapisany atrybut!! Jeżeli analizowany wiersz będzie zawierał "foo", wtedy na wyjściu zostanie wypisane słowo za i numer obecnego wiersza. "$3 ~ /B/ {print $2,$3}" Jeżeli trzecie pole zawiera "B", wtedy na wyjście wypisywane jest drugie i trzecie pole. "$4!~ /R/" wypisuje wiersze, których czwarte pole nie zawiera "R". '$1=$1' '{$1=$1;print}' 'NF' Usuwa dodatkowe spacje pomiędzy polami i puste wiersze. Usuwa dodatkowe spacje pomiędzy polami, zostawiając puste wiersze. Usuwa wszystkie puste wiersze. AND(&&), OR( ), NOT(!) "$2 >= 4 $3 <= 20" wypisuje wiersze, w których zawartość drugiego pola jest większa bądź równa 4 lub zawartość trzeciego pola jest mniejsza bądź równa 20. "NR > 5 && /with/" wypisuje wiersze, których numer jest, co najmniej równy 6 i które zawierają wzorzec "with". "/x/ && NF > 2" wypisuje wiersze, które zawierają więcej niż dwa pola i ich zawartość zawiera wzorzec "x". "$3/$2!= 5" wypisuje wiersze, dla których iloraz pola trzeciego przez drugie jest różny od 5. Uwaga:!= operator nierówności zarówno dla liczb jak i łańcuchów.

3 "$3!~ /regexp/" wypisuje wiersze, które w trzecim polu nie zawierają wyrażenia regularnego regexp. "!($3 == 2 && $1 ~ /foo/)" wypisuje wiersze, które nie spełniają warunku zdefiniowanego w nawiasie (zawartość pola trzeciego musi być równa 2 i zawartość pola pierwszego musi zawierać wzorzec foo ). "{print NF, $1, $NF}" "{print NR, $0}" '{print NR ": " $0}' "NR == 10, NR == 20" "/start/, /stop/" "length($0) > 72" "{print $2, $1}" dla każdego wiersza wypisywana jest ilość jego pól, zawartość pierwszego pola i zawartość ostatniego pola. wypisuje każdy wiersz poprzedzony prefiksem, który reprezentuje numer wiersza. wypisuje każdy wiersz poprzedzony prefiksem, który reprezentuje numer wiersza, dwukropek i spację. wypisuje wiersze reprezentowane numerami od włącznie. wypisuje zawartość każdego wiersza pomiędzy wzorcem "start" i "stop". wypisuje wszystkie wiersze, których długość jest większa niż 72 znaki. następuje na wyjściu odwrócenie dwóch pierwszych pól, wszystkie pozostałe pola są pomijane. "{print substr($0,index($0,$3))}" wypisuje zawartość wiersza od trzeciego pola do końca linii. Wykorzystanie klauzuli END{...} Instrukcje w klauzuli END są uruchamiane po analizie wszystkich wierszy wejściowych. Jest wykorzystywana najczęściej do wypisywania końcowych statystyk. 1) END { print NR } # w rezultacie wypisywana jest ilość analizowanych wierszy. 2) {s = s + $1 } # wypisywana jest suma oraz średnia wszystkich liczb znajdujących się w polu END {print "sum is", s, "average is", s/nr} # pierwszym dla każdego # analizowanego wiersza. 3) {names=names $1 " " } # konwertuje całą zawartość pola 1 z wszystkich analizowanych END { print names } # wierszy konkatenując je w jedną linię, np.: + Beth # plik Mary # plik wejściowy jest konkatenowany do: wejściowy Kathy # "Beth Mary Kathy Mark" na wyjściu + Mark # 4) { field = $NF } # wypisuje ostatnie pole ostatniego analizowanego wiersza. END { print field } PRINT, PRINTF: wypisywanie wyrażeń, sposoby formatowania polecenia print print(expr1, expr2,..., exprn) # mogą zostać wykorzystane wszystkie możliwe # operatory: <, <=, ==, >, >=. print # skrót dla instrukcji {print $0}. print "" # wypisuje na wyjściu pusty wiersz. printf(expr1,expr2,expr3,\n} # dodaj znak nowej linii do polecenia printf. print "expression" > "file name" # rezultat wyrażenia może być zapisany do pliku # wyjściowego. KONWERSJA FORMATU: BEGIN{ RS=""; FS="\n"; # oznaczamy wejściowy separator wiersza za pomocą pustej ORS="\n"; OFS="," } # linii i separator pola za pomocą znaku nowej linii. {$1=$1; print } # następnie ustawiamy na wyjściu separator wiersza na znak # nowej linii i separator pola na przecinek.

4 PARAGRAFY: 'BEGIN{RS="";ORS="\n\n"};/foo/' # wypisuje każdy wiersz zawierający 'foo' w osobnym # paragrafie. 'BEGIN{RS="";ORS="\n\n"};/foo/&&/bar/' # wymagane jest jednoczesne dopasowanie # obu wzorców 'BEGIN{RS="";ORS="\n\n"};/foo bar/' # wystarczy, że jeden ze wzorców zostanie # dopasowany. PRZEKAZYWANE ZMIENNE: gawk -v var="/regexp/" 'var{print "Here it is"}' gawk -v var="regexp" '$0~var{print "Here it is"}' gawk -v num=50 '$5 == num' # zmienna var jest wartością numeryczną. # zmienna var jest # wyrażeniem regularnym # regexp, które może być # wykorzystywane wewnątrz # kodu programu AWK. # zmienna var jest # łańcuchem otoczonym # podwójnymi cudzysłowami. Zmienne wbudowane: ARGC ilość argumentów przekazywanych z konsoli systemowej. ARGV tablica wartości argumentów przekazywanych z linii poleceń systemu (ARGV[0...ARVC-1]). FILENAME nazwa obecnie analizowanego pliku wejściowego. FNR ilość wszystkich rekordów w obecnie przetwarzanym pliku wejściowym. FS wejściowy separator pola (domyślnie spacja). NF ilość pól w wejściowym i obecnym wierszu. NR numer odpowiadający obecnemu, wejściowemu rekordowi liczony od początku pliku wejściowego. OFMT definicja wyjściowej reprezentacji formatu dla liczb (domyślnie "%.6g"). OFS wyjściowy separator pola (domyślnie spacja). ORS wyjściowy separator wiersza (domyślnie znak nowej linii). RLENGTH długość łańcucha zwróconego w wyniku dopasowania wyrażenia regularnego. RS wejściowy separator rekordu (domyślnie znak nowej linii). RSTART początkowa pozycja łańcucha zwróconego przez dopasowanie. SUBSEP separator tablicy indeksów dolnych formularza [i,j,...] (domyślnie ^\). Sekwencje wyjściowe: \b znak cofnięcia się (^H), \n znak nowej linii (DOS, CR/LF; Unix, LF), \r znak powrotu karetki, \t znak tabulacji (^I), \ddd wartość oktalna `ddd', gdzie `ddd' to cyfry od 1 do 3, z zakresu pomiędzy 0 i 7. \c każdy inny znak jest dosłowny, np.: \" for " i \\ for \. Funkcje znakowe w AWK: W poniższych funkcjach wyróżniamy następujące terminy: `r' reprezentuje wyrażenie regularne regexp, `s' i `t' to łańcuchy, `i' i `n' to liczby całkowite, `&' w zastępowanym łańcuchu, w poleceniu SUB lub GSUB, jest zastępowany przez dopasowany łańcuch. gsub(r,s,t) zastępuje wszystkie możliwe wyrażenia regularne r, łańcuchem s, znalezione w wejściowych danych t. W rezultacie zwrócona zostaje ilość udanych zastąpień.

5 Jeżeli łańcuch t jest pominięty, wtedy domyślnie stosowany jest cały wiersz ($0). gensub(r,s,h,t) zastępuje h pierwszych wyrażeń regularnych r, łańcuchem s, znalezionych w wejściowych danych t. Jeżeli h = g to w wyniku uzyskamy postać funkcji gsub(r,s,t). W rezultacie zwrócony zostaje skonwertowany wzorzec, a nie ilość udanych zastąpień. Jeżeli łańcuch t jest pominięty, wtedy domyślnie stosowany jest cały wiersz ($0). index(s,t) zwrócona zostaje całkowita liczba reprezentująca indeks początku łańcucha t w danych s, lub 0 jeżeli łańcuch s nie zawiera łańcucha t. length(s) zwrócona zostaje całkowita liczba reprezentująca długość łańcucha s. match(s,r) zwrócona zostaje całkowita liczba reprezentująca indeks początku dopasowania łańcucha r w danych s lub 0, jeżeli dopasowanie nie występuje. W rezultacie ustawiane są wartości następujących zmiennych RSTART i RLENGTH. split(s,a,fs) w rezultacie uzyskiwany zostaje podział łańcucha s na pola, przechowywany w tablicy a, zgodnie ze zdefiniowanym separatorem pól fs. W rezultacie zwrócona zostaje ilość pól, na którą nastąpił podział. Jeżeli szczegółowy separator pola fs jest pominięty, wtedy jest wykorzystywany domyślny separator pola FS. sprintf(fmt,expr-list) zwrócona zostanie lista wyrażeń expr-list sformatowana zgodnie z definicją formatu fmt. sub(r,s,t) zachowanie podobnie do funkcji gsub, różniący się tylko faktem, że tylko pierwsze dopasowanie jest zastępowane. substr(s,i,n) zwrócony zostaje podłańcuch o długości n łańcucha wejściowego s rozpoczynający się od indeksu i. Jeżeli wartość n zostanie pominięta, wtedy zostanie zwrócony podłańcuch rozpoczynający się od indeksu i, a kończący się końcem obecnego wiersza. Funkcje arytmetyczne: atan2(y,x) arcustangens z y/x w radianach. cos(x) cosinus (kąt w radianach). exp(n) wykładnicza (n nie musi być liczbą całkowitą). int(x) skrócenie liczby zmiennopozycyjnej do liczby całkowitej. log(x) logarytm naturalny. rand() pseudo-losowa liczba. sin(x) sinus (kąt w radianach). sqrt(x) pierwiastek z x. srand(x) ustawia nową wartość ziarna wykorzystywanego przez generator liczb losowych; zwykle wykorzystywany jest aktualny czas, jeżeli x nie zostało zdefiniowane. Funkcje definiowane przez użytkownika: Postać funkcji jest podobna do języka C. Definicja funkcji składa się ze słowa kluczowego function, nazwy funkcji, nazw argumentów wejściowych i definicji ciała funkcji. Przykład: function add_three(number, temp) { temp = number + 3 return temp } Wyrażenie może być wywołane w następujący sposób: print add_three(36) # wypisuje na wyjście 39 Tablice adresowane zawartością (associative arrays): Przykład, którego zadaniem jest zliczenie częstotliwości (ilości) występowania słów w pliku wejściowym. { for (i=1; i<=nf; i++) words[$i]++ } END { for (i in words) print i, words[i] }

6 Dodatkowe materiały Zbiór książek do AWK dostępnych w celu darmowego pobrania - Internetowa dokumentacja do AWK - Zakładka materiały dla studentów dla przedmiotu języki formalne i kompilatory na stronie domowej dr inż. W. Complaka Zadania Zad. 1(*). Skompiluj i wykonaj programy prezentowane na wykładzie. Zad. 2. Zaznaczyć poprawne odpowiedzi (wiele może być poprawnych). a) AWK jest wykorzystywany do projektowania aplikacji biznesowych, b) AWK to proste narzędzie pozwalające konwertować pliki tekstowe o jasno i ściśle zdefiniowanej strukturze, c) AWK to język wykorzystywany podczas modelowania oprogramowania, d) składnia języka przypomina Pascal, e) składnia języka przypomina C, f) składnia języka przypomina Asembler, g) przewaga nad innymi językami wynika głównie ze zwięzłości kodu źródłowego, h) kod jest trudny w zrozumieniu, gdyż charakteryzuje się dużą rozpiętością. Zad. 3. Zaznaczyć poprawne odpowiedzi (wiele może być poprawnych)., który ma zostać poddany analizie, składa się z: a) kolumn i wierszy, b) kolumn i pól, c) pól i wierszy. Zad. 4. Zaznaczyć poprawne odpowiedzi (wiele może być poprawnych). Każdy plik źródłowy napisany w AWK składa się z: a) dyrektyw, b) reguł przetwarzania (wzorzec, instrukcje), c) znaczników XMLowych. Zad. 5. Zaznaczyć poprawne odpowiedzi (wiele może być poprawnych). Załóżmy, że mamy dostępny plik wejściowy, który zawiera kolejne wiersze oraz plik źródłowy, który zawiera kolejne reguły. Przetwarzanie w AWK jest realizowane w następujący sposób: a) dla każdego wiersza w pliku wejściowym analizowane są kolejno od góry wszystkie reguły zapisane w pliku źródłowym; jeżeli obecnie analizowana zawartość wiersza pliku wejściowego spełnia obecnie sprawdzany wzorzec, będący częścią obecnej reguły przetwarzania, wtedy na tym wierszu dokonywane są operacje zdefiniowane w części instrukcji reguły przetwarzania i ich rezultat jest zapisywany na standardowe wyjście; w przeciwnym razie nie są wykonywane żadne operacje, b) dla każdej reguły przetwarzania w pliku źródłowym analizowane są kolejno od góry wszystkie wiersze zapisane w pliku wejściowym; na każdym analizowanym wierszu pliku wejściowego dokonywane są operacje zdefiniowane w części instrukcji reguły przetwarzania; następnie analizowana jest zawartość tegoż wiersza pod kątem zgodności z obecnym wzorcem; jeżeli zgodność się potwierdzi wtedy przechodzimy do kolejnego wiersza; w przeciwnym razie cofany jest rezultat wykonanych wcześniej instrukcji. Zad. 6. Zaznaczyć poprawne odpowiedzi (wiele może być poprawnych). a) pola w AWK są adresowane za pomocą znaku $ i numeru całkowitego pola (np.: 1,2,3,4,...), b) $0 oznacza pole o numerze 0, c) $0 oznacza bieżący wiersz. d) początek komentarza w AWK oznaczany jest za pomocą //, e) początek komentarza w AWK oznaczany jest za pomocą #. Zad. 7. W AWK wyróżniamy dwa specyficzne wzorce, które oznaczają: a)... początek tekstu, b)... koniec tekstu.

7 Zad. 8. Wszystkie relacje traktują operandy, czyli pola pliku wejściowego, na których są one wykonywane jako: a) jako liczby, b) jako łańcuchy (porządek leksykograficzny), c) mieszanie w zależności od zawartości pól. Zad. 9. Podaj przykład i na jego podstawie wyjaśnij ideę działania wzorców zakresu. Zad. 10. Podaj znaczenie następujących znaków specjalnych: a) ^ -..., b) $ -..., c). -..., d) [ ] -..., e) \n -..., f) \. -..., g) \ -..., h) \ddd -... Zad. 11. Wyrażenie regularne to wzorzec opisujący zbiór ciągów znaków. W takim razie zdefiniuj znaczenie następujących wzorców: a) , b) $1 ~ /1/ -..., c) $0!~ /a/ -...(!/a/), d) /^.$/ -..., e) /[0-9]/ -..., f)!/[0-9]/ -..., g) /^[0-9]/ -..., h) /[^0-9]/ -..., i) /[Adam Jurek]/ -..., j) /[0-9]*/ -..., k) $2 ~ /^[0-9][0-9]*$/ -..., l) /[0-9]+(D Q)?/ -..., m) /[0-9]+D Q?/ -... Zad. 12. Co to są zmienne wbudowane? Na wykładzie poznaliście Państwo następujące zmienne wbudowane: a) NF -..., b) NR -..., c) FILENAME -... Zad. 13. W skład zaawansowanych mechanizmów AWK wchodzą: a)..., b)..., c)..., d)..., e)... Zad. 14. Podczas uruchamiania programu wykorzystujemy: a) interpreter awk np.: gawk, b) plik zawierający dane do analizy (wyjściowy), c) plik źródłowy.awk, d) plik z rezultatami konwersji (wyjściowy). Zad. 15. Napisz program, którego zadaniem będzie wypisanie długości najdłuższego wiersza pliku wejściowego, przy jednoczesnym podaniu długości tegoż najdłuższego wiersza i jego samego. FName:Alek SName:Gor Salary 700 FName:Jurek SName:Busz Salary 585 FName The longest record is FName:Jurek SName:Busz Salary 585 Its size is 33 Zad. 16. Napisz program, którego zadaniem będzie wypisanie sześciu losowo wygenerowanych liczb z przedziału włącznie.

8 Zad. 17. Napisz program, którego zadaniem będzie wypisanie, co drugich wierszy z pliku wejściowego. Patrz zadanie 15. FName:Alek SName:Gor Salary 700 FName Zad. 18. Napisz program, którego zadaniem będzie wypisanie, wszystkich pól wchodzących w skład wierszy w odwrotnej kolejności. Patrz zadanie Salary SName:Gor FName:Alek 585 Salary SName:Busz FName:Jurek FName Zad. 19. Napisz program, którego zadaniem będzie wypisanie, ilości linii zawierających wzorzec SName. Patrz zadanie Zad. 20. Napisz program, którego zadaniem będzie wypisanie, wszystkich wierszy, w których zawartość pola pierwszego jest różna od odpowiadającej jej zawartości pola pierwszego w wierszu poprzedzającym. FName:Alek SName:Gor Salary 700 FName:Jurek SName:Busz Salary 585 FName:Jurek SName:Zielony Salary 200 Fname: Fname: FName FName:Alek SName:Gor Salary 700 FName:Jurek SName:Busz Salary 585 Fname: FName Zad. 21. Załóżmy, że w pliku wejściowym znajdują się wiersze zawierające tylko pola numeryczne. Napisz program, którego zadaniem będzie wypisanie, wartości bezwzględnych dla wszystkich pól znajdujących się w pliku wejściowym Zad. 22. Napisz program, którego zadaniem będzie wypisanie, numeru telefonu pracownika o nazwisku Jones z pliku wejściowego o poniższej strukturze.

9 Beavis Theodore Jones Bill Zad. 23. Napisz program, którego zadaniem będzie wypisanie, maksymalnej i minimalnej wartości numerycznego pola pierwszego znajdującego się w pliku wejściowym. Patrz zadanie 22. Max = Min = Zad. 24. Napisz program, którego zadaniem będzie wypisanie, w kolejnych wyjściowych wierszach, wartości pięciu kolejnych wyrazów ciągu fibonacciego Zad. 25. Zakładamy, że plik wejściowy zawiera wiersze, które są posortowane względem pola pierwszego. Napisz program, którego zadaniem będzie wypisanie, wszystkich pierwszych unikalnych (względem pierwszego pola) wierszy. 1 ala ma kota 1 zenek ma kota 1 ela ma kota 2 kot ma pilke 3 ewa ma psa 3 jozek ma psa 1 ela ma kota 2 kot ma pilke 3 jozek ma psa Zad. 26. Napisz program, którego zadaniem będzie wypisanie, wszystkich wierszy w osobnych paragrafach, zawierających wzorzec pobierany jako atrybut podczas wykonywania programu oraz ilości tych dopasowanych wierszy. Patrz zadanie 25. Wywołanie programu: awk95 -v search="kot" -f prog.awk 0<in.txt 1>out.txt 1 ala ma kota 1 zenek ma kota 1 ela ma kota 2 kot ma pilke ============= Search matched 4 times. The expresssion to search for was [kot]. Zad. 27(*). Napisz program, którego zadaniem będzie odpowiednie przekonwertowanie pliku wejściowego w odpowiadający mu plik wyjściowy, przy jednoczesnym podaniu jako atrybut wejściowy ilości spacji, za pomocą, których będą tworzone wcięcia. Oba pliki są zdefiniowane poniżej:

10 Wywołanie: awk95 -v num=1 -f prog.awk 0<in.txt 1>out.txt Zad. 28(*). Napisz program, którego zadaniem będzie odpowiednie przekonwertowanie pliku wejściowego w odpowiadający mu plik wyjściowy, przy jednoczesnym podaniu jako atrybut wejściowy ilości spacji, za pomocą, których będą tworzone wcięcia. Oba pliki są zdefiniowane poniżej: Wywołanie: awk95 -v num=1 -f prog.awk 0<in.txt 1>out.txt Zad. 29. Zakładamy, że wszystkie pola w pliku wejściowym mają charakter numeryczny. Napisz program, którego zadaniem będzie wypisanie sumy wszystkich pól znajdujących się we wszystkich wierszach pliku wejściowego. Patrz zadanie Zad. 30. Napisz program, którego zadaniem będzie wypisanie, ilości wszystkich słów we wszystkich wierszach (separator słów to domyślnie spacja). Patrz zadanie Zad. 31. Napisz program, którego zadaniem będzie wypisanie, wszystkich wierszy poprzedzonych ilością pól w nich występujących i znakiem : (separatorem pola jest, ). 1,-2,3,-5,2 0,10,-12,-2,3,1 5:1,-2,3,-5,2 6:0,10,-12,-2,3,1

11 Zad. 32. Napisz program, którego zadaniem będzie wypisanie, wszystkich wierszy przy jednoczesnym usunięciu z ich początku wszystkich spacji i tabulatorów, powodując, że tekst będzie przypisany do lewej Zad. 33. Napisz program, którego zadaniem będzie wypisanie, wszystkich wierszy przy jednoczesnym usunięciu z ich końca wszystkich spacji i tabulatorów Zad. 34. Napisz program, którego zadaniem będzie centrowanie wszystkich wierszy na 30 znaku szerokości. Patrz zadanie Zad. 35. Napisz program, którego zadaniem będzie zastąpienie ciągu foo, łańcuchem bar : foo afoo befoo allafoo bellafoo fooella foo afoo befoo allafoo bellafoo fooella bazella bazolla ollabaz bazo obaz a) pierwsze wystąpienie, bar afoo befoo allafoo bellafoo fooella bar afoo befoo allafoo bellafoo fooella bazella bazolla ollabaz bazo obaz b) wszystkie dostępne wystąpienia, bar abar bebar allabar bellabar barella bar abar bebar allabar bellabar barella bazella bazolla ollabaz bazo obaz c) wszystkie dostępne wystąpienia w momencie, gdy wiersz zawiera wzorzec baz, bar abar bebar allabar bellabar barella bazella bazolla ollabaz bazo obaz d) wszystkie dostępne wystąpienia w momencie, gdy wiersz nie zawiera wzorca baz, bar abar bebar allabar bellabar barilla e) wszystkie dostępne wystąpienia lub dodatkowo jeszcze wszystkie dostępne wystąpienia ciągu baz również łańcuchem bar. bar abar bebar allabar bellabar barella bar abar bebar allabar bellabar barella barella barolla ollabar baro obar Zad. 36. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy w odwrotnej kolejności niż znajdują się one w pliku wejściowym.

12 Patrz zadanie 35. bazo obaz foo afoo befoo allafoo bellafoo fooella bazella bazolla ollabaz foo afoo befoo allafoo bellafoo fooella Zad. 37. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy przy jednoczesnym sprawdzeniu czy obecny wiersz kończy się backslashem. Jeżeli tak wtedy zastępowany jest ten backslash wartością następnego wiersza z pliku wejściowego. foo afoo befoo allafoo bellafoo fooella foo afoo befoo allafoo bellafoo fooella bazella bazolla ollabaz\ bazo obaz foo afoo befoo allafoo bellafoo fooella foo afoo befoo allafoo bellafoo fooella bazella bazolla ollabazbazo obaz Zad. 38. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy przy jednoczesnym odwróceniu kolejności dwóch pierwszych pól każdego wiersza. Patrz zadanie 35. afoo foo befoo allafoo bellafoo fooella afoo foo befoo allafoo bellafoo fooella bazella bazolla ollabaz obaz bazo Zad. 39. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy przy jednoczesnym usunięciu drugiego pola z zawartości każdego wiersza. Patrz zadanie 35. foo befoo allafoo bellafoo fooella foo befoo allafoo bellafoo fooella bazella bazolla ollabaz bazo Zad. 40. Napisz program, którego zadaniem będzie wypisanie wszystkich w odwróconej kolejności wierszy przy jednoczesnym odwróceniu kolejności wszystkich pól wchodzących w skład każdego wiersza. Patrz zadanie 35. obaz bazo ollabaz bazolla bazella fooella bellafoo allafoo befoo afoo foo fooella bellafoo allafoo befoo afoo foo Zad. 41. Napisz program, którego zadaniem będzie wypisanie wszystkich unikalnych wierszy. ala bala ala bala bola ala bala bola

13 Zad. 42. Napisz program, którego zadaniem będzie wypisanie wszystkich linii będących wynikiem konkatenacji kolejnych 5 wierszy pliku wejściowego, przy założeniu, że pola będą separowane przecinkiem. Patrz zadanie 41. ala,bala,ala,bala,bola Zad. 43. Napisz program, którego zadaniem będzie wypisanie pierwszej linii pliku wejściowego. Patrz zadanie 41. ala Zad. 44. Napisz program, którego zadaniem będzie wypisanie ostatnich dwóch wierszy pliku wejściowego w odwrotnej kolejności. Patrz zadanie 41. bola Zad. 45. Napisz program, którego zadaniem będzie wypisanie bezpośrednio poprzedzający wiersz, wiersza zawierającego wyrażenie regularne bola. Patrz zadanie 41. bala Zad. 46. Napisz program, którego zadaniem będzie wypisanie bezpośrednio następny wiersz, wiersza zawierającego wyrażenie regularne bola. Patrz zadanie 41. Zad. 47. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy, których długość znajduje się w zakresie pomiędzy 3 i 10 znaków. a bala ala bala bola dsajdlkas dsadlsajd bala ala bala bola Zad. 48. Napisz program, którego zadaniem będzie wypisanie zawartości pliku wejściowego od wyrażenia regularnego ola. Patrz zadanie 47.

14 bola dsajdlkas dsadlsajd Zad. 49. Napisz program, którego zadaniem będzie wypisanie wszystkich wierszy z zakresu od 5-6 włącznie. Jak można zoptymalizować wykonanie programu, gdy analizujemy duży plik wejściowy?. Patrz zadanie 47. bola Zad. 50. Napisz program, którego zadaniem będzie wypisanie części pliku wejściowego znajdującego się pomiędzy pierwszymi rekordami znajdującymi następujące wzorce ola i ela. Patrz zadanie 47. bola Zad. 51. Napisz program, którego zadaniem będzie wyznaczenie końcowej wypłaty (wypłata*dodatek) dla danego pracownika, przy jednoczesnym założeniu, że długość nazwiska pracownika powinna być równa 8 znaków (w razie niedoboru dopełniamy spacjami), a dokładność końcowej wypłaty powinna się zmieścić w 6 znakach, z czego dwa znaki to wartości po przecinku. Wypłata Dodatek Beth Dan Kathy Mark Mary Susie Beth is $ 0,00 Dan is $ 0,00 Kathy is $ 40,00 Mark is $100,00 Mary is $110,00 Susie is $ 72,00 Zad. 52. Napisz program, którego zadaniem będzie wypisanie podsumowania całkowitego dla obszaru i populacji zgrupowanych po wszystkich przedstawionych poniżej państwach. USSR Asia Canada North America China Asia USA North America Brazil South America India Asia Mexico North America France Europe Japan Asia Germany Europe England Europe

15 COUNTRY AREA POP CONTINENT USSR Asia Canada North America China Asia USA North America Brazil South America India Asia Mexico North America France Europe Japan Asia Germany Europe England Europe TOTAL Zad. 53. Napisz program, którego zadaniem będzie utworzenie dwóch nowych plików w rezultacie: bigpop, smallpop w zależności od progowej wartości populacji wczytanej jako parametr uruchomieniowy podczas wywołania programu. Patrz zadanie 52. Wywołanie: awk95 -f prog.awk 0<in.txt Pliki wyjściowe bibpop USSR 275 China 1032 USA 237 Brazil 134 India 746 Japan 120 smallpop Canada 25 Mexico 78 France 55 Germany 61 England 56 Zad. 54. Napisz program, którego zadaniem będzie wypisanie wszystkich argumentów przekazywanych z linii poleceń podczas uruchomienia programu. Wywołanie: awk95 -f prog.awk 1<out.txt Pliki wyjściowe awk95 Zad. 55. Napisz program, którego zadaniem będzie wypisanie statystyk związanych z wartościami numerycznymi znajdującymi się w kolumnach. W skład statystyk dla każdej kolumny ma zostać wypisana suma wszystkich pól tej kolumny oraz średnia związana z daną kolumną Suma:

16 Srednia: 0,5 6 7,5 3,5 2,5 1 Zad. 56. Przyjmijmy, że słowo jest to niepusty ciąg znaków różnych od spacji, znaku tabulacji i nowej linii (zatem ciąg a+b*c jest jednym słowem). Napisać program obliczania liczby słów w pliku. Wiersze, w których pierwszym znakiem jest średnik nie są brane pod uwagę. jeden 2!!! ; on on on on on on on on ;on on on on on on on on four ;; six 6 Zad. 57. zawiera dowolny tekst. W tekście tym mogą występować następujące sekwencje: inicjał imienia (duża litera z kropką) a za tym bezpośrednio nazwisko. Każdą taką sekwencję należy odwrócić, tzn. najpierw napisać nazwisko, potem jedną spację i inicjał imienia (czyli dużą literę z kropką). Przy okazji należy znormalizować odstępy do postaci jednej spacji. Pozostałe znaki mają być przepisane bez zmian. J.Nawrocki i W.Complak Plik z danymi to t.in. Istotna jest liczba K. C jest licznikiem. Nawrocki J. i Complak W. Plik z danymi to t.in. Istotna jest liczba K. C jest licznikiem. Zad. 58. ma postać trzech kolumn. Pierwsza kolumna zawiera imię pracownika, druga podaje jego nazwisko, a w trzeciej znajduje się jego zarobek. Pierwszy wiersz zawiera opisy poszczególnych kolumn (patrz przykład). Napisać program obliczania łącznego zarobku wszystkich pracowników. Imię Nazwisko Zarobek Wojciech Complak Jerzy Nawrocki Iwo Lewandowski razem=1399 Zad. 59. ma postać macierzy o wymiarach m x n (n może być różne od m). Napisać program obliczania sumy elementów leżących na przekątnej głównej (czyli od lewego górnego rogu do prawego dolnego). Przykład

17 Zad. 60. zawiera nieinteresujące i interesujące fragmenty (ciągi wierszy). Początek interesującego fragmentu zaczyna się od wiersza, w którym pierwsze trzy znaki mają postać "$$$". Ostatni wiersz interesującego fragmentu zaczyna się od "!!!". Należy napisać program w AWK, który przepisuje na wyjście tylko interesujące fragmenty i w każdym takim fragmencie zastępuje każdą spację symbolem podkreślenia. Przykład (każda linia ma na końcu jedną spację przed znakiem końca wiersza): 1: X X $$$ 2: X!!! $$$ 3: X $$$ 4: X X!!! $$$_ 2: X!!! $$$_ 3: X_ $$$_ 4: X_X_!!!_ Zad. 61. W każdej linii pliku wejściowego znajduje się niepusty ciąg nieujemnych liczb całkowitych określających współczynniki przy kolejnych (od najwyższych do najniższych) potęgach wielomianu. Należy napisać program rozwijający skrótowy zapis wielomianu, to znaczy: - do każdego niezerowego współczynnika należy dopisać ciąg x^n gdzie n jest potęgą wynikającą z pozycji współczynnika, - jeżeli współczynnik jest zerowy należy pominąć odpowiedni wyraz. Przykład x^3+5x^2+2 3x^2+2x+1 Zad. 62. zawiera ciąg wierszy. W każdym wierszu znajdują się trzy liczby całkowite (o małych wartościach bezwzględnych), oddzielone od siebie dowolną liczbą spacji i znaków tabulacji. Napisać program obliczający dla każdego wiersza sumę liczb w nim zawartych i drukujący zestawienie taryczne uzyskanych wyników w postaci: nagłówek 'SUMA' dla ostatniej kolumny, w kolejnych wierszach, wyrównane w kolumnach do lewej składowe sumy i wartość sumy, oddzielone od siebie znakami ' ' SUMA

18 Zad. 63. składa się z ośmiu kolumn. Pierwsza i druga kolumna określają imię i nazwisko studenta, pozostałe zaś podają liczbę punktów uzyskanych z poszczególnych sprawdzianów (6 sprawdzianów). Może się zdarzyć, że student nie pisał jakiegoś sprawdzianu i wtedy w odpowiedniej kolumnie jest puste miejsce. Napisać program obliczający dla każdego studenta łączną liczbę uzyskanych punktów. ma składać się z trzech kolumn: imienia, nazwiska i łącznej liczby punktów. Pierwsza kolumna ma mieć szerokość 10 znaków, natomiast druga - 15 znaków. Między kolumnami pierwszą, a drugą i drugą, a trzecią ma się znajdować dodatkowa spacja w roli separatora. Wojciech Complak Jerzy Nawrocki Czerwony Kapturek Jan Nieuk Wojciech Complak 27 Jerzy Nawrocki 14 Czerwony Kapturek 24 Jan Nieuk 0

J.NAWROCKI, M. ANTCZAK, W. FROHMBERG, K. KOLANOWSKI, J. POCHMARA, S. WĄSIK, T. ŻOK AWK - WPROWADZENIE

J.NAWROCKI, M. ANTCZAK, W. FROHMBERG, K. KOLANOWSKI, J. POCHMARA, S. WĄSIK, T. ŻOK AWK - WPROWADZENIE J.NAWROCKI, M. ANTCZAK, W. FROHMBERG, K. KOLANOWSKI, J. POCHMARA, S. WĄSIK, T. ŻOK SKŁADNIA WYWOŁANIA AWK: AWK - WPROWADZENIE awk [-Fs] "program" [plik1 plik2...] # komendy zapisywane są w linii poleceń

Bardziej szczegółowo

WYRAŻENIA REGULARNE I JĘZYK AWK

WYRAŻENIA REGULARNE I JĘZYK AWK J.NAWROCKI, M. ANTCZAK, W. FROHMBERG, K. KOLANOWSKI, J. POCHMARA, S. WĄSIK, T. ŻOK WYRAŻENIA REGULARNE I JĘZYK AWK ŚRODOWISKO URUCHOMIENIOWE 1. Pobrać plik SimpleAWKforWindows.zip (AWK95) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/simpleawkforwindows.zip).

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 7 Język awk Wprowadzenie Schemat programu Konstrukcja wzorców Konstrukcja wyrażeń regularnych Struktury kontrolne Predefiniowane

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Przetwarzanie tekstów i AWK Problem konwersji plików FName:Jurek SName:Busz Salary 585 FName:Alek

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

J ezyk AWK Kurs systemu UNIX

J ezyk AWK Kurs systemu UNIX Język AWK Kurs systemu UNIX 1 AWK Opracowany w laboratoriach Bella w 1978 przez Aho, Weinbergera i Kernighana Język do przetwarzania plików tekstowych Kurs systemu UNIX 2 AWK: pierwsza odsłona! AWK jest

Bardziej szczegółowo

Systemy operacyjne. Laboratorium 5. Awk podstawy. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Systemy operacyjne. Laboratorium 5. Awk podstawy. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Systemy operacyjne Laboratorium 5 Awk podstawy Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje podstawowe pojęcia związane z komendą awk uruchamienie, składnia, pola i rekordy i wykorzystaniem

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

AWK. Plan wykładu. Wprowadzenie. Najprostszy program

AWK. Plan wykładu. Wprowadzenie. Najprostszy program Wojciech Complak Wojciech.Complak@cs.put.poznan.pl AWK Plan wykładu wprowadzenie składnia programów wzorce, operatory, zmienne instrukcje tablice funkcje standardowe funkcje użytkownika wejście/wyjście,

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

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Wstęp do systemów wielozadaniowych laboratorium 19 awk Wstęp do systemów wielozadaniowych laboratorium 19 awk Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-08 Język programowania do pracy z bazami danych (w formie

Bardziej szczegółowo

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Projekty zaliczeniowe Podstawy Programowania 2012/2013 Projekty zaliczeniowe Podstawy Programowania 2012/2013 0. Zasady ogólne W skład projektu wchodzą następujące elementy: dokładny opis rozwiązywanego problemu opis słowny rozwiązania problemu wraz z pseudokodami

Bardziej szczegółowo

Wyrażenia regularne. Wyrażenia regularne 1/41

Wyrażenia regularne. Wyrażenia regularne 1/41 Wyrażenia regularne Wyrażenia regularne 1/41 Wyrażenia regularne 2/41 Po co wyrażenia regularne? Polecenie: $ grep est tekst.txt Zawartość tekst.txt To jest plik tekstowy. Testujemy narzędzie grep. Trzecia

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

Podstawy Kompilatorów

Podstawy Kompilatorów Podstawy Kompilatorów Laboratorium 3 Uwaga: Do wykonania poniższych zadań związanych z implementacją niezbędny jest program LEX oraz kompilator. Dla środowiska Linux mogą to być: Darmowa wersja generatora

Bardziej szczegółowo

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux Przetwarzanie tekstu 2 Operacje na plikach tekstowych w systemie Linux filtry programy przetwarzajace pliki (w szczególności tekstowe) w taki sposób, że odczytuja dane (plik wejściowy) ze standardowego

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

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

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

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

Bardziej szczegółowo

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

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression) Sed edytor strumieniowy,sed wczytuje bieżący wiersz pliku do wewnętrznego bufora celem manipulowania tekstem. Wynik jest wysyłany na standardowe wyjście. Oryginalny plik nie jest nigdy zmieniany. Jeżeli

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie 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ółowo

Instalacja Pakietu R

Instalacja Pakietu R Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego: Download R for Windows opcja: install R for the first time opcja: Download R 3.3.3 for Windows uruchomienie R-3.3.3-win MAGDA

Bardziej szczegółowo

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz Ćwiczenie 6 Skrypty powłoki - programowanie w powłoce bash 1. Cel ćwiczenia Celem ćwiczenia jest poznanie możliwości powłoki bash od strony programistycznej. System UNIX (Linux) pozwala tworzyć skrypty,

Bardziej szczegółowo

L E X. Generator analizatorów leksykalnych

L E X. Generator analizatorów leksykalnych L E X Generator analizatorów leksykalnych GENERATOR L E X Zadaniem generatora LEX jest wygenerowanie kodu źródłowego analizatora leksykalnego (domyślnie) w języku C; Kod źródłowy generowany jest przez

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

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

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

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika Skanowanie OCR w aplikacji Kancelaria Komornika Instrukcja dla użytkownika Spis treści 1. Zakładka Wyrażenia... 3 2. Zakładka Grupy wyrażeń... 5 3. Opcje Skanowania / OCR... 7 4. Rozpoznawanie Danych...

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

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

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Wprowadzenie do Pakietu R dla kierunku Zootechnika Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego:

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 6

Języki formalne i automaty Ćwiczenia 6 Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended

Bardziej szczegółowo

Argumenty wywołania programu, operacje na plikach

Argumenty wywołania programu, operacje na plikach Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują

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

Języki formalne i gramatyki

Języki formalne i gramatyki J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw10-jfig.doc; Data: 2008-10-22 13:29:00 Ćwiczenie nr 10 Języki formalne i gramatyki Wprowadzenie 1. Napisz analizator leksykalny (LEX) i analizator

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Ćwiczenia nr 11. Translatory. Wprowadzenie teoretyczne

Ćwiczenia nr 11. Translatory. Wprowadzenie teoretyczne J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw11-tr.doc; Data: 2009-01-15 09:47:00 Ćwiczenia nr 11 Translatory Wprowadzenie teoretyczne Wiele dokumentów wprowadzających do języków Lex oraz

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy 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ółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

2. Łańcuchy tekstowe w PHP

2. Łańcuchy tekstowe w PHP 2. Łańcuchy tekstowe w PHP 2.1 Apostrofy i cudzysłowy Łańcuch tekstowy w języku PHP to ciąg znaków ograniczony apostrofami (') lub cudzysłowami ("). Te znaki ograniczające nie powinny być traktowane wymiennie,

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

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

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne. 2. Zadania praktyczne rozwiązywane z użyciem komputera 91 2. Zadania praktyczne rozwiązywane z użyciem komputera Wczytywanie danych Dane do zadań rozwiązywanych na komputerze zapisane są w plikach tekstowych.

Bardziej szczegółowo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz

Bardziej szczegółowo

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2 Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone

Bardziej szczegółowo

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

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

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix Wydział Zarządzania i Modelowania Komputerowego Specjalność: Informatyka Stosowana Rok III Semestr V 1. Logowanie w systemie Unix. Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu

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

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza 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ółowo

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

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

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

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

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

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Katedra Inżynierii Wiedzy laborki 6 Czytanie z plików tekstowych import biblioteki io; klasa File; klasa FileReader; klasa BudderedReader; czytanie z pliku i metoda readline(); koniec dostępu do pliku;

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

Odwrotna Notacja Polska

Odwrotna Notacja Polska Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

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

Bardziej szczegółowo

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję. Zadania-6 1 Opracować program obliczający wartość sumy: S n m ai bj i 1 j 1 ln( bi j a) n, m : int; S, a, b : double Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 103 Dla obliczenia

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

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

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

Wykład 4. Środowisko programistyczne

Wykład 4. Środowisko programistyczne Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator

Bardziej szczegółowo

Laboratorium nr 1. i 2.

Laboratorium nr 1. i 2. Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych

Bardziej szczegółowo

Podstawy programowania. Python wykład 6

Podstawy programowania. Python wykład 6 Podstawy programowania Python wykład 6 Funkcja wbudowana chr() Wywołanie funkcji chr() z argumentem m zwraca łańcuch znaków reprezentujący znak, którego punktem kodowym w Unicode jest liczba całkowita

Bardziej szczegółowo

XML i nowoczesne technologie zarządzania treścią 2007/08

XML i nowoczesne technologie zarządzania treścią 2007/08 Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na

Bardziej szczegółowo

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot. Rozpoznawanie obrazu Implementujesz oprogramowanie do rozpoznawania obrazu dla robota. Za każdym razem, gdy robot robi zdjęcie kamerą, jest ono zapisywane jako czarno-biały obraz w pamięci robota. Każdy

Bardziej szczegółowo

SAS Podstawowe informacje przed ćwiczeniem 1

SAS Podstawowe informacje przed ćwiczeniem 1 SAS Podstawowe informacje przed ćwiczeniem 1 Zasady tworzenia programów każda instrukcja zakończona się średnikiem małe i duże litery nie są rozróżniane instrukcje mogą być kontynuowane w następnej linii

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

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

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtó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ółowo

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2 - 1 - MS EXCEL CZ.2 FUNKCJE Program Excel zawiera ok. 200 funkcji, będących predefiniowanymi formułami, słuŝącymi do wykonywania określonych obliczeń. KaŜda funkcja składa się z nazwy funkcji, która określa

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 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ółowo

Struktura pliku wejściowego ipko biznes przelewy zagraniczne (MT103 / CSV)

Struktura pliku wejściowego ipko biznes przelewy zagraniczne (MT103 / CSV) Struktura pliku wejściowego ipko biznes przelewy zagraniczne (T103 / CSV) 1 Spis treści 1. Informacje ogólne... 3 2. Struktura pliku PLA/T103... 3 2.1. Opis formatu pliku... 3 2.2. Struktura pliku... 4

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

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

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix Wydział Mechatroniki i Budowy Maszyn Specjalność: Automatyka i Robotyka Rok II Semestr IV 1. Logowanie w systemie Unix. System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix Do zalogowania

Bardziej szczegółowo