Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

Умовний оператор if.

Оператор розгалуження if має дві форми: повну і коротку.

  1. Повна форма оператора розгалуження виглядає так:

if < логічний вираз > then < оператор 1>

else < оператор 2>;

Дія оператора. Якщо логічний вираз істинний, то виконується оператор 1, в протилежному випадку - оператор 2.

Приклад. Хай а = 5. Тоді в результаті виконання команд

if а < 7 then

begin

b := а - 2; с := 1 + 2 * а

end

else

begin

b := 2 + 5* а; с := 12 - 4 * (а - 3)

end;

отримаємо b = 3, с = 11.

Завдання. Обчисліть значення b і с, якщо а = 8.

  1. Коротка форма команди розгалуження if виглядає так:

if < логічний вираз > then < оператор>;

Дія оператора. Якщо логічний вираз істинний, то виконується оператор, інакше виконується оператор, який знаходиться після даної конструкції.

Приклад. Нехай х = 25. Тоді в результаті виконання команд

if х > 12 then у := 2 * х; z := 10;

if х < 5 then z := 10 + х / 2;

отримаємо у = 50, z = 10.

Задача2:

Скласти програму виведення на екран найбільшого з двох чисел.

PROGRAM prim1;

USES Crt;

var

x,y : real;

begin

ClrScr; (* очищення екрану *)

Writeln(‘Введіть два числа’);

Readln(x,y);

IF x>y THEN Writeln(x)

ELSE Writeln(y);

end.

Задача 3.

Розв’язати квадратне рівняння виду ax2 + bx +c = 0

План розв’язання задачі :

1. задати коефіціенти a,b,c.

2. обчислити значення дискримінанту.

3. перевірити значення дискримінанту, в залежності від отриманого результату, виконати ту або іншу дію.

program kvyr;

var

a,b,c : integer;

x1,x2,d : real

begin

writeln(‘введіть коефіцієнти квадратного рівняння’);

read(a,b,c);

d:=b*b-4*a*c;

if d>=0 then begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

writeln(‘корни x1=,x1,’ x2’,x2)

end

else if d=0 then writeln(‘x1=x2=’,-b/(2*a))

else writeln(‘немає розв’язку’);

end.

Оператор goto.

Оператор goto — це оператор безумовного переходу. Він призначений для зміни послідовності виконання операторів в програмі шляхом передачі управління деякому оператору з міткою.

goto <мітка>;

Мітка може стояти перед будь-яким оператором в програмі. Вона відділяється від оператора двокрапкою (:)

<мітка> : < оператор >;

Мітка може бути ідентифікатором або числом від 0 до 9999. Мітки потрібно наперед оголосити в розділі label:

label <список міток>;

Зауваження. Не можна передавати управління команді, яка знаходиться в середині підпрограми або в середині складової команди.

Вкладений if

Один оператор if може входити до складу іншого оператора if. В цьому випадку говорять про вкладеність операторів.

  • Варіант 1.

if <Умова1> then

if < Умова 2> then <Оператор 2.1>

else <Оператор 2.2>

else <Оператор1>;

  • Варіант 2.

if < Умова 1> then <Оператор 1>

else if < Умова 2> then <Оператор2>

else <Оператор3>;

  • Варіант 3.

if < Умова 1> then

if < Умова 2> then <Оператор1>

else <Оператор2>;

Якщо Умова 1, Умова 2... які перевіряються не впливають одна на одну, тобто послідовність їх обчислення не береться до уваги, в тексті програми їх рекомендується розташовувати в певному порядку. Умова, з найбільшою ймовірністю яка приймає значення true, повинна стояти на першому місці, з меншою імовірністю — на другому і т.д. Це прискорить виконання програми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]