1 2 /MOD
Ok ( [7].. 4294967295(-1) 0 1 1 0 ) \ остаток от деления 1/2 и целая часть 1/2
Вы можете сказать программирование на питоне – гораздо богаче, возможностями и будете правы. Но Форт быстрее и в качестве первого языка программирования гораздо проще и легче его усвоить, а самое главное понятнее. Учить программирование на паскале, на мой взгляд уже не актуально. Хотя он и хорош для изучения различных алгоритмов, но это уже не современный язык программирования, со множеством избыточных конструкций и синтаксиса.
Приведем примеры программирования на SP-Forth.
: ^2 ( A -> A^2 ) DUP * . ; \ возведение числа в квадрат
: ^3 ( A -> A^3 ) DUP DUP * * . ; \ возведение числа в куб
: ^4 ( A -> A^4 ) DUP * DUP * . ; \ возведение числа в четвертую степень
DUP – это слово которое просто дублирует число на вершине стека.
Возведём 5 в квадрат, для этого наберём на клавиатуре:
5 ^2
25 Ok
Получаем правильный ответ. Копировать код нужно аккуратно, так при копировании первого слова, возведения в квадрат, получаем сообщение об ошибке
: ^2 ( A -> A^2 ) DUP * . ;\ возведение числа в квадрат
^ -2003 WORD OR FILE NOT FOUND
При «Копи пасте» куда-то делись символы табуляции между «;» и комментарием, вследствие видим сообщение об ошибке, из-за нарушения синтаксиса. Наверное, это особенность системы.
Также, вместо ^2, можно слово назвать **2, в стиле python:
: **2 ( A -> A^2 ) DUP * . ; \ возведение числа в квадрат
5 **2
25 Ok
В итоге получаем тот же ответ, но стилистика программы изменилась.
Для начала этого достаточно. Далее при решении конкретных задач, в среде программирования SP-Forth, процесс станет более понятным и осознанным.
BEGIN 1-10
Начать нашу практику программирования мы будем с задач из книги М. Э. Абрамян "1000 задач по программированию Часть I Скалярные типы данных, управляющие операторы, процедуры и функции" 2004. Автор пишет, что получить задачник можно по e-mail: [email protected] или за подробностями обращайтесь к веб ресурсу ptaskbook.com. Текст задач я приводить не буду, дабы исключить плагиат. Думаю, пояснения к коду с описанием слов (функций-программ) должно быть достаточно, в противном случае обращайтесь к первоисточнику за текстом задач.
Пример 1. Итак, начнем, (для простоты вначале мы будем рассматривать все входные параметры как целые числа, далее мы перепишем код для вещественных аргументов, где об этом указано в условии задачи). Вот и решение первой задачи:
: B1 ( A -> P ) 4 * ; \ P=4*A
B – это сокращение от BEGIN, что обозначает первую группу заданий (мы и далее будем использовать такой вид названий в последующих группах заданий), затем слитно пишется номер примера. Сразу после имени в скобках пишется комментарий стековой нотации. Так принято в Форте. В данном случае Слово-функция B1 берет один параметр A (четырехбайтовое целое число и оставляет другое того же типа). A – сторона квадрата – вход функции, P – его СКАЧАТЬ