Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример написания программы




Пусть дана задача, состоящая из четырех частей:

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

 

Основные стандартные процедуры и функции

Имя функции Обозначение, пояснение Тип аргумента Тип результата
Abs(x) êxê цел., веществ. цел., веществ
Arctan(x) Arctg(x) веществ. веществ.
Cos(x) Cos(x) веществ. веществ.
Sin(x) Sin(x) веществ. веществ.
Exp(x) ex веществ. веществ.
Frac(x) Дробная часть аргумента веществ. веществ.
Inc(x, n) Увеличение значения Х на n целый целый
Dec(x, n) Уменьшение значения Х на n целый целый
Int(x) Целая часть аргумента веществ. веществ.
Ln(x) Ln(x) веществ. веществ.
Odd(x) Проверка на нечетность числа целый логический
Random(x) Получение случайного числа цел., веществ. цел., веществ.
Round(x) Округление до целого числа веществ. целый
Sqr(x) Х2 веществ. веществ.
Sqrt(x) Öх цел., веществ. цел., веществ.
Trunc(x) Усечение значения до целого типа веществ. целый
Pi p = 3,14… - веществ.

 

ПРИЛОЖЕНИЕ 2

Структура построения программы в языке Pascal

 

       
 
   
Раздел описания локальных меток, констант и переменных
 
   
ГРУППА ОПЕРАТОРОВ
 
   
Раздел описания локальных меток, констант и переменных
 
   
ГРУППА ОПЕРАТОРОВ
 

PROGRAM name; Label 1, m1, …; Const Pi=3.14; a=2; dx=.5; Y: array[1..5] of real =((…)); Type vect = array[1..10] of real; Matr = array[1..10,1..10] of real; Var i,j: integer; y: real; X: vect; a: matr; {-------------- процедуры ----------------} Procedure name(a1:тип;…; аn:тип; Var x: тип); Begin End; {---------------- функции ------------------} Function name(а1:тип;…;an : тип):тип; Begin End; {---------- основная программа -------} BEGIN {-----Текст основной программы-----} END.

ПРИЛОЖЕНИЕ 3

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...