Алгоритмизация.pptx
- Количество слайдов: 39
Алгоритмизация Подготовила: Камышная И. Н.
Понятие алгоритма o это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату
Свойства алгоритма: o o o Дискретность, Понятность, Детерминированность, Множественность, Результативность.
Дискретность o разбиение процесса решения задачи на строгую последовательность отдельных шагов (команд, предписаний). Всякая последующая команда выполняется только после завершения предыдущей.
Понятность o ориентированность на определенного исполнителя, т. е. алгоритм может включать команды только из системы команд данного исполнителя.
Детерминированность (определенность) o один и тот же алгоритм, выполняемый разными исполнителями, должен давать один и тот же результат, т. е. алгоритм не должен содержать неоднозначно трактуемых команд.
Множественность (массовость) o возможность алгоритма обеспечивать решение всего класса задач данного типа.
Результативность o алгоритм должен давать решение задачи за конечное число шагов и при этом должен быть получен правильный ответ.
Типы алгоритмов: o линейный, o разветвляющийся, o циклический.
Основы языка программирования BASIC. Символы языка. o o o Символы: буквы – латинские строчные и прописные, буквы русского алфавита допустимы только в текстовых константах и комментариях; цифры – только арабские от 0 до 9; знаки арифметических операций: сложение (+), вычитание (-), умножение (*), деление (/), возведение в степень (^ ); знаки логических операций: n a OR b – «или» , логическое сложение, равно «Истина» , если истинно a или b a AND b– «и» , логическое умножение, равно «Истина» , если и a и b истинны a XOR b– «исключающее или» , равно «Истина» , если истинно только a или только b, NOT b логическое отрицание; n n n a>b (больше), a= b (больше или равно), a=b (равно) a<>b (не равно); n n n o o знаки операций отношения: разделители – ограничители: знак операции сцепления - +; встроенные, стандартные функции языка
Константы и переменные o o Константы – «слова» текста программы, интерпретирующиеся как числа (например, 12 или 13. 4, обратите внимание на десятичный разделитель) или строки, например, “Строка”. Константы бывают числовые, текстовые (строковые) и логические. Переменная – это величина, которая в процессе выполнения программы может изменять свое значение, которое хранятся в ячейки памяти. Чтобы обратиться к ячейке памяти нужно в программе указать ее имя. Имя переменной (идентификатор )– это имя ячейки памяти. Идентификаторы могут состоять только из букв латинского алфавита, цифр (цифра не первая), символов подчеркивания. Прописные и строчные буквы считаются одинаковыми. Значением переменой является константа. Переменные, имена которых заканчиваются на знак $, содержат символьные значения, а заканчивающиеся на % (например, К%), содержащих только целые значения.
Комментарии o o o Оператор – это запись действия на языке программирования. В результате выполнения оператора в ячейку памяти записывается значение, или изменяется ход выполнения программы, или происходит вызов подпрограммы, или иные действия. Комментарии не вызывают никаких действий в программе. Компилятор игнорирует их при создании программного модуля. Комментарии начинаются с букв REM или с символа ‘ (апостроф), причем, REM нужно писать только в начале строки, а апостроф можно применить и после оператора, например: REM начало программы Или A=St*Days ‘ расчет стоимости тура. Строки программы могут быть пронумерованы, это бывает полезно при нелинейной программе
Ниже я приведу таблицу написания некоторых функций. Обычная запись sin x cos x ex На Qbasic Sqr(x) Abs(x) Sin(x) Cos(x) Exp(x)
Пример использования операторов o CLS o REM программа считающая сумму двух чисел o nomer 1 = 5 o nomer 2 = 3 o symma = nomer 1 + nomer 2 o PRINT “Число 1 =”; nomer 1 o PRINT “Число 2 =”; nomer 2 o PRINT “Сумма =”; symma o END
Пример использования операторов o o o o CLS REM Площадь прямоугольника INPUT a INPUT b S=a*b PRINT s END
Линейный алгоритм o Алгоритм линейной структуры – алгоритм, в котором команды выполняются последовательно друг за другом в естественном порядке и независимо от каких бы то ни было условий. o Для записи линейных программ используются операторы: o ввода; вывода; присваивания; конца программы.
Пример линейного алгоритма Начало ввод Приветствие”, Р$ ввод “Форма обращения”, О$ ввод “Имя”, NN$ XX$ = P$+”, ”+O$+NN$ вывод ХХ$ Конец
Словесное описание алгоритма: o Ввести значения стоимостей проезда, проживания и питания в сутки, страховки S 1, S 2, S 3, S 4; o Ввести значение продолжительности тура D; o Вычислить общую стоимость тура и присвоить результат переменной SS; o Вывести полученный результат с пояснительным текстом.
Нарисуем блок схему алгоритма Начало ввод S 1, S 2, S 3, S 4 ввод “На сколько дней”, D SS = S 1+(S 2+S 3)*D+S 4 Вывод “Стоимость тура на “D”дней” SS Конец
Программа: o INPUT “Введите стоимости проезда, проживания, питания, страховки”, S 1, S 2, S 3, S 4 o INPUT “На сколько дней”, D o SS=S 1+(S 2+S 3)*D+S 4 o PRINT “Стоимость тура на ”, D, “дней ”, SS o END
Алгоритм с ветвлением o На практике редко удается представить решение задачи в виде алгоритма линейной структуры. Практически всегда в зависимости от какихлибо промежуточных результатов или введенных данных вычисление осуществляется либо по одним, либо по другим формулам, т. е. в зависимости от выполнения некоторого логического условия вычислительный процесс осуществляется по одной или другой ветви. o Алгоритм такого вычислительного процесса называется алгоритмом ветвящейся структуры.
Алгоритм с ветвлением o Важным для составления программ является сравнение: чисел, условий, значений и т. д. o За сравнение в Qbasic отвечает оператор - IF …. THEN … ELSE o Этот оператор переводится следующим образом: o If (если) o THEN (тогда) o ELSE (иначе) o А работает он так: o IF условие THEN действие 1 ELSE действие 2 o Если выполняется условие тогда действие 1 иначе действие 2
Словесное описание алгоритма: o o o Примером такого алгоритма может служить простейший алгоритм проверки правильности ввода пароля, например, « 36 w 54» . вводится пароль Р$; проверяется равенство введенного пароля заданному значению; если пароль введен верно, то выводится сообщение «Здравствуйте» и начинается выполнение программы, защищенной паролем; если пароль введен неверно, то выводится сообщение “Пароль неверен!”, а защищенная паролем программа выполняться не будет.
Нарисуем блок схему алгоритма Начало ввод “Пароль? ”, Р$ P$=“ 39 W 54 ” Вывод “Пароль еверен!” Вывод “Здравствуйте! ” Программа Конец
Программная реализация ветвящегося алгоритма o INPUT “Пароль!”, P$ o If P$=” 39 w 54” THEN o Print “Пароль неверен! Программа выполняться не будет!”: STOP o END IF o PRINT “Здравствуйте» o <<Здесь может быть любая программа>> o END
Синтаксис условного оператора IF … THEN …ELSE o IF условие THEN оператор 1 ELSE оператор 2, o где условие – логическое выражение, оператор 1 – оператор или группа операторов, которые будут работать в случае, если логическое выражение истинно, оператор 2 - оператор или группа операторов, которые будут работать в случае если логическое выражение ложно. o Краткая форма оператора IF: o IF условие THEN оператор o здесь при невыполнении условия управление передается строке, следующей за IF; если же условие выполняется то работают операторы, записанные после слова THEN в той же строке.
Синтаксис условного оператора IF … THEN …ELSE o o o Блок- IF Синтаксис: IF условие THEN … оператор1 …… оператор N ELSE … оператор2 …. оператор. M END IF
Синтаксис условного оператора IF … THEN …ELSE o STOP – оператор логического конца программы. Им можно воспользоваться в том случае, когда программа должна быть завершена досрочно.
Циклический алгоритм o o o Часто при решении задач приходится многократно вычислять значения по одним и тем же математическим зависимостям для различных значений входящих в них величин или повторять какие-то иные действия. Такие многократно повторяемые участки вычислительного процесса называются циклами. Цикл – это многократное повторение одних и тех же операций. Тело цикла – это операторы, которые многократно повторяются в процессе выполнения цикла. Параметр цикла – Это величина, которая меняет свое значение при каждом входе в цикл. Использование циклов позволяет существенно сократить схему алгоритма и длину соответствующей ей программы. Различают циклы с заданным и с неизвестным числом повторений (шагов). К последним относятся итерационные циклы, характеризующиеся последовательным приближением к искомому значению с заданной точностью.
Циклический алгоритм o Для организации цикла необходимо выполнить следующие действия: o перед циклом задать начальные значения переменных, изменяющихся в цикле; o изменять значения этих переменных перед каждым новым повторением цикла по заданным формулам; o проверять условие окончания или повторения цикла; o управлять циклом, т. е. переходить к его началу, если он не закончен, или выходить из него по окончании. Последние три функции выполняются многократно.
Циклический алгоритм o o o Цикл с параметром: FOR k = k 1 TO k 2 STEP s ………………. . NEXT k k – Параметр цикла. k 1 – начальное значение параметра. k 2 – конечное значение параметра. s – Величина, которая показывает на сколько измениться параметр цикла при каждом входе в цикл. Если s > 0, то k 1 <= k 2 --- Если s < 0, то k 1 >= k 2 k 1, k 2, s – любые числа. Если s = 1, то заголовок может выглядеть следующим образом: FOR k = k 1 TO k 2
Виды циклических алгоритмов условие нет да тело цикла к следующему за циклом оператору цикл с предусловием – цикл «пока» IF условие Then оператор : GOTO метка Следующий оператор
Есть два способа записи: o o o o I) 1 S IF NOT (p) THEN 1 выход из цикла II) DO (тело цикла) LOOP WHILE (условие)
Пример задачи o Через сколько дней боксер похудеет со 100 кг до 80, если каждый день он сбрасывает 1% своего веса.
2 способа записи: o o o o o CLS s = 100: d = 0 1 d=d+1 s = s – s * 0. 01 IF NOT (s <= 80) THEN 1 PRINT d END Значит, s – это вес боксера, d – это число дней. Сначала она прибавит один день к нашей переменной d. Затем отнимет от веса боксера 1%, после этого она проверит условие, если условие не выполнилось, то цикл начнется заново (1 d = d + 1) и так пока не выполниться условие. Условие записывается с NOT, то есть записи: s >= 80 и NOT (s <= 80) одинаковы. И читается это так: s больше или равно 80. CLS s = 100 d=0 Do d=d+1 s = s – s * 0. 01 LOOP WHILE NOT (s <=80) PRINT d END
Виды циклических алгоритмов тело цикла нет услов ие да к следующему за циклом оператору 2) цикл с постусловием цикл «повторять… до» WHILE условие тело цикла WEND
Цикл “пока” o WHILE условие o (тело цикла) o WEND o Пока выполняется условие, выполняется тело цикла.
Пример задачи o o o o o CLS s = 100: d = 0 WHILE s > 80 d=d+1 s = s – s * 0. 01 WEND PRINT d END Здесь, наоборот сначала проверяется условие, если оно выполняется то, выполняется тело цикла, а если не выполняется, то происходит выход из цикла.
Виды циклических алгоритмов x=x 0, xk, h тело цикла к следующему за циклом оператору 3) счетный цикл FOR x=xo TO xk [STEP h] Тело цикла NEXT [x]