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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
QVO
638 / 449 / 32
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
Завершенные тесты: 2
#1

Выполнить функции в случайном порядке - C++

18.04.2014, 22:00. Просмотров 252. Ответов 4
Метки нет (Все метки)

Допустим есть 5 функций

C++
1
2
3
4
5
void foo1() { cout << "1" << endl; }
void foo2() { cout << "2" << endl; }
void foo3() { cout << "3" << endl; }
void foo4() { cout << "4" << endl; }
void foo5() { cout << "5" << endl; }
Каким образом можно запрограммировать их выполнение в случайном порядке?
Например:
1 тест выполнится 2, 3, 1, 4, 5
2 тест выполнится 1, 5, 3, 2, 4
и т. д.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 22:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выполнить функции в случайном порядке (C++):

Программа, которая выводит текст в случайном порядке, а затем соответстующие ответы в таком же порядке - C++
Написана часть программы, которая выводит 15 вопросов в случайном порядке, и при этом ни один вопрос не повторяется. Проблема : как сделать...

Слова строки в случайном порядке c++ - C++
Суть задания в том, что нужно из строки str расставить слова в случайном порядке. к примеру string str=&quot;Травка зеленеет, солнышко...

Перемешать числа в случайном порядке - C++
Есть набор чисел: { 1, 2, 3, 4, 5, 6, 7, 8, 0 } Нужно написать функцию, которая будет перемешивать данные числа в случайном порядке.

Вывод строк в случайном порядке - C++
Здраствуйте. Нужно выводить строки в случайном порядке неопределенное количество раз. Т.е. к примеру, я создам переменных типа string и...

Переставить элементы массива в случайном порядке - C++
На вход функции подаются итераторы начала и конца массива. Нужно переставлять в цикле первый элемент с рэндомным, таким образом при одних...

Матрица, заполненная 0 или 1 в случайном порядке - C++
Начал изучение С++, вот делаю лабораторные. Там задание В матрицу MxN (заполненными 0 или 1) вычислить..... Так вот - как срандомить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
18.04.2014, 22:05 #2
Вектор указателей на функцию создай. Дальше в цикле рандомно выбирается функция, выполняется и удаляется из вектора.
QVO
638 / 449 / 32
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
Завершенные тесты: 2
18.04.2014, 22:09  [ТС] #3
Бендерродригез, а если функции имеют разное количество параметров, или являются методами разных классов?
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
18.04.2014, 22:30 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если все функцтюии принимают одинаковое кол-во параметров, то вот интересный способ:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
 
void foo1(){
 std::cout << "1";
}
 
void foo2(){
 std::cout << "2";
}
 
void foo3(){
 std::cout << "3";
}
 
void foo4(){
 std::cout << "4";
}
 
int main(){
 srand(time(0));
 std::vector<void(*)()> v;
 v.push_back(foo1);
 v.push_back(foo2);
 v.push_back(foo3);
 v.push_back(foo4);
 
 void (*call)() = v[rand()%5];
 call();
}

Но можно и банально switch. Получаете рандомное яисло и в switch его, а в разных case вызовы функции.
QVO
638 / 449 / 32
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
Завершенные тесты: 2
19.04.2014, 00:59  [ТС] #5
MastAKK, для свитча нужно создавать доп. массив с индексами функций, которые уже запускались. Лучше делать как сказал Бендерродригез -- удалять с вектора использованную функцию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2014, 00:59
Привет! Вот еще темы с ответами:

Вывод четных и нечетных чисел в случайном порядке - C++
Помогите пожалуйсто составить программу, для вывода четных чисел до 10(2, 4, 6, 8, 10), и нечетных до 11(1, 3, 5, 7, 9, 11), с помощью...

Выводить в случайном порядке вопросы в программе тестирования - C++
Здравствуйте. У меня есть программа тестирования. Мне нужно сделать так что бы вопросы выводились рандомно. Короче по другому если...

Создать новую матрицу, скопировав её из исходной; заполнить 30% новой матрицы нулями в случайном порядке - C++
Задание 3 скопировать 2-мерный массив и 30% чисел в нем заполнить нулями (в случайном порядке)

Выполнить сортировку массива в заданном порядке - C++
Создайте приложение, которое предлагает пользователю ввести размер массива и создать массив случайных целых чисел, а затем, используя...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.04.2014, 00:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru