ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Guide to Data Types in Pascal

Updated on February 19, 2013
Lazarus is a popular free, open-source IDE for Delphi and Pascal
Lazarus is a popular free, open-source IDE for Delphi and Pascal

Why Learn Pascal?

Pascal is considered an old, long-dead computer language by a lot of people. However, it is still recommended and thought in a lot of schools and elementary courses. This is because it is a great language to learn how programming works and it gives you a solid education so that you can continue to learn other language later.

Learning Pascal will also help you master Delphi which is an object-oriented language in which you can create your first desktop applications, games and useful tools and software. This article isn't a guide in which you will learn how to program, but will give you some basics and will teach you a lot about the many different data types in Pascal.

Integers

In mathematics we often use Z to categorize that a number belongs to the predefined type we know as Integers. In this set we have numbers ranging from [-∞...-4, -3, -2, -1, 0, 1, 2, 3....+∞]. As you can see an integer is either a negative or positive whole number or zero.

Numbers such as 5.55, 3.3333... or the square root of 2 are not integers.

Integers in Pascal

Type
Range
Size in Bytes
Byte
0 .. 255
1
Short Integer (Shortint)
-128 .. 127
1
Small Integer (Smallint)
-32768 .. 32767
2
Integer
Either smallint or longint
2 or 4
Long Integer (Longint)
-2147483648 .. 2147483647
4
Int64
-9223372036854775808 .. 9223372036854775807
8

Using Integers - an example

project FirstProgram;

var 
a,i,sum: Integer;  //declaring three integer variables

begin
sum:=0; //starting value of 'sum'
readln(a); //user inputs the value for the variable a

for i:= 1 to a do //a for loop from 1 to a
begin
 
 sum:=sum+i;  //calculates the sum of all numbers from 1 to a

end;

writeln(sum); //result output
end.

Real Numbers / Floats

We saw that Integers were whole numbers, but what happens when we want to have a numbers such as 1.25 or even 3.333333...? Storing these numbers into a computer's memory used to be quite tricky, especially if they were an infinite array of numbers. Thus, a new data type was created - floating numbers -> float or as they are called in Pascal -> Real. This data type is used to display rational numbers that will probably have a decimal points and/or an exponent. As with the Integer data type, there are several Real types in Pascal with a different range and different memory requirements.

Real Data Type

Type
Range
Size in Bytes
Real
Platform dependent
4 or 8
Single
1.5E-45 .. 3.4E38
4
Double
5.0E-324 .. 1.7E308
8

Using Real - an example

program SphereVolume;

var
  v,r:real;        //volume and radius as real data types

begin
  read(r); //input radius
  v:=(r*r*r*Pi*4)/3; //calculate volume; 
   // Pi is a constant with a value of 3.14

  writeln(v); //output
end.
                   

Characters and Strings

Characters and string come in many different data types and they can be very complex. There also many operation and functions you can do with them which opens up a lot of possibilities for a creative programmer. If you starting out, it is important to note that these data types represent ASCII characters. This means that if you had, let us say, a variable S that was string that had the value of '24' you could not use this variable for mathematical operation as this neither an integer not a real data type.

Chars and Strings in Pascal

Type
Range
Char
A single ASCII char
String
255 ASCII chars
Ansistring
No limit
Shortstring
0 .. 255 (max) ASCII chars

Using chars and strings in Pascal - an example

program Changingastring;


var
  C:Char; // a single character 
  S:String; //our string
  n:integer;

begin
  readln(C);
  readln(n);
  readln(S);
  S[n]:=C; //
  writeln(S);

end.                

Explanation of the above code

Strings work as a sort of array of characters and we can modify each element individually if we so desire. For example:

Our String S is 'ABCDEF' and has 6 characters in it. If we told our program:

writeln(S[3]);

This would output the letter "C". In the code above we input a character, a number and a String. Then we replace the a character in the string that has the position n with the character C.

Example

Input: +, 4, ABCDEF

Output: ABC+EF

Boolean Data Types

I saved what I find the easiest of the elementary data types for last and this is Boolean. This data type requires only one byte and can either be True or False. Bellow is a code that will, hopefully, explain this in more detail.

Using Boolean in Pascal - an example

program Trueorfalse;


var
  check:Boolean; //our Boolean variable
  n,m,sum:integer;
begin
  sum:=0; check:=False; //preset values
  Readln(n);
  Readln(m);

  If (n > 0) and (m >0) then check := True; //first if checker
  sum:=n+m;

  if (sum > 20) or (n*m < sum) then check := False; //second if checker

  If check = True then writeln('Our boolean is true!') 
  else writeln('Our boolean is false!'); //final output checker


end.
                                                            

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)