Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример разработки алгоритма




Лабораторная работа №22

Тема: Разработка алгоритмов

Цель работы: Ознакомить со способами разработки и методами представления алгоритмов. Ознакомление с алгоритмическими структурами.

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

Этап 1. Уточним словосочетание «несколько значений дан­ных». Могут быть два случая:

а) известно заранее, сколько обрабатываемых данных;

б) количество обрабатываемых данных заранее не известно и оно ограничивается каким-либо признаком.

Уточ­ним форму представления данных:

а) это могут быть отдельные переменные;

б) данные организованы как элементы вектора.

Здесь же решается вопрос о типе значений данных: либо все значения целые, либо все значения вещественные, либо имеется со­четание целых и вещественных значений.

Этап 2. Приведем формальную запись вычисления средней арифметической К для нескольких значений, заданных переменными А, В и С:

а) , данные представлены тремя переменными;

б) данные организованы в виде вектора А.

Этап 3. Выполним словесное описание обобщенного алгоритма для общего случая:

а) ввести значения переменных;

б) вычислить по формуле значение средней;

в) вывести результат;

г) закончить вычисления.;
Этап 4. Спецификация объектов.

Вариант 1. А, В, С — простые переменные целого типа, принимающие произвольные значения. М — переменная, используемая для хранения суммы (промежуточное значение). К — переменная, в которой хранится значение средней арифметической.

Вариант 2. К, М — как в варианте 1. Р — переменная, задающая количество вводимых элементов вектора А. А — вектор, содержа­щий значения этих элементов. Т —указатель текущего элемента вектора А (параметр цикла).

Этап 5. В рамках данного этапа опишем более подробно про­цесс нахождения средней. Рассмотрим два варианта.

Вариант 1. Расчет ведется для трех отдельных переменных;

1) М = А + В + С — сумма трех значений переменных.

2) К = М/3 — среднее значение трех переменных.

Вариант 2. Вычисляется значение средней для Р элементов вектора А.

1) Суммируем значения Р элементов вектора А: .

2) Полученную сумму делим на количество элементов (Р):
К = М/Р.

Этап 6. Стандартные процедуры для данного примера отсутствуют.

Этап 7. Взаимная увязка для варианта 1 не нужна в силу очевидности действий. Для варианта 2 необходимо согласовать количество вводимых элементов с вводом самих элементов. Нужно также проверить, чтобы все ветви были замкнуты и чтобы переменной в качестве начального значения, где накапливается сумма элементов вектора А, было присвоено значение «ноль».

Этап 8. Второй вариант нуждается в проверке значения Р. Эта проверка должна быть организована сразу после ввода Р: если Р = 0, то «Останов», в противном случае расчет продолжается.

Этап 9. Контрольный пример: А = 3; В = 5; С = 7; М = 15; К= 15/3; К = 5.

Этап 10. Оптимизация.

1) Вместо условного оператора, реализующего проверку на достижение равенства значений Т и Р, можно использовать оператор цикла. Программа получится более обозримой.

2) Можно не вычислять предварительно значение средней, а отпечатать его, задав в операторе вывода формулу М/Р.

Этап 11. Документирование. Подробная запись каждого этапа — это пример документирования. Но не следует забывать о ГОСТах и других регламентирующих документах, которые необходимо разрабатывать для более сложной задачи.

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

Ниже дается порядок разработки алгоритма данной задачи по этапам с использованием блок-схем.

Вариант 1. Составить блок-схему для нахождения среднего арифметического значения трех отдельных переменных.

Этап 1. Найти простую среднюю арифметическую К для трех переменных: А, В, С.

Этап 2.

Этап 3. Обобщенная схема.

Этап 4. Спецификации: А, В, С — отдельные переменные; К — средняя; М — вспомогательная переменная для вычисляемой суммы. Все переменные относятся к целому типу.

Этап 5. Детализируем второй блок.

Найти сумму трех переменных: М = А + В + С.

Найти значение средней: К = М/3.

Этап 6. Стандартные процедуры: ввод и вывод.

Этап 7. Общая блок-схема.

Этап 8. Отсутствует

Обобщенная схема (Вариант 1)

Этап 9. Контрольный пример и проверка расчетов: А =3; В = 5; С = 7; М = 15; К = 5.

Этап 10. Отсутствует, хотя можно объединить в один общий блок блоки, в которых производятся вычисления, то есть записать К = (А + В + С)/3.

Вариант 2. Разработать блок-схему задачи вычисления простой средней арифметической для Р элементов вектора А.

Обобщенная схема (вариант 2)

 

Этап 1. Найти простую среднюю арифметическую (К) для Р элементов вектора А.

Этап 2.

Этап 3. Обобщенная схема.

Этап 4. Спецификации: А — вектор элементов; Т — индекс; Р — количество элементов вектора А; К — средняя арифметическая; М — вспомогательная переменная, используемая для накопления суммы.

Этап 5. Детализация вычисления средней арифметической.

Детализируем блок 3 этапа 3.

Этап 6. Стандартные процедуры: ввод и вывод.

Этап 7. Общая блок-схема.

 

Этап 8. Проверка на отсутствие элементов в векторе А при Р = 0. Тогда при делении на ноль машина выдаст предупреждение. Чтобы этого не произошло, алгоритмом предусмотрена проверка, исключающая такой вариант.

Этап 9. Контрольный пример: А (5, 3, 7, 4, 1), Р = 5, М = 20, К = 4.

Этап 10. Отсутствует.

Пример 1. Составить алгоритм вычисления значения функции

Для вычисления значения функции у, надо ввести значение переменной х. В блоке вычислений необходимо записать расчетную формулу, а в блоке вывода указать список выводимых переменных. Тогда с учетом принятых графических обозначений, блок-схема алгоритма будет выглядеть следующим образом:

 

Пример 2. Составить алгоритм вычисления значения функции

Для вычисления значения функции у, надо ввести значение переменной х. Далее анализируется значение х. Если оно больше 3, то вычисления производятся по верхней формуле. В противном случае, вычисления Производятся по нижней формуле. При этом, проверку второго условия проводить не обязательно, так как условия х>3 и х<- ?> являются взаимоисключающими. С учетом принятых графических обозначений, блок-схема алгоритма будет выглядеть следующим образом (см. рис.).

Пример 3. Составить алгоритм вычисления значений функции y=f(x) для всех значений аргумента х на интервале [а,Ь] с шагом h.

Алгоритм заключается в многократном повторении некоторой последовательности действий, называемой телом цикла. Оно включает: вычисление значения функции y=f(x), вывод значения х и вычисленного значения y=f(x) на печать, прибавления к предыдущему значению х величины h и сравнение текущего значения х с конечным значением переменной х. Величина, которая определяет количество повторений цикла (в примере х), называется управляющей переменной, счетчиком или параметром цикла. Перед началом цикла его значение принимается равным начальному значению а.

Блок-схема алгоритма приведена на рисунке:

Задания для самостоятельной работы:

1. Вычислить значение функции

4. Дана последовательность целых чисел а„. Разместить четные элементы в начале, а нечетные элементы - в конце последовательности.

5. В последовательности целых чисел а„ найти среднее арифметическое отрицательных чисел.

6. Отсортировать последовательность целых чисел а„ в-порядке убывания.

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

8. В квадратной матрице размера п найти найти «седловую» точку - элемент, минимальный в своей строке и максимальный в своем столбце.

9. Разместите в порядке возрастания на отрезке [0,1] все простые несократимые дроби, знаменатель которых не превышает 7.

10.Натуральное число называется совершенным, если оно равно сумме своих делителей, включая единицу. Найти все совершенные числа, меньше заданного числа.




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 2765; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.