Алгоритмы
Практическая работа 3.1 по информатике
Алгоритм последовательность действий со строго определенными правилами выполнения.

Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством — формальным исполнителем.

Задача исполнителя — точная реализация уже имеющегося алгоритма. Формальный исполнитель не обязан вникать в сущность алгоритма, а возможно, и неспособен его понять.

В информатике универсальным исполнителем алгоритмов является компьютер.
Виды алгоритмов
Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
Линейный алгоритм — набор команд (указаний), выполняемых последовательно друг за другом.
Разветвляющийся алгоритм — алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
Циклический алгоритм — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) Над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы — последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторому условию.

Алгоритм можно задать несколькими способами: словесным, графическим, формульным, табличным.
Правила построения алгоритма
Первое правило — при построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результата своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные. Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.
Второе правило — для работы алгоритма требуется память. В памяти размещаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые являются результатом работы алгоритма. Память является дискретной, т. е. состоящей из отдельных ячеек. Поименованная ячейка памяти носит название переменной. В теории алгоритмов размеры памяти не ограничиваются, т. е. считается, что мы можем предоставить алгоритму любой необходимый для работы объем памяти.
Третье правило — дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Точнее — из множества шагов.
Четвертое правило — детерминированность. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.
Пятое правило — сходимость (результативность). Алгоритм должен завершать работу после конечного числа шагов. При этом необходимо указать, что считать результатом работы алгоритма.
Свойства алгоритма
Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
Определенность — каждое правило алгоритма должно быть четким, однозначным. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
Результативность (конечность) — алгоритм должен приводить к решению задачи за конечное число шагов.
Массовость — алгоритм решения задачи разрабатывается в общем виде, то есть он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
Блок-схема алгоритма
Блок-схема алгоритма — графическое изображение алгоритма в виде связанных между собой с помощью стрелок (линий перехода) и блоков — графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.

В соответствии с ГОСТ 19.701-90 "Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения" основными являются следующие обозначения блоков:
Пример составления линейного алгоритма
В основе линейных алгоритмов лежит четкая последовательность действий, которая не может измениться. Рассмотрим это на примере.

Пример. Построить алгоритм вычисления арифметического выражения y = (b^2 - ac) / / (a + c).

Для решения данного примера нужно ввести значения a, b и c, затем посчитать две промежуточные переменные p и q, а затем рассчитать итоговую переменную у и вывести ее.

Пример составления разветвляющегося алгоритма
Если последовательность действий или сами действия определяются некими условиями, то такой алгоритм является разветвляющимся. Рассмотрим это на примере.

Пример. Ввести два числа А и В. Если А больше или равно В, то нужно перемножить эти числа, в противном случае - сложить.

Для решения данного примера нужно ввести значения А и В, сравнить эти числа и в случае если условие выполняется рассчитать итоговую переменную Х = А х В, если же не выполняется, то рассчитать итоговую переменную Х = А + В, а затем вывести Х.

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

Пример. Рассчитать сумму чисел от 0 до К.

Для решения данного примера нужно ввести значение числа К, определить переменные: S - для суммы и i - счетчик. Далее в цикле прибавляем к S величину i, увеличиваем i на 1 и совершаем эти действия пока не достигнем К. Как только достигли К выводим значение S.

Индивидуальные задания
Задание 1. Построение линейного алгоритма
1.1. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = abc.
1.2. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его площадь поверхности S = 2(ab+bc+ac).
1.3. Даны два числа a, b, с. Найти их среднее арифметическое.
1.4. Найти произведение значений двух переменных и вывести результат на экран.
1.5. Найти длину окружности p заданного радиуса r. (P = 2πr).
1.6. Дана длина ребра куба. Найти площадь грани (S =a2).
1.7. Дана длина ребра куба. Найти площадь полной поверхности (S = 6 а2).
1.8. Дана длина ребра куба. Найти площадь объем куба (V = a3).
1.9. Составите программу для вычисления площади боковой поверхности цилиндра (S = 2πRh).
1.10. Составите программу для вычисления площадь поверхности шара (S = πD2).
Задание 2. Построение разветвляющегося алгоритма
2.1. Ввести число. Если оно неотрицательно, вычесть из него 10, в противном случае прибавить к нему 10.
2.2. Ввести два числа. Если их произведение отрицательно, умножить его на -2 и вывести на экран, в противном случае увеличить его в 3 раза и вывести на экран.
2.3. Ввести два числа. Если сумма этих чисел четная, найти произведение, в противном случае, найти частное этих чисел.
2.4. Ввести число. Если оно больше 10, разделить его на 2, если меньше или равно 10, то умножить на 5.
2.5. Ввести два числа. Если их сумма больше 100, то сумму уменьшить в 2 раза, в противном случае увеличить в 2 раза.
2.6. Ввести двухзначное число. Если сумма цифр числа четная, то увеличить число на 2, в противном случае уменьшить на 2.
2.7. Дано целое число. Если оно является положительным, то прибавить к нему 20, в противном случае вычесть из него 5. Вывести полученное число.
2.8. Ввести 2 числа. Если их произведение отрицательно, умножить его на 8 и вывести на экран, в противном случае увеличить его в 1,5 раза и вывести на экран.
2.9. Вести число. Если оно четное, разделить его на 4, если нечетное - умножить на 5.
2.10. Ввести рост человека. Вывести на экран "ВЫСОКИЙ", если его рост превышает 180 см, и "НЕ ОЧЕНЬ ВЫСОКИЙ" в противном случае.
Задание 3. Построение циклического алгоритма
3.1. Напечатать ряд из n повторяющихся чисел.
3.2. Вывести на экран числа от 2.8 до 8.8 с шагом 0,1.
3.3. Вывести на экран все целые четные числа в заданном диапазоне.
3.4. Вывести на экран все целые числа от 20 до 35.
3.5. Вывести на экран корни всех целых чисел от 15 до 70.
3.6. Вывести на экран все целые числа от а до b (значения а и b вводятся с клавиатуры, эти числа целые).
3.7. Вывести на экран все четные числа от а до b (значения а и b вводятся с клавиатуры, эти числа целые).
3.8. Вывести на экран каждое 3 целое число от а до b (значения а и b вводятся с клавиатуры, эти числа целые).
3.9. Вычислить сумму ряда S = 1+1.5+2+2.5+3+3.5+…+ 30.
3.10. Вычислить факториал заданного с клавиатуры числа.
Made on
Tilda