Информатика. Учебно-методическое пособие
.pdf
Вариант 9
По заданному вещественному числу x вычислить значение 3 x по следующей итерационной формуле: yi 1 0.5 yi 3x
2 yi2 x / yi ,
y0 x. Итерации прекратить при | yi 1 yi | 10–5.
Вариант 10
Сформировать целочисленный массив A[15], элементами которого являются случайные числа из диапазона [–8; 10]. Найти среди его элементов два, модуль разности которых имеет наибольшее значение.
Вариант 11
|
|
ln |
|
|
|
x |
|
, |
|
|
x y |
||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
1 |
y |
|
|
|||||||||
|
|
|
|
|
|
|
|
||||||
Вычислить значение функции |
f (x, y) |
x |
|
|
|
|
|
|
|
|
|
для |
|
|
1 |
e |
|
|
x y |
|
, |
x y |
|||||
|
|
|
|||||||||||
|
|
y |
|
|
|
|
|
|
|||||
|
1 |
|
|
|
|
|
|
|
|
|
|
||
значений аргументов x от 0.2 до 0.6 с шагом 0.1; y от 0 до 0.4 с ша-
гом 0.05.
Вариант 12
Сформировать целочисленный массив IM[17], элементами которого являются случайные числа из диапазона [3; 42]. Подсчитать сумму элементов массива, значения которых кратны восьми.
Вариант 13
Дан массив A[15]. Найти пару соседних элементов, наиболее близко расположенных друг к другу, т. е. для которых минимален модуль разности R = |A[i+1] – A[i]|.
Вариант 14
Дан массив X[13]. Найти сумму элементов массива, предшествующих первому отрицательному элементу. Если такового нет, то просуммировать все элементы.
41
Вариант 15
Сформироватьквадратную матрицу A[15][15] следующего типа:
0 |
0 |
.. |
0 |
1 |
0 |
0 |
.. |
1 |
0 |
|
:: |
:: |
:: |
|
:: |
:: |
|||
|
1 |
.. |
0 |
|
0 |
0 |
|||
|
0 |
.. |
0 |
|
1 |
0 |
Вариант 16
Сформировать массив IM[100], элементами которого являются числа 1, 100, 2, 99, …, 50, 51.
Вариант 17
По заданному вещественному x вычислить значение 3 x по следу-
ющей итерационной формуле: yi 1 1 / 3* 2 yi x / yi2 , |
y0 x . Ите- |
рации прекратить при | yi 1 yi | 10–5. |
|
Вариант 18
Сформировать целочисленный массив A[20], элементами которого являются случайные числа из диапазона [–2; 3]. Определить, сколько раз в нем встречались два подряд идущих нулевых элемента.
Вариант 19
Дан целочисленный массив C[12]. Сформировать матрицу A, первая строка которой будет содержать элементы массива с четными номерами, а вторая – с нечетными.
Вариант 20
Сформировать вещественный массив A1[15], элементами которого являются случайные числа из диапазона [–2; 3]. Переслать из него в массив A2 все элементы, значения которых больше –1.8 и меньше 2.7.
42
Вариант 21
Даны вещественные числа A и B (A < B). Найти первый член последовательности an = (–1)n(1 + 1/2 + … + 1/n), который не принадле-
жит [A; B].
Вариант 22
В заданном целочисленном массиве распечатать те элементы, порядковые номера которых – числа Фибоначчи.
Вариант 23
В заданном целочисленном массиве определить количество перемен знаков.
Вариант 24
Дан массив X[20]. Перепечатать в массив Y элементы массива X с нечетными номерами, а в массив Z – элементы массива X, значения которых кратны пяти.
Вариант 25
Даны вещественные числа A, B, C, A1, B1, C1. Выяснить взаимное расположение прямых Ax + By = C и A1x + B1y = C1. Если прямые пересекаются, напечатать координаты точки пересечения.
Вариант 26
Даны вещественные числа A < 0 и B > 0. Найти первый член по-
n |
2 i , который не принадлежит от- |
следовательности an ( 1)i |
|
i 1 |
|
резку [A; B]. |
|
Вариант 27
Дан целочисленный массив A[5]. Определить, образуют ли его элементы неубывающую последовательность.
Вариант 28
Среди 10 введенных чисел xi распечатать те числа, которые удовлетворяют условию | xi | i2. Если таких чисел нет – выдать сообщение.
43
Вариант 29
Дана матрица B[3][6]. Найти сумму элементов каждого столбца матрицы. Сформировать массив D из найденных сумм.
Вариант 30
Дан вещественный массив X[16] и вещественное число N. Вывести на экран монитора все элементы массива, которые имеют один знак с числом N.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Объясните работу условного оператора.
2.Какие операторы цикла вам известны? Разъясните принцип их работы.
3.Из каких соображений выбирается переменная, играющая роль параметра цикла?
4.Что такое массив?
5.Приведите определение указателя.
6.Поясните связь массивов и указателей.
7.Назначение операторов break и continue.
8.Каков результат выполнения фрагмента? Приведите пример.
for(i=1,n=0;i<10;i++) if(a[i]>a[n]) n=i;
9. Каков результат выполнения фрагмента? Приведите пример. for(i=0,n=-1;i<10;i++)
{ if(a[i]<=0) continue; if(n==-1||a[i]<a[n]) n=i; }
10. Каков результат выполнения фрагмента? Приведите пример. do
{ found=0; for(i=0;i<n-1;i++)
if(A[i]>A[i+1]) { int cc; cc=A[i];A[i]=A[i+1]; A[i+1]=cc; found++; } }while(found!=0);}
44
5. ВЫЧИСЛЕНИЕ СУММ И ПРОИЗВЕДЕНИЙ
Необходимо закрепить навыки стандартных приемов программирования.
1.Составить схему алгоритма и предъявить ее преподавателю для проверки.
2.Написать программу двумя способами: с помощью указателей и без нее.
3.Отладить программу и получить численные результаты.
4.Оформить отчет по работе, обратив особое внимание на выводы. Подготовиться к защите, ориентируясь на контрольные вопросы. Защитить работу.
ВАРИАНТЫ ЗАДАНИЙ
Вариант 1
Вычислить сумму последовательности: S sin x sin 2x sin 3xsin 8x, если х изменяется от 0,2 до 1,0 с шагом 0,1.
Вариант 2
Дан массив a из n действительных чисел. Используя указатели,
n 1 |
( 1)i 1 ai . |
вычислить |
|
i 0 |
i! |
|
Вариант 3
Дан массив a из n действительных чисел. Используя указатели,
вычислить n 1 ai . i 0 i!
Вариант 4
Задано вещественное x, целое n. Вычислить S x (x 1)
(x 2) (x n).
45
Вариант 5
Задано вещественное x. Вычислить
7 |
|
S |
sin kx |
k 1 |
|
10 |
|
cos x m . |
|
m k |
|
Вариант 6
5
Вычислить сумму S b2i , где элементы последовательности i 0
bi eix , а х изменяется от 0,5 до 0,9 с шагом 0,1.
Вариант 7
Задано вещественное a. Вычислить p p( p x)( p 2x) ( p nx),
Вариант 8
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид {a0 ,a0 a1, ,
a0 a1 an 1}.
Вариант 9
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид a02 , a0a1, a0a2 ,
, a0an 1 .
Вариант 10
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид {| a0 |, | a0 a1 |, ,
| a0 a1 an 1 |}.
46
Вариант 11
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид a0 , – a0a1, a0a1a2 ,
, ( – 1)n a0a1 an 1 .
Вариант 12
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид –a0 , a1, – a2 , ,
(–1)n an 1 .
Вариант 13
Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид {a0 1!, a1 2!, ,
an 1 n!}.
|
Вариант 14 |
|
Задан массив x[n]. Используя указатели, заполнить его по закону |
x0 |
0, x1 5 / 8, xi xi 1 / 2 3xi 2 / 4 и найти сумму элементов мас- |
сива. |
|
|
Вариант 15 |
x0 |
Задан массив x[n]. Используя указатели, заполнить его по закону |
1, x1 0,3, xi (i 1)xi 2 и найти минимальный элемент массива. |
|
|
Вариант 16 |
x0 |
Задан массив x[n]. Используя указатели, заполнить его по закону |
x1 x2 1, xi (i 3)(xi 1 –1) (i 4)xi 3 и найти произведение |
|
элементов массива.
47
Вариант 17
Задан массив a[m]. Известно, что a0 0 и что среди элементов массива есть хотя бы один отрицательный. Пусть первый отрицатель-
n 1
ный элемент an. Получить ai . i 0
Вариант 18
Задан массив a[m]. Известно, что a0 0 и что среди элементов
массива есть хотя бы один положительный. Пусть первый положи-
n 1
тельный элемент an. Получить ai . i 0
Вариант 19
Задан целый массив a[m]. Известно, что среди элементов массива есть хотя бы один элемент, равный –2. Пусть первый этот элемент an.
Получить среднее арифметическое a0 , , an 1 .
Вариант 20
Задан массив a[m]. Известно, что все его элементы > 0. Получить среднее геометрическое a0 , , am 1 .
Вариант 21
m 2
Задан целый массив a[m]. Найти a0 2 ai am 2 . i 1
Вариант 22
m 2
Задан целый массив c[m]. Найти cici 1 cm 1c0 . i 0
48
Вариант 23
Задан массив a[m]. Известно, что a0 0 и что среди элементов массива есть хотя бы один отрицательный. Пусть первый отрицательный элемент an. Вычислить (–1)n an .
Вариант 24
Задан массив a[m]. Известно, что a0 0 и что среди элементов
массива есть хотя бы один положительный. Пусть первый положительный элемент an. Вычислить n an .
Вариант 25
Задан целый массив a[m]. Известно, что среди элементов массива есть хотя бы один элемент, равный 10. Пусть первый этот элемент an.
Вычислить | a0 – an | .
Вариант 26
Задан целый массив k[12]. Найти его минимальный элемент. Вычислить сумму элементов, следующих за ним.
Вариант 27
Задан целый массив r[10]. Найти его максимальный элемент. Вычислить произведение элементов, стоящих до него.
Вариант 28
Задан целый массив q[11] и целое число g [0; 11). Найти среднее арифметическое всех элементов массива, кроме q[j].
Вариант 29
Задан вещественный массив a[15]. Изменить все его элементы,
кроме первого и последнего, по формуле a ai 1 ai ai 1 , исполь-
i |
3 |
|
зуя лишь старые значения элементов массива. |
||
|
49
Вариант 30
Задан вещественный массив c[11] и вещественное g. Найти такой индекс i элемента массива, чтобы | ci – g | был минимален.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Что является адресом одномерного массива?
2.Как записываются индексы ячеек массива с помощью указателя?
3.Как находится сумма элементов одномерного массива?
4.Как находится произведение элементов одномерного массива?
5.Чем отличаются выражения *(p++) и (*p)++, если p – указатель?
6.Как поменять местами значения в ячейках с одинаковыми индексами двух одномерных массивов?
6.ПРОГРАММИРОВАНИЕ ОПЕРАЦИЙ
СМАТРИЦАМИ
Необходимо приобрести навыки программирования циклических вычислительных алгоритмов с использованием массивов на примерах операций с матрицами, также закрепить навыки оперирования с массивами и их элементами, а также применение указателей в среде языка С++.
Матрицей [A] называется упорядоченная система из n*m величин, расположенных в прямоугольной таблице из m строк и n столбцов. Ве-
личины a[i][j] (i = 0, 1,...,m; j = 0, 1,...,n) называются элементами мат-
рицы. Индекс i обозначает номер строки, j – номер столбца. Если m = n, то матрица называется квадратной порядка n. Следом матрицы [A] размером n*n называется сумма ее диагональных элементов. Любая матрица представляется в программе в виде двумерного массива величин. В языке С++ есть свои особенности в работе с массивами.
Напомним, что массив можно определить как совокупность величин одного типа, обозначаемых общим именем и размещенных в смежных ячейках памяти. Каждый массив необходимо объявить и по мере необходимости инициализировать.
Пример объявления для двумерного массива: int dvum [2][3].
Эта запись означает, что объявляется массив целого типа, содержащий 2 строки и 3 столбца.
50
