90 likes | 205 Vues
This guide provides an overview of Do Loops and For Next Loops, essential constructs in programming for iterating through instructions. It explains how to implement counting down, controlling stop conditions, and using loops to process user input, including sums and averages. It covers varying scenarios such as printing even numbers, reading user input until a flag is reached, and structuring loops for known iterations. By mastering these concepts, you'll enhance your programming skills and ability to handle repetitive tasks efficiently.
E N D
Loops • Counting down from N to 1 in assembly we used JUMP statements to repeat previous instructions thus looping • READ • LOOP: WRITE • SUB decrement • JPOS LOOP • HALT • decrement :1
Do Loops • Stopping/looping condition but not sure how many iterations • good with flags (or sentinels) • Come in two forms • Do While --- LOOPING CONDITION • Dim InputNum As Single • InputNum=inputbox(“Enter a number to print, 0 to stop”) • Do While InputNum<>0 • picResults.Print InputNum • InputNum=inputbox(“Enter a number to print, 0 to stop”) • Loop • What would happen if I don’t read input again from user inside loop? • Do Until --- EXIT CONDIITON • Dim InputNum As Single • InputNum=inputbox(“Enter a number to print, 0 to stop”) • Do Until InputNum=0 • picResults.Print InputNum • InputNum=inputbox(“Enter a number to print, 0 to stop”) • Loop • Print even numbers between 2 and 100 in a picturebox
Do Loops • Dim counter As Integer • counter=2 • Do Whilecounter <=100 • picResults.Print counter • counter = counter +2 • Loop • Dim counter As Integer • counter=2 • Do Untilcounter >100 • picResults.Print counter • counter = counter +2 • Loop • Same initialization phase for loop variable (Outside loop) • Syntactically different exit conditions (Semantically the same) • Opposite to one another • Same action (Loop body: Do … Loop)
Do Loops • Program to compute the average for any class exam at CSBSJU • Enter any number of grades • When the flag (-1) is provided • end of input and print average • Algorithm + program • Show program
Do Loops • Program to get the average of any number of grades (enter -1 to exit) • Sum = 0, count=0, average=0 • grade=input by user • While grade <> -1 • Add grade to sum • Add 1 to count • Enter another grade • Divide sum by count to obtain the average • Print average
Do Loops • Private Sub cmdAverageButton_Click() • ‘program to compute the average exam score • Dim count As Integer • Dim grade As Single, sum As Single, avg As Single • grade = InputBox (“Enter the first exam score:”, ”Exam Scores”) • Do While grade <> -1 • sum = sum + grade • count = count + 1 • grade = InputBox(“Enter another score Type -1 to end.”, “Exam Scores”) • Loop • avg = sum/count • MsgBox “The average is: ” & FormatNumber(avg) • End Sub
For Next Loops • When we know how many times we need to repeat the loop • With a consistentincrease or decrease For Next Loops are better • Display values between 1 to 5 (vs. until user inputs -1) • Dim CTR As Integer • For CTR = 1 to 5 • picResults.Print CTR • Next CTR • After every loop, the loop counter is incremented by 1 (default) • Initialization: CTR=1 • Exit Condition: CTR>5 • Action: Results.Print CTR • Combines the initialization and exit conditions into one line • Previously initialization was done before loop
For Next Loops • After every loop, the loop counter is incremented by 1 (default) • Can be changed by specifying steps (display even numbers from 2 to 100) • For CTR = 2 to 100 Step 2 • picResults.Print CTR • Next CTR • Can be positive or negative (display even numbers from 100 to 2) • For CTR = 100 to 2 Step -2 • picResults.Print CTR • Next CTR
For Next Loops • The steps don’t have to be integers • For CTR = 1 to 3 Step .5 • picResults.Print CTR • Next CTR • Suppose we want to display all even numbers between 2 and another number specified by the user • Dim CTR as Integer, N As Integer • N =txtEndBox.Text • For CTR = 2 to N Step 2 • picResults.Print CTR • Next CTR • Design a VB program that displays in a picture box the first N multiples of an input integer