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

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

Войти
Регистрация
Восстановить пароль
 
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
#1

Написать программу, которая случайным образом выдаёт английские/русские слова - C++

29.11.2013, 01:16. Просмотров 498. Ответов 9
Метки нет (Все метки)

Написать программу, которая случайным образом выдаёт английские/русские слова из заранее созданного словаря(можно в файле), с целью написания пользователем перевода на русском/английском языке. Программа должна проверять правильность перевода и выдавать сообщение "Да"/"Нет" в случае правильности-неправильности ответа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 01:16     Написать программу, которая случайным образом выдаёт английские/русские слова
Посмотрите здесь:

Написать программу: заполнить матрицу случайным образом - C++
Помогите пожалуйста написать программу ( Дана квадратная матрица целых чисел размером N<=12. Заполнить матрицу случайными числами от 0 до...

Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m - C++
Помогите пожалуйста!!! С++Builder. Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m (n, m...

Написать программу, которая получает данные из файла, изменяя их любым образом - C++
Всем доброго времени суток. Очень прошу разобраться с заданием. Напишите программу, которая получает данные из файла, изменяет их (любым...

Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо) - C++
Вот примеры - "level, radar, dewed, civic, solos..." и строка - "When I get on a high level in programming?"

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

Написать программу которая будет искать разные слова из текста - C++
#include <iostream> #include <stdio.h> #include <list> #include <string> #include <string.h> int main(void) { const...

Английские и русские буквы. - C++
Здравствуйте! Подскажите пожалуйста, как в С отличить русские буквы от английских? Я думаю что надо оперировать с кодами букв, но как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,752
29.11.2013, 01:17     Написать программу, которая случайным образом выдаёт английские/русские слова #2
Используйте std::unordered_map, ассоциативный массив без сортировки. Если поддержки С++11 нет, то можно и std::map обойтись.
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:22  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #3
Спасибо.)Но как это реализовать? Не могу придумать алгоритм( Мало опыта, а нужно срочно сделать(

Добавлено через 2 минуты
Помогите, пожалуйста!! :'(
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,752
29.11.2013, 01:24     Написать программу, которая случайным образом выдаёт английские/русские слова #4
C++
1
2
3
4
5
int x = rand() % (map.size() * 2);
map::iterator it = map.begin() + x/2;
bool first = x < map.size();
std::cout << (first ? it->first : it->second) << "=>";
...
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:31  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #5
Спасибо) А как создать словарь?

Добавлено через 1 минуту
и как его подключить??
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,752
29.11.2013, 01:44     Написать программу, которая случайным образом выдаёт английские/русские слова #6
Считать с файла через fstream (wifstream)
сначала в
std::wstring first, second. Потом добавить в map с помощью метода insert.

Я еще подумал..тут бы конечно boost BiMap подошел бы в пору. Ну а так рациональней наверное даже std::vector<std:air<std::wstring, std::wstring>>
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 01:50  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #7
Спасибо) Как создать простой интерфейс (можно с помощью MFC)?
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,752
29.11.2013, 01:57     Написать программу, которая случайным образом выдаёт английские/русские слова #8
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
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
 
typedef std::pair<std::wstring, std::wstring> word;
typedef std::vector< word > dictionary;
 
int main()
{
    std::wifstream input("dictionary.txt");
    if (!input)
        return 1;
 
    dictionary dict;
    for (std::wstring first, second; input >> first >> second;
        dict.push_back(std::make_pair(first, second)));
 
    std::srand(time(0));
    while(true)
    {
        unsigned int x = rand() % (dict.size() * 2)
        bool first = x < dict.size();
        std::wcout << (first ? dict[x/2].first : dict[x/2].second) << " => ";
        std::wstring answer;
        std::wcin >> answer;
        std::wcout << (answer == (first ? dict[x/2].second : dict[x/2].first) ?
            L"Correct\n" : L"Incorrect\n");
    }
}
IrinaM
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 7
29.11.2013, 02:39  [ТС]     Написать программу, которая случайным образом выдаёт английские/русские слова #9
Спасибо большое). А каким образом мне нужно записывать слова в dictionary.txt?? В столбик, друг за другом или парами(т.е. слово-перевод)??

Добавлено через 5 минут
Ругается почему-то:
"warning C4244: аргумент: преобразование "time_t" в "unsigned int", возможна потеря данных"
и ещё
"error C2144: синтаксическая ошибка: перед "bool" требуется ";" "
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова
Еще ссылки по теме:

Написать программу, которая выводит слова, которые есть в обоих строках - C++
Написать программу, которая выводит слова, которые есть в обоих строках (строки нужно вводить с клавиатуры)

Заменить русские буквы на английские - C++
Нужно заменить буквы в словах с русских на английские. Короче говоря программа транслита. Буду очень благодарен за помощ.

Нужно написать программу в с/с++, которая определяет являются ли 2 введенных с клавиатуры слова рифмой - C++
Нужно написать программу в с/с++, которая определяет являются ли 2 введенных с клавиатуры слова рифмой. Слова считаются рифмующимися, если...

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

Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы - C++
//Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы. #include &lt;stdio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова #10
C++
1
unsigned int x = rand() % (dict.size() * 2)
-->
C++
1
unsigned int x = static_cast<unsigned int>(rand()) % (dict.size() * 2);
Yandex
Объявления
29.11.2013, 02:49     Написать программу, которая случайным образом выдаёт английские/русские слова
Ответ Создать тему
Опции темы

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