Відмінності між версіями «Конспект уроку №10»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
Рядок 13: Рядок 13:
 
3. заповніть пропуски:
 
3. заповніть пропуски:
 
а) For < параметр > := <вираз1 >  . . . <вираз2 > . . .  <оператор >
 
а) For < параметр > := <вираз1 >  . . . <вираз2 > . . .  <оператор >
      б)  . . .  Умова  . . . Оператор
+
б)  . . .  Умова  . . . Оператор
      в)  ….
+
в)  ….
 
<оператор1 >
 
<оператор1 >
 
<оператор2 >  
 
<оператор2 >  
Рядок 20: Рядок 20:
 
         ***
 
         ***
 
<оператор n >
 
<оператор n >
            ….      <умова>;
+
….      <умова>;
    4.Коли використовується оператор For
+
4.Коли використовується оператор For
    5. Як діє оператор REPEAT UNTIL?
+
5. Як діє оператор REPEAT UNTIL?
  
 
'''ІІ. Розвязування задач.'''
 
'''ІІ. Розвязування задач.'''
Рядок 32: Рядок 32:
 
Program Example_183;  
 
Program Example_183;  
 
Uses crt;  
 
Uses crt;  
Var I,N,Sum:word;                                                                           {I – параметр циклу, N –   
+
Var I,N,Sum:word; {I – параметр циклу, N –   
 
                   кількість рядів мотоциклів,   
 
                   кількість рядів мотоциклів,   
 
                   тобто кількість повторень, Sum –   
 
                   тобто кількість повторень, Sum –   
 
                   загальна кількість бабусь, що   
 
                   загальна кількість бабусь, що   
 
                   приїхали на курси}  
 
                   приїхали на курси}  
   Place,k,l:word;                                                                                     {k – кількість рядів в   
+
   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 волосин?