• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
The Structure of a Pascal Program
E
EVERY
VERYP
PASCAL
ASCALPROGRAM
PROGRAMM UST
MUSTFOLLOW
FOLLOWA
ABAS\u0130C
BAS\u0130CSTRUCTURE
STRUCTURE.W
.WH\u0130LE
H\u0130LETH\u0130S
TH\u0130SSTRUCTURE
STRUCTURE\u0130S
\u0130SVE RY
VERYS\u0130M\u0130L AR
S\u0130M\u0130LARTO
TOK
KAREL
AREL
PROGRAMM\u0130NG
PROGRAMM\u0130NG,
,THERE
THEREARE
ARESEVERAL
SEVERALD\u0130FFERENCE S
D\u0130FFERENCES.B
.BELOW
ELOW\u0130S
\u0130STHE
THEBAS\u0130C
BAS\u0130CSTRUCTURE
STRUCTURET H AT
THATEV E RY
EVERYP
PASCAL
ASCALPROGRAM
PROGRAMM UST
MUST
FOLLOW
FOLLOW.
.
PROGRAMProgramName;
VAR VariableName : VariableType;
VariableName : VariableType;
...
PROCEDUREProcedureName;
variables here if necessary

BEGINSome Code;
END;
FUNCTION FunctionName(variableList): VariableType;

variables here if necessary
BEGIN

Some Code if necessary;
FunctionName := some expression
More Code if necessary;

END;
... more functions and procedures if necessary ...
BEGINthe main program block. It should be small and all

work should be delegated to the procedures and
functions.
It often consists of a WHILE loop that calls in
turn procedures and functions in the appropriate
order.

END.
N
NOTE
OTE:
:T
THE
HEFUNCT\u0130ONS
FUNCT\u0130ONSAND
ANDPROCEDURES
PROCEDURESCAN
CANAPPEAR
APPEAR\u0130N
\u0130NANY
ANYORDER
ORDER.T
.THE
HEO N LY
ONLYREQU\u0130REME NT
REQU\u0130REMENT\u0130S
\u0130ST H AT
THAT\u0130F
\u0130FONE
ONEPROCEDUR E
PROCEDURE
OR
ORFUNCT\u0130ON
FUNCT\u0130ONUSES
USESANOTHER
ANOTHERONE
ONE,
,T H AT
THATL ATT E R
LATTERONE
ONEM UST
MUSTH AV E
HAVEBEEN
BEENDEF\u0130NED
DEF\u0130NEDALREADY
ALREADY.
.
Variable Types
T
THERE
HEREARE
AREF\u0130VE
F\u0130VEBAS\u0130C
BAS\u0130CVAR \u0130ABLE
VAR\u0130ABLETYPES
TYPES\u0130N
\u0130NP
PASCAL
ASCAL:
: INTEGER, REAL, CHAR, BOOLEAN
INTEGER, REAL, CHAR, BOOLEAN,
,AND
ANDSTRING
STRING.T
.THEY
HEY
ARE
AREDEF\u0130NED
DEF\u0130NEDAS
ASFOLLOWS
FOLLOWS:
:
I
INT
NT
EG
EG
ER
ER
A
APOS \u0130T \u0130VE
POS\u0130T\u0130VEOR
ORN EG AT \u0130 V E
NEGAT\u0130VE\u0130NTEGER
\u0130NTEGERBETWEEN
BETWEENA
ASMALLES T
SMALLEST(
(NEGAT\u0130VE
NEGAT\u0130VE)
)AND
ANDA
ALARGES T
LARGESTNUMBER
NUMBER.I
.IN
N
GENERAL
GENERALTHE
THESM ALLEST
SMALLESTAND
ANDLARGEST
LARGESTNUMB ER
NUMBERPOSS \u0130BLE
POSS\u0130BLEDEPENDS
DEPENDSON
ONTHE
THEM ACH\u0130NE
MACH\u0130NE;
;FOR
FOR IBM PC
IBM PC
AND
ANDT
TURBO
URBOP
PASCAL
ASCALTHEY
THEYARE
ARE:
:
SMALLEST
SMALLESTI
INTEGER
NTEGER:
:-32766
-32766
LARGEST
LARGESTI
INTEGER
NTEGER:
:32767
32767
RE
RE
AL
AL
C
CAN
ANC O N TA \u0130 N
CONTA\u0130NA
AREAL
REALNUMBER
NUMBER\u0130N
\u0130NSC\u0130ENT\u0130F\u0130C
SC\u0130ENT\u0130F\u0130COR
ORDEC\u0130MAL
DEC\u0130MALN O TAT \u0130 O N
NOTAT\u0130ON.T
.THERE
HERE\u0130S
\u0130SA
AL\u0130M\u0130T
L\u0130M\u0130TON
ONTHE
THES\u0130ZE
S\u0130ZEAND
AND
ACCURACY
ACCURACYOF
OFTHE
THEREAL
REALNUMBER
NUMBERT H AT
THATW\u0130 LL
W\u0130LLBE
BECOVERED
COVEREDL AT E R
LATER.V
.VAL\u0130D
AL\u0130DREAL
REALNUMBERS
NUMBERSARE
ARE,
,FOR
FOR
EXAMPLE
EXAMPLE:
:
D
DEC\u0130MAL
EC\u0130MALN
NOTAT\u0130ON
OTAT\u0130ON:
:1.234
1.234OR
OR-34.5507
-34.5507
S
SC\u0130ENT\u0130F\u0130C
C\u0130ENT\u0130F\u0130CN
NOTAT\u0130ON
OTAT\u0130ON:
:5.0E-3
5.0E-3OR
OR-7.443E3
-7.443E3
CH
CH
AR
AR
A
ANY
NYKEY
KEYON
ONTHE
THEKEYBOARD
KEYBOARD\u0130S
\u0130SCONS\u0130DERED
CONS\u0130DEREDA
AVA L \u0130 D
VAL\u0130DCHARACTER
CHARACTER.C
.CHARACTERS
HARACTERSARE
AREUS U A L LY
USUALLY
ENCLOSED
ENCLOSED\u0130N
\u0130NS\u0130NGLE
S\u0130NGLEQU OTES
QUOTES.F
.FOR
OREXAMPLE
EXAMPLE:
:'1'
'1'\u0130S
\u0130SA
ACHARACTER
CHARACTER,
,WH \u0130LE
WH\u0130LE1
1\u0130S
\u0130SAN
AN\u0130NTEGER
\u0130NTEGER.
.
BO
BO
OL
OL
EA
EA
N
N
W
WE
EW\u0130 LL
W\u0130LLDEAL
DEALW\u0130TH
W\u0130THBOOLEAN
BOOLEANVAR \u0130ABLES
VAR\u0130ABLESL AT E R
LATER
ST
STA
AST R \u0130NG
STR\u0130NG\u0130S
\u0130SA
ACOLLECT\u0130ON
COLLECT\u0130ONOF
OFUP
UPTO
TO255
255CHARACT ERS
CHARACTERSENCLOSED
ENCLOSED\u0130N
\u0130NS\u0130NGLE
S\u0130NGLEQUOTES
QUOTES.F
.FOR
OREXAMPLE
EXAMPLE:
:
RIN
RIN
G
G'B
'BERT
ERT'
'\u0130S
\u0130SA
ASTR \u0130NG
STR\u0130NGOF
OF4
4CHARACT ERS
CHARACTERS.M
.MORE
ORED ETA \u0130 L S
DETA\u0130LSABOUT
ABOUTSTR\u0130NGS
STR\u0130NGSW\u0130 LL
W\u0130LLFOLLOW
FOLLOWL AT E R
LATER.
.
Assigning Values to Variables
V
VAR\u0130ABLES
AR\u0130ABLESARE
ARES \u0130M P LY
S\u0130MPLYA
ANAME
NAMEFOR
FORA
ABL OCK
BLOCKOF
OFM EM O RY
MEMORYCELLS
CELLS\u0130N
\u0130NMA\u0130N
MA\u0130NM EM ORY
MEMORY.I
.IF
FA
AVA L U E
VALUE\u0130S
\u0130SASS \u0130GNED
ASS\u0130GNEDTO
TOA
AVA R \u0130A BLE
VAR\u0130ABLE,
,
THAT
THATVA L U E
VALUEMUST
MUSTBE
BEOF
OFTHE
THESAME
SAMETYPE
TYPEAS
ASTHE
THEVA R \u0130A BLE
VAR\u0130ABLE,
,AND
ANDW\u0130LL
W\u0130LLBE
BESTORED
STORED\u0130N
\u0130NTHE
THEM EM O RY
MEMORYADDRESS
ADDRESSDES \u0130GNATED
DES\u0130GNATEDBY
BY
THE
THEVAR \u0130ABLE
VAR\u0130ABLENAME
NAME.T
.THE
HEASS\u0130GNME NT
ASS\u0130GNMENTS TAT E M E NT
STATEMENT\u0130S
\u0130STHE
THESEM\u0130COL ON
SEM\u0130COLON-
-EQUAL
EQUAL:=
:=.
.
V
VAR\u0130ABLES
AR\u0130ABLESMUST
MUSTBE
BEDECLARED
DECLAREDAT
ATTHE
THEBEG\u0130NN \u0130NG
BEG\u0130NN\u0130NGOF
OFTHE
THEPROGRAM
PROGRAM,
,A
APROCEDUR E
PROCEDURE,
,OR
ORA
AFUNCT\u0130 ON
FUNCT\u0130ON
V
VAR\u0130ABLES
AR\u0130ABLESMUST
MUSTBE
BE\u0130N\u0130T\u0130AL\u0130ZED
\u0130N\u0130T\u0130AL\u0130ZEDBEFORE
BEFORETHEY
THEYCAN
CANBE
BEUSED
USED.
.
V
VAR\u0130ABLES
AR\u0130ABLESCAN
CANBE
BEREUSED
REUSEDAS
ASOFTEN
OFTENAS
ASNEC ESSARY
NECESSARY.T
.THE\u0130R
HE\u0130ROL D
OLDVA L U E
VALUE\u0130S
\u0130SS \u0130 MP LY
S\u0130MPLYOVERWR\u0130TTEN
OVERWR\u0130TTENBY
BYA
ANEW
NEW
ASS\u0130GNMENT
ASS\u0130GNMENT.
.
E
EXAMPLE
XAMPLE:
:
PROGRAM Test;
VAR x : REAL;
{ variable name is x, type is real
i : INTEGER:
{ variable name is i, type is integer
c : CHAR;
{ variable name is c, type is character
s : STRING;
{ variable name is s, type is string
BEGINx := -34.55;
{ valid real number assigned to variable x }
x := -3.9E-3;
{ valid real number assigned to variable x }
WRITELN(x);
{ x contains the value -3.9E-3 }
i := 10;
{ valid integer number assigned to variable i }
i := i * i;
{ valid (!) - i will be 100 now }
i := 9933;
{ valid integer number assigned to variable i }
i := -99999;
{invalid integer - too small }
i := 999.44;
{invalid assignment - types do not match }
c := '1';
{ valid character assigned to variable c }
c := 1;
{invalid assignment - types do not match }
c := 'Bert';
{invalid assignment - types do not match }
c := 'd';
{ valid character assigned to variable c }
WRITELN(c);
{ c contains the value 'd' }
d := 'c';
{unknown variable - the variable d is not declared }
WRITELN(s);
{invalid reference - s has undefined value }
END.
Formatted Input and Output
Reading Information
To read information from the keyboard, you can the commandREAD LN, as in the following example:
PROGRAM Test;
VAR x : REAL;
{ x is declared to be real }
i : INTEGER;
{ i is declared to be an integer }
c : CHAR;
{ c is declared to be a character }
BEGINREADLN(x);

{ user can type a real number, followed by
the return key. The value will be stored
in the variable x. If the user input is
not a real (or integer) number, a
runtime error (invalid assignment) will

occur. }
READLN(i);
{ user can type a integer, followed by
the return key. The value will be stored

in the variable i. If the user input is
not an integer, a runtime error (invalid
assignment) will occur. }

READLN(c);

{ user can type any character, followed by
the return key. The value will be stored in
the variable c and will be a character. If
a user enters 1, c will be the character '1'
not the integer 1. }

READLN;
{ user can type a single return. }
END.
The exact workings of theREADLN command will be discussed later.
Writing Information
To write information on the screen, you can use theWRITE orWRITELN command. You can write the
content of variables or simple text. There are several variations:
W
WR\u0130T\u0130NG
R\u0130T\u0130NGT
TEXT
EXTWRITE(
WRITE(
'
'ANY
ANY
TEXT
TEXT');
');
WR\u0130TES
WR\u0130TESANY
ANYTEXT
TEXTENCLOSED
ENCLOSED\u0130N
\u0130NS\u0130MPLE
S\u0130MPLEQU OTES
QUOTESON
ONTHE
THESCREEN
SCREEN
W
WR\u0130T\u0130NG
R\u0130T\u0130NG
\u0130NTEGERS
\u0130NTEGERS
UNFORMATTED
UNFORMATTED
WRITE(
WRITE(
I);
I);
I
I\u0130S
\u0130SAN
AN\u0130NTEGER
\u0130NTEGERVAR \u0130ABLE
VAR\u0130ABLE
W
WR\u0130T\u0130NG
R\u0130T\u0130NG
\u0130NTEGERS
\u0130NTEGERS
FORMATTED
FORMATTED
WRITE(
WRITE(
I:
I:NUM
NUM);
);
I
I\u0130S
\u0130SAN
AN\u0130NTEGER
\u0130NTEGERAND
ANDNUM
NUM\u0130ND \u0130CATES
\u0130ND\u0130CATESTHE
THETO TA L
TOTALPOS \u0130T \u0130ONS
POS\u0130T\u0130ONSTO
TOBE
BEUSED
USED.I
.IF
FTHE
THE
VALUE
VALUECONTA \u0130NED
CONTA\u0130NED\u0130N
\u0130NTHE
THEVAR \u0130ABLE
VAR\u0130ABLEI
INEEDS
NEEDSMORE
MORED \u0130G\u0130TS
D\u0130G\u0130TS,
,N UM
NUM\u0130S
\u0130S\u0130GN ORED
\u0130GNORED.
.
W
WR\u0130T\u0130NG
R\u0130T\u0130NGR EALS
REALS
UNFORMATTED
UNFORMATTED
WRITEL
WRITEL
N(
N(X
X);
);
X
X\u0130S
\u0130SA
AREAL
REALVA R \u0130A BLE
VAR\u0130ABLE.W
.W\u0130LL
\u0130LLA LWAY S
ALWAYSWR \u0130TE
WR\u0130TETHE
THEREAL
REALNUMB ER
NUMBER\u0130N
\u0130NSC\u0130ENT\u0130F \u0130C
SC\u0130ENT\u0130F\u0130C
NOTAT\u0130ON
NOTAT\u0130ONAND
AND\u0130S
\u0130SALMOST
ALMOSTNEVER
NEVERW H AT
WHATYOU
YOUWA N T
WANT.
.
W
WR\u0130T\u0130NG
R\u0130T\u0130NGR EALS
REALS
FORMATTED
FORMATTED
WRITEL
WRITEL
N(X:
N(X:NUM
NUM
1:
1:NUM
NUM2)
2)
;
;
X
X\u0130S
\u0130SA
AREAL
REALVAR \u0130ABLE
VAR\u0130ABLE,
,NUM
NUM1
1\u0130S
\u0130STHE
THET OTA L
TOTALAMOUNT
AMOUNTOF
OFD\u0130G \u0130TS
D\u0130G\u0130TSTO
TOUSE
USE
(
(\u0130NCLUD\u0130NG
\u0130NCLUD\u0130NGS\u0130GN
S\u0130GNAND
ANDPER\u0130 OD
PER\u0130OD)
)AND
ANDN UM
NUM2
2\u0130S
\u0130STHE
THENUMB ER
NUMBEROF
OFD\u0130G \u0130TS
D\u0130G\u0130TSAFT ER
AFTERTHE
THE
PER\u0130OD
PER\u0130OD.
.
N
NOTE
OTE:
:T
THE
HESAM E
SAMERULES
RULESA P P LY
APPLYFOR
FORTHE
THECOMMAND
COMMANDWRITELN
WRITELNB UT
BUTTH\u0130S
TH\u0130SCOMMAND
COMMANDALSO
ALSOPOS\u0130T\u0130 ONS
POS\u0130T\u0130ONSTHE
THECURSOR
CURSORTO
TOTHE
THE
F\u0130RST
F\u0130RSTPOS \u0130T \u0130ON
POS\u0130T\u0130ONOF
OFTHE
THENEXT
NEXTL\u0130NE
L\u0130NE.
.
Y
YOU
OUCAN
CANCOMB\u0130NE
COMB\u0130NEWR \u0130TT\u0130NG
WR\u0130TT\u0130NGTEXT
TEXTAND
ANDMORE
MORETHAN
THANONE
ONEVAR \u0130ABLE
VAR\u0130ABLEBY
BYSEPERAT\u0130NG
SEPERAT\u0130NGTHE
THE\u0130ND\u0130V \u0130DUAL
\u0130ND\u0130V\u0130DUALCOMPONENTS
COMPONENTSBY
BYA
ACOMMA
COMMA.
.
H
HERE
ERE\u0130S
\u0130SAN
ANEXAMPLE
EXAMPLE:
:
PROGRAM Test;
VAR x : REAL;
i : INTEGER;
j : INTEGER;
BEGINx := 12.449;

i := 10;
j := -300;
WRITE('This is some text');
WRITELN('Unformatted integer ',i);
WRITELN('Unformatted integer computation ',i*i);
WRITELN('formatted integer',i:4);
WRITELN('formatted integer',j:4);
WRITELN('Unformatted real ',x);
WRITE('Formatted real');
WRITE(x:8:2);
WRITELN('all in one line');

END.
WH\u0130CH
WH\u0130CHW\u0130LL
W\u0130LLPRODUCE
PRODUCETHE
THEFOLLOW \u0130NG
FOLLOW\u0130NGOUTPUT
OUTPUT:
:
This is some textUnformatted integer 10
Unformatted integer computation 100
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...