Const
pi=3.14159265359;
function Angle(x:real):real;
{ возвращает угол в градусах по значению его синуса }
begin
Angle:=ArcTan(x/Sqrt(1-x*x))*180/pi;
end;
var
a,b,c,h,alpha,beta,gamma,S,P:real;
begin
Writeln('Введите a,b,h: '); Read(a,b,h);
c:=Sqrt(a*a-h*h)+Sqrt(b*b-h*h);
P:=a+b+c;
S:=h*c/2;
alpha:=Angle(h/b);
beta:=Angle(h/a);
gamma:=180-alpha-beta;
Writeln('c=',c:0:5);
Writeln('alpha=',alpha:0:3,', beta=',beta:0:3,', gamma=',gamma:0:3);
Writeln('P=',P:0:5,', S=',S:0:5)
end.
<u>Примеры</u>
Введите a,b,h:
5 5 3
c=8.00000
alpha=36.870, beta=36.870, gamma=106.260
P=18.00000, S=12.00000
Введите a,b,h:
5 5 4
c=6.00000
alpha=53.130, beta=53.130, gamma=73.740
P=16.00000, S=12.00000
mas = float(input('Введите вашу массу в кг: ')) #ввод массы
mas_on_Moon = mas * 0.165 #умножение на 16.5 процента
print("Ваш вес на Луне составляет " + str(mas_on_Moon) + " кг")
for i in range(15):
mas += 1 # увеличивание массы на 1
mas_on_Moon = mas * 0.165
print(str(i+1) + ") Масса на Земле = " + str(mas) + " кг | Масса на Луне = " + str(mas_on_Moon) + " кг")
1. Из-за ошибок программа не запустится.
- в блоке описания переменных отсутствует var
- clrscr не будет работать без подключенного модуля CRT. Да она и не особо нужна для решения этой задачи. Как и не нужен readln в предпоследней строке.
2. После устранения недостатков получим, что первый цикл:
Заполняет массив сл. значениями и выводит его на экран в одной строке.
for i:=1 to 10 do
begin
a[i]:=random(21)-10;
write(a[i]);
end;
3. Следующие строки кода делают реверс 1-ой половины массива:
//надо, чтобы a[1] стало a[5], a[5] стало a[1], a[2] cтало a[4], a[4] стало a[2],
//элемент a[3] не трогаем, так как он находится посередине и его не с кем менять
n:=0; //вспомогательная переменная, которая будет увеличиваться на 1 при //каждом выполнении тела цикла
for i:=1 to 2 do
begin
k:=a[i]; // в переменной k запоминаем значение a[i]
a[i]:=a[5-n]; // теперь a[i] = a[5-n]
a[5-n]:=k; // А элемент a[5-n] = бывшему значению a[i], которое сохранили в k
n:=n+1; //Для работы со следующей парой элементов увеличиваем n на 1
end;
4. За реверс второй половины отвечает этот код:
n:=0;
for i:=6 to 8 do
begin
k:=a[i];
a[i]:=a[10-n];
a[10-n]:=k;
n:=n+1;
end;
5. Ну и последний цикл выводит получившийся массив на экран:
for i:=1 to 10 do write(a[i]);