14142

Використання циклу з параметром для розвязування задач

Конспект урока

Информатика, кибернетика и программирование

Тема уроку: Використання циклу з параметром для розвязування задач. Мета уроку: Навчити використовувати цикл з параметром для розвязування типових задач. Тип уроку: Практичний. На початку уроку рекомендується провести письмове опитування можна у вигляді диктанту

Украинкский

2013-05-21

66.5 KB

0 чел.

Тема уроку: "Використання циклу з параметром для розв'язування задач."

Мета уроку: Навчити використовувати цикл з параметром для розв'язування типових задач.
Тип уроку: Практичний.

На початку уроку рекомендується провести письмове опитування (можна у вигляді диктанту) по матеріалах попереднього уроку. Далі можна розглянути деякі типові задачі з використанням циклу з параметром.
Нагадуємо, що в усіх цих задачах кількість повторень буде відома заздалегідь.

Задача №1.
Умова: Ненажера Стецько пробрався перед обідом у шкільну їдальню, де вже були накриті столи, і почав швиденько з'їдати ще тепленьки булочки, що стояли на столах. З першого столу він з'їв x1 булочок, з другого - х2, і, відповідно, з останнього - xn булочок. Але за ним стежив черговий по їдальні Андрійко та ретельно все фіксував на своєму калькуляторі: до булочок, з'їдених з першого столу, додав кількість булочок, що зникли з другого столу, і т.д. Допоможіть крок за кроком відтворити інформацію, яку дістав Андрійко на своєму калькуляторі.
Очевидно, що при розв'язанні даної задачі нам на початку роботи програми відома кількість повторів, тому що ми зразу ж знаємо, скільки столів в їдальні. Крім того, зауважимо, що для зберігання кількості булочок, що знаходяться на кожному столі, не треба мати
N змінних. Достатньо мати одну, назвемо її, наприклад, X, в якій тимчасово будемо зберігати відповідну кількість булочок з чергового столу. І, врешті решт, нам необхідна ще одна змінна, в якій ми будемо одержувати проміжні обчислення чергового Андрійка (наприклад, Sum). Таким чином, програма, що розв'язує дану задачу, буде мати наступний вигляд:

Program Example_177;

Var I,N:word;     {I – параметр циклу, N –  

                  кількість столів в їдальні,  

                  тобто кількість повторень} 

   Sum,X:word;   {X – кількість булочок на  

                  черговому столі їдальні, Sum –  

                  загальна кількість булочок, що  

                  з’їв Стецько} 

Begin 

 Sum:=0;     {На початку роботи програми Стецько  

               ще нічого не з’їв} 

 Write(‘Введіть кількість столів в їдальні:  ’);

 Readln(N);

 For I:=1 to N do 

  Begin 

    Write(‘Введіть кількість булочок на  

           черговому столі:  ’);

    Readln(X);

    Sum:=Sum+X;

    Writeln(‘На даний момент Стецько з”їв  

             ’,Sum,’ булочок.’);

  End;

 Read; {Затримка зображення на екрані} 

End.

Задача №2.
Умова: Компанія бабусь поїхала на мотоциклах на курси комп'ютерної грамотності. Попереду на мотоциклі без глушника їхала одна бабуся, за нею - дві, потім - три і т.д. Скільки бабусь їхало на заняття, якщо приголомшені пішоходи всього нарахували N рядів? Чи змогли бабусі зайняти всі місця у класі, якщо там стояло k рядів по l комп'ютерів в кожному? Скільки вільних місць залишилося?
Зверніть увагу на те, що фактично ця задача зводиться до знаходження суми всіх натуральних чисел від 1 до
N. В кінці задачі для повторення команди розгалуження учням пропонується визначити кількість зайнятих бабусями та вільних місць.

Program Example_183;

Var I,N,Sum:word;  {I – параметр циклу, N –  

                  кількість рядів мотоциклів,  

                  тобто кількість повторень, Sum –  

                  загальна кількість бабусь, що  

                  приїхали на курси} 

   Place,k,l:word; {k – кількість рядів в  

                    комп’ютерному класі, l –  

                    кількість комп’ютерів в  

                    кожному ряду, Place – кількість  

                    місць, що вистачила для бабусь} 

Begin 

 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,’місць.’);

 Read; {Затримка зображення на екрані} 

End

Задача №3.
Умова: Знайти значення
(1 + 0.1)(2 + 0.2)...(9 + 0.9)
В даному випадку, очевидною що кількість повторів буде дорівнювати 9, тобто результуюча програма буде мати вигляд:

Program Example_189_2;

Var I:word;       {I – параметр циклу} 

   Rez:real;     {Rez – результат обчислень} 

Begin 

 Rez:=1;    {Початкове значення дорівнює 1, тому що  

             результат являється накопиченням  

             добутку}      

 For I:=1 to 9 do  Rez:=Rez*(I+0.1*I);

 Writeln(‘Rez= ’,Rez:8:2);

 Read; {Затримка зображення на екрані} 

End.

Задача 4.
Умова: Дано ціле
n. Визначити n!
Відомо, що
n! (вимовляється, як н-факторіал) - це добуток всіх натуральних чисел від 1 до n. Тому вихідна програма має вигляд:

Program Example_190_1;

Var I,n:word;       {I – параметр циклу}  

   Factorial:longint;    {Factorial – результат  

                          обчислень} 

Begin 

 Factorial:=1; {Початкове значення дорівнює 1, тому  

                що результат являється накопиченням  

                добутку}      

 Write(‘Введіть значення n: ’);

 Readln(n);

 For I:=1 to n do  Factorial:=Factorial*I;

 Writeln(‘Factorial= ’,Factorial:8:2);

 Read; {Затримка зображення на екрані} 

End.

Задача №190(3).
Умова: Дано ціле n. Визначити
1*3*5*7*…*(2
n+1).
Очевидно, що дана програма відрізняється від попередньої тільки тим, що необхідно знайти добуток тільки непарних натуральних чисел від 1 до
n.

Program Example_190_3;

Var I,n:word;       {I – параметр циклу}  

   Rez:longint;    {Rez – результат обчислень} 

Begin 

 Rez:=1;       {Початкове значення дорівнює 1, тому  

                що результат являється накопиченням  

                добутку}      

 Write(‘Введіть значення n: ’);

 Readln(n);

 For I:=0 to n do  Rez:=rez*(2*I+1);

 Writeln(‘Rez= ’,Rez:8:2);

 Read; {Затримка зображення на екрані} 

End.

Задача №190(6).
Умова: Дано ціле n. Визначити
Sin(1)*sin(1+2)*…*sin(1+2+…+
n).
Відміна даної програми від всіх попередніх полягає в тому, що в даному випадку ми маємо два накопичення: по-перше, відбувається накопичення суми, що знаходиться під знаком sin, а, по-друге, сам результат являється накопиченням добутку сінусів. Тому для зберігання цих двох накопичень необхідно мати дві змінні. Результуюча програма має наступний вигляд:

Program Example_190_6;  

Var I,n:word;         {I – параметр циклу}  

   Rez,Sum:longint;  {Rez – результат обчислень,  

                      Sum – проміжне накопичення} 

Begin 

 Rez:=1;       {Початкове значення дорівнює 1, тому  

                що результат являється накопиченням  

                добутку}      

 Sum:=0;       {Початкове значення дорівнює 0, тому  

                що результат являється накопиченням  

                суми}      

 Write(‘Введіть значення n: ’);

 Readln(n);

 For I:=1 to n do   

   Begin 

      Sum:=Sum+I;          {Накопичення суми} 

      Rez:=Rez*sin(Sum);   {Накопичення добутку} 

   End;

 Writeln(‘Rez= ’,Rez:8:2);

 Read; {Затримка зображення на екрані} 

End.

Задача №191(6).
Умова: За даним натуральним значенням змінної n обчислити: Для розв'язку цієї задачі необхідно виконати обчислення, починаючи з самого вкладеного кореня. Кожен наступний крок обчислюється наступним чином: до попереднього результату додається двійка і з отриманої суми береться квадратний корінь.
Програма, що виконує описані обчислення, наведена нижче:

Program Example_191_6;  

Var I,n:word;         {I – параметр циклу}  

   Rez:real;         {Rez – результат обчислень}  

Begin  

 Rez:=0;       {Початкове значення дорівнює 0, тому  

                що результат являється накопиченням  

                суми}      

 Write(‘Введіть значення n: ’);

 Readln(n);

 For I:=1 to n do   

   Begin 

      Rez:=sqrt(Rez+2);

   End;

 Writeln(‘Rez= ’,Rez:8:2);

 Read; {Затримка зображення на екрані} 

End.

Задача №210.
Умова: Дано ціле число n, яке набуває значень шкільних оцінок. Визначити відповідною кількістю звукових сигналів, яка саме оцінка була задана ("1" - один звуковий сигнал, "2" - два звукових сигнали і т.д.). Якщо ж задане число не відповідає значенню шкільної оцінки - подати довгий звуковий сигнал.
Звуковий сигнал в цій програмі можна подавати за допомогою процедур керування вбудованим динаміком
Sound та nosound. Нагадуємо, що перша з них викликає звучання ноти заданої частоти (частота вказується в дужках після процедури), а друга виключає динамік. Тривалість звучання та паузи між звуками можна задавати процедурою delay, в якості параметра до якої задається змінна time (значення цієї змінної можна задати командою присвоєння або введенням з клавіатури).

Program Example_210;

Var I,n:word;   {I – параметр циклу, n – оцінка учня}  

   Time:word;

Begin 

 Write(‘Введіть Вашу оцінку: ’);

 Readln(n);

 Time:=10000;     {Значення цієї змінної залежить  

                  від характеристик комп’ютера, за  

                  яким працює учень, і може бути  

                  підібрана практичним шляхом} 

 If (n<1) or (n>12)

 Then  

   begin 

     writeln(‘Ви помилились, такої оцінки не  

            існує’);

     sound(200);

   end 

 Else 

   For I:=1 to n do   

     Begin 

       Sound(200);

       Delay(time);

       Nousound;

       Delay(time);

     End;

 Read; {Затримка зображення на екрані} 

End.

Домашнє завдання:

  •  Повторити теоретичний матеріал, пов'язаний з роботою циклу з параметром;
  •  Задачі №189 (4), №190(3), №191(1), №191(7), №211, №178, №188.

4


 

А также другие работы, которые могут Вас заинтересовать

36656. Облік власного капіталу і розподілу прибутку в товариствах 68.5 KB
  Облік власного капіталу і розподілу прибутку в товариствах. План Суть та порядок створення товариства. Облік власного капіталу товариства. Порядок розподілу прибутку товариства його облік.
36657. ОХОРОНА ПРАВА НА ОБ’ЄКТИ ІНТЕЛЕКТУАЛЬНОЇ ВЛАСНОСТІ 74.5 KB
  Основним способом охорони об’єктів інтелектуальної власності є видача автору або іншому суб’єкту права на об’єкт інтелектуальної власності охоронного документа: патенту чи свідоцтва.
36658. ОБЛІК КОРОТКОСТРОКОВИХ ЗОБОВ’ЯЗАНЬ 85 KB
  ОБЛІК КОРОТКОСТРОКОВИХ ЗОБОВЯЗАНЬ План Поняття оцінка та види короткострокових зобовязань пасивів. Облік заробітної плати і зобовязань по заробітній платі. Поняття оцінка та види короткострокових зобовязань пасивів підприємства. Зобовязання це заборгованість підприємства іншим підприємствам організаціям та особам яка виникає внаслідок здійснення фірмою різних угод.
36659. ПРОГНОЗУВАННЯ, ПЛАНУВАННЯ ТА ПРОГРАМУВАННЯ РОЗВИТКУ НАЦІОНАЛЬНОЇ ЕКОНОМІКИ 135.5 KB
  Прогнозування розвитку національної економіки 2. Макроекономічне планування розвитку національної економіки 3. Прогнозування розвитку національної економіки В умовах ринкової економіки прогнозування є важливою складовою цілісного механізму управління національною економікою.
36660. Україна у 60-80-ті роки ХХ століття 86.5 KB
  Після завершення Другої світової війни Радянський Союз постав перед проблемою відбудови значною мірою зруйнованої економіки. Особливо постраждала Україна
36661. Основна теорема алгебри 379 KB
  Будь-який многочлен, степінь якого n більше 0 має в комплексній області рівноn коренів, серед котрих можуть бути і рівні між собою. Якщо попарно різні корені многочлена степеняn, то попарно взаємно прості.
36662. Облік товарно-матеріальних запасів. Система обліку та методи оцінки товарно-матеріальних запасів 97 KB
  Товарно-матеріальними запасами вважаються: товари, які були куплені підприємством і зберігаються на складі для наступної реалізації: готова продукція, напівфабрикати та незавершене виробництво: різні матеріали, що зберігаються на складі і призначені для переробки в процесі виробництва або для забезпечення виробничого процесу.
36663. Організаційно-методичні принципи сертифікації в Україні 115 KB
  Прискоренню розвитку національної системи сертифікації сприяє активне міжнародне співробітництво України в галузі технічного регулювання, безпосередня участь у роботі міжнародних і регіональних організацій та їх технічних комітетів.
36664. Термореактивные полимеры и материалы на их основе 59.5 KB
  Термореактивные полимеры (смолы) применяются в качестве связующих веществ, в которые вводят обычно отвердители, наполнители, пластификаторы и другие модифицирующие добавки. Основными требованиями к связующим веществам являются: высокая клеящая способность (адгезия)