Алгоритм решения данной задачи сначала должен быть представлен в виде словесного описания или графически в виде блок-схемы. Алгоритм вычисления корней квадратного уравнения может быть представлен в виде блок-схем, изображенных на рисунках, отображающих основные элементы блок-схем и алгоритм вычисления корней квадратного уравнения:
Изображение алгоритма в виде блок-схемы позволяет наглядно представить последовательность действий, необходимых для решения поставленной задачи, убедиться самому программисту в правильности понимания поставленной задачи.
После разработки алгоритма решения задачи и представления его в виде блок-схемы можно перейти к написанию программы – последовательности инструкций на выбранном языке программирования, соответствующей разработанному алгоритму. Например, ниже приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму, составленному на языке Visual Basic.
procedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);
var
a,b,c:real;
d:real;
xl,x2:real;
begin
<Ввод исходных данных>a:=StrToFloat(Editl.text);
b:=StrToFloat(Edit2.text);
с:=StrToFloat(Edj.t3.text);
< Вычисление дискриминанта >d:=Sqr(b)-4*a*c;
if d=0 then begin
Label2.color:=clRed;
Label2.font.color:=clRed;
Label2.caption:=’Дискриминант меньше нуля.’+#13+
‘Уравнение не имеет корней.’ end else
begin
х1:=(-b+Sqrt(d))/(2*a);
x2:=(-b-Sqrt(d))/(2*а);
Label2.font.color:=clBlack;
Label 2.caption=’Корни уравнения:’ +#13+’xl=1+FloatToStr(xl)
+#13+’x2=’+FloatToStr(x2);
end;
end.
Но программа, написанная на языке программирования, состоит из инструкций, понятных человеку, но не понятных процессору компьютера. Поэтому чтобы процессор смог выполнить работу в соответствии с инструкциями исходной программы, она должна быть переведена на язык команд процессора, то есть машинный язык. Задачу преобразования исходной программы в машинный код выполняет специальная программа – компилятор. Помимо преобразования исходной программы в машинную, компилятор выполняет проверку правильности записи инструкций исходной программы, т. е. осуществляет синтаксический анализ.
Компилятор создает исполняемую программу только в том случае, если в тексте исходной программы нет синтаксических ошибок. Однако генерация исполняемой программы машинного кода свидетельствует только об отсутствии в тексте программы синтаксических ошибок. Убедиться в правильности работы программы можно только во время ее тестирования – пробных запусках программы и при анализе полученных результатов. Например, если в программе нахождения корней квадратного уравнения допущена ошибка в записи выражения вычисления дискриминанта, то даже если это выражение будет синтаксически верно, программа выдаст неверные значения корней.
Решение квадратных уравнений средствами Visual Basic
Задача: Дано квадратное уравнение общего вида: ax 2 +bx+c=0. Ввести в память компьютера числовые коэффициенты: a, b, c, выполнить необходимый анализ введенной информации согласно известному из курса средней школы алгоритму решения квадратного уравнения: найти дискриминант d=b 2 -4ac и, проанализировав его знак, найти все действительные корни, если знак дискриминанта положительный, или сообщить о том, что действительных корней нет, если знак дискриминанта отрицательный.
Начать составление проекта решения данной задачи необходимо с ответа на вопрос: что нужно поместить на форму Form1?
Поместим на форму две кнопки: CommandButton1 и CommandButton2.
Для этого нужно воспользоваться Панелью элементов (объектов) управления General, которая расположена в левой части основного окна компилятора Visual Basic.
Первая кнопка CommandButton1 предназначается для начала работы программы согласно следующему алгоритму:
- ввод коэффициентов исходного уравнения a, b, c;
- расчет дискриминанта d=b 2 – 4ac;
- анализ знака дискриминанта, вычисление корней уравнения и вывод их на форму, если знак дискриминанта d>0 (положительный);
- вывод сообщения: «Решений нет», если знак дискриминанта d 2 -5x+6=0.
Далее рассмотрим процесс решения второго квадратного уравнения: 10x 2 +5x+200=0.
В окне InputBox вводим значение первого коэффициента уравнения a=10.
Ввод первого коэффициента a завершается нажатием кнопки Ok.
Аналогично в окне InputBox вводим значение второго коэффициента уравнения b=5.
Ввод второго коэффициента b так же завершается нажатием соответствующей кнопки Ok.
Наконец, в окне InputBox вводим значение третьего коэффициента нового уравнения c=200.
Ввод третьего коэффициента c так же завершается нажатием соответствующей кнопки Ok.
После этого программа, проанализировав полученную информацию, должна выдать в окне формы соответствующее сообщение о том, что данное уравнение не имеет решений.
И, наконец, рассмотрим процесс решения третьего квадратного уравнения: x 2 -8x+16=0.
Это уравнение имеет двукратный корень, так как его дискриминант d=0. Как и в двух предыдущих случаях, вводим коэффициенты квадратного уравнения. Первым вводим коэффициент a=1.
Далее вводим второй коэффициент уравнения b= –8.
Третий коэффициент уравнения c=16 вводим в последнюю очередь.
В итоге мы должны увидеть правильное решение третьего квадратного уравнения. Действительно последнее уравнение имеет два одинаковых корня.
Решение квадратных уравнений на компьютере
-Муниципальное общеобразовательное учреждение
Кувакинская средняя общеобразовательная школа
Учитель информатики МОУ «Кувакинская СОШ»
с Кувакино, 2011
Как реализуется метод решения квадратных уравнений на компьютере.
Алгоритм решения данной задачи сначала должен быть представлен в виде словесного описания или графически в виде блок-схемы. Алгоритм вычисления корней квадратного уравнения может быть представлен в виде блок схем, изображенных на следующих рисунках:
Изображение алгоритма в виде блок-схемы позволяет наглядно представить последовательность действий, необходимых для решения поставленной задачи, убедиться самому программисту в правильности понимания поставленной задачи.
После разработки алгоритма решения задачи и представления его в виде блок-схемы можно перейти к написанию программы – последовательности инструкций на выбранном языке программирования, соответствующей разработанному алгоритму. Например, ниже приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму, составленному на языке Turbo Pascal.
if D 0 then writeln ( ‘x1=’,(-b+sqrt(D))/(2*a)); writeln (‘x2=’, (-b-sqrt(D));
2. РЕШЕНИЕ КВАДРАТНЫХ УРАВНЕНИЙ СРЕДСТВАМИ EXCEL
2.1 Решение квадратных уравнений в Eхcel.
В ячейку А1 набираем фразу «Решение квадратного уравнения вида Ах2+Вх+С=0», и выделяем ячейки строки А от 1 до той которая находится перед пунктирной линией. Форматируем расположение, начертание и размер букв через опцию ЯЧЕЙКИ меню ФОРМАТ. В подпанели Выравнивание устанавливаем значение “Центрировать по выделению”. В подпанели Шрифт – размер и начертание букв (у нашем варианте это полужирный курсив и размер 14). Устанавливаем курсор на ячейке В4 и набираем А=, в ячейке В5 – В=, в ячейке В6 – С=, и производим форматирование по описанному выше методу. Ячейки С4, С5 и С6 выделяем рамкой в подпанели Рамка панели ЯЧЕЙКИ меню ФОРМАТ. Эти ячейки предназначены для ввода в них значений А, В, С.
Набор формулы. В ячейках Е4 и Е6 пишем соответственно х1= и х2=, и форматируем по методу, описанному выше. А в ячейки F4 и F6 записываем формулы так. Сначала ставится равно, потом значение ячейки В5 нажатием на ней мышки, функция Корень вставляется из пункта меню ВСТАВКА – ФУНКЦИЯ. Выбираем из математических функций – КОРЕНЬ. И нажимаем кнопку Далее – для ввода значения, находящегося под корнем. Следуя формуле дискриминанта вводим B5^2-(4*B4*B6), а общий вид формулы – =(-B5 + КОРЕНЬ(B5^2-(4*B4*B6)))/(2*B4) Такую же формулу вставляем и в ячейку F6, но со знаком минус: =(-B5 – КОРЕНЬ(B5^2-(4*B4*B6)))/(2*B4) Теперь после ввода пользователем значений А, В,С в ячейки В4, В5 и В6, в ячейках F4 и F6 будут выводится соответственно значения х1 и х2.
2.2 Нахождение корней квадратного уравнения с помощью
логических функций.
В ячейку А1 набираем фразу «Решение квадратного уравнения вида Ах2+Вх+С=0»,
В ячейку А2 записываем А=, А3 – В=, в А4 – С=. Ячейки В2. В3, В4 выделяем рамкой.
В ячейки D2, D3, D4 записываем соответственно D=, x1=, x2=.
Напишем формулу для подсчета дискриминанта в информатике =В3*В3+4*В2*В4.
Теперь запишем формулы, используя функцию “ЕСЛИ”:
-
Для X1: =ЕСЛИ(E2>0;(-B3-КОРЕНЬ(E2))/(2*B2);ЕСЛИ(E2=0;-(B3)/(2*B2); “корней нет”)) Для X2: =ЕСЛИ(E2>0;(-B3+КОРЕНЬ(E2))/(2*B2);ЕСЛИ(E2=0;-(B3)/(2*B2); “корней нет”))
Решение квадратного уравнения x2-2x+1=0
Решение уравнения х2-5х+6=0.
2.3 Нахождение корней квадратного уравнения с помощью
средства «Поиск решения»
Команда Подбор параметра является удобной для решения задач поиска определенного целевого значения, зависящего от одного неизвестного параметра. Для более сложных задач следует использовать команду Поиск решения (Решатель), доступ к которой реализован через пункт меню Сервис/Поиск решения.
Рассмотрим, как воспользоваться Поиском решения на примере того же квадратного уравнения.
После открытия диалога Поиск решения (рис.9) необходимо выполнить следующие действия:
1) в поле Установить целевую ячейку ввести адрес ячейки, содержащей
формулу для вычисления значений оптимизируемой функции, в нашем примере целевая ячейка – это С4, а
формула в ней имеет вид: = C3^2 – 5*C3 + 6;
2) для максимизации значения целевой ячейки, установить переключатель максимальному значению в положение , для минимизации используется переключатель минимальному значению, в нашем случае устанавливаем переключатель в положение значению и вводим значение 0;
3) в поле Изменяя ячейки ввести адреса изменяемых ячеек, т. е. аргументов целевой функции (С3), разделяя их знаком «;» (или щелкая
мышью при нажатой клавише Сtrl на соответствующих ячейках),
для автоматического поиска всех влияющих на решение ячеек используется кнопка Предположить;
4) в поле Ограничения с помощью кнопки Добавить ввести все ограничения, которым должен отвечать результат поиска: для нашего примера ограничений задавать не нужно;
5) для запуска процесса поиска решения нажать кнопку Выполнить.
Составим алгоритм решения квадратного уравнения
Задача хорошо знакома из математики. Исходными данными здесь являются коэффициенты a, b, c. Решением в общем случае являются два корня x1 и x2, которые вычисляются по формулам:
Все величины, используемые в этой программе, имеют вещественный тип.
алг корни квадратного уравнения
вещ a, b, c, x1, x2, d
начввод a, b, c
Кон
Слабость такого алгоритма видна «невооруженным глазом». Он не обладает важнейшим свойством, предъявляемым к качественным алгоритмам: универсальностью по отношению к исходным данным. Какими бы ни были значения исходных данных, алгоритм должен приводить к определенному результату и выходить на конец. Результатом может быть числовой ответ, но может быть и сообщение о том, что при таких данных задача решения не имеет. Недопустимы остановки в середине алгоритма из-за невозможности выполнить какую-то операцию. Это же свойство в литературе по программированию называют результативностью алгоритма (в любом случае должен быть получен какой-то результат).
Чтобы построить универсальный алгоритм, сначала требуется тщательно проанализировать математическое содержание задачи.
Решение уравнения зависит от значений коэффициентов a, b, c. Вот анализ этой задачи (ограничиваемся только поиском вещественных корней):
если a=0, b=0, c=0, то любое х – решение уравнения;
если a=0, b=0, c¹0, то уравнение решений не имеет;
если a=0, b¹0, то это линейное уравнение, которое имеет одно решение: x=–c/b;
если a¹0 и d=b 2 -4ac³0, то уравнение имеет два вещественных корня (формулы приведены выше);
кв
кв
Кон
В этом алгоритме многократно использована структурная команда ветвления. Общий вид команды ветвления в блок-схемах и на алгоритмическом языке следующий:
еслиусловие то серия 1 иначе серия 2 кв |
Вначале проверяется «условие» (вычисляется отношение, логическое выражение). Если условие истинно, то выполняется «серия 1» – последовательность команд, на которую указывает стрелка с надписью «да» (положительная ветвь). В противном случае выполняется «серия 2» (отрицательная ветвь). В АЯ условие записывается после служебного слова «если», положительная ветвь – после слова «то», отрицательная – после слова «иначе». Буквы «кв» обозначают конец ветвления.
Если на ветвях одного ветвления содержатся другие ветвления, то такой алгоритм имеет структуру вложенных ветвлений. Именно такую структуру имеет алгоритм «корни квадратного уравнения». В нем для краткости вместо слов «да» и «нет» использованы соответственно «+» и «–».
Рассмотрим следующую задачу: дано целое положительное число n. Требуется вычислить n! (n-факториал). Вспомним определение факториала.
Ниже приведена блок-схема алгоритма. В нем используются три переменные целого типа: n – аргумент; i – промежуточная переменная; F – результат. Для проверки правильности алгоритма построена трассировочная таблица. В такой таблице для конкретных значений исходных данных по шагам прослеживается изменение переменных, входящих в алгоритм. Данная таблица составлена для случая n=3.
Шаг | n | F | i | Условие | |
вывод | 1£3, да 2£3, да 3£3, да 4£3, нет |
Трассировка доказывает правильность алгоритма. Теперь запишем этот алгоритм на алгоритмическом языке.
алгФакториал
целn, i, F
нач ввод n
F:=1; i:=1
пока i£n, повторять
нц F:=F´i
кц
Кон
Этот алгоритм имеет циклическую структуру. В алгоритме использована структурная команда «цикл-пока», или «цикл с предусловием». Общий вид команды «цикл-пока» в блок-схемах и в АЯ следующий:
пока условие, повторять нц серия кц |
Повторяется выполнение серии команд (тела цикла), пока условие цикла истинно. Когда условие становится ложным, цикл заканчивает выполнение. Служебные слова «нц» и «кц» обозначают соответственно начало цикла и конец цикла.
Цикл с предусловием – это основная, но не единственная форма организации циклических алгоритмов. Другим вариантом является цикл с постусловием. Вернемся к алгоритму решения квадратного уравнения. К нему можно подойти с такой позиции: если a=0, то это уже не квадратное уравнение и его можно не рассматривать. В таком случае будем считать, что пользователь ошибся при вводе данных и следует предложить ему повторить ввод. Иначе говоря, в алгоритме будет предусмотрен контроль достоверности исходных данных с предоставлением пользователю возможности исправить ошибку. Наличие такого контроля – еще один признак хорошего качества программы.
алгквадратное уравнение вещa, b, c, d, x1, x2 нач повторять ввод a, b, c до a¹0 d:=b 2 –4ac если d³0 тоx1:=(–b+Öd)/(2a) x2:=(–b–Öd)/(2a) вывод x1, x2 иначе вывод “нет вещественных корней” кв кон |
В общем виде структурная команда «цикл с постусловием» или «цикл-до» представляется так:
повторять серия доусловие |
Здесь используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу.
Составим алгоритм решения следующей задачи: даны два натуральных числа M и N. Требуется вычислить их наибольший общий делитель – НОД(M,N).
Эта задача решается с помощью метода, известного под названием алгоритма Евклида. Его идея основана на том свойстве, что если M>N, то НОД(M N то M:=M–N иначе N:=N–M кв кц кон
Алгоритм имеет структуру цикла с вложенным ветвлением. Проделайте самостоятельно трассировку этого алгоритма для случая M=18, N=12. В результате получится НОД=6, что, очевидно, верно.
[spoiler title=”источники:”]
http://pandia.ru/text/79/084/71443.php
http://megaobuchalka.ru/10/8002.html
[/spoiler]
Рузана
Знаток
(287),
закрыт
7 лет назад
Лучший ответ
VilDara
Гуру
(3200)
9 лет назад
Можете еще текст насчет этого прочитать (ссылка).
Источник: http://ipg.h1.ru/lessons/ci/les31.html
Остальные ответы
pisikak
Профи
(509)
9 лет назад
если блок схема это как решить его то: D=b*b-4*a*c после находи x1= (-b*b+(-D))/2
Михаил
Мыслитель
(6680)
9 лет назад
не так уж и сложно….
Кублен
Оракул
(95444)
9 лет назад
У МАСТЕРА схема верна, но не по Госту 19.701-90
Похожие вопросы
На чтение 10 мин Просмотров 11 Опубликовано 11 апреля 2023 Обновлено 11 апреля 2023
Один из методов решения квадратных уравнений
Алгоритм решения данной задачи сначала должен быть представлен в виде словесного описания или графически в виде блок-схемы. Алгоритм вычисления корней квадратного уравнения может быть представлен в виде блок-схем, изображенных на рисунках, отображающих основные элементы блок-схем и алгоритм вычисления корней квадратного уравнения:
Изображение алгоритма в виде блок-схемы позволяет наглядно представить последовательность действий, необходимых для решения поставленной задачи, убедиться самому программисту в правильности понимания поставленной задачи.
После разработки алгоритма решения задачи и представления его в виде блок-схемы можно перейти к написанию программы – последовательности инструкций на выбранном языке программирования, соответствующей разработанному алгоритму. Например, ниже приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму, составленному на языке Visual Basic.
procedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);
var
a,b,c:real;
d:real;
xl,x2:real;
begin
<Ввод исходных данных>a:=StrToFloat(Editl.text);
b:=StrToFloat(Edit2.text);
с:=StrToFloat(Edj.t3.text);
< Вычисление дискриминанта >d:=Sqr(b)-4*a*c;
if d=0 then begin
Label2.color:=clRed;
Label2.font.color:=clRed;
Label2.caption:=’Дискриминант меньше нуля.’+#13+
‘Уравнение не имеет корней.’ end else
begin
х1:=(-b+Sqrt(d))/(2*a);
x2:=(-b-Sqrt(d))/(2*а);
Label2.font.color:=clBlack;
Label 2.caption=’Корни уравнения:’ +#13+’xl=1+FloatToStr(xl)
+#13+’x2=’+FloatToStr(x2);
end;
end.
Но программа, написанная на языке программирования, состоит из инструкций, понятных человеку, но не понятных процессору компьютера. Поэтому чтобы процессор смог выполнить работу в соответствии с инструкциями исходной программы, она должна быть переведена на язык команд процессора, то есть машинный язык. Задачу преобразования исходной программы в машинный код выполняет специальная программа — компилятор. Помимо преобразования исходной программы в машинную, компилятор выполняет проверку правильности записи инструкций исходной программы, т. е. осуществляет синтаксический анализ.
Компилятор создает исполняемую программу только в том случае, если в тексте исходной программы нет синтаксических ошибок. Однако генерация исполняемой программы машинного кода свидетельствует только об отсутствии в тексте программы синтаксических ошибок. Убедиться в правильности работы программы можно только во время ее тестирования – пробных запусках программы и при анализе полученных результатов. Например, если в программе нахождения корней квадратного уравнения допущена ошибка в записи выражения вычисления дискриминанта, то даже если это выражение будет синтаксически верно, программа выдаст неверные значения корней.
Решение квадратных уравнений средствами Visual Basic
Задача: Дано квадратное уравнение общего вида: ax 2 +bx+c=0. Ввести в память компьютера числовые коэффициенты: a, b, c, выполнить необходимый анализ введенной информации согласно известному из курса средней школы алгоритму решения квадратного уравнения: найти дискриминант d=b 2 -4ac и, проанализировав его знак, найти все действительные корни, если знак дискриминанта положительный, или сообщить о том, что действительных корней нет, если знак дискриминанта отрицательный.
Начать составление проекта решения данной задачи необходимо с ответа на вопрос: что нужно поместить на форму Form1?
Поместим на форму две кнопки: CommandButton1 и CommandButton2.
Для этого нужно воспользоваться Панелью элементов (объектов) управления General, которая расположена в левой части основного окна компилятора Visual Basic.
Первая кнопка CommandButton1 предназначается для начала работы программы согласно следующему алгоритму:
- ввод коэффициентов исходного уравнения a, b, c;
- расчет дискриминанта d=b 2 — 4ac;
- анализ знака дискриминанта, вычисление корней уравнения и вывод их на форму, если знак дискриминанта d>0 (положительный);
- вывод сообщения: «Решений нет», если знак дискриминанта d 2 -5x+6=0.
Далее рассмотрим процесс решения второго квадратного уравнения: 10x 2 +5x+200=0.
В окне InputBox вводим значение первого коэффициента уравнения a=10.
Ввод первого коэффициента a завершается нажатием кнопки Ok.
Аналогично в окне InputBox вводим значение второго коэффициента уравнения b=5.
Ввод второго коэффициента b так же завершается нажатием соответствующей кнопки Ok.
Наконец, в окне InputBox вводим значение третьего коэффициента нового уравнения c=200.
Ввод третьего коэффициента c так же завершается нажатием соответствующей кнопки Ok.
После этого программа, проанализировав полученную информацию, должна выдать в окне формы соответствующее сообщение о том, что данное уравнение не имеет решений.
И, наконец, рассмотрим процесс решения третьего квадратного уравнения: x 2 -8x+16=0.
Это уравнение имеет двукратный корень, так как его дискриминант d=0. Как и в двух предыдущих случаях, вводим коэффициенты квадратного уравнения. Первым вводим коэффициент a=1.
Далее вводим второй коэффициент уравнения b= –8.
Третий коэффициент уравнения c=16 вводим в последнюю очередь.
В итоге мы должны увидеть правильное решение третьего квадратного уравнения. Действительно последнее уравнение имеет два одинаковых корня.
Источник
Составить блок схему алгоритма решения квадратного уравнения
Задача 1. Составить блок-схему и программу, находящие корни квадратного уравнения
PRINT “Решение квадратного уравнения“
INPUT “Ввести a, b, c: “, a, b, c
THEN Х 1=(-b-sqr(d))/(2*a) : Х 2=(-b+sqr(d))/(2*a) : PRINT “Х1=“, Х1, “ Х2=“, Х2
ELSE PRINT “Действительных корней нет “
Запустите программу на выполнение и решите следующие квадратные уравнения:
б) 502 х 2 – 38,5 х + 12,125 = 0
Задача 2. Составить блок-схему и программу, определяющие количество корней квадратного уравнения
PRINT “Количество корней квадратного уравнения“
INPUT “Ввести a, b, c: “, a, b, c
IF d > 0 THEN PRINT “2 разных корня“ ELSE PRINT “2 одинаковых корня“
ELSE PRINT “Действительных корней нет“
Запустите программу на выполнение и определите количество корней в следующих квадратных уравнениях:
б) 502 х 2 – 38,5 х + 12,125 = 0
Задача 3*. Составить блок-схему и программу, определяющие имеет ли квадратное уравнение ax 2 + bx + c = 0 хотя бы один корень, больший числа m .
Запустите программу на выполнение и определите имеется ли корень в следующих квадратных уравнениях:
а) 1125 х 2 – 45 х – 324 = 0 при m = 0
б) 502 х 2 – 38,5 х + 12,125 = 0 при m = 15
в) 16 х 2 – 256 х + 1024 = 0 при m = 7
Домашнее задание – Составить блок-схемы и программы для следующих задач:
Задача 1. Определить является ли введенное с клавиатуры число корнем квадратного уравнения ax 2 + bx + c = 0 .
До сих пор мы с вами говорили о каких-то отвлечённых задачах из области математики. Сегодня мы поговорим о конкретной задаче, которая встречается у вас почти на каждом уроке. Это решение квадратного уравнения. Я хочу, чтобы вы на примере этой задачи поняли, что программирование – это не просто прихоть учителя, это действительно раздел информатики, который может нам помочь, например, в решении конкретных математических задач. Нужно только уметь разбираться в этом.
Давайте вспомним, что понимают под квадратным уравнением?
Что из себя представляют числа a,b,c и как их называют?
С чего начинают решение квадратного уравнения?
Найдите вокруг себя формулу дискриминанта. (D=b 2 -4ac) (Приложение 3)
Как мы решаем далее квадратное уравнение? (сравнение D с нулём)
Какие выводы мы из этого делаем?
Как найти корни квадратного уравнения? Найдите формулы корней среди тех, что развешены повсюду.
Если я случай наличия корней квадратного уравнения сведу к условию D0, то что я получу в случае D=0?
Давайте ещё раз подробно разберём нашу задачу:
Итак, у нас есть квадратное уравнение ax 2 +bx+c=0.
Мы должны решить его, т.е. найти такие значения х, при которых правая часть уравнения =0. Мы знаем, что для этого нам надо:
Найти дискриминант D=b 2 – 4ac.
D=b 2 -4ac=10 2 -4*3*3=100 – 36 =64
Х1=,
X2 =
3. Составление блок-схемы алгоритма.
По заданному решению попробуем составить блок-схему алгоритма в тетради. Кто справится первым, прошу к доске.
Подпишем основные элементы блок – схемы применительно к языку программирования.
4. Составление программы по блок – схеме.
Теперь, пользуясь нашими записями, составим программу и покажем её учителю. Тот, кто до конца урока составит только программу, не проверив её на компьютере, получит три, тот, кто наберёт программу на компьютере, но не проверит её на примерах, получит три. Тот, кто выполнит всё задание, получит пять.
А я раздам вам домашнее задание.
Write(‘введите коэффициенты уравнения a,b,c’); readln(a,b,c);
Else writeln(‘действительных корней нет’)
1. Составить и набрать программу КВУР на компьютере.
Загрузка среды Pascal- 2ЩЛКМ по значку Pascal, нажать ALT+ENTER.
Запуск программы – ЩЛКМ по кнопке RUN выбрать RUN.
2. Решить следующие квадратные уравнения и показать учителю их решения (если нет такой возможности, то занести их в маршрутный лист (Приложение 4)
3. Переделайте программу КВУР таким образом, чтобы в ней учитывался случай, когда D=0 и уравнение имеет один корень.
Подсказка: Меню File – Exit или ALT+X.
1. За простое воспроизведение (набор программы) без проверки оценка “3”
2. За проверку работы программы на примерах, представленных учителем оценка “4”
3. За решение всех заданий и дополнительное изменение программы для случая D=0, оценка “5”
Подсказка: Меню File – Exit или ALT+X.
№ | Х1 | Х2 | |
1 | 3,230139 | 0,1031947 | |
2 | 1,464102 | -5,464102 | |
3 | 1,106107 | -1,356107 | |
4 | 5 | 6 | 1,6 |
7 | 2 | -1,6 | |
8 | 9 | 0,6872614 | -1,131706 |
10 | 9,486833 | -9,486833 |
Можно дать дополнительное задание:
Изменить программу так, чтобы ответ был с точностью до 2-х знаков после запятой.
1) Напишите программу проверки пароля. Пусть пароль – некоторое число, зафиксированное в программе. Программа печатает приглашение «введите пароль» и вводит число. Если введённое число совпадает с фиксированным паролем, то программа выводит приветствие, если нет – сообщает о том, что пароль не угадан.
7. Подведение итогов урока.
Итак, ребята, сегодня мы с вами решали конкретные задачи из математики, применяя свои умения по программированию. Вы получили следующие оценки за свои знания. (Перечисление оценок) На следующем уроке нам предстоит познакомиться с новыми алгоритмами – Циклическими.
На сегодня наш урок закончен. До свидания.
Задача хорошо знакома из математики. Исходными данными здесь являются коэффициенты a, b, c. Решением в общем случае являются два корня x1 и x2, которые вычисляются по формулам:
Все величины, используемые в этой программе, имеют вещественный тип.
алг корни квадратного уравнения
вещ a, b, c, x1, x2, d
начввод a, b, c
Слабость такого алгоритма видна «невооруженным глазом». Он не обладает важнейшим свойством, предъявляемым к качественным алгоритмам: универсальностью по отношению к исходным данным. Какими бы ни были значения исходных данных, алгоритм должен приводить к определенному результату и выходить на конец. Результатом может быть числовой ответ, но может быть и сообщение о том, что при таких данных задача решения не имеет. Недопустимы остановки в середине алгоритма из-за невозможности выполнить какую-то операцию. Это же свойство в литературе по программированию называют результативностью алгоритма (в любом случае должен быть получен какой-то результат).
Чтобы построить универсальный алгоритм, сначала требуется тщательно проанализировать математическое содержание задачи.
Решение уравнения зависит от значений коэффициентов a, b, c. Вот анализ этой задачи (ограничиваемся только поиском вещественных корней):
если a=0, b=0, c=0, то любое х – решение уравнения;
если a=0, b=0, c¹0, то уравнение решений не имеет;
если a=0, b¹0, то это линейное уравнение, которое имеет одно решение: x=–c/b;
если a¹0 и d=b 2 -4ac³0, то уравнение имеет два вещественных корня (формулы приведены выше);
В этом алгоритме многократно использована структурная команда ветвления. Общий вид команды ветвления в блок-схемах и на алгоритмическом языке следующий:
еслиусловие то серия 1 иначе серия 2 кв
Вначале проверяется «условие» (вычисляется отношение, логическое выражение). Если условие истинно, то выполняется «серия 1» – последовательность команд, на которую указывает стрелка с надписью «да» (положительная ветвь). В противном случае выполняется «серия 2» (отрицательная ветвь). В АЯ условие записывается после служебного слова «если», положительная ветвь – после слова «то», отрицательная – после слова «иначе». Буквы «кв» обозначают конец ветвления.
Если на ветвях одного ветвления содержатся другие ветвления, то такой алгоритм имеет структуру вложенных ветвлений. Именно такую структуру имеет алгоритм «корни квадратного уравнения». В нем для краткости вместо слов «да» и «нет» использованы соответственно «+» и «–».
Рассмотрим следующую задачу: дано целое положительное число n. Требуется вычислить n! (n-факториал). Вспомним определение факториала.
Ниже приведена блок-схема алгоритма. В нем используются три переменные целого типа: n – аргумент; i – промежуточная переменная; F – результат. Для проверки правильности алгоритма построена трассировочная таблица. В такой таблице для конкретных значений исходных данных по шагам прослеживается изменение переменных, входящих в алгоритм. Данная таблица составлена для случая n=3.
Шаг n F i Условие вывод 1£3, да 2£3, да 3£3, да 4£3, нет
Трассировка доказывает правильность алгоритма. Теперь запишем этот алгоритм на алгоритмическом языке.
алгФакториал
нач ввод n
пока i£n, повторять
Этот алгоритм имеет циклическую структуру. В алгоритме использована структурная команда «цикл-пока», или «цикл с предусловием». Общий вид команды «цикл-пока» в блок-схемах и в АЯ следующий:
пока условие, повторять нц серия кц
Повторяется выполнение серии команд (тела цикла), пока условие цикла истинно. Когда условие становится ложным, цикл заканчивает выполнение. Служебные слова «нц» и «кц» обозначают соответственно начало цикла и конец цикла.
Цикл с предусловием – это основная, но не единственная форма организации циклических алгоритмов. Другим вариантом является цикл с постусловием. Вернемся к алгоритму решения квадратного уравнения. К нему можно подойти с такой позиции: если a=0, то это уже не квадратное уравнение и его можно не рассматривать. В таком случае будем считать, что пользователь ошибся при вводе данных и следует предложить ему повторить ввод. Иначе говоря, в алгоритме будет предусмотрен контроль достоверности исходных данных с предоставлением пользователю возможности исправить ошибку. Наличие такого контроля – еще один признак хорошего качества программы.
алгквадратное уравнение вещa, b, c, d, x1, x2 нач повторять ввод a, b, c до a¹0 d:=b 2 –4ac если d³0 тоx1:=(–b+Öd)/(2a) x2:=(–b–Öd)/(2a) вывод x1, x2 иначе вывод “нет вещественных корней” кв кон |
В общем виде структурная команда «цикл с постусловием» или «цикл-до» представляется так:
повторять серия доусловие
Здесь используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу.
Составим алгоритм решения следующей задачи: даны два натуральных числа M и N. Требуется вычислить их наибольший общий делитель – НОД(M,N).
Эта задача решается с помощью метода, известного под названием алгоритма Евклида. Его идея основана на том свойстве, что если M>N, то НОД(M N то M:=M–N иначе N:=N–M кв кц кон
Алгоритм имеет структуру цикла с вложенным ветвлением. Проделайте самостоятельно трассировку этого алгоритма для случая M=18, N=12. В результате получится НОД=6, что, очевидно, верно.
Источник
Алгоритм решения данной задачи сначала должен быть представлен в виде словесного описания или графически в виде блок-схемы. Алгоритм вычисления корней квадратного уравнения может быть представлен в виде блок-схем, изображенных на рисунках, отображающих основные элементы блок-схем и алгоритм вычисления корней квадратного уравнения:
Рисунок 1
Рисунок 2
Изображение алгоритма в виде блок-схемы позволяет наглядно представить последовательность действий, необходимых для решения поставленной задачи, убедиться самому программисту в правильности понимания поставленной задачи.
После разработки алгоритма решения задачи и представления его в виде блок-схемы можно перейти к написанию программы – последовательности инструкций на выбранном языке программирования, соответствующей разработанному алгоритму. Например, ниже приведен фрагмент программы решения квадратного уравнения, соответствующий приведенному выше алгоритму, составленному на языке Visual Basic.
procedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);
var
a,b,c:real; {Коэффициенты уравнения}
d:real; {Дискриминант}
xl,x2:real; {Корни уравнения}
begin
{Ввод исходных данных} a:=StrToFloat(Editl.text);
b:=StrToFloat(Edit2.text);
с:=StrToFloat(Edj.t3.text);
{ Вычисление дискриминанта } d:=Sqr(b)-4*a*c;
if d=0 then begin
Label2.color:=clRed;
Label2.font.color:=clRed;
Label2.caption:=’Дискриминант меньше нуля.’+#13+
‘Уравнение не имеет корней.’ end else
begin
{Вычисление корней}
х1:=(-b+Sqrt(d))/(2*a);
x2:=(-b-Sqrt(d))/(2*а);
{ Вывод результата – значений корней}
Label2.font.color:=clBlack;
Label 2.caption=’Корни уравнения:’ +#13+’xl=1+FloatToStr(xl)
+#13+’x2=’+FloatToStr(x2);
end;
end.
Но программа, написанная на языке программирования, состоит из инструкций, понятных человеку, но не понятных процессору компьютера. Поэтому чтобы процессор смог выполнить работу в соответствии с инструкциями исходной программы, она должна быть переведена на язык команд процессора, то есть машинный язык. Задачу преобразования исходной программы в машинный код выполняет специальная программа – компилятор. Помимо преобразования исходной программы в машинную, компилятор выполняет проверку правильности записи инструкций исходной программы, т. е. осуществляет синтаксический анализ.
Рисунок 3
Компилятор создает исполняемую программу только в том случае, если в тексте исходной программы нет синтаксических ошибок. Однако генерация исполняемой программы машинного кода свидетельствует только об отсутствии в тексте программы синтаксических ошибок. Убедиться в правильности работы программы можно только во время ее тестирования – пробных запусках программы и при анализе полученных результатов. Например, если в программе нахождения корней квадратного уравнения допущена ошибка в записи выражения вычисления дискриминанта, то даже если это выражение будет синтаксически верно, программа выдаст неверные значения корней.
Решение квадратных уравнений средствами Visual Basic
Задача: Дано квадратное уравнение общего вида: ax2+bx+c=0. Ввести в память компьютера числовые коэффициенты: a, b, c, выполнить необходимый анализ введенной информации согласно известному из курса средней школы алгоритму решения квадратного уравнения: найти дискриминант d=b2-4ac и, проанализировав его знак, найти все действительные корни, если знак дискриминанта положительный, или сообщить о том, что действительных корней нет, если знак дискриминанта отрицательный.
Начать составление проекта решения данной задачи необходимо с ответа на вопрос: что нужно поместить на форму Form1?
Поместим на форму две кнопки: CommandButton1 и CommandButton2.
Рисунок 4
Для этого нужно воспользоваться Панелью элементов (объектов) управления General, которая расположена в левой части основного окна компилятора Visual Basic.
Первая кнопка CommandButton1 предназначается для начала работы программы согласно следующему алгоритму:
- ввод коэффициентов исходного уравнения a, b, c;
- расчет дискриминанта d=b2 – 4ac;
- анализ знака дискриминанта, вычисление корней уравнения и вывод их на форму, если знак дискриминанта d>0 (положительный);
- вывод сообщения: «Решений нет», если знак дискриминанта d<0 (отрицательный).
Необходимо написать специальную процедуру события, реагирующую на щелчок мышки по кнопке CommandButton1 на форме, которую назовем: «Введите коэффициенты уравнения a, b, c», и выполняющую названный выше алгоритм.
Рисунок 5
Эта процедура будет иметь название: Command1_Click().
Войдя в компилятор Visual Basic, выберем в главном меню раздел RUN и выполним команду Start. Перед нами появится окно формы нашего проекта задачи «Решение квадратного уравнения». Щелкнем по кнопке «Введите коэффициенты уравнения a, b, c».
Перед нами появится окно InputBox для ввода коэффициента a уравнения.
Рисунок 6
Введем числовое значение, например 1, требуемого коэффициента и нажмите кнопку Ok.
Вслед за этим появится окно для ввода второго коэффициента уравнения b.
Рисунок 7
Введем коэффициент b (например –5), как это мы сделали для коэффициента a уравнения. Нажмем кнопку Ok.
Проделаем то же самое, чтобы ввести третий коэффициент уравнения c, например с=6.
Рисунок 8
После ввода третьего коэффициента уравнения c перед нами появится окно формы, содержащее решение квадратного уравнения, коэффициенты которого мы ввели.
Рисунок 9
Мы рассмотрели процесс решения квадратного уравнения: x2-5x+6=0.
Далее рассмотрим процесс решения второго квадратного уравнения: 10x2+5x+200=0.
В окне InputBox вводим значение первого коэффициента уравнения a=10.
Рисунок 10
Ввод первого коэффициента a завершается нажатием кнопки Ok.
Аналогично в окне InputBox вводим значение второго коэффициента уравнения b=5.
Рисунок 11
Ввод второго коэффициента b так же завершается нажатием соответствующей кнопки Ok.
Наконец, в окне InputBox вводим значение третьего коэффициента нового уравнения c=200.
Рисунок 12
Ввод третьего коэффициента c так же завершается нажатием соответствующей кнопки Ok.
После этого программа, проанализировав полученную информацию, должна выдать в окне формы соответствующее сообщение о том, что данное уравнение не имеет решений.
Рисунок 13
И, наконец, рассмотрим процесс решения третьего квадратного уравнения: x2-8x+16=0.
Это уравнение имеет двукратный корень, так как его дискриминант d=0. Как и в двух предыдущих случаях, вводим коэффициенты квадратного уравнения. Первым вводим коэффициент a=1.
Рисунок 14
Далее вводим второй коэффициент уравнения b= –8.
Рисунок 15
Третий коэффициент уравнения c=16 вводим в последнюю очередь.
Рисунок 16
В итоге мы должны увидеть правильное решение третьего квадратного уравнения. Действительно последнее уравнение имеет два одинаковых корня.
Рисунок 17
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
Скачиваний:
55
Добавлен:
13.02.2015
Размер:
2.7 Mб
Скачать
Основы
алгоритмизации
Лабораторная
работа № 1
“Построение
блок-схем в редакторе MS Visio 2007”
(на
примере блок-схемы решения квадратного
уравнения вида ax2+bx+c=0)
MS
Visio 2007 помогает преобразовать различные
концепции в визуальную форму. MS Visio 2007
относится к классу программ – CASE-средств
(Computer
Aided Software/System Engineering), позволяющих
проектировать любые системы на компьютере.
Как необходимый элемент системного и
структурно-функционального анализа,
CASE-средства позволяют моделировать
бизнес-процессы, базы данных, компоненты
программного обеспечения, деятельность
и структуру организаций и т.д.
Основное
средство представления данных в MS
Visio 2007 – это векторные фигуры. Для удобства
фигуры сгруппированы по тематическим
категориям, в каждой из которых можно
увидеть похожие по внешнему виду или
по теме элементы. Фигуры отображаются
на одноименной области задач. Чтобы
загрузить на нее фигуры определенной
категории, нужно выбрать ее в меню
“Файл>Фигуры”. На области задач
может присутствовать несколько категорий
одновременно, та из них, которая является
активной, разворачивается, чтобы можно
было увидеть фигуры, а остальные
сворачиваются для экономии рабочего
пространства. Для каждой фигуры можно
увидеть ее название и графическое
отображение.
Очень
удобным способом работы с MS
Visio 2007 является создание документа на
основе шаблона. При загрузке шаблона
на область задач “Фигуры” подгружаются
те категории графических элементов,
которые могут вам понадобиться в процессе
работы. Для добавления фигуры в проект
нужно просто перетащить ее на рабочую
область, после чего можно откорректировать
ее размеры, задать свойства и параметры
отображения.
Фигуры
являются основным, но не единственным
средством для представления данных в
MS
Visio 2007. Кроме них можно также использовать
текст и числовые данные, графические
элементы, форматирование цветом и т.д.
При необходимости можно
посетить веб-узел Microsoft
(http://office.microsoft.com/ru-ru/visio/FX100487861049.aspx), чтобы
получить о MS
Visio 2007 более подробную информацию:
Порядок
выполнения:
-
Открыть
MS Visio
2007. Откроется окно редактора “Приступая
к работе”:
-
При
изучении основ алгоритмизации для
создания схем алгоритмов чаще всего
используется категория “Блок -схема”.
-
Для
начала работы необходимо выбрать шаблон
“Простая блок-схема” и нажать
кнопку Создать. -
Основной
набор, который будет использоваться
при создании блок-схемы, – “Фигуры
простой блок-схемы”. При необходимости
загрузить фигуры данной категории,
нужно выбрать ее в меню “Файл” и
“Фигуры”.
-
Рабочая
область пустого документа перед началом
работы должна иметь следующий вид:
-
Для
нахождения корней квадратного уравнения
вида ax2+bx+c=0
необходимо найти величины d,
x1,
x2
по следующим формулам:
№ |
Величина |
Формула |
1 |
Дискриминант |
D |
2 |
Корень |
|
3 |
Корень |
|
Если Если Если |
-
Блок-схема
решения квадратного уравнения имеет
следующий вид:
-
Для
создания данной блок-схемы необходимо
перетащить мышью нужные фигуры на
рабочую область документа и откорректировать
их размеры.
Понадобятся
следующие фигуры:
-
2
“Оконечные фигуры” (“Пуск” и
“Выход”):
; -
3
фигуры “Процесс”:
; -
1
фигура “Решение”:
; -
4
фигуры “Данные”:
.
-
В
результате действий рабочая область
приобретёт следующий вид:
-
На
первую “Оконечную фигуру” необходимо
добавить текст – “Пуск”. Для этого
необходимо выполнить следующие действия.
-
Выбрать
на панели инструментов кнопку “Текст”
:
-
В
появившейся рамке ввести с клавиатуры
текст “Пуск”;
-
В
меню выбрать команду “Формат”,
опцию “Текст и отформатировать текст:
шрифт – Arial;
размер – 12
пт; начертание
– полужирный;
цвет – черный;
-
Нажать
кнопки Применить
и ОК.
-
По
аналогии добавить на остальные фигуры
необходимый текст (цвет текста можно
варьировать по желанию):
-
На
первую фигуру “Данные”: a,
b,
c; -
На
первую фигуру “Процесс”: D
= b2-4ac.
Для написания верхнего индекса b2
необходимо выбрать команду меню
“Формат”, опцию “Текст”,
положение – “Надстрочный”:
-
На
вторую фигуру “Данные”: D; -
На
фигуру “Решение”: Если D
< 0;
-
На
третью фигуру “Данные”: x1,
x2.
Для написания нижних индексов x1,
x2
необходимо выбрать команду меню
“Формат”, опцию “Текст”,
положение – “Подстрочный” -
На
четвертую фигуру “Данные”: “Уравнение
не имеет решения”; -
На
вторую “Оконечную фигуру” необходимо
добавить текст – “Выход”: шрифт –
Arial;
размер – 12
пт; начертание
– полужирный;
цвет – черный;
-
Для
вставки формул необходимо выбрать
команду меню “Вставка”, “Рисунок”,
“Формула” (или “Вставка”,
“Объект”, редактор формул “MS
Equation
3.1”);
-
С
помощью редактора формул MS
Equation
ввести формулу для расчета x1:
;
-
Поместить
формулу на вторую фигуру “Процесс”; -
Скопировать
формулу (команды “Копировать” и
“Вставить”) и изменить ее на
; -
Поместить
формулу на третью фигуру “Процесс”.
-
При
необходимости корректировки размеров
фигуры необходимо выделить фигуру с
помощью инструмента “Указатель”
и произвести нужные действия. -
Добавить
на блок-схему соединительные линии.
Для этого необходимо выполнить следующие
действия:
-
Выбрать
на стандартной панели инструментов
инструмент “Соединительная линия”
(прямоугольная); -
Провести
между точками соединения фигур блок-схемы
соединительные линии:
-
К
фигуре “Решение” соединительные
линии провести, отпуская и нажимая
левую кнопку мыши:
-
При
необходимости изменения или форматирования
соединительных линий целесообразно
вызвать правой кнопкой мыши контекстное
меню:
и
отформатировать соединительную линию
с помощью диалогового окна:
-
Внимание!
При трудностях работы с “Соединительными
линиями” можно добавить дополнительно
на панель инструментов панель “Рисование”
(если этой панели нет); -
Панель
добавляется командой меню “Вид”,
“Панели инструментов”, “Рисование”:
-
Добавленная
панель инструментов выглядит следующим
образом:
-
Линии
между фигурами можно провести мышью с
помощью инструмента “Линия”, выбрав
типом конца линии стрелку:
-
Итоговая
схема (с проведенными соединительными
линиями ) выглядит следующим образом:
-
Добавить
к блоку решения надписи “да” и
“нет” над линиями условия. Для
этого необходимо выполнить следующие
действия.
-
Выбрать
команду меню “Вставка”, “Надпись”;
-
В
появившейся рамке ввести слева от блока
“Решение” с клавиатуры текст “нет”
и отформатировать с помощью команды
“Формат”: шрифт – Arial;
размер – 12
пт; начертание
– полужирный;
цвет – темно-синий);
-
Справа
от блока “Решение” с клавиатуры
текст “да” и отформатировать с
помощью команды “Формат”: шрифт –
Arial;
размер – 12
пт; начертание
– полужирный;
цвет – красный).
-
Для
подписи соединительных линий также
можно щелкнуть двойным щелчком мыши
по соединительной линии условия, в
появившемся поле ввести текст “да”
или “нет”
и
затем отформатировать выделенный текст
(по описанному выше образцу), вызвав
правой кнопкой диалоговое окно “Текст”:
-
Сгруппировать
блок-схему в единый объект. Для этого
необходимо выполнить следующие действия:
-
Щелкнуть
на панели инструментов “Указатель”
; -
Выделить
мышью все фигуры до появления
соответствующих маркеров; -
Правой
кнопкой мыши вызвать контекстное меню,
команды “Фигура” и “Группировать”:
-
Проверить
и сохранить результаты работы, выбрав
команду меню “Файл” и “Сохранить”
(в папку “Мои документы”). Созданный
файл назвать kv_uravn.vsd.
-
Снова
выбрав команду меню “Файл” и команду
“Сохранить как” (в папку “Мои
документы”). Выполнить трассировку
(конвертацию) файла в формат jpeg
(kv_uravn.jpg).
-
Проверьте
наличие двух файлов (разных типов!) в
папке “Мои документы”.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #