Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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с.

 

 

Date: 2015-08-15; view: 256; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию