Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Формування квадратної матриці

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Перші два способи дозволяють розмішувати дані компактніше (мають більшу локальність), однак це одночасно і обмеження: такі масиви мають бути «прямокутними», тобто кожний рядок повинен містити однакову кількість елементів. Розташування «масив з масивів», з іншого боку, не дуже ефективне щодо використання пам’яті (необхідно зберігати додатково інформацію про вказівники), але знімає обмеження… Читати ще >

Формування квадратної матриці (реферат, курсова, диплом, контрольна)

Міністерство освіти і науки, молоді та спорту України Дніпропетровський радіоприладобудівний коледж КУРСОВА РОБОТА з дисципліни «Програмування»

ДРПК. 20 174.001

Керівник: Вороніна С.В.

Виконавець: Андреєв І.О.

Завдання на курсову роботу з дисципліни «Програмування «

Загальне завдання на курсову роботу

1. По функції f (i, j) що задана, необхідно сформувати квадратну матрицю z, i, j=l, 2,3,4.,."m.

2. Після цого із цієї матриці відповідно до заданого алгоритму необхідно отримати вектор X.

3. Після отримання компонентів вектора X обчислити значення функції U.

Індивідуальне завдання

1. A (i, j) = 2i-1 (|j-3|-l, 3)2j (i-3,4)(j/3-l)

2. Вектор Xскалярний добуток і-го рядку матриці на 1-ий стовпчик який необхідно перетворити так, щоб на початку, були додатні елементи, а далі від'ємні у тому ж порядку, в якому вони розміщувались попередньо

3. Знайти функцію

U=f (x[i])

Видано_

Виконано_

До захисту__

Зміст

Вступ

Постановка завдання

Пояснювальний текст

Блок-схема алгоритму

Лістинг программи

Результат виконання программи

Література

Вступ

З поняттям «масив» доводиться стикатися при вирішенні науково-технічних і економічних завдань обробки сукупностей великої кількості значень.

Масивом називається скінчена послідовність змінних одного типу, які мають однакове ім'я та різняться порядковим номером.

Індексом називається порядковий номер елемента масиву.

В програмуванні масив — одна з найпростіших структур даних, сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві.

Масив може бути одновимірним (вектором), та багатовимірним (наприклад, двовимірною таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких збігається з розмірністю масиву.

У переважній більшості мов програмування масив є стандартною вбудованою структурою даних.

Масиви ефективні при звертанні до довільного елементу, яке відбувається за постійний час (О(1)), однак такі операції як додавання та видалення елементу, потребують часу О(п), де п — розмір масиву. Тому масиви переважно використовуються для зберігання даних, до елементів яких відбувається довільний доступ без додавання або видалення нових елементів, тоді як для алгоритмів з інтенсивними операціями додавання та видалення, ефективнішими є зв’язані списки. Інша перевага масивів, яка є досить важливою — це можливість компактного збереження послідовності їх елементів в локальній області пам’яті (що не завжди вдається, наприклад, для зв’язаних списків), що дозволяє ефективно виконувати операції з послідовного обходу елементів таких масивів.

Масиви е дуже економною щодо пам’яті структурою даних. Для збереження 100 І цілях чисел в масиві необхідно рівно в 100 разів більше пам’яті, ніж для збереження І одного числа (плюс, можливо, ше декілька байтів). В той же час, усі структури І даних, які базуються на вказівниках, потребують додаткової пам’яті для збереження [самих вказівників разом з даними. Однак, операції з фіксованими масивами ускладнюються тоді, коли виникає необхідність додавання нових елементів у вже заповнений масив. Тоді його необхідно розширювати, що не завжди можливо і для таких задач слід використовувати зв’язані списки, або динамічні масиви.

У випадках, коли розмір масиву є досить великий та використання звичайного І звертання за індексом стає проблематичним, або великий відсоток його комірок не використовується, слід звертатись до асоціативних масивів, де проблема індексування великих обсягів інформації вирішується більш оптимально.

З тої причини, що масиви мають фіксовану довжину, слід дуже обережно ставитись до процедури звертання до елементів за їхнім індексом, тому що намагання звернутись до елементу, індекс якого перевищує розмір такого масиву (наприклад, до елементу з індексом 6 в масиві з 5 елементів), може призвести до непередбачуваних наслідків.

Слід також бути уважним щодо принципів нумерації елементів масиву, яка в одних мовах програмування може починатись з 0, а в інших — зі.

Збереження одновимірного масиву в пам’яті є тривіальним, тому що сама пам’ять комп’ютера є одновимірним масивом. Для збереження багатовимірного масиву ситуація ускладнюється. Припустимо, що ми хочемо зберігати двовимірний масив наступного виду:

[]

Найпоширеніші способи його організації в пам’яті такі:

Розташування «рядок за рядком». Це найбільш уживаний на сьогодні спосіб, І який зустрічається у більшості мов програмування.

Розташування «стовпчик за стовпчиком». Такий метод розташування масивів І використовується, зокрема, в мові програмування Fortran

Масив з масивів. Багатовимірні масиви репрезентуються одновимірними 1 масивами вказівників на одновимірні масиви. Розташування може бути як «рядок за рядком» так і «стовпчик за стовпчиком».

Перші два способи дозволяють розмішувати дані компактніше (мають більшу локальність), однак це одночасно і обмеження: такі масиви мають бути «прямокутними», тобто кожний рядок повинен містити однакову кількість елементів. Розташування «масив з масивів», з іншого боку, не дуже ефективне щодо використання пам’яті (необхідно зберігати додатково інформацію про вказівники), але знімає обмеження на «прямокутність» масиву.

Постановка завдання Загальне завдання для курсової роботи

1. По функції f (i, j) що задана, необхідно сформувати квадратну матрицю A, i, j=l, 2,3,4.,."m.

2. Після цого із цієї матриці відповідно до заданого алгоритму необхідно отримати вектор X.

3. Після отримання компонентів вектора X обчислити значення функції U.

Індивідуальне завдання

1. A (i, j) = 2(|j-3|-l, 3)2j (i-3,4)(j/3-l)

2. Вектор Xскалярний добуток і-го рядку матриці на 1-ий стовпчик який необхідно перетворити так, щоб на початку, були додатні елементи, а далі від'ємні у тому ж порядку, в якому вони розміщувались попередньо

3. Знайти функцію

U=f (x[i])

Пояснювальний текст Опис роботи алгоритму програми Структура програми складається з імені програми, блоку оголошень, блоку операторів і крапки наприкінці програми. Заголовок прогрими мае вигляд:

Program kursvaia;

Де kursovaia — ім'я програми. Може полягати як з латинських букв так і з цифр і символів без пропусків. Не може бути просто числовим значенням. Заголовок програми є необов’язковим в лістингу програми. Блок оголошення може містити 5 розділів:

1- розділ оголошення міток (label). Мітка — це десяткове число, без знаку відокремлюване від оператора двокрапкою. Мітка може мати числове значення від 1 до 9999.

2- розділ оголошення постійних (const). Вказуються імена констант і їх параметри (наприклад, а=50;).

3- розділ оголошення типів (type). Вказується ім'я типа і в дужках перераховуються всі значення даного типа.

4- розділ оголошення змінних (var). Перераховуються всі змінні що беруть участь в завданні, і через двокрапку визначається їх тип.

5- розділ оголошення підпрограм (функцій і процедур).

У написаній програмі присутні розтйл оголошення змінних і розділ оголошення підпрограм.

Я обрав мову Pascal для реалізації програми курсової роботи тому, що я на даний час вивчаю її та використовую саме її. Для виконання цього завдання можливо використати будь яку високорівневу мову програмування.

елемент масив лістинг алгоритм

Блок-схема алгоритму

Procedure swapper

Procedure move

Function getit

Function summer

Лістинг програми

Program kursovaia;

uses crt;

var

A:array [1.100,1.100] of real;

Xi:array [1.100] of real;

i, j, m, n, Xn, Xz, k, jj, wtf: integer;

u, ir, jr, sclrXi, swap, zero: real;

procedure swaper; //процедура «swap»

begin

repeat

begin

jj:=j-1;

swap:=A[1,j];

A[1,j]:= A[1,jj];

A[1,j]:=swap;

k:=k-1;

end;

until k<=0;

end;

procedure move; //Процедура смещения отрицательных элементо

begin

for j:=1 to m do

if A[1,j]<0 then

swaper

else

k:=k+1;

end;

function getit (var prod: real; zn: integer):real; //Процедура нахождения

begin //произведение i-го ряда

prod:=0; //матрицы на 1-й столбец

for j:=1 to xn do

begin

prod:=prod+(A[zn, j]*A[j, 1]);

end;

getit:=prod;

end;

function summer (var it: integer):real; //Процедура нахождения функции U от i

begin

wtf:=(n+1)-it;

summer:=Xi[i]*Xi[wtf];

end;

begin

ClrScr;

zero:=0;

writeln ('введите количество строк n');

readln (n);

writeln ('Bведите количество столбцов m');

readln (m);

k:=0;

if n>m then //Оприделение размерности массива X

begin

Xn:=n;

Xz:=m;

endelse

begin

Xn:=m;

Xz:=n;

end;

ClrScr;

Writeln ('Maccив');

for i:=1 to n do //Цикл задания 1 (Формирование массива)

Begin

for j:=1 to m do

begin

ir:=i;

jr:=j;

A[i, j]: =(exp ((ir-1)*ln (2)))*(abs (jr-3)-1.3)*(exp (jr*ln (2)))*(ir-3.4)*((jr/3)-1);

Write (A[i, j]: 3:4, ' ');

end;

writeln;

end; //Конец формирования масива

writeln;

writeln ('масив смешения отрецательных элементов');

move; //Процедура смещения отрицательных элементов

for i:=1 to n do

begin

for j:=1 to m do

begin

write (A[i, j]: 3:4,' ');

end;

writeln;

end; //Конец процедуры смещения отрицательных элементов

writeln;

for i:=1 to xn do //Нахождение вектора X

begin

Xi[i]: =getit (zero, i);

writeln ('X[', i,']= ', Xi[i]);

end; //Конец нахождения вектора X

u:=0; //Очистка переменной U

for i:=1 to n do //Нахождение функции U

u:=u+summer (i);

writeln;

writeln ('U=', u);

end.

Результати виконання програми

Література

1. Баженов В. А., Венгерский П. С., Горлач В. М. та ін. Інформатика. Комп’ютерна техніка. Комп’ютерні технології. Підручник для студентів вищих закладів освіти, «Каравела», 2003 г.

2. Глинский Я. Н., Анохин В. Е., Ряжская В. А. Turbo Pascal 7.0. и Delphi. Учебное пособие. — DiaSoft, 2001 г.

3. Зеленяк О. П. Практикум на Turbo Pascal. — DiaSoft, 2001 г.

4. Руденко В. Д., Макарчик А. М., Патланжоглу М. А. Курс информатики, Киев, 1998 г.

5. Симонович С. В. Информатика. Базовый курс. — Питер, 1999 г.

6. Симонович С. В., Евсеев Г., Алексеев А. Специальная информатика. Учебное пособие. — ACSTпресс, 1999 г.

7. Тринский Я. Н. Turbo Pascal 7.0 и Delphi. Учебное пособие. — Diasoft, 2001 г.

8. Фараонов В. В. Турбо Паскаль 7.0. Учебное пособие. — Нолидж, 1997 г.

9. Федоренко Ю. Алгоритмы и программы на Турбо Паскаль. — Питер, 2001 г.

Показати весь текст
Заповнити форму поточною роботою