Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник задач по VBA

.pdf
Скачиваний:
439
Добавлен:
09.04.2015
Размер:
379.19 Кб
Скачать

программы. Программа должна проверять правильность введенных

пользователем данных и, если они неверные ( n ≤ 0),

выдавать сообщение об

ошибке.

 

 

 

 

 

 

 

 

 

 

Исходные данные:

Результат:

 

 

 

 

 

 

1. Введите n: 0

1. Неверно введено n

2. Введите n: 5

2. Количество положительных чисел равно 2

Введите 1-е целое число: 9

 

 

 

 

 

 

 

 

 

 

Введите 2-е целое число: 0

 

 

 

 

 

 

 

 

 

 

Введите 3-е целое число: –13

 

 

 

 

 

 

 

 

 

 

Введите 4-е целое число: 14

 

 

 

 

 

 

 

 

 

 

Введите 5-е целое число: 0

 

 

 

 

 

 

 

 

 

 

3. Введите n: 3

3. Положительных чисел нет

Введите 1-е целое число: –12

 

 

 

 

 

 

 

 

 

 

Введите 2-е целое число: –17

 

 

 

 

 

 

 

 

 

 

Введите 3-е целое число: –3

 

 

 

 

 

 

 

 

 

 

9. Составьте блок-схему и программу на языке VBA, которая вычисляет

сумму знакочередующего ряда −1+

x2

x3

+ K+ (−1)n

xn

+K, при

 

x

 

≤ 1. Расчет

 

 

 

 

 

2!

3!

 

 

n!

 

 

 

 

 

 

 

 

продолжать до тех пор, пока модуль последнего вычисленного члена будет меньше e. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( x > 1,e ≤ 0 ), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите x: 1,5

1. Неверно введены данные

 

Введите e: 0,01

 

2.

Введите x: 0,5

2. Сумма ряда равна –0,8932291667

 

Введите e: 0,002

 

10. Составьте блок-схему и программу на языке VBA, которая вычисляет

наибольший общий делитель двух целых чисел.

Исходные данные:

Результат:

1.

Введите первое целое число: 3

1. 1 – наибольший общий делитель чисел

 

Введите второе целое число: 7

чисел 3 и 7

2.

Введите первое целое число: 12

2. 3 – наибольший общий делитель чисел

 

Введите второе целое число: 9

чисел 12 и 9

11. Составьте блок-схему и программу на языке VBA, которая определяет в водимой последовательности хотя бы два равных соседних члена (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1.

Введите число: 1,5

1.

Во введенной последовательности нет

 

Введите число: –1

 

равных соседних членов

 

Введите число: 2,3

 

 

 

Введите число: 7

 

 

 

Введите число: 0

 

 

2.

Введите число: –11,5

2.

Во введенной последовательности есть

 

Введите число: 1

 

равные соседние члены

 

Введите число: 1

 

 

21

Введите число: 7,6 Введите число: 4 Введите число: 0

12. Составьте блок-схему и программу на языке VBA, которая вычисляет сумму первых n членов ряда 1+ 12 + 13 +K+ 1n +K. Количество суммируемых

членов ряда задается во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n £ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1. Введите n: 0

1.

Неверно введено n

2. Введите n: 5

2.

Сумма первых 5 членов ряда

равна 2,2833333

13. Составьте блок-схему и программу на языке VBA, которая определяет наибольшее из всех отрицательных чисел во вводимой последовательности из n целых чисел. Количество чисел последовательности должно вводиться во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n £ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите n: –5

1.

Неверно введено n

2.

Введите n: 5

2.

Наибольший из отрицательных чисел

 

Введите 1-е целое число: 0

 

равен –10

 

Введите 2-е целое число: –51

 

 

 

Введите 3-е целое число: 1

 

 

 

Введите 4-е целое число: –10

 

 

 

Введите 5-е целое число: 6

 

 

3.

Введите n: 3

3.

Отрицательных чисел нет

 

Введите 1-е целое число: 2

 

 

 

Введите 2-е целое число: 4

 

 

 

Введите 3-е целое число: 7

 

 

14. Составьте блок-схему и программу на языке VBA, которая вычисляет факториал числа n, введенного с клавиатуры (Факториалом числа n называется произведение целых чисел от 1 до n: n!= 1× 2×K× n . Например, 0!= 1, 1!= 1, 5!= 120 ). Число n задается во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n < 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите n: –1

1. Неверно введено n

2.

Введите n: 7

2. 7!=5 040

15. Составьте блок-схему и программу на языке VBA, которая вычисляет сумму первых n членов последовательности 1, 3, 5, 7,K. Количество суммируемых членов последовательности задается во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n £ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

22

1. Введите n: 0

1.

Неверно введено n

2. Введите n: 4

2.

Сумма первых 3 членов

 

 

последовательности равна 16

16. Составьте блок-схему и программу на языке VBA, которая вычисляет

сумму положительных чисел из введенной с клавиатуры последовательности целых чисел (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1.

Введите целое число: 1

1.

Сумма положительных чисел равна 15

 

Введите целое число: –1

 

 

 

Введите целое число: 2

 

 

 

Введите целое число: 12

 

 

 

Введите целое число: 0

 

 

2.

Введите целое число: –3

2.

Положительных чисел нет

 

Введите целое число: –5

 

 

 

Введите целое число: –17

 

 

 

Введите целое число: 0

 

 

3.

Введите целое число: 0

3.

Последовательность не введена

17. Составьте блок-схему и программу на языке VBA, которая определяет минимальное число из введенной с клавиатуры последовательности n чисел.

Количество чисел последовательности должно вводиться во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

 

Результат:

1. Введите n: –6

 

 

1. Неверно введено n

2. Введите n: 4

 

 

2. Минимальное число: –3,3

Введите 1-е число: –1

 

 

 

 

 

 

Введите 2-е число: 5,6

 

 

 

 

 

Введите 3-е число: –3,3

 

 

 

 

 

Введите 4-е число: 4,7

 

 

 

 

 

18. Составьте блок-схему и программу на языке VBA, которая вычисляет

сумму ряда 1+

x

+

x2

+K+

xn−1

+K, при

 

x

 

< 1. Расчет продолжать до тех пор,

 

 

2

3

n

 

 

 

 

 

 

 

 

 

 

пока модуль последнего вычисленного члена будет меньше e. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( x ³ 1, e ≤ 0 ), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите x: 0,6

1.

Неверно введены данные

 

Введите e: –0,01

 

 

2.

Введите x: 0,3

2.

Сумма ряда равна 1,18891377

 

Введите e: 0,00001

 

 

19. Составьте блок-схему и программу на языке VBA, которая вычисляет количество нулей во вводимой последовательности из n целых чисел. Количество чисел последовательности должно вводиться во время работы программы.

23

Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

 

 

 

 

Результат:

1. Введите n: 0

 

 

 

 

1. Неверно введено n

2. Введите n: 7

 

 

 

 

2. Количество нулей равно 2

Введите 1-е целое число: 5

 

 

 

 

 

Введите 2-е целое число: 0

 

 

 

 

 

Введите 3-е целое число: –3

 

 

 

 

 

Введите 4-е целое число: 4

 

 

 

 

 

Введите 5-е целое число: –7

 

 

 

 

 

Введите 6-е целое число: 0

 

 

 

 

 

Введите 7-е целое число: –78

 

 

 

 

3. Введите n: 3

 

 

 

 

3. Нулей нет

Введите 1-е целое число: 8

 

 

 

 

 

Введите 2-е целое число: 9

 

 

 

 

 

Введите 3-е целое число: –30

 

 

 

 

20. Составьте блок-схему и программу на языке VBA, которая вычисляет

сумму первых n членов ряда 1+

x

+

x2

+

x3

+K, где x любое число. Количество

2

 

3

4

 

 

 

 

 

суммируемых членов ряда задается во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите n: 0

1.

Неверно введено n

 

Введите x: 1,2

 

 

2.

Введите n: 3

2.

Сумма первых 3 членов ряда

 

Введите x: 1,4

 

равна 2,353333

21. Составьте блок-схему и программу на языке VBA, которая вычисляет все делители натурального числа a. Программа должна проверять правильность введенных пользователем данных и, если они неверные (a ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.Введите натуральное число: –3 1. –3не является натуральным числом

2.Введите натуральное число: 10 2. Делителями числа 10 являются: 1, 2, 5, 10

22. Составьте блок-схему и программу на языке VBA, которая вычисляет, сколько раз последовательность меняет знак (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1.

Введите число: 10

1.

Последовательность меняет знак 1 раз

 

Введите число: –15

 

 

 

Введите число: 13

 

 

 

Введите число: 1,7

 

 

 

Введите число: 0

 

 

2.

Введите число: 17

2.

Последовательность не меняет знак

 

Введите число: 12,4

 

 

 

Введите число: 0

 

 

24

23. Составьте блок-схему и программу на языке VBA, которая вычисляет количество мужчин (муж), стоящих в начале очереди до первой женщины (жен). Количество человек n в очереди должно вводиться во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1. Введите количество человек

1. Неверно введено n

вочереди n: –4

2.Введите количество человек 2. В начале очереди стоит 3 мужчин(а, ы)

вочереди n: 5

Введите пол 1-го человека: муж Введите пол 2-го человека: муж Введите пол 3-го человека: муж Введите пол 4-го человека: жен Введите пол 5-го человека: муж

3. Введите количество человек 3. В начале очереди нет мужчин в очереди n: 4

Введите пол 1-го человека: жен Введите пол 2-го человека: муж Введите пол 3-го человека: муж Введите пол 4-го человека: жен

24. Составьте блок-схему и программу на языке VBA, которая вычисляет

среднее арифметическое положительных чисел из введенной с клавиатуры последовательности целых чисел (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1.

Введите целое число: 3

1.

Среднее арифметическое положительных

 

Введите целое число: 8

 

чисел равна 5,000

 

Введите целое число: –10

 

 

 

Введите целое число: 4

 

 

 

Введите целое число: 0

 

 

2.

Введите целое число: –12

2.

Положительных чисел нет

 

Введите целое число: –4

 

 

 

Введите целое число: –7,7

 

 

 

Введите целое число: 0

 

 

3.

Введите целое число: 0

3.

Последовательность не введена

25. Составьте блок-схему и программу на языке VBA, которая определяет, является ли последовательность знакочередующейся (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1.

Введите число: 10,6

1.

Последовательность знакочередующейся

 

Введите число: –1,6

 

 

 

Введите число: 1,6

 

 

 

Введите число: –1,7

 

 

 

Введите число: 11

 

 

 

Введите число: 0

 

 

2.

Введите число: –7,9

2.

Последовательность не является

25

Введите число: 1

знакочередующейся

Введите число: –13

 

Введите число: –10

 

Введите число: 0

 

26. Составьте блок-схему и программу на языке VBA, которая вычисляет сумму всех отрицательных членов из n чисел последовательности. Количество суммируемых чисел должно вводиться во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

 

 

 

 

 

1. Введите n: –6

1. Неверно введено n

2. Введите n: 3

2. Сумма отрицательных чисел равна –4,6

Введите 1-е число: –1

 

 

 

 

 

 

 

 

 

 

Введите 2-е число: 5,6

 

 

 

 

 

 

 

 

 

 

Введите 3-е число: –3,6

 

 

 

 

 

 

 

 

 

 

3. Введите n: 4

3. Отрицательных чисел нет

Введите 1-е число: 10,8

 

 

 

 

 

 

 

 

 

 

Введите 2-е число: 7,6

 

 

 

 

 

 

 

 

 

 

Введите 3-е число: 5,9

 

 

 

 

 

 

 

 

 

 

Введите 4-е число: 36

 

 

 

 

 

 

 

 

 

 

27. Составьте блок-схему и программу на языке VBA, которая вычисляет

сумму первых n членов ряда -1+

x2

-

x3

+

x4

-K, при

 

x

 

< 1. Количество

 

 

2

3

4

 

 

 

 

 

 

 

 

 

 

суммируемых членов ряда задается во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n ≤ 0, x ³ 1), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите n: 10

1.

Неверно введены данные

 

Введите x: 1

 

 

2.

Введите n: 4

2.

Сумма первых 4 членов ряда

 

Введите x: –0,6

 

равна –0,7156

28. Составьте блок-схему и программу на языке VBA, которая определяет, является ли последовательность возрастающей (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1. Введите число: 1

1. Последовательность не является

Введите число: –1,6

возрастающей

Введите число: 13

 

Введите число: 1

 

Введите число: 0

 

2. Введите число: 0,7

2. Последовательность возрастающая

Введите число: 12

 

Введите число: 13,7

 

Введите число: 0

 

29. Составьте блок-схему и программу на языке VBA, которая вычисляет количество отрицательных чисел во вводимой последовательности из n целых

26

чисел. Количество чисел последовательности должно вводиться во время работы программы. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите n: 0

1.

Неверно введено n

2.

Введите n: 4

2.

Количество отрицательных чисел равно 2

 

Введите 1-е целое число: 10

 

 

 

Введите 2-е целое число: 0

 

 

 

Введите 3-е целое число: –12

 

 

 

Введите 4-е целое число: –30

 

 

3.

Введите n: 3

3.

Отрицательных чисел нет

 

Введите 1-е целое число: 15

 

 

Введите 2-е целое число: 5 Введите 3-е целое число: 12

30. Составьте блок-схему и программу на языке VBA, которая вычисляет количество пар соседних равных членов в вводимой последовательности (длина последовательности не ограничена). Признаком конца последовательности является ввод нуля.

Исходные данные:

Результат:

1. Введите число: 1,5

1. Во введенной последовательности нет

Введите число: –1

равных соседних членов

Введите число: 2,3

 

Введите число: 7

 

Введите число: 0

 

2. Введите число: –11,5

2. Во введенной последовательности

Введите число: 1

3 пар(а, ы) соседних равных элементов

Введите число: 1

 

Введите число: 4

 

Введите число: 4

 

Введите число: 4

 

Введите число: 0

 

Часть 5. СОЗДАНИЕ ПРОГРАММ С МАССИВАМИ

Начальные сведения по решению задач данной части содержатся в части 6 учебно-методического пособия «Программирование на VBA».

Приступая к решению задач этого раздела, следует вспомнить, что:

üмассив это структура данных, представляющая собой совокупность элементов одного типа;

üмассив должен быть объявлен в разделе объявления переменных;

üдоступ к элементу массива осуществляется путем указания индекса (номера) элемента, в качестве которого используется выражение целого типа, например, целая константа или переменная типа Integer;

üдля ввода, вывода и обработки массивов удобно применять инструкции циклов (For…Next, Do While, Do Until, Do…Loop While, Do…Loop Until).

1. Составьте программу на языке VBA, которая определяет минимальный

27

элемент и его номер из одномерного массива целых чисел. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите размерность

1.

Неверно введено n

 

массива n: 0

 

 

2.

Введите размерность

2.

Минимальный элемент –7, его номер 2

массива n: 3 Массив: (−1 − 7 5)

2. Составьте программу на языке VBA, которая вычисляет сумму элементов по столбцам в двумерном массиве An×m . Программа должна проверять

правильность введенных

пользователем данных и, если они неверные

( n ≤ 0, m ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

 

 

Результат:

1. Введите количество

 

1. Неверные исходные данные

строк массива n: 4

 

 

 

Введите количество

 

 

столбцов массива m: –1

 

2. Введите количество

 

2. Сумма 1-го столбца равна 9,00

строк массива n: 3

 

 

сумма 2-го столбца равна 6,00

Введите количество

 

сумма 3-го столбца равна 10,00

столбцов массива m: 4

 

сумма 4-го столбца равна 5,90

æ1

3

4

7

ö

ç

6

- 9

1

3

÷

Массив: ç

÷

ç

2

0

 

 

÷

è

5 - 4,1ø

3. Составьте программу на языке VBA, которая сжимает одномерный массив A длинной n элементов путем удаления элементов, совпадающих с числом L , и указывает количество удаленных элементов. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите размерность

1.

Неверно введено n

 

массива n: 0

 

 

 

Введите число L: 3,3

 

 

2.

Введите размерность

2.

Массив: 1,6 5,7 9; 2 элемент(а, ов)

 

массива n: 5

 

удален(о)

 

Введите число L: 2

 

 

 

Массив: (1,6 2 5,7 2

9)

 

4. Составьте программу на языке VBA, которая транспонирует двумерную матрицу An×m (транспонированная матрица матрица, полученная из исходной

матрицы, после замены строк одноименными столбцами; (aij )Tnm = (a ji )mn )

28

замена строк столбцами). Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0, m ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1. Введите количество

1. Неверные исходные данные

строк матрицы n: 0

 

 

Введите количество

 

 

столбцов матрицы m: 5

 

2. Введите количество

2. Матрица:

 

1

0

строк матрицы n: 2

1,8

4

 

- 6

2,5

Введите количество

 

 

столбцов матрицы m: 3

 

æ1 1,8 - 6

ö

 

Матрица: ç

÷

 

ç

÷

 

è0 4 2,5

ø

 

5. Составьте программу на языке VBA, которая вычисляет количество ненулевых элементов в одномерном массиве из n чисел. Программа должна проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите размерность

1.

Неверно введено n

 

массива n: –3

 

 

2.

Введите размерность

2.

В массиве 3 ненулев(ой, ых) элемент(а, ов)

 

массива n: 4

 

 

 

Массив: (− 7,4 0 8

1)

 

6. Составьте программу на языке VBA, которая вычисляет среднее арифметическое L квадратов отрицательных элементов квадратной матрицы An×n и заменяет положительные элементы главной диагонали на L . Программа

должна проверять правильность введенных пользователем данных и, если они неверные (n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

 

 

Результат:

 

1. Введите размерность

 

1. Неверно введено n

матрицы n: –2

 

 

 

 

 

 

2. Введите размерность

 

2. Среднее арифметическое квадратов

матрицы n: 3

 

 

 

отрицательных элементов равно 26.

æ1

0

- 4

ö

Матрица :

26

0

- 4

ç

9

- 6

7,5

÷

Матрица: ç

÷

9

- 6

7,5

ç

3

2

3

÷

è

ø

3

2

26

 

 

 

 

 

7. Составьте программу на языке VBA, которая вычисляет количество пар равных соседних элементов в одномерном массиве. Программа должна проверять

29

правильность введенных пользователем данных и,

если они неверные (n ≤ 0),

выдавать сообщение об ошибке.

 

Исходные данные:

Результат:

 

1. Введите размерность

1. Неверно введено n

массива n: –7

 

 

2. Введите размерность

2. 1 пар(а, ы) равных соседних элементов

массива n: 4

 

 

Массив: (− 0,8 6 6

− 8)

 

8. Составьте программу на языке VBA, которая вычисляет сумму

диагональных элементов

квадратной матрицы

An×n . Программа должна

проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

 

 

Результат:

1. Введите размерность

 

1. Неверно введено n

матрицы n: –2

 

 

 

2. Введите размерность

 

2. Сумма диагональных элементов матрицы

матрицы n: 3

 

 

равна 4,2

æ0,4

- 5

-1,7ö

ç

0

2,5

5

÷

Матрица: ç

÷

ç

1

6

2

÷

è

ø

9. Составьте программу на языке VBA, которая выводит максимальный элемент, и если таких элементов несколько, то определяет их количество в одномерном массиве из n целых чисел. Программа должна проверять правильность введенных пользователем данных и, если они неверные (n ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите размерность

1.

Неверно введено n

 

массива n: –7

 

 

2.

Введите размерность

2.

Максимальный элемент 6,

 

массива n: 5

 

этих элементов 2

 

Массив: (−17 6 5 − 7

6)

 

10. Составьте программу на языке VBA, которая определяет строку с наибольшим числом нулей в двумерном массиве An×m . Программа должна

проверять правильность введенных пользователем данных и, если они неверные ( n ≤ 0, m ≤ 0), выдавать сообщение об ошибке.

Исходные данные:

Результат:

1.

Введите количество

1.

Неверные исходные данные

 

строк массива n: –3

 

 

 

Введите количество

 

 

 

столбцов массива m: 5

 

 

2.

Введите количество

2.

Таких строк нет

строк массива n: 2

30