Как записываются алгоритмы на школьном алгоритмическом языке?
Команды школьного АЯ
Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А := В, где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.
Например, a := (b+c) * sin(Pi/4); i := i+1.
Команды ввода и вывода.
Команды если и выбор. Применяют для организации ветвлений.
Команды для и пока. Применяют для организации циклов.
Пример записи алгоритма на школьном АЯ
алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + ... + n*n
нач цел i
ввод n; S:=0
нц для i от 1 до n
S:=S+i*i
Кц
вывод "S = ", S
Кон
Пример вложенных циклов для
Вычислить сумму элементов заданной матрицы А(5,3).
Матрица А | S := 0; нц для i от 1 до 5 нц для j от 1до 3 S:=S+A[i,j] кц кц |
Пример вложенных циклов пока
Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.
i:=2; P:=1 нц пока i <= 10 j:=2 нц пока j <= 10 P:=P*A[i,j] j:=j+2 кц i:=i+2 кц |
Какие компоненты образуют алгоритмический язык?
Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика. |
Алфавит — это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций,семантика устанавливает, какие последовательности действий описываются теми или иными фразами языкаи, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Что такое стандартная функция?
При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д.
Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями, которые заранее запрограммированы и встроены в транслятор языка. |
Таблица стандартных функций школьного алгоритмического языка
Название и математическое обозначение функции | Указатель функции | ||
Абсолютная величина (модуль) | | х | | abs(x) | |
Корень квадратный | sqrt(x) | ||
Натуральный логарифм | ln x | ln(x) | |
Десятичный логарифм | lg x | lg(x) | |
Экспонента (степень числа е ~ 2.72) | ex | exp(x) | |
Знак числа x ( - 1, если х<0; 0, если x = 0; 1, если x > 0) | sign x | sign(x) | |
Целая часть х (т.е. максимальное целое число,не превосходящее х) | int(x) | ||
Минимум из чисел х и y | min(x,y) | ||
Максимум из чисел х и y | max(x,y) | ||
Частное от деления целого х на целое y | div(x,y) | ||
Остаток от деления целого х на целое y | mod(x,y) | ||
Случайное число в диапазоне от 0 до х - 1 | rnd(x) | ||
Синус (угол в радианах) | sin x | sin(x) | |
Косинус (угол в радианах) | cos x | cos(x) | |
Тангенс (угол в радианах) | tg x | tg(x) | |
Котангенс (угол в радианах) | ctg x | ctg(x) | |
Арксинус (главное значение в радианах) | arcsin x | arcsin(x) | |
Арккосинус (главное значение в радианах) | arccos x | arccos(x) | |
Арктангенс (главное значение в радианах) | arctg x | arctg(x) | |
Арккотангенс (главное значение в радианах) | arcctg x | arcctg(x) | |
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
sin ( 3.05 ) min ( a, 5) | sin ( x ) min ( a, b ) | sin ( 2 * y + t / 2 ) min ( a + b , a * b ) | sin((exp(x) + 1) ** 2) min(min(a, b), min(c, d)) |
Каждый язык программирования имеет свой набор стандартных функций.
Примеры записи арифметических выражений
Математическая запись | Запись на школьном алгоритмическом языке |
x * y / z | |
x / ( y * z ) или x / y / z | |
( a**3 + b**3 ) / ( b*c ) | |
( a[i+1] + b[i-1] ) / ( 2*x*y ) | |
( -b + sqrt(b*b - 4*a*c)) / ( 2*a ) | |
(x<0) | sign(x) * abs(x) ** (1/5) |
0.49 * exp(a*a - b*b) + ln(cos(a*a)) ** 3 | |
x/(1 + x*x/(3 + (2*x)**3)) |
Типичные ошибки в записи выражений:
5x + 1 a + sin x ((a + b)/c**3 | Пропущен знак умножения между 5 и х Аргумент x функции sin x не заключен в скобки Не хватает закрывающей скобки |
Как записываются логические выражения?
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.
Примеры записи логических выражений, истинных при выполнении указанных условий.
Условие | Запись на школьном алгоритмическом языке |
Дробная часть вещественого числа a равна нулю | int(a) = 0 |
Целое число a — четное | mod(a, 2) = 0 |
Целое число a — нечетное | mod(a, 2) = 1 |
Целое число k кратно семи | mod(a, 7) = 0 |
Каждое из чисел a, b положительно | (a>0) и (b>0) |
Только одно из чисел a, b положительно | ((a>0) и (b<=0)) или ((a<=0) и (b>0)) |
Хотя бы одно из чисел a, b, c является отрицательным | (a<0) или (b<0) или (c<0) |
Число x удовлетворяет условию a < x < b | (x>a) и (x<b) |
Число x имеет значение в промежутке [1, 3] | (x>=1) и (x<=3) |
Целые числа a и b имеют одинаковую четность | ((mod(a, 2)=0) и (mod(b, 2)=0) или ((mod(a, 2)=1) и (mod(b, 2)=1)) |
Точка с координатами (x, y) лежит в круге радиуса r с центром в точке (a, b) | (x-a)**2 + (y-b)**2 < r*r |
Уравнение ax^2 + bx + c = 0 не имеет действительных корней | b*b - 4*a*c < 0 |
Точка (x, y) принадлежит первой или третьей четверти | ((x>0) и (y>0)) или ((x<0) и (y>0)) |
Точка (x, y) принадлежит внешности единичного круга с центром в начале координат или его второй четверти | (x*x + y*y > 1) или ((x*x + y*y <= 1) и (x<0) и (y>0)) |
Целые числа a и b являются взаимнопротивоположными | a = -b |
Целые числа a и b являются взаимнообратными | a*b = 1 |
Число a больше среднего арифметического чисел b, c, d | a > (b+c+d) / 3 |
Число a не меньше среднего геометрического чисел b, c, d | a >= (b+c+d) ** (1/3) |
Хотя бы одна из логических переменных F1 и F2 имеет значение да | F1 или F2 |
Обе логические переменые F1 и F2 имеют значение да | F1 и F2 |
Обе логические переменые F1 и F2 имеют значение нет | не F1 и не F2 |
Логическая переменная F1 имеет значение да, а логическая переменная F2 имеет значение нет | F1 и не F2 |
Только одна из логических переменных F1 и F2 имеет значение да | (F1 и не F2) или (F2 и не F1) |