Відмінності між версіями «Конспект уроку №10»
Рядок 13: | Рядок 13: | ||
3. заповніть пропуски: | 3. заповніть пропуски: | ||
а) For < параметр > := <вираз1 > . . . <вираз2 > . . . <оператор > | а) For < параметр > := <вираз1 > . . . <вираз2 > . . . <оператор > | ||
− | + | б) . . . Умова . . . Оператор | |
− | + | в) …. | |
<оператор1 > | <оператор1 > | ||
<оператор2 > | <оператор2 > | ||
Рядок 20: | Рядок 20: | ||
*** | *** | ||
<оператор n > | <оператор n > | ||
− | + | …. <умова>; | |
− | + | 4.Коли використовується оператор For | |
− | + | 5. Як діє оператор REPEAT UNTIL? | |
'''ІІ. Розвязування задач.''' | '''ІІ. Розвязування задач.''' | ||
Рядок 32: | Рядок 32: | ||
Program Example_183; | Program Example_183; | ||
Uses crt; | Uses crt; | ||
− | Var I,N,Sum:word; | + | Var I,N,Sum:word; {I – параметр циклу, N – |
кількість рядів мотоциклів, | кількість рядів мотоциклів, | ||
тобто кількість повторень, Sum – | тобто кількість повторень, Sum – | ||
загальна кількість бабусь, що | загальна кількість бабусь, що | ||
приїхали на курси} | приїхали на курси} | ||
− | Place,k,l:word; | + | Place,k,l:word; {k – кількість рядів в |
комп’ютерному класі, l – | комп’ютерному класі, l – | ||
кількість комп’ютерів в | кількість комп’ютерів в | ||
Рядок 137: | Рядок 137: | ||
Розв’язати наступні задачі: | Розв’язати наступні задачі: | ||
+ | |||
№1. | №1. | ||
+ | |||
Дано ціле n. Визначити 1*3*5*7*…*(2n+1). | Дано ціле n. Визначити 1*3*5*7*…*(2n+1). | ||
+ | |||
№2. | №2. | ||
+ | |||
Капосний папуга навчився висмикувати у дідусі Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж N волосин? | Капосний папуга навчився висмикувати у дідусі Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж N волосин? |
Версія за 11:07, 10 грудня 2008
Тема: Реалізація найпростіших програм з циклами.
Мета: систематизувати набуті знання з теми цикли; вдосконалити вміння розв’язувати задачі на застосування циклів.
Тип уроку: практична робота
І. Актуалізація ЗУН.
самостійна робота (10 -15 хв) 1. дайте означення цикла. 2. які види циклів ви знаєте? 3. заповніть пропуски: а) For < параметр > := <вираз1 > . . . <вираз2 > . . . <оператор > б) . . . Умова . . . Оператор в) …. <оператор1 > <оператор2 > <оператор3 >
***
<оператор n >
…. <умова>;
4.Коли використовується оператор For 5. Як діє оператор REPEAT UNTIL?
ІІ. Розвязування задач.
Задача №1
Умова: Компанія бабусь поїхала на мотоциклах на курси комп'ютерної грамотності. Попереду на мотоциклі без глушника їхала одна бабуся, за нею - дві, потім - три і т.д. Скільки бабусь їхало на заняття, якщо приголомшені пішоходи всього нарахували N рядів? Чи змогли бабусі зайняти всі місця у класі, якщо там стояло k рядів по l комп'ютерів в кожному? Скільки вільних місць залишилося? Зверніть увагу на те, що фактично ця задача зводиться до знаходження суми всіх натуральних чисел від 1 до N. В кінці задачі для повторення команди розгалуження учням пропонується визначити кількість зайнятих бабусями та вільних місць. Program Example_183; Uses crt; Var I,N,Sum:word; {I – параметр циклу, N –
кількість рядів мотоциклів, тобто кількість повторень, Sum – загальна кількість бабусь, що приїхали на курси} Place,k,l:word; {k – кількість рядів в комп’ютерному класі, l – кількість комп’ютерів в кожному ряду, Place – кількість місць, що вистачила для бабусь}
Begin
Clrscr; Sum:=0; Write(‘Введіть кількість рядів мотоциклів, що нарахували пішоходи: ’); Readln(N); For I:=1 to N do Sum:=Sum+I; Writeln(‘Кількість бабусь, що приїхала на курси ’,Sum); Writeln(‘Кількість комп”ютерів на курсах ’,k*l); If Sum < k*l Then writeln(‘Бабусі не змогли зайняти всі місця.’) Else writeln(‘Бабусі зайняли всі місця.’); Place:=Sum – k*l; If Place>0 Then writeln(‘Бабусям не вистачило ’,Place,’місць.’); Readkey; {Затримка зображення на екрані}
End.
Задача №2
Умова: Коли Василині Премудрій виповнилося 18 років, Чахлик Невмирущий вирішив взяти її заміж. Василина запитала Чохлика, скільки у нього скринь із золотом. Чахлик сказав, що в нього зараз n скринь і щороку додається ще по m скринь. Василина пообіцяла, що вийде заміж тоді, коли у Чохлика буде k повних скринь із золотом. Скільки років буде тоді нареченій? Program Example_180; Uses crt; Var m,n,k:word; {n – початкова кількість скринь з
золотом, m – щорічний “прибуток” Чахлика Невмирущого, k – “потреби” Василини Премудрої} Sum,Years:word; {Sum – щорічне накопичення Чахлика Невмирущого, Years – вік Василини Премудрої}
Begin
Clrscr; Write(‘Введіть початкову кількість скринь з золотом: ’); Readln(n); Write(‘Введіть щорічний прибуток Чахлика: ’); Readln(m); Write(‘Введіть “потреби” Василини Премудрої: ’); Readln(k); Sum:=n; {Початковий “капітал” Чахлика} Years:=18; {Початковий вік Василини} While Sum<=k do Begin Sum:=Sum+m; Years:=Years+1; End; Writeln(‘Василині вже виповнилося ’,Years,’ років.‘); Readkey; {Затримка зображення на екрані}
End. Задача №3 Умова: На дверях ліфта висіло загрозливе попередження про те, що двері зачиняються самі в той самий момент, коли зайвий за вагою пасажир переступить поріг ліфта. Котрий пасажир постраждає, якщо ліфт витримує вагу не більше S кг, а вага пасажирів, що стоять у черзі до ліфта, дорівнює відповідно a1, a2, a3, … an? В цій задачі зручніше використовувати цикл с післяумовою, тому що спочатку необхідно дати можливість "ввійти" пасажиру в ліфт, а потім перевіряти, чи витримає його ліфт. Умовою виходу з циклу буде перевищення сумарної ваги пасажирів, що увійшли в ліфт, деякого заданого критичного значення. Для зберігання ваги чергового пасажиру в цій задачі ми будемо використовувати одну й ту саму змінну (А), так як після перевірки вага пасажира нас вже не цікавить. Program Example_179; Uses crt; Var N:word; {I – номер пасажира, що увійшов у
ліфт} Sum,A,S:real; {Sum – сумарна вага пасажирів, що знаходяться в ліфті, A – вага чергового пасажира, що увійшов до ліфта, S – критична вага, що може бути піднята ліфтом}
Begin
Clrscr; Sum:=0; {На початку роботи програми в ліфті N:=0; немає пасажирів} Write(‘Введіть критичну вагу, що піднімає ліфт: ’); Readln(S); Repeat Write(‘Введіть вагу чергового пасажира: ’); Readln(А); Sum:=Sum+А; N:=N+1; Until Sum>S; Writeln(‘Постраждає ’,N,’-й пасажир.’); Readkey; {Затримка зображення на екрані}
End. Задача №4 Умова: Знайти значення (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.
ІІІ. Домашнє завдання
Розв’язати наступні задачі:
№1.
Дано ціле n. Визначити 1*3*5*7*…*(2n+1).
№2.
Капосний папуга навчився висмикувати у дідусі Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж N волосин?