0 / 0 / 0
Регистрация: 05.01.2019
Сообщений: 7
1

ООП. Наследование. Одномерные массивы

07.01.2019, 16:11. Показов 868. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив целых чисел Z(n).
Найти среднее арифметическое элементов массива Z, расположенных после первого нулевого элемента.

Помогите пожалуйста, в чем ошибка?

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Public Class Class1
    Private Z() As Integer = New Integer() {}
    Public n As Integer
    Public Property intZ(ByVal i As Integer) As Integer
        Get
            Return Z(i)
        End Get
        Set(ByVal value As Integer)
            Z(i) = value
        End Set
 
    End Property
    Public Sub input()
        n = CInt(InputBox("Введите число элементов целочисленного массива"))
        ReDim Z(n - 1)
        For i As Integer = 0 To n - 1
            Z(i) = CInt(InputBox("Введите " & i + 1 & "-й элемент массива"))
        Next i
    End Sub
 
End Class
 
Public Class Class2
    Inherits Class1
    Private Y() As Integer = New Integer() {}
    Public Property intY(ByVal i As Integer) As Integer
        Get
            Return Y(i)
 
        End Get
        Set(ByVal value As Integer)
            Y(i) = value
 
        End Set
    End Property
    Public Sub chenge()
        Dim k, sum, j As Integer
        Dim SR As Decimal
        SR = 0 : k = 0 : sum = 0
        ReDim Y(n - 1)
        For i As Integer = 0 To n - 1
            If Y(i) = 0 And i < (n - 1) Then
                For j = i + 1 To (n - 1)
                    sum = sum + Y(j)
                    k = k + 1
                Next j
            End If
 
 
        Next i
        If k > 0 Then
            SR = sum / k
        End If
 
    End Sub
 
End Class
Public Class Form1
    Public arrayOne As New Class2
    Dim n As Integer
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        arrayOne.input()
        n = arrayOne.n
        For i As Integer = 0 To n - 1
            TextBox1.Text += CStr(arrayOne.intZ(i)) + " "
        Next i
 
        arrayOne.chenge()
        For i As Integer = 0 To n - 1
            TextBox2.Text += CStr(arrayOne.intY(i)) + " "
        Next
    End Sub
End Class
Миниатюры
ООП. Наследование. Одномерные массивы  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2019, 16:11
Ответы с готовыми решениями:

Одномерные массивы
Здравствуйте. Не могли бы вы помочь найти ошибку в коде? Как ее исправить? Задание: 1.) Найти...

Одномерные массивы: сколько раз в одномерном массиве повторяются значения
Написать код: Определить сколько раз в одномерном массиве повторяются значения каждого из его...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил...

ООП принципы абстрактизация и наследование
class Program { static void Main(string args) { Programmer...

1
4406 / 3530 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
07.01.2019, 17:45 2
monikamo, все это конечно несколько надуманно.
Добавьте в Class1
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Z() As Integer = New Integer() {}
'…
Protected Function LastPartArray() As Integer()
    'возвращает массив из элементов базового массива расположенных после первого нулевого элемента
    Dim k As Integer = -1
    Dim arr() As Integer = New Integer() {}
    For i = 0 To Z.Length - 2
        If Z(i) = 0 Then
            k = i
            Exit For
        End If
    Next
    If k <> -1 Then
        ReDim arr(Z.Length - k - 2)
        Array.Copy(Z, k + 1, arr, 0, arr.Length)
    End If
    Return arr
End Function

Теперь этот класс отвечает не только за ввод базового массива, но и возвращает массив из элементов расположенных после первого нулевого элемента.
Несколько поменял Class Class2
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Class Class2
    Inherits Class1
    Private Y() As Integer = New Integer() {}
    Public Property intY(ByVal i As Integer) As Integer
        Get
            Return Y(i)
        End Get
        Set(ByVal value As Integer)
            Y(i) = value
        End Set
    End Property
    Public Property m As Integer
    Public Function chenge() As Double
        Dim sum As Integer = 0
        Y = LastPartArray()
        _m = Y.Length
        If Y.Length = 0 Then Return Double.MinValue
        For i As Integer = 0 To Y.Length - 1
            sum = sum + Y(i)
        Next i
        Return sum / Y.Length
    End Function
End Class

Ну и обращение к этому классу
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim arrayOne As New Class2
    arrayOne.input()
    TextBox1.Clear()
    For i As Integer = 0 To arrayOne.n - 1
        TextBox1.AppendText(arrayOne.intZ(i).ToString & vbCrLf)
    Next i
    TextBox2.Clear()
    Dim sr As Double = arrayOne.chenge()
    For i As Integer = 0 To arrayOne.m - 1
        TextBox2.AppendText(arrayOne.intY(i) & vbCrLf)
    Next
    If sr = Double.MinValue Then
        Label1.Text = "В базовом массиве нет элемента со значением 0!"
    Else
        Label1.Text = sr.ToString
    End If
End Sub
1
07.01.2019, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2019, 17:45
Помогаю со студенческими работами здесь

(ООП) Множественное наследование через интерфейсы?
Доброго времени суток, хотелось бы, что либо на подобии множественного наследования в классе...

Одномерные массивы
В одномерном массиве, состоящем из целых элементов, вычислить: 1) произведение элементов массива...

Массивы одномерные
Помогите плиз!!!!!!!!!!! 1.заменить максимальный по модулю отрицательный элемент нулем 2.заменить...

Одномерные массивы
static void Main(string args) { int myarray = new int; //...

Одномерные массивы
В одномерном массиве, который состоит из n вещественных элементов, вычислить: • сумму позитивных...

Одномерные массивы
Случайным образом формируются координаты X и Y 100 точек. Диапазон значений координат от -150 до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru