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

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

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

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

2.  Користувач вводить порядковий номер пальця руки. Необхідно показати його назву на екран.

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

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

369 думки про "Завдання: операторы выбора if и else в С

  1. Я так зробив другий, а ось з першим не склалося…
    #include
    using namespace std;
    void main()
    {
    int i =0;
    cout <> i;
    switch (i)
    {
    case 1:
    cout << "thumb\n";
    break;
    case 2:
    cout << "forefinger\n";
    break;
    case 3:
    cout << "long finger\n";
    break;
    case 4:
    cout << "ring finger\n";
    break;
    case 5:
    cout << "little finger\n";
    break;
    default:
    cout << "Error\n";
    break;

    }
    }

  2. останні завдання
    #include
    using namespace std;
    void main()
    {
    setlocale(LC_ALL, "Rus");
    int i = 0, j = 0, rezult = 0, sum = 0;
    cout <> i >> j;
    sum = i * j;
    cout <> rezult;
    if (sum == rezult)
    cout << "Поздравляем ответ правильный!\n";
    else
    cout << "\nУчите таблицу умножения!!!\n";

    }

  3. Мій варіант виокремлення цифр з числа, вводиться користувачем в першому завданні. ніякого поділу, ніяких залишків.

    int summ;
    cout <> summ;
    int num[6]{0, 0, 0, 0, 0, 0};
    int minus[6]{100000, 10000, 1000, 100, 10, 1};
    summ++;
    for (int i = 0; i 0)
    {
    summ = summ - minus[i];
    num[i]++;
    }
    if (num[i] > 0)
    {
    num[i]--;
    summ = summ + minus[i];
    }
    }

    Фрази забивав також через масиви:

    string hungreds[9]{"Сто ", "Двести ", "Триста ", "Четыреста ", "Пятьсот ", "Шестьсот ", "Семьсот ", "Восемьсот ", "Девятьсот "};
    string second_ten[9]{"одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать "};
    string tens[9]{"десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто "};
    string nums[9]{"одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять "};
    string numss[9]{"один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять "};
    if (num[0] != 0 || num[1] != 0 || num[2] != 0)
    {
    if (num[0] != 0)
    cout << hungreds[num[0] - 1];
    if (num[1] == 1 && num[2] != 0)
    cout << second_ten[num[2] - 1];
    else
    {
    if (num[1] != 0)
    cout << tens[num[1] - 1];
    if (num[2] != 0)
    cout << nums[num[2] - 1];
    }
    if (num[2] == 1 && num[1] != 1)
    cout << "тысяча ";
    else if ((num[2] == 2 || num[2] == 3 || num[2] == 4) && num[1] != 1)
    cout << "тысячи ";
    else cout << "тысяч ";
    }
    if (num[3] != 0)
    cout << hungreds[num[3] - 1];
    if (num[4] == 1 && num[5] != 0)
    cout << second_ten[num[5] - 1];
    else
    {
    if (num[4] != 0)
    cout << tens[num[4] - 1];
    if (num[5] != 0)
    cout << numss[num[5] - 1];
    }
    if (num[5] == 1 && num[4] != 1)
    cout << "рубль." << endl;
    else if ((num[5] == 2 || num[5] == 3 || num[5] == 4) && num[4] != 1)
    cout << "рубля." << endl;
    else cout << "рублей." << endl;

  4. #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");
    int object = 0 ;
    int o1000 = 0 ;
    int o100 = 0 ;
    int o10 = 0 ;
    int o1 = 0 ;
    int isc = 0; //исключения(одиннадцать, пятнадцать и т.д.)
    cout <> object;

    o1000 = object / 1000;
    o100 = (object / 100) % 10;
    o10 = (object / 10) % 10;
    o1 = object % 10;
    isc = object % 100;

    if (o1000 == 1)
    cout << " Тысяча ";

    if (o1000 == 2)
    cout << " Две тысячи";

    if (o1000 == 3)
    cout << " Три тысячи ";

    if (o1000 == 4)
    cout << " Четыре тысячи ";

    if (o1000 == 5)
    cout << " Пять тысяч ";

    if (o1000 == 6)
    cout << " Шесть тысяч ";

    if (o1000 == 7)
    cout << " Семь тысяч ";

    if (o1000 == 8)
    cout << " Восемь тысяч ";

    if (o1000 == 9)
    cout << " Девять тысяч ";

    if (o100 == 1)
    cout << " сто ";

    if (o100 == 2)
    cout << " двести ";

    if (o100 == 3)
    cout << " триста ";

    if (o100 == 4)
    cout << " четыриста ";

    if (o100 == 5)
    cout << " пятьсот ";

    if (o100 == 6)
    cout << " шестьсот ";

    if (o100 == 7)
    cout << " семьсот ";

    if (o100 == 8)
    cout << " восемьсот ";

    if (o100 == 9)
    cout << " девятьсот ";

    if (isc == 11)
    cout << " одиннадцать рублей. \n";

    if (isc == 12)
    cout << " двенадцать рублей. \n";

    if (isc == 13)
    cout << " тринадцать рублей. \n";

    if (isc == 14)
    cout << " четырнадцать рублей. \n ";

    if (isc == 15)
    cout << " пятнадцать рублей. \n";

    if (isc == 16)
    cout << " шестнадцать рублей. \n";

    if (isc == 17)
    cout << " семнадцать рублей. \n";

    if (isc == 18)
    cout << " восемнадцать рублей. \n";

    if (isc == 19)
    cout << " девятнадцать рублей. \n";

    if (o10 == 1)
    cout << " десять рублей. \n ";

    if (o10 == 2)
    cout << " двадцать ";

    if (o10 == 3)
    cout << " тридцать ";

    if (o10 == 4)
    cout << " сорок ";

    if (o10 == 5)
    cout << " пятьдесят ";

    if (o10 == 6)
    cout << " шестьдесят ";

    if (o10 == 7)
    cout << " семьдесят ";

    if (o10 == 8)
    cout << " восемьдесят ";

    if (o10 == 9)
    cout << " девяносто ";

    if ((o1 == 1) && (o10 != 1))
    cout << " один рубль \n ";

    if ((o1 == 2) && (o10 != 1))
    cout << " два рубля. \n ";

    if ((o1 == 3) && (o10 != 1))
    cout << " три рубля. \n ";

    if ((o1 == 4) && (o10 != 1))
    cout << " четыре рубля. \n ";

    if ((o1 == 5) && (o10 != 1))
    cout << " пять рублей. \n ";

    if ((o1 == 6) && (o10 != 1))
    cout << " шесть рублей. \n ";

    if ((o1 == 7) && (o10 != 1))
    cout << " семь рублей. \n ";

    if ((o1 == 8) && (o10 != 1))
    cout << " восемь рублей. \n";

    if ((o1 == 9) && (o10 != 1))
    cout << " девять рублей. \n ";

    if ((o1 == 0) && (o10 != 1))
    cout << " рублей. \n ";

    _getch();
    return 0;

    }

    ось так якось

  5. завдання №3.
    Правда не вийшло задати умови на змінні а і b.
    #include
    using namespace std;

    int main()
    {
    setlocale(0, "");
    int a, b, p, np = 0;

    cout << "\t\t\tПроверка таблицы умножения\nВы должны задать 2 числа и написать сумму произведения этих чисел\n\n\n";
    cout << a;
    cout << b;
    cout << "Введите ответ на уравнение: " << a << " * " << b << np;

    cout << endl;
    p = a * b;

    if ((a,b) <=9)
    {
    if (p != np) cout << "НЕ ПРАВИЛЬНО!\nСоветую выучить таблицу умножения!!!\n\n";
    else if (p == np) cout << "ПРАВИЛЬНО!\n\n";
    }
    else cout << "Неверное число!";
    return 0;
    }

  6. Доброго вам дня! Ось мій варіант рішення завдання №1. Правда там не всі через оператор if зроблено. Якщо будуть якісь недоліки або побажання, відпишіться, будь ласка.

    #include
    #include
    #include

    using namespace std;

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

    ІНТ full_num , FIRST_NUM , second_num , third_num , fourth_num , currency_num, CNTRL = 0;

    cout << "Введите ваше число: " <> full_num;
    cout << "Выберите валюту для вывода: " << endl;
    cout << "1. долари" << endl;
    cout << "2. євро" << endl;
    cout << "3. гривні" <> currency_num;
    cout << endl;
    fourth_num = full_num % 10;
    full_num / = 10;
    third_num = full_num % 10;
    full_num / = 10;
    second_num = full_num % 10;
    full_num / = 10;
    FIRST_NUM = full_num;

    switch (FIRST_NUM)
    {
    case 0: {cout << "\0";break;}
    case 1: {cout << "Одна тысяча ";break;}
    case 2: {cout << "Две тысячи ";break;}
    case 3: {cout << "Три тысячи ";break;}
    case 4: {cout << "Четыре тысячи ";break;}
    case 5: {cout << "Пять тысяч ";break;}
    case 6: {cout << "Шесть тысяч ";break;}
    case 7: {cout << "Семь тысяч ";break;}
    case 8: {cout << "Восемь тысяч ";break;}
    case 9: {cout << "Девять тысяч ";break;}
    }

    switch (second_num)
    {
    case 0 : {cout << "\0"; break;}
    case 1 : {cout << "сто "; break;}
    case 2: {cout << "двести "; break;}
    case 3: {cout << "стриста "; break;}
    case 4: {cout << "четыреста "; break;}
    case 5: {cout << "пятсот "; break;}
    case 6: {cout << "шестьсот "; break;}
    case 7: {cout << "семьсот "; break;}
    case 8: {cout << "восемьсот "; break;}
    case 9: {cout << "девятсот "; break;}
    }

    switch (third_num)
    {
    case 0 : {cout << "\0"; break;}
    case 1 : {if (fourth_num == 0) cout << "десять "; else cout << "\0"; break;}
    case 2 : {cout << "двадцать "; break;}
    case 3 : {cout << "тридцать "; break;}
    case 4 : {cout << "сорок "; break;}
    case 5 : {cout << "пятьдесят "; break;}
    case 6 : {cout << "шестьдесять "; break;}
    case 7 : {cout << "семьдесят "; break;}
    case 8 : {cout << "восемьдесят "; break;}
    case 9 : {cout < 1) && fourth_num != 0)
    {
    switch (fourth_num)
    {
    case 1 : {cout << "один "; break;}
    case 2 : {cout << "два "; break;}
    case 3 : {cout << "три "; break;}
    case 4 : {cout << "четыре "; break;}
    case 5 : {cout << "пять "; break;}
    case 6 : {cout << "шесть "; break;}
    case 7 : {cout << "семь "; break;}
    case 8 : {cout << "восемь "; break;}
    case 9 : {cout << "девять "; break;}
    }
    }
    else if (third_num == 1 && fourth_num != 0)
    {
    switch (fourth_num)
    {
    case 1: {cout << "одиннадцать "; break;}
    case 2: {cout << "двенадцать "; break;}
    case 3: {cout << "тринадцать "; break;}
    case 4: {cout << "четырнадцать "; break;}
    case 5: {cout << "пятнадцать "; break;}
    case 6: {cout << "шестнадцат "; break;}
    case 7: {cout << "семнадцать "; break;}
    case 8: {cout << "восемнадцать "; break;}
    case 9: {cout << "девятнадцать "; break;}
    }
    }

    if (currency_num == 1)
    {
    if (fourth_num == 1 && third_num != 1) cout << "доллар" << endl;
    else if (((fourth_num == 2 || fourth_num == 4) || fourth_num == 3) && third_num != 1) cout << "доллара" << endl;
    else cout << "долларов" << endl;
    }
    else if (currency_num == 2) cout << "евро" << endl;
    else
    {
    if (fourth_num == 1 && third_num != 1) cout << "гривна" << endl;
    else if ((((fourth_num == 2 || fourth_num == 4) || fourth_num == 3) && third_num != 1) && CNTRL != 1) cout << "гривны" << endl;
    ще соіЬ << "гривен" << endl;
    }
    return 0;
    }

    1. Рекомендую вивести всі switch() в функцію Параметрами функції зробити суфікс, номер один по одному і преффікс, які будуть підписуватися до кореня слова в разі потреби в залежності від розрядності числа. Тоді вийде один switch() замість 4-х

  7. Про функцію рекомендації зрозумілі. Але справа в тому, що я намагався написати програму використовуючи тільки оператори вибору. А якщо робити вже зовсім “красиво”, то можна і за допомогою функцій і циклів. Тоді код в рази скоротитися.

  8. Думаю мені ні хто не відповість, але все ж поставлю питаннячко :)
    Чому не фуричіт рішення 3-ї задачі ? Уже все кілька разів перевіряв:
    #include
    using namespace std;
    int main() {
    setlocale(LC_ALL, “rus”);
    int a = 0, б = 0, з = 0, d = 0;
    cout <> a;
    cin >> b;
    з = а * b;
    cout <> d;
    if (з = д) {
    cout << "Ответ верный\n";
    }
    else
    cout << "Ответ не верный. Правильною відповіддю є: \n" << c;
    system("PAUSE");
    return 0;
    }
    Якось так.

    1. помилок багато )))
      #include
      using namespace std;

      int main() {
      setlocale(LC_ALL, "rus");

      int a = 0, b = 0, c = 0, d = 0;
      cout < < a; // почему cout а не cin ? cin >> b;
      c = a * b;
      cout < < d; // почему cout а не cin ? if (c = d) { // почему = а не == ? (тут ты присвоил переменной с значение d) cout << "Ответ верный\n"; } else cout << "Ответ не верный. Правильным ответом является: \n" << c; system("PAUSE"); return 0; }

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

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