|
Скачати 0.56 Mb.
|
Розглянемо декілька прикладів: З ![]() 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 ... З ![]() 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. В ![]() 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) цикл 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. З ![]() 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. З ![]() 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; Завдання для самостійної роботи:
Вивчаємо “Цикли” Тема уроку: Вкладені цикли. Мета заняття:
Для вирішення задачі достатньо часто вимагається використовувати декілька вкладених один в одного циклічних конструкцій. Такі конструкції називають вкладеними циклами. Розглянемо декілька прикладів: Д ![]() 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. Дану задачу можна було вирішити, використовуючи тільки один цикл. Подумайте, як це зробити. Д ![]() 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.
Вивчаємо “Масиви” Тема уроку: Двомірні масиви: опис, введення і висновок масивів по рядках. Приклади розв’язування задач з використанням двомірних масивів. Мета заняття:
Двомірні масиви мають рядки і стовпці. Елемент масиву задається номером рядка і номером стовпця, на перетині яких він знаходиться ![]() Якщо кількість рядків = кількості стовпців масив називається квадратною матрицею, в особливому випадку - прямокутної. З ![]() Заповнити її цілими числами. Роздрукувати по рядках. Знайти і вивести суму всіх елементів і їх середнє арифметичне значення. 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 ![]() begin write('Введіть а[', i, ',', j, ']'); {Введення елементів readln (а[ i, j ]); масиву} end; ![]() for i:=1 to n do {Висновок ел. масиву} ![]() for j:=1 to m do write (а[ i, j ],’ ’); {Висновок ел. масиву} writeln; end; ![]() 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); {Заповнити таблицю} {Вивести таблицю по рядках} {Спочатку рахуватимемо суму модулів елементів першого стовпця максимальної} ![]() 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; f ![]() 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. Поняття... |