da.coolreferat.com.ua страница 1
скачать файл



УРОК №29.

ТЕМА: Складання та програмна реалізація алгоритмів з циклами.

Правила техніки безпеки при роботі з комп’ютером.

Практична робота №10. Програмування циклічних обчислень.

Тема: Складання та програмна реалізація алгоритмів з циклами.

Правила техніки безпеки при роботі з комп’ютером.

Практична робота №10. Програмування циклічних обчислень.

Мета: Актуалізувати знання учнів про оператори циклів у Delphi. Подати новий навчальний матеріал про складання та програмну реалізацію алгоритмів з циклами. Закріпити даний матеріал під час виконання завдань практичної роботи.

Тип уроку: Комбінований урок.
План уроку:

Актуалізація опорних знань учнів.

Вивчення нового навчального матеріалу.


  1. Приклади розв’язків задач з використанням циклів в Delphi.

Правила техніки безпеки при роботі з комп’ютером.

Практична робота №10. Програмування циклічних обчислень.

Домашнє завдання.
Актуалізація опорних знань:


  1. Наведіть загальний вигляд команди циклу з лічильником у Delphi.

  2. Поясніть виконання команди циклу з лічильником у Delphi.

  3. Наведіть загальний вигляд команди циклу з передумовою і команди циклу з післяумовою в Delphi.

  4. Поясніть виконання команди циклу з передумовою і команди циклу з післяумовою в Delphi.

  5. Поясніть відмінності у використанні команд циклу з параметром і циклу з передумовою в Delphi.

  6. Поясніть відмінності у використанні команд циклу з передумовою та циклу з післяумовою в Delphi.


Вивчення нового навчального матеріалу:

1. Приклади розв’язків задач з використанням циклів в Delphi.

Розглянемо кілька цікавих і корисних для подальшого вивчення теми задач, в алгоритмах розв’язування яких використовуються цикли.

Під час розв’язування багатьох задач доцільно використовувати ще дві арифметичні операції: знаходження неповної частки та остачі при діленні цілого числа на натуральне. Нагадаємо, що для будь-якого цілого числа m і натурального числа n існує єдина пара цілих чисел q і r (0 <= r < n), таких що m = nq + r. Число q називається неповною часткою, а число r остачею. Для знаходження неповної частки в Delphi використовується операція div (англ. divide – поділити), а для знаходження остачі – mod (англ. modulo – остача від ділення). Наприклад,

23 div 5 = 4, 23 mod 5 = 3,

28 div 4 = 7, 28 mod 4 = 0,

2 div 3 = 0, 2 mod 3 = 2.



Задача. Дано натуральне число n, більше за 1. З’ясувати, чи є це число простим.

Нагадаємо, що простим називається натуральне число, яке має рівно два дільники. Тому можна перебрати всі натуральні числа від 1 до даного числа і підрахувати кількість дільників даного числа. Якщо ця кількість дорівнює двом, то це число просте, якщо більше – не просте. Відповідний фрагмент програми виглядатиме так:



var i, k, n: Integer;

begin

n := StrToInt (Edit1.Text);

k := 0; // Кількість дільників числа n

for i := 1 to n do

if n mod i = 0 //Перевірка, чи є число i дільником числа n

then k := k + 1; {Збільшення на 1 кількості дільників числа n, якщо число i є його дільником}

if k = 2

then Label1.Caption := 'просте'

else Label1.Caption := 'не просте';

end;

Але час виконання програми для розв’язування цієї задачі можна суттєво зменшити, якщо врахувати такі властивості натуральних чисел:

1. Будь-яке натуральне число, більше за 1, завжди має два дільники (одиницю і саме це число). Тому простим буде таке натуральне число, яке не матиме інших дільників.

2. Серед натуральних чисел тільки одне парне число є простим (2), всіінші прості числа – непарні.

3. Якщо не враховувати саме число, то у натурального числа немає дільників, які перевищують арифметичний квадратний корінь з цього числа.

Якщо використати вказані властивості, то відповідний фрагмент програми може бути таким:



var i, k, n: Integer; f: Boolean;

begin

n := StrToInt (Edit1.Text);

f := true; {Будемо поки що вважати число n простим, адже дільників у нього поки що не знайшлося}

if (n mod 2 = 0) and (n <> 2)

then f := false // Якщо число n парне і не дорівнює 2, то воно не просте

else

begin

k := 3; {Якщо число непарне, то будемо шукати його дільники, починаючи з числа 3}

while (k <= sqrt (n)) and f do {Шукати дільники числа будемо серед чисел, які не перевищують арифметичний квадратний корінь з числа n, і поки такий дільник не знайшовся}

if n mod k = 0 // Перевірка, чи є число k дільником числа n

then f := false

else k := k + 2; {Якщо k не є дільником n, то наступний можливий дільник – наступне непарне число}

end;

if f

then Label1.Caption := 'просте'

else Label1.Caption := 'не просте';

end;

У наведеному фрагменті програми використана логічна змінна f. Її значення визначатиме, чи є число n простим чи ні: true – просте, false – не просте. Тип логічної змінної в Delphi позначається Boolean, на честь Джорджа Буля. Для обчислення арифметичного квадратного кореня використана стандартна функція sqrt (англ. square root – квадратний корінь).



Задача. Знайти найбільший спільний дільник (НСД) двох даних натуральних чисел a і b (a > b).

У курсі математики 6-го класу ви навчилися знаходити НСД чисел, розкладаючи їх на прості множники. Можна скласти програму, в якій реалізується цей метод знаходження НСД.

Але більш простою виявляється програма, яка реалізує інший метод знаходження НСД, що базується на такому математичному твердженні:

якщо a > b, то НСД (a, b) = НСД (b, r), де r – остача від ділення a на b.

Ідея цього методу полягає в тому, що послідовно замінюються числа, для яких потрібно знайти НСД: більше з них замінюється на менше, а менше – на остачу від ділення більшого числа на менше. Закінчується цей процес замінювання тоді, коли остача від ділення дорівнює нулю. Тоді НСД дорівнює останній відмінній від 0 остачі від ділення.

Наприклад,

НСД (80, 12) = НСД (12, 8) = НСД (8, 4) = НСД (4, 0) = 4,

НСД (125, 54) = НСД (54, 17) = НСД (17, 3) = НСД (3, 2) = НСД (2, 1) = НСД (1, 0) = 1.

Цей метод знаходження НСД називається алгоритмом Евкліда. Перевірте цей метод знаходження НСД для різних пар натуральних чисел.

Нижче наведено фрагмент програми, в якому знаходиться НСД двох чисел за алгоритмом Евкліда.

var a, b, r: Integer;

begin

a := StrToInt (Edit1.Text);

b := StrToInt (Edit2.Text);

r := a mod b;

while r <> 0 do

begin

a := b;

b := r;

r := a mod b;

end;

Label1.Caption := IntToStr (b);

end;

Зверніть увагу, що наведений фрагмент програми працює правильно і в тих випадках, коли a <= b. Спробуйте самостійно з’ясувати, чому.
Практична робота № 10.

Програмування циклічних обчислень.

Увага! Під час роботи з комп’ютером дотримуйтеся правил безпеки і санітарно-гігієнічних норм.



Завдання:

1. Відкрийте середовище візуального проектування Turbo Delphi 2006.

2. Створіть проект для розв’язування задачі: Перед початком повені рівень води у річці становив Н м. Під час повені кожну годину рівень води зростав на Р % від рівня попередньої години. Яким буде рівень води через N годин після початку повені? Через скільки годин після початку повені рівень води буде не менше, ніж K м?

1. Розмістіть на формі поля для введення початкових даних, написи з текстами, що будуть пояснювати їхні призначення, та три кнопки.

2. Установіть на першій кнопці напис Питання 1, на другій – Питання 2, на третій – Спочатку, у полів – порожній текст.

3. Складіть обробник події OnClick першої кнопки, виконання якого приведе до виведення у вікно повідомлення відповіді на перше запитання задачі.

4. Виконайте складену процедуру і переконайтеся, що результати її роботи правильні.

5. Складіть обробник події OnClick другої кнопки, виконання якого приведе до знаходження відповіді на друге запитання задачі та виведення його в окремий напис.

6. Виконайте складену процедуру та переконайтеся, що результати її роботи правильні.

7. Складіть обробник події OnClick третьої кнопки, виконання якого приведе до очищення тексту в полях і напису з відповіддю на друге запитання задачі.



3. Створіть у власній папці папку Практична 10 і збережіть у ній проект.

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

  1. Вивчити конспект.

  2. Опрацювати матеріал підручника на ст. 90-92. (Й.Я. Ривкінд, Т.І. Лисенко, Л.А. Чернікова, В.В. Шакотько).

  3. Завершити виконання завдань практичної роботи.



скачать файл



Смотрите также:
Складання та програмна реалізація алгоритмів з циклами. Правила техніки безпеки при роботі з комп’ютером. Практична робота №10. Програмування циклічних обчислень
66.21kb.
Правила техніки безпеки при роботі з комп’ютером. Практична робота №1. Автоматизація математичних обчислень. Тема: Автоматизація математичних обчислень
35.23kb.
Автоматизоване вибирання даних із таблиць. Умовне форматування даних. Правила техніки безпеки при роботі з комп’ютером. Практична робота №10
130.44kb.
Форматування даних, клітинок і діапазонів клітинок. Правила техніки безпеки при роботі з комп’ютером. Практична робота №6
156.59kb.
Правила техніки безпеки при роботі з комп’ютером
122.28kb.
Практична робота №6 „Розроблення та реалізація найпростіших програм з циклами.” Правила техніки безпеки. Мета роботи. Відпрацювати практичні навички складання циклічні програми з використанням циклів While, Repeat, виконати самостійно наладку
14.38kb.
Знаходження наближених значень розв’язків рівнянь і систем рівнянь. Правила техніки безпеки при роботі з комп’ютером. Практична робота №3
41.21kb.
Дата проведення: Урок №5 6
54.05kb.
Правила техніки безпеки при роботі з комп’ютером. Практична робота № Використання стилів і шаблонів документа.
51kb.
Урок №1. Тема: Вступ. Інформатика. Правила поведінки в комп’ютерному класі та техніка безпеки при роботі з комп’ютером
161.55kb.
1: „ Глобальна мережа Інтернет ”( 6 годин)
144.95kb.
Іськов тетяна володимирівна
93.29kb.