program SimpleExample; const PI=3.141592654; label abbruchber; var esr:esrecord; exitcommand:estype; ch:char; FraeserD:real; TaschenL:real; TaschenT:real; BolzenD:real; Halbetaschenbreite:real; B:real; B1:real; x11,x21:real; c1,c2:real; x1,x2:real; z1,z2:real; winkel1,winkel2:REAL; t1:real; {Dummywert} Schwenkwinkel,Schwenkwinkelgrad:real; function arcsin(x:real):real; var ergebnis:real; t1:real; begin t1:=(-x*x+1); if t1 <0 then ergebnis:=1000 else ergebnis:=arctan(x/sqrt(t1)); arcsin:=ergebnis; end; function arccos(x:real):real; var ergebnis:real; begin ergebnis:=arctan(sqrt(1-sqr(x))/X); arccos:=ergebnis; end; function tan(x:real):real; var ergebnis:real; begin ergebnis:=sin(x)/cos(x); tan:=ergebnis; end; procedure lzeile(zeile:byte); begin fastwrite(charstr(' ',80),zeile,1,whiteonblack); end; begin FraeserD:=125; TaschenL:=80; TaschenT:=1.5; BolzenD:=120; FraeserD:=0; TaschenL:=0; TaschenT:=0; BolzenD:=0; {decimalchar:=','; commachar:='.';} if mouseinstalled then enableentrymouse; repeat clrscr; fastwrite(' BHS-Cincinnati - Planetenbolzen ™ltaschen Fr„sen - von Georg Schickor ',1,1,$70); fastwrite(' Mit [F10] Eingabe abschlieáen !',23,1,$0F); gotoxy(1,23); setpromptattr($0F); setfieldattr($70); setstringattr($70); setctrlattr($70); initesrecord(esr); if not addentrycommand(ESUser0, 1, $4400, 0) then {F10=Berechnung starten} if not addentrycommand(0,1,$4900,$0000) then halt(0); {PgUp deaktivieren} if not addentrycommand(0,1,$5100,$0000) then halt(0); {PgDn deaktivieren} (* if not addentrycommand(0,1,$4700,$0000) then halt(0); {Home deaktivieren} if not addentrycommand(0,1,$4F00,$0000) then halt(0); {End deaktivieren} if not addentrycommand(0,1,$5000,$0000) then halt(0); {Down deaktivieren} *) {addstringfield(esr,'Name: ',3,1,'',3,8,30,0,nil,name);} setautonumlock(on); setautoadvance(off); setclearfirstchar(on); addrealfield(esr,'Fr„ser Durchmesser ',3,1,'99999.99',3,22,0,0,1000,10,FraeserD); addrealfield(esr,'Taschenl„nge ',4,1,'99999.99',4,22,0,0,1000,10,TaschenL); addrealfield(esr,'Taschentiefe ',5,1,'99999.99',5,22,0,0,1000,10,TaschenT); addrealfield(esr,'Bolzen Durchmesser ',6,1,'99999.99',6,22,0,0,1000,10,BolzenD); setautonumlock(off); exitcommand:=editscreen(esr,0,false); if (exitcommand=esdone) or (exitcommand=ESUser0) then begin fastwrite('----------- Ergebnis ----------------------- (Zwischenergebnis) -------------',8,1,$0F); if (fraeserd <= 0) or (taschenl <=0) or (bolzend <=0 ) or (taschent <=0) then begin fastwrite('Berechnung mit eingebegenen Werten nicht m”glich !',10,1,whiteonblack+blink); goto abbruchber; end; t1:=(sqr(fraeserD/2)-sqr(taschenl/2)); {1) Berechnung b1} if t1 < 0 then begin fastwrite('Berechnung mit eingebegenen Werten nicht m”glich !',10,1,whiteonblack+blink); goto abbruchber; end; b1:=sqrt(t1); {2) Berechnung des Schwenkwinkels} schwenkwinkel:=arcsin(TaschenT/(FraeserD/2-b1)); if schwenkwinkel=1000 then begin fastwrite('Berechnung mit eingebegenen Werten nicht m”glich !',10,1,whiteonblack+blink); goto abbruchber; end; schwenkwinkelgrad:=schwenkwinkel*180/Pi; {3) } b:=bolzend/2-taschent; halbetaschenbreite:=sqrt(sqr(bolzend/2+0.25)-sqr(bolzend/2-taschent)); {4) } x11:=halbetaschenbreite+5; x21:=(FraeserD/2-b1)+halbetaschenbreite; {5) } c1:=sqrt(sqr(b)+sqr(x11)); c2:=sqrt(sqr(b)+sqr(x21)); {6) } winkel1:=arctan(x11/b); winkel2:=arctan(x21/b); {7) } x1:=sin(winkel1+schwenkwinkel)*c1+FraeserD/2; z1:=cos(winkel1+schwenkwinkel)*c1; x2:=-(sin(winkel2-schwenkwinkel)*c2)+FraeserD/2; z2:=cos(winkel2-schwenkwinkel)*c2; {Ergebnisausgabe} textcolor(lightgray); gotoxy(40,9); write('b1 = ',b1:8:4); gotoxy(40,10);write('Halbetaschenbreite = ',halbetaschenbreite:8:4); gotoxy(40,11);write('X11 = ',X11:8:4); gotoxy(40,12);write('X21 = ',X21:8:4); gotoxy(40,13);write('C1 = ',C1:8:4); gotoxy(40,14);write('C2 = ',C2:8:4); gotoxy(40,15);write('Winkel 1 ',Winkel1*180/pi:8:4); gotoxy(40,16);write('Winkel 2 ',Winkel2*180/pi:8:4); textcolor(white); gotoxy(1,9); write('Schwenkwinkel = ',schwenkwinkelgrad:10:3,' Grad'); gotoxy(1,10);write('X1 ---------- = ',x1:10:3); gotoxy(1,11);write('Z1 ---------- = ',z1:10:3); gotoxy(1,12);write('X2 ---------- = ',X2:10:3); gotoxy(1,13);write('Z2 ---------- = ',Z2:10:3); end; abbruchber: disposeeditscreen(esr); lzeile(23); readcharacter(' Weitere Berechnungen [J/N] ? ',24,1,$07, ['J','N'],ch); until ch='N'; gotoxy(1,24); {readln;} end.
Write, Run & Share Pascal code online using OneCompiler’s Pascal online compiler for free. It’s a straightforward, accessible way to learn and experiment with Pascal programming right from your browser. OneCompiler supports modern Pascal syntax and provides a ready-to-use editor for immediate execution.
Pascal is a procedural programming language developed in the 1970s by Niklaus Wirth. It was designed to encourage good programming practices and structured programming. Pascal is widely used in teaching computer science fundamentals and has influenced many modern languages.
The following is a simple Pascal program that prints a greeting:
program HelloWorld;
begin
writeln('Hello, OneCompiler!');
end.
OneCompiler’s Pascal editor supports stdin through the I/O tab. Here’s an example that reads a user's name and prints a greeting:
program GreetUser;
var
name: string;
begin
readln(name);
writeln('Hello, ', name, '!');
end.
var
age: integer;
name: string;
score: real;
flag: boolean;
Type | Description |
---|---|
integer | Whole numbers |
real | Floating-point numbers |
char | Single character |
string | Sequence of characters |
boolean | True or False |
if score >= 50 then
writeln('Pass')
else
writeln('Fail');
for i := 1 to 5 do
writeln(i);
i := 1;
while i <= 5 do
begin
writeln(i);
i := i + 1;
end;
i := 1;
repeat
writeln(i);
i := i + 1;
until i > 5;
procedure SayHello;
begin
writeln('Hello!');
end;
function Add(a, b: integer): integer;
begin
Add := a + b;
end;
This guide provides a quick reference to Pascal programming syntax and features. Start coding in Pascal using OneCompiler’s Pascal online compiler today!