Одночленом называется произведение двух или нескольких сомножителей, каждый из которых есть либо число, либо буква, либо степень буквы. Например, $2d, a^3b, 3adc, -4x^2y^3 $ — одночлены. Отдельно взятое число или отдельно взятая буква тоже может рассматриваться как одночлен.
Абсолютной величиной (или абсолютным значением) отрицательного числа называется положительное число, получаемое от перемены его знака $(-)$ на обратный $(+)$. Абсолютная величина $-5 $ есть $+5 $, т.е. $5$. Абсолютной величиной положительного числа (а также числа $0$) называется само это число.
Знак абсолютной величины – две прямые черты, в которое заключается число, абсолютная величина которого берётся. Например, $|-5| = 5, |+5| = 5, |0| = 0$.
Книга "Автоматический синтаксический анализ", автор Дж. Фостер, 1970 год.
В параграфе 4.1 рассматривается алгоритм разбора "сверху вниз" для грамматики
$$
S\ \mapsto\ T\ |\ S+T,
$$
$$
T\ \mapsto\ ид\ |\ ид\times T.
$$
Здесь "ид" -- это идентификатор (как имя переменной). Мы будем предполагать, что он может состоять из букв, цифр и знаков нижнего подчёркивания, и обязан начинаться с буквы.
Функция tokenizer() строит по входной строке массив с последовательностью слов.
Условие: Дано некоторое число длиной от 1 до 5 цифр (у нас это число 3567) - вывести его цифры в обратном порядке.
Примечание: Вроде все работает при любых значениях, вот только $num можно сделать максимально 9-тизначным. Если больше, все крашится. Подскажите, почему так происходит?
<?php
$num = 3567; // задаем число
$arr = str_split($num, 1); // разбиваем на элементы как строку, с шагом 1 и формируем массив
$count = count($arr); // считаем количество элементов в массиве
$i = 1;
while ($i <= $count) { // $count применяем в качестве ограничителя по количеству интераций
echo $num % 10, "<br>"; // выводим крайнее число - остаток от деления на 10
$num /= 10; // число для следующей интерации
$i++;
}
?>
Условие: Задать массив из 7-ми элементов через предварительное описание типа, заполнить его случайными значениями в одном цикле, а в другом цикле вывести эти значения на экран.
Пользователь вводит два целых числа A и B. При введении нуля, сообщить об ошибке и закончить программу. Если A четное, то делите это число в цикле на 2 до тех пор, пока оно делится, выводя каждый промежуточный результат, а если нечётное, то умножайте A в цикле на 3 до тех пор, пока результат не станет больше B и его выводите.