Программирование типовых алгоритмов обробки данных.

Презентация:



Advertisements
Похожие презентации
Программирование типовых алгоритмов обробки данных. 1. Программирование линейных вычислительных процессов. 2. Программирование разветвляющихся вычислительных.
Advertisements

Циклом Циклом называется операция, в которой одни и те же действия повторяются многократно. Цикл состоит из оператора цикла и тела цикла. Оператор цикла.
Основные типы алгоритмических структур. Линейный алгоритм (следование). Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Циклические алгоритмы Повторение - это многократное выполнение одного или нескольких предписаний алгоритма. Цикл - это оператор языка программирования,
Операторы. Оператор выбора Оператор выбора Оператор выбора Оператор выбора Оператор присваивания Оператор присваивания Оператор присваивания Оператор присваивания.
ПРОГРАММИРОВАНИЕ ПОВТОРЕНИЙ МОУ «Средняя общеобразовательная школа 41» Учитель информатики: Рассохина Г.В. САРАНСК 2008.
1 Лекция 13 ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА Visual Basic For Applications (VBA) План лекции Типы данных VBA Операции над данными VBA Описание типов данных VBA Имена.
ПРОГРАММИРОВАНИЕ ПОВТОРЕНИЙ. НАЧАЛО AB A, B, C A = A + C F = B + C F КОНЕЦ B = B + C F = A + B B < C A = A + B F = A + C нет да A = 1, B = 1, C = 4 F=?
Основные типы алгоритмических структур. Линейный алгоритм ( следование ) Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Презентацию составила учитель первой категории МБОУ СОШ 14 имени К.С.Федоровского г.Юрги Кемеровской области Яковлева Ирина Владимировна.
Основные типы алгоритмических структур. Линейный алгоритм линейным алгоритмом Алгоритм, в котором команды выполняются последовательно одна за другой,
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА «ПОВТОРЕНИЕ» («ЦИКЛ») В ЯЗЫКЕ QBASIC Презентацию разработал Мащенко П.С., учитель МБОУ СОШ 2 муниципального образования Щербиновский.
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Виды алгоритмических структур: –блок-схема. –линейный алгоритм. –алгоритмическая структура «ветвление». –алгоритмическая структура «выбор». –алгоритмическая.
Операторы языка. Арифметические операторы Арифметические операторы Арифметические операторы Арифметические операторы Операторы сравнения Операторы сравнения.
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Тема: Управление потоком в PHP Изучить возможности языка PHP при решении задач, требующих использования условного оператора. Рассмотреть примеры управления.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
далее цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)цикл с неизвестным числом шагов (цикл с условием) что такое цикл?
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Транксрипт:

Программирование типовых алгоритмов обработки данных.

План 1. Программирование линейных вычислительных процессов. 2. Программирование разветвляющихся вычислительных процессов. 3. Программирование циклических вычислительных процессов. 4. Программирование типовых задач обработки массивов.

1. Программирование линейных вычислительных процессов. Пример 1- Линейный вычислительный процесс

Sub Prim_lin() Dim a, b, c, t, y As Double В тригонометрических функциях должен быть этот тип переменных- с плавающей точкой двойной точности 'Инициализируем переменные a = InputBox("Введите a", "Пример - линейный вычислительный процесс") b = InputBox("Введите b", "Пример - линейный вычислительный процесс") c = InputBox("Введите c", "Пример - линейный вычислительный процесс") t = (Sqr(a + b ^ 3 + c * (Cos(b)) ^ 2 + b * Sin(Sqr(c)))) / (Log(a * b) / Log(10#)) y = Atn(t / 2.8) + 2 * Atn(1)Функция arcctg MsgBox (" Результат: t = " & t) 'вывод результата в окне сообщений MsgBox (" Результат: y =" & y) 'вывод результата в окне сообщений End Sub

Cписок функций, которые могут быть получены с помощью встроенных математических функций: Функция Комбинация встроенных функций СекансSec(X) = 1 / Cos(X) КосекансCosec(X) = 1 / Sin(X) КотангенсCotan(X) = 1 / Tan(X) АрксинусArcsin(X) = Atn(X / Sqr(-X * X + 1)) АрккосинусArccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) АрккосекансArcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1)) АрккосекансArccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1)) АрккотангенсArccotan(X) = Atn(X) + 2 * Atn(1) Логарифм по основанию NLogN(X) = Log(X) / Log(N) Гиперболический синусHSin(X) = (Exp(X) - Exp(-X)) / 2 Гиперболический косинусHCos(X) = (Exp(X) + Exp(-X)) / 2 Гиперболический тангенсHTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X)) Гиперболический секансHSec(X) = 2 / (Exp(X) + Exp(-X)) Гиперболический косекансHCosec(X) = 2 / (Exp(X) - Exp(-X)) Гиперболический котангенсHCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X)) Гиперболический арксинусHArcsin(X) = Log(X + Sqr(X * X + 1)) Гиперболический арккосинусHArccos(X) = Log(X + Sqr(X * X - 1)) Гиперболический арктангенсHArctan(X) = Log((1 + X) / (1 - X)) / 2 Гиперболический арксекансHArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X) Гиперболический арккосекансHArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X) Гиперболический арккотангенсHArccotan(X) = Log((X + 1) / (X - 1)) / 2

2. Управляющие структуры языка VBA Для управления процессом обработки данных язык VBA позволяет использовать условные инструкциии и инструкции цикла, которые принято называть управляющими структурами. Условные инструкциии позволяют написать программу на языке Visual Basic, которая будет проверять условие и принимать решение какие действия по обработке данных должны выполняться. Условные инструкциии проверяют имеет условие значение True или False и в зависимости от результата, указывают одну или несколько дальнейших инструкциий. Обычно условие является выражением, которое использует оператор сравнения для сравнения одного значения переменной с другим. Инструкци цикла позволяют написать программу на языке Visual Basic, которая будет повторять выполнение определенного набора инструкциий. Некоторые циклы повторяют инструкциии пока условие имеет значение False; другие - пока значение условия равно True. Имеются также циклы, которые повторяют набор инструкциий определенное число раз или же выполняют его для каждого объекта семейства. Существует еще одна полезная управляющая структура - инструкциия With, которая позволяет выполнить последовательность инструкциий, не повторяя задание имени объекта.

Типы условных инструкциий If...Then...Else - ветвление программы в зависимости от значения условия True или False. Допускаются многократное вложение инструкциии If...Then...Else, имеющие столько уровней вложения, сколько потребуется. Однако для облегчения чтения программы вместо многократно вложенных инструкциий If...Then...Else иногда предпочтительнее использовать инструкциию Select Case. Select Case - выбор ветви из набора условий. Является альтернативой инструкциии If...Then...Else и используется при оценке одного выражения, которое имеет несколько возможных значений. В то время как If...Then...Else для каждой инструкциии ElseIf оценивает разные выражения, инструкциия Select Case оценивает выражение только один раз, в начале управляющей структуры.

Инструкция If...Then...Else Задает выполнение определенных групп инструкциий в зависимости от значения выражения. Возможны две формы синтаксиса: блочная If условие Then [инструкциии] [ElseIf условие-n Then [инструкциии_elseif]... [Else [инструкциии_else]] End If однострочная If условие Then [инструкциии] [Else инструкциии_else]

Синтаксис инструкциии If...Then...Else содержит следующие элементы:

Пример 1 - Разветвляющийся вычислительный процесс с инструкциией IF…END IF при х < 3 при 3 <= x <4 при х >= 4

Sub PrimerIf() Dim a, b, c, x As Double Dim y As Double a = InputBox("Введите a", "Пример - разветвляющийся вычислительный процесс") b = InputBox("Введите b", " Пример - разветвляющийся вычислительный процесс ") c = InputBox("Введите c", " Пример - разветвляющийся вычислительный процесс ") x = InputBox("Введите x", " Пример - разветвляющийся вычислительный процесс ") If x < 3 Then y = x ^ 3 - a * x ^ * x - 4 End If If x >= 3 And x < 4 Then y = Sqr((x - a) * (x - b)) End If If x >= 4 Then y = Log(b ^ 2) - Sin(c * x) End If MsgBox (" Результат: y = " & y) End Sub

Пример 2 -Разветвляющийся вычислительный процесс c использованием конструкции ElseIf при х < 3 при 3 <= x <4 при х >= 4

Sub PrimerElseIf() Dim a, b, c, x As Double Dim y As Double a = InputBox("Введите a", "Пример 2") b = InputBox("Введите b", "Пример 2") c = InputBox("Введите c", "Пример 2") x = InputBox("Введите X", "Пример 2") If x < 3 Then y = x ^ 3 - a * x ^ * x - 4 ElseIf x >= 3 And x < 4 Then y = Sqr((x - a) * (x - b)) Else y = Log(b ^ 2) - Sin(c * x) End If MsgBox (Результат: y = " & y) End Sub

Инструкция Select Case Выполняет одну из нескольких групп инструкциий в зависимости от значения выражения. Синтаксис: Select Case выражение [Case список Выражений-n [инструкциии-n]]... [Case Else [инструкциии_else]] End Select

Синтаксис инструкциии Select Case содержит следующие элементы:

Пример 3 -Разветвляющийся вычислительный процесс - инструкциия Select Case при х = 2 при x=4 при х = 10

Sub PrimerCase1() Dim a, b, c, x, y As Double a = InputBox("Введите a", "Пример - Case1") b = InputBox("Введите b", "Пример - Case1") c = InputBox("Введите c", "Пример - Case1") x = InputBox("Введите x", "Пример - Case1") Select Case x Case 2 y = x ^ 3 - a * x ^ * x - 4 MsgBox ("Результат: y = " & y) Case 4 y = (x - a) * (x - b) MsgBox ( "Результат: y = " & y) Case 6 y = Log(b ^ 2) - Sin(c * x) MsgBox ("y = " & y) Case Else ' Другие значения MsgBox (" Результат: Вне интервала") End Select End Sub

Пример 4 -Разветвляющийся вычислительный процесс - инструкциия Select Case при х < 3 при x=3, c<20 при 3< х<=10

Sub PrimerCase() Dim a, b, c, x, y As Double a = InputBox("Введите a", "Пример - Case") b = InputBox("Введите b", "Пример - Case ") c = InputBox("Введите c", "Пример - Case ") x = InputBox("Введите x", "Пример - Case ") Select Case x Case Is < 3 y = x ^ 3 - a * x ^ * x - 4 MsgBox ("Результат: y = " & y) Case Is = 3 And c < 20 y = (x - a) * (x - b) MsgBox ( "Результат: y = " & y) Case 4 To 10 y = Log(b ^ 2) - Sin(c * x) MsgBox ("y = " & y) Case Else ' Другие значения MsgBox (" Результат: Вне интервала") End Select End Sub

Оператор Is Используется для сравнения двух переменных, содержащих ссылки на объекты. Синтаксис: результат = объект 1 Is объект 2 Оператор Is использует следующие операнды: Элемент Описание результат Обязательный; любая числовая переменная. объект 1Обязательный; любое имя объекта. объект 2Обязательный; любое имя объекта. Если переменные объект 1 и объект 2 содержат ссылки на один объект, результат имеет значение True; в противном случае результат имеет значение False. Ссылки на один объект в двух переменных задаются различными способами. В следующей инструкциии в переменной A задается ссылка на тот же объект, что и в переменной B: Set A = B Следующая инструкциия задает в переменных A и B ссылку на тот же объект, что и в переменной C:Set A = C Set B = C

3. Программирование циклических вычислительных процессов Циклы используются для многократного выполнения некоторого фрагмента кода программы. В VBA реализованы следующие типы циклов: For...Next: цикл по счетчику - повторяет набор инструкциий указанное число раз. Do...Loop: повторяет набор инструкциий, пока условие имеет значение True или пока оно не примет значение True. For Each...Next: повторяет набор инструкциий для каждого элемента массива

Цикл по счетчику - инструкциия For... Next Инструкция For...Next используется для выполнения наборов инструкциий указанное число раз. Циклы For используют в качестве счетчика переменную, значение которой увеличивается или уменьшается при каждом выполнении цикла. Синтаксис For счетчик = начало To конец [Step шаг] [инструкциии] [Exit For] [инструкциии] Next [счетчик]

Синтаксис инструкциии For…Next содержит следующие элементы:

Инструкция Exit For Альтернативный способ выхода из цикла предоставляет инструкциия Exit For. В любых местах цикла может размещаться любое число таких инструкциий. Инструкция Exit For часто применяется вместе с проверкой некоторого условия (например, If...Then). Эта инструкциия передает управление инструкциии, непосредственно следующей за инструкциией Next. Допускается организация вложенных циклов For...Next (один цикл For...Next располагается внутри другого). Счетчик каждого цикла должен иметь уникальное имя. Допускаются следующие конструкции: For I = 1 To 10 For J = 1 To 10 For K = 1 To Next K Next J Next I

Примеры использования инструкциии For …Next Пример 1 - Определение суммы элементов Sub PrimerZikl1() Dim x, i, s As Single s = 0 инициализация переменной для накопления суммы For x = 0.5 To 2.5 Step 0.1 s = s + x ^ * x - 4 Next MsgBox (" Результат: s = " & s) End Sub

Пример 2 - Определение произведения элементов Sub PrimerZikl3() Dim x, p As String p = 1 инициализация переменной для расчета произведения For x = 0.5 To 2.5 Step 0.1 p = p*( x ^ * x - 4) Next MsgBox ( Результат: p = " & p) End Sub

Инструкция Do...Loop Инструкция Do...Loop используется для выполнения наборов инструкциий неопределенное число раз. Возможны следующие варианты использования инструкциии Do...Loop: 1. Повторяет выполнение набора инструкциий с помощью ключевого слова While - пока условие имеет значение True : условие проверяется до входа в цикл Синтаксис Do [While условие] [инструкциии ] [Exit Do] [инструкциии] Loop условие проверяется после хотя бы однократного выполнения цикла Синтаксис Do [инструкциии] [Exit Do] [инструкциии] Loop [While условие]

2. Повторяет выполнение набора инструкциий с помощью ключевого слова Until - пока условие не примет значение True: условие проверяется до входа в цикл Синтаксис Do [Until условие] [инструкциии ] [Exit Do] [инструкциии] Loop условие проверяется после хотя бы однократного выполнения цикла. Синтаксис Do [инструкциии] [Exit Do] [инструкциии] Loop [Until условие]

Синтаксис инструкциии Do Loop содержит следующие элементы: В любом месте управляющей структуры Do…Loop может быть размещено любое число инструкциий Exit Do, обеспечивающих альтернативные возможности выхода из цикла Do…Loop. Инструкция Exit Do передает управление инструкциии, непосредственно следующей за инструкциией Loop. Во вложенных циклах Do…Loop инструкциия Exit Do передает управление циклу охватывающего уровня по отношению к циклу, в котором она вызывается. Часто используется вместе с определением некоторого условия (например, If…Then).

Пример 1. Повторение инструкциий с помощью ключевого слова While, пока условие имеет значение True - условие проверяется до входа в цикл Sub ChkFirstWhile() Dim counter, myNum As Double counter = 0 myNum = 20 Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "Выполнено " & counter & " итераций цикла." End Sub В этой процедуре условие проверяется до входа в цикл. Если myNum задать равным 9 вместо 20, инструкциии внутри цикла выполняться не будут.

Пример 2. Повторение инструкциий с помощью ключевого слова While, пока условие имеет значение True - условие проверяется после хотя бы однократного выполнения цикла. Sub ChkLastWhile() Dim counter, myNum As Double counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox "В цикле выполнено " & counter & " итераций." End Sub В процедуре ChkLastWhile инструкциии внутри цикла выполняются только один раз до того как условие примет значение False.

Пример 3. Повторение инструкциий с помощью ключевого слова Until, пока условие не примет значение True - условие проверяется до входа в цикл Sub ChkFirstUntil() Dim counter, myNum As Double counter = 0 myNum = 20 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "В цикле выполнено " & counter & " итераций." End Sub

Пример 4. Повторение инструкциий с помощью ключевого слова Until, пока условие не примет значение True - условие проверяется после хотя бы однократного выполнения цикла Sub ChkLastUntil() Dim counter, myNum As Double counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox "В цикле выполнено " & counter & " итераций." End Sub Итерации продолжаются, пока условие имеет значение False.

Примен 5. Выход из цикла Do...Loop Sub ExitExample() Dim counter, myNum As Double counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox "В цикле выполнено " & counter & " итераций." End Sub В этом примере переменной myNum присваивается значение, приводящее к бесконечному циклу. Инструкция If...Then проверяет условие на myNum, а затем завершает инструкциию Do...Loop, предотвращая таким образом бесконечный цикл. Примечание. Для прекращения бесконечного цикла используются клавиши CTRL+BREAK.

Инструкция For Each...Next Повторяет выполнение группы инструкциий для каждого элемента массива. Синтаксис For Each элемент In группа [инструкциии] [Exit For] [инструкциии] Next [элемент]

Синтаксис инструкциии For...Each...Next содержит следующие элементы:

Вход в блок For...Each выполняется только в том случае, если группа содержит хотя бы один элемент. После входа в цикл все инструкциии цикла выполняются для первого элемента группы. Затем, если группа содержит другие элементы, инструкциии цикла выполняются для каждого элемента. После обработки всех элементов цикл завершается, а выполнение продолжается с инструкциии, следующей за инструкциией Next. В любых местах цикла может размещаться любое число инструкциий Exit For, позволяющих выйти из цикла. Инструкция Exit For часто применяется вместе с проверкой некоторого условия (например, If…Then). Она передает управление инструкциии, непосредственно следующей за инструкциией Next. Допускается организация вложенных циклов For...Each...Next (один цикл For...Each...Next располагается внутри другого). Однако каждый элемент цикла должен быть уникальным. Примечание. Если опустить элемент в инструкциии Next, выполнение продолжается так же, как если бы элемент был указан. При обнаружении инструкциии Next до соответствующей инструкциии For возникает ошибка. Не допускается использование инструкциии For...Each...Next с массивами, определяемых пользователями типов, поскольку значение типа Variant не может содержать тип, определяемый пользователем.

В следующих строках программы выполняется цикл для всех элементов массива, и их значения присваиваются индексной переменной I. Dim TestArray(10) As Integer, I As Variant For Each I In TestArray TestArray(I) = I Next I

4. Программирование типовых задач обработки массивов.

Пример 1 - Найти сумму элементов одномерного массива B[N] Sub PrimerMassivOdn() Dim b(), i, n, s As Integer n = InputBox("Введите n для определения размера массива", "Пример 1") ReDim b(n) s = 0 For i = 1 To n b(i) = InputBox("Введите значение элемента массива", "Пример 3") s = s + b(i) Next MsgBox (" Результат: s = " & s) End Sub

Пример 2 - Найти сумму элементов двумерного массива A[M,N] Sub PrimerMassivDvu() Dim b(), i, j, m, n, s As Integer m = InputBox("Введите m для определения числа строк матрицы", "Пример 2") n = InputBox("Введите n для определения числа столбцов матрицы ", "Пример 2") ReDim b(1 To m, 1 To n) s = 0 For i = 1 To m For j = 1 To n b(i, j) = InputBox("Введите значение элемента массива", "Пример 4") s = s + b(i, j) Next MsgBox (" Результат: s = " & s) End Sub

Пример 5 - Найти сумму четных элементов матрицы A[3,3] и произведение нечетных элементов этой матрицы. Sub Primer_5() Dim a(1 To 3, 1 To 3), i, j, pr, sum As Integer sum = 0 pr = 1 For i = 1 To 3 For j = 1 To 3 a(i, j) = InputBox("Введите значение элемента массива", "Пример 5") If a(i, j) Mod 2 = 0 Then Проверка на четность sum = sum + a(i, j) Else pr = pr * a(i, j) End If Next MsgBox (" Результат: s = " & sum) MsgBox (" Результат: p = " & pr) End Sub

Пример 6 - По ряду натуральных чисел [0; 41] вычислить произведение чисел кратных трем, но нечетных Sub Prod() Dim Chet As Integer, Pr As Long Pr = 1 For Chet = 0 To 41 Step 3 If Chet Mod 2 <> 0 Then Pr = Pr* Chet MsgBox " Элемент ряда - " & Chet End If Next ' Увеличивает счетчик MsgBox ("Результат - " & Pr) End Sub

Пример 7- Найти произведение суммы элементов матрицы В[M,N] по строкам Sub PrimerMassivDvu_7() Dim b(), i, j, m, n, s, p As Integer m = InputBox("Введите m для определения числа строк матрицы", "Пример 7") n = InputBox("Введите n для определения числа столбцов матрицы ", "Пример 7") ReDim b(1 To m, 1 To n) p = 1 For i = 1 To m s = 0 For j = 1 To n b(i, j) = InputBox("Введите значение элемента массива", "Пример 7") s = s + b(i, j) Next MsgBox ( Результат: s = " & s & " i = " & i) p = p * s Next MsgBox (" Результат: p = " & p) End Sub

Пример 8- Найти сумму произведений элементов матрицы A[M,N] по столбцам Sub PrimerMassivDvu_7() Dim b(), i, j, m, n, s, p As Integer m = InputBox("Введите m для определения числа строк матрицы", "Пример 7") n = InputBox("Введите n для определения числа столбцов матрицы ", "Пример 7") ReDim b(1 To m, 1 To n) s = 1 For j = 1 To m s = 0 For i = 1 To n b(i, j) = InputBox("Введите значение элемента массива", "Пример 7") p = p * b(i, j) Next MsgBox (" Результат: p = " & p & " j = " & j) s = s + p Next MsgBox ( " Результат: s = " & s) End Sub

Пример 9- Найти сумму элементов матрицы, расположенных над главной диагональю, над ней и под ней. Sub PrimerMassivDvu_9() Dim a(), i, j, m, n, s1, s2, s3 As Integer m = InputBox("Введите m для определения числа строк матрицы", "Пример 9") n = InputBox("Введите n для определения числа столбцов матрицы ", "Пример 9") ReDim a(1 To m, 1 To n) 'Матрица должна быть квадратная n=m For i = 1 To m For j = 1 To n a(i, j) = InputBox("Введите значение элемента массива", "Пример 9") Next s1 = 0 s2 = 0 s3 = 0

For i = 1 To m For j = 1 To n If i = j Then s1 = s1 + a(i, j) 'Накопление суммы элементов на главной диагонали End If If i < j Then s2 = s2 + a(i, j) 'Накопление суммы элементов выше главной диагонали End If If i > j Then s3 = s3 + a(i, j) 'Накопление суммы элементов ниже главной диагонали End If Next MsgBox (" Результат: s1 = " & s1) MsgBox (" Результат: s2 = " & s2) MsgBox (" Результат: s3 = " & s3) End Sub

Пример 10 - Поменять местами первую и четвертую строку матрицы А[3,4] Sub PrimerMassivDvu_10() Dim a(), i, j, m, n, c As Integer m = InputBox("Введите m для определения числа строк матрицы", "Пример 10") n = InputBox("Введите n для определения числа столбцов матрицы ", "Пример 10") ReDim a(1 To m, 1 To n) For i = 1 To m For j = 1 To n a(i, j) = InputBox("Введите значение элемента массива", "Пример 10") Next

For i = 1 To m For j = 1 To n If i = 1 Then c = a(1, j) a(1, j) = a(4, j) a(4, j) = c End If Next For i = 1 To m For j = 1 To n Debug.Print a(i, j) 'Вывод результата в окне отладки Next End Sub

Пример 10 - Найти минимальный и максимальный элемент массива чисел В произвольной размерности и их координаты. Sub PrimerMassivOdn_MinMax() Dim b(), i, j, n, minb, maxb, k As Integer n = InputBox("Введите n для определения размера массива", "Пример - одномерный массив") ReDim b(n) For i = 1 To n b(i) = InputBox("Введите значение элемента массива", "Пример 10") Next

minb = b(1) 'Установка начального значения переменной 'для определения минимального элемента For i = 1 To n If minb > b(i) Then minb = b(i) k = i 'Определение позиции минимального элемента в массиве End If Next MsgBox Prompt:="minb = " & minb & " k = " & k maxb = b(1) 'Установка начального значения переменной 'для определения максимального элемента For j = 1 To n If maxb < b(j) Then maxb = b(j) k = j 'Определение позиции максимального элемента в массиве End If Next MsgBox (" Результат: maxb = " & maxb & " k = " & k) End Sub

Пример 9. Сформировать одномерный массив С, состоящий только из нечетных положительных элементов матрицы A[5,7]