- •Глава 7. Алгоритмы. Алгоритмизация. Алгоритмические языки
- •7.1. Что такое алгоритм?
- •7.2. Что такое "Исполнитель алгоритма"?
- •7.3. Какими свойствами обладают алгоpитмы?
- •7.4. В какой форме записываются алгоритмы?
- •7.5. Что такое словесный способ записи алгоритмов?
- •7.6. Что такое графический способ записи алгоритмов?
- •7.7. Что такое псевдокод?
- •7.8. Как записываются алгоритмы на школьном алгоритмическом языке? Основные служебные слова
- •Команды школьного ая
- •Пример записи алгоритма на школьном ая
- •7.9. Что такое базовые алгоритмические структуры?
- •7.10. Какие циклы называют итерационными?
- •7.11. Что такое вложенные циклы?
- •Пример вложенных циклов для
- •Пример вложенных циклов пока
- •7.12. Чем отличается программный способ записи алгоритмов от других?
- •7.13.Что такое уровень языка программирования?
- •7.14. Какие у машинных языков достоинства и недостатки?
- •7.15. Что такое язык ассемблера?
- •7.16. В чем преимущества алгоритмических языков перед машинными?
- •7.17. Какие компоненты образуют алгоритмический язык?
- •7.18. Какие понятия используют алгоритмические языки?
- •7.19. Что такое стандартная функция?
- •7.20. Как записываются арифметические выражения?
- •Примеры записи арифметических выражений
- •7.21. Как записываются логические выражения?
- •Примеры записи логических выражений, истинных при выполнении указанных условий.
- •7.22. Упражнения
- •Ответы — Раздел 7. Алгоритмы. Алгоритмизация. Алгоритмические языки
- •7.5. Б) нет; в) да; г) да; д) да; е) нет;
- •7.7.Б)в)г)д)ж)з)и)к)
- •7.12.Б)в)г)д)
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) кц |
Решение
Ответ:S=8 |
г)S:=0 нц дляiот1до2 нц дляjот2до3 S:=S+i+j кц кц |
Решение
Ответ: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 нц дляjoт2до3 нц дляkoт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 кц | ||||||||||||||||||||||||||||||||||||
|
Решение
Ответ:S=14 |
Решение
Ответ: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(в градусах) наклона боковой грани к плоскости основания; найти объем и площадь полной поверхности пирамиды, используя формулы:
|
V=Socн· H/2; |
| |
|
где |
|
|
д)в усеченном конусе известны радиусы оснований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.![]()
























