Информатика, 6 классПеременная4 минуты чтения
Переменная
Программе нужно где-то держать числа, с которыми она работает. Для этого заводят переменную: место в памяти, у которого есть имя.
6классИмя, значение, тип
Имя переменной придумывает программист. По нему он обращается к значению, не зная, в каком именно месте памяти оно лежит.
Значение это то, что сейчас в ней хранится. Оно меняется сколько угодно раз.
Есть ещё тип: целое число, дробное, текст, истина или ложь. Он определяет, что можно делать со значением.
Три стороны переменной
- Имякак обращаемся, например «сумма»
- Значениечто лежит сейчас, например 42
- Типчем является, например целое число
- Местоадрес в памяти, о нём знает система
Присваивание
Запись «сумма равно 42» означает не равенство, а действие: положить в переменную число сорок два.
Читают её справа налево. Сначала вычисляется то, что справа, потом результат кладётся в переменную слева.
Поэтому строка «счётчик равно счётчик плюс один» не бессмыслица. Взяли старое значение, прибавили единицу, положили обратно.
В математике
В программе
Знак равенства утверждает
Знак присваивания действует
x равно x плюс 1 невозможно
счётчик равно счётчик плюс 1 обычное дело
Значение постоянно
Значение меняется по ходу
Хорошие имена
Имя должно говорить, что внутри. «Сумма покупок» понятнее, чем «s», а «количество учеников» лучше, чем «n2».
Короткие имена уместны для счётчиков цикла: буква i всем понятна и живёт три строки.
Имена пишут без пробелов, обычно соединяя слова или разделяя подчёркиванием. Начинать имя с цифры нельзя.
Обмен значениями
Классическая задача: поменять содержимое двух переменных местами. Прямое присваивание не работает: первое же действие затирает старое значение.
Спасает третья переменная. Кладём туда первое значение, потом переносим второе в первую, а сохранённое во вторую.
Приём выглядит очевидным только после того, как однажды на нём споткнёшься.
Что лежит в переменных на каждом шаге
| Шаг | a | b | t |
|---|---|---|---|
| В начале | 5 | 9 | пусто |
| t получает a | 5 | 9 | 5 |
| a получает b | 9 | 9 | 5 |
| b получает t | 9 | 5 | 5 |
Меняем местами a и b
- 1Заводим временную переменную t
- 2Кладём в t значение a
- 3Кладём в a значение b
- 4Кладём в b значение t
- 5Теперь значения поменялись местами
Тип имеет значение
Сложение двух чисел даёт число, а сложение двух текстов их склеивает. Одна и та же запись работает по-разному.
Отсюда частая ошибка: число, прочитанное с клавиатуры, приходит текстом. Сложив «2» и «3» как текст, получишь «23», а не пятёрку.
Поэтому введённое переводят в число явно. В школьных языках для этого есть отдельная команда.
Целое число в одном байте
- 0128
- 064
- 132
- 016
- 18
- 04
- 12
- 01
32 + 8 + 2 = 42
Где живёт переменная
Переменная существует, пока работает часть программы, где она заведена. Внутри цикла или внутри отдельной части она исчезает вместе с ней.
Такие переменные называют местными, и это хорошо: они не мешают друг другу. Две части программы могут спокойно завести переменную с одинаковым именем.
Общие для всей программы переменные заводят редко и осторожно, потому что менять их может кто угодно.
Постоянные величины
Не всё, что хранится в программе, должно меняться. Число дней в неделе, ускорение свободного падения, название школы остаются одинаковыми всё время работы.
Такие величины заводят отдельно и помечают как неизменяемые. Тогда случайная запись в них вызовет ошибку сразу, а не тихо испортит расчёт.
Ещё это удобно для чисел, которые встречаются в программе многократно. Поменял в одном месте, и новое значение разошлось повсюду.
Что видно в отладчике
Переменные удобны тем, что за ними можно наблюдать. Среда программирования показывает список всех имён и текущих значений прямо во время работы.
Так видно, откуда взялось неверное число. Часто оказывается, что переменная поменялась там, где этого не ждали.
Массив
Когда однотипных значений много, заводят не тридцать переменных, а одну с номерами. Такую переменную называют массивом или списком.
Обращаются к элементу по номеру, а перебирают циклом со счётчиком. Тридцать оценок класса, двенадцать месяцев, тысяча точек графика.
Про перебор читай урок «Цикл со счётчиком». Про то, как из переменных и действий получается программа, есть урок «Первая программа».
Проверь себя: Переменной «а» присвоили 5, затем выполнили «а равно а умножить на 2», затем «а равно а плюс 1». Что в ней теперь?
Одиннадцать. Сначала пятёрка стала десяткой, потом к ней прибавилась единица. Каждое присваивание использует текущее значение и заменяет его новым.
Короткие ответы
- Чем переменная в программе отличается от переменной в математике?
- В математике буква обозначает неизвестное, но постоянное число. В программе значение переменной меняется по ходу работы, и это её главное свойство.
- Что будет, если использовать переменную, которой не давали значения?
- В одних языках программа остановится с ошибкой, в других возьмёт случайный мусор. Оба случая плохи, поэтому значение задают сразу.