среда, 24 декабря 2014 г.

7 лабораторная код 1

Option Strict On
Option Explicit On
Imports System.Math

Public Class Form1

    Dim m() As Single

    'Процедура ввода массива 
    Sub vvod(ByRef m() As Single, ByVal index As Integer)

        Dim y As String
        Dim r As String
        Dim i As Integer

        Select Case index
            Case 0 'ввод с клавиатуры
                For i = 0 To UBound(m)
                    r = CStr(i)
                    y = InputBox("элемент массива m(" + r + ")=", "Ввод значений элементов массива m()")
                    m(i) = CSng(Val(y))
                Next i
            Case 1 'ввод генератором случ. чисел
                For i = 0 To UBound(m)
                    m(i) = Rnd(1) * 10 - 5
                Next i
        End Select
    End Sub

    'Процедура вывода массива 
    Public Sub PrintL(ByVal m() As Single, ByRef LB As ListBox)
        Dim i As Integer
        Dim y As String = " "
        For i = 0 To UBound(m)
            y = y + CStr(m(i)) + Space(4)
        Next i
        y = y + "------"
        LB.Items.Add(y)
    End Sub

    'Процедура вывод индексов положительных э-ов
    Public Sub polojitel(ByRef m() As Single)
        Dim i As Integer
        Dim j As Integer
        Dim n() As Single

        j = 0

        For i = 0 To UBound(m)

            If m(i) > 0 Then

                ReDim Preserve n(j)

                n(j) = i
                j = j + 1

            End If

        Next i

        PrintL(n, ListBox2)

    End Sub

    'вычисление суммы нечетных элементов массива
    Public Sub sumnechet(ByRef m() As Single)

        Dim sum As Single

        sum = 0

        For i = 0 To UBound(m)
            If CBool(m(i) Mod 2 <> 0) Then

                sum = m(i) + sum

            End If

        Next i

        TextBox2.Text = CStr(sum)

    End Sub


    'Процедура обработки события загрузки формы 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = "Точное" + Space(3) + "москоское" + Space(3) & " время"
        Label2.Text = CStr(DateTime.Now)
    End Sub


    'Процедура обработки события выбора элем. из ComboBox1
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim index, n As Integer

        index = ComboBox1.SelectedIndex 'индекс выбр-го эл-та ComboBox1

        ListBox1.Items.Clear()
        ListBox2.Items.Clear()

        n = CInt(TextBox1.Text) 'кол=во эл-тов массива

        ReDim m(n)

        'ввод массива в зависимости от индекса выбора
        vvod(m, index)
       
        PrintL(m, ListBox1) 'вывод  исходного массива
    End Sub

    'Процедура обработки события выбора элем. из ComboBox2 
    Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged

        Dim ind As Integer
        ind = ComboBox2.SelectedIndex
        ListBox2.Items.Clear()

        Select Case ind
            Case 0
                polojitel(m) 'вывод индексов положительных элементов
        End Select

    End Sub

    Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
        sumnechet(m)
    End Sub

End Class


Комментариев нет:

Отправить комментарий