1 / 20

CP1020 - Week 6

CP1020 - Week 6. Repetition. Aims and Objectives. Understand what loops are and why they are needed Understand the FOR loop used in programming Understand the concept of nesting loops and why they may be necessary Be able to design and code loops in QBasic.

sandyt
Télécharger la présentation

CP1020 - Week 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CP1020 - Week 6 Repetition

  2. Aims and Objectives • Understand what loops are and why they are needed • Understand the FOR loop used in programming • Understand the concept of nesting loops and why they may be necessary • Be able to design and codeloops in QBasic

  3. The Three Main Programming Constructs • So far we have looked at: • Sequence - the ordering of program statements INPUT “the wholesale cost of the article”; fCost LET fRetail = 2 * fCost PRINT “the retail cost of the article is ”; fRetail • Selection - making decisions in our code If...Then...Else... If...Then...Elseif... Select...Case

  4. Repetition • We can now introduce the third construct: • Iteration - looping or repetition • allows one or more statements to be repeated either a fixed number of times or until a particular condition(s) is satisfied

  5. Count Down Loop If Problem THEN Abort Else Ignite rocket Disconnect From Launch Pad

  6. Times Table Problem A program is required to display the times table for a number inputted by the user. • Suppose the number inputted was 6, the program should then generate the 6 times table as follows: 1 x 6 is 6 2 x 6 is 12 3 x 6 is 18 etc... 11 x 6 is 66 12 x 6 is 72

  7. Times Table Initial Design • Based only on what we have done so far:1 Read value in from keyboard2 Display times table for value entered3 End program • This looks OK, but let’s expand step 2...

  8. Times Table Expanded Design • 1 Read value in from keyboard2 Display times table for value entered2.1 Display title2.2 Display 1 * value entered2.3 Display 2 * value entered2.4 Display 3 * value entered2.5 Display 4 * value entered2.6 Display 5 * value entered2.7 Display 6 * value entered

  9. Times table continued 2.8 Display 7 * value entered2.9 Display 8 * value entered2.10 Display 9 * value entered2.11 Display 10 * value entered2.12 Display 11 * value entered2.13 Display 12 * value entered 3 End program

  10. Times Table Code • Code for the long winded solution: DIM iTimes AS INTEGERINPUT iTimes PRINT "The "; iTimes; " Times Table"PRINT "1 * "; iTimes; " = "; 1 * iTimesPRINT "2 * "; iTimes; " = "; 2 * iTimesPRINT "3 * "; iTimes; " = "; 3 * iTimesPRINT "4 * "; iTimes; " = "; 4 * iTimesPRINT "5 * "; iTimes; " = "; 5 * iTimesPRINT "6 * "; iTimes; " = "; 6 * iTimesPRINT "7 * "; iTimes; " = "; 7 * iTimes

  11. Times table problem • PRINT "8 * "; iTimes; " = "; 8 * iTimesPRINT "9 * "; iTimes; " = "; 9 * iTimesPRINT "10 * "; iTimes; " = "; 10 * iTimesPRINT "11 * "; iTimes; " = "; 11 * iTimesPRINT "12 * "; iTimes; " = "; 12 * iTimesEND • Clearly this is very tedious and becomes unworkable as the number of repeat task increases • However I have cunning plan!

  12. Times Table Looping Design • A new design, this time using a For...Next loop1 Read value in from keyboard2 Display title3 Display times table for value entered3.1 For Counter (1 to 12) 3.1.1 Display Counter X value entered End For 4 End program • This type of loop is used to perform a statement (or set of statements) a fixed number of times • This is ideal for our times table problem

  13. For...Next Loop Construct • The For...Next construct should be used when you know how may times the loop should be executed before entering the loop • General structure:FORCount=StartValueTOEndValue[STEPincrement] statements...NEXT[Count]Count can be any of these types: • Integer or Long • Single or Double

  14. Times Table Looping Code • Code for the looping version of the times table: DIM iCount AS INTEGERDIM iTimes AS INTEGERINPUT iTimes CLSPRINT "The "; iTimes; " Times Table"FOR iCount = 1 TO 12PRINT iCount;" * ";iTimes;" = ";iCount * iTimesNEXT iCountEND E.g. 2 * 6 = 12

  15. 6 Times Table Example Output The 6 times table 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 7 * 6 = 42 8 * 6 = 48 9 * 6 = 54 10 * 6 = 60 11 * 6 = 66 12 * 6 = 72

  16. For...Next Loop Step • We can also specify the step size and count backwards:DIM iCount AS INTEGERFOR iCount = 100 TO 0 STEP -10PRINT "iCount = "; iCountNEXT iCountEND SUB • Unless a STEP is specified the For loopwill increment by 1 each time • You should never change the value ofthe control variable(iCount) inside the For loop

  17. Nesting Loops • Consider the following:A program is required to print out the full 12 times table • A typical screen could be as follows: 1 times table 1 2 3 4 5 6 7 8 9 10 11 12 2 times table 2 4 6 8 10 12 14 16 1 8 20 22 24 3 times table 3 6 9 12 15 18 21 24 27 30 33 36 4 times table 4 8 12 16 20 24 28 32 36 40 44 48 5 times table 5 10 15 20 25 30 35 40 45 50 55 60 6 times table 6 12 18 24 30 36 42 48 54 60 66 72 and so on……...

  18. Design For Full Times Tables Step1 For RowCounter (1 to 12) 1.1 For ColumnCounter (1 to 12) Do1.1.1 Display RowCounter x ColumnCounter End For1.2 Display a new line End For 2 End program

  19. Coding DIM iRowCount AS INTEGER ‘line counterDIM iColumnCount AS INTEGER ‘item on line counterCLSFOR iRowCount = 1 TO 12PRINT iRowCount; "Times table: ";FOR iColumnCount = 1 TO 12PRINT iColumnCount * iRowCount;NEXT iColumnCountPRINTNEXT iRowCountEND

  20. Questions 1 When would you use a For loop? 2 What will the output from the following code be? For iRow = 6 To 4 Step -1 For iCol = -3 To 1 Step 2 Print iRow; " * "; iCol; " = "; iRow * iCol Next iCol Print Next iRow Return to view another lecture

More Related