Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

z9411_КафкаРС_учебная_практика

.docx
Скачиваний:
16
Добавлен:
18.05.2022
Размер:
628.49 Кб
Скачать

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

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

«Санкт–Петербургский государственный университет аэрокосмического приборостроения»

Кафедра №41 Вычислительных систем и программирования

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

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

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

Ст. преподаватель

Васильевский А. С.

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

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

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

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

вид практики

Учебная

тип практики

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

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

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

выполнен

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

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

09.03.03

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

код

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

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

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

код

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

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

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

Z9411

Кафка Р. С.

номер

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

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

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

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

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

  1. Фамилия, имя, отчество обучающегося: Кафка Роман Сергеевич

  1. Группа: z9411

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

СОГЛАСОВАНО

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

ст. преподаватель Васильевский А. С.

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

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

Обучающийся

.

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

Варианты заданий: 7 9 5 4 1.

Задание 1.

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

Решение:

Таблица возможных ходов:

Стартовая позиция

1 игрок

1 ход

2 игрок

2 ход

1 игрок

3 ход

2 игрок

4 ход

2,3

2,9

2,27

2,81

-

6,9

6,27

-

2,12

2,36

-

5,9

5,27

5,30

15,9

45,9

5,12

5,36

8,9

8,27

6,3

6,9

6,27

-

18,3

54,3

-

6,6

18,6

54,6

9,6

27,6

9,3

9,9

9,27

27,3

27,9

9,6

27,6

12,3

36,3

2,6

2,18

2,54

-

6,6

18,6

54,6

9,6

27,6

2,9

2,27

2,81

6,9

6,27

2,12

2,36

5,9

5 ход

5,6

5,18

5,54

15,6

45,6

5,9

5 ход

8,6

5 ход

5,6

5,18

5,54

-

15,6

45,6

-

5,9

5,27

5,81

15,9

45,9

5,12

5,36

8,9

8,27

8,6

8,18

8,54

24,6

24,9

8,9

8,27

11,6

33,6

Серым цветом отмечены наилучшие стратегии для победы 2 игрока, зеленым- выигрышные ходы.

После любого хода первого игрока, второй может увеличить число камней в одной из кучек так, что у первого не будет возможности выиграть на 3 ход. В итоге второй игрок победит на четвёртом ходу, умножив большую кучку камней на 3. Выигрышный ход для второго игрока есть в каждой вариации 1 хода первого игрока.

Ответ: выиграет 2 игрок.

Вывод: чтобы определить исход игры требуется исследование всех возможных вариантов развития игры.

Задание 2.

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

Решение:

Квадрат расстояния от фишки до точки с координатами (0, 3): r2 = x2 + (y-3)2. Побеждает игрок, после хода которого r2 > 225. Алгоритм выигрышной стратегии определим при помощи дерева всех возможных партий.

Дерево возможных ходов:

В случае, если игрок под номером 1 рассчитает все ходы безошибочно и выберет оптимальную стратегию, он выиграет игру.

Ответ: выигрывает игрок, делающий ход первым.

Вывод: Трудность победы в данной игре, изначальное отсутствие равно-вероятности событий победы одного и другого игрока. Так же чтобы определить исход такой игры требуется пошаговое исследование всех возможных вариантов развития игры.

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

Вариант 5: f(x)=tan(x), a=0, b=0.5, c=1.5.

Решение:

График:

Программа:

#include <iostream>

#include <math.h>

#include <conio.h>

using namespace std;

int main()

{

float x, y;

cout << "Vvedite x, y" << "\n";

bool choice = true;

while (choice)

{

cin >> x >> y;

if ((y <= tan(x) && (x <= 1.5) && (y >= 0) && (x >= 0.5)))

{

cout << "the point is in the area" "\n";

}

else

{

cout << "the point is not in the area" "\n";

}

cout << "Enter your choice:1-check new dot; 0-exit the program";

cin >> choice;

}

return 0;

}

Начало

Схема программы:

Ввод x, y

Конец

choice

0 – exit

1 – check new dot

The point is not in the area

The point is in the area

y<=tan(x)

y>=0

x<=1.5

x>=0.5

Результат:

Вывод: Языки программирования высокого уровня очень хорошо подходят для решения прикладных и математических задач.

Задание 4.

Вариант 4: Вывести все десятичные числа A (300<A<800), в двоичной за-писи которых число нулей на 2 превосходит число единиц

Решение:

Текст программы:

#include <stdio.h>

#include <conio.h>

int main()

{

int i, ones, zeroes, j, lastbit, flag;

for (i = 300; i <= 799; i++)

{

lastbit = 0;

ones = 0;

zeroes = 0;

flag = 0;

for (j = sizeof(int) * 8 - 1; j >= 0; j--)

if (((i & (1 << j)) != 0) && (flag == 0))

{

lastbit = j;

flag = 1;

}

for (j = lastbit; j >= 0; j--)

if ((i & (1 << j)) != 0)

ones++;

else

zeroes++;

if (zeroes - ones == 2)

printf("%d ", i);

}

return 0;

}

Результат:

Вывод: Языки программирования высокого уровня очень хорошо подходят для решения прикладных и математических задач.

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

По обвинению в ограблении перед судом предстали Иванов, Петров, Сидоров. Следствием установлено следующее:

1) Если Иванов не виновен или Петров виновен, то Сидоров виновен.

2) Если Иванов не виновен, то Сидоров не виновен.

Виновен ли Иванов?

Решение:

Рассмотрим высказывания:

A = {Иванов виновен};

B = {Петров виновен};

C = {Сидоров виновен}.

Запишем на языке алгебры логики факты, установленные следствием:

, .

Обозначим:

F=

Составим таблицу истинности:

A

B

C

F

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

Из анализа таблицы следует, что F истинно только в тех

случаях, когда А истинно, т. е. Иванов в ограблении виновен.

Вывод: при анализе задачи использовались некоторые правила логики для поиска ответа.