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

индивидуальное задание

.docx
Скачиваний:
1
Добавлен:
27.08.2024
Размер:
147.59 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра проблемно-ориентированных вычислительных комплексов

ОТЧЁТ ПО ПРАКТИКЕ

ЗАЩИЩЁН С ОЦЕНКОЙ

Руководитель

Старший преподаватель

Е.П.Виноградова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЁТ ПО ПРАКТИКЕ

вид практики

Учебная

тип практики

на тему индивидуального задания

Применение теории алгоритмов для решения

математических и логических задач

выполнен

Жовтяком Максимом Олеговичем

фамилия, имя, отчество обучающегося в творительном падеже

по направлению подготовки

09.03.03

Прикладная информатика

код

наименование направления

наименование направления

направленности

код

наименование направленности

наименование направленности

Обучающийся группы №

4016

М.О.Жовтяк

номер

подпись, дата

инициалы, фамилия

Санкт–Петербург 2021

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

На прохождение учебной практики обучающегося направления подготовки/ специальности

  1. Фамилия, имя, отчество обучающегося: Жовтяк Максим Олегович

  1. Группа: 4016

  2. Тема индивидуального задания:

Применение теории алгоритмов для решения математических и логических задач

  1. Исходные данные:

Номер варианта: 1задача- 2; 2 задача- 3; 3 задача- 4; 4 задача- 3; 5 задача- 2

  1. Содержание отчетной документации:

    1. индивидуальное задание;

    2. отчёт, включающий в себя:

    • титульный лист;

    • материалы о выполнении индивидуального задания (содержание определяется кафедрой);

    • выводы по результатам практики;

    • Список использованных источников.

    1. отзыв руководителя от профильной организации (при прохождении практики в профильной организации).

  1. Срок представления отчета на кафедру: «___»______________201_ г.

Руководитель практики

Ст. Преподаватель Виноградова Е.П.

должность, уч. степень, звание подпись, дата инициалы, фамилия

СОГЛАСОВАНО

Руководитель практики от профильной организации

Ст. Преподаватель Виноградова Е.П.

должность подпись, дата инициалы, фамилия

Задание принял к исполнению:

Обучающийся

Жовтяк М.О.

дата подпись инициалы, фамилия

Задание 1. Составить алгоритм действий и решить задачу.

Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 3, а во второй – 2 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число камней в какой-то кучке, или добавляет 1 камень в какую-то кучку. Выигрывает игрок, после хода которого общее число камней в двух кучках становится не менее 16 камней. Кто выигрывает при безошибочной игре: игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

Решение:

Желтым цветом обозначены моменты, когда игра заканчивается. Нечетные ходы, когда побеждает первый игрок, соответственно в четных – второй.

Существует лишь один исход, когда выигрывает второй игрок на своем первом же ходу (если первый игрок увеличит количество камней втрое в первой куче). Так же второй игрок может выиграть, когда первый положит один камень сначала на одну кучу, а затем второй же на другую (первая строка – 1-й и 2-й ходы). Но первый игрок уже может подойти к такому исходу событий уже первым ходом. Получается, что первый игрок может не совершать эти ошибки в самом начале (а именно не добавлять один камень в самую маленькую кучу и не утраивать количество камней в самой большой куче). Если он не совершает эти ошибки, то первый игрок выигрывает в любом случае, как это показано на схеме выше.

Ответ. При безошибочной игре выигрывает именно первый игрок.

Задание 2. Составить алгоритм действий и решить задачу.

Два игрока играют в следующую игру. На координатной плоскости в точке с координатами (3; –5) стоит фишка. Игроки ходят по очереди. Ход состоит в том, что игрок перемещает фишку из точки с координатами (x; y) в одну из трех точек: (x+3; y), (x; y+4) или (x; y+5). Выигрывает тот игрок, после хода которого расстояние по прямой от фишки до начала координат (0,0) не меньше 10 единиц. Кто выигрывает: игрок, делающий ход первым, или игрок, делающий ход вторым? Ответ обоснуйте.

Решение:

Чтобы найти длину прямой из одной точки в другую, то расстояние можно найти по теореме Пифагора c2=a2+b2. Откуда выходит, что сумма квадратов двух чисел должна быть больше или равна 100.

Желтым цветом обозначены моменты, когда игра заканчивается. Нечетные ходы, когда побеждает первый игрок, соответственно в четных – второй. Первые два числа обозначают координаты точки на момент хода, в скобочках указано расстояние до точки (0;0).

Из схемы видно, что первый игрок может выиграть только при одном исходе событий. Соответственно, при безошибочной игре (когда второй игрок не будет следовать пути, указанному на схеме стрелками) второй игрок не оставляет никаких шансов на победу первому игроку.

Ответ. При безошибочной игре выигрывает исключительно второй игрок.

Задание 3. Написать алгоритм программы, при выполнении которой с клавиатуры считываются координаты точки (x1; y1) на плоскости (x1; y1 – действительные числа) и определяется принадлежность заданной точки некоторой области, включая ее границы. Область ограничена графиком y = f(x) и прямыми y = a, x = b и x = c. Пояснить решение графически.

f(x) = cos(x), a = 0, b = 0.5, c = 10, тогда y = 0, x = 0.5, x = 10. Построим график:

Код программы на С++:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

double x, y;

cout << "Enter the variables" << endl;

cin >> x >> y;

if (x >= 0.5 && x <= 10 && y <= 1 && y >= -1)

{

if (cos(x) > 0)

{

if (y <= cos(x))

{

cout << "The point belongs to the specified parameters.";

}

else

{

cout << "The point doesn't belong to the specified parameters.";

}

}

else if (cos(x) < 0)

{

if (y >= cos(x))

{

cout << "The point belongs to the specified parameters.";

}

else

{

cout << "The point doesn't belong to the specified parameters.";

}

}

else if (y == 0)

{

cout << "The point belongs to the specified parameters.";

}

}

else cout << "The point doesn't belong to the specified parameters.";

}

Скриншоты работы консоли отладки:

Задание 4. Написать алгоритм программы и решить задачу.

Определить, чего больше, единиц или нулей в двоичной записи произвольного десятичного числа A (100 <A <1000).

Код программы на С++:

#include <iostream>

using namespace std;

int main()

{

srand(time(0));

int A;

int zero = 0;

int one = 0;

A = rand() % 900 + 100;

cout << "The random decimal number = " << A << endl;

while (A > 0)

{

if (A % 2 == 0)

{

zero++;

A = A / 2;

}

else

{

one++;

A = A / 2;

}

}

if (zero > one)

{

cout << "Zero bolshe";

}

else if (one > zero)

{

cout << "One bolshe";

}

else cout << "Ravno";

}

Скриншоты консоли отладки:

511 = 111111111

609 = 1001100001

684 = 1010101100

Задание 5. Решить логическую задачу.

Виктор, Роман, Юрий и Сергей заняли на математической олимпиаде первые четыре места. Когда их спросили о распределении мест, они дали три таких ответа:

  1. Сергей – первый, Роман – второй;

  2. Сергей – второй, Виктор – третий;

  3. Юрий – второй, Виктор – четвертый;

Как распределились места, если в каждом ответе только одно утверждение истинно?

Решение:

Допустим, что первое утверждение первой строчки верно, тогда следует, что Сергей первый, а Роман точно не второй. Тогда во второй строчке первое утверждение ложно, так как Сергей уже на первом месте, следовательно Виктор – третий. Тогда в третьей строчке второе утверждение не может быть истиной, потому что Виктор уже третий. Следовательно, Юрий – второй. Роману остается четвертое место. Никаких противоречий нет и в каждом ответе только одно утверждение является истиной, значит задача решена верно.

Ответ: Сергей – первый, Юрий – второй, Виктор – третий, Роман – четвертый.

Вывод: Первая и вторая задачи, которые относятся к теории игр, аналогичны тем, которые решаются при подготовке к ЕГЭ по информатике. Третью и четвертую задачу я решил на языке С++, используя знания, полученные на первом семестре по дисциплине «Информатика». Пятая задача была решена методом рассуждения, то есть это была самая легкая задача. Итого, я закрепил навыки работы с теориями алгоритмизации и современной вычислительной техникой. Также я решил некоторые прикладные информационные задачи, тем самым закрепил свои знания, которые получил в ходе обучения по профильным предметам в университете.

Соседние файлы в предмете Учебная практика