ОПЕРАТОРИ
ЗАВДАННЯ
Цілочисельне АРИФМЕТИКА h2>
Командою
повторення або циклом називається така форма організації дій, при якій
одна й та ж послідовність дій повторюється до тих пір, поки
зберігається значення деякого логічного виразу. При зміні значення
логічного виразу на протилежне повторення припиняються (цикл
завершується). p>
Для організації
циклу необхідно виконати наступні дії: p>
перед початком
циклу задати початкове значення параметра; p>
всередині циклу
змінювати параметр циклу за допомогою оператора присвоєння; p>
перевіряти
умова повторення або закінчення циклу; p>
керувати
циклом, тобто переходити до його початку, якщо він не закінчений, або виходити з
циклу в іншому випадку. p>
Розрізняють цикли
з відомим числом повторень (цикл з параметром) і ітераційні (з перед-та
постусловіем). p>
У циклі з
відомим числом повторень параметр змінюється в заданому діапазоні. p>
Якщо в циклі
змінюється проста змінна, то вона є параметром циклу; якщо в циклі
змінюється змінна з індексом, то індекс цієї змінної є параметром
Для організації
циклу з відомим числом повторень в Pascal використовується оператор for. p>
Структура
циклу, організованого за допомогою цього оператора, має вигляд: p>
For I: = A To B Do
Begin
End; p>
або p>
For
I: = A DownTo B Do Begin
End; p>
Тут I --
параметр, що змінюється в циклі; A, B - вирази порядкового типу, що позначають
початкове, кінцеве значення параметра циклу. Крок зміни номера параметра
циклу дорівнює 1, якщо в заголовку циклу варто To (тобто реально таке значення
параметра циклу обчислюється за допомогою функції succ); і -1 - при DownTo
(обчислення проводиться за допомогою функції pred). p>
Порядок
виконання циклу з кроком 1 наступний: обчислюються значення початкового та
кінцевого значень параметра циклу; параметр якщо I приймає початкову
значення; I якщо менше або дорівнює кінцевому значенню, виконується тіло циклу;
значення параметра циклу збільшується, тобто I: = succ (I); перевіряється умова
I = B) і при його виконанні цикл
повторюється. Вихід з циклу здійснюється, якщо I> B (I B (або A Sum_Max Then Begin Sum_Max: = Sum; Ch: = I End; p>
End; p>
WriteLn ( 'Максимальну суму дільників',
Sum_Max, 'має число', Ch) p>
End. p>
Завдання 4. Дано
натуральне число n. Отримати всі прості дільники цього числа. P>
(Програма
відшукання простих дільників даного числа) p>
Program Pr_Del; p>
Var N, I, Vsp
: Integer; p>
Log_Per,
Priznak: Boolean; p>
Begin p>
Write ( 'Введіть натуральне число:'); p>
ReadLn (N); p>
Priznak: = True; (Ознака того, не
чи є введене число простим) p>
(Поки параметр циклу не перевищив
квадратного кореня з даного числа, p>
продовжуємо пошук простих дільників) p>
For I: = 2 To Round (Sqrt (N)) Do p>
If N Mod
I = 0 Then p>
Begin p>
Priznak: = False; (Введене число не є простим) p>
Log_Per: = False; (Логічна змінна, що приймає
значення True, p>
якщо знайшлися
подільники I, відмінні від 1 і I) p>
Vsp: = 2; p>
Repeat p>
If (I Mod Vsp = 0) And (I
Vsp) Then Log_Per: = True; p>
Vsp: = Vsp + 1 p>
Until (Vsp> I Div 2 + 1) Or
Log_Per; p>
If
Not (Log_Per) Then WriteLn (I) (Якщо число I просте, друкуємо його) p>
End; p>
If Priznak
Then WriteLn (N) p>
End. p>
Пропонуємо
читачеві самостійно розібратися з представленим рішенням. p>
Контрольні
питання і завдання p>
Назвіть
відмінності ітераційних циклів та циклу з параметром. p>
Яка
структура оператора циклу з параметром? Як виконується цикл з парметром? p>
Якого типу
повинні бути пареметр циклу, його початкове і кінцеве значення в циклі з
параметром в мові Pascal? p>
Чи можуть
параметр циклу, його початкове і кінцеве значення в циклі з параметром в мові
Pascal бути різних типів? Обгрунтуйте відповідь. p>
Чи може один
цикл бути вкладений всередину іншого? Якщо так, то яка глибина цієї вкладеності? p>
Яка
структура циклів з перед-і постусловіем? як виконуються ці цикли? p>
Яке
мінімальна і максимальна кількість виконань циклів з перед-і постусловіем?
З чим це пов'язано? p>
Скільки разів
виповниться фрагмент програми? p>
For i: = 1 to -1
Do k: = k * i; p>
Скільки разів
виповниться фрагмент програми? p>
For i: = -1 to 1
Do k: = k * i; p>
Скільки разів
виповниться фрагмент програми? p>
For i: = 1 downto
-1 Do k: = k * i; p>
Скільки разів
виповниться фрагмент програми? p>
M: = 123; While M
0 Do M: = M Mod 10; p>
Для циклу з
параметром запишіть його повний еквівалент за допомогою циклів з перед-та
постусловіем. p>
Для циклу з
передумовою запишіть його повний еквівалент за допомогою циклу з постусловіем. p>
Для циклу з
постусловіем запишіть його повний еквівалент за допомогою циклу з передумовою. p>
Список
літератури h2>
Для підготовки
даної роботи були використані матеріали з сайту http://www.comp-science.narod.ru/
p>