Пример написания программы
⇐ ПредыдущаяСтр 4 из 4 Пусть дана задача, состоящая из четырех частей: 1) вычислить элементы квадратной матрицы А, если sin5i + cos 10j aji = ----------------------; tgij
2) из матрицы А получить вектор Х, если Хi – скалярное произведение побочной диагонали на i –й столбец;
3) упорядочить элементы строк матрицы А по убыванию;
4) вычислить значение функции xi + xn-i+1 Y = ---------------. Xn/2
Алгоритм решения каждой части задачи выполнить в виде отдельной подпрограммы. Текст программы и результаты вычислений при n=6 приведены ниже.
program primer; {-------------------- раздел описания типов -----------------} type Vect = array[1..10] of real; Matr = array[1..10,1..10] of real; {------------------- раздел описания переменных ---------} Var Dev: text; Kanal: string; i, j, n: integer; Y: real; A: matr; X: vect; {------------------- раздел описания подпрограмм ------- } {------------------------ часть первая -----------------------------} procedure MATRICA(N:integer;var A:matr); var i, j: integer; Begin for j:=1 to n do for i:=1 to n do A[j,i]:=(sin(5*i)+cos(10*j))/(sin(i*j)/cos(i*j)); end; {---------------------- часть вторая -------------------------------} Procedure VECTOR (N: integer; A: matr; var X:vect); var i, j: integer; Begin for j:=1 to n do begin X[j]:=0.0; for i:=1 to n do X[j]:=x[j]+A[i,j]*A[i,n-i+1]; end; end; {--------------------- часть третья --------------------------------} Procedure PORJADOK(N:integer; var A:matr); var i,j, k, k1: integer; s: real; Begin for k:=1 to n do begin for i:=1 to n-1 do begin s:=A[k,i]; k1:=i; for j:=i+1 to n do if s<A[k,j] then begin s:=A[k,j]; k1:=j; end; A[k,k1]:=A[k,i]; A[k,i]:=s; end; end; end;
{-------------------- часть четвертая ------------------------------} FUNCTION FUNC(N: integer; X:Vect):Real; var i, n1: integer; s: real; Begin s:=0.0; n1:=n div 2; for i:=1 to n do s:=s+(x[i]+x[n-i+1])/x[n1]; func:=s; end;
{-------------------- ОСНОВНАЯ ПРОГРАММА ------------------------} Begin write('Kanal='); Readln(Kanal); Assign(dev, kanal); Rewrite(dev); write('N='); Readln(n); MATRICA(N,A); {вызов процедуры MATRICA} writeln(dev,' матрица А: '); for j:=1 to n do begin {начало вывода матрицы} for i:=1 to n do write(dev,a[i,j]:10:2); writeln(dev); end; {конец вывода матрицы}
writeln(dev); {перевод строки} VECTOR(N,A,X); {вызов процедуры VECTOR} writeln(dev,' Элементы вектора Х: '); for i:=1 to n do {начало вывода вектора} write(dev, x[i]:10:2); {конец вывода вектора} writeln(dev); PORJADOK(N,A); {вызов процедуры PORJADOK} writeln(dev,' Упорядоченная матрица:'); for i:=1 to n do begin {начало вывода упорядоченной матрицы} for j:=1 to n do write(dev, a[i,j]:10:2); writeln(dev); end; {конец вывода упорядоченной матрицы} writeln(dev); Y:=FUNC(N,X); {присвоение Y значения функции FUNC} writeln(dev,' Значение функции Y=', Y:6:2); {вывод значения функции} Close(dev); END.
Матрица А: -1.15 0.25 5.64 -1.40 -0.00 6.57 0.63 -0.12 1.34 0.18 0.65 2.35 1.32 -3.64 -1.78 0.03 -1.89 0.27 0.06 -0.19 -1.68 0.82 0.84 0.02 0.29 0.43 -0.03 -0.36 -6.24 0.17 6.28 0.91 0.73 0.78 0.00 -0.25 Элементы вектора Х: 26.49 17.56 10.27 3.82 -0.92 36.96
Упорядоченная матрица: 6.28 1.32 0.63 0.29 0.06 -1.15 0.91 0.43 0.25 -0.12 -0.19 -3.64 5.64 1.34 0.73 -0.03 -1.68 -1.78 0.82 0.78 0.18 0.03 -0.36 -1.40 0.84 0.65 0.00 -0.00 -1.89 -6.24 6.57 2.35 0.27 0.17 0.02 -0.25 Значение функции Y= 18.33 Список литературы
1. Умергалин Т.Г., Мухамадеев И.Г. Основы программирования и работы в интегрированной среде Турбо-Паскаль. – Уфа: УНИ, 1992.- 45с. 2. Абрамов В.Г. Система программирования Паскаль. – М.: МЦНТИ, 1987.- 101с. 3. Новичков В.С. и др. Паскаль: Учеб. пособие для сред. спец. учеб. заведений. – М.: Высшая школа, 1990.- 223с. 4. Фаронов В.В. Программирование на персональных ЭВМ в среде Турбо-Паскаль. – М.: Изд-во МГТУ, 1990.- 580с.
ПРИЛОЖЕНИЕ 1
Основные стандартные процедуры и функции
ПРИЛОЖЕНИЕ 2 Структура построения программы в языке Pascal
ПРИЛОЖЕНИЕ 3
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|