Урок 2. Присваивание и переприсваивание. Ввод и вывод данных.
Итак, мы выяснили, каким образом нужно объявить переменную. Пора записать в нее какие-нибудь данные. Запись данных производится с помощью команды присваивания.
Команда присваивания стирает все данные, которые были ранее записаны в переменную и заменяет ее на новые.
Команда присваивания в общем виде выглядит следующим образом:
Определение: Присвоить переменной значение — значит стереть из области памяти переменной все данные и записать туда новые данные
Команда присваивания в общем виде выглядит следующим образом:
ИмяПеременной=ПрисваиваемоеЗначение
Пример: Чтобы присвоить переменной А значение 230, необходимо написать команду: A=230
Задание 1
- Присвоить переменной А значение 17
- Присвоить переменной B значение 128
- Присвоить переменной C значение 117
- Объявить переменную K как принимающую текстовые значения и присвоить ей значение «Vasya»
- Объявить переменную К и присвоить ей значение True
- Присвоить переменной А значение 17 A=17
- Присвоить переменной B значение 128 B=128
- Присвоить переменной C значение 117 C=117
- Объявить переменную K как принимающую текстовые значения и присвоить ей значение «Vasya»
Dim K as String
K=»Vasya»
Примечание: Весь текст всегда берется в кавычки. Слова True и False к тексту не относятся - Объявить переменную К и присвоить ей значение True
Dim K as Boolean
K=True
Переприсваивание
Иногда требуется не заменить значение переменной, удалив предыдущее, а добавить к нему новое. Для этого существует команда переприсваивания.
Команда переприсваивания в общем виде выглядит следующим образом:
ИмяПеременной=ИмяПеременной+НовоеЗначение
Пример: Чтобы увеличить переменную А на 14, нужно написать команду: A=А+14
Задание 2
- Увеличить значение переменной А на 30
- Уменьшить значение переменной А на 128
- Увеличить значение переменной А в 300 раз
- Объявить переменную K как принимающую целочисленные значения, присвоить ей значение 5, возвести значение этой переменной в степень 3
- Увеличить значение переменной А на 30 А=А+30
- Уменьшить значение переменной А на 128 А=А-128
- Увеличить значение переменной А в 300 раз А=А*300
- Объявить переменную K как принимающую целочисленные значения, присвоить ей значение 5, возвести значение этой переменной в степень 3
Dim K as byte
K=5
K=K*K*K
Ввод и вывод данных
Зачастую в переменную нужно записать не четко известное значение, а некоторое значение, которое будет определяться пользователем. Например, при решении квадратного уравнения у нас нет фиксированных значений а, б и с. Эти значения варьируются в зависимости от уравнения. Для того, чтобы пользователь мог записывать в переменные информацию с клавиатуры, существует специальная команда: Input a
При использовании этой команды пользователь увидит окно с мигающим курсором, в которое он сможет ввести нужное ему значение.
Пример: Объявим переменную a как принимающую целочисленные значения, введем ее с клавиатуры и удвоим:
Dim a as long Объявляем
Input a Вводим с клавиатуры
a=a*2 Удваиваем
Также существует команда, позволяющая вывести на экран какое-нибудь сообщение или содержимое какой-нибудь переменной. Это команда Print «Сообщение» или Print ИмяПеременной
Пример1: Выведем на экран сообщение «Hello, world»
Print «Hello,world»
Пример2: Выведем на экран значение переменной А:
Print A
Задание 3
- Вывести на экран сообщение «наши слоны — самые слонистые»
- Вывести на экран значение переменной К
- Объявить переменную K как принимающую целочисленные значения, присвоить ей значение, введенное с клавиатуры, возвести значение этой переменной в степень 3 и вывести результат на экран
- Вывести на экран сообщение «наши слоны — самые слонистые» Print «наши слоны — самые слонистые»
- Вывести на экран значение переменной К Print А
- Объявить переменную K как принимающую целочисленные значения, присвоить ей значение, введенное с клавиатуры, возвести значение этой переменной в степень 3 и вывести результат на экран
Dim K as byte
Input K
K=K*K*K
Print K
Как присвоить переменной текстовое значение c
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Оператор присваивания. Запись значения в переменную на Си
Как Вы помните, переменные нужны чтобы хранить в них какие-то данные. Разберёмся как использовать переменные по их прямому назначению. Основной вопрос такой: «Как сохранить значение в переменной». Или вспоминая аналогию с коробкой «Как положить что-то в коробку?»
Ответ прост. Для этого существует специальный оператор, который называется оператором присваивания и обозначается символом равно » code-left»>
Листинг 1. Присваивание значения переменной
int z; // объявляем переменную целого типа с именем z z = 5; // заносим в переменную число 5 double pi = 3.1415926; // создаём переменную и сразу присваиваем ей значение
В примере выше показаны два способа присвоить значение переменной. В первом случае мы сначала создаём переменную, а потом записываем в неё значение, а во втором случае мы сразу создаём переменную и присваиваем ей значение.
Второй вариант записи короче, но делает в то же самое, что и первый. Берёт значение, которое записано справа от знака равно, и сохраняет его в переменную, которая записана слева от от него.
Не забывайте ставить после очередной команды точку с запятой.
Есть несколько важных моментов на которых надо отдельно заострить внимание:
- в некоторых языках программирования, после того как вы создали переменную, в ней сразу же хранится значение нуль. В языке Си это не так. Пока переменной не присвоено какое-нибудь значение, в ней будет храниться «мусор». Как этот мусор выглядит мы посмотрим на следующем уроке.
- справа от знака равно НЕ обязательно должно быть записано какое-то конкретное число, там может быть записано арифметическое выражение или имя переменной.
int n; n = 1+2; // В переменную n записываем значение 3
Когда переменной присваивается значение, то то, что хранилось в ней до этого удаляется.
int n=10; // Создаём переменную и записываем в неё 10 n = 5; // Теперь в переменной записано значение 5, а значение 10 удалено.
Обратите внимание, новое значение не добавляется к старому, а полностью заменяет его. Я как-то говорил, что переменные похожи на коробки, но только на первый взгляд. Теперь мы видим, что наша аналогия с коробкой не совсем точная. Если бы в коробке лежало десять шариков, и мы бы туда положили ещё пять, то их стало бы 15. В выражении справа от знака равенства могут использоваться другие переменные, которые объявлены ранее. Вместо них в выражение подставляются значения, которые в них хранятся в данный момент.
int n=10, x=0; // можно инициализировать сразу несколько переменных n = 5; // теперь n равно 5 x = n - 3; // x будет равно 2 (5-3)
При вычислении выражения n — 3, n равняется 5. Это потому, что исходное значение 10, заданное при инициализации, мы в программе изменяли. А при вычислениях используется текущее значение переменной. В выражении справа от знака равенства может быть использована сама переменная.
int n=10; n = n + 5; // n будет равно 15 (10+5)
Кажется, что это какой-то порочный круг, но на самом деле проблем здесь не возникнет. Т.к. сначала вычисляется выражение справа, а только потом происходит присваивание. По аналогии с предыдущим примером при вычислении значения справа от знака равно вместо переменной n будет подставлено её текущее значение, т.е. 10. Потом будет произведено сложение и присваивание. Ещё один поучительный пример.
int x=5, y=0, z; y = x + z; // что будет записано в переменной y?
Если Вы подумали что 5, то это неправильно. Никто не знает, что в ней будет записано. Т.к. неизвестно, что было записано в переменной z. Ещё раз напоминаю, что если переменной не присвоено никакое значение, в ней хранится не нуль, а неизвестно что. Выражение справа от знака равно может быть достаточно сложным, оно не обязательно будет состоять из одного действия.
int a = 2, b=9, c=4, D; D = b*b - 4*a*c; // D будет равно 49 (9*9 - 4*2*4)
Теперь ещё один важный момент, который надо понимать. Когда я рассказывал о типах данных, я говорил, что в переменной можно хранить значения только того же типа, что и тип переменной. Например, в переменную целого типа нельзя положить вещественное число. Этот принцип применяется и с выражениями. Чтобы программа работала корректно, необходимо, чтобы тип выражения или переменной справа от знака присваивания совпадал с типом переменной. Посмотрим несколько примеров.
int n, a = 2; double x, pi = 3.14; char s = 'k'; // сохраняем в s символ k. Сам символ нужно написать в одинарных кавычках. s = pi; // неправильно. В коробку для символов пытаемся положить вещественное число n = a*pi; // неправильно. В коробку для целых числе пытаемся положить 6.28 (2*3.14) a = x; // неправильно. В целочисленную переменную пытаемся сохранить вещественное число x = 2+a; // ДОПУСТИМО. x будет равно 4.0
Внимание на последнюю строчку! Хотя справа выражение целого типа, а слева вещественная переменная, данная команда всё равно будет работать так, как надо. Это из-за того, что все целые числа можно записать как вещественные, у которых дробная часть равна нулю. Подобная штука называется неявное приведение (преобразование) типов . С этой возможностью надо быть очень осторожным, т.к. компилятор не отслеживает такие ошибки. Другими словами программа будет скомпилирована, но работать будет неправильно. Мы ещё вернёмся к этому в следующем уроке, когда научимся выводить значение переменных на экран компьютера. Сохрани в закладки или поддержи проект.
Практика

- Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим
Дополнительные материалы
- пока нет
Как присвоить переменной char значение слова
@avp Вообще-то, это не стандартная функция. Это POSIX функция. Ей можно пользоваться, но чтобы код компилировался, нужно либо задать макрообъявление, либо опцию компилятора.
12 дек 2016 в 21:47
Ну, Вы даете. И с каких это пор POSIX не стандарт? Вообще, если в gnu есть, то можно пользоваться. А если где-то ее (или какой другой) и не будет, значит самому надо там реализовать.
12 дек 2016 в 22:05
@avp POSIX — не указ C стандарту.:)
12 дек 2016 в 22:13
POSIX — не указ C стандарту.:) О Господи. А вот это : «POSIX (англ. portable operating system interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. » — ничего не значит? Стандарт, в котором оговариваются БИБЛИОТЕКИ С не указ для БИБЛИОТЕК С ?!
13 дек 2016 в 2:43
- c
- массивы
- указатели
- строковый-литерал
Как присвоить переменной текстовое значение c
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Переменная
Для присвоения значения служит оператор присваивания, которым является знак равно (=).
| Оператор — это слово или знак, выполняющий одно предписание (одну операцию). |
Слева от знака «равно» указывается имя переменной, в которую будет помещено значение, а справа — значение переменной (числовое или текстовое), либо математическое или строковое выражение или другая переменная, из которой берется значение. То есть общий вид оператора присваивания:
-
Куда (переменная) = что или откуда
В математических выражениях используются знаки арифметических операций:
| ^ | возведение в степень |
| * | умножение |
| / | деление |
| + | сложение |
| — | вычитание |
Арифметические операции выполняются в такой последовательности: сначала возведение в степень, затем умножение и деление, в последнюю очередь — сложение и вычитание. Если в выражении несколько операций, то они выполняются слева на право.
Для изменения порядка операций используются только круглые скобки ( ).
Математическое выражение сначала обрабатывается и вычисляется результат, который затем присваивается переменной (помещается в переменную).
Пи написании чисел в коде программы целая и дробная часть числа отделяются точкой.
Например:
1. Переменной присваивается конкретное значение:
a = 5
b = «Мир»
2. Переменной присваивается результат выражения:
a = 2 * 3 + 10/2
b = «Миру» + «» + «Мир!»
3. Переменной присваивается значение выражения, в котором используются другие переменные:
a = (i + 5) * 2.5
b = c + d + «май»
c = b
Примечание: С помощью оператора присваивания можно увеличить (уменьшить) значение переменной, например:
x = x + 1
При выполнении такой строки сначала вычисляется правая часть и результат присваивается переменной, стоящей слева от знака равно. Например, если x до выполнения строки равно 5, то после выполнения этой строки будет равна 6.
Аналогично присваиваются значения свойствам. Это записывается так:
Объект.Свойство = Значение
Например:
Command1.Caption = «Вася»
Эта строка изменяет надпись на кнопке с именем Command1 на Вася .
Оператор присваивания. Запись значения в переменную на Си
Как Вы помните, переменные нужны чтобы хранить в них какие-то данные. Разберёмся как использовать переменные по их прямому назначению. Основной вопрос такой: «Как сохранить значение в переменной». Или вспоминая аналогию с коробкой «Как положить что-то в коробку?»
Ответ прост. Для этого существует специальный оператор, который называется оператором присваивания и обозначается символом равно » code-left»>
Листинг 1. Присваивание значения переменной
int z; // объявляем переменную целого типа с именем z z = 5; // заносим в переменную число 5 double pi = 3.1415926; // создаём переменную и сразу присваиваем ей значение
В примере выше показаны два способа присвоить значение переменной. В первом случае мы сначала создаём переменную, а потом записываем в неё значение, а во втором случае мы сразу создаём переменную и присваиваем ей значение.
Второй вариант записи короче, но делает в то же самое, что и первый. Берёт значение, которое записано справа от знака равно, и сохраняет его в переменную, которая записана слева от от него.
Не забывайте ставить после очередной команды точку с запятой.
Есть несколько важных моментов на которых надо отдельно заострить внимание:
- в некоторых языках программирования, после того как вы создали переменную, в ней сразу же хранится значение нуль. В языке Си это не так. Пока переменной не присвоено какое-нибудь значение, в ней будет храниться «мусор». Как этот мусор выглядит мы посмотрим на следующем уроке.
- справа от знака равно НЕ обязательно должно быть записано какое-то конкретное число, там может быть записано арифметическое выражение или имя переменной.
int n; n = 1+2; // В переменную n записываем значение 3
Когда переменной присваивается значение, то то, что хранилось в ней до этого удаляется.
int n=10; // Создаём переменную и записываем в неё 10 n = 5; // Теперь в переменной записано значение 5, а значение 10 удалено.
Обратите внимание, новое значение не добавляется к старому, а полностью заменяет его. Я как-то говорил, что переменные похожи на коробки, но только на первый взгляд. Теперь мы видим, что наша аналогия с коробкой не совсем точная. Если бы в коробке лежало десять шариков, и мы бы туда положили ещё пять, то их стало бы 15. В выражении справа от знака равенства могут использоваться другие переменные, которые объявлены ранее. Вместо них в выражение подставляются значения, которые в них хранятся в данный момент.
int n=10, x=0; // можно инициализировать сразу несколько переменных n = 5; // теперь n равно 5 x = n - 3; // x будет равно 2 (5-3)
При вычислении выражения n — 3, n равняется 5. Это потому, что исходное значение 10, заданное при инициализации, мы в программе изменяли. А при вычислениях используется текущее значение переменной. В выражении справа от знака равенства может быть использована сама переменная.
int n=10; n = n + 5; // n будет равно 15 (10+5)
Кажется, что это какой-то порочный круг, но на самом деле проблем здесь не возникнет. Т.к. сначала вычисляется выражение справа, а только потом происходит присваивание. По аналогии с предыдущим примером при вычислении значения справа от знака равно вместо переменной n будет подставлено её текущее значение, т.е. 10. Потом будет произведено сложение и присваивание. Ещё один поучительный пример.
int x=5, y=0, z; y = x + z; // что будет записано в переменной y?
Если Вы подумали что 5, то это неправильно. Никто не знает, что в ней будет записано. Т.к. неизвестно, что было записано в переменной z. Ещё раз напоминаю, что если переменной не присвоено никакое значение, в ней хранится не нуль, а неизвестно что. Выражение справа от знака равно может быть достаточно сложным, оно не обязательно будет состоять из одного действия.
int a = 2, b=9, c=4, D; D = b*b - 4*a*c; // D будет равно 49 (9*9 - 4*2*4)
Теперь ещё один важный момент, который надо понимать. Когда я рассказывал о типах данных, я говорил, что в переменной можно хранить значения только того же типа, что и тип переменной. Например, в переменную целого типа нельзя положить вещественное число. Этот принцип применяется и с выражениями. Чтобы программа работала корректно, необходимо, чтобы тип выражения или переменной справа от знака присваивания совпадал с типом переменной. Посмотрим несколько примеров.
int n, a = 2; double x, pi = 3.14; char s = 'k'; // сохраняем в s символ k. Сам символ нужно написать в одинарных кавычках. s = pi; // неправильно. В коробку для символов пытаемся положить вещественное число n = a*pi; // неправильно. В коробку для целых числе пытаемся положить 6.28 (2*3.14) a = x; // неправильно. В целочисленную переменную пытаемся сохранить вещественное число x = 2+a; // ДОПУСТИМО. x будет равно 4.0
Внимание на последнюю строчку! Хотя справа выражение целого типа, а слева вещественная переменная, данная команда всё равно будет работать так, как надо. Это из-за того, что все целые числа можно записать как вещественные, у которых дробная часть равна нулю. Подобная штука называется неявное приведение (преобразование) типов . С этой возможностью надо быть очень осторожным, т.к. компилятор не отслеживает такие ошибки. Другими словами программа будет скомпилирована, но работать будет неправильно. Мы ещё вернёмся к этому в следующем уроке, когда научимся выводить значение переменных на экран компьютера. Сохрани в закладки или поддержи проект.
Практика

- Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим
Дополнительные материалы
- пока нет
Как присвоить переменной char значение слова
@avp Вообще-то, это не стандартная функция. Это POSIX функция. Ей можно пользоваться, но чтобы код компилировался, нужно либо задать макрообъявление, либо опцию компилятора.
12 дек 2016 в 21:47
Ну, Вы даете. И с каких это пор POSIX не стандарт? Вообще, если в gnu есть, то можно пользоваться. А если где-то ее (или какой другой) и не будет, значит самому надо там реализовать.
12 дек 2016 в 22:05
@avp POSIX — не указ C стандарту.:)
12 дек 2016 в 22:13
POSIX — не указ C стандарту.:) О Господи. А вот это : «POSIX (англ. portable operating system interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. » — ничего не значит? Стандарт, в котором оговариваются БИБЛИОТЕКИ С не указ для БИБЛИОТЕК С ?!
13 дек 2016 в 2:43
- c
- массивы
- указатели
- строковый-литерал