УТВЕРЖДАЮ Руководитель практики от Университета __________________________________ (должность, ФИО) МП ___________________________________ (Подпись) Дата « __» ____________ 202_ год ОТЧЕТ ПО УЧЕБНОЙ ПРАКТИКЕ ПМ.06 Сопровождение информационных систем Еганян Егор Александрович (Ф.И.О. обучающегося) 09.02.07 Информационные системы и программирование (специальность) Учебная группа ИСПк-203-52-00 Место прохождения практики ФГБОУ ВО «Вятский государственный университет», Колледж ВятГУ (наименование организации, структурного подразделения организации) Итоговая оценка: Руководитель практики от университета (дата) (подпись) Киров, 2020 г. (Ф.И.О.) ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ НА ПРАКТИКУ Ф.И.О. обучающегося Специальность Учебная группа Вид практики Сроки прохождения практики с Место прохождения практики Еганян Егор Александрович 09.02.07 Информационные системы и программирование ИСПк-203-52-00 учебная практика 01.09.2020 по 18.12.2020 ФГБОУ ВО «Вятский государственный университет», Колледж ВятГУ (наименование организации, структурного подразделения организации) № Виды работ, выполняемых обучающимися во время практики Объем работ (час) 2 Формируемые компетенции 8 ПК6.5, ОК3, ОК6, ОК7, ОК9 ПК6.1, ПК6.7, ОК1, ОК2, ОК4, ОК8, ОК9 ПК6.2, ПК6.4, ОК2, ОК9 ПК6.3, ОК9, ОК10, ОК11 ПК6.6, ОК4, ОК5 2 Пройти инструктаж по ознакомлению с правилами внутреннего трудового распорядка, охраны труда, техники безопасности, противопожарной безопасности, санитарно-эпидемиологическими правилами и гигиеническими нормативами, а также вводный инструктаж и инструктаж на рабочем месте Настройка рабочего окружения 3 Решение набора алгоритмических задач 34 4 Тестирование и отладка полученного кода 16 5 Подготовка отчетной документации, включая детальное описание разработанных и использованных алгоритмов Подготовка к сдаче и сдача промежуточной аттестации 10 1 6 2 - Индивидуальное задание на практику разработано в соответствии с рабочей программой практики. Руководитель практики от университета (дата) (подпись) (Ф.И.О.) С индивидуальным заданием ознакомлен(а) (дата, подпись обучающегося) ОТЗЫВ РУКОВОДИТЕЛЯ ПРАКТИКИ Ф.И.О. обучающегося Мезенцев Елисей Сергеевич Специальность 09.02.07 Информационные системы и программирование Учебная группа ИСПк-203-52-00 Вид практики учебная практика Сроки прохождения практики с по 01.09.2020 18.12.2020 ФГБОУ ВО «Вятский государственный университет», Место прохождения практики Колледж ВятГУ (наименование организации, структурного подразделения организации) ВИДЫ И КАЧЕСТВО ВЫПОЛНЕНИЯ РАБОТ Критерий выполнения работ Выполнены с Выполнены Выполнены с Вид работ незначительной полностью помощью помощью самостоятельно наставника наставника Настройка рабочего окружения V Решение набора алгоритмических задач V Тестирование и отладка полученного V кода Подготовка отчетной документации, включая детальное описание разработанных и использованных алгоритмов Подготовка к сдаче и сдача промежуточной аттестации V V Обучающийся ознакомлен с правилами внутреннего трудового распорядка, охраны труда, техники безопасности, противопожарной безопасности, санитарноэпидемиологическими правилами и гигиеническими нормативами, а также прошел вводный инструктаж и инструктаж на рабочем месте. Во время прохождения учебной практики обучающимся освоены следующие профессиональные и общие компетенции: Наименование компетенции Показатели оценки Оценка Освоена Не освоена ПК 6.1. Разрабатывать Способен проектировать V техническое задание на сопровождение информационной системы. алгоритмические решения, принимая во внимание имеющиеся ресурсные ограничения ПК 6.2. Выполнять Способен проводить исправление ошибок в экспертизу программного кода программном коде в целях устранения информационной системы. потенциально некорректных решений и достижения требуемых показателей работоспособности ПК 6.3. Разрабатывать Способен оформлять обучающую документацию для документацию, включающую в пользователей себя описание информационной системы. алгоритмических решений на доступном и понятном уровне V V ПК 6.4. Оценивать качество и надежность функционирования информационной системы в соответствии с критериями технического задания. ПК 6.5. Осуществлять техническое сопровождение, обновление и восстановление данных ИС в соответствии с техническим заданием. ПК 6.6. Проводить обучение и консультирование пользователей информационной системы. ПК 6.7. Разрабатывать демонстрационную версию информационной системы. ОК 01. Выбирать способы решения задач профессиональной деятельности, применительно к различным контекстам. ОК 02. Осуществлять поиск, анализ и интерпретацию информации, необходимой для выполнения задач профессиональной деятельности. ОК 03. Планировать и реализовывать собственное профессиональное и личностное развитие. ОК 04. Работать в коллективе и команде, эффективно взаимодействовать с коллегами, руководством, клиентами. ОК 05. Осуществлять устную и письменную коммуникацию на государственном языке с учетом особенностей социального и культурного контекста. ОК 06. Проявлять гражданскопатриотическую позицию, демонстрировать осознанное поведение на основе традиционных общечеловеческих ценностей. ОК 07. Содействовать сохранению окружающей Способен анализировать корректность принимаемых решений на предмет их соответствия предъявляемым требованиям Способен разворачивать рабочее окружение, включающее в себя набор необходимых для решения поставленных задач средств Способен на доступном и понятном разъяснять технические особенности функционирования программных решений Способен реализовывать алгоритмические решения на уровне, достаточном для их интеграции в информационные системы Способен анализировать специализированную информацию и находить оптимальные пути решения задач профессиональной деятельности Способен анализировать специализированную информацию и находить оптимальные пути решения задач профессиональной деятельности Способен находить пути улучшения имеющихся решений, позволяющих повысить их общий качественный уровень Способен конструктивно обмениваться информацией с коллегами, грамотно формулировать запросы в целях получения разъясняющей информации Способен конструктивно обмениваться информацией с коллегами, грамотно формулировать запросы в целях получения разъясняющей информации Способен конструктивно обмениваться информацией с коллегами, грамотно формулировать запросы в целях получения разъясняющей информации Способен эффективно использовать компьютерное V V V V V V V V V V V среды, ресурсосбережению, эффективно действовать в чрезвычайных ситуациях. ОК 08. Использовать средства физической культуры для сохранения и укрепления здоровья в процессе профессиональной деятельности и поддержания необходимого уровня физической подготовленности. ОК 09. Использовать информационные технологии в профессиональной деятельности. ОК 10. Пользоваться профессиональной документацией на государственном и иностранном языке. ОК 11. Планировать предпринимательскую деятельность в профессиональной сфере. время, а также материальные ресурсы, необходимые для решения поставленных задач Способен соблюдать требования внутреннего трудового распорядка организации, охраны труда и техники безопасности в целях сохранения собственного здоровья V Способен применять стек современных средств разработки ПО для решения задач профессиональной деятельности в заданном контексте Способен использовать в своей работе специализированную документацию V Способен проектировать алгоритмические решения, принимая во внимание имеющиеся ресурсные ограничения V V Краткая характеристика работы обучающегося Программа практики выполнена в полном объеме. Все виды работ выполнялись в срок, без существенных замечаний. В достаточной степени была проявлена самостоятельность и умение грамотно пользоваться источниками информации, находящимися в свободном доступе. Руководитель практики ____________________ Подпись /_________________ ФИО ___________________________________________________________ (должность) Дата «____» _______________ 202__ год СОДЕРЖАНИЕ ВВЕДЕНИЕ .................................................................................................................................................. 3 1. СВЕДЕНИЯ О РАБОТЕ, ВЫПОЛНЕННОЙ В ПЕРИОД ПРОХОЖДЕНИЯ УЧЕБНОЙ ПРАКТИКИ.................................................................................................................................................. 4 2. НАСТРОЙКА РАБОЧЕГО ОКРУЖЕНИЯ ....................................................................................... 5 3. ФОРМУЛИРОВКА ИНДИВИДУАЛЬНОГО ЗАДАНИЯ................................................................ 6 4. ОПИСАНИЕ ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ ............................................ 7 ЗАКЛЮЧЕНИЕ ......................................................................................................................................... 17 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ............................................................................ 18 ПРИЛОЖЕНИЕ......................................................................................................................................... 19 2 ВВЕДЕНИЕ Учебная практика ПМ.06 проходила на базе Колледжа ФГБОУ ВО «Вятский государственный университет» в период с 01.09.2020 г. по 18.12.2020 г. по субботам. Цель практики: сформировать у обучающихся представление об алгоритмах обработки данных, а также современных библиотечных реализациях алгоритмов и структур данных и их использовании при решении прикладных задач. Задачи практики: – дать представление о различных структурах данных; – показать различные методы решения алгоритмических задач; – дать представление о сложных алгоритмах, используемых при решении алгоритмических задач. 3 1. СВЕДЕНИЯ О РАБОТЕ, ВЫПОЛНЕННОЙ В ПЕРИОД ПРОХОЖДЕНИЯ УЧЕБНОЙ ПРАКТИКИ В период с 01.09.2020 по 18.12.2020 при прохождении учебной практики ПМ.06 на базе Колледжа ФГОБУ ВО «Вятский государственный университет» был выполнен следующий перечень работ, представленный в таблице 1. Таблица 1 – Сведения о работе, выполненной в период практики Дата Краткое содержание выполненных работ 19.09.2020 Ознакомление с правилами внутреннего трудового распорядка организации, требованиями охраны труда и техники безопасности 19.09.2020- Настройка рабочего окружения 26.09.2020 26.09.2020- Решение набора алгоритмических задач 12.12.2020 26.09.2020- Тестирование и отладка полученного кода 12.12.2020 26.09.2020- Подготовка отчетной документации, включая детальное 12.12.2020 описание разработанных и использованных алгоритмов 18.12.2020 Подготовка к сдаче и сдача промежуточной аттестации ________________ _______________ (дата) (подпись) 4 2. НАСТРОЙКА РАБОЧЕГО ОКРУЖЕНИЯ C++ — компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно- ориентированное программирование, обобщённое программирование. Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой набор полезных функций. Рисунок 1 IDE online complier 5 Рисунок 2 IDE Visual Studio 3. ФОРМУЛИРОВКА ИНДИВИДУАЛЬНОГО ЗАДАНИЯ В соответствии с индивидуальным заданием на учебную практику необходимо: Решить не менее шести задач каждого набора задач на сайте codeforces.com, доступных по следующим ссылкам. Разобрать решение указанной преподавателем задачи из каждого набора. Таблица 2 — Ссылки на наборы заданий № Дата Ссылка https://codeforces.com/group/IjhVLQqxMj/contest /296590 https://codeforces.com/group/IjhVLQqxMj/contest 2 03.10.2020 /297460 https://codeforces.com/group/IjhVLQqxMj/contest 3 10.10.2020 /298282 1 26.09.2020 6 Задача для Разбора K A C https://codeforces.com/group/IjhVLQqxMj/contest /298286 https://codeforces.com/group/IjhVLQqxMj/contest 5 31.10.2020 /302506 https://codeforces.com/group/IjhVLQqxMj/contest 6 07.11.2020 /303974 4 24.10.2020 J D F 4. ОПИСАНИЕ ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ Для прохождения учебной практики использовалась платформа https://codeforces.com – ресурс для создания, проведения и обсуждения соревнований по программированию. Регистрационные данные: имя пользователя – Flinn. 4.1 Выполнение задания 26.09.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/296590 Результат решения задач набора представлен на рисунке 3. Рисунок 3 – Результат от 26.09.2020 г. Задача K. Халк 7 Постановка задачи. Помогите Брюсу выразить свои чувства на n-м уровне погружения. Алгоритм решения 1) объявляю непременную n 2) вносим cin » n 3)для (int i = 0;;) если (i)cout « "that " cout « "I hate "; ++i; если (i == n)break; cout « "that I love "; ++i; 4) вносится cout « "it" Тестирование Входные данные Выходные данные 1 I hate it 2 I hate that I love it 3 I hate that I love that I hate it 4.2 Выполнение задания 03.10.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/297460 Результат решения задач набора представлен на рисунке 4. 8 Рисунок 4 – Результат от 03.10.2020 г. Задача A. Хипстер Вася Постановка задачи. Васе стало интересно, какое максимальное количество дней, в которые он сможет быть одетым по моде и носить разноцветные носки, и сколько затем дней он сможет ходить в одноцветных носках, пока носки либо не закончатся, либо из оставшихся носков нельзя будет составить ни одной пары. Алгоритм решения Вводим a и b через пробел Если a больше b то х равно b иначе х равно a и z равно a плюс b минус х умножить на два и c равно з целая часть от деления на 2 Вывод х и с Тестирование Входные данные Выходные данные 31 11 23 20 73 32 9 4.3 Выполнение задания 10.10.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/298282 Результат решения задач набора представлен на рисунке 5. Рисунок 5 – Результат от 10.10.2020 г. Задача С. Письма Постановка задачи. Для каждого из mm писем по номеру квартиры среди всех nn общежитий найдите конкретное общежитие и номер квартиры в нём, куда следует доставить это письмо. Алгоритм решения 1)вводим переменные n, m; cin»n»m; v.push_back(0) 2) для i = 0; i < n; i++ long long a; cin»a; v.push_back(a + v.back() 2.1) вводим j = 1 3) для i = 0; i < m; i++ long long a; cin»a; 3.1) вносим while (a > v[j]) j++ 4) вносим cout«j«" "«a-v[j-1]«"\n" 10 Тестирование Входные данные Выходные данные 11 19 22 2 13 31 3 12 15 21 2 9999999994 36 10 15 12 1 9 12 23 26 37 23 5 10000000000 5 6 9999999999 4.4 Выполнение задания 24.10.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/298286 Результат решения задач набора представлен на рисунке 6. Рисунок 6 – Результат от 24.10.2020 г. Задача J. cAPS LOCK Постановка задачи. Напишите программу, которая применяет описанное выше правило или оставляет слово без изменения, если оно не применимо. 11 Алгоритм решения 1)вводим переменные string n; bool b = true; cin » n; 2) для i = 1; i < n.size(); ++i если n[i] < 'A' || n[i] > 'Z' то b = false если b для i = 1; i < n.size(); ++i n[i]+=32 если n[0] >= 'a' && n[0] <= 'z' n[0]-=32 иначе n[0]+=32 3)вносим cout « n Тестирование Входные данные Выходные данные cAPS Caps Lock Lock 4.5 Выполнение задания 31.10.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/302506 Результат решения задач набора представлен на рисунке 7. 12 Рисунок 7 – Результат от 31.10.2020 г. Задача D. Защитить овец Постановка задачи. Расположите собак на пастбище так, чтобы никакой волк не мог бы добраться до никакой овцы, или определите, что это невозможно. Алгоритм решения 1)вносим ll n,m; string s[600]; ll f(ll i,ll j) 2)если i<0||j<0||i==n||j==m если s[i][j]=='S' то повторяем 1 раз 3)вводим ll i=0,j; cin»n»m; 4)вводим while переменной i<n cin»s[i++]; i=0; 5) вводим while переменной i<n 13 j=0 6) вводим while переменной j<m если s[i][j]=='D' s[i][j]='D' иначе если s[i][j]=='W' то если f(i+1,j)+f(i-1,j)+f(i,j+1)+f(i,j-1) cout«"No" 6.1)j++ 6.2)i++ 7)i=0 8)cout«"Yes\n" 9)вводим while переменной i<n cout«s[i++]«"\n" Тестирование Входные данные 66 ..S... ..S.W. .S.... ..W... ...W.. ...... 12 SW 55 .S... ...S. S.... ...S. .S... Выходные данные Yes ..SD.. ..SDW. .SD... .DW... DD.W.. ...... No Yes .S... ...S. S.D.. ...S. .S... 14 4.6 Выполнение задания 07.11.2020 Ссылка на задания: https://codeforces.com/group/IjhVLQqxMj/contest/303974 Результат решения задач набора представлен на рисунке 8. Рисунок 8 – Результат от 07.11.2020 г. Задача F. Пара тем Постановка задачи. Найти количество хороших пар тем. Алгоритм решения 1)вводим n; cin»n; a[n],b[n],c[n] 2)для i=0;i<n;i++) cin»a[i] 2.1)для int i=0;i<n;i++) cin»b[i],c[i] = b[i] - a[i] sort(c,c+n); long long ans = 0; для i=0;i<n;i++ 2.1.1) вводим x = ((lower_bound(c,c+n,a[i] - b[i]) - c)) 2.1.1.1)если x = ((lower_bound(c,c+n,a[i] - b[i]) - c)) ans += x; 3)вносим cout«ans/2«endl 15 Тестирование Входные данные 5 48262 45413 4 1324 1324 Выходные данные 7 0 16 ЗАКЛЮЧЕНИЕ Данная практика помогла мне осознать, какая у меня будет будущая работа. Таким образом, программа учебной практики ПМ.06 в период с 01.09.2020 по 18.12.2020 была выполнена мной в полном объеме. При выполнении работ, предусмотренных заданием на практику, в организации ФГБОУ ВО «Вятский государственный университет» мной, Еганяном Егором Александровичем, соблюдались правила внутреннего трудового распорядка, охраны труда, техники безопасности, противопожарной безопасности, санитарно-эпидемиологические правила и гигиенические нормативы. Пройден вводный инструктаж и инструктаж на рабочем месте. Замечаний не имел. 17 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ Программирование на C++[Электронный ресурс]: https://stepik.org/course/363/promo Программирование на C++[Электронный ресурс]: https://stepik.org/course/7/promo 18 ПРИЛОЖЕНИЕ ИСХОДНЫЕ КОДЫ 1 Задача 1. #include <iostream> 2. 3. using namespace std; 4. 5. int main() 6. { 7. int n; 8. cin >> n; 9. for(int i = 0;;){ 10. if(i)cout << "that "; 11. cout << "I hate "; 12. ++i; 13. if(i == n)break; 14. cout << "that I love "; 15. ++i; 16. if(i == n)break; 17. } 18. cout << "it"; 19. 20. return 0; 21. } 2 Задача 1. a, b = input().split() 2. a = int(a) 3. b = int(b) 4. if a>b: 5. x = b 6. else: 7. x = a 8. z = (a + b) - x * 2 9. c = z // 2 10. print(x, c) 3 Задача 1. #include <bits/stdc++.h> 2. using namespace std; 3. signed main() { 4. int n, m; 5. cin>>n>>m; 6. vector<long long> v; 7. v.push_back(0); 8. for(int i = 0; i < n; i++){ 9. long long a; 10. cin>>a; 11. v.push_back(a + v.back()); 12. } 13. int j = 1; 14. for(int i = 0; i < m; i++){ 15. long long a; 16. cin>>a; 17. while(a > v[j]){ 18. j++; 19. } 20. cout<<j<<" "<<a-v[j-1]<<"\n"; 19 21. 22. } } 4 Задача 1. #include <bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. string n; 6. bool b = true; 7. cin >> n; 8. for(int i = 1; i < n.size(); ++i){ 9. if(n[i] < 'A' || n[i] > 'Z') 10. b = false; 11. } 12. if(b){ 13. for(int i = 1; i < n.size(); ++i) 14. n[i]+=32; 15. if(n[0] >= 'a' && n[0] <= 'z') 16. n[0]-=32; 17. else 18. n[0]+=32; 19. } 20. cout << n; 21. return 0; 22. } 5 Задача 1. #include <bits/stdc++.h> 2. using namespace std; 3. #define ll long long 4. ll n,m; 5. string s[600]; 6. ll f(ll i,ll j) 7. { 8. if(i<0||j<0||i==n||j==m) 9. return 0; 10. if(s[i][j]=='S') 11. return 1; 12. return 0; 13. } 14. int main() { 15. ll i=0,j; 16. cin>>n>>m; 17. while(i<n) 18. cin>>s[i++]; 19. i=0; 20. while(i<n) 21. { 22. j=0; 23. while(j<m) 24. { 25. if(s[i][j]=='.') 26. s[i][j]='D'; 27. else if(s[i][j]=='W') 28. if(f(i+1,j)+f(i-1,j)+f(i,j+1)+f(i,j-1)) 29. { 30. cout<<"No"; 31. return 0; 32. } 33. j++; 34. } 20 35. 36. 37. 38. 39. 40. 41. i++; } i=0; cout<<"Yes\n"; while(i<n) cout<<s[i++]<<"\n"; } 6 Задача 1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. int n; 6. cin>>n; 7. int a[n],b[n],c[n]; 8. for(int i=0;i<n;i++) cin>>a[i]; 9. for(int i=0;i<n;i++) cin>>b[i],c[i] = b[i] - a[i]; 10. sort(c,c+n); 11. long long ans = 0; 12. for(int i=0;i<n;i++) 13. { 14. int x = ((lower_bound(c,c+n,a[i] - b[i]) - c)); 15. if(a[i] > b[i]) x--; 16. 17. ans += x; 18. } 19. cout<<ans/2<<endl; 20. } 21