# Information Technology Grade 11 P1 2014 Memo

> Grade 11 Information Technology Paper 1 memorandum from the Eastern Cape November 2014, 24 pages. Read online or download the free PDF.

- Page: https://www.hlayiso.com/library/it-p1-memo/632ef1a6-20df-4471-8cec-03cd822a93aa
- Updated: 2026-09-27
- Subject: Information Technology
- Grade: Grade 11
- Document type: Memorandum
- Year: 2014
- Exam period: Eastern Cape November
- Paper: 1
- Curriculum: CAPS
- Pages: 24

Breadcrumbs: [Home](https://www.hlayiso.com/) › [Library](https://www.hlayiso.com/library) › [Grade 11](https://www.hlayiso.com/library/grade-11) › [Information Technology](https://www.hlayiso.com/library/grade-11/information-technology) › [Information Technology Grade 11 P1 2014 Memo](https://www.hlayiso.com/library/it-p1-memo/632ef1a6-20df-4471-8cec-03cd822a93aa)

## About this document

Information Technology · Grade 11 · Eastern Cape November · 2014. Memorandum, 24 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 11

                       NOVEMBER 2014

           INFORMATION TECHNOLOGY P1
                 MEMORANDUM

MARKS:   150

                  This memorandum consists of 12 pages.

### Page 2

Downloaded from hlayiso.com
2                       INFORMATION TECHNOLOGY P1             (NOVEMBER 2014)

QUESTION 1: DELPHI DATABASE CONNECTIVITY

Mark Allocation

SAMPLE DELPHI SOLUTION QUESTION 1
unit Unit1;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, CheckLst, ComCtrls;
type
  TForm1 = class(TForm)
      Label1: TLabel;
      Label2: TLabel;
      edtName: TEdit;
      edtSur: TEdit;
      Label3: TLabel;
      edtGross: TEdit;
      Label4: TLabel;
      edtSGross: TEdit;
      Label5: TLabel;
      edtMaid: TEdit;
      Label6: TLabel;
      edtFood: TEdit;
      Label7: TLabel;
      edtAcco: TEdit;
      Label8: TLabel;
      edtLoan: TEdit;
      Button1: TButton;
      BitBtn1: TBitBtn;
      Label10: TLabel;
      edtTitle: TEdit;
      redDisplay: TRichEdit;
      Button2: TButton;
      procedure Button1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure Button2Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
var
  Form1: TForm1;
  totCash:real;

implementation

//uses Unit2;

### Page 3

Downloaded from hlayiso.com
(NOVEMBER 2014)           INFORMATION TECHNOLOGY P1                  3
 {$R *.dfm}
 // Function to calculate the Income Tax and Net Salary
 function NetSalary(msGross:string):real;
 var
  yGross, mrGross:real;
 begin
  mrGross:=StrToFloat(msGross);

 yGross:=mrGross*12 -67134.00; 
   if (yGross>0) and (yGross<165600.00) 
   then NetSalary:=mrGross - yGross*0.18/12 else
   if (yGross>165001.00) and (yGross<258750.00) 
   then NetSalary:=mrGross - mrGross*0.25 else
   if (yGross>258751.00) and (yGross<358110.00) 
   then NetSalary:=mrGross - mrGross*0.30 else
   if (yGross>358111.00) and (yGross<500940.00) 
   then NetSalary:=mrGross - mrGross*0.35 else
  if (yGross>500941.00) and (yGross<638600.00) 
  then NetSalary:=mrGross - mrGross*0.38
  Else
  if (yGross>638601) then NetSalary:=mrGross - mrGross*0.40; 
  end;

 procedure TForm1.Button1Click(Sender: TObject);
 Var
 netSal,famSal, totSal,totExp,tloan:real;
 begin
   redDisplay.Clear;
   //Set the height of the form
   Form1.ClientHeight:=417;
   //Calculate the salaries
   netSal:=NetSalary(edtGross.Text); 
   famSal:=netSal+ NetSalary(edtSGross.Text); 
   //Calculate the Total Expenses
   totExp:=strtofloat(edtMaid.Text) + strtofloat(edtAcco.Text)+
 strtofloat(edtFood.Text); 
   //Calculate the money available for the loan repayment
   totCash:=famSal-totExp; 
   tLoan := strtofloat(edtLoan.text); 
        mval:=totCash-(tLoan/24); 
       //Display
   redDisplay.Lines.Add(edtTitle.Text +' '+edtName.Text+'
 '+edtSur.Text);
   redDisplay.Lines.Add('Your Monthly Net Salary after Tax
 deduction is '+ FloattoStr(netSal)); 
   redDisplay.Lines.Add('Your Familys Monthly Net Salary after Tax
 deduction is '+ FloattoStr(famSal)); 
   redDisplay.Lines.Add('After expenses your income is '+
 FloattoStr(totCash)); 
 if mval >3000 then
        redDisplay.Lines.Add('Monthly Repayment of
 '+FloatToStr((tLoan/24))+'You Qualify for the Loan') 
     Else
        redDisplay.Lines.Add('Monthly Repayment of
 '+FloatToStr((tLoan/24))+' You do not qualify for the Loan'); 

 end;

### Page 4

Downloaded from hlayiso.com
4                       INFORMATION TECHNOLOGY P1   (NOVEMBER 2014)

procedure TForm1.FormCreate(Sender: TObject);

Begin

    //Clear all the edits
    edtName.Clear;
    edtSur.Clear;
    edtTitle.Clear;
    edtGross.Clear;
    edtSGross.Clear;
    edtMaid.Clear;
    edtFood.Clear;
    edtAcco.Clear;
    edtLoan.Clear;

end;

end.
                                                               [34]

### Page 5

Downloaded from hlayiso.com
(NOVEMBER 2014)              INFORMATION TECHNOLOGY P1                       5

 QUESTION 2: DELPHI PROGRAMMING

 SAMPLE: DELPHI SOLUTION QUESTION 2

 unit Q_2;

 interface

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

 type
   TForm2 = class(TForm)
     redDisplay: TRichEdit;
     Button1: TButton;
     Categories: TButton;
     procedure FormCreate(Sender: TObject);
     procedure Button1Click(Sender: TObject);
     procedure CategoriesClick(Sender: TObject);
   private
     { Private declarations }
     function cdValid(sCode: String; nChar:String): Boolean;
      procedure loadfile;
   public
     { Public declarations }
   end;

 var
   Form2: TForm2;
   arrCodes:Array[1..35] of string; 
   arrDesc:Array[1..35] of string; 
   iNum:integer; 

 implementation

 {$R *.dfm}
 //-----------------------------------------------------------------------
 procedure TForm2.Button1Click(Sender: TObject);
 begin
 loadfile; 
 end;

 procedure TForm2.CategoriesClick(Sender: TObject);
 var
 iCount,sBU : Integer;
 sList , sCateg : String;
 begin
     loadfile; 
     redDisplay.Clear;
     sBU := 0; 
     redDisplay.Lines.Add('List of furniture type represented: '); 
     redDisplay.Lines.Add(' ');
     For iCount := 1 to iNum do
       Begin
          sCateg := Copy (arrFCodes[iCount], 1 ,2); 
             if sCateg='BU' then
             begin
             sBU:=sBU+1; 
             end;

### Page 6

Downloaded from hlayiso.com
6                        INFORMATION TECHNOLOGY P1                (NOVEMBER 2014)

       End;
    redDisplay.lines.add('The number of Bedroom Units is : '
+IntToStr(sBU)); 
    redDisplay.lines.add('The number of Bedroom Suites is : '
+IntToStr(iNum-sBU)); 
    redDisplay.lines.add('The Total number is : ' +IntToStr(iNum)); 

end;

function TForm2.cdValid(sCode: String; cdesc:char): Boolean; 
var k : Integer;
begin
  result := True; 
  if sCode[3] <> cdesc then result:=false
   else     begin
  if length(sCode) <> 7
     then Result := false
      else begin
        for k := 1 to 5 do
             if not(sCode[k] in ['A'..'Z'])  then Result := false; 
        for k := 6 to 7 do
             if not(sCode[k] in ['0'..'9'])  then Result := false; 

       end;
       end; //end else
end;
//-----------------------------------------------------------------------

procedure TForm2.loadfile; 
var TextF :TextFile; 
    sName, sLine,sCode : String;
    iCommaPos, iInvalid : Integer;
begin

    if FileExists('furniture.txt') = False then
    begin
      MessageDlg('Sorry data file not located - application will now
terminate ', mtError,mbOk] , 0); 
      Application.Terminate; 
    end;
    iNum := 0; 
    iInvalid := 0; 
    AssignFile(TextF, 'furniture.txt'); 
    Reset(TextF); 
    while not eof(TextF) do
    begin
    inc(iNum); 
      Readln(TextF, sLine); 
      iCommaPos := Pos (',' , sLine);
      sName := Copy (sLine , 1 , iCommaPos - 1); 
      Delete(SLine,1,iCommaPos);
      sCode:=sLine; 
      arrCodes[iNum] := sCode;
      arrDesc[iNum] :=sName;
      if CdValid(sCode,sName[1])  //test for valid
            then begin
redDisplay.Lines.Add(arrDesc[iNum] +'   '+arrCodes[iNum] + '<----Valid
Code' ); 

### Page 7

Downloaded from hlayiso.com
(NOVEMBER 2014)                  INFORMATION TECHNOLOGY P1                7

             end
            else
            begin
              inc(iInvalid); 
         redDisplay.Lines.Add(arrFDesc[iNum]+'
 '+arrFCodes[iNum]+ ' <---
 Invalid Code' ); 
          end; //end if
     end;
     redDisplay.Lines.Add('' );
     redDisplay.Lines.Add('Number of invalid Codes:   ' +
 IntToStr(iInvalid)); 
     redDisplay.Lines.Add('Number of valid Codes:   ' + IntToStr(iNum-
 iInvalid)); 
     CloseFile(TextF); 
 end;

 procedure TForm2.FormCreate(Sender: TObject);
 begin
 redDisplay.Clear;

 end;

 end.
                                                                         [58]

### Page 8

Downloaded from hlayiso.com
8                      INFORMATION TECHNOLOGY P1              (NOVEMBER 2014)

QUESTION 3: DELPHI PROGRAMMING

Mark Allocation

SAMPLE DELPHI SOLUTION QUESTION 3

unit Q3_u;

interface

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

type
  TForm1 = class(TForm)
     edtName: TEdit;
     edtSurname: TEdit;
     edtDob: TEdit;
     lblName: TLabel;
     lblSurname: TLabel;
     lblDob: TLabel;
     btngenerate: TButton;
     lblPassword: TLabel;
     procedure btngenerateClick(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btngenerateClick(Sender: TObject);

Var
cName, cSurname,v1,v2:string;
cDob,k,i:integer;
begin

cName:= edtName.Text; 
cSurname:=edtSurname.Text; 
{if cName='' then
   ShowMessage('Enter Name Please');
if cSurname='' then
   ShowMessage('Enter Surname Please');
if edtDob.Text ='' then
   ShowMessage('Enter Date of Birth Please');
   Exit;}

### Page 9

Downloaded from hlayiso.com
(NOVEMBER 2014)           INFORMATION TECHNOLOGY P1                    9

cDob:=StrToInt(edtDob.Text); 

v1:='';
v2:='';
  for i := 1 to length(cName) do
      if cName[i] In ['a','e','i','o','u','A','E','I','O','U'] 
        then v1:=v1+cName[i]; 

  for i := 1 to length(cSurname)  do
      cSurname[i] In ['a','e','i','o','u','A','E','I','O','U'] 
          then v2:=v2+cSurname[i]; 
  Randomize; 
  k:=cDob+2000+random(99)+1; 

lblPassword.Caption:= v1[1] +v2[1]  + IntTostr(k) ;

end;

                                                                    [20]

### Page 10

Downloaded from hlayiso.com
10                       INFORMATION TECHNOLOGY P1             (NOVEMBER 2014)

QUESTION 4: DELPHI PROGRAMMING AND DATABASE

Mark Allocation

SAMPLE DELPHI SOLUTION QUESTION 4

unit Q_4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, Grids, DBGrids,DMQ4, StdCtrls, Buttons;

type
  TForm2 = class(TForm)
     DBGrid1: TDBGrid;
     BtnA: TButton;
     BtnB: TButton;
     BtnC: TButton;
     BtnD: TButton;
     BtnE: TButton;
     BtnF: TButton;
     BitBtn1: TBitBtn;
     procedure BtnAClick(Sender: TObject);
     procedure BtnBClick(Sender: TObject);
     procedure BtnCClick(Sender: TObject);
     procedure BtnDClick(Sender: TObject);
     procedure BtnEClick(Sender: TObject);
     procedure BtnFClick(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.BtnAClick(Sender: TObject);
begin

       DataForm.AdoTable1.Sort := 'Brand DESC, Size ASC';

end;

procedure TForm2.BtnBClick(Sender: TObject);
begin
  with DataForm.AdoTable1 do
    begin
      Filter := 'Brand = ''LG'''; 
      Filtered := True;

### Page 11

Downloaded from hlayiso.com
(NOVEMBER 2014)            INFORMATION TECHNOLOGY P1                11

     end;
  ShowMessage('Types of Televisions by LG:  ' +
IntToStr(DataForm.AdoTable1.RecordCount));
  DataForm.AdoTable1.Filtered := False;
end;
procedure TForm2.BtnCClick(Sender: TObject);
var iSum : Integer;
begin
   iSum := 0; 
   with DataForm do
      begin
        AdoTable1.Open; 
        AdoTable1.First; 
        while not AdoTable1.Eof do
           begin
             iSum := iSum + AdoTable1['Stock']; 
             AdoTable1.Next; 
           end;
      end;
  ShowMessage('Number of all Televisions in Stock: ' +
IntToStr(iSum)); 
end;

procedure TForm2.BtnDClick(Sender: TObject);
var
Tbrand:string;
cost:real;
begin
cost:=0; 
Tbrand:=inputbox('Search','Enter Brand',''); 
with DataForm do
    begin
       AdoTable1.Open; 
       AdoTable1.First; 
          while not Adotable1.Eof do
          begin
              if AdoTable1['Brand']=Tbrand then

              cost:=cost + (AdoTable1['Price']*
adoTable1['Stock']); 
              AdoTable1.Next; 
         end;
        end;//while
  if cost =0 then

   ShowMessage('That type of Television does not exist: Check you
spelling and try again' ) 
   else
 ShowMessage('Total Value of Televisions : R' FloatToStr(cost));
  DataForm.AdoTable1.Filtered := False;

end;
procedure TForm2.BtnEClick(Sender: TObject);
begin
 with DataForm do
    begin

### Page 12

Downloaded from hlayiso.com
12                          INFORMATION TECHNOLOGY P1        (NOVEMBER 2014)

        AdoTable1.Insert; 
        AdoTable1['Price']:=1924.00; 
        AdoTable1['Brand']:='LG'; 
        AdoTable1['Size']:=14; 
        AdoTable1['TypeT']:='Monitor'; 
        AdoTable1['Stock']:=2; 

        AdoTable1.Post; 
       end;

end;

procedure TForm2.BtnFClick(Sender: TObject);
var
NPost:integer;
begin
  with DataForm do
  begin
    AdoTable1.First; 
    AdoTable1.Next;
    while Not AdoTable1.Eof do
      begin
        if (AdoTable1['Brand']='LG')  And (AdoTable1['Size']=14)
        then

           AdoTable1.Delete

          else
          AdoTable1.Next; 

        end;
     end;

end;

end.
                                                                       [38]

                                                            TOTAL:      150

### Page 13

12                            INLIGTINGSTEGNOLOGIE V1        (NOVEMBER 2014)
        AdoTable1.Insert; 
        AdoTable1['Price']:=1924.00; 
        AdoTable1['Brand']:='LG'; 
        AdoTable1['Size']:=14; 
        AdoTable1['TypeT']:='Monitor'; 
        AdoTable1['Stock']:=2; 
        AdoTable1.Post; 
       end;
end;
procedure TForm2.BtnFClick(Sender: TObject);
var
NPost:integer;
begin
  with DataForm do
  begin
    AdoTable1.First; 
    AdoTable1.Next;
    while Not AdoTable1.Eof do
      begin
        if (AdoTable1['Brand']='LG')  And (AdoTable1['Size']=14)
        then
           AdoTable1.Delete
          else
          AdoTable1.Next; 
        end;
     end;
end;
end.
                                                                       [38]
                                                          TOTAAL:       150
                Downloaded from hlayiso.com

### Page 14

(NOVEMBER 2014)             INLIGTINGSTEGNOLOGIE V1                 11
     end;
  ShowMessage('Types of Televisions by LG:  ' +
IntToStr(DataForm.AdoTable1.RecordCount));
  DataForm.AdoTable1.Filtered := False;
end;
procedure TForm2.BtnCClick(Sender: TObject);
var iSum : Integer;
begin
   iSum := 0; 
   with DataForm do
      begin
        AdoTable1.Open; 
        AdoTable1.First; 
        while not AdoTable1.Eof do
           begin
             iSum := iSum + AdoTable1['Stock']; 
             AdoTable1.Next; 
           end;
      end;
  ShowMessage('Number of all Televisions in Stock: ' +
IntToStr(iSum)); 
end;
procedure TForm2.BtnDClick(Sender: TObject);
var
Tbrand:string;
cost:real;
begin
cost:=0; 
Tbrand:=inputbox('Search','Enter Brand',''); 
with DataForm do
    begin
       AdoTable1.Open; 
       AdoTable1.First; 
          while not Adotable1.Eof do
          begin
              if AdoTable1['Brand']=Tbrand then
              cost:=cost + (AdoTable1['Price']*
adoTable1['Stock']); 
              AdoTable1.Next; 
         end;
        end;//while
  if cost =0 then
   ShowMessage('That type of Television does not exist: Check you
spelling and try again' ) 
   else
 ShowMessage('Total Value of Televisions : R' FloatToStr(cost));
  DataForm.AdoTable1.Filtered := False;
end;
procedure TForm2.BtnEClick(Sender: TObject);
begin
 with DataForm do
    begin
                  Downloaded from hlayiso.com

### Page 15

10                        INLIGTINGSTEGNOLOGIE V1              (NOVEMBER 2014)
VRAAG 4: DELPHI-PROGRAMMERING EN DATABASIS
Puntetoekenning
VOORBEELD DELPHI OPLOSSING VRAAG 4
unit Q_4;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, Grids, DBGrids,DMQ4, StdCtrls, Buttons;
type
  TForm2 = class(TForm)
     DBGrid1: TDBGrid;
     BtnA: TButton;
     BtnB: TButton;
     BtnC: TButton;
     BtnD: TButton;
     BtnE: TButton;
     BtnF: TButton;
     BitBtn1: TBitBtn;
     procedure BtnAClick(Sender: TObject);
     procedure BtnBClick(Sender: TObject);
     procedure BtnCClick(Sender: TObject);
     procedure BtnDClick(Sender: TObject);
     procedure BtnEClick(Sender: TObject);
     procedure BtnFClick(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;
var
  Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.BtnAClick(Sender: TObject);
begin
       DataForm.AdoTable1.Sort := 'Brand DESC, Size ASC';
end;
procedure TForm2.BtnBClick(Sender: TObject);
begin
  with DataForm.AdoTable1 do
    begin
      Filter := 'Brand = ''LG'''; 
      Filtered := True;
               Downloaded from hlayiso.com

### Page 16

(NOVEMBER 2014)            INLIGTINGSTEGNOLOGIE V1                     9
cDob:=StrToInt(edtDob.Text); 
v1:='';
v2:='';
  for i := 1 to length(cName) do
      if cName[i] In ['a','e','i','o','u','A','E','I','O','U'] 
        then v1:=v1+cName[i]; 
  for i := 1 to length(cSurname)  do
      cSurname[i] In ['a','e','i','o','u','A','E','I','O','U'] 
          then v2:=v2+cSurname[i]; 
  Randomize; 
  k:=cDob+2000+random(99)+1; 
lblPassword.Caption:= v1[1] +v2[1]  + IntTostr(k) ;
end;
                                                                    [20]
                  Downloaded from hlayiso.com

### Page 17

8                        INLIGTINGSTEGNOLOGIE V1              (NOVEMBER 2014)
VRAAG 3: DELPHI PROGRAMMERING
Mark Allocation
VOORBEELD DELPHI OPLOSSING VRAAG 3
unit Q3_u;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
     edtName: TEdit;
     edtSurname: TEdit;
     edtDob: TEdit;
     lblName: TLabel;
     lblSurname: TLabel;
     lblDob: TLabel;
     btngenerate: TButton;
     lblPassword: TLabel;
     procedure btngenerateClick(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btngenerateClick(Sender: TObject);
Var
cName, cSurname,v1,v2:string;
cDob,k,i:integer;
begin
cName:= edtName.Text; 
cSurname:=edtSurname.Text; 
{if cName='' then
   ShowMessage('Enter Name Please');
if cSurname='' then
   ShowMessage('Enter Surname Please');
if edtDob.Text ='' then
   ShowMessage('Enter Date of Birth Please');
   Exit;}
                  Downloaded from hlayiso.com

### Page 18

(NOVEMBER 2014)                  INLIGTINGSTEGNOLOGIE V1                  7
             end
            else
            begin
              inc(iInvalid); 
         redDisplay.Lines.Add(arrFDesc[iNum]+'
 '+arrFCodes[iNum]+ ' <---
 Invalid Code' ); 
          end; //end if
     end;
     redDisplay.Lines.Add('' );
     redDisplay.Lines.Add('Number of invalid Codes:   ' +
 IntToStr(iInvalid)); 
     redDisplay.Lines.Add('Number of valid Codes:   ' + IntToStr(iNum-
 iInvalid)); 
     CloseFile(TextF); 
 end;
 procedure TForm2.FormCreate(Sender: TObject);
 begin
 redDisplay.Clear;
 end;
 end.
                                                                         [58]
                  Downloaded from hlayiso.com

### Page 19

6                         INLIGTINGSTEGNOLOGIE V1                 (NOVEMBER 2014)
       End;
    redDisplay.lines.add('The number of Bedroom Units is : '
+IntToStr(sBU)); 
    redDisplay.lines.add('The number of Bedroom Suites is : '
+IntToStr(iNum-sBU)); 
    redDisplay.lines.add('The Total number is : ' +IntToStr(iNum)); 
end;
function TForm2.cdValid(sCode: String; cdesc:char): Boolean; 
var k : Integer;
begin
  result := True; 
  if sCode[3] <> cdesc then result:=false
   else     begin
  if length(sCode) <> 7
     then Result := false
      else begin
        for k := 1 to 5 do
             if not(sCode[k] in ['A'..'Z'])  then Result := false; 
        for k := 6 to 7 do
             if not(sCode[k] in ['0'..'9'])  then Result := false; 
     end;
     end; //end else
end;
//-----------------------------------------------------------------------
procedure TForm2.loadfile; 
var TextF :TextFile; 
    sName, sLine,sCode : String;
    iCommaPos, iInvalid : Integer;
begin
    if FileExists('furniture.txt') = False then
    begin
      MessageDlg('Sorry data file not located - application will now
terminate ', mtError,mbOk] , 0); 
      Application.Terminate; 
    end;
    iNum := 0; 
    iInvalid := 0; 
    AssignFile(TextF, 'furniture.txt'); 
    Reset(TextF); 
    while not eof(TextF) do
    begin
    inc(iNum); 
      Readln(TextF, sLine); 
      iCommaPos := Pos (',' , sLine);
      sName := Copy (sLine , 1 , iCommaPos - 1); 
      Delete(SLine,1,iCommaPos);
      sCode:=sLine; 
      arrCodes[iNum] := sCode;
      arrDesc[iNum] :=sName;
      if CdValid(sCode,sName[1])  //test for valid
          then begin
redDisplay.Lines.Add(arrDesc[iNum] +'   '+arrCodes[iNum] + '<----Valid
Code' ); 
              Downloaded from hlayiso.com

### Page 20

(NOVEMBER 2014)                INLIGTINGSTEGNOLOGIE V1                       5
 VRAAG 2: DELPHI -PROGRAMMERING
 VOORBEELD DELPHI OPLOSSING VRAAG 2
 unit Q_2;
 interface
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
 Forms,
   Dialogs, StdCtrls, ComCtrls;
 type
   TForm2 = class(TForm)
     redDisplay: TRichEdit;
     Button1: TButton;
     Categories: TButton;
     procedure FormCreate(Sender: TObject);
     procedure Button1Click(Sender: TObject);
     procedure CategoriesClick(Sender: TObject);
   private
     { Private declarations }
     function cdValid(sCode: String; nChar:String): Boolean;
      procedure loadfile;
   public
     { Public declarations }
   end;
 var
   Form2: TForm2;
   arrCodes:Array[1..35] of string; 
   arrDesc:Array[1..35] of string; 
   iNum:integer; 
 implementation
 {$R *.dfm}
 //-----------------------------------------------------------------------
 procedure TForm2.Button1Click(Sender: TObject);
 begin
 loadfile; 
 end;
 procedure TForm2.CategoriesClick(Sender: TObject);
 var
 iCount,sBU : Integer;
 sList , sCateg : String;
 begin
     loadfile; 
     redDisplay.Clear;
     sBU := 0; 
     redDisplay.Lines.Add('List of furniture type represented: '); 
     redDisplay.Lines.Add(' ');
     For iCount := 1 to iNum do
       Begin
          sCateg := Copy (arrFCodes[iCount], 1 ,2); 
             if sCateg='BU' then
             begin
             sBU:=sBU+1; 
             end;
                  Downloaded from hlayiso.com

### Page 21

4                           INLIGTINGSTEGNOLOGIE V1   (NOVEMBER 2014)
procedure TForm1.FormCreate(Sender: TObject);
Begin
    //Clear all the edits
    edtName.Clear;
    edtSur.Clear;
    edtTitle.Clear;
    edtGross.Clear;
    edtSGross.Clear;
    edtMaid.Clear;
    edtFood.Clear;
    edtAcco.Clear;
    edtLoan.Clear;
end;
end.
                                                                 [34]
               Downloaded from hlayiso.com

### Page 22

(NOVEMBER 2014)             INLIGTINGSTEGNOLOGIE V1                  3
 {$R *.dfm}
 // Function to calculate the Income Tax and Net Salary
 function NetSalary(msGross:string):real;
 var
  yGross, mrGross:real;
 begin
  mrGross:=StrToFloat(msGross);
 yGross:=mrGross*12 -67134.00; 
   if (yGross>0) and (yGross<165600.00) 
   then NetSalary:=mrGross - yGross*0.18/12 else
   if (yGross>165001.00) and (yGross<258750.00) 
   then NetSalary:=mrGross - mrGross*0.25 else
   if (yGross>258751.00) and (yGross<358110.00) 
   then NetSalary:=mrGross - mrGross*0.30 else
   if (yGross>358111.00) and (yGross<500940.00) 
   then NetSalary:=mrGross - mrGross*0.35 else
  if (yGross>500941.00) and (yGross<638600.00) 
  then NetSalary:=mrGross - mrGross*0.38
  Else
  if (yGross>638601) then NetSalary:=mrGross - mrGross*0.40; 
  end;
 procedure TForm1.Button1Click(Sender: TObject);
 Var
 netSal,famSal, totSal,totExp,tloan:real;
 begin
   redDisplay.Clear;
   //Set the height of the form
   Form1.ClientHeight:=417;
   //Calculate the salaries
   netSal:=NetSalary(edtGross.Text); 
   famSal:=netSal+ NetSalary(edtSGross.Text); 
   //Calculate the Total Expenses
   totExp:=strtofloat(edtMaid.Text) + strtofloat(edtAcco.Text)+
 strtofloat(edtFood.Text); 
   //Calculate the money available for the loan repayment
   totCash:=famSal-totExp; 
   tLoan := strtofloat(edtLoan.text); 
        mval:=totCash-(tLoan/24); 
       //Display
   redDisplay.Lines.Add(edtTitle.Text +' '+edtName.Text+'
 '+edtSur.Text);
   redDisplay.Lines.Add('Your Monthly Net Salary after Tax
 deduction is '+ FloattoStr(netSal)); 
   redDisplay.Lines.Add('Your Familys Monthly Net Salary after Tax
 deduction is '+ FloattoStr(famSal)); 
   redDisplay.Lines.Add('After expenses your income is '+
 FloattoStr(totCash)); 
 if mval >3000 then
        redDisplay.Lines.Add('Monthly Repayment of
 '+FloatToStr((tLoan/24))+'You Qualify for the Loan') 
     Else
        redDisplay.Lines.Add('Monthly Repayment of
 '+FloatToStr((tLoan/24))+' You do not qualify for the Loan'); 
 end;
                  Downloaded from hlayiso.com

### Page 23

2                         INLIGTINGSTEGNOLOGIE V1             (NOVEMBER 2014)
VRAAG 1: DELPHI-DATABASIS KONNEKTIWITEIT
Puntetoekenning
VOORBEELD DELPHI OPLOSSING VRAAG 1
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, CheckLst, ComCtrls;
type
  TForm1 = class(TForm)
      Label1: TLabel;
      Label2: TLabel;
      edtName: TEdit;
      edtSur: TEdit;
      Label3: TLabel;
      edtGross: TEdit;
      Label4: TLabel;
      edtSGross: TEdit;
      Label5: TLabel;
      edtMaid: TEdit;
      Label6: TLabel;
      edtFood: TEdit;
      Label7: TLabel;
      edtAcco: TEdit;
      Label8: TLabel;
      edtLoan: TEdit;
      Button1: TButton;
      BitBtn1: TBitBtn;
      Label10: TLabel;
      edtTitle: TEdit;
      redDisplay: TRichEdit;
      Button2: TButton;
      procedure Button1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure Button2Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
var
  Form1: TForm1;
  totCash:real;
implementation
//uses Unit2;
                Downloaded from hlayiso.com

### Page 24

NASIONALE
                     SENIOR SERTIFIKAAT
                           GRAAD 11
                       NOVEMBER 2014
                INLIGTINGSTEGNOLOGIE V1
                      MEMORANDUM
PUNTE:   150
                  Hierdie memorandum bestaan uit 12 bladsye.
               Downloaded from hlayiso.com

## Related documents

- [IT P1 QP](https://www.hlayiso.com/library/it-p1-qp/37694897-6375-4dd7-bd09-1f773d71b7d1) — Information Technology · QP · 2014
- [IT P2 Memo](https://www.hlayiso.com/library/it-p2-memo/8be58867-5799-4ccb-baa3-32da4af734e8) — Information Technology · Memo · 2014
- [IT P1 MEMO GR11 NOV 2020 Afrikaans D](https://www.hlayiso.com/library/it-p1-memo-gr11-nov-2020-afrikaans-d/25d21533-ac81-4ade-a4b8-c56f655e7a81) — Information Technology · Memo · 2020 · Afr
- [IT P1 QP MEMO GR11 NOV2020 Afrikaans D](https://www.hlayiso.com/library/it-p1-qp-memo-gr11-nov2020-afrikaans-d/09d5bea3-08be-4b20-9a72-e526738e9d32) — Information Technology · Memo · 2020 · Afr
- [IT P1 MEMO GR11 NOV2020 English](https://www.hlayiso.com/library/it-p1-memo-gr11-nov2020-english/336cfcb1-343a-4742-ab39-6824c80e92e5) — Information Technology · Memo · 2020 · Eng
- [IT P1 QP MEMO GR11 NOV2020 English D](https://www.hlayiso.com/library/it-p1-qp-memo-gr11-nov2020-english-d/034f0767-a627-4491-b86e-53fb7cd7cc4a) — Information Technology · Memo · 2020 · Eng

## More from Grade 11 Information Technology

- [Gr 11 Info Tech ATP 2023-24](https://www.hlayiso.com/library/gr-11-info-tech-atp-2023-24/67fc595c-646e-4c38-9951-fe5fe3a113a7) — ATP
- [IT P1 QP GR11 NOV 2022 AFR](https://www.hlayiso.com/library/it-p1-qp-gr11-nov-2022-afr/e4251ebe-2f65-4c6f-992b-f7208b36300a) — QP · 2022 · Afr
- [IT P1 QP GR11 NOV 2022 English](https://www.hlayiso.com/library/it-p1-qp-gr11-nov-2022-english/3db564bd-1d04-48ab-aedd-fae2d9f9939f) — QP · 2022 · Eng
- [IT P2 GR11 QP NOV2022 Afrikaans](https://www.hlayiso.com/library/it-p2-gr11-qp-nov2022-afrikaans/00d1cb8c-b0d9-41ea-9060-a94b73039d3a) — QP · 2022 · Afr
- [IT P2 GR11 QP NOV2022 English](https://www.hlayiso.com/library/it-p2-gr11-qp-nov2022-english/1c12dccc-2a5b-4b41-a80c-5bd8b30f6151) — QP · 2022 · Eng
- [IT P1 QP GR11 NOV 2022 AFR](https://www.hlayiso.com/library/grade-11-information-technology-2022-exemplar-november-exam-question-paper-paper-1-afrikaans/a17870ba-8fac-4013-9eda-0831f367fbca) — QP · 2022 · Afr

## Collection

- [Grade 11 past papers](https://www.hlayiso.com/grade-11/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.
