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


 

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

21039. ИССЛЕДОВАНИЕ АВТОМАТОВ 76 KB
  Краткие сведения об автоматах Автоматы это аппараты предназначенные для нечастых включений и отключений электрических цепей по команде оператора и автоматического отключения цепей при ненормальных режимах в них. Автоматы изготовляются на номинальные токи до 6000 А а отдельные серии до 2030 кА на номинальные напряжения до 660 В переменного тока и до 440 В постоянного тока. В зависимости от требовании к времени срабатывания и от назначения автоматы подразделяются на: 1 Небыстродействующие постоянного и переменного тока время...
21040. Исследование электромагнитных контакторов 67 KB
  Электромагнитный контактор представляет собой электромагнит постоянного или переменного тока по обмотке которого протекает ток. В качестве приводных электромагнитов постоянного тока обычно применяются клапанные Побразные электромагниты с внешним качающимся якорем рис. Кроме того необходимо иметь гибкое соединение для подвода тока к подвижному контакту. Исполнение дугогасительных систем контакторов зависит от рода и уровня тока коммутируемой цепи.
21041. Исследование герконовых реле 178.5 KB
  Ульянова Электротехнический факультет Кафедра электрических и электронных аппаратов ЛАБОРАТОРНАЯ РАБОТА №64 Исследование герконовых реле Выполнили студенты группы ЭТ2103: Кузнецов А. Лабораторная работа №64 Исследование герконовых реле Цель работы: изучение конструкций герконов и реле на их основе исследование параметров реле и геркона. Отечественной промышленностью выпускаются одно и многоконтактные реле на замыкание размыкание и переключение преимущественно с расположением герконов внутри катушки управления и с внешним...
21042. Виртуальные машины 207.5 KB
  Опять же необходимо указать имя и место сохранения создаваемого диска. Поэтому сразу выберите место для сохранения с учетом достаточности свободного пространства на реальном разделе жесткого диска. Отмечу некоторые особенности: к системе можно подключить три жестких диска. Напоследок рассмотрим процедуру создания нового виртуального жесткого диска.
21043. УСТАНОВКА ВИРТУАЛЬНОЙ МАШИНЫ и ОС WINDOWS XP 763 KB
  Представьте как это удобно если вы хотите разрешить виртуальной машине полный доступ к вашим файлам на реальной машине. При выборе этого пункта создается лишь файл виртуальной машины без дефолтного железа после чего открывается окно настройки и на образ навешиваются и настраиваются дополнительные виртуальные комплектующие сетевые адаптеры образа дисков и прочее. Нажмите кнопку Next На третьем экране нам предлагают ввести имя нашей виртуальной машины и место где мы ее разместим на физическом диске компьютера.
21044. Работа с файлами и дисками в ОС Windows XP 161.46 KB
  В 32битной ОС Windows XP в виде командной оболочки методом эмуляции реализован режим MSDOS позволяющий выполнять все указанные выше действия по работе с файлами и дисками. Подготовка к выполнению лабораторной работы К числу основных команд и служебных утилит используемых при работе с файлами дисками и томами в ОС Windows XP посредством командной оболочки относятся: Assoc Attrib Cacls Cd Chdir Chkdsk Chkntfs Comp Compact Convert Copy Date Del Dir Diskcomp Diskcopy Erase Fc Find Findstr Format Label Md Mkdir Move...
21045. Патофизиология гемостаза 37.5 KB
  Этиология патогенез и патогенетическая терапия наследственной и приобретенной патологии сосудистотромбоцитарного гемостаза. Этиология патогенез и патогенетическая терапия вторичных нарушений коагуляционного гемостаза. Функции системы гемостаза: В норме поддержание жидкого состояния крови При патологии повышение свертываемости крови Патология гемостаза делится на 2 группы: гиперкоагуляция гипокоагуляция МЕХАНИЗМЫ ГЕМОСТАЗА а тромбоцитарнососудистый б коагуляционный Оба механизма включаются одновременно.
21046. Патофизиология почек и кислотно-щелочного равновесия 19 KB
  ПЛАН ЛЕКЦИИ : Определение и классификация почечной недостаточности. Этиология патогенез принципы диагностики и патогенетической терапии острой почечной недостаточности. Этиология патогенез принципы диагностики и патогенетической терапии хронической почечной недостаточности. Классификация почечной недостаточности по этиопатогенезу: Преренальная характеризуется нарушением притока крови по a.
21047. Патофизиология язвенной болезни, голодание 54.5 KB
  Цель лекции: Изучить этиологию патогенез и принципы терапии язвенной болезни желудка и двенадцатиперстной кишки. Язвенная болезнь – это заболевание с наследственной предрасположенностью с полигенным типом наследования основным морфологическим субстратом которой является формирование одиночного либо множественных язвенных дефектов на слизистой желудка либо ДПК. Наиболее часто язвенные дефекты формируются в антральном отделе желудка и в луковице ДПК. Язвы тела и дна желудка наблюдаются редко и рассматриваются как предраковые изменения.