Семинар 1. Разработка циклических алгоритмов (1153705), страница 2
Текст из файла (страница 2)
Обратите внимание нанумерацию блоков. Нумерация нужна для сложных блок-схем, которые неумещаются на одной странице или некоторые блоки которых отображаютобобщенное действие и подлежат последующей детализации. Нумерация необязательно производится подряд, некоторые блоки могут не иметь номеров.Для рассматриваемой блок-схемы является обобщенным блок 6, егосодержание раскрыто на рис.3,б.
Обратите внимание назначки, с помощью которых показывается связь междуисходной и подчиненной блок-схемами. Подставив висходную блок-схему вместо блока 6 его расшифровку, получим детальныйалгоритм решения задачи (см. рис.3,в).Разработанный алгоритм имеет кратный (вложенный) цикл: телоцикла, управляемого параметром i - этот цикл называется внешним, - содержитцикл, управляемый параметром j, внутренний цикл. Представленнаяконструкция также называется циклом кратности (вложенности) 2.Заметим, что внешний цикл (с параметром i) обеспечивает переход от строки кстроке матрицы, внутренний цикл (с параметром j) обеспечивает движение построке (т.
е. переход от столбца к столбцу при фиксированном значении i).111 началоВвод N, M; a[i,j],i=0,…,N-1, j=0,…,M-123 k:=04 i:=0нет5 i<N-1да6 вычисление s – суммыэлементов i-й строкида7 s>08 k:+k+1вывод i,s910 i:=i+111вывод k12 конецРис.3,а. Блок-схема программы примера раздела 4125дs:=0 аj:=0jM-1данетs:=s+a[i,j]j:=j+17Рис. 3,б. Детализация блока 6.131 началоВвод N, Ma[i,j], i=1,…,N, j=1,…,M23 k:=04i:=0нет5 iN-1даБлок 6s:=0j:=0jM-1даs:=s+a[i,j]j:=j+17 s>0да8 k:+k+1вывод i,s910 i:=i+111вывод k12 конец14Рис.13,в. Детальная блок-схема программы примера 4Программа, написанная по блок-схема рис.3,в приведена ниже.#include <stdio.h>#include <conio.h>void main(){float a[5][5],s; int N,M,k,i,j;printf("Введите N, M\n");scanf_s("%d%d",&N, &M);printf("Введите матрицу %d * %d\n",N,M);/* Далее цикл для поэлементного ввода матрицы*/for (i=0; i<N; i++)for (j=0; j<M; j++)scanf_s("%f", &a[i][j]);/*Далее алгоритм по блок-схеме*/k=0;for (i=0; i<N; i++){s=0;for (j=0; j<M; j++)s=s+a[i][j];if (s>0){k=k+1;}}printf(" k=%d \n",k);_getch();}5.
Варианты индивидуальных заданий на разработку алгоритмасо сложным условием продолжения цикла11. А—начальная стоимость оборудования. В первый год эксплуатациистоимость оборудования снижается на В руб., а в каждый следующий годснижение стоимости уменьшается на р % (относительно предыдущего года).Определить, через сколько лет стоимость оборудования станет меньше А/2.Рассматривать срок не более N лет.1Код приложения для первой задачи этого раздела приведен в качествепримера в п.2 семинара.
Ответьте на вопрос: зачем в этом коде нужен операторif (At<A/2)…? Можно ли сравнение At c A/2 заменить сравнением i и N?152. Начиная с января на счет клиента в начале месяца переводится Z руб.(заработная плата) и снимается К руб. (коммунальные услуги); в концемесяца производится начисление р % от накопленной суммы.
Последовательно месяц за месяцем суммируя начисляемые проценты, определить ихсумму за год. Вычисления досрочно прекратить, если в каком-либо месяцеэта сумма превысит значение А.3. Средняя заработная плата в январе составила Z руб., а стоимостьпотребительской корзины —К руб. Предполагается, что ежемесячный ростзаработной платы составит р %, а потребительской корзины q %.Последовательно выводить ожидаемую разность между средней заработнойплатой и стоимостью потребительской корзины в феврале—декабре.Вычисления досрочно прекратить, если разность станет отрицательной.4. Клиент переводит на банковский счет в начале каждого месяца А руб.,банковская ежемесячная ставка р %.
Определить, через сколько месяцевнакопленная сумма превысит В руб., при условии, что начальный вкладравен нулю. После N-го месяца вычисления прекратить, даже еслитребуемая сумма не будет получена.5. Клиент положил в банк (однократно) А руб. и дал поручение перечислять вначале каждого месяца В руб. на другой счет. На оставшуюся сумму в концекаждого месяца начисляется р %. Найти, через сколько месяцев отчислениябудут невозможны (т. е. остаток вклада станет меньше В). Вывести такжеостаток вклада. После N-го месяца вычисления прекратить, даже еслиостаток будет больше В.6. В стране с населением N млн человек в ближайшие М лет прогнозируетсясредний ежегодный прирост населения р %.
Доля населения, занятого впромышленности, в данный момент равна a % и предполагается ееежегодное увеличение на q %. Определить, через сколько лет численностьнаселения, занятого в промышленности, превысит С млн чел. Вычислениядосрочно прекратить, если превышение не будет достигнуто через М лет.7. К началу октября на овощном складе хранилось А т овощей. Ежемесячнодолжно изыматься В т для продажи. Естественная ежемесячная убыльпредполагается постоянной и равной р %. Определить, на сколько месяцевхватит запаса овощей.
Вычисления досрочно прекратить послерассмотрения десятого месяца хранения (июля).8. Начальная стоимость оборудования равна А руб. За первый год эксплуатации стоимость (вследствие амортизации) уменьшилась на В руб., завторой год—на В/2 руб., за третий год—на В/3 руб. и т. д. Последовательновычисляя стоимость оборудования через 1, 2, 3, ... лет эксплуатации,определить, через сколько лет она станет меньше заданного значения С.Рассматривать срок не более М лет.9. Ежемесячная зарплата служащего составляет Z руб.
В январе он перечислилна счет в банке половину зарплаты, в феврале—одну треть, в марте —одну1610.11.12.13.14.15.16.17.четверть и т. д. Ежемесячная ставка банка равна р %. Определить, черезсколько месяцев накопленная сумма превысит значение С. Рассматриватьсрок не более одного года.Себестоимость товара на момент начала его производства равна А руб.Предполагается, что за первый год производства она снизится на р %, завторой—на (р/2 )% (по сравнению с предыдущим годом), за третий—на(р/3) % и т. д. Определить, через сколько лет себестоимость станет меньшеС. Рассматривать срок не более 10 лет.Начальный вклад клиента составил А руб. В первый месяц ставка по вкладусоставила р %, в каждый следующий месяц она будет увеличиваться на q %.Определить, через сколько месяцев накопленная сумма станет больше 2А.Рассматривать срок не более М месяцев.На счет клиента в начале первого месяца поступает А руб., в начале второго—2А руб., ..., в начале М-го—МА руб.
После поступления сумма сразупереводится в доллары. Курс доллара в первом месяце равен К, а затемежемесячно изменяется на q %. Ежемесячная банковская ставка подолларовым вкладам равна р %. Определить, через сколько месяцевнакопленная сумма (в долларах) превысит заданное значение С.Рассматривать срок не более одного года.На овощном складе хранилось А т картофеля. В конце первого месяца былоизъято В т для продажи, в конце второго—1,1В т, ..., в конце М-го—[1+(М1)/10]В т.
Естественная ежемесячная убыль предполагается постоянной иравной р %. Определить, через сколько месяцев количество картофеля наскладе станет меньше заданного значения С. Рассматривать срок не более10 мес.В первый год эксплуатации нефтяная скважина дала М млн т нефти.Предполагается, что во второй год добыча нефти увеличится на р %, втретий—на (р+10) % (по сравнению с предыдущим годом), ..., в N-й—на[р+10(N-2)] %. Определить, через сколько лет добыча превысит заданноезначение С. Рассматривать срок не более 20 лет.Средняя продолжительность жизни населения региона равна А лет.Ожидается ее ежегодный рост на р % вследствие улучшения медицинскогообслуживания и на Q лет вследствие улучшения экологии.
Определить,через сколько лет средняя продолжительность жизни превысит 60 лет.Рассматривать срок не более 30 лет.Доход предприятия в первый год его существования составил А у. е.Предполагается, что доход будет увеличиваться ежегодно на В у.е. за счетэкономии материалов и на р % за счет использования новых технологий.Определить, через сколько лет доход превысит заданное значение С.Прогноз справедлив в течение не более чем 10 лет.Пусть в некоторой стране А чел.
страдает некоторым заболеванием.Предполагается снижение этого числа на р % за счет профилактики1718.19.20.21.22.23.24.25.заболевания и на Q чел. в результате применения новых методов лечения.Определить, через сколько лет число больных уменьшится в 2 раза.Рассматривать срок не более чем 20 лет.Заработная плата специалиста составляет А руб., курс доллара—В руб.Предполагается ежемесячное увеличение заработной платы в рублях на(р+k) % (по отношению к заработной плате предыдущего месяца, k—номертекущего месяца), и прогнозируется изменение курса доллара на q %.Определить, через сколько месяцев заработная плата специалиста вдолларовом эквиваленте увеличится на 50 %. Рассматривать срок не болееодного года.Начальная стоимость продукта равна А руб. Предполагаются ежемесячноеуменьшение этой стоимости за счет совершенствования технологии на Рруб.
и ежемесячное уменьшение на q % за счет снижения стоимостиматериалов. Определить, через сколько месяцев стоимость уменьшитсяболее чем на 20 %. Рассматривать срок не более одного года.Население страны составляет А млн чел. В первый год наблюденийпрогнозируется рождаемость р % общей численности населения, вовторой—(р+Q) %, в третий—(р+2Q) %, ..., в М-й—[р+(М-1)Q] %.Определить, через сколько лет число рожденных за год превысит заданноезначение С. Рассматривать срок не более 50 лет.Длина шоссейных дорог некоторого района составляет А км. За первый отрассматриваемого момента год планируется их увеличение на р %, за второйгод—на (р+10) %, ..., за М-й год—на [р+10(М-1)] %. Определить, черезсколько лет длина шоссейных дорог превысит значение С. Рассматриватьсрок не более 10 лет.Урожайность пшеницы в год начала разработки целинных земель составилаА ц/га, затраты на ее получение—В руб./га.
Существует прогноз, что впоследующие годы урожайность будет уменьшаться на Р ц/га в год приувеличении затрат на q %. Определить, через сколько лет себестоимостьпшеницы увеличится на 50 %. Рассматривать срок не более 20 лет.Резервуар содержит Р кг летучего вещества. В начале каждых суток из негоизымается Т кг вещества. За сутки улетучивается q % вещества. Определить,через сколько суток масса вещества в резервуаре уменьшится более чем в 10раз.
Рассматривать срок не более 30 сут.Озеро содержит А км3 воды. Ежегодно объем воды уменьшается на р %.Если построить на берегу завод, то это приведет к дополнительномуежегодному уменьшению объема воды на В км3. Определить, через скольколет, при условии существования завода, объем воды в озере снизится в 2раза. Рассматривать срок не более 50 лет.1 кВт электроэнергии стоит А руб., средняя семья из четырех человекпотребляет в рассматриваемый месяц 200 кBт электроэнергии. В ближайшие12 мес. предполагается ежемесячный рост стоимости электроэнергии на р %18и потребления электроэнергии на 50 кВт.
Определить, через сколькомесяцев средние (в месяц) затраты семьи на электроэнергию превысятзаданное значение С.26. Фирма желает открыть счет в коммерческом банке под р % годовых инакопить на нем сумму С $ для модернизации оборудования. Ежегодныеотчисления на счет равны В. Последовательно год за годом суммируя поступающие отчисления и накопленные проценты, определить, через скольколет будет получена необходимая сумма. Вычисления прекратить, если срокнакопления превысит М лет.27. В некоторой стране прогнозируется ежегодное уменьшение числаавтотранспортных аварий на р % (по отношению к предыдущему году) засчет улучшения состояния автотранспорта и на С аварий за счет благоустройства дорог.
Определить, через сколько лет количество аварийстанет меньше значения М. Прогноз справедлив только на десятилетнийсрок.28. Прогнозируемый прирост T численности населения некоторой страны втечение ближайших М лет выражается формулойT T02(1 k 2 ) ,Mгде Т0—заданная константа, k—число лет, прошедших с начала наблюдения. Определить, через сколько лет численность населения превыситзначение Р, если ее начальное значение равно Р0.6. Варианты индивидуальных заданий на проектированиеалгоритма обработки одномерных массивовВ приведенных ниже задачах значения A, B (если они есть в варианте) ивектора X и (или) Y задаются вводом; n — размер каждого из векторов X и Y.1. Каждая пара (Xk ,Yk) представляет координаты одной из n точек наплоскости. Определить, у какого числа точек положительна как абсцисса Xk,так и ордината Yk; для прочих точек найти среднее расстояние до началакоординат.2.