Даю 50 баллов! Помогите пожалуйста.
В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом.
Нужно составить программу для Visual Basic for Application (VBA).
Заранее огромное спасибо)))​

Ответы

Ответ дал: WalKingTarget
0

Ответ:

program laba;

{$APPTYPE CONSOLE}

uses

 SysUtils,

 windows;

var

 a:array[1..15] of integer;

 i,imax,x:integer;

begin

SetConsoleoutputCP(1251);

 for i:=1 to 15 do

begin

writeln('Введите',i,'-й элемент');

readln(a[i]);

end;

imax:=1;

for i:=2 to 15 do

if a[i]>a[imax] then imax:=i;

x:=a[15];

writeln('максимальное число = ',a[imax],' его индекс= ',imax);

if imax=15 then write('Он последний, обмена нет');

else

  begin

  x:=a[imax];

  a[imax]:=a[15];

  a[15]:=x;

  writeln('Обмен максимального и последнего:');

  for i:=1 to 15 do

  write(a[i]:6:3,' ');

  end;

 

readln;

end.

Объяснение:


BobbyFresnel: Я вот написал тут одному с таким вводом выводом - и началось нытье "мы так не учили".
vkzxc123: Всех учат по разному.
BobbyFresnel: Т.е. механизм был такой: вводим в строку по ячейкам значения элементов, а потом вызываем макрос и он пишет преобразованные значения строкой ниже.
BobbyFresnel: Вполне в стиле Эксель
vkzxc123: Ну это да, но как мне это поможет
BobbyFresnel: Например, если тебя такая форма ввода и вывода устроит, то писать программу вообще нефик делать
vkzxc123: Меня любое решение устроит)
BobbyFresnel: Ща наковырю)
vkzxc123: Спасибо
vkzxc123: Огромное
Ответ дал: BobbyFresnel
1

Sub Swap()

   Dim r As Range, A As Variant

   Dim i As Integer, im As Double, n As Integer, t As Double

   n = 15

   Set r = Range(Cells(1, 1), Cells(1, n))

   A = r

   im = 1

   For i = 2 To n

       If A(1, i) > A(1, im) Then

           im = i

       End If

   Next i

   t = A(1, im)

   A(1, im) = A(1, n)

   A(1, n) = t

   Set r = Range(Cells(2, 1), Cells(2, n))

   r = A

End Sub

На лист в ячейки А1 - О1 заносим исходные 15 чисел

На этот же лист через проект помещаем макрос и запускаем.

Результат будет в ячейках А2 - О2


vkzxc123: Спасибо бро)))
BobbyFresnel: Пожалуйста
Вас заинтересует