Указатель на указатель C++ Классы в С++ Дополнительный сборник задач с решениями



Download 193,71 Kb.
bet3/12
Sana12.03.2020
Hajmi193,71 Kb.
#42219
TuriУказатель
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
Задачи и решение-Bustanov

Задачи: Оператор switch


В этой статье вы найдете задачи, которые помогут вам освоить основные навыки использования в своих программах оператора множественного выбора switch. Почитать об этом можно в статье Оператор switch в С++.  Большая просьба – старайтесь сначала решить задачу самостоятельно и только потом либо подсмотреть (если решить так и не получилось), либо сравнить ваше решение с тем, что изложено здесь. Поехали!

  1. Составить расписание на неделю. Пользователь вводит порядковый номер дня недели и у него на экране отображается, то, что запланировано на этот день.

#include

using namespace std;

 

int main()



{

setlocale(LC_ALL, "rus");

 

int dayNumber; // будет хранить выбор пользователя



 

cout << "Введите день недели (1, 2, 3...): ";

cin >> dayNumber; // ввод значения

 

switch (dayNumber)



{

case 1:


cout << "Понедельник: \n8:00 Работа \n19:00 Тренировка \n";

break;


case 2:

cout << "Вторник: \n8:00 Работа \n";

break;

case 3:


cout << "Среда: \n8:00 Работа \n19:00 Бассейн \n";

break;


case 4:

cout << "Четверг: \n8:00 Работа \n20:00 ДР Бабушки \n";

break;

case 5:


cout << "Пятница: \n8:00 Работа \n17:00 Тренировка \n";

break;


case 6:

cout << "Суббота: \nПикник \n";

break;

case 7:


cout << "Воскресенье: \nЧто угодно \n";

break;


default:

cout << "Нет такого дня недели ))" << endl;

}

return 0;



}

Посмотреть код

2. Изменить код, который был рассмотрен в статье Оператор switch в С++, следующим образом: Пользователю для расчета времени в пути надо вводить не номера станций, а буквы (A,B,C,D,E). Необходимо предусмотреть ввод пользователем и маленьких, и больших букв (избавиться от регистрозависимости).  То есть если введено или D, или d – должен сработать один и тот же case.  Синтаксис для этого действия такой:

switch (выражение)

{

case ‘a’:



case ‘A’: //код

break;


и т.д. …………….

}

#include



using namespace std;

 

int main()



{

setlocale(LC_ALL, "rus");

 

char answer; // будет хранить выбор пользователя



bool var = true; // управляющая переменная цикла do while

 

cout << "Введите букву из перечня, для расчета времени в пути (A,B,C,D,E): ";



 

do{


var = false; // для выхода из цикла, если не сработает default

// т.е. если найдется подходящий case

cin >> answer; // ввод значения

 

switch (answer) // switch принимает символ answer и ищет подходящий case



{

case 'a':

case 'A':  // если answer содержит а или А

cout << "Станция метро Trinitat Nova: ";

cout << "Время в пути - 15 мин." << endl;

break;


case 'b':

case 'B':

cout << "Станция метро Casa de l’Aigua: ";

cout << "Время в пути - 19 мин." << endl;

break;

case 'c':



case 'C':

cout << "Станция метро Torre Baro Vallbona: ";

cout << "Время в пути - 25 мин." << endl;

break;


case 'd':

case 'D':

cout << "Станция метро Ciutat Meridiana: ";

cout << "Время в пути - 30 мин." << endl;

break;

case 'e':



case 'E':

cout << "Станция метро Can Cuias: ";

cout << "Время в пути - 38 мин." << endl;

break;


default: // если ни один case не сработал, сработает default

cout << answer << " - некорректный ввод! ";

cout << "Сделайте правильный выбор (A,B,C,D,E): ";

var = true;  // снова присвоим true, чтобы цикл повторил работу

}

} while (var);  // цикл повторяется, пока var будет true



// то есть, пока пользователь не введет

// корректное значение и следовательно

// блок default не сработает

return 0;



}

Задачи: Цикл for в С++


Раз вы приступаете к задачам,  значит уже знаете что такое цикл for. Рассмотрим несколько задач, в решении которых он применяется и, тем самым, закрепим полученные знания. Практика программирования  – самый лучший способ разобраться с материалом и  запомнить информацию надолго.

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

  2. #include

  3. using namespace std;

  4.  

  5. int main()

  6. {

  7. setlocale(LC_ALL, "rus");

  8.  

  9. int digit = 0; // число для расчета

  10. char exit = 'y'; // для выхода или продолжения

  11.  

  12. for (;;)

  13. {

  14. cout << "Введите число: ";

  15. cin >> digit;

  16. cout << "Квадрат " << digit << " = " << digit * digit;

  17. cout << "\nПродолжить ввод чисел - Y, Выйти  - N: ";

  18. cin >> exit; // выбор пользователя

  19. if (exit != 'y' && exit != 'Y')

  20. break; // прервать цикл

  21. }

  22. return 0;

  23. }

Показать код

  1. В спортзал ежедневно приходит какое-то количество посетителей. Необходимо предложить пользователю ввести такие данные: сколько человек посетило спортзал за день, ввести возраст каждого посетителя и в итоге показать возраст самого старшего и самого молодого из них, а так же посчитать средний возраст посетителей.

  2. #include

  3. using namespace std;

  4. int main()

  5. {

  6. setlocale(LC_ALL, "rus");

  7.  

  8. int age = 0; // будет вводить пользователь

  9. int maxAge = 0; // для записи максимального количества лет

  10. int minAge = 100; // для записи минимального количества лет

  11. int sum = 0; // общая сумма для расчета среднего  

  12. int average = 0; // для записи среднего возраста посетителей

  13. int amount = 0; // количество посетителей спортзала



  14. cout << "Введите количество посетителей спортзала: ";

  15. cin >> amount;

  16.  

  17. for (int i = 0; i < amount; i++)

  18. {

  19. cout << "Введите возраст " << i + 1 << "-го посетителя: "; // запрос на введение числа

  20. cin >> age;



  21. if (age > maxAge) // если оно больше, чем хранит переменная  max

  22. maxAge = age; // записываем в неё это число

  23. if (age < minAge)

  24. minAge = age;

  25.  

  26. sum += age; // накопление общей суммы

  27. }



  28. average = sum / amount; // подсчет среднего возраста

  29.  

  30. cout << "\nСредний возраст всех посетителей: " << average << endl;

  31. cout << "\nСамый взрослый: " << maxAge << endl;

  32. cout << "\nСамый молодой: " << minAge << endl;

  33.  

  34. return 0;

  35. }

Показать код

Для самостоятельно задания, предлагаем вам решить похожую задачу. Организовать ввод количества посетителей спортзала и количества часов проведенных каждым из них в спортзале. В итоге посчитать и показать общую сумму, которую посетители заплатили за тренировки.

 3. На складе имеется определённое количество ящиков с яблоками (в нашем примере 15). Когда подъезжает машина для погрузки, попросить пользователя ввести, сколько ящиков загрузить в первую машину,  во вторую и так далее, пока не закончатся ящики с яблоками. Предусмотреть тот случай, когда пользователь введёт количество ящиков больше, чем есть на складе.

#include

using namespace std;

 

int main()



{

setlocale(LC_ALL, "rus");

 

int boxWithApples = 15; // количество ящиков на складе



int amountBoxesForSale = 0; // количество отгружаемых ящиков

 

cout << "Сейчас на складе " << boxWithApples << " ящиков с яблоками.\n\n";



for (int i = 1;  ; i++) // счетчик i  будет считать количество машин к погрузке

{

cout << "Сколько ящиков загрузить в " << i << "-ю машину? ";



cin >> amountBoxesForSale;

 

if (amountBoxesForSale > boxWithApples)



{

cout << "\nНа складе недостаточно товара!";

cout << "Осталось только " << boxWithApples << " ящиков\n\n";

i--; // уменьшить счетчик на единицу

}

else


{

boxWithApples -= amountBoxesForSale; // перезаписываем значение

cout << "Осталось " << boxWithApples << " ящиков.\n";

}

 



if (boxWithApples == 0)// если ящиков больше нет - выйти из цикла

{

cout << "Яблоки закончились! Давай до свидания!\n";



break;

}

}



return 0;

}

Показать код

При возникновении вопросов обращайтесь к нам в комментариях.


Download 193,71 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish