120 likes | 295 Views
Сьогодн Ñ– на уроці. Ðлгоритми з повтореннÑм и . ( 14 год). Урок â„–1. Ðлгоритми з повтореннÑми . Цикл з передумовою. “ЛюбуÑÑÑŒ Луной – помните , и Луна Ñовершает цикличеÑкий алгоритмâ€. Дата 09.01.2014. Чому дорівнюватимуть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ð°Ð·Ñ–Ð²:
E N D
Сьогодні на уроці. Алгоритмизповтореннями. ( 14 год) Урок №1. Алгоритмизповтореннями. Цикл зпередумовою. “ЛюбуясьЛуной – помните, и Луна совершаетциклическийалгоритм” Дата 09.01.2014
Чому дорівнюватимуть значення виразів: а) 543 mod 10 + 47 mod 10 б) 234 div 100 + 234 mod 100 в) (543 div 10) mod 10 + 47 mod 10 Задача 1: Знайти суму цифр тризначного натурального числа, що вводиться з клавіатури.
Як слід діяти, коли кількість цифр в числі невідома? uses crt; var n,a,s:integer; begin clrscr; writeln('vvecti chislo'); readln(n); s:=0; a:=n mod 10; s:=s+a; n:=n div 10; a:=n mod 10; s:=s+a; n:=n div 10; a:=n mod 10; s:=s+a; n:=n div 10; writeln('summa cifr=',s); end. a:=n mod 10; - знаходимо останню цифру числа s:=s+a; - додаємо його до суми n:=n div 10; - зменшуємо число в 10 разів (відкидаємо останню цифру) Тепер, очевидно, що для будь-якого натурального числа задачу знаходження суми його цифр можна розв’язати: треба повторити послідовність цих операторів стільки разів - скільки цифр в числі
висновок: вказану послідовність дій можна повторювати, якщо число n більше нуля.
Алгоритмданої задачі у вигляді блок-схеми: Початок Ввестіn S:=0 Ні Так n>=0 a:=n mod 10 Бачимо, що для даної задачі, певну послідовність дій треба повторити. S:=S+a n:=n div 10 Вивести S Кінець
Ні Так умова Список дій В мові Паскаль є три види оператора циклу. І сьогодні ми знайомимось з першим з них, який має назву „цикл з передумовою”. Його структура така: While<логічний вираз> do begin <тіло циклу> end;
Вданому прикладі є змінна n, яка всередині циклу змінює своє значення. Ця ж змінна фігурує в логічному виразі. Взагалі, при реалізації циклу слід подбати про те, щоб в середині тіла циклу була передбачена зміна величини, що фігурує в логічному виразі, бо інакше можлива ситуація, коли тіло циклу буде виконуватись нескінчену кількість разів. Ця ситуація має назву зациклення. Uses crt; Varn,a,s: integer; Begin clrscr; Write(‘vvesti n--’); readln(n); s:=0; while n>0 do Begin a:=n mod 10; s:=s+a; n:=n div 10; end; writeln(‘S=’,s); readln; End.
Оператор циклу з передумовою має такі характерні властивості: • використовується, коли кількість повторень є невідомою; • тіло циклу виконується, поки умова істинна; • вихід з циклу відбувається, коли умова хибна; • тілом циклу може бути як простий, так і складений оператор; • принаймні одна величина повинна змінюватись в тілі циклу, щоб запобігти зацикленню.
Задача 2: Знайти значення суми S=1+2+3+…+n. Для розв’язування цієї задачі нам потрібні змінні n, s, a. Яке призначення змінних n, s зрозуміло. А змінна а – „ біжуча” змінна, яка буде змінювати своє значення від 1 до n. Початкове значення змінної а=1. В тілі циклу потрібно додавати значення „біжучої” змінної до суми і збільшувати її значення на 1. Цикл потрібно виконувати за умови a<=n.
Ні Так a<=n S:=S+a; a:=a+1; Uses crt; Varn,a,s: integer; Begin clrscr; Write(‘vvesti n-->’); readln(n); s:=0;a:=1; while a<=n do Begin s:=s+a; a:=a+1; end; writeln(‘S=’,s); readln; End. S:=0; a:=1