Skip to content

Instantly share code, notes, and snippets.

  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save anonymous/0a3f45867fcbec8fe8128dc24f98ca02 to your computer and use it in GitHub Desktop.
Разработка алгоритмов ветвление

Разработка алгоритмов ветвление - Разработка урока по информатике "Алгоритмы ветвления" (6 класс)



Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно поэтому важно в нем разобраться. В своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе. Человек ежедневно встречается с необходимостью следовать тем или иным правилам, выполнять различные инструкции и указания. Например, переходя через дорогу на перекрестке без светофора надо сначала посмотреть направо. Если машин нет, то перейти полдороги, а если машины есть, ждать, пока они пройдут, затем перейти полдороги. После этого посмотреть налево и, если машин нет, то перейти дорогу до конца, а если машины есть, ждать, пока они пройдут, а затем перейти дорогу до конца. В математике для решения типовых задач мы используем определенные правила, описывающие последовательности действий. Например, правила сложения дробных чисел, решения квадратных уравнений и т. Обычно любые инструкции и правила представляют собой последовательность действий, которые необходимо выполнить в определенном порядке. Для решения задачи надо знать, что дано, что следует получить и какие действия и в каком порядке следует для этого выполнить. Предписание, определяющее порядок выполнения действий над данными с целью получения искомых результатов, и есть алгоритм. Понятие алгоритма является не только одним из главных понятий математики, но одним из главных понятий современной науки. Более того, с наступлением эры информатики алгоритмы становятся одним из важнейших факторов цивилизации [56]. Стены и закpашенные клетки тоже часть сpеды. А их pасположение и положение самого Pобота задают конкpетное состояние среды. Для каждой команды должны быть заданы условия пpименимости в каких состояниях сpеды может быть выполнена команда и описаны pезультаты выполнения команды. Напpимеp, команда Pобота "ввеpх" может быть выполнена, если выше Pобота нет стены. После вызова команды исполнитель совеpшает соответствующее элементаpное действие. Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды. Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем". В информатике универсальным исполнителем алгоритмов является компьютер. Основные свойства алгоритмов следующие: Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче. Pезультативность или конечность состоит в том, что за конечное число шагов алгоpитм либо должен пpиводить к pешению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, то есть он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма. На практике наиболее распространены следующие формы представления алгоритмов: Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Записать алгоритм нахождения наибольшего общего делителя НОД двух натуральных чисел алгоритм Эвклида. Алгоритм может быть следующим: Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел и Словесный способ не имеет широкого распространения, так как такие описания: Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т. Блочные символы соединяются линиями переходов , определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно. Блок "решение" используется для обозначения переходов управления по условию. В каждом блоке "решение" должны быть указаны вопрос, условие или сравнение, которые он определяет. Блок "модификация" используется для организации циклических конструкций. Слово модификация означает видоизменение, преобразование. Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения. Блок "предопределенный процесс" используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам. Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд , присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам , что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова , смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных базовых конструкций. Примером псевдокода является школьный алгоритмический язык в русской нотации школьный АЯ , описанный в учебнике А. Этот язык в дальнейшем мы будем называть просто "алгоритмический язык". В предложении алг после названия алгоритма в круглых скобках указываются характеристики арг, рез и тип значения цел, вещ, сим, лит или лог всех входных аргументы и выходных результаты переменных. При описании массивов таблиц используется служебное слово таб , дополненное граничными парами по каждому индексу элементов массива. В них рекомендуется записывать утверждения, описывающие состояние среды исполнителя алгоритма, например: Комментарии можно помещать в конце любой строки. Они не обрабатываются транслятором, но существенно облегчают понимание алгоритма. Команды школьного АЯ Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Команды ввода и вывода. Применяют для организации ветвлений. Применяют для организации циклов. Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых то есть основных элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов. Для их описания будем использовать язык схем алгоритмов и школьный алгоритмический язык. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: Характерной особенностью базовых структур является наличие в них одного входа и одного выхода. Образуется последовательностью действий, следующих одно за другим: Школьный алгоритмический язык Язык блок-схем действие 1 действие 2. Обеспечивает в зависимости от результата проверки условия да или нет выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу , так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах: Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:. Особенностью итерационного цикла является то, что число повторений операторов тела цикла заранее неизвестно. Выход из итерационного цикла осуществляется в случае выполнения заданного условия. На каждом шаге вычислений происходит последовательное приближение к искомому результату и проверка условия достижения последнего. Особенностью же нашей конкретной задачи является то, что число слагаемых а, следовательно, и число повторений тела цикла заранее неизвестно. Поэтому выполнение цикла должно завершиться в момент достижения требуемой точности. Гораздо лучше организовать вычисления следующим образом: Сравните эти два подхода по числу операций. Итерационные алгоритмы используются при реализации итерационных численных методов. В итерационных алгоритмах необходимо обеспечить обязательное достижение условия выхода из цикла сходимость итерационного процесса. Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов то есть количество вложенных друг в друга циклов может быть различной. При использовании такой структуры для экономии машинного времени необходимо выносить из внутреннего цикла во внешний все операторы, которые не зависят от параметра внутреннего цикла. При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на понятном ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем. Следовательно, язык для записи алгоритмов должен быть формализован. В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения. Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. По этому критерию можно выделить следующие уровни языков программирования: Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека. Языки высокого уровня делятся на: Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур. Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др. При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций. Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать. Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки ассемблеры. Используется для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться текстовыми мнемоническими то есть легко запоминаемыми человеком кодами , по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления например, десятичную или шестнадцатеричную для представления числовых констант, использовать в программе комментарии и др. Программы, написанные на языке ассемблера, требуют значительно меньшего объема памяти и времени выполнения. Знание программистом языка ассемблера и машинного кода дает ему понимание архитектуры машины. Несмотря на то, что большинство специалистов в области программного обеспечения разрабатывают программы на языках высокого уровня, таких, как Object Pascal или C, наиболее мощное и эффективное программное обеспечение полностью или частично написано на языке ассемблера. Языки высокого уровня были разработаны для того, чтобы освободить программиста от учета технических особенностей конкретных компьютеров, их архитектуры. В противоположность этому, язык ассемблера разработан с целью учесть конкретную специфику процессора. Сдедовательно, для того, чтобы написать программу на языке ассемблера для конкретного компьютера, важно знать его архитектуру [57]. В качестве примера приведем программу на языке ассемблера для IBM PC. Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая называется ассемблером и является, по сути, простейшим транслятором. Таким образом, алгоритмические языки в значительной мере являются машинно-независимыми. Они облегчают работу программиста и повышают надежность создаваемых программ. Алгоритмический язык как и любой другой язык образуют три его составляющие: Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке. Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке. Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу конструкцию и определяемые ею свойства программных объектов или процесса обработки данных. Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия Основными понятиями в алгоритмических языках обычно являются следующие. Имеется тpи основных вида данных: Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные. Положение элемента в массиве однозначно определяется его индексами одним, в случае одномерного массива, или несколькими, если массив многомерный. Иногда массивы называют таблицами. Выражения записываются в виде линейных последовательностей символов без подстрочных и надстрочных символов, "многоэтажных" дробей и т. Различают выражения арифметические, логические и строковые. Арифметические выражения служат для определения одного числового значения. Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Cтроковые литерные выражения, значениями которых являются текcты. В строковые выражения могут входить литерные и строковые константы, литерные и строковые переменные, литерные функции, разделенные знаками операции сцепки. В состав опеpатоpов входят: Операторы подpазделяются на исполняемые и неисполняемые. При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т. Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями , которые заранее запрограммированы и встроены в транслятор языка. Арифметические выражения записываются по следующим правилам: Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций. Индексы элементов массивов записываются в квадратных школьный АЯ, Pascal или круглых Basic скобках. Для обозначения переменных используются буквы латинского алфавита. Операции выполняются в порядке старшинства: Операции одного старшинства выполняются слева направо. Однако, в школьном АЯ есть одно исключение из этого правила: Примеры записи логических выражений, истинных при выполнении указанных условий. Запишите по правилам алгоритмического языка выражения: Запишите в обычной математической форме арифметические выражения: Запишите арифметические выражения, значениями которых являются: Вычислите значения логических выражений: Запишите логические выражения, истинные только при выполнении указанных условий: Начертите на плоскости x,y область, в которой и только в которой истинно указанное выражение. Границу, не принадлежащую этой области, изобразите пунктиром. Запишите логическое выражение, которое принимает значение "истина" тогда и только тогда, когда точка с координатами x, y принадлежит заштрихованной области. Какие значения будут иметь эти переменные в результате выполнения последовательности операторов: Задайте с помощью операторов присваивания следующие действия: Задайте с помощью команд если или выбор вычисления по формулам: Постройте графики функций y x , заданных командами если: Определите значение целочисленной переменной S после выполнения операторов: Определите значение переменной S после выполнения операторов: Составьте алгоритмы решения задач линейной структуры условия этих задач заимствованы из учебного пособия В. Лапчика "Основы информатики и вычислительной техники", Составьте алгоритм решения задач развлетвляющейся структуры: Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия. Пропущен знак умножения между 5 и х Аргумент x функции sin x не заключен в скобки Не хватает закрывающей скобки. Число x имеет значение в промежутке [ 1 , 3 ].


Произведение двух событий
План работы по правонарушениям в школе
Алгоритм разветвляющейся структуры. Полная, неполная форма организации ветвления
Опель корса д характеристики
Каким святым молиться при заболеваниях
Как поступить на факультет журналистики в мгу
График зависимости напряженности
Расписание автобуса добрянка березники
Утес карта wot
Причины воспаления шейных лимфоузлову детей
Викинг 2016 история
Разменять квартиру в москве
Разработка урока по информатике по теме "Программирование алгоритмов ветвления"
Картофель брянский деликатес описание сорта фото
Гепатоз печени как лечить
Инструкция пользования по
Спкя причины возникновения у девушек
Поликлиника 18 воронеж расписание врачей
«VBA Разработка алгоритма. Блок-схема. Структуры алгоритмов»
Снт красногорское красное село на карте
Расписание электричек буреполом шахунья
Расписание электричек до рощино от удельной
История становления и развития земельно имущественных отношений
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment