лр №1

Мета роботи

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

Вказівки до роботи

Консольний додаток Java являє собою відкомпільований клас, що містить точку входу.

Розглянемо простий приклад:

Тут клас First використовується тільки для того, щоб визначити метод main (), який і є точкою входу і з якого починається виконання програми інтерпретатором Java. Метод main () містить аргументи-параметри командного рядка String [] args у вигляді масиву рядків і є відкритим (public) членом класу. Це означає, що метод main () видно і доступний кожному класу. Ключове слово static оголошує методи і змінні класу, які використовуються для роботи з класом в цілому, а не тільки з об'єктом класу. Символи верхнього і нижнього регістрів в Java розрізняються, ніж Java нагадує мови C / C ++ і PHP.

Виведення рядка «Перша програма на Java!» В прикладі здійснює метод println () (ln - перехід до нового рядка після виведення) властивості out класу System, який доступний в програмі автоматично разом з пакетом java.lang. Наведену програму необхідно помістити в файл, ім'я якого збігається з ім'ям класу і з розширенням java. Найпростіший спосіб компіляції написаної програми - виклик сатиричного компілятора:

При успішній компіляції створюється файл First.class. Цей файл можна запустити на виконання з командного рядка за допомогою інтерпретатора Java наступним чином:

Для розробки програми можливе використання і спеціальних засобів розробника.

  • NetBeans IDE - вільна інтегроване середовище розробки для всіх платформ Java - Java ME, Java SE і Java EE. Пропагується Sun Microsystems, розробником Java, як базовий засіб для розробки ПЗ на мові Java.
  • Eclipse IDE - вільна інтегроване середовище розробки для Java SE, Java EE і Java ME. Пропагується IBM, одним з найважливіших розробників корпоративного ПО, як базовий засіб для розробки ПЗ на мові Java.
  • IntelliJ IDEA - середовище розробки для платформ Java SE, Java EE і Java ME. Розробник - компанія JetBrains. Поширюється в двох версіях: вільної безкоштовної (Community Edition) і комерційної проприетарной (Ultimate Edition).
  • JDeveloper - середовище розробки для платформ Java SE, Java EE і Java ME. Розробник - компанія Oracle.
  • JBuilder - професійна інтегроване середовище розробки (IDE) на мові Java, заснована на програмному середовищі з відкритими початковими кодами Eclipse.
  • BlueJ - Середовище розробки програмного забезпечення на мові Java, створена в основному для використання в навчанні, але також підходить для розробки невеликих програм.

Нижче розглянуті основні класи, використовувані при виконанні лабораторної роботи, розглянуто приклад вирішення одного із завдань.

клас java.io.File

Для роботи з файлами в додатках Java можуть бути використані класи з пакета java.io, одним з яких є клас File.

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

Основні методи класу File і способи їх застосування розглянуті в наступному прикладі.

клас System

Клас System містить набір корисних статичних методів і полів системного рівня. Примірник цього класу не може бути створений або отриманий.

При запуску цього коду на екран буде виведено тільки:

І в файл "d: \ file2.txt" буде записано:

Аналогічно можуть бути перенаправлений стандартне введення System.in - викликом System.setIn (InputStream) і потік виведення повідомлень про помилки System.err - викликом System.setErr (за замовчуванням всі потоки - in, out, err - працюють з консоллю додатки).

клас String

Клас String містить основні методи для роботи з рядками:

  • concat (String s) або + - злиття рядків;
  • equals (Object ob), equalsIgnoreCase (String s) - порівняння рядків з урахуванням і без урахування регістру;
  • compareTo (String s), compareToIgnoreCase (String s) - лексикографическое порівняння рядків з урахуванням і без урахування регістру;
  • contentEquals (StringBuffer ob) - порівняння рядка і вмісту об'єкта типу StringBuffer;
  • charAt (int n) - витяг з рядка символу із зазначеним номером (нумерація з нуля);
  • substring (int n, int m) - витяг з рядка подстроки довжини m-n, починаючи з позиції n;
  • length () - визначення довжини рядка;
  • valueOf (об'єкт) - перетворення примітивного об'єкта до рядка;
  • toUpperCase () / toLowerCase () - перетворення всіх символів викликає рядки в верхній / нижній регістр;
  • replace (char з1, char с2) - заміна в рядку всіх входжень першого символу другим символом;
  • getBytes (параметри), getChars (параметри) - витяг символів рядка у вигляді масиву байт або символів.

У наступному прикладі масив символів і ціле число перетворюються в об'єкти типу String з використанням методів цього класу.

Приклад консольного java-додатки

Завдання: Ввести n рядків з консолі. Вивести на консоль рядка і їх довжини, впорядковані по зростанню.

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

  1. Ввести n рядків з консолі, знайти найкоротшу рядок. Вивести цей рядок і її довжину.
  2. Ввести n рядків з консолі. Упорядкувати, а потім вивести рядки в порядку зростання їх довжин, а також (другий пріоритет) значень цих їх довжин.
  3. Ввести n рядків з консолі. Вивести на консоль ті рядки, довжина яких менша за середню, також їх довжини.
  4. У кожному слові тексту k-ю букву замінити заданим символом. Якщо k більше довжини слова, коригування не виконувати.
  5. У російській тексті кожну букву замінити її номером в алфавіті. В одному рядку друкувати текст з двома пробілами між буквами, в наступному рядку внизу під кожною буквою друкувати її номер.
  6. З невеликого тексту видалити всі символи, крім пробілів, які не є буквами. Між послідовностями поспіль букв залишити хоча б один пробіл.
  7. З тексту видалити всі слова заданої довжини, що починаються на згідну букву.
  8. У тексті знайти всі пари слів, з яких одне є зверненням іншого.
  9. Знайти і надрукувати, скільки разів повторюється в тексті кожне слово.
  10. Знайти, яких букв, голосних або приголосних, більше в кожному реченні тексту.
  11. Вибрати три різні точки заданого на площині безлічі точок, що становлять трикутник найбільшого периметра.
  12. Знайти таку точку заданого на площині безлічі точок, сума відстаней від якої до інших мінімальна.
  13. Кутника можна заданий на площині перерахуванням координат вершин в порядку обходу його межі. Визначити площу багатокутника.