четверг, 8 декабря 2022 г.

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

ОПЕРАТОРЫ WRITE И WRITELN

Write (англ. писать) - оператор, который используется для вывода информации на экран.
Оператор WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln (line - англ. линия, строка), то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.
Общий вид:
Write (список выражений)
WriteLn (список выражений)

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

Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.
Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.


ОПЕРАТОРЫ READ И READLN

Основное назначение ЭВМ - сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.
Общий вид:
Read(переменная, переменная...)
ReadLn(переменная, переменная...)

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

Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х - буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.

Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу <Enter> результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.

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

Задача 1. Составить программу "Диалог с компьютером"

Program Dialog;
Var A,g:String; n:integer;
Begin
Writeln('Я компьютер, а как зовут тебя?');
Readln(A);
Writeln('Рад познакомиться,',A);
Writeln('Как называется город, в котором ты живешь?');
Readln(g);
Writeln('Прекрасный город,',g);
Writeln('Сколько тебе полных лет?',A);
Readln(n);
Writeln('Хороший возраст,',n,'лет');
Writeln('Приятно было пообщаться',' ',A,' ','из города',g);
end.

ОПЕРАТОР ПРИСВАИВАНИЯ

A := B;
А - переменная; В - выражение
Типы переменной А и значение выражения В должны соответствовать друг другу. Если переменная А - целого типа, то выражение В должно иметь значение целого типа.
Сначала вычисляется значение выражения В, и его значение присваивается переменной А, то есть записывается в переменную А. 


Задача 2.  Вычислить сумму двух чисел и вывести на экран.
Program Summa2;
Var
x1, {переменная для хранения первого числа}
x2, {переменная для хранения второго числа}
sum {переменная для хранения результата вычисления}
: integer;
Begin {признак начала программы}
x1:= 3; {присваиваем переменной x1 значение 3}
x2:= 4; {присваиваем переменной x2 значение 4}   {складываем значения переменных x1 и x2 и результат присваиваем переменной sum}
sum:= x1 + x2;
Write (x1, '+', x2, '=',sum); {вывод примера на экран}
End. {признак конца программы}

Задача 3. Найти сумму, произведение, результат  деления суммы чисел a и b на с для любых значений a, b, c (с <> 0, т.е. с не равно 0).

Так как a, b, c -  любые целые числа, то их значения мы будем вводить с клавиатуры. В переменную р запишем произведение, в переменную s - значение суммы, в переменную d - результат деления. Так как результат деления может быть и не целым числом, то объявим его как вещественный тип.
program zadacha_3;
var a, b, c, s, p: integer; d: real;
begin
Writeln('Введите числа a, b, c <>0'};
Readln(a, b, c);
s:= a +b+c;
p:= a*b*c;
d:= (a+b)/c;
writeln('p=',p);
writeln('s=',s);
writeln('d=',d);
end.

Задача 4. Самостоятельно.
Написать программу, которая вводит с клавиатуры 4 числа и находит их среднее арифметическое.

Вопросы для самопроверки:

1. Найдите в этих программах заголовок, раздел описания переменных, признак начала программы, признак конца программы, тело программы, комментарий.
2. Что обозначает строчка: x1, x2, sum: integer;
3. Как вы понимаете запись: x1:= 3;
  4. Чему равно значение переменной sum после выполнения оператора:
sum:= x1 + x2;
  5. Сколько переменных используется в программе?
  6. Какого типа переменные?
 7. Какие из следующих последовательностей символов являются операторами присваивания?
а) X:=Y;
b) Min=K+1;
c) Summa+1:=X;
d) S:=S;
e) PR=120+2*B;
f) x2:='125*Y';
g) Y:=6>Z;