18:49

Добрый вечер! помогите мне пожалуйста, укажите на ошибку..
составляю программу по условию: отсортировать по убыванию элементы массива, удовлетворяющие условию a_i<5 методом выбора\на Visual Basic 2010

программа

в той области где я выделила

@темы: Программирование (тема закрыта

Комментарии
10.11.2015 в 22:26

Эллипс - это круг, который можно вписать в квадрат 25х40
maya-96, программирование не совсем наш профиль... с такими вопросами лучше обращаться к специалистам programming.diary.ru/ ...

===============
Может я не внимательно всмотрелся в текст программы, то где определение переменной `m`, которая фигурирует в последних циклах... :upset:
For Me.i = 1 To m - 1
d = i
For Me.j = 1 To i + 1 To m

10.11.2015 в 22:36

All_ex, это я тоже заметила, исправила уже)

вот здесь вот выдает ошибку
For Me.i = 1 To m - 1
d = i
For Me.j = 1 To i + 1 To m
If c(j) > c(d) Then
d = j
End If
Next j
Next i
10.11.2015 в 22:41

Эллипс - это круг, который можно вписать в квадрат 25х40
это я тоже заметила, исправила уже)
скрин мелковат... но там я всё равно не увидел, что переменной `m` присваивается какое-то значение... :nope:
10.11.2015 в 22:44

На плечах гигантов, на спинах электронов
For Me.j = 1 To i + 1 To m
Два То это как?
10.11.2015 в 22:57

All_ex,в basic 06 используется call sort (b,k)
используеся ли он в 2010?
10.11.2015 в 23:03

Эллипс - это круг, который можно вписать в квадрат 25х40
maya-96, All_ex,в basic 06 используется call sort (b,k). используется ли он в 2010?
К сожалению, вопрос не по адресу... таких подробностей VB я не знаю... :nope:
10.11.2015 в 23:04

Public Class Form1
Dim i, j, n, k, m, d As Integer
Dim A(0 To 100) As Integer
Dim B(0 To 100) As Integer
Dim c As Object

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
DataGridView1.ColumnCount() = 0
n = TextBox3.Text
DataGridView1.Columns.Add("Колонка", 0)
For Me.i = 1 To n 'столбец'
DataGridView1.Columns.Add("Колонка", i)
DataGridView1.Columns(i).Width = 50
Next i
For Me.i = 0 To 1 'строка'
DataGridView1.Rows.Add()
Next i
DataGridView1.Rows(0).Cells(0).Value = "Исх. Массив"
DataGridView1.Rows(1).Cells(0).Value = "Нов. Массив"
DataGridView1.Rows(2).Cells(0).Value = "Сор. Массив"

Randomize()
For Me.i = 1 To n
A(i) = Int(Rnd() * 40 - 20)
DataGridView1.Rows(0).Cells(i).Value = A(i)
Next i

k = 0
For Me.i = 1 To n
If A(i) < 5 Then
k = k + 1
B(k) = A(i)
DataGridView1.Rows(1).Cells(k).Value = B(k)
End If
Next i



For Me.i = 1 To m - 1
d = i
For Me.j = i + 1 To m
If c(d) < c(j) Then
End If
Next j
Next i

For Me.i = 1 To m
DataGridView1.Rows(2).Cells(i).Value = c(i)
Next i
End Sub
только вот сортировку не делает по убыванию
10.11.2015 в 23:10

Эллипс - это круг, который можно вписать в квадрат 25х40
Определение `m` я так и не увидел... :upset: ... такое ощущение, что эта переменная лишняя и там должно стоять `k`...

For Me.j = i + 1 To m
If c(d) < c(j) Then
End If

Странный кусок программы... напрашивается какое-то переобозначение величин после THEN ... :upset:
10.11.2015 в 23:13

All_ex, ой, там идет даллу d=j, но все равно особо ничего не меняется
10.11.2015 в 23:18

Эллипс - это круг, который можно вписать в квадрат 25х40
ой, там идет даллу d=j, но все равно особо ничего не меняется
мне кажется, что элементы массива должны тоже преобразовываться...
10.11.2015 в 23:36

All_ex, вот по такой программе идет
Public Class Form1
Dim i, j, h, t, u, n, k, c, e, A(100), B(100) As Integer

Dim f As Object

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
DataGridView1.ColumnCount() = 0
t = TextBox3.Text
DataGridView1.Columns.Add("Колонка", 0)
For Me.i = 1 To t 'столбец'
DataGridView1.Columns.Add("Колонка", i)
DataGridView1.Columns(i).Width = 50
Next i
For Me.i = 0 To 1 'строка'
DataGridView1.Rows.Add()
Next i
DataGridView1.Rows(0).Cells(0).Value = "Исх. Массив"
DataGridView1.Rows(1).Cells(0).Value = "Нов. Массив"
DataGridView1.Rows(2).Cells(0).Value = "Сор. Массив"


Randomize()
For Me.i = 1 To t
A(i) = Int(Rnd() * 40 - 20)
DataGridView1.Rows(0).Cells(i).Value = A(i)
Next i

c = 0
For Me.i = 1 To t
If A(i) < 5 Then
c = c + 1
B(c) = A(i)
DataGridView1.Rows(1).Cells(c).Value = B(c)
End If
Next i

For Me.j = 1 To c
For Me.i = 1 To c - j
If B(i) < B(i + 1) Then
k = B(i)
B(i) = B(i + 1)
B(i + 1) = k

End If
Next i
Next j

For Me.i = 1 To c
DataGridView1.Rows(2).Cells(i).Value = B(i)
Next i
End Sub


только это обмен или выбор?? не подскажете?
11.11.2015 в 06:44

Эллипс - это круг, который можно вписать в квадрат 25х40
только это обмен или выбор?? не подскажете?
Я не владею такой терминологией... :nope: