Программирование решения уравнений
Программирование решения уравнений. Презентация, проект и программный продукт (программа в Pascal)
Скачать:
Вложение | Размер |
---|---|
programmirovanie_lineynyh_uravneniy.pptx | 1.54 МБ |
metod_nyutona.docx | 69.43 КБ |
programmirovanie_resheniya_uravneniy.docx | 911.13 КБ |
Предварительный просмотр:
Подписи к слайдам:
Программирование линейных уравнений Работа ученика 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-х годах прошлого века Никлаусом Виртом (Швейцария). свое название этот язык получил в честь французского ученого Блеза Паскаля, известного не только своими достижениями в математике, физике и философии, но и созданием первой в мире механической машины, выполнявшей сложение двух чисел.
Язык Паскаль считается универсальным языком программирования, так как он может применяться для записи алгоритмов решения самых разных задач ( вычислительных, обработки текстов, построения графических изображений, поиска информации и т.д.). Он поддерживает процедурный стиль программирования, в соответствии с которым программа представляет собой последовательность операторов, задающих те или иные действия.
Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор допустимых символов, которые можно использовать для записи программы. Это:
- латинские прописные буквы;
- латинские строчные буквы;
- арабские цифры;
- специальные символы (знак подчеркивания, знаки препинания, круглые, квадратные и фигурные скобки, знаки арифметических операций и д.р.)
В языке существует также некоторое количество различных цепочек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами.
В программе, записанной на языке Паскаль, можно выделить:
- заголовок программы;
- блок описания используемых данных;
- блок описания действий по преобразованию данных (программный блок).
Заголовок программы состоит из служебного слова program и имени программы. После имени программы ставятся точка с запятой. Блок описания данных состоит из раздела описания констант (const), раздела описания переменных (var) и некоторых других разделов. В разделе описания переменных указываются имена используемых в программе переменных и их типы. Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их тип; описание каждого типа заканчивается точкой с запятой.
Общий вид программы:
Решение системы алгебраических уравнений методом Гаусса
Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы.
В переменную 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
Текст публичного выступления
Здравствуйте уважаемые члены комиссии. Я Смольков Андрей, ученик 9Б класса МБОУ «Гимназии №7» города Торжка. Разрешите представить свой исследовательский проект по теме «Программирование решения уравнений». Языки программирования — это формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер. Записи алгоритмов на языках программирования называются программами. Существует несколько тысяч языков программирования. Для данного проекта выбран язык программирования Паскаль, который был разработан в 70-х годах прошлого века Никлаусом Виртом (Швейцария). Свое название этот язык получил в честь французского ученого Блеза Паскаля, известного не только своими достижениями в математике, физике и философии, но и созданием первой в мире механической машины, выполнявшей сложение двух чисел. Язык Паскаль считается универсальным языком программирования, так как он может применяться для записи алгоритмов решения самых разных задач ( вычислительных, обработки текстов, построения графических изображений, поиска информации и т.д.). Он поддерживает процедурный стиль программирования, в соответствии с которым программа представляет собой последовательность операторов, задающих те или иные действия. Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор допустимых символов, которые можно использовать для записи программы. Это: латинские прописные буквы; латинские строчные буквы; арабские цифры; специальные символы (знак подчеркивания, знаки препинания, круглые, квадратные и фигурные скобки, знаки арифметических операций и д.р.). В языке существует также некоторое количество различных цепочек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами. В программе, записанной на языке Паскаль, можно выделить: заголовок программы; блок описания используемых данных; блок описания действий по преобразованию данных (программный блок). Заголовок программы состоит из служебного слова program и имени программы. После имени программы ставятся точка с запятой. Блок описания данных состоит из раздела описания констант (const), раздела описания переменных (var) и некоторых других разделов. В разделе описания переменных указываются имена используемых в программе переменных и их типы. Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их тип; описание каждого типа заканчивается точкой с запятой. Общий вид программы:
Метод Гаусса — классический метод решения системы линейных алгебраических уравнений. Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы. На данных слайдах представлен программный продукт реализации решения уравнения методом Гаусса в Паскале. Метод Ньютона , алгоритм Ньютона (также известный как метод касательных ) — это итерационный численный метод нахождения корня заданной функции. Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a,b], где b>a при чем определены непрерывны и сохраняют знак f`(x) f«(x). Точность е. Выбираем грубое приближение корня х 0 . Найдем значение функции точке х 0 и проведем касательную до пересечения с осью абсцисс, получим значение х 1 . Определим значение функции в точке х 1 , через эту точку проводим касательную и получаем точку х 2 . Повторим этот процесс n раз. Программа на слайде. К сожалению, при всех своих достоинствах метод Ньютона не гарантирует сходимости. Отсутствия решения может возникнуть по нескольким причинам. Например, это может произойти из-за того, что касательная будет параллельна оси абсцисс. В этом случаи необходимо предусмотреть выход из цикла при достижении большого количества итераций. Практически перед каждым программистом рано или поздно встает задача определения корней уравнения. На сегодняшний день существует достаточно много алгоритмов решения данной задачи. Все они могут быть разделены на два этапа: отделения и уточнения корней. Первую часть легко выполнить графическим методом. Для выполнения второго этапа решения уравнения можно воспользоваться одним из многих методов уточнения корней уравнения.
Курсовая работа: Разработка программы решения системы линейных уравнений
Название: Разработка программы решения системы линейных уравнений Раздел: Рефераты по информатике, программированию Тип: курсовая работа Добавлен 22:38:32 18 июля 2010 Похожие работы Просмотров: 1002 Комментариев: 21 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать | |
Заключение
В данной курсовой работе рассмотрены математические методы решения систем линейных уравнений: матричный метод и метод Гаусса, приводятся основные конструкции языка Паскаль. Рассмотренные теоретические вопросы дают возможность создания программы на Паскале для решения систем линейных уравнений. В курсовой работе приводится текст данной программы, рассматривается структура программы, анализируются все подпрограммы. Данная программа может быть использована в различных областях, где требуется решение систем линейных уравнений.
Список используемых источников и литературы
1. А.В. Могилев, Н.И. Пак, Е.К. Хеннер «Информатика», Москва, ACADEMA, 2000 г.
2. « Турбо Паскаль 7.0″, Киев, Торгово-издательское бюро BHV, 1997г.
3. С.А. Немнюгин, «Турбо ПАСКАЛЬ», Практикум, Питер, 2002г.
Приложение
«Решение систем линейных уравнений матричным способом и методом Гаусса»
type matr=array [1. n,1. n] of real;
mas=array [1. n] of real;
procedure PrintMatr2 (m,m1: matr; n,nz,nd: integer);
for i: =1 to n do
if (i=1) then write (np: 2,’: ‘)
for j: =1 to n do
write (m [i,j]: nz: nd); write (‘ ‘);
for j: =1 to n do
write (m1 [i,j]: nz: nd);
procedure MultString (var a,b: matr; i1: integer; r: real);
for j: =1 to n do
procedure AddStrings (var а,b: matr; i1, i2: integer; r: real);
for j: =1 to n do
a [i1,j]: =a [i1,j] +r*a [i2,j] ;
b [i1,j]: =b [i1,j] +r*b [i2,j] ;
procedure MultMatr (a,b: matr; var c: matr);
for i: =1 to n do
for j: =1 to n do
for k: =1 to n do
function sign (r: real): shortint;
if (r>=0) then sign: =1 else sign: =-1;
procedure GetMatr (a: matr; var b: matr; m, i,j: integer);
var ki,kj,di,dj: integer;
for ki: =1 to m-1 do
if (ki=i) then di: =1;
for kj: =1 to m-1 do
if (kj=j) then dj: =1;
b [ki,kj]: =a [ki+di,kj+dj] ;
procedure gauss (a: matr; b: mas; var x: mas; n: integer);
For k: =1 to N-1 do
For i: =k+1 to n do
For j: =k+1 to N do
writeln (‘Вывод результатов решения системы уравнений методом Гаусса’);
writeln (‘x [‘,n,’] =’,x [n]: 6: 2);
for i: = (n-1) downto 1 do
For j: =i+1 to n do
x [i]: = (b [i] +s) /a [i, i] ;
writeln (‘x [‘, i,’] =’,x [i]: 6: 2);
procedure matrica (a: matr; y: mas; n: integer);
for i: =1 to n do
for j: =1 to n do z [i,j]: =0;
for i: =1 to n do
for j: =1 to n do
for i: =1 to n do
взятую со знаком i-того элемента j-ой строки. Таким образом,
на месте элементова a [i, i] возникает сумма модулей элементов i-того
столбца (ниже i-ой строки) взятая со знаком бывшего элемента a [i, i],
равенство нулю которой говорит о несуществовании обратной матрицы >
for j: =i+1 to n do
AddStrings (a,z, i,j,sign (a [i, i]) *sign (a [j, i]));
if (abs (a [i, i]) >eps) then
MultString (a,z, i,1/a [i, i]);
for j: =i+1 to n do
AddStrings (a,z,j, i,-a [j, i]);
writeln (‘Обратной матрицы не существует. ‘);
if (a [n,n] >eps) then
for i: =n downto 1 do
for j: =1 to i-1 do
AddStrings (a,z,j, i,-a [j, i]);
else writeln (‘Обратной матрицы не существует. ‘);
writeln (‘Начальная матрица, обратная к ней матрица: ‘);
for i: =1 to n do s [i]: =0;
for i: =1 to n do
for j: =1 to n do
s [i]: =s [i] +z [i,j] *y [j] ;
writeln (‘Вывод результатов решения системы уравненй матричным способом’);
for i: =1 to n do write (‘ ‘, s [i]: 5: 2);
writeln (‘ввод матрицы коэффициентов при неизвестных х’);
for i: =1 to N do
for j: =1 to N do
write (‘ введите a [‘, i,’,’,j,’] => ‘);
writeln (‘ввод столбца свободных членов’);
for i: =1 to N do
write (‘ введите b [‘, i,’] => ‘);
writeln (‘введите вариант ‘);
writeln (‘ 1 — решение системы линейных уравнений методом Гаусса ‘);
write (‘ 2 — решение системы линейных уравнений матричным методом => ‘);
Курсовая работа на тему Разработка программного обеспечения решения нелинейных уравнений.
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Курсовая работа
на тему: Разработка программного обеспечения решения нелинейных уравнений.ВВЕДЕНИЕ
Язык программирования Pascal , разработанный Н.Виртом еще в 1970 г. в настоящее время получил весьма широкое распостранение. Этому способствовали его простота, удобное представление всех структурных конструкций, пригодность для использования как в учебных целях, так и для написания серьезных программ, высокая степень модульности, упрощающая процесс прграммирования, результативность автоматической проверки составленных программ на их корректность через развитый институт типов данных, высокое быстродействие трансляторов, эффективность объектных модулей. Рассматриваемый язык программирования хорошо приспособлен для решения широкого круга задач. Он содержит мощные средства структурирования данных.
Персональные компьютеры являются наиболее широко используемым видом компьютеров, их мощность постоянно увеличивается, а область применения расширяется. Персональные компьютеры могут объединяться в сети, что позволяет десяткам и сотням пользователей легко обмениваться информацией и одновременно получать доступ к общим базам данных. Средства электронной почты позволяют пользователям компьютеров с помощью обычной телефонной сети посылать текстовые и факсимильные сообщения в другие города и странны и получать информацию из крупных банков данных.
В настоящее время почти вся современная научная деятельность человека связана с программированием. Но одной из наиболее неотрывно связанных с вычислительной техникой наук является дискретная математика, нашедшая применение в современной вычислительной технике и кибернетике: в теоретическом программировании, при проектировании ЭВМ на ЭВМ и сетей ЭВМ, баз данных, систем логического управления.
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Особенности взаимодействия разноязыковых модулей
Рассмотрим комплексирование модулей, составленных на различных языках программирования. Для САПР наиболее употребимы универсальные языки ассемблера, ФОРТРАН, ПЛ/1. Особенности операций с разноязыковыми модулями можно свести к двум группам:
1) особенности установки программной среды и вызова модуля;
2) различия в реализации типов и структур данных, проявляющиеся при обмене информацией между модулями.
1.1.2. Установка среды
При передаче управления из модуля, составленного на одном языке, в модуль, составленный на другом языке, требуется устанавливать программную среду, представляющую собой совокупность программ обработки прерываний и аварийных завершений, установки регистров, содержащих адреса областей, использующихся на протяжении выполнения задачи и др. Поэтому при организации вызова модулей, составленных на различных языках, необходимо всякий раз устанавливать среду вызываемого модуля. Рассмотрим процесс установления среды в языках ассемблера, ФОРТРАН, ПЛ/1.
В алгоритмическом языке ФОРТРАН среда устанавливается модулем IBCOM , находящимся в библиотеке компилятора. Помимо установки среды этот модуль выполняет операции ввода-вывода и др. Для программ, не содержащих операций ввода-вывода и прерываний, среда может не создаваться. Вызов модуля, составленного на языке ФОРТРАН, и установка среды этого языка представляют собой различные, самостоятельные действия.
В алгоритмическом языке ПЛ/1 установка среды обеспечивается совокупностью модулей библиотечных, сгенерированных компилятором ПЛ/1, а также построенных пользователем. Место расположения программной среды определяется вызовом модуля. Таким образом, установка среды в языке ПЛ/1 и вызов самого модуля представляют собой неразрывное целое и считаются одной операцией.
Для модулей, написанных на языке ассемблера, компилятор среды не создает. Чтобы обеспечить нормальное функционирование программы для обработки программных прерываний и аварийных ситуаций, пользователь должен сам включить в свою программу соответствующие средства, например макрокоманды SPIE , STAE , ABEND и др. Механизм задания среды определяется также пользователем, который располагается в любом месте исходного модуля макрокоманды задания среды.
Способ обращения к модулю определяется языковыми средствами организации связи по управлению, которое реализуется через активизацию модуля и возврат управления.
Средства передачи управления алгоритмических языков проиллюстрированы в таблице. /1/
Характеристика средств передачи управления
1.1.3. Согласование типов
Различные языки программирования обладают разными наборами типов данных. Возможные отношения между типами данных приведены ниже.
К эквивалентным типам данных относятся типы данных, для которых внутреннее представление, сгенерированное компиляторами, идентично.
К косвенно-эквивалентным типам данных относятся типы данных, для которых нет эквивалентного описания, но с помощью имеющихся языковых средств их можно совместить.
К неэквивалентным типам данных относят данные, которые невозможно свести друг к другу с помощью имеющихся языковых средств.
Рассматриваемые алгоритмические языки различаются не только типами, а также заданиями длины отдельных элементов данных. Длина элеметов данных может указываться явно или неявно (по умолчанию). Кроме того, необходимо отметить следующие организационные особенности каждого языка:
1) обратное расположение массивов (в языке ФОРТРАН массив располагается в памяти по столбцам, а в языке ПЛ/1 — по строкам);
2) наличие информационного вектора для переменных в языке ПЛ/1 [поскольку в языке ПЛ/1 память под данные может выделяться динамически, компилятор генерирует информационный вектор, который содержит сведения о переменных, строках и массивах (адрес, длина, количество элементов и пр.)] и имеет различный вид для различных структур данных;
3) выравнивание полей, которое определяется тем, что компилятор располагает данные в соответствии с описаниями, выравнивая их, если необходимо, на границы слов и полуслов. /1/
1.1.4. Обмен данными
Наиболее распространен способ обмена данных с помощью операторов CALL и LINK . При этом осуществляется формирование списка передаваемых данных и списка их адресов. Адрес списка адресов передается вызываемой программе через регистр 1.
Другим распространенным способом обмена данными является использование общих областей — статически распределеных участков памяти, к которым может обращаться любой модуль независимо от того, на каком языке он написан. Память под общую область отводит редактор связей во время создания загрузочной программы из совокупности общих областей отдельных модулей. Каждый из рассматриваемых языков имеет средства для описания общих областей: в языке ФОРТРАН — оператор COMMON , в языке ПЛ/1 — оператор STATIC EXTERNAL , в языке ассемблера — оператор COM . /1/
1.1.5. Информационный адаптер
С учетом вешеизложенного для осуществления универсального информационного интерфейса необходимо:
1) произвести контроль наличия исходных данных для каждого отдельного модуля;
2) задать недостающие исходные данные;
3) проверить соответствие типов, структур и последовательности данных аналогичным характеристикам данных, принятым в вызываемом модуле;
4) преобразовать данные в случае несоответствия типов;
5) обеспечить передачу данных вызываемому модулю в соответствии с типом обмена;
6) организовать среду, определяемую языком программирования модуля;
7) проверить резулбтаты;
8) выполнить обратное преобразоавание данных в вид, принятый для хранения промежуточных результатов;
9) сохранить результаты работы модуля для дальнейшего использования;
Реализация описанных функций выполняется программой-адаптером. Информационное обеспечение адаптера (рисунок 1.1) включает в себя таблицы описателей модулей, наборов данных, область обмена.
формирования; МВв — модули ввода; ТОНД — таблица описателей наборов данных; ТОМ — таблица описателей модулей; ПУС — программа установки среды; ТОВх — таблица описателей входов; МВыв — модули вывода; ОО — области обмена;
Рисунок 1.1 — Информационное обеспечение программного адаптера
Таблица описателей модулей содержит: имя модуля; идентификатор языка программирования; признак типа обмена, принятый в модуле (параметры, общие области, наборы данных); количество параметров; имя описателей входов модуля; имя области обмена; имя описателя набора данных.
Таблица описателей входов модуля содержит: имя параметра локальное; имя параметра глобальное; характеристику параметра (входной, выходной, модифицируемый); вид структуры (переменная строка, массив арифметический, массив строк, структура, массив структур и т.д.); размерность (для массива); длину (для строк); основание системы счисления (для переменной или элемента массива); форму представления; точность.
Таблица описателей наборов данных содержит: имя набора; имя DD -предложения; тип организации; метод доступа; формат и длина блока; атрибуты записи.
Для обеспечения преемственности данных следует предусмотреть область памяти, куда заносились бы те результаты работы каждого модуля, которые принимают участие в дальнейших расчетах. Этой цели служит область обмена — память, выделенная для промежуточных результатов, передаваемых от модуля к модулю. В нее заносятся исходные данные для первого модуля, результаты вычислений, недостающие данные для промежуточных модулей.
Для организации области обмена необходимо:
1) осуществить анализ данных, которые будут циркулировать в среде программного комплекса в составе САПР с целью определения одинаковых по смыслу переменных;
2) всем одинаковым по смыслу переменным присвоить одно и то же имя, отражающее семантику этих переменных (глобальные переменные);
3) каждой переменной, встречающейся только один раз, присвоить уникальное имя, отражающее семантику величины (локальные переменные);
4) каждой глобальной и локальной переменной поставить в соответствие тип и структуру, являющиеся наиболее информативными;
Указанная совокупность переменных составляет область обмена, в которой хранится текущее значение каждой из переменных в наиболее информативном виде.
В крупных САПР, программы которых оперируют с большим числом входных, промежуточных и результирующих переменных, области обмена удобно организовывать в виде некоторого банка данных. Это позволяет возложить часть функций, выполняемых адаптером, на СУБД, что в конечном итоге сокращает время на разработку информационного и программного обеспечения САПР.
Таким образом, адаптер выполняет всю совокупность операций по организации информационного взаимодействия между программными модулями. В случае разноязыковых модулей адаптер практически берет на себя выполнение соответствующих функций операционной системы. Достаточно сложной является также задача построения области обмена, поскольку ее решение связано со структурированием всех переменных, участвующих в информационном обмене. В крупных САПР, программные модули которых оперируют с большим числом входных, промежуточных и результирующих переменных, функции адаптера по организации и взаимодействию с обменными областями целесообразно переложить на типовые СУБД.
Банки данных в настоящее время находят все более широкое применение для организации межмодульного интерфейса. Их использование наиболее эффективно, когда совокупность модулей программного обеспечения зафиксирована и не подлежит изменениям в дальнейшем. В этом случае необходимо составить логическую схему для всей области обмена, в которой были бы указаны наименования переменных, их взаимосвязи, тип представления. Обращение из программных модулей для получения значений необходимых переменных должно выполняться с помощью операторов взаимодействия с СУБД. Применение банков данных для целей организации информационного обмена сокращает сроки разработки информационного и программного обеспечения САПР. /1/
2. АЛГОРИТМИЧЕСКАЯ ЧАСТЬ
2.1. Математическое решение задачи
Пусть даны два уравнения с двумя неизвестными
действительные корни которых требуется найти с заданной степенью точности.
Мы предположим, что система (1) допускает лишь изолированные корни. Число этих корней и их грубо приближенные значения можно установить, построив кривые F 1 ( x ,у)=0; F 2 ( x ,у)=0 и определив координаты их точек пересечения.
Пусть х= x 0 ; у= y 0 — приближенные значения корней системы (1), полученные графически или каким-нибудь другим способом (например, грубой прикидкой).
Дадим итерационный процесс, позволяющий при известных условиях уточнить данные приближенные значения корней. Для этого представим систему (1) в виде
и построим последовательные приближения по следующим формулам:
Если итерационный процесс (3) сходится, т. е. существуют пределы
то, предполагая функции 1 ( x , y ) и 2 ( x , y ) непрерывными и переходя к пределу в равенстве (3) общего вида, получим:
т. е. предельные значения и являются корнями системы (2), а следовательно, и системы (1). Поэтому, взяв достаточно большое число итераций (3), мы получим числа x n и y n , которые будут отличаться от точных корней x = и y = системы (1) сколь угодно мало. Поставленная задача, таким образом, окажется решенной. Если итерационный процесс (3) расходится, то им пользоваться нельзя.
Теорема . Пусть в некоторой замкнутой окрестности R xA ; byB >(рис.) имеется одна и только одна пара корней x = и y = системы (2). Если:1) функции 1 ( x , y ) и 2 ( x , y ) определены и непрерывно дифференцируемы в R; 2) начальные приближения x 0 , y 0 и все последующие приближения x n , y n ( n =1,2. ) принадлежат R; 3) в R выполнены неравенства
то процесс последовательных приближений (3) сходится к корням x = и y = системы (2), т.е.
Рисунок 2.1-Графики уравнений в замкнутой окрестности.
Структурная схема решения задачи представлена на рисунке 2.2.
http://www.bestreferat.ru/referat-142074.html
http://infourok.ru/kursovaya-rabota-na-temu-razrabotka-programmnogo-obespecheniya-resheniya-nelinejnyh-uravnenij-4171701.html