Как обозначается программа присваивания в паскале

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

В ходе подготовки учебника к экспертизе у редактора возникли сомнения по поводу моей фразы: «Оператор «:=» — это оператор присваивания». По её мнению, оператор присваивания — это всё выражение вида «переменная := выражение;», а символы «:=» — это знак присваивания.

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

Поскольку речь идет о Паскале, обратимся, прежде всего, к отчёту «The Programming Language Pascal», который написал Никлаус Вирт, создатель этого языка. Он пишет:

«The most fundamental statement is the assignment statement. It specifies that a newly computed value be assigned to a variable (or a component of a variable).»

Информатика 8 класс: Оператор присваивания и выражения в Паскале

«Assignment statement» — это оператор присваивания, здесь слово «statement» действительно переводится на русский как оператор в значении «инструкция», «команда».

Но вопрос в другом — как назвать символ «:=»? Вирт в своих работах не дает ему никакого названия, такой же подход принят и в стандарте ISO7185.

Часто утверждается, в Паскале вообще нет оператора присваивания, такого как в Си и Си++, потому что присваивание — «это утверждение, а не выражение». Однако существует и другое мнение. Например, в книге М. Канту «Essential Pascal» видим термин «colon-equal operator». А Н. Дейл прямо использует термин «assignment operator» (см. «Programming in Pascal», глава 2).

Итак, мы добрались до сути: «:=» — это оператор или не оператор? Чтобы ответить на этот вопрос, нужно понять, какое значение слова «оператор» имеется в виду. В английском языке используется два совершенно разных слова, которые переводятся на русский одним и тем же словом «оператор» — это «statement» и «operator». С оператором-statement вроде бы всё понятно. Оператор-operator — это другой термин, который связан с математическим понятие оператора — правила преобразования одного объекта в другой.

Выражение «assignment operator» широко используется в таких языках, как Си и Си++, где оператор присваивания обозначается знаком «=». Его суть в том, что оператор присваивания создает новый объект на основе двух существующих объектов, записывая новое значение в переменную.

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

Считается, что в «классическом» Паскале оператора присваивания (в смысле operator) нет. Но это не совсем верно. Вот пример программы, которая работает во всех современных версиях Паскаля:

var a: integer; b: longint; begin a := 5; b := a; b := 25; a := b; end.

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

Паскаль с Нуля. Переменные, Оператор присваивания, Оператор ввода. Урок 2

Кроме того, в современной версии Free Pascal символ «:=» вполне законно называется оператором присваивания, потому что его можно перегружать, как и в Си++. В программе, приведенной ниже, показан пример такой перегрузки.

Читайте также:
Mathcad какой тип присвоения определяет переменную в любом месте программы

type complex = record re,im: real; end; var z: complex; operator :=(r: double) z: complex; begin z.re:=r; z.im:=0; end; begin z:=3; end.

Выводы: Таким образом, в современном Паскале «X:=Y;» — это оператор присваивания (statement), а «:=» — это тоже оператор присваивания (operator).

Автор благодарит О.А. Полежаеву за интересное обсуждение, в результате которого появилась эта заметка.

3 комментария:

Напишите, пожалуйста, заметку о том, как правильно по отношению к переменным:
«присваивание, присваивать» или «присвоение, присвоить». Везде по разному. Ответить Удалить

В том, что у «:=» нет отдельного имени по сравнению с «переменная := выражение» (без точки с запятой – она частью оператора не является) нет ничего странного. И знак «:=», и указанная грамматическая конструкция присваивания, и конкретные ее овеществления как «x := a+b» – все три и есть «оператор присваивания».

Конечно, речь идет о разных сторонах данного понятия, но нужды именовать их по разному нет. Впрочем, точно так же и «выражениевыражение», и «p

Далее, Ваше утверждение «Часто утверждается, в Паскале вообще нет оператора присваивания, такого как в Си и Си++ …» вводит в заблуждение: на самом деле цитированный Вами текст утверждает, что у Паскаля нет «operator»-а, т.е.

операции присваивания. Что и верно – операцией «:=» в Паскале не является, тогда как «=» в Си есть как раз операция. И неряшливость того или иного англоязычного – точно так же как и любого другого – автора, назвавшего «:=» operator, суть дела не меняет. В стандарте же языка таких оплошностей не найти.

Еще далее, Ваше утверждение «В английском языке используется два совершенно разных слова, которые переводятся на русский одним и тем же словом „оператор“» неточно. Английское слово operator в литературе на русском по программированию принято переводить как «операция». Не заметили? По этому поводу отмечу, что в учебниках и монографиях советского времени я ни разу не видел путаницы между операциями и операторами – они так же четко отличаются друг от друга, как и operator и statement в английском. (С другой стороны, возможно, термины тогда были выбраны неудачно. Может, лучше называть operator оператором, а statement – командой. Будь то так или иначе, но важнее всего понимать и соблюдать различие между понятиями.)

На цитированную вами «заметку Листера» ссылатся не стоит, тем более говорить, что суть присваивания «чётко сформулирована». Нет, «формулировка» эта нечетка, неполна и даже неверна, так что формулировкой и не назовешь. Более того, в оригинале часть предложений (а их всего несколько) мистера Листера попросту лишены смысла – перечитайте сами. Вообще, там полная чушь, я мог бы комментировать подробно, но пока воздержусь.

Кроме того, злосчастная заметка Листера отношения к затронутому Вами вопросу не имеет, да и Вы ее неправильно толкуете. Присваивание в Си является операцией (operator) не потому что оно допускает выполнение преобразований. Присваивание в Си (в отличие от Паскаля) выдает в свой контекст значение, подобно +, < и т.д. Можно написать, скажем, такое выражение: 3*(b=x+y). Вот поэтому «=» в Си и числится среди операций, а «:=» в Паскале – нет.

Читайте также:
Ниже приведена программа записанная на двух языках программирования было проведено 10 запусков

Так что формулированное Вами «могут ли при присваивании выполняться какие-то преобразования», равно как и соображения о приведениях типа и о «перегружении», к вопросу о толковании «:=» как операции отношения не имеет.

Кстати, по поводу вашего примера «программы, которая работает во всех версиях Паскаля». Там используется тип чисел longint, которого в Паскале, строго говоря, нет. У языка два стандарта – Pascal (ISO 7185:1990), т.е. Паскаль Н.Вирта, и Extended Pascal (ISO 10206:1990) – Расширенный Паскаль. Ни один из этих стандартов longint не определяет.

Правда, есть еще и такое понятие как «Object Pascal», но оно не стандартизовано и вообще весьма расплывчато – скорее, это семейство реализаций чем язык, так что сказать что в нем есть в принципе невозможно. В частности, в отношении longint можно говорить лишь о реализациях того или иного нестандартного расширения языка Паскаль. Ответить Удалить

Источник: kpolyakov.blogspot.com

Как обозначается команда присваивания в pascal

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

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

Оператор присваивания

Для записи в именованные ячейки памяти различных значений используется оператор присваивания. В общем виде этот оператор имеет следующий вид:
переменная := выражение
где оператор присваивания обозначается неразрывным знаком := (в Паскале не следует путать с операцией отношения = ).

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

Рассмотрим работу оператора присваивания в данном примере пошагово:

  1. Из ячейки памяти с именем k выбирается текущее значение.
  2. К текущему значению прибавляется 10.
  3. Результат записывается в ту же самую ячейку памяти (предыдущее значение восстановить после новой записи невозможно!)

ВНИМАНИЕ: выражение должно быть совместимо по типу данных с переменной.

В PascalABC.NET определены также операторы присваивания со значками +=, -=, *=, /= . Действие этих операторов заключается в изменении значения переменной в правой части оператора с учетом обозначенной арифметической операции (перед знаком равенства) и значения в правой части. Например:

  • k += 100;
  • n -= 8;
  • m *= 10;
  • b /= 2;

Гіпермаркет Знань>>Інформатика>>Інформатика 7 клас>> Інформатика: Тема 33. Восьминіжка і команда циклу Повтори N разів

Практична робота до предмету Інформатика 7 клас.

Розгляд теми: Практична робота № 15: «Складання програм з циклами»

Тест: Команда присваивания. Ввод и вывод данных.

Вопрос №1: Как обозначается команда присваивания в PascalABC?

Выберите один из вариантов ответа:

Вопрос №2: Укажите неверный оператор

Выберите один из вариантов ответа:

Вопрос №3: С помощью какой команды мы можем ввести в переменную а значение во время выполнении программы?

Выберите один из вариантов ответа:

• С помощью команды присваивание
• С помощью команды write(a);
• С помощью команды read(a);

Вопрос №4: Алгоритм это .

Выберите один из вариантов ответа:

• Последовательность команд, выполнение которых приводит нас к решению поставленной задачи.
• Последовательность действий, выполнив которые мы можем запустить программу.
• Задача, которую можно решить.

Читайте также:
Необходимые программы для linux

Вопрос №5: С помощью какой команды мы можем вывести на экран текст?

Выберите один из вариантов ответа:

• write(‘текст’)
• read(‘текст’)
• написать(‘текст’)
• вывести(‘текст’)
• отобразить на экран(‘текст’)

Вопрос №6: Каждое выражение(каждый оператор) в программе отделяется друг от друга .

Выберите один из вариантов ответа:

• точкой с запятой
• точкой
• запятой
• тире
• дефисом

Вопрос №7: Раздел var это .

Выберите один из вариантов ответа:

• Раздел описания переменных
• Начало программы
• Конец программы
• Раздел имя программы
• Раздел подключения библиотек

Вопрос №8: Выберите правильные операторы с помощью которых мы можем вывести в окне выполнения программы текст «Номер 1», учитывая что а:=1.

Выберите несколько вариантов ответа:

• write(‘Номер 1’);
• write(«Номер 1»);
• write(‘Номер ‘); write(a);
• write(‘Номер ‘ + inttostr(a));
• write(‘Номер ‘ + strtoin(a));

Вопрос №9: Установите соответствие:

1. Присвоить;
2. Начало;
3. Описание;
4. Прочитать (ввести);
5. Вывести.

Укажите порядок следования вариантов ответа:

Вопрос №10: С помощью какой команды можно вывести на экран значение переменной sum с переходом на следующую строку в окне вывода?

Выберите один из вариантов ответа:

• writeln(sum);
• write(sum);
• read(sum);
• readln(sum);

Надіслано учителем інформатики Міжнародного ліцею «Гранд» Чебаном Л.І.

Матеріали з інформатики онлайн, завдання та відповіді по класам, плани конспектів уроків з інформатики скачати

Ответы

for i: =1 to 1000 do

if i mod 2=0 then s: =s+i;

for i: =1 to 1000 do

if odd(i) then s: =s+i;

a: array[1..500] of integer;

for i: =1 to 1000 do

if odd(i) then a[i]: =i;

for i: =1 to n do

слева сколько воды находится в кувшинах

8 — 0 : 1. наливаем в кувшин 8 л

5 — 3 : 2. переливаем из 8 л кувшина в 3 литровый, и выливаем в реку

2 — 3 : 3. переливаем из 8 л кувшина 3 литровый и выливаем в реку

0 — 2 : 4. переливаем оставшиеся 2 л из 8 литрового в 3 литровый кувшин

8 — 2 : 5. наливаем воду в 8 л кувшин

7 — 3 : 6. наливаем воду из 8 л кувшина в 3 л пока он не заполниться, т.е. наливаем туда 1 л, в 8 л кувшине остается 7 литров.

Нет связанных сообщений

Источник: technicspace.ru

Как обозначается команда присваивания в Pascal ABC?

Найди верный ответ на вопрос ✅ «Как обозначается команда присваивания в Pascal ABC? . » по предмету Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

Новые вопросы по информатике

Сколько всего различных символов может быть в восьмибитной текстовой кодировке? 1) 8 2) 512 3) 256 4) 65536

Паскаль. Написать программу подсчета количества отрицательных чисел среди любых 10 вводимых. 1 программа с использованием while, 2 программа — repeat

Сколько кб информации содержит сообщение объемом 2^20 бит?

Информатика пользователь создад сообщение из 256 символов в кодировке Unicode в которой каждый символ кодируется 16 битами после редактирования информационный объем сообщения составил 3072 бит Определите сколько символов удалили сообщение если его

Источник: urokam.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru