КуМир - разговор с компьютером

Операции присваивания значений

Разделы:
Встроенные функции
Выражения

Алгоритмический язык имеет сходство с математическим тем, что в нём также используется понятие величины. Используются, в-основном, величины двух типов – числовые и символьные, хотя не исключены и другие типы. Числовые величины – это числа: натуральные, целые, вещественные; символьные – буквы, цифры, слова, предложения.

В информатике используется также понятие «переменная». В математике переменная – это величина, которая в рассматриваемой задаче принимает различные значения.

В информатике смысл термина «переменная» связан с возможностью хранения и обновления различных видов данных.

Переменные удобно представить в виде «почтовых ящиков» (ячеек памяти компьютера), на которые навешены ярлыки с их именами. Информация, хранимая в переменной, называется её значением.

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

Алфавит языка КуМир состоит:

  1. из букв латинских от A до Z (прописных или строчных – разницы нет);
  2. из букв кириллических от А до Я (прописных или строчных – разницы нет);
  3. цифр от 0 до 9;
  4. специальных знаков – = + - * ^ / \ % & ! # $ ( ) [ ] . , ; : | < > " _.

Имя переменной – это последовательность слов, разделенных пробелами, например, альфа бета. Также допускается разделить слова символами @ и _, например, ku@mir, альфа_бета. Имя переменной должно обязательно начинаться с буквы (А, В, С, ...; a, b, c; А, Б, В, …; а, б, в, …). За первой буквой могут идти буквы или цифры (АB, A1, ...). Переменная типа альфа-бета недопустима, т.к. символ ‘-‘ в названии переменной запрещён. Символьная переменная может содержать любой литеральный символ. Несколько символов вместе образуют слово или строку литеральных символов. Символ или строка, которая помешается в ящик, предназначенный для хранения символьной переменной, заключается в кавычки (простые, либо двойные), например, ‘a’, “y”, ‘Это я’, “Привет, как дела?”. Если строка ограничена простыми кавычками, то она не может содержать простую кавычку внутри строки. Например, строка ‘Привет’ Пока’ недопустима. Аналогичное правило действует для двойных кавычек. Например, строка “Как” дела” также недопустима.

Наш почтовый ящик имеет некоторые необычные свойства. Когда в него помещается другое значение, начальное стирается и исчезает. Оно уже не может быть восстановлено.

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

Осуществить запись значения в переменную можно несколькими способами. Первый способ состоит в использовании команды присваивания. Она имеет следующий вид:
a:=15
b:="ВАСЯ"
x:=125.5
z:=ax2 + bx + c

Обратите внимание на следующие две команды:
a:=275
b:="275"

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

Примечание. Вещественные числа на языке КуМир записываются через точку – 1.5, 3.14 и т.п. Есть и другая форма записи – показательная, например, 1.025E+2, 1.025Е-2. В привычной форме записи это выглядит так: 1.025Е+2 – 1,025х102=102,5; 1.025Е-2 – 1,025х102=0,01025.

Символы «:» и «=» записанные вместе без пробела обозначают операцию присваивания. С точки зрения языка КуМир выражение
x:=x+5
означает следующее: к числу, записанному в переменной x прибавить число 5 и полученный результат поместить в переменную x.

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

Оказывается, можно изменить значение переменной при каждом новом прогоне программы, избегая ее повторного редактирования. Для этого используется команда ввод. Эта команда действует подобно команде присваивания в том смысле, что она также записывает какое-то значение в переменную. Однако, в данном случае устанавливаемое значение переменной зависит от того, какая информация набирается на клавиатуре во время выполнения программы.

Посмотрим, как работает команда ввод с числовыми данными. Предположим, в программе имеется команда
ввод a

В тот момент, когда компьютер достигает в программе этой команды, он выводит на экран сообщение – запрос (и данном случае – знак «|») и ждёт, пока будет набрано какое-нибудь число и нажата клавиша Enter. Если вы ввели, например, число 15, то именно оно становится значением переменной a.

Таким образом, команда ввод позволяет компьютеру «останавливаться» всякий раз при выполнении программы и ждать, занесения какого-то значения в переменную.

Если с клавиатуры мы по ошибке или умышленно введём символ, недопустимый для числа, например, a3, то компьютер ответит на это сообщением об ошибке и попросит повторить ввод. Если вы попытаетесь вовсе увильнуть от ответа, то компьютер также сообщит об ошибке и снова потребует ввести правильные данные (т.е. то или иное число).

Появление знака вопроса на экране дисплея может быть не всегда понятно. Предположим, что мы решаем задачу: «Найти скорость тела при равномерном движении, если время t=5 сек, а пройденный путь S=20 м». Видим на экране знак «|». А что же вводить: значение пути или значения времени?

Помочь в данный ситуации может использование команды вывод вместе с подсказкой перед командой ввод. В рассматриваемом случае в программе нужно записать четыре команды
вывод "Время равно "
ввод t
вывод "Пройденный путь равен "
ввод S

После исполнения первой команды на экране дисплея будет
Время равно |

Ясно, что в ответ на запрос необходимо ввести значение времени, будет выполнена команда ввода в переменную t. Сходную ситуацию будем иметь и с исполнением второй команды вывода.

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

Предположим, вы хотите вывести на экран сообщение “Сегодня хорошая погода”. Сделать это можно при помощи программы из одной команды
вывод "Сегодня хорошая погода"

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

Рассмотрим еще один пример использования команды вывод.

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

Например, после того, как компьютер выполнит команду
вывод 6-4
на экран будет выведено число 2.

Операции сложения и вычитания обозначаются с помощью обычных знаков арифметических действий + и -. Что же касается знаков умножения и деления, то в КуМир для обозначения этих операций используется соответственно знаки * и /, для возведения в степень – знак **.

Примеры использования команды вывод для выполнения других операций будут рассмотрены позднее.

Команду вывод можно использовать для вывода на экран значений нескольких переменных, нескольких слов или чисел. В этом случае они обычно разделяются запятой. При выводе слов нужно иметь ввиду, что разделитель запятая не оставляет пробела между соседними значениями. Если пробел нужен, то мы сами должны его добавить. Например, после выполнения программы
a:="Миша"
b:="Иванов"
вывод a,b
на экран будет выведено
МишаИванов

Если мы слегка видоизменим третью команду программы:
вывод a," ",b
то получим то, что нужно:
Миша Иванов

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

Например, команды
вывод "A"
вывод "B"
выводят на экран
AB

в то время как команды
вывод "A",нс
вывод "B"
выводят на экран
A
B

Более коротко можно записать
вывод "A",нс,"B"

Встроенные функции

Функцию В языке КуМир полезно наглядно представлять в виде некоторого преобразователя, который может иметь несколько входов и один выход. На входы поступают значения переменных, числа, слова, на выходе получается число или слово. Данные, поступающие на входы, называются аргументами функции.

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

Функция преобразования в целое int(x)

Аргументом этой функции может быть любое число или значение числовой переменной. На выходе получается наибольшее целое число, не превосходящее значения аргумента.

Если значение аргумента положительно, то его преобразование функцией int состоит просто в отбрасывании дробной части числа. Например, если на вход int(x) поступит число 2.8, то на выходе получим просто 2. В результате выполнения программы
алг Целое число
нач
. вещ x
. цел y
. x:=2.8
. y:=int(x)
. вывод y
кон
получим:
2

В случае отрицательного значения аргумента, работа преобразователя int(x) похитрее. Так, если на вход поступит число -2.6, то на выходе будем иметь -3, поскольку именно -3 является наибольшим целым числом, меньшим -2.6.

Функция нахождения абсолютного значения abs(x)

Аргументом этой функции может быть так же любое число или значение числовой перемен¬ной. На выходе получается абсолютная величина значения на входе. Абсолютная величина числа определяется следующим образом:

Например, после выполнения программы

алг Абсолютная величина числа
нач
. вещ x
. цел y
. x:=-5.13
. y:=abs(x)
. вывод y
кон
получим:
5.13

Другие примеры встроенных функции мы рассмотрим ниже.

Выражения

Слово «выражение» в русском языке имеет несколько значений. Это может быть внешнее проявление чего-нибудь («это стихотворение ты прочитал с выражением»), внешний вид («у тебя сегодня грустное выражение лица»), оборот речи («Он не стесняется в выражениях!»).

В информатике выражение представляет собой формулу, определяющую некоторое значение. На языке Бейсик выражение записывается в форме, близкой к обычной математической записи. Оно состоит из чисел, переменных, функций, соеди¬ненных знаками арифметических действии. Выполняются операции в соответствии со следующим приоритетом: сначала вычисляются функции, затем выполняется возведение в степень, потом умножение и деление и, наконец, сложение и вычитание. Все формулы записываются в строку без подстрочных и надстрочных знаков. Не разрешается ставить подряд два знака арифметических действий, например, нельзя писать
a/-b

Нельзя также опускать знаки действий. Например, запись
6a-b
будет ошибочной. Правильная запись имеет вид:
6*a-b

Если нужно выполнить какие-либо действия с нарушением их приоритета, то необходимо использовать круглые скобки. Например,
a/(4*b-c)
В этом выражении сначала вычисляется значение знаменателя, а затем происходит вычисление дроби.

Если выражение содержит подряд стоящие операции одинакового приоритета (например, сложение и вычитание, умножение и деление), то они выполняются по порядку слева направо. Например, выражение на языке КуМир
a+b/c*d
равносильно следующей алгебраической формуле a+(b/c)d.

Если бы мы захотели получить на языке КуМир выражение, соответствующее формуле a+(b/(c/d)), то можно было бы использовать скобки
a+b/(c*d)
или записать в виде
a+b/c/d

Обратите еще раз внимание на типичные ошибки при записи выражений.

  1. Нельзя писать два знака операций подряд. Неправильная запись: a*-5
    Правильная запись:
    a*(-5)
  2. Нельзя опускать знак умножения. Например, в школьной алгебре запись 3x является вполне законной, на языке же КуМир мы должны писать
    3*x
    иначе компьютер выдаст сообщение об ошибке. Выражение
    x3
    он воспримет как имя некоторой переменной.

Наверх