Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Приемы программирования в среде Visual Basic for Application. Учебное пособие
.pdf
12. Даны два числа. Вывести на экран первое число, если оно боль-
<
−
(
)
=
−
(
)
ше второго, и оба числа, если это не так.
13. Даны две переменные вещественного типа: A, B. Перераспреде-
лить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B - большее. Вывести новые значения переменных A и B.
14. Даны четыре числа. Найти разницу между максимальным ц ми-
нимальным числами.
15. Даны две переменные целого типа: A и B. Если их значения не
равны, то присвоить каждой переменной сумму этих значений, а
если равны, то присвоить переменным нулевые значения. Вывести
новые значения переменных A и B.
16. Даны три числа. Меньшее из этих чисел заменить их полусум-
мой, а большее - удвоенным произведением.
17. Даны три числа. Найти сумму двух наибольших из них.
18. Даны три числа. Выяснить, существует ли треугольник с таки-
ми сторонами. (Условие существования треугольника следующее:
сумма любых двух сторон треугольника должна быть больше
третьей стороны.)
а) 3, 4, 5;
b) 10, 8, 3.
19. При выполнении условия
противном случае проверить условие
ется, вычислить
2/yxz +=
, в противном случае z=3.2.
0yx
вычислить
0yx
и если оно выполня-
12/yxz ++=
, в
20. Для данного целого x найти значение следующей функции f,
принимающей значения целого типа:
><⋅
( )
xf
=
⋅−
2 xили -2 хесли ,2xx
случае противном в ,3
Оператор выбора
1. Составить программу, которая и зависимости от порядкового но-
мера дня недели (1. 2. .... 7) выводит на экран его название (поне-
дельник вторник .... воскресенье).
2. Дано целое число K. Вывести строку-описание оценки, соответст-
вующей числу K (1 - «плохо», 2 - «неудовлетворительно», 3 «удовлетворительно», 4 - «хорошо», 5 - «отлично»). Если K не лежит в диапазоне 1–5, то вывести строку «ошибка».
- 91 -

3. Дан номер месяца - целое число в диапазоне 1–12 (1 - январь, 2 -
февраль и т.д.). Вывести название соответствующего времени года
(«зима», «весна», «лето», «осень»).
4. В киоске продается газета стоимостью 3 рубля и журнал стоимо-
стью 20 рублей. Составить программу, которая спрашивает, что вы
хотите купить, принимает деньги и выдает сдачу.
5. Составить программу, моделирующую работу продавца морожено-
го с выбором сорта мороженого.
6. Арифметические действия над числами пронумерованы следую-
щим образом: 1 - сложение, 2 - вычитание, 3 - умножение, 4 - деление. Дан номер действия N (целое число в диапазоне 1–4) и вещественные числа A и B (В не равно 0). Выполнить над числами
указанное действие и вывести результат.
7. Пусть элементами круга являются радиус (первый элемент), диа-
метр (второй элемент), длина окружности (третий элемент). Составить программу, которая по номеру элемента и по его значению
вычисляла бы площадь круга.
8. Дата некоторого дня характеризуется двумя натуральными числа-
ми m (порядковый номер месяца) и n (число). По заданным m и n
определить:
а) дату предыдущею дня (принять, что m и n не характеризуют 1
января);
б) дату следующего дня (принять, что m и n не характеризуют 31
декабря).
9. Для натурального числа k напечатать фразу "мы нашли k грибов в
лесу", согласовав окончание слова "гриб" с числом k.
10. Работа светофора для водителей запрограммирована следующим
образом: начиная с начала каждого часа, в течение трех минут го-
рит зеленый сигнал, затем в течение одной минуты - желтый, в те-
чение двух минут - красный, в течение трех минут - опять зеленый
и т.д. Дано вещественное число t, означающее время в минутах,
прошедшее с начала очередного часа. Определить, сигнал какого
цвета горит для водителей в этот момент.
Цикл с параметром: группа For
1. Даны два целых числа A и B (A < B). Вывести в порядке убывания
все целые числа, расположенные между A и B (не включая числа A
и B), а также количество N этих чисел.
- 92 -

a
!
13x!
11x!
9x!
7x!
5x!
3
()()()(
)
−−−
−
=+=
=
=+=+===
5
()(
)
!
k
+−−
−
2n
−==
−
1n21
21
2. Дана числовая последовательность
12
2Cos
a,
a
15
3Sin
a,...,
Найти сумму отрицательных элементов при n=100.
3. Даны два целых числа A и B (A < B). Найти произведение всех це-
лых чисел от A до B включительно.
4. Даны два целых числа A и B (A < B). Найти сумму квадратов всех
целых чисел от A до B включительно.
1
1
1
1
5. Дана числовая последовательность
1
7
,
,
,
13
11
9
,
15
,...
. Найти произве-
дение членов последовательности от пятого до двадцать пятого.
13119753
.
+−+−+−
6. Дано действительное число х. Вычислить
x
x
7. Дано целое число (N > 1) и две вещественные точки на числовой
оси: A, B (A < B). Отрезок [A, B] разбит на N равных отрезков.
Вывести H - длину каждого отрезка, а также набор точек A, A + H,
A + 2·H, A + 3·H, …, B, образующий разбиение отрезка [A, B].
64х8х4х2х
.
63х7х3х1х
−−−−
8. Дано действительное число х. Вычислить
K
( )( )( ) ( )
K
.
9. Пусть
1kk0
−
K,2,1k,k/1kaа;1а
Дано натуральное n. Полу-
чить an .
10. Пусть
ральное n. Найти
11. Пусть
рого
1k1kk1k1kk11
−−−−
n
∑
( )
=
1k
3
x2
−
1k
x;1x
==
k0
5
−
10xx
<−
1nn
−
−
.
k
2
2
2
++
k
=
.
!kba1
k
K
,2,1k,
Найти первый член хn, для кото-
K,3,2k,ba2ba2b3a;1ba
Дано нату-
12. Даны действительные числа а, b, натуральное число n (b>а). По-
1
лучить (f1 + ... + fn)⋅h, где
ab
−
h
=
n
f,
=
i
13. Даны целые числа n, k (n≥k≥0). Вычислить
h
ia
−+
2
2
1
h
ia1
−++
2
K
1kn1nn
.
n,,2,1i,
K=
.
Цикл с условием: группа While
1. Даны положительные числа A и B (A > B). На отрезке длины A
размещено максимально возможное количество отрезков длины B
(без наложений). Не используя операции умножения и деления,
найти длину незанятой части отрезка A.
- 93 -

2. Дано целое число m> 1. Получить наибольшее целое k, при кото-
3
ром 4⋅k< m.
3. Дано натуральное число n. Получить наименьшее число вида 2⋅r,
превосходящее n.
4. Спортсмен в первый день пробежал 10 км. Каждый следующий
день он увеличивал дневную норму на 10% от результата предыдущего дня. Найти какой путь пробежит спортсмен в 7-й день.
5. Сколько чисел нужно взять в последовательности 1+2+3+4+ … ,
чтобы получить число, большее чем N.
6. Вычислить наибольшее целое положительное число а удовлетво-
ряющее условию 3⋅a2-127⋅a<0.
7. Дано целое число (N > 0). Найти наименьшее целое положитель-
ное число K, квадрат которого превосходит N: K2 > N. Функцию
извлечения квадратного корня не использовать.
∞
1
=
)x(S
8. Дана числовая последовательность
∑
.Подсчитать сумму с
2
n
=
1n
точностью 0,00000001.
9. Начальный вклад в банке равен 1000 руб. Через каждый месяц
размер вклада увеличивается на P процентов от имеющейся суммы (P - вещественное число, 0 < P < 25). По данному P определить, через сколько месяцев размер вклада превысит 1100 руб., и
вывести найденное количество месяцев K (целое число) и итоговый размер вклада S (вещественное число).
10. Спортсмен-лыжник начал тренировки, пробежав в первый день
10 км. Каждый следующий день он увеличивал длину пробега на
P процентов от пробега предыдущего дня (P - вещественное,
0< P <50). По данному P определить, после какого дня суммар-
ный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).
11. Дано число a (1 <а≤ 1.5) Из чисел 1 + ½,
1
1+
, … напечатать те,
которые не меньше а.
12. Среди чисел 1, 4, 9, 16, 25, ... найти первое число, большее n.
Массивы
1. Заполнить массив х нулями. (Это означает, что нужно составить
фрагмент программы, после выполнения которого все значения
х[1] - х[n] равнялись бы нулю, независимо от начального значе-
- 94 -

ния переменной х.
=<≤
−==
2. Найти максимальное число, встречающееся в заданном векторе
х[1] … х[n].
3. Ввести и напечатать значения элементов массива целого типа с
заданной размерностью. Вычислить и напечатать сумму элементов массива, расположенных до минимального элемента.
4. Ввести и напечатать значения элементов массива вещественного
типа с заданной размерностью. Упорядочить массив по возрастанию значений элементов. Отсортированный массив напечатать.
5. Ввести и напечатать значения элементов массива вещественного
типа с заданной размерностью. Преобразовать массив таким образом, чтобы в первой половине располагались элементы, стоящие в
четных позициях, а во второй половине - элементы, стоящие в нечетных позициях. Модифицированный массив напечатать.
6. Ввести и напечатать значения элементов массива целого типа с за-
данной размерностью. Преобразовать массив таким образом, чтобы
нулевые элементы располагались в конце массива. Модифицированный массив напечатать.
7. Для заданной квадратной матрицы найти минимум среди сумм
модулей элементов диагоналей, параллельных побочной диагонали.
8. Составить программу нахождения максимального значения эле-
мента вектора среди отрицательных и минимального значения –
среди положительных элементов.
9. Составить программу печати значений элементов той строки
матрицы, сумма элементов которой минимальна.
10. Подсчитать в одномерном массиве целого типа размером 100
элементов индекс и значение последнего из положительных элементов.
11. Сформировать одномерный массив с элементами
20),0(][
NNiiz
y[i] по правилу:
из двух заданных массивов целого типа х[i],
1,...,1,0]},[],[min{][
Niiyixiz
12. Получить одномерный массив z из двух заданных массивов ве-
- 95 -

щественного типа х, y по правилу
=+=
−
−
()(
)
+
+
iiyixiz
29...,,1,0,2/])[][(][
13. Найти величину и номер первого отрицательного и последнего
положительного элемента в массиве вещественного типа заданного размера.
14. Поменять местами первый и последний элемент, второй и пред-
последний и т.д. в одномерном массиве вещественного типа заданного размера.
15. Найти количество нулевых элементов в одномерном массиве це-
лого типа заданного размера, и сформировать новый массив из
ненулевых элементов исходного массива.
16. В одномерном массиве вещественного типа заданного размера
найти сумму элементов, расположенных между максимальным и
минимальным элементами.
Функции и процедуры
1. Даны действительные числа S, t. Получить f (t, -2s, 1.17) + f (2.2,
( )
c,b,af
t, s-t), где
=
+
2. Дано действительное число y. Получить
+
10
∑
=
0k
=
)x(t
10
∑
1k2
x
+
)!1k2(
.
k2
x
)!k2(
=
0k
csinba2
.
c5
y1t225.0t7.1
2
( )
1yt6
−−
, где
3. Даны действительные числа а, b, Получить u=min(a, b),
v=min(ab, a+b), min(u+v2, 3.14).
4. Определить значение z = max(a, 2b) ⋅ maх(2f - b,b), где min(х, у)
максимальное из чисел х, у. Задачу решить, не используя функцию mах;
<−
0а при 1
=
0а при 0
.
>
0а при 1
5. Определить значение z=Sign(X)+ Sign(Y) где
=
aSign
6. Даны основания и высоты двух равнобедренных трапеций. Найти
сумму их периметров. (Определить функцию для расчета периметра
равнобедренной трапеции по ее основаниям и высоте).
- 96 -

7. Даны две последовательности целых чисел: а1, а2,..., а8 и b1, b2, ..., b8.
!4!
6
⋅+⋅
Найти количество четных чисел в первой из них и количество нечетных во второй. (Определить функцию, позволяющую распознавать четные числа).
8. Найти значение выражения
!83!52
+
, где n! означает факториал
числа n (n!= 1⋅2⋅... ⋅n). (Определить функцию для расчета факториала
натурального числа).
9. Даны два натуральных числа. Выяснить, в каком из них сумма цифр
больше. (Определить функцию для расчета суммы цифр натурального числа).
10. Даны шесть различных чисел. Определить максимальное из них.
(Определить функцию, находящую максимум из двух различных
чисел).
11. Составить программу, в результате которой величина а меняется
значением с величиной b, а величина с - с величиной d. (Определить
процедуру, осуществляющую обмен значениями двух переменных
величин).
12. Даны стороны двух треугольников. Найти сумму их периметров и
сумму их площадей. (Определить процедуру для расчета периметра
и площади треугольника по его сторонам).
13. Даны основания и высоты двух равнобедренных трапеций. Найти
сумму их периметров и сумму их площадей. (Определить процедуру
для расчета периметра и площади равнобедренной трапеции по ее
основаниям и высоте).
Контрольные вопросы
Целочисленное программирование
1. Какие операции можно выполнять над величинами целого типа?
Укажите приоритет их выполнения при расчете значения арифметического выражения.
2. Как определить остаток от деления одной величины целого типа на
другую?
3. Можно ли при делении одной величины целого типа на другую использовать знак "/"?
Ввод и вывод данных, оператор присваивания
- 97 -

1. Как оформляется оператор вывода на экран?
2. Что можно указывать в качестве элементов списка вывода? Какой
символ используется для разделения элементов списка вывода?
3. Что будет выведено на экран, если в списке вывода записано:
а) число?
б) имя величины?
в) текст в кавычках?
г) арифметическое выражение?
4. Как оформляется оператор ввода? Что можно указывать в качестве
элементов списка ввода? Как работает оператор ввода (что происходит при его выполнении)?
5. Как оформляется арифметическое выражение?
6. Какие знаки арифметических операций используются в арифмети-
ческих выражениях? Укажите приоритет выполнения арифметических операций при расчете значения выражения.
7. Можно ли в арифметическом выражении использовать круглые
скобки? С какой целью? А квадратные?
8. Как оформляется оператор присваивания? Как он работает (что
происходит при его выполнении)?
Логические выражения: группа Boolean
1. Что такое простое условие? Какие операции отношения используются в нем?
2 Что является результатом выполнения операции отношения?
3. Что такое составное условие? Какие логические операции исполь-
зуются в нем? Каков приоритет их выполнения? Как изменить этот
приоритет?
4. В логическом выражении (составном условии) используются две
величины логического типа (два простых условия) А и В. Сколько
возможно различных вариантов сочетаний значений А и В?
5. В логическом выражении (составном условии) используются три
величины логического типа (три простых условия) - А, В и С.
Сколько возможно различных вариантов сочетаний значений А, В
и С?
Условный оператор: группа If
1. Какие виды условных операторов вы знаете?
2. В каких случаях в программе используется полный условный опе-
ратор? Как он оформляется? Как он работает (что происходит при
его выполнении)? Нарисуйте алгоритмическую схему выполнения.
- 98 -

3. В каких случаях в программе используется неполный условный
оператор? Как он оформляется? Как он работает (что происходит
при его выполнении)? Нарисуйте алгоритмическую схему выполнения.
4. В каких случаях в программе используется вложенный условный
оператор? Как он оформляется?
5. В каких случаях в программе используется оператор выбора? Как
он оформляется? Как он работает (что происходит при его выполнении)? Нарисуйте алгоритмическую схему выполнения.
Цикл с параметром: группа For
1. В каких случаях используется оператор цикла с параметром? Как
он оформляется? Как он работает (что происходит при его выполнении)? Нарисуйте алгоритмическую схему выполнения.
2. Что такое "тело оператора цикла"?
3. Может ли тело оператора цикла с параметром не выполниться ни
разу?
4. Как должен быть оформлен оператор цикла с параметром, чтобы
тело цикла выполнялось при уменьшающихся значениях параметра цикла? Как он будет работать (что будет происходить при его
выполнении)? Нарисуйте алгоритмическую схему выполнения.
5. Чему равно количество повторений тела оператора цикла с параметром, если параметр цикла принимает:
а) все целые значения от 1 до 10?
б) все целые значения от а до b?
в) все нечетные значения от 1 до 20?
г) все нечетные значения от 1 до n?
д) все значения от 10 до 100 с шагом 7?
е) все значения от 1,5 до 10,3 с шагом 0,4?
ж) все значения от а до b с шагом stер?
6. Можно ли в теле оператора цикла использовать условный оператор?
7. Какие вы знаете операторы для принудительного (преждевременного) выхода из оператора цикла? Можно ли вместо такой конструкции использовать оператор цикла с постусловием? А оператор
цикла с предусловием?
8. Дан фрагмент программы:
For a=1 to 10
MsgBox а
- 99 -

If a=10 then a=a-1
Next a
Что произойдет при выполнении программы?
Вложенные циклы
1. В каких случаях используются вложенные операторы цикла?
2. Как оформляются вложенные операторы цикла? Как они работают
(что происходит при их выполнении)? Нарисуйте алгоритмическую схему выполнения.
3. Внешний цикл образован оператором цикла с параметром i, меняющимся от 1 до 5, внутренний - с параметром j, меняющимся от
3 до 7. Опишите последовательность изменения значений i и j.
4. Вложенный цикл образован двумя операторами цикла с парамет-
ром. Что является телом внешнего цикла? Что является телом
внутреннего цикла?
5. Вложенный цикл образован двумя операторами цикла с параметром. Можно ли во внешнем и внутреннем циклах использовать
один и тот же параметр цикла (переменную цикла)?
6. Может ли внешний оператор вложенного цикла
а) не выполниться ни разу?
б) выполняться бесконечное число раз (или до того момента, ко-
гда пользователь прервет его выполнение)?
Операторы цикла с условием
1. В каких случаях используются операторы цикла с условием?
2. В каких случаях используется оператор цикла с предусловием? Как
он оформляется? Как он работает (что происходит при его выполнении)? Нарисовать алгоритмическую схему выполнения.
3. Что такое "тело оператора цикла с предусловием"?
4. Может ли тело оператора цикла с предусловием:
а) не выполниться ни разу?
б) выполняться бесконечное число раз (или до тех пор, когда
пользователь прервет его выполнение)?
5. В каких случаях используется оператор цикла с постусловием? Как
он оформляется? Как он работает (что происходит при его выполнении)? Нарисовать алгоритмическую схему выполнения.
6. Что такое "тело оператора цикла с постусловием"?
- 100 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
