Учебная работа. Курсовая работа: Средства языка программирования Паскаль для решения математических задач
Кафедра автоматики и телемеханики
Контрольно-курсовая работа
по курсу «информатика»
Вариант № 15
Выполнил:
студент группы 220611
Блинцов С. В.
Проверил:
помощник кафедры АТМ
Середин О. С.
Тула 2001
Содержание
1.
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
2.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
3.
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Введение……………………………………………………………………………………….
Вычисление значения интеграла функции, данной графически……
Постановка задачки……………………………..………………………………..
Математическая формулировка задачки………………………………………….
Численный способ решения……………………………………………………………
{Инструкция} программеру……………………………………………………………
Схема метода……………………………………………………………………………
текст программки………………………………………………………………………….
{Инструкция} юзеру…………………………………………………………….
Тестовый пример…………………………………………………………………………
Составление таблицы значений функции, данной в виде разложения в ряд………………………………………………………………………….
Постановка задачки……………………………………………………………………..
Математическая формулировка задачки……………………………………………
Численный способ решения…………………………………………………………….. {Инструкция} программеру……………………………………………………………..
Схема метода…………………………………………………………………………….
текст программки……………………………………………………………………………
{Инструкция} юзеру………………………………………………………………
Тестовый пример……………………………………………………………………………
Работа с матрицами………………………………………………………………………..
Постановка задачки…………………………………………………………………..
Математическая формулировка задачки……………………………………………
Численный способ решения…………………………………………………………….. {Инструкция} программеру……………………………………………………………..
Схема метода…………………………………………………………………………….
текст программки……………………………………………………………………………
{Инструкция} юзеру………………………………………………………………
Тестовый пример……………………………………………………………………………
Вывод…………………………………………………………………………………………….
4
5
5
6
7
9
10
10
13
13
16
16
17
17
18
19
22
22
22
26
26
28
28
28
29
32
35
36
37
Введение
В данной контрольно-курсовой работе требуется применить изученные средства языка программирования Паскаль для решения математических задач методом использования численных способов на компе.
нужно написать три программки, решающие поставленные задачки, используя предоставленные математические обоснования. Решение данных задач указывает способности использования компа для различного рода прикладных вычислений.
В первой задачке требуется создать метод и его реализацию для нахождения интеграла функции, данной графически. Ценность данной задачки состоит в том, что не для каждой функции
Во 2-ой задачке нужно составить метод и реализацию данного метода, который дозволит напечатать таблицу значений функции, данной в виде разложения в ряд. Без использования компа процесс вычисления значений таковой функции занимает довольно долгое время. Комп же дает возможность существенно убыстрить этот процесс, что дозволяет, к примеру, проследить изменение значения функции на разных интервалах, т.е. при разных значениях аргумента.
В третьей задачке представлена работа с личным случаем многомерных массивов – матрицей. Внедрение матриц – очень распространенное явление в программировании. Это, к примеру, работа с преобразованием графики, моделирование трехмерных объектов. В арифметике матрицы также нередко употребляются в разных задачках. Умение работать с ними – весьма принципиально.
1. Вычисление значения интеграла функции,
данной графически
1.1. Задания и постановка задачки.
Задание (вариант №15):
Составить программку на языке Turbo Pascal 7.0 вычисления значения интеграла на интервале [a, b] для функции, данной графически.
b
I
= ò
f
(x
)dx
@ I
n = h
(f
1 + f
2 +…+ f
n-1),
a
где h=(b-a)/n – величина шага меж 2-мя примыкающими точками разбиения интервала интегрирования; fi = f(xi) –
Вычисления окончить при выполнении условия |In – I2n| < e, где e>0 – довольно маленькое значения интеграла, вычисленные по данной формуле при количестве разбиения на n и 2n соответственно.
Численные значения всех величин, участвующих в вычислениях, считать параметрами программки и найти их путём ввода.
График функции:
Пояснение к заданию:
Анализируя график функции можно прийти к выводу, что для аналитического задания уравнения функции следует ее разглядывать на разных интервалах:
x <= -c
Þ
y = kx + b
-c < x < =c
Þ
y = Ln(c)
c < x
Þ
y = lg(x),
где
kx + b
=, lg x
= (ln(x))/(ln(10));
x – аргумент функции; y – её значение; c – параметр функции (c>0), вводимые юзером с клавиатуры.
1.2 Математическая формулировка задачки.
Решение почти всех задач (к примеру, определение пути при неравномерном движении, работы переменной силы, расходов воды в реках и каналах, площади поперечного сечения судна) находится при помощи определённого интеграла. время от времени для вычисления определённого интеграла от непрерывной на отрезке [a; b] функции f
(
x
)
можно просто пользоваться формулой Ньютона-Лейбница:
b
S =
ò
f(x) dx
= F(b) – F(a),
a
где F
(
x
) –
первообразная для функции f
(
x
)
[F
¢
(
x
)=
f
(
x
)
].
Но пользоваться формулой Ньютона-Лейбница в большинстве ситуаций не представляется вероятным.
В этом случае употребляются приближённые способы для вычисления определённого интеграла. Они все основаны на том, что геометрически интеграл функции f
(
x
)
в границах от a до b представляет собой площадь криволинейной трапеции, ограниченной графиком данной функции, осью Ox и прямыми x = a, x = b. Разглядим один из этих способов.
1.3 Численный способ решения.
Пусть требуется приближённо вычислить площадь фигуры, ограниченной графиком функции f
(
x
)
и прямыми x
=
a
,
x
=
b
,
y
= 0.
Мысль метода вычисления площади криволинейной трапеции состоит в последующем:
Разобьем отрезок [a; b] на n
равных отрезков точками a
=
x
0 <
x
1 <
x
2 <…<
xn
-1 <
xn
=
b
и на любом из приобретенных отрезков построим прямоугольник, одной стороной которого будет отрезок [xi
,
xi
+1
], а иной – отрезок, длина которого равна f
(
xi
)
. Этот вариант показан на рисунке 2.
Площадь криволинейной трапеции можно приближённо считать равной сумме площадей заштрихованных прямоугольников.
ясно, что если наращивать число отрезков [ xi
,
xi
+1
], т.е. отрезок
[a; b] разбивать на большее число равных отрезков, то сумма их площадей всё с большей точностью будет совпадать с площадью криволинейной трапеции. означает, точность вычисления площади криволинейной трапеции определяется величиной числа n
.
Площадь всякого прямоугольника можно вычислить так. одна из сторон прямоугольника, построенного на отрезке [ xi
,
xi
+1
], равна h
= (
b
—
a
) /
n
, а 2-ая – f
(
xi
)
. Потому площадь «левого» прямоугольника приравнивается s
=
h
*
f
(
xi
) = (
b
—
a
) /
n
*
f
(
xi
)
. Тогда площадь криволинейной трапеции равна сумме площадей всех прямоугольников:
S = (b — a)/n *
f
(
x
0)
+ (b — a)/n *
f
(
x
1)
+ … + (b — a)/n * f(xn-1)
= (b — a)/n *
( f(x0)
+ f(x1)
+…+ f(xn-1)
).
Таковым образом, мы отыскали интеграл функции f
(
x
)
на отрезке [
a
;
b
]
при числе разбиений отрезка n
. Разумеется, что чем больше n
, тем больше точность вычисления значения интеграла; но, при всем этом время, затрачиваемое на решение задачки, также прямо пропорционально числу n
. Отсюда возникает вопросец: как верно избрать n
, чтоб за меньшее время отыскать
Пусть мы знаем, что при разбиении отрезка интегрирования на n частей интеграл функции на данном интервале равен Integral1. Тогда мы можем также отыскать случае, конкретно величина абсолютной погрешности и есть тот аспект, который указывает, следует ли далее продолжать вычисления либо отысканное
Тогда метод решения задачки заключается в последующем:
Поначалу рассчитывается работы (|Integral1 — Integral2|<e) и, если работу следует продолжать, то текущее
сейчас нерешённым остался лишь вопросец о выборе исходного значения числа n. Разумеется, что этот вопросец недозволено разрешить совершенно точно и идиентично для всех видов функций. Это станет разумеется, если разглядеть последующую ситуацию: пусть требуется отыскать определённый интеграл некой функции на отрезке, где она воспринимает некое однообразное значения на длину отрезка интегрирования. При неправильном выборе начального значения n может получиться так, что при разбиении отрезка интегрирования на n и 2n в рассмотрение будут приняты лишь те точки, значения функции в каких совпадают. Но тогда вычисление интеграла завершатся, т.к. разница меж отысканными значениями (Integral1 — Integral2) будет равна нулю и, как следует, очевидно меньше хоть какой погрешности, анализ и исключение схожих ситуаций. Таковым образом, вопросец о выборе исходного значения числа разбиений отрезка остается открытым.
Потому что рассматриваемая в данной задачке функция не представляет особенной трудности, то в предложенном дальше методе решения задачки изначальное
1.4 Описание переменных.
имя переменной
Тип переменной
Значение
N
integer
Число интервалов разбиения
A
real
Нижний предел интегрирования
B
real
Верхний предел интегрирования
С
real
Параметр функции, определяемый юзером
H
real
Шаг интегрирования
E
real
Точность вычислений
X
real
аргумент функции
integral1
real
Значение интеграла при n разбиений
integral2
real
1.5 Схема метода.
1.6 текст программки.
PROGRAM KKP2_1_DUB3;
USES CRT;
var
A, B, C, E, ABS_Integral:real;
PROCEDURE ENTER_DATA(VAR PR_1, PR_2, P_PAR,POGR_PRO:REAL);
BEGIN
ClrScr;
Writeln (‘программка для нахождения значения интеграла на определенном промежутке’);
Writeln;
writeln(‘Введите границы интервала [A,B],при этом (A<B),число C (0<C<1) и точность E (E>0): ‘);
writeln;
REPEAT
BEGIN
writeln(‘Число C: ‘); readln(P_PAR);
if not (P_PAR>0) then
writeln (‘C обязано быть больше 0 !. Повторите ввод.’)
ELSE IF NOT (P_PAR<1) THEN
WRITELN(‘C обязано быть меньше 1!. Повторите ввод.’);
END;
UNTIL ((P_PAR>0) AND (P_PAR<1));
REPEAT
BEGIN
writeln(‘Начало интервала A: ‘); readln(PR_1);
writeln(‘Конец интервала B: ‘); readln(PR_2);
if not (PR_1<PR_2) then
writeln (‘A обязано быть меньше B !. Повторите ввод.’);
END;
UNTIL (PR_1<PR_2);
REPEAT
BEGIN
writeln(‘Точность E: ‘); readln(POGR_PRO);
if not (POGR_PRO>0) then
writeln (‘E обязано быть больше 0 !. Повторите ввод.’);
END;
UNTIL (POGR_PRO>0);
END;
FUNCTION integration(VAR GR_1,GR_2,F_PAR,POGR_FUNC:REAL):real;
VAR
INTEGRAL1, INTEGRAL2, X, H:REAL;
N:INTEGER;
READY:BOOLEAN;
begin
integral1:=0;
integral2:=0;
n:=1;
REPEAT
N:=N*2;
H:=(GR_2-GR_1)/N;
X:=GR_1;
Integral2:=0;
repeat
if x<=(-F_PAR) then
integral2:=integral2+((1/sqr(3))*(ln(F_PAR)-F_PAR))
ELSE IF((-F_PAR<x) and (x<=F_PAR))
THEN integral2:=integral2+ln(F_PAR)
ELSE if (X>F_PAR) THEN
Integral2:=integral2+LN(X)/LN(10);
X:=X+H;
until not (X<=B);
READY:=абс(integral1-integral2)<POGR_FUNC;
INTEGRAL1:=INTEGRAL2;
UNTIL READY;
INTEGRATION:=INTEGRAL2;
END;
BEGIN
ENTER_DATA(A,B,C,E);
ABS_Integral:=INTEGRATION(A,B,C,E);
Writeln;
Writeln( ‘Ответ: ‘);
writeln(‘Интеграл на промежутке от ‘,A:0:2,’ до ‘,B:0:2,’ равен ‘);
writeln (ABS_Integral:1:3,’ с точностью ‘,E:1:3);
ReadKey;
END.
1.7 {Инструкция} юзеру.
Данная программка вычисляет программка вычислит итог и выдаст его (в числовом виде) на экран монитора.
Опосля пуска программки на дисплее покажется описание программки.
В ответ на приглашение к вводу значений следует ввести требуемые величины. программка не претендует на универсальность, потому не стоит вводить запредельные границы интервала либо весьма небольшую ( ~0.001) точность вычислений. Так как скорость выполнения данной программки впрямую зависит от частоты микропроцессора, то на микропроцессорах, различающихся существенно, время вычислений (и допустимая точность) будут различными. В общем случае это определяется опытным методом.
Если все величины заданы корректно и вычисления не прерывались, то через некое время, зависящее от тактовой частоты микропроцессора, программка подсчитает
В случае если требуется повторное вычисление значения, следует поновой запустить программку.
1.8. Тестовый пример.
программка для нахождения значения интеграла на определенном промежутке
Введите границы интервала [A,B], при этом (A<B), число C (0<C<1), число D (D<0) и точность E (E>0):
Число C:
0.9
Число D:
-0.1
Начало интервала A:
5
Конец интервала B:
10
Точность E:
1
Ответ:
Интеграл на промежутке от A до B равен
2.574 с точностью 1.000
программка для нахождения значения интеграла на определенном промежутке
Введите границы интервала [A,B], при этом (A<B), число C (0<C<1), число D (D<0) и
точность E (E>0):
Число C:
0.9
Число D:
-0.1
Начало интервала A:
-0.9
Конец интервала B:
0.9
Точность E:
1
Ответ:
Интеграл на промежутке от A до B равен
-0.300 с точностью 1.000
2. Составление таблицы значений функции, данной в виде разложения в ряд
2.1 Вариант задания и постановка задачки.
Задание (вариант №15):
Создать метод и составить программку вычисления таблицы значений функции, данной в виде разложения в ряд.
При вычислении еще одного члена целенаправлено пользоваться рекурентным выражением:
ак+1
=ск
ак
; к= 0, 1, 2, …,
где ак
— некий к-ый член ряда; ак+1
— последующий к+1
-ый член ряда; ск
— коэффициент, определяемый номером к
.
При составлении программки нужно по способности пользоваться операторами организации циклов WHILE
,
REPEAT
,
FOR
.
Границы интервала вычислений функций a
и b
, величина шага конфигурации аргумента h
и точность вычисления функции e
задаются при вводе. На печать выводятся номер по порядку,
№
Х
f
(
x
)
№ чл.р.
1
2
3
…
Функция:
2.2 Математическая формулировка задачки.
Некие функции недозволено представить в виде конечной формулы, но вычисление значений таковых функций нередко бывает нужно для различного рода расчетов. Такие функции могут быть заданы в виде разложения в нескончаемый ряд, где при нескончаемом увеличении членов ряда любой следующий член меньше предшествующего. Любой член ряда – это конкретное
2.3 Численный способ решения.
Пусть требуется приближённо вычислить
Разумеется, что вычисление значения функции необходимо создавать за конечное число шагов. А означает, нужен некоторый ограничивающий фактор, в качестве которого в нашей задачке будет выступать погрешность вычислений e
(e>0). Как следует, вычислив любой новейший член ряда ak
, нам нужно проверить, не будет ли абсолютная величина еще одного члена ряда меньше, чем величина погрешности e
, т.е. |
ak| <
e
. Если это неравенство не выполнилось, то следует вычислить новейший член ряда, по другому можно заканчивать вычисление и выводить итог работы на экран монитора.
Не считая того, при вычислении еще одного члена целенаправлено пользоваться рекуррентным выражением: ak+1 = ck * ak; k = 0, 1, 2, …, где ak – некий k-ый член ряда; ak+1 — последующий k+1-ый член ряда; ck – коэффициент, определяемый номером k.
В данном случае нахождение коэффициента ck можно произвести последующим образом:
ak
=;
ak
+1
=;
ck
=
Как следует, зная
ak
+1
=ak
*; k = 0, 1, 2, …
2.4 Описание переменных.
имя переменной
Тип переменной
Значение
K
integer
Номер члена ряда
number
integer
Порядковый номер
A
real
Начало интервала
B
real
Конец интервала
H
Шаг интервала
E
Точность
X
Текущее
у
f
Значение функции для текущего аргумента
2.5 Схема метода.
программка создана для вычисления
таблицы значений функции,
данной в виде разложения в ряд.
Введите границы интервала [A,B] ( при этом (A<B) );
точность E (E>0)
и шаг конфигурации аргумента H (H>0)
ДА
НЕТ
НЕТ
ДА
нет
да
нет
да
нет
2.5.1 Схема метода процедуры Table_begin
¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦
2.5.2 Схема метода процедуры Table_end
2.6 текст программки.
Program kkr1_2;
procedure Table_begin;
begin
writeln(‘ ———————————————————————————-‘);
writeln(‘ ¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦’);
writeln(‘ ———————————————————————————-‘);
end;
procedure Table_end;
begin
writeln(‘ ———————————————————————————-‘);
end;
var
K,number:integer;
A,B,H,E,X,y,f:real;
begin
Writeln (‘программка создана для вычисления таблицы значений функции, ‘);
writeln (‘данной в виде разложения в ряд.’);
Writeln;
{————————————————————————}
{Ввод данных}
writeln(‘Введите границы интервала [A,B] ( при этом (A<B) ); точность E (E>0)’);
writeln(‘и шаг конфигурации аргумента H (H>0)’);
writeln;
repeat
begin
writeln(‘Начало интервала A: ‘); readln(A);
writeln(‘Конец интервала B: ‘); readln(B);
if not (A<B) then writeln (‘A обязано быть меньше B !. Повторите ввод.’);
end;
until (A<B);
repeat
begin
writeln(‘Точность E: ‘); readln(E);
if not (E>0) then writeln (‘E обязано быть больше 0 !. Повторите ввод.’);
end;
until (E>0);
repeat
begin
writeln(‘Шаг H: ‘);readln(H);
if not (H>0) then writeln (‘H обязано быть больше 0 !. Повторите ввод.’);
end;
until (H>0);
{————————————————————————}
writeln(‘Вы ввели: ‘);
writeln(‘A=’,A:1:5, ‘ B=’,B:1:5,’ H=’,H:1:5,’ E=’,E:1:5);
writeln;
{————————————————————————}
X:=A;
number:=0;
Table_begin;
repeat
k:=0;
y:=(cos(2*x))/3;
f:=0;
inc(number);
repeat
inc(k);
y:=y*cos(2*(k+1)*x)*(2*k-1)/((2*k+3)*cos(2*k*x));
f:=f+y;
until (абс(y)<E);
if (number mod 18)=0 then
begin
Table_end;
Table_begin;
end;
writeln(‘ ¦’,number:5,’¦’, X:20:13,’ ¦ ‘,(4/Pi)*(0.5-f):16:13, ‘ ¦ ‘ ,k:7,’ ¦’);
X:=X+H;
until not (X<B);
Table_end;
end.
2.7 {Инструкция} юзеру.
Опосля пуска программки, она скажет, что создана для составления таблицы значений функции на определенном интервале и попросит ввести значения, нужные для составления таблицы. К таковым значениям относятся начало и конец интервала, шаг конфигурации аргумента , точность вычислений. Не стоит вводить очень огромных значений (или очень небольшую точность), потому что тогда время работы программки очень возрастет.
Чтоб верно составить требуемую таблицу, программке нужны значения, которые юзер введет в программку. Вводить значения нужно опосля приглашения программки к соответственному действию. Принципиальный момент – если таблица на сто процентов не поместиться на экран, то опосля наполнения крайней строчки, помещающейся на данном экране, программка попросит надавить всякую кнопку и продолжить составление таблицы на чистом экране, т.е. за ранее очистив предшествующую таблицу.
2.8. Тестовый пример.
программка создана для вычисления таблицы значений функции,
данной в виде разложения в ряд.
Введите границы интервала [A,B] ( при этом (A<B) ); точность E (E>0)
и шаг конфигурации аргумента H (H>0):
Начало интервала A:
0.5
Конец интервала B:
7.6
Точность E:
.001
Шаг H:
1
Вы ввели:
A=0.50000 B=7.60000 H=1.00000 E=0.00100
——————————————————————————————
¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦
——————————————————————————————
¦ 1 ¦ 0.50000000000 ¦ 0.70477448832 ¦ 7 ¦
¦ 2 ¦ 1.50000000000 ¦ 0.57770993869 ¦ 8 ¦
¦ 3 ¦ 2.50000000000 ¦ 0.71713212380 ¦ 10 ¦
¦ 4 ¦ 3.50000000000 ¦ 0.66752823117 ¦ 10 ¦
¦ 5 ¦ 4.50000000000 ¦ 0.59106729937 ¦ 10 ¦
¦ 6 ¦ 5.50000000000 ¦ 0.72198206866 ¦ 2 ¦
¦ 7 ¦ 6.50000000000 ¦ 0.60541986599 ¦ 9 ¦
¦ 8 ¦ 7.50000000000 ¦ 0.61517755154 ¦ 10 ¦
——————————————————————————————
3.Работа с матрицами
3.1 Вариант задания и постановка задачки.
Задание (вариант №15):
Вычислить сумму частей матрицы В(К,К), К £ 50, расположенных над 2-мя диагоналями и под ними:
*
3.2 Математическая формулировка задачки.
Данная матрица представляет собой квадратную матрицу размерности K.
Чтоб отыскать сумму частей, находящихся над диагоналями, нужно поначалу найти, что понимается под диагоналями и потом, исходя из этого, находить фактически сумму частей.
3.3 Численный способ решения.
Квадратная матрица, о которой речь идет, это ничто другое, как двумерный массив размерности KxK. нужно найти, сумму каких частей требуется находить. Для этого следует указать, что диагоналями квадратной матрицы являются элементы, обозначаемые как Matrix[i,j], Matrix[i+1,j+1] , … , Matrix[k,k] для главной диагонали и Matrix[k,j] и элементы Matrix[k-1,j+1] , … , Matrix[1,j] для побочной диагонали. Зная это следует просто «перебирать» все элементы, находящиеся над и под диагоналями – другими словами изменять вертикальную составляющую координаты зависимо от «текущей» диагонали.
3.4 Описание переменных.
имя переменной
Тип переменной
Значение
Matrix
array [1..50,1..50] of integer
Матрица, вводимая юзером
i
byte
Счетчик цикла
(для матрицы)
j
byte
Счетчик цикла
(для матрицы)
K
byte
Размерность матрицы,
определяемая юзером
sum
integer
Сумма частей
key
char
«Техно» переменная, равная ответу юзера
3.5 Схема метода.
программка отыскивает сумму частей матрицы,
находящихся над и под ее диагоналями.
да
нет
нет
да
нет
да
нет
да
3.6 текст программки.
Program kkr1_3;
var
Matrix:array [1..50,1..50] of integer;
i,j,K:byte;
sum:integer;
key:char;
begin
Writeln(‘программка отыскивает сумму частей матрицы, находящихся над и под ее диагоналями.’);
Writeln;
{————————————————————————}
{Определение размерности матрицы}
repeat
Writeln(‘Введите размерность матрицы (K<=50): ‘);
readln(K);
if ((K<=1) or (K>50)) then
begin
writeln(‘Таковая размерность невозможна по условию.’);
writeln(‘Повторите ввод.’);
end;
until ( (K>1) and (K<=50) );
{————————————————————————}
{Ввод матрицы}
writeln(‘Введите матрицу’);
for i:=1 to K do
for j:=1 to K do
begin
write(‘Matrix[‘,i,’,’,j,’]=’);
Readln(Matrix[i,j]);
end;
{————————————————————————}
{Вывод матрицы}
Writeln(‘Вы ввели: ‘);
for i:=1 to K do
begin
for j:=1 to K do write(Matrix[i,j],’ ‘);
writeln;
end;
{————————————————————————}
{Вычисление суммы частей. 1-ый проход}
Writeln;
for j:=1 to k do
begin
if j<=(k/2) then
begin
for i:=(j-1) downto 1 do sum:=sum+Matrix[i,j]
end
else
for i:=(j+1) to k do sum:=sum+Matrix[i,j];
end;
{————————————————————————}
{Вычисление суммы частей. 2-ой проход}
for j:=k downto 1 do
begin
if j>(k/2) then
begin
for i:=(k-j) downto 1 do sum:=sum+Matrix[i,j];
end
else for i:=(k-j+2) to k do sum:=sum+Matrix[i,j];
end;
{————————————————————————}
{Вывод результата}
writeln(‘Cумма частей над и под диагоналями равна ‘,sum);
end.
3.7 {Инструкция} юзеру.
программка создана для вычислений суммы частей матрицы расположенных над и под ее диагоналями. Ввод матрицы осуществляется юзером в комфортной для человека математической форме. К примеру:
1 2 3
4 5 6
7 8 9
Для пуска программки требуется набрать ее имя (kkr1_3.exe) в командной строке и надавить Enter. программка выведет короткую информацию о своем назначении и попросить ввести размерность матрицы, которую юзер будет вводить.
Размерность матрицы обязана быть меньше либо равна 50. тут есть особенный момент. Естественно, размерность не быть может равной нулю либо отрицательному числу. Потому при указании этих значений программка скажет о их некорректности и попросит повторить ввод. Можно отрешиться от ввода, нажав всякую кнопку, либо ввести новое программка разумно выдаст итог, что их сумма равна нулю, при всем этом не сообщая о отсутствии таковых частей.
Опосля указания размерности следует ввести саму матрицу. Матрицу более комфортно вводить последующим образом: элементы одной строчки делить пробелами, строчки же – кнопкой Enter. Если будет введено частей больше, чем указанно размерностью матрицей, то такие элементы обрабатываться не будет. Чтоб не было непонимания, юзеру выводится матрица, с которой осуществляются вычисления.
программка посчитает сумму требуемых частей и выдаст итог на экран. Опосля этого, она закончится.
3.8. Тестовый пример.
программка отыскивает сумму частей матрицы, находящихся над и под ее диагоналями.
Введите размерность матрицы (K<=50):
3
Введите матрицу
Matrix[1,1]=12
Matrix[1,2]=45
Matrix[1,3]=89
Matrix[2,1]=74
Matrix[2,2]=23
Matrix[2,3]=5
Matrix[3,1]=4
Matrix[3,2]=15
Matrix[3,3]=65
Вы ввели:
12 45 89
74 23 5
4 15 65
Cумма частей над и под диагоналями равна 60
Вывод.
комп предоставляет комфортную возможность использования вычислительных мощностей для решения трудозатратных и больших математических задач. Почти все задачки, которые ранее (до изобретения компа) или не имели решения, или оно было весьма долгим, сейчас может быть решать в считанные секунды. задачки, которые недозволено решить аналитически, можно решить с внедрением разных численных способов. И тут язык Паскаль выступает как довольно комфортное и обычное средство для перевода метода в компьютерную программку, которую сумеет применять огромное количество людей.]]>