Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
prodgod
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 3
1

Дан массив X(N). Найти наибольший элемент и поменять его местами с первым положительным элементом, если такой есть

23.12.2017, 15:56. Просмотров 266. Ответов 6

Дан массив X(N). Найти наибольший элемент и поменять его местами с первым положительным элементом, если такой есть.

Вроде как понял, как найти наибольший элемент, а вот дальше не очень понимаю что мне делать. Помогите дописать)
(мысли по поводу как найти больший элемент во вложении)
0
Миниатюры
Дан массив X(N). Найти наибольший элемент и поменять его местами с первым положительным элементом, если такой есть  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2017, 15:56
Ответы с готовыми решениями:

Найти максимальный элемент в массиве, поменять его местами с первым элементом
3.16. Найти максимальный элемент в массиве X(N), поменять его местами с первым...

Найти наибольший элемент и поменять его местами с соответствующим диагональным элементом
В каждой строке матрицы найти наибольший элемент м поменять его местами с...

Найти в каждой строке наибольший элемент и поменять его местами с элементом главный диагонали
Подскажите пожайлуста с решением. Дана целочисленная квадратная матрица найти в...

Найти минимальный элемент массива и поменять его местами с первым элементом массива
Найти минимальный элемент массива A(N) и поменять его местами с первым...

В каждом столбце матрицы найти минимальный элемент и поменять его с первым элементом столбца
Прошу вашей помощи товарищи с приведенными ниже задачами: 1)Задана матрица...

6
Остап Бонд
600 / 394 / 192
Регистрация: 17.08.2017
Сообщений: 977
23.12.2017, 16:06 2
prodgod, неужели выложить картинку проще, чем скопировать код?
Не буду ломать глаза и мозолить пальцы из принципа.
0
prodgod
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 3
23.12.2017, 16:10  [ТС] 3
Вот код, с картинки
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
Option Base 1
Sub F(x() As Double, k As Integer)
Dim a(1 To 100) As Integer, k As Integer, i As Integer
For i = 1 To 100
x(i) = Rnd * 100 - 50
Next i
End Sub
Function F2(x() As Double, N As Integer, Nmax As Double, Max As Double) As Integer
Nmax = 1: Max = x(1)
For i = 1 To 100
If x(i) > Max Then
Nmax = i
Max = x(i)
End If
F2 = Nmax
Next i
End Function
0
Остап Бонд
600 / 394 / 192
Регистрация: 17.08.2017
Сообщений: 977
23.12.2017, 16:19 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Function F2(x() As Double, N As Integer, Nmax As Integer, Max As Double) As Integer
Nmax = 1: Max = x(1)
N = 0
For i = 1 To 100
  If x(i) > 0 And N = 0 Then N = i 'ЗДЕСЬ ВЕРНЕТСЯ ПОЗИЦИЯ ПЕРВОГО ПОЛОЖИТЕЛЬНОГО
  If x(i) > Max Then
      Nmax = i
      Max = x(i)
  End If
  'F2 = Nmax
Next i
F2 = Nmax
End Function
0
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
23.12.2017, 22:45 5
Дан массив X(N)
А при чём тут 100?
Типа привязка к 100 грамм?
Для моей массы надо грамм 250!
Для чего в условии N?
Если массив дан, то его надо откуда-то взять!
В каком виде он дан?
Массивы. Обьявление массивов. Сортировка массивов
0
prodgod
0 / 0 / 0
Регистрация: 25.10.2017
Сообщений: 3
23.12.2017, 22:47  [ТС] 6
Я точно не могу знать. Я бедный студент, у которого препод уплывает в запои и ничего не объясняет. не факт, что первая часть кода правильная.
0
Остап Бонд
600 / 394 / 192
Регистрация: 17.08.2017
Сообщений: 977
24.12.2017, 00:06 7
Чуть не расплакался
Покажи это алкашу-преподу, когда вынырнет
Visual Basic
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
Option Explicit
Option Base 1
Sub main()
Dim a() As Double, iMax As Integer, i1P As Integer
InitArray a, 100
iMax = GetIndexMax(a)
i1P = GetIndexFirstPositive(a)
Dim tmp As Double
tmp = a(iMax)
a(iMax) = a(i1P)
a(i1P) = tmp
End Sub
Sub InitArray(x() As Double, Size As Long)
Dim i As Integer
ReDim x(1 To Size)
For i = 1 To Size
  x(i) = Rnd * 100 - 50
Next i
End Sub
Function GetIndexMax(x() As Double) As Integer
Dim i As Integer, Max As Double
GetIndexMax = 1: Max = x(1)
For i = 1 To UBound(x)
  If x(i) > Max Then
      GetIndexMax = i
      Max = x(i)
  End If
Next i
End Function
Function GetIndexFirstPositive(x() As Double) As Integer
Dim i As Integer
GetIndexFirstPositive = 0 'это можно не писать.
For i = 1 To UBound(x)
  If x(i) > 0 And GetIndexFirstPositive = 0 Then GetIndexFirstPositive = i
Next i
End Function
1
24.12.2017, 00:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2017, 00:06

Найти наименший элемент матрицы и поменять его местами с первым
Есть две одинаковые матрици U(i,j) и V(i,j). В обоих нужно найти найменьший...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом
Ошибка в задаче. Может я что-то не дописал. Исправьте пожалуйста программу. ...

Дан массив действительных чисел A(n). Поменять местами наибольший и наименьший элементы
Дан массив действительных чисел A(n). Поменять местами наибольший и наименьший...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru