С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 30.03.2010
Сообщений: 19

система компьютерного обучения

01.05.2010, 17:56. Показов 823. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые гуру! Написал прогу САБЖ. Юзер вводит ответ на пример, который задает программа. Если ответ true - выводит рандомно реплики по типу "Хорошо" или "Молодец" и так далее и задает следующий пример. Если ответ false - выводит рандомно реплики по типу "Нет!" или "ЕЩЕ РАЗ!" и так далее и задает тот же вопрос(до получения правильного ответа). Просмотрите пжлст код, если не сложно, и подскажите как оптимизировать его, и какие ошибки обнаружили. Заранее спасибо! Программа работает!
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//Образовательная программа
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
 
int numbers(void);
int comments(int);
 
 
main()
{
    int res, out, num1, num2, com;
 
//--Бесконечный цикл
    while(1)
    {
        num1 = numbers();   //Случ. 1-е число
        num2 = numbers();   //Случ. 2-е число
 
        res = num1 * num2;
 
        cout<< "Skolko budet " << num1 << " * " << num2 << "? ";
 
        while(1)    //2-й бесконечный цикл
        {
            cin >> out;
 
            if(res == out)  //Если введен верный рез.
            {
                cout << setw(36);
                com = 1 + rand() % 4;   //Генерирует случайное число от 1 - 4
                
                comments(com);  //функция случ. полож. комента
                
                break;  //и выходим из 2-го цикла в 1-й
            }
 
              com = 5 + rand() % 8; //Генерирует случайное число от 5 - 8
              
              comments(com);    //функция случ. отриц. комента
              
              cout << "Ny otvet? ";
        }
    }
 
getch();
return 0;
}
 
//--Ф-я-генератор случайных чисел
int numbers(void)
{
    int a;
 
    a = 1 + rand() % 9; //Ген. случ чисел от 1 до 9
 
    return a;
}
 
//--Ф-я-генератор ответов
int comments(int com1)
{
    switch(com1)
    {
        case 1:
            cout << "O4en Horowo!" << endl;
            break;
        case 2:
            cout << "Otli4no!" << endl;;
            break;
        case 3:
            cout << "4ydesnaya Rabota!" << endl;;
            break;
        case 4:
            cout << "Davai ewe!" << endl;
            break;
        case 5:
            cout << "HET! Poputaites, ewe, plz." << endl;
            break;
        case 6:
            cout << "Heverno. Tak skolko?" << endl;
            break;
        case 7:
            cout << "He opuskaite ryki!" << endl;
            break;
        case 8:
            cout << "HET! Prodoljaite dalwe." << endl;
            break;
    break;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2010, 17:56
Ответы с готовыми решениями:

Система обучения С++
Здравствуйте, товарищи! У меня есть вопрос проффесиональным разработчикам С++ практиков. Я решил изучать язык С++ сам знаком языком...

Система обучения
Ребят стал такой вопрос, как дальше учить программирование, занимаюсь полтора года, но чего то толком ещё не написал, как-то больше делал...

Php: Система обучения
Приветствую всех. В чем суть сабжа. Я собираюсь учиться веб-программированию - backend, php. Конечная цель - быть Профи. Самое сложное...

4
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
01.05.2010, 19:21
Не предусмотрено самое главное - "Выход" из программы
А по коду - неудобно добавлять ответы, код в main зависит от содежимого ф-ций comments, т.е. от кол-ва ответов
int comments(...) ничего не возвращает

Вариант:
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
53
54
55
56
57
58
59
60
61
62
int numbers(void);
void comments(bool);
 
main()
{
    int res, out, num1, num2;
 
    //--Бесконечный цикл
    while(1)
    {
        num1 = numbers();       //Случ. 1-е число
        num2 = numbers();       //Случ. 2-е число
 
        res = num1 * num2;
        cout << "Skolko budet " << num1 << " * " << num2 << "? ";
 
        while(1)        //2-й бесконечный цикл
        {
            cin >> out;
 
            if (res == out)  //Если введен верный рез.
            {
                cout << setw(36);
 
                comments(true);  //функция случ. полож. комента
                break;  //и выходим из 2-го цикла в 1-й
            }
            comments(false);    //функция случ. отриц. комента
            cout << "Ny otvet? ";
        }
    }
 
    getch();
    return 0;
}
 
//--Ф-я-генератор случайных чисел
int numbers(void)
{
    return (1 + rand() % 9);     //Ген. случ чисел от 1 до 9
}
 
//--Ф-я-генератор ответов
int comments(bool good)
{
    if (good)
    {
        const int n_good = 4;
        char *s_good[n_good] = {"O4en Horowo!", "Otli4no!", "4ydesnaya Rabota!",
                               "Davai ewe!"};
        int com = rand() % (n_good - 1);
        cout << static_cast<char *>(s_good[com]) << endl;
    }
    else
    {
        const int n_bad = 4;
        char *s_bad[n_bad] = {"HET! Poputaites, ewe, plz.", "Heverno. Tak skolko?",
                              "He opuskaite ryki!", "HET! Prodoljaite dalwe."};
        int com = rand() % (n_bad - 1);
        cout << static_cast<char *>(s_bad[com]) << endl;
    }
}
1
0 / 0 / 1
Регистрация: 30.03.2010
Сообщений: 19
01.05.2010, 20:03  [ТС]
Roma_F спасибо большое) Но в твоем коде много того, чего я еще не учил! Учу самостоятельно и сам понимаешь тяжело. Немного подкорректирую код. Забыл сказать, что реплики нужно выводить с помощью свич! =) И еще подскажи если знаешь как выводить русский шрифт в консоль(тему про шрифты я почитал, но там не то, что нужно). Например в борланд с++ было просто поставить пару галочек для соответственной кодировки, а в борланд билдер уже не так
Эту часть понял не совсем, если не сложно поясни. Про bool почитал немного.Выход из проги с помощью крестика, тут не существенно это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int comments(bool good)
{
    if (good)
    {
        const int n_good = 4;
        char *s_good[n_good] = {"O4en Horowo!", "Otli4no!", "4ydesnaya Rabota!",
                               "Davai ewe!"};
        int com = rand() % (n_good - 1);
        cout << static_cast<char *>(s_good[com]) << endl;
    }
    else
    {
        const int n_bad = 4;
        char *s_bad[n_bad] = {"HET! Poputaites, ewe, plz.", "Heverno. Tak skolko?",
                              "He opuskaite ryki!", "HET! Prodoljaite dalwe."};
        int com = rand() % (n_bad - 1);
        cout << static_cast<char *>(s_bad[com]) << endl;
    }
}
0
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
01.05.2010, 21:59
Насчёт выхода я пошутил, а реализовать просто - например выходить при вводе "-1", ну и добавить соответствующую надпись "Для выхода введите -1"

Русский 1:
C++
1
2
3
4
5
6
7
void main()
{
    char s[]="Привет, мир!";
    CharToOem (s, s);
    cout << s;
    getch();
}
Русский 2:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
char *rus(char* st)
{
    unsigned char* p = st;
    while ( *p)
    {
        if (*p >= 192)
            if ( *p <= 239)
            *p -= 64;
        else // р..я
            *p -= 16;
 
        p++;
    }
    return st;
}
 
void main()
{
    char s2[] = "Привет, мир";
    cout << rus("\nЗдесь русский текст");
 
    getch();
}
Возможно ещё есть способы, я много с консолью в Билдере не работал

Эту часть понял не совсем, если не сложно поясни.
там же всё почти как у тебя. (static_cast у меня кстати лишний - что-то я перемудрил, и int на void я исправил только сверху)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void comments(bool good)
{
    if (good) // если нужны хорошие комментарии
    {
        ...
        cout << s_good[com] << endl;
    }
    else // если нужны плохие комментарии
    {
        ...
        cout << s_bad[com] << endl;
    }
}
1
0 / 0 / 1
Регистрация: 30.03.2010
Сообщений: 19
01.05.2010, 23:12  [ТС]
спасибо ) На счет выхода ГГГГГ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.05.2010, 23:12
Помогаю со студенческими работами здесь

Ищу людей для совместного обучения в области машинного обучения
Пишу на питоне посредством библиотеки keras. Было бы неплохо, например, работать над одним проектом, благо идей полно.

Добавление компьютерного игрока
Подскажите пожалуйсто, что я не так и может не туда пишу)) но компьютерный ход в крестиках ноликах работает как-то неправильно... ...

СБОРКА КОМПЬЮТЕРНОГО БЛОКА
Всем привет! Напишите пожалуйста сборку для игры в гта5 онлайн на норм. настройках, лучше без ссылок просто текстом параметры железа....

Тест компьютерного железа
Доброго время суток всем. Посоветуйте набор программ для теста компьютерных комплектующих типа Victoria или me test. Всё это из под dos...

Настройка компьютерного класса
Всем здравствуйте, подскажите пожалуйста. Настроил оснастку MMC (множественную групповую политику) на компьютере, как перенести ее на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru