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

Задачи: операторы выбора if и else в С++

После прочтения урока об операторах выбора if и else, переходим к практике. Как обычно, прошу вас постараться решать все задания самостоятельно, и только потом смотреть на предложенное нами решение.

1. Первая задача интересная и достаточно простая. Но код получится длинным. Эту задачу придумали наши преподаватели из компьютерной академии. Идея была такая – как бы заставить начинающих студентов  помучиться с написанием кода, чтобы писанины было побольше )))  Задание: Пользователь вводит число от 1 до 9999 (сумму выдачи в банкомате). Необходимо вывести на экран словами введенную сумму и в конце написать название валюты с правильным окончанием. Например: 7431 – семь тысяч четыреста тридцать один доллар, 2149 – две тысячи сто сорок девять долларов, 15 – пятнадцать долларов, 3 – три доллара. Для решения этой задачи вам необходимо будет применять оператор % (остаток от деления). Почитать о нем можно в статье Арифметические операции в C++  . Приступайте!

2.  Пользователь вводит порядковый номер пальца руки. Необходимо показать его название на экран.

 3. Еще одна задача для самостоятельно решения.  Необходимо написать программу, которая проверяет пользователя на знание таблицы умножения. Пользователь сам вводит два целых однозначных числа. Программа задаёт вопрос: результат умножения первого числа на второе.  Пользователь должен ввести ответ и увидеть на экране правильно он ответил или нет. Если нет  – показать еще и правильный результат.

Кто не справляется – задавайте вопросы в комментариях.

362 thoughts on “Задачи: операторы выбора if и else в С++

  1. #include “stdafx.h”
    #include

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “rus”);
    int a, b;
    int o=0;
    cout << "Введите два числа которые мы будем умножать=" <> a >> b;
    do {
    cout << "сколько будет " << a << " * " << b <> o;
    if (a*b == o) {
    cout << a << " * " << b << " = " << o << endl;
    cout << "молодчина!" << endl;
    }
    else if (a*b != o) {
    cout << "Тебе стоит подучить таблицу умножения…" << endl;
    }
    } while (a * b != o);

    return 0; // если кому интересно… с циклом while. т.е. пока не ответишь правильно хер выпустят. D

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

  3. Задача №3
    програма “ТЕСТ” оцінки знань таблиці множення. “ТЕСТ” складається з 5 прикладів якиі користувач вводить самостійно. Кожна правельна відповідь дає 1 бал. Оцініть свій рівень знань.
    #include
    #include

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “Ukrainian”);
    system(“color A”);

    int a;
    int b;
    int rezult;
    int user_rezult;
    int i = 0;

    for (int j = 0; j < 5; j++)
    {
    for (;;)
    {
    cout <> a;
    cout <> b;
    if (a >= 0 && a = 0 && b <= 9)
    {
    break;
    }
    }

    cout <> user_rezult;

    if (user_rezult != (a*b))
    {
    cout << " Try again " << endl;
    cout << a << " * " << b << " = " << user_rezult << endl;
    }
    else
    {
    cout << " Good job " << endl;
    cout << a << " * " << b << " = " << user_rezult << endl;
    ++i;
    }
    }

    cout << "Your point = " << i << endl;

    _getch();
    return 0;
    }

  4. #include
    using namespace std;

    int main() {

    int x, a, b, c, d, z;

    cout<>x;

    a = x%10000/1000;
    b = x%1000/100;
    c = x%100/10;
    d = x%10;
    z = x%100;

    if(a==1) cout<<"One thousand ";
    else if(a==2) cout<<"Two thousand ";
    else if(a==3) cout<<"Three thousand ";
    else if(a==4) cout<<"Four thousand ";
    else if(a==5) cout<<"Five thousand ";
    else if(a==6) cout<<"Six thousand ";
    else if(a==7) cout<<"Seven thousand ";
    else if(a==8) cout<<"Eight thousand ";
    else if(a==9) cout<<"Nine thousand ";

    if(b==1) cout<<"one hundred ";
    else if(b==2) cout<<"two hundred ";
    else if(b==3) cout<<"three hundred ";
    else if(b==4) cout<<"four hundred ";
    else if(b==5) cout<<"five hundred ";
    else if(b==6) cout<<"six hundred ";
    else if(b==7) cout<<"seven hundred ";
    else if(b==8) cout<<"eight hundred ";
    else if(b==9) cout<<"nine hundred ";

    else if(z==11) cout<<"eleven dollars";
    else if(z==12) cout<<"twelve dollars";
    else if(z==13) cout<<"thirteen dollars";
    else if(z==14) cout<<"fourteen dollars";
    else if(z==15) cout<<"fifteen dollars";
    else if(z==16) cout<<"sixteen dollars";
    else if(z==17) cout<<"seventeen dollars";
    else if(z==18) cout<<"eighteen dollars";
    else if(z==19) cout<<"nineteen dollars";

    else if(c==2) cout<<"twenty ";
    else if(c==3) cout<<"thirty ";
    else if(c==4) cout<<"fourty ";
    else if(c==5) cout<<"fifty ";
    else if(c==6) cout<<"sixty ";
    else if(c==7) cout<<"seventy ";
    else if(c==8) cout<<"eighty ";
    else if(c==9) cout<<"ninety ";

    else if(d==1) cout<<"one dollars";
    else if(d==2) cout<<"two dollars";
    else if(d==3) cout<<"three dollars";
    else if(d==4) cout<<"four dollars";
    else if(d==5) cout<<"five dollars";
    else if(d==6) cout<<"six dollars";
    else if(d==7) cout<<"seven dollars";
    else if(d==8) cout<<"eight dollars";
    else if(d==9) cout<<"nine dollars";

    if(x%1000==000) cout<<"dollars";
    else if(x%100==00) cout<<"dollars";
    else if(x%100==10) cout<<"ten dollars";
    else if(x%10==0) cout<<"dollars";

    cout<<endl<<endl;

    return 0;
    }

  5. По первой задаче:

    #include “stdafx.h”
    #include
    #include

    using namespace std;

    string thousend(int x);
    string sto(int x, bool t);
    string desyat(int x, bool t, bool s);
    string edin(int x, bool t, bool s, bool d);

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

    int number;

    cout <> number) || (number > 9999) || (number < 0 )) //проверка ввода
    {
    cin.clear();
    while (cin.get() != '\n')
    continue;
    cout < 999) // тысячи
    {
    flag_is_1000 = true;
    cout << thousend(number / 1000) << " ";
    number %= 1000;
    }

    bool flag_is_100 = false; //флаг числа больше 100
    if ((number 99)) //сотни
    {
    flag_is_100 = true;
    cout << sto(number / 100, flag_is_1000) << " ";
    number %= 100;
    }

    bool flag_is_10 = false; //флаг числа больше 20
    if ((number 19)) //десятки
    {
    flag_is_10 = true;
    cout << desyat(number / 10, flag_is_1000, flag_is_100) << " ";
    number %= 10;
    }

    cout << edin(number, flag_is_1000, flag_is_100, flag_is_10) << endl;

    return 0;
    }

    string thousend(int x)
    {
    string thousend;
    if (x == 1) thousend = "Одна тысяча";
    if (x == 2) thousend = "Две тысячи";
    if (x == 3) thousend = "Три тысячи";
    if (x == 4) thousend = "Четыре тысячи";
    if (x == 5) thousend = "Пять тысяч";
    if (x == 6) thousend = "Шесть тысяч";
    if (x == 7) thousend = "Семь тысяч";
    if (x == 8) thousend = "Восемь тысяч";
    if (x == 9) thousend = "Девять тысяч";
    return thousend;
    }
    string sto(int x, bool t)
    {
    string styo;
    if (x == 1) styo = "Сто";
    if (x == 2) styo = "Двести";
    if (x == 3) styo = "Триста";
    if (x == 4) styo = "Четыреста";
    if (x == 5) styo = "Пятьсот";
    if (x == 6) styo = "Шестьсот";
    if (x == 7) styo = "Семьсот";
    if (x == 8) styo = "Восемьсот";
    if (x == 9) styo = "Девятьсот";
    if (t == true) styo[0] = tolower(styo[0]); //если больше тысячи, то сотни с маленькой буквы
    return styo;
    }
    string desyat(int x, bool t, bool s)
    {
    string des;
    if (x == 2) des = "Двадцать";
    if (x == 3) des = "Трицать";
    if (x == 4) des = "Сорок";
    if (x == 5) des = "Пятьдесят";
    if (x == 6) des = "Шестьдесят";
    if (x == 7) des = "Семьдесят";
    if (x == 8) des = "Восемьдесят";
    if (x == 9) des = "Девяносто";
    if (t == true || s == true) des[0] = tolower(des[0]); //если больше сотни, то десятки с маленькой буквы
    return des;
    }
    string edin(int x, bool t, bool s, bool d)
    {
    string ed;
    if (x == 0) ed = "рублей.";
    if (x == 1) ed = "Один рубль.";
    if (x == 2) ed = "Два рубля.";
    if (x == 3) ed = "Три рубля.";
    if (x == 4) ed = "Четыре рубля.";
    if (x == 5) ed = "Пять рублей.";
    if (x == 6) ed = "Шесть рублей.";
    if (x == 7) ed = "Семь рублей.";
    if (x == 8) ed = "Восемь рублей.";
    if (x == 9) ed = "Девять рублей.";
    if (x == 10) ed = "Десять рублей.";
    if (x == 11) ed = "Одиннадцать рублей.";
    if (x == 12) ed = "Двенадцать рублей.";
    if (x == 13) ed = "Тринадцать рублей.";
    if (x == 14) ed = "Четырнадцать рублей.";
    if (x == 15) ed = "Пятнадцать рублей.";
    if (x == 16) ed = "Шестнадцать рублей.";
    if (x == 17) ed = "Семнадцать рублей.";
    if (x == 18) ed = "Восемнадцать рублей.";
    if (x == 19) ed = "Девятнадцать рублей.";
    if (t == true || s == true || d == true) ed[0] = tolower(ed[0]); //если больше десяти, то единицы с маленькой буквы
    return ed;

    }

  6. 3-я задача
    #include “stdafx.h”
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “rus”);
    int a;
    int b;

    cout << "введите первое число для умножения" <> a;
    cout << "введите второе число для умножения" <> b;
    cout << " сколько будет если " << a << " умножить на " << b << endl << " введите результат " <> sum;
    if (sum != a*b) { cout << "вы ошиблись " << endl << "правильный ответ= " << a * b << endl; }
    if (sum==a*b) { cout << " вы ввели правильный результат " << endl; }

    return 0;
    }

  7. Третья задача

    #include “stdafx.h”
    #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “Russian”);
    unsigned short int a, b, c;
    cout << "Введите два однозначных числа: " <> a;
    cin >> b;
    cout << "Перемножьте эти числа и впишите результат: " <> c;
    if (c == a*b) {
    cout << "Вы умножили правильно!";
    }
    else {
    cout << "Неверно, правильный ответ: " << a*b;
    }

    _getch();
    return 0;
    }

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

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