|
Программирование в Pascal |
|
Деление отрезка
Координаты точки (Х,Y), делящей отрезок (X1,Y1),(X2,Y2) в отношении М (0<=М<1), вычисляются по формулам: X=X1+(X2+X1)*M;
Y=Y1+(Y2+Y1)*M;
Используется при решении олимпиадных задач.
Автосохранение программ
В разделе "OPTIONS/ENVIRONMENT/PREFERENCES" среды программирования Turbo Pascal полезно в разделе "Auto save" установить параметр [x] Editor Files (автосохранение редактируемых файлов). Это гарантирует автоматическое сохранение текста программы при каждом её запуске.
К оглавлению
Длины отрезков
Длины отрезков:
AB:=Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); ВС:=Sqrt(Sqr(X3-X2)+Sqr(Y3-Y2));
Кратчайшее расстояние от точки О до сторон треугольника:
Используется при решении олимпиадных задач.
Формула Герона
Определение площади треугольника:
S=sqrt(p*(p-a)*(p-b)*(p-c));
где p - полупериметр треугольника со сторонами a, b, c.
Используется при решении олимпиадных задач.
К оглавлению
Площадь треугольника
Иногда, при решении задач на языке Паскаль, нужно определить площадь треугольника по заданным координатам его вершин. Для этого можно воспользоваться формулой:
S=abs(((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2);
Стороны треугольника:
a:=sqrt(sqr(x0-x1)+sqr(y0-y1));
b:=sqrt(sqr(x1-x2)+sqr(y1-y2));
c:=sqrt(sqr(x2-x0)+sqr(y2-y0));
Где: Х0,Y0 - координаты первой точки треугольника; Х1,Y1 - координаты второй точки треугольника; Х1,Y2 - координаты третьей точки треугольника;
Используется при решении олимпиадных задач.
Уравнение прямой
Для задания произвольной прямой на плоскости следует использовать уравнение:
A*x+B*y+C=0;
Например: для прямой, проходящей через точки (х1,y1) и (х2,y2), A, B и C будут вычисляться так:
A:=Y1-Y2;
B:=X2-X1;
C:=(X1*Y2)-(X2*Y1);
Тогда, если есть две прямые (A1*x+B1*y+C=0) и (A2*x+B2*x+C=0), то условие параллельности:
A1*B2=A2*B1;
Условие перпендикулярности:
A1*A2=-B1*B2;
Используется при решении олимпиадных задач.
К оглавлению
Положение точек относительно прямой
Пусть уравнение прямой имеет вид:
sx+ty+u=0;
Две точки координатной плоскости лежат по разные стороны от заданной прямой в том случае, если подстановка их координат в левую часть уравнения прямой даёт числа, противоположного знака. Если числа одного знака, то точки лежат в одной полуплоскости, а если число равно нулю, то эта точка лежит на прямой.
Функция, проверяющая положение точек относительно прямой в программе Turbo Pascal:
Function Points(x1,y1,x2,y2,s,t,u:real):integer; begin if (s=0) and (t=0) then Points:=-1 else if (s*x1+t*y1+u)*(s*x2+t*y2+u)<0 then Points:=1 else Points:=0; end;
Возвращаемое значение:
-1, если s=0 и t=0 одновременно (неправильно задана прямая); 1, если точки лежат в разных полуплоскостях; 0, если точки лежат в одной полуплоскости;
Используется при решении олимпиадных задач.
К оглавлению
Положение точки относительно треугольника
Функция, проверяющая принадлежность точки треугольнику, в языке Паскаль может иметь вид:
Function TRY(x,y:real;x1,y1:tarray{массив [1..3]}):integer; Function PR(i,j:integer):boolean; begin PR:=((x-x1[i])*(y1[j]-y1[i]))>((x1[j]-x1[i])*(y-y1[i])); end; begin if ((pr(1,2))=(pr(2,3))) and ((pr(1,2))=(pr(3,1))) then TRY:=1 else TRY:=0 end;
Где:
Х,У - координаты проверяемой точки; Х1 - массив, содержащий х-вые координаты точек треугольника; У1 - массив, содержащий у-вые координаты точек треугольника;
Функция возвращает:
1, если точка лежит внутри треугольника; 0, если точка лежит снаружи;
Используется при решении олимпиадных задач.
К оглавлению
Шаблон графической программы
Для работы с графикой в Паскале мы используем приведенный ниже шаблон:
program treug; uses Graph,crt; var GrDrv:integer; {Графический драйвер} GrMode:integer; {Графический режим} GrErr:integer; {Графическая ошибка} begin GrDrv:=Detect; InitGraph(GrDrv,GrMode,''); GrErr:=GraphResult; if GrErr=GrOk then begin {Здесь пишется текст программы} end else begin writeln('Ошибка графики',GraphErrorMsg(GrErr)); readln; end; end.
Расположение цифр по окружности
Чтобы расположить нужное количество цифр по окружности в программе на языке Паскаль, можно воспользоваться такой конструкцией:
for n:=1 to k do begin a:=trunc(13-6*cos(n/(k/2)*pi)*2); b:=trunc(38+18*sin(n/(k/2)*pi)*1.7); gotoxy(b,a); write(n); end;
Где k - количество цифр;
К оглавлению
Многоугольник, вписанный в окружность
Координаты точек многоугольника, вписанного в окружность:
Xi=rcos(2пi/n);
Yi=rsin(2пi/n);
Где (i=1,2,3,...,n), (п - число "пи"), (r - радиус окружности);
Используется при решении олимпиадных задач
К оглавлению
Обмен значений двух переменных без использования третьей
Чтобы обменять значения двух переменных без использования третьей переменной или ещё чего либо, воспользуйтесь следующим алгоритмом:
A:=A+B; B:=A-B; A:=A-B; |
|
| |