Составной оператор в Паскале

обучение PascalABC

Составной оператор

Особенностью условного оператора или цикла в паскале является то, что по умолчанию в них может выполнятся только одна команда. Но если нам потребуется выполнить несколько команд в условном операторе либо в цикле, тогда их нужно как-то объединить.

Составной оператор — это объединение нескольких произвольных команд в один оператор.

Для записи составного оператора используют операторные скобки – это зарезервированные слова begin … end. Внутри команды (операторы) разделяются символом «точка с запятой» . Символом «;» перед заключительным end можно пренебречь.

составной оператор в паскале

Составной оператор часто называют блоком.

Фактически, весь раздел операторов, обрамленный словами begin… end, представляет собой один составной оператор. Поскольку зарезервированное слово end является закрывающей операторной скобкой, оно одновременно указывает и конец предыдущего оператора. Поэтому ставить перед ним символ «;» необязательно, и далее во всех примерах мы не будем этого делать.

 

Пустой оператор

Пустому оператору соответствует отсутствие записи на том месте, где по правилам должен быть какой-нибудь оператор.

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

Пустой оператор не включает никаких символов, не выполняет никаких действий и используется в двух случаях:

1. Для использования символа «;» после последней команды (оператора) в блоке:

begin
  c := 8;
  g := c;
end

Поскольку в языке Паскаль символ «;» разделяет операторы, то в приведенном выше коде считается, что после последней «;» находится пустой оператор. Таким образом, «;» перед end в блоке можно либо ставить, либо нет.

2. Можно использовать для отметки места, следующего за последней командой (оператором) в блоке:

label m;
begin
goto m;
  y := 10;
m:
end

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

Примеры решения задач

Рассмотрим несколько задач на составление программы с использованием составного оператора.

Задача 1. Составьте программу решения квадратного уравнения. Коэффициенты a, b и c вводятся с клавиатуры. На экране выводится информация о значении корней квадратного уравнения.

Решение:
Введем обозначения переменных для квадратного уравнения ax2+bx+c=0:

  • a, b, c — коэффициенты уравнения;
  • d — дискриминант;
  • x, x1, x2 — корни уравнения.

Все величины могут быть как целыми так и дробными. Поэтому для них определяем общий тип — действительные числа (real).

program kvur;
  var a, b, c, d, x, x1, x2,: real;{описание переменных}
begin
  writeln ('Решение квадратного уравнения');
  write ('Введите коэффициенты a, b, c через пробел');
  readln (a, b, c);{ввод значений коэффициентов}
    d:=b*b-4*a*c; {вычисление дискриминанта}
  if d<0 then writeln ('Корней нет'); {вывод результата}
  if d=0 then 
           begin x:=-b/2*a; {вычисление единственного корня}
           writeln ('Корень уравнения x=', x:9:3) {вывод результата}
           end; 
  if d>0 then
           begin
             x1:=(-b+sqrt(d))/(2*a);{вычисление первого корня}
             x2:=(-b-sqrt(d))/(2*a);{вычисление второго корня}
             writeln ('Корни уравнения:');
             writeln ('x1=', x1:9:3);{вывод результата}
             writeln ('x2=', x2:9:3) {вывод результата}
           end
end.

Задача 2. Составьте программу решения линейного уравнения. Коэффициенты a, b вводятся с клавиатуры. На экране выводится информация о значении корня линейного уравнения.

Решение:
Введем обозначения переменных для квадратного уравнения ax+b=0:

  • a, b — коэффициенты уравнения;
  • x — корень уравнения.

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

program lin_uravnenie;
var
a,b,x:real; {описание переменных}
begin
  writeln('Решение линейного уравнения');
  write('Введите коэффициенты a и b через пробел');
  readln(a,b); {ввод значений коэффициентов}
if a<>0 then
          begin
            x:=-b/a; {вычисление корня}
            writeln('Корень уравнения x=',x:9:3);{вывод результата}
          end
          else if b<>0 then writeln ('Корней нет') {вывод результата}
                        else writeln(' x - любое число'); {вывод результата}
end.
Рейтинг
( 63 оценки, среднее 4.75 из 5 )
Понравилась статья? Поделиться с друзьями:
Инфоучка
Добавить комментарий

+ eight = sixteen

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: