Proponowany program wykładu monograficznego

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Język C/C++ Funkcje.
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Programowanie w języku Visual Basic
Dyrektywy preprocesora Jeżeli plik źródłowy posiada rozszerzenie.F lub.FOR, może on zawierać dyrektywy dla preprocesora. Na podstawie tych dyrektyw preprocesor.
Algorytmy – zapis struktur programowania
Wprowadzenie do języka skryptowego PHP
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
Nośniki sygnałów - przykład Nośniki sygnałów – przykład.
Instrukcje warunkowe Zajęcia 5.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Bash Bourne Again SHell.
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
SO – LAB3 Wojciech Pieprzyca
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Skrypty w powłoce Ryszard Haraszczuk. Pierwszy skrypt Stworzenie pliku touch skrypt Wpisanie specjalnej linii dla powłoki #!/bin/bash Napisanie skryptu.
Schemat Hornera Mgr inż. Michał Szucki.
Programowanie w języku Fortran 95
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
Instrukcje sterujące część 1
Informatyka i programowanie
Programowanie strukturalne i obiektowe
A ctive S erver P ages Technologia dostępu do danych.
Instrukcje sterujące część 2
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Pierwsze programy.
Wyrażenia w Turbo Pascalu.
Programowanie w języku Matlab
Interpretatory poleceń - powłoki systemu
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
PHP: warunki, pętle, switch, break, continue
Technologie internetowe II
Programowanie strukturalne i obiektowe
Warsztaty programowania w języku Python
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
STEROWANIE Ale nie tylko
Instrukcja warunkowa i wyboru
Elżbieta Fiedziukiewicz
Podstawy informatyki 2013/2014
Edytor tesktu i skrypty
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Programowanie baz danych
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Wykład 10 typ zbiorowy rekurencja.
Składnia instrukcji warunkowej if…
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
Podstawy języka Instrukcje - wprowadzenie
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
PWSW Mechatronika Wykład 7 Matlab cd.
Instrukcje wyboru.
Programowanie w językach skryptowych
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Język C/C++ Instrukcje
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Podstawy tworzenia skryptów
Visual Basic w programie Microsoft Excel
Zapis prezentacji:

Proponowany program wykładu monograficznego Elementy programowania w językach skryptów w systemie UNIX. Posługiwanie się językiem awk i edytorem strumieniowym sed Praca na klastrach i superkomputerach w centrach obliczeniowych; systemy kolejkowania. Obliczenia równoległe. Baza danych PDB i inne bazy danych cząsteczek. Wizualizacja cząsteczek i wielkości z nimi związanych. Programy obliczeniowe używane w chemii kwantowej oraz obliczeniach dynamiki dużych układów molekularnych.

Języki skryptów Powłoka - Interpreter poleceń wydawanych przez użytkownika. Powłoki w systemie UNIX: Nazwa Autor Pliki konfiguracyjne Zastosowania sh Ken Thompson Steven Bourne Nieinteraktywne (skrypty) bash .bashrc wszystkie ksh David Korn .profile csh Bill Joy .cshrc .login tcsh .tcshrc .login

Jakie powłoki są dostępne w systemie: etoh:~> ls -l /bin/*sh* lrwxrwxrwx 1 root root 4 Oct 6 2005 /bin/ash -> dash -rwxr-xr-x 1 root root 625228 Dec 19 2004 /bin/bash lrwxrwxrwx 1 root root 21 Oct 6 2005 /bin/csh -> /etc/alternatives/csh -rwxr-xr-x 1 root root 83960 May 11 2005 /bin/dash lrwxrwxrwx 1 root root 4 Oct 6 2005 /bin/rbash -> bash lrwxrwxrwx 1 root root 4 Oct 6 2005 /bin/sh -> bash -rwxr-xr-x 1 root root 302476 May 19 2004 /bin/tcsh Sprawdzanie powłoki etoh:~> env | grep SHELL SHELL=/bin/tcsh

Ustawianie zmiennych lokalnych Zmienne powłoki csh sh Ustawianie zmiennych lokalnych set zmienna = wartość np. set zm = “ala” zmienna = wartość zm = “ala” Ustawianie zmiennych środowiskowych (przekazywanych do procesów wywoływanych przez skrypt) setenv zmienna = wartość setenv zm = “ala” export zmienna albo: export zmienna=wartość export zm=“ala”

Skrypt: zbiór poleceń w języku powłoki zapisanych w pliku i wykonywanych zgodnie z sekwencją zapisu Składnia (ogólnie): #!powłoka opcje polecenie1 … #komentarz polecenien Przykład (csh) #!/bin/csh -f echo “Prosty skrypt” echo –n “dzisiaj jest ” date #Podawanie aktualnego katalogu echo “Jestesmy w katalogu ”$cwd echo “Mamy tu nastepujace pliki” #Listowanie plikow ls -l

Parametry (argumenty) skryptu Skrypt można wywoływać jak każde polecenie unixowe, np: ./skrypt.sh ala ma kota Każdy parametr stojący za nazwą skryptu jest argumentem, który jest widziany we wnętrzu skryptu. Wewnątrz skryptu odwołujemy się do argumentów poprzez $1, $2, …, itd. Argument zerowy ($0) jest nazwą skryptu Liczba argumentów jest zakodowana w zmiennej $#argv

Podstawienie efektu wykonania polecenia pod zmienną set zmienna = `polecenie` np. set a = `echo Ala ma kota` Arytmetyka expr wyrażenie1 operator wyrażenie2 np. expr 2 + 3 Podstawienie: jak przy podstawieniu efektu wykonania polecenia set zmienna = `expr wyrażenie1 operator wyrażenie2` set x = `expr 2 ‘*’ 3`

Operatory w poleceniu expr + dodawanie - odejmowanie ‘*’ albo \* mnożenie ‘/’ albo \/ dzielenie całkowite % reszta z dzielenia Uwaga! Polecenie expr umożliwia tylko arytmetykę całkowitą. Do arytmetyki rzeczywistej należy użyć języka awk albo kalkulatora bc wywoływanego z opcją –l.

Do grupowania poszczególnych części wyrażenia w poleceniu expr służą nawiasy – tak jak w zwykłej arytmetyce. Nawias należy poprzedzić odwróconym ukośnikiem (backslashem) Przykłady: expr \( $a + $b \) \* $c (wymuszanie dodawania przed mnożeniem) set i = `expr $i - \( $i / 2 \) \* 2 ` (zmienna i będzie miała po tej operacji wartość równą reszcie z dzielenia całkowitego i przez 2)

Prosta instrukcja if csh sh Instrukcje, które są bardzo użyteczne w skryptach (można je wykonywać również “z ręki”) Prosta instrukcja if csh sh if (warunek) polecenie if (warunek) then polecenie1 … polecenien endif if [ warunek ] then fi

Złożona instrukcja if csh sh if (warunek1) then blok_poleceń else if (warunek2) then else endif if [ warunek1 ] then elif [ warunek2 ] fi

Wyrażenia warunkowe dotyczące plików Wyrażenia proste: 0 – fałsz; 1 – prawda. Wyrażenia warunkowe dotyczące plików -d plik : plik jest katalogiem -e plik : plik istnieje -f plik : zwykły plik -g plik : plik należy do okr. grupy -r plik : plik daje się czytać -s plik : plik zawiera jakieś dane -w plik : plik jest dostęny do zapisu -z plik : plik jest pusty -x plik jest wykonywalny -L plik : plik jest linkiem (dowiązaniem) symbolicznym

Porównywanie (w przypadku csh wyrażeń numerycznych i tekstowych w przypadku sh tylko numerycznych) znaczenie W1 = = W2 W2 < W2 W1 > W2 W1 <= W2 W1 >= W2 W1 != W2 W1 –eq W2 W1 –lt W2 W1 –gt W2 W1 –le W2 W1 –ne W2 Równe Mniejsze Większe Mniejsze lub równe Większe lub równe Różne

Porównywanie tekstów w sh: polecenie test test W1=W2 teksty są równe test W1!=W2 teksty są różne test –z W tekst ma długość zerową lub jest niezdefiniowany test –n W tekst ma długość niezerową

(op oznacza operator koniunkcji lub alternatywy) Wyrażenia złożone csh sh znaczenie !W Przeczenie W1 || W2 Alternatywa W1 && W2 Koniunkcja (W1) op W2 [ W1 ] op [W2 ] grupowanie (op oznacza operator koniunkcji lub alternatywy)

Instrukcja wyboru case csh sh switch zmienna case ‘wartość1’ blok_poleceń breaksw case ‘wartość2’ … case default endsw case zmienna in wartość1) wartość2) *) esac

Przykład skryptu csh z instrukcją case Przykład skryptu bash z instrukcją case

Instrukcje pętli foreach i for csh sh foreach (lista) polecenie1 … polecenien end for zmienna in lista do done

Instrukcja pętli while csh sh while (warunek) polecenie1 … polecenien end while [ warunek ] do done

Język awk awk ‘{polecenia}END{polecenia}’ plik_albo_dane_z_STDIN awk –f plik_z_poleceniami plik_albo_dane_z_STDIN Polecenia przed słowem END dotyczą przetwarzania strumienia wejściowego linia po linii a polecenia po słowie END są wykonywane po wyczerpaniu strumienia wejściowego. Przykład polecenia “z ręki” (sumowanie liczb kolejno wprowadzanych z klawiatury). awk ‘{sum=sum+$1}END{print sum}’

Edytor strumieniowy sed sed [opcje] –e ‘polecenia’ plik(i) sed [opcje] –f plik_z_poleceniami plik(i)

Przykład zawartości pliku z poleceniami (różniczkowanie numeryczne funkcji): { x[NR]=$1 f[NR]=$2 }END{ n=NR for (i=1;i<n;i++) p[i]=(f[i+1]-f[i])/(x[i+1]-x[i]) for (i=1;i<n-1;i++) b[i]=(p[i+1]-p[i])/(x[i+1]-x[i]) for (i=1;i<n-1;i++) print x[i],f[i],p[i],b[i] }

Podstawowe pojęcia języka awk: Pole: kolejny element linii strumienia danych. Pola są oddzielone odstępami jak w zwykłym tekście chyba, że zaspecyfikowano inny separator opcją –F. Pola są identyfikowane przez $1, $2,.... Symbol $0 oznacza całą linię. NF: liczba pól w bieżącej linii strumienia danych NR: liczba linii strumieni danych przeczytana dotychczas. Zmienna: cokolwiek co się pojawia i zaczyna od litery oprócz słów kluczowych. Słowo kluczowe: służy do konstrukcji poleceń awk Składnia poleceń języka awk bardzo przypomina składnię języka C.

Instrukcje: Podstawienie: a=wyrażenie Instrukcja warunkowa: if (warunek1) {blok_instrukcji} else if (warunek2) {blok instrukcji} ... else {blok instrukcji} Instrukcja pętli określonej: for (zmienna=start;warunek zakończenia; zmienna++) {blok_instrukcji} Instrukcja pętli z warunkiem: while (warunek) {blok instrukcji}

Funkcje arytmetyczne w awk: cos(x) exp(x) int(x) część całkowita log(x) logarytm naturalny sin(x) sqrt(x) atan2(y,x) arctan(y/x) rand() liczba losowa z przedziału <0,1) srand(x) ustawianie ziarna liczby generatora liczb losowych

Funkcje łańcuchowe w awk: gsub(r,s,t) zamienia wszystkie podlańcuchy odpowiadające wyrażeniu regularnemu r łańcucha t na wyrażenie s. index(s,t) podaje położenie podłańcucha t w łańcuchu s. length(s) długość łańcucha s match(s,r) podaje położenie wyrażenia regularnego r w łańcuhu s. split(s,a,sep) dzieli łańcuch s na elementy przechowywane w tablicy a używając separatora sep. sprintf(‘fmt’,expr) drukuje expr do łańcucha używając printf sub(r,s,t) zamienia pierwszy podlańcuch odpowiadający wyrażeniu regularnemu r łańcucha t na wyrażenie s. substr(s,p,n) wycina z łańcucha s podłańcuch o maksymalnej długości p, poczynając od pozycji n. tolower(s) zmienia duże litery na małe toupper(s) zmienia małe litery na duże

Literatura: Unix i skrypty: J.C.Armstrong, D. Taylor „Unix dla każdego”, Helion, Gliwice 2000 A.Southerton, E.C. Perkins, Jr. „Słownik poleceń systemu Unix i X”, WNT, Warszawa 1995 sed i awk: 1. D. Dougerty, A. Robbins „sed i awk”, O’Reilly & Associates, 1997