Завдання 3. (3 бали). Написати програму генерації двох випадкових
чисел з проміжка -50...50 і визначення того, чи числа рівні, чи перше
менше, чи друге ме- нше. Для генерації випадкових чисел використати
функцію rand() (бібліо- тека stdlib.h), для ініціалізації генерації —
функцію srand(1) (бібліотека stdlib.h) чи srand(time(0)) (бібліотеки
stdlib.h і time.h). У Visual Studio ма- ксимальне згенероване число
визначається константою RAND_MAX = 32767, мінімальне — 0.
Генерація цілого числа від min до max включно — rand()%(maxmin+1)+min, від 0 до 10 — rand()%11 ; чисел –1, 0 чи 1 — rand()%3–1.
Для генерації дійсних чисел застосовують формулу
(float)rand()/RAND_MAX*(max-min)+min.
Оператор вибору. Умовний оператор при виконанні програми дає
можливість вибрати одну із двох дій залежно від значення виразу.
Узагальненням умовного оператора є оператор вибору
(багатоваріантного розгалуження). Використання оператора вибору
дає можливість реалізувати вибір однієї з кількох альтернатив.
Завдання 4. (3 бали) Приклад 4.7. За умовою поданого в
попередньому пункті прикладу 4.6 розробити алгоритм, відповідно до
якого програма структуризується на блоки: блок введення даних, блок
обробки і блок виведення результатів (вся видача повідомлень про
помилки і результат обчислення здійснюється в кінці програми; щоб
реалізувати таку видачу, треба використати робочу змінну, яка вказує
номер повідомлення).
Відокремлення блоку обчислень від блоку видачі результатів можна
ефективно реалізувати, якщо використати оператор вибору. Блок-схема
алгоритму:
Answers & Comments
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int a = -50 + rand() % (50 - 100 + 1);
printf("%d\n", a);
int b = -50 + rand() % (50 - 100 + 1);
printf("%d\n", b);
if (a == b) {
printf("a=b");
}
if (a > b) {
printf("a > b");
}
if (a < b) {
printf("a<b");
}
}