Файл: Я. С. Синицын индекс группы подпись инициалы, фамилия.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.01.2024
Просмотров: 38
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
Рубцовский индустриальный институт (филиал) федерального государственного бюджетного образовательного учреждения высшего образования
«Алтайский государственный технический университет
им. И. И. Ползунова»
Факультет Технический
наименование подразделения
Кафедра Прикладная математика
Отчёт защищён с оценкой / А.С. Шевченко./
подпись руководителя инициалы фамилия
« » 20 г.
ОТЧЁТ
о прохождении учебной эксплуатационной практике
(вид и тип практики)
Студент гр. ИВТ-11 Я.С. Синицын
индекс группы подпись инициалы, фамилия
Руководитель от
кафедры доцент, канд.физ.-мат.наук А.С. Шевченко
должность, ученое звание подпись инициалы, фамилия
Рубцовск 2022
Рубцовский индустриальный институт (филиал) ФГБОУ ВО
«Алтайский государственный технический университет
им. И.И. Ползунова»
Кафедра «Прикладная математика»
Индивидуальное задание
на учебную практику (эксплуатационная практика)
(вид, тип и содержательная характеристика практики по УП)
студенту 1 курса Синицыну Ярославу Сергеевичу группы ИВТ-11
(Ф.И.О.)
Профильная организация РИИ АлтГТУ
(наименование)
График проведения практики:
№п/п | Содержание работ, выполняемых на практике | Сроки выполнения |
1. | Прохождение вводного инструктажа; прохождение инструктажа по технике безопасности; получение индивидуального задания; анализ индивидуального задания и его уточнение. | 1 неделя |
2. | Изучение области автоматизации. Выполнение постановки задачи, описание входных и выходных данных. Описание алгоритма решения задачи. | 1 неделя |
3. | Разработка программы. Разработка контрольного примера. | 2-3 неделя |
4 | Обобщение полученного опыта работы, подготовка, оформление и защита отчета о практике. | 4 неделя |
Руководитель практики от РИИ АлтГТУ ШевченкоА.С., доцент
(подпись) (Ф.И.О., должность)
Задание принял к исполнению Синицын Я.С.
(подпись) (Ф.И.О)
Инструктаж по ОТ, ТБ, ПБ, ПВТР
Инструктаж обучающегося по ознакомлению с требованиями охраны труда, техники безопасности, пожарной безопасности, а также правилами внутреннего трудового распорядка проведен16июня 2022 г.
Руководитель практики от РИИ АлтГТУШевченко А.С., доцент
(подпись)
МП
СОДЕРЖАНИЕ
Задача №0019 5
Заача №0474 6
Задача №0763 9
Задача №491 10
Список литературы 14
-
Задача №0019
Ферзь, Ладья и Конь
Условие задачи
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся под боем. Для простоты будем полагать, что фигуры могут «бить» через другие фигуры. Например, в рассмотренной справа ситуации будем считать, что ферзь бьет D5 через ладью.
Входные данные
В единственной строке входного файла INPUT.TXT записаны через пробел координаты расположения трех фигур: ферзя, ладьи и коня соответственно. Каждая координата состоит из одного английского символа (от A до H) и одной цифры (от 1 до 8).
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести количество пустых полей, которые бьют указанные во входных данных фигуры.
Код программы(C++)
#include
usingnamespacestd;
intmain()
{
stringa,b,c;
cin>> a >> b >> c;
int a1 =a[0]-64-1;
int a2 =a[1]-48-1;
int b1 =b[0]-64-1;
int b2 =b[1]-48-1;
int c1 =c[0]-64-1;
int c2 =c[1]-48-1;
ints[8][8]={0};
for(int i =0; i <8;++i)
for(int j =0; j <8;++j){
if(abs(a1 - j)== abs(a2 -i))
s[i][j]=1;
else
if(a1 == j || a2 == i)
s[i][j]=1;
else
if(b1 == j || b2 == i)
s[i][j]=1;
else
if((abs(c1 - j)==1&& abs(c2 -i)==2)||(abs(c1 - j)==2&& abs(c2 -i)==1))
s[i][j]=1;
}
s[a2][a1]=0;
s[b2][b1]=0;
s[c2][c1]=0;
int k =0;
for(int i =0; i <8;++i){
for(int j =0; j <8;++j)
if(s[i][j]==1)
++k;
}
cout<< k;
return0;
}
Контрольные тесты:
Тест 1 | |
INPUT.txt | OUTPUT.txt |
E7 E6 B4 | 18 |
Тест 2 | |
INPUT.txt | OUTPUT.txt |
G3 G5 G8 | 20 |
Тест 3 | |
INPUT.txt | OUTPUT.txt |
F4 G5 E7 | 16 |
-
Заача №0474
Последовательность Кеане
Условие задачи
Бесконечная последовательность битов, предложенная Кеане, равна 001001110001001110110110001… и формируется следующим алгоритмом: вначале записывается 0, потом 001, далее 001001110, то есть, для получения следующего члена, предыдущий записывается дважды, а справа приписывается его отрицание. Элементы этого ряда являются начальными подпоследовательностямиКеане.
Требуется написать программу, которая по заданному n определит N-й бит этой последовательности.
Входные данные
Входной файл INPUT.TXT содержит число N (N ≤ 10200).
Выходные данные
В выходной файл OUTPUT.TXT должен содержать найденный бит.
Код программы(Python)
Контрольныетесты:
Тест 1 | |
INPUT.txt | OUTPUT.txt |
3 | 1 |
Тест 2 | |
INPUT.txt | OUTPUT.txt |
18 | 0 |
Тест 3 | |
INPUT.txt | OUTPUT.txt |
26 | 1 |
-
Задача №0763
Игра с ладьёй
Условие задачи
На бесконечной вправо и вверх шахматной доске находится ладья. Два игрока передвигают ее по очереди. За один ход разрешено сдвинуть ладью вниз или влево на произвольное (ненулевое) количество клеток так, чтобы ладья не покинула доску. Цель игры – переместить ладью в левый нижний угол, то есть клетку с координатами (1,1). Известно, что оба игрока придерживаются оптимальной стратегии. Игрок №1 ходит первым, при этом он обязан совершить хотя бы один ход. Если первый ход сделать нельзя, то определить победителя также невозможно. Требуется написать программу, которая найдет номер победившего игрока, либо определит, что этого сделать нельзя.
Входные данные
Входной файл INPUT.TXT содержит два натуральных числа, разделенных пробелами: X и Y – координаты ладьи перед первым ходом (X,Y ≤ 109).
Выходные данные
В выходной файл OUTPUT.TXT выведите одно число – номер победившего игрока. Если победителя определить невозможно, то следует вывести 0.
Код программы(Python)
#include
usingnamespacestd;
intmain(){
intx,y;
cin>> x >> y;
if(x==1and y==1)
cout<<0;
else
if(x==y){
cout<<2;
}
else
cout<<1;
return0;
}
Контрольные тесты:
Тест 1 | |
INPUT.txt | OUTPUT.txt |
1 1 | 0 |
Тест 2 | |
INPUT.txt | OUTPUT.txt |
1 6 | 1 |
Тест 3 | |
INPUT.txt | OUTPUT.txt |
2 7 | 0 |
Задача №491
Антипалиндром
Условие задачи
На бесконечной вправо и вверх шахматной доске находится ладья. Два игрока передвигают ее по очереди. За один ход разрешено сдвинуть ладью вниз или влево на произвольное (ненулевое) количество клеток так, чтобы ладья не покинула доску. Цель игры – переместить ладью в левый нижний угол, то есть клетку с координатами (1,1). Известно, что оба игрока придерживаются оптимальной стратегии. Игрок №1 ходит первым, при этом он обязан совершить хотя бы один ход. Если первый ход сделать нельзя, то определить победителя также невозможно. Требуется написать программу, которая найдет номер победившего игрока, либо определит, что этого сделать нельзя.
Входные данные
Входной файл INPUT.TXT содержит строку s. Она состоит только из строчных букв английского алфавита, не пуста, а ее длина не превышает 100 000 символов.
Выходные данные
В выходной файл OUTPUT.TXT выведите ответ на задачу. Если все подстроки s являются палиндромами, выведите в выходной файл NO SOLUTION.
Кодпрограммы(Python)
def pol(s):
l = len(s)
for i in range(l // 2):
if s[i] != s[-1 - i]:
return True
quit()
return False
defmain():
input_file = open("input.txt", "r")
output_file = open("output.txt", "w")
line = input_file.readline().split()
s = str(line[0])
sett = set(s)
print(sett)
if len(sett) > 1:
for i in range(len(s)):
p = s[:(len(s)-i)]
print(p)
if pol(p) == True:
ans = p
break
print(ans)
else:
ans = "NO SOLUTION"
print(ans)
output_file.write(str(ans) + "\n")
input_file.close()
output_file.close()
if __name__ == "__main__":
main()
Контрольныетесты:
Тест 1 | |
INPUT.txt | OUTPUT.txt |
aarrar | aarrar |
Тест 2 | |
INPUT.txt | OUTPUT.txt |
aaarrraaa | aaar |
Тест 3 | |
INPUT.txt | OUTPUT.txt |
aarraa | NO SOLUTION |
Задача№0754
Три толстяка
Условие задачи
Три толстяка решили поспорить: кто из них самый тяжелый. После взвешивания оказалось, что их масса соответственно M1, M2 и M3 килограмм. Считается, что масса толстяка должна быть не менее 94 и не более 727 килограмм.
Помогите определить массу самого тяжелого из них, либо выяснить, что была допущена ошибка при взвешивании.
Входные данные
Входной файл INPUT.TXT содержит три целых числа M1, M2 и M3, разделенные пробелом. Все числа целые и не превосходят 10 000 по абсолютной величине.
Выходные данные
В выходной файл OUTPUT.TXT выведите массу самого тяжелого толстяка в случае корректного взвешивания, либо слово «Error» в противном случае.
Код программы(Python)
f=open('input.txt','r')
a, b, c =map(int,f.read().split())
f.close()
f =open('output.txt','w')
f.write(str(max(a, b, c) if (a <1000and b <1000and c <1000) else'Error' ))
f.close()
Контрольные тесты:
Тест 1 | |
INPUT.txt | OUTPUT.txt |
90 250 147 | 250 |
Тест 2 | |
INPUT.txt | OUTPUT.txt |
210 1000 113 | Error |
Тест 3 | |
INPUT.txt | OUTPUT.txt |
200 500 600 | 600 |
-
Список литературы
-
Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 1280 с. -
Златопольский Д.М. Основы программирования на языке Python. – М.: ДМК Пресс, 2017. – 284 с. -
Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с. -
Лутц М. Программирование на Python, том II, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с. -
Гэддис Т. Начинаем программировать на Python. – 4-е изд.: Пер. с англ. – СПб.: БХВ-Петербург, 2019. – 768 с.