четверг, 30 августа 2012 г.

УПРАЖНЕНИЯ С++ на ветвления


Даны действительные числа a, b, c, (aО). Пол­ностью исследовать биквадратное уравнение ax4+bx2+c=0, т. е. если действительных корней нет, то должно быть выдано сообщение об этом, иначе должны быть выданы два или четыре корня.
 
Даны два числа X и Y проверить истинность того что оба числа четные.
 ,
Даны действительные числа х, у  Меньшее из этих двух чисел заменить их полусуммой, а большее — их удвоенным произведением

Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так

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

Дан номер месяца. Вывести на экран время года (зима, весна, лето, осень)

Дан номер месяца и год. Определить число дней в этом месяце

Даны два числа X и Y определить истинность высказывания: Только одно из чисел нечетное

Цифры 1, 2, 3 и 4 обозначают операции сложение, умножение, вычитание и деление. Предложить пользователю ввести два числа и выбрать действие. Выполнить выбранную операцию и вывести результат на экран

Вы любите играть в азартные игры. Ваша стратегия - проиграл ставку, поставь в два раза больше. При этом вы следите за количеством денег в кармане. Напишите программу, которая будет определять максимальное количество ставок и выдавать сообщение о возможности или невозможности сделать определенное количество ставок, если в кармане 1000, первая ставка 10
(10 + 20 + 40 ..+n <1000)
Усовершенствуйте программу, давая пользователю возможность выбрать количество денег в кармане и первую ставку.

 Дано четыре числа, вывести на экран то, которое меньшее и то, которое большее с соответствующим обобщением:
  большее число ___
  меньшее число ___

Даны три числа. Проверить истинность высказывания: Все числа положительные. Если какие-то из чисел не соответствуют условию, то вывести на экран их и сообщить, что эти числа не дают выполнить условие

Предложить пользователю ввести возраст и в зависимости от возраста вывести на экран его возрастную категорию (младенец, дошкольник, юноша, молодой человек, в расцвете сил, пожилой человек, старый  и немощный)

Ввести координаты точки с клавиатуры и определить относится ли точка к закрашенной области


Даны координаты начала и координаты конца отрезка. Если считать отрезок обозначением горки, то в одном случае он обозначает спуск, в другой подъем. Определить и вывести на экран спуск это или подъем, ровная дорога или вообще ровная вниз

Определить принадлежит ли точка с координатами (x,y) закрашенной области


Игральные карты обозначены следующим образом
Масти - 1,2,3,4 (бубны, трефы, червы, пики)
Достоинства - 11,12,13,14 (Валет, Дама, Корль, Туз) 
Даны два числа, обозначающих достоинство и масть карты. Первое число N принадлежит диапазону (6<=N<=14), второе число M принадлежит диапазону (1<=M<=4)
Вывести название соответствующей карты (Шестерка бубен, тройка  червей в соответствии с тем что ввел пользователь)

 Предложите пользователю ввести имя и выбрать пол (мужской или женский). В зависимости от выбранного пола, напишите например так
 для мужчины Имя + опять с друзьями бухаешь, вместо того чтоб с++ изучать
 для девушки Имя + Сегодня ты выглядишь уставшей, я могу тебе помочь?
 Разнообразьте это упражнение с анализом возраста и придумайте подходящие действия в зависимости от возраста, пола

В восточном календаре принят 60 летний цикл, состоящий из 12 летних под циклов, обозначаемых названиями цвета: Зеленый, Красный, желтый, белый и черный. В каждом цикле годы носят названия животных: Крысы, Коровы, Тигра, Зайца, Дракона, Змеи, Лошади, Овцы, Обезьяны, Курицы, Собаки и Свиньи. По номеру года определить его название если 1984 год начало цикла: Год зеленой крысы

Дано трехзначное число. Вывести его словесное описание (345 = Триста сорок пять)

Дано число, обозначающее количество лет. Вывести в словесном виде описание указанного возраста (3 = 3 года, 5=5 лет, 21=21 год и т.п.) От одного до ста

Даны два числа, обозначающие день и месяц. Вывести на экран знак зодиака.
Овен 21 марта - 20 апреля         Весы 23 сентября 22 октября
Телец 21 апреля - 21 мая           Скорпион 23 октября - 21 ноября
Близнецы 22 мая 21 июня          Стрелец 22 ноября - 21 декабря
Рак 22 июня - 22 июля                Козерог 22 декабря - 20 января
Лев 3 июля 23 август                   Водолей 21 января - 19 февраля
Дева 24 август 22 сентября        Рыбы 20 февраля - 20 марта

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

Напишите программу проверки числа на то что оно трехзначное 

Вы любите играть в азартные игры. Ваша стратегия - проиграл ставку, поставь в два раза больше. При этом вы следите за количеством денег в кармане. Напишите программу, которая будет определять максимальное количество ставок и выдавать сообщение о возможности или невозможности сделать определенное количество ставок, если в кармане 1000, первая ставка 10
(10 + 20 + 40 ..+n <1000)
Усовершенствуйте программу, давая пользователю возможность выбрать количество денег в кармане и первую ставку.

Пользователь вводит два числа. Вы задаете вопрос a*b=___ (a и b числа введенные пользователем) Пользователь должен ввести свой ответ. Надо проверить правильность ответа и сообщить пользователю

Написать программу, которая дописывает рубль в правильной форме (от 1 до 999)
1 = 1рубль, 20=20 рублей, 3=3 рубля

По номеру дня недели вывести название дня недели

Задачи на принадлежность точки (x,y) к закрашенным областям



























 

5 комментариев:

  1. Только начал изучать С++. Очень помогают Ваши упражнения. Появились затруднения с одной задачкой:
    Дан номер месяца. Вывести на экран время года (зима, весна, лето, осень)
    можете дать Ваше решение и указать на мои ошибки пожалуйста?
    мой код:
    int nMonth;
    cout << "Please, enter number of the month: ";
    cin >> nMonth;
    if (nMonth= 4,5,3)
    {cout <<"\nIt's SPRING now!\n";
    }
    else
    {if (nMonth=6,7,8)
    {cout <<"\nIt's SUMMER now!\n";
    }
    else
    {if (nMonth=9, 10, 11)
    {cout <<"\nIt's AUTUMN now!\n";
    }
    else
    {cout <<"\nIt's WINTER now!\n";
    }
    }
    }

    ОтветитьУдалить
    Ответы
    1. Такую конструкцию кода как у вас в первый раз вижу. Для сравнения используется два равно (==), а одно равно используется для присваивания. (Но даже при этом мне непонятно как должен работать ваш код)
      Если бы я был вами, то использовал бы логическое или (||) вместо вашей конструкции внутри if
      =============
      Здесь в комментариях коды обрезаются, поэтому дам ссылку на пример решения
      http://fc13.spaces.ru/f/800415138326/1348244776/34415158/0/237234d9cb243198b5fe22d9b0ae8dc9/TEMP-spaces_ru.cpp
      ============
      Там немного скомбинировано и использован цикл for, но его не должно быть сложно убрать. Просто как один из вариантов не запускать программу многократно. Тот код который по этой ссылке предполагает меньше букв чем ваш (в моем понимании вашей реализации). В задачах на ветвления Нужно хорошо понимать разницу между меньше и меньше или равно (больше и больше или равно) и еще понимать как работают слегка усложненные варианты проверок условий

      Удалить
    2. По поводу ошибок. Вряд ли я тут смогу проанализировать все ваши ошибки лучше чем вы сами

      Удалить
  2. спасибо за помощь. Кажется я совсем не правильно понял тему, обратно перечитываю. А есть ли решения всех задач в одном месте или файлом?

    ОтветитьУдалить
    Ответы
    1. Вряд ли сегодня есть. Я не решал. Те, что с картинками наверное не смогу даже (не приходилось).
      -------
      Вы правильно поняли тему, но неправильно попытались применить теорию на практике. Любой программист должен заглядывать на пару шагов вперед, поэтому направление ваших мыслей при решении той задачи должно было быть приблизительно таким: "В сезоне три месяца, есть всего 4 сезона итого 12 вариантов при решении. Но что если будет однотипная задача и этих вариантов больше, например десятки тысяч? Мне что каждый вариант прописывать?,- нет, должно быть что-то...". Вот вы попытались применить логическое или (просто вашим каким-то способом), но стали бы вы его применять на десятки тысяч чисел??? Тут и приходят на помощь диапазоны значений. Кроме того вы должны учитывать ошибки, например отрицательное число не может быть номером месяца или если пользователь пытается ввести не число и много других факторов. Я этого преднамеренно избегаю, чтобы человек быстрее понимал суть, но любая маленькая ошибка может дорого стоить и избегать их ненужно
      ======
      Я не думаю что кому-то интересно делать сборник решений этих задач (хотя кто знает). Некоторые упражнения могут быть с некорректными условиями потому что кроме того что взято с учебников, некоторые я попытался описать сам (вот в них и могут быть неточности в условиях). Да и потом здесь совсем мало задач и почти все они если не все очень школьного уровня.
      ======
      На разных форумах много решений однотипных задач для любых "моих" упражнений. Но чем больше вы будете проявлять упорство для решения своими силами тем больше вероятности, что быстрее станете программистом.
      (всего того что описано в теоретической части блога даже на полу профи не хватит)
      =====

      Удалить