Основы программирования на С++ для начинающих

Задачи: Функции C++

Продолжая знакомить вас с функциями в C++ предлагаем самостоятельно  решить несколько задач. Расположены они по уровню сложности.

1. Объявить два целочисленных массива  с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.

2. Необходимо создать двумерный массив 5 х 5. Далее написать функцию, которая заполнит его случайными числами от  30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива. (О генерации случайных чисел есть отдельная статья)

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

33 thoughts on “Задачи: Функции C++

  1. #include
    #include

    using namespace std;
    bool choice();
    int dice();
    void diceImg();
    int main()
    {
    setlocale(LC_ALL, “rus”);
    srand(time(NULL));
    int turn = 0;
    int comp = 0;
    int player = 0;
    int round = 0;
    turn = choice();
    for (int i = 0; i < 4; i++)
    {
    for (int j = 0; j < 2; j++)
    {

    if (turn)
    {
    cout << "Ход игрока\n";
    player += dice();
    }
    else
    {
    cout << "Ход компа\n";
    comp += dice();
    }
    turn = !turn;
    }cout << "Промежуточный счет: "<<"Игрок-"<<player << "очк." <<",Комп-"<<"очк."<<comp <<"очк."< comp)
    {
    cout << "В " << round << " раунде победил игрок\n";
    }
    else
    {
    cout << "В " << round << " раунде победил комп\n";
    }

    }cout << "Итоговый счет: " << "Игрок-" << player << "очк." << ",Комп-" << comp << "очк." < comp)
    {
    cout << "Конец игры, победил игрок\n";
    }
    else
    {
    cout << "Конец игры, победил комп\n";
    }
    return 0;
    }
    bool choice()
    {
    return rand() % 2;
    }

    void diceImg(int a)
    {
    switch (a)
    {
    case 1:
    cout<<"___\n \n * \n ";
    break;
    case 2:
    cout << "___\n \n* *\n ";
    break;
    case 3:
    cout << "___\n* *\n \n * ";
    break;
    case 4:
    cout << "___\n* *\n \n* *";
    break;
    case 5:
    cout << "___\n* *\n * \n* *";
    break;
    case 6:
    cout << "___\n* *\n* *\n* *";
    break;
    }
    }
    int dice()
    {
    int result = 0;
    int score = 0;
    for (int i = 0; i < 2; i++)
    {
    score = 1 + rand() % 6;
    diceImg(score);
    result += score;
    cout << endl;
    }
    return result;
    }

  2. #include
    #include

    using namespace std;

    int who_first();
    int throw_cube(int cube1, int cube2);

    int main()
    {
    setlocale(LC_ALL, “ru”);

    bool var;

    int cube1 = 0;
    int cube2 = 0;

    int pc_points = 0;
    int player_points = 0;

    int pc_total = 0;
    int player_total = 0;

    cout <> name;
    cout << endl;

    var = who_first();

    for (int i = 0; i < 8; i++)
    {
    if (var)
    {
    player_points = throw_cube(cube1, cube2);

    player_total += player_points;

    cout << "Ходит " << name << endl;
    cout << "У " << name << " выпало " << player_points << " очков" << endl;
    cout << "Всего у " << name << " " << player_total << " очков" << endl;
    cout <<"===================================================="<< endl << endl;
    }

    else
    {
    int pc_points = throw_cube(cube1, cube2);

    pc_total += pc_points;

    cout << "Ходит компьютер" << endl;
    cout << "У компьютера выпало " << pc_points << " очков" << endl;
    cout << "Всего у компьютера " << pc_total << " очков" << endl<< endl;
    cout << "====================================================" << endl << endl;
    }

    var = !var;
    }

    if (pc_total == player_total) cout << "Победила дружба! " < player_total) cout << "Победа за компьютером :-( " << endl;
    else if (pc_total < player_total) cout << "Победил(а) " << name << "!" << endl;
    }

    int who_first()
    {
    srand(time(0));
    int result = rand() % 2 – 1;

    return result;
    }

    int throw_cube(int cube1, int cube2)
    {
    cube1 = rand() % 6 + 1;
    cube2 = rand() % 6 + 1;

    int result = cube1 + cube2;
    return result;
    }

  3. Без промежуточных итогов.
    #include
    #include
    #include
    #include
    using namespace std;
    int PCscore, manscore;
    int cube();
    int cubePC();

    int main() {
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    srand(time(NULL));

    string x;
    cout << "КУБИКИ – СЫГРАЕМ?" << endl;
    for (int i = 0; i < 3; i++) {
    cout << "Бросить кубики?" <> x;
    if (x == “да”)
    {
    cube();
    }
    else {
    cout << "Завершение работы…";
    return 0;
    }
    cout << "Ход компьютера:" << endl;
    cubePC();
    }
    cout << "Компьютер – " << PCscore << endl
    << "Игрок – " << manscore < manscore) cout << "Вы проиграли" << endl;
    else cout << "Вы выиграли" << endl;
    }

    int cube() {
    SetConsoleOutputCP(866);
    SetConsoleCP(1251);
    int man1 = 1 + rand() % 5, man2 = 1 + rand() % 5;
    cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187
    << "\t" << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187 << endl
    << (char)186 << " " << man1 << " " << char(186)
    << "\t" << (char)186 << " " << man2 << " " << char(186) << endl
    << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188
    << "\t" << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188 << endl;
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    return manscore += (man1 + man2);
    }
    int cubePC() {
    SetConsoleOutputCP(866);
    SetConsoleCP(1251);
    int PC1 = 1 + rand() % 5, PC2 = 1 + rand() % 5;
    cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187
    << "\t" << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187 << endl
    << (char)186 << " " << PC1 << " " << char(186)
    << "\t" << (char)186 << " " << PC2 << " " << char(186) << endl
    << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188
    << "\t" << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188 << endl;
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    return PCscore += (PC1 + PC2);
    }

  4. Задание № 3
    #include
    #include
    #include
    #include
    using namespace std;

    void ThrowCube(int &NumOnCube)
    {
    NumOnCube = rand() % 6 + 1;
    switch (NumOnCube)
    {
    case 1:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| |" << endl;
    cout << "| * |" << endl;
    cout << "| |" << endl;
    cout << "\\_________/" << endl;
    break;
    case 2:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| * |" << endl;
    cout << "| |" << endl;
    cout << "| * |" << endl;
    cout << "\\_________/" << endl;
    break;
    case 3:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| * |" << endl;
    cout << "| * |" << endl;
    cout << "| * |" << endl;
    cout << "\\_________/" << endl;
    break;
    case 4:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| * * |" << endl;
    cout << "| |" << endl;
    cout << "| * * |" << endl;
    cout << "\\_________/" << endl;
    break;
    case 5:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| * |" << endl;
    cout << "| * * * |" << endl;
    cout << "| * |" << endl;
    cout << "\\_________/" << endl;
    break;
    case 6:
    cout << " _________" << endl;
    cout << "/ \\" << endl;
    cout << "| * * |" << endl;
    cout << "| * * |" << endl;
    cout << "| * * |" << endl;
    cout << "\\_________/" << endl;
    break;
    }
    }

    int main()
    {

    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    bool WhoTurn = rand() % 2;
    const int round = 4;
    int PlayerCube1 = 0;
    int PlayerCube2 = 0;
    int PlayerScore = 0;

    int BotCube1 = 0;
    int BotCube2 = 0;
    int BotScore = 0;
    int stats[2][round] = { };
    for (int i = 0; i < round * 2; i++)
    {
    if (WhoTurn == 1)
    {
    cout << "Ваш ход!" << endl;
    cout << "Бросить кубики(нажмите любую клавишу)" << endl;
    _getch();
    ThrowCube(PlayerCube1);
    ThrowCube(PlayerCube2);
    cout << "\nСумма цифр на кубиках: " << PlayerCube1 + PlayerCube2 << "\n" << endl;
    stats[0][i/2] = PlayerCube1 + PlayerCube2;
    PlayerScore += stats[0][i/2];
    WhoTurn = 0;
    }

    else
    {
    cout << "Ход компьютера!" << endl;
    cout << "Компьютер бросает кубики" << endl;
    Sleep(500);
    ThrowCube(BotCube1);
    ThrowCube(BotCube2);
    cout << "\nСумма цифр на кубиках: " << BotCube1 + BotCube2 <<"\n" << endl;
    stats[1][i/2] = BotCube1 + BotCube2;
    BotScore += stats[1][i/2];
    WhoTurn = 1;
    }
    if ((i+1) % 2 == 0 && i != round * 2 – 1)
    {
    cout << "\n=================================" << endl;
    cout << " Счёт игрока\tСчёт компьютера" << endl;
    cout << " " << PlayerScore << "\t " << BotScore << endl;
    cout << "=================================" < BotScore)
    {
    cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;
    cout << "@ Вы победили!!! Поздравляю! @" << endl;
    cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" < PlayerScore)
    {
    cout << "#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#" << endl;
    cout << "# Компьютер победил!!! В следующий раз повезёт! #" << endl;
    cout << "#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#" << endl;
    }
    else
    {
    cout << " \t\tНичья!" << endl;
    }
    cout << "==================================" << endl;
    cout << " Счёт игрока | Счёт компьютера" << endl;
    cout << " " << PlayerScore << " |" << "\t " << BotScore << endl;
    cout << " |" << endl;
    for (int i = 0; i < round; i++)
    {
    cout << i+1 << " бросок: " << stats[0][i] << " | " << " " << stats[1][i] << endl;
    }
    cout << "==================================" << endl;
    return 0;
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *