Задачі з випадковими числами
Приклад 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 включно та знайти їх суму.
Змінні:
Вхідних даних немає.
Вихідні:
- x – число, що має значення від 0 до 10 (ціле число)
- s – сума всіх чисел x
Проміжні:
- i – параметр циклу (ціле число)
Алгоритм
- Спочатку потрібно викликати процедуру 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 (ціле число)
Проміжні:
- i – параметр циклу (ціле число)
Алгоритм
- Спочатку потрібно ввести значення А та В оператором 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 – кількість випадкових чисел (ціле число)
Проміжні:
- i – параметр циклу (ціле число)
Алгоритм
- Спочатку потрібно викликати процедуру 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 раз та підраховувати кількість вірних та невірних відповідей. В кінці поставити оцінку.
Немає коментарів:
Дописати коментар