5. Операторы языка в Turbo Pascal 7
Операторы языка описывают некоторые алгоритмические действия, которые необходимо выполнить для решения задачи. Тело программы можно представить как последовательность таких операторов. Идущие друг за другом операторы программы разделяются точкой с запятой.
Все операторы языка Паскаль можно разбить на две группы: простые и структурированные.
5.1. Простые операторы
- оператор присваивания;
- обращение к процедуре;
- оператор безусловного перехода GOTO;
- пустой оператор.
Обращение к процедуре будет рассмотрено в п. 10.1, остальные — в данном разделе.
5.1.1. Оператор присваивания
С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа — выражение, значение которого вычисляется перед присваиванием.
Турбо Паскаль. Оператор присваивания, перехода, простой, составной. Урок 10
Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. Тип выражения и тип переменной (или функции) должны быть совместимы для присваивания (см. п. 9.3). 1
X := Y;
Z :=А + В;
Res := (I>0) and (I
5.1.2. Оператор безусловного перехода GOTO. Использование меток
- целым числом в пределах от 0 до 9999;
- обычным идентификатором.
Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например:
label 1, 2, Metka;
Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием.
Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат, и т. д. Более подробно о таких ограничениях см. [1].
Пример. Найти частное от деления целых чисел.
program EXAMPLE4; |
label |
Out; |
var |
X, Y, Res: Integer; |
begin |
Write(‘Введите делимое: ‘); |
ReadLn(X); |
Write(‘Введите делитель: ‘); |
ReadLn(Y); |
if Y = 0 then |
begin |
WriteLn(‘Деление на ноль!’); |
goto Out; |
end; |
Res:=X div Y; |
WriteLn(‘Частное равно: ‘,Res); |
Out: |
end. |
Информатика 8 класс: Оператор присваивания и выражения в Паскале
5.1.3. Пустой оператор
Пустой оператор не выполняет никакого действия и никак не отображается в программе (за исключением, быть может, метки или точек с запятыми, отделяющих пустой оператор от предыдущих или последующих операторов). Он может потребоваться для осуществления на него безусловного перехода (см. пример в п. 5.1.2).
Источник: www.5byte.ru
Язык программирования TurboPascal
Turbo Pascal. Программирование арифметических выражений
Оператор присваивания
Оператор присваивания является одним из основных операторов любого языка программирования.
Оператор присваивания предназначен для присваивания переменной значения выражения.
Формат оператора присваивания:
В операторе присваивания слева от знака присваивания «:=» записывается переменная, а справа – выражение, численное значение которого присваивается этой переменной.
Выполнение оператора присваивания приведет к вычислению выражения и присваиванию значения выражения переменной.
Обязательным является требование, чтобы выражение и переменная были совместимы по присваиванию.
Например, оператор присваивания
означает, что переменной y присваивается число, полученное в результате вычисления выражения x+h/2 при известных числовых значениях переменных x и h .
Следует обратить внимание, что всем переменным в правой части оператора присваивания ранее уже были присвоены значения предыдущими операторами, например,
Здесь переменной t присваивается значение, которое до этого момента имела переменная t, плюс 1. Если переменная t имела до выполнения этого оператора значение равное 7, то после исполнения оператора t:=t+1 значение переменной будет равно 8.
Арифметические выражения
Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними.
Правила записи и смысл арифметических выражений в Паскале почти не отличаются от обычной математической записи.
В арифметических выражениях используются следующие операции и соответствующие знаки:
Операция | Знак операции |
Сложение | + |
Вычитание | — |
Умножение | * |
Деление | / |
Деление целых чисел | div |
Остаток от деления целых чисел | mod |
Операции +, -, *, / имеют очевидный смысл. Результатом операции div будет целое значение, равное целой части результата деления первого числа на второе. Результатом операции mod будет целое значение, равное остатку от деления (но не дробной части).
Примеры арифметических операций:
Var
a,b,c:integer;
Begin
a:=10; b:=3;
c:=a mod b;
c:= a div b;
b:=a+b;
End.
Арифметические операции выполняются в порядке старшинства: сначала вычисление функции, затем умножение, деление, сложение, вычитание.
Если последовательность выполнения операций не определяется их старшинством, действия выполняются слева направо. Желаемый порядок выполнения операций всегда может быть задан соответствующим образом расставленными круглыми скобками. Допускается ставить лишние круглые скобки, если это упрощает чтение формулы.
Рассмотрим арифметическое выражение
В таблице приведен порядок выполнения операций:
№ | Операция | № | Операция |
1 | a*x | 7 | -a*x*x+b/x*c+y |
2 | a*x*x | 8 | c*n |
3 | -a*x*x | 9 | (a-b) |
4 | b/x | 10 | c*n/(a-b) |
5 | b/x*c | 11 | -a*x*x+b/x*c+y-c*n/(a-b) |
6 | -a*x*x+b/x*c |
ЗАМЕЧАНИЕ. Все данные, входящие в арифметическое выражение, должны быть одного типа.
Исключение составляют только константы и переменные целого типа (integer), которые разрешается использовать в выражениях вещественного типа (real). Если в выражении используются данные целого и вещественного типа, результат операции будет вещественного типа. В других случаях необходимо выполнять преобразование данных.
Пример. Пусть переменные x и y описаны следующим образом:
var
x:integer;
y:real;
Рассмотрим оператор y:= x+2 , в котором используются переменные целого, вещественного типов и константа. Результат операции будет вещественного типа, поэтому оператор y:=x+2; является допустимым, хотя справа от присваивания стоит целая переменная и константа;
Следующие операторы являются ошибочными:
Для обеспечения совместимости типов необходимо выполнять преобразования данных. Для преобразования Real в Integer имеются две функции:
Round() – округляет Real до ближайшего целого;
Trunc() – усекает Real путем отбрасывания дробной части.
Правильная запись рассматриваемых операторов: x:=y+2; и x:=y/x; имеет вид:
x:=round(y)+2;
x:=round(y/x);
x:=trunc(y)+2;
x:=trunc(y/x);
Программируя арифметические выражения, нужно иметь в виду следующие основные правила:
- Два знака арифметических операций нельзя писать рядом. Например, следующие записи будут неправильными:
+–a –b — следует писать +(–a) –b
a*–b — следует писать a*(–b)
- Знак умножения опускать нельзя, например, при записи произведения: a*b и 2*n , запись ab и 2n будет неправильной, так как ab воспринимается как идентификатор, а запись 2n не является идентификатором, потому что начинается с цифры.
- В арифметических выражениях допускается использовать только круглые скобки. Количество открывающих круглых скобок должно соответствовать количеству закрывающих круглых скобок. Применение фигурных и квадратных скобок запрещается, так как они имеют особое значение.
- Все данные, входящие в выражения должны быть одного типа. Если в выражении используются данные целого и вещественного типа, результат операции будет вещественного типа.
В арифметических выражениях могут использоваться различные элементарные функции. В языке Турбо Паскаль существуют стандартные функции. Пользователь может не знать, как вычисляется стандартная функция, ему достаточно правильно записать имя функции и ее аргумент. Наиболее часто используемые стандартные функции приведены в таблице:
Функция | Назначение |
Abs(x) | Абсолютное значение аргумента x |
Sqr(x) | Вычисляет квадрат аргумента x |
Sqrt(x) | Вычисляет квадратный корень аргумента x |
Exp(x) | Возвращает экспоненту аргумента e x (степень числа e=2,72) |
Ln(x) | Вычисляет натуральный логарифм аргумента x |
Pi | Значение числа p=3.1415926 |
Frac(x) | Дробная часть числа x |
Int(x) | Целая часть числа x |
Sin(x) | Синус аргумента x (угол в радианах) |
Cos(x) | Косинус аргумента x (угол в радианах) |
Arctan(x) | Арктангенс аргумента x (угол в радианах) |
Randomize | Инициализация генератора случайных чисел |
Random(x) | Если x отсутствует, то значением функции является случайное число типа real из диапазона 0 |
В языке Турбо Паскаль нет операции возведения в степень. При необходимости ее использования можно воспользоваться следующей зависимостью:
Примеры записи простых арифметических выражений и операторов присваивания приведены в таблице:
Обычная математическая запись | Запись на Турбо Паскале |
x/(y*z) или x/y/z | |
y*x/z | |
(x+a)/(y+b) | |
1/(m*sqrt(a+b)) | |
x1:=(-b+sqrt(b*b-4*a*c))/(2*a) | |
y:=sin(x) | |
sqr((x+y-z)/2/a) |
Типичные ошибки в записи выражений:
4x+1 Пропущен знак умножения между 4 и x
a+sinx Аргумент x функции sinx не заключен в скобки
((a+b)/sqr(c*7) не хватает закрывающей скобки
ЗАДАЧА2 . Вычислить корни квадратного уравнения
по известным формулам
Предположим, что дискриминант этого уравнения больше нуля и уравнение имеет только действительные корни. Программа нахождения корней уравнения приведена ниже.
Program a2;
Var
X1:real;
X2:real;
D:integer;
A:integer;
B:integer;
C:integer;
Begin
Write(‘Введите коэффициенты a,b,c:’);
Readln(a,b,c);
D:=sqrt(b*b-4*a*c);
X1:=(-b+d)/(2*a);
X2:=(-b-d)/(2*a);
Write(‘Корни уравнения равны: ’, x1:8:2, x2:8:2);
End.
Результаты работы программы:
Введите коэффициенты a,b,c:2 –6 4
Корни уравнения равны: 2.00 1.00
Источник: www.turbopro.ru
Что делает оператор присваивания в этой программе турбо паскаль
Оператор присваивания используется для передачи переменной какого-либо значения. Синтаксис оператора:
A:=B; (Здесь переменной A передается значение переменной B)
A:=3; (Здесь переменной A передается значение 3)
d:=3*f-sin(b)+k; (Здесь вычисляется значение выражения, стоящее справа от знака присваивания, после чего его значение передается переменной d)
Данные передаются «справа налево», то есть в левой части оператора должно стоять имя переменной, в которую заносится результат. Например, операторы A:=B; и B:=A; имеют разный смысл. В первом случае переменная A принимает значение переменной B, теряя свое предыдущее значение, а во втором случае (B:=A) переменная B принимает значение переменной A, теряя свое предыдущее.
Пример 2. Составить программу вычисления плотности населения страны по введенным данным о численности населения и площади территории страны.
Нам понадобятся 3 переменные: nas — численность населения, ter — площадь территории страны, pl_nas — плотность населения. Переменная nas будет целого типа, так как количество людей не может быть дробной величиной, а ter и pl_nas — вещественного типа, так как они могут принимать и дробные значения. Чтобы найти плотность населения, нужно численность населения поделить на площадь территории, т.е. . Но перед этим переменные nas и ter надо ввести при помощи оператора ввода readln. Составим программу:
Begin writeln(`Введите население и территорию страны`);
Writeln(`Плотность населения страны: `,pl_nas)
Пример 3. Вычислить значение выражения .
Нам понадобится 3 переменные x, a и y. Все они вещественного типа. Переменные x и a будем вводить с клавиатуры, а y вычислять.
Begin writeln(`Введите переменные x и a`);
Writeln(`Значение переменной y= `,y)
Работа в программе Turbo Pascal
Запустите программу Turbo Pascal. Перед вами откроется синий экран с верхней строкой меню. Во второй строке обычно пишется имя файла с программой, в данном случае открыт новый пустой файл, который еще не сохранен. Так что пока во второй строке записано вместо имени файла noname.pas (noname- `безымянный’, pas — расширение файлов, созданных в Turbo Pascal).
Наберите программу из первого примера. Чтобы запустить ее, нужно нажать Ctrl-F9. Введите необходимые данные (а именно, в данном случае это значения переменных nas и ter через пробел) и нажмите Enter. Перед вами появилось снова окно Turbo Pascal c набранной вами программой. Программа выполнилась, но чтобы просмотреть результат выполнения программы, нужно нажать Alt-F5.
Посмотрев результат, нажмите любую клавишу. Тем самым вы вернетесь снова к тексту программы. Сохранить программу можно при помощи F2 или команды меню File — Save. Сохраните свою программу, допустим, под именем pr1.pas. Создать новую программу можно при помощи команды меню File — New.
Наберите вторую программу, проверьте ее и сохраните под новым именем, допустим, pr2.pas. Чтобы открыть первую программу, нужно воспользоваться командой меню File — Open и выбрать имя той программы, которую необходимо открыть, и нажать Enter.
Чтобы выйти из Turbo Pascal, необходимо нажать Alt-X или воспользоваться командой меню File — Exit.
Источник: studbooks.net
§ 17. Оператор присваивания, ввод и вывод данных
Сначала вычисляется выражение, затем полученное значение присваивается переменной. В первом примере приведен арифметический оператор присваивания. Здесь х — переменная вещественного типа. Во втором примере — логический оператор присваивания. Здесь b — переменная типа Boolean.
Типы переменной и выражения должны совпадать. Из этого правила есть одно исключение: переменной вещественного типа можно присваивать значение целочисленного выражения. В таком случае значение целого числа преобразуется к формату с плавающей запятой и присвоится вещественной переменной.
Ввод и вывод данных
Под вводом понимается передача данных с внешнего устройства компьютера в оперативную память. При выводе данные передаются из оперативной памяти на внешнее устройство (рис. 3.11).
Рис. 3.11. Ввод и вывод
Операция ввода называется чтением и выполняется с помощью оператора Read. Вывод называется записью, и для его выполнения используется оператор Write.
К внешним устройствам относятся устройства ввода и вывода (клавиатура, монитор, принтер и др.) и устройства внешней памяти (магнитные и оптические диски, флеш-память и др.). Данные на внешних устройствах организованы в файлы.
Для внешних запоминающих устройств (ВЗУ) файл — это поименованная область памяти этого устройства. В файлы на ВЗУ можно записывать данные по команде Write и можно читать данные из файлов по команде Read. На одном устройстве ВЗУ может храниться множество файлов одновременно. Правила именования файлов на ВЗУ определяются операционной системой. Имена для файлов, создаваемых пользователем, задает сам пользователь.
Устройства ввода с клавиатуры и вывода на экран монитора являются однофайловыми устройствами. Считается, что с клавиатурой связан один системный файл с именем INPUT. Поэтому ввод с клавиатуры равнозначен чтению из файла INPUT. С монитором связан системный файл, который называется OUTPUT. Вывод на экран — это запись данных в файл OUTPUT .
Ввод с клавиатуры производится путем обращения к стандартной процедуре Read в следующем формате:
Чтение происходит из системного файла INPUT, всегда доступного для любой программы. Элементами списка ввода могут быть переменные символьного типа, числовых типов и строковые переменные.
При выполнении этого оператора происходит прерывание исполнения программы, после чего пользователь должен набрать на клавиатуре значения переменных а, Ь, с, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце нажимается клавиша Enter. Значения следует вводить в строгом соответствии с синтаксисом Паскаля.
Набираем на клавиатуре:
Если в программе имеется несколько подряд идущих операторов Read, то данные для них можно вводить последовательно (на экране отражаются в одной строке) и лишь в конце ввода нужно нажать клавишу Enter.
Набираем на клавиатуре и видим на экране:
Другой вариант оператора ввода с клавиатуры имеет вид:
Здесь слово «ReadLn» означает read line — «читать строку». Нажатие клавиши Enter в процессе ввода вырабатывает признак «конец строки», и данные при выполнении следующего оператора ввода будут отражаться на экране с начала новой строки. Если в предыдущем примере заменить операторы Read на ReadLn:
то ввод значений будет происходить из двух строк, отраженных на экране:
Вывод на экран производится по оператору обращения к стандартной процедуре:
Здесь элементами списка вывода могут быть выражения различных типов (в частности, константы и переменные).
Например:
Если, например, А = 5 и В = 7, то на экране получим:
При выводе на экран нескольких значений в строку, они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении. В приведенном примере предусмотрен пробел после слова «Сумма».
Второй вариант процедуры вывода на экран:
Write line — «писать строку». Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn, записанный без параметров, вызывает перевод строки.
В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Формат отделяется от соответствующего ему элемента двоеточием. Если указатель формата отсутствует, то машина выводит значение по определенному правилу, предусмотренному по умолчанию.
Линейная программа. Следование — простейшая алгоритмическая структура. Программа, реализующая следование, называется линейной программой. В линейной программе могут присутствовать только операторы присваивания, ввода, вывода и обращения к процедурам. Заметим, что операторы Read и Write являются обращениями к стандартным процедурам Паскаля.
Одним из обязательных условий хорошего стиля программирования является организация диалога между компьютером и пользователем. Такое диалоговое взаимодействие называется интерактивным интерфейсом.
Пример 1. Составим линейную программу, по которой в диалоге будут вводиться два целых числа и вычисляться их произведение.
Тестирование этой программы отразится на экране следующим образом.
Числа 13 и 28 вводятся пользователем с клавиатуры, всё остальное автоматически выводится по программе.
Пример 2. Дано натуральное трехзначное число. Требуется вычислить сумму его цифр. Например, если дано число 325, то в результате должно получиться: 3 + 2 + 5 = 10.
Сначала составим программу, а потом ее прокомментируем.
В этой программе использованы две операции целочисленной арифметики: div — целочисленное деление и mod — остаток от целочисленного деления (см. табл. 3.3). Остаток от деления на 10 (mod) выделяет младшую цифру числа, а целочисленное деление на 10 (div) отбрасывает младшую цифру.
Чтобы лучше понять работу программы, выполним ее трассировку. В курсе 9 класса вам уже приходилось строить трассировочные таблицы. Для программы SumCifr таблица будет выглядеть следующим образом:
Выполнение программы на компьютере приводит к такому же результату.
Заметим, что эту задачу можно решить с помощью всего одного оператора присваивания:
Система основных понятий
Вопросы и задания
- Назовите последовательность действий при выполнении оператора присваивания.
- Сформулируйте правило соответствия типов для оператора присваивания. Какое существует исключение из этого правила?
- Если у — вещественная переменная, а n — целая, то какие из следующих операторов присваивания правильные, а какие — нет?
Источник: tepka.ru