Типовые алгоритмы обработки массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типовые алгоритмы обработки массивов



1. Обнуление всех элементов массива:

For i=0 To N

mass(i)=0 

Next i

2. Заполнение элементов массива значениями с клавиатуры

For i=0 To N

mass(i)= InputBox(“Ввод числа”)

Next i

3. Заполнение элементов массива случайными целыми значениями

Randomize

For i=0 To N

 mass(i)=Int(Rnd*100+1)

Next i

4. Заполнение и вывод на экран элементов массива

Dim s as string

For i=0 To N

mass(i)= Int(Rnd*100+1)

s=s & mass(i) & ”-” (накапливание в строке значений элементов массива)

Next i

5. Формирование одного массива из элементов другого массива, удовлетворяющих заданному условию.

For i=0 To N

 massА(i)=Int(Rnd*100+1)

  If massA(i)>50 then

      massB(j)=massA(i)

      j=j+1

End if

Next i

6. Поиск максимального и минимального элементов массива

max=mass(0)

min=mass(0)

For i=1 To n

If mass(i)>max Then max=mass(i)

If mass(i)<min Then min=mass (i)

Next i

7. Обмен местами максимального и минимального элементов массива

max=mass(0)

min=mass(0)

For i=1 To n

If mass(i)>max Then

max=mass(i)

imax=i

End if

If mass(i)<min Then

min=mass (i)

imin=i

End if

Next i

x = mass(imax)

mass(imax) = mass(imin)

mass(imin) = x

ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ

1. Дан массив А(15). Заполнить массив случайными значениями от 0 до 25. Если в массиве есть хотя бы один элемент, равный 2, то все четные элементы массива заменить нулями и подсчитать их количество, иначе найти среднее арифметическое всех нечетных элементов. Вывести начальный и конечный состав массива.

2. Дан массив М(15). Если разность между средним арифметическим и средним геометрическим кратно 2, то элементы с четными индексами заменить нулями, иначе найти сумму квадратов всех элементов массива. Вывести полученный вектор.

3. Дан массив С (15). Найти среднее арифметическое всех элементов массива и наибольшее отклонение от среднего, т.е. максимум из (C(i) – среднее арифметическое).

4. Дан массив А(12). Заполнить массив случайными значениями. Найти среднее арифметическое всех элементов массива. Заменить значение элемента массива нулем, если оно меньше среднего арифметического и единицей – если больше. Вывести начальный и конечный состав массива.

5. Даны массивы С(8) и В(8). Заполнить массивы случайными значени-ями. Преобразовать значения элементов массива В по правилу: если С(i) делится на 5, то В(i) увеличить в пять раз, иначе B(i) заменить нулем. Вывести начальный и конечный составы массивов.

6. Дан массив М(15). Заполнить его случайными значениями от 0 до 15. Если количество элементов, значения которых лежат в пределах от 3 до 11 меньше 4, то найти сумму всех элементов массива кратных этому количеству, иначе возвести в квадрат те элементы массива, чей остаток от деления на количество не превышает 2. Вывести начальный и конечный состав массива.

7. Дан массив С (15). Найти среднее геометрическое всех элементов массива и наибольшее отклонение от среднего, т.е. максимум из (C(i) – среднее геометрическое). Если полученное наибольшее кратно 2, то заменить этим значением каждый третий элемент массива, иначе каждый пятый возвести в квадрат.


Лабораторная работа № 8-9
ОБЪЕКТНОЕ ПРОГРАММИРОВАНИЕ В VBA

Visual Basic For Application – визуальный объектно-ориентированный язык программирования приложений. Ключевой идеей объектно-ориентированного программирования является объединение данных и оперирующих с ними функций в один объект. Язык VBA не существует вне какого-либо приложения. Он встроен в такие приложения как редактор электронных таблиц Excel, СУБД МS Access, текстовый редактор Word. В каждом из этих приложений существуют свои объекты, которые могут строиться на основе более мелких объектов - элементов управления и объединяются в более крупные объекты – семейства.

Объект представляет собой элемент приложения, такой как, лист (Worksheet), ячейка (Cells), диапазон (Range) в Excel.

Семейство (объект Collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, в Microsoft Excel объект Workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга).

Элемент семейства может быть идентифицирован по номеру или имени. Например, в следующей процедуре Workbooks(1) обозначает первый закрытый объект Workbook.

Sub CloseFirst()

 Workbooks(1).Close

End Sub

Все объекты имеют сохраняемый набор свойств, изменяя которые можно управлять объектом.

Свойство – это качественная или количественная характеристика объекта.

Свойства определяют такие характеристики объекта, как размер, цвет, положение на экране или состояние объекта, например, включенное или отключенное. Изменяя свойства, можно изменять характеристики объекта или набора объектов. Установка значения свойств – это один из способов управления объектами.

Для установки свойства необходимо ввести имя объекта, а затем через точку имя свойства объекта. Далее должны следовать знак равенства и значение свойства. Синтаксис установки значения свойства объекта выглядит следующим образом:

Объект.Свойство=Выражение

Например:

Range(“ A2”). Formula=”=СУММ(А1:С1)”

В этом примере в ячейку с относительным адресом А2 (для адресации используется объект Range, который позволяет обратиться как к диапазону ячеек, так и к одной ячейке) активного рабочего листа Excel вставляется формула =СУММ(А1:С1) путем изменения свойства Formula.

Некоторые свойства являются неизменяемыми, т.е. доступными только для чтения. В этом случае синтаксис - Объект.Свойство=Выражение применять нельзя. Существует другой синтаксис, позволяющий читать свойства объекта, который выглядит следующим образом:

Переменная=Объект.Свойство

Например:

ТекущийПроцент=Cells(1,1).Value

В этом примере переменной ТекущийПроцент присваивается значение (свойство Value) ячейки А1 (первая строка, первый столбец - Cells(1,1)) текущего рабочего листа Excel.

С каждым объектом также связывают ряд методов, иначе, команд, применяемых к объекту.

Метод представляет собой действие, выполняемое над объектом.

Синтаксис вызова метода объекта имеет следующий вид:

Объект.метод

В приложении Microsoft Excel у объекта диапазон ячеек имеется метод Clear, позволяющий очистить содержимое диапазона. Если предварительно задать имя диапазона, то вызов метода очистки имеет следующий синтаксис:

Range (“Личные сведения”).Clear

А в примере:

 Range (“А10:С12”).Select - выбирается диапазон ячеек А10:С12.

Инструкция With..End With

Инструкция With..End With, как правило, применяется тогда, когда нужно задать или изменить несколько свойств одного и того же объекта. Эта инструкция не является управляющей, так как она не изменяет порядка выполнения команд, не вызывает циклического выполнения группы команд или безусловный переход. Однако данная инструкция часто используется в циклах. Она выполняет последовательность инструкций над одиночным объектом или определенным пользователем типом данных, не повторяя задания имени объекта.

Синтаксис:

With объект

[инструкции]

End With

Например:

Sub Цвет()

Dim a As Object

For Each a In Selection

If a.Value = 0 Then

     With a.Font ‘ – шрифт диапазона ячеек

           .Bold = True ‘ – жирный шрифт

          .ColorIndex = 3 ‘ – цвет шрифта ячейки (3 - красный)

         .Size = 20 ‘ – размер шрифта ячейки

   End With

End If

Next

End Sub

В этом примере в зависимости от содержимого ячейки выделенной области, которая возвращается методом Selection, меняется размер шрифта, цвет и тип шрифта каждой ячейки. В данной процедуре Font – шрифт диапазона ячеек – является объектом, который имеет такие свойства, как цвет, размер и тип шрифта. Воспользовавшись инструкцией With..End With можно, не указывая каждый раз имени объекта, изменять эти свойства.

Инструкция For Each...Next

Инструкция For Each...Next повторяет набор инструкций для всех объектов семейства или для всех элементов массива.

Синтаксис:

For Each элемент In группа

инструкции

[Exit For]

инструкции

Next [элемент]

Элемент – управляющая объектная переменная цикла; группа - имя семейства объектов ; Exit For – альтернативный выход из цикла.

Вход в блок For...Each выполняется только в том случае, если группа содержит хотя бы один элемент. После входа в цикл все инструкции цикла выполняются для первого элемента группы. Затем, если группа содержит другие элементы, инструкции цикла выполняются для каждого элемента группы. После обработки всех элементов цикл завершается, а выполнение продолжается с инструкции, следующей за инструкцией Next.

Следующий пример выполняет цикл по диапазону A1:D10 на рабочем листе “Лист1” и присваивает любому числу, имеющему значение меньше 10, значение 0.

Sub List()

Dim c as object

For Each c In Sheets(“Лист 1”).Range(“A1:D10”)

    If c.Value < 10 Then c.Value = 0

 Next c

End Sub

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

Sub Диапазон ()

Dim x as object, с ount

For Each x In Range("МойДиапазон ")

    If x.Value = "" Then count = count + 1

Next x

MsgBox "Всего " & count & " пустых ячеек "

End Sub

В этой программе в диапазоне ячеек рабочего листа с именем “ МойДиапазон ” проверяется содержимое ячеек. Если ячейка ничего не содержит (“”- значение пустой строки), тогда счетчик - переменная count -увеличивается на 1. Далее, инструкция MsgBox выводит на экран значение этого счетчика, т. е. количество пустых ячеек в указанном диапазоне.

Создание диалоговых форм

Для создания диалоговых окон приложений в VBA используются формы. Форма – это окно пользовательского интерфейса. В VBA это UserForm со стандартной сеткой для удобного размещения визуальных элементов на ней. Шаг сетки может быть изменен через команду Параметры. Работа с UserForm выполняется в редакторе форм.

Визуальные компоненты - элементы находятся на панели элементов и называются элементами управления. Это кнопки, поля, переключатели надписи, списки и т. д. Все эти элементы могут быть добавлены в форму для создания и оформления пользовательского интерфейса (рис. 18).

Рис.18. Пользовательская форма в Excel

Элементы управления размещаются в окне формы путем перетаскивания их с панели элементов, при этом для распознавания элементов достаточно установить на него указатель мыши.

Объект (элемент управления) может реагировать на определенные события, происходящие в процессе работы приложения. Совокупность событий, на которые объект способен реагировать, определяется создателем класса, экземпляром которого является данный объект. Например, набор событий, которые определены для формы можно посмотреть на вкладке События (диалогового окна Properties).

Реакцией объекта на произошедшее событие может быть выполнение объектом некоторой специальной процедуры, которая называется процедурой обработки события. Любому событию объекта может быть назначена некоторая процедура его обработки.

Обычно события инициируются действиями пользователя. В зависимости от производимых пользователем действий события можно разделить на несколько типов: события данных, события фокуса, события клавиатуры, события мыши, события печати, события фильтра, события окна, события ошибок и событие таймера.

ЗАДАНИЯ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ

1. Создать рабочую книгу с именем "Объектное программирование в Excell";

2. Зайти в модуль книги и создать процедуру заполнения ячеек рабочего листа с адресом «А1:Е10» случайными двухзначными значениями.

3. Найти среднее арифметическое, среднее геометрическое заполненного диапазона.

4. Поменять размер, начертание и цвет тех ячеек диапазона, которые кратны 5.

5. Поменять местами максимальный и минимальный элемент диапазона.

6. Создать пользовательскую форму с элементами группа (переключатели красный, синий, зеленый), прямоугольник и кнопка Закрыть. Написать процедуры обработки события на изменение цвета прямоугольника и закрытия формы.

7. Создать пользовательскую форму с полями X и Y, Результат, списком Операция, полем со списком Действие и кнопкой Закрыть. В список и поле со списком поместить значения, соответствующие арифметическим операциям (не менее 5). Создать соответствующие процедуры обработки событий на выполнение арифметических действий и помещения полученного значения в поле Результат. Предусмотреть обработку ошибки от деления на 0.



Поделиться:


Последнее изменение этой страницы: 2021-04-04; просмотров: 383; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.121.242 (0.038 с.)