Величины и типы: цел, вещ, лог, сим, лит. Ввод и вывод

Разбираем пять базовых типов величин КуМира и учимся вводить и выводить данные.

Величина (переменная) в КуМире — это именованная ячейка определённого типа. Тип задаёт, что в ячейке может храниться: число, символ, строка или логическое значение.

Пять базовых типов

ТипЧто хранитПример значения
целцелое число0, -15, 2024
вещвещественное (дробное) число3.14, -0.5, 2.0
логлогическое значениеда, нет
симодин символ"A", "7", "+"
литлитера = строка (текст)"Привет"

Заметьте две детали, важные для тех, кто знает другие языки. Во-первых, логические значения называются да и нет (а не true/false). Во-вторых, дробные числа пишутся через точку: 3.14, а не 3,14. И ещё: 2.0 — это вещ, а 2 — это цел; тип важен.

Объявление переменных

Переменные объявляются в начале тела алгоритма. Несколько переменных одного типа можно перечислить через запятую:

цел год, месяц, день
вещ цена, скидка
лит имя
лог найдено

Команда ввода

Команда ввод читает значения с клавиатуры и кладёт их в переменные:

цел a, b
ввод a, b      | пользователь вводит два числа

Если ввести «10 20», то a станет 10, b станет 20. КуМир сам понимает тип: для переменной цел он ждёт целое число, для лит — строку.

Команда вывода

Команда вывод печатает значения и текст. Можно перечислять что угодно через запятую — числа, строки в кавычках, переменные и служебное нс:

цел a
a := 25
вывод "Возраст: ", a, " лет", нс
вывод "Конец", нс

Вывод:

Возраст: 25 лет
Конец

Без нс весь вывод печатался бы в одну строку. нс ставят там, где нужен перенос — обычно в конце команды вывод.

Полный пример: периметр прямоугольника

алг
нач
  цел a, b, p
  ввод a, b
  p := 2 * (a + b)
  вывод "Периметр = ", p, нс
кон

Та же программа на Python (запускаемая; значения зашиты, чтобы не требовать ввода):

a = 4
b = 6
p = 2 * (a + b)
print("Периметр =", p)

Вывод:

Периметр = 20

Логические величины

Переменная типа лог хранит да или нет. Её удобно использовать как «флажок»:

лог чётное
цел n
n := 8
чётное := mod(n, 2) = 0
вывод чётное, нс

Здесь mod(n, 2) — остаток от деления (о функциях — в следующем уроке), а = 0 даёт логический результат да или нет. На экране для да печатается слово «да».

Символы и строки

Тип сим хранит ровно один символ, лит — целую строку. И символы, и строки записываются в двойных кавычках:

сим буква
лит слово
буква := "К"
слово := "КуМир"
вывод буква, " — первая буква слова ", слово, нс

Вывод:

К — первая буква слова КуМир

Табличные величины

Когда значений много, используют таблицы (массивы). Объявляются они как тип таб с указанием границ индексов:

целтаб a[1:5]    | таблица из 5 целых, индексы от 1 до 5

Доступ к элементу — по индексу: a[1], a[2]. Таблицы пригодятся для более сложных задач; на 15.1 ОГЭ они обычно не нужны, поэтому мы вернёмся к ним позже по необходимости.

Попробуй сам

Напишите алгоритм, который вводит вещественное число r (радиус) и выводит длину окружности 2 * 3.14 * r с поясняющим текстом. Подумайте, какого типа должна быть переменная для результата.

Частые ошибки

  • Дробь через запятую: 3,14 — ошибка, нужна точка 3.14.
  • Присвоить целой переменной дробь: цел x; x := 2.5 — несовпадение типов.
  • Забыть кавычки у строки или символа.
  • Использовать true/false вместо да/нет.

Итог

  • Пять типов: цел, вещ, лог, сим, лит; плюс табличные целтаб и др.
  • Логические значения — да и нет; дроби — через точку.
  • ввод читает с клавиатуры, вывод печатает; нс переводит строку.
  • Строки и символы пишутся в двойных кавычках.
Проверьте себя
1. Как в КуМире записываются логические значения «истина» и «ложь»?
Atrue и false
B1 и 0
Cда и нет
Dистина и ложь
2. Какой тип нужно выбрать для хранения числа 3.14?
Aцел
Bвещ
Cлит
Dлог
3. Что делает команда «вывод a, b, нс»?
AЧитает a и b с клавиатуры
BПечатает значения a и b и переводит строку
CСкладывает a и b
DОбъявляет переменные a и b
Поддержать проект