Lab_1
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Инфокоммуникационных сетей и систем
Кафедра Защищенных систем связи
Дисциплина Разработка защищенного программного обеспечения
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1
Разветвляющиеся программы
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Студент:
(Ф.И.О., № группы) (подпись)
Преподаватель:
Цветков А.Ю.
(Ф.И.О) (подпись)
Цель лабораторной работы
Освоить использование операторов ветвления в Java.
Освоить операции ввода-вывода в консоль.
Освоить использование логических операторов в Java.
Используемое программное обеспечение
JDK 1.5 и выше
Интегрированная среда разработки на Java
Задание на лабораторную работу
Составить блок-схему алгоритма нахождения области по варианту задания.
По составленной блок-схеме написать программу на Java.
Проверить правильность работы программы для каждой области.
Собрать исполняемый jar и отправить на проверку.
Условия основного задания
Блок-схема основного задания
Листинг программного кода основного задания
public class Main {
public static void main(String[] args) {
if (args.length < 2) {
System.err.println("Error: Введите 2 аргумента X и Y.");
}
double x = Double.parseDouble(args[0]);
double y = Double.parseDouble(args[1]);
// круг x = 5, y = 6, r = 5 => (Math.pow((x - 6), 2) + Math.pow((y - 6), 2) < 25 — True Если в кругу
// прямая k = 1, b = 1 => y<x+1 — True если ниже
// Прямоугольник x1 = 1, y1 = 1, x2 = 10, y2 = 6
//
if (y < (x + 4)) {
// Ниже прямой
if (Math.pow((x - 6), 2) + Math.pow((y - 5), 2) < 25) {
// В окружности
if ((y < 8) && (y > 2) && (x > 1) && (x < 6)){
// В прямоугольнике
System.out.println(4);
}
else{
// Вне прямоугольника
System.out.println(2);
}
}
else{
// Вне окружности
if ((y < 8) && (y > 2) && (x > 1) && (x < 6)){
// В прямоугольнике
System.out.println(3);
}
else{
// Вне прямоугольника
System.out.println(1);
}
}
}
else{
// Выше прямой
if (Math.pow((x - 6), 2) + Math.pow((y - 5), 2) < 25) {
// В окружности
if ((y < 8) && (y > 2) && (x > 1) && (x < 6)) {
// В прямоугольнике
System.out.println(6);
}
else{
// Вне прямоугольника
System.out.println(8);
}
}
else {
// Вне окружности
if ((y < 8) && (y > 2) && (x > 1) && (x < 6)) {
// В прямоугольнике
System.out.println(7);
}
else {
// Вне прямоугольника
System.out.println(5);
}
}
}
}
}
Условие дополнительного задания:
Листинг программного кода дополнительного задания
public class Dop {
public static void main(String[] args) {
if (args.length < 2) {
System.err.println("Error: Введите 2 аргумента X и Y.");
}
double x = Double.parseDouble(args[0]);
double y = Double.parseDouble(args[1]);
// круг x = 4, y = 4, r = 3 => (Math.pow((x - 6), 2) + Math.pow((y - 5), 2) < 25 — True Если в кругу
// прямая k = 1, b = 4 => y<9-x — True если ниже
// Прямоугольник 1 x1 = 1, y1 = 1, x2 = 8, y2 = 6
// Прямоугольник 2 x1 = 1, y1 = 2, x2 = 9, y2 = 10
if (y < (9-x)) {
// Ниже прямой
if (Math.pow((x - 4), 2) + Math.pow((y - 4), 2) < 9) {
// В окружности
if ((y < 6) && (y > 1) && (x > 1) && (x < 8)){
// В прямоугольнике 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(6);
}
else{
// Вне прямоугольника 2
System.out.println(4);
}
}
else{
// Вне прямоугольника 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(3);
}
else{
// Вне прямоугольника 2
System.out.println(1);
}
}
}
else{
// Вне окружности
if ((y < 6) && (y > 1) && (x > 1) && (x < 8)){
// В прямоугольнике 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
}
else{
// Вне прямоугольника 2
System.out.println(3);
}
}
else{
// Вне прямоугольника 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(10);
}
else{
// Вне прямоугольника 2
System.out.println(1);
}
}
}
}
else{
// Выше прямой
if (Math.pow((x - 4), 2) + Math.pow((y - 4), 2) < 9) {
// В окружности
if ((y < 6) && (y > 1) && (x > 1) && (x < 8)){
// В прямоугольнике 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(7);
}
else{
// Вне прямоугольника 2
}
}
else{
// Вне прямоугольника 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(11);
}
else{
// Вне прямоугольника 2
}
}
}
else{
// Вне окружности
if ((y < 6) && (y > 1) && (x > 1) && (x < 8)){
// В прямоугольнике 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(8);
}
else{
// Вне прямоугольника 2
System.out.println(5);
}
}
else{
// Вне прямоугольника 1
if ((y < 10) && (y > 2) && (x > 1) && (x < 9)){
// В прямоугольнике 2
System.out.println(9);
}
else{
// Вне прямоугольника 2
System.out.println(2);
}
}
}
}
}
}
Вывод
Были освоены средства операторы ветвления в Java, операции ввода-вывода в консоль и логические операторы в Java.
Санкт-Петербург
2021