Назад Зміст Вперед

Складений оператор. Операторні дужки

Якщо при деякій умові потрібно виконати декілька операторів, то їх беруть у операторні дужки (begin end). Декілька операторів, взятих у операторні дужки, називаються складеним оператором. Якщо складений оператор стоїть після then, то символ «;» після end перед else не ставиться.

Приклади роботи оператору

Оператори, що виконуються, у програмі виділені жирним.

Програма Результат роботи програми
Program F1;
 var x,y:integer;
begin
 x:=10;y:=20;
 if x > y
then
  begin x:=1; y:=2 end
          else begin x:=2; y:=1;end;
 writeln(x,' ',y);

end.
2 1
Пояснення. Виконуються оператори, що стоять після else, а потім writeln
Program F2;
 var x,y:integer;
begin
 x:=10;y:=20;
 if x < y then
   begin x:=1; y:=2 end

          else begin x:=2; y:=1;end;
 writeln(x,' ',y);
end.
1 2
Пояснення. Виконуються оператори, що стоять після then, а потім writeln
Program F3;
 var x,y:integer;
begin
 x:=10;y:=20;
 if x < y then
   begin x:=1; y:=2 end

          else x:=2; y:=1;
 writeln(x,' ',y);

end.
1 1
Пояснення. Виконуються оператори, що стоять після then, а потім y:=1 та writeln. Оператор y:=1 виконується, бо він не відноситься до else
Program F4;
 var x,y:integer;
begin
 x:=10;y:=20;
 if x < y then
   begin x:=1; y:=2 end

          else begin x:=2; y:=1; end;
 x:=0; y:=0;
 writeln(x,' ',y);

end.
0 0
Не залежно від значень x та y відповідь завжди буде 0 0, бо оператори x:=0; y:=0 стоять після умовного оператору і виконуються при будь-який умові

Приклад 1

Дано три цілих числа. Знайдіть середнє арифметичне парних.

Знаходження середнього арифметичного

sa:=0; початкове значення
if k<>0 then sa:=s/k;
де s – сума чисел, а k – їх кількість

Дано: Дано три будь-яких цілих числа

Знайти: суму та кількість парних, а потім поділити суму на кількість

Змінні:

Вхідні:

Вихідні:

Проміжні:

Всі вхідні дані цілого типу (integer), тому сума теж цілого типу. Кількість завжди цілого типу. Середнє арифметичне дійсного типу (real), бо це результат ділення.

Алгоритм

  1. Введення чисел a, b, c.
  2. Встановлення початкового значення суми, кількості, середнього арифметичного s:=0; k:=0; sa:=0.
  3. Перевіряємо кожне число на парність:
  4. Чисел 3, отже, потрібно 3 перевірки, 3 неповних умовних оператора з операторними дужками.
  5. Для знаходження середнього арифметичного потрібно отриману суму поділити на отриману кількість. Але, якщо всі введені числа будуть непарні, ми отримаємо ділення на 0. Тому перед обчисленням середнього арифметичного потрібно перевірити значення кількості (k). Якщо k<>0, то знаходимо середнє арифметичне sa.
  6. Виведення sa на екран.

Програма

 Var a,b,c,s,k:integer;sa:real;
begin
 read(a,b,c); s:=0;k:=0;sa:=0;
 if a mod 2=0 then begin s:=s+a;k:=k+1;end;
 if b mod 2=0 then begin s:=s+b;k:=k+1;end;
 if c mod 2=0 then begin s:=s+c;k:=k+1;end;
 if k<>0 then sa:=s/k;
 writeln(sa:1:2);
end.

Приклади результатів роботи програми

Ввід Вивід
1 3 5 0.00
2 3 6 4.00
1 7 8 8.00
2 6 8 5.33

Блок-схема програми

Приклад 2

Дано два різних числа. Якщо число X < Y, то збільшити X на 1, у протилежному випадку збільшить обидва числа у 10 раз.

Дано: два будь-яких числа

Знайти: змінити ці числа, а потім вивести обидва числа на екран

Змінні:

Вхідні:

Вихідні:

Всі вхідні дані дійсного типу (real)

Алгоритм

  1. Введення чисел x, y
  2. Порівнюємо числа:
  3. Вивід x, y на екран.

Програма

 Var x,y:real;
begin
 read(x,y);
 if x < y then x:=x+1 else begin x:=x*10;y:=y*10;end;
w riteln(x:1:2,' ',y:1:2);
end.

Приклади результатів роботи програми

Ввід Вивід
1 3 2.00 3.00
5 2 50.00 20.00
4 4 40.00 40.00

Запам’ятати значення змінної X:

Z:=X; Z,X одного типу

Приклад 3

Дано два різних числа. Складіть програму, яка замінює менше з двох чисел їх сумою, а більше - їх добутком.

Дано: два будь-яких числа

Знайти: змінити ці числа, а потім вивести обидва числа на екран

Змінні:

Вхідні:

Вихідні:

Проміжні:

Всі дані дійсного типу (real).

Алгоритм

  1. Введення чисел x, y.
  2. Запам’ятаємо значення x у змінну z. Це потрібно зробити, бо:
  3. Порівнюємо числа:
  4. Виведення нових значень x, y на екран.

Програма

 Var x,y,z:real;
begin
 read(x,y); z:=x;
 if x         else begin x:=x*y;y:=y+z;end;
 writeln(x:1:2,' ',y:1:2);
end.

Приклади результатів роботи програми

Ввід Вивід
2 3 5.00 6.00
5 2 10.00 7.00
4 4 16.00 8.00

Приклад 4

Дано дійсні числа a, b, c. З’ясуйте, чи має рівняння ax2+bx+c=0 корені. Якщо так, то знайдіть їх. У іншому випадку надрукуйте повідомлення, що коренів немає.

Дано: три будь-яких дійсних числа, що є коефіцієнтами квадратного рівняння

Знайти: корені рівняння, якщо вони є

Змінні:

Вхідні:

Вихідні:

Проміжні:

Всі дані дійсного типу (real).

Алгоритм

  1. Введення чисел a, b, c.
  2. Обчислення дискримінанту.
  3. Перевіряємо дискримінант:

Програма

 Var a,b,c,d,x1,x2:real;
begin
 read(a,b,c); d:=b*b-4*a*c;
 if d<0 then writeln('коренів немає')
        else
  begin
    x1:=(-b+sqrt(d))/(2*a);
    x2:=(-b-sqrt(d))/(2*a);
    writeln(x1:1:2,' ',x2:1:2);
  end
end.

Приклади результатів роботи програми

Ввід Вивід
1 2 3 коренів немає
4 8 4 -1.00 -1.00
2 8 3 -0.42 -3.58

Блок-схема програми

Варіанти задач

  1. Дано числа x, y. Якщо числа X та Y кратні 5, то збільшить їх на 1, у протилежному випадку нічого не робити.
  2. Дано числа x, y. Якщо числа X та Y мають різні знаки, то їх подвоїти, у протилежному випадку піднести їх до квадрату.
  3. Дано числа x, y. Якщо число X у 3 рази більше за Y, то добути з обох чисел квадратний корінь, у іншому випадку піднести числа до квадрату.
  4. Дано 3 натуральних числа. Знайти середнє арифметичне тих, що менші за 100.
  5. Дано два різних числа. Менше з цих чисел замініть 0, а до більшого додайте 1.
  6. Дано дійсні числа a, b. Якщо a>=b, то кожне число збільшить на 5, у іншому випадку числа зменшіть на 1.
  7. Дано дійсні числа a, b. Якщо a<=b, то перше число збільшіть у два рази, а до другого додайте 5. У іншому випадку числа зменшіть на 5.
  8. Дано два числа. Якщо корінь квадратний з другого числа менше першого числа, то збільшіть перше число вдвічі, а до другого додайте 5,. У  протилежному випадку від першого числа відніміть 10, а друге збільшить у три рази.
  9. Дано числа x, y. Якщо x належить інтервалу [1, 2], то збільшити його на одиницю, а y присвоїти 0. У протилежному випадку, збільшити y на одиницю, а x присвоїти 0.
  10. Дано дійсні числа a, b, c. Якщо a>=b>=c, то кожне число збільшіть у два рази. У інших випадках всі числа замініть їх модулями.
  11. Дано ціле число x. Якщо воно додатне, знайдіть x2 та , у іншому випадку надрукуйте слова “не можу”.
  12. Дано ціле число. Якщо воно трьохзначне, знайдіть та надрукуйте його цифри у стовпчик, у іншому випадку надрукуйте слова “не можу”.
  13. Дано ціле число. Якщо воно трьохзначне, знайдіть добуток його цифр, у іншому випадку надрукуйте слова “не можу”.
  14. Дано ціле число. Якщо воно чотирьохзначне, знайдіть суму квадратів його цифр, у іншому випадку надрукуйте слова “не можу”.
  15. Дано два числа. Складіть програму, що замінює менше з цих чисел модулем різниці, а більше - модулем добутку цих чисел.
  16. Дано два числа. Складіть програму, що замінює більше з цих чисел подвоєним добутком, а менше - півсумою цих чисел.

Назад Зміст Вперед