Przegląd języków programowania

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

Download "Przegląd języków programowania"

Transkrypt

1 Przegląd języków programowania Dariusz Chrobak czerwca 017

2 Spis treści 1 Linux 1.1 Instalacja na nośniku pamięci USB Knoppix LinuxMint/Ubuntu Przydatne programy i polecenia powłoki systemowej Skrypty powłoki bash Zadania Język Tcl 16.1 Podstawowe polecenia Wejście wyjście programu Przykładowy program mnożenie macierzy Zadania Język C Struktura programu

3 Rozdział 1 Linux 1.1 Instalacja na nośniku pamięci USB Celem jest instalacja systemu operacyjnego Linux na nośniku pamięci USB (pendrive), tak by było możliwe trwałe zapisywanie zmian dokonywanych przez użytkownika. Zostaną przedstawione dwie możliwości związane z dystrybucjami: Knoppix, LinuxMint Knoppix Ze strony pobieramy obraz ISO aktualnej wersji systemu operacyjnego, który następnie nagrywamy na płytę DVD. Restartujemy komputer ładując Knoppix a z płyty DVD. Na pulpicie widać ikonę programu flash-knoppix tworzącego obraz systemu Knoppix w pamięci USB wraz z dodatkową partycją (tzw. overlay) przeznaczoną do trwałego przechowywania danych użytkownika. Należy uruchomić ten program i postępować zgodnie ze wskazówkami pojawiającymi się w kolejnych okienkach LinuxMint/Ubuntu Inny sprawdzony sposób utworzenia bootowalnej pamięci USB z partycją umożliwiającą przechowywanie danych użytkownika wykorzystuje dystrybucję LinuxMint (linuxmint.com) lub Ubuntu ( oraz program mkusb. Pobieramy obraz ISO np. LinuxMint-Xfce i nagrywamy na płytę DVD. Xfce to lekkie środowisko graficzne (desktop environment) dla systemów uniksowych. Uruchamiamy system operacyjny z płyty DVD i aby zainstalować program mkusb musimy najpierw dodać nowe repozytorium. Otwieramy terminal i wykonujemy poniższe polecenia: > sudo add - apt - repository universe > sudo add -apt - repository ppa : mkusb / ppa > sudo apt - get update Teraz instalujemy program mkusb (poniżej trzy powiązane ze sobą programy): > sudo apt - get install mkusb mkusb - nox usb - pack - efi i uruchamiamy go poleceniem: > mkusb

4 ROZDZIAŁ 1. LINUX 3 Następnie wybieramy opcję d (tryb graficzny) i postępujemy zgodnie ze wskazówkami pojawiającymi się w kolejnych okienkach. Przydatne linki: help.ubuntu.com/community/mkusb calvin.me/create-persistent-ubuntu live-usb-even-boots-ram 1. Przydatne programy i polecenia powłoki systemowej Powłoka systemowa (shell) jest programem pośredniczącym między użytkownikiem i systemem operacyjnym. Powłoka przyjmuje polecenia użytkownika i wyprowadza wynik ich działania. W większości systemów linuksowych otwarcie terminala uruchamia tekstową powłokę systemową bash (Bourne-Again Shell). Polecenia systemu operacyjnego lub inne programy uruchamiamy wpisując ich nazwy w wierszu poleceń, rozpoczynającego się od znaku $: użytkownik@ komputer ~/ Desktop $ 1. Pliki i katalogi: pwd Podaje ścieżkę do bieżącego katalogu. ls ls -l ls -la Wyświetla zawartość bieżącego katalogu. cd katalog cd.. cd ~ cd / Zmienia katalog (katalog=/scieżka/dostępu/do/katalogu). mkdir katalog Tworzy katalog. touch plik Zmienia datę dostępu do pliku lub datę jego ostatniej modyfikacji; tworzy plik kiedy ten nie istnieje. rm plik rm -r katalog rmdir katalog Usuwa pliki i katalogi.

5 ROZDZIAŁ 1. LINUX 4 cp plik1 plik cp plik katalog Kopiuje pliki i katalogi. mv plik1 plik mv plik katalog Przenoszenie lub zmiana nazwy plików i katalogów. cat plik Wyświetla zawartość pliku. less plik Wyświetla zawartość pliku. Umożliwia np. wyszukiwanie znaków. grep wzorzec plik Znajduje wiersze pliku pasujące do wzorca. nano plik Uruchamia prosty, tekstowy edytor plików.. Użytkownicy: whoami Podaje nazwę użytkownika. adduser użytkownik [ grupa ] Dodaje nowego użytkownika. Nawias kwadratowy oznacza argument opcjonalny. addgroup grupa Tworzy nową grupę. passwd [ użytkownik ] Zmiana hasła. users Wyświetla użytkowników systemu. 3. Prawa dostępu: chmod OGA plik Modyfikuje prawa do pliku. Pola O,G i A przyjmują wartości będące sumą liczb (r+w+x) odpowiadających prawom: do odczytu (r=4), do zapisu (w=) i do uruchomienia (x=1). Pole O dotyczy praw właściciela pliku, pole G dotyczy praw grupy użytkowników, do których należy właściciel pliku, a pole A dotyczy wszystkich użytkowników systemu.

6 ROZDZIAŁ 1. LINUX 5 chown właściciel [: grupa ] plik chown -R właściciel [: grupa ] katalog Zmienia właściciela i/lub grupę pliku. chgrp grupa plik chgrp -R grupa ścieżka 4. Procesy: Zmienia właściciela i/lub grupę pliku. ps ps -e Pokazuje procesy uruchomione przez użytkownika lub wszystkie procesy (-e). kill PID Zabija proces o identyfikatorze PID. polecenie & 5. Pomoc: Uruchamia polecenie w tle. man program Wyświetla o ile istnieje plik pomocy podręcznej dla programu. 6. Przekierowania i potoki poleceń: Standardowa komunikacja uruchomionego programu z otoczeniem odbywa się poprzez kanały: wejściowy (0), wyjściowy (1) i błędów (). Możliwe jest przekierowanie standardowego kanału do pliku: polecenie < plik Standardowe wejście to plik. polecenie > plik Przekierowanie standardowego kanału wyjścia do pliku. Zawartość pliku jest przedtem kasowana. polecenie >> plik Przekierowanie standardowego kanału wyjścia do pliku. końcu pliku. Dane są dopisywane na polecenie1 polecenie Kanał wyjściowy programu można łączyć z kanałem wejściowym innego programu.

7 ROZDZIAŁ 1. LINUX Skrypty powłoki bash Instrukcje programowania powłoki bash można umieścić w pliku (skrypcie) i po ustawieniu odpowiednich uprawnień, skrypt można uruchomić tak jak każdy inny program. W pierwszym wierszu skryptu umieszczamy odwołanie do programu, który będzie interpretował (wykonywał) instrukcje umieszczone w kolejnych wierszach: 3 # To jest komentarz 4 5 # Polecenie echo wyprowadza łańcuch znaków na standardowe wyjscie. 6 echo Pierwszy skrypt 7 echo " Pierwszy skrypt " 8 echo Pierwszy skrypt Zmienną powłoki bash definiujemy w następujący sposób: 3 a= 4 5 b =" Wartość zmiennej a: $a" 6 echo $b 7 8 b= Wartość zmiennej a: $a 9 echo $b echo " Ala ma kota " > plik. txt 1 c=$( cat plik. txt ) 13 echo $c Argumenty wywołania skryptu:./ skrypt [ arg1 [ arg [... argn ]]] można w nim wykorzystać, ponieważ są one wartościami predefiniowanych stałych: $0 : nazwa skryptu $1 - $9 : pierwsze 9 argumentów $# : liczba argumentów $@ : wszystkie argumenty $? : status wyjścia ostatnio wykonanego skryptu $$ : identyfikator bieżącego procesu $USER : nazwa użytkownika, który wywołał skrypt $HOSTNAME : nazwa komputera, na którym uruchomiono skrypt $SECONDS : liczba sekund od chwili wywołania skryptu $RANDOM : zwraca liczbę losową z zakresu $LINENO : zwraca bieżący wiersz skryptu

8 ROZDZIAŁ 1. LINUX 7 Zakres zmiennej: 3 z1 =1 4 export z = 5 6 echo $z1 7 echo $z 8 9 # Uruchomienie procesu pochodnego, terminala. 10 xterm 11 1 # W nowo otwartym oknie wykonaj polecenia : 13 # echo $z1 14 # echo $z Wejście użytkownika: 3 echo " Podaj nazwę :" 4 read x 5 echo " Twoja nazwa to: $x" inny sposób: 3 read -p " Podaj nazwę użytkownika :" x 4 read - sp " Podaj hasło :" y 5 6 echo 7 echo " Twoja nazwa to: $x" 8 echo " Twoja nazwa to: $y" jeszcze inny sposób: 3 # plik dane. txt : 4 # Ryszard Skórka # Jan Kowalski # Tomasz Adamski cat / dev / stdin sort -k 3,4 Wyrażenia arytmetyczne: instrukcja let:

9 ROZDZIAŁ 1. LINUX 8 let a =5+4 ; echo $a let " a = 5 + 4" ; echo $a let a ++ ; echo $a let " a = 4 * 5" ; echo $a z=3 let " a = $z + 30" ; echo $a instrukcja expr: expr expr "5 + 4" expr 5+4 expr 5 \* $1 expr 11 % a=$( expr 10-3 ) ; echo $a instrukcja $((...)): a=$(( )) ; echo $a a=$ ((3+5)) ; echo $a b=$(( a + 3 )) ; echo $b b=$(( $a + 4 )) ; echo $b b=$[ a + 3 ] ; echo $b b=$[ $a + 4 ] ; echo $b (( b++ )) ; echo $b (( b += 3 )) ; echo $b a=$(( 4 * 5 )) ; echo $a długość zmiennej: a= Hello World ; echo ${# a} b =4953 ; echo ${#b} liczby zmiennopozycyjne i kalkulator bc:

10 ROZDZIAŁ 1. LINUX 9 echo " scale =6; /3" bc -l Testy: W praktyce często stosuje się polecenie testujące: test wyrażenie lub [ wyrażenie ], które zwraca wartość logiczną: prawda (0) lub fałsz (1). Wyrażenie wyrażenie buduje się w oparciu o zasady przedstawione w pomocy podręcznej: man test. mkdir touch praca a. txt test -f a. txt ; echo $? # Czy a. txt jest plikiem regularnym? Wynik : 0 test -e a. txt ; echo $? # Czy a. txt istnieje? Wynik : 0 test -d a. txt ; echo $? # Czy a. txt jest katalogiem? Wynik : 1 test -f praca ; echo $? # Wynik : 1 test -e praca ; echo $? # Wynik : 0 test -d praca ; echo $? # Wynik : 0 [ -d praca ] ; echo $? # Wynik : 0 Instrukcja for: for zmienna in wartości ; do... done Przykład: 3 for a in ala ma kota ; do 4 echo " Drukuję plik : $a" 5 done 6 7 for a in $( ls ) ; do 8 echo " Drukuję plik : $a" 9 done Instrukcja while: while warunek ; do... done Przykład:

11 ROZDZIAŁ 1. LINUX 10 3 a=0 4 while [ $a - le 0 ] ; do 5 a=$(( a +=1 )) 6 echo " a = $a" 7 done 3 read -p " Podaj hasło : " -s haslo 4 echo 5 6 while [ " $haslo "!= " sekret " ] ; do 7 read -p " Niepoprawne hasło. Podaj hasło : " -s haslo 8 echo 9 done echo " Twoje hasło : sekret " Instrukcja until: until warunek ; do... done Przykład: 3 a=0 4 until [ $a - gt 0 ] ; do 5 a=$(( a +=1 )) 6 echo " a = $a" 7 done 3 read -p " Podaj hasło : " -s haslo 4 echo 5 6 until [ " $haslo " = " sekret " ] ; do 7 read -p " Niepoprawne hasło. Podaj hasło : " -s haslo 8 echo 9 done echo " Twoje hasło : sekret " Wykonywanie pętli przerywa instrukcja break. Aby przejść do następnej iteracji należy wydać polecenie continue.

12 ROZDZIAŁ 1. LINUX 11 Pętle w stylu języka C: for (( n=1 ; n <=10 ; n++ )) ; do... done ((n =1)) while ((n <=10)) ; do... ((n ++)) done ((n =1)) until ((n >10)) ; do... ((n=n +1)) done Instrukcje warunkowa if: if warunek ; then... elif warunek ; then... else... fi Przykład: 3 a=$1 4 if [ "$a" = 1 ] ; then 5 echo " Wprowadzono : 1" 6 elif [ "$a" = ] ; then 7 echo " Wprowadzono : " 8 else 9 echo " Nie wprowadzono liczb : 1, " 10 fi Instrukcje warunkowa case: case slowo in wzorzec1 )... instrukcje... ;; wzorzec )... instrukcje... ;;... *)... instrukcje... esac

13 ROZDZIAŁ 1. LINUX 1 Jeżeli slowo pasuje do któregoś ze wzorców, to wtedy wykonywane są odpowiednie instrukcje. Jeżeli slowo nie pasuje do któregoś ze wzorców, to wtedy wykonywane są instrukcje należące do przypadku *). Wzorzec może być listą wzorców oddzielonych znakiem. Wzorce tworzone są według następujących reguł: * - pasuje do dowolnego ciągu znaków? - pasuje do dowolnego pojedynczego znaku [...] - pasuje do jednego z podanych (...) znaków?( lista_ wzorców ) - pasuje do zera lub jednego wystapienia wzorca *( lista_ wzorców ) - pasuje do zera lub więcej wystapień wzorca +( lista_ wzorców ) - pasuje do jednego lub więcej wystapień lista_ wzorców ) - pasuje do jednego wystapienia wzorca!( lista_ wzorców ) - pasuje do wszystkiego chyba, że wystąpi wzorzec lista_ wzorców - zawiera wzorce oddzielone znakiem Przykład: 3 echo -n " Podaj liczbe [1,1]: " 4 read liczba 5 6 case " $liczba " in 7 "1") echo " Styczen " ;; 8 "") echo " Luty " ;; 9 "3") echo " Marzec " ;; 10 "4") echo " Kwiecien " ;; 11 "5") echo " Maj " ;; 1 "6") echo " Czerwiec " ;; 13 "7") echo " Lipiec " ;; 14 "8") echo " Sierpien " ;; 15 "9") echo " Wrzesien " ;; 16 "10") echo " Pazdziernik " ;; 17 "11") echo " Listopad " ;; 18 "1") echo " Grudzien " ;; 19 *) echo " Liczba poza zakresem." 0 esac Tablice: Tablice to zmienne, które przechowują różne wartości pod tą samą nazwą. konkretnej wartości wymaga użycia indeksu. # deklaracja tablicy 5 elementowej tablica =(1 3 9 " ala ma" kota ) Odwołanie do for i in $( seq 0 4 ) ; do echo ${ tablica [i]} done Ciekawe polecenie to: seq [start] [krok] stop, pozwalające generować sekwencje liczb całkowitych od start do stop co krok. Inny sposób deklaracji tablicy:

14 ROZDZIAŁ 1. LINUX 13 tablica [0]=1 tablica [1]=3 tablica []=9 tablica [3]=" ala tablica [4]= kota ma" for i in $( seq 0 4 ) ; do echo ${ tablica [i]} done Dostęp do wszystkich elementów tablicy: echo ${ tablica [*]} echo ${ tablica [@]} Liczba elementów tablicy: echo ${# tablica [*]} echo ${# tablica [@]} Proste menu i instrukcja select: 3 # Wybieramy 1,, 3 lub PS3 =" Wybierz opcję : " # Przetestuj skrypt bez tego wiersza 6 select opt in X Y Z Koniec ; do 7 if [ " $opt " = "X" ] ; then 8 echo " Wybrano $opt ( $REPLY )" 9 elif [ " $opt " = "Y" ] ; then 10 echo " Wybrano $opt ( $REPLY )" 11 elif [ " $opt " = "Z" ] ; then 1 echo " Wybrano $opt ( $REPLY )" 13 elif [ " $opt " = " Koniec " ] ; then 14 break 15 else 16 echo " Wybierz : 1,..., 4" 17 fi 18 done Funkcje: Funkcje to fragmenty kodu, do których odwołujemy się poprzez nazwę funkcji. # Deklaracja funkcji function nazwa_ funkcji {... instrukcje... }

15 ROZDZIAŁ 1. LINUX 14 nazwa_ funkcji () {... instrukcje... } # Wywołanie funkcji nazwa_ funkcji arg1 arg... Do funkcji można przekazać wartości argumentów: arg1, arg,..., uzyskując do nich dostęp tak jak w przypadku argumentów wywołania skryptu: $1, $,... #!/ bin / bash iloczyn () { a=$1 b=$ echo $(( a*b )) } wynik =$( iloczyn 5 ) echo $wynik W powyższym skrypcie zademonstrowano sposób jak funkcja może zwrócić wyliczoną wartość i jak przypisać ją innej zmiennej. Aby przerwać wykonywanie funkcji należy użyć instrukcji return kod_wyjścia, gdzie kod_wyjścia może być wartością zwracaną przez funkcję, jednak ma to sens o ile spodziewamy się, że 0<=kod_wyjścia<=55. Zmienne występujące wewnątrz funkcji mogą być lokalne, o ile ich deklaracja zostanie poprzedzona słowem local. Odczyt pliku: #!/ bin / bash echo " Podaj nazwe pliku do wyswietlenia :" read plik if [! -r $plik ]; then echo " Nie moge czytac z pliku : $plik " exit 1 fi cat $plik while read linia do echo $linia done Inny sposób: #!/ bin / bash

16 ROZDZIAŁ 1. LINUX 15 echo " Podaj nazwe pliku do wyswietlenia :" read plik if [! -r $plik ]; then echo " Nie moge czytac z pliku : $plik " exit 1 fi while read linia do echo $linia done < $plik 1.4 Zadania 1. Napisz skrypt, który oblicza wartość N! i następnie wyświetla odpowiedni komunikat, np. 4! = 4.. Napisz skrypt, który usuwa wszystkie pliki w zadanym katalogu (parametr wywołania skryptu), poza plikami wykonywalnymi. 3. Napisz skrypt pobierający trzy argumenty. Pierwsze dwa powinny być nazwami istniejących plików tekstowych (polecenie file). Trzeci argument powinien być nazwą nieistniejącego pliku. Jeżeli te warunki są spełnione, to zawartość dwóch pierwszych plików powinna być zapisana w trzecim pliku, który należy wcześniej utworzyć. 4. Napisz skrypt, który zapyta o ścieżkę do katalogu, a następnie zarchiwizuje (polecenie tar) jego zawartość do pliku o nazwie podanej przez użytkownika. 5. Napisz skrypt, który zapyta użytkownika o ścieżkę do katalogu, a następnie obliczy (polecenie wc) ilość wierszy i ilość znaków w każdym z plików tekstowych znajdujących się w wybranym katalogu.

17 Rozdział Język Tcl Więcej wiadomości o języku Tcl można znaleźć na stronie: Podstawowe polecenia Język Tcl (Tool Command Language) jest językiem interpretowanym. Interpreter języka Tcl to program tclsh. Plik źródłowy (skrypt) prostego programu może mieć postać: 3 puts " Pierwszy program " 4 puts " Pierwszy "; puts " program " 5 6 # komentarz 7 8 puts " Pierwszy \ 9 program " Komentarze rozpoczynamy znakiem #. Polecenia oddzielamy znakiem nowego wiersza lub średnikiem. Polecenie można kontynuować w następnym wierszu, o ile pierwsza część polecenia zostanie zakończona znakiem \. Zmienne proste: Zmienną definiujemy korzystając z polecenia set określając nazwę zmiennej i przypisując jej pewną wartość. Polecenie set zwraca wartość zmiennej. Nie jest konieczne deklarowanie typu zmiennej. 3 set x 10 4 set lan " Wartość x =" 5 6 puts $x 7 puts " Wartość x= $x" 8 puts " $lan$x " 9 puts { Wartość x= $x} 16

18 ROZDZIAŁ. JĘZYK TCL 17 Do wartości zmiennej odwołujemy się poprzedzając jej nazwę znakiem $. Łańcuch znaków może by zawarty wewnątrz nawiasów klamrowych {...} lub przy użyciu cudzysłowu.... Różnicę w stosowaniu wymienionych form prezentuje powyższy przykład. Umieszczenie odwołania do wartości zmiennej wewnątrz... spowoduje podstawienie aktualnej wartości zmiennej, natomiast umieszczenie odwołania do wartości zmiennej wewnątrz {...} nie spowoduje podstawienia wartości zmiennej. Mówimy o cytowaniu łańcucha znaków z podstawieniem lub dosłownie. Nawiasy kwadratowe [...] służą do cytowania poleceń, np: 3 puts [ set x 10] Zmienne tablicowe: Definicję zmiennej tablicowej i sposób odwoływania się do niej wyjaśni przykład: 3 set x (0) 10 4 set x (1) 11 5 set x () 1 6 set x (3) set i puts $x () 11 puts $x($i) Listy: Lista zawiera elementy oddzielone spacjami i ujęte w nawiasy klamrowe lub cudzysłów: 3 set lista { a b cd 11.0 {1 3}} 4 puts $lista Szereg operacji na listach można wykonać stosując następujące polecenia: 3 # polecenie list tworzy listę 4 set lista [ list a b cd 11.0 {1 3}]; puts $lista 5 6 # ilość elementów w liście 7 puts [ llenght $lista ] 8 9 # pobranie elementu listy 10 puts [ lindex $lista 0] 11 puts [ lindex $lista end -]

19 ROZDZIAŁ. JĘZYK TCL 18 1 puts [ lindex $lista end ] # sortowanie elementów listy 15 puts [ lsort - increasing $lista ] 16 puts [ lsort - decreasing $lista ] # dodawanie elementu na koniec listy 19 puts [ lappend lista { ala ma kota }] 0 1 # zamiana elementu listy puts [ lset lista 1 { ala ma kota }] 3 4 # inne plecenia : linsert, lsearch, lrange, lreplace Łańcuchy znaków: Łańcuch znaków to ciąg znaków ujęty w nawiasy klamrowe lub cudzysłów. Operacje na łańcuchach znaków wykonujemy przy pomocy polecenia string. 3 set str " Ala ma kota, kot ma robota." 4 5 puts [ string length $str ] 6 puts [ string reverse $str ] 7 puts [ string toupper $str ] 8 puts [ string tolower $str ] 9 puts [ string index $str ] 10 puts [ string first a $str ] 11 puts [ string first x $str ] 1 puts [ string range $str 1 10] #... Wyrażenia matematyczne: Operatory dodawania, odejmowania, mnożenia i dzielenia (+, -, *, /) są takie jak zwykle. Potęgowanie wykonuje się przy pomocy funkcji pow(3,), co odpowiada działaniu 3 = 9. Aby obliczyć wartość wyrażenia matematycznego należy użyć polecenia expr. 3 set x [ expr *]; puts $x 4 set x [ expr /3]; puts $x 5 set x [ expr.0/3]; puts $x 6 set x [ expr./3]; puts $x 7 set x [ expr /3.0]; puts $x 8 set x [ expr /3,]; puts $x 9 set x [ expr * pow (,3)]; puts $x

20 ROZDZIAŁ. JĘZYK TCL 19 Dokumentacja języka Tcl zawiera informacje o innych funkcjach matematycznych (trygonometryczne, logarytmiczne, wykładnicze,...) i sposobie ich użycia. Wyrażenia logiczne: Wyrażenia zawierające operatory porównania (<, >, <=, >=, ==) generują jedną z dwóch wartości: true i false. Prawdzie logicznej odpowiadają liczby różne od zera. Zero odpowiada fałszowi. 3 puts [ expr 1 >] 4 puts [ expr 1 <] Operatory logiczne and i or są reprezentowane przez: && i. Znakiem negacji logicznej jest!. Wyrażenia logiczne można umieszczać w nawiasach okrągłych (...). Instrukcja warunkowa if: Znaczenie instrukcji warunkowej jest takie jak w innych językach programowania. Poniżej znajdują się przykłady jej użycia: 3 if { true } { puts Alamakota } 4 if { false } { puts Alamakota } 5 6 set x 17 7 set y 15 8 if {$x > $y} { 9 puts " X jest większe od Y" 10 } elseif { $x == $y} { 11 puts " X jest równe Y" 1 } else { 13 puts " X nie jest większe od Y" 14 } Klauzul elseif może być więcej niż jedna. Pętla for: Poniższy program definiuje dwa wektory (tablice) i oblicza ich iloczyn skalarny: 3 set MAX 10 4 for { set i 0} {$i < $MAX } { incr i} { 5 set a($i) [ expr $i] 6 set b($i) [ expr $i *] 7 } 8 9 for { set i 0} {$i < $MAX } { incr i} { 10 set c($i) [ expr $a($i )* $b($i )]

21 ROZDZIAŁ. JĘZYK TCL 0 11 } 1 13 set sum 0 14 for { set i 0} {$i < $MAX } { incr i} { 15 set sum [ expr $sum +$c($i )] 16 } puts $sum Pętla while: Podobnie jak wyżej: 3 set MAX 10 4 set i 0 5 while {$i < $MAX } { 6 set a($i) [ expr $i] 7 set b($i) [ expr $i *] 8 incr i 9 } set i 0 1 while { $i < $MAX } { 13 set c($i) [ expr $a($i )* $b($i )] 14 incr i 15 } set sum 0 18 set i 0 19 while { $i < $MAX } { 0 set sum [ expr $sum +$c($i )] 1 incr i } 3 4 puts $sum Procedury: Procedurę definiuje polecenie proc. Do procedury można przekazać wartości jej argumentów. procedura może zwrócić wartość za pośrednictwem polecenia return. 3 proc suma { var } { 4 return [ expr $var +0] 5 } 6 7 set a 8 puts [ suma $a] 9 puts $a

22 ROZDZIAŁ. JĘZYK TCL 1 Jak widać wykonanie procedury suma nie powoduje zmiany wartości zmiennej a, ponieważ każda zmienna pojawiająca się w skrypcie Tcl ma określony zakres związany z poziomem wywołania procedury. Aby procedura mogła uzyskać dostęp do zmiennej zdefiniowanej na jednym z wyższych poziomów oraz aby mogła zmodyfikować jej wartość należy użyć polecenia upvar. 3 proc suma {a} { 4 upvar $a aa 5 set aa [ expr $aa +0] 6 } 7 8 set a 9 suma a 10 puts $a 3 proc iloczyn { a b} { 4 upvar $a aa 5 upvar $b bb 6 7 set sum 0 8 for { set i 0} {$i < 10} { incr i} { 9 set sum [ expr $sum + $aa ($i )* $bb ($i )] 10 } 11 return $sum 1 } for { set i 0} {$i < 10} { incr i} { 15 set a($i) [ expr $i] 16 } for { set i 0} {$i < 10} { incr i} { 19 set b($i) [ expr $i *] 0 } 1 puts [ iloczyn a b]. Wejście wyjście programu Program Tcl można uruchomić przekazując do niego listę wartości: 3 # oczekujemy dwóch wartości 4 if { $argc!= } { puts " Niepoprawna ilość argumentów."; exit }

23 ROZDZIAŁ. JĘZYK TCL 5 6 # wartości przekazane do skryptu przypisujemy zmiennym x i y 7 set x [ lindex $argv 0] 8 set y [ lindex $argv 1] 9 10 puts " Argumenty wywołania programu :" 11 puts $x 1 puts $y Rozmowa ze skryptem jest możliwa w trakcie jego wykonywania: 3 puts " Podaj liczbę :" 4 gets stdin liczba 5 6 puts stdout " Wprowadzono liczbę : $liczba " Polecenie gets pobiera dane ze standardowego wejścia stdin, a polecenie puts wyprowadza wartość zmiennej x na standardowe wyjście stdout. Identyfikator stdout można pominąć..3 Przykładowy program mnożenie macierzy 3 puts " ====================================================" 4 puts " Macierz A:" puts " Podaj liczbe wierszy :"; gets stdin wa 5 puts " Podaj liczbe kolumn :"; gets stdin ka 6 puts "" 7 puts " Macierz B:" 8 puts " Podaj liczbe wierszy :"; gets stdin wb 9 puts " Podaj liczbe kolumn :"; gets stdin kb 10 puts " ====================================================" 11 1 puts "" if { $ka!= $wb } { 15 puts "!!! Liczba kolumn macierzy A różna od liczby wierszy macierzy B!!!" 16 exit 17 } 18 if { $ka == $wb } { 19 puts " Macierz C=A* B ma wymiar : $wa x $kb " 0 } 1 puts " Elementy macierzy A:" 3 set fmt " scan \ $wiersz " 4 for { set i 1} { $i <= $ka } { incr i} { set fmt [ string cat $fmt % f] } 5 set fmt [ string cat $fmt " "]

24 ROZDZIAŁ. JĘZYK TCL 3 6 for { set i 1} {$i <= $ka } { incr i} { set fmt [ string cat $fmt "A(\$i,$i) "] } 7 for { set i 1} {$i <= $wa } { incr i} { 8 puts " wiersz $i :"; gets stdin wiersz 9 if {[ eval $fmt ]!= $ka } { 30 puts "!!! Nieprawidłowa liczba kolumn!!!" 31 exit 3 } 33 } puts "" puts " Elementy macierzy B:" 38 set fmt " scan \ $wiersz " 39 for { set i 1} { $i <= $kb } { incr i} { set fmt [ string cat $fmt % f] } 40 set fmt [ string cat $fmt " "] 41 for { set i 1} {$i <= $kb } { incr i} { set fmt [ string cat $fmt "B(\$i,$i) "] } 4 for { set i 1} {$i <= $wb } { incr i} { 43 puts " wiersz $i :"; gets stdin wiersz 44 if {[ eval $fmt ]!= $kb } { 45 puts "!!! Nieprawidłowa liczba kolumn!!!" 46 exit 47 } 48 } for { set i 1} {$i <= $wa } { incr i} { 51 for { set j 1} {$j <= $kb } { incr j} { 5 set C($i,$j) for { set k 1} {$k <= $ka } { incr k} { set C($i,$j) [ expr $C($i,$j )+ $A($i,$k )* $B( 54 } 55 } puts "" puts " Macierz C=A* B:" 60 for { set i 1} {$i <= $wa } { incr i} { 61 set str "" 6 for { set j 1} {$j <= $kb } { incr j} { 63 set str [ string cat $str "$C($i,$j) "] 64 } 65 puts $str 66 }.4 Zadania Napisz skrypty Tcl realizujące zadania z poprzedniego rozdziału.

25 Rozdział 3 Język C 3.1 Struktura programu Kod programu napisanego w języku C umieszczamy w pliku o rozszerzeniu.c. Przykładowy plik prg.c może wyglądać następująco: 1 /* Komentarz wielowierszowy 3 Plik prg.c 4 */ 5 6 // Komentarz jednowierszowy 7 8 # include < stdio.h > // Dyrektywy preprocesora 9 10 void czytaj (); // Deklaracje funkcji 11 void sortuj (); 1 void pisz (); int main () // Funkcja main () 15 { 16 czytaj (); 17 sortuj (); 18 pisz (); 19 0 return 0; 1 } 3 void czytaj () { printf (" czytaj ()/ n ")} // Definicje funkcji 4 void sortuj () { printf (" czytaj ()/ n ")} 5 void pisz () { printf (" czytaj ()/ n ")} 4

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

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

Bardziej szczegółowo

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

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Wstę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ół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

1 Przygotował: mgr inż. Maciej Lasota

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

Bardziej szczegółowo

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019 BASH - LINIA POLECEŃ Bioinformatyka 2018/2019 PODSTAWOWE DEFINICJE Linux system operacyjny, które oferuje kompletne środowisko programistyczne Powłoka interfejs wiersza poleceń zapewniający komunikację

Bardziej szczegółowo

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE Magda Mielczarek Pracownia Informatyczna 2015/2016 1 Podstawowe definicje Linux system operacyjny, które oferuje kompletne środowisko programistyczne

Bardziej szczegółowo

Powłoka (shell) Powłoka ksh

Powłoka (shell) Powłoka ksh Powłoka (shell) Powłoka - interface między użytkownikiem a systemem operacyjnym. Funkcje: interpreter poleceń użytkownika język programowania poleceń Najczęściej stosowane powłoki: Bourne a sh Korna ksh

Bardziej szczegółowo

Wprowadzenie do programowania w powłoce

Wprowadzenie do programowania w powłoce Wprowadzenie do programowania w powłoce mgr inż. Maciej Lasota m.lasota@tu.kielce.pl Katedra Informatyki, Politechnika Świętokrzyska w Kielcach 22 lutego 2012 Powłoka systemowa Powłoka systemowa Podstawowym

Bardziej szczegółowo

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Czas realizacji zajęć: 135 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Zmienne śrowiskowe oraz ich eksportowanie, argumenty

Bardziej szczegółowo

System operacyjny Linux

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

Bardziej szczegółowo

Podstawy informatyki

Podstawy informatyki Podstawy informatyki WYKŁAD nr 02 Fizyka Techniczna, WFT PP Michał Hermanowicz Zakład Fizyki Obliczeniowej, Instytut Fizyki, Politechnika Poznańska Rok akademicki 2018/2019 M. Hermanowicz (IF PP) Podstawy

Bardziej szczegółowo

Interpreter poleceń oraz zmienne środowiskowe

Interpreter poleceń oraz zmienne środowiskowe Temat zajęć Zakres materiału Skrypty powłoki Tworzenie i uruchamianie skryptów powłoki bash Interpreter poleceń oraz zmienne środowiskowe Interpreter poleceń nazywany inaczej także powłoką systemową pośredniczy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Technologie Informacyjne - Linux 3

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

Bardziej szczegółowo

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2 SKRYPTY Pracownia Informatyczna 2 PRACOWNIA INFORMATYCZNA 2017/2018 MAGDA MIELCZAREK PRACOWNIA INFORMATYCZNA 2017/2018 MAGDA MIELCZAREK 2 cal wyświetlenie kalendarza Składnia: cal 2017, cal Polecenie cal

Bardziej szczegółowo

Skrypty powłoki w systemie Linux

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

Bardziej szczegółowo

BASH - WPROWADZENIE Bioinformatyka 4

BASH - WPROWADZENIE Bioinformatyka 4 BASH - WPROWADZENIE Bioinformatyka 4 DLACZEGO BASH? Praca na klastrach obliczeniowych Brak GUI Środowisko programistyczne Szybkie przetwarzanie danych Pisanie własnych skryptów W praktyce przetwarzanie

Bardziej szczegółowo

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012 Skrypty BASH a Systemy Operacyjne 2 Mateusz Hołenko 4 października 2012 Plan zajęć O skryptach słów kilka... Powłoka, wiersz poleceń Obsługa powłoki bash Składnia języka skryptowego bash a Zadania Mateusz

Bardziej szczegółowo

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh. Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem

Bardziej szczegółowo

Programowanie skryptów powłoki

Programowanie skryptów powłoki 1 Programowanie skryptów powłoki 1. Wprowadzenie Skrypty są to programy pisane w języku programowania powłoki (np. bash) mogące wykonać zadania nie stępne dla zwykłych poleceń są zapisywane w pliku tekstowym.

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

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej Systemy operacyjne Programowanie w shellu: BASH dr inż. Andrzej Opaliński pawilon B5/p.406 tel. (+48)12 617 46 37 e-mail: andrzej.opalinski@agh.edu.pl Wydział Inżynierii Metali i Informatyki Przemysłowej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

Powłoka bash. Kurs systemu Unix 1

Powłoka bash. Kurs systemu Unix 1 Powłoka bash Kurs systemu Unix 1 Skrypty powłoki Skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: #!/usr/local/bin/bash # taki sobie skrypt lub podobną. Polecenie: sekwencja napisów, odzielonych

Bardziej szczegółowo

Środowisko programisty Zestaw 7

Środowisko programisty Zestaw 7 Bash, zmienne i instrukcje warunkowe Zmienne możemy traktować jak etykiety, które przechowują ciągi znaków. Definiujemy je przy pomocy znaku = bez spacji po obu jego stronach: dog="azor" Do zmiennych w

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

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

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE M.Mielczarek Pracownia Informatyczna 2017/2018 1 PRACOWNIA INFORMATYCZNA PROWADZĄCY: Dr Magda Mielczarek (biolog) Katedra

Bardziej szczegółowo

Pracownia Komputerowa wykład III

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

Bardziej szczegółowo

Podstawy Programowania C++

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

Bardziej szczegółowo

Powłoka interpreter poleceń systemu UNIX

Powłoka interpreter poleceń systemu UNIX SOE - Systemy Operacyjne Wykład 4 Powłoka interpreter poleceń systemu UNIX dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Powłoka Interpreter poleceń, powłoka (ang. shell)

Bardziej szczegółowo

PODSTAWY INFORMATYKI

PODSTAWY INFORMATYKI PODSTAWY INFORMATYKI Operatory i && polecenie1 polecenie2 polecenie1 && polecenie2 Operator OR ( ) spowoduje wykonanie polecenia2 tylko wtedy, gdy polecenie1 zakończy się niepowodzeniem. Operator AND (

Bardziej szczegółowo

Wprowadzenie do Scilab: podstawy języka Scilab

Wprowadzenie do Scilab: podstawy języka Scilab Wprowadzenie do Scilab: podstawy języka Scilab Magdalena Deckert, Izabela Szczęch, Barbara Wołyńska, Bartłomiej Prędki Politechnika Poznańska, Instytut Informatyki Narzędzia Informatyki Narzędzia Informatyki

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

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

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Bardziej szczegółowo

Ćwiczenie nr 14: System Linux

Ćwiczenie nr 14: System Linux Ćwiczenie nr 14: System Linux Barbara Łukawska, Adam Krechowicz, Tomasz Michno Czym jest Linux? Słowo Linux może oznaczać zarówno jądro systemowe Linux, jak i całą rodzinę systemów operacyjnych, które

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

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

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

Przekierowanie wejścia wyjścia:

Przekierowanie wejścia wyjścia: Przekierowanie wejścia wyjścia: program ma trzy podstawowe strumienie wejścia-wyjścia - standardowe wejście - standardowe wyjście - standardowe wyjście diagnostyczne przekierowanie standardowego wyjścia

Bardziej szczegółowo

Laboratorium Ubuntu Linux.

Laboratorium Ubuntu Linux. Przedmiot: Systemy operacyjne Laboratorium Ubuntu Linux. Programowanie w powłoce bash. Opracował: Krzysztof Ropiak 1. Programowanie w powłoce bash. 1.1. Wprowadzenie W jakim celu programować w powłoce

Bardziej szczegółowo

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier Systemy operacyjne Instrukcja laboratoryjna Ćwiczenie 1: Polecenia systemu UNIX/LINUX Opracował: dr inż. Piotr Szpryngier Olsztyn 2009 1 Wprowadzenie. Cel zajęć praktycznych. Wymagania stawiane studentom

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

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie Linux Polecenia Opracował: Andrzej Nowak Operatory zmiany sposobu przypisania standardowych strumieni >,> Przykłady: 2> plik przypisuje standardowe wyjście błędów do pliku, 1>&2 przypisanie standardowe

Bardziej szczegółowo

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstę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ół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

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt Skrypty powłoki Często wykonujemy powtarzający się zestaw poleceń Wygodniej jest zapisać je w pliku i poddać interpretacji przez powłokę systemu, niż wpisywać je za każdym razem z klawiatury Pliki tekstowe,

Bardziej szczegółowo

Języki skryptowe w programie Plans

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Systemy operacyjne Programowanie w języku powłoki sh

Systemy operacyjne Programowanie w języku powłoki sh Systemy operacyjne Programowanie w języku powłoki sh [2] Programowanie w języku powłoki sh Powłoka, interpreter poleceń angshell jest programem uruchamianym standardowo po otwarciu sesji użytkownika przez

Bardziej szczegółowo

Znaki globalne w Linuxie

Znaki globalne w Linuxie Znaki globalne w Linuxie * reprezentuje jeden lub wiele znaków (wild-card character)? reprezentuje dokładnie jeden znak (wild-card character) [abcde] reprezentuje dokładnie jeden znak z wymienionych [a-e]

Bardziej szczegółowo

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja Pętle W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. Instrukcja for ma następującą postać: for (w1;w2;w3) instrukcja w1, w2, w3 są wyrażeniami Schemat blokowy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

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

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

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid) Ćwiczenie 2 Cel ćwiczenia: Poznanie mechanizmów wejścia/wyjścia, zapoznanie się ze sposobami wyświetlania plików tekstowych i wyszukiwania informacji, podstawowe operacje na plikach tekstowych, zmienne

Bardziej szczegółowo

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Przykład 1 -->s=hello World! s = Hello World! -->disp(s) Hello World! Scilab jest środowiskiem programistycznym i numerycznym dostępnym za darmo z INRIA (Institut Nationale de Recherche en Informatique et Automatique). Jest programem podobnym do MATLABa oraz jego darmowego

Bardziej szczegółowo

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne 12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne 12.1. Funkcje Funkcje są to podprogramy, dzięki czemu często wykorzystywane instrukcje można zgrupować w jeden blok, zamiast

Bardziej szczegółowo

Podstawy Programowania.

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

Bardziej szczegółowo

Systemy operacyjne 11

Systemy operacyjne 11 Systemy operacyjne 11 Z Wikipedii, wolnej encyklopedii. Spis treści 1 Warunki w instrukcjach sterujących 2 Instrukcje sterujące 2.1 Instrukcja warunkowa if 2.2 Instrukcja case 2.3 Pętla for 2.4 Pętla select

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19 Systemy Operacyjne Programowanie w języku powłoki sh dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Systemy operacyjne / Programowanie

Bardziej szczegółowo

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA 1 Organizacja zajęć ½ semestru mgr Magda Mielczarek Katedra Genetyki, pokój nr 14 e-mail: magda.mielczarek@up.wroc.pl tel: 71-320-57-51 Slajdy

Bardziej szczegółowo

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX Materiały: www.staff.amu.edu.pl/~evert/asi.php W razie nieobecności proszę o zapoznanie się z materiałem z ćwiczeń w domu Zaliczenie

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Linux: System Plików

Linux: System Plików Linux: System Plików Systemy Operacyjne Mateusz Hołenko 3 marca 2013 Plan zajęć Wszystko jest plikiem Obsługa systemu plików Prawa dostępu Wyszukiwanie Mateusz Hołenko Linux: System Plików [2/24] Wszystko

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora Architektura systemów informatycznych Powłoka systemowa Architektura procesora Powłoki systemowe Powłoka tekstowa Powłoka, nazywana inaczej shellem, odpowiada za wykonywanie poleceń wpisywanych przez użytkownika

Bardziej szczegółowo

Strona1. Linux. Skrypty powłoki

Strona1. Linux. Skrypty powłoki Strona1 Linux Skrypty powłoki Strona2 Spis treści. Spis treści.... 2 Wprowadzenie.... 3 Polecenie echo, znaki cytowania oraz komentarze.... 3 Operatory arytmetyczne.... 4 Deniowanie zmiennych w skryptach

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY 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ół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

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

LibreOffice Calc VBA

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

Bardziej szczegółowo

Matlab Składnia + podstawy programowania

Matlab Składnia + podstawy programowania Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

Tworzenie skryptu: Skrypty powłoki

Tworzenie skryptu: Skrypty powłoki Skrypty powłoki Często wykonujemy powtarzający się zestaw poleceń Wygodniej jest zapisać je w pliku i poddać interpretacji przez powłokę systemu, niż wpisywać je za każdym razem z klawiatury Pliki tekstowe,

Bardziej szczegółowo

Wstęp do Programowania Lista 1

Wstęp do Programowania Lista 1 Wstęp do Programowania Lista 1 1 Wprowadzenie do środowiska MATLAB Zad. 1 Zapoznaj się z podstawowymi oknami dostępnymi w środowisku MATLAB: Command Window, Current Folder, Workspace i Command History.

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Wstęp do systemu Linux

Wstęp do systemu Linux M. Trzebiński Linux 1/8 Wstęp do systemu Linux Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński Linux

Bardziej szczegółowo

Technologie Informacyjne - Linux 2

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

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke O mnie... dr inż. Małgorzata Janik Zakład Fizyki

Bardziej szczegółowo

Przetwarzanie sygnałów

Przetwarzanie sygnałów Spis treści Przetwarzanie sygnałów Ćwiczenie 1 Wprowadzenie do programu Octave 1 Operatory 1 1.1 Operatory arytmetyczne...................... 1 1.2 Operatory relacji.......................... 1 1.3 Operatory

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo