Розробка програми
Формування квадратної матриці відповідно до заданого алгоритму через отримання компонентів вектора. Розробка та опис базової програми реалізації алгоритму. Представлення модулів глобальних описів та обслуговування матриці. Результати роботи програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | украинский |
Дата добавления | 13.07.2017 |
Размер файла | 19,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Загальне завдання на курсову роботу
1.По функції f(i,j), що задана, необхідно сформувати квадратну матрицю A = {aij}, i,j = 1,2, …,…, m, де aij = f(i,j).
2.Після чого із цієї матриці відповідно до заданого алгоритму необхідно отримати компоненти вектораX = {xi}, i = 1,2, … , n.
3. Після отримання компонентів вектора X обчислити значення функції U. матриця програма алгоритм
1.Функціяf(i,j)=2j-1(|j - 3| -1,3)Log3 ((|j-5| +|( 6,5 - j )|)).
2. Компоненти вектораX - середнє арифметичні значення елементів i-х стовпців матриці, в рядках якої від'ємні елементи переставлені до начала, а додатні - після них.
3.
Базова програма реалізації алгоритму
ProgramKursovaya_rabota;
Uses
Crt; {Підключаємо бібліотечний модуль}
Label G;
ConstLen=100;
Type
mtr=array[1..Len,1..Len] of real; {Власнийтипmtr}
mas=array[1..Len] of real; {Власнийтип mas}
Varm,n:byte; {Робочізмінні : параметрирозмірності}
i,j:byte; {Параметрициклів}
b,c:real; {Довільнізмінні(дляфункції)}
u:real; {Ім'яфункції}
z:byte;{Робочазмінна}
k:byte; {Змінна,яказапам'ятовуєкількістьвід'ємнихелементівматриці,якіпереставляютьсявперед}
q:real;{Робочазмнна}
p:byte;{Робочазмінна}
x:mas; {МасивХ}
a:mtr; {МатрицяА}
BEGIN
ClrScr;
Writeln('Введите значенние "c" и "b" : ');
Write('c = ');
readln(c);
Write('b = ');
readln(b);
ClrScr;
Writeln('Как вы желаете ввести элементы матрицы?');
Writeln('Если автоматически-введите "1" ,если с клавиатуры - введите "0": ');
readln(z);
ClrScr;
Ifz=1 then{Якщозмінна z=1,тоелементиматриціобрахуються за формулою}
begin
Writeln('Введите размерность матрицы [m x n] :');
Write('m = ');
readln(m);
write('n = ');
readln(n);
ClrScr;
fori:=1 to m do {Зовнішнійциклпорядкам}
begin
forj:=1 to ndo {Внутрішнійциклпостовбцям}
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
ifz=0 then {Якщозмінна z=0,тоелементиматрицівводятьсявручну}
begin
Writeln('Введите размерность матрицы [m x n] :');
Write('m = ');
readln(m);
write('n = ');
readln(n);
ClrScr;
writeln(' Введите элементы матрицы "A" : ');
writeln;
fori:=1 to m do
begin
forj:=1 to ndo
readln(a[i,j]); {Вводимо елементи матриці з клавіатури}
end;
ClrScr;
end
elsegotoG; {Якщо введена цифра не дорівнює 1 або 0, то виконується перехід на мітку G}
writeln(' Матрица "A" : ');
writeln;
fori:=1 to m do
begin
For j:=1 to ndo
write('a[',i,',',j,']=',a[i,j]:6:3,' '); {Виводимо матрицюА}
writeln;
end;
For i:=1 to m do
begin
k:=0;
For j:=1 to ndo
Ifa[i,j]<0 then {Якщо елемент від'ємний}
begin
k:=k+1; {Рахуємо к-сть від'ємних елементів, які переставлятимуться наперед}
q:=a[i,j]; {Запам'ятовуємо від'ємний елемент}
Forp:=j downtok+1 do{Здвигаємо елементи починаючи з j вліво до k+1}
a[i,p]:=a[i,p-1];
a[i,k]:=q; {Намісце k ставимо число нового стовбця}
end;
end;
Writeln;
Writeln(' Матрица "A"(перестановка) : ');
Writeln;
fori:=1 to m do
begin
forj:=1 to ndo
write('a[',i,',',j,']=',a[i,j]:6:3,' '); {Виводимо матрицю А}
writeln;
end;
forj:=1 to ndo
x[j]:=0; {Ініціюємо одномірний масив Х}
fori:=1 to m do
begin
forj:=1 to ndo
x[j]:=x[j]+a[i,j]; {Знаходимо суму елементів кожного стовбця матриці,кожнасума-одинелемент масиву}
end;
Writeln;
Writeln(' Вектор "Х" : ');
Writeln;
For j:=1 to ndo
begin
x[j]:=x[j]/m; {Знаходимо середнє значення кожного стовбця матриці}
Write('x[',j,']=',x[j]:5:3,' '); {Виводимо масив Х}
end;
Writeln;
u:=0;
For i:=1 to ndo
Ifc>=bthen{Задаємоумову,прописанувзавданні}
u:=u+(abs(x[i])-1) {Обраховуємозначенняфункціїпривиконаннізаданоїумови}
elseu:=u+sqr(x[i]); {Обраховуємозначенняфункціїприневиконаннізаданоїумови}
Write(' Функция U=f(x[i]) : ');
Writeln;
Writeln('u = ',u:3:3); {Виводимозначенняфунції}
Writeln;
G: Repeat UntilKeyPressed;
END.
ПРОГРАМАЗВИКОРИСТАННЯМПРОЦЕДУР
Program Proc_Kursova;
Uses Crt; {Підключаємобібліотечниймодуль}
Label G;
ConstLen=100;
Type
mtr=array[1..Len,1..Len] of real; {Власнийтипmtr}
mas=array[1..Len] of real;{Власнийтип mas}
Varm,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; Vars:mtr);
ConstLen=100;
Vari,j:byte;
Begin
writeln(' Матрица "A" : ');
writeln;
fori:=1 to h do
begin
forj:=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;
Ifz=1 then{Якщозмінна z=1,тоелементиматриціобрахуються за формулою}
begin
Writeln('Введите размерность матрицы [m x n] :');
Write('m = ');
readln(m);
write('n = ');
readln(n);
ClrScr;
fori:=1 to m do
begin
forj:=1 to ndo
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
ifz=0 then
begin
Writeln('Введите размерность матрицы [m x n] :');
Write('m = ');
readln(m);
write('n = ');
readln(n);
ClrScr;
writeln(' Введите элементы матрицы "A" : ');
writeln;
fori:=1 to m do
begin
forj:=1 to ndo
readln(a[i,j]);
end;
ClrScr;
end
elsegotoG;
Viv_m(m,n,a); {Оператор процедурививодуматриці}
fori:=1 to m do
begin
k:=0;
forj:=1 to ndo
ifa[i,j]<0 then {Якщоелементвід'ємний}
begin
k:=k+1; {Рахуємо к-стьвід'ємнихелементів,якіпереставлятимуться наперед}
q:=a[i,j]; {Запам'ятовуємовід'ємнийелемент}
forp:=j downtok+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); {Оператор процедурививодуматриці}
forj:=1 ton do
x[j]:=0; {Ініціюємоодномірниймасив Х}
fori:=1 to m do
begin
for j:=1 to ndo
x[j]:=x[j]+a[i,j]; {Знаходимосумуелементівкожногостовбцяматриці,кожнасума-одинелементмасиву}
end;
writeln;
Writeln(' Вектор "Х" : ');
writeln;
forj:=1 to ndo
begin
x[j]:=x[j]/m;
write('x[',j,']=',x[j]:5:3,' ');
end;
Writeln;
u:=0;
fori:=1 to ndo
ifc>=b then u:=u+(abs(x[i])-1)
elseu:=u+sqr(x[i]);
Writeln;
Write(' Функция U=f(x[i]) : ');
Writeln;
Writeln;
Writeln('u = ',u:3:2);
writeln;
G:
Repeat Until KeyPressed;
END.
Модуль глобальних описів
UnitGlob;
Interface
ConstLen=100;
Type
Matrix:array[1..Len,1..Len] of real;
Masiv:array[1..Len] of real;
End.
Модуль обслуговування матриці
Unit Service;
Interface
Uses Crt,Glob;
Procedure Vivod_mtr(st,sb:byte; Vars:Matrix);
Procedure Rezmernost(Varst,sb:byte);
implementation
Procedure Vivod_mtr(st,sb:byte; Vars:Matrix);
Vari,j:byte;
begin
fori:=1 to stdo
begin
forj:=1 to sbdo
write('a[',i,',',j,']=',s[i,j]:6:3,' ');
writeln;
end;
end;
Procedure Rezmernost(Varst,sb:byte);
begin
Writeln('Введите размерность матрицы [m x n] :');
Write('m = ');
readln(st);
write('n = ');
readln(sb);
ClrScr;
end;
End.
Головна програма
Program Kursovaya_rabota;
Uses
Crt,Glob,Service;
Label G;
Varm,n:byte;
i,j:byte;
b,c:real;
u:real;
z:byte;
k:byte;
q:real;
p:byte;
x:masiv;
a:matrix;
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
begin
Rezmernost(m,n);
fori:=1 to m do
begin
forj:=1 to ndo
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
ifz=0 then
begin
Rezmernost(m,n);
writeln(' Введитеэлементыматрицы "A" : ');
writeln;
fori:=1 to m do
begin
forj:=1 to ndo
readln(a[i,j]);
end;
ClrScr;
endelse gotoG;
writeln(' Матрица "A" : ');
writeln;
Vivod_Mtr(m,n,a);
fori:=1 to m do
begin
k:=0;
forj:=1 to ndo if a[i,j]<0 then
begin
k:=k+1;
q:=a[i,j];
forp:=j downtok+1 do
a[i,p]:=a[i,p-1];
a[i,k]:=q;
end;
end;
Writeln;
Writeln(' Матрица "А" (перестановка):');
Writeln;
Vivod_Mtr(m,n,a);
forj:=1 to ndo
x[j]:=0;
fori:=1 to m do
begin
forj:=1 to ndo
x[j]:=x[j]+a[i,j];
end;
writeln;
Writeln(' Вектор "Х" : ');
writeln;
forj:=1 to ndo
begin
x[j]:=x[j]/m;
write('x[',j,']=',x[j]:5:3,' ');
end;
Writeln;
u:=0;
fori:=1 to ndo
if(c>b) or (c=b) then
u:=u+(abs(x[i])-1) else u:=u+sqr(x[i]);
Writeln;
Write(' Функция U=f(x[i]) : ');
Writeln;
Writeln('u = ',u:3:3);
writeln;
G: Repeat UntilKeyPressed;
END.
Результати роботи програми
При m=n=3 і при однаковому форматі виведення для всіх видів даних a[i,j]:6:3; При с=6,b=3. Введення за формулою.
Вихіднаматриця
a[1,1]=1.434 a[1,2]= -1.100a[1,3]=-8.069
a[2,1]=1.434 a[2,2]=-1.100 a[2,3]= -8.069
a[3,1]=1.434 a[3,2]= -1.100a[3,3]= -8.069
Матриця з перестановкою від'ємних елементів
a[1,1]= -1.100a[1,2]= -8.069 a[1,3]= 1.434
a[2,1]= -1.100a[2,2]= -8.069 a[2,3]= 1.434
a[3,1]= -1.100a[3,2]= -8.069a[3,3]= 1.434
МасивХ
x[1]= -1.100x[2]= -8.069x[3]= 1.434
Значення функції: U= 7.604
Результати ручних розрахунків співпадають з прогамними, що свідчить про правільність роботи програми.
Размещено на Allbest.ru
Подобные документы
Отримання компонентів вектора із квадратної матриці відповідно до заданого алгоритму. Обчислення значення функції. Базова програма реалізації алгоритму. Модуль глобальних описів. Сервісний модуль обслуговування матриці. Результати роботи програми.
курсовая работа [19,5 K], добавлен 30.01.2013Формування квадратної транспонованої матриці, отримання з неї компонентів вектора та обчислення значення функції в мові Pascal. Базова програма реалізації алгоритму. Сервісний модуль обслуговування матриці. Головна програма та результати її роботи.
курсовая работа [40,2 K], добавлен 10.03.2011Призначення драйверів та порядок роботи з драйверами в MS-DOS. Розробка драйверів консолі. Структура драйвера та призначення компонентів. Розробка структури алгоритму, програми налагодження драйвера. Опис змінних програми та роботи модулів програми.
курсовая работа [1,0 M], добавлен 22.06.2012Загальна характеристика програмного продукту Турбо Паскаль 7.0, його структура та функції. Методика та головні етапи формування квадратної матриці по заданій формулі. Розробка та лістинг отриманої програми. Аналіз результатів виконання програми.
контрольная работа [145,0 K], добавлен 04.11.2013Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.
курсовая работа [451,5 K], добавлен 15.01.2012Основні відомості з лінійної алгебри. Власні значення і вектори матриці. Метод обертання Якобі. Засоби формування інтерфейсу користувача. Текст програми алгоритму методу обертання Якобі. Вимоги до програмно-технічного забезпечення. Інструкція користувача.
курсовая работа [306,0 K], добавлен 18.11.2015Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.
курсовая работа [852,8 K], добавлен 30.11.2011Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.
курсовая работа [762,8 K], добавлен 03.05.2015Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.
курсовая работа [1,2 M], добавлен 26.07.2013