Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Razdel_13_Osn_alg_i_i_progr_ya_11_05_10

.pdf
Скачиваний:
22
Добавлен:
09.04.2015
Размер:
1.98 Mб
Скачать

Часть 13. Основы алгоритмизации и программирования

в) если x < 0

 

 

г) выбор

 

 

то

z:=lg(-x)

при с=0 : z:=1

иначе z:=sqrt(x+1)

при с=1 : z:=x

все

 

при с=2 : z:=3*x*x - 1/2

если z>=0

 

при с=3 : z:=x*x*x - 3*x/2

то

F:=2*z+1

иначе z:=2*x**4 - 3*x/2

иначе F:=sin(z)

все

 

все

 

 

 

д) если abs(x)+abs(y) < r

 

 

е) если x>1

 

 

 

то

z:=sqrt(x*x+y*y) то если y>1

иначе z:=max(abs(x), abs(y))

то v:=x+y

все

 

 

 

иначе v:=x-y

 

 

все

 

 

 

ж) если (x-a)**2 +(y-b)**2 < r*r

 

иначе если y>0

 

 

то

z:=abs(x)+abs(y)

 

 

то v:=y-x

 

 

иначе z:=x+y иначе v:=-x-y

все

все

все

12. б)

в)

г)

д)

71

Часть 13. Основы алгоритмизации и программирования

13. б) 81;

в) 21;

д) 11;

е) 44.

14. б) 0;

в) 13;

д) 52;

е) 14.

15.

б) алг Треугольник1(арг вещ a,b,UgolC, рез вещ c, UgolA, UgolB, S)

нач

ввод a, b, UgolC c:=sqrt(a*a+b*b-2*a*b*cos(UgolC)) UgolA:=arcsin(a*sin(UgolC)/c) UgolB:=arcsin(b*sin(UgolC)/c) S:=b*c*sin(UgolA)/2

вывод c, UgolA, UgolB, S

кон

в) алг Треугольник2(арг вещ a,b,c, рез вещ Radius,UgolA)

нач вещ p

ввод a,b,c p:=(a+b+c)/2

UgolA:=2*arctg(sqrt((p-b)*(p-c)/(p*(p- a))))*180/3.14

Radius:=a*b*c/(4*sqrt(p*(p-a)*(p-b)*(p-c))) вывод Radius, UgolA

кон

г) алг Объем и Площадь Пирамиды(арг вещ a,UgolAGrad,

рез вещ V, S)

нач вещ H,SBase,UgolARad

72

Часть 13. Основы алгоритмизации и программирования

| H - высота пирамиды; SBase - площадь ос-

нования

ввод a,UgolAGrad

UgolARad:=UgolAGrad*3.14/180

SBase:=a*a*sqrt(3)/4

H:=a*sqrt(3)/6*tg(UgolARad)

V:=SBase*H/3

S:=SBase*(1+1/cos(UgolARad))

вывод V, S

кон

д) алг Объем и Площадь конуса(арг вещ

RBig,RSmall,Ugol, рез вещ V, S)

нач вещ H,L

ввод RBig,RSmall,Ugol H:=(RBig-RSmall)*tg(Ugol) L:=(RBig-RadSmall)/cos(Ugol) V:=1/3*3.14*H*(RSmall**2 + RBig**2 +

RSmall*RBig)

S:=3.14*L*(RBig+RSmall)

вывод V, S

кон

е) алг Параметры пирамиды (арг вещ a,UgolA, рез вещ

V, S, Sесtion)

нач вещ H

ввод a,UgolA

H:=a*sqrt(2)/2*tg(UgolA)

V:=1/3*a*a*H

Sесtion:=a*H*sqrt(2)/2

73

Часть 13. Основы алгоритмизации и программирования

S:=a*a*(1+sqrt(2*tg(UgolA)**2+1))

вывод V, S, Sесtion

кон

16.

б) алг Количество положительных(арг вещ a,b,c, рез

цел k)

надо | k - количество положительных чисел среди чисел a,b,c

нач

 

 

ввод

a,b,c;

k:=0

если

a>0

 

то

k:=k+1

 

все

 

 

если

b>0

 

то

k:=k+1

 

все

 

 

если

c>0

 

то

k:=k+1

 

все

 

 

вывод k

 

кон

 

 

в) алг Преобразование(арг рез вещ a,b)

надо

|меньшее из a,b увеличено вдвое

нач

 

 

ввод

a,b

 

если

a>b

 

то

b:=b*2

 

74

Часть 13. Основы алгоритмизации и программирования

иначе a:=a*2

все

вывод a,b

кон

г) алг Подобие треугольников(арг вещ a,b,c,d, рез

лог Otvet)

дано | a,b и c,d - катеты двух треугольников

надо | Otvet=да, если треугольники подобны

нач

ввод a,b,c,d

если (a*d=с*b) или (a*c=d*b)

то Otvet:=да иначе Otvet:=нет

все

вывод Otvet

кон

д) алг Точки(арг вещ xA,yA,xB,yB,xC,yC, рез лит

Otvet)

нач вещ DistA,DistB,DistC

ввод xA,yA,xB,yB,xC,yC DistA:=sqrt(xA**2 + yA**2) DistB:=sqrt(xB**2 + yB**2) DistC:=sqrt(xC**2 + yC**2)

если (DistA < DistB) и (DistA < DistC)

то Otvet:="Это точка А"

иначе если DistB < DistC

то Otvet:="Это точка B"

иначе Otvet:="Это точка C"

75

Часть 13. Основы алгоритмизации и программирования

все

все

вывод Otvet

кон

е) алг Принадлежность кольцу(арг вещ x,y,r1,r2, рез

лог Otvet)

дано | r2>r1

надо | Otvet=да, если точка (x,y) принадлежит

кольцу

| c внутренним радиусом r1 и внешним радиу-

сом r2

нач

ввод x,y,r1,r2

если (x*x+y*y<=r2*r2) и (x*x+y*y>=r1*r1)

то Otvet:=да иначе Otvet:=нет

все

вывод Otvet

кон

ж) алг Упорядочение по возрастанию(арг рез вещ a, b,

c)

надо | числа a, b, c упорядочены по возраста-

нию

 

 

 

нач вещ t

 

 

ввод

a,

b, c

 

если

a>b

 

 

то

t:=a; a:=b; b:=t

| меняются местами

значения

a и

b

 

76

Часть 13. Основы алгоритмизации и программирования

все

 

 

 

 

если

a>c

 

 

 

то

t:=a;

a:=c;

c:=t

| меняются местами

значения

a и c

 

 

 

все

 

 

 

 

если

b>c

 

 

 

то

t:=b;

b:=c;

c:=t

| меняются местами

значения

b и c

 

 

 

все

 

 

 

 

вывод a, b, c

кон

77

Часть 13. Основы алгоритмизации и программирования

4 Алгоритмы линейной и разветвляющейся структуры

Пример 1. Простейший алгоритм, запрашивающий имя и затем привет-

ствующий его обладателя.

Тест

Данные

Имя = "Тимур"

Результат

"Привет, Тимур!"

Школьный АЯ

алг Знакомство (арг лит Имя, резлит t)

нач вывод "Как тебя зовут ?"

ввод Имя

t := "Привет, " + Имя + "!" | "+" - операция сцепки

вывод t

кон

Turbo Pascal

Program Hello;

Var Name: String; {Описание переменной Name строко-

вого типа}

BEGIN

Write('Как тебя зовут ? '); {Вывод на экран текста

вопроса}

 

ReadLn(Name);

{Ввод c клавиатуры име-

ни}

 

78

Часть 13. Основы алгоритмизации и программирования

WriteLn('Привет, ', Name, '!'); {Вывод на экран приветствия}

ReadLn

END.

Здесь последний оператор ReadLn позволяет видеть на экране результаты работы программы, пока не будет нажата клавиша <Enter>.

Результаты работы Pascal-программы

Как тебя зовут ? Тимур

<Enter>

Привет, Тимур !

QBasic

CLS

INPUT "Как тебя зовут ? ", Name$

PRINT "Привет, "; Name$; "!"

END

Пример 2. Определить объём и площадь боковой поверхности цилиндра с заданными радиусом основания R и высотой H.

 

 

 

Тест

 

 

 

 

 

 

 

 

Данные

 

 

Результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R = 1

 

H = 1

 

 

V = 3.14

 

S = 6.28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Школьный АЯ

алг Цилиндр (арг вещ R, H, рез вещ V, S)

нач вещ Pi

Pi := 3.14

79

Часть 13. Основы алгоритмизации и программирования

V := Pi * R**2 * H

S := 2 * Pi * R * H

кон

Turbo Pascal

Program Cylinder;

Uses Crt; {Подключение библиотеки Crt}

Var

R, {радиус основания цилиндра}

H, {высота цилиндра }

V, {объем цилиндра }

S: Real; {площадь боковой поверхности цилиндра}

BEGIN

ClrScr; {Вызов из библиотеки Crt процедуры очистки экрана}

Write('Введите высоту цилиндра : '); ReadLn(H);

Write('Введите радиус основания : '); ReadLn(R);

V := Pi * R * R * H;

S := 2 * Pi * R * H; WriteLn;

WriteLn('Объем цилиндра = ', V : 5 : 2); {Здесь 5 -

общее

количество позиций, занимаемых переменной V при выводе,

а 2 - количество позиций в дробной части значе-

ния V}

WriteLn('Площадь боковой поверхности = ', S : 5 :

2); ReadLn

END.

80

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]