You are on page 1of 10

Програмування мовою Java.

Лабораторна робота №1. Основи мови Java


Мета роботи : Навчитись складати елементарні консольні додатки на мові Java
Тривалість роботи :4 години

Консольні додатки Java це створений і відкомпілюваний програмістом клас, що містить


точку входу.
Розглянемо простий приклад:
public class First {
public static void main (String [] args) {
System.out.println ( "Перша програма на Java!");
}
}
Тут клас First використовується тільки для того, щоб визначити метод main (), який і є
точкою входу і з якого починається виконання програми інтерпретатором Java. Метод main ()
містить аргументи-параметри командного рядка String [] args у вигляді масиву рядків і є
відкритим (public) членом класу. Це означає, що метод main () видно і доступний кожному
класу. Ключове слово static оголошує методи і змінні класу, які використовуються для
роботи з класом в цілому, а не тільки з об'єктом класу. Символи верхнього і нижнього
регістрів в Java розрізняються.
Виведення рядка «Перша програма на Java!» в прикладі здійснює метод println () (ln -
перехід до нового рядка після виведення) властивості out класу System, який доступний в
програмі автоматично разом з пакетом java.lang. Наведену програму необхідно помістити в
файл, ім'я якого збігається з ім'ям класу і з розширенням java. Найпростіший спосіб
компіляції написаної програми - виклик рядкового компілятора:
javac First.java.
При успішній компіляції створюється файл First.class. Цей файл можна запустити на
виконання за допомогою інтерпретатора Java наступним чином:
java First.

Клас Scanner (повне ім'я java.util.Scanner) вміє зчитувати дані з різних джерел: консоль,
файли, інтернет. Якщо ми хочемо, щоб він зчитував дані з клавіатури, ми повинні передати
йому об'єкт System.in як параметр - джерела даних. А вже об'єкт типу Scanner сам
розбереться, що з ним робити.
Зчитування з клавіатури за допомогою об'єкта типу Scanner буде виглядати приблизно
так:
Scanner console = new Scanner (System.in); // Створюємо об'єкт класу Scanner.
String name = console.nextLine (); // Читаємо з клавіатури рядок тексту
int age = console.nextInt (); // Читаємо з клавіатури ціле число.
double d= console.nextDouble (); // Читаємо з клавіатури дійсне число.
Методи класу Scanner:
hasNextInt () - повертає true якщо з потоку введення можна вважати ціле число.
nextInt () - зчитує ціле число з потоку введення.
hasNextDouble () - перевіряє, чи можна вважати з потоку введення дійсне число типу
double.
nextDouble () - зчитує дійсне число з потоку введення.
nextLine () - дозволяє зчитувати цілу послідовність символів, тобто рядок.
hasNext () - перевіряє, а чи залишилися в потоці введення якісь символи.
Масив являє набір однотипних значень. Оголошення масиву схоже на оголошення
звичайної змінної, яка зберігає одиночне значення, причому є два способи оголошення
масиву:
тип_даних назва_масива [];
// або
тип_даних [] назва_масива;
Наприклад, визначимо масив чисел:
int nums [];
int [] nums2;
Після оголошення масиву ми можемо ініціалізувати його:
int nums [];
nums = new int [4]; // масив з 4 чисел
Створення масиву проводиться за допомогою наступної конструкції: new тип_даних
[колічество_елементов], де new - ключове слово, що виділяє пам'ять для зазначеного в
дужках кількості елементів. Наприклад, nums = new int [4]; - в цьому виразі створюється
масив з чотирьох елементів int, і кожен елемент буде мати значення за замовчуванням -
число 0.
Також можна відразу при оголошенні масиву форматувати його:
int nums [] = new int [4]; // масив з 4 чисел
int [] nums2 = new int [5]; // масив з 5 чисел

Завдання до лабораторної роботи.


За введеними значеннями обчислити та вивести на екран значення виразу. Обчислення
виконати у трьох варіантах: 1) вхідні дані дійсного типу, результат – дійсного; 2) вхідні дані
цілого типу, результат – дійсного; 3) вхідні дані дійсного типу, результат – цілого.

Варіанти завдань:

a  b 1
1. a  ab3
a 2
2

1 1
2.  ( x  y)
xy x 2  y 2
n 1 mn
3.   n3
n2m  2 mn
ab  (a  b)(a  b)
4.  5b
b4  a3
( x  y) 3
5. xy  ( x  y)
x2  y2
2
 n 1 5 
6.    nm
m2 nm

 ab3
a b
7.  2
b 2 a 2
2

2 x 2  xy 3xy  y 3
8. 
xy2 x2  2y2
9.
n  1(m  4)  nm  n 4  m 3
m  22
1 1
10.  b
ab  2b
2
3a  2
2

Приклад програми на Java. Знайти периметр квадрата, площа якого рівна а


//package lab1.example.first;
import java.util.Scanner;
public class LabFirst{

public static void main(String[] args) {


System.out.print("s= ");
Scanner in = new Scanner(System.in);
float s = in.nextFloat();
double p = 4 * Math.sqrt(s);
System.out.println("p=" + p);
in.close();
}
}

1.Run cmd
2.d:
3.mkdir TestLAB
4.cd TestLAB
5.notepad LabFirst.java
6.“Input text program ”
7.Save
Послідовність команд компіляції та виконання у консолі у поточному каталозі
javac LabFirst.java
java -classpath . LabFirst або java LabFirst
//

Завдання 2

1. Задано дійсні величини a, b a  b і масив чисел X n  , n  200. Розробити програму, яка


обчислює суму всіх X (i )  a , добуток всіх X (i )  b і знаходить max X i  та min X i 
серед X (i)  a, b , i  1, 2 , ... , n.
2. Задано дійсні число r і масив An  , n  200. Розробити програму, яка підраховує скільки
   
точок з координатами a1, , a 2 , a3, , a4 , …, a 2 n 1 a 2 n  належать кругові радіуса r з центром
на початку координат.
3. Задано масив цілих чисел An  , n  200. Розробити програму, яка переписує всі числа, що
повторюються, з масиву An  в масив Bn  по одному разу.
4. Задано масив дійсних чисел A2n , n  200. Розробити програму, яка обчислює суму тих
чисел із An  1,... , A2n , які перевищують середнє арифметичне значення чисел
A1, ... , An .
5. Задано масив дійсних чисел An  , n  200. Розробити програму, яка будує масив Bn  за
правилом: bi є середнім арифметичним значенням чисел a1 , a2 ,... , an , крім a i , i  1,2,..., n .
6. Задано два масиви цілих чисел X n  і Y n  , n  300 . Розробити програму, яка обчислює
добуток елементів об’єднання цих масивів. Об’єднання двох масивів  це всі елементи масиву
X n  і всі елементи масиву Y n , взяті по одному разу. Надрукувати елементи об’єднання та
їх суму.
7. Задано масив цілих чисел An  , n  400. Розробити програму, яка знаходить максимальне
серед тих чисел, які не повторюються.
8. Задано цілі число k і масив An  , n  200. Розробити програму, яка здійснює циклічний зсув
масиву An  на k позицій вправо.
9. Задано масив чисел An  , n  500 . Розробити програму, яка обчислює суму всіх чисел, які
знаходяться між першим і останнім від’ємними елементами цього масиву і вказує цей
діапазон. Якщо від’ємних чисел немає або є тільки одно, то виводить повідомлення про це.
10. Задано масиви цілих чисел An  , n  400 і Bm , m  200 . Розробити програму, яка будує
симетричну різницю A \ B  B \ A і розміщує її елементи в масиві C n  m . Симетрична
різниця A \ B  B \ A – це елементи масиву A , що не належать масиву B , і елементи
масиву B , що не належать масиву A , взяті по одному разу.
11. Задано масиви цілих чисел An  , n  500 і Bm , m  200 . Обчислити суму об’єднання
A  B . Об’єднання A  B – це множина елементів масиву A і B , взятих по одному разу.
Надрукувати елементи об’єднання та їх суму.
12. Задано масив цілих чисел An  , n  400. Розробити програму, яка перетворює цей масив
так, щоб на початку розміщувалися всі від’ємні елементи, а потім додатні у порядку їх
наступності у початковому масиві. (Додатковий масив не використовується). Перетворений
масив надрукувати по десять чисел у рядку.
13. Задано масив цілих чисел An  , n  500 . Розробити програму, яка вилучає із A всі числа, які
повторюються більше трьох разів, а масив ущільнює.
14. Задано два масиви цілих чисел An  , n  400 і Bm , m  200 . Розробити програму, яка
знаходить найменший елемент серед тих елементів масиву A , які не містяться у масиві B .
15. Задано масив цілих чисел An  , n  300 . Розробити програму, яка вилучає із A всі числа, які
повторюються, а масив ущільнює і друкує по п’ять елементів у рядку.
16. Задано масив цілих чисел X n  , n  300 . Розробити програму, яка знаходить у цьому масиві
й друкує найдовший ланцюжок чисел, упорядкованих за зростанням.
17. Задано масив цілих чисел An  , n  300 (числа в масиві можуть бути однаковими).
Розробити програму, яка знаходить і друкує найдовший ланцюжок однакових чисел.

Приклад. Замінити усі додатні елементи масиву відповідними від’ємними їм числами.

package lab1.example.second;
import java.util.Scanner;

public class Main {


static Scanner in;
static int [] Input()
{
System.out.println("Розмірність масиву");
int n=in.nextInt();
int []a=new int[n];
for (int i = 0; i < n; ++i)
{
System.out.print("a["+i+"]= ");
a[i]=in.nextInt();
}
return a;
}

static void Print(int[] a)


{
for (int i = 0; i < a.length; ++i)
System.out.print(a[i]+" ");
System.out.println();
}

static void Change(int[] a)


{
for (int i = 0; i < a.length; ++i)
if (a[i] > 0) a[i] = -a[i];
}

public static void main(String[] args) {


in = new Scanner(System.in);
int[] myArray=Input();
System.out.println("Вихідний масив:");
Print(myArray);
Change(myArray);
System.out.println("Змінений массив:");
Print(myArray);
}
}
Завдання 3:

1. Задано дві матриці An, n і Bn, n , n  15 . Розробити програму, яка будує матрицю
X n, n множенням елементів кожного рядка першої матриці на найбільше із значень
елементів відповідного рядка другої матриці.
2. Задана матриця X n, n , n  15 . Розробити програму, яка будує логічний вектор Ln  за
правилом: Li   true , якщо в i -му рядку цієї матриці кількість від’ємних елементів більша
від кількості додатних, інакше – Li   false .
3. Задана квадратна матриця An, n , n  20 Розробити програму, яка перестановкою рядків і
стовпчиків перетворює цю матрицю так, щоб максимальний елемент матриці (вважається, що
він єдиний) розмістився в лівому верхньому куті.
4. Задано дійсну матрицю An, n , n  20 . Розробити програму, яка будує вектор Bn  за
правилом: координати вектора B є середніми арифметичними значеннями елементів рядків
матриці A .
5. Задано дві квадратних матриці An, n і Bn, n , n  15 . Розробити програму, яка будує і
друкує вектор X n  за правилом: X i   1 , якщо елементи i -го рядка матриці A більші ніж
відповідні елементи i -го рядка матриці B та X i   0 в інших випадках.
6. Задано дві цілочислові матриці An, n і Bn, n , n  15 . Розробити програму, яка будує і
друкує вектор X n  за правилом: X i   1 , якщо всі елементи i -го рядка першої та другої
матриць від’ємні та X i   0 в інших випадках.
7. Задано дві цілочислові матриці An, n і Bn, n , n  20 . Розробити програму, яка будує і
друкує вектор X n  за правилом: X i   1 , якщо кількість від’ємних елементів i -го рядка
першої матриці дорівнює кількості від’ємних елементів i -го рядка другої матриці та X i   0
в інших випадках.
8. Задана дійсна матриця An, n , n  15 . Розробити програму, яка обчислює суму її елементів,
розміщених на головній діагоналі і вище неї, які перевищують за величиною всі елементи,
розміщені нижче головної діагоналі. Якщо таких елементів немає, то виводить повідомлення
про це.
9. Задана цілочислова матриця An, n , n  15 . Розробити програму, яка знаходить і друкує
номери тих рядків, у яких всі елементи однакові, і номери тих стовпчиків, всі елементи в
яких парні.
10. Задана цілочислова матриця An, n , n  20 . Розробити програму, яка знаходить і друкує
номери тих рядків, елементи яких утворюють симетричні послідовності 1, 2, 3, 3, 2, 1 або 1, 2,
3, 5,3, 2, 1.
11. Задана матриця An, n , n  20 . Розробити програму, яка знаходить найменше значення
серед тих елементів стовпчика, сума модулів якого найбільша. Якщо таких стовпців декілька,
то взяти перший з них.
12. Задана цілочислова матриця An, n , n  15 . Розробити програму, яка здійснює циклічний
зсув рядків так, щоб першим став рядок, у якому знаходиться максимальний елемент матриці
(вважається, що він єдиний).
13. Задана цілочислова матриця An, n , n  20 . Розробити програму, яка здійснює циклічний
зсув стовпців так, щоб першим став стовпчик, у якому знаходиться мінімальний елемент
матриці (вважається, що він єдиний).
14. Задана дійсна матриця An, n , n  20 . Розробити програму, яка будує вектор X n  за
правилом: X i  дорівнює сумі модулів тих елементів, які розміщені між першим і останнім
включно додатними елементами i -го рядка. Якщо додатних елементів у i -му рядку немає або
є тільки один, то X i   1 .
15. Задана дійсна матриця X n, n , n  15 . Розробити програму, яка будує вектор Y n  за
правилом: Y i  дорівнює сумі модулів тих елементів, які розміщені за першим включно
від’ємним елементом i -го рядка. Якщо від’ємного елемента у i -му рядку немає, то
Y i   1 .
16. Задана дійсна матриця An, n , n  20 . Розробити програму, яка будує вектор X n  за
правилом: X i  i  1, 2,... , n  дорівнює півсумі модулів максимального і мінімального
елементів i -го рядка.
17. Задана цілочислова матриця M n , n , n  20 . Розробити програму, яка знаходить і друкує
номери тих рядків і стовпців, суми елементів яких однакові. Якщо таких рядків і стовпців
немає, то друкує повідомлення про це.
18. Задана матриця X n, n , n  20 . Розробити програму, яка будує логічний вектор Y n  за
правилом: якщо елементи в i -му рядку не повторюються, то Y i   true , в іншому випадку
Y i   false .
19. Задано дві цілочислові матриці An, n і Bn, n , n  15 . Розробити програму, яка будує
вектор X n  за правилом: якщо i -ий рядок першої матриці збігається з i -им стовпчиком
другої матриці, то X i   1 , в інших випадках X i   0 .
20. Задана цілочислова матриця An, n , n  15 . Розробити програму, яка знаходить найменший
елемент у тому рядку матриці, добуток елементів якого найбільший.
21. Задана дійсна матриця An, n , n  20 . Розробити програму, яка обчислює значення
x1 y n  x2 y n 1      xn y1 , де x i  мінімальний, а y i - максимальний елементи i -го рядка
матриці i  1,2,..., n .
22.Задана дійсна матриця An, n , n  20 . Розробити програму, яка будує вектор X n  за
правилом: якщо a ii  0 , то X i  дорівнює сумі модулів елементів, розміщених до головної
діагоналі; якщо a ii  0 , то X i  дорівнює сумі елементів, розміщених після головної
діагоналі.

Приклад. Підрахувати середнє арифметичне непарних елементів, розташованих вище


головної діагоналі.

package lab1.example.third;
import java.util.Scanner;

public class Main {

static Scanner in;

static int [][] Input (int n){


System.out.println("Розмірність масиву ");
System.out.print("n = ");
n=in.nextInt();
int a[][] = new int[n][n];
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
{
System.out.print("a["+i+","+j+"]= ");
a[i][j]=in.nextInt();
}
return a;
}

static void Print(int[][] a){


for (int i = 0; i < a.length; ++i, System.out.println() )
for (int j = 0; j < a[i].length; ++j)
System.out.print(a[i][j]+"\t");
}
static double Result(int[][] a){
int k=0;
double s=0;
for (int i = 0; i < a.length; ++i)
for (int j = i+1; j < a[i].length; ++j)
if (a[i][j] %2!= 0) {++k; s+=a[i][j];}
if (k!=0) return s/k;
else return 0;
}

public static void main(String[] args) {


in = new Scanner(System.in);
int n = 0;
int[][] myArray=Input(n);
System.out.println("Вихідний масив:");
Print(myArray);
System.out.println("Результат: "+Result(myArray));
}
}
Завдання 4:

1. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає з цього тексту всі слова з подвоєнням літер і записує їх в окремий рядок,
розділяючи пробілами. Друкує окремо вилучені слова і текст, що залишився після вилучення
слів.
2. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає з цього тексту всі слова найбільшої довжини. (Слів найбільшої довжини може
бути декілька). Друкує текст, що залишився після вилучення слів.
3. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка знаходить і друкує всі симетричні слова (наприклад, слово абввба є симетричним).
4. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає в кожному слові цього тексту всі наступні входження першої літери.
5. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає в кожному слові цього тексту всі попередні входження останньої літери.
6. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка в словах непарної довжини цього тексту вилучає середню літеру.
7. Задано символ і текст, слова в якому розділені пробілами і розділовими знаками. Розробити
програму, яка знаходить і друкує всі слова, що містять заданий символ найбільшу кількість
разів.
8. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає із заданого тексту всі слова непарної довжини.
9. Задано текст із малих латинських літер, слова в якому розділені пробілами і розділовими
знаками. Розробити програму, яка знаходить і друкує всі слова з літерами, розміщеними в
лексикографічному порядку.
10. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає з цього тексту всі слова з повторенням літер.
11. Задано текст із малих латинських букв, слова в якому розділені пробілами і розділовими
знаками. Розробити програму, яка знаходить і друкує всі слова, букви в яких розміщені в
алфавітному порядку.
12. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка знаходить і друкує всі слова, буква ’А‘ або а’ в яких зустрічається найбільшу кількість
разів.
13. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка знаходить і друкує всі слова, букви в яких не повторюються.
14. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму,
яка вилучає із цього тексту всі слова, які починаються з голосної букви.

Приклад. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити
програму, яка знаходить і друкує всі слова, перша і остання літери яких збігаються.

package lab1.example.fourth;
import java.util.Scanner;

public class Main {


public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Введіть текст:");
String text = in.nextLine();
String[] words = text.split("[ ,.:;-?!]+");
System.out.println("Слова, які починаються і закінчуються однаковими
літерами:");
for (int i=0;i<words.length;i++){
String word = words[i];
if (word.charAt(0)==word.charAt(word.length()-1))
System.out.print(word + " ");
}
in.close();
}
}

You might also like