// оголошуємо змінні myString1, myString2, myString3, myStringResult і вони мають тип String
var myString1, myString2, myString3, myStringResult: String;

//  Тип       Діапазон                Формат
//  Shortint  -128..127               Зі знаком 8 біт
//  Integer   -32768..32767           Зі знаком 16 біт
//  Longint   -2147483648..2147483647 Зі знаком 32 біта
//  Byte      0..255                  Без знака 8 біт
//  Word      0..65535                Без знака 16 біт
// оголошуємо змінні myInteger1, myInteger2, myInteger3, myIntegerResult і вони мають тип Integer
var myInteger1, myInteger2, myInteger3, myIntegerResult: Integer; // Integer -32768..32767
// оголошуємо змінні mySInt1, mySInt2, mySInt3, mySIntResult і вони мають тип Shortint
var myShortInt1, myShortInt2, myShortInt3, myShortIntResult: Shortint; // Shortint -128..127

//   Тип       Діапазон            Точність Байт
//   Real      2.9e-39..1.7e38     11-12    6
//   Single    1.5e-45..3.4e38     7-8      4
//   Double    5.0e-324..1.7e308   15-16    8
//   Extended  3.4e-4932..1.1e4932 19-20    10
//   Comp     -9.2e18..9.2e18      19-20    8
// оголошуємо змінні myReal1, myReal2, myReal3, myRealResult і вони мають тип Real
var myReal1, myReal2, myReal3, myRealResult: Real; // Real 2.9e-39..1.7e38

// оголошуємо логічні змінні myBoolean1, myBoolean2, myBoolean3, myBooleanResult,
// вони мають тип Boolean
var myBoolean1, myBoolean2, myBoolean3, myBooleanResult: Boolean;
begin

  // Type String ==========
  
  // запишемо у рядкову змінну myString1 рядок '333'
  myString1 := '333';
  // запишемо у рядкову змінну myString2 рядок '111'
  myString2 := '111';
  // запишемо у рядкову змінну myStringResult
  // результат додавання/конкатенації рядкових змінних myString1 і myString2
  myStringResult := myString1 + myString2;
  // виведемо у консоль значення рядкової змінної myStringResult
  writeln(myStringResult);
  // '333111'

  // Type Integer ==========

  // запишемо у цілочислену змінну myInteger1 число 333
  myInteger1 := 333;
  // запишемо у цілочислену змінну myInteger2 число 111
  myInteger2 := 111;
  // запишемо у цілочислену змінну myIntegerResult
  // результат додавання цілочислених змінних myInteger1 і myInteger2
  myIntegerResult := myInteger1 + myInteger2;
  // виведемо у консоль значення цілочисленої змінної myIntegerResult
  writeln(myIntegerResult);
  // 444

  // запишемо у цілочислену змінну myIntegerResult
  // суму рядкової змінної myString1 і цілочисленої змінної myInteger2
  //myIntegerResult := myString1 + myInteger2;
  //Error: Operator is not overloaded: "ShortString" + "SmallInt"

  // Type ShortInt ==========

  // запишемо у цілочислену змінну myShortInt1 число 33
  myShortInt1 := 33;
  // запишемо у цілочислену змінну myShortInt2 число 11
  myShortInt2 := 11;
  // запишемо у цілочислену змінну myShortIntResult
  // результат додавання цілочислених змінних myShortInt1 і myShortInt2
  myShortIntResult := myShortInt1 + myShortInt2;
  // виведемо у консоль значення цілочисленої змінної myShortIntResult
  writeln(myShortIntResult);
  // 44
  
  // змішаємо змінні цілочислених типів Integer і ShortInt ==========

  // запишемо у цілочислену змінну myShortIntResult
  // результат додавання цілочислених змінних myInteger2 і myShortInt2
  myShortIntResult := myInteger2 + myShortInt2; // 111 + 11 = 122
  // виведемо у консоль значення цілочисленої змінної myShortIntResult
  writeln(myShortIntResult);
  // 122
  
  // запишемо у цілочислену змінну myIntegerResult
  // результат додавання цілочислених змінних myInteger1 і myShortInt1
  myIntegerResult := myInteger1 + myShortInt1; // 333 + 33 = 366
  // виведемо у консоль значення цілочисленої змінної myIntegerResult
  writeln(myIntegerResult);
  // 366

  // запишемо у цілочислену змінну myShortIntResult
  // результат додавання цілочислених змінних myInteger1 і myShortInt1
  myShortIntResult := myInteger1 + myShortInt1; // 333 + 33 = 366
  // виведемо у консоль значення цілочисленої змінної myShortIntResult
  writeln(myShortIntResult);
  // 110
  // myShortIntResult має тип Shortint,
  // який може містити значення лише у діапазоні -128..127?
  // тому записати результат 366 неможливо

  // Type Real ==========

  // запишемо у дробову змінну myReal1 число 333
  myReal1 := 333;
  // запишемо у дробову змінну myReal2 число 111
  myReal2 := 111;
  // запишемо у дробову змінну myRealResult
  // результат додавання дробових змінних myReal1 і myReal2
  myRealResult := myReal1 + myReal2;
  // виведемо у консоль значення дробової змінної myRealResult
  writeln(myRealResult);
  //  4.4400000000000000E+002

  // змішаємо змінні цілочислених типів Integer і ShortInt ==========

  // запишемо у дробову змінну myRealResult
  // результат додавання цілочисленої змінної myInteger2 і дробової змінної myReal2
  myRealResult := myInteger2 + myReal2; // 111 + 111 = 222
  // виведемо у консоль значення дробової змінної myRealResult
  writeln(myRealResult);
  //  2.2200000000000000E+002

  // запишемо у цілочислену змінну myIntegerResult
  // результат додавання цілочисленої змінної myInteger2 і дробової змінної myReal2
  myIntegerResult := myInteger2 + myReal2; // 111 + 111 = 222
  // виведемо у консоль значення цілочисленої змінної myIntegerResult
  writeln(myIntegerResult);
  // 366


  // запишемо у дробову змінну myRealResult
  // суму рядкової змінної myString1 і дробової змінної myReal2
  //myRealResult := myString1 + myReal2;
  //Error: Operator is not overloaded: "ShortString" + "Real"

  // Type Boolean ==========

  // запишемо у логічну змінну myBoolean1 значення логічної константи true
  myBoolean1 := true;
  // запишемо у логічну змінну myBoolean2 значення логічної константи false
  myBoolean2 := false;
  // виведемо у консоль значення логічних змінних myBoolean1 і myBoolean2
  writeln(myBoolean1, myBoolean2);
  // 'TRUEFALSE'

  // запишемо у логічну змінну myBooleanResult суму логічних змінних myBoolean1 і myBoolean2
  //myBooleanResult := myBoolean1 + myBoolean2;
  //Error: Operator is not overloaded: "Boolean" + "Boolean"
  
  // запишемо у логічну змінну myBooleanResult
  // суму рядкової змінної myString1 і логічної змінної myBoolean2
  //myBooleanResult := myString1 + myBoolean2;
  //Error: Operator is not overloaded: "ShortString" + "Boolean"

  // запишемо у логічну змінну myBooleanResult
  // суму цілочисленої змінної myInteger1 і логічної змінної myBoolean2
  //myBooleanResult := myInteger1 + myBoolean2;
  //Error: Operator is not overloaded: "SmallInt" + "Boolean"

  // запишемо у логічну змінну myBooleanResult
  // суму дробової змінної myReal1 і логічної змінної myBoolean2
  //myBooleanResult := myReal1 + myBoolean2;
  //Error: Operator is not overloaded: "Real" + "Boolean"

end. 
by

Pascal online compiler

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.

About Pascal

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.

Sample Code

The following is a simple Pascal program that prints a greeting:

program HelloWorld;
begin
  writeln('Hello, OneCompiler!');
end.

Taking inputs (stdin)

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.

Syntax Basics

Variables

var
  age: integer;
  name: string;
  score: real;
  flag: boolean;

Data Types

TypeDescription
integerWhole numbers
realFloating-point numbers
charSingle character
stringSequence of characters
booleanTrue or False

Conditionals

if score >= 50 then
  writeln('Pass')
else
  writeln('Fail');

Loops

For loop

for i := 1 to 5 do
  writeln(i);

While loop

i := 1;
while i <= 5 do
begin
  writeln(i);
  i := i + 1;
end;

Repeat-Until loop

i := 1;
repeat
  writeln(i);
  i := i + 1;
until i > 5;

Procedures and Functions

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!