воскресенье, 28 сентября 2014 г.

Лабораторная работа №4 - Циклические структуры

Цель. Научиться применять структуры выбора for, while и do/while  для циклического выполнения операторов программы.

Задачи.
1. Уметь использовать операции инкремента, декремента и присваивания.

2. Уметь использовать циклы.
3. Уметь производить тестирование программ.
4. Уметь осуществлять поиск информации.

Необходимое оборудование и ПО:

1. ПК с выходом в Интернет; 
2. Виртуальная машина Java;
3. NetBeans IDE 8.0;
4. браузер Google Chrome.



Задание 1.


В Java применяется несколько операций присваивания, с помощью которых можно упростить запись с выражением. Также в Java используются унарные операции инкремента и декремента.


Заполнить таблицу совместного редактирования


Приоритет операций и ассоциативность следующая.

Операции
Ассоциативность
Тип операции
()
Слева на право
Круглые скобки
++  --
Справа налево
Унарные постфиксные
++  --  +  -
Справа налево
Унарные
* / %
Слева на право
Мультипликативные
+ -
Слева на право
Аддитивные
<  <=  >    >=
Слева на право
Отношения
==   !=
Слева на право
Равенства
? :
Справа налево
Условные
=  +=  -=  *=  /=  %=
Справа налево
Присваивания

Задание 2.

2.1. Определите значения каждой переменной после операции, если в начале операции все переменные имеют значение равное 5:

1) m=n++
2) y=--x
3) p*=x++
4) q/=++x
5) w=(--x)+(w--)
6) k+=((--x)--)+10
7) d = (b++) +(c++) + (++d);
8) c = (b++) *(c++) / (++d);
9)  i+= 2*( ++i);
10) i-= 2+(i++); 

2.2. Результат вычислений покажите преподавателю.
2.3. Напишите программу, которая бы вычисляла значение выражения (ПК № = № выражения). Для написания программы воспользуйтесь online учебной средой программирования. Ссылку на программу сохраните в таблице.
2.4. Поочередно выполните компиляцию программ (ссылки в таблице) и сравните результат ваших вычислений со значениями выполнения программы.

Задание 3. 

3.1. Что рассчитывает и выводит на экран следующая программа?
class Ideone
{
public static void main (String[] args) 
                  int y, x=1, total=0;
                  while (x<=10) {
                            y=x*x;
                            System.out.println(y);
                            total+=y;
                            ++x;
                   }
                 System.out.println("Ответ равен "+total);
       }
}
Заполните трассировочную таблицу:

x
y
total
x<=10?
На экране


















3.2. Таблицу покажите преподавателю.
3.3. Проверьте программу в среде программирования и сравните ваш результат с результатом работы программы.

Задание 4. 

4.1. Что выполняет следующий фрагмент кода?
        int y;
y=2;
do
{
System.out.println(y);
y+=2;
}
while (y<20);
Заполните трассировочную таблицу:

y
y<20?
На экране













4.2. Таблицу покажите преподавателю.
4.3. Проверьте фрагмент программы в среде программирования и сравните ваш результат с результатом работы программы.
4.4. Измените программу таким образом, чтобы использовался оператор for.
4.5. Вашу работу покажите преподавателю.0,

Задание 5.

1. Ознакомьтесь с постановкой задачи.
2. Сформулируйте алгоритм, используя блок-схему.
3. Напишите программу на Java.
4. Протестируйте, отладьте и выполните программу на Java.
5. Испытайте программу на трех различных наборах данных.


На оценку "4" (любая задача)

Значение "Пи". Вычислите значение "Пи" с помощью бесконечного ряда
Пи=4-(4/3)+(4/5)-(4/7)+(4/9)-(4/11)+...
Выведите таблицу, в которой представлены значения "Пи", аппроксимированные одним членом этого ряда, двумя членами ряда, тремя и т.д.

Пифагоровы тройки. В математике пифагоровой тройкой называется упорядоченный конечный набор из трёх натуральных чисел (x, y, z) удовлетворяющих следующему однородному квадратному уравнению: x^2+y^2=z^2
Напишите приложение, в котором найдете все пифагоровы тройки, у которых значения чисел не превосходит 500.
* Используйте три вложенных цикла for для перебора всех возможных значений.

На оценку "5"

Песня "Двенадцать дней рождества". Напишите приложение, которое использует повторение и структуру switch для вывода текста песни "Двенадцать дней рождества".
* Одна структура switch должна использоваться для обозначения дня (например Первый, Второй и т.д.). Другая структура switch должна выводить  текст соответствующей строки. 
Слова песни вы можете найти на сайте http://www.12days.com/library/carols/12daysofxmas.htm
.
Контрольные вопросы

1. Сколько раз будет выполняться тело следующего оператора цикла:…k=0; for(i=1;i<=k+3;i++)k++;
2. Можно ли войти в тело цикла while, минуя его заголовок?
3. Когда проверяется истинность выражения в операторе цикла do…while?


Комментариев нет:

Отправить комментарий