четвер, 11 січня 2018 р.

Алгоритми пошуку декількох чисел

Пошук декількох чисел, що

задовольняють деякій умові

Приклад 1

Знайдіть мінімальне число, яке більше за 200 та кратне 17.

Змінні:

Вхідних даних немає.

Вихідні:
  • n – шукане число (цілого типу)

Алгоритм

  1. Шукане число більше 200. Тому пошук почнемо з числа 200. Присвоїмо початкове значення змінній n:=200. Оберемо цикл repeat, бо спочатку потрібно збільшити число n на 1, а потім перевіряти умову завершення циклу       n mod 17=0.
  2. У циклі будемо збільшувати число n на 1 (бо шукане число більше 200) та перевіряти, чи воно кратне 17.
    • Якщо кратне, то кінець циклу.
    • Якщо не кратнеперехід на новий виток циклу (на пункт 2).
  3. Цикл завершується, коли число n кратне 17 (n mod 17=0). Ця умова перевіряється у until, бо є умовою закінчення циклу.
  4. Після завершення циклу виведення знайденого числа на екран.

Програма

 Var n:word;
Begin
 n:=200;
 repeat
    n:=n+1;
 until n mod 17=0;
 writeln(n,' ');
end.

Результат роботи програми

204

Приклад 2

Знайдіть мінімальне число, яке більше за 200 та кратне 17.

Змінні:

Вхідних даних немає.

Вихідні:
  •  шукане число (цілого типу)

Алгоритм

  1. Шукане число менше 200. Тому пошук почнемо з числа 200. Присвоїмо початкове значення змінній n:=200. Оберемо цикл repeat, бо спочатку потрібно зменшити число n на 1, а потім перевіряти умову завершення циклу       n mod 17=0 .
  2. У циклі будемо зменшувати число n на 1 (бо шукане число менше 200) та перевіряти, чи воно кратне 17.
    • Якщо кратне, то кінець циклу.
    • Якщо не кратне перехід на новий виток циклу (на пункт 2).
  3. Цикл завершується, коли число n mod 17=0. Ця умова перевіряється у until, бо є умовою закінчення циклу.
  4. Після завершення циклу вивід знайденого числа на екран.

Програма

 Var n:word;
Begin
 n:=200;
 repeat
    n:=n-1;
 until n mod 17=0;
 writeln(n,' ');
end.

Результат роботи програми

187

Приклад 3

Знайдіть 5 перших чисел, що більші за 200 та кратні 17.

Змінні:

Вхідних даних немає.

Вихідні:
  • n – шукані числа (цілого типу)
Проміжні:
  • k – лічильник шуканих чисел (цілого типу)

Алгоритм

  1. Шукані числа більше 200. Тому пошук почнемо з числа 200. Присвоїмо початкове значення змінній n:=200, а змінній k:=0. Також оберемо цикл repeat.
  2. У циклі будемо:
    • збільшувати число n на 1 (бо шукані числа більше 200);
    • перевіряти, чи воно кратне 17.
      • Якщо кратне, то надрукуємо це число та збільшимо лічильник чисел k на 1.
      • Якщо не кратне, перехід на новий виток циклу (на пункт 2).
  3. Цикл завершується, коли надруковано вже 5 чисел, тобто якщо k=5. Ця умова перевіряється у until, бо є умовою закінчення циклу.

Блок–схема програми

Програма

 Var n,k:word;
Begin
 n:=200; k:=0;
 repeat
    n:=n+1;
    If n mod 17=0 then
      Begin
         write(n,' '); k:=k+1;
      end;
 until k=5;
end.

Результат роботи програми

204 221 238 255 272

Варіанти задач

  1. Знайдіть максимальне з натуральних чисел, що менше за 5000, яке кратне числу 39.
  2. Знайдіть мінімальне з натуральних чисел, що більше за 8000, яке кратне 47.
  3. Знайдіть 15 перших натуральних чисел, що більші за 100 та кратні 19.
  4. Знайдіть 20 перших натуральних чисел, що більші за 500 та кратні 13 або 17.
  5. Знайдіть 10 перших натуральних чисел, що більші за 100, кратні 9 та закінчуються на цифру 7.
  6. Знайдіть 3 найбільших натуральних числа, що менші за 10000 та кратні 218.
  7. Знайдіть 6 найбільших натуральних числа, що менші за 8000, кратні 81 та закінчуються цифрою 3.
  8. Знайдіть суму 5 перших натуральних чисел, що більші за 100 та кратні 123.
  9. Знайдіть добуток 3 перших натуральних чисел, що більші за 50 та кратні 14.
  10. Надрукуйте у рядок 8 перших натуральних чисел, що більші за 200 і кратні 22, та знайдіть їх суму.
  11. Надрукуйте у рядок 4 перших натуральних числа, що більші за 50 і кратні 21, та знайдіть їх добуток.
  12. Надрукуйте у рядок 5 найбільших натуральних числа, що менші за 500 і кратні 43, та знайдіть їх суму.
  13. Надрукуйте у рядок 3 найбільших натуральних числа, що менші за 250, кратні 23, та знайдіть їх добуток.
  14. Надрукуйте у рядок 7 перших натуральних чисел, що більші за 600 і кратні 26, та знайдіть суму тих з них, що закінчуються цифрою 0.
  15. Надрукуйте у рядок 15 перших натуральних числа, що більші за 70 і  кратні 17, та знайдіть добуток тих з них, що закінчуються цифрою 5.
  16. Надрукуйте у рядок 8 найбільших натуральних числа, що менші за 5000 і кратні 47, та знайдіть суму тих з них, що закінчуються парною цифрою.
  17. Надрукуйте у рядок 6 найбільших натуральних чисел, що менші за 200 і кратні 15. Знайдіть добуток тих з них, що закінчуються цифрою 0.

Немає коментарів:

Дописати коментар