Информатика. Учебно-методическое пособие
.pdf
ВАРИАНТЫ ЗАДАНИЙ
Вариант 1
Даны x, y. Вычислить a |
|
x 1 |
|
|
|
3 |
|
y |
|
. |
|||
|
|
|
|
||||||||||
|
|
x2 |
|
|
|
y2 |
|
|
|||||
1 |
|
|
|
|
|||||||||
2 |
|
|
4 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||
Вариант 2
Даны x, z. Вычислить b x(arctg z e (x 3) ) .
Вариант 3
Даны x, y, z. Вычислить a |
|
|
|
3 e y 1 |
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|||||||
|
1 x2 |
|
|
y tg z |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||
Вариант 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Даны x, y. Вычислить b 1 |
|
y x |
|
|
y x 2 |
|
y x |
|
3 |
|
|||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
2 |
|
|
|
|
|
3 |
|
|
. |
|||||||||||
Вариант 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
||
Даны x, y. Вычислить a 1 |
y |
|
|
|
x2 4 |
|
. |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
e x 2 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
x |
2 4 |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Вариант 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Даны x, y, z. Вычислить b |
1 cos( y 2) |
. |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
x4 |
|
sin2 z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
21
Вариант 7
Даны x, y. Вычислить a |
|
|
|
|
|
|
x |
|
|
|
|
. |
|
|
|||||
y2 |
|
|
|
x2 |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
y |
3x3 |
|
|
|
|||||||||
Вариант 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дан z. Вычислить b |
|
|
2 |
|
z |
|
|
|
|
|
|
|
|
||||||
1 tg |
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|||||
|
|
2 |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Вариант 9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2cos |
|
|
|
|
|
|
||||||||
|
|
|
|
|
x |
6 |
|
|
|
||||||||||
Даны x, y. Вычислить |
a |
|
|
|
|
|
|
|
|
|
. |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
0,5 sin2 y |
|
|
||||||||||||
Вариант 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дан z. Вычислить b |
1 |
|
|
|
z2 |
|
|
|
. |
|
|
|
|
|
|
|
|
||
3 |
|
z2 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Вариант 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Даны x, y. Вычислить |
a |
|
|
1 sin |
2 (x y) |
|
x . |
||||||||||||
|
2 |
|
x |
|
2x |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
1 x2 y2 |
|
|
|||||||||||
Вариант 12
Дан z. Вычислить b cos2 arctg 1 .
z
22
Вариант 13
Даны x, y, z. Вычислить a ln y x x
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
. |
||
|
|
2 |
|
|
||
z |
x |
|
|
|
||
|
|
|
|
|
||
|
|
|||||
|
4 |
|
|
|||
|
|
|||||
Вариант 14
Дан x. Вычислить b x x3 x5 .
3! 5!
Вариант 15
Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и угол между найденным катетом и гипотенузой.
Вариант 16
Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.
Вариант 17
Вычислить период колебания маятника длиной l.
Вариант 18
Найти площадь кольца, внутренний радиус которого равен 20, а внешний – заданному числу R (R > 20).
Вариант 19
Найти площадь равнобочной трапеции с основаниями a и b (a>b) и углом при большем основании.
Вариант 20
Дано действительное число x. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычита-
23
ния, вычислить 2x4 – 3x3 + 4x2 – 5x+ 6. Разрешается использовать не более четырех умножений и четырех сложений и вычитаний.
Вариант 21
Даны действительные числа c, d, x1, x2. Вычислить
|
sin3 |
|
cx3 dx2 cd |
|
|
|
tg cx13 dx22 x1 |
|
|||
|
|
||||||||||
|
|
|
|
1 |
2 |
|
|
|
|
||
|
cx13 dx22 x1 2 |
3.14 |
|||||||||
|
|
|
|||||||||
Вариант 22 |
|
|
|
|
|
|
|
||||
Найти |
сумму |
членов арифметической прогрессии a, a + d, …, |
|||||||||
a + (n–1)d; |
|
|
a, d, n задать с клавиатуры компьютера. |
||||||||
Вариант 23
Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.
Вариант 24
Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.
Вариант 25
Дано действительное число a. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить a8 за три операции.
Вариант 26
Дано действительное число h. Вычислить
|
|
sin 8h |
|
17 |
|
|
|
|
|||
a |
|
|
|
|
. |
1 sin |
4h cos |
|
h2 18 2 |
||
24
Вариант 27
Дано действительное число h. Вычислить
b 1 |
3 |
|
. |
||
3 |
|
tg ah2 sin ah |
|
||
|
|
||||
Вариант 28
Дано действительное число h. Вычислить c ah2 sin bh bh3 cos ah .
Вариант 29
Вычислить |
|
|
1 |
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
||
1 |
|
|
|
|
|
|
|
|
|
|
|
|||
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
5 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
Вариант 30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дано действительное число x. Вычислить |
|
|
|
x |
|
|
|
. |
||||||
x2 |
|
|
|
2 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
x2 |
|
4 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
x2 |
8 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
x2 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Дайте определение арифметического выражения.
2.Каков порядок выполнения арифметического выражения? Перевести с С++ на математический язык: A/B*C, A/B/C. Не привлекая компьютер, рассчитать n:
int y=21,a=2,b=3,n; float c=4; n= -a++*b/a*a/c*b;
3. Как, каким образом можно вывести информацию на экран?
25
Число 1.414213562 было выведено на экран в виде xxxx1.4142. Как при этом должен выглядеть оператор вывода?
4. Каков диапазон представления констант различных типов? Сколько значащих десятичных цифр могут содержать константы разных типов?
6.Как организовать пробел, перевести строку при выводе информации?
7.Каков смысл во вводе чисел с клавиатуры при исполнении программы?
9.Как объявить комплексную переменную двойной точности?
10.Как ввести с клавиатуры комплексную переменнуюz = 1.414 + 2i?
4. ПРОГРАММИРОВАНИЕ УСЛОВНЫХ ОПЕРАТОРОВ И ОПЕРАТОРОВ ЦИКЛА
Необходимо изучить методы организации разветвляющихся и циклических вычислительных процессов, а также приобрести навыки программирования разветвляющихся и циклических вычислительных процессов при работе с одномерными массивами.
ОСНОВНЫЕ СВЕДЕНИЯ ОБ УСЛОВНЫХ ОПЕРАТОРАХ
Во многих случаях последовательность выполнения операторов программы не может быть однозначно определена до начала расчетов. Часто выбор следующего действия зависит от значения некоторого промежуточного результата. Подобный вычислительный процесс называется разветвляющимся.
Простейшим примером разветвляющегося процесса может служить вычисление такой функции:
0, если x 0; y x, если x 0.
В структурную схему алгоритма вычислений включается логический блок, обеспечивающий разветвление по двум возможным направлениям.
26
Да |
|
X <= 0 |
Нет |
||||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Y = 0 |
|
|
|
|
Y = X |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В тексте программы такому алгоритму соответствует условный оператор:
if(условие) оператор_1;
else
оператор_2;
Если условие (или выражение, записанное вместо него) истинно, то выполняется оператор_1, в противном случае выполняется оператор_2. В качестве любого оператора может быть записан составной оператор, т.е. блок. Конкретно для нашего случая оператор запишется так:
if(x <= 0)
y = 0;
else
y = x;
Часто, но не всегда, условие представляет собой два арифметических выражения, соединенных одним из знаков операции отношения:
a = = b – a тождественно равно b; a != b – a не равно b;
a > b – a больше b;
a >= b – a больше или равно b; a < b – a меньше b;
a <= b – a меньше или равно b.
Такие условия позволяют сравнивать два операнда. Результат проверки истинности условия – это логическая переменная, которая может принимать одно из двух значений (true – false, т. е. истина – ложь).
27
В языке С++ эти значения адекватны целым числам: истина – единица, ложь – нуль. Поэтому язык С++ разрешает использовать в качестве условий одиночные арифметические выражения (АВ) и даже константы. При этом нулевое значение АВ, независимо от типа – целое или вещественное, трактуется как логическое «ложь», а любое ненулевое – как «истина». Например, вычисление значения функции y = sin(x)/x может быть записано так:
x = ...; if(x)
y = sin(x)/x;
else
y = 1.0;
Полезно подумать, почему для вычисления использован условный оператор, а не простое присваивание вида y = sin(x)/x.
Допустимо записывать короткий вариант условного оператора – без ветви else. Такой оператор при ложности условия не выполняет никаких действий. Запишем фрагмент реализации разветвления с помощью короткого условного оператора. Это вполне возможно, несмотря на отсутствие у него ветви else:
y = 0; if(x > 0)
y = x;
Обратите внимание на характерный прием: сначала переменной y произвольно присваивается конкретное значение, а потом проверяется, угадали мы или нет. Если отношение x > 0 окажется истинным, то значение y перевычисляется.
Условия могут быть достаточно сложными логическими выражениями. В языке С++ есть три стандартные логические операции, обозначаемые следующими символами:
&& – операция И (AND); || – операция ИЛИ (OR); ! – операция НЕ (NOT);
28
Предупреждение. Логические операции И, ИЛИ не следует путать с одноименными побитовыми операциями, которые обозначаются одиночными символами & и | соответственно.
Приведем два примера их использования:
а > b && a < c a > 0 || b > 0 || !(a= =b)
Логическая операция И (&&) выполняется так. Последовательно слева направо вычисляются значения всех операндов. Как только будет найден нулевой операнд, дальнейшие вычисления прекращаются, и все логическое выражение получает значение «нуль» (т. е. «ложь»). Если ни один из операндов не оказался нулевым, логическое выражение получает значение «единица», которое трактуется как «истина».
Похожим образом выполняется логическая операция ИЛИ (||). Последовательное вычисление операндов досрочно прекратится, как только будет найден ненулевой операнд, в результате чего все логическое выражение считается истинным и получает значение «единица». Нулевым оно будет лишь тогда, когда все операнды также будут иметь нулевое значение.
Вычисление выражений, содержащих только логические операции, прекращается, как только удается однозначно определить результат.
Операция логического отрицания "!" может стоять перед целой (или булевой) переменной, изменяя тем самым ее логическое значение на противоположное, т. е. ненулевое значение – на нуль, а нуль – на единицу. Результат выполнения операции имеет тип int.
Например: int k = 0;
if(!k)
{
........ /* Выполняемые действия */
}
Наиболее часто логические выражения играют роль условий, проверяемых при разветвлении вычислительного процесса или его прекращении:
if(a>b || c>d || e>f) .....
29
СТРУКТУРНАЯ СХЕМА ЦИКЛИЧЕСКОГО АЛГОРИТМА
В подавляющем большинстве программ встречаются группы операторов, вычисление по которым многократно повторяется. Такие повторяемые участки называются циклами, а сам вычислительный процесс – циклическим. Обычно цикл выполняется для ряда последовательных значений некоторой переменной, которая называется параметром (реже счетчиком) цикла. В зависимости от текущего значения параметра цикла, во-первых, могут изменяться численные значения обрабатываемых в цикле переменных и, во-вторых, в определенный момент цикл заканчивается.
Для записи циклических алгоритмов в языке Си существует три различных оператора цикла. Каждый их них более удобен в определенной ситуации, хотя, в принципе, они практически взаимозаменяемы.
Оператор цикла for
Применение цикла for представляется более предпочтительным в случае, когда исходно известны начальное значение и закон изменения параметра цикла:
for(выражение_1; выражение_2; выражение_3)
{
тело цикла
}
В этой записи:
выражение_1 – задает начальное значение параметра цикла; выражение_2 – условие продолжения цикла; выражение_3 – действие, выполняемое чаще всего над параметром
цикла после каждой итерации тела цикла перед очередной проверкой условия продолжения.
Алгоритм суммирования членов ряда S = 1 + 1/2 + 1/3 + 1/4 +
9
+ ... + 1/9 = 1 / k может быть записан на языке С++ очень просто:
k 1
double s = 0.; int k; for(k = 1; k <= 9; k++)
s += 1./k;
30
