2.1. Оператор присваивания
Идентификатор: = выражение. Здесь идентификатор – имя переменной, переменная хранится в ячейке памяти с именем – идентификатор. тип ячейки памяти определен в разделе описаний. Выражение может быть арифметическим, логическим или каким-либо другим, в котором уже известны (определены) все входящие в его состав идентификаторы.
Замечание 1. Тип значения выражения и тип идентификатора должны совпадать, иначе error - ошибка.
Замечание 2. При наличии хотя бы одной ошибки программа не выполняется.
Пример. Пусть имеются ячейки памяти с именами a, b, c; ячейки таковы, что в них могут быть помещены величины только целого типа. достигается это описанием: Var a, d, c: integer, где Var - начало раздела описания переменных, a, b, c - идентификаторы. Integer означает целый, т.е. в разделе Var идентификаторы (имена) переменных определены как целые.
Работа описания: встретив такое описание, ЭВМ выдаёт три ячейки памяти с именами a, b, c, причем такие, чтобы туда могли быть помещены целые числа. Запишем оператор присваивания:
Работа оператора: машина должна иметь описание идентификаторов a, b, c.
кроме того, как сказано выше, в правой части оператора стоят величины, которым уже присвоены начальные значения. В этом случае машина извлечет из ячейки с её содержимое и из ячейки b содержимое, произведет операцию сложения и значение результата занесёт (присвоит) в ячейку a.
2.2. комментарии
Введем понятие комментария. Комментарий – это всё, что заключено между скобками { }. Символы, заключенные между этими скобками, не воспринимаются машиной, но выдаются пользователю. Комментарии используются пользователем для объяснения алгоритма.
2.3. Программа
Напишем программу вычисления a = c+b. Программа начинается с заголовка Program – имя программы; затем идут разделы описаний (до 5) и раздел операторов, который начинается словом Begin и заканчивается END. (end с точкой, точка – конец программы). Каждое описание и оператор заканчиваются символом ";"
Program Prim1; {заголовок программы}
Var a,b,c:integer; {раздел описания переменных, выделение}
{ячеек памяти для хранения целых величин}
BEGIN {начало раздела операторов}
c:=547; b:=42; {занесение в ячейки c и b начальных значений}
a:=c+b; {вычисление значения и выдача на}
writeln(a); {экран (write - писать) значения a}
END. {конец программы}.
Напоминаем, что тексты, заключённые в скобки { }, являются комментариями, не являются частью программы и могут быть опущены, таким образом, программа для ЭВМ имеет следующий вид:
Программа записывается в виде строк. Максимальная длина строки 255 символов, но не стоит делать строки длиннее строки экрана – 80 символов, иначе строки будут "прятаться" за пределами окна экрана, хотя строки и можно просмотреть, передвигая "окно" (рис. 2.2).
"Хорошее" расположение строк "Плохое" расположение строк
Рис. 2.2
Каждую строку можно начинать не с первой позиции, чтобы программа была более читаемой.
2.4. Простейший ввод-вывод
В программе Prim1 мы задавали исходные данные с помощью оператора присваивания, что не всегда удобно, если одну и ту же программу нужно просчитывать с различными исходными данными. Для присвоения начальных значений можно использовать оператор readln (идентификатор, идентификатор,...,идентификатор); например, readln (c,b). встретив такой оператор, машина остановится и будет ждать, пока пользователь не наберет на клавиатуре значение с, нажмет клавишу "пробел”, наберет значение b и нажмет клавишу ENTER (ввод).значения величин c и b отобразятся на экране и после нажатия клавиши ENTER занесутся в ячейки памяти машины с именами с и b соответственно. тогда программа Prim1 примет вид:
Var a, b, c: integer;
BEGIN readln (c,b);
Замечание 1. Напомним, что машине безразлично, строчные или прописные буквы одинаковых слов end, end и end (но не для вас).
Замечание 2. Удобно ставить Readln перед END, так как после выполнения программы машина выдаёт на экран окно текста программы, а результат "прячется" за этим окном и, чтобы его посмотреть, необходимо убрать окно с программой с помощью нажатия клавиш. Если перед END имеется Readln, то программа не завершит работу, пока вы не нажмете клавишу ENTER, т.е. в данном случае на экран будет выведено значение а. Вы посмотрите результат и нажмете ENTER для входа в редактор языка Паскаль.
Тип урока:
Тема урока: «Программирование на языке Паскаль. Оператор присваивания».
Цели:
Длительность урока: 1 час 30 минут.
ХОД УРОКА
Первый урок |
1. Повторение темы предыдущего урока «Типы
данных». Примеры использования одинаковых по
звучанию слов, но имеющих разные смысловые
значения. Учитель и обучающиеся работают в форме «вопрос-ответ» (10 минут). |
2. Учитель объясняет новую тему, используя
мультимедийный урок-презентацию
«Программирование на языке Паскаль. Оператор
присваивания». Дается определение понятия
«оператор присваивания», приводится общая и
структурная форма оператора. Прежде, чем
рассмотреть работу оператора присваивания,
вспоминаем и повторяем тему «Оперативная память,
свойства Оперативной памяти». Сопровождается показом презентации. Приложение 1 (15 минут). |
3. Обучающиеся работают самостоятельно, читая и конспектируя новую тему (урок-презентация предварительно записан на компьютеры обучающихся, вопросы для конспектирования определены учителем). Здесь же ученики могут познакомиться с текстами программ, в которых используется оператор присваивания Приложение 2 (20 минут). |
Второй урок |
4. Обучающиеся работают у доски, выполняя упражнения (12-15 минут). |
1. Учитель проводит контроль знаний в форме теста. Программа-тест предварительно записывается на компьютеры обучающихся. Оценка выставляется программой. Приложение 5 (10 минут). |
5. Ученики выполняют небольшую самостоятельную работу по карточкам, либо пишут и отлаживают программу на АЯП Паскаль, в которой используется оператор(ы) присваивания (учитель называет номера карточек с заданиями). За работу учащиеся получают оценку. Приложение 3 . Приложение 4 (15 минут). |
Домашнее задание. Ученикам предлагается написать текст простой программы на АЯП Паскаль, в которой используется оператор(ы) присваивания (для тех учеников, которые не успели выполнить задание в классе). |
Выводы:
Урок № 1 (2 часа). Переменные и константы. Оператор присваивания
Проверка домашнего задания.
2. Новая тема: «Переменныые и константы. Опреатор присваивания»
Переменная –
это имя области
памяти (размер области зависит от типа данных), в
которой хранится значение, присвоенное
переменной. Переменную можно сравнить с ящиком, в
котором находится значение (лучшее сравнение с
многоквартирным домом, т. к. из ящика можно
извлечь что-то и это будет последним, т. е. ящик
остаётся пустым, а переменная, даже если ею
воспользовались, остаётся в области памяти.).
Константа –
фиксированные
одиночные числовые или текстовые значения,
которые не могут изменяться в ходе выполнеия
программы.
Оператор присваивания.
Один из
наиболее часто используемых операторов оператор
присваивания.
Общий вид оператора
присваивания:
имя переменной:= выражение ;
Выражение может быть и конкретным значением (т.е. число целое или вещественное, например, 22 или 2.5, символьная величина: "ABC", логическая величина: TRUE или FALSE), и некоторым выражением (величины + операции над ними), результат которого будет присвоен переменной в левой части.
ПРИМЕРЫ:
PAG:= 10;
(конкретное значение в виде
числа);
X:= X + 1;
(выражение);
C:= B;
(имя переменной);
G:= ‘ПРИВЕТ‘; (конкретное значение
символьное);
X:= (-A + SIN(Y) – 4 * B * X) / (2 * C);
(математическое
выражение);
Y:= TRUE;
(конкретая логическая величина).
В математике выражениеа = в означает,
что вычисленные значения для а и в должны быть
равными.
В программировании А:= В понимается так, что
значение, хранимое в области памяти с именем
В, помещается в область памяти
с именем А. Поэтому обратное выражение
В:= А даёт другой результат.
Пример: в А и в В помещаются значения 5 и 9
соответственно.
А: = 5;
В: = 9
а) Результат операции А:= В;
б) Результат операции В:= А;
Далее ещё одно существенное различие между
знаком равенства и оператором присваивания: А
= А + 1;
В математике такое выражение просто
бессмысленно, поскольку тождество ложно. Не
существует таких числовых значений А, для
которых оно было бы справедливо. В
программировании это означает, что к значению,
хранимому в ячейке А, прибавляется 1, и вновь
получаемое значение заменяет старое в ячейке А.
Например, если до выполнения этого оператора А
имело значение 5, то после выполнения будет равно
6.
Следующее отличие: математическое выражение А + 9 – В = Х вполне обосновано и может означать, что при подстановке некоторых чисел вместо А и В в левую часть выражения вы получите Ч. В то же время в программировании это выражение лишено смысла, поскольку левая часть выражения должна содержать имя области памяти, которой присваивается значение, вычисляемое в правой части. Если же вы попытаетесь вставить такое выражение в свою программу, то получите сообщение об ошибке, поскольку имя переменной А + 9 – В не поймёт .
записать в общепринятой форме:
(– b + sqrt(sqr(b) – 4 * a * c))/(2 * a);
a/b * (c + d) – (a – b)/b/c + 1E – 8;
Список литературы:
Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. Рассмотрим фрагмент кода, с использованием операции присваивания.
Int value = 256; value = value + 256; // обычное выражение с использованием двух операций: = и + value += 256; // сокращённое эквивалентное выражение с использованием операции присваивания
В строке 2 переменной value присваивается значение 512, полученное в результате суммы значения содержащегося в переменной value с числом 256. В строке 3 выражение выполняет аналогичную операцию, что и в строке 2 , но выражение записано в упрощённом виде. В этом выражении присутствует операция присваивания со знаком плюс += . Таким образом, операция += суммирует значение переменной value co значением, которое находится правее: 256, и присваивает результат суммы этой же переменной. Как видно из примера оператор в строке 3 короче оператора в строке 2 , хоть и выполняет аналогичную операцию. Так что, если некоторую переменную нужно изменить, то рекомендуется использовать операции присваивания.
В С++ существует пять операций присваивания, не считая основную операцию присваивания: = .
Договоримся называть операции присваивания через дефис, чтобы было понятно о какой именно операции идёт речь. В таблице 1 наглядно показаны примеры использования операторов присваивания в языке программирования С++.
Операция | Обозначение | Пример | Экв.пример | Пояснение |
---|---|---|---|---|
операция присваивания-сложения | += | var += 16 | var = var + 16 | Прибавляем к значению переменной var число 16, результат суммирования сохраняется в переменной var |
операция присваивания-вычитания | -= | var -= 16 | var = var — 16 | Вычитаем из переменной var число 16, результат вычитания сохраняется в переменной var |
операция присваивания-умножения | *= | var *= 16 | var = var * 16 | Умножаем значение переменной var в 16 раз, результат умножения присваивается переменной var |
операция присваивания-деления | /= | var /= 16 | var = var / 16 | Делим значение переменной var на 16, результат деления присваивается переменной var |
операция присваивания-остатка от деления | %= | var %= 16 | var = var % 16 | Находим остаток от деления и сохраняем его в переменной var |
Разработаем программу, которая будет использовать операции присваивания.
// assignment.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include
Для начала в строке 9 была объявлена переменная value , и инициализирована значением 256. В строках 11, 13, 15, 17, прописаны операции присваивания – сложения, вычитания, умножения и деления соответственно. После выполнения каждой операции присваивания оператор cout печатает результат. Результат работы программы (см. Рисунок 1).
Value = 256 value += 256; >> 512 value -= 256; >> 256 value *= 2; >> 512 value /= 8; >> 64 Для продолжения нажмите любую клавишу. . .
Рисунок 1 – Операции присваивания в С++
На рисунке 1 наглядно показаны примеры выполнения операций присваивания, а также показан результат выполнения соответствующей операции присваивания.
Основное назначение программы состоит в выполнении тех действий по обработке данных, которые требуются для решения поставленной задачи. Как правило, решение любой задачи представляет собой процесс формирования результатов из заданных правил и исходных данных . Правила формирования результатов задаются на языке Паскаль с помощью выражений .
Оператор присваивания определяет процесс вычисления нового значения переменной с помощью выражения и запоминание полученного результата в ОП.
Выражение – это правило (формула) для вычисления нового значения . Выражение строится из операндов, операций и круглых скобок , с помощью которых можно задать требуемый порядок выполнения его операций. В качестве операндов могут быть константы, переменные и функции. Результатом выполнения выражения является значение арифметического или логического типа, строка или множество. Тип результата определяется как типом операндов, так и видом операций, выполняемых над операндами. Над различными типами данных допустимы различные совокупности операций. К моменту вычисления выражения должны быть известны значения всех входящих в него переменных.
Форма оператора присваивания:
где A – имя переменной (левая часть оператора присваивания);
B – выражение для вычисления нового значения (правая часть оператора присваивания). Тип результата выражения должен быть совместим с типом переменной A.
Правила выполнения оператора присваивания:
1) вычисляется выражение правой части оператора присваивания;
2) результат присваивается переменной левой части оператора: копируется в область оперативной памяти, выделенную переменной левой части оператора присваивания.
Примеры. 1. Традиционное представление арифметического выражения
Z:= (X +Y) + (X – Y)
(C – 0.5) (X*A)
На Паскале: Z:= (X +Y) / (C – 0.5) + (X – Y) / (X*A) ;
2. Традиционно: Ai = Bi+1 + Ci, j ; На Паскале: A [ I ] := B [ I + 1 ] + C [ I, J ];
В алгебре нет аналогов следующих операторов: I:= I + 1; X:= X + DX; С помощью данных операторов переменные I и X получают приращения равные соответственно 1 и DX.
Операнды в выражениях соединяются знаками операций, которые могут быть одноместные (например, +X, -Y, NOT Z; где NOT – не) или двухместные (например: X + Y, A * B, C < D, E OR F, где OR – или, E AND F, где AND – и).
Операции различаются по степени приоритета:
1) одноместные операции (+, -, NOT);
2) мультипликативные (размножающие) операции (*, /, DIV (ц/деление), MOD (остаток ц/деления), AND, SHL (сдвиг влево), SHR (сдвиг вправо);
3) аддитивные (суммирующие) операции: +, -, OR, XOR (исключить ИЛИ);
4) операции отношения: =, <>, <, <=, >=, >, IN (В) – принадлежность множеству.
Если нет скобок, операции одного уровня приоритета (ранга) выполняются в последовательности их написания слева направо. Операции различных рангов выполняются в последовательности их приоритета.
Последовательность вычисления выражений:
1) Сначала полностью вычисляются выражения в скобках, начиная с самых внутренних;
2) Операции одного ранга (однородные) выполняются последовательно слева направо;
3) При неоднородных операциях последовательность выполнения операций следующая:
a) значения функций;
b) одноместные операции (например, -х, +а);
c) двухместные операции в порядке их приоритета.
Выражения на Паскале пишут на одном уровне, без изменения уровня написания индексов массивов. При написании выражений нельзя:
1) пропускать знак * - умножения;
2) при переносе выражения на следующую строку повторять знак арифметической операции.
При написании выражений допускается:
1) не писать + в одноместной операции, т.е. можно писать A:= X, а не A:= +X;
2) делать пробелы между операндами, знаками операций и скобками;
3) перенос (продолжение) выражения на следующую строку, не разрывая идентификатора, ключевых слов и чисел;
4) использовать лишние скобки для удобства чтения выражений.