Что написать?
| |
Deswing | Дата: Воскресенье, 27 Октября 2013, 16:41 | Сообщение # 21 |
заслуженный участник
Сейчас нет на сайте
| Цитата avolkoff ( ) Может динамический массив? И что-то сразу не посмотрел, не работает логика проги - фигню выдает... Агась... Мысля такая: создать последовательность (массив) цифр из 0 и 1, где 0 - гласная, а 1 - согласная. Ну а потом другой ф-цией генерировать гласную, если элемент последовательности - 0, и согласную, если 1 соответственно...
Кажется свою ошибку нашел. Не знаю, буду пытаться реализовать
Цитата stalker5889 ( ) Рогалик Можно немного конкретнее?Добавлено (27.10.2013, 16:33) ---------------------------------------------
Код #include <iostream> #include <conio.h> #include <time.h> using namespace std;
char m[]={'a','e','i','o','u','y'}; char m2[]={'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','z','x'}; bool posl[5]={0,1,0,0,0}; int len;
void gen_posl() { len = 3+rand()%3; posl[0] = rand()%2; if(posl[0]==false) { posl[1]=true; } else { posl[1]=false; } cout<<posl[0]<<posl[1]; for(int i = 2; i <= len; i++) { if((posl[i-1]==true)&&(posl[i-2]==false)) { posl[i]=false; } if((posl[i-1]==false)&&(posl[i-2]==true)) { posl[i]=true; } if(rand()%3) { posl[i]=rand()%2; } cout<<posl[i]; } } void gen() { for(int i = 0; i <= len; i++) { if(posl[i]) { cout<<m[rand()%(sizeof(m)/sizeof(m[0]))]; } else //False { cout<<m2[rand()%(sizeof(m2)/sizeof(m2[0]))]; } } } int main(void) { srand(time(false)); for(int i = 0; i <= 99; i++) { gen_posl(); cout<<'\t'; gen(); cout<<endl; } cout<<endl; system("PAUSE"); return 0; }
Добавлено (27.10.2013, 16:34) --------------------------------------------- тьфу, 0 и 1 перепутал. Ну да ладно хд Добавлено (27.10.2013, 16:41) --------------------------------------------- у меня плохой тон программирования?
|
|
| |
avolkoff | Дата: Воскресенье, 27 Октября 2013, 17:12 | Сообщение # 22 |
частый гость
Сейчас нет на сайте
| Цитата Deswing ( ) у меня плохой тон программирования? По-моему именование не очень, ща скину свою версию, посмотришь...
Добавлено (27.10.2013, 17:12) --------------------------------------------- Код #include <iostream> #include <string> #include <vector>
// // 5 vowel letters //
char cV[] = { 'a', 'e', 'i', 'o', 'u' };
// // 21 consonant letters //
char cC[] = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' };
// // description: function for generating names // // params: int - length // bool - type of first letter: // true is vowel // false is consonant // // returns: string - generated name //
std::string genName(int nL, bool bFirstLetterType) { std::string ret = std::string(nL, false); bool bLastVowel = bFirstLetterType;
for(int i = 0; i < nL; i++) { if(bLastVowel) { ret[i] = cV[(rand() % 5)]; bLastVowel = false; } else { ret[i] = cC[(rand() % 21)]; bLastVowel = true; } }
return ret; }
// // entry-point //
int main(int argc, char *argv[]) { for(int i = 0; i < 10; i++) std::cout << genName(3, false) << std::endl;
return 0; } Вот по-моему простейшая реализация по шаблону "СГ || ГС", и еще форум калечит табы... И кстати, косяк у меня, генерирует одни и те же имена, когда запускаешь программу несколько раз, эт как понять?
Сообщение отредактировал avolkoff - Воскресенье, 27 Октября 2013, 17:21 |
|
| |
Deswing | Дата: Воскресенье, 27 Октября 2013, 17:45 | Сообщение # 23 |
заслуженный участник
Сейчас нет на сайте
| Цитата avolkoff ( ) int argc, char *argv[] ?
|
|
| |
avolkoff | Дата: Воскресенье, 27 Октября 2013, 17:59 | Сообщение # 24 |
частый гость
Сейчас нет на сайте
| Параметры Первый количество аргументов, второй указатель на строки с аргументами, например: Код #include <iostream>
int main(int argc, char *argv[]) { for(int i = 0; i < argc; i++) std::cout << argv[i] << std::endl;
return 0; } Странная фигня, но функция rand() генерирует одно и тоже при запуске выше написанного кода...
Сообщение отредактировал avolkoff - Воскресенье, 27 Октября 2013, 18:02 |
|
| |
Deswing | Дата: Воскресенье, 27 Октября 2013, 18:34 | Сообщение # 25 |
заслуженный участник
Сейчас нет на сайте
| Цитата avolkoff ( ) Странная фигня, но функция rand() генерирует одно и тоже при запуске выше написанного кода... Нужно заложить семя: srand(time(0));
|
|
| |
|