Понятие алгоритма. Виды алгоритмов
Аннотация: Алгоритм является базовым понятием для тех, кто хочет начать программировать на любом языке программирования. Любая задача может быть формализована алгоритмически. Чтобы понять, с чего начать, рассмотрим основные виды алгоритмов. Цель данной лекции – ознакомить студентов с понятием алгоритма; показать, что такая абстрактная вещь как алгоритм окружает нас в повседневной жизни.
Существует несколько определений понятия алгоритма. Приведем два самых распространенных.
Алгоритм – последовательность чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.
Алгоритм – это совокупность действий, приводящих к достижению результата за конечное число шагов.
Вообще говоря, первое определение не передает полноты смысла понятия алгоритм. Используемое слово «последовательность» сужает данное понятие, т.к. действия не обязательно должны следовать друг за другом – они могут повторяться или содержать условие.
- Дискретность (от лат. discretus — разделенный, прерывистый) – это разбиение алгоритма на ряд отдельных законченных действий (шагов).
- Детерминированность (от лат. determinate — определенность, точность) — любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, алгоритм проезда к другу, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, скажем, три.
- Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
- Массовость – один и тот же алгоритм можно использовать с разными исходными данными.
- Результативность – алгоритм должен приводить к достоверному решению.
Основная цель алгоритмизации – составление алгоритмов для ЭВМ с дальнейшим решением задачи на ЭВМ.
- Любой прибор, купленный в магазине, снабжается инструкцией по его использованию. Данная инструкция и является алгоритмом для правильной эксплуатации прибора.
- Каждый шофер должен знать правила дорожного движения. Правила дорожного движения однозначно регламентируют поведение каждого участника движения. Зная эти правила, шофер должен действовать по определенному алгоритму.
- Массовый выпуск автомобилей стал возможен только тогда, когда был придуман порядок сборки машины на конвейере. Определенный порядок сборки автомобилей – это набор действий, в результате которых получается автомобиль.
Существует несколько способов записи алгоритмов. На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (запись на естественном языке);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
- графическая (изображения из графических символов – блок-схема);
- программная (тексты на языках программирования – код программы).
Рассмотрим подробно каждый вариант записи алгоритмов на примере следующей задачи. Требуется найти частное двух чисел.
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Ответ при этом получает человек, который выполняет команды согласно словесной записи.
- задать два числа, являющиеся делимым и делителем;
- проверить, равняется ли делитель нулю;
- если делитель не равен нулю, то найти частное, записать его в ответ;
- если делитель равен нулю, то в ответ записать «нет решения».
Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. Ответ при этом получает человек, который выполняет команды согласно псевдокоду.
Приведем основные управляющие структуры псевдокода в табл. 1.1.
Основные виды алгоритмов. Их реализация в программировании на языке Java.
статья
Основные виды алгоритмов. Их реализация в программировании на языке Java.
Скачать:
Предварительный просмотр:
Урок на тему: Основные виды алгоритмов. Их реализация в программировании на языке Java.
- Разобрать основные типы алгоритмов.
- Научиться применять их при написании кода на языке Java.
В данном уроке мы в общем виде рассмотрим виды алгоритмов, изучим их свойства, а также приведем пример в Java.
Слово алгоритм имеет разные определения.
- Алгоритм – последовательность (или цепочка) чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.
Так же нужно отметить, что действия не обязательно должны следовать друг за другом: они могут повторяться и (или) содержать условие.
- Алгоритм – это совокупность действий, приводящих к достижению результата за конечное число шагов.
- Дискретность (от лат. discretus — разделенный, прерывистый) – это разбиение алгоритма на ряд отдельных законченных действий (шагов).
- Детерминированность (от лат. determinate — определенность, точность) — любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, алгоритм поездки на поезде, если к вокзалу подходят поезда разных маршрутов, то в алгоритме необходимо указать конкретный номер платформы.
- Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
- Массовость – один и тот же алгоритм можно использовать с разными исходными данными.
- Результативность – алгоритм должен приводить к достоверному решению.
Основная цель алгоритмизации – составление алгоритмов для ЭВМ с дальнейшим решением задачи на ЭВМ.
Существует несколько способов записи алгоритмов. На практике наиболее распространены следующие формы представления алгоритмов:
словесная (запись на естественном языке);
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
графическая (изображения из графических символов – блок-схема);
программная (тексты на языках программирования – код программы).
Одни способы применяются чаще других. Наиболее распространенным является программная форма представления алгоритмов.
Различают три основных вида алгоритмов:
Линейный алгоритм – это алгоритм, в котором действия выполняются однократно и строго последовательно, т.е. все действия следуют одно за другим, без условий и повторений.
Пример 1. Напечатать на экране на первой строке «Привет мир» и перейти на новую строчку. Затем напечатать на текущей строчке «Привет всем».
public static void main(String[] args)/>
Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
В языке Java ветвление осуществляется за счет применения условного оператора if_else, а также применением тернарного оператора.
Пример 2. Вводиться число a. Затем проверяется условие a > 0. Если условие верно, программа печатает «Ваше число положительное», иначе печатает «Ваше число не положительное»
import java.util.Scanner; // подключение к библиотеке
public static void main(String[] args)/>
Scanner sc = new Scanner(System.in); // инициализация инструмента ввода
int a = sc.nextInt(); // чтение и сохранение в переменную введенного числа
System.out.println(«Ваше число положительное»); //печать (если верно)
System.out.println(«Ваше число не положительное»); //печать (иначе)
Пример 3. То же что и Пример 2, но для тернарного оператора.
import java.util.Scanner; // подключение к библиотеке
public static void main(String[] args)/>
Scanner sc = new Scanner(System.in); // инициализация инструмента ввода
int a = sc.nextInt(); // чтение и сохранение в переменную введенного числа
System.out.println((a > 0) ? «Ваше число положительное»
: «Ваше число не положительное»);
Циклический алгоритм – это алгоритм, команды которого повторяются некое количество раз подряд.
В языке Java несколько базовых конструкций цикла: постусловный цикл (while), предусловный цикл (do_while) и цикл со счетчиком (for).
Пример 4. Программа умножает числа от 1 до 10.
public static void main(String[] args)
Пример 5. Программа суммирует числа от 1 до 10.
public static void main(String[] args)
Пример 6. Программа суммирует квадраты чисел от 1 до 10.
public static void main(String[] args)
Также эти виды алгоритмов могут применятся совместно в зависимости от заданной задачи. Покажем это в следующем примере.
Пример 7. Программа считает кубы чисел от 1 до числа, введенного пользователем. Число, введенное пользователем, не должно выходить за рамки диапозона от 1 до 10.
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println(«Введено неправильное число»);
System.out.println(«Квадрат » + i + » равен » + (i * i * i));