3. Результатом работы будет напечатанный текст по центру строки.
Задания 2
Написать функцию для вычисления логарифма с произвольным основанием.
Эта функция относится к расходящемуся типу алгоритма процедур.
Программа
Program Logarithm;
Var arg,osn:real;
Function Log(arg,osn:real):real;
Begin log:=0;
If (osn>0)and(osn<>1)and(arg>0) then Begin Log:=ln(arg)/ln(osn);end
else Begin Writeln(' Errpr calculate Logarithm! Don`t correctly introduce facts!');
end;End;
Write('logarithmic foundation: ');readln(osn);
Write('argument: ');readln(arg);
Writeln('log= ',Log(arg,osn));
Write(' EXIT prees on Enter: ');Readln;;
End.
1. Запишите функцию Log в глобальный раздел описания своей программы.
2. Обращаясь к ней, вы должны указать с начала аргумент а затем основания.
3. Результатом работы будет Log(arg по osn) – вещ. число.
Задания 3
Написать функцию, которая вычисляет S треугольника по формуле Герона (по 4 длинам сторон).
Потому, что я не нашёл формулу Герона, которая вычисляет S треугольника по 4 длинам сторон, то написал функцию, которая находит по формуле Герона S треугольника по 3 длинам сторон и она относится к последовательному и расходящемуся типам алгоритмов процедур.
Программа
Program Theorem_Gerona_3;
Var a,b,c:real;
Function Geron3(a,b,c:real):real;
Var p:real;
If (a<0)or(b<0)or(c<0) then Writeln(' Errpr calculate S triangle! Don`t correctly introduce facts!')
else Begin p:=(a+b+c)/2;Geron3:=sqrt(p*(p-a)*(p-b)*(p-c));end;End;
Write('Introduce a: ');readln(a);
Write('Introduce b: ');readln(b);
Write('Introduce c: ');readln(c);
Writeln('S triangle= ',Geron3(a,b,c):7:31);
Write(' EXIT prees on Enter: ');Readln;
End.
1. Запишите функцию Geron3 в глобальный раздел описания своей программы.
2. Обращаясь к ней, вы должны указать 3и длины сторон треугольника.
3. Результатом работы будет S – вещ. число.
Задания 4
Написать процедуру, которая с координатами центров и радиусами 2х кругов определяет, пересекаются ли они хоть в одной точке.
Эта процедура относится к расходящемуся типу алгоритма процедур.
Программа
Program Pint_of_intersection_radiuses;
Type Tmasiv=array[1..2,1..4] of real;
Var x:Tmasiv;i:byte; otvet:boolean;
Procedure IntersectionRadiuses(Var x:Tmasiv;otvet:boolean);
If (abs(x[1,4])+abs(x[2,4]))<sqrt(sqr(x[1,1]-x[2,1])+sqr(x[1,2]-x[2,2])+sqr(x[1,3]-x[2,3]))
Then otvet:=false
Else otvet:=true;
End;
For i:=1 to 2 do Begin
Write(' Introduce x',i,': ');readln(x[i,1]);
Write(' Introduce y',i,': ');readln(x[i,2]);
Write(' Introduce z',i,': ');readln(x[i,3]);
Write(' Introduce R',i,': ');readln(x[i,4]);
End;
IntersectionRadiuses(x);
If otvet Then Writeln(' No.')
Else Writeln(' Yes.');
Write(' EXIT prees on Enter: ');Readln;
End.
1. Запишите процедуру IntersectionRadiuses в глобальный раздел описания своей программы.
2. Обращаясь к ней, вы должны указать в масив “x” (типа: Tmasiv=array[1..2,1..4] of real) координаты центров и радиусами 2х кругов, соответственно с типом “x”.
3. Результатом работы будет логическая переменная “otvet ” – логического типа.
Задания 5
Написать функцию для вычисления факториала числа.
Эта процедура относится к циклическому типу алгоритма процедур.
Программа
Program Fuctorial_number;
Var n:byte;
Function Fuctorial(n:byte):cont;
Var i:cont;
Begin
i:=1;For n:=n downto 1 do i:=i*n;Fuctorial:=i;
End;
Write('Introduce n: ');readln(n);
Write('Fuctorial= ',Fuctorial(n));
Write(' EXIT prees on Enter: ');Readln; End.
1. Запишите процедуру Fuctorial в глобальный раздел описания своей программы.
2. Обращаясь к ней, вы должны указать число факториала.
3. Результатом работы будет факториал – целого типа.
Вывод
Я изучил 2а метода процедурной декомпозиции: написания процедур и функций и научился их применять в программах. Это очень упрощает написания программ, т. к. не надо повторять одинаковый набор операций, а просто указать переменные и соответствующий идентификатор процедуры или функции. Т. о. надо позаботится только о правильном вводе и выводе данных. Этим увеличивается понимания программы. В результате этого можно создавать большие и понятные программы, которые не возможно было создать без уменьшения кода записи.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.