Прогамму за меня не прошу писать, только с алгоритмом помочь. Не могу понять, как начать.
Нужно написать прогу для проверки знаний по английскому. Рандомно выдает любое слово (на русском или английском) и нужно вести его перевод. То есть выводит слово на русском-нужно вести на английском. И наоборот.. .
Слов будет штук 500. Как начать? Использовать один массив заполненный словами? тогда как выводить другое слово?... или 2 массива один для русских, другой для английских слов? Запутался! Как бы вы сделали?
Другие языки программирования и технологии
Нужно написать программу (помогите с алгоритмом) с++
самое просто два массива одной размерности -один для английских слов, другой для русских и чтоб значение слов с одинаковым номером совпадало, т. е выдает eng(572)- считываешь то что вводишь и сравниваешь чтобы eng(572)=rus(572)-если верно то writeln'Молодца' else writeln' Тупица'- как то так)
Создайте текстовый файл.
В него запишите слова или словосочетания в столбик. Первое - русское, второе - английское.
Считывайте данные построчно в vector<string> dic.
Размер контейнера вам известен, он и послужит для вычисления рандомных значений индексов dic.size().
Если индекс чётный, то пользователь увидит русское слово с индексом at( i ).
Далее пользователь вводит английское, а программа сравнивает его со словом, индекс которого at i + 1 )
Если же случайным образом будет выведено слово с нечётным индексом, то пользователь увидит английское слово.
Тогда он введёт русское, а программа сравнит его со словом, индекс которого at( i - 1 )
Счётчики попыток и правильных ответов реализуете сами.
Удачи!
P.S. Есть ещё более полезная вещь! Словари.. .http://msdn.microsoft.com/ru-ru/library/1ka6hya8.aspx
Позволяют для одного значения хранить несколько. А в языках такое часто встречается.
В него запишите слова или словосочетания в столбик. Первое - русское, второе - английское.
Считывайте данные построчно в 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 и будет тебе щастье
Словарь позволяет хранить ключ-значение, в твоем случае это будет слово-перевод
используй map из библиотеки STL и будет тебе щастье
Словарь позволяет хранить ключ-значение, в твоем случае это будет слово-перевод
Если представить что есть уже два заполненных словами двумерных массива, то код будет примерно таким
#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");
}
#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 соответствует переведенное слово в массиве В
Не знаю как это сделать в С++, только начал его изучать, третий день
из массива
i- рандомное число от 0 до 500
выводится А
запрашивается перевод
проверяется, соответствует ли строка тому, что находится в массиве В
Это будет работать только если в первом массиве слову под номером i соответствует переведенное слово в массиве В
Не знаю как это сделать в С++, только начал его изучать, третий день
2 массива, рандомно выбираешь 1 или 2, дальше выводишь условие, если A[1] = B[1] то оценка +1, вроде так
Похожие вопросы
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- ПОМОГИТЕ ПОЖАЛУЙСТА, КТО ЗНАЕТ ИНФОРМАТИКУ. НУЖНО НАПИСАТЬ ПРОГРАММУ НА С++.
- Нужно написать программу на паскале
- Нужно написать программу, на нахождения бессектрисы треугольника, если пользователем задано длину плз напишите прогу С++
- Нужно написать программу в делфи....не могу сама никак
- Паскаль написать программу помогите. срочно. Пожалуйста
- Нужно написать программа на ассемблере для функции СигнумХ . Как правильно это сделать?
- Здравствуйте!Нужно написать программу в Pascale
- нужно написать программу в Pascal.
- Помогите решить задание по информатике. Нужно написать программу по заданию (см. внутри)