Компилятор Turbo Pascal чаще всего используют для обучения начинающих программистов. Тут срабатывает принцип: чем проще - тем лучше. Для новичков не должно быть ничего лишнего, что отвлекало бы внимание. У нас уже есть онлайн-версия WEB-среды разработки PascalABC.NET. Но если вас интересует Турбо Паскаль 5.5 в своем первозданном виде, то теперь у нас есть и такая версия. Посмотреть в работе онлайн-эмулятор компилятора Турбо-Паскаля можно здесь. Вам ничего не надо устанавливать. Важно только, чтобы в вашем браузере была включена поддержка JavaScript (если вы не отключали javascript, то у вас должно быть включено по умолчанию).

Помощь по работе.

Turbo | Pascal У Вас есть всего два режима. Первый режим Edit - редактор кода. Чтобы зайти в редактор, нажмите латинскую букву E - первая буква команды Edit. Второй режим - экран, на котором будет отображаться результат выполнения вашей программы. Запустить программу на выполнение можно, нажав клавишу R - первая буква команды Run.

Скрины эмулятора.

После того, как вы зайдете в онлайн эмулятор компилятора Турбо Паскаля, вы увидите экран с мигающим курсором-приглашением к выполнению программы. На экране будут подсказки, какие клавиши нажимать, а также число байт, занятых кодом программы и количество свободного места в памяти для вашей программы. Все выглядит также как в старом добром Паскале. Ну, по крайней мере очень похоже.

Для того, чтобы написать Вашу первую программу, следует зайти в редактор. Для этого, нажмите клавишу Edit. Вы увидите пустое окно редактора. Наберите там код программы. Например, такой как на скрине слева - простейшая программа приветствие. Дальше надо нажать ссылку (внизу редактора) : закрыть редактор. Вы вернетесь к основному режиму. Вы увидите, что изменилось число байт, занимаемых вашей программой и соответственно уменьшится свободное место.

Следующий шаг - запуск на выполнение Вашей первой программы. Для запуска нажимаем клавишу R. Если программа не содержит ошибок, то на экран будет выведен результат ее выполнения. В примере - это сообщение "Hello world!". Если программа содержит ошибки, то вы получите соответствующее сообщение об ошибке. Как правило, сообщение про ошибку начинается словом "Error:", а дальше следует описание ошибки и строка, в которой ошибка допущена. Все по взрослому.

На скрине слева приведен пример сообщения, которое выдается на экран, если в коде программы встретилась ошибка. "Компилятор-эмулятор" предпринимает попытку идентифицировать ошибку, чтобы помочь начинающему программисту ее исправить. В данном примере, мы чуть подпортили код простейшей программы приветствия, убрав закрывающую кавычку. Компилятор предположил три возможных причины по которой коде не выполнился.

Для "продвинутых" пользователей есть еще один режим, который можно вызвать а затем закрыть, нажав клавишу X. Назовем этот режим режимом отладки. Остановить выполнение программы можно нажав клавишу Esc. Надо отметить, что этот компилятор нельзя считать полностью соответствующим полноценной версии. Кое-что тут отсутствует по понятным причинам. Пробуйте, экспериментируйте.

Примеры программ.

Turbo | Pascal В завершение приведем примеры программы, которые вы можете скопировать (выделить и нажать Ctrl+C), а затем вставить в редактор (Ctrl+V) и выполнить. Примеры приводятся чтобы вы убедились, что возможности "компилятора-эмулятора" весьма впечатляют.

Пример. Программа приветствие.

program TestProgram;
begin
 Writeln('Hello world!');
end.
Пример. Фейерверк.
program FireWorks;

{$R+}

uses
 Crt, Graph;

var
 GraphDriver, GraphMode, ErrorCode : Integer;
 Ch : Char;
 I, J, K, XStart, YStart : Integer;
 XX,YY,CC : Array[1..1000] of Integer;
 FX,FY,DX,DY : Array[1..70] of Real;
 R, T, X, Y : Real;

procedure Explode (C : Integer);

begin
 T := -Pi;
 I := 0;
 Repeat
 I := I + 1;
 DX[I] := Sin(T)*5;
 DY[I] := Cos(T)*5;
 FX[I] := X;
 FY[I] := Y;
 T := T + 0.15;
 Until T > Pi;

 K := 0;
 Repeat
 For J := 1 to I do
 begin
 If C = 0 then
 PutPixel (Round(FX[J]),Round(FY[J]),0)
 else
 PutPixel (Round(FX[J]),Round(FY[J]),Random(GetMaxColor+1));
 FX[J] := FX[J] + DX[J];
 FY[J] := FY[J] - DY[J];
 DY[J] := DY[J] - 0.2;
 end;
 K := K + 1;
 Delay(10); { This was not in the original. }
 Until Keypressed or (K > 50);
end;

procedure ShootFireWork;

begin
 { Delay (1000); }
 Randomize;
 T := Random / 2 - 0.25 + Pi/2;
 X := XStart;
 Y := YStart;
 R := 20;
 I := 0;
 Repeat
 Inc (I);
 XX[I] := Round(X);
 YY[I] := Round(Y);
 CC[I] := GetPixel (XX[I],YY[I]);
 If I > 1 then
 If (XX[I] = XX[I-1]) and (YY[I] = YY[I-1]) then CC[I] := CC[I-1];
 PutPixel (XX[I],YY[I],Random(GetMaxColor+1));
 If I > 5 then
 PutPixel (XX[I-5],YY[I-5],CC[I-5]);
 X := X + Cos(T)*R;
 Y := Y - Sin(T)*R;
 If T > Pi/2 then
 T := T + 0.02
 else
 T := T - 0.02;
 R := R * 0.93;
 Delay (20);
 Until KeyPressed or (T < 0) or (T > Pi);

 For J := I-5 to I do

 PutPixel (XX[J],YY[J],CC[J]);
{ ch := readkey; }
 Explode (1);
 Explode (0);
end;

begin
 GraphDriver := Detect;
 InitGraph (GraphDriver, GraphMode, '..');
 ErrorCode := GraphResult;
 If ErrorCode <> grOk then
 begin
 Writeln ('Graphics Error: ',GraphErrorMsg(ErrorCode));
 Halt;
 end;
 SetColor (GetMaxColor);
 XStart := GetMaxX div 2;
 YStart := GetMaxY - 20;

 Repeat
 ShootFireWork;
 Until Keypressed;

 Ch := ReadKey;
 ClearDevice;
 CloseGraph;
end.
Пример. Случайный сплайн.
program BSplineCurve;

{$N+}
uses
 Crt, Graph;

const
 NumDots = 5;

type
 xyzArray = Array[0..100,1..3] of LongInt;

var
 N,K,GraphDriver, GraphMode, ErrorCode : Integer;
 Ch : Char;
 knotK, knotN : Integer;

 function Knot (I : Integer) : Integer;

 begin
 If I < knotK then
 Knot := 0
 else
 If I > knotN then Knot := knotN - knotK + 2
 else
 Knot := i - knotK + 1;
 end;

 function NBlend (I,K : Integer; U : Real) : Real;

 var
 T : Integer;
 V : Real;

 begin
 If K <= 1 then
 begin
 V := 0;
 If (Knot(I) <= U) and (U < Knot(I+1)) then V := 1;
 end
 else
 begin
 V := 0;
 T := Knot(I+K-1)-Knot(I);
 If T <> 0 then V := (u-Knot(i))*NBlend(i,K-1,u)/t;
 t := knot(i+K) - knot(i+1);
 If T <> 0 then
 V := V + (Knot(I+K)-U)*NBlend(I+1,K-1,U)/t;
 end;
 NBlend := V;
 end;

 procedure BSpline (var X,Y,Z : Real; U : Real; N,K : Integer; P : xyzArray);

 var
 I : integer;
 B : Real;

 begin

 KnotK := K;
 KnotN := N;
 X := 0;
 Y := 0;
 Z := 0;
 For I := 0 to N do
 begin
 B := NBlend(I,K,U);
 X := X + p[I,1]*B;
 Y := Y + p[I,2]*B;
 end;
 end;

 procedure DrawCurve;

 var
 ControlPoints : xyzArray;
 I : LongInt;
 X, Y, Z : Real;

 begin
 For I := 0 to 30 do
 ControlPoints[I,3] := 0;
 For I := 0 to NumDots-1 do
 begin
 ControlPoints[I,1] := Random(GetMaxX);
 ControlPoints[I,2] := Random(GetMaxY);
 end;
 SetColor (LightCyan);
 SetLineStyle (UserBitLn,1,NormWidth);
 For I := 0 to NumDots-1 do
 If I = 0 then
 MoveTo (ControlPoints[I,1],ControlPoints[I,2])
 else
 LineTo (ControlPoints[I,1],ControlPoints[I,2]);
 SetLineStyle (SolidLn,0,NormWidth);
 SetColor (Yellow);
 N := NumDots-1;
 K := 3;

 SetColor (K+8);
 For I := 0 to 2300 do
 begin
 BSpline(X,Y,Z,I/2301*(N-K+2),N,K,ControlPoints);
 If I = 0 then
 MoveTo (Round(X),Round(Y))
 else
 LineTo (Round(X),Round(Y));
 If Keypressed then Halt;
 end;

 end;

begin
 GraphDriver := Detect;
 InitGraph (GraphDriver, GraphMode, '..');
 ErrorCode := GraphResult;
 If ErrorCode <> grOk then Halt;
 SetColor (GetMaxColor);
 Randomize;
 DrawCurve;
 Ch := ReadKey;
 ClearDevice;
 CloseGraph;
end.


 Похожие публикации
2015-12-08 • Просмотров [ 24401 ]