# Information Technology Grade 12 P1 2015 Memo (Eng)

> Grade 12 Information Technology Paper 1 memorandum from the Eastern Cape Mock Exam 2015 (English), 11 pages. Read online or download the free PDF.

- Page: https://www.hlayiso.com/library/it-p1-memo-gr12-sept-2015-eng/05305945-cbcb-45f4-84bc-3b9a77b0b355
- Updated: 2026-09-27
- Subject: Information Technology
- Grade: Grade 12
- Document type: Memorandum
- Year: 2015
- Exam period: Eastern Cape Mock Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 11

Breadcrumbs: [Home](https://www.hlayiso.com/) › [Library](https://www.hlayiso.com/library) › [Grade 12](https://www.hlayiso.com/library/grade-12) › [Information Technology](https://www.hlayiso.com/library/grade-12/information-technology) › [Information Technology Grade 12 P1 2015 Memo (Eng)](https://www.hlayiso.com/library/it-p1-memo-gr12-sept-2015-eng/05305945-cbcb-45f4-84bc-3b9a77b0b355)

## About this document

Information Technology · Grade 12 · Eastern Cape Mock Exam · 2015. Memorandum, 11 pages. Read online or download the PDF.

Read it free online on the page above; download the PDF from there.

## Document text

Text extracted from the PDF. Layout, diagrams and tables may not survive extraction.

### Page 1

Downloaded from hlayiso.com

                          NATIONAL
                     SENIOR CERTIFICATE

                             GRADE 12

                      SEPTEMBER 2015

           INFORMATION TECHNOLOGY P1
                 MEMORANDUM

MARKS:   150

                  This memorandum consists of 11 pages.

### Page 2

Downloaded from hlayiso.com
2                               INFORMATION TECHNOLOGY P1                   (E/C/SEPTEMBER 2015)

 QUESTION 1: POSSIBLE SOLUTION

 procedure TForm1.btn1Click(Sender: TObject);                    4 marks
 var
  sname,ssurname,srooms : string;
 begin
  sname := ledname.text; 
  ssurname := ledsurname.text; 
  srooms := rgprooms.items[rgprooms.itemindex]; 
  lbldisplay.Caption := sname + ' '+ ssurname+': '+srooms; 

 procedure TForm1.btn2Click(Sender: TObject);                    8 marks
 var
  idays : integer;
  rcost : real;
 begin
  idays := strtoint(edtnumdays.text); 
  if idays <= 5 then
    rcost := idays *250
  else
    rcost := 5 *250 + (idays - 5)*96/100*250; 
  edtcost.text := floattostrf(rcost,ffcurrency,8,2); 

 procedure TForm1.btn3Click(Sender: TObject);                    6 marks
 var
  iminutes, ihours : integer;
  rcost : real;
 begin
  iminutes := strtoint(edtminutes.Text); 
  ihours := round ((iminutes/60)+0.5); 
  rcost := ihours * 30; 
  lblIntCost.Caption := floattostrf(rcost, ffcurrency,8,2); 

 procedure TForm1.btn4Click(Sender: TObject);                    15 marks
 var
  ichar, k, inum, ilen : integer;
  scode : string;
 begin
  ichar := 0; 
  inum := 0; 
  scode := edtpass.text; 
  ilen := length(scode); 
  for k := 1 to ilen do
   begin
    if scode[k] in ['*','?','#','%'] then
      inc(ichar); 

Copyright reserved                                                             Please turn over

### Page 3

Downloaded from hlayiso.com
(EC/SEPTEMBER 2015)                 INFORMATION TECHNOLOGY P1                                      3

 if (scode[k]) in ['0'..'9'] then
      inc(inum); 
    end;
   if (ilen = 10)  and (ichar >= 3)  and (inum >= 3)  then
     ShowMessage('Valid Password') 
   else
     ShowMessage('Invalid Password'); 
 end;
 procedure TForm1.btnQ5Click(Sender: TObject);                       17 marks
 var
   itotal, iran,inights, k, l : integer;
   sstars : string;
 begin
   randomize;
   reddisplay.clear; 
   reddisplay.Paragraph.tabcount := 1; 
   reddisplay.Paragraph.tab[0] := 50; 
   reddisplay.Lines.add('Month'+#9+'No of Nights'); 
   itotal := 0; 
   inights := 0; 

 for k := 1 to 12 do
   begin
  sstars := ''; 
    iran := random(20) + 1; 
    for l := 1 to iran do
      begin
       sstars := sstars + '*'; 
      end;
    reddisplay.lines.add(inttostr(k)  + #9 + sstars + inttostr(iran)); 
    inights := inights + iran; 
   end;
   itotal := inights * 450; 
   reddisplay.lines.add('Total No of Nights booked: '+inttostr(inights)); 
   reddisplay.lines.add('Total Income for the year: '+inttostr(itotal)); 

 end;
                                                                                              [50]

Copyright reserved                                                              Please turn over

### Page 4

Downloaded from hlayiso.com
4                                INFORMATION TECHNOLOGY P1                          (E/C/SEPTEMBER 2015)

 QUESTION 2: POSSIBLE SOLUTION

 unit clstravel_u; 27 marks                                     Question 2 53 marks

 interface
 uses sysutils;

 type
  TTravel = class
   private
    fbooking : string;
    fdest : string;             
    fdate : string;
    fpeople : integer;
    fdiscount : real;
    ftotal : real;
   public
    constructor create(sbooking, sdest, sdate : string; ipeople:integer; rtotal : real); 
    procedure calcdiscount;
    procedure calctotal; 
    function tostring:string; 
    function getdest : string; 
  end;

 implementation

 { TTravel }

 procedure TTravel.calcdiscount; 
 var
  imonth : integer;
  rdiscount : real;
 begin
   imonth := strtoint(copy(fdate,4,2)); 
   if imonth in [2,5,8,11] then
     begin
       rdiscount := 5; 
       if fpeople >= 15 then
         rdiscount := 7.5; 
     end
   else
    if fpeople >= 15 then
      rdiscount := 2.5
    else
      rdiscount := 0; 
    fdiscount := rdiscount/100*ftotal;
 end;

Copyright reserved                                                                     Please turn over

### Page 5

Downloaded from hlayiso.com
(EC/SEPTEMBER 2015)                   INFORMATION TECHNOLOGY P1                                      5

 procedure TTravel.calctotal;
 begin
  ftotal := ftotal - fdiscount; 
 end;

 constructor TTravel.create(sbooking: string; sdest, sdate: string;
  ipeople: integer; rtotal: real);
 begin
  fbooking := sbooking;
  fdest := sdest;
  fdate := sdate;
  fpeople := ipeople;             
  ftotal := rtotal;
  fdiscount := 0; 
 end;

 function TTravel.getdest : string;
 begin
  result := fdest; 
 end;

 function TTravel.tostring: string;
 begin
   result := 'Booking Nr: ' + fbooking + #13 + 'Destination: ' + fdest+#13+'Date: '
   +fdate+#13+'Number of people: '+inttostr(fpeople)+#13+'Discount:
 '+floattostrf(fdiscount,ffcurrency,8,2)+
   #13+ 'Total: '+floattostrf(ftotal,ffcurrency,8,2)+#10;
 end;                    fields                 currency

 end.

Copyright reserved                                                                Please turn over

### Page 6

Downloaded from hlayiso.com
6                              INFORMATION TECHNOLOGY P1                       (E/C/SEPTEMBER 2015)

 unit question2_u; 26 marks

 interface

 uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, clstravel_u, ComCtrls;

 type
  TForm1 = class(TForm)
   btn2_1: TButton;
   redOutput: TRichEdit;
   cboinput: TComboBox;
   procedure btn2_1Click(Sender: TObject);

 private
    {Private declarations}
  public
    {Public declarations}
  end;
 var
  Form1: TForm1;
  Travel : TTravel; 

 implementation

 {$R *.dfm}

 procedure TForm1.btn2_1Click(Sender: TObject);
 var
  myfile, myfile1 : textfile;
  soneline,sinput, sbooking,sdest,sdate : string;
  ipos,ipeople : integer;
  rtotal : real;
 begin
  if fileexists('Destination.txt')<>true then
    begin
     Showmessage('File does not exist'); 
     Exit; 
    end;
  Assignfile(myfile,'Destination.txt'); 
  Reset(myfile); 
   sinput := cboinput.text; 
  while not eof(myfile) do
    begin
     readln(myfile,soneline); 

 ipos := pos(';',soneline);
     sbooking := copy(soneline,1,ipos-1); 
     delete(soneline,1,ipos);

Copyright reserved                                                                Please turn over

### Page 7

Downloaded from hlayiso.com
(EC/SEPTEMBER 2015)                  INFORMATION TECHNOLOGY P1                                     7

     ipos := pos(';',soneline);
     sdest := copy(soneline,1,ipos-1); 
     delete(soneline,1,ipos);

 ipos := pos(';',soneline);
     sdate := copy(soneline,1,ipos-1); 
     delete(soneline,1,ipos);

 ipos := pos(';',soneline);
     ipeople := strtoint(copy(soneline,1,ipos-1)); 
     delete(soneline,1,ipos);

    rtotal := strtofloat(soneline); 
    travel := TTravel.create (sbooking,sdest,sdate,ipeople,rtotal); correct order
    travel.calcdiscount; 
    travel.calctotal; 
    if sinput = 'ALL' then
      redoutput.lines.add(travel.tostring) 
      else
       if travel.getdest = sinput then
         redoutput.lines.add(travel.tostring); 
   end;
   closefile(myfile); 
 end;

 end.

Copyright reserved                                                              Please turn over

### Page 8

Downloaded from hlayiso.com
8                                INFORMATION TECHNOLOGY P1                         (E/C/SEPTEMBER 2015)

 QUESTION 3: POSSIBLE SOLUTION

 unit Question3_u;                                             Question 3: 47 marks

 interface

 uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls, Buttons;

 type
  TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   Label1: TLabel;
   StringGrid1: TStringGrid;
   Button2: TButton;
   RadioGroup1: TRadioGroup;
   redDisplay: TRichEdit;
   BitBtn1: TBitBtn;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
  private
   {Private declarations}
  public
   procedure changeDate(irowf : integer);
   procedure Display;
   {Public declarations}
  end;

 var
   Form1: TForm1;
   irfound : integer;
   ar2flights : array[1..26,1..4] of string =
 (('John','09/09/2015','JHB','CPT'),('Sarah','12/11/2015','ELS','JHB'),('Pete','10/01/2015','J
 HB','CPT'),('Lorna','19/11/2015','DBN','JHB'),('Maxwell','12/11/2015','ELS','DBN'),
 ('Muzi','10/01/2015','JHB','CPT'),('Mavis','19/11/2015','DBN','JHB'),('Michal','12/11/201
 5','ELS','DBN'),
 ('Rahul','10/01/2015','JHB','CPT'),('Vuyisa','19/11/2015','DBN','JHB'),('Masande','12/11/
 2015','ELS','DBN'),('Beena','10/01/2015','JHB','CPT'),('Lungile','19/11/2015','DBN','JHB
 '),('Kazimla','12/11/2015','ELS','DBN'),
 ('Alupheli','10/01/2015','JHB','CPT'),('Ellen','19/11/2015','DBN','JHB'),('Mbongovuyo','1
 2/11/2015','ELS','DBN'),
 ('Sibulele','10/01/2015','JHB','CPT'),('Esihle','19/11/2015','DBN','JHB'),('Ronney','12/11/
 2015','ELS','DBN'),
 ('Lulutho','10/01/2015','JHB','CPT'),('Naledi','19/11/2015','DBN','JHB'),('Justine','12/11/2
 015','ELS','DBN'),('Grace','10/01/2015','JHB','CPT'),('Athi','19/11/2015','DBN','JHB'),('Si
 negugu','12/11/2015','ELS','DBN'));

Copyright reserved                                                                     Please turn over

### Page 9

Downloaded from hlayiso.com
(EC/SEPTEMBER 2015)                      INFORMATION TECHNOLOGY P1                      9

  arrseats : array[1..6] of char = ('A','B','C','D','E','F');
 implementation

 {$R *.dfm}
 //============================================================
 procedure TForm1.Button1Click(Sender: TObject);
 var
   bfound : boolean;
   sname : string;
   irow,irowfound : integer;

 begin
  bfound := false; 
  sname := edit1.text; 
   for irow := 1 to 26 do
     begin
      if ar2flights[irow,1] = sname then
         begin
          bfound := true; 
          irowfound := irow; 
          irfound:=irow; 
         end;
     end;
  if bfound = true then
    begin
     Showmessage(sname+' has been found'); 
      Display;  //Call the procedure Display
     ChangeDate(irowfound); //Call the procedure ChangeDate()

 end
   else
    Showmessage(sname+' has not been found'); 
 end;
 //===========================================================

 procedure TForm1.changeDate(irowf : integer); 
 var
  sdate : string;
 begin
  sdate := inputbox('Enter Date','',''); 
  ar2flights[irowf,2]:= sdate; 
  Showmessage('Date successfully changed'); 

 end;
 //============================================================
 procedure TForm1.Display; 
   irow, icol : integer;
 begin
   stringgrid1.cells[0,0]:='Name'; 

Copyright reserved                                                   Please turn over

### Page 10

Downloaded from hlayiso.com
10                             INFORMATION TECHNOLOGY P1                      (E/C/SEPTEMBER 2015)

 stringgrid1.cells[1,0]:='Date';
   stringgrid1.cells[2,0]:='From';
   stringgrid1.cells[3,0]:='To';
   for irow := 1 to 26 do
     for icol := 1 to 4 do
      stringgrid1.cells[icol-1,irow]  := ar2flights[irow,icol]; 
 end;
 //============================================================
 procedure TForm1.Button2Click(Sender: TObject);
 var
   iseatrow,iseat ,irow: integer;
   cseat : char;
   sseatnr, sFilename,sName : string;
   tFile:Textfile;
 begin
 redDisplay.clear;
   if radiogroup1.itemindex = 0 then
 begin
      iseatrow:= random(6) + 1; 
      repeat
        iseat := random(6) + 1; 
      until (iseat <> 2) and (iseat <> 5); 
      cseat := arrseats[iseat]; 
      sseatnr := inttostr(iseatrow)+cseat; 
     end

  else
   if radiogroup1.itemindex = 1 then
     begin
      iseatrow:= random(24) + 7; 
      iseat := random(6) + 1; 
      sseatnr := inttostr(iseatrow) + arrseats[iseat]; 
     end;
  sName:=ar2flights[irfound,1]; 
  redDisplay.Lines.Add('Name : ' + sName);
  redDisplay.Lines.Add('Date : ' + ar2flights[irfound,2]);
  redDisplay.Lines.Add('From : ' + ar2flights[irfound,3]);   
  redDisplay.Lines.Add('To : ' + ar2flights[irfound,4]);
  redDisplay.Lines.Add('Seat : ' + sseatnr);

  sFileName:=sName+'.txt'; 
  assignfile(tFile,sfileName); 
  rewrite(tFile); 
  writeln(tFile,'Name : ' + sName);
  writeln(tFile,'Date : ' + ar2flights[irfound,2]);
  writeln(tFile,'From : ' + ar2flights[irfound,3]); 
  writeln(tFile,'To : ' + ar2flights[irfound,4]);
  writeln(tFile,'Seat : ' + sseatnr);
  closefile(tFile); 
   redDisplay.Lines.Add('****File '+sName+'.txt successfully saved****'); 
 end;

Copyright reserved                                                               Please turn over

### Page 11

Downloaded from hlayiso.com
(EC/SEPTEMBER 2015)          INFORMATION TECHNOLOGY P1                   11

 //============================================================
 procedure TForm1.FormCreate(Sender: TObject);
 begin
   Display;  //Call the procedure
 end;
 //============================================================
 end.

                                                           TOTAL:     150

Copyright reserved                                         Please turn over

## Related documents

- [IT P1 QP GR12 SEPT 2015 ENG](https://www.hlayiso.com/library/it-p1-qp-gr12-sept-2015-eng/aa653eab-47a5-41ab-9ad0-d4627c152fdf) — Information Technology · QP · 2015 · Eng
- [IT P1 QP GR12 SEPT 2015 AFR](https://www.hlayiso.com/library/it-p1-qp-gr12-sept-2015-afr/ff5603f5-d1d6-4ef5-abb9-c755da166c17) — Information Technology · QP · 2015 · Afr
- [IT P2 MEMO GR12 SEPT2015 (ENG)](https://www.hlayiso.com/library/it-p2-memo-gr12-sept2015-eng/ede4321e-b5a0-403e-a86f-4199fa522997) — Information Technology · Memo · 2015 · Eng
- [Information Technology P1 Nov 2015 Memo Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2015-memo-afr/ed0f17ad-2120-4f04-b0c6-56098d626046) — Information Technology · Memo · 2015 · Afr
- [IT P1 GR12 MEMO SEPT 2022 Afrikaans](https://www.hlayiso.com/library/it-p1-gr12-memo-sept-2022-afrikaans/43cd69be-f0ac-46f4-9d4c-b2503fe09125) — Information Technology · Memo · 2022 · Afr
- [IT P1 GR12 MEMO SEPT 2022 English](https://www.hlayiso.com/library/it-p1-gr12-memo-sept-2022-english/6e7cbe6a-69aa-4c7d-bcd4-dcfeaf4c8272) — Information Technology · Memo · 2022 · Eng

## More from Grade 12 Information Technology

- [IT-P2-GR12 QP-Afr-SEP-2025 watermark](https://www.hlayiso.com/library/it-p2-gr12-qp-afr-sep-2025-watermark/569cc299-ae7c-4635-9514-cf03f9242ebc) — QP · 2025 · Afr
- [IT P2 QP GR12 SEPT 2024 AFR](https://www.hlayiso.com/library/it-p2-qp-gr12-sept-2024-afr/9016098b-e233-49f4-b1dc-f0838363c6af) — QP · 2024 · Afr
- [IT P2 QP GR12 SEPT 2024 English](https://www.hlayiso.com/library/it-p2-qp-gr12-sept-2024-english/83309154-2856-47f1-82cc-cc04c8ab38b1) — QP · 2024 · Eng
- [Information Technology P1 Nov 2024 Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2024-afr/f4b19c44-77ce-482a-9f85-438813c25f87) — QP · 2024 · Afr
- [Information Technology P2 Nov 2024 Eng](https://www.hlayiso.com/library/information-technology-p2-nov-2024-eng/3afa20d1-1c0f-4969-8a56-d690e9b24d70) — QP · 2024 · Eng
- [Information Technology P1 May-June 2023 MG Eng](https://www.hlayiso.com/library/information-technology-p1-may-june-2023-mg-eng/f868554b-8f4f-4370-aa4e-cfa745fc806d) — Memo · 2023 · Eng

## Collection

- [Grade 12 past papers](https://www.hlayiso.com/grade-12/past-papers)

---

Hlayiso: free CAPS and IEB past papers, memos, notes and study guides for South African learners. When citing, link the page URL above, not a PDF or /api/ URL.
