Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Оператор присваивания используется для сохранения результата вычисления выражения в переменной. Общий вид: переменная:= выражение;

Знак:= читается как "присвоить".

 

Работа оператора:

Сначала вычисляется выражение, стоящее справа от знака:=, затем результат записывается в переменную, стоящую слева от знака. Например, после выполнения оператора

k:=k+2;

текущее значение переменной k увеличится на 2.

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

 

Примеры:

1. Записать оператор присваивания, который позволяет вычислить расстояние между двумя точками на плоскости с координатами (x 1, y 1) и (x 2, y 2).

Ответ: d:=sqrt(sqr(x1–x2)+sqr(y1–y2));

2. Записать последовательность операторов присваивания, обеспечивающих обмен значениями переменных x и y в памяти компьютера.

Ответ: c:=x;

x:=y;

y:=c;

где с – дополнительная переменная того же типа, что x и y, через которую осуществляется обмен. Грубой ошибкой было бы, например, попытаться выполнить обмен операторами x:=y; y:=x; - ведь уже после первого из них мы имеем два значения y, а исходное значение x потеряно.

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

В данном разделе рассмотрим организацию ввода и вывода данных с терминального устройства. Терминальное устройство - это устройство, с которым работает пользователь, обычно это клавиатура и экран (дисплей).

Ввод данных

Для ввода исходных данных чаще всего используется процедуры Read и ReadLn. Общий вид записи операторов:

Read(A1,A2,...AK);ReadLn(A1,A2,...AK);

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

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

Работа операторов:

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

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

Readln отличается от Read только тем, что все переменные должны быть введены в одну строку экрана, Enter нажимается один раз в конце. Readln используется в основном для ввода строк текста, для ввода чисел лучше использовать Read, т.к. в этом случае пользователь может вводить данные более свободно (и в одну, и в несколько строк экрана).

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

Пример: нужно ввести данные для решения квадратного уравнения

var a,b,c:real;

....

read (a,b,c);

Например, a=1, b=4, c=2.5 На экране вводим:

1_4_2.5

_ означает пробел

означает нажатие Enter, переходим на следующую строку

или

2.5

или

4_2.5

Пробелов может быть и несколько.

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

Вывод данных

Для вывода результатов работы программы на экран используются процедуры:

Write(A1,A2,...AK);WriteLn(A1,A2,...AK);

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

Работа операторов:
Элементы списка выводятся в пользовательское окно программы. Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

Вещественные значения выводятся в экспоненциальной форме (с буквой E). Строки выводятся "как есть". После вывода работа программы продолжается со следующего оператора.

Оператор writeln отличается от write лишь тем, что после вывода значения последнего элемента списка выполняется перевод курсора на следующую строку экрана.

Примеры:

1) Нужно дать пользователю возможность ввести с клавиатуры число, затем программа возведет это число в квадрат и выведет результат на экран.

var a,a2:integer;

....

writeln ('Введите целое число:'); {это приглашение к вводу!}

read (a);

a2:=sqr(a);

writeln ('Квадрат числа=',a2);

Если ввести a=2, на экране будет напечатано

Квадрат числа=4

| ---курсор на следующей строке

 

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

readln;

который будет ждать нажатия клавиши Enter.

 

2) Нужно вывести результаты решения квадратного уравнения x1=1.5 и x2=2.5

write ('x1=',x1,'_x2=',x2);

-пробел здесь нужен, чтоб значение x1 не слилось со строкой 'x2='

на экране будет напечатано:

x1= 1.5000000000E+00 x2= 2.5000000000E+00|

-курсор остался в конце строки, т.к. использован write!

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

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...