6 класс

Тема: Ал­го­ритм и ис­пол­ни­те­ли

Урок: Что такое ал­го­ритм

­ ­­ ­­ ­­ ­­­ ­­­ ­ ­­­ ­­­ ­­­

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

С ал­го­рит­ма­ми мы стал­ки­ва­ем­ся прак­ти­че­ски каж­дый день. Ино­гда даже сами того не осо­зна­вая. На­при­мер, когда про­сим ко­го-то ку­пить про­дук­ты в ма­га­зине. Мы объ­яс­ня­ем, какие нужны про­дук­ты, сколь­ко их, какие тре­бо­ва­ния к ним мы предъ­яв­ля­ем. К при­ме­ру: ку­пить две бу­хан­ки чёр­но­го хлеба, при­чём све­же­го.

Мы ука­зы­ва­ем чёт­кий ал­го­ритм: необ­хо­ди­мо зайти в ма­га­зин, узнать, есть ли чёр­ный хлеб. Затем узнать, све­жий ли этот хлеб. А уже после этого (в слу­чае двух по­ло­жи­тель­ных от­ве­тов) ку­пить две бу­хан­ки.

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

Се­год­ня мы более по­дроб­но по­го­во­рим об ал­го­рит­мах.

Каж­дый че­ло­век в по­все­днев­ной жизни, во время учебы или на ра­бо­те ре­ша­ет огром­ное ко­ли­че­ство задач самой раз­ной слож­но­сти. Неко­то­рые из этих задач столь про­сты и при­выч­ны, что мы ре­ша­ем их не за­ду­мы­ва­ясь, ав­то­ма­ти­че­ски, и даже не счи­та­ем за­да­ча­ми. К ним можно от­не­сти такие за­да­чи, как «Ку­пить хлеб», «Со­брать­ся в школу», «За­крыть дверь на ключ» и пр. Дру­гие же за­да­чи, на­про­тив, так труд­ны, что тре­бу­ют дли­тель­ных раз­мыш­ле­ний и уси­лий для по­ис­ка ре­ше­ния и до­сти­же­ния по­став­лен­ной цели. На­при­мер, ре­ше­ния задач «На­пи­сать кон­троль­ную ра­бо­ту на 5» или «Сво­бод­но раз­го­ва­ри­вать на ино­стран­ном языке» тре­бу­ют вы­пол­не­ния го­раз­до боль­ше­го ко­ли­че­ства слож­ных дей­ствий, чем ре­ше­ние за­да­чи «Ку­пить мо­ро­же­ное». Но ре­ше­ние даже самой про­стой за­да­чи обыч­но осу­ществ­ля­ет­ся за несколь­ко по­сле­до­ва­тель­ных шагов.

На­при­мер, про­цесс по­куп­ки хлеба можно пред­ста­вить так:

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

Ана­ло­гич­но, в виде по­сле­до­ва­тель­но­сти дей­ствий можно опи­сать про­цес­сы ре­ше­ния мно­гих задач, с ко­то­ры­ми вы име­е­те дело в школе: «Вы­чис­лить пе­ри­метр мно­го­уголь­ни­ка», «Найти наи­боль­ший общий де­ли­тель двух на­ту­раль­ных чисел», «Опре­де­лить часть речи», «Про­ве­сти фо­не­ти­че­ский раз­бор слова». Такая по­сле­до­ва­тель­ность шагов в ре­ше­нии за­да­чи на­зы­ва­ет­ся ал­го­рит­мом. Одним из самых из­вест­ных ал­го­рит­мов, ко­то­рый по­лу­чил своё соб­ствен­ное на­зва­ние, – ал­го­ритм Эв­кли­да (ал­го­ритм для на­хож­де­ния наи­боль­ше­го де­ли­те­ля двух целых чисел).

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

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

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

Впо­след­ствии, когда мы по­зна­ко­мим­ся с язы­ка­ми про­грам­ми­ро­ва­ния, то узна­ем, что ал­го­ритм с ошиб­кой в неко­то­ром смыс­ле «лучше», чем ал­го­ритм, ко­то­рый ра­бо­та­ет, но непра­виль­но. Ведь, если ошиб­ка есть, и ком­пью­тер нам об этом со­об­щит, то мы смо­жем её найти и ис­пра­вить. А если ошиб­ка, как в при­ве­ден­ном нами при­ме­ре, про­яв­ля­ет­ся толь­ко в ред­ких слу­ча­ях? В этом слу­чае мы можем за­пус­кать про­грам­му сотни раз, и она по­ка­жет пра­виль­ный ре­зуль­тат, а в самый от­вет­ствен­ный 101-ый раз неожи­дан­но не сра­бо­та­ет.

Легко ли со­ста­вить ал­го­ритм?

Пре­об­ра­зо­ва­ние ин­фор­ма­ции ка­жет­ся нам делом очень про­стым. Од­на­ко, на самом деле это да­ле­ко не так.

Осо­бен­но это ка­са­ет­ся со­став­ле­ния ал­го­рит­ма для пра­виль­но­го пре­об­ра­зо­ва­ния ин­фор­ма­ции.

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

Мно­гие ска­жут, что со­ста­вить ин­струк­цию для го­то­во­го при­бо­ра очень легко. Од­на­ко будут непра­вы. По­че­му? Всё очень про­сто: боль­шин­ству людей го­раз­до проще сде­лать что-то самим, чем объ­яс­нить осталь­ным, как это де­ла­ет­ся.

Дей­стви­тель­но, се­год­ня прак­ти­че­ски любой школь­ник легко умеет поль­зо­вать­ся мо­биль­ным те­ле­фо­ном: вста­вить или по­ме­нять сим-кар­ту, по­пол­нить счёт, по­зво­нить, от­пра­вить смс. И это ка­жет­ся про­стым и ин­ту­и­тив­но по­нят­ным. Од­на­ко по­про­буй­те объ­яс­нить, как поль­зо­вать­ся мо­биль­ным те­ле­фо­ном, че­ло­ве­ку, ко­то­рый ни­ко­гда им не поль­зо­вал­ся. Это вы­зо­вет массу во­про­сов, о ко­то­рых вы даже не по­до­зре­ва­е­те.