Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2010, 02:41   #1
Katie
 
Регистрация: 23.12.2009
Сообщений: 7
По умолчанию Максимальный элемент массива поменять местами с четвертым.

У меня зачача:
Максимальный элемент массива поменять местами с четвертым.

Вот такую задачу мы делали на паре:
Дан входной одномерный масив.Выходной массив получить, поменяв во входящем массиве первый и последний элементы местами и вывести оба массива-входной и выходной в рабочий лист.

Private Sub CommandButton1_Click()
n=InputBox("Vvedite kolichestvo elementov n")
ReDim A(n)
For i=1 to n
A(i)=InputBox("Vvedite a("& i &")")
Next i
For i=1 to n
Cells(2,i).Value=A(i)
Next i
Cells(1,1)="Vhodnoj"
Cells(1,2)="Massiv"
Cells(1,3)="Vuhodnoj"
Cells(3,2)="Massiv"
Amax=A(1):Amin=A(1)
Nmax=1:Nmin=1
For i=2 to n
If Amax<A(i) Then
Amax=A(i):Nmax=i
If Amin>A(i) Then
Amin=A(i):Nmin=i
Next i
A(Nmax)=Amin
A(Nmin)=Amax
Fot i=1 to n
Cells(4,i).Value=A(i)
Next i
End Sub

Буду очень благодарна за помощь!!!
Katie вне форума Ответить с цитированием
Старый 13.01.2010, 03:31   #2
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Ну поидее вот так:

Код:
Private Sub CommandButton1_Click()
  n=InputBox("Vvedite kolichestvo elementov n")
  ReDim A(n)
  For i=1 to n
    A(i)=InputBox("Vvedite a("& i &")")
  Next i
  For i=1 to n
    Cells(2,i).Value=A(i)
  Next i
  Cells(1,1)="Vhodnoj"
  Cells(1,2)="Massiv"
  Cells(1,3)="Vuhodnoj"
  Cells(3,2)="Massiv"
  Amax=A(1)
  Nmax=1
  For i=2 to n
    If Amax<A(i) Then
    Amax=A(i):Nmax=i
  Next i
  A(Nmax)=A(4)
  A(4)=Amax
  Fot i=1 to n
    Cells(4,i).Value=A(i)
  Next i
End Sub
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 13.01.2010 в 03:33.
val_nnm вне форума Ответить с цитированием
Старый 13.01.2010, 05:59   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Не забыть про VAL

А на деле так!

Код:
Option Base 1 'зададим, для удобства, индексацию элементов с 1 (а не с 0)'
Option Explicit
Dim n
Код:
Sub Button1_Click()
Dim A(), i, Amax, Nmax
  n = InputBox("Введите количество элементов массива.", Date, n)
    If IsNumeric(n) Then
        If Abs(n) >= 4 Then
            ReDim A(Abs(Fix(n)))
        Else
            MsgBox "Это должно быть число не меньше 4.": Exit Sub
        End If
    Else
        MsgBox "Это должно быть число.":        Exit Sub
    End If
  
  For i = 1 To n: A(i) = Val(InputBox("Элемент № " & i & " = ?", i & "-й", Int(Rnd * 30) - 15)): Next
  
  Cells(1, 1) = "Входной массив":  Cells(1, 4) = "Выходной массив"
  For i = 1 To n: Cells(i + 1, 1).Value = A(i): Next
  
  
        Amax = A(1):      Nmax = 1
        
    For i = 2 To n
      If A(i) > Amax Then Nmax = i: Amax = A(Nmax)
      MsgBox "Nmax = " & Nmax & vbCr & "Amax = " & Amax & vbCr & _
      "Здесь с " & Amax & " сравнивается " & i & "-й элемент, равный " & A(i) & "."
    Next i

Код:
    A(Nmax) = A(4): A(4) = Amax           'на место максимального ставим 4-й элемент; и наоборот'
  
  For i = 1 To n: Cells(i + 1, 4).Select: Selection.Value = A(i): Next i 'печать нового массива'
  Cells(i, 5).Select
    Button1.Caption = "Washing..."
    SendKeys "^+{home}" 'выделение напечатанного (аналог нажатия Ctrl+Shift+Home) - для удобного стирания'
End Sub
Изображения
Тип файла: jpg ShowGo.jpg (97.9 Кб, 146 просмотров)
Вложения
Тип файла: rar Go.rar (14.9 Кб, 13 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти наибольший и наименьший элемент матрицы B(N x M) и поменять их местами поЛотЕнчик_просТо Общие вопросы C/C++ 2 13.05.2009 12:17
Как поменять местами в массиве max и min элемент. Stager Общие вопросы C/C++ 2 13.01.2009 02:03
массив. поменять местами элемент felmor Паскаль, Turbo Pascal, PascalABC.NET 2 26.12.2008 20:50
Максимальный элемент массива j_Q Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.11.2008 22:48