Программа паскаль решение линейных уравнений

Содержание
  1. Приложение
  2. Первые программы на Паскале
  3. Вычисление суммы натуральных чисел
  4. Вывод таблицы соответствия температур по Цельсию и Фаренгейту
  5. Вычисление суммы
  6. Решение линейного и нелинейного диофантовых уравнений
  7. Вычисление произведения и сумм в прямом и обратном порядке
  8. Программа паскаль решение линейных уравнений
  9. Курсовая работа: Разработка программы решения системы линейных уравнений
  10. Введение
  11. 1 . Описание математических методов решения систем линейных уравнений
  12. 1.1 Метод Гаусса
  13. 1.2 Матричный метод
  14. 1.3 Вычисление определителей второго и третьего порядка
  15. 2. Язык программирования Паскаль
  16. 2.1 Структура программы
  17. 2.2 Описание переменных
  18. 2.3 Основные конструкции языка
  19. 2.4 Структуры данных
  20. 2.4 Процедуры и функции
  21. 3. Описание программы
  22. 3.1 Работа программы
  23. 3.2 Блок-схема программы
  24. Заключение
  25. Список используемых источников и литературы
  26. Приложение

Видео:Программа для решения корней квадратного уравнения с использованием дискриминанта на языке ПаскальСкачать

Программа для решения корней квадратного уравнения с использованием дискриминанта на языке Паскаль

Приложение

Видео:Линейные программы. Решение задач. Ч.1.Скачать

Линейные программы. Решение задач. Ч.1.

Первые программы на Паскале

Получив первоначальный запас теоретических знаний, попробуем применить его на практике. Сначала разберем примеры простых программ. Первая из них приведена в листинге 1.1.
Листинг 1.1. Самая первая программа
program first_program;
begin
end.
Это простейшая программа на языке Паскаль, которая лишь демонстрирует стандартную свою структуру. В ней не предусмотрен ни ввод, ни вывод данных. Нет арифметических вы­ражений. Она предназначена для того, чтобы. просто быть, даже не выполняя никаких реальных действий. Эта программа как любойбиблиотечный модуль начинаются с заголовка (ключевое слово program, за которым следует имя программы). Имя программы может состоять из букв, цифр и симво­лов подчеркивания. Длину имени можно считать произвольной, хотя вряд ли имеет смысл придумывать очень длинные имена. Кроме того, неважно, в каком регистре клавиатуры имя набрано. Между заголовком и оператором begin раз­мещаются описания переменных и других объектов программы. Между зарезервированными словами begin и end находятся исполняемые операторы программы. Завершает программу точка. В этом первом примере нет ни опи­саний, ни исполняемых операторов.

Вычисление суммы натуральных чисел

Второй пример сложнее. Мы вычислим сумму натуральных чисел от 1 до 20. Читатель, знакомый с математикой, знает, что сумму первых n натуральных чисел можно найти но формуле Sn = n(n + 1 )/2. Используя эту формулу, мы сможем проверить, правильно ли работает программа и не допущены ли во время ее набора ошибки. При разработке программ их отладка, а также провер­ка правильности работы являются обязательной составной частью работы про­граммиста. Ведь даже если все операторы программы написаны правильно с точки зрения формальных правил языка, ошибка может быть допущена в са­мом алгоритме или в его записи на языке программирования. Программу мож­но считать готовым продуктом, только если программист убедился сам и убедил заказчика в том, что программа работает правильно, дает правильный результат. Для тестирования программы используются такие наборы значений входных параметров или такие предельные случаи ее работы, для которых известен точ­ный результат. Результат работы программы в этом случае сравнивается с точны­ми значениями.
Листинг 1.2. Вычисление суммы натуральных чисел
program summation;
var
i, summa: Word;
begin

summa := 0;
for i := 1 to 20 do summa := summa + i;
WriteLn (‘1 + 2 + . + 20 = ’, summa);
Write(Нажмите клавишу :’);
ReadLn;
end.
В этой программе по сравнению с первым примером появились новые элемен­ты. Это описание двух переменных I и summa типа Word.
Исполняемая часть программы, начинающаяся строкой begin и завершающая­ся строкой end, уже не пустая, она содержит исполняемые операторы. Первая строка в разделе операторов — комментарий, заключенный и фигурные скобки (напомню, что в качестве ограничителей комментария допустимы и пары сим­волов, состоящие из круглой скобки и звездочки). Оператор summa := 0; инициализирует переменную summa, используемую для хранения частичной суммы, присваивая ей нулевое значение. Замечу, что до первого оператора присваивания, содержащего имя переменной в левой части, ее значение не определено.
Затем идет цикл со счетчиком. В нашем примере тело цикла выполняется 20 раз, и каждый раз к значению переменной s прибавляется значение переменной — счетчика i.
Следующие две строки реализуют вывод результата на экран. Для этого в про­граммах на языке Паскаль используются операторы вывода Write и WriteLn. Они содержатся в библиотечном модуле System и во время компиляции автоматичес­ки включаются в исполняемый код. Вначале выводится символьная строка. Текст, выводимый на экран, заключается в одиночные кавычки ‘. ‘. Затем выводится численное значение — summa.
Последние две буквы в имени процедуры WriteLn означают, что после того, как вывод закончен, курсор переходит на начало следующей строки. Следующий оператор предлагает пользователю нажать клавишу Enter, а оператор ReadLn без параметров ожидает нажатие этой клавший. После нажатия клавиши Enter выполнение программы завершается.
ВНИМАНИЕ В Паскале не различаются большие и маленькие буквы, то есть Sum, sum, SUM и т. д. представляют собой один и тот же идентификатор.
В арифметических выражениях используются символы арифметических опе­раций. Эти символы приведены в табл. 1.2. Так, например, в произведениях между сомножителями должен находиться символ операции умножения *. Математическое выражение ax2 к программе на Паскале описывается как, а*х*х. Следует заметить, что особенностью языка Паскаль является отсутствие стандартной встроенной функции вычисления произвольной степени числа, кроме второй. Это, конечно же, неудобно при программировании сложных вычислений. При программировании арифметических выражении следует пом­нить о приоритетах операций, то есть о порядке их выполнения. Первыми выполняются арифметические операции умножения и деления, они считаются равноприоритетными операциями. Затем выполняются операции сложения и вычитания, тоже равноприоритетные. Если подряд идут несколько равнопрпоритетных операций, они выполняются слева направо. Порядок выполнения операций может быть изменен с помощью круглых скобок. При наличии в ариф­метическом выражении круглых скобок первыми будут выполняться операции в круглых скобках, начиная с самых внутренних.

Вывод таблицы соответствия температур по Цельсию и Фаренгейту

Следующая программа предназначена дли вывода таблицы соответствия меж­ду температурными шкалами Цельсия и Фаренгейта в интервале температур от точки замерзания воды до точки ее кипения. Температурная шкала Фарен­гейта была предложена немецким физиком Габриэлем Фаренгейтом и исполь­зуется в настоящее время в ряде англоязычных стран. В этой шкале при стандартном атмосферном давлении температура замерзания воды равна 32 °F, а температура кипения составляет 212 °F. В более привычной для нас шкале Цельсия аналогичными опорными точками являются, соответственно, 0 °С и 100 °С. Эти значения и используются для пересчета одних температур и другие. Нетрудно проверить, что формула для пересчета имеет вид: tf = 9/5*t + 32, где tf — температура но Фаренгейту, a tc — температура по Цельсию.

Листинг 1.3. Вывод таблицы соответствия температур по Цельсию и Фаренгейту
program Celsius_to_Fahrenheit;
var
i, Celsius, Fahrenheit: Word;
begin
Writeln(‘Таблица соответствия между температурными шкалами’);
Writeln(‘Цельсия и Фаренгейта’);
Writeln;
for i := 0 to 20 do beqin
Celsius := 5 * i;
Fahrenheit := 32 + Celsius * 9 div 5;
Write(‘ С =’, Celsius );
Write(‘ F =’, Fahrenheit);
Writeln;
end;
WriteLn(‘Нажмите ‘);
end.
Здесь есть новый элемент — операция div. В Паскале имеются две разновид­ности операции деления. Это обычная операция деления / и операция цело­численного деления div. В первом случае делимое и делитель могут быть любого числового типа, а во втором они должны быть целыми числами. Результат цело­численного деления — тоже целое число, которое получается отбрасыванием дробной части частного. Есть еще операция вычисления остатка от деления одно­го целого числа на другое — mod. В программе переменная Fahrenheit имеет це­лый тип Word, поэтому применение операции / привело бы к вещественному результату и, как следствие, к ошибке компиляции «Type mismatch» («Несоот­ветствие типов»). Отметим, что Паскаль является языком со строгим контролем за соблюдением типов. Это несомненное достоинство языка, так как, принуждая программиста быть аккуратным при работе с переменными, система программи­рования на Паскале избавляет его от необходимости искать ошибки на этапе выполнения программы. Это значительно более трудная проблема.
Оператор вывода Write отличается от оператора WriteLn тем, что при выводе значений не происходит переход на следующую строку. В нашем случае оба числа будут выведены в одной строке.

Вычисление суммы

В следующей программе вычисляется сумма:
Программа паскаль решение линейных уравнений
Листинг 1.4. Вычисление суммы
program summation_2;
var
i, n : Word;
t, add, Summa:Real;
begin
Write(‘Введите количество слогаемых n=’);
ReadLn(n);
Summa :=0;
for i := n downto 1 do
beqin
t := 1.0/i ;
add := Sqr(t);
Summa := Summa + add;
end;
Writeln(‘Сумма 1/i^2 от i=1 до’,n);
WriteLn(‘S = ‘, sunma);
WriteLn(‘Нажмите ‘);
ReadLn;
End.
В этой программе есть переменные типов Real и Word. Во втором операторе присваивания внутри цикла используется функция вычисления квадрата чис­ла — Sqr. Кроме того, здесь мы встречаемся с разновидностью цикла for, в которой благодаря использованию ключевого слова downto вместо to значение управляющей переменной i уменьшается каждый раз на единицу.
В рассмат­риваемом случае лучше всего проводить суммирование в обратном порядке, то есть от слагаемых с наибольшими номерами, принимающими наименьшие зна­чения, к слагаемым с наименьшими номерами, принимающими наибольшие значения. При суммировании в прямом порядке, начиная с некоторого номера, может возникнуть ситуация, когда при каждом проходе цикла к относительно большому значению суммы будет прибавляться сравнительно малое значение очередного слагаемого. Погрешность выполнения такой операции увеличива­ется — это особенность машинной арифметики. При суммировании в обрат­ном порядке слагаемые не так сильно различаются между собой по величине, и, следовательно, точность вычисления полной суммы будет выше.

Решение линейного и нелинейного диофантовых уравнений

Следующая программа предназначена для решения диофантовых уравнений. Таким образом, мы попадаем в один из сложных разделов математики. Не стоит этого пугаться, ведь мы вооружены компьютером и знанием, правда, еще далеко не полным, языка программирования. Маленькая историческая справка. Открытие диофантовых уравнений связано с именем греческого математика
Диофанта, личности полулегендарной. О его жизни практически ничего не изве­стно, но сегодня диофантов анализ — это обширная и важная область матема­тики. Полная математическая теория разработана только для линейных уравнений, а общий метод решения нелинейных диофантовых уравнений нее еще неизвестен. Иногда анализ простого на вид нелинейного диофантова урав­нения может представлять огромные трудности даже для математика высокой квалификации. Используя компьютер, оснащенный системой программирова­ния на Турбо Паскале, мы сможем применить его возможности для решения как линейных, так и нелинейных диофантовых уравнений.
Самое простое линейное диофантово уравнение имеет вид
ax + by = с,
где а, b и с — заданные числа, а х и у — неизвестные. Особенность этих уравнений заключается в том, что для них ищутся целочисленные решения. Это можно сделать методом перебора.
Для того чтобы немного оживить наше повествование, решим следующую старинную задачу из области экономики сельского хозяйства. Зажиточный крестьянин потратил 100 рублей на покупку 100 различных домашних живот­ных. Каждая корова обошлась ему в 10 рублей, свинья в 3 рубля, а овца в 50 копеек. Предполагая, что крестьянин приобрел по крайней мере по одному животному каждого вида, найдем, сколько голов скота каждого вида он купил. Условие задачи записывается в виде двух уравнений:
10x + Зу +z/2 = 100;
х + у + z= 100,
где х, у, z — количество коров, свиней и овец соответственно. Избавимся от знаменателя в первом уравнении, умножив сто на 2. Из полученного таким образом уравнения вычтем второе. Это позволяет исключить переменную z. Получаем уравнение 19x + 5у = 100. Решениями данного уравнения должны быть целые положительные числа (видел ли кто-нибудь отрицательное число коров?), меньшие 100. Следующая программа предназначена для решения данного уравнения.

Листинг 1.5. Решение линейного диофаитова уравнения
program diophantine equation_1;
var
x, у: integer;
begin
WriteLn(‘Целые решения уравнения 19x + 5y = 100 из диапазона’);
WriteLn(‘l :’);
ReadLn;
end.
Эта программа знакомит нас с новыми элементами. Здесь имеется двойной вло­женный цикл for. Внутренний цикл содержит условный оператор if_ then. Оператор WriteLn выполняется только в том случае, когда истинно условие в операторе if. В данном случае это условие 19*х+5*у=100. Обратим внимание на то, что знак равенства обозначает здесь не оператор присваивания, а логическое отношение равенства двух значений. Результатом такого сравнения может быть или True (истина), если условие выполнено, или False (ложь), если условие не выполнено. Оператор вывода
WriteLn( ‘ (x, y) = (‘, x, ‘, ‘, y, ‘)’);
используется для вывода на экран четырех элементов, которые разделяются запятыми. Последовательности символов, начинающиеся и заканчивающиеся одиночными кавычками (), являются строками текста (строковыми констан­тами). В нашем примере это ‘(х, у) = ( ‘ , ‘ , ‘ и ‘ )’. На экран будет выведен тот набор символов, который находится между кавычками. Нетекстовыми эле­ментами списка вывода являются идентификаторы переменных х и у. На экран будут выведены значения этих переменных.
Как я уже упоминал, решение нелинейных диофантовых уравнений — это более сложная проблема. Но компьютер и умелое применение методов вычис­лительной математики часто позволяют быстро получить решение даже самых сложных задач. Вот пример кубического диофантова уравнения:
x3 = у2 + 2.
Известно его решение: х = 3, у = 5. Усложним задачу и решим уравнение
x3 = у2 + 63.
Понятно, что по сравнению с первым диапазон поиска решений придется увеличить.
Листинг 1.6. Решение нелинейного диофантова уравнения
program diophantine_equation_2;
var
х, у, z, w, n: LongInt;
begin
<Вначале найдем наибольшее n, для которого n^2 + 63 = z;
if w = z tnen
WriteLn( ‘ ( x, y ) = (‘, x, ‘ , ‘, y, ‘ ) ‘ )
else Dec(x);
end;
Write( ‘ Paбoта закончена, нажмите :’);
Readln;
end.
Для того чтобы увеличить диапазон поиска решений уравнения, целые перемен­ные программы х, у, z, w, n описаны как переменные типа Longlnt («длинное це­лое») с диапазоном значений [- 2 147 483 648, +2 147483647]. Здесь же используется и оператор цикла repeat-until. И, на­конец, в программе содержится обращение к встроенным функциям округле­ния к нулю (Trunc), увеличения и уменьшения значения аргумента на единицу (Inc и Dec).

Вычисление произведения и сумм в прямом и обратном порядке

В следующей программе, предназначенной для вычисления произведения за­данного числа сомножителей вида 1 + (-1)n/n2, отметим логическую функцию Odd из моду­ля System, которая принимает значение «истина» только в том случае, когда аргумент — нечетное число.
Листинг 1.7. Вычисление произведения
program product;
const
m = 400;
var
p, x : Exterded;
n : Word;
begin
product := 1.0:
for n := 2 to m do
begin
x := Sqr(1.0/n);
if Odd(n) then

product := product * (1.0 — x)
else

product := product * (1.0 + x);
end;
WriteLn(‘Произведение для 2 :’);
ReadLn;
end.
Следующая задача — вычисление суммы значений 1/n5 в прямом и обратном порядке. Здесь зарезервированное слово uses, дает возможность подключать к программе библиотечные модули. В данном примере используются процедуры для работы с экраном в текстовом режиме. Для очистки экрана используется процедура ClrScr, кото­рая находится в библиотечном модуле Crt. Перед вычислением четвертой степени значения целой (типа Word) переменной k ее значение присваивается веще­ственной переменной х. Это делается для того, чтобы избежать переполнения. Ведь диапазон значений вещественных переменных значительно больше, чем ди­апазон значений целых переменных типа Word.
Листинг 1.8. Суммирование в прямом и обратном порядке
program forward_back_sum;
uses
Crt;
var
х, summa, ammus : Real;
k : Word;
begin
ClrScr;
WriteLn(‘ l/n^5, 1 to 1000′);

summa := 0.0;
for k := 1 to 1000 do
begin
x := k;
surma := surma + 1.0/(x*Sqr(Sqr(x)));
end;

ammus := 0.0;
for k := 1000 downto 1 do
begin
х := k;
ammus := ammus + l.0/(x*Sqr(Sqr(x)));
end;
WriteLn(‘Прямая сумма = ‘, summa);
WriteLn(‘Обратная сумма = ‘, arrrnus);
Writeln(‘ Разность = ‘, summa — ammus);
WriteLn:
Write( ‘ Нажмете :’);
ReadLn;
end.

Видео:Информатика 8 класс. Решение линейного и квадратного уравнения на PascalABCСкачать

Информатика 8 класс. Решение линейного и квадратного уравнения на PascalABC

Программа паскаль решение линейных уравнений

Обменять значения двух переменных, используя третью (буферную) переменную.

x — первая переменная;
y — вторая переменная;
b — буферная переменная (для хранения значения другой переменной).

Обмен значений двух переменных протекает по следующему алгоритму:

  1. В буферной переменной сохраняется значение первой переменной.
  2. Первой переменной присваивается значение второй.
  3. Второй переменной присваивается значение буферной переменной, это значение равно старому значению первой переменной.

Вывести на экран введенные пользователем данные в полях шириной, заданной по умолчанию, и полях шириной, определяемой пользователем.

Получить от пользователя данные, обработать их и вывести на экран

Вывести на экран действительное число в различных форматах представления.

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

Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.

Программа должна запрашивать у пользователя следующую информацию:

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

Площадь крыши бака (круга) вычисляется по формуле p * d 2 /4 (где p – число пи, d — диаметр).
Площадь боковой поверхности цилиндра: p * d * h (где h – высота).

Стандартная функция trunc выполняет «отбрасывание» дробной части и возвращает целое число.

Месячная выплата m по займу в s рублей на n лет под процент p вычисляется по формуле:
m = (s * r * (1 + r) n ) / (12 * ((1 + r) n – 1)), где r = p / 100.

Программа, вычисляющая значение m (месячную выплату) по известным s (сумме займа), p (проценту) и n (количеству лет), может выглядеть так:

Видео:Pascal.Программа квадратное уравнение.Скачать

Pascal.Программа квадратное уравнение.

Курсовая работа: Разработка программы решения системы линейных уравнений

Дальневосточная академия государственной службы

Факультет государственного и муниципального управления

по курсу: Информатика

Разработка программы решения системы линейных уравнений

1 курса 3 годичной

заочной формы обучения

Воищев Алексей Юрьевич

г. Хабаровск 2005

1. Описание математических методов решения систем линейных уравнений

1.1 Метод Гаусса

1.2 Матричный метод

1.3 Вычисление определителей второго и третьего порядка

2. Язык программирования Паскаль

2.1 Структура программы

2.2 Описание переменных

2.3 Основные конструкции языка

2.4 Структуры данных

2.4 Процедуры и функции

3. Описание программы

3.1 Работа программы

3.2 Блок-схема программы

Список используемых источников и литературы

Видео:Математика это не ИсламСкачать

Математика это не Ислам

Введение

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

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

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

Видео:ЛИНЕЙНЫЕ УРАВНЕНИЯ - Как решать линейные уравнения // Подготовка к ЕГЭ по МатематикеСкачать

ЛИНЕЙНЫЕ УРАВНЕНИЯ - Как решать линейные уравнения // Подготовка к ЕГЭ по Математике

1 . Описание математических методов решения систем линейных уравнений

Видео:Программирование на Pascal. Переменные, типы данных, линейные алгоритмы. Видеокурс.Скачать

Программирование на Pascal. Переменные, типы данных, линейные алгоритмы. Видеокурс.

1.1 Метод Гаусса

Идея метода Гаусса состоит в последовательном исключении неизвестных. Алгоритм решения системы уравнений этим методом проследим на примере.

Пример 1. Программа паскаль решение линейных уравнений

Выбирается ведущее уравнение с коэффициентом при х1 , равным 1. В нашем примере ведущим уравнением будет второе. Систему лучше переписать, поставив это уравнение на первое место:

Программа паскаль решение линейных уравненийПрограмма паскаль решение линейных уравнений

Умножаем первое уравнение на 6 и вычитаем из полученного второе, чтобы исключить из второго неизвестное х1 . Первое уравнение записываем, а на место второго — результат вычитания.

Затем первое уравнение умножим на 3 и складываем с третьим уравнением. Тогда получаем систему

Программа паскаль решение линейных уравненийИли

первое уравнение переписываем без изменения, а второе умножаем на 7 и вычитаем из него третье уравнение, умноженное на 15, чтобы избавиться от х2 в третьем уравнении. При этом второе записываем без изменения, на месте третьего — результат вычитания. Тогда

Программа паскаль решение линейных уравнений

Из третьего следует х3 =-3, подставим его во второе, получим х2 = — 2. Далее подставим найденные х2 и х3 в первое уравнение, получим х1 = 1.

Примечание: если система уравнений не содержит уравнения с коэффициентом 1 при х1 , тогда исключение х1 из второго и третьего достигается умножением сначала первого на коэффициент второго, а второго на коэффициент первого. Затем умножаем первое на коэффициент третьего, а третье на коэффициент первого. Таким образом при вычитании исключаем х1 .

Видео:Программа решения квадратного уравнения. Паскаль 5.Скачать

Программа решения квадратного уравнения. Паскаль 5.

1.2 Матричный метод

Запишем систему линейных 3 уравнений с 3 неизвестными

Программа паскаль решение линейных уравнений

Составим матрицу из коэффициентов при неизвестных

А = Программа паскаль решение линейных уравнений

Введем в рассмотрение матрицы — столбцы для неизвестных и свободных членов:

Х = Программа паскаль решение линейных уравнений; В = Программа паскаль решение линейных уравнений.

Тогда систему (2) можно переписать в матричной форме

Умножив это уравнение на Программа паскаль решение линейных уравненийслева, получим Программа паскаль решение линейных уравнений, откуда Программа паскаль решение линейных уравнений=Программа паскаль решение линейных уравненийили Программа паскаль решение линейных уравнений

Следовательно, матрица — решение Х находится как произведение Программа паскаль решение линейных уравненийна В .

Пример 2. Решить систему уравнений матричным методом

Программа паскаль решение линейных уравнений

Решение: определитель матрицы

А=Программа паскаль решение линейных уравнений

∆=-1, значит, существует обратная матрица Программа паскаль решение линейных уравнений.

Матрица — столбец при неизвестных:

Х = Программа паскаль решение линейных уравнений

Матрица — столбец из свободных членов:

В = Программа паскаль решение линейных уравнений

Тогда решение запишется в виде

Программа паскаль решение линейных уравнений=Программа паскаль решение линейных уравненийПрограмма паскаль решение линейных уравнений=Программа паскаль решение линейных уравнений

Видео:Линейное уравнение с двумя переменными. 7 класс.Скачать

Линейное уравнение с двумя переменными. 7 класс.

1.3 Вычисление определителей второго и третьего порядка

Число (а 11 а 22а 12 а 21 ) называется определителем второго порядка и обозначается символом

Программа паскаль решение линейных уравнений

Определитель второго порядка содержит две строки и два столбца. Числа а 11 , а 12 , а 21 , а 22 называются элементами определителя. Диагональ определителя, на которой расположены числа а 11 , а 22 — главная, а элементы а 12 , а 21 составляют побочную диагональ.

Определитель 3-го порядка содержит три строки и три столбца:

Программа паскаль решение линейных уравнений

Для вычисления определителя третьего порядка существует несколько способов.

Рассмотрим метод вычисления определителя разложением по элементам первой строки.

Введем понятие минора и алгебраического дополнения.

Минором некоторого элемента определителя называется определитель, полученный из данного вычеркиванием той строки и того столбца в которых этот элемент расположен. Обозначается Мij ( i — номер строки, j — номер столбца).

Например, минором элемента а12 является определитель

Программа паскаль решение линейных уравнений

Алгебраическим дополнением данного элемента определителя называется его минор, умноженный на (-1) i+ j . Алгебраические дополнения обозначаются буквами Аij, и тогда Аy = (-1) i+ j My .

Определитель вычисляется так:

Программа паскаль решение линейных уравнений=Программа паскаль решение линейных уравнений.

Так же можно разложить определитель по любой строке или столбцу.

Изложенный метод применим к вычислению определителей 4-го и т.д. порядков.

Пример3. Вычислить определитель разложением по элементам первой строки

Программа паскаль решение линейных уравнений

Решение: Элементы первой строки

А11 = (-1) 1+1 . М11 =Программа паскаль решение линейных уравнений=4+1=5.

М11 получили, вычеркнув первую строку и первый столбец.

А12 = (-1) 1+2 . М12 = — Программа паскаль решение линейных уравнений= — (8+3) = — 11.

М12 получили, вычеркнув первую строку и второй столбец.

А13 = (-1) 1+3 . М13 = Программа паскаль решение линейных уравнений= 2-3 = — 1.

М13 получили, вычеркнув первую строку и третий столбец.

Программа паскаль решение линейных уравнений= 1.5+2. (-11) — 2. (-1) = — 15

Видео:Пример решения задач на Pascal #1Скачать

Пример решения задач на Pascal #1

2. Язык программирования Паскаль

Видео:Язык Turbo Pascal и математика. Решение системы m линейных уравнений с n неизвестными методом ГауссаСкачать

Язык Turbo Pascal и математика. Решение системы m линейных уравнений с n неизвестными методом Гаусса

2.1 Структура программы

Язык Паскаль, начиная с момента своего создания Н. Виртом в 1971г., играет особую роль м в практическом программировании, и в его обучении. С непревзойденной четкостью в нем реализованы принципы структурного программирования. Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей. Они являются компиляторами, обрабатывающими разработанные программистами тексты программ.

Существует много версий языка Паскаль. Различия между ними порой весьма велики. Так, базовая версия Вирта имеет многократно меньше возможностей, чем версия Турбо-Паскаль 7.0. (первая, фактически — язык для обучения будущих программистов, а вторая — орудие профессиональных разработчиков прикладного программного обеспечения) Тем не менее, это версии одного языка.

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

Схематически программа представляется в виде последовательности восьми разделов:

описание внешних модулей, процедур и функций;

описание типов переменных;

описание функций и процедур;

Каждый раздел начинается со служебного слова, назначение которого зафиксировано в Паскале так, что его нельзя употреблять для других целей. Так например, описание заголовка начинается со служебного слова program, описание констант -const, описание переменных — var, раздел операторов начинается с begin. Программа заканчивается служебным словом end, после которого ставится точка. Описания величин и операторы друг от друга отделяются знаком «точка с запятой».

Видео:Уроки C++. Простые линейные уравненияСкачать

Уроки C++. Простые линейные уравнения

2.2 Описание переменных

Для обозначения величин используются имена. Они состоят из латинских букв и цифр, причем первым символом должна быть буква.

Постоянные величины (константы) чаще всего бывают числовыми или символьными. Значения символьных констант заключаются в апострофы.

Постоянные величины описываются в разделе констант по схеме:

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

Группа типов, значения каждого из которых можно перечислить в некотором списке — скалярные типы. Для них определен порядковая функция ord (x) — номер значения х в списке; функция pred (x) -значение в списке, предшествующее х, и succ (x) — значение в списке, следующее за х.

Упорядоченный тип — это тип, значения которого упорядочены в обычном смысле.

Переменные описываются в раздел описания переменных по схеме:

Имена в списке разделяются запятой. В этом разделе может быть описано несколько переменных разного типа, например:

Var a,b,c,: real; k, i: integer; p: Boolean;

Над целыми величинами (тип integer) определены арифметические операции: * (умножение), div (деление нацело), mod (вычисление остатка от деления), +, — (сложение и вычитание); операции перечислены в порядке старшинства. Целый результат дают некоторые стандартные функции (аргумент заключается в круглые скобки):

-абсолютная величина целого хж

квадрат значения х;

целая часть вещественной величины х;

целое число, полученное из вещественного ч по правилу округления;

случайное целое число из интервала от 0 до х

Над вещественными величинами определены операции: *, +, -, /, а также стандартные функции, при вещественном или целом аргументе: abs (x), sqr (x), sin (x), cos (x), ln (x), sqrt (x) — квадратный корень из х, int (x) — целая часть из х, random — случайное число от 0 до 1. Указанные операции и функции дают вещественный результат.

Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными.

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

Эта роль выражения отражена в основном операторе языка — операторе присваивания. Он имеет следующий вид:

Тип переменной и тип выражения должны быть согласованы (величины принадлежат к одному и тому же типу).

В Паскале можно вводить с клавиатуры числовые и символьные данные. Имеются две встроенные процедуры (подпрограммы) ввода:

Процедура readln отличается от read только тем, что при завершении ввода курсор перемещается в начало строки.

Программа на Паскале может выводить на экран или на принтер значения числовых или символьных выражений. Имеются две процедуры вывода на экран:

Процедура write (x1,x2,x3,…xn) печатает на экран значения выражения из списка х1, х2,…хn. Для вывода на принтер используются те же процедуры с добавлением служебного слова lst перед списком выражений:

Пример: write (lst,’ нет решений‘);

Видео:Урок 1. Первая программа на Pascal (Сложение чисел)Скачать

Урок 1. Первая программа на Pascal (Сложение чисел)

2.3 Основные конструкции языка

Паскаль — это язык структурного программирования. Это значит, что программа должна выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto.

Реализация последовательности действий (т.е. структуры следования) выполняется с помощью составного оператора:

Раздел операторов в программе всегда является составным оператором. Служебные слова begin и end часто называют операторными скобками.

Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется.

Структура и действие условного оператора таковы:

Условный оператор может быть неполным, т.е. не содержать часть “else «. В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.

Оператор варианта имеет следующую форму:

Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.

Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.

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

Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:

Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.

Оператор цикла с постусловием имеет форму:

Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов цикла и т.д.

Оператор цикла с параметром предусматривает повторное выполнение некоторого оператора с одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы.

Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора:

Если в этом описании отношение =, а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2.

For : = downto do

Видео:Первый урок. Линейные программы на языке программирования Pascal.Скачать

Первый урок. Линейные программы на языке программирования Pascal.

2.4 Структуры данных

В Паскале кроме простых типов данных: real, integer, boolean, byte, char, программист по своему желанию может определить новый тип путем перечисления его элементов — перечисляемый тип, который относится к простым ординальным типам.

Описание перечисляемого типа выполняется по схеме:

Например, type operator = (plus, minus, multi, divide);

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

Type days = (mon, tue, wed, thu, fri, sat, sun);

Workdays= mon. fri;

Операции и функции — те же, что и для базового типа. Использование интервальных типов в программе позволяет экономить память и проводить во время выполнения программы контроль присваивания.

Естественно и часто очень удобно группировать однотипные данные в последовательности — массивы, строки символов, объединять разнотипные данные в одном и том же объекте в виде записей. Значительное удобство представляются пользователю в Паскале при организации однотипных величин в виде множества с соответствующим набором операций: объединения, пересечения и т.д. Последовательность однотипных величин переменной длины можно представить в Паскале в виде файла данных и хранить на внешних носителях, используя его в разных программах.

Массив -это последовательность, состоящая из фиксированного числа однотипных элементов. Все элементы массива имеют общее имя и различаются индексами. Индексы можно вычислять, их тип должен быть ординальным. В описании массива используются служебные слова array и of. В описании массива указывается тип его элементов и типы их индексов.

Видео:Pascal Полный курс с нуля за 4 часаСкачать

Pascal Полный курс с нуля за 4 часа

2.4 Процедуры и функции

В Паскале подпрограммы называются процедурами и функциями и описываются в разделе с тем же названием.

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

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

Описание формальных параметров может иметь вид

Оператор вызова процедуры имеет вид

Указанные выражения называются фактическими параметрами. Их список должен точно соответствовать списку описаний формальных параметров процедуры. Во время вызова процедуры каждому параметру-значению присваивается значение соответствующего фактического параметра и поэтому их используют для передачи входных данных. Параметры — переменные используются для представления результатов процедуры.

Функция — это подпрограмма, определяющая единственное скалярное, вещественное или строковое значение. Отличия подпрограммы — функции от процедуры:

заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:

function (список описаний формальных параметров): ;

раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;

обращение к функции — не оператор, а выражение вида:

Видео:Как решить уравнение #россия #сша #америка #уравненияСкачать

Как решить уравнение #россия #сша #америка #уравнения

3. Описание программы

Видео:Линейные программы. Решение задач. Ч.2.Скачать

Линейные программы. Решение задач. Ч.2.

3.1 Работа программы

Для решения систем линейных уравнений методом Гаусса и матричным методом создана программа на языке Паскаль. Программа запрашивает исходные данные (рис.1):

матрицу коэффициентов при неизвестных х;

столбец свободных членов

способ решения системы линейных уравнений — вариант 1 или 2.

Программа паскаль решение линейных уравнений

Рисунок 3.1 Ввод исходных данных

В зависимости от выбранного вариант в программе происходит решение системы уравнений методом Гаусса (рис.2) или матричным методом (рис.3) с выдачей на экран результатов:

Программа паскаль решение линейных уравнений

Рисунок 3.2 Результаты расчетов системы линейных уравнений методом Гаусса.

Программа паскаль решение линейных уравнений

Рисунок 3.3 Результаты расчетов системы линейных уравнений матричным методом.

Программа состоит из 7 подпрограмм — 6 процедур и одной функции:

процедура Gauss обеспечивает решение системы линейных уравнений по методу Гаусса;

процедура matrica обеспечивает решение системы линейных уравнений матричным методом;

процедура PrintMatr2 предназначена для выдачи на экран исходной и обратной матрицы;

процедура MultString предназначена для умножения строк матрицы на число r;

процедура AddStrings прибавляет к i1-ой строке матрицы i2-ю, умноженную на число r;

процедура MultMatr предназначена для умножения матриц.

Функция Sign используется для изменения знака на противоположный при вычислении обратной матрицы.

Программа настроена на решение системы 3-х линейных уравнений с тремя неизвестными. Чтобы решить систему из 2-х уравнений с 2-мя неизвестными необходимо в программе изменить значение константы N с N=3 на N =2 (рис.4).

Программа паскаль решение линейных уравнений

Рисунок 3.4. Фрагмент программы с описанием констант и переменных.

Видео:Решение системы линейных уравнений с двумя переменными способом подстановки. 6 класс.Скачать

Решение системы линейных уравнений с двумя переменными способом подстановки. 6 класс.

3.2 Блок-схема программы

Название: Разработка программы решения системы линейных уравнений
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 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 — решение системы линейных уравнений матричным методом => ‘);

Поделиться или сохранить к себе: