Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6

Найти сумму чисел за вычетом наименьшего и наибольшего

31.03.2015, 11:45. Показов 1328. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.
Я написала программу(коряво, но как смогла), а там ошибка, которую я не могу исправить. Может ли кто помочь?
Задание проги- есть 5 судей и 5 спортсменов и 5 оценок каждому спортсмену от каждого судьи. Надо вычесть наименьшую и наибольшую оценку от каждого судьи и остальные 3 просумировать. Затем выбрать финалиста из наибольшей суммы оценок.
Прога запрашивает оценки, высчитывает наибольшее и наименьшее, но там шде надо просумировать оно не вычетает наибольшее и наименьшее. Я выделила шрифтом. Может у кого есть мысль как переделать?

Там кстати можно прогу сделать покороче через ByRef но чето я не соображаю. Мне б хотя бы так...
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Imports System
Imports System.IO
Module Module1
    Dim Score1(5) As Integer
    Dim Score2(5) As Integer
    Dim Score3(5) As Integer
    Dim Score4(5) As Integer
    Dim Score5(5) As Integer
    Dim Sum1 As Integer
    Dim Sum2 As Integer
    Dim Sum3 As Integer
    Dim Sum4 As Integer
    Dim Sum5 As Integer
    Dim lowest1 As Integer
    Dim lowest2 As Integer
    Dim lowest3 As Integer
    Dim lowest4 As Integer
    Dim lowest5 As Integer
    Dim highest1 As Integer
    Dim highest2 As Integer
    Dim highest3 As Integer
    Dim highest4 As Integer
    Dim highest5 As Integer
 
    'enter scores(5) fo each driver(5)
    Sub Main()
        Dim path As String = "\\...finalists.txt"
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
        For i = 1 To 5
            Score1(i) = InputBox("Please enter 5 scores for diver1")
        Next i
        For i = 1 To 5
            Score2(i) = InputBox("Please enter 5 scores for diver2")
        Next i
        For i = 1 To 5
            Score3(i) = InputBox("Please enter 5 scores for diver3")
        Next i
        For i = 1 To 5
            Score4(i) = InputBox("Please enter 5 scores for diver4")
        Next i
        For i = 1 To 5
            Score5(i) = InputBox("Please enter 5 scores for diver5")
        Next i
        Call Scoresum()
        Call displaychampion()
    End Sub
 
    'for each driver delete highest and lowest scores and find sum for another 3 scores.
    Sub Scoresum()
        lowest1 = Score1(1)
        For i = 1 To 5
            If Score1(i) < lowest1 Then lowest1 = Score1(i)
        Next i
        highest1 = Score1(1)
        For i = 1 To 5
            If Score1(i) > highest1 Then highest1 = Score1(i)
        Next i
 
        lowest2 = Score2(1)
        For i = 1 To 5
            If Score2(i) < lowest2 Then lowest2 = Score2(i)
        Next i
        highest2 = Score2(1)
        For i = 1 To 5
            If Score2(i) > highest2 Then highest2 = Score2(i)
        Next i
 
        lowest3 = Score3(1)
        For i = 1 To 5
            If Score3(i) < lowest3 Then lowest3 = Score3(i)
        Next i
        highest3 = Score3(1)
        For i = 1 To 5
            If Score3(i) > highest3 Then highest3 = Score3(i)
        Next i
 
        lowest4 = Score4(1)
        For i = 1 To 5
            If Score4(i) < lowest4 Then lowest4 = Score4(i)
        Next i
        highest4 = Score4(1)
        For i = 1 To 5
            If Score4(i) > highest4 Then highest4 = Score4(i)
        Next i
 
        lowest5 = Score5(1)
        For i = 1 To 5
            If Score5(i) < lowest5 Then lowest5 = Score5(i)
        Next i
        highest5 = Score5(1)
        For i = 1 To 5
            If Score5(i) > highest5 Then highest5 = Score5(i)
        Next i
 
' ****************
        For i = 1 To 5
            If Not (Score1(1) = lowest1 And Score1(1) = highest1) Then
                Sum1 = Sum1 + Score1(i)
            End If
        Next i
        For i = 1 To 5
            If Not (Score2(1) = lowest2 And Score2(1) = highest2) Then
                Sum2 = Sum2 + Score2(i)
            End If
        Next i
        For i = 1 To 5
            If Not (Score3(1) = lowest3 And Score3(1) = highest3) Then
                Sum3 = Sum3 + Score3(i)
            End If
        Next i
        For i = 1 To 5
            If Not (Score4(1) = lowest4 And Score4(1) = highest4) Then
                Sum4 = Sum4 + Score4(i)
            End If
        Next i
        For i = 1 To 5
            If Not (Score5(1) = lowest5 And Score5(1) = highest5) Then
                Sum5 = Sum5 + Score5(i)
            End If
        Next i
' ****************
    End Sub
 
    'find max from 5 sum of scores and display Champion
    Sub displaychampion()
        Dim finalsum As Integer
        finalsum = Sum1
        If finalsum < Sum2 Then finalsum = Sum2
        If finalsum < Sum3 Then finalsum = Sum3
        If finalsum < Sum4 Then finalsum = Sum4
        If finalsum < Sum5 Then finalsum = Sum5
        MsgBox(finalsum)
    End Sub
End Module
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2015, 11:45
Ответы с готовыми решениями:

В матрице найти сумму и произведение наибольшего и наименьшего элементов
В заданной матрице (m x n) найти сумму и произведение наибольшего и наименьшего (по абсолютной величине) элементов. Написать программу.:)

Найдите сумму наибольшего и наименьшего элементов квадратной матрицы
3) Найдите сумму наибольшего и наименьшего элементов квадратной матрицы. Размер матрицы вводит пользователь с консоли.

Найти среднее арифметическое наибольшего и наименьшего значений элементов матрицы
Дано целочисленную матрицу размера 3×4. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов. Не могу понять в...

12
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 11:59
нужен файл finalists.txt
0
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 12:02  [ТС]
держите
Вложения
Тип файла: txt finalists.txt (806 байт, 2 просмотров)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 12:05
Попробуйте
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
Imports System
Imports System.IO
Module Module1
    Dim Score(5, 5) As Integer, Sum(5) As Integer
    Dim lowest(5) As Integer, highest(5) As Integer
    Dim i As Integer, j As Integer
    'enter scores(5) fo each driver(5)
    Sub Main()
        Dim path As String = "\\...finalists.txt"
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
        For i = 1 To 5
            For j = 1 To 5
                Score(i, j) = InputBox("Please enter 5 scores for diver" & i)
            Next j
        Next i
        Call Scoresum()
        Call displaychampion()
    End Sub
 
    'for each driver delete highest and lowest scores and find sum for another 3 scores.
    Sub Scoresum()
 
        For i = 1 To 5
            lowest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) < lowest(i) Then lowest(i) = Score(i, j)
            Next j
        Next i
        For i = 1 To 5
            highest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) < highest(i) Then highest(i) = Score(i, j)
            Next j
        Next i
       
 
        For i = 1 To 5
            For j = 1 To 5
                If Score(i, j) <> lowest(i) And Score(i, j) <> highest(i) Then
                    Sum(i) = Sum(i) + Score(i, j)
                End If
            Next j
        Next i
       
    End Sub
 
    'find max from 5 sum of scores and display Champion
    Sub displaychampion()
        Dim finalsum As Integer
        For i = 1 To 5
            If finalsum < Sum(i) Then finalsum = Sum(i)
        Next i
        MsgBox(finalsum)
    End Sub
End Module
0
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 12:17  [ТС]
Чет глючит с i and j. Вначале.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
31.03.2015, 12:18
SoftIce, в 36 строке должен быть ">".
Вообще, алгоритм вызывает сомнение: если наибольших или наименьших более чем 1, из общей суммы должны удалиться только по одному наибольшему и наименьшему. Иначе может оказаться так, что суммировать нечего
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 12:26
Цитата Сообщение от Казанский Посмотреть сообщение
если наибольших или наименьших более чем 1
Да, я уже понял..
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
31.03.2015, 12:26
То есть так (не проверял), массивы lowest, highest не нужны (нигде больше не используются)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Sub Scoresum()
      Dim lo As Integer, hi As Integer
        For i = 1 To 5
            lo = Score(i, 1)
            hi = lo
            For j = 1 To 5
                If Score(i, j) < lo Then
                  lo = Score(i, j)
                ElseIf Score(i, j) > hi Then
                  hi = Score(i, j)
                End If
                Sum(i) = Sum(i) + Score(i, j)
            Next j
            Sum(i) = Sum(i) - hi - lo
        Next i
    End Sub
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 12:28
Наверное,сначала нужно сложить все баллы, а потом вычесть сумму наименьшего и наибольшего?
0
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 12:31  [ТС]
не, сначала вычесть наибольшее и наименьшее из 5 баллов для каждого спортсмена, а потом оставшиеся 3 сложить и потом уже из 5 спортсменов выбрать наибольшее.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 12:32
Лучший ответ Сообщение было отмечено lynn как решение

Решение

Такой вариант
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
Imports System
Imports System.IO
Module Module1
    Dim Score(5, 5) As Integer, Sum(5) As Integer
    Dim lowest(5) As Integer, highest(5) As Integer
    Dim i As Integer, j As Integer
    'enter scores(5) fo each driver(5)
    Sub Main()
        'Dim path As String = "\\...finalists.txt"
        Dim path As String = "finalists.txt"
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
        For i = 1 To 5
            For j = 1 To 5
                Score(i, j) = Val(InputBox("Please enter scores number " & j & " for diver" & i))
                Console.Write(Score(i, j) & " ")
            Next j
            Console.WriteLine()
        Next i
        Call Scoresum()
        Call displaychampion()
    End Sub
 
    'for each driver delete highest and lowest scores and find sum for another 3 scores.
    Sub Scoresum()
        For i = 1 To 5
            lowest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) > lowest(i) Then lowest(i) = Score(i, j)
            Next j
        Next i
        For i = 1 To 5
            highest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) < highest(i) Then highest(i) = Score(i, j)
            Next j
        Next i
       
 
        For i = 1 To 5
            Sum(i) = 0
            For j = 1 To 5
                Sum(i) += Score(i, j)
            Next j
            Sum(i) -= (lowest(i) + highest(i))
        Next i
       
    End Sub
 
    'find max from 5 sum of scores and display Champion
    Sub displaychampion()
        Dim finalsum As Integer
        For i = 1 To 5
            If finalsum < Sum(i) Then finalsum = Sum(i)
        Next i
        MsgBox(finalsum)
    End Sub
End Module
1
0 / 0 / 0
Регистрация: 30.03.2015
Сообщений: 6
31.03.2015, 12:56  [ТС]
работает!!!!
спасибочки огромные!!!!

я только убрала i и j As Integer вначале, оно не нужно вродь.
а что такое Val и как он работает?
и как понимать -= и +=?
если честно не понимаю этот кусочек
VB.NET
1
2
3
4
5
6
7
For i = 1 To 5
            Sum(i) = 0
            For j = 1 To 5
                Sum(i) += Score(i, j)
            Next j
            Sum(i) -= (lowest(i) + highest(i))
        Next i
не могли б объяснить, чтоб я в следующий раз с глупыми програмками не лезла.)

Добавлено через 10 минут
все поняла, разобралась. всем спасибо!
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.03.2015, 13:08
Цитата Сообщение от lynn Посмотреть сообщение
я только убрала i и j As Integer вначале
Странно, странно.....

Еще вариант, правда принципиально там ничего не поменялось
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
Imports System
Imports System.IO
Module Module1
    Dim Score(5, 5) As Integer, Sum(5) As Integer
    Dim lowest(5) As Integer, highest(5) As Integer
    Dim readText() As String
    Dim i As Integer=0, j As Integer=0
    'enter scores(5) fo each driver(5)
    Sub Main()
        'Dim path As String = "\\...finalists.txt"
        Dim path As String = "finalists.txt"
        Dim s As String = ""
        readText = File.ReadAllLines(path)
        For Each s In readText
            Console.WriteLine(s)
        Next
        For i = 1 To 5
 
            s = ""
            For j = 1 To 5
                Score(i, j) = Val(InputBox("Please enter score №" & j & " for diver " & Split(readText(i * 2 + 1), "|")(1)))
                s &= (Score(i, j) & "   ")
            Next j
            Console.WriteLine()
            s = Split(readText(i * 2 + 1), "|")(1) & " Scores: " & s
            Console.WriteLine(s)
        Next i
        Call Scoresum()
        Call displaychampion()
    End Sub
 
    'for each driver delete highest and lowest scores and find sum for another 3 scores.
    Sub Scoresum()
        For i = 1 To 5
            lowest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) < lowest(i) Then lowest(i) = Score(i, j)
            Next j
        Next i
        For i = 1 To 5
            highest(i) = Score(i, 1)
            For j = 1 To 5
                If Score(i, j) > highest(i) Then highest(i) = Score(i, j)
            Next j
        Next i
       
 
        For i = 1 To 5
            Sum(i) = 0
            For j = 1 To 5
                Sum(i) += Score(i, j)
            Next j
            Sum(i) -= (lowest(i) + highest(i))
        Next i
       
    End Sub
 
    'find max from 5 sum of scores and display Champion
    Sub displaychampion()
        Dim finalsum As Integer, maxNum As Integer
        maxNum = 1
        For i = 1 To 5
            If finalsum < Sum(i) Then finalsum = Sum(i) : maxNum = i
        Next i
        MsgBox(finalsum)
        Console.WriteLine()
        Console.WriteLine("Champions Name: " & Split(readText(maxNum * 2 + 1), "|")(1) & " Max Scores: " & finalsum)
        Console.ReadLine()
    End Sub
End Module
Миниатюры
Найти сумму чисел за вычетом наименьшего и наибольшего  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2015, 13:08
Помогаю со студенческими работами здесь

Найти сумму наибольшего и наименьшего чисел; количество чисел в файле
Ребята, вот задание: Дан файл, в котором записаны вещественные числа. Найти: сумму наибольшего и наименьшего чисел; количество чисел в...

Даны n целых чисел, найти сумму наибольшего и наименьшего
Можете помочь с программой? Даны n целых числа, найти сумму наибольшего и наименьшего. Не идёт, выдаёт ошибку. #include...

Дано 10 чисел. Найти сумму наибольшего и наименьшего чисел
1.20 Дано 10 чисел. Найти сумму наибольшего и наименьшего чисел.

Дано 10 чисел. Найти сумму наибольшего и наименьшего чисел
Здраствуйте! Помогите пожалуйста составить программу для 2)Дано 10 чисел. Найти сумму наибольшего и наименьшего чисел. Мне на...

Даны N целых чисел. Найти сумму наибольшего и наименьшего числа
Помогите решить задачу: Даны N целых чисел. Найти сумму наибольшего и наименьшего числа.


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru