Операції над квадратною матрицею

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык украинский
Дата добавления 09.11.2009
Размер файла 227,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Національний технічний університет України

«Київський політехнічний інститут»

Курсова робота

з курсу

«Обчислювальна техніка, алгоритмічні мови і програмне забезпечення»

Київ 2009

Зміст

1. Завдання. Математичне розшифрування завдання

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

3. Виведення результатів роботи програми

4. Опис роботи програми

Список літератури

1. Математичне розшифрування завдання

На квадратному аркуші картатого паперу розміру 8*8 кліток намальовано декілька прямокутників, кожний прямокутник складається з кліток, прямокутники не накладаються один на одного й не стикаються. Дана цілочисельна квадратна матриця порядку 8, у якій елемент рівняється «0», якщо відповідна клітка належить якому-небудь прямокутнику, і відмінний від «0» в іншому випадку. Визначити кількість прямокутників.

Матриці. Основні означення

Прямокутна таблиця чисел а (I, j), і = 1,2,…, m; (j = 1,2,…, n, складена з m рядків та n стовпців і записана у вигляді:

або

називається матрицею. Поняття матриці вперше ввели англійські математики У. Гамільтон і Д. Келі. Коротко матрицю позначають так:

Де - елементи матриці, причому індекс i в елементі означає номер рядка, а j - номер стовпця, на перетині яких стоїть даний елемент.

Добуток числа рядків m на число стовпців n називають розміром матриці і позначають mxn. Якщо хочуть вказати розмір mxn матриці А, то пишуть .

Матриця, в якої число рядків дорівнює числу стовпців, називається квадратною. Кількість рядків (стовпців) квадратної матриці називається її порядком. Матриця, у якої всього один рядок, називається матрицею-рядком, а матриця, у якої всього один стовпець, - матрицею-стовпцем. Дві матриці та називаються рівними, якщо вони однакових розмірів і мають рівні відповідні елементи:. Нульовою називається матриця, у якої всі елементи дорівнюють нулю. Позначається така матриця буквою О. В квадратних матрицях виділяють головну і побічну діагональ.

Для виконання завдання потрібно знаходити суму елементів матриці стовпця і рядка, на які вказують індекси елемента, і замінити цією сумою сам елемент матриці.

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

Private Sub Command1_Click()

Const n = 5

Dim i, j As Byte

Dim a (n, n) As Byte, m(56) As Byte

n1 = 0

n2 = 0

ch = 0

ch1 = 0

For i = 1 To n

For j = 1 To n

Randomize

a (i, j) = Rnd(1)

Next j

Next i

For i = 1 To n

m(i) = a (i, n - 1)

For j = 1 To n

Print a (i, j),

Next j

Print

Next i

Print «-»

For i = 1 To n

For j = 1 To n

If a (i, j) = 0 Then

n1 = n1 + 1

If n1 > 1 Then

a (i, j - 1) = 1

End If

Else

If n1 > 1 Then

a (i, j - 1) = 1

ch = ch + 1

End If

n1 = 0

End If

Next j

If n1 > 1 Then

ch = ch + 1

End If

n1 = 0

Next i

For i = 1 To n

If a (i, n) = 0 And m(i) = 0 Then

a (i, n) = 1

End If

Next i

Print «===============================»

For j = 1 To n

For i = 1 To n

If a (i, j) = 0 Then

n1 = n1 + 1

Else

If n1 > 1 Then

ch = ch + 1

End If

n1 = 0

End If

Next i

If n1 > 1 Then

ch = ch + 1

End If

n1 = 0

Next j

Print «-»

For i = 1 To n

For j = 1 To n

Print a (i, j),

Next j

Print

Next i

Print «*****************************»

Print ch

End Sub

Private Sub Command2_Click()

End

End Sub

3. Виведення результатів роботи програми

Після запуску програми в Visual Basic на моніторі з`являється вікно програми, на якому виведено дві кнопки: «розрахунок» і «кінець».

Для того щоб запустити програму, ми клацаємо на «розрахунок», і програма за допомогою оператора randomize починає складати довільну матрицю, в якій містяться лише одиниці та нулі.

Тобто, у цій матриці склалося три прямокутники. Для завершення програми натискаємо на кнопку «кінець».

4. Опис роботи програми

Формування значень елементів масиву випадковим чином і з клавіатури і виведення їх на екран.

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

Дуже часто значення елементів масиву вводяться з клавіатури. Цей спосіб завдання інформації занадто трудоємок при роботі з масивами великих розмірів. Для налагодження широкого класу алгоритмів такої введення інформації повинен бути замінений формуванням елементів масиву випадковим чином. Для цього використовують вбудовані засоби Турбо Паскаля: процедуру Randomize та функцію Random. Ви вже стикалися з цими коштами. Сьогодні ж наша задача створити процедуру введення елементів в масив і процедуру виведення елементів на екран.

Наведемо приклад заповнення масиву випадковими числами. Ця процедура повинна прийняти в якості вхідних параметрів масив, кількість рядків і стовпців, задані користувачем з клавіатури в основному розділі операторів. Так як наша процедура буде впливати на порожній вихідний масив, то його ми повинні передати по посиланню. Кількість рядків і стовпців достатньо передати копіями за значенням.

Procedure InsertMas1 (Var X: MyArray; n, m: integer); 

Var 

i, j: integer; 

Begin 

Randomize; 

for i:= 1 to n do {пробегая последовательно строки массива} 

for j:= 1 to m do {просмотрим каждую ее ячейку текущего столбца} 

X [i, j]:= Random(50); {и запишем туда случайное число, которое сформирует компьютер в диапазоне [0..49]} 

End; комп'ютер Procedure InsertMas1 (Var X: MyArray; n, m: integer); 

Var 

i, j: integer; 

Begin 

Randomize; 

for i:= 1 to n do {пробегая последовательно строки массива} 

for j:= 1 to m do {просмотрим каждую ее ячейку текущего столбца} 

X [i, j]:= Random(50); {и запишем туда случайное число, которое сформирует компьютер в диапазоне [0..49]} End;

Тепер, щоб скористатися цією процедурою, досить викликати її в основному розділі програми, передавши їй параметри.

Розглянемо процедуру виведення елементів масиву на екран. Для того, щоб вивести наш масив на екран у вигляді таблиці, поставимо при переході до нової рядку оператор writeln і застосуємо формат виводу елементів (: 5).

Procedure PrintMas (X: MyArray; n, m: integer); 

Var 

i, j: integer; 

Begin 

for i:= 1 to n do {пробегая последовательно строки и столбцы массива} 

begin 

for j:= 1 to m do 

write (X[i, j]:5); {выведем элемент массива на экран, выделив ему 5 знакомест} 

writeln; {переход на новую строку} 

end; 

End;

Завдання. Наберіть програму-шаблон для роботи з двовимірні масивами. Як ви вже знаєте з попередньої теми, вона повинна містити дві процедури введення та процедуру виведення елементів заданого масиву. Основний розділ операторів повинен містити діалог з користувачем і захист програми від введення неприпустимих значень для кількості рядків і стовпців. Збережіть файл у відповідному каталозі на своїй дискеті.

Розгляньте процедуру, вирішальну наступну задачу.

Задача. Дана таблиця дійсних чисел. Порахуйте суму всіх чисел у таблиці.

Procedure Summa (A: MyArray; n, m: integer; Var S: real); 

Var 

i, j: integer; 

Begin 

S:= 0; 

for i:= 1 to n do 

for j:= 1 to m do 

S:= S+A [i, j]; 

End.

Зверніть увагу, що всередині циклу з лічильником i організовано цикл з лічильником j. В результаті сумуються на початку числа 1_й рядки (i = 1, при j = 1, 2,…, m), потім сумуються числа 2_й рядки (i = 2, при j = 1, 2,…, m) і т.д.

У даній програмі в тілі одного циклу міститься інший цикл. Такі цикли, як Ви вже знаєте, називаються вкладеними. Причому цикл з лічильником i є зовнішнім, а цикл з лічильником j - внутрішнім. Не забувайте основне правило при написанні вкладених циклів: останній оператор внутрішнього циклу має або передувати, або збігатися з останнім оператором зовнішнього циклу. Вкладені цикли нагадують матрьошок, вкладених одна в іншу.

Список літератури

1. «Турбо Паскаль 7.1» - Бучко Д.І., Харків: «Харківська політехніка», 2005.

2. «Інформатика, алгоритмічні мови» - Олійник Н.В., Сидоренко Ю.В., Львів: «Замкова гора», 2004.

3. Web, Internet.


Подобные документы

  • Програмування масиву і сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві. Лістинг програми та блок-схема алгоритму і результат виконання.

    курсовая работа [453,1 K], добавлен 06.06.2012

  • Отримання компонентів вектора із квадратної матриці відповідно до заданого алгоритму. Обчислення значення функції. Базова програма реалізації алгоритму. Модуль глобальних описів. Сервісний модуль обслуговування матриці. Результати роботи програми.

    курсовая работа [19,5 K], добавлен 30.01.2013

  • Загальна характеристика програмного продукту Турбо Паскаль 7.0, його структура та функції. Методика та головні етапи формування квадратної матриці по заданій формулі. Розробка та лістинг отриманої програми. Аналіз результатів виконання програми.

    контрольная работа [145,0 K], добавлен 04.11.2013

  • Особливості матриць в MATLAB, їх введення з клавіатури та завантаження з інших джерел. Доступ до елементів матриці. Операції над матрицями (векторами). Поелементне перетворення матриці. Характеристика спеціальних функцій, що генерують поширені матриці.

    реферат [333,9 K], добавлен 25.11.2014

  • Стандарти OpenMP i MPI як основні засоби програмування для багатопроцесорних систем. Розробка програми паралельного розрахунку інтеграла для функції з певним кроком дискретизації, паралельної програми множення квадратної матриці на квадратну матрицю.

    курсовая работа [2,5 M], добавлен 11.12.2013

  • Бібліотеки для дій з розрядно-логарифмічними діями. Перевірка оберненої матриці за допомогою одиничної у розрядно-логарифмічній формі. Код розрахунку оберненої матриці за методом Крамера. Алгоритми додавання, віднімання, множення, ділення чисел у РЛ.

    курсовая работа [18,6 K], добавлен 17.10.2013

  • Порядок обробки матриць. Обчислювання, надрукування елементів матриці С, кожен елемент якої дорівнює сумі відповідних елементів матриць А і В. Знаходження середнього значення серед усіх елементів масиву С. Розрахунок значень функцій на заданому інтервалі.

    контрольная работа [215,4 K], добавлен 12.09.2010

  • Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.

    курсовая работа [451,5 K], добавлен 15.01.2012

  • Практична реалізація гри в "хрестики-нулики" в середовищі програмування Turbo C++ версії 3.0. Моделювання ігрового поля квадратною матрицею третього порядку. Процедури програми гри. Створення програми Tic_Tac, що дозволяє людині грати у гру з комп’ютером.

    курсовая работа [145,8 K], добавлен 23.04.2010

  • Формування квадратної транспонованої матриці, отримання з неї компонентів вектора та обчислення значення функції в мові Pascal. Базова програма реалізації алгоритму. Сервісний модуль обслуговування матриці. Головна програма та результати її роботи.

    курсовая работа [40,2 K], добавлен 10.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.