52841.fb2
Мета уроку: навчити використовувати цикл з параметром для розв’язування типових задач.
На початку уроку рекомендується провести письмове опитування по матеріалах попереднього уроку. Далі можна розглянути деякі типові задачі з використанням циклу з параметром. Нагадуємо, що в усіх цих задачах кількість повторень буде відома заздалегідь.
ЗАДАЧА №183
Умова задачі: Компанія бабусь поїхала на мотоциклах на курси комп’ютерної грамотності. Попереду на мотоциклі без глушника їхала одна бабуся, за нею - дві, потім - три і т.д. Скільки бабусь їхало на заняття, якщо приголомшені пішоходи всього нарахували N рядів? Чи змогли бабусі зайняти всі місця у класі, якщо там стояло k рядів по / комп’ютерів у кожному? Скільки вільних місць залишилося?
Розв’язання: Зверніть увагу на те, що фактично ця задача зводиться до знаходження суми всіх натуральних чисел від 1 до N. У кінці задачі для повторення команди розгалуження учням пропонується визначити кількість зайнятих бабусями та вільних місць. Програма розв’язання даної задачі має такий вигляд:
Program Example_183;
Uses crt;
Var I,N,Sum:word;{I - параметр циклу, N - кількість рядів мотоциклів. Sum - кількість бабусь, що приїхали на курси} Place,k,l:word;{k - кількість рядів у комп’ютерному класі, 1 - кількість комп’ютерів у кожному ряду, Place - кількість місць, якої вистачило для бабусь}
Begin
Clrscr;
Sum:=0;
Write(‘Введіть кількість рядів мотоциклів: ‘);
Readln(N);
For I:=1 to N do Sum:=Sum+I;
Writeln(‘Кількість бабусь, що приїхали на курси ‘,Sum);
Writeln(‘Кількість комп’ютерів на курсах ‘,к*1) ;
If Sum<k*l
Then writeln(‘Бабусі не змогли зайняти всі місця.’)
Else writeln(‘Бабусі зайняли всі місця.’);
Place:=Sum - к*1;
If Place>0
Then writeln(‘Бабусям не вистачило ‘,Place,’ місць.’);
Readkey;
End.
ЗАДАЧА № 189
Умова: Знайти значення
(1 + 0.1)(2 + 0.2)...(9 + 0.9)
Розв’язання: У даному випадку кількість повторів буде дорівнювати 9, тобто програма буде мати вигляд:
Program Example_189_2;
Uses crt; Var I:word; {I - параметр циклу}
Rez:real; {Rez - результат обчислень}
Begin
Clrscr;
Rez:=1; {Початкове значення дорівнює 1, тому що результат є накопиченням добутку}
For I:=1 to 9 do Rez:=Rez*(I+0.1*I);
Writeln(‘Rez= ‘,Rez:8:2);
Readkey;
End.
ЗАДАЧА № 190
Умова задачі: Дано ціле п. Визначити п!
Розв’язання: Відомо, що n! (вимовляється як n-факторіал) - це добуток всіх натуральних чисел від 1 до п. Тому програма має вигляд:
Program Example_190_1;
Uses crt;
Var I,n:word; {I - параметр циклу}
Factorial:longint; {Factorial - результат обчислень}
Begin
Clrscr;
Factorial:=1;
Write(‘Введіть значення n: ‘);
Readln(n);
For I:=1 to n do Factorial:=Factorial*I;
Writeln(‘Factorial= ‘, Factorial:8:2); Readkey;
End.
ЗАДАЧА № 191
Умова задачі: За данимнатуральним значенням змінної п обчислити:
Розв’язання: Для розв’язання цієї задачі необхідно виконати обчислення, починаючи з самого вкладеного кореня. Кожний наступний крок обчислюється таким чином: до попереднього результату додається двійка і з отриманої суми береться квадратний корінь.
Програма, що виконує описані обчислення, наведена нижче:
Program Example_191_6;
Uses crt;
Var I,n:word;{I - параметр циклу}
Rez:real;{Rez - результат обчислень}
Begin
Clrscr;
Rez:=0; {Початкове значення дорівнює 0,току що результат є накопиченням суми}
Write(‘Введіть значення n: ‘);
Readln(n);
For I:=1 to n do
Begin Rez:=sqrt(Rez+2);
End;
Writeln(‘Rez= ‘,Rez:8:2);
Readkey;
End.
ЗАДАЧА №210
Умова: Дано ціле число п, яке набуває значень шкільних оцінок. Визначити відповідною кількістю звукових сигналів, яка саме оцінка була задана («1» - один звуковий сигнал, «2» - два сигнали і т.д.). Якщо ж задане число не відповідає значенню шкільної оцінки—подати довгий звуковий сигнал.
Розв ‘язання: Звуковий сигнал у цій програмі можна подавати за допомогою процедур керування вбудованим динаміком sound та nosound. Перша з них викликає звучання ноти заданої частоти (частота вказується в дужках після процедури), а друга виключає динамік. Тривалість звучання та паузи між звуками можна задавати процедурою delay, параметром якої є змінна time (значення цієї змінної можна задати командою присвоєння або введенням із клавіатури). Отже, програма має вигляд:
Program Example_210;
Uses crt;
Var I,n:word; {I - параметр циклу, n - оцінка учня}
Time:word;
Begin
Clrscr;
Write(‘Введіть Вашу оцінку: ‘);
Readln(n);
Time:=10000;
{Значення цієї змінної залежить від характеристик комп’ютера, і може бути підібрана практичним шляхом}
If (n<1) or (n>12) Then
begin
writeln(‘Ви помилились, такої оцінки не існує.’);
sound(200); delay (time 5); nousound;
end
Else
For I:=1 to n do
Begin
Sound(200); Delay(time);
Nousound; Delay(time);
End;
Readkey;
End.
Домашнє завдання:
• Повторити теоретичний матеріал по роботі циклу з параметром;
• виконати задачі № 189 (4), № 190 (3), №191, № 211, № 178, № 188.