Алгоритм в информатике что это такое


Информатика 430 - Алгоритм

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

Следует отметить, что большинство редакторов (например, Microsoft Office Word, Excel) имеют встроенные средства программирования, освоив которые можно значительно расширить свои возможности.

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.

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

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

1. Достать ключ из кармана.

2. Вставить ключ в замочную скважину.

3. Повернуть ключ два раза против часовой стрелки.

4. Вынуть ключ.

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

Свойства алгоритмов:

1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);

2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);

3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);

4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными);

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

Виды алгоритмов:

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

2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);

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

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

Алгоритм в информатике и основы алгоритмизации :

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

Что такое алгоритм в информатике? Это основополагающее ее понятие. Название пошло от написания по-латыни имени знаменитого арабского математика аль-Хорезми. В одной из своих книг он дал формулировку правил написания чисел арабскими цифрами и операций над цифрами, выполняемыми столбиком. Впоследствии этим термином стало считаться точное задание последовательности действий, дающее требуемый результат на основании обработки исходных данных.

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

Уточним понимание определения «алгоритм в информатике». Это не так легко. С этой целью сформулированы общие свойства алгоритма. Информатика позволяет на их основе отличать алгоритмы от иных инструкций.

Этот набор инструкций обладает свойствами:

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

Рассмотрим их по-отдельности.

Дискретность

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

Определенность

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

Результативность (конечность)

Задача должна решаться за некоторое ограниченное число этапов.

Массовость

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

Таковы все свойства алгоритма. Информатика учит применению этих свойств на практике.

Недостатки определения

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

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

Бытовые примеры

Когда проходится тема по информатике “алгоритмы”, поясняя смысл этого понятия, нередко в качестве примеров используют бытовые алгоритмы:

  • кипячение воды;
  • открытие дверей квартиры;
  • переход улицы.

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

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

Разновидности

Виды алгоритмов отличаются от вида деятельности, целей и путей их решения.

Они бывают:

• Механическими. Такие наборы команд заранее определены (например, работа двигателя). Они выполняются в единственной последовательности.

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

• Линейными. Команды в этом случае выполняются по очереди друг за другом.

• Разветвляющимися. С условиями, по итогам проверки которых выполняется одна из нескольких вероятных веток.

• Циклическими. Использующими многократное повторение нескольких операций. Обычно такие наборы команд применяются при переборе вариантов.

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

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

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

Требования к алгоритму

Сформулированы в виде правил.

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

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

Третье – дискретность. Он составлен из команд, число которых конечно.

Четвертое – детерминированность. На каждом этапе известно, какой шаг будет идти следом.

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

Введение в информатику. Алгоритмы

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

Перед началом нового учебного года получил мой племянник в школе учебники. Увидев их, я решил посмотреть, чему же учат наших детей в школе. В частности меня заинтересовал учебник: «Информатика и ИКТ. Базовый курс. Учебник для 8-го класса. 3-е издание, исправленное. 2005 года выпуска. Автор – Н.Угринович». Я был поражён, насколько плохо преподносится материал нашим детям. Складывается впечатление, что у автора этой книги в голове «Каша», и ею он кормит наших детей. В этом случае, таких учителей, как Угринович нельзя вообще допускать к изданию книг. Либо он сам переучился — слишком умный, рассуждает высокими категориями, что не способен доходчивым языком излагать материал, либо он написал более толстый учебник, который потом в целях уменьшения объёма редактировали другие бездарные специалисты, удалив из него важную информацию.

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

Глупее всего пишется о компьютерных вирусах. Компьютеры друг от друга заражаются вирусами, которые подменяют в байтах биты. Вирусы – это ужасные разрушители. Но о том, что компьютерные вирусы представляют собой компьютерные программы, которые для здоровья человека безопасны, даже не написано. Если б я был ребёнком и не знал о компьютерных вирусах ранее, то по этому учебнику я бы понял, что компьютерные вирусы это заболевания типа ОРВИ, гриппа, Эбола и т.д., которые можно подхватить от компьютера и человеку.

А теперь самое интересное: Что такое бит?

«За единицу количества информации принимается такое количество информации, которое содержится в информационном сообщении, уменьшающем неопределённость знания в 2 раза. Такая единица названа битом»

Грандиозное определение!!! Вслед за этим определением в учебнике Угриновича не следует никакого доходчивого объяснения. Если бы я до этого не знал информационную сущность бита, то я бы не понял о чём определение. Но у меня два высших образования, поэтому я понял, о чём идёт речь, а ученики 8-го класса не поймут.

Когда я учился в школе, нам давали понятие что такое Алгоритм, а в этом «Горе-учебнике» этого нет вовсе. Откуда ребёнку понять, как работает компьютер? Или может быть, кто то решил, что детям этого знать не надо? Но ведь до понятия «бит», необходимо дать понятие Алгоритма! Это сформирует более правильное понимание всей науки – Информатики. Но зато в этом учебнике от элементарных понятий происходит «резкий скачок» на офисные программы.

Я был расстроен этим учебником и встревожен за приобретаемые знания своего племянника и своих детей. Потом в школе сказали, что поскольку учебник действительно очень «тяжёлый», то Информатика будет преподаваться «в лёгкой» форме, с малым спросом знаний. Получается, что дети Информатику знать не будут, потому что Угринович – плохой учитель, навязал свой учебник детям, получил за своё чудо-издание гонорар, а до детей ему дела нет! Ведь эта книга не годится даже в качестве «Ознакомительного курса».

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

Алгоритмы

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

Электронно-вычислительные машины (ЭВМ) рассуждают алгоритмами. Что такое алгоритм? Алгоритм – это последовательность действий любого электронно-вычислительного устройства, в зависимости от обстановки. Если обстановка одна, тогда решение пойдёт по одному пути, а если другая, то и решение пойдёт по другому пути. Многие путают понятия алгоритма и последовательности действий при неизменной обстановке (исходных данных). Это неправильно. Последовательность действий при неизменной обстановки «двигается» по одному пути, а алгоритм «меняет своё направление» в зависимости от изменения обстановки. Для того, чтобы электронная машина не «глючила, зависала и т.д.», в алгоритме должны быть предусмотрены все варианты обстановки (исходных данных), в зависимости от которых ЭВМ выбирает направление действий (решений).

Решая простой алгоритм, электронная машина может ответить только двумя вариантами «много», или «мало». Либо ответить «да», или «нет». Для того, чтобы вариантов ответов было больше, необходимо написать для машины более сложный алгоритм, состоящий из тех же простых блоков «да – нет» и задать ему значения, которые по нашему мнению маленькие, средние, большие и т.д. Тогда машина будет сравнивать числовое значение чего-либо с заранее установленными (запрограммированными) значениями, и делать соответствующие выводы, либо действия.

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

Поскольку в нашем «демократически-рыночном» государстве всё «упирается» в деньги, то и примеры буду приводить с деньгами. Если простому рабочему, или крестьянке дать в руки десять миллионов рублей и сказать «Держи, это твоё!». Первое состояние будет шоковым, сопровождаемое ступором и волнением. Они не способны мыслить в таких огромных финансовых категориях, в их мозгу такое количество денег «не заложено». Происходит, как говорят компьютерщики «перезагрузка». На этапе перезагрузки, человек делает коррекцию своего старого алгоритма в сторону увеличения размерностей «денежных знаков», чтобы злосчастные десять миллионов «уложились в его мозгу». И лишь потом начинает думать трезво. Замечу, что длительность ступора зависит от образованности человека. Быстрее ступор проходит у человека обладающего очень хорошим образованием и коммуникабельностью, потому что мозг работает лучше. Ещё быстрее ступор проходит у спившегося алкоголика, у него минимальное количество извилин в мозгу – думать нечем, потому он не способен до конца осознать происходящее. Он просто не понимает значимости этого события. Если же, эти деньги дать банкиру, он только лишь удивится халяве, потому что он регулярно имеет дело с такими суммами и будет думать, что он кому-то, что-то должен.

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

Электронные машины рассуждают в двух понятиях – либо «да», либо «нет». Как будет вести себя «электронный интеллект» если его запрограммировать как «представителя со средним достатком», которому предложили 100 тысяч рублей? Его алгоритм оценки будет происходить по определённому алгоритму, ранее для него созданному его программистом. В соответствии с таблицей, его «норма» это — 10 тысяч рублей, поэтому он с этой суммы и начнёт оценивать количество денег.

Алгоритм оценки количества денег «электронного интеллекта со средним достатком» будет выглядеть следующим образом:

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

На самом деле, алгоритм электронного интеллекта, как правило, выглядит несколько иначе – оценка денежной суммы может начаться как «снизу вверх» — со 100 рублей, так и «сверху вниз» — со 100 миллионов рублей. Но не с середины! Это наиболее удобный (простой) алгоритм для его создания, кодирования и «закладки» в ЭВМ программистом. Команды однотипные, поэтому легко используемые в программе и легко проверяемые при сбоях программы. В случае сбоя ЭВМ их намного проще проверить.

Алгоритм, заложенный в голове человека с детства, отличается от машинного именно тем, что он начинает сравнивать не «с начала, или конца», а с середины — уже с определённой суммы, с которой человек в последнее время чаще имел дело. Это уменьшает количество блоков алгоритма, а следовательно уменьшается и время, затрачиваемое на процесс сравнения (раздумья). Поэтому и бытует мнение, что мозг человека в скорости сравнения превосходит ЭВМ. Медлительность у человека проявляется лишь в скорости восприятия органами зрения, слуха и в скорости ответа, определяемой временем необходимого для нажатия соответствующей кнопки, взмаха рукой, или произношения ответа вслух. Эти факторы обусловлены физическими свойствами организма, темпераментом человека и натренированностью отдельных навыков. Команды и сигналы, как у ЭВМ, так и внутри человека двигаются со скоростью света в виде электрических сигналов. Если учитывать, что человек – существо многофункциональное, то рассуждать, «Кто круче машина, или человек?» вопрос не корректный.

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

Любая электронная машина в ходе выполнения алгоритмов отвечает только как «нет» и «да» (есть). Физически, в «железе» ЭВМ это выражается двумя логическими состояниями: «ноль» и «единица». Ноль воспринимается как «нет», или отсутствие информации, а единица воспринимается как «да», или наличие информации.

Алгоритмы. Свойства и способы описания алгоритма. Компьютер как исполнитель команд. Программный принцип работы компьютера

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

Алгоритм — это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций.

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

  • 1. Достать ключ.
  • 2. Вставить ключ в замочную скважину.
  • 3. Повернуть ключ 2 раза против часовой стрелки.
  • 4. Вынуть ключ.

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

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

Свойства алгоритма

  • 1. Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов).
  • 2. Определенность — каждый шаг алгоритма должен быть четким и однозначным. Выполнение алгоритма носит механический характер и не требует никаких дополнительных сведений о решаемой задаче.
  • 3. Результативность — алгоритм должен приводить к решению задачи за конечное число шагов.
  • 4. Массовость — алгоритм решения разрабатывается в общем, виде, т.е. он должен быть применим для решения некоторого класса задач, различающихся лишь исходными данными.

Способы описания алгоритмов

  • - словесный;
  • - графический;
  • - табличный;
  • - формульный.

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

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

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

Рис. 17. Блок-схема линейного алгоритма

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

Всего существует три типа алгоритмов, используемых для создания программ:

  • - линейный;
  • - разветвляющийся;
  • - циклический.

Рассмотрим каждый из них.

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

На рис. 17 операторы имеют обозначение — Рь Р2, Р„.

Рис. 18. Блок-схема разветвляющегося алгоритма

Алгоритм называется разветвляющимся, если последовательность выполнения шагов алгоритма изменяется в зависимости от выполнения некоторых условий. Условие — это логическое выражение, которое может принимать одно из двух значений:

«ДА» — если условие верно (истинно), и «НЕТ» — если условие неверно (ложно).

На рис. 18 операторы имеют обозначение — Рь Р2.

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

На рис. 19 операторы имеют обозначение — Рь Рп

Ni, N2— границы, в которых изменяется параметр цикла.

Рис. 19. Блок-схема циклического алгоритма

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

Согласно принципам Джона фон Неймана, программа во время ее исполнения и данные, которые она обрабатывает, находятся в оперативной памяти (принцип хранимой в памяти программы). Процессор исполняет программу в соответствии с алгоритмом и выполняет все команды от начала до конца.

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

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

Например, в данном фрагменте программы:

Mov АХ,4

Mov DX,9

Add AX,DX

значение 4 загружается в регистр АХ, значение 9 — в DX, затем два значения складываются, а результат сохраняется в регистре АХ.

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

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

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

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

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

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

Контрольные вопросы и задания

  • 1. Дайте определение понятию «алгоритм». Приведите примеры алгоритмов, с которыми вы сталкивались в жизни.
  • 2. Какие свойства алгоритма вы знаете? Поясните каждое.
  • 3. Назовите способы описания алгоритмов.
  • 4. Начертите основные функциональные блоки, применяемые при создании блок-схем.
  • 5. Начертите блок-схемы линейного, разветвляющегося и циклического алгоритмов. Поясните принцип их работы.
  • 6. Что представляет собой программа? Что называется оператором?
  • 7. Поясните разницу между компилятором и интерпретатором.
  • 8. Объясните, почему компьютер является формальным исполнителем команд.

Что такое алгоритм — урок. Информатика, 6 класс.

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

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

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

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

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

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

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

  1. Взять у мамы деньги;
  2. Пойти в магазин;
  3. Выбрать нужные хлебобулочные изделия;
  4. Оплатить стоимость покупки;
  5. Принести хлеб домой.

Аналогично, в виде последовательности действий можно описать процессы решения многих задач, с которыми ты имеешь дело в школе:

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

Такая последовательность шагов в решении задачи называется алгоритмом.

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

  1. Разложить исходные числа на простые множители;
  2. Найти произведения получившихся множителей;
  3. Выписать множители, входящие в разложение одного из чисел;
  4. Дописать к ним недостающие множители из разложений остальных чисел.

Эту последовательность действий также можно исполнить, но к достижению поставленной цели (нахождению НОК) она не приведёт!

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

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

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

Разрабатывать алгоритмы может только человек.

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

Источники:

Босова Л. Л., Босова А. Ю., Информатика: учебник для 6 класса. М. : БИНОМ. Лаборатория знаний, 101 с.

Page 2
Page 3
Page 4
Page 5

Алгоритмизация - это процесс построения алгоритма решения задачи. Алгоритм и алгоритмизация в информатике

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

Классический подход

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

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

Возможные определения

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

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

Процессы и этапы

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

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

  • Какие системы информационной обработки будут эффективными в конкретном случае?
  • Каковы математические методики функционирования применительны к крупным системам?

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

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

Как это работает?

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

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

Кому и как?

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

  • анализ исходных данных;
  • выявление самых значимых аспектов;
  • формализацию ключевых моментов;
  • представление данных символами;
  • формирование цельной последовательности операций.

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

Зачем это нужно?

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

Алгоритмизация позволяет эффективно переформулировать исходный (зачастую довольно хаотичный) объем информации в алгоритмический вид, четкий, упорядоченный и структурированный. При этом выделяют все объекты, которые участвуют в операциях, идентифицируют их, определяют исполнителей и задают алгоритм последовательных действий. Важное условие – обязательная однозначность толкования любого этапа. После А всегда следует В, а не «может, В, а может, С, вы уж решите сами, как лучше». Это правило – основа алгоритмизации.

Информация и алгоритмы

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

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

  • линейные;
  • циклические;
  • ветвления;
  • смешанные.

А если поподробнее?

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

Линейная предполагает наличие четкой последовательности по шагам: есть первая операция, вторая и так далее. Отклонения от схемы не допускаются, вариантов корректировки не предусмотрено.

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

Продолжая тему

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

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

Инструкции и алгоритмы

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

Исполнительные инструкции обычно составляются применительно к разнообразным объектам – клапанам, агрегатам, вытяжкам, двигателям. В инструкции описываются физические операции – взять, поднять, закрыть. Когда речь идет о вычислительной машине, объекты в алгоритме будут математические, действия, соответственно, такие же. Алгоритм может быть посвящен формулам, таблицам, в которые скомпонованы значения, а действия бывают самыми разными – от простейших вычислений до довольно сложных для человека матричных табличных операций. Инструкция обычно содержит условие, соответствующее правилам логики. Если удалось достигнуть необходимого показателя – можно продолжать движение по алгоритму или завершить его, в противном случае придется пройти еще один цикл. Также алгоритмы в норме имеют «запасной выход» на случай внештатной ситуации. Применительно к человеческой повседневности можно найти аналог в виде «Сообщить руководству о неполадке».

Алгоритмизация: подход расширенный и специализированный

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

Объект алгоритмизации

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

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

Алгоритмизация применительно к реальности

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

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

А что с обучением?

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

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


Смотрите также