Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.83
Alekto
1 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 51
13.09.2011, 12:55     Программа с генератором случайных чисел #1
Написать программу которая генерирует 2 целых числа от 0 до 9 и спрашивает произведение у пользователя, а потом сверяет его с верным.


среда программирования Visual Studio 2010
язык Си или Си++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2011, 12:55     Программа с генератором случайных чисел
Посмотрите здесь:

C++ Программа, генерирующая 3 последовательности из 10-и случайных чисел
C++ Программа, помещающая 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список
Сформировать одномерный массив целых чисел, используя датчик случайных чисел C++
Как работать с генератором случайных чисел C++
C++ Работа с генератором случайных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.09.2011, 12:57     Программа с генератором случайных чисел #2
Генерирует 2 числа, а спрашивает 1 ответ... Что должен ответить пользователь, уточните?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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;
}
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
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 Посмотреть сообщение
Может быть как-то так?
Возможно, из условия не очень понятно =)
-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 13:18     Программа с генератором случайных чисел #5
fasked, протос вопрос
Цитата Сообщение от Alekto Посмотреть сообщение
среда программирования Visual Studio 2010
и
Цитата Сообщение от fasked Посмотреть сообщение
#include <stdio.h>
#include <stdlib.h>
не настораживает???
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
13.09.2011, 13:20     Программа с генератором случайных чисел #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает???
Почему это должно настораживать? Разве VC2010 не умеет C?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.09.2011, 13:23     Программа с генератором случайных чисел #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает???
Да вообще ни разу.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.09.2011, 13:26     Программа с генератором случайных чисел #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не настораживает?
Цитата Сообщение от Alekto Посмотреть сообщение
язык Си или Си++
Не, не настораживает. А должно бы?
-=ЮрА=-
Заблокирован
Автор 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;
}
Миниатюры
Программа с генератором случайных чисел  
-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 13:33     Программа с генератором случайных чисел #10
easybudda,
fasked,
grizlik78, не раз выслушивал критику в свой адрес здесь на форуме том что заголовки в моих программах в старом стиле, вот и спросил...
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.09.2011, 13:36     Программа с генератором случайных чисел #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не раз выслушивал критику в свой адрес здесь на форуме том что заголовки в моих программах в старом стиле, вот и спросил...
Ну так надо различать Си и С++, моя программа написана на Си, где альтернатив в стандартной библиотеке просто нет.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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, и то не у всех с первого раза получится...
-=ЮрА=-
Заблокирован
Автор 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>
было бы странной затеей...
- на счёт стилей заголовков я писал на основе этого топика Старый и новый стиль заголовков и постов в нём...
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.09.2011, 15:20     Программа с генератором случайных чисел #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
на счёт стилей заголовков я писал на основе этого топика
Не нашел ни слова касательно языка Си.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вбил MaxRan чисто в целях тестирования задача стояла
А выкладываете как production code.
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вбили MaxRand 9 и пользуемся
Несоответствие ТЗ.

Не по теме:

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

-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 15:26     Программа с генератором случайных чисел #15
Цитата Сообщение от fasked Посмотреть сообщение
Несоответствие ТЗ.
- что это значит?

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

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Там говорится о C++ и заголовках в Си стиле. А не о Си. В Си вообще нет разных стилей заголовков
Цитата Сообщение от Alekto Посмотреть сообщение
среда программирования Visual Studio 2010
- я к этому вёл, ладно предлагаю перейти к рассмотрению топиков у меня нет желания спорить, я привёл свой код, постившие здесь люди свой, тем самымым у ТС есть выбор, в конечном итоге наши посты направлены на помощь а не на взаимные язвы, или я не прав?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.09.2011, 15:34     Программа с генератором случайных чисел #18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
как удобней будет, так что в этом случае привёл более общий алгоритм
Действительно, намного удобней
C++
1
2
3
4
int GetRandNum(int MaxRand) 
{ 
    return (rand()%MaxRand); 
}
-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 15:36     Программа с генератором случайных чисел #19
Цитата Сообщение от mimicria Посмотреть сообщение
rand()%MaxRand
- это остаток от деления
256 % 10 отлично от 256, это два различных числа в итоге...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2011, 15:51     Программа с генератором случайных чисел
Еще ссылки по теме:

C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел
C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Описать функции элементов одномерного массива с генератором случайных чисел C++

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

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.09.2011, 15:51     Программа с генератором случайных чисел #20
Если MaxRand равно 256, то 10 и 10%256 - одни и те же числа
Yandex
Объявления
13.09.2011, 15:51     Программа с генератором случайных чисел
Ответ Создать тему
Опции темы

Текущее время: 23:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru