
- •1. Основи алгоритмізації
- •1. Виконавець алгоритму
- •1. Поняття про навчальну алгоритмічну мову.
- •2. Алфавіт мови
- •1. Поняття величини.
- •2. Оператор присвоювання
- •3. Заголовок алгоритму
- •Відношення між величинами в якості умов
- •2. Поняття розгалуження.
- •2. Основні поняття мови Паскаль
- •Поняття про мови прогамування.
- •3. Опрацювання середовища тп 7.0
- •Алфавіт і словник мови
- •1. Поняття величини.
- •2. Типи даних.
- •Основні стандартні функції та процедури
- •3. Розглянемо деякі функції модуля Graph.
- •2. Складений оператор
- •Тренування
- •2. Порожній оператор.
- •1. Пошук значень функції, які володіють деякою властивістю
- •Закінчити програму.
- •5. Практичне завдання
- •Тренування
Закінчити програму.
Отже, маємо програму:
Program Problem; uses WinCrt; var
n,m,k,a,p,s: integer;
Flag: boolean;
begin
write ('Уведіть натуральне число, до якого ');
write('виводити шукані числа ‘);
readln(n);
writeln('Уведіть число, з яким порівнюєте квадрат');
write('його суми цифр. Воно має бути точн. квадрат. ');
readln(m);
write('Шукані числа: ') ;
k:= 1; Flag:=False;
while к <= n do
begin
s: = 0; a: = к;
while к <> 0 do
begin
p:= к mod 10; s: = s + p; k:= к div 10 end;
if sqr(s) = m then begin
write(a, ' ') ;
Flag:=True; end;
к := a +1
end
if NOT Flag
then writeIn('Таких чисел для заданих вхідних даних не існує')
end.
У програмі два цикли. Один — зовнішній, для натуральних чисел, другий — внутрішній, для підрахунку суми цифр числа.
Зверніть увагу, що у випадку некоректних вхідних даних (n — дуже мале, або т — не є точним квадратом числа) програма не може видати результат. Щоб запобігти цьому, пропоную використання змінної логічного типу Flag. Для цієї задачі міркування можуть бути такими: на початку програми змінній Flag надається значення Fals e (числа ще не знайдені). Всередині циклу якщо знайдеться хоч одне число, що задовольняє умову, разом з виведенням його на екран змінній Flag присвоюється значення True. Таким чином, якщо змінна Flag після виконання програми не зміниться, це свідчить про те, що необхідні числа не знайдені. В цьому випадку слід видати про це повідомлення.
5. Практичне завдання
Скласти програму пошуку всіх натуральних чисел n ≤ 100 000, сума цифр яких дорівнює заданому натуральному числу а.
Program Task;
uses WinCrt;
var a,p,s : integer; n,b: longint;
begin
write('Уведіть натуральне число ‘) ;
readln(a);
if a>45 then writeln ('Таких чисел не існує')
else begin
b:= 1;
writeln('Натуральні числа, сума цифр ‘);
write('яких дорівнює числу ', а, ' наступні: ');
while b < 100000 do
begin
s := 0; n := b;
while n <> 0 do
begin
p:= n mod 10; s:= s +p; n:= n div 10 end;
if s = a then write(b, ‘, ') ;
b := b +1
end;
end;
end.
Урок 54. Випадки застосування циклів з післяумовою.
Основні відмінності циклу з післяумовою від циклу while.
Коли умова стає ІСТИННОЮ, виконання циклу repeat until припиняється, а виконання циклу while триватиме.
Для циклу while на початку перевіряється умова, і тільки потім виконується дія. Для циклу repeat until виконується дія, і тільки потім перевіряється умова. Тому тіло циклу repeat until хоча б один раз виконається до перевірки умови.
Для циклу repeat until не потрібно операторних дужок.
Відмінності між циклом while і циклом repeat:
1. Оператори, що знаходяться в циклі while, повторюються доти, доки умова істинна. Послідовність операторів, що знаходяться в циклі repeat, повторюється доти, доки умова хибна.
Отже, у циклі while використовується умова продовження циклу, а в циклі repeat — умова закінчення циклу.
У циклі while повторюється один оператор (кілька операторів треба поєднувати в складений оператор за допомогою операторних дужок begin... end), а в циклі repeat можна використовувати кілька операторів без операторних дужок.
У циклі while спочатку перевіряється умова, а після цього залежно від значення умови (якщо істинна) оператор чи група операторів після слова do.
У циклі repeat послідовність операторів виконується один раз, а після цього перевіряється умова, тобто ця послідовність завжди виконується хоча б один раз, а в циклі while оператори, що складають тіло циклу, можуть узагалі не виконуватися жодного разу (у випадку, якщо умова відразу хибна).