ПРОГРАММИРОВАНИЕ
PASCAL (ПАСКАЛЬ)

Программирование на языке Turbo Pascal,
коды программ, задачи и решения,
хитрости и советы.

 




 




Выберите раздел:

Программирование в 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 у.е.

В начало страницы  




Copyright © 2008

Rambler's Top100         Resurs.kz: сайты Казахстана и раскрутка сайта