Как написать алгоритм программы. Программирование программа алгоритм

19.03.2019

Плоскостопие - далеко не безобидный недуг. Нарушение анатомии стопы может привести к серьезным проблемам с позвоночником, нервной системой, опорно-двигательным аппаратом. Стопа ребенка растет и формируется до 7-8 лет. Только в подростковом возрасте можно с уверенность сказать, если ли у ребенка плоскостопие.

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

О профилактических мерах

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

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


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

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

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



Наиболее ответственный период - дошкольный возраст от 3 до 6-7 лет. Если в этот период, связанный с интенсивным ростом костей, мышц, сухожилий, суставов, создать для ребенка правильные условия, то развитие будет нормальным и плоскостопия с большой долей вероятности не возникнет либо оно будет легким в коррекции.

Основные направления, в которых предстоит двигаться родителям, таковы:

  • выбор обуви;
  • активные физические занятия и специальная гимнастика;
  • правильное питание;
  • массаж стоп.



Обувь или босиком?

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

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

Таким образом, хождение босиком по дому, а желательно еще и по траве, земле, песку в раннем возрасте - первая и очень важная профилактическая мера.



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

Памятка выглядит так:

  • После 1 года покупайте ребенку высокую обувь, которая будет фиксировать стопу при обучении хождению. Задник может быть мягким, это не играет большой роли. Подошва не обязательно должна быть жесткой, но она должна хорошо амортизировать. Основная функция первой обуви - бережная поддержка голеностопа при первых несмелых шагах.
  • После 2-3 лет, когда ребенок начинает ходить уверенно, высота обуви не является обязательным условием выбора правильной пары. Ботинки или сандалики могут быть любыми, лишь бы ребенку было в них удобно.



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


  • Желательно, чтобы детская пара была оснащена небольшим каблуком, это позволит мышцам стопы развиваться быстрее. Мягкая стелька-супинатор фиксирует стопу изнутри, это тоже важно для развития здоровых ног.
  • В обувь, в которой малыш ходит в течение дня в группе детского сада, можно вложить специальные стельки Быкова. Их следует носить около 6 часов в сутки. Время, которое малыш проводит в садике, примерно соответствует этому требованию.


Профилактические занятия и гимнастика

После 1 года можно ввести ребенку комплекс упражнений на специальном массажном коврике -аппликаторе.

Можно купить цельный массажный коврик, а можно выбрать коврик-пазл , который будет для ребенка и веселой игрой, и эффективной профилактикой патологии стоп. Коврики оснащены особой фактурой - неровностями по типу «Ракушки», «Галька», «Шипы» и так далее. Хождение и упражнения на квадратах с разными поверхностями-фактурами стимулирует различные активные точки стоп.

Профилактические коврики мягче, чем коврики для лечения плоскостопия. Они выполнены их эластичных материалов, хождение по ним не доставляет выраженных неприятных ощущений.

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



Если коврика нет, и средств на его приобретение тоже нет, напольный аппликатор можно сделать ребенку своими руками. Для этого подойдут и пуговицы, и ракушки, и крупные бобы, и плоды каштана. На аппликаторе собственного изготовления или фабричного производства ребенок вместе с мамой может практиковать:

  • хождение на пяточках;
  • хождение на носочках;
  • перемещение на наружных краях стоп;
  • перекаты с наружного края на внутреннюю часть стопы;
  • шаги с подогнутыми внутрь пальцами стоп.



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

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


Эффективные упражнения для профилактики плоскостопия показаны в следующем видео.

Питание

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

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


Ребенок должен есть крупы, фрукты и свежие овощи, сливочное и растительное масло, зелень, яйца. Сырой пищи следует употреблять в 2-3 раза больше, чем продуктов, которые подверглись термической обработке.

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

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


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

При общем авитаминозе - витаминные комплексы, которые разработаны специально для детей определенного возраста с учетом суточной потребности их организмов в том или ином веществе.


Массаж

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

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


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


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

При воздействии на саму стопу следует особое внимание уделить боковым ребрам - внутренней и внешней поверхности, области сгиба пальчиков. Массаж начинают с 3-4 минут и постепенно доводят длительность процедуры до 15 минут. После массажа полезно сделать контрастную укрепляющую сосуды ванну для ног - сначала опустить стопы в теплую воду, а затем подлить в нее холодной воды.


О том, как сделать массаж ребенку для профилактики плоскостопия, смотрите в следующем видео Алёны Грозовской.

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

Дети дошкольного возраста особенно подвержены гриппу

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

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

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

Хорошей защитой от гриппозной инфекции может быть вакцинация, но в этом случае учитываются такие нюансы:

  • прививаются лишь здоровые дети;
  • вакцина вводится не непосредственно во время эпидемии, а хотя бы за три-четыре недели до ее начала, чтобы иммунитет успел сформироваться;
  • стопроцентная защита от гриппа не может быть гарантирована, а потому наряду с вакцинацией следует помнить о важности соблюдения прочих профилактических мер.

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

Режим дня

Нельзя говорить о действенной профилактике гриппа у детей дошкольного возраста без соблюдения нормального режима дня.

Активные занятия должны чередоваться с отдыхом. Малыш должен:

  • спать достаточное время;
  • принимать пищу по определенным часам;
  • не только учиться, но и развлекаться.

Это позволит малышу быстро восстанавливаться и оптимально реагировать на меняющиеся условия.

Чтобы ребенок был здоровым, его сон должен быть полноценным

Правильное питание

Еще один немаловажный момент для крепкого здоровья детей дошкольного возраста – их сбалансированное питание. Оно должно быть богатым на витамины. Пищу следует готовить, используя натуральные продукты, вроде ягод, фруктов, овощей.

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

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

Нельзя, конечно же, забывать о том, насколько полезными могут быть лук с чесноком. У этих растительных культур – особенные ароматические вещества, способны противостоять вирусам. Правда, дети есть дети, и иногда они не очень любят кушать тот же чеснок. В таком случае его можно разломать на маленькие дольки и разложить в детской комнате. Еще неплохо бы положить чеснок в какую-нибудь маленькую коробочку (к примеру, от kinder сюрприза) со множеством дырок и повесить ее ребенку, как колье, на шею или где-нибудь рядом с его кроваткой.

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

Правила гигиены

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

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

Поэтому мытье рук после улицы и каждый раз перед употреблением пищи (а также после) никто не отменял. Если в доме кто-то уже болеет, его следует изолировать от малыша. Допускать контакты разрешается только в марлевых повязках или специальных масках.

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

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

В холодную погоду малыша нужно тепло одевать

Неплохо бы носить с собой несколько влажных салфеток, чтобы ними протирать ребенку руки.

Промывание носика

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

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

Регулярная уборка

Благодаря регулярной влажной уборке уменьшается риск заражения. Особенно это важно, когда кто-то из членов семьи болеет.

Комнату малыша надо несколько раз в сутки проветривать, внимательно отслеживая уровень влажности и температурные показатели.

Ношение защитной маски

Марлевая повязка или специальная маска не позволит мокротам и слизи заболевшего человека оказаться на слизистых малыша.

Сложно описать важность такой профилактики, когда кто-то из домочадцев уже заболел.

Но маску необходимо будет постоянно снимать – через каждые три или четыре часа, так как в ней постепенно скапливаются микробы.

Кстати, нельзя не упомянуть в этой связи о вреде пассивного курения для малыша. Если кто-то из родителей курит при ребенке, дым попадает не только в детские легкие, но и делает его слизистые более сухими, вследствие чего вирусу намного проще попасть в организм. Слизистые становятся более чувствительными к остро-вирусным респираторным инфекциям.

Закаливание малышей

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

С раннего детства малышей необходимо правильно закалять

Когда ребенок только-только поступает в садик, необходимо подробно узнать у его мамы:

  • как протекала ее беременность;
  • как прошли роды (не было ли осложнений);
  • не болеет ли чем-нибудь ребенок;
  • есть ли у него аллергия (если есть, то на что).

Благодаря этому получится подобрать для малыша подходящий вариант закаливания.

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

Помогает и регулярная обработка воздуха внутри посредством бактерицидной лампы.

Когда сонный час заканчивается, пусть дети ходят босиком по махровой дорожке (сначала по сухой, потом – по смоченной подсоленной водой). Это поможет им массажировать стопы, что обеспечивает не только профилактику плоскостопия, но и укрепляет иммунитет.

А для полоскания горла лучше использовать травяные отвары (не горячие, а комнатной температуры)

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

Необходимо почаще употреблять аскорбиновую кислоту (к примеру, покупать соответствующие драже), пить полезные фитококтейли.

Вакцинация

Профилактика гриппа в школе и детском саду предполагает такую процедуру, как вакцинация. Вот некоторые показания к иммунизации:

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

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

Негативных отзывов о вакцинации встречается немало, однако, как показывает практика, в большинстве случаев все они оказываются надуманными или написанными после того, как:

  • прививку сделали, несмотря на противопоказания;
  • прививку делал неопытный врач.

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

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

С полугодовалого возраста детей разрешается вакцинировать

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

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

  • Малышей (до 35-месячного возраста) прививают по 0,25 миллилитров. Местом укола является переднебоковая часть бедра.
  • Детям, которые старше 3 лет, вакцину вводят однократно (раз в год) – по 0,5 миллилитров. Место внутримышечного укола – дельтовидная мышца.

Иммунопрофилактика детей от гриппа может проводиться, как живыми, так и инактивированными вакцинами.

Противопоказания к вакцинации

Однако нельзя проводить такую профилактику гриппа и ОРВИ в школе, не зная о противопоказаниях к вакцинации:

  • Если у ребенка есть аллергия на те или иные компоненты препарата – например, на куриный белок, который выступает основой многих вакцин.
  • Если на момент прививки у малыша высокая температура и острая респираторная инфекция.
  • Обострение той или иной хронической болезни.

Побочные реакции после прививок бывают нечасто, а если и происходят, то не опасные и вскоре проходят.

После того, как сделан укол, ребенку желательно хотя бы 20 или 30 минут провести рядом с кабинетом врача на всякий случай, если вдруг начнутся побочные эффекты:

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

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

Побочные реакции после прививок бывают редко

Практика показывает, что, как минимум, 75 процентов привившихся детей не заболевают гриппом и ОРВИ. А в тех случаях, когда заражение все-таки происходит, можно не опасаться возможных осложнений, и одержать победу над заболеванием (при правильном лечении) получится быстро.

Урок математики

«Программа действий. Алгоритм».

Цели: 1)обучающая

Сформировать первоначальные представления о понятиях «блок-схема», «программа

действий», «алгоритм», способность к чтению и составлению простейших программ заданных алгоритмов.

2)развивающая

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

3)воспитывающая

Формировать коммуникативные навыки (воспитание товарищества, взаимопомощи).

1. Самоопределение к деятельности (организационный момент)

2. Актуализация знаний.

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

(учились находить операцию и результат операции; учились находить операцию обратную данной)

Все эти знания могут нам сегодня пригодиться, чтобы помочь Ивану Царевичу победить злого Кощея и освободить Василису Премудрую.

Хотите со мной отправиться в сказку про «Кощея Бессмертного»?

Ну что ж, в путь! (слайд №1)

Ребята, многие наверное из вас читали эту сказку, кто помнит, где спрятана смерть Кощея Бессмертного?

Давайте мысленно вместе с Иваном Царевичем преодолеем путь и победим злого Кощея.

Какие же препятствия нужно преодолеть на пути? Кто сможет это воспроизвести?

добраться достать догнать сбить достать победить

До дуба cундук зайца утку из моря Кощея

Молодцы! Я думаю, что Иван Царевич поблагодарил бы вас.

Ребята, а как нам показать, что эти действия идут именно в такой последовательности? Какой значок нам придумать? ()

Т.о. мы получили схему действий.

А как бы вы назвали полученную схему действий?

(план, маршрут, путь, путешествие,….)

Вывод: В математике такую схему называют блок-схемой.

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

Это наша программа действий.

Поэтому как вы думаете, какова тема нашего урока?

3. «Открытие» детьми нового знания.

Тема: «Программа действий. Алгоритм» (слайд №2)

А чему мы будем учиться сегодня на уроке? Что нового узнаем?

(познакомимся с понятием алгоритм, будем учиться составлять программу действий, пользуясь алгоритмом).

1) -Какая же 1-я операция в нашей программе? (добраться до дуба) (слайд №3)

Ребята, а давайте посмотрим простой ли это дуб? А дуб-то не простой, а с заданием. И только выполнив его, мы сможем добраться до дуба.

Какое же задание нам надо выполнить?

(из 45 вычесть 14, т.е. заполнить пустое окошечко)

А кто думает иначе? Результат операции равен 31.

2) –Итак, до дуба мы добрались! Молодцы!

А сундук-то тоже необычный, а математический (слайд № 5)

Ребята, а как нам здесь-то быть?

Вопрос стоит на первом месте, а результат известен? Что нам делать?

(нам нужно заполнить пустое окошечко, т.е. найти объект операции, а для этого нужно найти операцию обратную данной . ) Объект операции равен 76.

3) -Молодцы! Научились выполнять обратную операцию, достали сундук!

Открываем его, а из него выскакивает заяц и убегает (слайд № 6)

Попробуем его догнать. Поэтому на вопросы отвечайте быстро (слайд № 7)

Сосчитайте от 327 до 332, хором 1,2 группы.

А теперь в обратном порядке две другие группы.

Какое круглое число встретилось вам при счёте? (330)

Даёте характеристику этому числу, выложите графическую модель.

(330 – трёхзначное, т.к. в записи этого числа 3 знака, чётное, т.к. оканчивается на 0, соседи этого числа 329 и 331, сумма цифр числа равна 6, его можно представить в виде суммы разрядных слагаемых 330= 300+30, т. д…..)

(1 ученик выкладывает графическую модель этого числа на наборном полотне)

4) -Поймали мы зайца, но из него вылетела утка (слайд № 8)

Кто быстрее собьёт её из ружья?

Давайте, выразим 330см в различных единицах длины (слайд № 9)

Но в начале давайте вспомним, с какими единицами длины мы знакомы? Назовите их в порядке убывания (м, дм, см)

330см=…м…см 330см=…дм 330см=…м…дм

Самыми быстрыми и меткими у нас оказались …

Большое спасибо за работу, но наша-то конечная цель добраться до Василисы Премудрой, давайте пойдём дальше.

5) -Молодцы! Утку, мы сбили, а яйцо упало в море (слайд № 10)

Чтобы достать его нужно подобрать подходящую схему и решить задачу (слайд № 11)

Задача: Иван Царевич проплыл по морю в первый день 12км. А во второй на 4км больше. Сколько километров проплыл Иван Царевич во второй день?

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

Решите задачу самостоятельно на индивидуальных досках.

Иван Царевич предлагает свой вариант ответа. Проверьте, пожалуйста (слайд № 12)

12+4=16(км)

Поднимите руку, у кого из вас такое же решение, как и у Иван Царевича. Кто не согласен,

поспорьте с ним.

Почему вы эту задачу решили действием сложения?

Как ответить на вопрос задачи?

6)- Вот и достали яйцо, осталось сломать иглу и Кощей будет побеждён (слайд № 13)

У вас на столах лежат карточки, на которых показано, как найти путь к Василисе Премудрой.

Если вы их выложите правильно, в нужном порядке, то Кощей будет побеждён.

(работа в группах: выкладывают по своему усмотрению и фиксируют различные варианты решения).

3. Постановка проблемы.

Какие операции надо выполнить, чтобы найти Василису Премудрую? (слайд № 14)

(-скакать на коне по лесу;

Плыть по морю на корабле;

Лететь на ковре самолёте через горы)

Что мы с вами составляем?

(план, маршрут, программу действий,…)

1-я группа пообщайтесь с классом, какую программу действий составили вы? (затем слово 2-й, 3-й, 4-й группам)

Почему в начале урока мы быстро составили программу действий, а сейчас не можем?

Почему возникли разные мнения? (мы не знаем порядка действий, не знаем, что за чем идёт)

Вывод: - В математике говорят, мы не знаем алгоритма (слайд № 15)

А без алгоритма, т.е. без порядка действий программу составить трудно.

А важно ли уметь её составлять? (да)

Для чего? (чтобы правильно выполнять действия, прийти к намеченной цели,…)

А часто ли в жизни нам приходится сталкиваться с алгоритмом?

А как нам узнать, правильное ли решение принял Иван Царевич, смогли ли мы ему помочь?

(достаю яйцо, раскрываю его, достаю 4 бумажки, на которых написано:

М Л Г М Л Г МОРЕ ЛЕС ГОРЫ МОРЕ ЛЕС ГОРЫ (слайд № 16)

Сейчас вы получите зашифрованный путь Ивана Царевича к Василисе Премудрой.

Разгадайте этот путь.

Что бы это значило? И выложите у себя на столах. (По заданному алгоритму дети

выкладывают)

(1 представитель от группы выступает)

А кто из вас изначально так составил?

Ребята, а кто составил по другому, это что ваша вина, вы что не хотели спасти Василису Премудрую?

А почему вы не смогли это сделать? (Не знали порядок действий. Не знали алгоритма).

Вывод: - Значит, что мы с вами сейчас составили? (алгоритм) (слайд №17)

А как по - другому можно сказать? (программа действий)

-Какими способами, т.е. чем может быть записана программа действий?

(буквами, словами. Картинками, блок-схемой,…) (слайд № 18)

-Мы свою программу выполнили?

-Вот и уничтожили злого Кощея. Молодцы! (слайд № 19)

-А почему мы смогли её выполнить? (потому что знали алгоритм)

5. Первичное закрепление.

1) -Люди, которые составляют эти программы, т.е. алгоритмы называются программистами.

Вы хотите ими сегодня побыть?

Но так как мы ещё маленькие попробуем составить программу действий с помощью картинок. (4 набора – режим дня)

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

(Дети выкладывают программу на наборное полотно).

Вывод: Каждый организованный человек живёт по режиму дня.

Но как вы поняли мы с вами составили только фрагмент из вашего режима.

Что, вы заметили?

- А можно ли какие-то этапы алгоритма, т.е. операции поменять местами?

Если мы поменяем, что-то от этого изменится?

Вывод: Те операции, которые можно поменять местами наз. перестановочными.

(меняю 2 любых операции)

А эти операции можно поменять местами? (нет)

Значит, как они будут называться, если те были перестановочными?

(неперестановочными)

Вывод: Итак, в программе операции могут быть перестановочны, а могут нет.

Какие ещё операции в этой программе могут быть перестановочны?

2)Работа в группах.

1 группа : Сделай бутерброд.

(Наклеивают действия в правильном порядке и рядом записывают алгоритм приготовления бутерброда, т.е. составляют его сами)

(В разном порядке даны картинки, на которых нарисованы: нож, булка хлеба, масло, отрезанный кусок хлеба, кусок мажут маслом).

Алгоритм «Сделай бутерброд» (предполагаемый вариант)

1) Возьми хлеб.

2) Возьми нож.

3) Отрежь кусок хлеба.

4) Возьми масло.

5) Намажь маслом кусок.

Некоторые операции могут быть перестановочными, дети обговаривают их.

2 группа: «Закопай червонцы».

(Помоги Буратино правильно закопать золотые червонцы на Поле чудес)

Даны карточки с отдельными операциями, дети должны наклеить их в нужном порядке.

Положи деньги в ямку. Скажи: «Крекс, фекс, пекс!» Полей водой. Выкопай ямку. Засыпь ямку землёй.

Алгоритм «Закопай червонцы» (предполагаемый вариант)

1) Выкопай ямку.

2) Положи деньги в ямку.

3) Полей водой.

4) Засыпь ямку землёй.

5) Скажи: «Крекс, фекс, пекс!»)

3 группа: «Помоги Вини-Пуху подкрепиться».

(Расставь события по порядку)

? – Вымой лапы.

? – Открой кран.

? – Сядь за стол.

? – Закрой кран.

? – Вытри лапы полотенцем.

? – Съешь мёд.

? – Возьми ложку.

(Предполагаемый ответ:

1. Открой кран.

2. Вымой лапы.

3. Закрой кран.

4. Вытри лапы полотенцем.

5. Сядь за стол.

6. Возьми ложку.

7. Съешь мёд.)

4 группа : Сборка пирамидки и разборка пирамидки.

а) Составить программу сборки пирамидки

б) Составь программу разборки собранной пирамидки.

(каждая группа защищают свой алгоритм)

Ребята, понравилось вам быть программистами?

Составили мы свои программы действий?

А кому было трудно?

6. Д/з: 1)№9 с.12 – из учебника на повторение;

2) Иван Царевич предлагает своё дифференцированное задание

в конвертах. (1,2 группе – посложнее, 3,4 – полегче)

Вы должны восстановить порядок действий.

1 группа: Приготовь яичницу.

2 группа: «Завари чай».

3 группа: Съешь яблоко».

4 группа: Съешь конфету»

3) по желанию: составить программу своего пути в школу (творческое задание)

(на следующем уроке эту программу удобно использовать на этапе постановки проблемы)

7. Итог урока.

Наш урок подошёл к концу.И вот сегодня в наши знания добавилась ещё одна маленькая деталь. Какая? Чему учились сегодня на уроке?- А, что такое алгоритм?-Кто помогал нам в этом? (Иван Царевич) -Поблагодарим его и пригласим на следующий урок, чтобы он проверил наши знания.-А сейчас оцените свою работу на уроке (на доске рисунок Ивана Царевича на коне)ёжик – если на уроке было трудно и вам нужна помощь;цветок – если можете работать самостоятельно, но ещё в чём-то затрудняетесь;ягодка – могу работать сам и могу помочь другому.-Над чем ещё надо поработать? (наметить цели последующей деятельности).-И я, и Иван Царевич благодарим вас за хорошую работу.Урок окончен!

). Разработка программы с помощью такой системы программирования состоит из двух этапов: 1) создание в визуальном режиме элементов графического интерфейса программы; 2) разработка программного кода. Такой подход существенно облегчает создание программ, так как разработка графического интерфейса вручную (в процедурных языках) сложный и трудоёмкий процесс.

Первый шаг к пониманию важности изучения и знания алгоритмов это дать точное определение тому, что понимается под алгоритмом. Алгоритм в программировании- это понятная и точная последовательность действий , записанных на языке программирования.Согласно популярной книге Алгоритмы: построение и анализ (Кормен, Лейзерсон, Ривест, Штайн)"алгоритм (algorithm) - это любая корректно определенная вычислительная процедура, на вход (input) которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная (output) величина или набор значений". Другими словами, алгоритмы похожи на дорожные карты для достижения четко определенной цели. Код, для вычисления членов последовательности Фибоначчи - это реализация конкретного алгоритма. Даже простая функция сложения двух чисел является алгоритмом, хотя и простым.

Для создания алгоритма (программы) необходимо знать:

    полный набор исходных данных задачи (начальное состояние объекта);

    цель создания алгоритма (конечное состояние объекта);

    систему команд исполнителя (то есть набор команд, которые исполнитель понимает и может выполнить).

Полученный алгоритм (программа) должен обладать следующим набором свойств:

    дискретность (алгоритм разбит на отдельные шаги - команды);

    однозначность (каждая команда определяет единственно возможное действие исполнителя);

    понятность (все команды алгоритма входят в систему команд исполнителя);

    результативность (исполнитель должен решить задачу за конечное число шагов).

Большая часть алгоритмов обладает также свойством массовости (с помощью одного и того же алгоритма можно решать множество однотипных задач).

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

Язык программирования - набор правил записи алгоритмических структур и данных.


Анализ времени выполнения алгоритма

Одним из наиболее важных аспектов алгоритма является его скорость. Часто бывает легко придумать алгоритм решающий задачу, но если алгоритм слишком медленный, то он возвращается на доработку. Поскольку точная скорость алгоритма зависит от того где запускается алгоритм, а также деталей реализации, компьютерные специалисты обычно говорят о времени выполнения относительно входных данных. Например, если вход состоит из N целых чисел, то алгоритм может иметь время выполнения пропорциональное N 2 , что представляется как O(N 2). Это означает, что если вы запустите реализацию алгоритма на компьютере с входом размером в N, то это займет C*N 2 секунд, где C-некоторая константа, которая не меняется с изменением размера входа.

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

Выше отмечалось, что один и тот же алгоритм может быть записан по-разному. Можно записывать алгоритм естественным языком. В таком виде мы используем рецепты, инструкции и т.п. Для записи алгоритмов, предназначенных формальным исполнителям, разработаны специальные языки программирования . Любой алгоритм можно описать графически в виде блок-схемы . Для этого разработана специальная система обозначений:

Обозначение

Описание

Примечания

Начало и конец алгоритма

Ввод и вывод данных.

Вывод данных иногда обозначают иначе:

Действие

В вычислительных алгоритмах так обозначают присваивание

Развилка

Развилка - компонент, необходимый для реализации ветвлений и циклов

Начало цикла с параметром

Типовой процесс

В программировании - процедуры или подпрограммы

Переходы между блоками

Приведем пример описания алгоритма суммирования двух величин в виде блок-схемы:

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

Сортировка

Сортировка является хорошим примером алгоритма, который часто используется программистами. Самый простой способ отсортировать группу элементов это начать с удаления наименьшего элемента из группы, и поставить его первым. Затем удаляется второй по величине элемент и ставится вторым и т.д. К сожалению, время работы этого алгоритма составляет O(N 2), а это означает, что потребуется количество времени пропорциональное количеству элементов в квадрате. Если бы нам пришлось сортировать млрд. элементов, то этот алгоритмы бы потребовал 10 18 операций. Если считать что обычные настольные ПК делают примерно 10 9 операций в секунду, то потребуются годы чтобы закончить сортировку этого млрд. элементов.

К счастью существует ряд более совершенных алгоритмов, например, быстрая сортировка (quicksort), пирамидальная сортировка (heapsort) и сортировка слияния(mergesort). Эти алгоритмы имеют время выполнения O(N * Log(N)). Таким образом, число операций необходимых для сортировки млрд. элементов сокращается до таких разумных пределов, что даже самый дешевый настольный ПК способен провести такую сортировку. Вместо млрд. в квадрате операций (10 18) эти алгоритмы требуют только 10 млрд. операций (10 10), т.е. в 100 млн. раз быстрее.

Кратчайший путь

Алгоритмы поиска кратчайшего пути из одной точки в другую исследуются уже на протяжении многих лет. Примеров прикладного применения этих алгоритмов предостаточно, однако для простоты изложения будем придерживаться следующей постановки: требуется найти кратчайший путь из точки А в точку Б в городе с несколькими улицами и перекрестками. Существует много разных алгоритмов для решения этой задачи и все они со своими преимуществами и недостатками. Прежде чем мы углубимся в их изучение, давайте рассмотрим время выполнения простого алгоритма перебором. Если алгоритм рассматривает каждый возможный путь от А до Б (который не образует циклов) он вряд ли закончится при нашей жизни, даже если А и Б находятся в маленьком городке. Время выполнения этого алгоритма является экспоненциальным, что обозначается как O(C N) для некоторого C. Даже для малых значений C, C N становится астрономическим числом, когда N принимает умеренно большое значение.

Один из самых быстрых алгоритмов для решения этой задачи имеет время выполненияO(E+V*Log(V)), где E число дорожных сегментов, а V число пересечений. Алгоритм займет около 2 секунд времени, для поиска кратчайшего пути в городе из 10000 пересечений и 20000 дорожных сегментов (обычно бывает около 2 дорожных сегментов на одно пересечение). Этот алгоритм известен как алгоритм Дейкстры, он является довольно таки сложным и требует использования структуры данных очередь с приоритетом (priority queue). Однако в некоторых случаях даже такое время выполнения является слишком медленным (взять например нахождение кратчайшего пути от Нью-Йорка до Сан-Франциско - в США есть миллионы пересечений), в таких случаях программисты пытаются улучшить время выполнения с помощью так называемой эвристики. Эвристика - это приближенное значение чего-то, что имеет отношение к задаче. В задаче поиска кратчайшего пути, например, может оказаться полезным знать, как далеко находится точка от пункта назначения. Зная это можно разработать более быстрый алгоритм (например алгоритм поиска А* в некоторых случаях работает значительно быстрее чем алгоритм Дейкстры). Такой подход не всегда улучшает время выполнения алгоритма в наихудшем случае, но в большинстве реальных приложений алгоритм начинает работать быстрее.

Приближенные алгоритмы

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

На самом деле есть немало важных задач, для которых известные на сегодня алгоритмы выдают оптимальный результат слишком медленно. Наиболее известная группа из этих задач называется NP (non-deterministic polynomial). Если задача называется NP-полной или NP-трудной, то это означает, что никто не знает достаточно хорошего способа для получения оптимального решения. Кроме того, если кто-то разработает эффективный алгоритм для решения одной NP-трудной задачи, то этот алгоритм можно будет применить ко всем NP-трудным задачам.

Хорошим примером NP-трудной задачи является задача коммивояжёра. Продавец хочет посетить N городов, и он знает, сколько времени занимает перемещение из одного города в другой. Вопрос в том насколько быстро он сможет посетить все города? Самый быстрый из известных алгоритмов для решения этой задачи является слишком медленным - и многие считают, что так будет всегда - поэтому программисты ищут достаточно быстрые алгоритмы, дающие хорошее решение, но часто не оптимальное.

Случайные алгоритмы

Еще один подход, применяемый для решения некоторых задач, заключается в том, чтобы сделать алгоритм случайным. Данный подход не улучшает время алгоритма в худшем случае, но довольно часто хорошо работает в среднем случае. Алгоритм быстрой сортировки является хорошим примером использования рандомизации. В худшем случае, алгоритм быстрой сортировки сортирует группу элементов за O(N 2), где N количество элементов. Если в этом алгоритме использовать рандомизацию, то шансы на худший случай становятся незначительно малыми, и в среднем случае алгоритм быстрой сортировки работает за время O(N*Log(N)). Другие алгоритмы даже в худшем случае гарантируют время работы O(N*Log(N)), однако они медленнее в среднем случае. Хотя оба алгоритма имеют время работы пропорциональное N*Log(N), алгоритм быстрой сортировки имеет более меньший постоянный коэффициент (constant factor) - т.е. он требует C*N*Log(N), в то время как другие алгоритмы требуют более 2*C*N*Log(N) операций.

Другой алгоритм, использующий случайные числа ищет медиану для группы чисел и его время работы в среднем случае составляет O(N). Это намного быстрее по сравнению с алгоритмом, который сортирует числа и выбирает среднее, и работает за O(N*Log(N)). Существуют детерминированные алгоритмы (не случайные) которые позволяют найти медиану за время O(N), однако случайный алгоритм проще для понимания и часто работает быстрее этих детерминированных алгоритмов.

Основная идея алгоритма поиска медианы это выбрать среди чисел случайное, и посчитать, сколько чисел в группе меньше чем выбранное число. Допустим, есть N чисел, K из них меньше или равно выбранному числу. Если K меньше чем половина N, тогда мы знаем что медиана это (N/2-K)-е число которое больше чем случайно выбранное число, так что мы отбрасываем K чисел меньших или равных случайному числу. Теперь допустим мы хотим найти (N/2-K)-е наименьшее число, вместо медианы. Алгоритм такой же, мы просто случайно выбираем число и повторяем описанные шаги.

Сжатие

Еще один класс алгоритмов предназначен для сжатия данных. Этот алгоритм не имеет ожидаемого результата (как например, алгоритм сортировки), но вместо этого делается оптимизация по некоторым критериям. В случае сжатия данных, алгоритм (например, LZW) пытается сделать так чтобы данные занимали как можно меньше байтов, но в то же время, чтобы можно было распаковывать их до первоначальной формы. В некоторых случаях этот тип алгоритмов использует те же методы что и другие алгоритмы, что приводит к хорошему результату, но неоптимальному. Например, JPG и MP3 сжимают данные таким образом, что конечный результат получается более низкого качества, чем оригинал, однако и размер меньше. MP3 сжатие не сохраняет каждую особенность оригинального аудио файла, но пытается сохранить достаточно деталей, чтобы обеспечить приемлемое качество и в то же время значительно сократить размер файла. Формат JPG следует тому же принципу, но детали существенно отличаются, т.к. целью является сжатие изображения, а не аудио.

Зачем нужно знать всякие алгоритмы

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

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

В качестве примера можно рассмотреть, как работают сетевые коммутаторы. Коммутатор имеет N подключенных к нему кабелей, и принимает пакет данных, поступающих по этим кабелям. Коммутатор должен сначала проанализировать пакеты, а затем отправить их обратно по правильному кабелю. Коммутатор также как и компьютер работает в дискретном режиме - пакеты отправляются дискретными интервалами, а не непрерывно. Быстрый коммутатор стремится послать, как можно больше пакетов в течение каждого интервала иначе они накопятся и коммутатор "упадет". Цель алгоритма отправлять максимальное количество пакетов в течение каждого интервала, а также обеспечить порядок, при котором пакеты, пришедшие раньше других отправлялись тоже раньше других. В этом случае оказывается, что для решения этой задачи подходит алгоритм известный как "stable matching", хотя на первый взгляд это может быть не очевидно. Такие связи между задачей и решением можно обнаружить только с помощью уже имеющихся алгоритмических знаний.

Реальные примеры

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

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

Алгоритм поиска максимального потока

Задача поиска максимального потока состоит в том, чтобы посредством имеющейся сети наилучшим образом переместить что-то из одного места в другое. Конкретно такая проблема впервые возникла в 1950-х в связи с железнодорожными путями Советского Союза. США хотели знать, как быстро Советский Союз может подвозить материалы к государствам-сателлитам в Восточной Европе через свою сеть железных дорог.

Кроме того США хотели знать какую часть рельсов можно наиболее легко уничтожить чтобы отрезать государства-сателлиты от остальной части Советского Союза. Оказалось, что эти две задачи тесно связаны и что решение задачи поиска максимального потока также решает задачу о минимальном разрезе, что, в конечном счете, позволит выяснить самый дешевый способ отрезать Советский Союз от своих спутников.

Первый эффективный алгоритм для поиска максимального потока был придуман учеными Фордом и Фалкерсоном. Алгоритм впоследствии был назван алгоритмом Форда - Фалкерсона и является одним из наиболее известных алгоритмов в области компьютерной науки. В последние 50 лет алгоритм претерпел ряд улучшений, что сделало его быстрее (правда, некоторые из этих улучшений устрашают своей сложностью).

Поскольку задача была четко поставлена, обнаружилось множество различных применений. Алгоритм напрямую связан с Интернетом, где важно транспортировать максимум данных из одной точки в другую. Задача также возникает во множестве бизнес-процессов, и является важной частью исследования операций. Например, если есть N сотрудников и N задач, которые должны быть сделаны, но не каждый сотрудник может справиться с каждой задачей, то поиск максимального потока выдаст решение, как назначить N сотрудников на задачи таким образом, чтобы каждая задача была выполнена при условии что это возможно. Задача Graduation из TopCoder SRM 200является хорошим примером задачи на поиск максимального потока.

Сравнение последовательностей

Многим кодерам за всю свою карьеру ни разу не приходилось реализовывать алгоритм, использующий динамическое программирование. Тем не менее, динамическое программирование применяется в ряде важных алгоритмов. Один из алгоритмов это нахождение различий между двумя последовательностями, который большинство программистов наверняка использовали, хотя возможно и не разбирались в нем. Этот алгоритм вычисляет минимальное количество вставок, удалений, редактирований необходимых для преобразования последовательность A в последовательность B.

Например, рассмотрим последовательности "AABAA" и "AAAB". Для преобразования первой последовательности во вторую самое простое, что нужно сделать это удалить B в середине и изменить последнюю A на B. Этот алгоритм имеет множество применений, включая некоторые задачи связанные с ДНК и обнаружением плагиата. Однако многие программисты используют его в основном для сравнения версий одного и того же файла с исходным кодом. Если элементы последовательности это строки в файле, тот этот алгоритм позволяет узнать какие строки надо удалить, вставить, изменить чтобы преобразовать одну версию файла в другую.

Без динамического программирования приходится перебирать экспоненциальное число преобразований, чтобы перейти от одной последовательности к другой. Однако динамическое программирование сокращает время выполнения алгоритма до O(N*M), где N и M количество элементов в двух последовательностях.

Заключение

Сколько существует различных задач, столько существует и различных алгоритмов для их решения. Тем не менее есть большая вероятность того что задача которую вы пытаетесь решить в некотором смысле похожа на другую задачу. Развивая глубокое понимание широкого диапазона алгоритмов, вы сможете выбрать верный алгоритм и применить его для решения задачи. Кроме того решение задач в соревнованиях на TopCoder поможет вам отточить свои навыки в этой области. Многие из этих задач кажутся искусственными и не реалистичными, но они требуют такого, же набора алгоритмических знаний который требуется каждый день в реальном мире.