мм. ОТЧЕТ (2). Разработка кода программного продукта по составленному алгоритму решения задачи
Скачать 155.88 Kb.
|
СодержаниеВведение Целью производственной практики является закрепление знаний, полученных студентами в процессе обучения в учебном заведении, на основе изучения опыта работы предприятия, а также овладение производственными навыками и основами научной организации труда. Студентка знакомится с реальной практической деятельностью предприятия, что позволяет ему лучше ориентироваться в профессии. Основными задачами производственной практики являются: 1 Ознакомление со спецификой работы организации предприятия, понятия структуры предприятия, а также ознакомление с основными функциями производственных и управленческих подразделений; 2 Изучение нормативно — правовых документов, которые регламентируют деятельность предприятия; Место прохождения производственной практики предоставила администрации сельского поселения сумон Баян-Талинский Дзун-Хемчикского Кожууна Республики Тыва. Разработка кода программного продукта по составленному алгоритму решения задачи Анализ поставленной задачи Необходимо написать программу, которая будет выполнять действия на матрицами: умножения, сложения, вычитания, транспонирования. Программа должна решать введенные вручную матрицу в форму. Для удобства пользователя программа должна иметь интуитивно понятный интерфейс. Выбор методов и разработка основных алгоритмов решения В программе используется следующий алгоритм работы: в программе есть формы, в которые вводятся элементы матриц, элементы переводятся из String типа в Integer. Затем нужно нажать кнопку соответствующего действия. Выполняется алгоритм решения матриц и результат выводится в элемент DataGridView. Для построения блок-схем использовалась программа Microsoft Office Visio 2013. С её помощью можно составлять различные диаграммы и схемы, в том числе, блок-схемы. Рисунок 1. Блок схема считывания и записи данных из записи в массив Рисунок 2 Проверка на доступность для ввода Рисунок 3 Блок схема ввода данных в textbox и сравнения с существующим массивом Рисунок 4 - Вызов метода Vizov с параметрами Разработка кода программного продукта на основе готовой спецификации на уровне модуля Калькулятор матриц реализован на языке программирования C# в среде программирования Microsoft Visual Studio Ultimate 2013. Выбор языка C# обусловлен тем, что он современный и популярный объектно-ориентированный язык программирования, а среда Microsoft Visual Studio Ultimate 2013 является мощным средством, позволяющим быстро создать программу, обладающую графическим оконным интерфейсом. Макет окна представлен на рисунке 2.1 Рисунок 5. Оконный интерфейс будущего приложения На форме располагается 3 элемента DataGridView, в них будут размещаться матрицы. Так же 4 Button для выполнения действий над матрицами. Использование инструментальных средств на этапе отладки программного модуля При отладке программного продукта необходимо воспользоваться командой меню Отладка. В меню отладка существуют ряд команд, назначение которых представлено ниже. Рисунок 6.Окно меню Отладка Окна - открывает в интегрированной среде окно Точки останова, которое дает доступ ко всем точкам останова данного решения. Показывает в интегрированной среде окно Вывод. Окно Вывод - это бегущий журнал множества сообщений, выдаваемых интегрированной средой, компилятором и отладчиком. Поэтому эта информация относится не только к сеансу отладки, а также открывает в интегрированной среде окно Интерпретация, которое позволяет выполнять команды: - начать отладку - запускает приложение в режиме отладки; - присоединиться к процессу - позволяет прикрепить отладчик к выполняющемуся процессу (исполняемому файлу). например, если запущено приложение без отладки, то можете потом прикрепиться к этому выполняющемуся процессу и начать отладку; - исключения - открывает диалоговое окно Исключения, которое позволяет выбрать способ останова отладчика для каждого исключительного состояния; - шаг с заходом - запускает приложение в режиме отладки. для большинства проектов выбор команды шаг с заходом означает вызов отладчика на первой выполняемой строке приложения. таким образом, можно войти в приложение с первой строки; - шаг с обходом - когда вы не находитесь в сеансе отладки, то команда шаг с обходом просто запускает приложение точно так же, как это сделала бы кнопка run; - точка останова - включает или выключает точку останова на текущей (активной) строке кода текстового редактора. эта опция неактивна, если в интегрированной среде нет активного кодового окна; - создавать точку останова - активирует диалоговое окно создавать точку останова позволяющее указать имя функции, для которой необходимо создать точку останова; - удалить все точки останова - удаляет все точки останова из текущего решения; - очистить все подсказки по данным - деактивирует (без удаления) все точки останова текущего решения; - параметры и настройки - Прерывать выполнение, когда исключения пересекают границу домена приложения или границу между управляемым и машинным кодом. Выполнение откладки и тестирования программы на уровне модуля. Отладка программы — один их самых сложных этапов разработки программного обеспечения, требующий глубокого знания: •специфики управления используемыми техническими средствами, •операционной системы, •среды и языка программирования, •реализуемых процессов, •природы и специфики различных ошибок, •методик отладки и соответствующих программных средств. Отладка - это процесс локализации и исправления ошибок, обнаруженных при тестировании программного обеспечения. Локализациейназывают процесс определения оператора программы, выполнение которого вызвало нарушение нормального вычислительного процесса. Доя исправления ошибки необходимо определить ее причину, т. е. определить оператор или фрагмент, содержащие ошибку. Причины ошибок могут быть как очевидны, так и очень глубоко скрыты. В целом сложность отладки обусловлена следующими причинами: •требует от программиста глубоких знаний специфики управления используемыми техническими средствами, операционной системы, среды и языка программирования, реализуемых процессов, природы и специфики различных ошибок, методик отладки и соответствующих программных средств; •психологически дискомфортна, так как необходимо искать собственные ошибки и, как правило, в условиях ограниченного времени; •возможно взаимовлияние ошибок в разных частях программы, например, за счет затирания области памяти одного модуля другим из-за ошибок адресации; •отсутствуют четко сформулированные методики отладки. Соответствии с этапом обработки, на котором проявляются ошибки, различают : синтаксические ошибки- ошибки, фиксируемые компилятором (транслятором, интерпретатором) при выполнении синтаксического и частично семантического анализа программы; ошибки компоновки- ошибки, обнаруженные компоновщиком (редактором связей) при объединении модулей программы; ошибки выполнения- ошибки, обнаруженные операционной системой, аппаратными средствами или пользователем при выполнении программы. Синтаксические ошибки. Синтаксические ошибки относят к группе самых простых, так как синтаксис языка, как правило, строго формализован, и ошибки сопровождаются развернутым комментарием с указанием ее местоположения. Определение причин таких ошибок, как правило, труда не составляет, и даже при нечетком знании правил языка за несколько прогонов удается удалить все ошибки данного типа. Следует иметь в виду, что чем лучше формализованы правила синтаксиса языка, тем больше ошибок из общего количества может обнаружить компилятор и, соответственно, меньше ошибок будет обнаруживаться на следующих этапах. В связи с этим говорят о языках программирования с защищенным синтаксисом и с незащищенным синтаксисом. К первым, безусловно, можно отнести Pascal, имеющий очень простой и четко определенный синтаксис, хорошо проверяемый при компиляции программы, ко вторым - Си со всеми его модификациями. Чего стоит хотя бы возможность выполнения присваивания в условном операторе в Си, например: if (c = n) x = 0; /* в данном случае не проверятся равенство с и n, а выполняется присваивание с значения n, после чего результат операции сравнивается с нулем, если программист хотел выполнить не присваивание, а сравнение, то эта ошибка будет обнаружена только на этапе выполнения при получении результатов, отличающихся от ожидаемых */ Ошибки компоновки. Ошибки компоновки, как следует из названия, связаны с проблемами, обнаруженными при разрешении внешних ссылок. Например, предусмотрено обращение к подпрограмме другого модуля, а при объединении модулей данная подпрограмма не найдена или не стыкуются списки параметров. В большинстве случаев ошибки такого рода также удается быстро локализовать и устранить. Ошибки выполнения. К самой непредсказуемой группе относятся ошибки выполнения. Прежде всего, они могут иметь разную природу, и соответственно по-разному проявляться. Часть ошибок обнаруживается и документируется операционной системой. Выделяют четыре способа проявления таких ошибок: • появление сообщения об ошибке, зафиксированной схемами контроля выполнения машинных команд, например, переполнении разрядной сетки, ситуации «деление на ноль», нарушении адресации и т. п.; •появление сообщения об ошибке, обнаруженной операционной системой, например, нарушении защиты памяти, попытке записи на устройства, защищенные от записи, отсутствии файла с заданным именем и т. п.; •«зависание» компьютера, как простое, когда удается завершить программу без перезагрузки операционной системы, так и «тяжелое», когда для продолжения работы необходима перезагрузка; •несовпадение полученных результатов с ожидаемыми. Причины ошибок выполнения очень разнообразны, а потому и локализация может оказаться крайне сложной. Все возможные причины ошибок можно разделить на следующие группы: •неверное определение исходных данных, •логические ошибки, •накопление погрешностей результатов вычислений. Метод ручного тестирования. Это - самый простой и естественный способ данной группы. При обнаружении ошибки необходимо выполнить тестируемую программу вручную, используя тестовый набор, при работе с которым была обнаружена ошибка. Метод очень эффективен, но не применим для больших программ, программ со сложными вычислениями и в тех случаях, когда ошибка связана с неверным представлением программиста о выполнении некоторых операций. Данный метод часто используют как составную часть других методов отладки. Метод индукции. Метод основан на тщательном анализе симптомов ошибки, которые могут проявляться как неверные результаты вычислений или как сообщение об ошибке. Если компьютер просто «зависает», то фрагмент проявления ошибки вычисляют, исходя из последних полученных результатов и действий пользователя. Полученную таким образом информацию организуют и тщательно изучают, просматривая соответствующий фрагмент программы. В результате этих действий выдвигают гипотезы об ошибках, каждую из которых проверяют. Если гипотеза верна, то детализируют информацию об ошибке, иначе - выдвигают другую гипотезу. Последовательность выполнения отладки методом индукции показана на рис. 10.3 в виде схемы алгоритма. Самый ответственный этап - выявление симптомов ошибки. Организуя данные об ошибке, целесообразно записать все, что известно о ее проявлениях, причем фиксируют, как ситуации, в которых фрагмент с ошибкой выполняется нормально, так и ситуации, в которых ошибка проявляется. Если в результате изучения данных никаких гипотез не появляется, то необходима дополнительная информация об ошибке. Дополнительную информацию можно получить, например, в результате выполнения схожих тестов. В процессе доказательства пытаются выяснить, все ли проявления ошибки объясняет данная гипотеза, если не все, то либо гипотеза не верна, либо ошибок несколько. Метод дедукции. По методу дедукции вначале формируют множество причин, которые могли бы вызвать данное проявление ошибки. Затем анализируя причины, исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняет полученные признаки ошибки, то ошибка найдена, иначе - проверяют следующую причину. Метод обратного прослеживания. Для небольших программ эффективно применение метода обратного прослеживания. Начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могли бы привести к получению имеющегося результата. Далее, исходя из этой гипотезы, делают предложения о значениях переменных в предыдущей точке. Процесс продолжают, пока не обнаружат причину ошибки. Отладка модульной структуры Задачи отладки модульных структур состоят в проверке правильности построения модульной структуры и выполнения программного агрегата, соответствующего данной модульной структуре. Рассмотрим эти задачи более подробно. Проверка правильности построения модульной структуры. Существует два способа проверки. Первый основан на анализе результатов процесса редактирования связей (сборки модулей), выполняемого специальной программой ОС. Данный способ позволяет выявить грубые ошибки — отсутствие модулей в модульной структуре, к которым есть обращения. Эти ошибки — следствие реального отсутствия модулей или неверного имени в операторе вызова LINK. Второй способ основан на анализе самой модульной структуры, который заключается в следующем: 1) визуальный анализ графа модульной структуры. Проверку правильности построения непосредственно осуществляет сам разработчик ПС. Отображение графа модульной структуры на экране терминала или вывод его на печать; 2) анализ матриц, описывающих модульные структуры и основанных на результатах п. 1.2.3. Для проверки правильности построения модульных структур используются матрицы вызовов и достижимости. Результат анализа — установка существования циклов, числа маршрутов и достижимости между каждой парой модулей (данная информация используется для определения количества маршрутов при тестировании). Перейдем к рассмотрению второй основной задачи отладки модульных структур. Проверка правильности выполнения модульной структуры. Решение данной задачи тесно связано с реализацией проблем межъязыкового интерфейса. Проверка правильности выполнения модульной структуры предполагает отслеживание в динамике последовательности передач управления и данных между взаимодействующими модулями. Такая возможность позволяет фиксировать цепочки выполняемых модулей и выполнять трассировку передаваемых данных. Результаты этих операций отображаются на экране или выводятся на печать. На основе их анализа определяются: равильность последовательности вызовов модулей в соответствии с графом модульной структуры и в зависимости от входных данных; • правильность передаваемых данных между взаимодействующими модулями согласно описанию их типов в списке формальных и фактических параметров; • последний выполняемый модуль в момент аварийной ситуации при выполнении программного агрегата; • некоторые виды зацикливания в модулях при выполнении программных агрегатов. Реализация этих функций возможна только при применении шестого метода комплексирования — использовании промежуточных модулей связи, в которые включаются средства для отладки модульных структур агрегатов. Они предназначены для фиксации момента входа в вызываемый модуль и выхода из вызываемого модуля; отображения и хранения значений входных параметров согласно описаниям их ТД при передаче управления вызываемому модулю; отображения и хранения значений выходных (и, возможно, входных) параметров согласно описаниям их ТД при возврате управления вызывающему модулю. Средства отладки могут включать и дополнительные возможности: изменение значений передаваемых параметров при выполнении программного агрегата с использованием режима диалога; отображение файлов печати (значений параметров, цепочек вызовов модулей и т.п.) на экран после работы каждого модуля или агрегата в целом. Оптимизация работы программ за счет организации нескольких потоков Оптимизацией программы называют такие преобразования, которые позволяют сделать ее более эффективной, т.е. сделать ее более экономной по памяти и/или более быстрой по выполнению тех же функций, что и до оптимизационного преобразования. Два частных критерия оптимизации - время выполнения программы и объем используемой ею памяти, в общем случае, противоречат друг другу, так же как и эффективное написание программ сопровождается увеличением работы программиста. Известно, что сокращение времени выполнения программы, как правило, можно добиться за счет увеличения объема исполь-зуемой памяти и наоборот. В этом случае при выборе нужного критерия вступают в силу эвристические соображения программиста, отдающего предпочтение одному из них. Обычно конкретные обстоятельства диктуют важность оптимизации программы по времени или по памяти. Например, если программа работает в реальном масштабе времени, она должна вовремя выдать результат. Частично оптимизацию программы может выполнить оптимизирующий транслятор (компилятор). Но в основном этот процесс творческий зависит от квалификации программиста и невозможно дать алгоритм, оптимизирующий любую программу. Можно лишь обратить внимание на те аспекты, где скрыты резервы оптимизации и проиллюстрировать их на примерах. Под областью оптимизации понимается часть программы, т.е. множество операторов, над которыми выполняются оптимизирующие преобразования независимо от других операторов программы. В частности, областью оптимизации может быть вся программа. Существуют два подхода к оптимизации программ: «чистка» и перепрограммирование. Оба подхода имеют как достоинства, так и недостатки. Первый подход заключается в исправлении очевидных небрежностей в исходной программе. Его достоинство - данный метод требует мало времени. Однако повышение эффективности при этом обычно незначительно. Второй подход состоит в переделке исходной программы. Можно переделать часть программы, которая, например, расходует наибольшую часть времени. Этот подход обеспечивает обычно наилучший результат, но и самый дорогой. Он приемлем, если оптимизируемая программа подвергалась значительным изменениям. В каждом конкретном случае повышение эффективности программы зависит от ряда факторов, таких, как стоимость улучшения программы, частота ее использования, относительная скорость выполнения различных операций в машине, от способа компилирования различных операций и т.п. Желательно выработать в себе комплекс правил, которые будут способствовать составлению более эффективных программ, оптимизация которых в дальнейшем не потребуется. Рассмотрим основные Машинно-независимые приемы оптимизации программ. 1) Заголовки сообщений. Если большая часть сообщений содержит пробелы (или другие повторяющиеся символы), то для экономии памяти ЭВМ следует использовать команды, выполняющие заполнение этой части сообщения пробелами (сим-волами). 2) Инициирование переменных. Если начальные значения присваиваются переменным (или константам) одновременно с их объявлением, то экономится и память, и время выполнения программы, т.к. в этом случае переменные получают начальные значения во время компилирования программы, а не во время ее выполнения. Заодно облегчается внутреннее документирование программы и обходятся ошибки в случае, когда переменной не было присвоено начальное значение. 3) Уменьшение числа переменных. Отработанная «временная» переменная на участке программы (например, управляющая переменная цикла) продолжает занимать область памяти и дальше во все время выполнения оставшейся части программы. Ее надо удалить (очистить). Но ее можно использовать в программе и дальше вместо другой «временной» переменной ( например, в качестве управляющей пере-менной в другом цикле) в другом качестве, чтобы не создавать новую. При этом тип переменной остается неизменной. Так как идентификатор переменной, как правило, обозначает определен-ную ячейку памяти, то результатом выполнения рассматриваемой процедуры является определение минимального числа ячеек, необходимых для хранения промежуточных результатов. Встречаются случаи, когда переменная, которой присвоено значение, в дальнейшем нигде не используется, или же между двумя определениями одной переменной нет ни одного ее использования. Такие определения переменных назовем неиспользованными. Оптимизационная процедура в этом случае заключается в удалении из программы лишних присваиваний значений неиспользованным переменным. Рост числа временных и неиспользованных переменных обычно происходит у начинающих и неаккуратных программистов. Их типичная ошибка — выбор первой пришедшей в голову структуры данных. Считается хорошим стилем программирования, если в программе нет лишних переменных. 4) Выбор типов данных. Переменные разных типов данных в ЭВМ обрабатываются с разной затратой времени и памяти. В данном случае требуется минимальное понимание особенностей программы. 5) Удаление излишних операторов присваивания. Рассматриваемая процедура состоит в удалении из программы некоторых операторов присваивания и замене в некоторых других операторах (присваивания или условного перехода) переменных, являющихся левой частью удаляемых операторов, выражениями, являющимися правой частью удаляемых операторов, то есть выполняется объединение операторов. При замене только в одном операторе присваивания переменных, являющихся левой частью удаляемых операторов, выражениями, являющимися правой частью удаляемых операторов, всегда возникает положительный оптимизационный эффект, так как в этом случае просто происходит сокращение числа операций пересылок информации. При этом предполагается, что переменные, являющиеся левой частью удаляемых операторов, в других операторах не используются. 6) Отождествление переменных. Если в программе имеется оператор вида А:=В, то во всех последующих операторах программы можно заменить переменную А переменной В или числовым значением переменной В, а оператор А: = В удалить. Если переменная А является индексируемой переменной, то оператор А: = В остается в программе, а переменная А в некоторых операторах заменяется переменной В. 7) Удаление тождественных операторов. Суть этой процедуры состоит в удалении из программы тождественных операторов, т.е. операторов вида А: = А. Такие операторы могут появляться в программе в результате выполнения оптимизационных и других преобразований. 8) Устранение невыполняемых операторов. В реальных программах могут встретиться участки, содержащие невыполняемые операторы, т. е. такие операторы, которые не выполняются при любых наборах начальных данных. 9) Использования ввода-вывода.Операции ввода-вывода занимают много времени и должны быть сокращены до минимума. Данные, которые можно вычислить внутри программы, вводить не надо! 10) Выделение процедур (функций). Если в программе имеются последовательности одинаковых операторов, которые отличаются только разными идентификаторами и значениями констант, то может быть полезно выделить их в процедуру (или функцию). Это дает значительное сокращение текста программы, но замедляет ее выполнение, т.к. вход-выход процедуры - трудоемкая опе-рация, и работа с параметрами идет медленнее, чем с локальными переменными. Лучше все же использовать не процедуры, а отдельные мо- дули. 11) Сокращение числа процедур (функций).Связь процедур (функций) с основной программой обеспечивается операторами вызова в основной программе, которые замедляют работу прог-раммы. Когда критерием оптимизации является время счета прог-раммы, то нужно хорошо подумать прежде, чем выделить участок программы в отдельную процедуру (функцию). Если много операторов выполняются много раз и в разных местах программы, то, конечно, их надо выделить в отдельную процедуру. Но неразумно вызывать небольшую процедуру два (три ...?) раза. Сокращение числа процедур (функций) выполняется заменой операторов их вызова телами этих процедур (функций) и заменой формальных параметров соответствующими им фактическими парамет-рами. Зато увеличивается текст программы на соответствующее число команд. Описанная процедура является примером того, как два кри- терия оптимизации - время счета программы и объем занимаемой ею памяти — противоречат друг другу. Офисный пакет приложений Microsoft можно использовать не только для работы с электронной корреспонденцией и различными типами документов: текстами, таблицами, базами данных и др., планирования дел, общения с коллегами и управления проектами, но и в качестве инструмента для решения математических задач. Для этого достаточно всего лишь установить бесплатную надстройку Microsoft Mathematics (6,9 Мбайт), включающую в себя набор средств, предназначенных для работы с выражениями и формулами в документах Word. На рисунке 7 изображен пример уравнения. Пример: С вершины горы бросают камень под углом = 30 к горизонту. Определить начальную скорость камня, если он упал на расстоянии l=20 м от точки бросания. Угол наклона горы к горизонту тоже равен =30. Рисунок 7 – Пример Решение представлено на рисунке 8. Рисунок 1 – Решение С помощью расширения Microsoft Mathematics можно решать различные задачи и выполнять следующие операции: вычислять стандартные математические функции, такие как корни и логарифмы; вычислять тригонометрические функции, такие как синус и косинус; находить производные и интегралы, пределы, суммы и произведения рядов; выполнять операции с матрицами, такие как обращение, сложение и умножение; выполнять операции с комплексными числами; выводить двумерные графики в декартовых и полярных координатах, а трехмерные – в декартовых, цилиндрических и сферических; решать уравнения и неравенства; вычислять статистические функции, такие как мода и дисперсия, для списка значений. Подбор контрольных данных для проведения тестирования программного продукта по определенному сценарию Оценочное тестирование, которое также называют «тестированием системы в целом» целью которого является тестирование программы на соответствие основным требованиям. Эта стадия тестирования особенно важна для программных продуктов. Включает следующие виды: - тестирование удобства использования - последовательная проверка соответствия программного продукта и документации на него основным положениям технического задания; - тестирование на предельных объемах - проверка работоспособности программы на максимально больших объемах данных, например, объемах текстов, таблиц, большом количестве файлов и т.п.; - тестирование на предельных нагрузках - проверка выполнения программы на возможность обработки большого объема данных, поступивших в течение короткого времени; - тестирование удобства эксплуатации - анализ психологических факторов, возникающих при работе с программным обеспечением; это тестирование позволяет определить, удобен ли интерфейс, не раздражает ли цветовое или звуковое сопровождение и т.п.; - тестирование защиты - проверка защиты, например, от несанкционированного доступа к информации; - тестирование производительности - определение пропускной способности при заданной конфигурации и нагрузке; - тестирование требований к памяти - определение реальных потребностей в оперативной и внешней памяти; - тестирование конфигурации оборудования - проверка работоспособности программного обеспечения на разном оборудовании; - тестирование совместимости - проверка преемственности версий: в тех случаях, если очередная версия системы меняет форматы данных, она должна предусматривать специальные конвекторы, обеспечивающие возможность работы с файлами, созданными предыдущей версией системы; - тестирование удобства установки - проверка удобства установки; - тестирование надежности - проверка надежности с использованием математических моделей; - тестирование восстановления - проверка восстановления программного обеспечения, например, системы, включающей базу данных, после сбоев оборудования и программы; тестирование удобства обслуживания - проверка средств обслуживания, включенных в программное обеспечение; - тестирование документации - тщательная проверка документации, например, если документация содержит примеры, то их все необходимо попробовать; - тестирование процедуры - проверка ручных процессов, предполагаемых в системе. Естественно, целью всех этих проверок является поиск несоответствий техническому заданию. Считают, что только после выполнения всех видов тестирования программный продукт может быть представлен пользователю или к реализации. Однако на практике обычно выполняют не все виды оценочного тестирования, так как это очень дорого и трудоемко. Заключение Во время прохождения производственной практики были получены новые знания, а также закреплены знания полученные, во время обучения и были получены производственные навыки. За время практики были выполнены все пункты индивидуального задания, предусматривающие как применение теоретических, так и практических знаний и достигнуты все поставленные задачи. В ходе всего периода программа практики была полностью выполнена, а именно: разработка кода программного продукта по составленному алгоритму решения задачи, выполнение откладки и тестирования программы на уровне модуля, оптимизация работы программ за счет организации нескольких потоков, подбор контрольных данных для проведения тестирования программного продукта по определенному сценарию. Практика на овладение рабочей профессией помогла не только лучше разобраться в возможностях, но и овладеть различными навыками работ. Список использованных источников Абрамов, С.А. Математические построения и программирование / С.А. Абрамов. - М.: Наука, 2016. - 192 c. Бекишев, Г.А. Элементарное введение в геометрическое программирование / Г.А. Бекишев, М.И. Кратко. - М.: Наука. Главная редакция физико-математической литературы, 2017. - 144 c. Ван, Тассел Д. Стиль, разработка, эффективность, отладка и испытания программ / Ван Тассел Д.. - М.: Мир, 2017. - 332 c. Вирт, Н. Алгоритмы и структуры данных / Н. Вирт. - М.: Мир, 2016. - 360 c. Голицына, О.Л. Основы алгоритмизации и программирования: Учебное пособие / О.Л. Голицына, И.И. Попов. - М.: Форум; Издание 2-е, 2015. - 432 c. Готье, Р. Руководство по операционной системе UNIX / Р. Готье. - М.: Финансы и статистика, 2014. - 232 c. Гребенников, Л.К. Программирование микропроцессорных систем на языке ПЛ/М / Л.К. Гребенников, Л.А. Летник. - М.: Финансы и статистика, 2014. - 160 c. Дж., Вандер Плас Python для сложных задач. Наука о данных и машинное обучение / Дж. Вандер Плас. - М.: Питер, 2017. - 518 c. Жильцов, В. В. Информационные технологии в проектировании «интеллектуальной» скважины / В.В. Жильцов. - М.: Синергия, 2014. - 906 c. Карпов, В.Я. Алгоритмический язык Фортран / В.Я. Карпов. - М.: Наука, 2014. - 192 c. |