Решение задач на заказ
Решение задач на заказ
Горят сроки, а задачи не готовы? Только без паники! Специалисты учебного центра спешат на помощь. Вы можете недорого и срочно заказать решение задач любой сложности у экспертов сервиса. Гарантия полных расчётов с пояснениями по каждому действию.
Команда сервиса – это опытные преподаватели вузов. Любые дисциплины, сжатые сроки, точность расчетов – позволяют ежедневного решать задачи.
Как никто мы хорошо понимаем, что не каждый сможет выделить время для выполнения заданий. Часто объемность решения зашкаливает и не хватает уже терпения довести до логического итога начатое. К тому же лишь единицы могут похвастаться блестящими знаниями в области экономических и технических дисциплин.
Простая нехватка времени, бесконечные формулы, подбор нужных методик расчёта и полное непонимание материала – главные причины поиска экстренной помощи. Выход в данной ситуации очевиден – обращение за консультацией по задачам в учебный центр.
Если нужна помощь в решении задач от экспертов – это самый простой выход. Гарантируем точный результат, с максимально подробными пояснениями.
Задача про Сашу, Андрея и Ольгу
В комнате три человека. Саша смотрит на Ольгу, а Ольга смотрит на Андрея. У Саши есть дети, у Андрея нет. Смотрит ли человек, у которого есть дети, на человека, у которого детей нет?
Варианты ответа: «Да», «Нет», «Нельзя определить». Объясните свою точку зрения.
Ответ на задачу:
В задании не сказано, есть ли у Ольги дети. Поэтому в решении могут быть варианты.
- Пусть у Ольги есть дети. Она смотрит на человека, без детей — Андрея.
- Ответ – Да, смотрит.
- Если у неё детей нет, тогда на неё смотрит Саша.
- Опять ответ — Да, смотрит.
Т.е. в любом случае ответ будет Да.
Задача №2
Давайте немного вспомним арифметические действия и применим их к задаче.
В кафе быстрого питания зашли четыре посетителя. При этом:
- первый посетитель купил три бургера и заплатил 300 рублей;
- второй посетитель купил один бургер и две порции картофеля фри и заплатил 200 рублей;
- третий посетитель купил два куска пиццы и одну порцию картофеля фри и заплатил 90 рублей;
- четвертый посетитель купил один бургер, одну порцию картофеля фри и один кусок пиццы.
Схематично эту ситуацию можно представить так:
Вопрос: сколько заплатил четвертый посетитель?
Если три бургера составили 300 рублей, то один бургер стоит 100 рублей (300/3). Если второй посетитель заплатил 100 рублей за бургер, то еще 100 рублей приходится на две порции картофеля, то есть одна порция картофеля фри стоит 50 рублей (100/2). Если третий посетитель заплатил 90 рублей, потратив 50 рублей на картофель, а сорок рублей на две пиццы, то одна пицца стоит 20 рублей (40/2). Соответственно четвертый посетитель заплатил: 100 + 50 + 20 = 170 рублей.
Самое главное в решении логических задач
Почти у любой задачи есть несколько вариантов решения. Чтобы легко справляться даже с самыми непростыми заданиями, надо знать, какой способ будет наиболее подходящим в той или иной ситуации.
Понимание разных методов позволяет находить оптимальный вариант решения, что особенно важно в условиях ограниченного времени.
Все задачи на развитие логики можно разделить на группы:
- Математические ребусы;
- Задачи на истинность утверждений;
- Задачи на перемещение, взвешивание или переливание;
- Задачи, которые решаются с конца;
- Работа с множествами;
- Задачи на сопоставление «Кто есть кто?»
Выбор способа решения зависит от того, к какой группе относится задание.
§ 8.8. Программирование циклических алгоритмов. Цикл с условием
Содержание
Алгоритмическая конструкция цикл с условием
Цикл – это алгоритмическая структура, в которой одни и те же инструкции выполняются периодически в зависимости от условия. В качестве условия (как и в условной инструкции) может быть любое выражение возвращающее числовое значение. Если оно отлично от нуля, то это интерпретируется как true . Если выражение вычисляется как 0 (в том числе, как действительный ноль 0.0 ), то это интерпретируется как false . Условие, которое вычисляется как true , позволяет выполнить один шаг цикла, который состоит в том, что будут выполнены одна или несколько инструкций, находящихся в теле цикла.
Существуют несколько разновидностей циклов. Все они сводятся к трем основным видам:
- цикл с предусловием (или типа while), цикл с постусловием и цикл с параметром (или цикл по переменной).
Инструкция while
В языке C++ цикл с предусловием реализован с помощью инструкции while . Инструкция while имеет следующий синтаксис:
Этот тип цикла является универсальным, т. к. с помощью него может быть решена любая задача с циклом. Работа цикла должна завершаться по выполнению определенного количества шагов, а для этого необходимо изменять значения объектов в теле цикла так, чтобы условие могло, рано или поздно, принять значение false . В этом и есть основная сложность разработки циклического алгоритма с помощью while . Если алгоритм как следует не продумать, то цикл может уйти в бесконечное выполнение (“зацикливание“) и алгоритм никогда не завершит свою работу. Тем не менее, бесконечный цикл может быть организован намеренно (в программировании такое не редкость), скажем, для анализа вводимых данных. “Бесконечный цикл” можно организовать следующим условием: while (true) <> . Вместо true можно использовать ненулевое значение переменной. Приведем пример.
Задача 1. Составить программу, в которой новое значение переменной присваивается в цикле.
В этом случае, выход из цикла программируется в теле цикла, например, с помощью инструкций if и break . Выход из цикла в программе 8.8.1 обеспечивается проверкой вводимого значения переменной а . Цикл будет изменять значение этой переменной до тех пор, пока не будет введен 0 .
Рассмотрим несколько типичных задач в которых используется цикл типа while .
Счетчики и накопители
Самым простым способом выхода из цикла – это проверка выполненных шагов цикла. Для этих целей используется переменная-счетчик. Эта переменная изменяет свое значение с шагом 1 , начиная с 0 . Нулевое значение переменной присваивается до входа в цикл, а в теле цикла переменной инкрементируется новое значение. В условии цикла сравнивается текущее значение счетчика с максимально возможным (количеством шагов).
Задача 2. Вывести на экран n -первых натуральных чисел.
Блок-схема
Мы уже говорили, что в циклах часто используются операции постфиксного или префиксного инкремента или декремента. Эти операции могут сделать код более компактным. Например, две инструкции тела цикла в программе 8.8.2 можно заменить всего одной:
Заметим, что счетчик не всегда нужен. Действительно, если известно общее количество шагов цикла n , то мы можем уменьшать значение n с каждым шагом цикла на единицу до тех пор, пока значение n не станет равным 0 (если, конечно, начальное значение n больше в программе не потребуется). Сформулировав логическое выражение сравнения n с 0 , мы можем создать условие выхода из цикла. В добавок, операцию декремента можно поместить непосредственно в условие. Обратите внимание: если в теле цикла всего лишь одна инструкция, то фигурные скобки можно опустить (для цикла while , правда, это бывает крайне редко).
Задача 3. Вывести n раз число k .
Во многих задачах требуется «накапливать» значение переменной. Накапливать можно как сумму, так и произведение. Накопителю суммы, до входа в цикл, присваивается значение 0 , а накопителю произведения — 1 , т. е. значения, которые не изменят окончательный результат.
Примером задачи получения в цикле произведения является вычисление факториала числа: n! = 1 · 2 · 3 · . · n . Факториал — величина, которая имеет очень быстрый рост, поэтому нужно предусмотреть переполнение типа, если n > 20 . Будем использовать максимально широкий целый тип ( unsigned long long ).
Задача 4. Дано целое n . Получить значение n!
Аналогично программируется и накопление суммы. При этом, можно использовать изменяемое значение счетчика для каких-либо других целей, например, для нумерации вводимых чисел.
Задача 5. С клавиатуры вводится n целых чисел. Определить среднее арифметическое введенных чисел.
В последних двух задачах также можно обойтись и без счетчика. Попробуйте такие варианты задач составить самостоятельно. Ниже приведён пример решение задачи с Черепахой в которой цикл while реализован без счетчика.
Задача 6. Составьте программу рисования n квадратов c общим центром и шагом (расстояние между сторонами квадратов) равным d .
Вывод
Параметры: n = 20, d = 10
Счетчик с произвольным шагом
В программах выше использовался счетчик с целочисленным шагом равным единице для определения количества шагов цикла. Но, в общем случае, счетчик может иметь произвольный шаг, в том числе дробный. Покажем это на примере.
Задача 7. Составить программу вывода таблицы значений квадратного корня чисел от 0.2 до 10.0 с шагом 0.2 и точностью до 4 знаков после запятой.
Возможно, программный код выглядит не очень изящно, но это неизбежная плата за табличное оформление вывода. Приведем пример с черепахой.
Задача 8. Составить программу в которой черепаха рисует параболу
Вывод
Проход циклом по разрядам числа
Обсудим еще один тип задач в которых производится действия с разрядами числа. В этих задачах для работы с отдельными разрядами числа применяются операции целочисленного деления, которые мы изучили ранее. Поскольку количество разрядов в числе заранее неизвестно, то исходное число, на каждом шаге цикла, делится на 10 (с каждым шагом удаляется младший разряд), пока частное не станет равным нулю. Это значение является основанием прекратить деление и выйти из цикла.
Усовершенствуем программу 8.5.4 (задача 2) так, чтобы в итоге обрабатывалось число произвольной разрядности.