Назад Зміст Вперед

Задачі з випадковими числами

Приклад 1

Одержати випадковим чином одне число (від 1 до 4), що моделює масть гральних карт. Результат вивести у вигляді слів: „піка”, якщо випало 1, „треф”, якщо випало 2, „бубна”, якщо випало 3, „чирва”, якщо випало 4.

Змінні:

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

 

Вихідні:

Алгоритм

  1. Спочатку потрібно викликати процедуру randomize.
  2. Потрібно створити ціле число, що належить інтервалу [1, 4]. Для цього будемо використовувати формулу X:=Random(B-A+1)+A, де A=1,B=4.
  3. Перевіримо створене число.

Програма

 var x:byte;
begin
 randomize;x:=random(4)+1;
 if x=1 then writeln('пики');
 if x=2 then writeln('трефи');
 if x=3 then writeln('бубни');
 if x=4 then writeln('черви');
end.

Приклад 2

Одержати у програмі 10 випадкових цілих чисел у діапазоні від 0 до 10 включно та знайти їх суму.

Змінні:

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

 

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку потрібно викликати процедуру randomize.
  2. Встановимо початкове значення суми s:=0.
  3. Потрібно створити десять цілих чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі for i:=1 to 10 do:
  4. Коли цикл закінчиться, тобто будуть створені всі 10 чисел, виводиться на екран значення суми.

Програма

 var x,s,i:integer;
begin
 randomize; s:=0;
 for i:=1 to 10 do
 begin
    x:=random(11);
    write(x,' ');
    s:=s+x;
 end;
 writeln(s);
end.

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

Вивід Пояснення
1 9 4 10 9 8 2 0 3 7 2 54Перші 10 чисел створені генератором випадкових чисел,
останнє число – їх сума.
2 7 9 0 8 5 8 3 8 10 4 62

Приклад 3

Одержати у програмі 20 випадкових дійсних чисел у діапазоні від A до B та знайти кількість тих, що >2. Числа A та B ввести з клавіатури.

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку потрібно ввести значення А та В оператором read(a, b).
  2. Потім потрібно викликати процедуру randomize.
  3. Встановимо початкове значення кількості k:=0.
  4. Потрібно створити двадцять дійсних чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі for i:=1 to 20 do:
  5. Коли цикл закінчиться, тобто будуть створені всі 20 чисел, виводиться на екран значення лічильника.

Програма

 var k,i:integer; x,a,b:real;
begin
 read(a,b);randomize; k:=0;
 for i:=1 to 20 do
 begin
    x:=a+random*(b-a);
    write(x:1:2,' ');
    if x>2 then k:=k+1;
    writeln(k);
 end;
end.

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

Ввід Вивід Пояснення
-3 3 -0.93 2.86 -0.29 -1.52
2.05 1.40  -2.30 1.04
2.03 2.03  -2.31 -1.16
1.77 -1.12 2.42 -2.86
1.43 -0.48 -2.17 0.25
5
Перші два числа (3 та -3) введені з клавіатури. Це значення А та В. Потім 20 чисел створені генератором випадкових чисел, останнє число – кількість тих, що >2.

Приклад 4

Одержати у програмі k випадкових цілих чисел у діапазоні від A до B включно та вивести на екран тільки ті з них, що закінчуються цифрою 7. Числа A(5<=A<=20 ), B(25<=B<=50) та  k(10<=k<=20) одержати випадковим чином.

Змінні:

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

 

Вихідні:

Проміжні:

Алгоритм

  1. Спочатку потрібно викликати процедуру randomize.
  2. Потім випадковим чином отримати значення a, b, k. Виведемо на екран створені значення.
  3. Потім потрібно створити k цілих чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі for i:=1 to k do:

Програма

 var x,k,i,a,b:integer;
begin
 randomize;
 a:=random(16)+5; b:=random(26)+25;
 k:=random(11)+10;
 Writeln('a=',a,' b=',b,' k=',k);
 for i:=1 to k do
 begin
    x:=a+random(b-a+1);
    if x mod 10=7 then write(x,' ');
 end;
end.

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

Вивід Пояснення
1 a=10 b=32 k=18
27 27 27 17
Створюється 18 чисел з інтервалу [10, 32]. З них тільки чотири закінчуються на цифру 7 (27 27 27 17).
2 a=5 b=40 k=14
Створюється 14 чисел з інтервалу [5, 40]. З них жодне не закінчується на цифру 7
3 a=16 b=26 k=17
17
Створюється 17 чисел з інтервалу [16, 26]. З них тільки одне закінчуються на цифру 7 (17).

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

  1. Одержати випадковим чином одне ціле число (від 1 до 6), що моделює кидання іграшкового кубика.
  2. Одержати випадковим чином одне дійсне число (від 8 до 18).
  3. Одержати випадковим чином одне число (0 чи 1), що моделює кидання монети (0-решка, 1-орел). Вивести результат, у вигляді: „орел” (якщо випало 1) та „решка” (якщо випало 0).
  4. Одержати випадковим чином два числа (від 0 до 6) , що моделює кість доміно. Вивести результат, наприклад, у вигляді: „Вибрано кість 4–0”.
  5. Одержати випадковим чином два числа (від 1 до 6), що моделюють кидання іграшкових кубиків двома гравцями. Вивести результат та з’ясувати, хто з гравців набрав більше балів.
  6. Одержати випадковим чином одне число, що моделює вартість гральної карти. Результат вивести у вигляді числа (для 6, 7, 8, 9, 10) або слова (для „валет”, „дама”, „король”, „туз”).
  7. Одержати у програмі 10 випадкових дійсних чисел у діапазоні від 0 до 1 та знайти їх суму.
  8. Одержати у програмі 15 випадкових цілих чисел у діапазоні від –5 до 5 включно та знайти кількість парних.
  9. Одержати у програмі 15 випадкових дійсних чисел у діапазоні від –6 до 6 та знайти кількість від’ємних.
  10. Одержати у програмі 20 випадкових цілих чисел у діапазоні від 0 до A включно та знайти суму кратних 5. Число A ввести з клавіатури.
  11. Одержати випадковим чином чотири числа (від 0 до 6) , що моделює дві кості доміно. Вивести результат, наприклад, у вигляді: „Вибрано кості 4–0 та 5–4”. З’ясувати, чи можна приставити одну кість до другої згідно з правилами гри у доміно. У нашому прикладі, це можна, бо 4=4.
  12. Одержати у програмі k випадкових цілих чисел у діапазоні від 0 до A включно та знайти кількість тих, що закінчуються цифрою 3. Числа A та k ввести з клавіатури.
  13. Одержати у програмі k випадкових дійсних чисел у діапазоні від 0 до A та вивести на екран тільки ті, що <2. Числа A та k ввести з клавіатури.
  14. Одержати у програмі k випадкових цілих чисел у діапазоні від 0 до A включно та знайти суму тих, що > A div 2. Числа A (10<=A<=30 ) та k (15<=k<=20) одержати випадковим чином.
  15. Одержати у програмі k випадкових дійсних чисел у діапазоні від A до B та вивести на екран тільки ті, що >C. Числа A (10<=A<=20 ), B(25<=A<=40 ), C (15<=C<=30) та k (10<=k<=15) одержати випадковим чином.
  16. Одержати випадковим чином два числа, що моделюють вартість (6, 7, 8, 9, 10, „валет”, „дама”, „король”, „туз”) та масть („піка”, „треф”, „бубна”, „чирва”) гральної карти. Результат вивести, наприклад, у вигляді : „Вибрано карту 6 трефи” або ”Вибрано карту король піки”.
  17. Скласти програму, що перевіряє знання таблиці множення. В ній випадковим чином одержати два числа  (від 0 до 9), після чого на екран виводиться питання у вигляді: „Чому дорівнює добуток 4 на 9?”. Після вводу відповіді повинно видаватись повідомлення, чи відповідь вірна.
  18. Скласти програму, що перевіряє знання таблиці множення. В ній випадковим чином одержати два числа (від 0 до  9), після чого на екран виводиться питання у вигляді: „Чому дорівнює добуток 4 на 9?”. Після вводу відповіді повинно видаватись повідомлення, чи відповідь вірна. Питання виводити 12 раз та підраховувати кількість вірних та невірних відповідей. В кінці поставити оцінку.

Назад Зміст Вперед