Міністерство освіти і науки україни
ДЕРЖАВНИЙ УНІВЕРСИТЕТ ТЕЛЕКОМУНІКАЦІЙ
НАВЧАЛЬНО-НАУКОВИЙ ІНСТИТУТ ТЕЛЕКОМУНІКАЦІЙ ТА ІНФОРМАТИЗАЦІЇ
КАФЕДРА ОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИ
КУРСОВА РОБОТА
з дисципліни «Інформатика»
Студентa I курсу, групи ІМД-11
Факультету Інформаційних технологій
Нікітенка Олександра Руслановича
Залікова книжка № 14ІМ20
Перевірив: доцент Качанов П.Т.
Оцінка:
Дата:
Київ 2015
|
|
|
|
|
|
|
|
|
|
ЗАВДАННЯ НА КУРСОВУ РОБОТУ
Загальне завдання на курсову роботу
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.
Індивідуальне завдання
(Вар № 20)
1.Функція f(i,j)= 2j-1(|j – 3| -1,3)Log3 ((|j-5| +|( 6,5 – j )|)).
2. Компоненти вектора X - середнє арифметичні значення елементів i-х стовпців матриці, в рядках якої від’ємні елементи переставлені до начала, а додатні - після них.
3.
Базова програма реалізації алгоритму
Program Kursovaya_rabota;
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; {Ім'я функції}
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;
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 {Якщо змінна z=0,то елементи матриці вводяться вручну}
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; {Якщо введена цифра не дорівнює 1 або 0,то виконується перехід на мітку G}
writeln(' Матрица "A" : ');
writeln;
for i:=1 to m do
begin
For j:=1 to n do
write('a[',i,',',j,']=',a[i,j]:6:3,' '); {Виводимо матрицю А}
writeln;
end;
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;
Writeln(' Матрица "A"(перестановка) : ');
Writeln;
for i:=1 to m do
begin
for j:=1 to n do
write('a[',i,',',j,']=',a[i,j]:6:3,' '); {Виводимо матрицю А}
writeln;
end;
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]); {Обраховуємо значення функції при не виконанні заданої умови}
Write(' Функция U=f(x[i]) : ');
Writeln;
Writeln('u = ',u:3:3); {Виводимо значення фунції}
Writeln;
G: Repeat Until KeyPressed;
END.