Название: Операції над квадратною матрицею
Вид работы: контрольная работа
Рубрика: Информатика
Размер файла: 79.45 Kb
Скачать файл: referat.me-131071.docx
Краткое описание работы: МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний технічний університет України «Київський політехнічний інститут» Курсова робота з курсу «Обчислювальна техніка, алгоритмічні мови і програмне забезпечення»
Операції над квадратною матрицею
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний технічний університет України
«Київський політехнічний інститут»
Курсова робота
з курсу
«Обчислювальна техніка, алгоритмічні мови і програмне забезпечення»
Київ 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
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
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.
Похожие работы
-
Синтез комбінаційної схеми та проектування керуючого автомата Мура
Міністерство освіти і науки України Одеський національний політехнічний університет Кафедра інформаційних систем Курсова робота з дисципліни Схемотехніка еом”
-
Програма керування енергонезалежної памяті AT24C32
Міністерство освіти і науки України Національний технічний університет “Харківський політехнічний інститут” Кафедра “Обчислювальна техніка та програмування”
-
Розрахунок диференційної сиcтеми в MatLab
Міністерство освіти та науки України Національний технічний Університет “ХПІ” кафедра “Обчислювальна техніка та програмування” Звіт з розрахунково-графічного завдання №1
-
Розробка гри Життя
Міністерство освіти і науки України Полтавський національний технічний університет імені Юрія Кондратюка Факультет інформаційних та телекомунікаційних технологій і систем
-
Ознайомлення з MS Excel
Міністерство освіти і науки України Тернопільський національний технічний університет ім. І. Пулюя Кафедра комп’ютерної інженерії Звіт З лабораторної роботи №3
-
База даних по приватних підприємствах регіону
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
-
Операції над множинами
Міністерство освіти і науки України Херсонський національний технічний університет Кафедра економічної кібернетики Контрольна робота з дисципліни:
-
Використання функції слияние в Microsoft Word
Міністерство освіти і науки україни Тернопільський національний технічний університет ім. І. Пулюя Кафедра комп’ютерної інженерії Звіт З лабораторної роботи №4
-
Права доступу до файлів в ОС Unix
Міністерство освіти України Львівський державний університет ім. І. Франка Факультет прикладної математики та інформатики Звіт про виконання практичного завдання з курсу
-
Расчет задач по конструированию промышленных ЭВС
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ “ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ” Кафедра “Обчислювальна техніка та програмування”