Термин «алгоритм» применяется широко и не только в области вычислительной техники и программирования. Происходит от имени средневекового арабского математика Абу Джафара ибн Муссы аль-Хорезми. Редакция последней части имени в европейских языках привела к образованию термина «алгорифм» или «алгоритм». Первоначально термин «алгоритм» означал операции над числами. Потом это понимание утратилось, и его стали применять только к алгоритму Евклида.
Алгоритм Евклида был предназначен для нахождения наибольшего общего делителя пары натуральных чисел (m, n).
п1. r:=m mod n.
п2. m:=n; n:=r.
п3. Если n0, то переход к п1.
п4. m — искомое число.
Представленное описание алгоритма – это последовательность шагов, направленных на достижение некоторого результата (наибольшего общего делителя.).
Алгоритм – точное предписание, задающее алгоритмический процесс, который начинается с произвольного значения исходного данного из некоторой их совокупности. Процесс направлен на получение результата, полностью определенного этим данным.
МНОГОПОТОЧНОСТЬ НА PYTHON | МОДУЛЬ THREADING
Алгоритмический процесс – процесс последовательного преобразования конструктивных объектов (слов, чисел, пар слов, пар чисел, предложений и т.п.), происходящий дискретными шагами. Каждый шаг состоит в смене одного объекта другим.
Конструктивный объект — объект, над которым производится преобразование. К их числу относятся числа, буквы, слова, графы, логические выражения и т.д.
В алгоритме Евклида конструктивными объектами являются пары чисел. Смена конструктивных объектов, например, для чисел m=10, n =4 выглядит так: (10, 4) (4, 2) (2, 0).
Как правило, для заданного алгоритма можно выделить семь независимых параметров: 1) совокупность исходных данных, 2) совокупность промежуточных результатов, 3) совокупность результатов, 4) правило начала, 5) правило непосредственной переработки, 6) правило окончания, 7) правило извлечения результата. Для алгоритма Евклида эти параметры таковы.
Основные свойства алгоритма
Определенность — однозначность, исключающая произвольность толкования любого из предписаний и заданного порядка исполнения алгоритма.
Результативность — через определенное число шагов вычислительный процесс должен привести к выдаче результатов или сообщения о невозможности решения задачи.
Массовость — решение однотипных задач с различными исходными данными можно осуществлять по одному и тому же алгоритму, что обеспечивает создание типовых программ для решения задач при различных вариантах задания значений исходных данных.
Дискретность — вычислительный процесс, предопределенный алгоритмом, можно расчленить на отдельные этапы и элементарные операции.
Источник: studfile.net
Создание программы по разработанному алгоритму как отдельного модуля
В данном пункте представлены схемы алгоритмов основных модулей программного средства разработанной в дипломном проекте автоматизированной системы.
Импорт собственных модулей в Python. Import modules. Атрибут модуля __name__ и __main__
При помощи основного модуля программы «Авторизация» осуществляется вывод формы для ввода данных оператором программного средства, после чего он вводит пароль, так производится авторизация пользователя.
В модуле «Продажа товара» производятся операции по выбору товара, ввода цены товара и занесению данных в базы данных, связанные с программой, осуществляется вывод на экран данных и отчётов.
Посредством модуля «Добавление закупок» выполняются основные операции по поиску необходимого товара или услуги по закупочной цене, продажной цене, количеству и наименованию товаров и услуг, занесению этих данных в связанные с программным средство базы данных. Так же с помощью данного модуля выполняется выведение отчётов на печать.
Разработка интерфейса пользователя
Описание интерфейса программы
При открытии программы «Бытовая техника» необходимо запустить Access, открыть программу с таким названием. Можно также запустить из любого окна, например, «Мой компьютер» или «Проводник».
Главное окно разработанной АСУ
Главное меню программы предназначено для управления последовательностью действий. Оно представляет собой несложную древовидную структуру. Наиболее просто элемент меню выбирается с помощью мыши. Сначала выбирается элемент главного меню, в результате чего раскроется соответствующее подменю. Главное меню программы состоит из следующих подменю:
— товары (ввод справочной информации);
— документы (ввод, просмотр и печать документов);
— проверка качества (просмотр, добавление, редактирование и печать документов);
— управленческие факторы (просмотр управленческих факторов);
— справка (сведения о программе);
— выход (выход из ИС).
Рассмотрим более подробно каждый из элементов меню.
При выборе меню «Вывод» раскрывается подменю с выбором следующих пунктов:
— прибыль (содержит информацию о прибыли предприятия за определенный период);
— приход (содержит информацию о поступлении товара в количественном и в денежном выражении);
— продажа (содержит информацию о продажах товара в количественном и в денежном выражении за указанный период).
При выборе меню «менеджер» раскрываются пункты:
— продаж (содержит информацию о товаре, который готовится к оплате покупателем, т.е. он уже выбран, показывается его стоимость);
— закупок (содержит информацию о товаре, который готовится к закупке предприятием торговли, т.е. он уже выбран, показывается его стоимость).
При нажатии этих кнопок появляется форма для ввода пароля, показанная на рисунке.
Форма ввода пароля
При выборе меню «Документы» раскрывается подменю с выбором документов.
При выборе меню «Справка» открывается подменю «О программе». В этом подменю указаны сведения о программе кем и когда была сделана программа.
Меню «Выход». При нажатии на этот пункт меню система закрывается, и выходит из неё.
При запуске программы БЫТОВАЯ_ТЕХНИКА появляется окно «Бытовая техника LG», в котором появляется меню с кнопками. В появившемся окне видны кнопки, назначение которых интуитивно понятно из их названия.
Нажать кнопку «Товар». Исходными данными для программы являются данные о товаре, которые содержатся в таблице или представленные в виде формы. Здесь можно вносить данные о поступивших новых товарах, изменять сведения у имеющихся (например, цену). Для этого нужно использовать окно «Запись» в левом нижнем углу и кнопки или для изменения, для добавления кнопку . Изменять и вносить данные можно непосредственно в таблицу.
Окно типа товара
Для добавления нового типа товара, которого ранее не было (например, DVD), необходимо нажать кнопку «Тип», появится окно «Ввод типа товара», показанное на рисунке 2.8, в которое необходимо внести требуемые данные.
В окне «Приход», заносятся данные о количестве полученного товара, от кого поступил, затраты на его покупку. Для правильной работы необходимо обязательно указать дату в соответствующем окне. При необходимости можно сформировать и отпечатать накладную. Для этого достаточно щелкнуть по кнопке «Накладная» . Для анализа продаж за период достаточно щелкнуть по кнопке , появится окно, показанное на рисунке.
Окно данных о товаре в табличной форме
Окно прихода товара
Кнопка «Цены» позволяет получить и при необходимости отпечатать форму для внесения изменений цены товара.
Для анализа остатка товара необходимо щелкнуть по кнопке «ОСТАТОК», высветится форма в виде страниц текста (рисунок).
Окно отчета об остатках товара
Группа кнопок «Вывод» служит для анализа прибыли, и продаж.
Окно «Приход» имеет вид, показанный на рисунке.
Окно данных о приходе
После нажатия на кнопку высвечиваются данные по форме.
Тестирование и отладка программы
На этап отладки и тестирования программ приходится около 50% всей работы над разработкой программного обеспечения.
Тестирование — это процесс выполнения программы с целью обнаружения в ней ошибок. Такое определение цели стимулирует поиск ошибок в программах. Отсюда также ясно, что «удачным» тестом является такой, на котором выполнение программы завершилось с ошибкой. Напротив, «неудачным» можно назвать тест, не позволивший выявить ошибку в программе.
Существует два основных вида тестирования: функциональное и структурное. При функциональном тестировании текст программы не используется. Происходит проверка соответствия поведения программы ее внешней спецификации. Очевидно, что критерием полноты тестирования в этом случае являлся бы перебор всех возможных значений входных данных, что невыполнимо.
Поскольку исчерпывающее функциональное тестирование невозможно, речь может идти о разработки методов, позволяющих подбирать тесты не «вслепую», а с большой вероятностью обнаружения ошибок в программе.
При структурном тестировании текст программы открыт для пользования. Происходит проверка логики программы. Полным тестированием в этом случае будет такое, которое приведет к перебору всех возможных путей на графе передач управления программы (ее управляющем графе). Даже для средних по сложности программ число таких путей может достигать десятков тысяч.
Если ограничиться перебором только линейных не зависимых путей, то и в этом случае исчерпывающее структурное тестирование практически невозможно, так как неясно, как подбирать тесты, чтобы обеспечить «покрытие» всех таких путей. Поэтому при структурном тестировании необходимо использовать другие критерии его полноты, позволяющие достаточно просто контролировать их выполнение, но не дающие гарантии полной проверки логики программы.
Но даже если предположить, что удалось достичь полного структурного тестирования некоторой программы, в ней, тем не менее, могут содержаться ошибки, так как:
— программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;
— не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (то есть на одних исходных данных программа работает правильно, а на других — с ошибкой).
Таким образом, ни структурное, ни функциональное тестирование не может быть исчерпывающим.
Рассмотрим подробнее основные этапы тестирования программных комплексов. В тестирование многомодульных программных комплексов можно выделить четыре этапа:
1) тестирование отдельных модулей;
2) совместное тестирование модулей;
3) тестирование функций программного комплекса (то есть поиск различий между разработанной программой и ее внешней спецификацией);
4) тестирование всего комплекса в целом (то есть поиск несоответствия созданного программного продукта сформулированным ранее целям проектирования, отраженным обычно в техническом задании).
На первых двух этапах используются, прежде всего, методы структурного тестирования, так как:
— на последующих этапах тестирования эти методы использовать сложнее из-за больших размеров проверяемого программного обеспечения;
— последующие этапы тестирования ориентированы на обнаружение ошибок различного типа, которые не обязательно связаны с логикой программы.
При тестировании, как отдельных модулей, так и их комплексов должны быть решены две задачи:
— построение эффективного множества тестов;
— выбор способа комбинирования (сборки) модулей при создании трестируемого варианта программы.
Отладка выполнялась с помощью точек останова и наблюдения за значениями некоторых переменных. При обнаружении ошибок устанавливалась точку останова, и выполнялись несколько операторов в пошаговом режиме. Над выявленным ошибочным оператором производились действия по отладке.
Также был использован метод отладки приложения на тестовых данных. Использование данного метода дает возможность проверки правильности работы алгоритмов расчета. Метод базируется на составлении тестовых данных и ручном вычислении по используемым в программе алгоритмам. Далее полученные значения сравниваются с результатами вычисления программы.
Отладка программы выполнялась как в процессе разработки, так и в процессе тестирования приложения. Были выявлены ошибки, связанные с несовпадением типов файлов в таблицах базы, с незначительными отклонениями от требуемой функциональности программы, а также ошибки, возникающие в процессе работы программы, связанные с неверной организацией работы пользователя. Выявленные ошибки были исправлены, после чего программное средство повторно тестировалось. Результаты повторных тестов показали соответствие разработанной программы требуемому программному средству.
Источник: studbooks.net
Презентация, доклад Создание программы по разработанному алгоритму как отдельного программного модуля.
Слайд 1Тема: Создание программы по разработанному алгоритму как отдельного программного модуля.
Слайд 2Цели и задачи : Дать определения инструментам панели систем программирования и изучить
способы создания алгоритмов в программном модуле
Слайд 3КЛЮЧЕВЫЕ СЛОВА:
Процедура
Параметры
Функции
Типы данных
Слайд 4Процедура – подпрограмма, которая выполняет какие-то действия, и которую можно вызвать из другого
места программы.
После выполнения процедуры выполнение программы продолжается с того места, откуда она была вызвана.
Процедура живет самостоятельной жизнью, и в любой момент ее можно вызвать, чтобы выполнить какие-то действия.
Чтобы процедуру можно было вызвать из программы, ее необходимо объявить выше того места, где мы будем ее вызывать. Синтаксиспроцедуры такой:
procedure NameProc(Param : Тип);
var //объявление переменных(необязательно)
begin //тело процедуры end;
Вызвать такую процедуру можно, просто указав ее имя.
Слайд 5Параметры – это входные данные. То есть, мы можем вызвать процедуру и задать
ей нужные данные. Параметры процедуры записываются в круглых скобках с указанием типа. Если параметров нет, скобки можно не ставить. Пример процедуры с параметрами:
procedure Primer(a,b : Integer);
begin a := a * b;
end;
Слайд 6Функции – это такие же подпрограммы, как и процедуры. Отличие функций от процедур в том, что они
не просто выполняют какие-то действия и расчеты, но и могут возвращать результат определенного типа. Поскольку они возвращают результат, необходимо указать тип этого результата. Синтаксис функции такой:
function NameFunc(Param : Тип) : Тип_возвращаемого_значения; var //объявление переменных (необязательно) begin //тело функции Result := результат вычислений; end;
Слайд 7События
В Delphi событие означает, что какой то компонент, которому мы назначили событие,
изменился. Событие – это процедура, которой передается управление в случае, если произошли запрограммированные изменения. События могут быть самыми разными – изменение текста в поле Edit, нажатие кнопки мыши или клавиши, или просто мышь оказалась над компонентом.
Слайд 8строковые типы данных:
ShortString – короткая строка из ANSI символов. Количество символов может быть
от 0 до 255. Иными словами, строку длиной более 255 символов в ShortString записать нельзя.
LongString – длинная строка из ANSI символов. Длина строки здесь почти не ограничена, в одну переменную такого типа можно записать текстовый файл с романом «Война и мир». Этот тип используется по умолчанию, то есть, когда мы указываем тип String, подразумевается именно этот тип данных. С ним нам чаще всего и придется работать.
WideString – длинная строка из UNICODE символов. От LongString отличается только тем, что использует иную таблицу символов.
Слайд 9Символьные типы данных
Символ – это любая буква, цифра, арифметический знак, знаки
препинания или пробел. Кроме того, существуют специальные символы, например, символ перехода на новую строку. Delphi поддерживает два типа символьных данных:
AnsiChar – символ ANSI таблицы. Используется по умолчанию, то есть, когда мы указываем тип Char, подразумеваем именно этот тип.
WideChar – символ UNICODE таблицы. Разница между ними такая же, как и у строк этих типов.
Как и в случае со строками, программист обычно объявляет тип Char, что соответствует типу AnsiChar.
Логический тип данных
Логический тип данных используется в условных выражениях. Он необходим для создания логики программы. Условное выражениепроверяет – соответствует ли действительность заданному условию? Если соответствует, то выражение возвращает результат True(Истина). Если не соответствует, то возвращается False (Ложь).
Таким образом, логический тип данных может иметь только одно из двух этих значений.
Boolean – логический тип данных.
Слайд 10Домашнее задание:
Обязательное: подговить тему,
Интернет ресурс: http://www.myshared.ru/search/
2. Внеаудиторная
самостоятельная работа № 7. Создать программу, изменяющую активность пунктов меню.
Слайд 11ПРОГРАММИСТСКИЕ ПРИМЕТЫ ☺
Если новая программа с первого раза компилируется без
ошибок, значит, она написана принципиально неправильно.
Если к вам перестали поступать жалобы на вашу программу, значит, ею уже никто не пользуется.
Чем универсальнее программа, тем меньше мест, где можно ее применить.
Чем точнее программист выполняет требования заказчика, тем бестолковее получается программа.
Чем больше заказчик понимает в программировании, тем больше он мешает работе программистов.
Ошибки легче всего делаются и труднее всего обнаруживаются в самых простых местах программы.
Нет более живучих программ, чем заплатки, сделанные на скорую руку.
Чем чаще программист жалуется на чужой soft, тем хуже он делает свой.
Источник: shareslide.ru