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

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

Ордена Трудового Красного Знамени федеральное государственное

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

Московский Технический Университет Связи и Информатики

(МТУСИ)

 

 

Кафедра информатики

Дисциплина Информатика

 

Лабораторная работа № 01-07

«Программирование алгоритмов формирование и обработки одномерных массивов»

Вариант № 16

 

Выполнил: Калининский Даниил

Студент 1-ого курса ОТФ 2

Группы БИН1703

Преподаватель: Волков Андрей Иванович

 

Москва 2017

Содержание

1 Задание. 3

2 Форма проекта. 4

3 Схема алгоритма процедуры и программы.. 5

4 Таблица свойств объектов. 7

5 Текстпрограммы.. 8

6 Результат тестирования программы.. 11

7 Доказательство тестирования программы.. 12

 

 

Задание

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

2) Создайте приложение с именем Проект 1.7.

Выберите вариант задания.

4) Разработайте графический интерфейс пользователя.

5) Разработайте схемы алгоритмовпроцедур пользователя в соответствии с индивидуальным заданием, предварительно проведя формализацию.

6) Напишите программный код процедур по разработанным алгоритмам.

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

8) Подготовьте входные массивы чисел для решения задачи, если исходные данные не заданы.

9) Выполните приложение и получите результат.

10) Докажите правильность результата.

В таблице 1 представлен индивидуальный вариант задания.

 

Таблица 1 – Индивидуальный вариант задания

Вариант Задание
16) В одномерном массиве, состоящем из 15 вещественных элементов (значения элементов массива задать случайными числами из интервала [-10, 10]), вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами. Сформировать из этих элементов новый массив.

 

Форма проекта

На рисунке 1 изображена форма проекта Проект 1.7.

 

Рисунок1 – Форма проекта

 

 

Схемы алгоритмовпроцедур и программы

Схема алгоритма процедуры proizv() представлена на рисунке 2, схема алгоритма процедуры TextBox_KeyPress()на рисунке 3, схема алгоритма событийной процедуры cmb2_SelectedIndexChanged() на рисунке 4, схема алгоритма событийной процедуры Buttun2_Click() на рисунке 5 и на рисунке 6 представлена схема алгоритма процедуры prvrk().

 

Рисунок2 – Схема алгоритма процедуры proizv()

Рисунок3 – Схема алгоритма процедуры TextBox_KeyPress()

 

Рисунок4 - Схема алгоритма процедуры cmb2_SelectedIndexChanged()

 

Рисунок5 - Схема алгоритма процедуры Button2_Click()

 

Рисунок6 – Схема алгоритма процедуры prvrk()

Таблица свойств объектов

В таблице 2 можно узнать свойства всех объектов программы.

 

Таблица 2 – Свойства объектов

Имя объекта Свойство Значение свойства

lbl1

ForeColor MediumBlue
Font Microsoft Sans Serif; 12pt
Text Изучениеодномерныхмассивов

lbl2

ForeColor MediumBlue
Text Задание:
lbl3 Text Ввести в одномерный массив x() 15 вещественных элементов (значения элементов массива задать случайными числами из интервала [-10, 10]), используя различные алгоритмы заполнения и преобразовать массив x() используя меню преобразования.

lbl4

Font Microsoft Sans Serif; 10,8pt
ForeColor MediumBlue
Text Кол-во элементов массива X:

lbl5

ForeColor MediumBlue
Text Интервал значении массива X:

lbl6

ForeColor MediumBlue
Text a=

lbl7

ForeColor MediumBlue
Text b=

lbl8

ForeColor MediumBlue
Font Microsoft Sans Serif; 10,8pt
Text Заполнениемассива:

lbl9

ForeColor MediumBlue
Text ИсходныймассивX():

lbl10

ForeColor MediumBlue
Font Microsoft Sans Serif; 10,8pt
Text Преобразованиемассива:

lbl11

ForeColor MediumBlue
Text Полученныймассив:

lbl12

ForeColor MediumBlue
Text Произведение:

cmb2

Items (коллекция) Произведение элементов массива, расположенных между максимальным и минимальным элементами
DropDownStyle DropDownList
btn1 Text Конецзадания
btn2 Name Сгенерировать
txt1 Name txt1
txt2 Name txt2
txt3 Name txt3
txt4 Name txt4

txt5

Name txt5
ReadOnly True

txt6

Name txt6
ReadOnly True

Текстпрограммы

Option Strict On

Option Explicit On

Imports System

ImportsSystem.Globalization

ImportsSystem.Windows.Forms

ImportsSystem.Math

Classfrm1

Dimx(), xb(), c() AsSingle

Private x1 AsInteger

Private x3 AsDouble

PrivatenfiAsNumberFormatInfo = NumberFormatInfo.CurrentInfo

Private ds AsChar = nfi.NumberDecimalSeparator

 

PrivateSub txt1_KeyPress(ByVal sender AsSystem.Object, _

ByVal e AsKeyPressEventArgs) Handles txt1.KeyPress

Dim c AsChar, t AsTextBox

   c = e.KeyChar

   t = txt1

IfNotChar.IsDigit(c) Then

If c <>"-"Ort.Text.IndexOf("-") <> -1 Then

If c <> ds Ort.Text.IndexOf(ds) <> -1 Then

If c <>Convert.ToChar(Keys.Back) Then

e.Handled = True

EndIf

EndIf

EndIf

EndIf

If c = Convert.ToChar(Keys.D0) Or _

       c = Convert.ToChar(Keys.NumPad0) Then

Ift.Text.Length>= 1 Then

Ift.Text.Substring(0, 1) = "0" _

Andt.SelectionStart< 2 Then

e.Handled = True

EndIf

EndIf

EndIf

If c = ds Then

       x1 = 0

Ift.Text<>""AndAlso _

t.Text.Substring(0, 1) = "-"Then x1 = 1

Ift.Text.IndexOf(ds) = -1 And _

t.SelectionStart = x1 Then

t.Text = t.Text.Insert(x1, "0")

t.SelectionStart = x1 + 1

EndIf

EndIf

If c = "-"Andt.Text.IndexOf("-") = -1 Then

t.SelectionStart = 0

EndIf

EndSub

 

PrivateSub txt2_KeyPress(ByVal sender AsSystem.Object, _

ByVal e AsKeyPressEventArgs) Handles txt2.KeyPress

Dim c AsChar, t AsTextBox

   c = e.KeyChar

   t = txt2

IfNotChar.IsDigit(c) Then

If c <>"-"Ort.Text.IndexOf("-") <> -1 Then

If c <> ds Ort.Text.IndexOf(ds) <> -1 Then

If c <>Convert.ToChar(Keys.Back) Then

e.Handled = True

EndIf

EndIf

EndIf

EndIf

If c = Convert.ToChar(Keys.D0) Or _

       c = Convert.ToChar(Keys.NumPad0) Then

Ift.Text.Length>= 1 Then

Ift.Text.Substring(0, 1) = "0" _

Andt.SelectionStart< 2 Then

e.Handled = True

EndIf

EndIf

EndIf

If c = ds Then

       x1 = 0

Ift.Text<>""AndAlso _

t.Text.Substring(0, 1) = "-"Then x1 = 1

Ift.Text.IndexOf(ds) = -1 And _

t.SelectionStart = x1 Then

t.Text = t.Text.Insert(x1, "0")

t.SelectionStart = x1 + 1

EndIf

EndIf

If c = "-"Andt.Text.IndexOf("-") = -1 Then

t.SelectionStart = 0

EndIf

EndSub

 

PrivateSub txt3_KeyPress(ByVal sender AsSystem.Object, _

ByVal e AsKeyPressEventArgs) Handles txt3.KeyPress

Dim c AsChar, t AsTextBox

   c = e.KeyChar

   t = txt3

IfNotChar.IsDigit(c) Then

If c <>"-"Ort.Text.IndexOf("-") <> -1 Then

If c <> ds Ort.Text.IndexOf(ds) <> -1 Then

If c <>Convert.ToChar(Keys.Back) Then

e.Handled = True

EndIf

EndIf

EndIf

EndIf

If c = Convert.ToChar(Keys.D0) Or _

       c = Convert.ToChar(Keys.NumPad0) Then

Ift.Text.Length>= 1 Then

Ift.Text.Substring(0, 1) = "0" _

Andt.SelectionStart< 2 Then

e.Handled = True

EndIf

EndIf

EndIf

If c = ds Then

       x1 = 0

Ift.Text<>""AndAlso _

t.Text.Substring(0, 1) = "-"Then x1 = 1

Ift.Text.IndexOf(ds) = -1 And _

t.SelectionStart = x1 Then

t.Text = t.Text.Insert(x1, "0")

t.SelectionStart = x1 + 1

EndIf

EndIf

If c = "-"Andt.Text.IndexOf("-") = -1 Then

t.SelectionStart = 0

EndIf

EndSub

 

PrivateSub txt4_KeyPress(ByVal sender AsSystem.Object, _

ByVal e AsKeyPressEventArgs) Handles txt4.KeyPress

Dim c AsChar, t AsTextBox

   c = e.KeyChar

   t = txt4

IfNotChar.IsDigit(e.KeyChar) Then

Ife.KeyChar<>Convert.ToChar(Keys.Back) Then

Ife.KeyChar<>Convert.ToChar(Keys.Space) Then

Ife.KeyChar<>"-"Then

Ife.KeyChar<>","Then

e.Handled = True

EndIf

EndIf

EndIf

EndIf

EndIf

EndSub

 

PublicSubvivod(ByRef x() AsSingle, ByRef TB AsTextBox)

DimiAsInteger

Dim y AsString = ""

Fori = 0 ToUBound(x)

       y = y + Format(x(i), "0.00") + Space(3)

Nexti

TB.Text = y

EndSub

 

PublicSubproizv(ByVal x() AsSingle, ByRef x1() AsSingle, _

ByRefprzvAsDouble, ByRefoshAsInteger)

Dim max, min AsDouble, i, j, cmx, cmnAsInteger

   max = -11 : min = 11 : przv = 1

Fori = 0 ToUBound(x)

If x(i) > max Then max = x(i) : cmx = i

If x(i) < min Then min = x(i) :cmn = i

Nexti

If (cmn> cmx Andcmn - 1 = cmx) Or _

       (cmn< cmx And cmx - 1 = cmn) Then

MsgBox("Между максимальным и минимальным значением нету чисел", _

MsgBoxStyle.Critical)

osh = 1

ElseIfcmn< cmx Then

       cmx = cmx - 1 :cmn = cmn + 1

DoWhile cmx >= cmn

przv = przv * x(cmn)

ReDimPreserve x1(j)

           x1(j) = x(cmn) : j = j + 1

cmn = cmn + 1

Loop

ElseIfcmn> cmx Then

       cmx = cmx + 1 :cmn = cmn - 1

DoWhilecmn>= cmx

przv = przv * x(cmx)

ReDimPreserve x1(j)

           x1(j) = x(cmx) : j = j + 1

           cmx = cmx + 1

Loop

EndIf

EndSub

 

PrivateSub cmb2_SelectedIndexChanged _

                   (ByVal sender AsSystem.Object, _

ByVal e AsSystem.EventArgs) Handles _

                       cmb2.SelectedIndexChanged

Dimind, oshibkaAsInteger, przvAsDouble

prvrk()

ind = cmb2.SelectedIndex

   txt5.Text = ""

SelectCaseind

Case 0

proizv(c, xb, przv, oshibka)

EndSelect

Ifoshibka = 1 ThenExit Sub

vivod(xb, txt5)

   txt6.Text = Format(przv, "00.0000")

EndSub

 

Subprvrk()

DimiAsInteger, t AsString

Dim n AsInteger = Integer.Parse(txt1.Text)

   t = txt4.Text : t = Trim(t) : i = 0

WhileInStr(t, " ") > 0

       t = Replace(t, " ", " ")

EndWhile

WhileInStr(t, "--") > 0

       t = Replace(t, "--", "-")

EndWhile

Dimx() AsString = t.Split(" "c)

Ifn >x.LengthThen

MsgBox("Длина массива не соответствует введенному!")

Return

EndIf

   c = NewSingle(n - 1) {}

Whilei< n

       c(i) = Single.Parse(x(i))

i = i + 1

EndWhile

   txt4.Text = ""

vivod(c, txt4)

EndSub

 

PrivateSub btn1_Click(ByVal sender AsSystem.Object, ByVal _

                      e AsSystem.EventArgs) Handles btn1.Click

End

EndSub

 

PrivateSub btn2_Click(ByVal sender AsSystem.Object, ByVal _

                      e AsSystem.EventArgs) Handles btn2.Click

Dimi, xi AsInteger, a, b AsSingle

   xi = CInt(txt1.Text)

   a = CSng(txt2.Text)

   b = CSng(txt3.Text)

   xi = xi - 1

ReDimPreserve x(xi)

Randomize()

Fori = 0 To xi

       x(i) = a + Rnd() * (b - a)

Nexti

vivod(x, txt4)

EndSub

EndClass

 

 

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

На рисунке 7показан результат тестирования программыПроект 1.7.

Рисунок7 – Результат программ


Дата добавления: 2018-06-01; просмотров: 209; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!