Вычисление площади треугольника по 3 вершинам — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Вычисление площади треугольника по 3 вершинам

2018-01-04 189
Вычисление площади треугольника по 3 вершинам 0.00 из 5.00 0 оценок
Заказать работу

var x1,y1,x2,y2,x3,y3,a,b,c,p,s:real;

begin

writeln('введите A(X1,Y1), B(X2,Y2) и C(X3,Y3)');

readln(x1,y1,x2,y2,x3,y3);

c:=sqrt(sqr(y1-y2)+sqr(x1-x2));

a:=sqrt(sqr(y2-y3)+sqr(x2-x3));

b:=sqrt(sqr(y1-y3)+sqr(x1-x3));

p:=(a+b+c)/2;

s:=p*sqrt((p-a)*(p-b)*(p-c));

writeln('площадь треугольника = ',s);

end.

19. Попадает ли точка M(x,y) в круг с центром O(Xc,Yc) и радиусом R

var xc,yc,mx,my,d,r:real;

begin

writeln('введите M(X,Y), O(Xc,Yc) и R');

readln(mx,my,xc,yc,r);

d:=sqrt(sqr(xc-mx)+sqr(yc-my));

if d<=r then writeln ('точка M лежит в круге')

else writeln ('точка M лежит вне круга');

end.

Перевод десятичного числа в двоичное

var a: longint;

 

function DEC_BIN(x:longint):string;

const digits:array [0..1] of char = ('0','1');

var res:string; d:0..1;

begin

res:='';

while (x<>0) do begin

d:=x mod 2; res:=digits[d]+res;

x:=x div 2;

end;

DEC_BIN:=res;

end;

 

begin { основная программа }

readln(a);

writeln(DEC_BIN(a));

end.

Перевод двоичного числа в десятичное

var a: string;

 

function BIN_DEC(x:string):longint;

const digits:array [0..1] of char = ('0','1');

var res,ves:longint; i,j:byte;

begin

res:=0; ves:=1;

for i:=length(x) downto 1 do begin

j:=0;

while (digits[j]<>x[i]) do inc(j);

res:=res+ves*j;

ves:=ves*2;

end;

BIN_DEC:=res;

end;

 

begin { основная программа }

readln(a);

writeln(BIN_DEC(a));

end.

Перевод десятичного числа в шестнадцатеричное

var a: longint;

 

function DEC_HEX(x:longint):string;

const digits:array [0..15] of char = ('0','1','2','3','4','5','6','7',

'8','9','A','B','C','D','E','F');

var res:string; d:0..15;

begin

res:='';

while (x<>0) do begin

d:=x mod 16;

x:=x div 16;

res:=digits[d]+res;

end;

DEC_HEX:=res;

end;

 

begin { основная программа }

readln(a);

writeln(DEC_HEX(a));

end.

Перевод шестнадцатеричного числа в десятичное

var a: string;

 

function HEX_DEC(x:string):longint;

const digits:array [0..15] of char =

('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

var res,ves:longint; i,j:byte;

begin

res:=0; ves:=1;

for i:=length(x) downto 1 do begin

j:=0; a[i]:=UpCase(a[i]);

while (digits[j]<>x[i]) do inc(j);

res:=res+ves*j;

ves:=ves*16;

end;

HEX_DEC:=res;

end;

 

begin { основная программа }

readln(a);

writeln(HEX_DEC(a));

end.

Рекурсивные алгоритмы

Нахождение НОД и НОК двух чисел

var a,b:longint;

 

function NOD(x,y:longint):longint; { фукнция поиска наиб. общ. делителя }

begin

if x<>0 then NOD:=NOD(y mod x,x) else NOD:=y;

end;

 

function NOK(x,y:longint):longint; { фукнция поиска наим. общ. кратного }

begin

NOK:=(x div NOD(x,y)) * y;

end;

 

begin { основная программа }

readln(a,b);

writeln('НОД этих чисел = ', NOD(a,b));

writeln('НОК этих чисел = ', NOK(a,b));

end.

Вычисление факториала

var n:integer;

 

function f(x:integer):longint;

begin

if x = 1 then f:= 1 else f:= x * f(x-1);

end;

 

begin

writeln('введите N (N=1..13)');

readln(n);

writeln('N!=',f(n));

end.

Генерация перестановок

const n = 3; { количество элементов в перестановке}

var a:array[1..n] of integer;

index: integer;

 

procedure generate (l,r:integer);

var i,v:integer;

begin

if (l=r) then begin

for i:=1 to n do write(a[i],' ');

writeln;

end else begin

for i:= l to r do begin

v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[j]}

generate(l+1,r); {вызов новой генерации}

v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[j]}

end;

end;

end;

 

begin

for index:= 1 to N do A[index]:=index;

generate(1,n);

end.

Быстрая сортировка

{ ----------------------------------------------------------------------- }

{ БЫСТРАЯ СОРТИРОВКА. }

{ Устанавливаем I=1 и J=N. Сравниваем элементы A[I] и A[J]. Если }

{ A[I]<=A[J], то уменьшаем J на 1 и проводим следующее сравнение элемен- }

{ тов A[I] с A[J]. Последовательное уменьшение индекса J и сравнение ука- }

{ занных элементов A[I] с A[J] продолжаем до тех пор, пока выполняется }

{ условие A[I] <= A[J]. Как только A[I] станет больше A[J], меняем места- }

{ ми элементы A[I] с A[J], увеличиваем индекс I на 1 и продолжаем сравне- }

{ ние элементов A[I] с A[J]. Последовательное увеличение индекса I и }

{ сравнение (элементов A[I] с A[J]) продолжаем до тех пор, пока выполня- }

{ ется условие A[I] <= A[J]. Как только A[I] станет больше A[J], опять }

{ меняем местами элементы A[I] с A[J], снова начинаем уменьшать J. }

{ Чередуя уменьшение J и увеличение I, сравнение и необходимые обме- }

{ ны, приходим к некоторому элементу, называемому пороговым или главным, }

{ характеризующим условие I=J. В результате элементы массива оказываются }

{ разделенными на две части так, что все элементы слева - меньше главного }

{ элемента, а все элементы справа - больше главного элемента. }

{ К этим массивам применяем рассмотренный алгоритм, получаем четыре }

{ части и т.д. Процесс закончим, когда массив A станет полностью отсорти- }

{ рованным. }

{ При программировании алгоритма "Быстрой сортировки" удобно исполь- }

{ зовать рекурентные вызовы процедуры сортировки (рекурсию). }

{ ----------------------------------------------------------------------- }

 

var a:array[1..10] of integer; { массив элементов }

n:integer;

 

procedure QuickSort(L, R: Integer); { Быстрая сортировка массива A[] }

var i,j,x,y: integer;

begin

i:= l; j:= r;

x:= a[(l+r) div 2];

repeat

while (A[i]<x) do inc(i);

while (x<A[j]) do dec(j);

if (i<=j) then

begin

y:=A[i]; a[i]:=a[j]; a[j]:=y;

inc(i); dec(j);

end;

until (i>j);

if (l<j) then QuickSort(l,j);

if (i<r) then QuickSort(i,r);

end;

 

begin

writeln('введите 10 элементов массива:');

for n:=1 to 10 do readln(a[n]);

QuickSort(1, 10); { на входе: левая и правая граница сортировки }

writeln('после сортировки:');

for n:=1 to 10 do writeln(a[n]);

end.


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.