Вы на НеОфициальном сайте факультета ЭиП

На нашем портале ежедневно выкладываются материалы способные помочь студентам. Курсовые, шпаргалки, ответы и еще куча всего что может понадобиться в учебе!
Главная Контакты Карта сайта
 
Где мы?
» » » Использование циклических алгоритмов в решении содержательных задач

Реклама


Использование циклических алгоритмов в решении содержательных задач

Просмотров: 3450 Автор: admin

Наиболее важным в программировании является подготовительный этап, который называют постановкой задачи, тесно связанный с этапом формализации задачи. От правильного выполнения этих этапов во многом зависит время и качество программирования. Постановка задачи обычно заключается в ее словесном описании на вербальном уровне. Как известно, таким способом не может быть дано точное определение модели. Поэтому следующий этап, это формализация, то есть выбор математической или иной модели, адекватно отражающей суть задачи. Точных рекомендаций при выборе модели дать невозможно.

Пример. До сих пор мы рассматривали уже готовые, формализованные задачи, где математическое описание было дано или лежало на поверхности. Теперь приведем пример неформализованной задачи. Червячок ползет по дереву вверх, стартуя со скоростью V м./час. Каждый последующий час движения его скорость падает на 10% от предыдущего значения. Если высота дерева H, то за какое время червячок достигнет вершины.

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

В подготовку цикла входит присваивание начальных значений пути S = 0, скорости V и времени t = 1. Причем, если S и V имеют значения до момента первого вычисления, то t = 1 уже готовится к первой итерации. Для убедительности будем выводить на экран значения пути, пройденного к исходу каждого часа, и значение скорости в каждый час времени. Момент, завершающий цикл, интересен многими особенностями, и сильно зависит от входных данных.

Первый вариант завершения цикла, это когда червячок сможет добраться до вершины. Условием завершения является S < H, при этом в теле цикла оператор break отсекает лишнюю итерацию. Второй вариант, это когда червячок не сможет добраться до конца дерева, так как скорость падает очень быстро. Должна быть выполнена проверка условия V > 0 с некоторой степенью точности, так как возможно, что скорость упадет практически до нуля, а до конца дерева останется еще очень долгий путь. Кстати, проверка S < H также выполняется приближенно.


// Код программы примера.
#include <stdio.h>
void main (void)
{
float    V;                             // Скорость предыдущего часа и скорость нового часа.
float    S;                               // Путь.
float    H;                              // Высота дерева.
float    t;                                // Время пути.
printf ("Введите высоту n");
scanf ("%f", &H);
printf ("Введите скорость n");
scanf ("%f", &V);
printf (" Таблица зависимости пути от времени. n");
printf ("-------------------------------n");
printf (" Время tПуть tСкорость n");
printf ("-------------------------------n");
// В подготовку цикла входит присваивание значений пути, скорости и времени.
S = 0.;
t = 1;
while (1)                                 // Бесконечный цикл.
{
           S = S + V * 1.;            // Путь, пройденный за t - тый час:
                                               // S = S + V * t , где t=1.0
           if ( S > H )
                       {
                                  printf ("Я уже почти добрался до вершины.n ");
                                  break;   // Чтобы исключить лишнюю итерацию.
                       }
           if (V <= 0.01)
                       {
                                  printf ("Я никогда не доберусь до вершины.n ");
                                  break;
                       }
           printf ("%6.0f %8.3f %8.3f n", t, S, V);
           V *= 0.9;                     // Аналог записи V = V*0.9
           t += 1.;
}
}

Варианты заданий

Задача 1. Маркетинговое исследование, проведенное фирмой «Рога и копыта», выявило, что каждый третий год работы предприятия является прибыльным, а каждый пятый убыточным. Известно, что этот год (текущий) является убыточным.

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

2004г. будет убыточным.

2007г. будет прибыльным.

2009г. будет убыточным.

и так далее.

Задание 2. Валяльная фабрика ежегодно увеличивает объем продаж на 2 процента и снижает себестоимость продукции на 1 процент. В текущем году объем продаж составил 500 тыс. руб., а себестоимость пары валенок была равна 55 руб.

Вычислить и вывести на экран таблицу прогнозируемого увеличения объема продаж и снижения себестоимости на ближайшие 10 лет.

Задание 3. Ученица швеи начинает работу, сострачивая в день 2 пары рукавиц. Совершенствуя свое мастерство, она каждый день выполняет в два раза больше работы, чем в предыдущий день. Больше, чем 100 пар в день, сострочить нельзя.

Найти, на который день ученица достигнет вершин мастерства. Сколько пар рукавиц ей при этом придется сшить? Вывести на экран таблицу роста мастерства швеи по дням.

Задание 4. На день рождения ребенка бабушка открыла счет в банке и положила на него 5 долларов. Каждый год она добавляет 5 долларов. Процент по банковскому счету равен 12% годовых.

Какая сумма накопится к совершеннолетию ребенка (к 16-ти годам), включая последний взнос. Вывести на экран таблицу ежегодного состояния счета.

Задание 5. Процент по банковскому вкладу равен 6%. Если положить в банк сумму N руб., то эта сумма будет ежегодно увеличиваться.

Как будет изменяться сумма в течение ближайших 10-ти лет. Если годовой процент инфляции составляет 3,5%, то сколько же на самом деле будут стоить эти деньги? Вывести на экран таблицу ежегодного состояния счета.

Задание 6. Карамель стоит К руб. за кг., мармелад М руб. за кг., шоколад S руб. за кг.

Вычислить и вывести на экран таблицу стоимости каждого вида сладостей весом 100 гр., 200 гр., и т.д. до 1 кг. включительно.

Задание 7. Оплата труда приходящей няни осуществляется по часам. За срок до 6-ти часов она получает по 25 руб. в час. Начиная с 6-ти часов, каждый последующий час стоит в два раза дороже. Родители, отправляясь на вечеринку, хотят знать сумму, которую они заплатят няне, но не знают, насколько задержатся.

Вычислить и вывести на экран таблицу оплат услуг няни, начиная с одного часа до 24-х часов.

Задание 8. Молодая пара, поженившись, решила откладывать деньги на покупку автомобиля. Муж может вложить ежемесячно М руб., молодая супруга V руб. Если положить деньги в банк, то по срочному вкладу годовой процент равен 12%. Автомобиль мечты стоит N тыс. руб.

Через какой срок молодые поедут на юг в собственном авто? Для убедительности выведите таблицу ежемесячных накоплений с учетом процента по банковскому вкладу.

Задание 9. Директор школы набирает группу для обучения школьников по факультативной программе. Обучение платное, общая стоимость курса К рублей. Сколько же должен платить каждый ученик? Очевидно, эта сумма зависит от значения К и от количества учеников.

Вычислить и вывести на экран таблицу сумм, которую должен внести один ученик, если группа будет состоять из трех, четырех, и т. д. до 20-ти учеников.

Задание 10. По окончании сессии всегда есть некоторое количество «хвостистов». Деканат решил провести курсы для отстающих в объеме 40 часов, и установил стоимость оплаты часа, равной 100 руб. Из суммы, оплаченной студентами, преподавателю причитается 40%.

Найти, сколько денег получит преподаватель, если будет заниматься с одним, двумя, тремя, и т. д. до M студентов. Может ли он озолотиться, если золотой горой считать сумму 20 тыс. руб. Скольких бездельников для этого ему придется окучить?

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

Найдите и выведите в виде таблицы, на который день Незнайка выучит 100 слов, 200, 300, 400 и т. д. до 1000? В английском языке около 50 тыс. слов, а срок жизни Незнаек примерно 30 лет. Успеет ли до своей кончины Незнайка выучить английский язык. Если нет, то сколько Незнаечих жизней понадобится, чтобы выучить английский язык?

Задание 12. Спортсмен начал тренировки, пробежав N км. Ежедневно он увеличивает длину пробегаемого пути на 20%.

Найти, к исходу какого дня спортсмен пробежит марафонскую дистанцию. Вывести таблицу длин ежедневно пройденного пути.

Задание 13. Спортсмен начал тренировки, пробежав N км. Ежедневно он увеличивал длину пробегаемого пути на 10%. Пусть его средняя скорость V км./час.

Найти, сколько времени ежедневно занимает тренировка, если время не должно превысить 4 часов. Найти, какое расстояние будет пробегать спортсмен. Вывести таблицу ежедневно пройденного расстояния.

Задание 14. Старушка решила купить телевизор, когда внук подарил ей 1000 руб. Она положила их в сбербанк под 8 % годовых. Ежемесячно на этот же счет старушка вносит 200 руб. Самый дешевый телевизор стоит 4.500 руб.

Через сколько месяцев старушка посмотрит кино на СТС? Вычислить и вывести на экран состояние счета помесячно.

Задание 15. Известно, что заяц бежит в К раз быстрее, чем ползет черепаха. Они стартуют из пункта А в пункт Б, расстояние между которыми N км.

Вычислить, сколько раз заяц сбегает туда и обратно, пока черепаха доберется до пункта назначения.

Задание 16. В комнате N человек, M кошек и K мух. Вместе у них 100 ног и лап.

Вычислить, сколько в комнате людей, сколько кошек, и сколько мух?

Задание 17. Мама и дочка идут навстречу друг другу со скоростью V1 км./час. Расстояние между ними S км. В момент начала движения их собачка, которая была у мамы, видит дочку и начинает бегать от одной к другой со скоростью V2 км./час., большей, чем V1.

Найти, какое расстояние пробежала собака, прежде чем мама с дочкой встретились. Вычислить число пробегов собаки от мамы к дочке.

Задание 18. Улитка ползет вверх по дереву с начальной скоростью V м./сек. При этом она устает, и ее скорость движения падает по прямолинейному закону на 0,1*V за каждый час.

Вычислить и вывести в таблицу, на какую высоту улитка поднимается в течение каждого часа. Узнать, через сколько часов она смертельно устанет.

Задание 19. Напечатать таблицу перевода температуры из градусов по шкале Цельсия (С) в градусы по шкале Фаренгейта (F) для значений от С0 до Cn с шагом 1 градус. (Перевод осуществляется по формуле F=1,8*С+32).

Задание 20. Напечатать таблицу соответствия между весом в фунтах и весом в кг. для значений от F1 до Fn фунтов с шагом 1 фунт (1 фунт = 400 г).


Информация

Комментировать статьи на нашем сайте возможно только в течении 60 дней со дня публикации.

Популярные новости

Статистика сайта



Rambler's Top100



 
Copyright © НеОфициальный сайт факультета ЭиП