You are on page 1of 1

PROGRAMMING IN PROGRAMMING IN

PASCAL PASCAL
RECORDS Student1
A RECORD IS A STRUCTURED DATA TYPE THAT
ALLOWS A GROUP OF RELATED ITEMS TO BE
REFERENCED BY A SINGLE NAME. IdNum
THE COMPONENTS OF A RECORD MAY BE OF
DIFFERENT TYPES. A RECORD DESCRIPTION IS Name
POSSIBLE WITH THE USE OF RESERVED WORD
RECORD AND END IN TYPE SECTION.
Age
DECLARATION OF RECORDS
TYPE COMPONENTS OF A RECORD ARE CALLED
FIELDS, AND EACH FIELD HAS A DATA TYPE.
Studentinfo = RECORD
FIELDS ARE ASSOCIATED BY THEIR NAME, NOT
IdNum : INTEGER ; BY AN INDEX. EACH FIELD, IN ABOVE
Name : STRING [30] ; DECLERATION CAN BE IDENTIFIED BY THEIR
NAME SEPERATED BY A PERIOD FROM THE
Age : INTEGER ; RECORD NAME.
END ; Student1.Idnum := 5555 ;

VAR Student1.Name := Ahmet KAZIM ;

Student1 : Studentinfo ; Student1.Age := 17 ;


IF Student1.Age < 20 THEN
AFTER THE ABOVE DECLARATION WE WILL
HAVE SUCH AN ALLOCATION IN MEMORY FOR WRITELN(Student1.Name : 40)
Student1. Writeln(‘The birthday of ‘,Student1.Name,’is’,1998-Student1.Age);

1 2

PROGRAMMING IN PROGRAMMING IN
PASCAL PASCAL
WITH DO USING Records
COPYING RECORDS
TYPE
TYPE
String20 = String [20] InfoA = RECORD
Int5 = ARRAY [1..3] OF INTEGER; Field1 : INTEGER ;
StudentInfo = RECORD Field2 : REAL ;
Name : String20 ; Field3 : CHAR ;
Score : Int3 ; END;
Average : REAL ; InfoB = RECORD
Field1 : INTEGER ;
END ;
Field2 : REAL ;
VAR Field3 : CHAR ;
Student1 : Studentinfo ; END;
BEGIN VAR
Read(Student1.Name) Rec1, Rec2 : InfoA ;
FOR i:=1 TO 3 DO Rec3 : InfoB ;
Read(Student1.Score[i]) ; ACCORDING TO THE ABOVE DECLARATION
Student1.Average :=(Student1.Score[1]+
Student2.Score[2]+Student3.Score[3])/3 WITH Recl DO
END. BEGIN
Field1 := 25 ;
WHEN WORKING WITH FIELDS OF A RECORD Field2 := 89,75 ;
TURBOPASCAL PROVIDES A MORE CONVENIENT Field3 := ’M’ ;
METHOD OF REFERRING TO THOSE FIELDS : END ;
WITH A WITH..DO STATEMENT. ……..
……..
WITH Student DO
Rec2 := Rec1 ; {POSSIBLE, be cause they have identical type}
BEGIN ……..
Read (Name) ; Rec3 := Rec1 ; {Gives compilation error }
FOR i:=1 TO 3 DO …….. WITH Rec3 DO
READ(score[i]) ; Rec3.Field1 := Rec1.Field1 ; BEGIN
Rec3.Field1 := Rec1.Field1 ;
Average:= (score[1]+score[2]+score[3]) Rec3.Field2 := Rec1.Field2 ; Rec3.Field2 := Rec1.Field2 ;
Rec3.Field3 := Rec1.Field3 ;
END; Rec3.Field3 := Rec1.Field3 ; END.

3 4

You might also like