Переменные
Напишем программу, которая выполняет сложение двух чисел:
1) запрашивает у пользователя два целых числа;
2) складывает их;
3) выводит результат сложения.
Программу на псевдокоде (смеси русского и школьного алгоритмического языков) можно записать так:
алг Сумма
нач
ввести два числа
сложить их
вывести результат
кон
Компьютер не может выполнить псевдокод, потому что команд «ввести два числа» и ей подобных нет в его системе команд. Поэтому нам нужно «расшифровать» все такие команды через операторы языка программирования.
В отличие от предыдущих задач здесь требуется хранить данные в памяти. Для этого используют переменные.
Переменная — это величина, которая имеет имя, тип и значение. Значение переменной может изменяться во время выполнения программы.
Переменная определяет область памяти, где хранится только одно значение. При записи в неё нового значения «старое» стирается, и его уже никак не восстановить.
Переменные в программе необходимо объявлять 1. При объявлении указывается тип переменной и её имя (идентификатор). Значение переменной сразу после объявления неопределённое: переменной выделяется некоторая область памяти, и там могло быть до этого записано любое число.
Некоторые языки, например язык Си, позволяют записывать в переменную значение другого типа, но вся ответственность за результат ложится на программиста.
Вот так объявляются целочисленные переменные (в которых могут храниться только целые значения) с именами а, b и с:
цел а, b, с var а, b, с: integer;
В языке Паскаль описание переменных начинается с ключевого слова var, после него записывают список переменных и в конце через двоеточие — их тип, в данном случае целочисленный (англ, integer).
Имена переменных строятся по тем же правилам, что и имена программ. В языке Паскаль можно использовать в именах латинские буквы (строчные и заглавные буквы не различаются), цифры (но имя не может начинаться с цифры, иначе транслятору будет сложно различить, где начинается имя, а где — число) и знак подчёркивания «_».
В школьном алгоритмическом языке в именах разрешены кроме перечисленных символов ещё пробелы и русские буквы, причём строчные и заглавные буквы различаются (поэтому х и X — это разные имена переменных).
Желательно давать переменным «говорящие» имена, чтобы можно было сразу понять, какую роль выполняет та или иная переменная.
Тип переменной нужен для того, чтобы:
• определить область допустимых значений переменной;
• определить допустимые операции с переменной;
• определить, какой объём памяти нужно выделить переменной и в каком формате будут храниться данные (вспомните, что целые и вещественные числа хранятся в компьютере по-разному, см. главу 4);
• предотвратить случайные ошибки; например, при попытке записать символ в целую переменную выдаётся сообщение об ошибке 2.
2 Некоторые языки, например язык Си, позволяют записывать в переменную значение другого типа, но вся ответственность за результат ложится на программиста.
В алгоритмическом языке можно при объявлении задать начальные значения переменных:
цел а, b=1, с=55
Значение переменной а осталось неопределённым.
Большинство трансляторов Паскаля автоматически заполняют нулями все переменные основной программы, однако лучше не надеяться на это и явно задавать начальные значения всех переменных.
Приведём полную программу сложения двух чисел:
Оператор ввод (в Паскале — процедура read) предназначен для ввода данных (например, с клавиатуры).
Оператор, содержащий символы «:=», — это оператор присваивания, с его помощью изменяют значение переменной. Он выполняется следующим образом: вычисляется выражение справа от символов «:=», а затем результат записывается в переменную, записанную слева от символов «:=». Поэтому, например, оператор
i:=i+l i:=i+1;
увеличивает значение переменной i на 1.
У приведённой выше программы сложения чисел есть два недостатка:
1) перед вводом данных пользователь не знает, что от него требуется (сколько чисел нужно вводить и каких);
2) результат выдаётся в виде числа, которое означает неизвестно что.
Хотелось бы, чтобы диалог программы с пользователем выглядел так:
Введите два целых числа: 2 3
2 + 3 = 5
Подсказку для ввода вы можете сделать самостоятельно. При выводе результата ситуация несколько усложняется, потому что нужно вывести значения трёх переменных и два символа: «+» и «=». Для этого строится список вывода, элементы в котором разделены запятыми:
вывода, '+', b, '=',с write(a, '+', b, ’=',с);
Обратите внимание, что имена переменных записаны без апострофов.
В принципе можно было бы обойтись и без переменной с, потому что элементом списка вывода может быть арифметическое выражение, которое сразу вычисляется и на экран выводится результат:
вывод а, '+', b, '=', a + b write (а, '+', b, '=', а + b);
В обоих языках (в среде КуМир — начиная с версии 2.0) можно использовать форматный вывод: после двоеточия указать общее количество знакомест, отводимое на число. Например, программа
а := 123 а := 123;
вывод а:5 write ( а:5 );
выведет значение целой переменной а, заняв ровно 5 знакомест:
123
Поскольку само число занимает только 3 знакоместа, перед ним выводятся два пробела, которые здесь мы обозначили как « ».
Следующая страница Вопросы и задания