Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Помочь дописать программу


Автор: tazmanas 18.4.2009, 15:16
Код

#include <iostream>
#include <time.h>

using namespace std;

int score;
int user_otvet;
int comp_otvet;
int n1;
int n2;
const int  MAX_NUMBER = 11;

void main()
{
   int i;
   srand( time( NULL));
   

   for ( i=0; i<5; i++)
   {
      n1 = rand() % MAX_NUMBER;
      n2 = rand() % MAX_NUMBER;
      comp_otvet = n1*n2;


       cout << "skolko budet? " << n1 << "*" << n2 << endl;
       cin >> user_otvet;
       //cout << n1;
      
       if (user_otvet == comp_otvet) //sravnivaem rezultat
       {
         score++;

       }
   }
   cout << "Poluchenno ochkov: " << score;
}


вот работающий код, написанный c++

нужно сделать так, чтоб генерировались не циферки до 11, как в данном примере, а именно: 35*1, 35*2 ... 35*25, 17*1, 17*2 ... 17*25, 11*1, 11*2 ... 11*25, 8*1, 8*2 ... 8*25, 5*1, 5*2 ... 5*25 эти задания решить.
Например посмотреть сколько человек ответит правильно если ему дать 20 заданий...

Я полагаю тут нужны массивы, но с ними у меня уже проблемы, я не магу закончить мою программу, кто может помоч?

Автор: zim22 18.4.2009, 15:51
Цитата(tazmanas @  18.4.2009,  15:16 Найти цитируемый пост)
Я полагаю тут нужны массивы, но с ними у меня уже проблемы, я

какие проблемы? большие? или маленькие? smile

Автор: Anikmar 18.4.2009, 15:54
Цитата(zim22 @  18.4.2009,  15:51 Найти цитируемый пост)
какие проблемы? большие? или маленькие?

Масивы или проблемы?  smile 

Автор: zim22 18.4.2009, 16:22
Цитата(Anikmar @  18.4.2009,  15:54 Найти цитируемый пост)
Масивы или проблемы? 

я это и пытаюсь выяснить smile

Автор: tazmanas 18.4.2009, 16:36
ну наверно большие проблемы, я массивы учил только на delphi и то это был билет в эгзамине, так что в голове ничего и не осталось...
так как там, сложно дописать мою программу?

Автор: zim22 18.4.2009, 17:20
Цитата(tazmanas @  18.4.2009,  16:36 Найти цитируемый пост)
сложно дописать мою программу?

сложно. очень. идите в http://forum.vingrad.ru/forum/Vingrad-help-center.html

Автор: tazmanas 18.4.2009, 17:34
а можете перенести тему туда, или новую создавать? 

Автор: zim22 18.4.2009, 17:52
Цитата(tazmanas @  18.4.2009,  17:34 Найти цитируемый пост)
 или новую создавать? 

новую создайте.

только вместо этого
Цитата(tazmanas @  18.4.2009,  15:16 Найти цитируемый пост)
нужно сделать так, чтоб генерировались не циферки до 11, как в данном примере, а именно: 35*1, 35*2 ... 35*25, 17*1, 17*2 ... 17*25, 11*1, 11*2 ... 11*25, 8*1, 8*2 ... 8*25, 5*1, 5*2 ... 5*25 эти задания решить.Например посмотреть сколько человек ответит правильно если ему дать 20 заданий...

напишите другими словами. лично я ничего не понял вообще.

Автор: tazmanas 18.4.2009, 18:51
имеем определённые задание:

35x1
35x2
35x3
....
35x25
17x1
17x2
17x3
....
17x25

11х1
11х2
...
11х25

8х1
8х2
...
8х25

5х1
5х2
...
5х25

вот мне и надо их генерировать, в разброс програма показывает на экране эти действия и человек в водит свойи ответы, например сделать цыкл 6 примеров в разброс - 17*35, 11*12, 8*7, 5*15, 17*20, 11*8

Автор: Anikmar 18.4.2009, 20:36
Цитата(tazmanas @  18.4.2009,  18:51 Найти цитируемый пост)
имеем определённые задание:

Вот когда замечание по русскому языку напрашивается:
Где произошла ошибка (опечатка)? ТС хотел сказать что задание одно и имел в виду "определенное задание" или ошибся во втором слове и имел в виду "Определенные задания". Разница в данном случае есть- решать одно из нескольких или гнать все подряд  smile

Добавлено через 1 минуту и 25 секунд
Вопрос: Задания могут повторяться?

Автор: tazmanas 18.4.2009, 22:05
кстате вот и решение, помогли

Код

#include <iostream>
#include <time.h>

using namespace std;

int score;
int user_otvet;
int comp_otvet;
int n1;
int n2;
int n3;
const int  MAX_NUMBER = 5;
const int  MAX_NUMBER2 = 25;

int main()
{
   int i;
   srand( time( NULL));
   

   for ( i=0; i<=5; i++)
   {
      n3 = rand() % MAX_NUMBER;
      switch(n3){
                 case 0: n1=35; break;
                 case 1: n1=17;break;
                 case 2: n1=11;break;
                 case 3: n1=8;break;
                 case 4: n1=5;break;
                 }
      n2 = rand() % MAX_NUMBER2;
      comp_otvet = n1*n2;


       cout << "kiek bus? " << n1 << "*" << n2 << endl;
       cin >> user_otvet;
     
       if (user_otvet == comp_otvet) //sravnivaem rezultat
       {
         score++;

       }
   }
   cout << "Poluchenno ochkov: " << score;
  system("pause");
}


одно только плохо, иногда выскакивает ноль, а умножать на ноль смысла нету, но я так и не нашёл где указать чтоб нуля не было

а так вот уже радуюсь данным продуктом smile

Автор: Anikmar 18.4.2009, 22:14
Цитата(tazmanas @  18.4.2009,  22:05 Найти цитируемый пост)
одно только плохо, иногда выскакивает ноль, а умножать на ноль смысла нету, но я так и не нашёл где указать чтоб нуля не было

А 25 хоть раз выскочило?

Цитата(tazmanas @  18.4.2009,  22:05 Найти цитируемый пост)
cout << "kiek bus? "

А что значит kiek bus - это на каком языке?

Автор: Soah 18.4.2009, 22:15
Код

n2 = 1 + rand() % (MAX_NUMBER2-1);

?

Добавлено через 1 минуту и 15 секунд
если и 25
Код

n2 = 1 + rand() % MAX_NUMBER2;

Автор: Anikmar 18.4.2009, 22:20
Ну вот, даже тут ТС не дали подумать - страшную тайну открыл Soah.  smile 

Автор: Soah 18.4.2009, 22:29
Anikmar
пасха smile 

Автор: Anikmar 18.4.2009, 22:50
Цитата(Soah @  18.4.2009,  22:29 Найти цитируемый пост)
Anikmar, 
пасха   

Ага  smile 

Автор: tazmanas 19.4.2009, 00:26
Цитата(Anikmar @ 18.4.2009,  22:14)
Цитата(tazmanas @  18.4.2009,  22:05 Найти цитируемый пост)
одно только плохо, иногда выскакивает ноль, а умножать на ноль смысла нету, но я так и не нашёл где указать чтоб нуля не было

А 25 хоть раз выскочило?

Цитата(tazmanas @  18.4.2009,  22:05 Найти цитируемый пост)
cout << "kiek bus? "

А что значит kiek bus - это на каком языке?

за 25 не помню, но 24 точно были...
это на литовском, я из вильнюса

Автор: Anikmar 19.4.2009, 00:44
Чтобы небыло 0 - вам уже посоветовали:
Цитата(Soah @  18.4.2009,  22:15 Найти цитируемый пост)
если и 25
n2 = 1 + rand() % MAX_NUMBER2;


Автор: Dov 23.4.2009, 15:23
Цитата(tazmanas @  18.4.2009,  15:16 Найти цитируемый пост)
Я полагаю тут нужны массивы, но с ними у меня уже проблемы, я не магу закончить мою программу, кто может помоч?

Вот с массивом:
Код
int main()
{
    srand( time( NULL));

    const int  MAX_NUMBER      = 5;
    const int  MAX_NUMBER2     = 25;
    int        num[MAX_NUMBER] = {35, 17, 11, 8, 5}; 
    int        score           = 0;
    int        user_otvet;

   for(int i = 1; i <= 5; i++)
   {       
        int n1 = num[rand() % MAX_NUMBER];
        int n2 = rand() % MAX_NUMBER2 + 1;

        cout << "kiek bus? " << setw(2) << n1 << " x " << setw(2) << n2 << " = ";
        cin  >> user_otvet;

        if(user_otvet == n1 * n2)                       //sravnivaem rezultat
            score++;
   }

   cout << "\nPoluchenno ochkov : " << score << endl;
   system("pause");
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)