Зворотний зв'язок

Звіт про виконання практичного завдання з курсу ДРФМД

Приклади роботи з системою UNIX

1.Скопіювати усі текстові файли (з розширеням .txt) в каталог TextDir

cp *.txt TextDir

2.Дозволити читання усіх файлів каталогу AccessDir заданих шаблоном.

UNIX-скріпт в файлі changeaccess виглядає таким чином:

cd AccessDir

chmod +r $1

cd ..

Приклад виклику: changeaccess “m*.*” – дозволяє читання усіх файлів, що

починаються буквою m. Шаблон обов’язково вказується у лапках.

3.Приклад з мовою awk. Потрібно розв’язати квадратні рівняння типу

Ax2 + Bx + C = 0 якщо коефіціенти A, B та C задані у вхідному файлі

Вміст файлу на мові awk sqrt.awk

{

a = 2 * $1;

b = $2;

c = $3;

d = b * b - 2 * a * c;

if (((a == 0) && (b == 0)) || (d < 0))

printf(" Unable to calculate ")

else

if (a == 0)

printf(" x = %f ", c / b)

else

if (d == 0)

printf(" x = %f ”, - b / a)

else

printf(" x1 = %f, x2 = %f ",

(- b - sqrt(d)) / a, (- b + sqrt(d)) / a)

}

Вміст файлу з UNIX-скріптом для запуску awk-програми sqrtcalc

awk -f sqrt.awk $1

Приклад роботи програми: нехай файл koef.txt містить таки коефіціенти:

10 -1

1 0 1

2 4 2

0 0 5

1 -3 2

01 -2

Набравши в командному рядку ‘sqrtcalc koef.txt’ отримаємо результат:

x1 = -1, x2 = 1

Unable to calculate

x = -1

Unable to calculate

x1 = 1, x2 = 2

x = 2

Теоретична частина. Загальні можливості мови awk

awk – інтерпретуюча мова програмування, що підтримується операційною системою UNIX. Виклик програми здійснюється командою awk –f program file, де program є назвою файлу з awk-програмою, а file – файл даних. Не порушуючи логіки системи UNIX команда awk забезпечує потоковий ввід-вивід. who | awk -f program означає, що як файл даних використовується результат виконання команди who. Синтаксис awk-програм схожий із синтаксисом мови Cі, найбільша різниця між awk та Сі заключається в тому, що змінні в awk не типівізовані як в BASIC або тип Variant в Delphi.

Текст програми пишеться у операторних дужках { } перед яким може стояти шаблон BEGIN або END. BEGIN означає, що дана частина коду виконується до початку обробки вхідних даних, END – після закінченя. Якщо шаблон не вказано, код виконується для кожного рядка з вхідного потоку.

BEGIN{ n = 1 }

{

a[n] = $1;

b[n] = $2;

n++

}

END{

for (i = 1; i <= n; i++)

printf(“a[i] + b[i] = %f\n”, a[i] + b[i])

}

В даному прикладі код {

a[n] = $1;

b[n] = $2;

n++

} виконається стільки разів, скільки рядків містить вхідний потік.

Арифметичні та логічні операції в awk:

awkPascal

z = x + yz := x + y

z = x – yz := x – y

z = x * yz := x * y

z = x / yz := x / y

z += yz := z + y

z = x % yz := x mod y

-=, *=, /=, %=Аналогічно

x++inc(x)

x--dec(x)

x && yx and y

x || yx or y

! xnot x

x == yx = y

x != yx <> y

x < yx < y

x > yx > y

x ~ yx in y

x = (w) ? y : zif w then x := y else x := z


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат