Как оформить алгоритм решения квадратного уравнения с помощью блок схем

Обновлено: 30.06.2024

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

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

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

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

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

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

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

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

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

Рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем (рис. 1).

1

(1) Блок, характеризующий начало/конец алгоритма (для подпрограмм – вызов/возврат);

(2) Блок - процесс, предназначенный для описания отдельных действий;

(3) Блок - предопределенный процесс, предназначенный для обращения к вспомогательным алгоритмам (подпрограммам);

(4) Блок - ввода/вывода с неопределенного носителя;

(5) Блок - ввод с клавиатуры;

(6) Блок - вывод на монитор;

(7) Блок - вывод на печатающее устройство;

(8) Блок – решение (проверка условия или условный блок);

(9) Блок, описывающий блок с параметром;

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

Основные алгоритмические конструкции

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

Линейная алгоритмическая конструкция

Линейной называют алгоритмическую конструкцию, реализованную в виде последовательности действий (шагов), в которой каждое действие (шаг) алгоритма выполняется ровно один раз, причем после каждого i- гo действия (шага) выполняется (i+ 1)-е действие (шаг), если i-e действие – не конец алгоритма.

Опишем алгоритм сложения двух чисел на псевдокоде в виде блок-схемы (рис. 2).

Ввод двух чисел а, b .

Вычисляем сумму S = а + b .

Разветвляющаяся алгоритмическая конструкция

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

1

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

Заданы три числа. Найти значение наименьшего из них Заданные числа обозначим: а, b, с; результирующее наименьшее – min. На рис. 5 представлена блок-схема алгоритма решения данной задачи.

1

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

Рассмотрим три типа циклических алгоритмов: ц uкл с параметром (который называют арифметическим циклом), цикл с предусловием и цикл с постусловием (их называют итерационными) .

Арифметический цикл

В арифметическом цикле число его шагов (повторений) однозначно определяется правилом изменения параметра, которое задается с помощью начального (N) и конечного (К) значений параметра и шагом (h) его изменения. Т.е., на первом шаге цикла значение параметра равно N, на втором – N + h, на третьем – N + 2h и т.д. На последнем шаге цикла значение параметра не больше К, но такое, что дальнейшее его изменение приведет к значению, большему, чем К.

1

Цикл с предусловием

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

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

5

Цикл с постусловием

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

1

Рекурсивный алгоритм

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

Простые типы данных: переменные и константы

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

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

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

Структурированные данные и алгоритмы их обработки

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

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

1

В заданном числовом массиве A(l0) найти наибольший элемент и его индекс, при условии, что такой элемент в массиве существует, и единственный.

Обозначим индекс наибольшего элемента т. Будем считать, что первый элемент массива является наибольшим = 1). Сравним поочередно наибольший с остальными элементами массива. Если оказывается, что текущий элемент массива а i (тот, c которым идет сравнение) больше выбранного нами наибольшего ат, то считаем его наибольшим =i) (рис.10).

1

Рассмотрим двумерный массив (шкаф с множеством ящиков, положение которых определяется двумя координатами – по горизонтали и по вертикали). В математике двумерный массив (таблица чисел) называется матрицей. Каждый ее элемент имеет два индекса а ij , первый индекс i определяет номер строки, в которой находится элемент (координата по горизонтали), а второй j – номер столбца (координата по вертикали). Двумерный массив характеризуется двумя размерностями N и М, определяющими число строк и столбцов соответственно (рис. 11).

1

Ввод элементов двумерного массива осуществляется построчно, в свою очередь, ввод каждой строки производится поэлементно, тем самым определяется циклическая конструкция, реализующая вложение циклов. Внешний цикл определяет номер вводимой строки ( i ), внутренний – номер элемента по столбцу ( j ). На рис. 12 представлен алгоритм ввода матрицы A(MxN) .

1

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

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

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

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

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

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

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

Существуют разные способы записи алгоритмов:

Ø Словесно-формульный,

Ø графический,

Ø операторный (программа на алгоритмическом языке).

а) Словесно-формульный способ. Например, требуется решить квадратное уравнение ax 2 +bx+c=0 в области действительных чисел. Математической моделью этой задачи является известная формула корней квадратного уравнения:


На основании этой формулы запишем алгоритм:

1. Задать значения а, b, c.

2. Вычислить дискриминант d = b 2 – 4ac.

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

Таблица 1.Наиболее часто употребляемые блоки

Обозначение блока Выполняемая функция

Начало или Конец алгоритма
Вычисление

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

1. Блок-схема строится сверху вниз.

2. В любой блок-схеме имеется один элемент, соответствующий началу, и один элемент, соответствующий концу.

3. Должен быть хотя бы один путь из начала блок-схемы к любому элементу.

4. Должен быть хотя бы один путь от каждого элемента блок-схемы в конец блок-схемы.

в) Операторный способ (алгоритмический язык).

Алгоритм – это задание для исполнителя. Исполнитель выполняет алгоритм, т. е. делает то, что написано в алгоритме. Если исполнитель точно выполнит то, что написано в алгоритме, то он получит результат.

Для того чтобы человек и компьютер понимали друг друга, разработаны специальные языки для записей алгоритмов – алгоритмические языки. Самые доступные алгоритмические языки – это Бейсик (Basic), Паскаль (Pascal), Фортран (Fortran).

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

Типы алгоритмов

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

Пример. Составить алгоритм вычисления площади трапеции с основаниями a,b и высотой h. S =(a+b)/2 * h


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

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

Пример блок-схемы решения квадратного уравнения ax 2 +bx+c=0.


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

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


Пример: построение блок-схем алгоритма циклической структуры.

Вычислить сумму N чисел, последовательно вводимых с клавиатур.

На рис.2 для реализации циклического процесса использованы комбинации блоков присваивания и ветвления.


Задания.

Задание 1. Представить словесно-формульный и графический вид алгоритма решения задачи.

Вариант Задание
Вариант 1. Вычислить объем параллелепипеда со сторонами A, B, C и определить, является ли данное геометрическое тело кубом.
Вариант 2. Вычислить площадь треугольника со сторонами А, В, С. Перед вычислением площади проверить условие существования треугольника с заданными сторонами.
Вариант 3. Вычислить квадрат разности двух чисел.
Вариант 4. Вычислить площадь прямоугольника со сторонами A и B и определить, является ли данная фигура квадратом.
Вариант 5. Вычислить площадь треугольника со сторонами A, B, C. Определить, является ли треугольник равнобедренным.

Задание 2. Разработать и нарисовать блок-схему алгоритма вычисления функции.


Задание 3. Ниже приведены блок-схемы некоторых алгоритмов (рис. 3.1 – 3.4). Который из них является блок-схемой линейной структуры?

Который из них является блок-схемой циклической структуры?

Который из них является блок-схемой разветвленной структуры?



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

Методы исследования в анатомии и физиологии: Гиппократ около 460- около 370гг. до н.э. ученый изучал.

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


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

Бесплатно, онлайн, подготовка к ЕГЭ

Предварительный просмотр:

Тип урока: урок развития и закрепления умений и навыков.

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

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

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

Программное обеспечение: операционная система Windows, мультимедийные презентации, среда программирования "Кумир".

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

Вопрос. Можно ли данные поговорки и народные приметы перевести на алгоритмический язык?

Ответ . Да можно.

Вопрос. Какую алгоритмическую структуру мы можем использовать при написании программы?

Ответ. Полную и сокращенную форму алгоритмической структуры ветвление?

Учитель . Сформулируйте тему сегодняшнего урока.

Слайд 5. Тема урока: Решение задач с конструкцией ветвление.

Слайд 6. Задание: решите уравнение

Вопрос. Как быстро вы сможете найти корни уравнения?

Ответ. Придется потрудиться над решением данного уравнения.

Вопрос. Можно ли переложить эту работу на компьютер?

Вопрос. Что для этого нужно сделать?

Ответ. Составить алгоритм решения уравнения на алгоритмическом языке.

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

Вопрос. Что из себя представляют числа a, b, c и как их называют?

Ответ . a, b, c – коэффициенты при х.

Вопрос. С чего начинают решение квадратного уравнения?

Ответ. С нахождения дискриминанта по формуле D=b 2 -4ac

Вопрос. Как мы решаем далее квадратное уравнение?

Ответ . Сравнение D с нулём.

Вопрос. Какие выводы мы из этого делаем?

Ответ . Если D 0, то два корня.

Вопрос. Как найти корни квадратного уравнения?

Составление блок-схемы алгоритма (слайд 9)

Задание. По заданному решению попробуем составить блок-схему алгоритма в тетради.

Задание выполняется вместе с доской (слайд 9)

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

Практическое задание (слайд 10):

Решить на компьютере квадратные уравнения, результат записать в конспект:

  1. 2х 2 + 3х + 5 = 0
  2. 6х 2 + 21х + 3 = 0
  3. 2х 2 + 8х + 8 = 0

6) Подведение итогов:

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

7) Домашнее задание .

Повторить §3.4.2, учебник с. 145 №8,9,19

Предварительный просмотр:

Подписи к слайдам:

Целая Вещественная Тип величины в алгоритме Символьная Числовой Один символ Строка символов Текстовый ДА (ИСТИНА, TRUE, 1) НЕТ (ЛОЖЬ, FALSE, 0) Логический Литерная Типы величин

Полная форма ветвления Действие 1 Условие Действие 2 если то иначе все Неполная форма ветвления Действие 1 Условие если то все

Читайте также: