# Information Technology Grade 11 P1 2022 Memo (Eng)

> Grade 11 Information Technology Paper 1 memorandum from the Exemplar November Exam 2022 (English), 12 pages. Read online or download the free PDF.

- Page: https://www.hlayiso.com/library/grade-11-information-technology-2022-exemplar-november-exam-memorandum-paper-1-english/7c1f7c58-810f-4668-a605-48251dd9774a
- Updated: 2026-09-28
- Subject: Information Technology
- Grade: Grade 11
- Language: English
- Document type: Memorandum
- Year: 2022
- Exam period: Exemplar November Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 12

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 2022 Memo (Eng)](https://www.hlayiso.com/library/grade-11-information-technology-2022-exemplar-november-exam-memorandum-paper-1-english/7c1f7c58-810f-4668-a605-48251dd9774a)

## About this document

Information Technology · Grade 11 · Exemplar November Exam · 2022 · English. Memorandum, 12 pages. Read online or download the PDF.

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

## Matching paper and memo

- [IT P1 QP GR11 NOV 2022 English](https://www.hlayiso.com/library/grade-11-information-technology-2022-exemplar-november-exam-question-paper-paper-1-english/c2d16637-c6bc-43d6-b469-cb62712d9eb0) — QP · 2022 · Eng

## Document text

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

### Page 1

NATIONAL
                  SENIOR CERTIFICATE

                          GRADE 11

                    NOVEMBER 2022

           INFORMATION TECHNOLOGY P1
               MARKING GUIDELINE
                  (EXEMPLAR)

MARKS:   150

               This marking guideline consists of 12 pages.

### Page 2

2                             INFORMATION TECHNOLOGY P1              (EC/NOVEMBER 2022)

 NAME OF LEARNER:

      TOTAL            TOTAL                TOTAL             TOTAL
                                                                                TOTAL
    QUESTION 1       QUESTION 2           QUESTION 3        QUESTION 4

              /40                /40             /40               /30                 /150
                                                                      MAX          MARKS
                             QUESTION 1                              MARKS        ACHIEVED
 1.1    Menu option New Registration
                                                                          1
        pnlRegister.visible := true 

 1.2    Button [btnQ1_2] Register

        Get date 
        Extract the year  add one 
        Compile expiry date

        Get access string from cmbaccess 
        Get input from four spinedits as integers 
                                                                         14
        Calculate total using four correct rand values 
        If cmbaccess.itemindex = 1 (access is Regional) 
        Then subtract 40% from total due 

        Use a showmessage component 
           With correct wording, use #13 
            use access and expiry date 

 1.3    Menu option Log In

        Enable pnllogin 
        Clear the two edit boxes 
        Set focus to edtname                                             5
        pnllogin.font.color = clgreen 
        pnllogin.color = clcream 

Copyright reserved                                                       Please turn over

### Page 3

(EC/NOVEMBER 2022)                INFORMATION TECHNOLOGY P1                                3

 1.4    Button [btnQ1_4] Log In

        Set constant alphabet string 
        Get the name 
        Get password converted to uppercase (or alphabet string
        includes lowercase letters) 

        Initialise new string 

        Loop from 1 to length of password 
        Use if statements or case 
                                                                        16
          Replace space with * 
          Replace Z with A 
          Replace A to Y with correct character from alphabet 
               Add three to character position 
           Join new character to new string 
           Join all other characters  (not A to Z and not space) to
           new string 

        Join last three characters of name to end of new string 
        display in edtencrypt 

 1.5    Menu option Log Out

        If - then statement 
        Message box                                                     4
        Input = false 
        Application.terminate 

                                                     Question 1 Total   40

Copyright reserved                                                      Please turn over

### Page 4

4                              INFORMATION TECHNOLOGY P1                       (EC/NOVEMBER 2022)

                                                                                         MARKS
                                                                                MAX
                              QUESTION 2                                                 ACHIEV
                                                                               MARKS
                                                                                           ED
 2.1    Button [Q2.1 Read and Display]
        Read from text file
        set icountarr to 0 
        assignfile to text file variable 
        reset 
        loop until end of text file 
           readln statement 
           increment icountarr 
             get tree name 
             delete string to get quantity converted to integer 
               and store in arrqty using array counter as index 
            if tree name contains quotation marks 
                 then delete first character of tree name 
                   and delete last character tree name 
              store tree name in arrtrees using array counter as index 
        Sorting two arrays
        outer loop from 1 to array counter - 1 
          Inner loop from outer loop counter + 1 to array counter 
              If arrqty[outer] > arrqty [inner] then 
                                                                                32
                        Set integer temp variable = arrqty [outer] 
                        set arrqty [outer] = arrqty [inner] 
                        set arrqty [inner] = integer temp variable 
                        do the same swap algorithm for arrtrees
                        using string temp variable 
        calculate total
        initialise total variable 
        loop from 1 to icountarr 
            set total = total + arrqty using loop index 
        Display arrays
        Loop from 1 to icountarr 
             use richedit 
             display contents of arrays using loop counter as index
                                    arrtrees, arrqty converted to string 
             using tab stop 
        Display total
        display total in richedit with correct message 
                        total converted to string 
        display array counter converted to string  in edtprotected 
 2.2    Button [Q2.2 Endangered list]
        Assignfile with correct file name 
        Rewrite statement 
        Loop from 1 to array counter 
         If arrqty contents using loop counter as index < 100                   8
            Then get string from arrtrees 
                   Display string in richedit 
                    Write string to the text file 
        Closefile statement after loop 
                                                            Question 2 Total    40

Copyright reserved                                                              Please turn over

### Page 5

(EC/NOVEMBER 2022)                INFORMATION TECHNOLOGY P1                                    5

                                                                     MAX        MARKS
                          QUESTION 3
                                                                    MARKS      ACHIEVED
 3.1      Button [Q3.1 Western Cape]
          Go to first record 
          Loop to end of the table 
            If Area = ‘Western Cape’                                 6
              Then display ScientificName  in richedit 
           Go to next record before end of loop 

 3.2      Button [Q3.2 Iconic and Protected]
          Go to first record 
          Loop to end of the table 
            If Iconic = true  and  Description = ‘Protected’       8
                Then display OtherName in richedit 
              Go to next record before end of loop 

 3.3      Button [Q3.3 Delete Invasive Trees]
          Go to first record 
          Loop to end of the table 
            if Description = 'invasive' then 
                                                                      7
                 Delete 
                else 
                 Go to next record before end of loop 

 3.4      Button [Q3.4 Red Favourites]
          Go to first record 
          Loop to end of the table 
           Get Othername and store in string variable 
             If first 3 characters  = ‘Red 
                                                                      9
                    Then edit mode
                      Set Favourite = true 
                      post 
            Go to next record before end of loop 

 3.5      Button [Q3.5 Indigenous Average]
          Set counter to 0 and total to 0 
          Go to first record and Loop to end of the table 
             If Indigenous= true  and Counted <> Null 
                 Then Add 1 to counter 
                      Add Counted field to total variable 
             Go to next record before end of loop 
                                                                     10
          Calculate average: total / counter 

          Display in richedit 
            Correct description, Rounded average and
          converted
            to string 
                                                 Question 3 Total    40

Copyright reserved                                                          Please turn over

### Page 6

6                             INFORMATION TECHNOLOGY P1                     (EC/NOVEMBER 2022)

                                                                       MAX       MARKS
                           QUESTION 4
                                                                      MARKS     ACHIEVED
 4.1 Button [Question 4.1]

       Use randomrange(1000,10000) or random(10001) + 1000
       to generate a random number 

       Display correct message and random number converted
       to string  in memo box 

       Outer Loop from 1 to the random number 
          Initialize total variable 
                                                                       12
             Inner Loop from to 1 to outer loop counter 
                  If innerloop counter is a factor of outerloop
                                                          counter 
                  Then add inner loop counter to total 
          Subtract outer loop counter from total 
          If total = outer loop counter 
              Then display outer loop counter converted to string
       in
                                                      memo box 

 4.2 Button [Question 4.2]

       Use Val to test if edit box contains integer 
        If not then show message  and exit 

       Get number from edit box converted to integer 
       Set a string variable to an empty string 
         Loop until number = 0 
            Set remainder variable = remainder after number is
                                         divided by 16 (use MOD)
       
            use if statement or Case 
             set string for hexadecimal number to correct letters      18
       
                 A to F  for each number in range 10 to 15 
                         Add letter to front of string variable 
              Else  if remainder < 10 
              Then Add remainder variable converted to string
       
                              to the front of the string variable 
           use DIV to divide number by 16 

       display the string variable in the edit box edtHexadecimal
       

                                                 Question 4 Total      30

Copyright reserved                                                           Please turn over

### Page 7

(EC/NOVEMBER 2022)                 INFORMATION TECHNOLOGY P1                               7

SAMPLE SOLUTIONS

QUESTION 1

//Question 1.1
procedure TQuestion1.Ques1_1Click(Sender: TObject);
begin
//Add your code below:
  pnlregister.visible := true;

end;

 //Question 1.2
procedure TQuestion1.Ques1_2Click(Sender: TObject);
begin
 //Add your code below:
 pnllogin.enabled := true;
 edtname.Clear;
 edtpassword.Clear;
 edtname.SetFocus;
 pnllogin.font.color := clgreen;
 pnllogin.Color := clcream;
end;

//Question 1.3
procedure TQuestion1.Ques1_3Click(Sender: TObject);
var sans : string;
begin
 //Add your code below:
//if messagedlg('Are you sure you want to log out?',mtwarning,[mbYes, mbNo],0) = mryes
then
     //application.Terminate;

//Alternative answer
 sans := inputbox('Are you sure you want to log out?', 'Y or N','');
 if uppercase(sans) = 'Y' then
     application.Terminate;
end;

//Question 1.2
procedure TQuestion1.btnQ1_2Click(Sender: TObject);
var sdate, sexpire : string;
saccess : string;
iadult, isen, istud, ischolar : integer;
rtotal : real;
begin
//Add your code below:
 sdate := edtdate.Text;
 sexpire := inttostr(strtoint(copy(sdate,1,4))+1)+copy(sdate,5,6);
 saccess := cmbaccess.Items[cmbaccess.ItemIndex];
 iadult := sedadult.Value;
 isen := sedsenior.Value;

Copyright reserved                                                      Please turn over

### Page 8

8                              INFORMATION TECHNOLOGY P1                  (EC/NOVEMBER 2022)

istud := sedstudent.Value;
ischolar := sedscholar.Value;
rtotal := (iadult * 500) + (isen*400) + (istud *300) + (ischolar *80);
if cmbaccess.itemindex = 1 then
    rtotal := rtotal - rtotal *40/100 ;

showmessage('You owe ' + floattostrf(rtotal,ffcurrency,8,2)
 + ' for ' + saccess + ' access.' + #13 + ' Expiry date = ' + sexpire);

Ques1_3.Click;

end;

//Question 1.4
procedure TQuestion1.btnQ1_4Click(Sender: TObject);
var sname, spass, snew , sword: string;
k, ipos : integer;
const
salpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
begin
//Add your code below:
  sname := edtname.Text;
  spass := uppercase(edtpassword.Text);
  snew := '';
  for k := 1 to length(spass) do
    begin
    case spass[k] of
     ' ' : snew := snew + '*';
     'Z' : snew := snew + 'A';
     'A'..'Y' :
     begin
       ipos := pos(spass[k], salpha);
       ipos := ipos + 3;
       snew := snew + salpha[ipos]
     end
     else
     snew := snew + spass[k];
    end;
  end;
edtencrypt.Text := snew+ copy(sname,length(sname) - 2,3);
end;

QUESTION 2

///Question 2.1 32 marks
procedure TfrmQuestion2.btnQ2_1Click(Sender: TObject);
var myfile : textfile;
sline, stree,sqty, stemp : string;
iqty, itotal,k,l, itemp : integer;
begin
redout.Clear;
if not fileexists('Trees.txt') then

Copyright reserved                                                         Please turn over

### Page 9

(EC/NOVEMBER 2022)                   INFORMATION TECHNOLOGY P1                                 9

begin
  showmessage('file not found');
  exit;
end;
assignfile(myfile,'Trees.txt');
reset(myfile);
icountarr := 0;
while not eof(myfile) do
   begin
   readln(myfile,sline);
   stree := copy(sline,1, pos('#',sline)- 1);
   delete(sline,1, pos('#',sline));
   sqty := sline;

   inc(icountarr);
   arrqty[icountarr] := strtoint(sqty);
    if stree[1] = '"' then
        begin
        delete(stree,1,1);
        delete(stree,length(stree),1);
        end;
    arrtrees[icountarr]:= stree;
  end;
for k := 1 to icountarr - 1 do
     for l := k + 1 to icountarr do
        begin
         if arrqty[k] > arrqty[l] then
            begin
             itemp := arrqty[k];
             arrqty[k] := arrqty[l];
             arrqty[l] := itemp;
             stemp := arrtrees[k];
             arrtrees[k] := arrtrees[l];
             arrtrees[l] := stemp;
            end;
        end;
itotal := 0;
for k := 1 to icountarr do
 itotal := itotal + arrqty[k];
for k := 1 to icountarr do
 redout.Lines.Add(arrtrees[k] + #9 + inttostr(arrqty[k]));
redout.Lines.Add('');
redout.Lines.Add('Total number of protected trees: ' + inttostr(itotal));
  edtprotected.Text := inttostr(icountarr);
end;

 ///Question 2.1 8 marks
procedure TfrmQuestion2.btnQ2_2Click(Sender: TObject);
var k : integer;
sline : string;
tfile : textfile;
begin

Copyright reserved                                                          Please turn over

### Page 10

10                               INFORMATION TECHNOLOGY P1                         (EC/NOVEMBER 2022)

redout.Clear;
assignfile(tfile,'Endangered.txt');
rewrite(tfile);
 for k := 1 to icountarr do
   begin
     if arrqty[k] < 100 then
        begin
         sline := arrtrees[k];
         writeln(tfile,sline);
         redout.Lines.Add(sline);
        end;
   end;
 closefile(tfile);
end;

QUESTION 3

////Question 3.1 6 Marks
procedure TfrmQuestion3.btnQ3_1Click(Sender: TObject);
begin
reddisplay.Clear;
tbltrees.First;
while not tbltrees.eof do
   begin
     if tbltrees['Area'] = 'Western Cape' then
        reddisplay.lines.add(tbltrees['ScientificName']);
   tbltrees.Next;
   end;
end;

////Question 3.2 8 Marks
procedure TfrmQuestion3.btnQ3_2Click(Sender: TObject);
begin
 reddisplay.Clear;
tbltrees.First;
while not tbltrees.eof do
   begin
     if (tbltrees['Iconic'] = true) and (tbltrees['Description'] = 'Protected') then
        reddisplay.lines.add(tbltrees['OtherName']);
   tbltrees.Next;
   end;
end;

////Question 3.3 7 Marks
procedure TfrmQuestion3.btnQ3_3Click(Sender: TObject);
begin
tbltrees.First;
while not tbltrees.eof do
   begin
    if tbltrees['Description'] = 'invasive' then
       tbltrees.Delete
     else

Copyright reserved                                                                     Please turn over

### Page 11

(EC/NOVEMBER 2022)                     INFORMATION TECHNOLOGY P1                         11

  tbltrees.Next;
  end;
end;

////Question 3.4 9 Marks
procedure TfrmQuestion3.btnQ3_4Click(Sender: TObject);
 var sn : string;
begin
  tbltrees.First;
while not tbltrees.eof do
   begin
    sn := tbltrees['OtherName'];
    if copy(sn,1,3) = 'Red' then
    begin
       tbltrees.edit;

      tbltrees['Favourite'] := true;
      tbltrees.Post;
    end;
  tbltrees.Next;
  end;
end;

////Question 3.5 10 Marks
procedure TfrmQuestion3.btnQ3_5Click(Sender: TObject);
var itotal, inum : integer;
rave : real;
begin
reddisplay.Clear;
  tbltrees.First;
  itotal := 0;
  inum := 0;
while not tbltrees.eof do
   begin
    if (tbltrees['Indigenous'] = true) and (tbltrees['Counted'] <> null) then
     begin
       itotal := itotal + tbltrees['Counted'];
       inc(inum);
     end;
   tbltrees.Next;
   end;
 rave := itotal/inum;
 reddisplay.Lines.Add('Average Indigenous trees found:' + inttostr(round(rave)));
end;

QUESTION 4

/// Question 4.1 12 marks
procedure TfrmQuestion4.btnQ4_1Click(Sender: TObject);
var
iperfect, isum, m, iran : integer;
begin

Copyright reserved                                                         Please turn over

### Page 12

12                           INFORMATION TECHNOLOGY P1                    (EC/NOVEMBER 2022)

//Enter your code here:
iran := randomrange(1000,10000);
memdisplay.Lines.Add('Perfect Numbers in the range from 1 to ' + inttostr(iran));
  for iperfect := 1 to iran do
     begin
     isum := 0;
     for m := 1 to iperfect do
       begin
        if iperfect mod m = 0 then
         isum := isum + m;
       end;
     isum := isum - iperfect;
     if isum = iperfect then
     memdisplay.Lines.Add(inttostr(iperfect))
     end;
end;

// Question 4.2 18 marks
procedure TfrmQuestion4.btnQ4_2Click(Sender: TObject);
var inum, icode, k, ihex : integer;
shex : string;
begin
val(edtdecimal.Text,inum, icode);
 if icode <> 0 then
     begin
       showmessage('Please enter a valid integer');
       exit;
     end;
 inum := strtoint(edtdecimal.Text);
  shex := '';
 while inum <> 0 do
    begin
      ihex := inum mod 16;
      case ihex of
        10 : shex := 'A' + shex;
        11 : shex := 'B' + shex;
        12 : shex := 'C' + shex;
        13 : shex := 'D' + shex;
        14 : shex := 'E' + shex;
        15 : shex := 'F' + shex;
      else
        shex := inttostr(ihex) + shex;
       end;
     inum := inum div 16
    end;
   edthexadecimal.Text := shex;
end;

Copyright reserved                                                         Please turn over

## Related documents

- [IT P2 GR11 QP NOV2022 English](https://www.hlayiso.com/library/grade-11-information-technology-2022-exemplar-november-exam-question-paper-paper-2-english/b3f6c643-27fc-4fd5-baa3-b8c49c4b6f61) — Information Technology · QP · 2022 · Eng
- [IT P1 QP GR11 NOV 2022 English](https://www.hlayiso.com/library/it-p1-qp-gr11-nov-2022-english/3db564bd-1d04-48ab-aedd-fae2d9f9939f) — Information Technology · QP · 2022 · Eng
- [IT P1 GR11 MEMO NOV2017 English](https://www.hlayiso.com/library/it-p1-gr11-memo-nov2017-english/b034bd9c-795f-42bc-9b01-b7e73b6b0056) — Information Technology · Memo · 2017 · Eng
- [IT P2 GR11 QP NOV2022 English](https://www.hlayiso.com/library/it-p2-gr11-qp-nov2022-english/1c12dccc-2a5b-4b41-a80c-5bd8b30f6151) — Information Technology · QP · 2022 · Eng
- [IT P1 QP GR11 NOV2020 English D](https://www.hlayiso.com/library/it-p1-qp-gr11-nov2020-english-d/7b2666c6-ba4e-471a-b82d-0e9cc054a7f3) — Information Technology · QP · 2020 · Eng
- [IT P1 QP GR11 NOV2020 English](https://www.hlayiso.com/library/it-p1-qp-gr11-nov2020-english/f76e86f9-8bcb-424c-afaf-00ec85aa21a0) — Information Technology · QP · 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
- [GEO-Sept-QP & Memo-2015-Gr11](https://www.hlayiso.com/library/geo-sept-qp-memo-2015-gr11/cfa849fa-4151-4938-b293-d0122c3a72c6) — QP + Memo · 2021
- [IT P2 GR11 MEMO NOV2020 AFR D](https://www.hlayiso.com/library/it-p2-gr11-memo-nov2020-afr-d/4a385cf4-caba-4711-a420-1f60d0f7e5fd) — Memo · 2020 · Afr
- [IT-P2-GR11 QP MEMO NOV2020 AFR D](https://www.hlayiso.com/library/it-p2-gr11-qp-memo-nov2020-afr-d/82f78ef6-cebd-4fe2-a945-043e3276649e) — Memo · 2020 · Afr
- [IT P2 GR11 MEMO 2020 Afr](https://www.hlayiso.com/library/it-p2-gr11-memo-2020-afr/704a1972-2a88-44be-b085-dfe01e4a8c2a) — Memo · 2020 · 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.
