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


 

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

48629. Система регулирования разрежения в дымоходе 1.19 MB
  Определение оптимальных параметров настройки регулятора Выбор унифицированного промышленного регулятора Курсовой проект по курсу Проектирование современных систем управления посвящен синтезу локальной системы регулирования технологического параметра объекта включающему в себя выбор необходимого закона регулирования регулятора и разработку системы в целом на базе приборов ГСП. Она состоит из регулятора разрежения РР на который поступают сигнал с датчика разрежения сигнал с задатчика 2 и сигнал с расходомера количества...
48630. Расчет статически определимых и статически неопределимых стержневых систем при постоянных и переменных напряжениях 885 KB
  Во второй части проведен расчет на прочность вала зубчатой передачи: для заданной расчетной схемы вала определены усилия действующие в зацеплении зубчатых колес построены эпюры изгибающих моментов из условия четвертой теории прочности назначен диаметр вала величина которого скорректирована с учетом заданного коэффициента запаса при циклически изменяющихся напряжениях. ПОДБОР ПОПЕРЕЧНОГО СЕЧЕНИЯ [5] РАСЧЕТ ВАЛА ЗУБЧАТОЙ ПЕРЕДАЧИ [5. ОПРЕДЕЛЕНИЕ ДИАМЕТРА ВАЛА ИЗ УСЛОВИЯ СТАТИЧЕСКОЙ ПРОЧНОСТИ [5. ПРОВЕРКА ПРОЧНОСТИ ВАЛА ПРИ ДЕЙСТВИИ...
48631. Умножить содержимое ячейки памяти 6000Н на 5 152.5 KB
  РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ И ЕЁ АССЕМБЛИРОВАНИЕ В данной работе нет необходимости использовать циклы. Рисунок 1 Блоксхема алгоритма Таблица 1 Мнемоника Код Описание LXI H 6000 21 Множимое число MOV M 7E Заносим множимое число в аккумулятор RL 17 Содержимое А сдвинуть влево RL 17 Снова сдвинуть DD M 86 Сложить А с регистром М LXI В 6001 01 Зададим ячейку результата STX B 02 Запомнить результат в В ячейка 6001 HLT 76 Конец 4 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ Заданное число было взято 1 Записано в регистре H в ячейке памяти...
48632. Складывать содержимое последовательных ячеек памяти до появления признака переноса CY 242 KB
  В данной работе используется цикл с постусловием. 4 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ Заданные числа были равны 8050 в 16й системе счисления Записаны в ячейки памяти 6000h6004h. В таблице 2 приведен пример корректной работы программы. Таблица 2 Регистры H 50 50 50 0 50 F0 50 40 Начальное и итоговое состояния программы показаны на рисунках 2 и 6.
48633. Вычислить среднее арифметическое содержимого двух ячеек памяти с адресами 6000h и 6001h 295.5 KB
  Поскольку для представления данных используется шестнадцатеричная система счисления, начальные данные необходимо перевести в эту систему счисления.
48634. Расчет параметров рабочего тела и энергетических характеристик газотурбинного двигателя 1.06 MB
  Цель работы: расчет параметров состояния рабочего тела и энергетических характеристик газотурбинного двигателя. В результате работы определены: характеристики воздуха на заданной высоте полета оптимальная степень сжатия воздуха в компрессоре состав продуктов сгорания и основные параметры в характерных точках цикла....
48636. Інформатика. Методичні рекомендації 273 KB
  Вступ Методична розробка призначена для використання у якості посібника в процесі виконання курсової роботи з дисципліни Інформатика протягом 2 семестру за фахом Курсове проектування є однією з форм самостійної роботи студента і сприяє засвоєнню теоретичних засад та отриманню студентами практичних навичок ефективного використання інформаційних технологій у професійній діяльності. Мета і задачі курсової роботи Основною метою даного курсового проектування є закріплення знань умінь і практичних навичок отриманих студентами під час...
48637. Расчет идеального цикла газотурбинного двигателя 1.22 MB
  Рассчитаны энергетические величины цикла в его процессах построен рабочий цикл ГТД в pv и TS координатах. Содержание Список условных обозначений Индексы Введение Расчёт состава рабочего тела цикла Расчёт состава воздуха Расчёт оптимального значения степени повышения давления в компрессоре ГТД. Расчёт основных параметров состояния рабочего тела в узловых точках цикла ГТД. Расчёт калорических величин цикла ГТД.