Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova.docx
Скачиваний:
11
Добавлен:
19.02.2016
Размер:
68.68 Кб
Скачать

Програма з використанням процедур

Program Proc_Kursova;

Uses Crt; {Підключаємо бібліотечний модуль}

Label G;

Const Len=100;

Type

mtr=array[1..Len,1..Len] of real; {Власний тип mtr}

mas=array[1..Len] of real;{Власний тип mas}

Var m,n:byte; {Робочі змінні : параметри розмірності}

i,j:byte; {Параметри циклів}

b,c:real;{Довільні змінні(для функції)}

u:real; {Ім'я функції}

k:byte;{Робоча змінна}

q:real;{Робоча змінна}

p:byte; {Робоча змінна}

z:byte; {Робоча змінна}

x:mas; {Масив Х}

a:mtr; {Матриця А}

Procedure Viv_m(h,v:byte; Var s:mtr);

Const Len=100;

Var i,j:byte;

Begin

writeln(' Матрица "A" : ');

writeln;

for i:=1 to h do

begin

for j:=1 to v do

write('a[',i,',',j,']=',s[i,j]:6:3,' ');

writeln;

end;

end;

BEGIN

ClrScr;

Writeln('Введите значенние "c" и "b" : ');

Write('c = ');

readln(c);

Write('b = ');

readln(b);

ClrScr;

Writeln('Как вы желаете ввести элементы матрицы?');

Writeln('Если автоматически - введите "1" , если с клавиатуры - введите "0": ');

readln(z);

ClrScr;

If z=1 then {Якщо змінна z=1,то елементи матриці обрахуються за формулою}

begin

Writeln('Введите размерность матрицы [m x n] :');

Write('m = ');

readln(m);

write('n = ');

readln(n);

ClrScr;

for i:=1 to m do

begin

for j:=1 to n do

a[i,j]:=(exp((j-1)*ln(2)))*(abs((j-3))-1.3)*((ln((ABS(j-5))+(ABS(6.5-j))))/(ln(3)));

end;

end

else

if z=0 then

begin

Writeln('Введите размерность матрицы [m x n] :');

Write('m = ');

readln(m);

write('n = ');

readln(n);

ClrScr;

writeln(' Введите элементы матрицы "A" : ');

writeln;

for i:=1 to m do

begin

for j:=1 to n do

readln(a[i,j]);

end;

ClrScr;

end

else goto G;

Viv_m(m,n,a); {Оператор процедури виводу матриці}

for i:=1 to m do

begin

k:=0;

for j:=1 to n do

if a[i,j]<0 then {Якщо елемент від'ємний}

begin

k:=k+1; {Рахуємо к-сть від'ємних елементів,які переставлятимуться наперед}

q:=a[i,j]; {Запам'ятовуємо від'ємний елемент}

for p:=j downto k+1 do {Здвигаємо елементи починаючи з j вліво до k+1}

a[i,p]:=a[i,p-1];

a[i,k]:=q; {На місце k ставимо число нового стовбця}

end;

end;

Writeln;

Viv_m(m,n,a); {Оператор процедури виводу матриці}

for j:=1 to n do

x[j]:=0; {Ініціюємо одномірний масив Х}

for i:=1 to m do

begin

for j:=1 to n do

x[j]:=x[j]+a[i,j]; {Знаходимо суму елементів кожного стовбця матриці,кожна сума-один елемент масиву}

end;

writeln;

Writeln(' Вектор "Х" : ');

writeln;

for j:=1 to n do

begin

x[j]:=x[j]/m;

write('x[',j,']=',x[j]:5:3,' ');

end;

Writeln;

u:=0;

for i:=1 to n do

if c>=b then u:=u+(abs(x[i])-1)

else u:=u+sqr(x[i]);

Writeln;

Write(' Функция U=f(x[i]) : ');

Writeln;

Writeln;

Writeln('u = ',u:3:2);

writeln;

G:

Repeat Until KeyPressed;

END.

Модуль глобальних описів

Unit Glob;

Interface

Const Len=100;

Type

Matrix:array [1..Len,1..Len] of real;

Masiv:array [1..Len] of real;

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]