
- •Разработка алгоритмов. Графическое изображение (блок-схемы) и словесная запись алгоритмов
- •II. Программирование и структурирование блок-схем
- •III. Небольшие программы
- •III.1. Последовательная структура управления
- •III.2. Условная структура управления
- •IV. Циклическая структура управления (без индексации)
- •IV.1. Однократные итерационные циклы
- •Рекомендации по отработке основных приемов программирования
- •Последовательная структура управления:
- •Условная структура управления:
- •Циклическая структура управления (без индексации).
III. Небольшие программы
Для каждого из заданий этого раздела требуется написать программу вычисления некоторой величины по заданной формуле. Программу необходимо соответствующим образом оформить: предусмотреть определение констант и описание переменных; исходные данные определить вводом; результаты напечатать.
III.1. Последовательная структура управления
1. (Вычисления по заданным формулам.)
а)
Вычислить объем шара радиуса R
по формуле
.
б)
Вычислить силу притяжения между телами
массы m1
и m2,
находящимися на расстоянии R
друг от друга, по формуле
,
где = 6.67340·10-8
см2/г·сек2
– гравитационная
постоянная.
2. (Экономия переменных.) Вычислить:
a)
;
б)
.
Указание. Новых переменных, отличных от x, y, z, u, не вводить. Использовать ограниченные арифметические выражения, содержащие не более одной операции.
3. (Сохранение значений переменных.) Вычислить:
а) y = (x3–15.3x2)/(2.3–x)+3.4x3–x2;
б) y = (x5+5.7x3)/(x2–7.5)+4.2x5–8.9x2.
4. (Оптимизация вычислений.) Вычислить:
а) y = x59; б) u = v71w103.
Указания. а) x59 = x32x16x8x2x (здесь 9 умножений, если запоминать промежуточные результаты). С другой стороны, x59 = x3((((x3)2x)2)2)2 (здесь 8 умножений – это лучшее, что можно придумать). б) Придумайте какой-нибудь быстрый способ вычисления u.
5. (Неявная постановка.) Вычислить:
а) точку пересечения прямых ax + by + c = 0 и dx + ey + f = 0 на плоскости;
б) коэффициенты произведения многочленов ax2 + bx + c и gx + h.
6. (Схема Горнера.) Вычислить y = x5+3.4x4+2.8x3–5.7x2+x–1.1 по схеме y = ((((x+3.4)x+2.8)x–5.7)x+1)x–1.1.
7. (Поиск закономерностей, или "развернутый цикл".) Вычислить:
а) у = (x+4)+(x+4)(x+3)+ ... +(x+4)(x+3)(x+2)(x+1)x;
б) y = (x+4)(1+(x+3)(1+(x+2)(1+(x+1))));
в) y = 1(1+x)(1+x+x2)(1+x+x2+x3)(1+x+x2+x3+x4);
г) y = 12(12+22)(12+22+32)(12+22+32+42)(12+22+32+42+52).
8. (Приближенные формулы.) Вычислить:
а)
;
б)
;
в)
;
г)
;
д)
;
е)
.
Пояснение.
"Двухэтажная" запись
обозначает "многоэтажную" цепную
дробь
.
9. (Использование стандартных функций.) Вычислить:
а)
;
в)
;
б)
;
г)
.
Указание. Используйте следующие (предопределенные) стандартные арифметические функции: abs(x), sin(x), cos(x), exp(x), ln(x), sqrt(x) и arctan(x). Функций ax и loga x (ae) нет, но их можно выразить через exp(x) и ln(x).
III.2. Условная структура управления
N.B. Стандартную арифметическую функцию abs(x) для вычисления |x| в этом подразделе не использовать!
10. (Отработка техники.) Вычислить:
a)
;
б)
;
в)
;
г)
;
д)
;
е)
;
ж)
,
.
11. (Куча, или разное.)
а) Вычислить количество неотрицательных чисел среди x, y и z.
б) Вычислить число натуральных корней уравнения mx5 + nx = 15, где m, n – целые числа. (Указание: корнями могут быть только делители числа 15, т.е. 1, 3, ±5, ±15).
в)
Переменной z
присвоить значение true,
если интервал [x, y] = U
V
(где
U = [a, b],
V
=
[c, d]
– заданные интервалы) не пуст, и
значение false
– в противном
случае. (Указание: x=max{a, c},
y=min{b, d};
[x, y]
.)
г) Среди чисел k, l, т два одинаковых, а третье отлично от них. Переменной n присвоить значение числа, отличного от двух одинаковых.
д) Вычислить z – число действительных корней уравнения ax2 + bx + c = 0 (a 0). Если z = 0, то вычислить сами корни x1 и x2 ; в противном случае положить x1 = x2 =0.
12. (Кусочно-заданные функции.) Вычислить:
a)
б)
в)
г)
д)
,
где
13. (Принадлежность области.) Переменной b присвоить значение true, если точка плоскости (х, y) принадлежит заданной (замкнутой) области D, и значение false – в противном случае. Варианты задания:
а) разрешается использовать булевские выражения общего вида;
б)
разрешается
использовать условные операторы, в
состав которых входят только ограниченные
булевские выражения
(отношения
арифметических,
имеющие вид А°B
, где °
обозначает символ
отношения ,
,
,
> или
,
а A,
В
–
арифметические выражения).
Варианты областей даны на рис. 3. Область D везде заштрихована. В вариантах к) – м) в D входят и линии, показанные жирно.
15. (Попадание в треугольник.) Установить, принадлежит ли заданная точка плоскости Е(x, у) замкнутой треугольной области с вершинами А(х1, y1), B(х2, y2), C(х3, y3).
Указание: E ABC |ABC| = |ABE| + |BCE| + |ACE|. Здесь |ABC| – площадь треугольника ABC. Отметим, что |ABC| = |x1(y2–y3) + x2(y3–y1) + x3(y1–y2)| / 2.
Рис. 3.
Уравнения границ: 1. x2+y2 = 1; 2. y = x2; 3. x2+(y–1)2 = 1; 4. y = 4x2; 5. y = –4x2; 6. y = –x2. Остальные границы – прямые линии.