Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Програмування Посібник.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
284.16 Кб
Скачать

3.2 Приклади розробки програм розгалуженого алгоритму

1. Скласти програму визначення мінімального і максимального з трьох цілих чисел x,y,z .

PROGRAM R2;

VAR

X,Y,Z,MIN,MAX:INTEGER;

BEGIN

WRITELN (‘введите числа X,Y,Z’);

READLN (X,Y,Z);

IF X<Y

THEN MIN:=X

ELSE MIN:=Y;

IF Z<MIN

THEN MIN:=Z;

IF X>Y

THEN MAX:=X

ELSE MAX:=Y;

IF Z>MAX

THEN MAX:=Z;

WRITELN (‘значение MAX=’,MAX);

WRITELN (‘значение MIN=’,MIN)

END.

2. Скласти програму обчислення значень функції:

ln/x/ , якщо х≤0

y= ex+1-sinx , якщо 0х10

x2 +cosx , якщо х10

де: х – ціле число.

/*вычисление значения функции*/

PROGRAM R1;

VAR

X:INTEGER;

Y:REAL;

BEGIN

READLN (X);

IF X<=0

THEN Y:=LN(ABS(X))

ELSE IF X>=10

THEN Y:= SQR(X)+COS(X)

ELSE Y:= EXP(X+1)-SIN(X);

WRITELN (‘значение Y=’,Y:8:4)

END.

3. Скласти програму обчислення корнів квадратного рівняння ax2+bx+c=0 x1,x2= , де D=b2-4ac, пpи D0

/*Вычисление корней квадратного уравнения*/

Рrogram kv;

var

a,b,c,d,x1,x2:real;

begin

readln (a,b,c);

d:=sqr(b)-4*a*c;

if d>=0

then begin

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

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

writeln (‘значение корня x1=’,x1:7:3);

writeln (‘значение корня x2=’,x2:7:3)

end

else writeln (‘корни комплексные’)

end.

3. Скласти програму обчислення значень функції, використовуючи оператор варіанту:

x3, при k=4

ex-a2+b, при k=5

F= , при k=6 де: a,b – цілі числа, х – дійсне число.

ln/x/, при k=7

PROGRAM R3;

VAR

A,B: INTEGER; X, F:REAL; K:4..8;

BEGIN

WRITELN (‘введите числа X,A,B’);

READLN (X,A,B);

WRITELN (‘введите значение селектора K’);

READLN (К);

CASE K OF

4:F:=EXP(3*LN(X));

5:F:=EXP(X)-SQR(A)+B;

6:F:=SQRT(X+A*B);

7:F:=LN(ABS(X))

END;

WRITELN (‘при селекторе k=’,К);

WRITELN (‘значение функции F=’,F:10:5)

END.

4. Програмування циклічного алгоритму

4.1 Основні оператори

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

Існує 2 типи циклів:

  • Цикли с заданим числом повторень;

  • Цикли с заздалегідь невідомим числом повторень.

1. Цикли с заданим (с заздалегідь відомим) числом повторень – це цикли з параметром (з лічильником). Число повторень циклу підраховується за допомогою параметра циклу (лічильника), для якого задані початкове та кінцеве значення, шаг зміни, а також закон зміни лічильника при кожному проходженні циклу. Управління циклом здійснюється на підставі порівняння поточного значення параметра циклу з його кінцевим значенням. Для програмування циклів с заданим числом повторень використовується оператор циклу з параметром.

2. В циклах с заздалегідь невідомим числом повторень повинна бути задана деяка умова закінчення або продовження циклу. Для програмування таких циклів використовуються оператори циклу з передумовою та постумовою (післяумовою).

Оператор циклу з параметром FOR…TO(DOWNTO)…DO

FOR (параметр циклу) := (вираз-1) (вираз-2) DO

(оператор);

де: FOR – для; TO – до; DOWNTO – вниз до; DO – виконати.

Параметр циклу – змінна цілого, логічного або символьного типу (не дійсного);

(вираз-1) – початкове значення параметра циклу; (вираз-2) – кінцеве значення параметра циклу того ж типу, що й параметр циклу.

Оператор виконується в циклі для кожного значення параметра циклу від початкового до кінцевого. При використанні службового слова TO – шаг зміни параметра циклу +1, DOWNTO – шаг зміни параметра циклу -1.

Якщо в циклі необхідно виконати декілька операторів, то їх заключають в операторні дужки BEGIN-END.

Накопичування кінцевої суми

Накопичування кінцевої суми зводиться до накопичування заданої кількості доданків S=f(1)+f(2)+f(3)+…+f(n)=

Накопичування суми реалізується в циклі з параметром. При кожному проходженні циклу номер доданка збільшується на одиницю, а сума – на величину доданка. Перед циклом початкове значення суми повинно дорівнювати нулю (S0=0).

Накопичування кінцевого добутку

Накопичування кінцевого добутку зводиться до накопичування заданої кількості співмножників Р=f(1)*f(2)*f(3)*…*f(n)=

Накопичування добутку реалізується в циклі з параметром. При кожному проходженні циклу номер співмножнику збільшується на одиницю, а добуток – на величину співмножника. Перед циклом початкове значення добутку повинно дорівнювати одиниці (P0=1).

Оператор циклу з передумовою WHILE …DO

Оператор циклу з передумовою використовується:

  1. У випадку, коли число повторень циклу невідомо, але задана деяка умова закінчення або продовження циклу;

  2. У випадку, коли число повторень циклу заздалегідь відомо, але шаг зміни параметра циклу не дорівнює +1 або –1.

WHILE (умова) DO

(оператор);

де: WHILE – поки; DO – виконати; (умова) – логічний вираз.

Оператор виконується в циклі, доки умова істинна; якщо умова хибна, то виконується оператор, який слідує за циклом. Умова обчислюється та аналізується перед кожним виконанням циклу.

Якщо в циклі необхідно виконати групу операторів, то їх заключають в операторні дужки BEGIN-END.

Оператор циклу з постумовою (післяумовою) REPEAT … UNTIL

Оператор циклу з передумовою використовується:

  1. У випадку, коли число повторень циклу невідомо, але задана деяка умова закінчення або продовження циклу;

  2. У випадку, коли число повторень циклу заздалегідь відомо, але шаг зміни параметра циклу не дорівнює +1 або –1.

REPEAT

(оператор-1);

(оператор-2);

(оператор-n);

UNTIL (умова);

де: REPEAT – повторювати; UNTIL – доти, поки; (умова) – логічний вираз.

Оператор виконується в циклі, доки умова істинна; якщо умова хибна, то виконується оператор, який слідує за циклом. Умова обчислюється та аналізується після кожного виконання циклу.

Перевага – не потрібні операторні дужки, на відміну від попереднього оператора. Недолік – умова обчислюється та аналізується після виконання циклу, тобто умова вже хибна, а цикл продовжує виконуватися ще раз, тому в програмуванні частіше використовують оператор циклу з передумовою.