Автор работы: Пользователь скрыл имя, 26 Января 2014 в 22:30, курсовая работа
Последние десятилетия характеризуются бурным развитием вычислительной техники. Расширяются области применения вычислительных машин и совершенствуются методы их использования. Созданы универсальные языки программирования и разработаны мощные операционные системы.
1. Введение………………………………………………………………………………………………………4
1. Описание математических методов решения систем линейных уравнений.
1.1 Метод Гаусса……………………………………………………………………………………………….5
1.2 Матричный метод……………………………………………………………7
1.3 Вычисление определителей второго и третьего порядка…………………..9
2. Язык программирования Паскаль.
2.1 Структура программы……………………………………………………….11
2.2 Описание переменных………………………………………………………13
2.3 Основные конструкции языка………………………………………………16
2.4 Структуры данных…………………………………………………………..19
3. Программа………………………………………………………………….....20
Заключение.
Список используемых источников и литературы.
Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными.
Выражения - это конструкции, задающие правила вычисления значений переменных. В общем случае выражения строятся из переменных, констант, функций с помощью операций и скобок.
Эта роль выражения отражена в основном операторе языка - операторе присваивания. Он имеет следующий вид:
<имя переменной>: =<выражение>
Тип переменной и тип выражения должны быть согласованы (величины принадлежат к одному и тому же типу).
В Паскале можно вводить с клавиатуры числовые и символьные данные. Имеются две встроенные процедуры (подпрограммы) ввода:
1) read (< список переменных>);
2) readln (<список переменных>).
Процедура readln отличается от read только тем, что при завершении ввода курсор перемещается в начало строки.
Программа на Паскале может выводить на экран или на принтер значения числовых или символьных выражений. Имеются две процедуры вывода на экран:
1) write (<список выражений>);
2) writeln (<список выражений>).
Процедура write (x1,x2,x3,…xn) печатает на экран значения выражения из списка х1, х2,…хn. Для вывода на принтер используются те же процедуры с добавлением служебного слова lst перед списком выражений:
Пример: write (lst,’ нет решений‘);
2.3 Основные конструкции языка
Паскаль - это язык структурного программирования. Это значит, что программа должна выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto.
Реализация последовательности действий (т.е. структуры следования) выполняется с помощью составного оператора:
Begin <последовательность операторов> end
Раздел операторов в программе всегда является составным оператором. Служебные слова begin и end часто называют операторными скобками.
Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется.
Структура и действие условного оператора таковы:
IF < логическое выражение>
Then <оператор 1 >
Else < оператор 2>
Условный оператор может быть неполным, т.е. не содержать часть “else <оператор 2>". В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.
Оператор варианта имеет следующую форму:
Case <выражение> of
<список констант 1>: <оператор 1>;
<список констант 2>: <оператор 2>;
………………………………………
<список констант n>: <оператор n>;
end;
Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.
Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.
Для реализации циклов в Паскале имеются три оператора. Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл "пока") или с постусловием (цикл "до").
Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:
While < логическое выражение> do <оператор >
Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.
Оператор цикла с постусловием имеет форму:
Repeat <последовательность операторов >
Until < логическое выражение>
Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов цикла и т.д.
Оператор цикла с параметром предусматривает повторное выполнение некоторого оператора с одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы.
Форма 1:
For < параметр>: = < выражение 1 > to < выражение 2 > do < оператор>
Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора:
Begin
< параметр >: = <выражение 1 >;
while < параметр> <= < выражение 2> do
begin
< оператор>;
<параметр >: = succ (<параметр >)
end
end.
Если в этом описании отношение <= заменить на >=, а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2.
Форма 2:
For < параметр>: = < выражение 1 > downto < выражение 2 > do < оператор>
2.4 Структуры данных
В Паскале кроме простых типов данных: real, integer, boolean, byte, char, программист по своему желанию может определить новый тип путем перечисления его элементов - перечисляемый тип, который относится к простым ординальным типам.
Описание перечисляемого типа выполняется по схеме:
Type < имя типа> = <список имен >
Например, type operator = (plus, minus, multi, divide);
Интервальный тип - это подмножество другого уже определенного ординального типа, называемого базовым. Интервал можно задать в разделе типов указанием наименьшего и наибольшего значений, входящих в него и разделяющихся двумя последовательными точками, например:
Type days = (mon, tue, wed, thu, fri, sat, sun);
Workdays= mon. fri;
Index=1. .30;
Операции и функции - те же, что и для базового типа. Использование интервальных типов в программе позволяет экономить память и проводить во время выполнения программы контроль присваивания.
Естественно и часто очень удобно группировать однотипные данные в последовательности - массивы, строки символов, объединять разнотипные данные в одном и том же объекте в виде записей. Значительное удобство представляются пользователю в Паскале при организации однотипных величин в виде множества с соответствующим набором операций: объединения, пересечения и т.д. Последовательность однотипных величин переменной длины можно представить в Паскале в виде файла данных и хранить на внешних носителях, используя его в разных программах.
Массив -это последовательность, состоящая из фиксированного числа однотипных элементов. Все элементы массива имеют общее имя и различаются индексами. Индексы можно вычислять, их тип должен быть ординальным. В описании массива используются служебные слова array и of. В описании массива указывается тип его элементов и типы их индексов.
3. Программа
program Gauss_Classic;
uses crt;
type vec=array[1..10] of real;
mas=array[1..10] of vec;
var a:mas;b,x:vec;
h:real;
i,j,k,n:integer;
Begin {Начало основной программы}
Clrscr;
write('Введите количество уравнений: ');read(n);
for i:=1 to n do begin
writeln('Уравнение ',i);
writeln('Введите коэффициенты');
for j:=1 to n do begin
write('a[',i,',',j,']=');read(
writeln('Введите правую часть уравнения');
write('b[',i,']=');read(b[i]); end;
Clrscr;
writeln('Исходная матрица');
for i:=1 to n do begin
write(i);
for j:=1 to n do
write(a[i,j]:10:5);
writeln(b[i]:10:5) end;
writeln; writeln; writeln;
{Прямой ход - исключение переменных}
for i:=1 to n-1 do
for j:=i+1 to n do begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i] end;
x[n]:=b[n]/a[n,n];
{Обратный ход - нахождение корней}
for i:=n-1 downto 1 do begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]; end;
writeln('Корни уравнения');
for i:=1 to n do writeln('x(',i,')=',x[i]:10:5)
readkey
end.
В данной курсовой
работе рассмотрены математические
методы решения систем линейных уравнений:
матричный метод и метод Гаусса
Список используемых источников и литературы
А.В. Могилев, Н.И. Пак, Е.К. Хеннер "Информатика", Москва, ACADEMA, 2000 г.
Паскаль АВС.
.
Информация о работе Решения системы уравнений методом Гаусса