210 likes | 434 Views
Алгоритм. Мухаммед аль - Хорезми ( IX век н.э.). Описание алгоритма. Алгоритм – совокупность четко определенных правил для решения задачи за конечное число шагов. Примеры алгоритмов : рецепт приготовления блюда, решение квадратного уравнения, правила по русскому языку и др.
E N D
Алгоритм Мухаммед аль - Хорезми (IX век н.э.)
Описание алгоритма Алгоритм– совокупность четко определенных правил для решения задачи за конечное число шагов. Примеры алгоритмов : рецепт приготовления блюда, решение квадратного уравнения, правила по русскому языку и др. АЛГОРИТМИЗАЦИЯ – процесс разработки алгоритма (плана действий) для решения задачи.
ОСНОВНЫЕ СТРУКТУРЫ АЛГОРИТМОВ: • линейные алгоритмы • разветвляющиеся алгоритмы • циклические алгоритмы
ДИСКРЕТНОСТЬ РЕЗУЛЬТАТИВНОСТЬ АЛГОРИТМ МАССОВОСТЬ КОНЕЧНОСТЬ СВОЙСТВА АЛГОРИТМОВ ДЕТЕРМИНИРОВАННОСТЬ (ОДНОЗНАЧНОСТЬ)
ДИСКРЕТНОСТЬ (от лат.discretus –разделенный, прерывистый)., указывает, что любой алгоритм должен состоять из конкретных действий, следующих в определённом порядке. • РЕЗУЛЬТАТИВНОСТЬ требует, чтобы в алгоритме не было ошибок и каждый его шаг приводил к конкретному результату. • ДЕТЕРМИНИРОВАННОСТЬ (ОДНОЗНАЧНОСТЬ) (от лат. Determinate – определённость, точность) указывает, что любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. • МАССОВОСТЬ показывает, что один и тот же алгоритм можно использовать с разными исходными данными. • КОНЕЧНОСТЬ определяет, что каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
Исполнитель алгоритма Исполнитель – тот, кто будет выполнять алгоритм. Например: человек, автомат, компьютер, солдат. Система команд исполнителя – команды, «понятные» данному исполнителю. Формальное выполнение алгоритма – строгое выполнение последовательности действий алгоритма без понимания целей решения задачи.
Способы записи алгоритмов • Словесный • Табличный • Графический (блок- схема) • Алгоритмический язык
Основные блоки блок-схемы Блок начала и конца блок-схемы Ввод/вывод данных с/на любой носитель Ввод данных с клавиатуры Математический блок Блок вывода на печать Направление вычисления
Основные блоки блок-схемы Логический блок Вызов процедуры или функции Для циклов с параметром Для описательных комментариев или пояснительных записей в целях объяснения или примечаний
Виды алгоритмов • Линейный (последовательный) • Разветвляющийся (ветвление) • Циклический (цикл).
Линейный алгоритм • Линейный алгоритм – это набор команд, выполняемых последовательно во времени, друг за другом. • В линейных алгоритмических конструкциях используются три оператора: • оператор ввода; • оператор присваивания; • оператор вывода информации
Алгоритм программы с линейной структурой может быть представлен следующим образом: начало Ввод исходных данных Обработка (вычисления) Вывод результата конец
Оператор ВВОДА данных Вводданных – это передача исходных данных программы в оперативную память компьютера для обработки. Основные устройства ввода – клавиатура и дисковый файл Процедуры ввода с клавиатуры Read(a,b,c,d, …); - после ввода курсор остается в той же строке. ReadLn(a,b,c,d, …); - после ввода курсор переводится в начало следующей строки. где a,b,c,d,… - список ввода, содержащий имена переменных допустимых типов(integer, real, char, string). • Следует знать: • процедура ReadLnпредпочтительнее Read, т.к. полностью освобождает буфер клавиатуры – рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Процедура Read оставляет в буфере клавиатуры код клавиши <Enter>, нажатие которой завершает процесс ввода.
в одной процедуре Read или ReadLn можно записать несколько переменных. Для того, чтобы отделить их значения друг от друга, при вводе можно использовать пробел либо символ табуляции (клавиша <Tab>)или нажимать клавишу <Enter>после ввода каждого из значений • процедура ReadLn;(без переменных) обычно записывается в конце программы и служит для создания паузы, которая длится до нажатия пользователем клавиши <Enter>. В противном случае, по окончании программы окно с текстом программы закроет экран с полученными результатами; • тип данных, вводимых во время работы программы, должен соответствовать типу переменной, указанной в инструкции ввода; • в случае несоответствия введённых данных типу переменной, значение которой вводится с клавиатуры, программа завершит работу, и на экран выводится сообщение об ошибкеввода/вывода.
ВЫВОД данных Вывод данных – это передача данных после обработки из оперативной памяти на внешнее устройство (экран, принтер, файл на диске Процедуры вывода на экран Write(a,b,c,d,…); WriteLn(a,b,c,d,…); где a,b,c,d,… - список вывода • Следует знать: • процедуры Writeи WriteLnпредназначены для вывода констант различных типов, значений переменных или выражений. Число параметров – произвольно; • из констант наиболее часто выводятся строки текста (строковые константы заключаются в апострофы); • если в инструкции вывода записано выражение, то сначала оно будет вычислено, а затем выполнен вывод полученного результата; • процедура вывода WriteLnаналогична Write. Отличие заключается в том, что после вывода последней переменной из списка, курсор автоматически переходит в начало следующей строки;
инструкция WriteLn ; (без параметров) переводит курсор в начало следующей строки. Таким способом можно, например, отделять результаты работы программы друг от друга одной или несколькими пустыми строками.
Форматы вывода Для представления на экране значений целого типа • по умолчанию выделяется столько позиций экрана (разрядов), сколько требуется для записи числа • для изменения количества позиций под запись целого числа используется следующий формат вывода: • Write(a:n); • WriteLn(a:n); • где a:n– выводится десятичное представление величины a в крайние правые позиции поля шириной n. Пример: … a:=34; b:=65; WriteLn(a); WriteLn(b); WriteLn(a,b); Write(a); Write(b);WriteLn; Write(a:4); Write(b:4);WriteLn Экран: 34 65 3465 3465 _ _34_ _65
Для представления на экране значений вещественного типа • по умолчанию значение вещественного типа будет выведено в экспоненциальной форме: • Например, …a:=34.5; Write(a);… ЭКРАН: • 3.450000E+01 • для определения ширины поля вывода: • Write(a:l:d); • Write(a:l:d); • где lзадает общую ширину поля вывода; • d– местоподдробнуючасть; (l, d-константы или выражения целого типа). Пример: … a:=34.5; WriteLn(a:10:2);… _ _ _ _ _ 34.50 ЭКРАН:
Задача на линейный алгоритм Вводятся объём и масса тела. Определить плотность материала этого тела. Входные данные: V – объём тела (real); m - масса тела (real); Выходныеданные: p – плотность тела (real). Паскаль-программа Program z1; uses crt; Var V,m,p:real; BEGIN Clrscr; Write(‘Введите значения объёма и массы тела:’); ReadLn(v,m); P:=m/V; Write(‘Плотность тела объёмом’,V:7:1,’ и массой’,m:7:1,’ равна’,p:8:2); ReadLn; END. БЛОК-СХЕМА начало V,m P=m/v p конец