Результаттестированияпрограммы
ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ
Ордена Трудового Красного Знамени федеральное государственное
бюджетное образовательное учреждение высшего образования
Московский Технический Университет Связи и Информатики
(МТУСИ)
Кафедра информатики
Дисциплина Информатика
Лабораторная работа № 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!