Выберите способы присваивания значения переменной

§ 17. Оператор присваивания, ввод и вывод данных

Присваивание — это действие, в результате которого переменная величина получает определенное значение. В программе на Паскале существуют три способа присваивания значения переменной:

  1. оператор присваивания;
  2. оператор ввода;
  3. передача значения через параметры подпрограммы.

Оператор присваивания имеет следующий формат:

Сначала вычисляется выражение, затем полученное значение присваивается переменной. В первом примере приведен арифметический оператор присваивания. Здесь х — переменная вещественного типа. Во втором примере — логический оператор присваивания. Здесь b — переменная типа Boolean.

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

Ввод и вывод данных

Под вводом понимается передача данных с внешнего устройства компьютера в оперативную память. При выводе данные передаются из оперативной памяти на внешнее устройство (рис. 3.11).

Рис. 3.11. Ввод и вывод

Операция ввода называется чтением и выполняется с помощью оператора Read. Вывод называется записью, и для его выполнения используется оператор Write.

К внешним устройствам относятся устройства ввода и вывода (клавиатура, монитор, принтер и др.) и устройства внешней памяти (магнитные и оптические диски, флеш-память и др.). Данные на внешних устройствах организованы в файлы.

Для внешних запоминающих устройств (ВЗУ) файл — это поименованная область памяти этого устройства. В файлы на ВЗУ можно записывать данные по команде Write и можно читать данные из файлов по команде Read. На одном устройстве ВЗУ может храниться множество файлов одновременно. Правила именования файлов на ВЗУ определяются операционной системой. Имена для файлов, создаваемых пользователем, задает сам пользователь.

Устройства ввода с клавиатуры и вывода на экран монитора являются однофайловыми устройствами. Считается, что с клавиатурой связан один системный файл с именем INPUT. Поэтому ввод с клавиатуры равнозначен чтению из файла INPUT. С монитором связан системный файл, который называется OUTPUT. Вывод на экран — это запись данных в файл OUTPUT .

Ввод с клавиатуры производится путем обращения к стандартной процедуре Read в следующем формате:

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

При выполнении этого оператора происходит прерывание исполнения программы, после чего пользователь должен набрать на клавиатуре значения переменных а, Ь, с, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце нажимается клавиша Enter. Значения следует вводить в строгом соответствии с синтаксисом Паскаля.

Набираем на клавиатуре:

Если в программе имеется несколько подряд идущих операторов Read, то данные для них можно вводить последовательно (на экране отражаются в одной строке) и лишь в конце ввода нужно нажать клавишу Enter.

Набираем на клавиатуре и видим на экране:

Другой вариант оператора ввода с клавиатуры имеет вид:

Здесь слово «ReadLn» означает read line — «читать строку». Нажатие клавиши Enter в процессе ввода вырабатывает признак «конец строки», и данные при выполнении следующего оператора ввода будут отражаться на экране с начала новой строки. Если в предыдущем примере заменить операторы Read на ReadLn:

то ввод значений будет происходить из двух строк, отраженных на экране:

Вывод на экран производится по оператору обращения к стандартной процедуре:

Здесь элементами списка вывода могут быть выражения различных типов (в частности, константы и переменные).

Читайте также:  Народные способы лечения рака простаты

Например:

Если, например, А = 5 и В = 7, то на экране получим:

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

Второй вариант процедуры вывода на экран:

Write line — «писать строку». Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn, записанный без параметров, вызывает перевод строки.

В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Формат отделяется от соответствующего ему элемента двоеточием. Если указатель формата отсутствует, то машина выводит значение по определенному правилу, предусмотренному по умолчанию.

Линейная программа. Следование — простейшая алгоритмическая структура. Программа, реализующая следование, называется линейной программой. В линейной программе могут присутствовать только операторы присваивания, ввода, вывода и обращения к процедурам. Заметим, что операторы Read и Write являются обращениями к стандартным процедурам Паскаля.

Одним из обязательных условий хорошего стиля программирования является организация диалога между компьютером и пользователем. Такое диалоговое взаимодействие называется интерактивным интерфейсом.

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

Тестирование этой программы отразится на экране следующим образом.

Числа 13 и 28 вводятся пользователем с клавиатуры, всё остальное автоматически выводится по программе.

Пример 2. Дано натуральное трехзначное число. Требуется вычислить сумму его цифр. Например, если дано число 325, то в результате должно получиться: 3 + 2 + 5 = 10.

Сначала составим программу, а потом ее прокомментируем.

В этой программе использованы две операции целочисленной арифметики: div — целочисленное деление и mod — остаток от целочисленного деления (см. табл. 3.3). Остаток от деления на 10 (mod) выделяет младшую цифру числа, а целочисленное деление на 10 (div) отбрасывает младшую цифру.

Чтобы лучше понять работу программы, выполним ее трассировку. В курсе 9 класса вам уже приходилось строить трассировочные таблицы. Для программы SumCifr таблица будет выглядеть следующим образом:

Выполнение программы на компьютере приводит к такому же результату.

Заметим, что эту задачу можно решить с помощью всего одного оператора присваивания:

Система основных понятий

Вопросы и задания

  1. Назовите последовательность действий при выполнении оператора присваивания.
  2. Сформулируйте правило соответствия типов для оператора присваивания. Какое существует исключение из этого правила?
  3. Если у — вещественная переменная, а n — целая, то какие из следующих операторов присваивания правильные, а какие — нет?

  • Напишите линейную программу, в результате выполнения которой целочисленные переменные х и у обменяются значениями. При этом нельзя использовать дополнительные переменные. Найдя такой алгоритм, определите, в чем его недостаток по сравнению с методом обмена через третью переменную. Можно ли его применять для вещественных чисел?
  • Напишите оператор присваивания, в результате выполнения которого целочисленной переменной h присвоится значение цифры, стоящей в разряде сотен в записи положительного целого числа k (например, если k = 28 796, то h = 7).
  • Напишите линейную программу, в результате выполнения которой в целочисленной переменной S получится перевернутое целое четырехзначное число k. Например: если k = 1357, то S = 7531.
  • Напишите линейную программу перевода любого целого четырехзначного двоичного числа в десятичную систему счисления. Например, дано число в двоичной системе счисления: 11012. Перевод в десятичную систему выполняется так: 1•2 3 +1•2 2 + 0•2 1 + 1 = 13.
  • Источник

    Оператор присваивания. Запись значения в переменную на Си

    Пожалуйста, приостановите работу AdBlock на этом сайте.

    Как Вы помните, переменные нужны чтобы хранить в них какие-то данные. Разберёмся как использовать переменные по их прямому назначению. Основной вопрос такой: «Как сохранить значение в переменной». Или вспоминая аналогию с коробкой «Как положить что-то в коробку?»

    Читайте также:  Способы монетизировать свое хобби

    Ответ прост. Для этого существует специальный оператор, который называется оператором присваивания и обозначается символом равно «=». Обычно говорят не сохранить значение в переменную, а присвоить переменной значение.

    Как работает оператор присваивания?

    Сразу будем разбираться на примерах.

    Листинг 1. Присваивание значения переменной

    В примере выше показаны два способа присвоить значение переменной. В первом случае мы сначала создаём переменную, а потом записываем в неё значение, а во втором случае мы сразу создаём переменную и присваиваем ей значение.

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

    Не забывайте ставить после очередной команды точку с запятой.

    Есть несколько важных моментов на которых надо отдельно заострить внимание:

    • в некоторых языках программирования, после того как вы создали переменную, в ней сразу же хранится значение нуль. В языке Си это не так. Пока переменной не присвоено какое-нибудь значение, в ней будет храниться «мусор». Как этот мусор выглядит мы посмотрим на следующем уроке.
    • справа от знака равно НЕ обязательно должно быть записано какое-то конкретное число, там может быть записано арифметическое выражение или имя переменной.

    Остановимся на втором пункте подробнее. Чтобы лучше разобраться давайте обратимся к примерам.

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

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

    Обратите внимание, новое значение не добавляется к старому, а полностью заменяет его. Я как-то говорил, что переменные похожи на коробки, но только на первый взгляд. Теперь мы видим, что наша аналогия с коробкой не совсем точная. Если бы в коробке лежало десять шариков, и мы бы туда положили ещё пять, то их стало бы 15.

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

    При вычислении выражения n — 3, n равняется 5. Это потому, что исходное значение 10, заданное при инициализации, мы в программе изменяли. А при вычислениях используется текущее значение переменной.

    В выражении справа от знака равенства может быть использована сама переменная.

    Кажется, что это какой-то порочный круг, но на самом деле проблем здесь не возникнет. Т.к. сначала вычисляется выражение справа, а только потом происходит присваивание. По аналогии с предыдущим примером при вычислении значения справа от знака равно вместо переменной n будет подставлено её текущее значение, т.е. 10. Потом будет произведено сложение и присваивание.

    Ещё один поучительный пример.

    Если Вы подумали что 5, то это неправильно. Никто не знает, что в ней будет записано. Т.к. неизвестно, что было записано в переменной z. Ещё раз напоминаю, что если переменной не присвоено никакое значение, в ней хранится не нуль, а неизвестно что.

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

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

    Посмотрим несколько примеров.

    Внимание на последнюю строчку! Хотя справа выражение целого типа, а слева вещественная переменная, данная команда всё равно будет работать так, как надо. Это из-за того, что все целые числа можно записать как вещественные, у которых дробная часть равна нулю. Подобная штука называется неявное приведение (преобразование) типов . С этой возможностью надо быть очень осторожным, т.к. компилятор не отслеживает такие ошибки. Другими словами программа будет скомпилирована, но работать будет неправильно. Мы ещё вернёмся к этому в следующем уроке, когда научимся выводить значение переменных на экран компьютера.

    Читайте также:  Способы защиты от сетевых атак

    Практика

    Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим

    Источник

    Выберите способы присваивания значения переменной

    Оператор присваивания
    Используется для изменения значений переменных. В языке Паскаль эта команда обозначается так:

    При этом значение выражения из правой части команды присваивания заменяет текущее значение переменной из левой части. Тип значение выражения должен совпадать с типом переменной. Выражение может быть арифметическим, логическим или литерным. Важно, чтобы тип величины был согласован с видом выражения.
    Пример:
    а:=2; b:=8;
    S:=а+b;
    После выполненных последовательно данных трех команд переменная S принимает значение равное 10.

    При помощи оператора присваивания переменной могут присваиваться константы и выражения, значения переменных любого типа.
    Как только в программе встречается переменная, для неё в памяти отводится место. Оператор присваивания помещает значение выражения в место, отведённое переменной.
    Если в процессе выполнения программы встречается переприсваивание (т.е. та же самая переменная принимает другое значение), то старое значение переменной стирается, на свободное место записывается новое значение. Команда присваивания позволяет лучше понять смысл слова переменная (т.е. меняющая своё значение по ходу программы).

    Оператор ввода и вывода

    Для ввода исходных данных используются операторы Read и ReadLn.

    Read (список переменных);

    Readln (список переменных);

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

    При вводе с клавиатуры информация представляет собой строку символов. В процессе ввода происходит автоматическое преобразование строковых значений к типу переменных, входящих в список ввода. При наборе информации с клавиатуры данные сначала помещаются в виде строки в буфер ввода. Преобразование и передача значений из буфера ввода в переменные списка возможно, только если в буфер ввода введен признак конца строки. Этот символ вводится нажатием клавиши Enter .

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

    Ввод значений числовых переменных завершается символом пробел, Tab , признаком конца строки – Enter .

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

    Процедура readln после ввода значений всех переменных списка очищает буфер ввода.

    Если использовать оператор Readln ( a , b ), то можно использовать те же самые способы ввода – а и б.

    Var a, b, c:integer;

    Пусть a =5, b =1, c =1, тогда ввод можно осуществить следующим образом:

    Если в программе записать

    то ввод осуществляется следующим образом:

    Пусть a =’+’, b =’8’, то ввод осуществляется следующим образом:

    Оператор readln ; используется для приостановки работы программы, он ожидает нажатия клавиши Enter .

    Для вывода данных используются процедуры Write и Write Ln.

    Оператор вывода имеет вид:

    Write (список выражений);

    Writeln (список выражений);

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

    Вещественные значения выводятся в экспоненциальной форме. Процедура Write выводит значения из списка подряд и устанавливает курсор в следующую позицию после последнего символа.

    Процедура Writeln выводит значения из списка подряд, но после вывода последнего значения переводит курсор в первую позицию следующей строки экрана.

    Источник

    Оцените статью
    Разные способы