Вот на VB6:
Private Sub Command1_Click()
Cls
Dim K As Integer
Dim N As Integer
While Val(N) < 1
N = InputBox("Введите N>0:")
Wend
a:
K = InputBox("Введите K<=N:")
If K > N Or K < 1 Then GoTo a
ReDim M(100)
Randomize
'Вводим массив со случайными элементами
Print "Заданный случайно массив: "
For i = 1 To N
M(i) = Int(Rnd(100) * 100)
Print M(i)
Next i
b = N / 2
Select Case K
Case 1 To Int(b)
For i = K + 1 To 2 * K - 1
j = j + 1
C = M(i)
M(i) = M(K - j)
M(K - j) = C
Next i
Case Int(b) + 1 To N
If Int(b) + 1 = b + 1 Then 'середина массива M
For i = K + 1 To N
j = j + 1
C = M(i)
M(i) = M(K - j)
M(K - j) = C
Next i
Else 'средний элемент массива M
For i = 1 To K - 1
C = M(i)
M(i) = M(N - i + 1)
M(N - i + 1) = C
Next i
End If
Case Else
End Select
'Вывод измененного массива M:
Print "Измененный массив: "
For i = 1 To N
Print M(i)
Next i
End Sub
Другие языки программирования и технологии
. Дан массив из N чисел. Поменять местами элементы, равноудаленные от произвольно задаваемого К-го элемента.
vb 6 под рукой не оказалось, поэтому написал в экселе, но должно запуститься и в обычном бейсике
Sub change()
Dim N() As Double
Dim i, k, en As Integer
Dim mass, mass1, mass2 As String
Dim temp As Double
On Error Resume Next
Randomize
en = InputBox("Введите N")
ReDim N(1 To en)
k = InputBox("Введите элемент, относительно которого меняются местами эл-ты")
If k >= en Or k < 1 Then
MsgBox ("Невозможно работать в таких условиях")
Exit Sub
End If
For i = 1 To en
N(i) = CInt(-10 * Rnd + 5)
mass = mass + Str(N(i)) + Chr(13)
'Cells(i + 1, 1) = N(i)
Next i
'MsgBox ("N =" + Chr(13) + mass)
If k <= en / 2 Then
For i = k - 1 To 1 Step -1
temp = N(k - i)
N(k - i) = N(k + i)
N(k + i) = temp
Next i
For i = 1 To en
If i <> k Then mass1 = mass1 + Str(N(i)) + Chr(13) Else mass1 = mass1 + "<" + Str(N(i)) + ">" + Chr(13)
'Cells(i + 1, 3) = N(i)
Next i
MsgBox (" N =" + Chr(13) + mass + Chr(13) + "k= " + Str(k) + " N1 =" + Chr(13) + mass1)
'Cells(k + 1, 3).Font.Bold = True
End If
If k > en / 2 Then
For i = k To en
j = j + 1
temp = N(k + j)
N(k + j) = N(k - j)
N(k - j) = temp
Next i
For i = 1 To en
If i <> k Then mass2 = mass2 + Str(N(i)) + Chr(13) Else mass2 = mass2 + "<" + Str(N(i)) + ">" + Chr(13)
'Cells(i + 1, 5) = N(i)
Next i
MsgBox ("N =" + Chr(13) + mass + Chr(13) + "k= " + Str(k) + " N1 =" + Chr(13) + mass2)
'Cells(k + 1, 5).Font.Bold = True
End If
End Sub
только вот почему-то не хочет выделять К-й элемент.. . сорри )
Sub change()
Dim N() As Double
Dim i, k, en As Integer
Dim mass, mass1, mass2 As String
Dim temp As Double
On Error Resume Next
Randomize
en = InputBox("Введите N")
ReDim N(1 To en)
k = InputBox("Введите элемент, относительно которого меняются местами эл-ты")
If k >= en Or k < 1 Then
MsgBox ("Невозможно работать в таких условиях")
Exit Sub
End If
For i = 1 To en
N(i) = CInt(-10 * Rnd + 5)
mass = mass + Str(N(i)) + Chr(13)
'Cells(i + 1, 1) = N(i)
Next i
'MsgBox ("N =" + Chr(13) + mass)
If k <= en / 2 Then
For i = k - 1 To 1 Step -1
temp = N(k - i)
N(k - i) = N(k + i)
N(k + i) = temp
Next i
For i = 1 To en
If i <> k Then mass1 = mass1 + Str(N(i)) + Chr(13) Else mass1 = mass1 + "<" + Str(N(i)) + ">" + Chr(13)
'Cells(i + 1, 3) = N(i)
Next i
MsgBox (" N =" + Chr(13) + mass + Chr(13) + "k= " + Str(k) + " N1 =" + Chr(13) + mass1)
'Cells(k + 1, 3).Font.Bold = True
End If
If k > en / 2 Then
For i = k To en
j = j + 1
temp = N(k + j)
N(k + j) = N(k - j)
N(k - j) = temp
Next i
For i = 1 To en
If i <> k Then mass2 = mass2 + Str(N(i)) + Chr(13) Else mass2 = mass2 + "<" + Str(N(i)) + ">" + Chr(13)
'Cells(i + 1, 5) = N(i)
Next i
MsgBox ("N =" + Chr(13) + mass + Chr(13) + "k= " + Str(k) + " N1 =" + Chr(13) + mass2)
'Cells(k + 1, 5).Font.Bold = True
End If
End Sub
только вот почему-то не хочет выделять К-й элемент.. . сорри )
Похожие вопросы
- Дан массив размера N. Вывести все двузначные элементы массива и их номера. ПОМОГИТЕ pascal ХЕЛП
- C# Дан массив размера N. Найти 2 элемента массива, сумма которых наиболее близка к максимуму массива и поменять
- Язык С. Как поменять местами элементы???
- ПОМОГИТЕ ОЧЕНЬ НУЖНА ПОМОЩ Поменять местами элементы, расположенные симметрично относительно побочной диагонали
- Помогите Задан массив Р(N).Переписать все его элементы,за исключением максимального и минимального в массив D.(язык C++)
- Помогите :) Дан массив из n целых чисел. Найти количество встречающихся равных чисел.
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- 2. Отсортировать массив из n чисел и подсчитать количество уникальных чисел в массиве. на паскале
- Дан массив размера N.Определить количество его промежутков монотонности.
- ПОМОГИТЕ! В паскале заполнить квадратный массив размерностью n числами 1,2,3… по спирали от края к центру по часовой стр