Основи програмування на С ++ для початківців

Завдання: Функции C

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

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

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

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

37 думки про "Завдання: Функции C

  1. #include
    #include

    using namespace std;

    int хто_перший();
    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 = хто_перший();

    for (int i = 0; i < 8; i )
    {
    if (var)
    {
    player_points = кидок_куба(куб1, куб2);

    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(куб1, куб2);

    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 хто_перший()
    {
    srand(time(0));
    int результат = rand() % 2 – 1;

    return result;
    }

    int throw_cube(int cube1, int cube2)
    {
    cube1 = rand() % 6 + 1;
    куб2 = ребро() % 6 + 1;

    int результат = cube1 + куб2;
    return result;
    }

  2. Без проміжних підсумків.
    #include
    #include
    #include
    #include
    using namespace std;
    int PCscore, рекорд;
    куб int();
    int cubePC();

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

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

    куб int() {
    SetConsoleOutputCP(866);
    SetConsoleCP(1251);
    int man1 = 1 + rand() % 5, людина2 = 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 << " " << людина1 << " " << char(186)
    << "\t" << (char)186 << " " << людина2 << " " << 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);
    повернути manscore + = (людина1 + людина2);
    }
    int cubePC() {
    SetConsoleOutputCP(866);
    SetConsoleCP(1251);
    int PC1 = 1 + rand() % 5, ПК2 = 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 << " " << ПК1 << " " << char(186)
    << "\t" << (char)186 << " " << ПК2 << " " << 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);
    повернути PCscore + = (ПК1 + ПК2);
    }

  3. завдання № 3
    #include
    #include
    #include
    #include
    using namespace std;

    порожнеча 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[2][круглі] = { };
    for (int i = 0; i < круглі * 2; i )
    {
    if (WhoTurn == 1)
    {
    cout << "Ваш ход!" << endl;
    cout << "Бросить кубики(натисніть будь-яку клавішу)" << endl;
    _getch();
    ThrowCube(PlayerCube1);
    ThrowCube(PlayerCube2);
    cout << "\nСумма цифр на кубиках: " << PlayerCube1 + PlayerCube2 << "\n" << endl;
    статистика[0][i / 2] = PlayerCube1 + PlayerCube2;
    PlayerScore + = статистика[0][i / 2];
    WhoTurn = 0;
    }

    else
    {
    cout << "Ход компьютера!" << endl;
    cout << "Компьютер бросает кубики" << endl;
    сон(500);
    ThrowCube(BotCube1);
    ThrowCube(BotCube2);
    cout << "\nСумма цифр на кубиках: " << BotCube1 + BotCube2 <<"\n" << endl;
    статистика[1][i / 2] = BotCube1 + BotCube2;
    BotScore + = статистика[1][i / 2];
    WhoTurn = 1;
    }
    if ((+ 1) % 2 == 0 && i != круглий * 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 << " \ttНичья!" << endl;
    }
    cout << "==================================" << endl;
    cout << " рахунок гравця | рахунок комп'ютера" << endl;
    cout << " " << PlayerScore << " |" << "\t " << BotScore << endl;
    cout << " |" << endl;
    for (int i = 0; i < круглі; i )
    {
    cout << + 1 << " кидок: " << статистика[0][i] << " | " << " " << статистика[1][i] << endl;
    }
    cout << "==================================" << endl;
    return 0;
    }

  4. При написанні програми № 3 помітив одну річ: якщо через незнання оголосити srand(time(NULL)) в тілі програми більше одного разу, то результат кидка між циклами мінятися не буде. викинув 3 і 5 – так і буде до кінця програми кидати 3 і 5, поки програма не перезапущено. І так раз по раз. Я на це попався. Помилка при цьому не відображається на екрані налагодження в Visual Studio.

  5. Оголосити два цілочисельних масиву з різними розмірами і написати функцію,
    яка заповнює їх елементи значеннями і показує на екран.
    Функція повинна приймати два параметри - масив і його розмір.

    #include
    using namespace std;

    const int ARRSIZE_1 = 4;
    const int ARRSIZE_2 = 5;

    порожнеча FuncArr(int arr[], int b)
    {
    for (int i = 0; i < b; i )
    {
    arr[i] = rand();
    }
    for (int i = 0; i < b; i )
    {
    cout << arr[i]<< "\t";
    }
    cout << endl;
    }
    int main()
    {
    setlocale(LC_ALL, "RU");
    int arrOne[ARRSIZE_1], arrTwo[ARRSIZE_2];
    cout << "Элементы первого массива : " << endl;
    FuncArr(arrOne, ARRSIZE_1);
    cout << "Элементы второго массива : " << endl;
    FuncArr(arrTwo, ARRSIZE_2);
    }

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

    #include
    #include
    using namespace std;

    Const ІНТ ROW = 5;
    Const INT COL = 5;
    int arrOne[ROW][COL];

    void FuncAddArrNumber()
    {
    srand(time(NULL));
    for (int i = 0; i < ROW; i )
    {
    for (int j = 0; j < COL; j )
    {
    arrOne[i][j] = rand()%30+30;
    }
    }
    for (int i = 0; i < ROW; i )
    {
    for (int j = 0; j < COL; j )
    {
    cout << arrOne[i][j] << "\t";
    }
    cout << endl;
    }
    }
    void FuncMaxMinElement()
    {
    int maxElement = arrOne[0][0];
    int minElement = arrOne[0][0];
    for (int i = 0; i < ROW; i )
    {
    for (int j = 0; j < COL; j )
    {
    if (maxElement arrOne[i][j])
    {
    minElement = arrOne[i][j];
    }
    }
    }
    cout << "Максимальный элемент массива : " << maxElement << endl << "Минимальный элемент массива : " << minElement << endl;
    }
    int main()
    {
    setlocale(LC_ALL, "RU");
    FuncAddArrNumber();
    FuncMaxMinElement();
    }

  7. Біля прилавка магазину стоїть черга з n покупців. Час обслуговування продавцем і-го покупця ti має нормальний розподіл із математичним очікуванням 5 хв та середнім квадратичним відхиленням 2 хв.
    Розробити алгоритм і створити програму моделювання для отримання значень величин ti , величини ci-час очікування обслуговування i-им покупцем, час початку обслуговування, час закінчення обслуговування кожного покупця. Знайти середній час очікування обслуговування.
    Результат роботи програми подати як таблиці, що складається з розрахованих значень.

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *