МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Національній університет "Львівська політехніка"
Розроблення програми додатка засобами бібліотеки JavaFX
МЕТОДИЧНІ ВКАЗІВКИ
до розрахункової роботи
з курсу "Об’єктно орієнтоване програмування "
для студентів базового напряму "Комп'ютерні науки"
ЗАТВЕРДЖЕНО
на засіданні кафедри САПР
Протокол № 5 від 28.05 2015 р.
ЛЬВІВ 2016
Розроблення програми-додатка засобами бібліотеки JavaFX. Методичні вказівки до розрахункової роботи з курсу "Об’єктно орієнтоване програмування" для студентів базового напряму "Комп'ютерні науки" /Укл. Дупак Б.П. - Львів: НУ"ЛП", 2016 р.
Укладачі: Каркульовський Володимир Іванович, к.т.н., доц.,
Дупак Богдан Петрович, асист.
Відповідальний за випуск: к.т.н., доц.
Рецензенти: Стех Ю.В, к.т.н., доц.
1. МЕТА РОБОТИ
Навчитись розробляти програму додаток засобами бібліотеки JavaFX.
2. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. Технологія JavaFX.
Для написання програми додатку потрібно ознайомитись з основними засобами бібліотеки JavaFX.
Кapкac JavaFX володіє всіма корисними засобами Swing, включаючи прості компоненти і підтримку архітектури МVС. Більша частина того, що вам вже відомо для побудови графічного програмного інтерфейсу засобами Swing, стане в нагоді і в JavaFX. Проте у JavaFX і Swing є істотні від межування. Перші відмінності з точки зору програмування, полягають в організації самого каркасу і взаємозв'язки взяті з головних його компонентів. Простіше кажучи, JаvаFХ пропонує більш раціональний, простий у використанні і вдосконалений підхід до побудови графічно програмного інтерфейсу, а також значно спрощує відтворення об'єктів завдяки автоматичному перемалюванні. Вирішувати цю задачу вручну більше не потрібно. Але це зовсім не означає, що бібліотека Swing розроблена невдало.
Просто мистецтво програмування помітно просунулося вперед, і плоди цього прогресу більш реалізовано в JavaFX. В цілому JavaFX сприяє вибору більш
динамічного візуально підходу для побудови графічного інтерфейсу.
Компоненти JavaFX містяться в окремих пакетах, імена яких починаються із префікса javafx. На момент написання даних вказівок для розрахункової роботи налічувалося більше 30 пакетів, складових програмного інтерфейсу JavaFX API. До їх числа відносяться наступні пакети: javafx.application, javafx.stage, javafx.scene і javafx.scene.layout. У прикладах які будуть продемонстровані для вказівок на виконання розрахункової роботи використовуються лише деякі пакети, тому вам доведеться ознайомитися з функціональними можливостями інших пакетів jаvаFХ самостійно, а вони досить великі.
Основним поняттям в JavaFX, це є підмостки. Розроблені на прикладі реальної театральної сцени, підмостки вміщують в собі сцену. Якщо простими словами підмостки відображають простір, а а сцена – це те що знаходиться в цьому просторі. Ці елементи графічного інтерфейсу реалізовані в класах Stage i Scene. Щоб створити JavaFX application потрібно написати хоча би один об’єкт типу Scene в контейнері Stage.
Також в JavaFX описуються основні елементи, які називають вузлами. Наприклад можна описати що наша графічна кнопка буде називатися вузлом. В технології JavaFX використовуються як головні вузли, так і другорядні, якщо вузол без нащадків, то він буде кінцевим, тобто листям. Чому листям? Тому що сукупність всіх вузлів називається графом, яке відображає дерево. Так як дерево повинно починатися з корення, тому буде в нас основний вузол, який завжди прикріплюється до нашого основного шару(layout).
Щоб почати писати перші програми засобами бібліотеки JavaFX, потрібно розібратися з вхідним пакетом javafx.application. Всі наші програми, які будуть написані на основі бібліотеки JavaFX повинні успадковуватись від класу Application. В класі Application описані три основні методити, два з яких можуть бути переоприділені це init() та stop() , та третій який повинен бути переопреділений це start().
Давайте детальніше розглянемо ці три методи. Метод init() викликається в той момент часу, коли наша програма починає виконуватися. Він створений розробниками для виконання різних ініціалізацій. Але при цьому в ньому не можна створювати підмостку чи побудувати нашу сцену. Якщо ініціалізацій не потрібно ніяких проводити, тоді можемо залишити цей метод пустий або ж не переоприділяти.
Метод stop() якраз викликається коли ми завершуємо нашу програму. В ньому повинні бути запрограмовані всі операції очищення або закриття. Якщо звичайно не потрібні ці операції, то ми також можемо залишити цей метод пустий або не переоприділяти. Якщо ви не знаєте, для чого використовується переоприділення методів, тоді вам це потрібно опрацювати самим.
Метод start() основний метод який потрібно обов’язково переоприділяти, плюс він ще має вхідний параметр типу Stage. Метод start() викликається після метода init() . Якраз всі основні дії потрібно описувати в методі start(). Створюємо нашу сцену в цьому методі і не забуваємо про головний підмосток який передаємо як вхідний параметр. Цей головний підмосток представлений виконуючою системою. А тепер розглянемо питання чому саме потрібно обов’язково переоприділяти метод start(). Він описаний в класі Application, як абстрактний, тому при успадкуванні классу Application всі абстрактні методи повинні бути переоприділені.
Основний запис наших методів такий:
@Override
public void init(){}
@Override
public void start(Stage myStage){}
@Override
public void stop(){}
Написавши код в методі start() тепер виникне питання як запустити нашу програму на виконання, потрібно визвати метод launch(), який оприділений в класі Application.
Для першої програми напишемо мінімальний код при цьому в кожному методі, які ми перечислили вище виведемо на консоль рядок для того щоб ви могли зрозуміти який метод виконується за яким.
import javafx.application.Application;import javafx.stage.Stage;
import javafx.scene.Scene;import javafx.scene.layout.FlowPane;/** * Created by Bohdan on 25.05.15. */public class TestJavaFX extends Application{ public static void main(String[] args) { System.out.println("Starting JavaFX application"); launch(args); //запускаємо JavaFX application } @Override public void init() { System.out.println("Starting method init"); } @Override public void start(Stage myStage){ System.out.println("Starting method start"); //Присвоюємо назву підмостку myStage.setTitle("JavaFX Test Application"); //Створюємо головний вузол FlowPane rootNode = new FlowPane(); //Створюємо сцену Scene myScene = new Scene(rootNode, 300, 200); //Встановлюємо сцену на підмосток myStage.setScene(myScene); //Показуємо підмосток myStage.show(); } @Override public void stop() { System.out.println("Starting method stop"); }}
Після виходу з нашого створеного вікна, на рисунку нижче можна побачити, що виконався метод stop().
І звичайно рисунок нашого вікна:
В наступній програмі добавимо такі класи, як Label, Button, TextField, TextArea, коментувати наступний код немає сенсу більшість збереглось з технології Swing.
import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.Scene;import javafx.scene.layout.FlowPane;import javafx.scene.control.Label;import javafx.scene.control.Button;import javafx.scene.control.TextField;import javafx.scene.control.TextArea;public class TestJavaFX extends Application{
@Override public void start(Stage myStage) { myStage.setTitle("JavaFX application"); FlowPane rootNode = new FlowPane(); Scene myScene = new Scene(rootNode, 300, 300); myStage.setScene(myScene); Label myLabel = new Label("This is a JavaFX label"); rootNode.getChildren().add(myLabel); Button myButton = new Button("Button"); rootNode.getChildren().add(myButton); TextField myTextField = new TextField(); rootNode.getChildren().add(myTextField); TextArea myTextArea = new TextArea(); rootNode.getChildren().add(myTextArea); myStage.show(); } public static void main(String[] args) { launch(args); }}
Результат виконання даної програми
Використаємо код програми з Label, Button, TextField, TextArea та добавимо випливаючу підказку для кнопки
import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.Scene;import javafx.scene.layout.FlowPane;import javafx.scene.control.Label;import javafx.scene.control.Button;import javafx.scene.control.TextField;import javafx.scene.control.TextArea;import javafx.scene.control.Tooltip;public class LabelFX extends Application{ @Override public void start(Stage myStage) { myStage.setTitle("JavaFX application"); FlowPane rootNode = new FlowPane(); Scene myScene = new Scene(rootNode, 300, 300); myStage.setScene(myScene); Label myLabel = new Label("This is a JavaFX label"); rootNode.getChildren().add(myLabel); Button myButton = new Button("Button"); myButton.setTooltip(new Tooltip("It's Tooltip")); rootNode.getChildren().add(myButton); TextField myTextField = new TextField(); rootNode.getChildren().add(myTextField); TextArea myTextArea = new TextArea(); rootNode.getChildren().add(myTextArea); myStage.show(); } public static void main(String[] args) { launch(args); }}
Результат програми
Напишемо програму для оброблення натиснення наших кнопок
import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.layout.FlowPane;import javafx.scene.Scene;import javafx.scene.control.Label;import javafx.scene.control.Button;import javafx.scene.control.TextField;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.geometry.Pos;public class JavaEventDemo extends Application{ Label myLabel; TextField myTextField; @Override public void start(Stage myStage) { myStage.setTitle("JavaFX application"); FlowPane rootNode = new FlowPane(20, 20); rootNode.setAlignment(Pos.CENTER); Scene myScene = new Scene(rootNode, 180,200); myStage.setScene(myScene); myLabel = new Label("Click the Button"); myTextField = new TextField(); Button buttonOk = new Button("Ok"); Button buttonCancel = new Button("Cancel"); buttonOk.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent ae) { String str = myTextField.getText(); myLabel.setText(str + " Ok was pressed"); } }); buttonCancel.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent ae) { String str = myTextField.getText(); myLabel.setText(str + " Cancel was pressed"); } }); rootNode.getChildren().addAll(buttonOk, buttonCancel, myLabel, myTextField); myStage.show(); } public static void main(String[] args){ launch(args); }}
Результатом нашої програми будуть наступні дії, які продемонстровані нижче на рисунку.
Напишемо наступну програму, яка продемонструє додавання меню в наш додаток.
import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.layout.BorderPane;import javafx.scene.Scene;import javafx.scene.control.Menu;import javafx.scene.control.MenuItem;import javafx.scene.control.SeparatorMenuItem;import javafx.scene.control.MenuBar;public class TestMenu extends Application{ @Override public void start(Stage myStage){ myStage.setTitle("JavaFX application"); BorderPane rootNode = new BorderPane(); Scene myScene = new Scene(rootNode, 200, 250); myStage.setScene(myScene); myStage.show(); MenuBar mb = new MenuBar(); Menu fileMenu = new Menu("File");
MenuItem newMenu = new MenuItem("New"); MenuItem openMenu = new MenuItem("Open"); MenuItem saveMenu = new MenuItem("Save"); MenuItem exitMenu = new MenuItem("Exit"); fileMenu.getItems().add(newMenu); fileMenu.getItems().add(openMenu); fileMenu.getItems().add(saveMenu); fileMenu.getItems().add(new SeparatorMenuItem()); fileMenu.getItems().add(exitMenu); mb.getMenus().add(fileMenu); rootNode.setTop(mb); } public static void main(String[] args){ launch(args); }}
Додавання підменю можна було організувати наступним чином
fileMenu.getItems().addAll(newMenu,openMenu, saveMenu, new SeparatorMenuItem(), exitMenu);
Результат програми буде наступний
Допишемо наш код програми добавляючи функціональність для наших підменю
import java.io.File;import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.layout.BorderPane;import javafx.scene.Scene;import javafx.scene.control.Menu;import javafx.scene.control.MenuItem;import javafx.scene.control.SeparatorMenuItem;import javafx.scene.control.MenuBar;import javafx.scene.control.Label;import javafx.stage.FileChooser;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.application.Platform;
public class TestMenu extends Application{ Label myLabel; FileChooser fc; @Override public void start(Stage myStage){ myStage.setTitle("JavaFX application"); BorderPane rootNode = new BorderPane(); Scene myScene = new Scene(rootNode, 200, 250); myStage.setScene(myScene); myStage.show(); myLabel = new Label("Select MenuItem"); MenuBar mb = new MenuBar(); Menu fileMenu = new Menu("File"); MenuItem newMenu = new MenuItem("New"); MenuItem openMenu = new MenuItem("Open"); MenuItem saveMenu = new MenuItem("Save"); MenuItem exitMenu = new MenuItem("Exit"); fileMenu.getItems().addAll(newMenu,openMenu, saveMenu, new SeparatorMenuItem(), exitMenu); fc = new FileChooser(); openMenu.setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent e){ File file = fc.showOpenDialog(new Stage()); } }); EventHandler<ActionEvent> MEHandler = new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ String menuName = ((MenuItem)ae.getTarget()).getText(); if(menuName.equals("Exit")) Platform.exit(); myLabel.setText(menuName + " was Selected"); } }; rootNode.setCenter(myLabel); mb.getMenus().add(fileMenu); rootNode.setTop(mb); newMenu.setOnAction(MEHandler); saveMenu.setOnAction(MEHandler); exitMenu.setOnAction(MEHandler); } public static void main(String[] args){ launch(args); }}
Результат програми продемонстрований нижче. Якщо вибрати підменю Open відкриється FileChooser для вибору документа.
В наступному прикладі візьмемо за основу код опису меню і додамо в нього мнемонічні операції та оперативні кнопки.
import javafx.application.Application;import javafx.stage.Stage;import javafx.scene.layout.BorderPane;import javafx.scene.Scene;import javafx.scene.control.Menu;import javafx.scene.control.MenuItem;import javafx.scene.control.SeparatorMenuItem;import javafx.scene.control.MenuBar;import javafx.scene.input.KeyCombination;public class TestMenuMnemonic extends Application{ @Override public void start(Stage myStage){ myStage.setTitle("JavaFX application"); BorderPane rootNode = new BorderPane(); Scene myScene = new Scene(rootNode, 200, 250); myStage.setScene(myScene); myStage.show(); MenuBar mb = new MenuBar(); Menu fileMenu = new Menu("_File"); MenuItem newMenu = new MenuItem("New"); MenuItem openMenu = new MenuItem("Open"); MenuItem saveMenu = new MenuItem("Save"); MenuItem exitMenu = new MenuItem("Exit"); fileMenu.setMnemonicParsing(true);
newMenu.setAccelerator(KeyCombination.keyCombination(
"shortcut + N")); openMenu.setAccelerator(KeyCombination.keyCombination(
"shortcut + O")); saveMenu.setAccelerator(KeyCombination.keyCombination(
"shortcut + S")); exitMenu.setAccelerator(KeyCombination.keyCombination(
"shortcut + E")); fileMenu.getItems().addAll(newMenu, openMenu, saveMenu, new SeparatorMenuItem(), exitMenu); mb.getMenus().add(fileMenu); rootNode.setTop(mb); } public static void main(String[] args){ launch(args); }}
Результат програми
Для подальшого розроблення розрахункової роботи ми ознайомилися зі всіма основними засобами бібліотеки JavaFX, які потрібні для написання завдання. Під час розв’язування поставленої задачі вам ще потрібно пригадати основні методи для розбору стрічок.
3. ЗАВДАННЯ ДЛЯ РОЗРАХУНКОВОЇ РОБОТИ
Розробити програму додаток калькулятор використовуючи засоби бібліотеки JavaFX. Ця програма додаток повинна містити такі операції: додавання, віднімання, множення, ділення, дорівнює, “backspace”. В меню повинні бути реалізовані такі пункти: Файл, Редагування, Вид, Довідка. В підменю Файл: відкрити, вихід(пункт вихід відокремити розділовою лінією). В підменю Редагування: копіювати, вставити, вирізати, опрацювати. В підменю Вид: звичайний, інженерний. В підменю Довідка: Про програму. Для кожного пункту меню реалізувати мнемонічні операції та для пунктів підменю оперативні кнопки. Реалізувати випливаючі підказки для кожної кнопки.
Для завдань e) або f)(в залежності від варіанту) потрібно зчитати два значення з вікна вводу. Знак розділювання цих двох значень встановити за бажанням.
Щоб реалізувати передостанній пункт завдання, потрібно створити вхідний файл in.txt(Відкриваючи його через Файл->Відкрити). Сформувати в ньому 4 колонки та задати по 10 значень в кожній колонці. 1 колонка повинна містити значення типу int, 2 колонка повинна містити значення типу float, 3 колонка повинна містити значення типу double, 4 колонка повинна містити значення типу char. Після виконання передостаннього пункту завдання створити файл out.txt і зберегти зміни в цьому файлі.
Щоб реалізувати останній пунк завдання потрібно взяти будь-який текст на українській мові опрацювати його(тобто якщо є зайвий пробіл або повторюється розділовий знак то видалити його), використати три класи-колекції на ваше вподобання, в першу колекцію потрібно внести речення з тексту. В другу колекцію внести слова з тексту. Та в третю внести всі розділові знаки. Після цього з другої та третьої колекції витягнути дані та сформувати текст(щоб він відповідав тексту після опрацювання на зайві пробіли та розділові знаки). Даний текст зберегти в форматі pdf. І після збереження відкрити засобами Java. Вміст колекцій записати в наступні файли sentence.txt, word.txt, punctuation.txt. Файл з текстом потрібно завантажувати в підменю Редагування-> Опрацювати. Після вибору файлу повинен відкритись файл pdf з новим текстом.
При написанні коду програми використовувати виключні ситуації(наприклад неправильний ввід даних або ще не підтягнутий файл, а ми хочемо виконати передостаннє або останнє завдання), а також основні методи прокоментувати англійською мовою. Всі файли зберігати в корені проекту використовуючи відносний шлях.
Для інженерного калькулятора використати такі операції:
sin
M+
MC
>>1
min(int x, int y)
Знайти значення типу int та збільшити в 10. Відсортувати колонку зі значеннями по спаданні.
Знайти найкоротші слова в тексті. Вивести на консоль ці слова та їх довжину.
cos
MS
MR
MC
<<1
max(int x, int y)
Знайти значення типу float та збільшити в 11. Відсортувати колонку зі значеннями по зростанні.
Вивести на консоль всі слова в порядку їх зростання по довжині.
tan
MS
MC
>>2
min(float x, float y)
Знайти значення типу double та збільшити в 12. Відсортувати колонку зі значеннями по спаданні.
Вивести на консоль ті слова, довжина котрих менша середньої всіх слів.
Ctan
M+
MC
<<2
max(float x, float y)
Знайти значення типу char та збільшити на 13. Відсортувати колонку зі значеннями по зростанні
Знайти та вивести на консоль слово в якому число різних символів мінімальна.
Asin
M+
MR
MC
log10
min(double x, double y)
Знайти значення типу int та збільшити на 14. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова в яких кількість букв голосних та приголосних рівна.
Acos
MS
MC
Random
max(double x, double y)
Знайти значення типу float та збільшити на 15. Відсортувати колонку зі значеннями по зростанні
Знайти та вивести на консоль слова в яких букви йдуть по зростанні їх кодів.
Atan
M+
MC
Sqrt
min(long x, long y)
Знайти значення типу double та збільшити на 16. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова, які складаються з різних букв.
Actan
MS
MR
MC
Round
max(long x, long y)
Знайти значення типу char та збільшити на 17. Відсортувати колонку зі значеннями по зростанні
Знайти та вивести на консоль слова, які є паліндромами.
Ln
MS
MC
n!
max (String x, String y)
Знайти значення типу int та збільшити в 18. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова в яких букви йдуть по спаданні їх кодів.
Log
M+
MC
Pow
min (String x, String y)
Знайти значення типу float та збільшити в 19. Відсортувати колонку зі значеннями по зростанні.
Знайти найдовші слова в тексті. Вивести на консоль ці слова та їх довжину.
Exp
M+
MR
MC
Pi
max(char x, char y)
Знайти значення типу double та збільшити в 20. Відсортувати колонку зі значеннями по спаданні.
Вивести на консоль всі слова в порядку їх спадання по довжині.
Pow
MS
MC
1/x
min(int x, int y)
Знайти значення типу char та збільшити на 21. Відсортувати колонку зі значеннями по зростанні.
Знайти найкоротші слова в тексті. Вивести на консоль ці слова та їх довжину.
Логічне &
M+
MC
Sin
max(int x, int y)
Знайти значення типу int та зменшити на 22. Відсортувати колонку зі значеннями по спаданні.
Вивести на консоль всі слова в порядку їх зростання по довжині.
Логічне |
MS
MR
MC
Cos
min(float x, float y)
Знайти значення типу float та зменшити на 23. Відсортувати колонку зі значеннями по зростанні.
Вивести на консоль ті слова, довжина котрих менша середньої всіх слів.
Логічне XOR
MS
MC
Tan
max(float x, float y)
Знайти значення типу double та зменшити на 24. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слово в якому число різних символів мінімальна.
Логічне !
M+
MC
Ctan
min (long x, long y)
Знайти значення типу char та зменшити на 25. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слова в яких кількість букв голосних та приголосних рівна.
Abs
M+
MR
MC
Asin
max(long x, long y)
Знайти значення типу int та зменшити в 26. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова в яких букви йдуть по зростанні їх кодів.
Pi
MS
MC
Acos
min (double x, double y)
Знайти значення типу float та зменшити в 27. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слова, які складаються з різних букв.
1/x
M+
MC
Atan
max(double x, double y)
Знайти значення типу double та зменшити в 28. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова, які є паліндромами.
n!
MS
MR
MC
Actan
min(char x, char y)
Знайти значення типу char та збільшити на 29. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слова в яких букви йдуть по спаданні їх кодів.
x^3
MS
MC
Sin
max(char x, char y)
Знайти значення типу int та зменшити на 30. Відсортувати колонку зі значеннями по спаданні.
Знайти найдовші слова в тексті. Вивести на консоль ці слова та їх довжину.
x^4
M+
MC
Cos
min(String x, String y)
Знайти значення типу float та зменшити на 31. Відсортувати колонку зі значеннями по зростанні.
Вивести на консоль всі слова в порядку їх спадання по довжині.
x^5
M+
MR
MC
Tan
max(String x, String y)
Знайти значення типу double та зменшити на 32. Відсортувати колонку зі значеннями по спаданні.
Знайти найкоротші слова в тексті. Вивести на консоль ці слова та їх довжину.
Ряд фібоначі
MS
MC
Ctan
min(int x, int y)
Знайти значення типу char та зменшити на 33. Відсортувати колонку зі значеннями по зростанні.
Вивести на консоль всі слова в порядку їх зростання по довжині.
>>2
M+
MC
Asin
max(int x, int y)
Знайти значення типу int та збільшити на 34. Відсортувати колонку зі значеннями по спаданні.
Вивести на консоль ті слова, довжина котрих менша середньої всіх слів.
<<2
MS
MR
MC
Acos
min(float x, float y)
Знайти значення типу float та збільшити на 35. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слово в якому число різних символів мінімальна.
>>3
MS
MC
Atan
max(float x, float y)
Знайти значення типу double та збільшити на 36. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова в яких кількість букв голосних та приголосних рівна.
<<3
M+
MC
Actan
min(double x, double y)
Знайти значення типу char та збільшити на 37. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слова в яких букви йдуть по зростанні їх кодів.
>>4
M+
MR
MC
Tan
max(double x, double y)
Знайти значення типу int та зменшити на 38. Відсортувати колонку зі значеннями по спаданні.
Знайти та вивести на консоль слова, які складаються з різних букв.
<<4
MS
MC
Ctan
min(long x, long y)
Знайти значення типу float та зменшити на 39. Відсортувати колонку зі значеннями по зростанні.
Знайти та вивести на консоль слова, які є паліндромами.
4. ЗМІСТ РОЗРАХУНКОВОЇ РОБОТИ
4.1. Титульний лист.
4.2. Мета роботи, теоретичні відомості.
4.3. Завдання для розрахункової роботи.
4.4. Код програми.
4.5. Результати програми
4.6. Висновок.
5. ЛІТЕРАТУРА
1. http://docs.oracle.com/javase/8/javafx
2. http://devcolibri.com/category/javafx
3. http://code.makery.ch/library/javafx-8-tutorial
4. https://www.java.net/community/javafx
5. http://fxexperience.com/
6. Тимур Машнин, JavaFX 2.0 Разработка RIA- приложений, БХВ-Петербург, Санки-Петербург, 2012
7. Herbert Schildt, Java – Ninth Edition. The Complete Reference, McGraw-Hill Education, 2014
8. Bruce Eckel, Thinking in Java, Fourth Edition, Prentice hall, 2007