Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
2 / 1 / 0
Регистрация: 09.09.2011
Сообщений: 51
1

Программа с генератором случайных чисел

13.09.2011, 12:55. Показов 6308. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу которая генерирует 2 целых числа от 0 до 9 и спрашивает произведение у пользователя, а потом сверяет его с верным.


среда программирования Visual Studio 2010
язык Си или Си++.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2011, 12:55
Ответы с готовыми решениями:

Работа с генератором случайных чисел
Здравствуйте, уважаемые форумчане. Прошу помощи вот с такой задачей, не могу никак ничего...

Как работать с генератором случайных чисел
В интернете нашёл мешалку для vector'a #include <algorithm> #include <functional> #include...

Задать размерность вектору генератором случайных чисел
Привет) Ситуация следующая: Динамический вектор. Написать программу по формированию...

Описать функции элементов одномерного массива с генератором случайных чисел
Описать функции формирования элементов одномерного массива с помощью генератора случайных чисел и...

30
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 12:57 2
Генерирует 2 числа, а спрашивает 1 ответ... Что должен ответить пользователь, уточните?
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
13.09.2011, 13:00 3
Может быть как-то так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main() {
   int a, b, c;
   
   a = rand() % 10;
   b = rand() % 10;
   
   printf("%d * %d = ", a, b);
   scanf("%d", &c);
   
   printf("%s\n", c == a*b ? "you're right" : "you aren't right");
   return 0;
}
2
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 13:01 4
Для 1 числа:
C++
1
2
3
4
5
6
7
8
 srand(time(NULL));
 int a=rand()%10;
 int b;
 cin >> b;
 if (a==b) cout << "YES!"<<endl;
 else cout << "NO!"<<endl;
 system("pause");
 return 0;
Дальше сами догадаетесь?

Добавлено через 1 минуту
Цитата Сообщение от fasked Посмотреть сообщение
Может быть как-то так?
Возможно, из условия не очень понятно =)
1
Заблокирован
Автор FAQ
13.09.2011, 13:18 5
fasked, протос вопрос
Цитата Сообщение от Alekto Посмотреть сообщение
среда программирования Visual Studio 2010
и
Цитата Сообщение от fasked Посмотреть сообщение
#include <stdio.h>
#include <stdlib.h>
не настораживает???
0
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
13.09.2011, 13:20 6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает???
Почему это должно настораживать? Разве VC2010 не умеет C?
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
13.09.2011, 13:23 7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает???
Да вообще ни разу.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,959
13.09.2011, 13:26 8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает?
Цитата Сообщение от Alekto Посмотреть сообщение
язык Си или Си++
Не, не настораживает. А должно бы?
0
Заблокирован
Автор FAQ
13.09.2011, 13:30 9
Цитата Сообщение от Alekto Посмотреть сообщение
Написать программу которая генерирует 2 целых числа от 0 до 9 и спрашивает произведение у пользователя, а потом сверяет его с верным.
Вот моё видение на С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream> //i/o
#include <cstdlib>  //rand srand
#include <conio.h>  //getch
#include <time.h>   //time - нужна для srand
 
 
using namespace std;
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
//Генерация случайного числа с возможностью установки 
//максимального значения генерируемого числа
int GetRandNum(int MaxRand);
 
int main()
{
    int a,b,c;
    std::cout<<"Введите предел генерируемого числа : ";
    int MaxRand;std::cin>>MaxRand;
    do
    {
        srand(time(NULL));
        
        a = GetRandNum(MaxRand);
        b = GetRandNum(MaxRand);
        std::cout<<"Введите произведение a*b : ";
        std::cin>>c;
 
        if(c != a*b)
            std::cout<<"Неверный ответ\r\n";
        std::cout<<" a*b = "<<a*b<<"\r\n";
        std::cout<<"Нажмите клавишу Y для нового теста\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
int GetRandNum(int MaxRand)
{
    int ret = rand();
    while(MaxRand < ret)
        ret = rand();
    return ret;
}
Миниатюры
Программа с генератором случайных чисел  
0
Заблокирован
Автор FAQ
13.09.2011, 13:33 10
easybudda,
fasked,
grizlik78, не раз выслушивал критику в свой адрес здесь на форуме том что заголовки в моих программах в старом стиле, вот и спросил...
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
13.09.2011, 13:36 11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не раз выслушивал критику в свой адрес здесь на форуме том что заголовки в моих программах в старом стиле, вот и спросил...
Ну так надо различать Си и С++, моя программа написана на Си, где альтернатив в стандартной библиотеке просто нет.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,959
13.09.2011, 13:57 12
чуть проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstdlib>
#include <ctime>
    
using namespace std;
    
int main(){
    srand(time(NULL));
    
    while ( true ){
        int a = rand() % 10;
        int b = rand() % 10;
        int c;
        
        cout << a << " x " << b << " = ";
        if ( ! ( cin >> c ) )
            break;
        cout << ( ( a * b == c ) ? "correct" : "wrong" ) << endl;
    }
    
    return 0;
}

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
заголовки в старом стиле
В моём представлении это что-то вроде <iostream.h>
Заголовки вроде <stdio.h> или <stdlib.h> - C стиль, то есть в программе на С написать
C
1
#include <cstdio>
было бы странной затеей...

Добавлено через 6 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
C++
1
2
3
4
5
6
7
int GetRandNum(int MaxRand) 
{ 
    int ret = rand(); 
    while(MaxRand < ret) 
        ret = rand(); 
    return ret; 
}
Кстати о странных затеях - в теории может навсегда задуматься. А на практике будет какой-то непонятный тормоз. При большом желании можно посчитать, с какого раза в среднем оно число вернёт. Зачем это?

Добавлено через 12 минут
-=ЮрА=-, мало того! В самой программе у тебя перемножаются 2 числа от 0 до запрошенного у пользователя, перемножаются, и пользователь должен ответ назвать. Во-первых как-то не вяжется с
Цитата Сообщение от Alekto Посмотреть сообщение
генерирует 2 целых числа от 0 до 9
а во-вторых, думаю, всё-таки пользователь должен видеть числа и выдавать результат, а программа - проверять, насколько хорошо он таблицу умножения знает. Угадать в тёмную пятизначное число (на твоём скрине) - не реально. От 0 до 81, и то не у всех с первого раза получится...
0
Заблокирован
Автор FAQ
13.09.2011, 15:15 13
Цитата Сообщение от easybudda Посмотреть сообщение
В самой программе у тебя перемножаются 2 числа от 0 до запрошенного у пользователя,
- пользователь указывает диапазон генерации чисел, это не одно и тоже, если бы задание было получить произведение двух случайных чисел, без MaxRan вообще за пределы INT_MAX могли выпрыгнуть
Цитата Сообщение от easybudda Посмотреть сообщение
Угадать в тёмную пятизначное число (на твоём скрине) - не реально. От 0 до 81, и то не у всех с первого раза получится...
- вбил MaxRand чисто в целях тестирования задача стояла
Цитата Сообщение от Alekto Посмотреть сообщение
Написать программу которая генерирует 2 целых числа от 0 до 9
-вбили MaxRand 9 и пользуемся, насчёт вывода сам ТС должен уточнить что ему при выводе нужно...

Цитата Сообщение от easybudda Посмотреть сообщение
заголовки в старом стиле
В моём представлении это что-то вроде <iostream.h>
Заголовки вроде <stdio.h> или <stdlib.h> - C стиль, то есть в программе на С написать
Код C
1
#include <cstdio>
было бы странной затеей...
- на счёт стилей заголовков я писал на основе этого топика Старый и новый стиль заголовков и постов в нём...
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
13.09.2011, 15:20 14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
на счёт стилей заголовков я писал на основе этого топика
Не нашел ни слова касательно языка Си.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вбил MaxRan чисто в целях тестирования задача стояла
А выкладываете как production code.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вбили MaxRand 9 и пользуемся
Несоответствие ТЗ.

Не по теме:

Жаль, что нет тега irony специально для таких случаев :D

0
Заблокирован
Автор FAQ
13.09.2011, 15:26 15
Цитата Сообщение от fasked Посмотреть сообщение
Несоответствие ТЗ.
- что это значит?

Цитата Сообщение от fasked Посмотреть сообщение
Не нашел ни слова касательно языка Си.
- 2-й пост в том топике...
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
13.09.2011, 15:28 16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
что это значит?
Техническое задание.. гы-гы
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2-й пост в том топике
Там говорится о C++ и заголовках в Си стиле. А не о Си. В Си вообще нет разных стилей заголовков
0
Заблокирован
Автор FAQ
13.09.2011, 15:31 17
Цитата Сообщение от fasked Посмотреть сообщение
вбил MaxRan чисто в целях тестирования задача стояла
А выкладываете как production code.
- задача может стоять в генерации чисел от 0 до 780 или 560, как удобней будет, так что в этом случае привёл более общий алгоритм не ограничиваясь лишь условием топика, ТС сможет использовать эту функцию для генерации любого диапазона...

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Там говорится о C++ и заголовках в Си стиле. А не о Си. В Си вообще нет разных стилей заголовков
Цитата Сообщение от Alekto Посмотреть сообщение
среда программирования Visual Studio 2010
- я к этому вёл, ладно предлагаю перейти к рассмотрению топиков у меня нет желания спорить, я привёл свой код, постившие здесь люди свой, тем самымым у ТС есть выбор, в конечном итоге наши посты направлены на помощь а не на взаимные язвы, или я не прав?
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 15:34 18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
как удобней будет, так что в этом случае привёл более общий алгоритм
Действительно, намного удобней
C++
1
2
3
4
int GetRandNum(int MaxRand) 
{ 
    return (rand()%MaxRand); 
}
0
Заблокирован
Автор FAQ
13.09.2011, 15:36 19
Цитата Сообщение от mimicria Посмотреть сообщение
rand()%MaxRand
- это остаток от деления
256 % 10 отлично от 256, это два различных числа в итоге...
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 15:51 20
Если MaxRand равно 256, то 10 и 10%256 - одни и те же числа
0
13.09.2011, 15:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2011, 15:51
Помогаю со студенческими работами здесь

Массив: Получить массив, элементы которого задаются генератором случайных чисел в диапазоне от 1 до 40.
Нужен одномерный массив, который задается генератором рандомных чисел в диапазоне от 1 до 40, числа...

Отладка кода с генератором случайных функций
Есть код генератора рандома для вызова одной из функций #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Программа с генератором случайных чисел не всегда выдает корректный результат
Небольшой &quot;шедевр&quot;. Вроде бы синтаксис верный, а вот работает периодически с ошибками. Как вы...

Помогите с генератором случайных чисел
program new; var i,j,k,num:integer; begin for i:=1 to 500 do begin randomize;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru