- •Н.Г.Куфтинова программирование в среде vba
- •Н.Г.Куфтинова программирование в среде vba
- •Оглавление
- •Введение
- •Разработка алгоритма. Блок-схема. Структуры алгоритмов
- •Понятие алгоритма. Структуры алгоритмов
- •3. Базовая структура цикл.
- •Контрольные вопросы
- •Представление данных в памяти,типы данных, идентификаторы, переменные, массивы
- •Программный способ записи алгоритмов
- •Представление данных в памяти
- •Типы данных
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Контрольные вопросы
- •Структура программ на vba, операторы описания, присваивания
- •Структура программ на vba
- •Операторы описания
- •Oператоры присваивания
- •Контрольные вопросы
- •Понятие макроса, создание, отладка программы
- •Понятие макроса. Создание макроса
- •4.2. Отладка, использование среды для отладки программ
- •Средства отладки
- •Обработка ошибок выполнения
- •Перехват ошибок
- •4.6. Общие сведения о перехвате ошибок
- •Контрольные вопросы
- •Управляющие структуры vba
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Конструкция Select Case
- •Контрольные вопросы
- •Операторы цикла. Вложенные циклы
- •Операторы цикла
- •Вложенные циклы
- •Контрольные вопросы
- •Символьные данные. Операции и функции для работы с символьными данными
- •Символьные данные
- •Операции и функции для работы с символьным данными
- •Булевские вектора и операции для работы с ними
- •Контрольные вопросы
- •Подпрограмма-процедура
- •Общие процедуры
- •Создание новых процедур
- •Просмотр существующих процедур
- •9.4. Вызов процедур Sub
- •Процедуры в стандартных модулях
- •Подпрограмма-функция
- •10.1 Вызов процедур Function
- •10.2. Механизмы передачи параметров. Типы данных параметров. Передача параметров по значению
- •10.3. Передача параметров по ссылке
- •10.4. Неизвестное число параметров
- •10.5. Рекурсия
- •Контрольные вопросы
- •Использование объектов, их свойства и методы. Формы
- •Работа с объектами
- •Происхождение объектов. Основы работы с объектами
- •Установка значений свойств
- •Получение значений свойств
- •Использование методов в коде
- •Взаимосвязь объектов
- •Применение свойств и методов к членам наборов
- •Общие наборы в vba
- •Разработка формы. События и методы формы
- •Связь между объектами. Создание объектов. Использование и объявление переменных для объектов
- •Формы как объекты. Объект fso
- •Контрольные вопросы
- •12. Элементы управления в приложениях vba
- •12.1. Кнопки управления
- •12.2. Метки
- •12.3. Текстовые поля
- •12.4. Работа с текстом в текстовом поле
- •12.5. Флажки
- •12.6. Создание групп переключателей. Выбор переключателей
- •12.7. Комбинированные окна и списки
- •12.8. Полосы прокрутки как устройства ввода
- •12.9. Графическое окно в качестве контейнера
- •12.10. Элемент управления Image
- •12.11. Другие элементы управления
- •Контрольные вопросы
- •Литература
- •Приложение 1
- •2. Математические функции
- •4. Операторы циклов
- •Часть1. Обработка одномерного массива
- •Часть 2. Обработка двумерного массива
- •Приложение 2
4. Операторы циклов
Задание 4.1: Составить программу для расчета суммы нечетных и нечетных чисел от 1 до 50.
Задание 4.2: Составить программу для расчета суммы чисел от 1 до 1000.
Задание 4.3: Создать функцию, которая вычисляет произведение чисел от заданного числа до конечного с шагом 2.
Массивы
Задание 5.1. Заполнить два массива случайными числами, вычислить их сумму.
Задание 5.2: Заполнить два массива случайными числами, создать третий массив, элементы которого являются суммами двух предыдущих.
Задание 5.3. Разместить в диапазоне ячеек B5 - I5 целые положительные и отрицательные числа. Разработать макрос для определения максимального числа. Вывести на рабочий лист найденное значение и сумму максимальных значений.
Задание 5.4. Отсортировать введенную вручную в ячейки D2:M2 последовательность чисел по возрастанию.
Многомерные массивы
Задание 6.1: Заполнить матрицу B5:F15 случайными числами, вывести элементы матрицы в строку, начиная с ячейки А1.
Задание 6.2: Заполнить две матрицы любыми числами вручную, получить третью матрицу, элементы которой являются суммами двух предыдущих.
Задание 6.3: Вычислить сумму элементов для каждого столбца матрицы B2:F8. Вывести результаты в строке, начиная с A10.
Задание 6.4: Создать функцию, определяющую количество столбцов в произвольном массиве.
Задание 6.5: Определить количество ячеек в произвольном выделенном диапазоне.
Задания
Тип I
Вариант 1. Заданы вершины треугольника А(x1,y1), B(x2,y2), C(x3,y3). Вычислить длину медианы, проведенной из А.
Вариант 2. Известно, что из четырех чисел x1,x2,x3,x4 три равны между собой, а одно отлично от них. Присвоить переменной NF номер этого числа, а переменной F значение этого числа.
Вариант 3. Составить программу, которая бы с помощью оператора переключателя реализовала бы все возможные операции над двумя целыми числами.
Вариант 4. Составить программу, которая бы с помощью оператора переключателя реализовала бы все возможные операции над двумя вещественными числами.
Вариант 5. Для целого числа К от 1 до 9 вывести фразу "мне К лет", учитывая при этом, что при некоторых значениях К слово "лет" надо заменить на слово "год" или "года".
Вариант 6. Для натурального числа К напечатать фразу "мы нашли К грибов в лесу", согласовав окончание слова "гриб" с целым числом К.
Вариант 7. Составить программу, которая бы реализовала следующий алгоритм: по введенным названиям двух нот (до, ре, ми, фа, соль, ля, си) определить интервал, образованный нотами. Секунда - это интервал из двух соседних нот (по кругу), терция - интервал через ноту и т.д. (кварта, квинта, секста, септима)
Вариант 8. Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c.
Вариант 9. Дано число х. Напечатать в порядке возрастания числа cos(x), 1+|x|, (1+ x x) (1+ x x).
Вариант 10. Даны числа a, b, c, d, e, f. Найти координаты точки пересечения прямых, описываемых уравнениями a x + b y=c и d x + e y=f, если она существует.
Вариант 11. Даны числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то вывести 0, если треугольник равносторонний - 1, если равнобедренный - 2, если прямоугольный - 3.
Вариант 12. Составить программу согласно условию. Присвоить переменной F значение 1, если ни одно из чисел x, y, z не является положительным и целым, и 0 в противоположном случае.
Вариант 13. Составить программу согласно условию. Присвоить переменной F значение 1, если только два числа из трех чисел x, y, z являются положительными и целыми, и 0 в противоположном случае.
Вариант 14. Составить программу согласно следующему условию. Присвоить переменной f значение 1, если цифра 3 входит в запись заданного трехзначного числа x, и 0 в противоположном случае.
Вариант 15. Заданы координаты вершин треугольника. Выяснить является ли заданный треугольник тупоугольным или нет.
Тип II
Вариант 1. Вычислить S = 1 + 2/2 + (2 4)/(2+4) + ... +(2 4 6 ...(2 N))/(2+4+6+..+(2 N)) для заданного N.
Вариант 2. Вычислить S = sqrt(3 + sqrt(6 + sqrt(9 + ... + sqrt(96 + sqrt(99)...).
Вариант 3. Вычислить S = 1/sqrt(1 3) + 1/sqrt(3 5) + ... + 1/sqrt(199 201).
Вариант 4. Числа Фибоначчи определяются формулами F(0)=F(1)=1,
F(i)=F(i-1)+F(i-2), i=2,3,... Найти 35-е число Фибоначчи.
Вариант 5. Найти первое число Фибоначчи, большее N, где N - заданное натуральное число, большее 1.
Вариант 6. Найти сумму чисел Фибоначчи, больших М и меньших N, где M и N - заданные натуральные числа, 1<M<N.
Вариант 7. Вычислить сумму всех чисел Фибоначчи, которые не превосходят 100.
Вариант 8. Подсчитать количество чисел Фибоначчи, которые не превосходят заданного целого числа. Напечатать их.
Вариант 9. Вычислить S = (1 + 1/3) * (1/5 + 1/7) * (1/9 +1/11 + 1/13) *...* (1/33 + 1/35 + 1/37 + 1/39 + 1/41 + 1/43).
Вариант 10. Вычислить S = 4/2 + (4 7)/(2 6) +(4 7 10)/(2 6 10) + ... +
(4 7 10 ...301)/(2 6 10 ... 398).
Вариант 11. Вычислить S = cos(1 +cos(2 + ... + cos(39+ cos(40)...).
Вариант 12. Вычислить S = sh(x) = x + x^3/3! + x^5/5! + ...+ x^(2 N+1)/(2 N+1)! для заданного N.
Вариант 13. Вычислить S = cos(x) = 1 - x^2/2! + x^4/4! +..+ (-1)^N
x^(2 N)/(2 N)! для заданного N.
Вариант 14. Вычислить S = Ln(1+x) = x - x^2/2 + x^3/3 +..+ (-1)^(N-1) x^N/N для заданного N и |x|<1.
Вариант 15. Вычислить S = arctg(x) = x - x^3/3 + x^5/5 +...+ (-1)^N
x^(2 N+1)/(2 N+1) для заданного N и |x|<1.
Тип III