Книги-online
Глава 7 Алгоритмы. Алгоритмизация. Алгоритмические языки
7.22. Упражнения
7.1. Запишите по правилам алгоритмического языка выражения:
a) |
|
e) |
|
б) |
|
ж) |
|
в) |
|
з) |
|
г) |
|
и) |
|
д) |
|
к) |
|
[ Ответ ]
7.2. Запишите в обычной математической форме арифметические
выражения:
а) a / b ** 2;
б) a+b/c+1;
в) 1/a*b/c;
г) a**b**c/2;
д) (a**b)**c/2;
е) a/b/c/d*p*q;
ж) x**y**z/a/b;
з) 4/3*3.14*r**3;
и) b/sqrt(a*a+b);
к) d*c/2/R+a**3; |
л) 5*arctg(x)-arctg(y)/4;
м) lg(u*(1/3)+sqrt(v)+z);
н) ln(y*(-sqrt(abs(x))));
о) abs(x**(y/x)-(y/x)**(1/3));
п) sqrt((x1-x2)**2+(y1-y2)**2);
р) exp(abs(x-y))*(tg(z)**2+1)**x;
c) lg(sqrt(exp(x-y))+x**abs(y)+z);
т) sqrt(exp(a*x)*sin(x)**n)/cos(x)**2;
у) sqrt(sin(arctg(u))**2+abs(cos(v)));
ф) abs(cos(x)+cos(y))**(1+sin(y)**2); |
[ Ответ ]
7.3. Вычислите значения арифметических выражений при x=1:
а) abs(x-3)/ln(exp(3))*2/lg(10000);
Решение: abs(1-3)=2; ln(exp(3))=3; lg(10000)=4; 2/3*2/4=0.33;
б) sign(sqrt(sqrt(x+15)))*2**2**2;
в) int(-2.1)*int(-2.9)/int(2.9)+x;
г) -sqrt(x+3)**2**(sign(x+0.5)*3)+tg(0);
д) lg(x)+cos(x**2-1)*sqrt(x+8)-div(2,5);
е) sign(x-2)*sqrt(int(4.3))/abs(min(2,-1));
ж) div(10,x+2)*mod(10,x+6)/max(10,x)*mod(2,5).
[ Ответ ]
7.4. Запишите арифметические выражения, значениями которых являются:
а) площадь треугольника со сторонами a, b, c (a, b, c>0)
и полупериметром p;
Ответ: sqrt(p*(p-a)*(p-b)*(p-c));
б) среднее арифметическое и среднее геометрическое чисел a, b, c,
d;
в) расстояние от точки с координатами (x,y) до точки (0,0);
г) синус от x градусов;
д) площадь поверхности куба (длина ребра равна а);
е) радиус описанной сферы куба (длина ребра равна а);
ж) координаты точки пересечения двух прямых, заданных уравнениями
a1x+b1y+c1=0 и a2x+b2y+c2=0
(прямые не параллельны).
[ Ответ ]
7.5. Вычислите значения логических выражений:
а) x*x+y*y<=9 при x=1, y=-2
Ответ: да;
б) b*b-4*a*c<0 при a=2, b=1, c=-2;
в) (a>=1) и (a<=2) при a=1.5;
г) (a<1) или (a>1.2) при a=1.5;
д) (mod(a,7)=1) и (div(a,7)=1) при a=8;
е) не ((a>b) и (a<9) или (а*а=4)) при
a=5, b=4.
[ Ответ ]
7.6. Запишите логические выражения, истинные только при выполнении указанных
условий:
а) x принадлежит отрезку [a, b]
Ответ: (x>=a) и (x<=b);
б) x лежит вне отрезка [a, b];
в) x принадлежит отрезку [a, b] или отрезку [c, d];
г) x лежит вне отрезков [a, b] и [c, d];
д) целое k является нечетным числом;
е) целое k является трехзначным числом, кратным пяти;
ж) элемент ai,j двумерного массива находится на пересечении
нечетной строки и четного столбца;
з) прямые a1x+b1y+c1=0 и a2x+b2y+c2=0
параллельны;
и) из чисел a, b, c меньшим является с, а большим b;
к) среди чисел a, b, c, d есть взаимно противоположные;
л) среди целых чисел a, b, c есть хотя бы два четных;
м) из отрезков с длинами a, b, c можно построить треугольник;
н) треугольники со сторонами a1, b1, c1
и a2, b2, c2 подобны;
о) точка с координатами (x,y) принадлежит внутренней области треугольника
с вершинами A(0,5), B(5,0) и C(1,0);
п) точка с координатами (x,y) принадлежит области, внешней по
отношению к треугольнику с вершинами A(0,5), B(1,0) и C(5,0);
р) четырехугольник со сторонами a, b, c и d является ромбом.
[ Ответ ]
7.7. Начертите на плоскости (x,y) область, в которой и только
в которой истинно указанное выражение. Границу, не принадлежащую этой области,
изобразите пунктиром.
а) (x<=0) и (y>=0)
Ответ:
|
е) ((x-2)**2+y*y<=4) и (y>x/2)
Ответ:
|
б) (x>=0) или (y<=0)
в) x+y>=0
г) (x+y>0) и (y<0)
д) abs(x)+abs(y)>=1
|
ж) (x*x+y*y<1) и (y>x*x);
з) (y>=x) и (y+x>=0) и (y<=1);
и) (abs(x)<=1) и (y<2);
к) (x**2+y**2<4) и (x**2+y**2>1);
|
[ Ответ ]
7.8. Запишите логическое выражение, которое принимает значение "истина"
тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной
области.
[ Ответ ]
7.9. Пусть a=3, b=5, c=7. Какие значения будут
иметь эти переменные в результате выполнения последовательности операторов:
а) a:=a+1; b:=a+b; c:=a+b; a:=sqrt(a)
Решение: a=3+1=4, b=4+5=9, c=4+9=13,
a= {корень квадратный из} 4 =2.
Ответ: а=2, b=9, c=13;
б) с:=a*b+2; b:=b+1; a:=c-b**2; b:=b*a;
в) b:=b+a; c:=c+b; b:=1/b*c;
г) p:=c; c:=b; b:=a; a:=p; c:=a*b*c*p;
д) c:=a**(b-3); b:=b-3; a:=(c+1)/2*b; c:=(a+b)*a;
е) x:=a; a:=b; b:=c; c:=x; a:=sqrt(a+b+c+x-2);
ж) b:=(a+c)**2; a:=lg(b**2)**2; c:=c*a*b.
[ Ответ ]
7.10. Задайте с помощью операторов присваивания следующие действия:
а) массив X=(x1, x2) преобразовать по правилу:
в качестве x1 взять сумму, а в качестве х2 произведение
исходных компонент;
Решение: c:=x[1]; x[1]:=x[1]+x[2]; x[2]:=c*x[2]
б) поменять местами значения элементов массива X=(x1, x2);
в) в массиве A(N) компоненту с номером i (1<i<N)
заменить полусуммой исходных соседних с нею компонент, соседнюю справа компоненту
заменить на нуль, а соседнюю слева компоненту увеличить на 0.5;
г) u = max(x, y, z) + min(x-z, y+z, y, z);
[ Ответ ]
7.11. Задайте с помощью команд если или выбор вычисления
по формулам:
a) |
|
б) |
|
в) |
где
|
г) |
|
д) |
|
е) |
|
ж) |
|
если точка лежит внутри круга радиусом r (r>0) с центром в точке (a,b)
в противном случае |
[ Ответ ]
7.12. Постройте графики функций y(x), заданных командами
если:
а) если x<=-1
то y:=1/x**2
иначе
если x<=2
то y:=x*x
иначе y:=4
все
все |
в) если x<-0.5
то y:=1/abs(x)
иначе
если x<1
то y:=2
иначе y:=1/(x-0.5)
все
все |
Решение
|
г) если x<0
то y:=1
иначе
если x<3.14
то y:=cos(x)
иначе y:=-1
все
все |
б) если x<-5
то y:=-5
иначе
если x<0
то y:=x
иначе
если x<3
то y:=2*x
иначе y:=6
все
все
все |
д) если abs(x)>2
то y:=x*x
иначе
если x<0
то y:=-2*x
иначе
если x>=1
то y:=4
иначе y:=4*x*x
все
все
все |
[ Ответ ]
7.13. Определите значение целочисленной переменной S после выполнения
операторов:
а) S:=128
нц для i от 1 до 4
S:=div(S,2)
кц
|
Решение
i |
S |
|
128 |
1 |
128/2=64 |
2 |
64/2=32 |
3 |
32/2=16 |
4 |
16/2=8 |
Ответ: S=8 |
г) S:=0
нц для i от 1 до 2
нц для j от 2 до 3
S:=S+i+j
кц
кц |
Решение
i |
j |
S |
|
|
0 |
1 |
2 |
0+1+2=3 |
|
3 |
3+1+3=7 |
2 |
2 |
7+2+2=11 |
|
3 |
11+2+3=16 |
Ответ: S=16 |
б) S:=1; a:=1
нц для i от 1 до 3
S:=S+i*(i+1)*a
a:=a+2
кц |
д) нц для i от 1 до 3
S:=0
нц для j от 2 до 3
S:=S+i+j
кц
кц |
в) S:=1; a:=1
нц для i от 1 до 3
S := S+i
нц для j oт 2 до 3
S := S+j
кц
кц |
е) нц для i от 1 до 2
S := 0
нц для j oт 2 до 3
нц для k oт 1 до 2
S := S+i+j+k
кц
кц
кц |
[ Ответ ]
7.14. Определите значение переменной S после выполнения операторов:
а) i:=0; S:=0
нц пока i<3
i:=i+1;
S:=S+i*i
кц |
г) S:=0; N:=125
нц пока N>0
S:=S+mod(N,10) | S сумма цифр
N:=div(N,10) | числа N
кц |
Решение
Условие i < 3 |
i |
S |
|
0 |
0 |
0 < 3? да |
1 |
0+12=1 |
1 < 3? да |
2 |
1+22=5 |
2 < 3? да |
3 |
5+32=14 |
3 < 3? нет(кц) |
|
|
Ответ: S=14 |
Решение
Условие N > 0 |
S |
N |
|
0 |
125 |
125 > 0? да |
0+5=5 |
12 |
12 > 0? да |
5+2=7 |
1 |
1 > 0? да |
7+1=8 |
0 |
0 > 0? нет (кц) |
|
|
Ответ: S=8 |
б) S:=0; i:=1
нц пока i>1
S:=S+1/i
i:=i-1
кц |
д) а:=1; b:=1; S:=0;
нц пока a<=5
a:=a+b; b:=b+a;
S:=S+a+b
кц |
в) S:=0; i:=1; j:=5
нц пока i<j
S:=S+i*j
i:=i+1
j:=j-1
кц |
е) a:=1; b:=1
нц пока a+b<10
a:=a+1
b:=b+a
кц
S:=a+b |
[ Ответ ]
7.15. Составьте алгоритмы решения задач линейной структуры
(условия этих задач заимствованы из учебного пособия В.М. Заварыкина,
В.Г. Житомирского и М.П. Лапчика "Основы информатики и вычислительной
техники", 1989):
а) в треугольнике известны три стороны a, b и c;
найти (в градусах) углы этого треугольника, используя формулы:
|
|
С=180o-(А+В). |
Пояснение. Обратите внимание на то, что стандартные тригонометрические
функции arccos и arcsin возвращают вычисленное значение
в радианной мере.
Решение:
алг Углы треугольника(арг вещ a,b,c, рез вещ UgolA,UgolB,UgolC)
нач вещ RadGr,UgolARad
| RadGr коэф. перевода угла из радианной меры в градусную
| UgolARad угол A (в радианах)
RadGr:=180/3.14
UgolARad:=ArcCos((b*b+c*c-a*a)/(2*b*c))
UgolA:=UgolARad*RadGr
UgolB:=ArcSin(b*sin(UgolARad)/a)*RadGr
UgolC:=180-(UgolA+UgolB)
кон
б) в треугольнике известны две стороны a, b и угол C
(в радианах) между ними; найти сторону c, углы A и B
(в радианах) и площадь треугольника, используя формулы:
с2 = a2 + b2 - 2ab cos C.
Пояснение. Сначала нужно найти сторону c , а затем остальные
требуемые значения;
в) в треугольнике известны три стороны a, b и c;
найти радиус описанной окружности и угол A (в градусах), используя
формулы:
где
г) в правильной треугольной пирамиде известны
сторона основания a и угол A (в градусах) наклона боковой
грани к плоскости основания; найти объем и площадь полной поверхности
пирамиды, используя формулы:
д) в усеченном конусе известны радиусы оснований R и r
и угол A (в радианах) наклона образующей к поверхности большего
основания; найти объем и площадь боковой поверхности конуса, используя формулы:
e) в правильной четырехугольной пирамиде сторона основания равна
a , а боковое ребро наклонено к плоскости основания
под углом A ; найти объем и площадь полной поверхности пирамиды и
площадь сечения, проходящего через вершину пирамиды и диагональ основания
d ; использовать формулы:
[ Ответ ]
7.16. Составьте алгоритм решения задач развлетвляющейся структуры:
а) определить, является ли треугольник с заданными сторонами
a, b, c равнобедренным;
Решение:
алг Треугольник(арг вещ a,b,c, рез лог Otvet)
дано | a>0, b>0, c>0, a+b>c, a+c>b, b+c>a
надо | Otvet = да, если треугольник равнобедренный
| Otvet = нет, если треугольник не равноведренный
нач
если (a=b) или (a=c) или (b=c)
то Otvet:= да
иначе Otvet:= нет
все
кон
б) определить количество положительных чисел среди заданных
чисел a, b и c;
в) меньшее из двух заданных неравных чисел увеличить вдвое,
а большее оставить без изменения;
г) числа a и b катеты одного прямоугольного
треугольника, а c и d другого; определить, являются ли
эти треугольники подобными;
д) даны три точки на плоскости; определить, какая из них ближе к началу координат;
е) определить, принадлежит ли заданная точка (x, y) плоской
фигуре, являющейся кольцом с центром в начале координат, с внутренним
радиусом r1 и внешним радиусом r2 ;
ж) упорядочить по возрастанию последовательность трех чисел
a, b и c.
[ Ответ ]