- •Оглавление
- •Введение
- •1. Программа курса «информатика»
- •2. Теоретический материал
- •2.1. Системы счисления
- •2.2. Правила перевода и выполнения арифметических действий в различных системах счисления
- •2.3. Алгоритмизация
- •3. Правила выполнения и оформления контрольной работы
- •4. Задание на контрольную работу Вариант №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
- •5. Образец выполнения контрольной работы Задание
- •Ответ программы-архиваторы или упаковщики
- •Число 11110 перевести в другие системы счисления.
- •Выполнить действия:
- •Значение переменной r, вычисленное по блок-схеме,
- •Составьте блок – схему и словесное описание алгоритма вычисления площади и периметра квадрата по заданной стороне.
- •6. Список вопросов для сессионного контроля и требования для выполнения практического задания
- •Список рекомендуемой литературы
2.3. Алгоритмизация
Алгоритм – это понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Можно выделить три крупных разновидности алгоритмов: вычислительные, информационные и управляющие. Первые, как правило, работают с простыми видами данных (числа, векторы, матрицы), но зато процесс вычисления может быть длинным и сложным. Информационные алгоритмы, напротив, реализуют сравнительно небольшие процедуры обработки (например, поиск элементов, удовлетворяющих определенному признаку), но для больших объемов информации. Наконец, управляющие алгоритмы непрерывно анализируют информацию, поступающую от тех или иных источников, и выдают результирующие сигналы, управляющие работой тех или иных устройств. Для этого вида алгоритмов очень существенную роль играет их быстродействие, т.к. управляющие сигналы всегда должны появляться в нужный момент времени.
Алгоритм использует исходные данные, перерабатывая которые, он получает требуемый результат. Данное положение легко проиллюстрировать в виде следующей наглядной схемы.
Таким образом, каждый алгоритм – это правила, описывающие процесс преобразования исходных данных в необходимый результат. Заметим, что данное важное свойство в некоторых книгах приводят как определение алгоритма.
Для того чтобы произвольное описание последовательности действий было алгоритмом, оно должно обладать следующими свойствами.
• Дискретность
Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Примером команд могут служить пункты инструкции, нажатие на одну из кнопок пульта управления, рисование графического примитива (линии, дуги и т.п.), оператор языка программирования. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов — такие "прерывные" объекты в науке принято называть дискретными.
• Понятность
Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, который умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список.
Определенность (или детерминированность)
Команды, образующие алгоритм (или, можно сказать, входящие в СКИ), должны быть предельно четкими и однозначными. Их результат не может зависеть от какой-либо дополнительной информации извне алгоритма. Сколько бы раз вы не запускали программу, для одних и тех же исходных данных всегда будет получаться один и тот же результат.
При наличии ошибок в алгоритме последнее сформулированное свойство может иногда нарушаться. Например, если не было предусмотрено присвоение переменной начального значения, то результат в некоторых случаях может зависеть от случайного состояния той или иной ячейки памяти компьютера. Но это, скорее, не опровергает, а подтверждает правило: алгоритм должен быть определенным, в противном случае это не алгоритм.
• Результативность
Результат выполнения алгоритма должен быть обязательно получен, т.е. правильный алгоритм не может обрываться безрезультатно из-за какого-либо непреодолимого препятствия в ходе выполнения. Кроме того, любой алгоритм должен завершиться за конечное число шагов. Большинство алгоритмов данным требованиям удовлетворяют, но при наличии ошибок возможны нарушения результативности.
• Корректность
Любой алгоритм создан для решения той или иной задачи, поэтому нам необходима уверенность, что это решение будет правильным для любых допустимых исходных данных. Указанное свойство алгоритма принято называть его корректностью. В связи с обсуждаемым свойством большое значение имеет тщательное тестирование алгоритма перед его использованием. При этом важно не столько количество проверенных сочетаний входных данных, сколько количество их типов. Например, можно сделать сколько угодно проверок для положительных значений аргумента алгоритма, но это никак не будет гарантировать корректную его работу в случае отрицательной величины аргумента.
• Массовость
Алгоритм имеет смысл разрабатывать только в том случае, когда он будет применяться многократно для различных наборов исходных данных. Но массовость алгоритма в отдельных случаях может нарушаться: к числу подобных исключений молено отнести алгоритмы пользования некоторыми простыми автоматами.
Таковы основные свойства алгоритмов. Если их внимательно проанализировать, то становится очевидным, что исполнитель алгоритма не нуждается в какой-либо фантазии и сообразительности. Более того, для выполнения алгоритма совсем не требуется его понимание, а правильный результат может быть получен путем формального и чисто механического следования содержанию алгоритма.
Из возможности формального исполнения алгоритма вытекает очень важное следствие: поскольку осознавать содержание алгоритма не требуется, его исполнение вполне можно доверить автомату или ЭВМ. Таким образом, составление алгоритма является обязательным этапом автоматизации любого процесса.
Основными способами записи алгоритмов являются:
словесный;
словесно-формульный;
на алгоритмическом языке;
графический (блок-схема);
на языке программирования высокого уровня.
В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.
Блок-схема – графическое представление алгоритма
начало
a, b |
Начало и конец алгоритма
|
А=А+5 |
Блок ввода – вывода в общем виде
|
a < b |
Блок присваивания или блок вычислений |
|
Блок условия |
А
|
Соединительный блок, если блок – схема не помещается на лист |
i=1…100,10
|
Блок цикла For. Используется для задания цикла со счетчиком. |
Задача: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».
Рисунок 1 – Пример выполнения алгоритма
Начало.
Вводим стороны прямоугольника.
Вычисляем площадь прямоугольника по формуле S=a*b.
Вычисляем периметр прямоугольника по формуле P=(a+b)*2.
Выводим значения площади и периметра.
Конец.
