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

Java / Лабы / lab1

.pdf
Скачиваний:
69
Добавлен:
15.03.2015
Размер:
489.43 Кб
Скачать

Лабораторная работа №1. Разветвляющиеся программы.

Цели работы.

1.Освоить использование операторов ветвления в Java.

2.Освоить операции ввода-вывода в текстовую консоль.

3.Освоить использование логических операторов в Java.

Используемоепрограммное обеспечение.

1.JDK 1.5 и выше.

2.Интегрированная среда разработки на java.

Варианты заданий.

Таблица 1.1. Варианты заданий.

Вариант 0.

Вариант 1.

Вариант 2.

Вариант 3.

Вариант 4.

Вариант 5.

Вариант 6.

Вариант 7.

Вариант 8.

Вариант 9.

Вариант A.

Вариант B.

Вариант C.

Вариант D.

Вариант E.

Вариант F.

Порядоквыполнениялабораторнойработы.

1.Составьте блок-схему алгоритма нахождения области, соответствующую Вашему варианту.

2.По составленной блок-схеме напишите программу на Java.

3.Проверьте правильность работы программы для каждой области.

4.Составьте отчёт по лабораторной работе.

Примервыполнениялабораторнойработы.

Вариант задания выглядит следующим образом (рис. 1.1). Требуется написать программу, которая по введённым координатам точки выводит номер области, в которой эта точка находится. Серым цветом в задании указаны координатная сетка и координаты, чёрным – границы и номера областей. В представленном варианте области отделены друг от друга одним прямоугольником, одной окружностью и одной прямой. Уравнение прямой имеет вид: = +

 

В данном случае, k = -1, b = 12. Прямая отделяет

 

областей 2, 3, 6, 7 и

 

< + 12

 

области 1, 4, 5, 8 от областей 2, 3, 6, 7.

Рис. 1.1. Пример задания напопадание точки в

Следовательно, условие

истинно для

 

ложно для областей 1, 4, 5, 8.

область.

 

Уравнение окружности имеет вид: 2 = ( 0)2 + ( 0)2

В данном случае x0 = 8, y03=2 4,>R( =3.8Окружность)2 + ( 4)отделяет2 области 1, 2, 3, 4 от областей 5, 6, 7, 8. Следовательно, условие истинно для областей 5, 6, 7, 8 и ложно для

областей 1, 2, 3, 4. Условие нахождения точки внутри> прямоугольника имеет вид:

< 1> 2< 1

2

В данном случае x1 = 2, x2 = 9, y1 = 4, y2 = 9. Следовательно, условие ((x > 2) && (x < 9) && (y > 4) && (y < 9)) истинно для областей 3, 4, 5, 6 и ложно для областей 1, 2, 7, 8. Этого достаточно, чтобы однозначно определить принадлежность точки какой-либо области.

На рис. 1.2 приведена блок-схема, соответствующая данному варианту, а в листинге 1.1 программа на Java, реализующая данный алгоритм.

 

Ввод x, y

 

 

 

Да

 

Ниже прямой

 

 

 

Да

 

Внутри окр.

 

 

Да

Да

 

Внутри прям.

Внутри прям.

 

Обл. 7

Обл. 6

Обл. 2

Обл. 3

 

 

Внутри окр.

Да

 

 

 

Да

Да

 

Внутри прям.

Внутри прям.

 

Обл. 8

Обл. 5

Обл. 1

Обл. 4

 

 

Рис. 1.2. Блок-схема алгоритма нахождения области.

Листинг 1.1. Реализация алгоритма на Java.

import java.io.*; public class Main {

public static void main(String[] args) throws IOException { double x, y;

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

// Ввод координат точки

System.out.print("Введите координату x: "); x = Double.parseDouble(in.readLine()); System.out.print("Введите координату y: ");

y = Double.parseDouble(in.readLine()); if(y < -x + 12) {

// Точка лежит ниже прямой

if(9 > (x-8)*(x-8) + (y-4)*(y-4)) { // Точка лежит внутри окружности

if((x > 2) && (x < 9) && (y > 4) && (y < 9)) // Точка лежит внутри прямоугольника

System.out.println("Область 6");

else

// Точка лежит вне прямоугольника

System.out.println("Область 7");

} else {

// Точка лежит вне окружности

if((x > 2) && (x < 9) && (y > 4) && (y < 9)) // Точка лежит внутри прямоугольника

System.out.println("Область 3");

else

// Точка лежит вне прямоугольника

System.out.println("Область 2");

}

} else {

// Точка лежит выше прямой

if(9 > (x-8)*(x-8) + (y-4)*(y-4)) { // Точка лежит внутри окружности

if((x > 2) && (x < 9) && (y > 4) && (y < 9)) // Точка лежит внутри прямоугольника

System.out.println("Область 5"); else // Точка лежит вне прямоугольника

System.out.println("Область 8"); } else { // Точка лежит вне окружности

if((x > 2) && (x < 9) && (y > 4) && (y < 9)) // Точка лежит внутри прямоугольника

System.out.println("Область 4"); else // Точка лежит вне прямоугольника

System.out.println("Область 1");

}

}

}

}

Требования к отчёту по лабораторной работе.

Отчёт должен содержать:

1.Титульный лист.

2.Вариант задания.

3.Блок-схему и листинг программы.

Соседние файлы в папке Лабы