Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

pencil
Узнай стоимость на индивидуальную работу!
icon Цены в 2-3 раза ниже
icon Мы работаем
7 дней в неделю
icon Только проверенные эксперты

Разработка программного модуля который находит сумму угловых элементов матрицы и сумму элементов

Тип Реферат
Предмет Информатика
Просмотров
1031
Скачиваний
865
Размер файла
101 б
Поделиться

Разработка программного модуля который находит сумму угловых элементов матрицы и сумму элементов

Содержание

Введение

Постановка задачи

Проектирование программного модуля

Реализация программного модуля

Тестирование программного модуля

Заключение

Список использованных источников


Введение

Целью данной курсовой работы является разработка программного модуля который находит сумму угловых элементов и сумму элементов, находящихся над главной диагональю.

В первом разделе рассматривается математическое описание, представлены входные и выходные данные, обработка ошибок. Во втором разделе содержится структурная диаграмма программного модуля, а также блок-схема алгоритма программы с подробным описанием всех ее блоков. В третьем разделе представлен код программы на языке VBA и содержится описание всех использованных в написании программного модуля операторов языка VBA. В четвертом разделе приводится тестирование программного модуля. Затем дано заключение и приведен список использованных источников.


1. Постановка задачи

1.1 Математическая модель задачи

Для выполнения поставленной задачи необходимо составить программный модуль, который находит либо сумму угловых элементов, либо сумму элементов, расположенных над главной диагональю, в зависимости от действия пользователя. Если предположить, что размерность квадратной матрицы равна n, то:

1. Элемент матрицы A=a(i,j) будет угловым, если i=n либо j=n

2. Элемент матрицы A=a(i,j) будет находится над главной диагональю, если j будет больше i. Т.е. число столбцов должно превышать число строк.

1.2 Входные данные

К вводным данным для данного курсового проекта относятся:

- ввод значения n – размерности матрицы;

Требования к входным данным:

-n должно быть целым числом

-n должно быть положительным числом

-n должно быть больше либо равно двум

- ввод исходных данных осуществлять в соответствующие поля ввода формы.

1.3 Выходные данные

К выходным данным для данного курсового проекта относятся:

- вывод на форму заполненной матрицы;

Требования к выходным данным:

- выходные данные выводятся в числовом виде.


1.4 Обработка ошибок

При составлении программы важно, чтобы сама программа анализировала данные, которые вводит пользователь, и в случае ввода некорректных данных, либо информировала пользователя, либо пыталась программно исправить ошибки, что более предпочтительно. Таким образом, в случае ввода некорректных данных имеется два варианта развития событий:

1. Предотвращение ошибок: программно анализировать вводимые или вычисляемые данные и в случае, если они могут приводить к ошибке, информировать пользователя о том, что введенные им данные ошибочны и могут привести к неправильной работе программы.

2. Обработка ошибок: в случае появления ошибки, программа замечает ее и пытается самостоятельно исправить ее, без ведома пользователя.

При создании приложений надо сочетать оба подхода, применяя в каждом конкретном случае и для каждой возможной ошибки тот, который кажется разработчику наиболее эффективным.

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


2. Проектирование программного модуля

2.1 Структурная диаграмма программного модуля

Структурная диаграмма программного модуля представлена на рисунке 1.

Рисунок 1 – Структурная диаграмма программного модуля

UserForm1_Initialize() – процедура начальной инициализации пользовательской формы.

ButtonCreate_click() – процедура, срабатывающая при нажатии кнопки «Заполнить матрицу», которая производит проверку исходных данных и создание матрицы матрицы.

ButtonClear_click() – процедура, срабатывающая при нажатии кнопки «Очистить», которая очищает форму.

ButtonExit_click() – процедура, срабатывающая при нажатии кнопки «Выход», которая выходит из программы.

BtnTask1_click() – процедура, срабатывающая при нажатии кнопки “задание 1”.

BtnTask2_click() – процедура, срабатывающая при нажатии кнопки “задание 2”.

BtnExcel_click() – поцедура, срабатывающая при нажатии кнопки “На лист Excel”, которая прячет пользовательскую форму и выводит данные, представленные на листе Excel.

2.2 Разработка схемы программного модуля

2.2.1 Нахождение суммы угловых элементов

Схема программного модуля для нахождения угловых элементов представлена на рисунке 2.

Рисунок 2


2.2.2 Нахождение суммы элементов, находящихся над главной диагональю

Нахождение суммы элементов, находящихся над главной диагональю представлено на рисунке 3.

Рисунок 3 – Нахождение суммы элементов, расположенных выше главной диагонали

Описание блок-схемы 1:

Блок 1 – начало цикла;

Блок 2 – чтение размерности матрицы, заданной пользователем;

Блок 3-5 – цикл, в котором находится сумма угловых элементов;

Блок 4-5 – подцикл, в котором проверяется строка матрицы на наличие угловых элементов;

Блок 6 – записываем найденные данные в ячейку листа Excel;

Блок 7 – выводим найденное значение на экран.

Описание блок-схемы 2:

Блок 1 – начало цикла;

Блок 2 – чтение размерности матрицы, заданной пользователем;

Блок 3-5 – цикл, в котором находится сумма элементов над главной диагональю;

Блок 4-5 – подцикл, в котором проверяется строка матрицы на наличие элементов, расположенных над главной диагональю;

Блок 6 – записываем найденные данные в ячейку листа Excel;

Блок 7 – выводим найденное значение на экран.

2.3 Разработка пользовательского интерфейса

При разработке интерфейса необходимо придерживаться следующих принципов:

1. соблюдать стандарты при выборе цветовой палитры и элементов ввода-вывода;

2. интерфейс является основным, а не процессы ввода-вывода;

3. состав и форма представления входных и выходных данных должны быть стандартными.

Цель создания эргономичного интерфейса состоит в том, чтобы отобразить информацию настолько эффективно насколько это возможно для человеческого восприятия и структурировать отображение на дисплее таким образом, чтобы привлечь внимание к наиболее важным единицам информации. Основная же цель состоит в том, чтобы минимизировать общую информацию на экране и представить только то, что является необходимым для пользователя.

Интерфейс для программного модуля разработанного в данном курсовом проекте представлен на рисунке 5.


7

6

5

4

3

2

1

8

Рисунок 4 – Пользовательская форма: 1 – TextBoxInput - поле для ввода значения n, размерности матрицы; 2 – ButtonCreate - кнопка, при нажатии которой осуществляется заполнение матрицы; 3 – ButtonClear-кнопка, при нажатии которой осуществляется очистка всех полей формы; 4 – BtnTask1 - кнопка, при нажатии которой программа находит сумму угловых элементов матрицы; 5 – BtnTask2 - кнопка, при нажатии которой программа находит сумму элементов матрицы, находящихся над верхней диагональю; 6 – BtnExcel – кнопка, при нажатии которой пользовательская форма скрывается, и отображаются данные на листе Excel; 7 – Кнопка, при нажатии которой осуществляется выход из программного модуля; 8 – Поле для вывода заполненной матрицы

3. Реализация программного модуля

3.1 Программный код

Программа разработана в приложении Microsoft Excel на языке программирования Visual Basic For Application.

Private Sub BtbTask2_Click()

Dim a(1 To 100, 1 To 100) As Variant

Dim summ As Integer

n = TextBoxInput.Value

For i = 1 To n

For j = 1 To n

a(i, j) = Cells(i, j)

summ = summ + Check_Top_Elements(a(i, j), i, j)

Next j

Next i

m = Application.CountA(Range("A:A"))

Cells(m + 3, 1) = "Сумма элементов над главной диагональю: " + CStr(summ)

TextBoxOutput2.Value = CStr(summ)

End Sub

Private Sub BtnTask1_Click()

Dim a(1 To 100, 1 To 100) As Variant

Dim summ As Integer

n = TextBoxInput.Value

For i = 1 To n

For j = 1 To n

a(i, j) = Cells(i, j)

summ = summ + Check_Angular_Elements(a(i, j), i, j)

Next j

Next i

m = Application.CountA(Range("A:A"))

Cells(m + 2, 1) = "Сумма угловх элементов: " + CStr(summ)

TextBoxOutput.Value = summ

End Sub

Private Sub ButtonClear_Click()

ListBoxOutput.Clear

End Sub

Private Sub ButtonCreate_Click()

Dim n As Variant

Dim m As Variant

Dim strng(100) As String

Dim a(100, 100) As Variant

Dim space As String 'пробел, который разделяет матрицу

If IsNumeric(TextBoxInput.Value) = False Then

MsgBox "Вы ввели неправильные данные Подсказка: данные должны быть представленны числом.", _

vblnformation, "Ошибка ввода"

Else

n = CInt(TextBoxInput.Value) 'если пользователь ввел дробное число, то округляем до целого

If n = 1 Then

MsgBox "Размерность не может быть равной еденице", vblnformation, "Ошибка задания матрицы"

End If

If n <= 0 Then

If n < 0 Then

MsgBox "Размерность не может быть отрицательной", vblnformation, "Ошибка задания матрицы"

TextBoxInput.Value = Abs(n)

End If

If n = 0 Then

MsgBox "Размерность не может быть равной нулю", vblnformation, "Ошибка задания матрицы"

End If

End If

For i = 1 To 100

For j = 1 To 100

Cells(i, j) = ""

Next j

Next i

ListBoxOutput.Clear

For i = 1 To n

For j = 1 To n

a(i, j) = Int((20 - 0 + 1) * Rnd + 0) 'генерируем случайное число от 1 до 20

Cells(i, j) = a(i, j)

If a(i, j) <= 9 Then

'если число представлено одной цифрой, то пробел между ним и след.числом больше

space = " "

Else

'в противном случае пробел меньше. Это делается, чтобы числа располагались одно под одним

space = " "

End If

strng(i) = strng(i) + CStr(a(i, j)) + space 'скливаем все значения в i строку

Next j

ListBoxOutput.AddItem (strng(i)) 'добавляем строку на поле вывода

Next i

End If

End Sub

Private Sub ButtonExit_Click() 'при нажатии на кнопку выхода, закрываем программу

Application.Quit

End Sub

Private Sub BtnExcel_Click()

UserForm1.Hide

Application.Visible = True

End Sub

Private Sub UserForm_Initialize()

Application.Visible = False

Dim a(1 To 100, 1 To 100)

Dim space As String

Dim strng(10) As String

End Sub

Function Check_Angular_Elements(a, i, j)

'проверяет, является ли элемент матрицы угловым, если да, то возвращает его

If (i = 1) And (j = 1) Then

Check_Angular_Elements = a

End If

If (i = 1) And (j = Int(TextBoxInput.Value)) Then

Check_Angular_Elements = a

End If

If (i = Int(TextBoxInput.Value)) And (j = 1) Then

Check_Angular_Elements = a

End If

If (i = Int(TextBoxInput.Value)) And (j = Int(TextBoxInput.Value)) Then

Check_Angular_Elements = a

End If

End Function

Function Check_Top_Elements(a, i, j) 'проверяет, находится ли элемент над гл. диагональю

If j > i Then

Check_Top_Elements = a

End If

End Function

3.2 Описание использованных операторов и функций

Private

Используется для описания, которые доступны только в модуле, в котором выполняется описание.

MsgBox

Выводит на экран диалоговое окно, содержащее сообщение, MsgBox устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа integer, указывающее, какая кнопка была нажата.

Оператор присвоения присваивает значение выражения переменной, константе или свойству объекта. Оператор присвоения всегда включает знак равенства (=).

If Then Else

Оператор условного перехода. Если условие принимает значение True, то выполняется инструкция (или инструкции) после Then если False, то выполняется инструкция (или инструкции) после Else. Ветвь Else является необязательной.

If Условие Then

[Инструкции]

[ElseIf Условие-n Then

[Инструкции elseif]

[Else]

[Инструкции else]

End If.

Оператор For-Next.

Синтаксис:

For Счётчик = Начало То Конец [Step Шаг]

[Инструкции]

[Exit For]

[Инструкции]

Next [Счётчик]

Повторяет выполнение группы инструкций, пока Счётчик изменяется от начального до конечного значения с указанным шагом. Если Шаг не указан, то он полагается равным 1. Альтернативный способ выхода из цикла предоставляет инструкция Exit For.

Инструкция Dim

Предназначена для описания типа данных переменной на уровне модуля или процедуры, а также для описания объектного типа переменных, синтаксис:

Dim Имя переменной Аs Тип переменной [Имя переменной Аs Тип переменной ]

Типы переменных: Integer, Long, Single, Double, String.

Int(x) – функция округления переменной Х.

IsNumeric (x) – проверка является ли переменная Х числом.

Если IsNumeric (x) = True, то переменная Х является числом.

Если IsNumeric (x) = False, то переменная Х не является числом.

Abs (x) – возвращает модуль числа.


4. Тестирование программного модуля

Тестирование этого программного модуля заключается в проверке правильности ввода данных, которые ввел пользователь. Результатом ввода корректных данных является правильное выполнение программы: вывод матрицы, заданной пользователем и вычисление сумм элементов.

Сначала проверим программный модуль на отлавливание и обработку ошибок пользователя.

При вводе в поле параметра n не числового выражения выводится окно представленное на рисунке 5.

Рисунок 5 – Введено не числовое значение параметра m

Если пользователь ввел размерность матрицы, равную нулю, либо не ввел данные (по умолчанию в VBA пустое значение автоматически приравнивается нулю), то выводится окно, представленное на рисунке 6.

Рисунок 6 – Пользователь указал размерность матрицы, равную нулю

При вводе в поле параметра n отрицательного значения, выводится окно, представленное на рисунке 7.


Рисунок 7 – Введено отрицательное значение параметра n

Если пользователь указал размерность матрицы равную единице, то, теоретически, это не является ошибкой, т.к. если исходить из определения, то любое действительное число – это матрица, размерностью 1*1. Но в условии данной задачи такая матрица не представляет интереса, поэтому рекомендуется поставить ограничение и на размерность равную единице. Выводимое окно представлено на рисунке 8.

Рисунок 8 – Введенное значение параметра n равно 1

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

Проверим правильность работы программного модуля заполнив матрицу, размерность 3*3 и 5*5.


Рисунок -9 – заполнение матрицы, размерностью 3*3

Рисунок -10 – заполнение матрицы, размерностью 5*5

Теперь проверим выполнение поставленных задач.

Рисунок 11 – корректное выполнение поставленных задача


Как видно из рисунков 9 ,10 ,11 программный модуль, разработанный в данном курсовом проекте, работает правильно и без сбоев.


Заключение

Согласно заданию был разработан программный модуль, осуществляющий заполнение матрицы А(n,n), которую задает пользователь, чтение заданной матрицы с листа Excel и подсчета суммы угловых элементов и элементов над верхней диагональю. При тестировании программ никаких отклонений не обнаружено: каждая функция корректно выполняет все операции. Таким образом, можно сделать вывод о том, что поставленная задача выполнена: на языке программирования Visual Basic for Application созданы программы, с помощью которых можно заполнить случайными числами квадратную матрицу размером n x n, найти сумму ее диагональных элементов и элементов над главной диагональю. В программе предусмотрена обработка ошибок, что обеспечивает бесперебойную работу программы.

Задание на курсовой проект выполнено полностью.


Список использованных источников

1. Выгодский М.Я., “Справочник по высшей математике”, Москва - 1982 г., 323 с.

2. Гутер Р.С., Овчинский Б.В. Элементы числового анализа и математической обработки результатов опыта - М.: “Наука”, 1970 г. - 432 с.

3. Гаранев А.Ю. Самоучитель VBA - СПб.: БХВ - Санкт-Петербург, 2000 г. - 512.

4. Ракитин В.И. “Практическое руководство по методам программного вычисления с приложением для ПК”. - М.: “Высшая школа”, 1998 г. - 383.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Экономика
Маркетинг
Информатика
icon
110132
рейтинг
icon
2709
работ сдано
icon
1239
отзывов
avatar
Математика
Физика
История
icon
103841
рейтинг
icon
5283
работ сдано
icon
2380
отзывов
avatar
Химия
Экономика
Биология
icon
74482
рейтинг
icon
1859
работ сдано
icon
1174
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
48 897 оценок star star star star star
среднее 4.9 из 5
СИБИТ
Написан реферат по предмету "Бухгалтерский учет и анализ. Работа зачтена, спасибо исполнит...
star star star star star
педагогический колледж
Работа выполнена раньше срока, без замечаний. Я осталась довольна. Спасибо.
star star star star star
Московский Университет имени С.Ю. Витте
Спасибо исполнителю за работу, как всегда выполнена досрочно, без замечаний, из 100 баллов...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Интеллектуальная собственность, менеджмент решение задания

Решение задач, Интеллектуальная собственность, менеджмент

Срок сдачи к 10 дек.

только что

8.3 - составить уравнение плоскости которая проходит через линию...

Решение задач, Математика

Срок сдачи к 8 дек.

только что

"Феномен массовой литературы"

Курсовая, Литература

Срок сдачи к 16 дек.

только что

Интеллектуальная собственность, менеджмент решение задания

Решение задач, Интеллектуальная собственность, менеджмент

Срок сдачи к 10 дек.

только что

Решение задач

Контрольная, электротехника и электроника

Срок сдачи к 11 дек.

1 минуту назад

Решить 4 задачи по физике

Решение задач, Физика

Срок сдачи к 11 дек.

1 минуту назад

Интеллектуальная собственность, менеджмент решение задания

Решение задач, Интеллектуальная собственность, менеджмент

Срок сдачи к 10 дек.

1 минуту назад

Чертеж

Чертеж, Информационные технологии

Срок сдачи к 11 дек.

1 минуту назад

Сделать 2 чертежа

Контрольная, Основы компьютерной графики

Срок сдачи к 9 дек.

2 минуты назад

Интеллектуальная собственность, менеджмент решение задания

Решение задач, Интеллектуальная собственность, менеджмент

Срок сдачи к 10 дек.

2 минуты назад

Оценка инестиционнои? деятеьности

Отчет по практике, Менеджмент

Срок сдачи к 11 дек.

2 минуты назад

Сделать курсовую

Курсовая, Устройства генерации и формирования сигналов

Срок сдачи к 14 дек.

2 минуты назад

Решить 4 задачи

Решение задач, Математика

Срок сдачи к 8 дек.

3 минуты назад

РГР, Государственное и муниципальное управление

Контрольная, государственное и муниципальное управление

Срок сдачи к 12 дек.

3 минуты назад

Интеллектуальная собственность, менеджмент, решение задач

Решение задач, Интеллектуальная собственность, менеджмент

Срок сдачи к 10 дек.

3 минуты назад

Информационные технологиии как инструмент проведения межпредметных...

Курсовая, Методика информатики

Срок сдачи к 11 дек.

3 минуты назад

Задача

Контрольная, туризм

Срок сдачи к 13 дек.

3 минуты назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход или
регистрация
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно