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

Синтаксис операторов присваивания.




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

присваивания:

<переменная >: = < выражение >;

Выражение – это формула для вычисления значения. Она образуется из операн-

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

выступать переменные, константы, указатели функций.

Тип переменной в левой части оператора присваивания обычно должен совпадать с

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

пример, когда слева переменная вещественного типа, а справа выражение целого типа.

Выражения являются составной частью операторов.

В Паскале приоритеты выполнения операций следующие (в порядке убывания):

  • одноместный минус;
  • операция NOT;
  • операции типа умножения;
  • операции типа сложения;
  • операции сравнения (отношения).

Одноместный минус применим к операндам арифметического типа. Операция NOT

к операндам логических и целых типов. Если в одном выражении несколько операций

одного приоритета, то они выполняются, начиная слева. Приоритеты можно изменить, по-

ставив скобки. В логических выражениях необходимы скобки во избежание конфликта

типа по приоритету.

Например, если в выражении … (X > 5) AND (Y > 10) … не поставить скобки, то

будет синтаксическая ошибка, так как приоритет операции AND выше приоритета опера-

ций сравнения >.

<операции типа умножения> :: = * | / | div | mod | and

<операции типа сложения> :: = + | – | or | xor

<операции сравнения> :: = = | <> | < | > | <= | >= | in

Операции сравнения применимы для всех стандартных простых типов. Причем в

одном выражении возможно использование операндов различных типов. Результат срав-

нения всегда имеет логический тип.

Например, (5 + 6) < (5 – 6) = TRUE в результате даст FALSE, а NOT(8.5 < 4) будет

равно TRUE.

Сравнение строк символов выполняется слева направо посимвольно. Более корот-

кие строки дополняются пробелами справа.

 

 

Синтаксис операторов ввода-вывода.

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

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

Program Proizv2; Uses Crt;{Подключаем модуль Crt} Var number1, {переменная, в которой будет содержаться первое число} number2, {переменная, в которой будет содержаться второе число} rezult {переменная, в которой будет содержаться результат}: integer; Begin ClrScr;{Используем процедуру очистки экрана из модуля Crt} Write ('Введите первое число '); {Выводим на экран символы, записанные между апострофами} Readln (number1); {Введенное пользователем число считываем в переменную number1} Write ('Введите второе число '); {Выводим на экран символы, записанные между апострофами} Readln (number2); {Введенное пользователем число считываем в переменную number2} rezult:= number1 * number2; {Находим произведение введенных чисел и присваиваем переменной rezult} Write ('Произведение чисел ', number1, ' и ', number2, ' равно ', rezult); {Выводим на экран строчку, содержащую ответ задачи} Readln;{Процедура задержки экрана} End.

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

  • почему программу назвали Proizv2?
  • зачем в раздел Uses поместили модуль Crt?
  • какое назначение переменных number1, number2, rezult?
  • какой тип у этих переменных? что это значит?
  • если присвоить переменным number1 и number2 соответственно значение 5 и 7, то какую строчку выдаст компьютер при исполнении последней процедуры Write? Запишите ее в тетрадь.
  • в каких строчках у пользователя запрашиваются значения переменных?
  • в какой строчке происходит умножение чисел?
  • что делает оператор присваивания в этой программе?

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

Операторы Write и WriteLn

Мы уже использовали операторы 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 задержки не будет.

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

Задача. Найти среднее значение трех чисел.

Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.

Program Srednee; Uses Crt; Var First, Second, Third: integer; Sum: real; Begin ClrScr; Write (‘Введите первое число ‘); ReadLn(First); Write (‘Введите второе и третье числа через пробел ‘); ReadLn(Second, Third); Sum:= First + Second + Third; Sum:= Sum/3; Write (‘Среднее значение ‘, First, ‘, ‘,Second, ‘ и ‘, Third, ‘ равно ‘, Sum:5:2); ReadLn; End.

Наберите текст задачи и внимательно рассмотрите каждую строчку. Имя программы Srednee отражает содержание задачи. Кстати, договоримся о том, чтобы имя программы и имя файла, который содержит эту программу, совпадали. Далее идет подключение модуля Crt. В разделе Var описаны First, Second, Third как переменные целого типа, а Sum - действительного типа. Раздел операторов начинается со стандартной процедуры очистки экрана ClrScr (Clear Screen), которая находится в модуле Crt. Далее оператором Write мы выводим на экран сообщение ‘Введите первое число ‘, получив которое пользователь должен ввести число.

Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной.

Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.

Нажмите клавиши <Ctrl>+<F9>. Введите значения переменных 5, 7 и 12, на экране увидите следующее:

Среднее значение 5, 7 и 12 равно 8.00

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

Поделиться:





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



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