Get Started in Quickly using Free Pascal!
Welcome to Pascal! This guide will get you writing your first Pascal programs quickly using Free Pascal.
Quick Setup
Option 1: Try Online (No Installation)
Start coding immediately with these online compilers:
- OneCompiler - Simple and fast
- OnlineGDB - Has debugging features
- FPC Playground - Best for simple codes
Option 2: Install on Your Computer
Option | Best For | Download |
---|---|---|
Lazarus IDE | Complete beginners, GUI apps | Download Lazarus |
Free Pascal | Command line, learning fundamentals | Download FPC |
Recommendation: Start with Lazarus - it includes everything you need!
Your First Program - Hello World!
Let’s write your first Pascal program. Create a file called hello.pas
:
|
|
How to run it:
- Online: Copy-paste into any online compiler and click “Run”
- Lazarus: Create new program, replace code, press F9
- Command line:
fpc hello.pas
then./hello
(Linux/Mac) orhello.exe
(Windows)
Essential Concepts
Variables - Storing Information
Think of variables as labeled boxes that hold information:
|
|
Key Points:
{$mode objfpc}{$H+}{$J-}
enable modern Object Pascal features in Free Pascal{$mode objfpc}
- Enable exceptions, classes, interfaces, overloading, etc{$H+}
- Enable long string{$J-}
- Disable writing to constants
- Declare variables with
var
- Assign values with
:=
(not=
) - Always end statements with
;
Making Decisions - If Statements
Programs need to make choices based on conditions:
|
|
Repeating Actions - Loops
Loops let you repeat code multiple times:
|
|
Practice Time!
Let’s build some real programs to practice what you’ve learned.
Exercise 1: Simple Calculator
|
|
Exercise 2: Number Guessing Game
|
|
Basic Debugging
When your program doesn’t work as expected, try these simple debugging techniques:
1. Use writeln
to Check Values
|
|
2. Common Mistakes to Watch For
- Assignment vs Comparison: Use
:=
for assignment,=
for comparison - Missing semicolons: Every statement needs
;
except beforeelse
andend
- Case sensitivity: Pascal is not case-sensitive, but be consistent
- Parentheses: Make sure they match
()
andbegin
/end
pairs
3. Reading Error Messages
When you get an error:
- Look at the line number - that’s where the problem is (or nearby)
- Read the error message carefully
- Common errors:
- “Identifier not found” = you misspelled a variable name
- “Type mismatch” = you’re mixing different data types
- “Syntax error” = you have a typo or missing punctuation
Working with Data Structures
As your programs grow, you’ll need better ways to organize data. Pascal provides several powerful tools for this.
Records - Grouping Related Data
Records let you group related information together:
|
|
Arrays - Static and Dynamic
Arrays store multiple values of the same type:
|
|
Key Points:
- Use
SetLength
to resize dynamic arrays - Use
High
to get the highest index of an array
Generics Collections
FPC 3.2.2 includes generic collections for flexible data storage:
|
|
Key Points:
- Pair
try
/finally
to ensure resources are cleaned up - Create objects using
Create
- Use
Free
to release resources
Classes - Objects with Behavior
Classes combine data and methods (functions) that work on that data:
|
|
Interfaces - Contracts for Classes
Interfaces define what methods a class must implement:
|
|
Advanced Records - Records with Methods
Modern Pascal allows records to have methods like classes:
|
|
Key Points:
- Records: Simple data containers, good for grouping related values
- Classes: Full object-oriented programming with inheritance and polymorphism
- Interfaces: Define contracts that classes must follow
- Advanced Records: Combine the simplicity of records with some class features
What’s Next?
Congratulations! You now know the basics of Pascal programming. Here’s your learning path:
Ready for More?
Head over to our Resources Page for:
- Advanced programming concepts (arrays, records, functions)
- Object-oriented programming with classes
- File handling and database programming
- GUI development with Lazarus
- Professional development practices
- Implementation-specific features (Free Pascal, Delphi, etc.)
Additional Resources
- Free Pascal Documentation - Official FPC docs
- Lazarus Wiki - GUI development guide
- Pascal Community Forum - Get help and share projects
Happy coding! Welcome to the Pascal community! 🎉