Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
14.04.2015
Размер:
261.12 Кб
Скачать

Volume is 3000

1.2.12. Інструментальні засоби JDK (Java Development Kit)

1.2.12.1. jar — програма створення архівів Java

1.2.12.1.1. Присутність

JDK версії 4.1 і більш пізніх версій.

1.2.12.1.2. Синтаксис виклику

jar c|t|x[f][m][v] [jar-файл] [файл опису} [файли}

1.2.12.1.3. Опис

Програма jar використовується для створення архівних файлів Java (JAR) і роботи з ними. JAR-файл являє собою стиснутий ZIP-файл із додатковим файлом опису. Синтаксис команди jar нагадує синтаксис команди tar (tape archive — архів на магнітній стрічці) ОС UNIX.

1.2.12.1.4. Приклади використання

Створення простого JAR-архіву:

jar cvf my.jar *.java images

Одержання списку вмісту архіву:

jar tvf your.jar

Витяг файлу опису з JAR-файлу:

jar xf the.jar META-INF/MANIFEST.MF

Створення JAR-файлу з заданим описом:

jar cfmv YesNoDialog.jar manifest.stub oreilly/beans/yesno

1.2.12.2. Java — інтерпретатор Java

1.2.12.2.1. Присутність

JDK версії 4.0 і більш пізніх версій.

1.2.12.2.2. Синтаксис виклику

Java [опції інтерпретатора] ім'я класу [аргументи програми] Javag [опції інтерпретатора] ім'я класу [аргументи програми]

1.2.12.2.3. Опис

Програма Java являє собою інтерпретатор байта-коду Java, що запускає Java-програми. Програма java_g — це версія інтерпретатора з можливістю налагодження. Вона не оптимизирована і має додаткові засоби для відстеження процесу виконання програми.

Програма, яку треба виконати, — це клас, зазначений в аргументі ім'я_класу. Ім'я повинне бути повним і включати ім'я пакета, але не містити розширення class. Відзначимо, що імена пакета і класу розділяються крапками, а не символами чи косою зворотної косої риси, як при вказівці шляху. Якщо в класі Java відсутній оператор package, виходить, цей клас не належить ні пакету, і вказується тільки його ім'я. Наприклад:

java test

В описі параметра -classpath і змінного середовища classpath показано, де інтерпретатор Java повинний шукати класи. Клас, зазначений за допомогою аргументу ім'я_класу, повинний містити метод main () з таким оголошенням:

public static void main(String argv[])

1.2.12.3. javac — компілятор Java

1.2.12.3.1. Присутність

JDK версії 4.0 і більш пізніх версій.

1.2.12.3.2. Синтаксис виклику

javac [параметри] файли

1.2.12.3.3. Опис

Програма javac компілює вихідні тексти Java (з файлів з розширенням java) у байт-код Java (у файли з розширенням class).

Компілятор javac може передати в командному рядку будь-яка кількість файлів вихідних текстів Java, чиї імена повинні мати розширення Java. Компілятор javac генерує окремий файл для кожного класу, визначеного у файлі вихідного тексту, незалежно від кількості файлів вихідного тексту. Іншими словами, однозначної відповідності між файлами вихідних текстів і файлами класів може і не бути. Відзначимо також, що компілятор вимагає, щоб в одному файлі вихідного тексту був визначений тільки один public-клас і щоб ім'я файлу (без розширення Java) збігалося з ім'ям класу (без імені пакета).

За замовчуванням javac розташовує створені файл класів у тім же каталозі, де знаходилися відповідні файли з вихідними текстами. Це можна перевизначити за допомогою параметра -d.

1.3. Порядок виконання роботи та методичні вказівки до її виконання

Порядок виконання завдання на лабораторній роботі:

  • виконати роботу у середовищі JAVA, використовуючи приклади додатків наведених у попередньому розділі;

  • створити додаток відповідно до особистого завдання;

  • відпрацювати додаток у середовищі JAVA.

При підготовці до виконання роботи необхідно пропрацювати потрібний розділ лекційного матеріалу та літературу [2].

1.4. Варіанти індивідуальних завдань:

1. Розробіть додаток, який знаходить усі прості числа у діапазоні [1..100].

2. Розробіть додаток, який у матриці відсортує за зростанням елементи головної діагоналі та поміняє місцями максимальний елемент з мінімальним.

3. Розробіть додаток, який сортує масив методом вставки.

4. Розробіть додаток, який вирішує систему лінійних рівнянь.

5. Розробіть додаток, який знаходить факторіали чисел від 1 до 10.

6. Розробіть додаток, який сортує масив методом пухирця.

7. Розробіть додаток, який знаходить корені квадратного рівняння.

8. Розробіть додаток, який сортує масив методом швидкого сортування.

9. Розробіть додаток, який перемножує 2 матриці.

10. Розробіть додаток, який знаходить рішення f(x)=0 методом ділення наполовину на інтервалі [a, b], де f(a)<0, f(b)>0. Функцію доберіть самостійно.

1.5. Контрольні питання та завдання

1. Яке середовище у JAVA?

2. Що таке апплети, додатки й оброблювачі у JAVA?

3. Що таке класи у JAVA?

4. Які засоби використовуються при створенні додатків у JAVA?

5. На яких платформах можуть працювати додатки JAVA?

6. Які JAVA має убудовані класи?

7. Як використовувати масиви у JAVA?

8. Назвіть базові типи даних у JAVA?

9. Як одержується та звільняється динамічна пам’ять у JAVA?

  1. ЛАБОРАТОРНА РОБОТА ОБРОБКА РЯДКІВ

2.1. Мета роботи

Метою роботи є вивчення та придбання практичних навичок складання фрагментів програм з використанням рядків.

2.2. Методичні вказівки до організації самостійної роботи студентів

Програми, складені мовою програмування Java, можна розділити по своєму призначенню на дві великі групи.

До першої групи відносяться додатки Java, призначені для автономної роботи під керуванням спеціальної інтерпретуючої машини Java. Реалізації цієї машини створені для всіх основних комп'ютерних платформ.

Друга група - це так називані апплети (applets). Апплети являють собою різновид додатків Java, що інтерпретуються віртуальною машиною Java, убудованої практично в усі сучасні браузери.

2.2.1. Використання класу String

Клас String призначений для роботи з такими часто зустрічаються об'єктами, як текстові рядки. Методи цього класу дозволяють виконувати над рядками практично всі операції, що ви робили раніш за допомогою бібліотечних функцій C. Це перетворення рядка в число і назад з будь-якою заданою підставою, визначення довжини рядка, порівняння рядків, витяг підрядка і так далі.

Хоча в мові Java не допускається перезавантаження (перевизначення) операторів, для об'єктів класу Stirng і об'єктів усіх класів, що відбулися від його, зроблене убудоване перезавантаження операторів "+" і "+=". За допомогою цих операторів можна виконувати злиття текстових рядків, наприклад:

System.out.println("x = " + x + '\n');

Тут як параметр функції println передається текстовий рядок, складена з трьох компонентів: рядка "x = ", числа x і символу переходу на наступну рядок '\n'. Значення змінної x автоматично перетвориться в текстовий рядок (що виконується тільки для текстових рядків) і отримана в такий спосіб текстовий рядок зливається з рядком "x = ".

class stroki

{

public static void main(String[] args) throws java.io.IOException

{

//Vvod stroki

byte[] b1=new byte[100];

int n1=System.in.read(b1);

String s1=new String(b1,0,n1);

StringBuffer s=new StringBuffer(s1);

int len1="metalist".length();

int len2="dinamo".length();

int pos1=s.indexOf("metalist");

int pos2=s.indexOf("dinamo");

if(pos2>pos1)

{ s.delete(pos2,pos2+len2);

s.insert(pos2,"metalist");

s.delete(pos1,pos1+len1);

s.insert(pos1,"dinamo");

}

else

{ s.delete(pos1,pos1+len1);

s.insert(pos1,"dinamo");

s.delete(pos2,pos2+len2);

s.insert(pos2,"metalist");

}

//Vuvod stroki na ekran

System.out.print(s+" ");

}

}

2.3. Порядок виконання роботи та методичні вказівки до її виконання

Порядок виконання завдання на лабораторній роботі:

  • виконати роботу у середовищі JAVA, використовуючи приклади додатків наведених у попередньому розділі;

  • створити додаток відповідно до особистого завдання;

  • відпрацювати додаток у середовищі JAVA.

При підготовці до виконання роботи необхідно пропрацювати потрібний розділ лекційного матеріалу та літературу [2].

2.4. Варіанти індивідуальних завдань:

  1. У тексті слово "країна " замінити словом "Україна".

  2. Скільки разів у заданому реченні зустрічаються слова "КСМ" та "СКС" ?

  3. Виписати із тексту слова, що починаються та закінчуються цифрою.

  4. Знайти у тексті найдовше слово, що складається з цифр.

  5. У тексті виділити всі слова, що починаються літерою "к".

  6. Виділити частину тексту між словами, що вводяться з клавіатури.

  7. Чи є в тексті слова, що починаються та закінчуються однією і тією ж літерою?

  8. У якому слові тексту менше усього голосних звуків?

  9. Видалити з тексту усі слова, що починаються з літер, які задаються в рядку запиту.

  10. Сформувати масив, елементи якого налічують кількость голосних літер у словах речення.

2.5. Контрольні питання та завдання

3 ЛАБОРАТОРНА РОБОТА РОБОТА З КЛАСАМИ

3.1. Мета роботи

Метою роботи є вивчення та придбання практичних навичок складання фрагментів програм з використанням файлів

3.2. Методичні вказівки до організації самостійної роботи студентів

3.3. Порядок виконання роботи та методичні вказівки до її виконання

Порядок виконання завдання на лабораторній роботі:

  • виконати роботу у середовищі JAVA, використовуючи приклади додатків наведених у попередньому розділі;

  • створити додаток відповідно до особистого завдання;

  • відпрацювати додаток у середовищі JAVA.

При підготовці до виконання роботи необхідно пропрацювати потрібний розділ лекційного матеріалу та літературу [2].

3.4. Варіанти індивідуальних завдань:

Розробити програму, яка демонструє наслідування та поліморфізм.

1. Базовій клас – абстрактна фігура в шах матах. Класи, які наслідують, – «кінь», «ладья»

2. Базовій клас – абстрактна фігура в шах матах. Класи, які наслідують, – «кінь», «ферзь»

3. Базовій клас – абстрактна фігура в шах матах. Класи, які наслідують, – «король», «ладья»

4. Базовій клас – абстрактна фігура в шах матах. Класи, які наслідують, – «пешка», «ладья»

5. Базовій клас – абстрактна фігура в шах матах. Класи, які наслідують, – «ферзь», «тура»

6. Базовій клас – точка на площині. Класи, які наслідують, – «прямокутник», «паралелепіпед»

7. Базовій клас – точка на площині. Класи, які наслідують, – «квадрат», «куб»

8. Базовій клас – точка на площині. Класи, які наслідують, – «коло», «еліпс»

9. Базовій клас – точка на площині. Класи, які наслідують, – «коло», «шар»

10. Базовій клас – точка на площині. Класи, які наслідують, – «прямокутник», «коло»

3.5. Контрольні питання та завдання

  1. ЛАБОРАТОРНА РОБОТА РОБОТА З ПОТОКАМИ

4.1. Мета роботи

Метою роботи є вивчення та придбання практичних навичок складання фрагментів програм з використанням потоків.

4.2. Методичні вказівки до організації самостійної роботи студентів

При створенні процесу в системі з'являється новий програмний потік, що належить цьому процесу. Спочатку новий процес охоплює лише один потік. Цей потік може створювати нові потоки, а ці нові, в свою чергу, можуть створювати інші. Процес триває доти, доки в межах його впливу знаходиться принаймні один програмний потік (чи доти, доки не відбудеться щось, у результаті чого весь процес, чи все завдання не припинить роботу).

Потоки можуть виконувати у фоновому режимі які-небудь дії відносно вашої основної програми. Наприклад, можна створити новий програмний потік, що у фоновому режимі виводитиме інформацію на принтер. Потоки зручно використовувати також у випадку, коли підвисання якої-небудь процедури не повинне стати причиною порушень функціонування основної програми. Наприклад, у той час, як основна програма виконує складні математичні обчислення, окремий програмний потік може здійснювати обмін даними через асинхронний послідовний канал зв'язку (наприклад, через модем). У випадку уповільнення передачі даних через канал чи у випадку підвисания модему функціонування основної програми не буде порушено.

import java.io.*;

import java.util.*;

class MyThread

{

public static void main(String args[])// throws java.io.IOException

{ ( new Thread(new MyThred())).start();

}; };

class MyThred implements Runnable

{

static int n;// = 5;

static int [][] m;// = new int [n][n];

static int [] m1;// = new int [n];

public MyThred()

{ n = 5;

m = new int [n][n];

m1 = new int [n];

System.out.println("Enter " + m.length + " numbers:");

for (int i = 0; i < m.length; i++)

for (int j = 0; j < m.length; j++)

{ try

{

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

String input = in.readLine();

StringTokenizer idata = new StringTokenizer(input);

m[i][j] = Integer.parseInt(idata.nextToken());

}

catch(IOException ex1){}

}

}

public synchronized void Block()

{

for(int i=0;i<n;i++)

{ m1[i]=0;

for(int j=0;j<n;j++)

m1[i]+=m[i][j];

}

try{

Thread.sleep(10);

}

catch(InterruptedException ex)

{System.out.println("bad sleep");

}

}

public void run()

{

for(int i=0;i<3;i++)

{

Block();

print();

}

}

void print()

{

System.out.println("summs elements of strings:");

for (int i = 0; i < m1.length; i++)

{

System.out.print(m1[i] + " ");

}

}

};

4.3. Порядок виконання роботи та методичні вказівки до її виконання

Порядок виконання завдання на лабораторній роботі:

  • виконати роботу у середовищі JAVA, використовуючи приклади додатків наведених у попередньому розділі;

  • створити додаток відповідно до особистого завдання;

  • відпрацювати додаток у середовищі JAVA.

4.4. Варіанти індивідуальних завдань:

В усіх програмах треба виводити, який потік зараз активний.

1. У першому потоці треба виконувати обчислення інтегралу від деякої функції, а в іншому – іншого інтегралу. Після закінчення обчислень результати необхідно вивести на екран.

2. У першому потоці треба виконувати сортування масиву за зростанням чисел, а в іншому за зменшенням чисел. Результати сортування необхідно постійно виводити на екран під час роботи програми. Масиви для сортування необхідно заповнити випадковими числами.

3. У першому потоці треба генерувати випадкові числа та виводити на екран. Другий потік має отримувати останнє число та обчислювати його квадрат , сортуючи другий список за зростанням.

4. У першому потоці треба генерувати випадкові числа та виводити на екран. Другий потік має отримувати останнє число та ставити його в інший масив, попередньо перевіряючи наявність такого числа в масиві та сортуючи список за зменшенням.

5. У першому потоці треба виконувати шифрування послідовності слів та виводити словами на екран. Другий потік має отримати слово, дешифрувати і вивести .

6. У першому потоці необхідно здійснювати формування довільних наборів латинських літер, але не більше 8 символів та виводити на екран. Другий потік має постійно отримувати ці комбінації символів сортувати їх таким чином, щоб вони були відсортовані в алфавітному порядку.

7. У першому потоці необхідно здійснювати чисельне диференціювання однієї функції, а в іншому другої. Після завершення кожного обчислення необхідно вивести результати на екран.

8. У першому потоці необхідно організувати обислення функції y=x2 та вивести результат, а в іншому потоці організувати обчислення функції y=x3 та вивести результат .

9. У першому потоці необхідно організувати зміщення вліво на 1 біт у ASCII коді символу, який отримується випадково, а в іншому потоці необхідно отримувати останній елемент першого потоку, виконувати зміщення вправо та виводити їх на екран.

10. Розробити програму, яка створюватиме два потоки. У першому потоці необхідно здійснювати отримання даних з клавіатури та виведення їх , а другий потік постійно перевіряє наявність елементів в першому потоці та вилучає їх.

11. У першому потоці необхідно створити генерацію випадкових чисел, а в іншому - пошук максимального та мінімального елементів у цьому масиві і виводити на екран множину цих елементів.

12. У першому потоці треба виконувати обчислення інтегралу від деякої функції, а в іншому – диференціала від іншої функції. Після закінчення обчислень результати необхідно вивести на екран.

13. Розробити програму, яка в першому потоці генеруватиме послідовності з 5-ти літер та розміщуватиме їх у масив, а в іншому потоці необхідно вибирати ті послідовності, які мають літери a, d, t, l, p, e, t та виводити на екран ці послідовності.

Соседние файлы в папке Програмне_забезпечення_ОС_ИНФ_5_сем