Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 22.06.2019
Сообщений: 35
1

Работа с циклами

16.07.2019, 20:16. Показов 1345. Ответов 5
Метки нет (Все метки)

Написать программу, которая проверяет пользователя на знание таблицы умножения. Программа выводит на экран два числа, пользователь должен ввести их произведение. Разработать несколько уровней сложности (отличаются сложностью и количеством вопросов). Вывести пользователю оценку его знаний.



Подскажите начинающему. Как сделать переход на другой уровень по задаче?
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
34
35
#include <iostream>
 
#include <time.h>
using namespace std;
 
void main()
{
     setlocale(LC_ALL, "RU");
     srand(time(NULL));
     int bal = 0, i = 5, aa, bb, cc, comp, igrok;
     do
     {
          aa = 1 + rand() % 9;
          bb = 1 + rand() % 9;
          cout << aa << "*" << bb << "=";
          cin >> cc;
         if (aa * bb == cc)
         {
               bal++;
               cout << "Ваш результат - " << bal << "баллов";
          }
          else
         {
                bal--;
                cout << "Ваш результат - " << bal << "баллов";
         }
         cout << " Для продолжения введите 1";
         cin >> bb;
         if (bal >= 5)
         {
              cout << " Поздравляем. Вы прошли этот уровень.";
         }
     } while (bb != 0);
     system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2019, 20:16
Ответы с готовыми решениями:

Работа с циклами
Затрудняюсь написать код для 3 и 5 задания, объясните пожалуйста. Есть ли какие-нибудь хитрости,...

Работа с циклами
Помогите найти наименьший номер элемента последовательности, для которого выполняется условие M....

Работа с циклами для вычисления выражения
Дано такое выражение на фото http://i.pixs.ru/storage/5/2/2/fotoJPG_2594443_11179522.jpg У меня...

Работа с циклами
Для заданого натурального N найти такие натуральные k, m, l чтоб k^2+m^2+l^2 = N Нужно написать...

5
6967 / 4724 / 2713
Регистрация: 18.12.2017
Сообщений: 14,783
16.07.2019, 20:58 2
JewelRose, разве первый уровень правильно организован ? допустим из 95 вопросов правильно ответили на 50 и уже на втором уровне ? как вариант например сделать чётко 10 циклов и переходить на второй уровень, если все ответы правильные (подвести результат 10 из 10) , если нет - повторить заново.
а второй уровень - поменять задачу, например квадраты чисел от 10 до 19

но это как бы я возможно решал задачу, а решение какой будет алгоритм - за Вами
0
1 / 1 / 0
Регистрация: 26.05.2019
Сообщений: 27
16.07.2019, 22:44 3
Я бы сделал switch с выбором уровня сложности в самом начале,естественно в цикле если пользователь захочет продолжения,и в свиче бы и написал код для всех уровней сложности,1 уровень - от 1 до 10,2 - от 11 до 100,3 - от 101 до 1000.Цифры можно подкорректировать если уж большие слишком,и сделал бы жизни кста,три ошибки- сорян ты не прошёл уровень и возврат в меню выбора сложности.
Что насчёт твоего вопроса,то можно в этот иф засунуть переменную,допустим int schetLevel=1,и умножай её на 10 в ифе если уровень пройден
Цитата Сообщение от JewelRose Посмотреть сообщение
if (bal >= 5)
{
cout << " Поздравляем. Вы прошли этот уровень.";
}
А тут,умножаешь эту schetLevel на рандом,допустим aa = 1*schetLevel + rand() % 9*schetLevel
Цитата Сообщение от JewelRose Посмотреть сообщение
aa = 1 + rand() % 9;
bb = 1 + rand() % 9;
0
1 / 1 / 0
Регистрация: 22.06.2019
Сообщений: 35
18.07.2019, 14:49  [ТС] 4
GuFiK2000, Не совсем понял можете в моем коде прописать как это будет?
Нужно чтобы при 5 правильных ответах было так:
Поздравляем Вы прошли уровень.
1 - Перейти на след уровень

0 - Выйти из программы
Как это реализовать?
0
6967 / 4724 / 2713
Регистрация: 18.12.2017
Сообщений: 14,783
19.07.2019, 02:14 5
Лучший ответ Сообщение было отмечено JewelRose как решение

Решение

JewelRose, например такой начальный вариант (у Вас может быть совсем другой код). функцию не использовал (хотя нужна), чтобы Вам было легче разобраться:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));    
    int a, b, c, bal, choice;
    
    cout << "LEVEL 1:\n";
    do
    {
        bal=0;
        for (int i = 1; i <= 5; i++)
        {    
            a=rand()%9+1;
            b=rand()%9+1;
            cout << a << "*" << b << "=";
            cin >> c;
        if (a*b==c) bal++;     
        }
        if (bal==5) cout << "Result: 5 out of 5  FINE!!!\n";
        else cout << "Result: " << bal << " out of 5  Repeat please...\n"; 
    }    
    while (bal!=5);
    
    cout << "Make a choice: 2 - LEVEL 2, 0 or other - Exit\n";
    cin >> choice;    
    
    if (choice==2)
    {
    cout << "LEVEL 2:\n";    
    do
    {
        bal=0;
        for (int i = 1; i <= 5; i++)
        {    
            a=rand()%10+10;            
            cout << a << "*" << a << "=";
            cin >> c;
        if (a*a==c) bal++;     
        }
        if (bal==5) cout << "Result: 5 out of 5  FINE!!!\n";
        else cout << "Result: " << bal << " out of 5  Repeat please...\n"; 
    }    
    while (bal!=5);
    }    
    
system("pause");
return 0;
}
1
1 / 1 / 0
Регистрация: 22.06.2019
Сообщений: 35
19.07.2019, 06:27  [ТС] 6
Yetty,
Код
спасибо огромное.
Если Вас не затруднит помогите плиз ещё с одной задачкой. Отправил в лс. Сегодня просто последний срок сдачи. Либо дайте хотя бы подсказку для реализации. Может дальше сам догадаюсь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2019, 06:27

Работа с циклами
Здравствуйте, помогите, пожалуйста. Необходимо написать программу из простых циклов (for..),...

Работа с циклами
Пока вопрос такой: почему не работает? set length=0 for /f tokens^=*^ delims^=^ eol^= %%a in (%0)...

Работа с циклами
Помогите разобраться.Есть 2 listbox с заполненными строками.Необходимо сравнить строки обоих...

Работа с циклами
Здравствуйте, какой день уже сижу над задачей, не могу понять где ошибка в коде... Мне надо чтоб...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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