У вас вопросы?
У нас ответы:) SamZan.net

Введение в основы программирования Алгоритмизация Часть 1- Основы алгоритмизации

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 8.4.2025

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

Информатика

серия «Введение в основы программирования»

Алгоритмизация

Часть 1: Основы алгоритмизации

с.Андрейково

2010


 

Серия «Введение в основы программирования»

Информатика

Алгоритмизация

Часть 1: Основы алгоритмизации

Методическое пособие
для профильных и непрофильных классов общеобразовательной и очно-заочной школы


ВККИ 000.002.001

Мандриков В.Г.

М–0 Алгоритмизация. Основы алгоритмизации. Блок-схемы. Методическое пособие. – Андрейково: кабинет Информатики, 2010.

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

© МОУ Андрейковская с.ш., 2010

© Мандриков В.Г., 2010


Пояснительная записка

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


Содержание

[1]
Содержание

[2]
Введение

[3]
Алгоритмы

[3.1] Способы записи алгоритма

[4]
Блок-схема

[4.1] Основные блоки

[4.2] Алгоритмические структуры

[5]
Примеры алгоритмических структур

[5.1] Линейные алгоритмы

[5.2] Алгоритмы ветвления

[5.3] Алгоритмы циклов

[6]
Задания для самостоятельного решения

[7]
Литература


Введение

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

  1.  
    Алгоритмы

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

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

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

Более четко действия пешехода можно записать так:

  1.  Посмотреть налево, убедиться в отсутствии опасности.
  2.  Дойти до середины дороги.
  3.  Посмотреть направо, убедиться в отсутствии опасности.
  4.  Пересечь оставшуюся часть дороги.

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

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

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

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

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

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

Для каждого алгоритма необходимо соблюдать ряд требований.

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

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

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

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

Всегда ли можно получить результат, применяя алгоритм к некоторому набору из множества допустимых исходных данных? Оказывается, что не всегда. Рассмотрим алгоритм деления двух чисел и с качестве делимого возьмем число 11, а в качестве делителя – число 9. Оба числа допустимы для алгоритма деления двух чисел. Но совершенно очевидно, что процесс деления никогда не закончится, так как результатом будет являться бесконечная десятичная дробь 1,22222… Об алгоритмах подобного рода говорят, что они потенциально осуществимы, но состоят из бесконечного числа шагов. В связи с этим надо говорить о конечности алгоритма. Т.е. решение задачи должно быть получено через конечное число шагов алгоритма и за конечное время.

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

Способы записи алгоритма

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

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

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

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

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

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

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

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

Описательный или словесный – способ записи алгоритма на естественном языке или с использованием специального псевдоязыка.

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

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

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

Описание алгоритма на языке программирования. Текст, представляющий запись алгоритма на языке программирования, называют программой.

  1.  
    Блок-схема

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

Блок-схема – последовательность блоков, соединенных линиями передачи (ветвями).

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

Основные блоки

  1.  блок начала и конца исполнения алгоритма;
  2.  блок действия или процесса;
  3.  блок проверки условия, иногда называемый блоком решения;
  4.  блок ввода-вывода данных;
  5.  блок типового процесса (подпрограммы);
  6.  блок узла;
  7.  блок ссылки на другую страницу (блок разрыва).

Рисунок .

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

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

Блок-схема начинается с блока начало, поэтому у нее нет входа, а есть только выход  на следующий блок:

Рисунок

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

Рисунок

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

Рисунок

Блок условия изображается в виде ромба, а внутри пишется сравнение (равенство или неравенство). Так как любое сравнение может быть истинным или ложным, то блок имеет один вход, но два выхода. Часто из-за этого данный блок называют ветвлением:

Рисунок

Блок конца алгоритма закрывает алгоритм, поэтому имеет только один вход и ни одного выхода:

Рисунок

Блок узел является вспомогательным и применяется для связывания ветвей алгоритма в одну ветвь. Узел может иметь один выход и два или три входа:

Рисунок

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

Алгоритмические структуры

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

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

Рисунок

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

Ниже представлена полная структура ветвления:

Рисунок

Существует также сокращенная (неполная) форма алгоритма выбора:

Рисунок

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

Выделяют три вида циклов: цикл с предусловием, цикл с постусловием и цикл-счетчик.

Блок-схема цикла с предусловием:

Рисунок

Структура цикла с постусловием:

Рисунок

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

Рисунок

Счетчик можно изобразить так:

Рисунок

Реальные алгоритмы обычно являются сочетанием всех основных алгоритмических структур.

  1.  
    Примеры алгоритмических структур

Линейные алгоритмы

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

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

Задача 2: Записать алгоритм сложения двух чисел в виде блок-схемы.

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

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

Задача 4: Записать алгоритм решения квадратного уравнения ax2+bx+c=0 в виде блок-схемы.

Алгоритмы циклов

Задача 5: Записать алгоритм создания нескольких бутербродов.

Задача 6: Записать алгоритм построения таблицы умножения целого числа на числа от 1 до 9.


Задания для самостоятельного решения

Создайте блок-схемы для алгоритмов решения следующих задач:

  1.  Вычисление произведения двух чисел.
  2.  Деление двух целых чисел столбиком (нахождение частного и остатка).
  3.  Переход улицы через пешеходный переход, оборудованный светофором.
  4.  Приготовление десяти одинаковых бутербродов с сыром.
  5.  Нахождение максимального числа из двух указанных.
  6.  Выберите несколько задач (3-5) из учебника математики (алгебры или геометрии, можно из учебника физики или химии) и составьте алгоритм их решений в виде блок-схемы. Постарайтесь выбрать задачи, отличающиеся ходом решения.


Литература

  1.  Григас Г.К. Начала программирования: Книга для учащихся. – М.: Просвещение, 1987.
  2.  Ефимова О.В., Морозов В.В., Угринович Н.Д. Курс компьютерной технологии с основами информатики: Уч. пособие для старших классов. – М.: ООО «Издательство АСТ»; ABF, 2004.
  3.  Крюкова Н.Л. Основы алгоритмизации и языки программирования. Язык Паскаль: Учебно-практическое пособие для учащихся средних школ. – Пенза, 2002.
  4.  Рапаков Г.Г., Ржеуцкая С.Ю. Программ-мирование на языке Pascal. – СПб.:  БХВ-Петербург, 2004.
  5.  Решетников В.Н., Сотников А.Н. Информатика – что это? – М.: Радио и связь, 1989.
  6.  Семакин И.Г. Информатика и информационно-коммуникационные технологии. Базовый курс: Учебник для 9 класса. – М.: БИНОМ. Лаборатория знаний, 2005.
  7.  в качестве пособия по алгоритмическому языку, алгоритмизации и использованию алгоритмов подойдет любая книга по программированию или информатике.


Алгоритм

Исполнитель

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

Алгоритм

Исполнитель

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

Задача

действия

а

б

в

г

д

ж

е

Начало

Конец

Действие 1

Действие 2

Действие n

словие

Действие 1

Действие n

Действие 1

Действие m

Да

Нет

условие

Действие 1

Действие n

Да

Нет

Условие

Действие 1

Действие n

Да

Нет

Условие

Действие 1

Действие n

Да

Нет

i:=перв. значение; посл. значение; шаг

Действие 1

Действие n

i<=посл. значение

Действие 1

Действие n

i:=первое значение

i:=i+шаг

Начало

Режем хлеб

Мажем масло

Режем сыр;

Кладем его на бутерброд

Конец

Ввод:

число 1;

число 2

Складываем числа:

Сумма:=число1+число2

Вывод:
сумма

Режем хлеб

Хотим с маслом?

Мажем масло

Мажем варенье

Вывод:

бутерброд готов

Вычисление дискриминанта D

Ввод:

a, b, c

D>0

Вывод:

«Корней нет»

Вычисление корней

Вывод:

корни х1, х2

Режем хлеб

Мажем масло

Режем сыр;

кладем его на бутерброд

Достаточно бутербродов?

Нет

Да

Ввод целого числа L

N>9

Result:=L*N

N:=N+1

N:=1

Вывод: Result

Да

Нет

  1.  



1. 12 УЧЕБНЫЕ ЦЕЛИ - изучить назначение устройство и действие противооткатных устройств изучить
2. В связи с этим возникает необходимость в установлении надежности обследуемых конструкций по внешним призна
3. Дробницкий Олег Григорьевич
4. Президент РФ
5. Тема- Пашня и Степь ~ формы и результаты взаимодействия двух миров Подготовил- Аипов Н
6. . Особливості міжбюджетних відносини Важливість державного бюджету для соціального розвитку регіонів п
7. Уваровщинская средняя общеобразовательная школа Кирсановского района Тамбовской области
8. либо другой В этой книге нет ни слова правды и всё же ~ ни слова лжи
9. Учебное пособие- Микроэлементозы- классификация и основные характеристики
10. изм 3 мм 4 мм 5 мм 6 мм 8 мм 10 мм 12