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

СУБД / Информатика.Ч2_2Ed

.pdf
Скачиваний:
75
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

12.Составить программу, позволяющую получить словесное описание отметок (2 – «неудовлетворительно», 3 – «удовлетворительно», 4 – «хорошо», 5 – «отлично»).

13.Написать программу, которая по введенному номеру времени года (1 – зима, 2 – весна, 3 – лето, 4 - осень) выводит соответствующие этому времени года месяцы.

14.Дано натуральное число N . Если оно делится на 4, вывести на эк-

ран ответ N 4k (где k - соответствующее частное); если остаток

от деления на 4 равен 1, вывести

N 4k 1; если остаток от деле-

ния на 4 равен 2, вывести

N 4k

2 ; если остаток от деления на 4

равен 3, вывести N 4k

3 . Например, 12=4*3 или 22=4*5+2.

15.Даны два вещественных положительных числа x и y. Арифметические действия над числами пронумерованы (сложение – 1, вычитание – 2, умножение – 3, деление - 4). Составить программу, которая по введенному номеру выполняет то или иное действие над числами.

ИТЕРАЦИИ (ЦИКЛИЧЕКИЕ КОНСТРУКЦИИ)

16. Численно убедиться, является ли заданная функция y f (x) чет-

ной или нечетной на заданном отрезке

a

x a . Выполнить про-

верку для функций: y x 4 , y tg(x) ,

y

e x , вычисляя их на от-

резке [-5;5] с шагом 0.1.

17. Утверждается, что функция y f (x) периодическая с периодом T .

Проверить это численно, вычислив функцию с постоянным шагом на отрезке [0; 5T ]. В качестве исходных, использовать функции:

y sin 2 x , y tg(x) (T

) , y

1

sin x

(T 2 ) .

 

 

 

x

 

Получить таблицу пересчета миль в километры и обратно (1миля=1.609344км) для расстояний, не превышающих k км, в следующем виде:

мили

км

 

 

0.6214

1.0000

1.0000

1.6093

1.2428

2.0000

1.8641

3.0000

2.0000

3.2187

41

18.

Для заданных m и x вычислить бином Ньютона (1

m)m по фор-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x)m

 

 

 

m

Cmi xi .

 

 

 

 

 

 

 

 

 

 

Cmi

 

муле разложения в ряд:

(1

 

 

 

 

Для вычисления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

можно использовать рекуррентное соотношение:

i

1

 

i m

i

;

 

Cm

 

Cm

 

 

 

 

 

 

i

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cm0

1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19.

Проверить численно первый замечательный предел

lim

sin x

1 ,

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0

 

 

 

 

задавая значения 1;

1

 

;

1

;

 

1

;.... до тех пор, пока левая часть равенст-

 

2

 

4

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ва не будет отличаться от правой менее чем на заданную погреш-

 

ность

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20.

Проверить

 

численно

 

 

второй

 

 

 

 

 

замечательный

 

предел:

 

lim

1

1

n

e , задавая n

значения 1, 2, 3, … . При каком n

ис-

 

 

 

 

n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

следуемое выражение отличается от

e

 

 

 

менее чем на заданную по-

 

грешность

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21. Для заданных a и

p вычислить

 

 

 

p

 

 

 

, используя рекуррентную

x

a

 

формулу:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn 1

 

xn

( p

2

1)

 

 

 

1

( p 1)

 

a

 

 

1

 

 

( p 1)

xnp

 

, x0

a .

 

 

 

 

 

p2

 

 

 

 

2

xnp

 

2

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сколько итераций надо выполнить, чтобы для заданной погрешно-

 

сти

было справедливо соотношение

 

xn

1

xn

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22. Для заданных a и

p вычислить

 

 

 

p

 

 

 

 

x

 

a

по рекуррентному соот-

 

ношению Ньютона:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn 1

1

 

 

( p 1)xn

 

 

 

a

 

 

 

,

x0

 

a .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xnp

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сколько итераций надо выполнить, чтобы для заданной погрешно-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сти

было справедливо соотношение

 

xn

1

xn

 

?

 

 

 

 

 

 

 

42

23. Для заданного

x

1 вычислить

y

x по итерационной формуле:

yi

1

yi 1

x

 

с заданной погрешностью

 

yi 1 yi

 

, за-

 

 

 

 

 

 

 

 

2

yi

1

 

 

 

 

 

 

 

 

 

дав начальное приближение y0

0 .

 

 

 

 

 

24.Проверить, существуют ли натуральные числа a 100 , которые обладают следующими свойствами:

a.a mod 3 = 1;

b.a mod 4 =2;

c.a mod 5 = 3;

d.a mod 6 = 4.

Сколько таких чисел?

25.Составить программу вывода на экран таблицы температур по Цельсию от 0 до 100 градусов с шагом в один градус и их эквива-

лентов по

шкале Фаренгейта, используя для перевода формулу

t F 9t C / 5

32 .

26.Сколько чисел последовательности 2, 4, 6, 8, … нужно взять, чтобы их сумма превысила 1000? Вывести величину последнего слагаемого и суммы.

27.Дано вещественное число а. Из чисел 1, 1+ 12 , 1+ 12 + 13 , … вывести на экран те, которые меньше а.

28.Задана последовательность чисел 1, 1/2, 1/3, 1/4, … . Определить

величину первых двух рядом стоящих элементов, разность которых меньше 10-6.

29.Дана непустая последовательность целых чисел, оканчивающаяся числом 100. Определить, есть ли в последовательности число 77. Если имеются несколько таких чисел, то определить порядковый номер первого из них.

30.Составить программу для графического представления делимости чисел от 1 до n (значение n вводится с клавиатуры). В каждой строке надо напечатать очередное число и столько символов + (плюс), сколько делителей у этого числа. Например, если n=4, то на экране должно быть напечатано:

1+

2++

3+++

4++++

43

ОПЕРАЦИИ С МАССИВАМИ

31.В массиве C(n) подсчитать количество отрицательных и сумму положительных элементов.

32.Элементы одномерного массива A(n 2 ) построчно расположить в

матрице B(n, n) .

33. От каждого из заданных

~

арифметическое: xi xi

m чисел x1, x2 ,..., xm отнять их среднее

 

 

1

 

m

xср ,

xср

 

 

xi , i 1,2,...,m . Резуль-

m i

 

 

1

таты разместить на месте исходных данных.

34.В матрице Z (m, m) каждый элемент разделить на диагональный, стоящий в том же столбце.

35.В матрице A(m, n) все ненулевые элементы заменить обратными по величине и противоположными по знаку.

36.Найти среднее арифметическое каждой строки матрицы Q(l, m) и вычесть его из элементов этой строки.

37.Удалить из массива A(n) ненулевые элементы, передвинув на их

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

38.Матрица K (m, m) состоит из нулей и единиц. Найти в ней номера

(индексы) хотя бы одной строки или хотя бы одного столбца, не содержащих единицы, либо сообщить, что таковых нет.

39.Удалить в заданном массиве X (n) «лишние» (кроме первого) эле-

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

40.Вычислить среднее значение xcp и дисперсию d x для заданного

 

 

 

 

 

 

 

 

1 k

 

 

 

 

 

 

1

 

k

 

 

)2 .

массива X (k) наблюдений:

x

cp

 

 

 

x

i

;

d

x

 

 

 

 

(x

x

cp

 

 

 

 

 

 

 

 

 

 

 

 

k i

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

k

1 i 1

 

 

 

41. Найти угол между векторами A(n)

и B(n) , используя формулу:

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( A, B)

 

 

 

 

 

aibi

 

 

 

 

 

 

 

 

 

 

cos

 

 

 

 

 

i

1

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

A

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a 2

 

 

 

 

b2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1

 

 

 

 

i

1

 

 

 

 

 

 

 

 

 

44

42.Задана матрица A(k,l) . Найти вектор B(l) , каждый элемент кото-

рого равен среднему арифметическому элементов соответствующего столбца матрицы A .

43.Все ненулевые элементы матрицы D(k, l) расположить в начале массива E(k l) и подсчитать их количество.

44.Все четные элементы целочисленного массива K(n) поместить в массив L(n) , а нечетные – в массив M (n) . Подсчитать количество и тех и других.

45.В массиве A(n) найти и напечатать номера (индексы) локальных

максимумов, то есть таких ai , что ai 1 ai ai 1.

46.В массиве Z (2n) каждый элемент с четным индексом поменять местами с предыдущим, то есть получить последовательность чисел z2 , z1, z4 , z3,..., z2n , z2n 1 .

47.Осуществить циклический сдвиг элементов массива T (n) на m

позиций влево, то есть получить массив: tm 1 , …, tn , t1 , …, tm . При этом необязательно m n .

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

49.

Для заданной матрицы A(m, n)

найти ее норму:

A

max

 

aik

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1,m k

1

 

50.

Каждый элемент вектора

A(n)

(кроме двух крайних) заменить вы-

 

ражением: ai

ai

1

2ai

ai

1

, i

2,3,...,n 1,

а крайние элемен-

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ты – выражением:

a

 

a1

a2

 

;

a

n

an 1 an

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

51.В массиве X (m, n) каждый элемент (кроме граничных) заменить

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

52.Содержимое квадратной матрицы A(n, n) повернуть на 900 по часовой стрелке, считая центром поворота центр симметрии матрицы.

53.В каждом столбце и каждой строке матрицы P(n, n) содержится

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

45

54.Удалить из массива A(n) нулевые элементы, передвинув на их ме-

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

55.В трехмерном массиве K(l, m, n) , состоящем из нулей и единиц,

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

56.В массив A(n) занесены натуральные числа. Найти сумму тех элементов, которые кратны данному значению K .

57.Дан двумерный массив из 20 строк. Перенести первые k строк в конец массива, соблюдая порядок их следования.

58.Дан двумерный массив из 18 столбцов. Переставить столбцы так, чтобы они располагались следующим образом: первая, двенадцатая, вторая, одиннадцатая, …, пятая, восьмая, шестая, седьмая.

59.Дан двумерный массив из 15 строк. Вставить в него строку из нулей после всех строк, номер которых равен трем.

60.Дан двумерный массив. Удалить строку и столбец, на пересечении которых расположен наименьший по модулю элемент массива.

ЛИНЕЙНЫЙ ПОИСК

61. Седловой точкой в матрице называется элемент, являющийся одновременно наибольшим в столбце и наименьшим в строке:

a pq

max aiq

min a pj . Седловых точек может быть и несколько

 

i

j

 

 

 

(в этом случае они имеют равные значения). В матрице

A(m, n)

найти седловую точку и ее координаты

p , q либо установить, что

такой точки нет.

 

 

 

 

 

 

 

 

j

 

62. В заданном массиве A(n) найти i и

j такие, что

ak

макси-

 

 

 

k

i

 

мально.

63.В массиве T (k) найти первый и последний нулевые элементы.

64.В массиве L(m) найти наиболее длинную цепочку, состоящую из одних нулей.

65.В целочисленном массиве K(n) много повторяющихся элементов.

Найти (в процентах) частоту появления каждого из m наиболее часто встречающихся элементов ( m n ).

46

66.Даны два целочисленных массива K(m) и L(n) . Найти наибольший элемент массива K , не имеющий себе равных в массиве L .

67.В целочисленном массиве L(n) найти наиболее длинную цепочку одинаковых подряд стоящих элементов.

68.В массиве A(k) много совпадающих элементов. Найти количество различных элементов в нем.

69.Элементы массива M (n) упорядочены по убыванию. Для заданного

x найти наименьшее k такое, что mk x mk 1 , либо показать, что такого нет.

70.В каждой строке матрицы A(n, n) найти наибольший элемент м

поменять его местами с соответствующим диагональным элементом.

71.Утверждается, что массив A(m) целиком (как последовательность) встречается в массиве B(n) , n m . Найти место массива A в массиве B или показать, что его в массиве B нет.

72.Найти все числа, каждое из которых встречается в каждой строке матрицы A(m, n) .

73.Найти все числа из массива B(n) , встречающихся более чем в одной строке матрицы A(m, n) .

74.В массиве Z(n) найти наиболее длинную цепочку стоящих подряд попарно различных элементов.

75.В массиве P(n) найти самую длинную последовательность, которая является арифметической или геометрической прогрессией.

76.Дан массив целых чисел K(n) . Найти в нем минимальный kmin и максимальный kmax элементы. Вывести в порядке возрастания все целые числа из интервала ( kmin , kmax ), не встречающихся в исходном массиве.

МНОЖЕСТВА

77.Задано n произвольных натуральных чисел. Найти все группы по k чисел, сумма которого равна заданному числу m .

78.Две строки матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках. Найти все пары непохожих строк в заданной матрице.

47

79. В числовом множестве A , размерностью n , найти подмножество B , размерностью k , такое, модуль суммы элементов которого минимален (числа в A имеют равные знаки).

80.Найти расстояние между двумя заданными множествами точек на плоскости.

81.Из множества n -мерных векторов, заданных своими целочисленными координатами, найти пары ортогональных, либо коллинеарных векторов.

82.Две строки матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках. Найти все пары непохожих строк в заданной матрице.

83.Даны два массива числовых множеств: A(m) и B(n) . Найти все

пары множеств Ai и B j таких, что sum ( Ai B j ) k ( k -задано).

КОМБИНАТОРИКА

84.Из массива A(n) выбрать случайным образом m различных элементов и поместить их в массив B(m) .

85.«Перемешать» матрицу Z(m, n) , переставив все ее значения случайным образом.

86.Массив Z (n) разбить на m фрагментов случайной длины. Фрагменты записать в матрицу A , содержащую m строк.

87.Переставить все строки и столбцы матрицы F(m, n) случайным образом. В массивах K(m) и L(m) запомнить места, которые каждая строка и каждый столбец занимали до перестановки.

88.Для заданного n получить все возможные перестановки чисел 1, 2, …, n .

89.Для выборки случайных чисел, содержащейся в массиве A(n) , по-

строить гистограмму распределения, содержащую m интервалов.

Примечание. Гистограммой (или диаграммой) распределения на-

зывается массив из m элементов, значение каждого из которых равно количеству (или доле из общего числа) чисел из A , попавших в соответствующий интервал. Ширина каждого интервала оп-

ределяется как (amax amin) / m .

90.На плоскости заданы своими целочисленными координатами n точек. Найти всевозможные группы по 3, 4, … точки, лежащие на одной прямой.

48

ПРАКТИЧЕСКАЯ РАБОТА 4. АВТОМАТИЗАЦИЯ ДОКУМЕНТООБОРОТА СРЕДСТВАМИ VBA

ЗАДАНИЕ 1

1.Необходимо автоматизировать формирование договоров в виде документов MS Office Word 2007. Типичный договор выглядит следующим образом, рис. 4.1. Изменяемые данные, которые должны подставляться программно, выделены красным цветом. Создайте новый документ MS Office Word 2007 и наберите текст, представленный на рисунке. Сохраните документ под именем ДОГОВОР.docm (Документ MS Office Word 2007 с поддержкой макросов).

Рис. 4.1. Типовой договор

2.Удалите данные выделенные красным цветом и создайте на их мес-

те закладки с именами: bNumber, bCity, bDate, bOrg, bPerson, bTitle, bLaw. Проверьте правильность выполнения перехода в тексте документа MS Office Word 2007 по созданным закладкам. В итоге документ должен выглядеть так, как показано на рис. 4.2.

Рис. 4.3. Документ с закладками

49

3.Запустите редактор Visual Basic и для проекта Normal создайте новую форму пользователя с именем FormDog.

4.Сконструируйте в редакторе Visual Basic, форму (FormDog), аналогичную, представленной на рис. 4.4.

Рис. 4.4. Форма пользователя FormDog

Элементы управления TextBox на форме должны иметь соответст-

вующие имена: txtNumber, txtCity, txtDate, txtOrg, txtPerson, txtTitle, txtLaw. Кнопки CommandButton должны называться cmdDog и cmdCancel.

5.Создайте новый модуль для проекта Normal и добавьте процедуру FormDogShow(), которая будет открывать форму пользователя, используя метод Show.

6.Создайте макросы с реакцией на щелчок по кнопкам Отмена и

Сформировать договор. При нажатии на кнопку Отмена макрос cmdCancel_Click() должен выполнять закрытие формы, посредством метода Hide(), а при щелчке по кнопке Сформировать договор на место соответствующих закладок документа должен быть добавлен текст из элементов формы.

7.Сохраните изменения в шаблоне документа ДОГОВОРTemplate.dotm и проверьте корректность работы макроса.

МЕТОДИКА ВЫПОЛНЕНИЯ

1.Создайте новый документ MS Office Word 2007 и наберите текст, представленный на рис. 4.1. Для вставки названия города и даты используйте таблицу с невидимыми границами. Сохраните доку-

50

Соседние файлы в папке СУБД