Начало работы

Что такое программа

Разберите короткий расчёт и узнайте, как значения, имена и функция создают результат программы.

Прочитайте короткую программу, которая считает, сколько минут осталось на учёбу. Вы узнаете, откуда берётся её вывод, и сможете предсказать результат при изменении входного значения.

Для чтения не нужны опыт программирования или установленные инструменты. Если вы уже пишете программы, откройте Переход с других языков или Первую программу.

Программа для расчёта времени

Программа состоит из кода, который компьютер может выполнить. Этот пример вычитает потраченное время из запланированного.

TOPAZ
function осталосьМинут(всего: int, потрачено: int) -> int {
    всего - потрачено
}

let план = "study plan"
let всего = 45
let потрачено = 20

print("{план}: {осталосьМинут(всего, потрачено)} minutes left")

При запуске программа выводит на экран следующую строку.

Вывод
study plan: 25 minutes left

Она получает 25, вычитая 20 из 45. Английский текст сообщает, что в учебном плане осталось 25 минут.

Найдите значения и имена

45, 20 и "study plan" являются значениями, то есть данными, которые использует программа. С числами можно выполнять вычисления. Текст записывается в кавычках.

Имя позволяет обратиться к значению позже. Строка let всего = 45 даёт числу 45 имя всего. Следующая строка даёт числу 20 имя потрачено. Имя план хранит текст "study plan".

В последней строке print выводит текст на экран. Внутри кавычек на место {план} подставляется значение с именем план. Вторая пара фигурных скобок подставляет результат вычисления.

Проследите работу функции

Функция объединяет код, который можно вызвать по имени. Первые три строки определяют функцию осталосьМинут. Вызов осталосьМинут(всего, потрачено) в последней строке передаёт ей числа 45 и 20.

Внутри функции выражение всего - потрачено вычитает второе число из первого. Это последнее выражение функции, поэтому его значение становится результатом. Здесь получается 25. Та же функция может вычислить другой результат, если передать ей другие значения.

Обозначение int в первой строке означает целое число, у которого нет дробной части. Тип описывает, какие значения принимает программа. Записи всего: int и потрачено: int требуют целочисленных входных значений. Запись -> int указывает, что функция возвращает целое число.

Эта функция вычисляет результат из двух переданных чисел. Чтобы проследить расчёт, достаточно прочитать её входные значения и вычитание.

Проверьте и запустите файл

При запуске компьютер выполняет действия, записанные в коде. Чтобы попробовать пример, установите Топаз по инструкции из Первой программы и сохраните код в файле what-a-program-is.tpz. Откройте терминал в папке с этим файлом и введите команды по порядку.

BASH
topaz check what-a-program-is.tpz
topaz run what-a-program-is.tpz

Для этого файла команда check сообщает types-ok и resolve-ok. Команда run выводит строку study plan: 25 minutes left, показанную выше.

Значения, передаваемые функции, называются аргументами. В вызове осталосьМинут(всего, потрачено) первый аргумент называется всего, а второй потрачено.

topaz check находит несовпадения типов, неизвестные имена и пропущенные аргументы до запуска. Вызов осталосьМинут(всего) без второго аргумента вызывает сообщение об ошибке в этом месте. Проверка не определяет, соответствует ли логика программы вашему замыслу. Проверяйте результаты на входных данных с известным ответом.

Если вы попробовали вызов с одним аргументом и получили эту ошибку, верните потрачено на место второго аргумента. Снова проверьте файл перед запуском.

Попробуйте

Замените let потрачено = 20 на let потрачено = 50, оставив остальные строки без изменений. Предскажите вывод, прежде чем снова запускать файл.

Показать ответ

Программа выведет study plan: -5 minutes left, потому что 45 - 50 равно -5. Эта программа допускает отрицательный результат. Если после окончания времени нужна другая реакция, запишите это правило в коде.

Готовы двигаться дальше, если

Вы можете найти значения 45 и 20, проследить их передачу в осталосьМинут и объяснить, почему получается 25. Вы также различаете команду проверки и команду запуска файла.

Продолжайте с Первой программы, чтобы создать и запустить собственный файл.