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

Завдання з розв’язками на закріплення знань з теми "Опис умов"

Завдання 1.Обчислити значення логічних виразів.

1)X < Y

При х = -2.5, у = 0.1 ця умова буде істинною (запропонувати такі значення х та у, при яких ця умова буде хибною).

2)a and not (b = с)

При а = false, b = false, c = true умова буде хибною (false), тому що при з'єднанні двох умов службовим словом and, якщо одна з умов хибна, то й вся умова хибна. Дійсно, якщо хоч одна з умов, поєднаних словом «та», не є істинною, то й весь логічний вираз буде хибним.

3)not (a and b) or b = a

При а = true, b = false ця умова буде істинною, тому що (a and b) хибна (одна з умов хибна); not (a and b) — істинна (заперечність хибності); not (a and b) or b a істинна (бо якщо з двох поєднаних службовим словом or умов хоч одна істинна, то весь вираз істинний).

4)not (a and (х < у)) or (х < 0)

При а — true, х = —0.1, у = 0.7 умова буде істинною, тому що друга з умов (х < 0) буде істинною, а при з'єднанні двох умов службовим словом or достатньо одній з них бути істинною, щоб весь логічний вираз був істинним.

Завдання 2

Записати у вигляді логічних виразів висловлювання, наведені нижче:

1) значення x не належить інтервалу (0;1) (х<=0) or (x >= 1)

2) точка М(х,у) лежить у другій чверті координатної площини

(х < 0) and (у > 0)

3) точка М(х, у) лежить усередині або на межі одиничного круга з центром у початку координат

(sqr(x) + sqr(y) <= 1)

4) координати дійсного вектора х(х, х2, х3) утворюють неспадну послідовність і всі вони невід'ємні

(xl <= x2) and (х2 <= хЗ) and (xl >= 0) and (х2 >= 0) and (хЗ >= 0)

5) 3>В>С>0,1

(З > В) and (В >= С) and (C > 0.1)

Завдання 3. Записати за допомогою умовного оператора виконання дій:

1) дійсне значення х замінити абсолютною величиною

if х < 0 then х := -х;

2) менше з двох дійсних значень х та у (або будь-яке з них, якщо вони рівні) замінити нулем

if х < у then х := 0 else у := 0;

3) присвоїти змінній х значення 0, якщо її початкове значення належало інтервалу (0,2)

if (0 <= х) and (х <= 2) then х := 0;

Приклади програм із вказівкою розгалуження

Задача № 1

Умова: Дано значення цілих величин х та у.

Знайти:

mах (х,у) — mіп (х,у)

Текст програми:

Program p4;

Uses crt;

Var х,у,Max,Min,Rezultat:integer;

Begin

Clrscr; (Очищення екрану}

Write('Введіть значення х та у: ');

Readln(x,y) ;

If х<у {Знаходження максимуму та мінімуму}

Then Begin

Мах:=у; Min:=x;

End

Else Begin

Max:=x; Min:=y;

End;

Rezultat:=sqr(Max)-sqr(Min);

Writeln('Результат обчислень: ',Rezultat:8:2);

Readkey ; {Затримка зображення на екрані

до натискання будь-якої клавіші}

End.

Задача № 2

Умова: Дано значення дійсних величин а, Ь, с. Знайти:

Min((a+b+c)/2,

Текст програми:

Program Р2 ;

Uses crt;

Var a,b,c : real;

Rezl ,Rez2 ,Min : real; {Rezl, Rez2 - проміжні обчислення;

Min — результат виконання програми}

Begin

Clrscr ; {Очищення екрану)

Write ( 'Введіть числа а,Ь,с: ');

Readln(a,b,c) ;

Rezl:=(a + Ь + с) / 2;

Rez2:=sqrt(l/(sqr(a)+1)+1/(sqr(b)+1)+1/(sqr(c)+1));

If Rezl<Rez2

Then Min:=Rezl

Else Min:=Rez2;

Writeln( 'Min=' , Min: 8: 2) ;

Readkey ; {Затримка зображення на екрані до натискання будь-якої, клавіші)

End.

Задача №3

Умова: Дано значення дійсної величини X. Визначити:

Для розв'язання цієї задачі необхідно пам'ятати, що ділити на нуль не можна.

Текст програми:

Program Р3 ;

Uses crt ;

Var X, Rezultat : real;

Begin

Clrscr ; {Очищення екрану}

Write('Введіть значення X: ');

Readln(X) ;

If X*X*X+X-2<>0 Then begin

Rezultat: = (X-5) /(X*X*X+X-2);

Writeln('Rezultate' ,Razultat:8:2)

end

Else

Writeln(‘Обчислення неможливі -ділення на нуль!’);

Readkey; (Затримка зображення на екрані до натискання будь-якої клавіші)

End.

Задача №4

Умова: При даному значенні X обчислити:

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

Текст програми:

Program Р4 ;

Uses crt;

Var X, Rezultat : real;

Begin

Clrscr ; {Очищення екрану)

Write ( 'Введіть значення X: ');

Readln (X) ;

If (X>=1) and (X*X*X-sqrt(X-l)>=0) Then begin

Rezultat:=sqrt(X*X*Xsqrt(X-l) ) ;

Writeln (‘Rezultat=’, Rezultat: 8: 2) ;

end Else

Writeln ( 'Обчислення неможливі- — від'ємний підкореневий вираз!') ;

Readkey ; {Затримка зображення на екрані до натискання будь-якої клавіші)

End.

Задача № 5

Умова: Дано дійсні значення х та у. Обчислити:

Для розв'язання цієї задачі необхідне виконання умов обох попередніх прикладів.

Текст програми:

Program Р5 ;

Uses crt ;

Var X, Y, Rezultat : real;

Begin

Clrscr ; {Очищення екрану)

Write ( 'Введіть значення X та Y : ' ) ;

Readln (X,Y) ;

If (sqr(X)-sqr(Y)<>0) and (X*X*X-Y+0.5>=0) Then begin

Rezultat:=sqrt(X*X*X-Y+0.5)/ (sqr(X)-sqr(Y));

Writeln('Rezultat=' ,Rezultat:8:2) ; end

Else

Writeln('Обчислення неможливі!');

Readkey; {Затримка зображення на екрані до натискання будь-якої, клавіші}

End.

Задача № 6

За рейтинговою системою оцінка визначається таким чином: якщо загальний бал учня становить не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70%, то виставляється 8, якщо ж не нижче 50%, то оцінка 5, в інших випадках — оцінка 2. Визначте оцінку учня, якщо він набрав N балів, а максимальне значення загального балу становить S.

У цій задачі можна використати повну або скорочену форму команди розгалуження.

Розв'язок зі скороченою формою.

Текст програми:

Program Р6;

Uses crt;

Var N,S,Grade:integer; (H - бали, що набрав учень; S - максимальне значення сумарного балу; Grade - оцінка учня)

Begin

Clrscr;

{Очищення екрану)

Write('Введіть максимальне значення сумарного балу, що може набрати учень: '); Readln(S) ;

Write('Введіть кількість балів, що отримав учень: '); Readln(М);

If (S<=0) or (N<=0) or (N>S) Then writein(’Помилка вхідних даних'.) Else Begin

N:=round(N/S*100); {Знаходження процентного відношення балів учня до максимально можливого)

If N>=92 then Grade:=12; If (N<92) and (N>=70) then Grade:=8;

If (N<70) and (N>=50) then Grade:=5;

If (N<50) then Grade:=2; Writeln('Учень отримав оцінку - ', Grade);

End;

Readkey; (Затримка зображення на екрані до натискання будь-якої, клавіші)

End.

Задача № 7

Умова: На площині дано дві точки (х1, у1) та (х2, y2). Визначити, яка з них знаходиться далі від початку координат.

Для розв'язання цієї задачі необхідно скористатися теоремою Піфагора для знаходження відстані від початку координат до заданої точки :

Очевидно, що відстань від початку координат до точки з координатами (х,у) буде обчислюватись наступним співвідношенням:

S=

Зверніть увагу: в зв'язку з тим, що кожна з координат у формулі підноситься до квадрату, неважливо, в якій чверті координатної площини буде знаходитись точка.

Виходячи з усього вищесказаного, програма для розв'язання даної задачі має наступний вигляд:

Текст програми:

Program Р7;

Uses crt;

Var Xl,Yl,X2,Y2:real; {X1,Y2,X2,Y2 - координати даних точок}

SI , S2 : real ; {S1,S2 — відстані відповідно до першої та другої точки}

Begin

Clrscr ; {Очищення екрану}

Write ( 'Введіть координати першої точки: ' ) ;

Readln(Xl,Yl) ;

Write ( 'Введіть координати другої точки: ' ) ;

Readln(X2,Y2) ;

Sl:=sqrt(sqr(Xl)+sqr(Yl)) ;

S2:=sqrt(sqr(X2)+sqr(Y2)) ;

If S1 < S2

Then Writeln( 'Друга точка далі від початку координат' )

Else Writeln ( 'Перша точка далі від початку координат' ) ;

Readkey; {Затримка зображення на екрані до натискання будь-якої клавіші}

End.

Задача № 8

Умова: Дано значення дійсних величин а, Ь, с. Подвоїти ці значення, якщо а > b > с, і замінити їх абсолютними значеннями, якщо це не так.

У цій задачі звернути увагу на дуже поширену помилку: в програмі не можна писати подвійну нерівність, як це робиться в математиці. Тобто, вираз а > b > с в програмі записується як складена умова (a>=b) and (b>=c).

Текст програми:

Program Р8;

Uses crt; Var a,b,c:real;

Begin

Clrscr; {Очищення екрану}

Write('Введіть три числа: ');

Readln(a,b,c);

If (a>=b) and (b=c) Then Begin

A=A*2;

B:=B*2;

C:=C*2;

End

Else Begin

A:=abs(A);

B:=abs(B);

C:=abs(C);

End;

Writeln('Вихідні Значення:');

Writeln('a=',a:8:2);

Writeln('Ь=',b:8:2);

Writeln('c=' ,c:8:2) ;

Readkey; {Затримка зображення на екрані до натискання будь-якої клавіші}

End.

Якщо умов вибору багато, то краще використати оператор вибору Case

Загальний запис

Case <вираз>of

Список констант1:оператор1;

Список констант2:оператор2;

...

Список константN:операторN;

End;

Case <вираз>of

Список констант1:оператор1;

Список констант2:оператор2;

...

Список константN:операторN-1

Else операторN;

End;

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

Виконання оператора починається з обчислення виразу. Якщо результат обчислення дорівнює одній з перерахованих констант, то буде виконуватись відповідний оператор.

Далі управління передається за межі оператора вибору. Якщо значення виразу не співпадає ні з однією із констант, то виконується оператор, що стоїть після Else, якщо він є, або управління передається на оператор, що стоїть за End.

Примітка:

  1. Тип константи повинен співпадати з типом виразу.

  2. Гілка Else – необов’язкова

  3. Перед Else не може стояти крапка з комою

  4. В якості оператора можуть використовуватись і складені оператори, але тоді їх треба брати в дужки begin … end