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

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

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

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

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

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

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

  1. int Kubiki();
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “rus”);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(NULL));

    int ktp, kub1;
    int L = 0, P = 0;
    char c;
    ktp = rand() % 2;
    if (ktp == 0)
    {
    cout << "Вы бросаете первым! ";
    for (int i = 0; i < 4; i++)
    {

    cout <> c;
    L += Kubiki();
    L += Kubiki();
    cout << "\nИтого у вас " << L << " очка(ов)";

    cout << "\n\nХод оппонента: ";
    cout <> c;
    P += Kubiki();
    P += Kubiki();
    cout << "\nИтого у противника " << P << " очка(ов)";
    }

    cout << "\nУ вас " << L <L)
    cout << "\nПК победил) Везенья в будущем!:)";
    if (P < L)
    cout << "\nВы победили, Поздравляем!";
    if (P == L)
    cout << "\nПобедила Дружба! Бывает же))";
    return 0;
    }

    else
    {
    cout << "Противник бросает первым! ";
    for (int i = 0; i < 4; i++)
    {
    cout << "\n\nХод оппонента: ";
    cout <> c;
    P += Kubiki();
    P += Kubiki();
    cout << "\nИтого у противника " << P << " очка(ов)";

    cout <> c;
    L += Kubiki();
    L += Kubiki();
    cout << "\nИтого у вас " << L << " очка(ов)";

    }

    cout << "\nУ противника " << P < L)
    cout << "\nПК победил) Везенья в будущем!:)";
    if (P < L)
    cout << "\nВы победили, Поздравляем!";
    if (P == L)
    cout << "\nПобедила Дружба! Бывает же))";
    return 0;
    }

    }

    int Kubiki()
    {
    int kub1 = 1 + rand() % 6;
    switch (kub1)
    {
    case 1:
    cout << "\n@@@@@@@\n";
    cout << "@@@@@@@\n";
    cout << "@@@ @@@\n";
    cout << "@@@@@@@\n";
    cout << "@@@@@@@\n";
    cout << "1 Очко\n";

    break;
    case 2:
    cout << "\n@@@@@@@\n";
    cout << "@@@@@ @\n";
    cout << "@@@@@@@\n";
    cout << "@ @@@@@\n";
    cout << "@@@@@@@\n";
    cout << "2 Очкa\n";

    break;

    case 3:
    cout << "\n@@@@@@@\n";
    cout << "@@@@@ @\n";
    cout << "@@@ @@@\n";
    cout << "@ @@@@@\n";
    cout << "@@@@@@@\n";
    cout << "3 Очкa\n";
    break;

    case 4:
    cout << "\n@@@@@@@\n";
    cout << "@ @@@ @\n";
    cout << "@@@@@@@\n";
    cout << "@ @@@ @\n";
    cout << "@@@@@@@\n";
    cout << "4 Очкa\n";
    break;

    case 5:
    cout << "\n@@@@@@@\n";
    cout << "@ @@@ @\n";
    cout << "@@@ @@@\n";
    cout << "@ @@@ @\n";
    cout << "@@@@@@@\n";
    cout << "5 Oчей\n";
    break;

    case 6:
    cout << "\n@@@@@@@\n";
    cout << "@ @ @ @\n";
    cout << "@@@@@@@\n";
    cout << "@ @ @ @\n";
    cout << "@@@@@@@\n";
    cout << "6 Oчей\n";
    break;
    }
    return kub1;
    }

  2. Игра в кости

    #include
    #include
    #include

    using namespace std;

    int ShowResult(int result) // функция вывода символов кубика
    {
    switch (result)
    {
    case 1:
    cout << "\t\n" << result << " point(s):\n" <<"\t @ \n" << endl; //1
    break;
    case 2:
    cout << "\t\n" << result << " point(s):\n" << "\t@ @\n" << endl; //2
    break;
    case 3:
    cout << "\t\n" << result << " point(s):\n" << "\t @\n\t @\n\t @\n" << endl; //3
    break;
    case 4:
    cout << "\t\n" << result << " point(s):\n" << "\t@ @ \n\t@ @\n " << endl;//4
    break;
    case 5:
    cout << "\t\n" << result << " point(s):\n" << "\t@ @\n \t @\n \t@ @ \n" << endl;//5
    break;
    case 6:
    cout << "\t\n" << result << " point(s):\n" << "\t@ @ \n\t@ @\n\t@ @ \n" < sum_computer)
    cout << "Player wins" << endl;
    else if (sum_player < sum_computer)
    cout << "Computer wins" << endl;
    else
    cout << "Nobody wins, draw" << endl;
    }
    int main()
    {
    srand(time(NULL));

    char choice; // переменная для ввода выбора играть в игру или нет
    int first_walking; //переменная для определения кто первый ходит
    int result; // результат броска кубика
    int sum_player = 0; // счетчик очков игрока
    int sum_computer = 0; // счетчик очков компьютера

    cout << "Welcome" << endl;
    line:
    cout << "Do you want to start playing?(enter y to srart)" <> choice;
    switch (choice) //
    {
    case ‘y’:
    cout << "Game starts" << endl;
    break;
    case 'n':
    goto line;
    default:
    cout << "Invalid choice" << endl;
    goto line;
    }
    cout << "Who will first roll the dice?" << endl;
    cout << "Computer determines" << endl;
    for (int i = 0; i < 5; i++)
    {
    cout << "…" << endl;
    }

    first_walking = rand() % 2; // определение первого бросающего кубики
    if (first_walking == 1) // если первый бросает игрок
    {
    cout << "You roll the dice first" << endl;

    for (int i = 0; i < 4; i++)
    {
    char choice_dice;
    cout << "enter Y to roll the dice" <> choice_dice;
    if (choice_dice == ‘Y’)
    continue;
    for (int i = 0; i < 2; i++)
    {
    result = 1 + rand() % 6;
    cout << "Result of roll the dice of player" << endl;
    cout << i + 1 << " cube:" << endl;
    ShowResult(result);
    sum_player += result;
    }

    for (int i = 0; i < 2; i++)
    {
    result = 1 + rand() % 6;
    cout << "Result of roll the dice of computer" << endl;
    cout << i + 1 << " cube:" << endl;
    ShowResult(result);
    sum_computer += result;
    }
    cout << "Sum player = " << sum_player << endl;
    cout << "Sum computer = " << sum_computer << endl;
    cout << endl;
    }

    }
    else // если первый бросает компьютер
    {
    cout << "Computer rolls the dice first" << endl;
    for (int i = 0; i < 4; i++)
    {
    for (int i = 0; i < 2; i++)
    {
    result = 1 + rand() % 6;
    cout << "Result of roll the dice of computer" << endl;
    cout << i + 1 << " cube:" << endl;
    ShowResult(result);
    sum_computer += result;
    }
    char choice_dice;
    cout << "enter Y to roll the dice" <> choice_dice;
    if (choice_dice == ‘Y’)
    continue;
    for (int i = 0; i < 2; i++)
    {
    result = 1 + rand() % 6;
    cout << "Result of roll the dice of player" << endl;
    cout << i + 1 << " cube:" << endl;
    ShowResult(result);
    sum_player += result;
    }
    cout << "Sum computer = " << sum_computer << endl;
    cout << "Sum player = " << sum_player << endl;
    cout << endl;
    }

    }
    compare(sum_player, sum_computer);
    }

  3. #include
    #include
    #include

    using namespace std;

    int TwoCube (int arr[],int SIZE)
    {
    srand(time(NULL));
    for (int i = 0; i < SIZE; i++)
    {
    arr[i] = rand() % 6 + 1;
    switch (arr[i])
    {
    case (1):
    cout << "@" << endl;
    break;
    case (2):
    cout << "@ @" << endl;
    break;
    case(3):
    cout << "@ @ @" << endl;
    break;
    case(4):
    cout << "@ @ @ @" << endl;
    break;
    case(5):
    cout << "@ @ @ @ @" << endl;
    break;
    case(6):
    cout << "@ @ @ @ @ @" << endl;
    break;
    }

    }
    cout << endl;
    return 0;
    }

    int Sum(int arr[], int SIZE)
    {
    int sum = 0;
    for (int i = 0; i < SIZE; i++)
    {
    sum += arr[i];
    }
    return sum;
    }

    int main()
    {
    setlocale(LC_ALL, "rus");
    int const SIZE = 2;
    char choice;
    int arr[SIZE];
    int arr2[SIZE];
    int localSum1, localSum2;
    bool restart = true;

    do
    {

    cout << "Вы играете в кубики."<<endl;
    cout << "Бросьте кубики первыми" << endl;
    cout <> choice;
    if (choice == ‘y’)
    TwoCube(arr, SIZE);
    else
    cout << "Отказ не принимается, нажмите \"y\": ";
    } while (choice != 'y');
    cout << "Бросает компьютер, подождите…" << endl;
    Sleep(4000);
    cout << "Кубики ударились об стенку и выпало число…" << endl;
    Sleep(2000);
    TwoCube(arr2, SIZE);
    localSum1 = Sum(arr, SIZE);//Твой счёт
    localSum2 = Sum(arr2, SIZE);//счёт противника
    cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
    cout << "Бросьте кубик второй раз." << endl;
    cout <> choice;
    if (choice == ‘y’)
    TwoCube(arr, SIZE);
    else
    cout << "Отказ не принимается, нажмите \"y\": ";
    } while (choice != 'y');
    cout << "Бросает компьютер, подождите…" << endl;
    Sleep(4000);
    cout << "Подождите, компьютер мухлюет" << endl;
    Sleep(2000);
    TwoCube(arr2, SIZE);
    localSum1 += Sum(arr, SIZE);//Твой счёт
    localSum2 += Sum(arr2, SIZE);//счёт противника
    cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
    cout << "Бросьте кубик третий раз." << endl;
    cout <> choice;
    if (choice == ‘y’)
    TwoCube(arr, SIZE);
    else
    cout << "Отказ не принимается, нажмите \"y\": ";
    } while (choice != 'y');
    cout << "Бросает компьютер, подождите…" << endl;
    Sleep(4000);
    cout << "Компьютер злится и ждёт мести" << endl;
    Sleep(2000);
    TwoCube(arr2, SIZE);
    localSum1 += Sum(arr, SIZE);//Твой счёт
    localSum2 += Sum(arr2, SIZE);//счёт противника
    cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
    cout << "Бросьте кубик последний раз." << endl;
    cout <> choice;
    if (choice == ‘y’)
    {
    cout << "Кажется кубик куда-то закатился" << endl;
    Sleep (3000);
    TwoCube(arr, SIZE);
    }
    else
    cout << "Отказ не принимается, нажмите \"y\": ";
    } while (choice != 'y');
    cout << "Бросает компьютер, подождите…" << endl;
    Sleep(4000);
    cout << "Взламывает числа" < localSum2)
    {
    cout << "Мои поздравления, вы одержали победу над этим глупым компьютером" << endl;
    Sleep(2000);
    }
    else
    {
    cout << "Ха-Ха-Ха, я победил, я специально подстроил твой проигрышь! Бе-е-е" << endl;
    Sleep(2000);
    cout << "Теперь смотри счёт" << endl;
    }

    cout << "Твой счёт: " << localSum1 << " | " << "Противника счёт:" << localSum2 << endl << endl;
    Sleep(1000);
    cout <> choice;
    if (choice == ‘y’)
    {
    cout << "Ура! Приступим" << endl;
    restart = true;
    }
    else
    {
    cout <> choice;
    if (choice == ‘y’)
    {
    cout << "Я знал что ты передумаешь ;)";
    restart = true;
    }
    else
    {
    cout << "Счастливо!!!" << endl;
    restart = false;
    }
    }
    }while (restart);

    }

  4. №3 “рисовать” кости мне было лень поэтому цифры ))
    #include
    #include
    using namespace std;
    const int ROW = 4;
    const int COL = 2;
    int t = 1;
    int Y = 1;
    int i = 0;
    int T = 0;
    int y = 0;
    int I = 0;
    int p = 0;
    int k = 0;
    int AC[ROW];
    int AC1[ROW];
    int ARRI[ROW][COL]; //игрок
    int ARRII[ROW][COL]; // ИИ
    void foo(int ARR[ROW][COL]);
    void ARR(int YOU[ROW][COL],int II[ROW][COL]) {
    int A;

    cout << "Кто ходит первым ?" << endl;
    cout << "Если это вы введите 0" << endl;
    cout << "Если это ИИ введите 1 " <> A;
    switch (A) {
    case 0:
    for (i; i < t; i++) {
    if (t == 6)break;
    for (int g=0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << YOU[i][g]<<endl;
    if (g == 1) {
    AC[T] = YOU[i][g – 1] + YOU[i][g];
    cout << "Ваши сумарные очки за этот раунд " << AC[T]<<endl;
    }
    }
    }
    t++;
    T++;
    cout << "Что там у ИИ?" << endl;
    for (I; I < Y; I++) {
    if (t == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
    if (g == 1) {
    AC1[y] = II[I][g – 1] + II[I][g];
    cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
    }
    }
    }
    y++;
    Y++;
    break;
    case 1:
    for (I; I < Y; I++) {
    if (Y == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
    if (g == 1) {
    AC1[y] = II[I][g – 1] + II[I][g];
    cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
    }
    }
    }
    y++;
    Y++;
    cout << "Посмотрим повезло ли вам " << endl;
    for (i; i < t; i++) {
    if (t == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << YOU[i][g] << endl;
    if (g == 1) {
    AC[T] = YOU[i][g – 1] + YOU[i][g];
    cout << "Ваши сумарные очки за этот раунд " << AC[T] << endl;
    }
    }
    }
    t++;
    T++;
    break;
    }
    }
    void Sum(int ACcc[ROW]) {
    for (int g = 0; g < ROW; g++)
    p += ACcc[g];
    }

  5. №3 “рисовать” кости мне было лень поэтому цифры ))
    #include
    #include
    using namespace std;
    const int ROW = 4;
    const int COL = 2;
    int t = 1;
    int Y = 1;
    int i = 0;
    int T = 0;
    int y = 0;
    int I = 0;
    int p = 0;
    int k = 0;
    int AC[ROW];
    int AC1[ROW];
    int ARRI[ROW][COL]; //игрок
    int ARRII[ROW][COL]; // ИИ
    void foo(int ARR[ROW][COL]);
    void ARR(int YOU[ROW][COL],int II[ROW][COL]) {
    int A;

    cout << "Кто ходит первым ?" << endl;
    cout << "Если это вы введите 0" << endl;
    cout << "Если это ИИ введите 1 " <> A;
    switch (A) {
    case 0:
    for (i; i < t; i++) {
    if (t == 6)break;
    for (int g=0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << YOU[i][g]<<endl;
    if (g == 1) {
    AC[T] = YOU[i][g – 1] + YOU[i][g];
    cout << "Ваши сумарные очки за этот раунд " << AC[T]<<endl;
    }
    }
    }
    t++;
    T++;
    cout << "Что там у ИИ?" << endl;
    for (I; I < Y; I++) {
    if (t == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
    if (g == 1) {
    AC1[y] = II[I][g – 1] + II[I][g];
    cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
    }
    }
    }
    y++;
    Y++;
    break;
    case 1:
    for (I; I < Y; I++) {
    if (Y == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << II[I][g] << endl;
    if (g == 1) {
    AC1[y] = II[I][g – 1] + II[I][g];
    cout << "Сумарные очки ИИ за этот раунд " << AC1[y]<<endl;
    }
    }
    }
    y++;
    Y++;
    cout << "Посмотрим повезло ли вам " << endl;
    for (i; i < t; i++) {
    if (t == 6)break;
    for (int g = 0; g < COL; g++) {

    cout << "На одном из кубиков выпало значение " << YOU[i][g] << endl;
    if (g == 1) {
    AC[T] = YOU[i][g – 1] + YOU[i][g];
    cout << "Ваши сумарные очки за этот раунд " << AC[T] << endl;
    }
    }
    }
    t++;
    T++;
    break;
    }
    }
    void Sum(int ACcc[ROW]) {
    for (int g = 0; g < ROW; g++)
    p += ACcc[g];
    }
    void Sum(int ACcc[ROW],int l) {
    for (int g = 0; g < ROW; g++)
    k += ACcc[g];
    }
    int main() {
    setlocale(LC_ALL, "RUS");
    srand(time(NULL));
    foo(ARRI);
    foo(ARRII);
    ARR(ARRI, ARRII);
    ARR(ARRI, ARRII);
    ARR(ARRI, ARRII);
    ARR(ARRI, ARRII);
    Sum(AC);
    Sum(AC1,1);
    if (p < k) {
    cout << endl<< "Поздравляю кожаный ублоюдок ты проиграл и это только начало , я уничтожу человечествро"<<endl;
    }
    else {
    cout<<endl<<"Кожаный ублюдок ты победил радуйся пока можешь"<<endl;
    }
    system("pause");

    }
    void foo(int ARR[ROW][COL]) {
    for (int u = 0; u < ROW; u++) {
    for (int o = 0; o < COL; o++) {
    ARR[u][o] = rand() % 7;
    if (ARR[u][o] == 0)o–;
    }
    }
    }

  6. Чо могу, чо могу

    #include
    #include

    int DropTheCube();
    int DropTheCube();
    void printingCubes(int a, int b);

    int main(){
    srand(time(NULL));
    bool playerGoesFirst {false};
    int moveNumber {1},
    playerScore {},
    compScore {};

    playerGoesFirst = rand()%2; //кто ходит первым

    //первый ход

    if (playerGoesFirst){
    std::cout << "Your turn!"<<'\n';
    playerScore += DropTheCube();
    }
    else{
    std::cout << "Computer's turn" << '\n';
    compScore += DropTheCube();
    }

    moveNumber++;

    while (moveNumber <=4 ){
    if (playerGoesFirst == false) {
    std::cout << "Computer's turn" << '\n';
    playerScore += DropTheCube();
    playerGoesFirst = true;
    }
    else{
    std::cout << "Your turn!"<compScore)
    {
    std::cout<< playerScore <” << compScore;
    std::cout<<"you Win!";}
    else
    {
    std::cout<< playerScore << "<" << compScore;
    std::cout <<"you lose!";}
    return 0;
    }

    int DropTheCube(){ //функции бросания кости
    int score{};
    int k {};
    int l {};
    k = rand()%6+1;
    l = rand()%6+1;
    score = k+l;
    std::cout<<k<<" and "<<l<<'\n'<<"score now is : " << score <<'\n';
    printingCubes(k,l);

    return score;
    }

    void printingCubes(int a, int b){ //функция рисования выпавшей стороны кости
    std::cout<<"_______\n";
    switch (a){
    case 6:
    std::cout << " o o \n"<< " o o \n"<< " o o \n"<<"_______\n";
    break;
    case 5:
    std::cout << " o o \n"<< " o \n"<< " o o \n"<<"_______\n";
    break;
    case 4:
    std::cout << " o o \n"<< " \n"<< " o o \n"<<"_______\n";
    break;
    case 3:
    std::cout << " o \n"<< " o \n"<< " o \n"<<"_______\n";
    break;
    case 2:
    std::cout << " o \n"<< " \n"<< " o \n"<<"_______\n";
    break;
    case 1:
    std::cout << " \n"<< " o \n"<< " \n"<<"_______\n";
    break;
    }
    switch (b){
    case 6:
    std::cout << " o o \n"<< " o o \n"<< " o o \n"<<"_______\n";
    break;
    case 5:
    std::cout << " o o \n"<< " o \n"<< " o o \n"<<"_______\n";
    break;
    case 4:
    std::cout << " o o \n"<< " \n"<< " o o \n"<<"_______\n";
    break;
    case 3:
    std::cout << " o \n"<< " o \n"<< " o \n"<<"_______\n";
    break;
    case 2:
    std::cout << " o \n"<< " \n"<< " o \n"<<"_______\n";
    break;
    case 1:
    std::cout << " \n"<< " o \n"<< " \n"<<"_______\n";
    break;
    }
    }

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

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