Выберите раздел:
Программирование в Delphi
Программирование на языке Паскаль (Pascal)
В разделе "Программирование на языке Паскаль (Pascal)" изложены некоторые хитрости и
советы по составлению программ на языке "Паскаль".
Советы будут полезны начинающим программистам, так как содержат примеры, редко описываемые в литературе, но часто встречающиеся в практике.
Хитрости пригодятся программистам, решающим олимпиадные задачи, т.к. помогают
сократить код программ, упростить и ускорить их решение.
- Советы и хитрости программирования в Pascal (Паскаль)
Полный набор хитростей и советов - купить посредством SMS
Координаты точки (Х,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;
К оглавлению
Используется при решении олимпиадных задач
Полный набор хитростей и советов - купить
посредством SMS Цена: 300 тенге = 2 у.е.
В начало страницы