Другие языки программирования и технологии

Нужно написать программу (помогите с алгоритмом) с++

Прогамму за меня не прошу писать, только с алгоритмом помочь. Не могу понять, как начать.
Нужно написать прогу для проверки знаний по английскому. Рандомно выдает любое слово (на русском или английском) и нужно вести его перевод. То есть выводит слово на русском-нужно вести на английском. И наоборот.. .
Слов будет штук 500. Как начать? Использовать один массив заполненный словами? тогда как выводить другое слово?... или 2 массива один для русских, другой для английских слов? Запутался! Как бы вы сделали?
S@
Sherzod @@
6 630
самое просто два массива одной размерности -один для английских слов, другой для русских и чтоб значение слов с одинаковым номером совпадало, т. е выдает eng(572)- считываешь то что вводишь и сравниваешь чтобы eng(572)=rus(572)-если верно то writeln'Молодца' else writeln' Тупица'- как то так)
Александр Шувалов
Александр Шувалов
612
Лучший ответ
Создайте текстовый файл.
В него запишите слова или словосочетания в столбик. Первое - русское, второе - английское.
Считывайте данные построчно в vector<string> dic.
Размер контейнера вам известен, он и послужит для вычисления рандомных значений индексов dic.size().
Если индекс чётный, то пользователь увидит русское слово с индексом at( i ).
Далее пользователь вводит английское, а программа сравнивает его со словом, индекс которого at i + 1 )
Если же случайным образом будет выведено слово с нечётным индексом, то пользователь увидит английское слово.
Тогда он введёт русское, а программа сравнит его со словом, индекс которого at( i - 1 )
Счётчики попыток и правильных ответов реализуете сами.
Удачи!

P.S. Есть ещё более полезная вещь! Словари.. .http://msdn.microsoft.com/ru-ru/library/1ka6hya8.aspx
Позволяют для одного значения хранить несколько. А в языках такое часто встречается.
Либо 2 массива, либо один двумерный
Ответы идут по убыванию глупости. Что ж, внесу свою лепту:
используй map из библиотеки STL и будет тебе щастье

Словарь позволяет хранить ключ-значение, в твоем случае это будет слово-перевод
Иван Лялин
Иван Лялин
15 097
Если представить что есть уже два заполненных словами двумерных массива, то код будет примерно таким
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <ctime>

using namespace std;

int main(void)
{

char arr_1[500][20]; //английские слова
char arr_2[500][20]; //русские слова
char arr_3[20]; //сравниваемое слово
int n,m;
srand (time(0));
n=rand ()% 500;// случайное число
m=rand() % 10; // случайное число
if ( m > 5){cout << arr_1[n] <<"\n"; }
else {cout << arr_2[n] <<"\n"; }

gets(arr_3);// ввод слова
if (m > 5)
{
if (!strcmp(arr_2[n], arr_3)) // сравнение слов
cout <<"Перевод правильный";
else cout <<"перевод не правильный";
}
else
{
if (!strcmp(arr_1[n], arr_3)) // сравнение слов
cout <<"Перевод правильный";
else cout <<"перевод не правильный";
}

system("pause>null");
}
Чисто так, с бухты барахты могу сказать, что сам бы сделал так:
из массива
i- рандомное число от 0 до 500
выводится А
запрашивается перевод
проверяется, соответствует ли строка тому, что находится в массиве В
Это будет работать только если в первом массиве слову под номером i соответствует переведенное слово в массиве В
Не знаю как это сделать в С++, только начал его изучать, третий день
AV
Aleks Vikont
376
2 массива, рандомно выбираешь 1 или 2, дальше выводишь условие, если A[1] = B[1] то оценка +1, вроде так