Найти сумму элементов массива между первым и вторым отрицательными элементами - VB

Узнай цену своей работы

Формулировка задачи:

Дан одномерный массив. Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами. Сформировать из этих элементов новый массив (вывести в ListBox2 элементы между первым и вторым отрицательным элементами) Нужно написать только саму процедуру Public Sub calc(ByRef x() As Single) Dim If x(i) < 0 Then ???? End Sub Прошу помощи

Решение задачи: «Найти сумму элементов массива между первым и вторым отрицательными элементами»

textual
Листинг программы
Option Explicit On
Imports System.Math
Public Class Form1
    Dim x() As Single
    'Процедура вывода массива  
    Public Sub PrintL(ByRef x() As Single, ByRef LB As ListBox)
        Dim i As Integer
        Dim y As String = " "
        For i = 0 To UBound(x)
            y = y + Format(x(i), "0.00") + Space(4)
        Next i
        LB.Items.Add(y)
    End Sub
    'Процедура ввода массива (генератор случайных чисел)
    Sub vvod(ByRef x() As Single, ByVal index As Integer)
        Dim y, r As String
        Dim i As Integer
        For i = 0 To UBound(x)
            x(i) = Int((9 - (-3) +1) * Rnd() + (-3))
        Next i
    End Sub
 
    Public Sub calc2(ByRef x() As Single)
        Dim k, l, n As Integer
        Dim First As Boolean, second As Boolean
        Dim sum As Single
        k = 0 : l = 0
        First = False : second = False
        For i = 1 To n
            If x(i) < 0 And First = False Then
                k = i ' K - первый отрицательный элемент
                First = True
            ElseIf x(i) < 0 And second = False Then
                l = i ' l - второй отрицатиельный
                second = True
            End If
        Next i
 
        If l - k <= 1 Then Exit Sub
        For i = k + 1 To l - 1
            PrintL(x, ListBox2)
        Next i
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button1.Click
        Dim index, n As Integer
        ListBox1.Items.Clear() 'очищаем listbox1
        ListBox2.Items.Clear() 'очищаем lixtbox2
        n = Val(TextBox1.Text) - 1 'кол=во эл-тов массива
        ReDim x(n)
        vvod(x, index) 'ввод массива
        PrintL(x, ListBox1) 'выводисходного массива
        calc2(x) 'вызов процедуры
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы