52841.fb2
Мета уроку: навчити складати алгоритми з використанням команди розгалуження та записувати їх мовою програмування.
Практична робота
На початку уроку бажано зробити експрес-опитування за матеріалом попереднього уроку (поняття умови, умови прості та складені, поняття команди розгалуження, її форми, запис мовою програмування та мовою блок-схем). Далі пропонується розглянути типові задачі з використанням команди розгалуження.
ЗАДАЧА № 97
Умова: Дано значення дійсних величин а, b, с. Знайти:
min((a + b + с) /2, 1/(а2 +l)+l/(b2 +l)+l/(c2 +1)
Використані у програмі змінні, на наш погляд, є очевидними. Тому наводимо програму без пояснень.
Program Example_97_2;
Uses crt;
Var а,Ь,с : real;
Rezl,Rez2,Min : real; {а,Ь,с - вхідні дамі; Rezl, Rez2 -проміжні обчислення; Міn - результат виконання програми}
Begin
Clrscr; {Очищення екрану}
Write(“Введіть числа а,b,с: ‘);
Readln(a,b,c);
Rezl:=(a + b + с) / 2;
Rez2:=sqrt(1/ (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.
ЗАДАЧА № 100
Умова: Дано значення дійсної величини х. Визначити:
х-5___
хг+х-2
На перший погляд діти можуть не зрозуміти, навіщо у цій задачі команда розгалуження. Треба їм нагадати відоме правило: ділити на нуль не можна. І тоді розв’язок стає очевидним.
Program Example_100_2;
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(‘Rezultat=’,Rezultat:8:2);
end
Else
Writeln(‘Обчислення неможливі - ділення на нуль!’);
Readkey;
End.
ЗАДАЧА №101
Умова: При даному значенні х обчислити:
Для розв’язання цієї задачі необхідно пам’ятати, що не можна знайти квадратний корінь з від’ємного числа (зверніть увагу дітей на те, що у прикладі присутні два квадратних кореня).
Program Example_101_4;
Uses crt;
Var X,Rezultat:real;
Begin
Clrscr;
Wrіte(‘Введіть значення Х: ‘);
Readln(X);
If (X>=1) and (X*X*X-sqrt(X-l)>=0) Then
begin
Rezultat:=sqrt(X*X*X-sqrt(X-l));
Writeln(‘Rezultat=’,Rezultat:8:2);
end
Else
Writeln(‘Обчислення неможливі - від’ємний підкореневий вираз!’) ;
Readkey;
End.
ЗАДАЧА № 107
За рейтинговою системою оцінка визначається таким чином: якщо загальний бал учня становить не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70%, то — оцінка 8, якщо ж не нижче 50%, то — оцінка 5, в інших випадках - оцінка 2. Визначте оцінку учня, якщо він набрав N балів, а максимальне значення загального балу становить S. У цій задачі можна використати повну або скорочену форму команди розгалуження.
Пропонується розв’язування зі скороченою формою.
Program Example_107;
Uses crt;
Var N,S,Grade:integer; {N - бали, що набрав учень; S -максимальне значення сумарного балу; Grade - оцінка учня}
Begin
Clrscr;
Wrіte(‘Введіть максимальне значення сумарного балу, що може набрати учень: ‘);
Readln(S);
Write (‘Введіть кількість балів, що отримав учень: ».) ;
Readln(N);
If (S<=0) or (N<=0) or (N>S)
Then writeln(‘Помилка вхідних даних’)
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.
ЗАДАЧА № 103
Умова: На площині дано дві точки (х1 у1 ) та (х2, y2) Визначити, яка з них знаходиться далі від початку координат.
Для розв’язання цієї задачі необхідно скористатися теоремою Піфагорадля знаходження відстані від початку координат до заданої точки (дивись малюнок):
Очевидно, що відстань від початку координат до точки з координатами (х,у) буде обчислюватись наступним співвідношенням:
Зверніть увагу: в зв’язку з тим, що кожна з координат у формулі підноситься до квадрату, неважливо, в якій чверті координатної площини буде знаходитись точка. Виходячи з усього вищесказаного, програма для розв’язання даної задачі має наступний вигляд:
Program Example__103;
Uses crt;
Var Xl,Yl,X2,Y2:real;
{X1,Y2,X2,Y2 - координати даних точок}
SI, S2:real;
{S1,S2 - відстані відповідно до першої та другої точки}
Begin
Clrscr;
Write(‘Введіть координати першої точки: ‘);
Readln(XI,Y1);
Write(‘Введіть координати другої точки: ‘);
Readln(X2,Y2);
Sl:=sqrt(sqr(Xl)+sqr(Yl)) ;
S2:=sqrt(sqr(X2)+sqr(Y2));
If SKS2
Then Writeln(‘Друга точка далі від початку координат’)
Else Writeln(‘Перша точка далі від початку координат’);
Readkey;
End.
Домашнє завдання:
• Прочитати сторінки 59—65 запропонованого підручника;
• Задачі № 96 (2), 97 (3), 99, 100 (4), 101 (5), 102 (1), 104, 105.