Приложение для решения задачи сетевого планирования

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

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

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

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

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

профессионального образования

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Социально-экономический факультет

Кафедра «Информационные системы в экономике»

Приложение для решения задачи

сетевого планирования

Пояснительная записки

Курсовая работа по дисциплине «Информатика и программирование»

ТПЖА. 045333. 120 ПЗ

Разработал студент гр. 04 - ПИЭ - 503 / Гурдина Л. В. /

Руководитель, доцент /Нестерова Л.Н./

Проект защищен с оценкой « » « » 2006 г.

Члены комиссии / /

Киров 2006

СОДЕРЖАНИЕ

Введение

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

Строгая математическая постановка

Описание метода и алгоритм решения

Структура приложения

Распечатка форм и таблиц значений свойств

Результаты решения

Заключение

Список использованной литературы

ВВЕДЕНИЕ

Задание 8

на курсовую работу

по дисциплине «Информатика и программирование»

Гурдиной Л.В. (учебный шифр 04 - ПИЭ - 503)

Тема: Создать приложение, выполняющее следующую задачу:

Соседями элемента с индексами i, j некоторой матрицы называются такие элементы этой матрицы, соответствующие индексы которых отличаются от i и j не более, чем на единицу. Разработать приложение, составляющую для данной целочисленной матрицы А размера m матрицу В размера m из нулей и единиц, элемент которой равен единице, когда среди соседей элемента матрицы А есть не менее двух элементов, совпадающих с заданным числом. программа матрица математический приложение

Руководитель курсовой работы доцент кафедры ИСЭ Л.А. Нестерова

19 октября 2005 г.

ПОСТАНОВКА ЗАДАЧИ

Круг пользователей программы - достаточно узкий, программа предназначена для характеристики взаиморасположения элементов матрицы и может пригодиться специалистам по различному анализу (ситуационный, операционный и др. анализ). Так же основа программы подходит для создания игры «Минное поле».Интерфейс создан с расчетом на пользователя, знакомого с работой Windows. Выводимые подсказки, надписи и недоступность объектов, когда они не задействованы, должны упростить работу с программой и исключить возможность ошибок (неверный ввод, запуск расчета до ввода начальных данных и пр.)

СТРОГАЯ МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА

Для решения поставленной задачи используем простой перебор соседних элементов матрицы с подсчетом количества элементов, удовлетворяющих условию (счетчик, предварительно обнуленный, увеличивается на единицу, когда сравниваемый элемент равен заданному). При наборе счетчиком величины большей либо равной двум, соответствующий элемент результирующей матрицы указываем, как единицу, в противном случае - как ноль.

ОПИСАНИЕ МЕТОДА И АЛГОРИТМ РЕШЕНИЯ

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

В пользовательском интерфейсе применим меню. Для ввода размера массива по строкам и столбцам используем два текстовых окна и соответствующие им объектные процедуры. Заданное число будем вводить в окно InputBox. Предусмотрим запись и считывание матрицы в файл. Элементы массива будем выводить в MSFlexGrid.

Предусмотрим выполнение следующих операций:

- ввод исходного массива пользователем с клавиатуры, случайным образом и из файла;

- запись исходного массива в файл;

- повторный запуск приложения;

- выполнение задач.

Структуру разработаем в соответствии с этими операциями. В приложении предусмотрим использование процедур общего назначения для ввода элементов массива, записи массива в файл и считывание массива из файла, вывода массива в объект MSFlexGrid, инициализации элементов результирующей матрицы. Поместим их в программный модуль Module1. В приложении будут использоваться динамические массивы. Для вводимых массивов, заданных и искомых величин предусмотрим заголовки и необходимые сообщения.

СТРУКТУРА ПРИЛОЖЕНИЯ

РАСПЕЧАТКА ФОРМ И ТАБЛИЦ ЗНАЧЕНИЙ СВОЙСТВ

Список объектов и их свойств

Объект

Name

Caption

Command 1

BtnExit

Exit

Label1

Lblm

Введите количество строк

Label2

Lbln

Введите количество столбцов

Label3

lblIM

Исходный массив

Label4

lblRM

Результирующий массив

Label5

lblInfo

Label6

lblInfo1

Text1

txtm

Text2

txtn

MSFlexGrid1

Gr1

MSFlexGrid1

Gr2

Меню

mnuPrg

Программа

mnuStart

Запуск

mnuPStart

Повторный запуск

mnuExit

Выход

mnuFile

Файл

mnuZfile

Запись массива в файл

mnuRfil

Редактирование данных в файле

mnuVvod

Ввод массива

mnuOfil

Из файла

mnuKlav

С клавиатуры

mnuRand

Автоввод

mnuRech

Решение

CommonDialog1

Cdlg

Таблица переменных

Переменная

Идентификатор

Тип

Исходный массив

a()

Integer

Результирующий массив

b()

Integer

Количество строк

m

Integer

Количество столбцов

n

Integer

Размер матрицы, записанной в файл

cf,rf

Integer

Переменные цикла

i,j, ii, jj

Byte

Вспомогательные переменные

az, t, k

Integer

Счетчик

d

Integer

Сообщения

massage

String

Верхняя и нижняя граница случайных чисел

mm, nn

Integer

· Программные коды frmMatrix

Option Explicit

Private a() As Single, b() As Single, fname As String

Private m As Integer, n As Integer

Rem: процедура загрузки формы, подготовка к работе.

Private Sub Form_Load()

mnuFile.Visible = False

mnuVvod.Visible = False

mnuTask.Visible = False

mnuPStart.Visible = False

Label1.Visible = False

Label2.Visible = False

End Sub

Rem: процедура вывода формы About

Private Sub mnuInfo_Click()

frmAbout.Show

End Sub

Rem: Запуск приложения выбором меню "Запуск".

Private Sub mnuStart_Click()

Label1.Visible = True

Label1.Caption = "Введите количество строк"

Label2.Visible = True

Label2.Caption = "Введите количество столбцов"

txtm.Text = ""

txtn.Text = ""

txtm.SetFocus

mnuVvod.Visible = False

mnuTask.Visible = False

mnuPStart.Visible = True

mnuStart.Visible = False

End Sub

Rem: Процедура ввода количества строк матрицы.

Private Sub txtm_KeyPress(KeyAscii As Integer)

m = Val(txtm.Text)

If KeyAscii = 13 Then txtn.SetFocus

End Sub

Rem: Процедура ввода количества столбцов матрицы.

Private Sub txtn_KeyPress(KeyAscii As Integer)

n = Val(txtn.Text)

If KeyAscii = 13 Then

If m <> 0 And n <> 0 And m <> 1 And n <> 1 Then

ReDim a(1 To m, 1 To n)

mnuVvod.Visible = True

Label1.Caption = "Количество строк"

Label2.Caption = "Количество столбцов"

Else

MsgBox ("Повторите ввод размера массива")

txtm.Text = ""

txtn.Text = ""

txtm.SetFocus

Exit Sub

End If

End If

End Sub

Rem: Процедура ввода элементов матрицы с клавиатуры.

Private Sub mnuKlav_Click()

mnuKlav.Checked = True

mnuRand.Checked = False

mnuOfile.Checked = False

Call Klav(a(), m, n)

mnuFile.Visible = True

mnuRech.Visible = True

Call fgrid(a(), m, n, Gr1)

End Sub

Rem: Процедура ввода элементов матрицы случайным образом.

Public Sub mnuRand_Click()

Dim nn As Integer, mm As Integer

mnuRand.Checked = True

mnuKlav.Checked = False

mnuOfile.Checked = False

nn = Val(InputBox("Введите нижнюю границу"))

mm = Val(InputBox("Введите верхнюю границу"))

Call Rand(a(), m, n, nn, mm)

mnuFile.Visible = True

mnuTask.Visible = True

Call fgrid(a(), m, n, Gr1)

End Sub

Rem: Процедура редактирования элементов матрицы в файле.

Private Sub mnuRfile_Click()

Dim i As Byte, j As Byte

Open fname For Input As #1

For i = 1 To m

For j = 1 To n

Input #1, a(i, j)

a(i, j) = Val(InputBox("Элемент" & Str(i) & "-й строки" & Str(j) & "-го столбца", "Редактирование элементов", Str(a(i, j))))

Next j

Next i

Close #1

Call fgrid(a(), m, n, Gr1)

End Sub

Rem: Процедура повторного запуска программы на выполнение.

Private Sub mnuPstart_Click()

Call mnuStart_Click

Gr1.Clear

Gr2.Clear

End Sub

Rem: Процедура выхда из приложения.

Private Sub mnuExit_Click()

End

End Sub

Private Sub btnExit_Click()

End

End Sub

Rem: Процедуры решения Задачи.

Private Sub mnuTask_Click()

ReDim b(1 To m, 1 To n)

Call Inic(b(), m, n, a())

Call Task(b())

Call fgrid(b(), m, n, Gr2)

End Sub

Public Sub Task(arr() As Single)

Dim i As Byte, j As Byte, ii As Byte, jj As Byte, d As Integer, az As Integer

Dim nn, mm As Integer

az = Val(InputBox("Введите любое число в пределах от " & Str(nn) & " до " & Str(mm), "Ввод Числа"))

For i = 1 To m

For j = 1 To n

d = 0

For ii = i - 1 To i + 1

For jj = j - 1 To j + 1

If i = ii And j = jj Then GoTo 1

If ii < 1 Or ii > m Or jj < 1 Or jj > n Then GoTo 1

If az = a(ii, jj) Then d = d + 1

1 Next jj

Next ii

If d >= 2 Then

arr(i, j) = 1

Else

arr(i, j) = 0

End If

Next j

Next i

massage = "Заданное число " & az

lblInfo1.Caption = massage

End Sub

Rem: Процедура ввода элементов матрицы из файла.

Private Sub mnuOfile_Click()

Dim i As Byte, j As Byte

mnuOfile.Checked = True

mnuKlav.Checked = False

mnuRand.Checked = False

Call NameFile(fname, CDlg, False)

Open fname For Input As #1

For i = 1 To m

For j = 1 To n

Input #1, a(i, j)

Next j

Next i

Close #1

mnuFile.Visible = True

mnuTask.Visible = True

Call fgrid(a(), m, n, Gr1)

End Sub

Rem: Процедура записи элементов матрицы в файл.

Private Sub mnuZfile_Click()

Dim i As Byte, j As Byte

Call NameFile(fname, CDlg, True)

Open fname For Output As #1

For i = 1 To m

For j = 1 To n

Print #1, Tab((j - 1) * 6); a(i, j)

Next j

Next i

Close #1

End Sub

Rem: Процедура выхода из приложения

Private Sub Form_Unload(Cancel As Integer)

If MsgBox("Уверены?", vbYesNo, "Выход?") = vbYes Then

Unload Me

Set frmMatrix = Nothing

Else

Cancel = 1

End If

End Sub

· Программные коды Module 1

Rem: Процедура ввода элементов случайным образом

Public Sub Rand(arr() As Single, km As Integer, kn As Integer, nn As Integer, mm As Integer)

Dim massage As String

Dim i As Byte, j As Byte

Randomize

For i = 1 To km

For j = 1 To kn

arr(i, j) = Int((mm - nn) * Rnd + nn)

Next j

Next i

massage = "Введена матрица с диапазоном чисел от " & nn & " до " & mm

frmMatrix.lblInfo.Caption = massage

End Sub

Rem: Процедура ввода элементов матрицы с клавиатеры

Public Sub Klav(arr() As Single, km As Integer, kn As Integer)

Dim i As Byte, j As Byte

For i = 1 To km

For j = 1 To kn

arr(i, j) = Val(InputBox("Введите элемент" & Str(i) & "-й строки" & Str(j) & "-ого столбца", "Ввод элементов исходного массива"))

Next j

Next i

End Sub

Rem: Процедура вывода элементов матрицы в MSFlexGrid

Public Sub fgrid(arr() As Single, km As Integer, kn As Integer, g As MSFlexGrid)

Dim i As Byte, j As Byte

frmMatrix.Gr1.Width = g.ColWidth(i) * kn

frmMatrix.Gr1.Height = g.RowHeight(i) * km + 100

frmMatrix.Gr2.Width = g.ColWidth(i) * kn

frmMatrix.Gr2.Height = g.RowHeight(i) * km + 100

g.Cols = kn

g.Rows = km

For j = 0 To kn - 1

g.ColWidth(j) = 300

g.ColAlignment(j) = 1

Next j

For i = 0 To km - 1

g.Row = i

For j = 0 To kn - 1

g.Col = j

g.Text = Format(arr(i + 1, j + 1), "0.#")

Next j

Next i

End Sub

Rem: Процедура инициализации элементов результирующей матрицы

Public Sub Inic(arr() As Single, km As Integer, kn As Integer, a() As Single)

Dim i As Byte, j As Byte

For i = 1 To km

For j = 1 To kn

arr(i, j) = a(i, j)

Next j

Next i

End Sub

Public Sub NameFile(f As String, a As CommonDialog, k As Boolean)

On Error GoTo Line1

a.FileName = f

a.Filter = "Все файлы(*.*)|*.*|Текстовые(*.txt)|*.txt|""(*.dat)|*.dat"

a.FilterIndex = 3

If k = True Then

a.ShowSave

Else

a.ShowOpen

End If

f = a.FileName

Exit Sub

Line1:

End Sub

Программные коды frmAbout

Private Sub cmdOK_Click()

Unload Me

End Sub

РЕЗУЛЬТАТЫ РЕШЕНИЯ

frmMatrix

frmAbout

ЗАКЛЮЧЕНИЕ

Разработанная программа удовлетворяет всем требованиям, поставленным заданием для курсовой работы. После запуска приложения на экран выводиться окно формы. Через меню ПРОГРАММА-ЗАПУСК активируются окна, в которые необходимо ввести размерность будущего массива. После ввода размера становиться доступным меню ВВОД МАССИВА. Массив можно вести с клавиатуры, случайным образом (указав нижнюю и верхнюю границу) и из ранее сохраненного файла. Воод исходного массива активизируем меню ФАЙЛ, в котором можно выбрать сохранение матрицы в файл и ее редактирование. Меню ИНФОРМАЦИЯ дает описательную характеристику программы и справочно автора.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Нестерова Л.А. Основы алгоритмизации и языки программирования.

Конспект лекций. Часть 1. Киров, 1998.

Нестерова Л.А. Основы алгоритмизации и языки программирования.

Конспект лекций. Часть 2. Киров, 1998.

Шатрова Л.Н. Вычислительные методы. Методические указания к лабораторным и практическим занятиям. Киров, 2001

Голованов А.А. Разработка программ в среде Турбо Бейсик. Учебное пособие. Киров, 1996.

Браун С. Visual Basic 5 с самого начала. С.-Петербург-М., ПИТЕР. 1998.

Размещено на Allbest.ru

...

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

  • Графическое изображение последовательности технологического процесса. Описание метода решения задачи на математическом языке. Общий алгоритм решения задачи и структура программы. Основные понятия сетевых моделей. Разработка программы на языке С++.

    курсовая работа [1,3 M], добавлен 23.05.2013

  • Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.

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

  • Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.

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

  • Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.

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

  • Алгоритм решения задачи: расположение значений ветора в порядке возрастания методом "Всплывающих пузырьков". Блок-схема алгоритма решения задачи. Описание блок-схемы, распечатка программы. Операторы: rem, dim, print, input, lprint using, for-next.

    курсовая работа [17,4 K], добавлен 27.02.2010

  • Обзор методов и подходов решения поставленной задачи аппроксимации логического вывода экспертной системы. Разработка и описание метода сетевого оператора для решения данной задачи. Разработка алгоритма решения. Проведение вычислительного эксперимента.

    дипломная работа [1,5 M], добавлен 23.02.2015

  • Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.

    курсовая работа [446,0 K], добавлен 19.06.2014

  • Математическая постановка задачи для алгоритмизации, рекуррентная зависимость. Алгоритм решения задачи, блок-схема программы. Тестовые данные для тестирования программы. Результаты, соответствующие для первых вводимых данных и листинг программы.

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

  • Определение наиболее выгодного соотношения сортов сырой нефти, используемой для производства бензина. Математическая постановка задачи. Выбор метода решения задачи. Описание алгоритма решения задачи (симплекс-метода) и вычислительного эксперимента.

    курсовая работа [1,1 M], добавлен 08.12.2010

  • Определение зависимости скорости вала двигателя от времени. Математическая модель решения задачи. Решение задачи Коши на интервале методом Эйлера и Рунге-Кутта четвертого порядка точности. Алгоритм решения задачи. Текст программы и результаты ее работы.

    контрольная работа [108,9 K], добавлен 08.03.2013

  • Описание решения задачи, ее постановка, общий подход к решению. Представление исходных данных, условий задачи и целей ее решения. Составление алгоритма решения поставленной задачи. Написание программного обеспечения и тестирование конечного продукта.

    курсовая работа [1,1 M], добавлен 03.07.2011

  • Анализ входной информации необходимой для решения задачи. Разработка исходных данных контрольного примера создания базы данных. Описание технологии и алгоритмов решения задачи и их математических реализаций. Разработка диалогов приложения пользователя.

    курсовая работа [1,3 M], добавлен 26.04.2015

  • Сущность линейного программирования. Математическая формулировка задачи ЛП и алгоритм ее решения с помощью симплекс-метода. Разработка программы для планирования производства с целью обеспечения максимальной прибыли: блок-схема, листинг, результаты.

    курсовая работа [88,9 K], добавлен 11.02.2011

  • Решение задачи средствами Паскаль и блок-схемы выполненных процедур, составление программы. Результаты решения задачи по перевозке грузов. выполнение задачи средствами MS Excel, создание таблиц. Порядок и особенности решения задачи в среде MathCAD.

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

  • Математическая постановка задачи. Алгоритм решения системы обыкновенных дифференциальных уравнений методом Эйлера. Параметры программы, ее логическая структура и функциональное назначение. Анализ входных и выходных данных. Описание тестовых задач.

    курсовая работа [38,0 K], добавлен 26.04.2011

  • Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.

    курсовая работа [1,4 M], добавлен 16.03.2012

  • Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.

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

  • Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.

    лабораторная работа [123,5 K], добавлен 15.01.2014

  • Си - это язык программирования общего назначения. Постановка задачи: разработка программы - калькулятора. Метод решения задачи. Алгоритм работы программы. Технические данные для использования. Описание основных функций.

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

  • Создание приложения по выбору варианта заполнения прямоугольной матрицы: случайными числами или из текстового файла. Идентификаторы метода "main". Расчет количества столбцов, содержащих хотя бы один нулевой элемент. Инструкция по работе с программой.

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

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