Програма, що реалізує запропонований алгоритм, має вигляд:
Program Example_90;
Uses crt;
Var А,В,С:real;
Begin
Clrscr;
Write (‘Введіть розміри городу: ‘);
Readln(А,В);
Write(‘Введіть довжину сторони дідусевого городу: ‘);
Readln(С);
If (A<=0)or(B<=0)or(C<=0) Then writeln (‘Помилкові вхідні дані’)
Else
Begin
If (OA) or (OB)
then writeln(‘Дідусь не зможе відрізати город такого розміру’)
else
begin
If A*B-sqr(C)<=sqr(С) then writeln(‘Бабуся ошукана.’)
else writeln(‘Бабуся не ошукана.’);
If (A<>C) and (B<>C)
Then writeln(‘Город залишився іншої форми’)
Else
If ((A=C)and(B/2=C))or((B=C)and(A/2=C))
then writeln(‘У бабусі квадратний город.’)
else writeln(‘У бабусі прямокутний город.’);
end;
End; Readkey;
End.
ЗАДАЧА № 91
Умова: Трьом Товстунам подали на десерт кремові тістечка. Маса одного тістечка — Хкг, а маса Товстунів відповідно X1 кг,Х2 кг та Х3 кг. Перший Товстун з’їв N тістечок. Кожний наступний Товстун з’їдав у два рази більше від попереднього, але при цьому він не міг з’їсти більше половини своєї власної ваги. Скільки тістечок було з’їдено Товстунами за обідом?
Зверніть увагу на те, що другий та третій Товстуни за умовою можуть з’їсти тістечок у два рази більше, ніж попередній Товстун, але не можуть з’їсти більше половини своєї ваги. Тому фактично в задачі необхідно перевірити, чи не перевищує кількість тістечок, що може з’їсти кожний Товстун, дозволену масу, і у відповідності до цього підрахувати кількість тістечок, що були з’їдені.
Наприклад, якщо другий Товстун може з’їсти 2 N тістечок, то вага цієї їжі буде 2 N Хкг. Але за умовою він не може з’їсти більше половини своєї ваги, тобто більше ніж X1 /2 кг. Тому якщо вага тих тістечок, що Товстун може з’їсти, не перевищує поріг X1 /2 кг, то ми до загальної кількості тістечок додаємо всі можливі, тобто 2 N, якщо ж перевищує, то ми додаємо тільки ту кількість тістечок, що не дозволяє перевищити припустимий поріг, тобто X1 /2 /X (дозволена вага їжі поділена на вагу одного «тістечка). Якщо в цьому випадку число вийде нецілим, то це означає, що Товстун з’їв тістечко не повністю. Щоб такого не трапилось, ми робимо відкидання дробової частини після ділення за допомогою функції trunc .
Програма, що реалізує цей алгоритм, має наступний вигляд:
Program Example_91;
Uses crt;
Var X,X1,X2,X3:real;
N,Counter : integer; {N - кількість тістечок, що з’їв перший Товстун; Counter - загальна кількість з’їдених тістечок}
Begin
Clrscr;
Write(‘Введіть вагу тістечка: ‘);
Readln(X);
Write(‘Введіть вагу Товстунів (1-го, 2-го та 3-го): ‘);
Readln(X1, Х2, ХЗ);
Write(‘Введіть кількість тістечок, що з’їв перший Товстун ‘) ;
Readln(N);
If (X<=0)or(X1<=0)or(X2<=0)or(X3<=0)or(N<=0)
Then writeln(‘Помилкові вхідні дані’)
Else
Begin
Counter:=N; {3’їв перший Товстун}
If N*2*X<=X2/2 Then Counter:=Counter+2*N
Else Counter:= Counter+ trunc(X2/2/X);
If N*4*X<=X3/2 Then Counter:=Counter+4*N
Else Counter:= Counter+ trunc(X3/2/X);
Writeln(‘Кількість з’їдених тістечок: ‘, Counters
End;
Readkey;
End.
Домашнє завдання:
• Прочитати сторінки 59 - 65 запропонованого підручника;
• Задачі №87, 88,93,94.
УРОК 16. Використання вказівки розгалуження
Мета уроку: навчити складати алгоритми з використанням команди розгалуження та записувати їх мовою програмування.
Цей урок можна запропонувати в класах, де рівень підготовки з математики вищий за середній. Як правило, в таких класах кращерозв ‘-язуються задачі, що потребують логічного та образного мислення. Далі пропонується деякі з задач підвищеного рівня складності.
ЗАДАЧА № 120
Умова задачі: Дано натуральне число N (N>= 1000). Визначити суму першої і останньої цифр даного числа.
Для розв’язання цієї задачі ми скористаємося стандартними операціями цілочисельного ділення та остачі від ділення цілих чисел (операції divта mod).Нагадаємо, що результатом ділення числа націло на 10 буде ефект відкидання «молодшої» цифри числа (відповідно при діленні на числа 100, 1000, 10000 тощо будемо «відкидати» дві, три або чотири цифри числа). Результатом ж операції знаходження залишку від ділення на 10 буде остання цифра числа (відповідно при знаходженні залишку від ділення на 100, 1000, 10000 будемо отримувати дві останні, три останні, чотири останні цифри числа).
Читать дальше