Лабораторная работа 1.
Тема: Базовые конструкции, типы, массивы в Java.
Цель: Знакомство с основами синтаксиса Java. Научиться использовать базовые типы и конструкции Java при написании прикладных программ.
Задания:
1. Объявления и управляющие конструкции.
2. Стандартные потоки ввода и вывода. Ввод данных с помощью класса java.util.Scanner. Форматированный вывод с помощью объекта System.out.
3. Регулярные выражения.
4. Примитивные типы данных и правила преобразования типов.
5. Переменные. Их виды. Область видимости и время жизни переменной.
6. Работа с массивами.
7. Передача параметров при вызове методов.
Общее задание:
Создать класс «Собака», содержащий переменные и методы, в том числе два конструктора и функции доступа и проверить работу:
class Dog
{
public String Name;
public String Breed;
public int AverageWeight;
public int AverageHeight;
public void ShowDog(Graphics g, int x, int y)
{
g.drawString("Имя: "+Name, x,y);
g.drawString("Порода: "+Breed, x,y+20);
if (AverageWeight!=-1)
g.drawString("Вес: "+AverageWeight, x,y+40);
if (AverageHeight!=-1)
g.drawString("Рост: "+AverageHeight, x,y+60);
}
public Dog(String name, String breed, int weight, int height)
{
Name=name;
Breed=breed;
AverageWeight=weight;
AverageHeight=height;
}
public Dog(String name)
{
Name=name;
Breed="Неизвестна";
AverageWeight=-1;
AverageHeight=-1;
}
private String Name;
private String Breed;
private int AverageWeight;
private int AverageHeight;
public void setName(String Name)
{ this.Name=Name; }
public String getName()
{ return Name; }
public void setBreed(String Breed)
{ this.Breed=Breed; }
public String getBreed()
{ return Breed; }
public void setAverageWeight(int AverageWeight)
{ this.AverageWeight=AverageWeight; }
public int getAverageWeight()
{ return AverageWeight; }
public void setAverageHeight(int AverageHeight)
{ this.AverageHeight=AverageHeight; }
public int getAverageHeight()
{ return AverageHeight; }
}
Индивидуальные задания:
Вариант 1.
1. Выпуклый многоугольник на плоскости задан координатами своих вершин. Найти его площадь. Указание: разбить многоугольник диагоналями на N треугольников и найти площадь каждого треугольника отдельно.
2. Заданный двумерный массив (не обязательно квадратный) повернуть на 90 градусов по часовой стрелке.
Вариант 2.
1. 6-значный номер трамвайного билета является "счастливым", если совпадают суммы первых трех и последних трех цифр номера. Определить, сколько всего существует "счастливых" номеров. Указание: для этого достаточно перебрать все возможные 6-значные номера.
2. В заданном двумерном массиве расположить строки по возрастанию суммы их элементов.
Вариант 3.
1. На некотором предприятии инженер Петров создал устройство, на табло которого показывается количество секунд, оставшихся до конца рабочего дня. Когда рабочий день начинается ровно в 9 часов утра — табло отображает «28800» (т.е. остаётся 8 часов), когда времени 14:30 — на табло «9000» (т.е. остаётся два с половиной часа), а когда наступает 17 часов — на табло отображается «0» (т.е. рабочий день закончился).
Программист Иванов заметил, как страдают офисные сотрудницы — им неудобно оценивать остаток рабочего дня в секундах. Иванов вызвался помочь сотрудницам и написать программу, которая вместо секунд будет выводить на табло понятные фразы с информацией о том, сколько полных часов осталось до конца рабочего дня. Например: «осталось 7 часов», «осталось 4 часа», «остался 1 час», «осталось менее часа».
Итак, в переменную n должно записываться случайное (на время тестирования программы) целое число из [0;28800], далее оно должно выводиться на экран (для Петрова) и на следующей строке (для сотрудниц) должна выводиться фраза о количестве полных часов, содержащихся в n секундах.
Примеры работы программы:
23466
Осталось 6 часов
10644
Осталось 2 часа
5891
Остался 1 час
1249
Осталось менее часа
2. Выпуклый многоугольник на плоскости задан координатами своих вершин. Проверить, является ли он правильным. Для этого проверить равенство всех его сторон, а также углов межу соседними сторонами.
Вариант 4.
1. Создайте программу, выводящую на экран первые 55 элементов последовательности 1 3 5 7 9 11 13 15 17 ….
2. Черно-белое изображение задано двумерным массивом (n×m) пикселей, где 0 соответствует черному, а 1 – белому. Изображение содержит черную линию толщиной 1 пиксель на белом фоне, начинающуюся с пикселя (1,1), например:
Вывести координаты черных пикселей, в порядке, в котором они расположены на линии. Считать что каждый черный пиксель на линии, кроме начального и конечного, имеет ровно два соседних пикселя черного цвета.
Вариант 5.
1. Известно, что если от десятичного числа отнять сумму его цифр, то остаток делится нацело на 9. Проверить это утверждение для 1000 различных целых чисел. Числа генерировать случайным образом.
Указание. Для разделения числа на цифры используйте целочисленное деление (/) и деление по модулю (%) на 10.
2. Заданный двумерный массив (не обязательно квадратный) повернуть на 90 градусов против часовой стрелки.