Вы находитесь на странице: 1из 67

Разработка алгоритмов для структурного

программирования и их реализация
Разработка алгоритмов для структурного
программирования и их реализация

ВВЕДЕНИЕ

Современным пользователям и профессиональным программистам приходится иметь дело


с огромным количеством разнообразных языков программирования различных уровней и
назначений. Но по-прежнему начинать изучение основ программирования целесообразно
на базе структурных алгоритмов и программ, так как при использовании таких форм
программирования у обучающегося быстрее формируется четкое алгоритмическое
мышление [1, 2].

Цель выполнения работ: обучающиеся технических специальностей и форм обучения


должны показать и закрепить свои знания по:

· базовым понятиям алгоритмов;

· основным методам программирования;

· принципам работы прикладных программных средств для технических расчетов;

· управлению техническими средствами ЭВМ.

ОСНОВНЫЕ ТЕРМИНЫ И ПОНЯТИЯ ТЕОРИИ АЛГОРИТМОВ

Алгоритм – это последовательность элементарных шагов, выполнение которой позволяет


получать однозначный результат (не зависящий от того, кто выполнял эти шаги) или за
конечное число шагов прийти к выводу о том, что решения не существует. [3].

Задача называется алгоритмически неразрешимой, если не существует машины, модели


или алгоритма, которые ее бы решали.

Алгоритм может быть предназначен для выполнения его человеком или автоматическим
устройством. Создание алгоритма, пусть самого простого, - процесс творческий. Другое
дело – реализация уже имеющегося алгоритма, ее можно поручить субъекту или объекту,
который не обязан вникать в существо дела, а возможно, и не способен его понять. Такой
субъект или объект принято называть формальным исполнителем. Каждый алгоритм
создается в расчете на вполне конкретного исполнителя. Совокупность действий (шагов)
образует систему команд исполнителя. Алгоритм должен содержать только те действия,
которые допустимы для данного исполнителя.

1.1 Свойства алгоритмов

Несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других


инструкций [3]:

· дискретность – алгоритм должен представлять процесс решения задачи как


последовательное выполнение простых или ранее определенных шагов; каждое действие
исполняется только после того, как закончилось исполнение предыдущего;

· определенность – каждое действие, правило алгоритма должно быть четким,


однозначным и не оставлять место для произвола, и не требовать никаких
дополнительных указаний или сведений о решаемой задаче;

· результативность – алгоритм должен приводить к решению задачи за конечное число


шагов;

· массовость – алгоритм должен быть применим для некоторого класса задач,


различающихся только исходными данными.

Чтобы алгоритм выполнил свое предназначение, его необходимо строить по


определенным правилам.

Первое правило – необходимо задать множество объектов, с которыми будет работать


алгоритм. Формализованное (в виде, удобном для записи, поиска и хранения в ПК)
представление этих объектов носит название данных. Алгоритм приступает к работе с
некоторым набором данных, которые называются входными, в результате своей работы
выдает данные, которые называются выходными.

Второе правило – для работы алгоритма требуется память. В памяти размещаются


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

Третье правило – дискретность.

Четвертое правило – детерменированность. После каждого шага (действия) необходимо


указывать, какой шаг выполняется следующим, либо дать команду остановки.

Пятое правило – сходимость (результативность). Алгоритм должен завершать работу


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

1.2 Виды алгоритмов

Виды алгоритмов как логико-математических средств:


· механические – или детерминированные, жесткие, задают определенные действия в
единственной и достоверной последовательности, обеспечивая однозначный и требуемый
результат;

· гибкие – дают последовательность нахождения решения задачи несколькими путями или


способами, или это такие алгоритмы, в которых достижение результата однозначно не
определено;

· линейные – набор действий, выполняемых во времени последовательно, друг за другом;

· разветвляющиеся – алгоритмы, содержащие хотя бы одно условие, в результате


проверки которого программа переходит к одному из двух возможных шагов;

· циклические – алгоритмы, предусматривающие многократное повторение одного и того


же действия, но над новыми данными;

· подчиненные (вспомогательные) – алгоритмы, ранее разработанные и целиком


использованные при алгоритмизации задачи (обычно на их основе создаются
подпрограммы).

Процессы вычислений циклической структуры в свою очередь можно разделить на три


группы:

· циклические процессы, для которых количество повторений известно – счетные циклы


или циклы с заданным количеством повторений;

· циклические процессы, завершающиеся по достижении или нарушении некоторых


условий - итерационные циклы;

· циклические процессы, из которых возможны два варианта выхода: по завершении


процесса и досрочный выход по какому-либо дополнительному условию – поисковые
циклы.

1.3 Методы изображения алгоритмов

На практике распространены формы представления алгоритмов:

· словесная - в виде последовательности записей на естественном языке;

· графическая - в виде совокупности графических знаков;

· псевдокоды – полуформализованное описание алгоритма на условном языке,


включающем в себя как элементы языка программирования, так и фразы естественного
языка, общепринятые математические обозначения и др.;

· программная – текст на языке программирования.

Запись алгоритмов на естественном языке (словесная форма) не получила широкого


распространения, из-за отсутствия наглядности; ввиду возможности неоднозначного
толкования записей, и их многословности. Пример словесной формы алгоритма:

1. Определить форматы переменных А, С и В.


2. Ввести значения А и В с клавиатуры.

3. Сравнить А и В.

4. Если А больше В, то переменной С присвоить значение А.

5. Если В больше А, то переменной С присвоить значение В.

6. Если А равно В, переменной С присвоить значение 0.

7. Вывести на экран значения А, В и С.

8. Конец.

Запись алгоритма в виде совокупности графических знаков называется блок-схемой, и


получила широкое распространение в научной и учебной литературе. На изображение
схем алгоритмов существует ГОСТ 19.701-90. Знаки (блоки) соединены линиями
информационного потока (стрелками); каждый знак имеет определенный смысл (см. табл.
1) и соответствует одному шагу (действию) алгоритма. Внутри блока дается описание
соответствующего действия. Для простоты чтения схем желательно, чтобы линия входила
в блок сверху, а выходила снизу, или шла слева направо. Блоки должны быть одного
масштаба. В случае, когда схема алгоритма не умещается на листе, используются
соединители. В Microsoft Word для выполнения алгоритмов используется панель
инструментов «Рисование – Автофигуры – Блок-схема».

Выполнение алгоритма в виде блок-схемы перед программированием существенно


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

Таблица 1 − Знаки для изображения схем алгоритмов

Наименование
Обозначение (графическое
Название Назначение автофигуры в
изображение)
Word
Начало или завершение
Терминатор программы или Знак завершения
подпрограммы
Обработка данных
Процесс (вычисления, Процесс
пересылки т.п.)

Ветвления, выбор,
Решение итерационные и Решение
поисковые циклы

Данные Операции ввода-вывода Данные


Подготовка Счетные циклы Подготовка

Документ Вывод на бумагу Документ

Данные, хранящиеся в
Архив архиве или взятые из -
архива

Документ,
Документ подготовленный -
вручную

Файл Файл или база данных   Магнитный диск

Предопреде- Вызов подпрограмм


Типовой процесс
ленный процесс (процедур)
Источник или
Указание источника
приемник -
или приемника данных
данных

Вывод информации на
Монитор Дисплей
экран

Маркировка разрывов
Соединитель Узел
линий

Маркировка разрывов Ссылка на другую


Соединитель
линий страницу

Комментарий Пояснения к действиям Выноска

Поток Линии, связывающие


Стрелка
информации блоки

В теории программирования доказано [1, 2], что для записи любого сложного алгоритма
достаточно трех базовых структур: следование – последовательное выполнение действий
(рис. 1,а); ветвление – соответствует выбору одного из двух вариантов действий (рис. 1,б);
цикл-пока – определяет повторение действий, пока не будет нарушено условие,
выполнение которого проверяется в начале цикла (рис. 2).
Рисунок 1 − Базовые алгоритмические структуры: а) следование, б) ветвление

Рисунок 2 − Базовая структура: цикл-пока

На основе базовых структур строятся дополнительные структуры для изображения


алгоритмов: выбор (рис. 3), цикл-до, счетный цикл.

Рисунок 3 − Дополнительная структура «выбор» и реализация ее через базовые структуры

 
Рисунок 4 − Дополнительная структура: цикл – до

Рисунок 5 − Дополнительная структура: цикл с заданным числом повторений (счетный


цикл).

На основе алгоритмов создается программное обеспечение (ПО) для решения прикладных


задач.

Выражения

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


выражений. Обычно выражение включает несколько операций, которые выполняются в
порядке их приоритетности (табл. 2).

Таблица 2 − Приоритеты, присвоенные операциям

Операции Приоритет
(булево “не”)
х(умножить),/(делить), mod (остаток от деления нацело), ˄ (булево “и”)
+, -, ˅ (булево “или”)
> , < , ≥ , ≤ , = (булево “равно”)

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

Таблица 3 − Функции SMath Studio из панели Функции

Математическая или Запись в Математическая или Запись в


словесная запись SMathStudio словесная запись SMathStudio
cosx cos(x) sinx sin(x)
Определение знака числа sign(x)
lnx ln(x) ctgx ctg(x)
tgx tg(x) Производная

ex exp(x) Интеграл

Произведение ряда чисел


Сумма ряда чисел (функция
(функция итерационного
итерационного сложения)
умножения)

Рисунок 1 – Различные виды функций

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритмов для структурного программирования и их реализация.


Линейные алгоритмы»

Этап 1. Постановка задачи.Данрадиус окружности R. Вычислить длину окружности.

Этап 2. Анализ. Из математики известно, что длина окружности .


Этап 3. Проектирование и определение спецификаций. Составим линейный алгоритм для
вычисления значения (рис. 3). На этом же этапе рассчитаем тестовый пример (рис.
4). SMath Studio позволяет выполнять математические вычисления над данными
имеющими размерность (в нашей задаче данные и результаты вычислений представлены в
метрах).

Рисунок 3 − Графический линейный алгоритм – следование - для расчета длины


окружности.

Рисунок 4 − Расчет тестового примера в SMath Studio с использованием единиц измерения

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

Таблица 4 − Спецификация к алгоритму и тестовый пример

Обозначение в Обозначение в Ед.


№ Наименование Значение Статус
алгоритме программе изм.
Радиус Входной
R R м
окружности параметр
Длина Выходной
l l м 6,283
окружности параметр

Этап 4. Расчет тестового примера в SMathStudio (рисунок 5), результат заносится в


таблицу 4.

Рисунок 5 – Увеличение шрифта в SMath Studio

Список единиц измерения можно узнать с помощью кнопки главного меню (рис. 6).

Рисунок 6 – Кнопка «Единица измерения»

Этап 5. Кодирование. Создаем и тестируем программу на PascalABC.

Примечание: PascalABC является свободно распространяемым программным


продуктом.

Можно не устанавливать программу на ПК, а тестировать программы онлайн на сайте


http://www.pascalabc.net/WDE/

PROGRAM Primer1;

VAR R: INTEGER; l: REAL;

BEGIN
R:=1; l:=2*PI*R; WRITELN(‘ДЛИНА ОКРУЖНОСТИ l=’, l:4:2);

END.

Рисунок 6.1 – Результат онлайн тестирования программы

Результат работы: разработан алгоритм и программа для решения поставленной задачи;


рассчитан тестовый пример для проверки алгоритма и программы.

Задания для самостоятельного выполнения находятся в ПРИЛОЖЕНИИ 1.

Отчет по работе должен содержать: Формулировку задачи. Необходимые математические


формулы и прочие изыскания. Алгоритм. Спецификацию. Листинг результата работы
программы. Расчет тестового (контрольного) примера (примеров) в SMath Studio.
Результаты работы.

Пример 4.2

Этап 1. Постановка задачи 4.2.Разработать алгоритм, спецификацию, тестовые примеры


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

и скорости резания , и проверить условия , ,


где K – суммарный коэффициент условий обработки; S – подача станка, мм/об; n – число
оборотов шпинделя станка, об.; t – глубина резания, мм; Tmax – максимально возможная
температура в зоне обработки, с точки зрения качества, °C; nmin, nmax – пределы чисел
оборотов шпинделя станка (мин-1); d – диаметр детали, мм; x,y,z – значения степеней,
полученные экспериментальным путем.
Этап 2. Анализ. Алгоритм (программа) должен начинаться с ввода значений x, y, z, S, n, t,
K, Tmax, d, nmin, nmax. Затем, в зависимости от вычисленного значения температуры Т и
проверки , выдается сообщение пользователю о выполнении или не
выполнении поставленных условий.

Этап 3. Проектирование и определение спецификаций. Разветвляющийся алгоритм


представлен на рис. 10.

Рисунок 10 − Алгоритм решения задачи 4.2

Таблица 10 - Спецификация к алгоритму на рис. 10.

Обозначение в Обозначение в Ед. Статус


№ Наименование Тип
алгоритме SMathStudio изм. переменной
Показатель степени х х - Входная Веществ.
Показатель степени у у - Входная Веществ.
Показатель степени z z - Входная Веществ.
Коэффициент условий
K K - Входная Веществ.
обработки
Подача станка S S мм/об Входная Веществ.
Число оборотов
n n мин-1 Входная Веществ.
шпинделя станка
Глубина резания t t мм Входная Веществ.
Максимально Tmax Tmax °С Входная Веществ.
допустимая
температура
Температура в зоне
T Tem °С Выходная Веществ.
обработки
Диапазон чисел
оборотов шпинделя nmin nmax nmin nmax мин-1 Входная Веществ.
станка
Скорость резания v v м/с Выходная Веществ.

Тестовые (контрольные) примеры рассчитываем в SMath Studio (рис. 11). Тесты должны
быть определены таким образом, чтобы проверить все ветви алгоритма.

Рисунок 11 − Расчет тестовых примеров в SMath Studio для задачи 4.2

Знаки «£» и « ³» для проверки неравенств находятся на панели SMath Studio «Булевое».
Результаты расчетов в MATHCAD занесены в табл. 4.

Таблица 11 - Тестовые примеры для задачи 4.2

Номер
dx у z K nS t Tmax nmin nmax Результаты
теста
1,0 1,0 1,0 11,0 0,4 0,15 Условие выполняется; T=66; v=15,708
Условие не выполняется; T=825;
1,0 1,0 1,0 11,0 0,4 0,15
v=196,3495

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


примеры для его проверки.

Альтернативный выбор

Выбор используется для реализации нескольких альтернативных вариантов действий,


каждый из которых соответствует своим значениям некоторого параметра.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритмов выбора для структурного программирования и их


реализация»

Этап 1. Постановка задачи 4.3.Разработать алгоритм, спецификацию, тестовые примеры,


которые бы выбирали и вычисляла сложную функцию через меню:

Этап 2. Анализ. Алгоритм предоставит пользователю возможность выбрать функцию


через простейшую имитацию меню, в котором каждой функции соответствует некоторое
число n (код). Причем для второй функции аргумент х должен быть неотрицательным.

Этап 3. Проектирование и определение спецификаций. Алгоритм программы представлен


на рис. 12. Спецификация к алгоритму оформлена в табл. 5.
Рисунок 12 - Алгоритм решения задачи 4.3

Таблица 12 - Спецификация к алгоритму на рис. 12

Обозначение в Обозначение в Ед.


№ Наименование Статус Тип
алгоритме программе изм.
Аргумент Входная Не
х х -
функции переменная целый
Входная
Код n n - Целый
переменная
Значение Выходная Не
у у -
функции переменная целый
Значение Выходная Не
z z -
функции переменная целый

Тестовые (контрольные) примеры рассчитываем в SMath Studio (рис. 13). Тесты должны
быть определены таким образом, чтобы проверить все ветви алгоритма. Результаты
расчетов занесены в табл. 6. Знак «=» для проверки равенств «n=1 (2, 3, …)» находится на
панели SMath Studio «Булевое».
Примечание: в SMath Studio, в тригонометрических функциях аргумент определяется в
радианах.

Рисунок 13 - Расчет тестовых примеров для задачи 4.3

Таблица 13 - Тестовые примеры для задачи 4.3

Номер теста х n Результат у Результат z


0,3 0,6545 1,4914
0,3 -0,1494 0,9996
0,3 1,3499 2,2858
0,3

Результаты работы: разработан алгоритм для решения задачи и тестовые (контрольные)


примеры для его проверки.

ФОРМА ОТЧЕТА

Отчет о проделанной работе должен содержать: Постановку задачи. Необходимые


математические формулы и прочие изыскания. Алгоритм. Спецификацию. Расчеты
тестовых (контрольных) примеров. Вывод по работе. Список использованной литературы.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритмов циклической обработки (счетных циклов) для структурного


программирования и их реализация»
Этап 1. Постановка задачи 5.1.Разработать алгоритм, спецификацию, тестовый пример

для вычисления суммы n первых чисел ряда .

Этап 2. Анализ. Сумма определяется методом накопления. Количество суммируемых


чисел известно, поэтому используем цикл с заданным количеством повторений. При

каждом проходе к сумме будем добавлять значение дроби , где j будет


изменяться от 1 до n. Перед началом цикла необходимо переменную суммы S обнулить.

Этап 3. Проектирование и определение спецификаций. На рис. 14 приведена схема


алгоритма. Спецификация к алгоритму выполнена в табл. 14. В физико-математической
программной среде SMath Studio выполним расчет тестового примера (рис. 15). Для
организации цикла (повторений) вычислений используется структура for на панели
«Программирование».

Таблица 14 - Спецификация к алгоритму на рис. 14

Обозначение в Обозначение в Статус


№ Наименование Тип
алгоритме SMathStudio переменной
Количество членов
n N Входная Целый
ряда
Переменная цикла j J Расчетная Целый
Значение суммы n Не
S S Выходная
членов ряда целый

 
Рисунок 14 - Блок – схема алгоритма решения задачи 5.1

Рисунок 15 - Расчет тестовых примеров для алгоритма решения задачи 5.1

 
Таблица 15 - Тестовые примеры для задачи 5.1

Номер теста n Результат S


6,47
12,91

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


решения поставленной задачи.

Задания для самостоятельной работы представлены в ПРИЛОЖЕНИИ III.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритма цикла-пока для структурного программирования и их


реализация»

Этап 1. Постановка задачи 5.3.Вычислить значения функции , от х=0 до


первого отрицательного y (a>b>c), т.е. все первые значения y должны удовлетворять
условию y³0.

Этап 2. Анализ. В задаче ничего не сказано про интервал изменения х, поэтому назначаем
его сами: D.

Этап 3. Проектирование и определение спецификаций.

Алгоритм решения задачи 5.3 программы представлен на рис. ___.

Спецификация к алгоритму оформлена в табл. ___.

В физико-математической программной среде SMath Studio выполним расчет тестового


примера (рис. ___). На панели «Программирование» для организации цикла с условием
используется структура while.
Рисунок – Расчет тестового примера для проверки алгоритма 5.3

Рисунок - Алгоритм решения задачи 5.3

Таблица - Спецификация к алгоритму на рис.

Обозначение в Обозначение в Статус Тип


№ Наименование
алгоритме SMath Studio переменной переменной
Аргумент
х x Выходная Не целый
функции
Коэффициент а a Входная Не целый
Коэффициент в b Входная Не целый
  Коэффициент с c Входная Не целый
  Шаг аргумента D D Входная Не целый
Значение
у y(x) Выходная Не целый
функции

Таблица - Тестовые примеры для задачи 5.3

Номер теста D a b c Результат у Результат х


0,001 0,0004 3,14

Результат работы: Разработан алгоритм для решения поставленной задачи, к алгоритму


выполнена спецификация и рассчитаны тестовые примеры.
Задания для самостоятельной работы представлены в ПРИЛОЖЕНИИ III. Отчет по работе
должен содержать: Постановку задачи. Необходимые математические формулы и прочие
изыскания. Алгоритм. Спецификацию. Расчет тестового (контрольного) примера в SMath
Studio. Вывод по работе. Список использованной литературы.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА И ИНТЕРНЕТ - ИСТОЧНИКИ

1. Иванова Г.С. Основы программирования.- Изд-во МГТУ им. Н.Э. Баумана.- 2004.

2. Иванова Г.С. Технология программирования.- Изд-во МГТУ им. Н.Э. Баумана.- 2003.

3. Студопедия. Алгоритм и его свойства. Электронный ресурс:


http://studopedia.su/9_90056_algoritm-i-ego-svoystva.html

4. ГОСТ 19.701-90. Графические знаки для изображения блок – схем.

5. ГОСТ 19.210-78. Техническое задание.

6. MathCAD. MatLab и другие программы этой серии. Работа с SMathStudio. Электронный


ресурс: http://reactivmen.narod.ru/appx/appx4.htm

7. StudFiles. Основы работы с SMath Studio. Электронный ресурс:


http://www.studfiles.ru/preview/1790755/

8. mikkhalichlab. Руководство к SMathStudio. Электронный ресурс:


https://sites.google.com/site/mikkhalichlab/rukovodstvo/s-cego-nacat/funkcii-programmirovania

ПРИЛОЖЕНИЕ I, Задачи А

Варианты заданий на разработку линейного алгоритма


31 вариант выполняет 1 вариант; 32 вариант – 2 и т.д.

ПРИЛОЖЕНИЕ I, Задачи Б

Варианты заданий на разработку линейного алгоритма

Номер
Постановка задачи
варианта

Вычислить и .

Вычислить и .

Вычислить . Рассчитать .
Дано число А – радиус круга. Определить площадь круга.

Вычислить и .
Вычислить .
Даны три не целых числа. Найти их среднее арифметическое.
Имеется полый параллелепипед с размерами: А х В х С. Толщина его стенок
а. Найти объем внутренней полости параллелепипеда.
Вычислить .
Даны длины отрезков для построения треугольника. Определить площадь
треугольника.
Даны длины отрезков для построения прямоугольного треугольника.
Определить значения двух острых углов треугольника.
Дано уравнение прямой линии . Определить угол ее наклона к оси
х.
Дано уравнение прямой линии . Определить угол ее наклона к оси
х.
Даны два числа а и в. Вычислить .

Вычислить

Вычислить
Вычислить
Вычислить
Вычислить

Вычислить
Вычислить
Вычислить
Вычислить и

Вычислить и
Даны координаты точек А(х1; у1) и В(х2,у2). Вычислить длину вектора АВ.

ПРИЛОЖЕНИЕ II (варианты заданий для разработки алгоритма ветвления или


альтернативного выбора)

№ Постановка задачи
Дано уравнение =0. Имеет ли уравнение на отрезке от А до В
решение?
Дано уравнение . Проверить, имеет ли данное уравнение вещественные
корни.
Дан год. Определить, является ли год високосным.
Дано целое число. Определить, является ли оно четным.

Вычислить .
Температура плавления металла , град. Степенная функция температуры в зоне
обработки , где - коэффициенты от –1 до +1. Определить
выполняется ли условие .
Дано не целое число. Проверить, находится ли значение этого числа в интервале от А до
В.
Требуемое значение шероховатости после обработки Ra (мкм). Степенная функция
значения шероховатости после обработки, полученная экспериментальным путем
. Определить, выполняется ли условие Ra≤ Ra .
Пересекаются ли графики функций и на интервале .
Требуемая стойкость инструмента Т . Функция стойкости инструмента
. Определить, выполняется ли условие Т³ Т .

Вычислить коэффициенты: k = ,k = , и k= ; определить, который из


них больше.

Вычислить
Вычислить функцию , где - должны удовлетворять
неравенству .
Дано целое число в диапазоне 0…9. Преобразовать это число в словесную форму,
например, 0 – «ноль»; 1 – «единица» и т.д.
Дано целое число от 1 до 7. Какой день недели означает значение введенного числа?
Дано целое число от 1600 до 2004. Какой век означает значение введенного числа?
Дано целое число от 1 до 9. По значению числа (которое означает возраст ребенка)
добавить в предложение одно из слов: "год", "года", "лет"
Дано целое число от 1 до 12. По значен

ЖИЗНЕННЫЙ ЦИКЛ (ЭТАПЫ


СОЗДАНИЯ) ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ

Жизненный цикл программного обеспечения


(ПО) включает в себя пять этапов: 1 - постановка задачи; 2 - анализ; 3 - проектирование и
определение спецификаций; 4 - реализация, кодирование, тестирование и отладка; 5 -
модификация и сопровождение. Рассмотрим их.

Этап 1. Постановка задачи формулируется заказчиком ПО. В ней должны быть


получены четкие ответы на следующие вопросы:

· Что должна делать программа?


· В чем состоят реальные проблемы, разрешению которых она должна способствовать?

· Что представляют собой входные данные?

· Какими должны быть выходные данные?

· Какими ресурсами располагает проектировщик?

Уточняют среду функционирования ПО: комплектацию и параметры технических


средств, версию используемой операционной системы (ОС) и др. В результате
согласования между заказчиком и исполнителем составляют техническое задание (ТЗ) в
соответствии с ГОСТ 19.210-78, которое служит основанием для дальнейшей работы [1,
2].

Этап 2. Анализ. На данном этапе по результатам условий задачи выбирают


математические абстракции, строят модель задачи и определяют метод преобразования
исходных данных в результаты (методы решения задачи).

Этап 3. Проектирование и определение спецификаций. Этот этап можно рассматривать


как формулировку выводов, следующих из предыдущего этапа. Требования к алгоритмам
и ПО должны быть представлены в виде ряда спецификаций, явно определяющих рабочие
характеристики будущей программы. В число таких характеристик могут входить
перечень данных (табл. 6), скорость выполнения, объем потребляемой памяти, гибкость
применения и т.п. Создается общая структура программы, которая должна удовлетворять
спецификациям; определяются общие принципы управления и взаимодействия между
различными компонентами ПО.

Принято различать логическое и физическое проектирование. Логическое проектирование


не учитывает особенностей среды, в которой будет выполняться программа (технические
и программные средства компьютера). При выполнении физического проектирования все
эти параметры должны быть учтены. Логическое проектирование при структурном
подходе предполагает детальную проработку последовательности действий будущей
программы. Его начинают с определения структуры будущего ПО: это будет отдельная
программа или комплекс программных продуктов (подпрограмм). Затем переходят к
разработке алгоритмов подпрограмм.

Существует три аспекта проверки алгоритма: на правильность; на эффективность


реализации; на вычислительную сложность. Проверка правильности удостоверяет, что
алгоритм делает в точности то, для чего он был предназначен. Проверка сложности, как
правило, заключается в экспериментальном анализе сложности алгоритма, или сравнении
двух или более алгоритмов, решающих одну и ту же задачу. Проверка эффективности
реализации направлена на отыскание способа, заставить правильную программу работать
быстрее или расходовать меньше памяти.

Этап 4. Реализация. Заключается в переводе на язык программирования конструкций,


записанных на языке проектирования (алгоритмов). Язык программирования может быть
определен в ТЗ, а может выбираться исходя из особенностей конкретной разработки. Для
ввода используют специальную программу – текстовый редактор, с помощью которого
создают файл, содержащий текст программы. Затем запускают специальную программу –
компилятор для перевода программы в последовательность машинных команд. В
процессе разбора и преобразования программы компилятор может обнаружить ошибки,
тогда он аварийно завершает работу, выдав программисту сообщения о ошибках
компиляции. После исправления ошибок, процесс компиляции повторяют. Сложная
программа обычно состоит из нескольких частей (подпрограмм), каждая из которых
компилируется отдельно. В процессе связывания подпрограмм также могут быть
зафиксированы ошибки, они называются ошибками компоновки. Для исправления таких
ошибок, как правило, необходимо сверить заголовки используемых подпрограмм и
обращения к ним. Исправив обнаруженные ошибки, вновь запускают компилятор и
компоновщик.

В процессе выполнения программа запрашивает ввод исходных данных, производит


требуемые действия и вывод результатов. При этом могут быть обнаружены ситуации,
когда продолжение работы программы теряет смысл, например, обнаружено «деление на
ноль» или попытка открыть для чтения не существующий файл и др.Такие ошибки
называют ошибками выполнения. Процесс исправления ошибок получил название
отладки программы. Существуют также логические ошибки, когда программа выдает
неправильные результаты. Для их обнаружения необходимо тестирование программы.
Тестированием называют процесс выполнения программы при различных тестовых
наборах данных с целью обнаружения ошибок. Правильный подбор тестовых данных –
ответственная и сложная задача. При определении тестовых данных выполняют действия
по алгоритму вручную, записывая результаты каждого шага на бумаге. Параллельно
составляется соответствующая документация на ПО.

Этап 5. Модификация и сопровождение. Это этап эксплуатации программы. Каким бы ни


было изощренным тестирование программы, к сожалению, в больших программных
комплексах чрезвычайно тяжело устранить абсолютно все ошибки. Устранение
обнаруженных при эксплуатации ошибок, неудачных проектных решений, «узких мест» –
первейшая задача этого этапа. Помимо этого, сопровождение может включать в себя
проведение консультаций, обучение пользователей, снабжение информацией о новых
версиях программы. Качественное проведение этапа сопровождения в большой степени
определяет коммерческий успех программного продукта.

При разработке ПО не следует забывать о правилах «хорошего программирования»:

· Сложение и вычитание выполняются быстрее, чем умножение и деление, таким образом


Х+Х лучше, чем 2Х.

· Целочисленная арифметика быстрее арифметики вещественных чисел.

· Исключать избыточные циклы.

· Строить логические выражения так, что вычисления прекращаются, если результат


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

· Проектировать как можно меньше вложенных циклов.

· Не вставлять комментарии внутрь циклов.

· Как можно меньше использовать операторы безусловного перехода.

· Сложные программы разбивать на модули (подпрограммы).

· Не забывать про уже готовые алгоритмы.


· Выполнять комментарии в тексте программы.

МАТЕМАТИЧЕСКИЙ ПАКЕТ SMATH


STUDIO
SMath Studio - математический пакет с графическим интерфейсом и встроенным
математическим справочником [6].

SMath Studio - программа для вычисления математических выражений и построения


сложных двумерных графиков. Удобный, графический (как на бумаге) интерфейс и
богатые вычислительные возможности программы хорошо сочетаются с достойным
количеством настроек и автоматических режимов.

Возможности:

· поддержка следующих типов данных: Системы, матрицы, векторы, комплексные числа,


дроби;

· поддержка следующих операций и функций: сложение, вычитание, умножение


(скалярное и векторное), деление, нахождение факториала, возведение в степень, работа с
корнями, определение модуля, тригонометрические функции, обратные
тригонометрические функции, гиперболические функции, обратные гиперболические
функции, логарифмы, определение сигнатуры, вычисление аргумента числа, определение
детерминанта (определителя) матрицы, транспонирование матриц и векторов, вычисление
миноров матрицы, вычисление алгебраических дополнений матрицы, вычисление следа
матрицы, определение ранга, перевод комплексных чисел из алгебраического в
тригонометрический вид, численное и символьное дифференцирование, интегрирование,
поиск вещественных корней уравнений и многое другое…

· отображение графиков функций по переменной “x” (икс);

· возможность вставки в лист программы текстовых областей. Причём при вводе


выражения в лист, не пользуясь меню программы (”Меню” >> “Вставка” >> “Текстовая
область”), программа сама определяет, что Вы вводите - текст или формулу!

· экспортирование созданных листов в формате html - создание веб-страниц;

· поддерживается работа с параметрами (константы и пользовательские параметры);

· неограниченный размер листов и их количество;

· копирование, вырезание, вставка и удаление выражений или их частей;

· работа с историей изменений (Отменить, вернуть);

· возможность сохранения и открытия созданных листов, работая с собственным


форматом файлов

· автоматическое сохранение пользовательских настроек при выходе из программы;


· возможность изменения размера шрифта выражения, а также его цвета и цвета его фона;

· поддерживает работу на устройствах с любым разрешением и ориентацией экрана


(начиная с 240 х240 пикселей и выше);

· программа поддерживает несколько языков интерфейса (английский, немецкий,


испанский, португальский (Бразилия), хорватский, сербский, русский и украинский);

· системные требования: .NET Compact Framework 2.0 Service Pack 1


Совместимость / адаптация: Pocket PC 2002, WM 2003, WM 2003 SE, WM 5, WM 6, WM
6.1, полная поддержка VGA, поддерживаются КПК, коммуникаторы и смартфоны.

Разработчик: Ивашов Андрей, официальный сайт предлагаемого им проекта:


http://smath.info. Программа бесплатна для русскоязычных пользователей. Достаточно
включить русский интерфейс для того, чтобы исчезли напоминания о приобретении
продукта. Условия распространения: бесплатно [6].

Основы работы в SMath Studio

Выражения

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


выражений. Обычно выражение включает несколько операций, которые выполняются в
порядке их приоритетности (табл. 2).

Таблица 2 − Приоритеты, присвоенные операциям

Операции Приоритет
(булево “не”)
х(умножить),/(делить), mod (остаток от деления нацело), ˄ (булево “и”)
+, -, ˅ (булево “или”)
> , < , ≥ , ≤ , = (булево “равно”)

Для изменения порядка выполнения операций используют круглые скобки. В выражениях


допускается использование функций (табл. 3, рисунок 1). Им присваивается высший
приоритет.

Таблица 3 − Функции SMath Studio из панели Функции


Математическая или Запись в Математическая или Запись в
словесная запись SMathStudio словесная запись SMathStudio
cosx cos(x) sinx sin(x)
Определение знака числа sign(x)
lnx ln(x) ctgx ctg(x)
tgx tg(x) Производная

ex exp(x) Интеграл

Произведение ряда чисел


Сумма ряда чисел (функция
(функция итерационного
итерационного сложения)
умножения)

Рисунок 1 – Различные виды функций

Оператор присваивания и простейшие


вычисления
С помощью меню «Арифметика» набираются математические выражения (рис. 2), где
символ «:=» означает – «присвоить переменной значение», «=» означает – «вычислить».
Обратите внимание на обособленность Булева «=».

 
Рисунок 2 − Простейшие вычисления в SMath Studio

Основы алгоритмического языка Pascal


[1]

[1]

 
[1]

[1]

Рассмотрим эти правила.

Рисунок 2.1 – Правила записи функций и арифметических действий в Pascal

Таблица 3.1 – Соответствие знаковдля изображения схем алгоритмов, операторов Pascalи


SMathStudio

Обозначение (графическое Примечание к


Pascal SMathStudio
изображение) Pascal
В начале
программы
должны быть
перечислены
все
переменные
из
спецификаци
и к алгоритму
Program
с указанием
ИМЯ_программы;  
их формата: -
VAR B, i: INTEGER; A,
INTEGER –
C: REAL;   BEGIN
это целые
числа; REAL-
вещественны
е числа;
BOOLEAN –
логические
переменные;
ARRAY –
массив и т.д.
Вещественны
е числа
С:=4.6; B:=2; A:=B+C; пишутся
A:=COS(A*PI/180); через точку.
Смотри рис.
2.1
IF B > C THEN BEGIN BEGIN …
A:=A/2; END ELSE END
BEGIN A:=A*2; END;   называются
операторным
и скобками,
они
выделяют
операторы,
которые
выполняются
при одном
условии.
Перед ELSE
точка с
запятой не
ставится.
ELSE BEGIN
… END могут
отсутствовать
, если в
алгоритме
нет
операторов
при не
выполнении
условия
Данные
можно
вводить через
присваивание
С:=4.6; B:=2;
или с
помощью
оператора
READLN(C, B); -
READLN(C,
B); Числа 4.6
и 2 вводятся
уже после
запуска
программы
на
выполнение
Между
операторов
BEGIN …
S:=0; FOR i:=1 TO 10 END;
DO BEGIN … END;   перечисляютс
я
повторяющие
ся действия  
A:5:1 и C:4:1
означает, что
А и С числа
WRITELN(A,B,C); или вещественны
c комментариями е, и округлить
WRITELN(‘Результат их до 1
А=13,2
А=’,A:5:1,’ Входные цифры после
данные были B=’,В:2,’ запятой; В:2 –
C=’,C:4:1); число целое,
состоящее
максимум из
2х цифр
Нет различия
между
WRITELN(‘ОШИБКА! операторами
А=13,2
!!’); вывода на
экран или на
печать
{Комментарий} или (*
   
Комментарий *)

Конец
END. выполнения -
программы

Более сложные операторы будут рассматриваться позже.


 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритмов для структурного программирования и их реализация.


Линейные алгоритмы»

Этап 1. Постановка задачи.Данрадиус окружности R. Вычислить длину окружности.

Этап 2. Анализ. Из математики известно, что длина окружности .

Этап 3. Проектирование и определение спецификаций. Составим линейный алгоритм для


вычисления значения (рис. 3). На этом же этапе рассчитаем тестовый пример (рис.
4). SMath Studio позволяет выполнять математические вычисления над данными
имеющими размерность (в нашей задаче данные и результаты вычислений представлены в
метрах).

Рисунок 3 − Графический линейный алгоритм – следование - для расчета длины


окружности.

 
Рисунок 4 − Расчет тестового примера в SMath Studio с использованием единиц измерения

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

Таблица 4 − Спецификация к алгоритму и тестовый пример

Обозначение в Обозначение в Ед.


№ Наименование Значение Статус
алгоритме программе изм.
Радиус Входной
R R м
окружности параметр
Длина Выходной
l l м 6,283
окружности параметр

Этап 4. Расчет тестового примера в SMathStudio (рисунок 5), результат заносится в


таблицу 4.

Рисунок 5 – Увеличение шрифта в SMath Studio

Список единиц измерения можно узнать с помощью кнопки главного меню (рис. 6).
Рисунок 6 – Кнопка «Единица измерения»

Этап 5. Кодирование. Создаем и тестируем программу на PascalABC.

Примечание: PascalABC является свободно распространяемым программным


продуктом.

Можно не устанавливать программу на ПК, а тестировать программы онлайн на сайте


http://www.pascalabc.net/WDE/

PROGRAM Primer1;

VAR R: INTEGER; l: REAL;

BEGIN

R:=1; l:=2*PI*R; WRITELN(‘ДЛИНА ОКРУЖНОСТИ l=’, l:4:2);

END.

Рисунок 6.1 – Результат онлайн тестирования программы


 

Результат работы: разработан алгоритм и программа для решения поставленной задачи;


рассчитан тестовый пример для проверки алгоритма и программы.

Задания для самостоятельного выполнения находятся в ПРИЛОЖЕНИИ 1.

Отчет по работе должен содержать: Формулировку задачи. Необходимые математические


формулы и прочие изыскания. Алгоритм. Спецификацию. Листинг результата работы
программы. Расчет тестового (контрольного) примера (примеров) в SMath Studio.
Результаты работы.

РАЗРАБОТКА И РЕАЛИЗАЦИЯ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

С помощью панели «Программирование» в


SMath Studio можно реализовать вычисления и по разветвляющимся алгоритмам. Для
создания программной строки понадобится команда «line», для осуществления выбора по
условию – команда «if», она включает в себя «else» - в остальных случаях (рис. 7).

Рисунок 7 – ПанельПрограммирование

ПОРЯДОК ВЫПОЛНЕНИЯ «Разработка алгоритмов ветвления для структурного


программирования и их реализация»

Этап 1. Постановка задачи 4.1.Разработать алгоритм, спецификацию и тестовые


примеры, которые вычисляли значение составной функции:
.

Этап 2. Анализ. Алгоритм должен начинаться с ввода значений аргумента х. Затем, в


зависимости от того, в какой интервал попадает введенное значение, вычисляется
значение функции по одному из заданных выражений.

Этап 3. Проектирование и определение спецификаций.

Расчет тестовых примеров выполняем в SMath Studio (тесты должны быть определены
таким образом, чтобы проверить все ветви алгоритма, рис. 8). Результаты расчетов
занесены в табл. 5.

Рисунок 8 − Расчет тестовых примеров

Разветвляющийся алгоритм представлен на рис. 9. Спецификация к алгоритму – в табл. 6.

 
Рисунок 9 − Алгоритм решения задачи 4.1.

Таблица 8 − Тестовые примеры для задачи 4.1

Номер теста х Результат у


-1 (x<0)
25 (x>8)

Таблица 9 − Спецификация к алгоритму на рисунке 9

Обозначение в Обозначение в Ед. Статус


№ Наименование Тип
алгоритме SMathStudio изм. переменной
Аргумент
х х - Входная Веществ.
функции
Значение
у у(x) - Выходная Веществ.
функции

Результаты работы: разработан алгоритм для решения задачи и необходимые для его
сопровождения документы: спецификация, тестовые (контрольные) примеры.
 

Пример 4.2

Этап 1. Постановка задачи 4.2.Разработать алгоритм, спецификацию, тестовые примеры


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

и скорости резания , и проверить условия , ,


где K – суммарный коэффициент условий обработки; S – подача станка, мм/об; n – число
оборотов шпинделя станка, об.; t – глубина резания, мм; Tmax – максимально возможная
температура в зоне обработки, с точки зрения качества, °C; nmin, nmax – пределы чисел
оборотов шпинделя станка (мин-1); d – диаметр детали, мм; x,y,z – значения степеней,
полученные экспериментальным путем.

Этап 2. Анализ. Алгоритм (программа) должен начинаться с ввода значений x, y, z, S, n, t,


K, Tmax, d, nmin, nmax. Затем, в зависимости от вычисленного значения температуры Т и
проверки , выдается сообщение пользователю о выполнении или не
выполнении поставленных условий.

Этап 3. Проектирование и определение спецификаций. Разветвляющийся алгоритм


представлен на рис. 10.

Рисунок 10 − Алгоритм решения задачи 4.2

 
Таблица 10 - Спецификация к алгоритму на рис. 10.

Обозначение в Обозначение в Ед. Статус


№ Наименование Тип
алгоритме SMathStudio изм. переменной
Показатель степени х х - Входная Веществ.
Показатель степени у у - Входная Веществ.
Показатель степени z z - Входная Веществ.
Коэффициент условий
K K - Входная Веществ.
обработки
Подача станка S S мм/об Входная Веществ.
Число оборотов
n n мин-1 Входная Веществ.
шпинделя станка
Глубина резания t t мм Входная Веществ.
Максимально
допустимая Tmax Tmax °С Входная Веществ.
температура
Температура в зоне
T Tem °С Выходная Веществ.
обработки
Диапазон чисел
оборотов шпинделя nmin nmax nmin nmax мин-1 Входная Веществ.
станка
Скорость резания v v м/с Выходная Веществ.

Тестовые (контрольные) примеры рассчитываем в SMath Studio (рис. 11). Тесты должны
быть определены таким образом, чтобы проверить все ветви алгоритма.

 
Рисунок 11 − Расчет тестовых примеров в SMath Studio для задачи 4.2

Знаки «£» и « ³» для проверки неравенств находятся на панели SMath Studio «Булевое».
Результаты расчетов в MATHCAD занесены в табл. 4.

Таблица 11 - Тестовые примеры для задачи 4.2

Номер
dx у z K nS t Tmax nmin nmax Результаты
теста
1,0 1,0 1,0 11,0 0,4 0,15 Условие выполняется; T=66; v=15,708
Условие не выполняется; T=825;
1,0 1,0 1,0 11,0 0,4 0,15
v=196,3495

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


примеры для его проверки.

Альтернативный выбор

Выбор используется для реализации нескольких альтернативных вариантов действий,


каждый из которых соответствует своим значениям некоторого параметра.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

«Разработка алгоритмов выбора для структурного программирования и их


реализация»

Этап 1. Постановка задачи 4.3.Разработать алгоритм, спецификацию, тестовые примеры,


которые бы выбирали и вычисляла сложную функцию через меню:

Этап 2. Анализ. Алгоритм предоставит пользователю возможность выбрать функцию


через простейшую имитацию меню, в котором каждой функции соответствует некоторое
число n (код). Причем для второй функции аргумент х должен быть неотрицательным.
Этап 3. Проектирование и определение спецификаций. Алгоритм программы представлен
на рис. 12. Спецификация к алгоритму оформлена в табл. 5.

Рисунок 12 - Алгоритм решения задачи 4.3

Таблица 12 - Спецификация к алгоритму на рис. 12

Обозначение в Обозначение в Ед.


№ Наименование Статус Тип
алгоритме программе изм.
Аргумент Входная Не
х х -
функции переменная целый
Входная
Код n n - Целый
переменная
Значение Выходная Не
у у -
функции переменная целый
Значение Выходная Не
z z -
функции переменная целый

Тестовые (контрольные) примеры рассчитываем в SMath Studio (рис. 13). Тесты должны
быть определены таким образом, чтобы проверить все ветви алгоритма. Результаты
расчетов занесены в табл. 6. Знак «=» для проверки равенств «n=1 (2, 3, …)» находится на
панели SMath Studio «Булевое».

Примечание: в SMath Studio, в тригонометрических функциях аргумент определяется в


радианах.

Рисунок 13 - Расчет тестовых примеров для задачи 4.3

Таблица 13 - Тестовые примеры для задачи 4.3

Номер теста х n Результат у Результат z


0,3 0,6545 1,4914
0,3 -0,1494 0,9996
0,3 1,3499 2,2858
0,3

Результаты работы: разработан алгоритм для решения задачи и тестовые (контрольные)


примеры для его проверки.

ФОРМА ОТЧЕТА

Отчет о проделанной работе должен содержать: Постановку задачи. Необходимые


математические формулы и прочие изыскания. Алгоритм. Спецификацию. Расчеты
тестовых (контрольных) примеров. Вывод по работе. Список использованной литературы.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ


«Разработка алгоритмов циклической обработки (счетных циклов) для структурного
программирования и их реализация»

Этап 1. Постановка задачи 5.1.Разработать алгоритм, спецификацию, тестовый пример

для вычисления суммы n первых чисел ряда .

Этап 2. Анализ. Сумма определяется методом накопления. Количество суммируемых


чисел известно, поэтому используем цикл с заданным количеством повторений. При

каждом проходе к сумме будем добавлять значение дроби , где j будет


изменяться от 1 до n. Перед началом цикла необходимо переменную суммы S обнулить.

Этап 3. Проектирование и определение спецификаций. На рис. 14 приведена схема


алгоритма. Спецификация к алгоритму выполнена в табл. 14. В физико-математической
программной среде SMath Studio выполним расчет тестового примера (рис. 15). Для
организации цикла (повторений) вычислений используется структура for на панели
«Программирование».

Таблица 14 - Спецификация к алгоритму на рис. 14

Обозначение в Обозначение в Статус


№ Наименование Тип
алгоритме SMathStudio переменной
Количество членов
n N Входная Целый
ряда
Переменная цикла j J Расчетная Целый
Значение суммы n Не
S S Выходная
членов ряда целый

 
Рисунок 14 - Блок – схема алгоритма решения задачи 5.1

Рисунок 15 - Расчет тестовых примеров для алгоритма решения задачи 5.1

 
Таблица 15 - Тестовые примеры для задачи 5.1

Номер теста n Результат S


6,47
12,91

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


решения поставленной задачи.

Задания для самостоятельной работы представлены в ПРИЛОЖЕНИИ III.

Рассмотрим решение другой задачи.


Этап 1. Постановка задачи 5.2.Вычислить произведение первых n членов ряда.

Этап 2. Анализ. Произведение также определяется методом накопления. Перед началом


цикла необходимо переменную произведения P назначить равной единице.

Этап 3. Проектирование и определение спецификаций. На рис. 16 приведена схема


алгоритма.

Рисунок 16 - Блок – схема алгоритма для решения задачи 5.2

Спецификация к алгоритму выполнена в табл. 3. В физико-математической программной


среде MATHCAD выполним расчет тестового примера (рис. 12). Результаты расчетов
занесены в табл. 4.
 

Таблица 16 - Спецификация к алгоритму на рис. 16

Обозначение в Обозначение в SMath Статус


№ Наименование Тип
алгоритме Studio переменной
Количество членов
n N Входная Целый
ряда
Параметр цикла j J Расчетная Целый
Значение Не
Р Р Выходная
произведения целый

Рисунок 17 - Расчет тестовых примеров в SMath Studio

Таблица - Тестовые примеры для задачи 5.2

Номер теста n Результат Р


0,127
0,0042

Результаты работы: Разработан алгоритм для решения поставленной задачи, к алгоритму


выполнена спецификация и рассчитаны тестовые примеры.

Задания для самостоятельной работы представлены в ПРИЛОЖЕНИИ III.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ


«Разработка алгоритма цикла-пока для структурного программирования и их
реализация»

Этап 1. Постановка задачи 5.3.Вычислить значения функции , от х=0 до


первого отрицательного y (a>b>c), т.е. все первые значения y должны удовлетворять
условию y³0.

Этап 2. Анализ. В задаче ничего не сказано про интервал изменения х, поэтому назначаем
его сами: D.

Этап 3. Проектирование и определение спецификаций.

Алгоритм решения задачи 5.3 программы представлен на рис. ___.

Спецификация к алгоритму оформлена в табл. ___.

В физико-математической программной среде SMath Studio выполним расчет тестового


примера (рис. ___). На панели «Программирование» для организации цикла с условием
используется структура while.

Рисунок – Расчет тестового примера для проверки алгоритма 5.3


Рисунок - Алгоритм решения задачи 5.3

Таблица - Спецификация к алгоритму на рис.

Обозначение в Обозначение в Статус Тип


№ Наименование
алгоритме SMath Studio переменной переменной
Аргумент
х x Выходная Не целый
функции
Коэффициент а a Входная Не целый
Коэффициент в b Входная Не целый
  Коэффициент с c Входная Не целый
  Шаг аргумента D D Входная Не целый
Значение
у y(x) Выходная Не целый
функции

Таблица - Тестовые примеры для задачи 5.3

Номер теста D a b c Результат у Результат х


0,001 0,0004 3,14

 
Результат работы: Разработан алгоритм для решения поставленной задачи, к алгоритму
выполнена спецификация и рассчитаны тестовые примеры.

Задания для самостоятельной работы представлены в ПРИЛОЖЕНИИ III. Отчет по работе


должен содержать: Постановку задачи. Необходимые математические формулы и прочие
изыскания. Алгоритм. Спецификацию. Расчет тестового (контрольного) примера в SMath
Studio. Вывод по работе. Список использованной литературы.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА И ИНТЕРНЕТ - ИСТОЧНИКИ

1. Иванова Г.С. Основы программирования.- Изд-во МГТУ им. Н.Э. Баумана.- 2004.

2. Иванова Г.С. Технология программирования.- Изд-во МГТУ им. Н.Э. Баумана.- 2003.

3. Студопедия. Алгоритм и его свойства. Электронный ресурс:


http://studopedia.su/9_90056_algoritm-i-ego-svoystva.html

4. ГОСТ 19.701-90. Графические знаки для изображения блок – схем.

5. ГОСТ 19.210-78. Техническое задание.

6. MathCAD. MatLab и другие программы этой серии. Работа с SMathStudio. Электронный


ресурс: http://reactivmen.narod.ru/appx/appx4.htm

7. StudFiles. Основы работы с SMath Studio. Электронный ресурс:


http://www.studfiles.ru/preview/1790755/

8. mikkhalichlab. Руководство к SMathStudio. Электронный ресурс:


https://sites.google.com/site/mikkhalichlab/rukovodstvo/s-cego-nacat/funkcii-programmirovania

ПРИЛОЖЕНИЕ I, Задачи А

Варианты заданий на разработку линейного алгоритма


31 вариант выполняет 1 вариант; 32 вариант – 2 и т.д.

ПРИЛОЖЕНИЕ I, Задачи Б

Варианты заданий на разработку линейного алгоритма

Номер
Постановка задачи
варианта

Вычислить и .

Вычислить и .

Вычислить . Рассчитать .
Дано число А – радиус круга. Определить площадь круга.

Вычислить и .
Вычислить .
Даны три не целых числа. Найти их среднее арифметическое.
Имеется полый параллелепипед с размерами: А х В х С. Толщина его стенок
а. Найти объем внутренней полости параллелепипеда.
Вычислить .
Даны длины отрезков для построения треугольника. Определить площадь
треугольника.
Даны длины отрезков для построения прямоугольного треугольника.
Определить значения двух острых углов треугольника.
Дано уравнение прямой линии . Определить угол ее наклона к оси
х.
Дано уравнение прямой линии . Определить угол ее наклона к оси
х.
Даны два числа а и в. Вычислить .

Вычислить

Вычислить
Вычислить
Вычислить
Вычислить

Вычислить
Вычислить
Вычислить
Вычислить и

Вычислить и
Даны координаты точек А(х1; у1) и В(х2,у2). Вычислить длину вектора АВ.

ПРИЛОЖЕНИЕ II (варианты заданий для разработки алгоритма ветвления или


альтернативного выбора)

№ Постановка задачи
Дано уравнение =0. Имеет ли уравнение на отрезке от А до В
решение?
Дано уравнение . Проверить, имеет ли данное уравнение вещественные
корни.
Дан год. Определить, является ли год високосным.
Дано целое число. Определить, является ли оно четным.

Вычислить .
Температура плавления металла , град. Степенная функция температуры в зоне
обработки , где - коэффициенты от –1 до +1. Определить
выполняется ли условие .
Дано не целое число. Проверить, находится ли значение этого числа в интервале от А до
В.
Требуемое значение шероховатости после обработки Ra (мкм). Степенная функция
значения шероховатости после обработки, полученная экспериментальным путем
. Определить, выполняется ли условие Ra≤ Ra .
Пересекаются ли графики функций и на интервале .
Требуемая стойкость инструмента Т . Функция стойкости инструмента
. Определить, выполняется ли условие Т³ Т .

Вычислить коэффициенты: k = ,k = , и k= ; определить, который из


них больше.

Вычислить
Вычислить функцию , где - должны удовлетворять
неравенству .
Дано целое число в диапазоне 0…9. Преобразовать это число в словесную форму,
например, 0 – «ноль»; 1 – «единица» и т.д.
Дано целое число от 1 до 7. Какой день недели означает значение введенного числа?
Дано целое число от 1600 до 2004. Какой век означает значение введенного числа?
Дано целое число от 1 до 9. По значению числа (которое означает возраст ребенка)
добавить в предложение одно из слов: "год", "года", "лет"
Дано целое число от 1 до 12. По значению числа определить месяц года.

Вычислить

Вычислить

Вычислить

Вычислить

Вычислить
Вычислить

Вычислить

ПРИЛОЖЕНИЕ III (варианты заданий для разработки циклических алгоритмов)

Вариант 1. Вычислить . Вариант 2. Вычислить .

Вариант 3. Вычислить . Вариант 4. Вычислить .

Вариант 5. Вычислить . Вариант 6. Вычислить .

Вариант 7. Вычислить . Вариант 8. Вычислить .

Вариант 9. Вычислить Вариант 10. Вычислить

Вариант 11. Вычислить . Вариант 12. Вычислить .

Вариант 13. Вычислить . Вариант 14. Вычислить .

Вариант 15. Вычислить . Вариант 16. Вычислить .


Вариант 17.Вычислить . Вариант 18.Вычислить . 

Вариант 19.Вычислить . Вариант 20.Вычислить .

Вариант 21. Вычислить . Вариант 22. Вычислить .


Вариант 23. Вычислить

Вариант 24. Вычислить .


.
Вариант 25. Вычислить

.
Вариант 1. Вычислить значения функции Вариант 2. Вычислить значения функции
, от х=0 до первого y£ -5. , от х=0 до первого y>100.
Вариант 3. Вычислить значения функции Вариант 4. Вычислить значения функции
, от х=m до первого , от х=m до первого
y>10. y<50.
Вариант 5. Вычислить значения функции
Вариант 6. Вычислить значения функции
, от х=m до первого
, от х=m до первого y>10.
y>0.
Вариант 7. Вычислить значения функции
Вариант 8. Вычислить значения функции
, от х=m до первого
, от х=m до первого y>10.
y>100.
Вариант 9. Вычислить значения функции Вариант 10. Вычислить значения функции
, от х=m до первого y<- , от х=m до первого y<-
10. 50.
Вариант 11. Вычислить значения функции Вариант 12. Вычислить значения функции
, от х=-5 до первого y£ 15. , от х=-10 до первого y>12.
Вариант 13. Вычислить значения функции Вариант 14. Вычислить значения функции
, от х=m до первого , от х=14 до
y>13. первого y<500.
Вариант 15. Вычислить значения функции Вариант 16. Вычислить значения функции
, от х=-m до первого , от х=(m+2) до первого
y>16. y>15.
Вариант 17. Вычислить значения функции Вариант 18. Вычислить значения функции
, от х=2m до первого , от х=(m-3) до первого
y>170. y>180.
Вариант 19. Вычислить значения функции Вариант 20. Вычислить значения функции
, от х=3,2m до первого , от х=-2m до первого
y<-190. y<20.
Вариант 21. Вычислить значения функции Вариант 22. Вычислить значения функции
, от х=n до первого y£ m. , от х=n до первого y>m.
Вариант 23. Вычислить значения функции Вариант 24. Вычислить значения функции
, от х=m до первого , от х=m до первого
y>n. y<10n.
Вариант 25. Вычислить значения функции
, от х=m до первого
y>25n.

ПРИЛОЖЕНИЕ IV

ВОПРОСЫ ДЛЯ САМОСТОЯТЕЛЬНОГО ИЗУЧЕНИЯ (очная и очно-заочная


форма обучения) И НАПИСАНИЯ РЕФЕРАТОВ (заочная форма обучения)

№ варианта

(по списку Тема реферата

в журнале)

1. Информационные технологии.

2. Технические средства информатики.

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

4. Технологии программирования.

5. Алгоритм. Свойства алгоритма.

6. Правила при построении алгоритмов.

7. Виды алгоритмов.

8. Формы записи алгоритмов. Графические знаки, применяемые для записи алгоритмов.

9. Программное обеспечение.

10. Алгоритмические языки.

11. Виды ошибок на этапе реализации ПО.

12. Этапы отладки и тестирования ПО.

13. Правила «хорошего программирования».

14. Данные и переменные. Интерфейс.

15. Синтаксис и семантика. Формальные языки.

16. Формы Бэкуса-Наура (БНФ).

17. Объектно-ориентированное программирование.

18. Пакет SMathStudio.


19. Техническое задание на разработку программного обеспечения

20. Поисковые алгоритмы

21. Итерационные циклы

22. Вычислительный практикум. Нахождение корня уравнения с заданной точностью.

23. Нахождение значения определенного интеграла с заданной точностью.

24. Структурное программирование.

25. Объектно-ориентированное программирование.