Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Отладка программных решений. Учебно-методическое пособие для студентов направлений подготовки бакалавриата 09.03.03 «Прикладная информатика», 09.03.04
.pdf
а. Перенести код из первого задания и с помощью отладки
вывести требуемые значения, через которые можно
определить ошибку в коде.
б. Перенести код из второго задания и с помощью файла
логов определить в каком участке кода была допущена
ошибка.
в. Обязательно! Программа должна корректно
N
вар.
1
отрабатывать случаи недостаточности данных
выполнения задания.
Задание
Диапазон
Сумма S
2
xx
1
doubley=Math.Exp(x);
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<i;j++)
k*=j;
doubleslag=Math.Pow(x,i)/k;
s+=slag;
}
!2!1
изменения x n Функция Y
[1;2 ]
15
e
для
x
2
53
xx
x
!5!3
doubley=Math.Sin(x);
doubles=0;
intsign=‐1;
for(inti=1;i<=n;i+=2)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Pow(x,i)/k;
sign*=‐1;
}
s+=slag*sign;
81
[0,1; 1] 10
xsin

3
x
x
cos
1 xx
4
!1
doubley=Math.Exp(x*Math.Cos(Math.PI/4)*Math.Cos(x*Math.Sin(Math.PI/
4)));
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Cos(i
s+=slag;
}
2cos
2
4
[0,1; 1]
25
!2
*Math.PI/4)/k*Math.Pow(x,i);
cos
4
sincos(
xe
4
)
4
5
42
xx
1
[0,1; 1]
10
!4!2
doubley=Math.Cos(x);
doubles=1;
intsign=‐1;
for(inti=1;i<=n;i+=2)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Pow(x,i)/k;
sign*=‐1;
}
1
doubley=Math.Exp(Math.Cos(x))*Math.Cos(Math.Sin(x));
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Cos(i*x)/i;
s+=slag;
}
s+=slag*sign;
cos
!1
2cos
xx
!2
[0,1; 1] 10
cosxex
cos
)cos(sin
6
3
1
!1
42
5
xx
[0,1; 1] 10
2 x
!2
2
)21(
ex
82

doubley=(1+2*x*x)*Math.Exp(x*x);
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=(2
s+=slag;
}
*i)*Math.Pow(x,i*2)/k;
7
8
42
1
doubley=Math.Exp(‐(x*x)/2);
doubles=1;
intsign=‐1;
for(inti=2;i<=n;i+=2)
{
intk=1;
for(intj=2;j<=(i/2);j++)
k*=j;
double
s+=slag*sign;
sign*=‐1;
}
1
2
!1*2
slag=Math.Pow(x,i)/(Math.Pow(2.0,i)*k);
42
xx
xx
[1;2 ] 15
!2*2
[0,1; 1] 10
!4!2
doubley=(Math.Exp(x)+Math.Exp(‐x))/2;
doubles=1;
for(inti=1;i<=n;i+=2)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Pow(x,i)/k;
s+=slag;
}
e
2
x
2
xx
ee
2
9
2
2
1
!1
doubley=Math.Exp(2*x);
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<i;j++)
k*=j;
doubleslag=Math.Pow(2*x,i)/k;
s+=
}
)2(
xx
!2
slag;
[0,1; 1] 20
83
xe2

10
2
1
doubley=(x*x/4+x/2+1)*Math.Exp(x/2);
doubles=1;
for(inti=1;i<=n;i++)
{
intk=1;
for(intj=2;j<=i;j++)
k*=j;
doubleslag=Math.Pow(x/2,i)*(i*i)/k;
s+=slag;
}
5
2!1
2!2
10
32
xxx
2!3
[0,1; 1] 30
2
xx
24
x
2
1
e
84

85
ПРАКТИЧЕСКАЯ РАБОТА № 07.
ИГРА
Цель
Разработать программу с применением различных алгоритмов.
Общее задание
1. Реализовать игровой процесс на графических примитивах
(кружочки, квадратики).
Задание
Вар.
Игра
Скрин
1.
Диггер
Задачей игрока является сбор под
землёй золота и изумрудов. Для этого
игрок управляет моторизированной
машиной «Diggermobile», которая
перемещается в заброшенной шахте по
добыче золота, может рыть туннели и
собирать найденное. В то же время под
землёй машину игрока преследуют
ноббины (англ. Nobbins), встреча с
которыми приводит к смерти игрового
персонажа. Герой – прямоугольник,
враги – кружочки.
2.
Линии
Цель игры – собрать как можно
больше линий из пяти и более шариков
одного цвета.

86
Вар.
Игра
Скрин
3.
Три в ряд
Составление рядов и иных
последовательностей из трех и более
одинаковых предметов. Использовать
разноцветные кружочки, менять
местами можно только соседние
элементы.
4.
Крестики-нолики
Игроки по очереди ставят на
свободные клетки поля 3×3 знаки
(один всегда крестики, другой всегда
нолики). Первый, выстроивший в ряд
3 своих фигуры по вертикали,
горизонтали или большой диагонали,
выигрывает.
5.
Пакман
Экран игры представляет собой
лабиринт, коридоры которого
заполнены точками. Задача игрока –
управляя Пакманом, съесть все точки
в лабиринте, избегая встречи с
привидениями, которые гоняются за
героем. В начале игры призраки
находятся в недоступной Пакману
прямоугольной комнате в середине
уровня, из которой они со временем
освобождаются. Если привидение
дотронется до Пакмана, то его жизнь
теряется, призраки и Пакман
возвращаются на исходную позицию,
но при этом прогресс собранных точек
сохраняется. Если при столкновении с

87
Вар.
Игра
Скрин
призраком у Пакмана не осталось
дополнительных жизней, то игра
заканчивается.
6.
Пятнашки
Расположите костяшки так, чтобы
числа шли подряд слева направо и
сверху вниз. Двигать можно соседние
с пустым местом
7.
Судоку
Необходимо заполнить свободные
клетки цифрами от 1 до 9 так, чтобы в
каждой строке, в каждом столбце и в
каждом малом квадрате 3x3 каждая
цифра встречалась бы только один раз.
8.
Сапер
Плоское или объёмное игровое поле
разделено на смежные ячейки
(квадраты, шестиугольники, кубы и т.
п.), некоторые из которых
«заминированы»; количество
«заминированных» ячеек известно.
Целью игры является открытие всех
ячеек, не содержащих мины.

88
Вар.
Игра
Скрин
Игрок открывает ячейки, стараясь не
открыть ячейку с миной. Открыв
ячейку с миной, он проигрывает. Мины
расставляются после первого хода.
Если под открытой ячейкой мины нет,
то в ней появляется число,
показывающее, сколько ячеек,
соседствующих с только что открытой,
«заминировано». Если под соседними
ячейками тоже нет мин, то открывается
некоторая «не заминированная»
область до ячеек, в которых есть
цифры. «Заминированные» ячейки
игрок может пометить, чтобы случайно
не открыть их. Открыв все «не
заминированные» ячейки, игрок
выигрывает.
9.
Бомбермен
Игрок управляет персонажем,
находящимся в лабиринте, состоящем
из разрушаемых и неразрушаемых
стен. Он может оставлять бомбу,
взрывающуюся через некоторое
фиксированное время и разрушающую
стены рядом с ней. Специальные
бонусы могут увеличить количество
одновременно оставляемых бомб,
дальность их взрыва, скорость
перемещения героя, дать возможность
взрыва бомб по нажатию кнопки,
невосприимчивость от взрыва бомб,
прохождение сквозь разрушаемые
стены или сквозь собственные еще

89
Вар.
Игра
Скрин
невзорванные бомбы. На уровне
присутствуют противники.
10.
Морской бой
Игровое поле – квадрат 10×10 у
каждого игрока, на котором
размещается флот кораблей.
Горизонтали обычно нумеруются
сверху вниз, а вертикали помечаются
буквами слева направо. При этом
используются буквы русского
алфавита от «а» до «к» (буквы «ё» и
«й» обычно пропускаются) либо от «а»
до «и» (с использованием буквы «ё»),
либо буквы латинского алфавита от
«a» до «j».
Размещаются:
1 корабль – ряд из 4 клеток
(«четырёхпалубный»; линкор)
2 корабля – ряд из 3 клеток
(«трёхпалубные»; крейсера)
3 корабля – ряд из 2 клеток
(«двухпалубные»; эсминцы)
4 корабля – 1 клетка («однопалубные»;
торпедные катера)
При размещении корабли не могут
касаться друг друга сторонами и
углами.
При попадании в корабль противника
– на чужом поле ставится крестик, при
холостом выстреле – точка. Попавший
стреляет ещё раз.

90
ПРАКТИЧЕСКАЯ РАБОТА № 08.
ИГРА. ХРАНЕНИЕ ДАННЫХ
Цель
Разработать программу с применением различных алгоритмов.
Общее задание
1. Дать подробное описание, как и где хранится игровое поле, какие
значения там могут хранится, в какие моменты игры оно должно
изменяться (т.е. изменяться значения в хранилище поля).
Задание
Вар.
Игра
Скрин
1.
Диггер
Задачей игрока является сбор под
землёй золота и изумрудов. Для этого
игрок управляет моторизированной
машиной «Diggermobile», которая
перемещается в заброшенной шахте по
добыче золота, может рыть туннели и
собирать найденное. В то же время под
землёй машину игрока преследуют
ноббины (англ. Nobbins), встреча с
которыми приводит к смерти игрового
персонажа. Герой – прямоугольник,
враги – кружочки.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
