|
Скачати 0.56 Mb.
|
Розглянемо декілька прикладів: Знайти суму всіх натуральних чисел від 1 до n. program zadacha3_1; var i,n,s:integer; Begin writeln('введіть натуральне n'); readln(n); s:=0; for i:=1 to n do s:=s+i; writeln('сумма від 1 до',n,' = ',s); End. В даному циклі змінна i автоматично змінюється від 1 до n з кроком 1. Тому до змінної s додається i спочатку рівна 1, потім 2, потім 3, і т.д. до n, відповідно змінна s приймає значенні 1, 3, 6, 10, 15 ... Задане натуральне n. Обчислити суму ряду: S=1 - 1/2 + 1/3 - 1/4 + 1/5-........1/n program zadacha3_2; var i,n,a:integer; s:real; Begin writeln('Введіть n'); readln(n); s:=1;a:=1; for i:=2 to n do begin а:=(-1)*a; s:=s+a/i; end; writeln('Сумма ряду S= ',s); End. Визначити кількість тризначних натуральних чисел, сума цифр яких рівна заданому числу N. program zadacha3_3; var с1,с2,с3,i,n,kol:integer; Begin writeln('Введіть n'); readln(n); kol:=0; for i:=100 to 999 do begin c1:=i div 100; c2:=(i div 10) mod 10; c3:=i mod 100; if c1+c2+c3=n then kol:=kol+1; end; writeln('Кількість таких чисел = ',kol); End. Питання для повторення:
s:=0; n=6; for i:=3 to n do s:=s+i;
Завдання для самостійної роботи:
a) 2n; b) 3n з) n!;
Вивчаємо “Цикли” Тема уроку: Алгоритми з повтореннями. Цикл з передумовою WHILE. Цикл з післяумовою REPEAT. Мета заняття:
На минулому занятті ми познайомилися і навчилися використовувати рахунковий цикл FOR. Продовжимо роботу по цій темі і познайомимося з ще двома циклами: - цикл WHILE з предусловием; - цикл REPEAT.UNTIL з постусловием. Ці цикли зручно використовувати тоді, коли наперед невідомо число повторень. Вирішимо задачу zadacha3_1 використовуючи цикли WHILE і REPEAT спробуємо зрозуміти принцип роботи цих циклів. Знайти суму всіх натуральних чисел від 1 до n. 1) цикл FOR program zadacha3_1a; var i,n,s:integer; Begin writeln('введіть натуральне n'); readln(n); s:=0; for i:=1 to n do s:=s+i; writeln('сумма від 1 до',n,' = ',s); End. 2) цикл WHILE program zadacha3_1b; var i,n,s:integer; Begin writeln('введіть натуральне n'); readln(n); s:=0; i: =1; while i<=n do begin s:=s+i; i:=i+1; end; writeln('сумма від 1 до',n,'=',s); End. Цикл WHILE виконуватиметься до тих пір, поки виконується умова i<=n. Причому змінну i змінюємо усередині циклу. 3) цикл REPEAT program zadacha3_1c; var i,n,s:integer; Begin writeln(' введіть натуральне n'); readln(n); s:=0; i:=1; repeat begin s:=s+i; i:=i+1; end; until i>n; writeln('сумма від 1 до',n,' = ',s); End. Цикл REPEAT. UNTIL виконуватиметься до тих пір, поки не виконатися умова i>n. Задано натуральне число n. Обчислити суму цифр числа. program zadacha3_4; var n,sum,cif:integer; Begin writeln('Введіть n'); readln(n); sum:=0; while n>0 do begin cif:=n mod 10; sum:=sum+cif; n:=n div 10; end; writeln('Сумма цифр введеного числа = ',sum); End. Знайти мінімальне натуральне число, яке при розподілі на 2 дає в залишку 1, при розподілі на 3 дає в залишку 2, при розподілі на 4 - в залишку 3, при розподілі на 5 - в залишку 4, при розподілі на 6 - в залишку 5 а при розподілі на 7 дають в залишку 6. program zadacha3_5; var i, kl:longint; Begin kl:=0; i:=0; while kl=0 do begin i:=i+1; if (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) then kl:=1; end; writeln(i); End. Питання для повторення:
s:=0; i: =1; while i<=4 do s:=s+i; Завдання для самостійної роботи:
Вивчаємо “Цикли” Тема уроку: Вкладені цикли. Мета заняття:
Для вирішення задачі достатньо часто вимагається використовувати декілька вкладених один в одного циклічних конструкцій. Такі конструкції називають вкладеними циклами. Розглянемо декілька прикладів: Дано натуральне число S. Вимагається написати програму для знаходження всіх прямокутників, площа яких рівна S і сторони виражені натуральними числами. program zadacha3_6; var s, а, b:longint; Begin writeln('Введіть s'); readln(s); for а:=1 to s do for b:=1 to s do if a*b=s then writeln ('сторони ',a,' і ',b); End. Дану задачу можна було вирішити, використовуючи тільки один цикл. Подумайте, як це зробити. Дані натуральні числа n, m. Отримати всі натуральні числа, менші n, сума квадратів цифр яких рівна m. program zadacha3_7; var n, m, i, а, sum, cif:longint; Begin writeln('введіть n і m');readln(n, m); for i:=1 to n do begin а:=i;sum:=0; while a>0 do begin cif:=a mod 10; sum:=sum+sqr(cif); а:=a div 10; end; if sum=m then write(i,' '); end; End. Знайти всі рішення заданого числового ребусу. Кожній букві відповідає деяка цифра. Причому однаковим буквам відповідають однакові цифри, різним буквам - різні цифри. Оскільки тут всього три букви, то для вирішення достатньо написати три вкладені цикли, і перебрати всі варіанти складання тризначних чисел. program zadacha3_8a; var до, t, про, kto, kot, tok:longint; Begin for до:=0 to 9 do for t:=0 to 9 do for про:=0 to 9 do begin kto:=k*100+t*10+o; kot:=k*100+o*10+t; tok:=t*100+o*10+k; if (k<>t) and (k<>o) and (t<>o) and (kto+kot=tok) then writeln(kto,'+',kot,'=',tok); end; End. В даному алгоритмі тіло циклу виконувалося 10•10•10=1000 разів. (говоритимемо складність алгоритму =1000) Якщо ж для вирішення складніших ребусів буде потрібно написати 8-10 вкладених циклів, то такий повний перебір працюватиме достатньо довго. Можна трохи спростити даний алгоритм, якщо побачити що 1?k?4, t?2. for до:=1 to 4 do for t:=2 to 9 do for про:=0 to 9 do Тепер складність алгоритму 4•8•10=320. Просте косметичне виправлення дало збільшення швидкості в 3 рази. Але і даний алгоритм не є оптимальним. Подивіться, при k=2 і t=2 програма перебере всі 10 варіантів про. В таких випадках коли k=t цикл по про взагалі необхідно не виконувати. Назвемо такий метод - контрольований перебір. program zadacha3_8c; var до, t, про, kto, kot, tok:longint; Begin for до:=1 to 4 do for t:=2 to 9 do if k<>t then for про:=0 to 9 do if (k<>o) and (t<>o) then begin kto:=k*100+t*10+o; kot:=k*100+o*10+t; tok:=t*100+o*10+k; if kto+kot=tok then writeln(kto,'+',kot,'=',tok); end; End. Такий алгоритм навіть при 8-10 вкладених циклах працює дуже швидко. Питання для повторення:
Завдання для самостійної роботи:
Вивчаємо “Цикли” Тема уроку: Алгоритми з повтореннями. Практикум по розв’язуванню задач з повтореннями. Мета заняття:
Завдання для самостійної роботи:
.
Чому при обчисленнях кожним з цих способів виходять різні результати?
12 = 1 22 = 1 + 3 32 = 1 + 3 + 5 42 = 1 + 3 + 5 + 7 . . . n2 = 1 + 3 + 5 + 7 + 9 + . + (2n – 1).
13 = 1 23 = 3 + 5 33 = 7 + 9 + 11 43 = 13 + 15 +17 + 19 53 = 21 + 23 + 25 + 27 + 29
(Наприклад, введення n = 923, висновок 19231).
(Наприклад, введення n = 9423, висновок 3429).
(Наприклад, введення n = 423, висновок 423423).
(Наприклад, введення 4423, висновок 2 рази; введення 9077, висновок 1 разів).
вказати трійку x, у, z таких натуральних чисел, що x2 + y2 + z2 = n; вказати всі трійки таких чисел, що x2 + y2 + z2 = n.
Вивчаємо “Масиви” Тема уроку: Двомірні масиви: опис, введення і висновок масивів по рядках. Приклади розв’язування задач з використанням двомірних масивів. Мета заняття:
Двомірні масиви мають рядки і стовпці. Елемент масиву задається номером рядка і номером стовпця, на перетині яких він знаходиться Якщо кількість рядків = кількості стовпців масив називається квадратною матрицею, в особливому випадку - прямокутної. Задана прямокутна матриця розміру n рядків і m стовпців. Заповнити її цілими числами. Роздрукувати по рядках. Знайти і вивести суму всіх елементів і їх середнє арифметичне значення. program zadacha5_3_1; var i, j, s,m,n : integer; sr : real; а:array[1..10, 1..20] integer; {опис масиву} Begin Write('Кіл. рядків, кіл. стовпців?'); readln( n,m); for i:=1 to n do for j:=1 to m do begin write('Введіть а[', i, ',', j, ']'); {Введення елементів readln (а[ i, j ]); масиву} end; writeln('Введенний масив'); for i:=1 to n do {Висновок ел. масиву} begin for j:=1 to m do write (а[ i, j ],’ ’); {Висновок ел. масиву} writeln; end; s:=0; for i:=1 to n do for j:=1 to m do {Знаходження суми} s:=s + а[ i, j ]; writeln('Сума =', s); sr:=s / (n*m); {Знаходження середнього} writeln('Середнє =', sr:8:3) End. Задача. Серед непарних стовпців заданої цілочисельної матриці розмірністю n*m знайти стовпець з максимальною сумою модулів елементів. program zadacha5_3_2; var i, j, m, n, до, s, max :integer; а : array[1..10, 1..20] integer; {опис масиву} Begin Write('Кіл. рядків, кіл. стовпців?'); readln( n,m); {Заповнити таблицю} {Вивести таблицю по рядках} {Спочатку рахуватимемо суму модулів елементів першого стовпця максимальної} s:=0; for i:=1 to n do {Знаходження суми першого стовпця}
10 18 20 21 19 max сумма мод. Пар. стовп. = 20 номер стовпця = 3 s := s + abs ( а[i, 1]); max := s ; до:=1; j :=3; while j <= m do begin s := 0; for i:=1 to n do s := s + abs ( а[ i,j ]); if s > max then begin max := s; до:=j; end; j := j+2; {Перехід до чергового непарного end; індексу стовпця } writeln( 'Номер стовпця з максим. сумою модулів елементів =' до, 'знач. макс.=', max); end. |
Уроку Тема уроку: Пристрої введення-виведення інформації. Структура і тип уроку повністю відповідають меті і завданням уроку, тобто науковий рівень уроку відповідає сучасним вимогам |
Уроку. Прямокутна система координату просторі. Мета уроку: знайомство... В кінці уроку збираються учнівські зошити для перевірки їх ведення й виконання домашнього завдання |
Уроку виробничого навчання Велигодська Л. С. чітко в доступній формі розкрила тему та мету уроку на всіх етапах структури уроку |
Уроку; тема уроку не записується на дошці; мета уроку не узгоджується... «загравання» з учнями, намагання сподобатись, невміння знайти правильний тон; вживання пестливих слів |
КОНСПЕКТ УРОКУ З ФІЗИКИ (10 КЛАС) Тема уроку Комп'ютер, мультимедійний проектор, презентація до уроку, програмне середовище «Жива фізика» |
УРОКУ Тема уроку Методична мета уроку: Інтерактивне навчання учнів графічного представлення даних електронних таблиць засобами мультимедіа з використанням... |
Уроку: урок засвоєння нових знань. КМЗ уроку Мета уроку: вивчити види впливу електричного струму на організм людини, особливості ураження електрострумом |
Тема уроку. Зрізана піраміда. Мета уроку Мета уроку: вивчення властивості площини, яка перетинає піраміду і паралельна основі; формування поняття зрізаної піраміди |
Уроку Тема уроку: Поняття про виробничий травматизм та професійні захворювання Мета уроку: Ознайомити учнів з основними причинами виробничого травматизм та професійних захворювань та їх наслідками |
План-конспект уроку інформатики в 7 класі Тема уроку Тема уроку: Робота з текстовою інформацією. Призначення та основні функції текстового редактора. Текстові процесори. MS Word. Поняття... |