- •Практикум на эвм
- •Казань – 2006
- •Разработка алгоритмов. Графическое изображение (блок-схемы) и словесная запись алгоритмов
- •II. Программирование и структурирование блок-схем
- •If b1 then if b2 then s1 else s2.
- •1: S1; if b then begin s2; goto 1 end и
- •If b1 then goto 2 else goto 3; 2: s; 3: if b2 then goto 2.
- •III. Небольшие программы
- •III.1. Последовательная структура управления
- •III.2. Условная структура управления
- •IV. Циклическая структура управления (без индексации)
- •IV.1. Однократные итерационные циклы
- •IV.2. Переход к кратным (вложенным) циклам
- •V. Управление потоками данных
- •Рекомендации по отработке основных приемов программирования
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] = UV (где 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. Остальные границы – прямые линии.