Страница: 1 |
Страница: 1 |
Вопрос: Как упорядочить числа по возрастанию
Добавлено: 12.07.04 13:26
Автор вопроса: ASiD | ICQ: 259132473
Как упорядочить n-ое количество чисел по возрастанию, начиная с наибольшего?
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 12.07.04 14:18
см. методы сортировки...
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 12.07.04 16:35
где их тебе упорядочит? в листе оно само может, в массиве булевским методом могу
Номер ответа: 3
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #3
Добавлено: 12.07.04 20:04
Блин тебе скока лет. Этому еще в классе 8 учат.
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 12.07.04 23:43
та ладно... вот у меня информатика токо с 10 ого класса, и то мы программирование не проходили
Номер ответа: 5
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #5
Добавлено: 13.07.04 11:04
Вообще говоря, простейший метод сортировки изучают в первом классе средней школы, причём ВСЕ поголовно.
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 13.07.04 12:20
2Pashenko, не помню ))
Помню пузырек, Щелла, и еще кого-то... но это было в классе 8ом... сейчас уже не помню...
Кстати, в институте, там и сортировок нам не давали... наверное... хотя откуда мне знать, я за весь семестр на информатике раза два был )
Номер ответа: 7
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #7
Добавлено: 13.07.04 15:18
Вопрос: Как упорядочить числа по возрастанию
Как упорядочить n-ое количество чисел по возрастанию, начиная с наибольшего?
...что то я не понимаю... упорядочить ПО ВОЗРАСТАНИЮ начиная с НАИБОЛЬШЕГО .... это как так? так то бишь во повзрастанию это .... имея 2 3 1 получаем 1 2 3... так а нам надо начиная с наибольшего ... то бишь первое число будет 3 а далее по возрастанию как и требуется в условии получаем 3 1 2 ?
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 13.07.04 18:05
короче проще всего создай времменный лист
Номер ответа: 9
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #9
Добавлено: 18.07.04 19:29
Днржи:
Option Explicit
Option Base 1
Dim mas(), mas1() As Integer
Dim n As Long
Dim i, j, Flag1 As Integer
Dim Flag As Boolean
Dim Takt As Double
Private Sub CmdCencel_Click()
L1.Clear
Takt = 0
CmdCencel.Enabled = False
cmdDecrase.Enabled = True
cmdIncrease.Enabled = True
For i = 1 To n
L1.AddItem mas1(i)
Next
End Sub
Private Sub cmdDecrase_Click()
L1.Clear
Takt = 0
Flag = True
CmdCencel.Enabled = True
cmdDecrase.Enabled = False
cmdIncrease.Enabled = True
Sort (n)
End Sub
Private Sub cmdExit_Click()
 im mb As String
mb = MsgBox("Завершить работу ?", vbQuestion + vbYesNo, "Выход"
If mb = vbYes Then End
End Sub
Private Sub cmdIncrease_Click()
L1.Clear
Flag = False
Takt = 0
CmdCencel.Enabled = True
cmdIncrease.Enabled = False
cmdDecrase.Enabled = True
Sort (n)
End Sub
Private Sub cmdRez_Click()
L1.Clear
n = Val(InputBox("Введите размерность массива", "Количество эламентов в массиве")
Takt = 0
If (Not IsNumeric(n)) Or n < 1 Or n > 32767 Then
MsgBox "Размарность данного массива может принимать значения от 0 до 32767 ", vbCritical, "Ошибка ввода"
Else
PB.Visible = True
ReDim mas(n): ReDim mas1(n)
For i = 1 To n
mas(i) = Int(Rnd * n) + 1
mas1(i) = mas(i)
L1.AddItem mas(i)
PB.Value = i: PB.Min = 1: PB.max = n
Next
PB.Visible = False
cmdIncrease.Enabled = True
cmdDecrase.Enabled = True
CmdCencel.Enabled = False
End If
End Sub
Private Sub Sort(m As Integer)
 im prom As Integer
 im Caunter As Integer
If OpReplase.Value = True And Flag = False Then
PB.Visible = True
i = 1
For i = 1 To n - i
Takt = Takt + 1
For j = 1 To n - i
Takt = Takt + 1
If mas(j) > mas(j + 1) Then
prom = mas(j + 1)
mas(j + 1) = mas(j)
mas(j) = prom
End If
Next
PB.Value = i: PB.Min = 1: PB.max = n
Next
PB.Visible = False
For i = 1 To n
L1.AddItem mas(i)
Next
Flag1 = 1
CmdStat.Enabled = True
ElseIf OpReplase.Value = True And Flag = True Then
PB.Visible = True
i = 1
For i = 1 To m - i
Takt = Takt + 1
For j = 1 To m - i
Takt = Takt + 1
If mas(j) < mas(j + 1) Then
prom = mas(j + 1)
mas(j + 1) = mas(j)
mas(j) = prom
End If
Next
PB.Value = i: PB.Min = 1: PB.max = n
Next
PB.Visible = False
For i = 1 To n
L1.AddItem mas(i)
Next
Flag1 = 2
CmdStat.Enabled = True
ElseIf OpSelect.Value = True And Flag = True Then
PB.Visible = True
 im max As Integer
i = 1
For i = 1 To n
Takt = Takt + 1
For j = i To n
Takt = Takt + 1
If mas(j) > max Then
max = mas(j)
Caunter = j
End If
Next
mas(Caunter) = mas(i)
mas(i) = max
max = 1
PB.Value = i: PB.Min = 1: PB.max = n
Next
PB.Visible = False
For i = 1 To n
L1.AddItem mas(i)
Next
Flag1 = 3
CmdStat.Enabled = True
ElseIf OpSelect.Value = True And Flag = False Then
PB.Visible = True
 im Min As Integer
Min = 32767: i = 1
For i = 1 To n
Takt = Takt + 1
For j = i To n
Takt = Takt + 1
If mas(j) < Min Then
Min = mas(j)
Caunter = j
End If
Next
mas(Caunter) = mas(i)
mas(i) = Min
L1.AddItem mas(i)
Min = 32767
PB.Value = i: PB.Min = 1: PB.max = n
Next
Flag1 = 4
PB.Visible = False
CmdStat.Enabled = True
End If
End Sub
Private Sub CmdStat_Click()
 im strMsg, strSort As String
 im strTakt, strStep As String
If n Mod 10 = 1 And n Mod 100 <> 11 Then
strStep = " элемент"
ElseIf n Mod 10 = 2 Or n Mod 10 = 3 Or n Mod 10 = 4 Then
strStep = " эемента"
Else
strStep = " элементов"
End If
If Takt Mod 10 = 1 And Takt Mod 100 <> 11 Then
strTakt = " шаг"
ElseIf Takt Mod 10 = 2 Or Takt Mod 10 = 3 Or Takt Mod 10 = 4 Then
strTakt = " шага"
Else
strTakt = " шагов"
End If
If Takt <> 0 Then
If OpSelect.Value = True And (Flag1 = 3 Or Flag1 = 4) Then
strMsg = " 'Выбора', "
ElseIf OpReplase.Value = True And (Flag1 = 3 Or Flag1 = 4) Then
strMsg = " 'Выбора', "
ElseIf OpReplase.Value = True And (Flag1 = 1 Or Flag1 = 2) Then
strMsg = " 'Обмена' (пузырьковый метод), "
Else
strMsg = " 'Обмена' (пузырьковый метод), "
End If
If Flag = False Then
strSort = " по возрастанию "
Else
strSort = " по убыванию "
End If
MsgBox "Массив содержит " & n & strStep & " , выстроен " & strSort & " методом " & strMsg & " прграмма сортировки выполнила " & Takt & strTakt, vbInformation, "Результат сортировки"
Else
MsgBox "Массив содержит " & n & strStep & " , не отсортирован", vbInformation, "О массиве"
End If
End Sub