В школе задали сделать программу, которая будет считать линейные уравнения. Но я по просту не понимаю логики. Поэтому прощу помощи, у кого есть немного свободного времени и желание помочь. Буду очень благодарен. Поставлю спасибо и +реп)))) Линейное уравнение вида a*x+b=0.
Код к задаче: «Решение линейных уравнений»
Листинг программы
uses Crt; var a, b, x : real; BEGIN ClrScr; Write(‘Введите число a = ‘); ReadLn(a); Write(‘Введите число b = ‘); ReadLn(b); if ((a=0) and (b=0)) then WriteLn(‘Уравнение имеет бесконечное множество решений: х*0 + 0 = 0.’) else if ((a=0) and (b<>0)) then WriteLn(‘Уравнение не имеет решений.’) else if (a<>0) then begin x:= -(b/a); WriteLn(‘x = ‘, x); end END.
Источник: studassistent.ru
Решение задач. День четвертый. Задачи Begin31-40
Задачи Begin31-40, которые мы сегодня решаем, являются заключительными в блоке Begin. На данном этапе обучения, вы должны щелкать все эти задачи, как орешки. Если же у вас возникили какие-либо проблемы, оставьте комментарий с вопросом под этой статьей или напишите нам письмо.
Pascal.Программа квадратное уравнение.
Begin31. Дано значение температуры T в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF – 32)·5/9.
program Begin31; var TC, TF: real; begin write(‘Введите значение температуры в градусах Фаренгейта: ‘); read(TF); TC := (TF — 32) * 5 / 9; writeln(‘Эта температура в градусах Цельсия: ‘, TC:5:1); end.
Begin32. Дано значение температуры T в градусах Цельсия. Определить значение этой же температуры в градусах Фаренгейта. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF – 32)·5/9.
program Begin32; var TC, TF: real; begin write(‘Введите значение температуры в градусах Цельсия: ‘); read(TC); TF := TC * 9 / 5 + 32; writeln(‘Эта температура в градусах Фаренгейта: ‘, TF:5:1); end.
Begin33. Известно, что X кг конфет стоит A рублей. Определить, сколько стоит 1 кг и Y кг этих же конфет.
program Begin33; var X_kilo, Price_x_kilo, Y_kilo, Price_y_kilo, Price_one_kilo: real; begin write(‘Введите количество килограмм: ‘); read(X_kilo); write(‘Введите стоимость конфет: ‘); read(Price_x_kilo); Price_one_kilo := Price_x_kilo / X_kilo; writeln(‘Стоимость 1 кг. конфет — ‘, Price_one_kilo:5:1); write(‘Введите количество кг.: ‘); read(Y_kilo); Price_y_kilo := Y_kilo * Price_one_kilo; writeln(‘Цена конфет за ‘, Y_kilo, ‘ кг. конфет равна — ‘, Price_y_kilo:5:1); end.
Begin34. Известно, что X кг шоколадных конфет стоит A рублей, а Y кг ирисок стоит B рублей. Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.
Программа для решения корней квадратного уравнения с использованием дискриминанта на языке Паскаль
program Begin34; var sweet_kilo, price_sweet_kilo, Price_one_sweet_kilo: real; iris_kilo, Price_iris_kilo, Price_one_iris_kilo: real; Ratio: real; begin write(‘Введите количество килограмм шоколадных конфет: ‘); read(sweet_kilo); write(‘Введите стоимость конфет: ‘); read(Price_sweet_kilo); Price_one_sweet_kilo := Price_sweet_kilo / sweet_kilo; writeln(‘Стоимость 1 кг. конфет — ‘, Price_one_sweet_kilo:5:1); write(‘Введите количество килограмм ирисок: ‘); read(iris_kilo); write(‘Введите стоимость конфет: ‘); read(Price_iris_kilo); Price_one_iris_kilo := Price_iris_kilo / iris_kilo; writeln(‘Стоимость 1 кг. конфет — ‘, Price_one_iris_kilo:5:1); Ratio := Price_one_sweet_kilo / Price_one_iris_kilo; writeln(‘Один килограмм конфет дороже ирисок в ‘, Ratio:5:1, ‘ раз.’); end.
В этой задаче я использовал очень длинные переменные и объемные диалоги с пользователем. В результате надобность в комментариях отпадает.
Еще один момент. Если вы хотите, чтобы ваши программы выводились в отдельном окне, то следует использовать встроенный в Паскаль, стандартный модуль — crt. Чтобы подключить какой — либо модуль следует использовать специальную команду — uses.
После этого откроется отдельное окошко.
Begin35. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой (путь = время · скорость). Учесть, что при движении против течения скорость лодки уменьшается на величину скорости течения.
program Begin35; var S, V, U, T1, T2: real; begin write(‘Введите скорость лодки: ‘); read(V); write(‘Введите скорость течения реки: ‘); read(U); write(‘Введите время движения по озеру: ‘); read(T1); write(‘Введите время движения по реке: ‘); read(T2); S := T2 * (V — U) + T1 * V; writeln(‘Путь, пройденный лодкой равен ‘, S:5:2); end.
Begin36. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга. Данное расстояние равно сумме начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.
program Begin36; var V1, V2, S, T, S1: real; begin write(‘Введите скорость первого автомобиля: ‘); readln(V1); write(‘Введите скорость второго автомобиля: ‘); readln(V2); write(‘Введите время: ‘); readln(T); write(‘Введите расстояние между автомобилями: ‘); readln(S); S1 := (V1 + V2) * T + S; writeln(‘Через ‘, T, ‘ч. расстояние ‘, S1, ‘ км.’); end.
Begin37. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу. Данное расстояние равно модулю разности начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.
Program Begin37; var S_obshyi, S_cherez_T, T, S, V1, V2: real; begin write(‘Введите скорость первого автомобиля: ‘); readln(V1); write(‘Введите скорость второго автомобиля: ‘); readln(V2); write(‘Введите первоначальное расстояние: ‘); readln(S); write(‘Введите T: ‘); readln(T); S_obshyi:=T*(V1+V2); S_cherez_T:=abs(S-S_obshyi); write(‘Расстояние между автомобилями через ‘, T,’ ч = ‘, S_cherez_T); end.
Begin38. Решить линейное уравнение A·x + B = 0, заданное своими коэффициентами A и B (коэффициент A не равен 0).
program Begin38; var x, A, B: real; begin writeln(‘Программа для решения уравнения A * x + B = 0. ‘); write(‘Введите коэффициент А: ‘); readln(A); write(‘Введите коэффициент В: ‘); readln(B); x := -B / A; write(‘х = ‘, x:5:2); end.
Begin39. Найти корни квадратного уравнения A·x 2 + B·x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0), если известно, что дискриминант уравнения положителен. Вывести вначале меньший, а затем больший из найденных корней. Корни квадратного уравнения находятся по формуле x1,2 = (−B ± √D ) / (2·A), где D — дискриминант, равный B 2 – 4·A·C.
program Begin39; var x1, x2, A, B, C, D: real; begin writeln(‘Программа для решения уравнения A * x^2 + B * x + C = 0. ‘); write(‘Введите коэффициент А: ‘); readln(A); write(‘Введите коэффициент В: ‘); readln(B); write(‘Введите коэффициент C: ‘); readln(C); D := sqr(B) — 4 * A * C; x1 := (-B + sqrt(D)) / (2 * A); x2 := (-B — sqrt(D)) / (2 * A); writeln(‘х1 = ‘, x1:5:2); writeln(‘х2 = ‘, x2:5:2); end.
Begin40. Найти решение системы линейных уравнений вида
Program Begin40; var A1, B1, C1, A2, B2, C2, x, y, D: real; begin write (‘Введите коэффициенты A1 и A2: ‘); readln (A1, A2); write (‘Введите коэффициенты B1 и B2: ‘); readln (B1, B2); write (‘Введите коэффициенты C1 и C2: ‘); readln (C1, C2); D := A1 * B2 — A2 * B1; x := (C1 * B2 — C2 * B1) / D; y := (A1 * C2 — A2 * C1) / D; writeln (‘x = ‘, x:5:2); writeln (‘y = ‘, y:5:2); end.
Ну, вот и все. Через несколько дней начнем решать задачи из блока Integer.
Источник: learnpascal.ru
Программирование решения уравнений
Программирование линейных уравнений Работа ученика 9б класса Ф.И.О. обучающегося: Смолькова Андрея Владимировича Руководитель проекта Ф.И.О. Борисова О.А.
Языки программирования — это формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер. Записи алгоритмов на языках программирования называются программами . Язык Паскаль – универсальный язык программирования. Никлаус Вирт ( 1934 года рождения) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор информатики (компьютерных наук). Разработчик языка Паскаль и ряда других языков программирования.
Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы. Метод Гаусса
Метод Ньютона , алгоритм Ньютона (также известный как метод касательных ) — это итерационный численный метод нахождения корня заданной функции. Дана непрерывная функция f ( x ), которая содержит единственный корень на отрезке [ a,b ], где b > a при чем определены непрерывны и сохраняют знак f `( x ) f «( x ). Точность е. Выбираем грубое приближение корня х 0 . Найдем значение функции точке х 0 и проведем касательную до пересечения с осью абсцисс, получим значение х 1 . Определим значение функции в точке х 1 , через эту точку проводим касательную и получаем точку х 2 . Повторим этот процесс n раз. Метод Ньютона
Практически перед каждым программистом рано или поздно встает задача определения корней уравнения. На сегодняшний день существует достаточно много алгоритмов решения данной задачи. Все они могут быть разделены на два этапа: отделения и уточнения корней. Первую часть легко выполнить графическим методом. Для выполнения второго этапа решения уравнения можно воспользоваться одним из многих методов уточнения корней уравнения. Заключение
Предварительный просмотр:
Предварительный просмотр:
Муниципальное бюджетное общеобразовательное учреждение
«Гимназия №7» г. Торжка
Программирование решения уравнений
Работа ученика 9Б класса
Смольков Андрей Владимирович
Ф.И.О. Борисова Ольга Александровна
Работа допущена к защите «_____» _______________ 2018г.
Подпись руководителя проекта _________________(__________________)
Паспорт проекта
Название проекта
Программирование решения уравнений
Руководитель проекта
Борисова Ольга Александровна
Автор проекта
Смольков Андрей Владимирович
Учебная дисциплина
Информатика
Тип проекта
Исследовательский
Цель работы
Изучить программную среду PascalABC для решения уравнений
- Написать программу решения:
- Системы линейных алгебраических уравнений методом Гаусса
- Нелинейных алгебраических уравнений методом Ньютона
Результат проекта (продукт)
Программа в среде программирования PascalABC
Индивидуальный план работы над проектом
Выбор руководителя и темы проекта.
Выбор типа проекта. Составление плана работы над проектом.
Работа над проектом
Анализ теоретической части.
Составление плана защиты проекта.
Отзыв руководителя. Формирование папки индивидуального проекта.
Защита индивидуального итогового проекта
Отзыв
на исследовательскую работу
учащегося 9 б класса МБОУ «Гимназия №7» г. Торжка
Смольков Андрей Владимирович
по теме: «Программирование решения уравнений»
Работа Смолькова Андрея представляет собой исследование программирование решения уравнений. Актуальность работы заключается в том, что на данный момент учащиеся 9-х классов изучают язык программирования Паскаль, и возникла необходимость объединить математику и информатику в единый программный продукт.
В работе важно разобраться с различными методами решения уравнений и написать программу. Содержание работы соответствует заявленной теме. Работа включает в себя основную часть, заключение, список литературы. Работу Андрей выполнял самостоятельно, используя материалы Интернета и литературы.
При выполнения работы Андрей проявил: самостоятельность, способность решать соответствующие проблемы. Не выполнял все рекомендации научного руководителя и не вовремя устранял замечания. Замечания по данной работе значительные, необходимо продумать и доработать заключение по данной теме. Не достаточно теоретического материала по языку программирования и их разновидности.
Вывод: проектная работа Смолькова А.В. по теме: «Программирование решения уравнений» достигла поставленных целей, отвечает требованиям, предъявляемым к индивидуальному итоговому проекту и рекомендуется к защите.
Учитель информатики . Борисова О.А.
(предмет) (подпись) (расшифровка подписи)
«__»_____________ 2018 г.
Общие сведения о языке программирования Паскаль
Языки программирования — это формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер. Записи алгоритмов на языках программирования называются программами. Существует несколько тысяч языков программирования. Для данного проекта выбран язык программирования Паскаль, который был разработан в 70-х годах прошлого века Никлаусом Виртом (Швейцария). свое название этот язык получил в честь французского ученого Блеза Паскаля, известного не только своими достижениями в математике, физике и философии, но и созданием первой в мире механической машины, выполнявшей сложение двух чисел.
Язык Паскаль считается универсальным языком программирования, так как он может применяться для записи алгоритмов решения самых разных задач ( вычислительных, обработки текстов, построения графических изображений, поиска информации и т.д.). Он поддерживает процедурный стиль программирования, в соответствии с которым программа представляет собой последовательность операторов, задающих те или иные действия.
Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор допустимых символов, которые можно использовать для записи программы. Это:
- латинские прописные буквы;
- латинские строчные буквы;
- арабские цифры;
- специальные символы (знак подчеркивания, знаки препинания, круглые, квадратные и фигурные скобки, знаки арифметических операций и д.р.)
В языке существует также некоторое количество различных цепочек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами.
В программе, записанной на языке Паскаль, можно выделить:
- заголовок программы;
- блок описания используемых данных;
- блок описания действий по преобразованию данных (программный блок).
Общий вид программы:
Решение системы алгебраических уравнений методом Гаусса
Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы.
В переменную n вводится порядок матрицы системы. С помощью вспомогательной процедуры Input вводятся двумерный массив A и одномерный массив b, после чего оба массива и переменная n передаются функции Gauss. В функции Gauss для каждого k-го шага вычислений выполняется поиск максимального элемента в k-м столбце матрицы начиная с k-й строки.
Номер строки, содержащей максимальный элемент сохраняется в переменной l. В том случае если максимальный элемент находится не в k-й строке, строки с номерами k и l меняются местами. Если же все эти элементы равны нулю, то происходит прекращение выполнения функции Gauss c результатом false. После выбора строки выполняется преобразование матрицы по методу Гаусса.
Решение нелинейных уравнений
Метод Ньютона , алгоритм Ньютона (также известный как метод касательных ) — это итерационный численный метод нахождения корня заданной функции.
Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a,b], где b>a при чем определены непрерывны и сохраняют знак f`(x) f«(x). Точность е. Выбираем грубое приближение корня х 0 . Найдем значение функции точке х 0 и проведем касательную до пересечения с осью абсцисс, получим значение х 1 . Определим значение функции в точке х 1 , через эту точку проводим касательную и получаем точку х 2 . Повторим этот процесс n раз.
К сожалению, при всех своих достоинствах метод Ньютона не гарантирует сходимости. Отсутствия решения может возникнуть по нескольким причинам. Например, это может произойти из-за того, что касательная будет параллельна оси абсцисс. В этом случаи необходимо предусмотреть выход из цикла при достижении большого количества итераций.
Существуют также и другие методы, например, золотого сечения. Какой из них использовать решать вам, однако следует отметить, что наиболее быстродейственным считается метод Ньютона, затем метод хорд и последним по быстродействию является метод половинного деления. Хотя количество итераций напрямую зависит от введенных начальных данных. При удачном стечении обстоятельств решение каждым из методов может быть найдено даже при единственной итерации.
Заключение
Практически перед каждым программистом рано или поздно встает задача определения корней уравнения. На сегодняшний день существует достаточно много алгоритмов решения данной задачи. Все они могут быть разделены на два этапа: отделения и уточнения корней. Первую часть легко выполнить графическим методом. Для выполнения второго этапа решения уравнения можно воспользоваться одним из многих методов уточнения корней уравнения.
Язык программирования Паскаль является универсальным языком программирования. В нем можно выполнить самые различные решения уравнений. Язык достаточно прост и понятен для начинающих программистов.
Список литературы
- Босова Л.Л. Информатика: учебник для 8 класса/ Л.Л. босова, А.Ю. Босова.-3-е изд.-М.: БИНОМ. Лаборатория знаний, 2015. — 160с.:ил.
- http://www.cyberforum.ru
- http://tpdn.ru/library/articles/52/13520
- http://pcfu.ru/metod-gaussa-dlya-resheniya-slau
Текст публичного выступления
Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Назван в честь немецкого математика Карла Фридриха Гаусса.
Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы. На данных слайдах представлен программный продукт реализации решения уравнения методом Гаусса в Паскале.
Метод Ньютона , алгоритм Ньютона (также известный как метод касательных ) — это итерационный численный метод нахождения корня заданной функции. Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a,b], где b>a при чем определены непрерывны и сохраняют знак f`(x) f«(x).
Точность е. Выбираем грубое приближение корня х 0 . Найдем значение функции точке х 0 и проведем касательную до пересечения с осью абсцисс, получим значение х 1 . Определим значение функции в точке х 1 , через эту точку проводим касательную и получаем точку х 2 . Повторим этот процесс n раз. Программа на слайде.
К сожалению, при всех своих достоинствах метод Ньютона не гарантирует сходимости. Отсутствия решения может возникнуть по нескольким причинам. Например, это может произойти из-за того, что касательная будет параллельна оси абсцисс. В этом случаи необходимо предусмотреть выход из цикла при достижении большого количества итераций.
Практически перед каждым программистом рано или поздно встает задача определения корней уравнения. На сегодняшний день существует достаточно много алгоритмов решения данной задачи. Все они могут быть разделены на два этапа: отделения и уточнения корней. Первую часть легко выполнить графическим методом. Для выполнения второго этапа решения уравнения можно воспользоваться одним из многих методов уточнения корней уравнения.
Источник: nsportal.ru