Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Примеры создания алгоритмов

Читайте также:
  1. C. Ветвящихся алгоритмов
  2. III. Первоначальное накопление капитала (особенности, примеры)
  3. IX. Этапы создания системы
  4. LINUX|| Процессы в ОС Linux. Этапы создания процесса.
  5. АЛГОРИТМ СОЗДАНИЯ СОЦИАЛЬНОГО ПРОЕКТА
  6. Алгоритм, виды алгоритмов. Алгоритмизация поиска правовой информации.
  7. Алгоритмы и их свойства. Представление алгоритмов
  8. Алгоритмы и их свойства. Представление алгоритмов
  9. Анализ данных и алгоритмов
  10. Анализ, компиляция и прогон программы для создания memory mapped файла и записи его содержимого

Пример 1. Решение квадратного уравнения
Исходные данные. Значения переменных: а > 0, b >0,с>0.
Задача. Вычислить действительные корни уравнения ах2 +bх+с=0.
В блоке 1 компьютер вычисляет значение дискриминанта D по заданным значениям a, b и с. В блоке 2 это значение проверяется: если оно меньше нуля, программа выдает нам сообщение «Решения нет» (блок 4); если D больше или равен нулю, вычисляются квадратный корень из дискриминанта, азатем – значения двух корней (x1 и х2).

 

 

Пример 2. Нахождение максимального числа из последовательности целых чисел (при помощи цикла).
Исходные данные Последовательность из п целых положительных чисел (например, n = 6, 15, 25), обозначенная буквой а.
Пояснение. В информатике такие последовательности называются массивами. Массив имеет имя – а. Каждый элемент массива обозначается порядковым номером – индексом элемента. Например, а1 = 3, а2 = 6.
Задача. Найти максимальное из чисел а, (i=1,2,...,n).

Введем две дополнительные переменные: m – этой переменной компьютер присвоит значение максимального числа; i, которая будет

служить порядковым номером (индексом) числа в последовательности (i = 1,2,…,п). Присвоим m значение «нуль», а – значение 1.
В блоке 3 сравниваются текущее значение m с очередным числом из заданной последовательности. Например, пусть в начале последовательности указаны a1 = 3, а2 = 6, а3 = 2,...
При первом выполнении блока 3 проверяется условие a1 > m (т.е. 3 > 0). В результате проверки переменной m будет присвоено значение a1 (т.е. m=3). Далее значение i увеличивается на единицу (блок 5). Если i не больше п (блок 6), снова выполняется блок 3.
На втором шаге a1 = 6, т.е a1 > m, и m примет значение 6
На третьем шаге a1 = 2 (a1 < m), и m сохранит значение 6. Как только i превысит число элементов последовательности (все числа просмотрены), выполнение алгоритма заканчивается, а переменная m сохраняет значение максимального числа последовательности.

Пример 3. Определить «завтрашнюю» дату.
Для решения этой задачи необходимо обучить программу «тонкостям» распознавания дней, месяцев и лет.
Исходные данные. «Сегодняшняя» дата, заданная числом a1 (1 < a1 < 31), месяцем b1 (1 < b1 < 12) и годом c1 (c1 > 0). Будем считать, что эта дата за­дана правильно (т. е. такие числа, как 31 февраля – исключены).
Постановка задачи. Определить «завтрашнюю» дату (число а2, месяц b2 и год c1).
1. Если число меньше 28 (т.е. 1, 2, …, 27), то завтра будет тот же год, тот же месяц и число, увеличенное на 1.
2. В противном случае нужно проверить месяц. Если сегодня февраль, завтра будет либо 29 февраля (если значение года делится на 4, т.е. год – високосный), либо 1 марта (блоки 2, 4, 3, 8).

3. Если сегодня не февраль, придется вернуться к числу. Если a1 < 30, то число увеличивается на единицу. Если нет, необходимо определить число дней в текущем месяце (блок 6) и, в зависимости от результата, либо увеличить a1 на 1, либо перейти к первому числу следующего месяца.
4. Однако в последнем случае (если число дней в месяце 31), надо выяснить, не находимся ли мы на пороге смены года (блок 9).
Разумеется, этот алгоритм можно построить и по-другому, однако смысл операций не изменится
Из примеров видно, что алгоритм обычно составляется для решения не одной конкретной задачи, а группыоднотипных задач с разными исходными данными. Например, алгоритм определения завтрашнего числа будет работать с любыми исходными датами.




Дата добавления: 2015-01-05; просмотров: 41 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав