Назад
Зміст
Вперед
Задачі з випадковими числами
Приклад 1
Одержати випадковим чином одне число (від 1 до 4), що моделює масть гральних карт. Результат вивести у вигляді слів: „піка”, якщо випало 1, „треф”, якщо випало 2, „бубна”, якщо випало 3, „чирва”, якщо випало 4.
Змінні:
Вхідних даних немає
Вихідні:
-
x - число, що має значення 1, 2, 3, 4 (цілий тип)
Алгоритм
- Спочатку потрібно викликати процедуру randomize.
- Потрібно створити ціле число, що належить інтервалу [1, 4]. Для цього будемо використовувати формулу
X:=Random(B-A+1)+A, де A=1,B=4.
- Перевіримо створене число.
- Якщо воно дорівнює 1, то надрукуємо слово 'піка'.
- Якщо воно дорівнює 2, то надрукуємо слово 'треф'.
- Якщо воно дорівнює 3, то надрукуємо слово 'бубна'.
- Якщо воно дорівнює 4, то надрукуємо слово 'чирва'.
Програма
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 включно та знайти їх суму.
Змінні:
Вхідних даних немає.
Вихідні:
Проміжні:
Алгоритм
- Спочатку потрібно викликати процедуру randomize.
- Встановимо початкове значення суми s:=0.
- Потрібно створити десять цілих чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі
for i:=1 to 10 do:
- Числа повинні належати інтервалу [0, 10]. Тому для цього будемо використовувати формулу
X:=Random(B), де B=11.
- Отримане число виводиться на екран оператором
write(x,' ').
- Отримане число накопичується у суму оператором
s:=s+x.
- Коли цикл закінчиться, тобто будуть створені всі 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 ввести з клавіатури.
Змінні:
Вхідні:
Вихідні:
-
x – число, що має значення від А до В (дійсне число)
-
k – кількість чисел, що >2 (ціле число)
Проміжні:
Алгоритм
- Спочатку потрібно ввести значення А та
В оператором read(a, b).
- Потім потрібно викликати процедуру randomize.
- Встановимо початкове значення кількості k:=0.
- Потрібно створити двадцять дійсних чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі
for i:=1 to 20 do:
- Числа дійсні та повинні належати інтервалу [А, В). Тому для цього будемо використовувати формулу
X:=A+Random*(B-A).
- Отримане число виводиться на екран оператором
write(x:1:2,' ').
- Отримане число перевіряється та, якщо воно >2 збільшується лічильник
k:=k+1.
- Коли цикл закінчиться, тобто будуть створені всі 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) одержати випадковим чином.
Змінні:
Вхідних даних немає
Вихідні:
-
А, В – значення кордонів діапазону [А, В], з якого будемо одержувати випадкові числа (цілі числа)
-
x – випадкове число, що має значення від А до В (ціле число)
-
k – кількість випадкових чисел (ціле число)
Проміжні:
Алгоритм
- Спочатку потрібно викликати процедуру randomize.
- Потім випадковим чином отримати значення a, b, k. Виведемо на екран створені значення.
- Потім потрібно створити k цілих чисел, тому створення та інші дії будемо виконувати у операторних дужках у циклі
for i:=1 to k do:
- Числа цілі та повинні належати інтервалу [А, В). Тому для цього будемо використовувати формулу
x:=a+random(b-a+1).
- Отримане число перевіряється: якщо воно закінчується цифрою 7, то виводиться на екран оператором
write(x,' '), якщо ні, то не виводиться.
Програма
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 до 6), що моделює кидання іграшкового кубика.
- Одержати випадковим чином одне дійсне число (від 8 до 18).
- Одержати випадковим чином одне число (0 чи 1), що моделює кидання монети (0-решка, 1-орел). Вивести результат, у вигляді: „орел” (якщо випало 1) та „решка” (якщо випало 0).
- Одержати випадковим чином два числа (від 0 до 6) , що моделює кість доміно. Вивести результат, наприклад, у вигляді: „Вибрано кість 4–0”.
- Одержати випадковим чином два числа (від 1 до 6), що моделюють кидання іграшкових кубиків двома гравцями. Вивести результат та з’ясувати, хто з гравців набрав більше балів.
- Одержати випадковим чином одне число, що моделює вартість гральної карти. Результат вивести у вигляді числа (для 6, 7, 8, 9, 10) або слова (для „валет”, „дама”, „король”, „туз”).
- Одержати у програмі 10 випадкових дійсних чисел у діапазоні від 0 до 1 та знайти їх суму.
- Одержати у програмі 15 випадкових цілих чисел у діапазоні від –5 до 5 включно та знайти кількість парних.
- Одержати у програмі 15 випадкових дійсних чисел у діапазоні від –6 до 6 та знайти кількість від’ємних.
- Одержати у програмі 20 випадкових цілих чисел у діапазоні від 0 до A включно та знайти суму кратних 5. Число A ввести з клавіатури.
- Одержати випадковим чином чотири числа (від 0 до 6) , що моделює дві кості доміно. Вивести результат, наприклад, у вигляді: „Вибрано кості 4–0 та 5–4”. З’ясувати, чи можна приставити одну кість до другої згідно з правилами гри у доміно. У нашому прикладі, це можна, бо 4=4.
- Одержати у програмі k випадкових цілих чисел у діапазоні від 0 до A включно та знайти кількість тих, що закінчуються цифрою 3. Числа A та k ввести з клавіатури.
- Одержати у програмі k випадкових дійсних чисел у діапазоні від 0 до A та вивести на екран тільки ті, що <2. Числа A та k ввести з клавіатури.
- Одержати у програмі k випадкових цілих чисел у діапазоні від 0 до A включно та знайти суму тих, що > A div 2. Числа A (10<=A<=30 ) та k (15<=k<=20) одержати випадковим чином.
- Одержати у програмі k випадкових дійсних чисел у діапазоні від A до B та вивести на екран тільки ті, що >C. Числа A (10<=A<=20 ), B(25<=A<=40 ), C (15<=C<=30) та k (10<=k<=15) одержати випадковим чином.
- Одержати випадковим чином два числа, що моделюють вартість (6, 7, 8, 9, 10, „валет”, „дама”, „король”, „туз”) та масть („піка”, „треф”, „бубна”, „чирва”) гральної карти. Результат вивести, наприклад, у вигляді : „Вибрано карту 6 трефи” або ”Вибрано карту король піки”.
- Скласти програму, що перевіряє знання таблиці множення. В ній випадковим чином одержати два числа (від 0 до 9), після чого на екран виводиться питання у вигляді: „Чому дорівнює добуток 4 на 9?”. Після вводу відповіді повинно видаватись повідомлення, чи відповідь вірна.
- Скласти програму, що перевіряє знання таблиці множення. В ній випадковим чином одержати два числа (від 0 до 9), після чого на екран виводиться питання у вигляді: „Чому дорівнює добуток 4 на 9?”. Після вводу відповіді повинно видаватись повідомлення, чи відповідь вірна. Питання виводити 12 раз та підраховувати кількість вірних та невірних відповідей. В кінці поставити оцінку.
Назад
Зміст
Вперед