Presentation is loading. Please wait.

Presentation is loading. Please wait.

Logic and Algorithm. Developing an algorithm To help the initial analysis, the problem should be divided into 3 separate components: 1.Input: a list of.

Similar presentations


Presentation on theme: "Logic and Algorithm. Developing an algorithm To help the initial analysis, the problem should be divided into 3 separate components: 1.Input: a list of."— Presentation transcript:

1 Logic and Algorithm

2 Developing an algorithm To help the initial analysis, the problem should be divided into 3 separate components: 1.Input: a list of the source data provided to the problem 2.Output: a list of the outputs required 3.Processing: a list of actions needed to produce the required outputs.

3 Example 1. Add three numbers  A program is required to read three numbers, add them together and print their total.

4 Solution: 1.Underline the nouns and adjectives used in the specification  establish the input, output component and any object that are required. A program is required to read three numbers, add them together and print their total.

5 Defining diagram InputProcessingOutput Number1 Number2 Number3 total

6 2.Underline the verbs and adverbs used in the specification  establish the action required. A program is required to read three numbers, add them together and print their total.

7 Defining diagram InputProcessingOutput Number1 Number2 Number3 Read three numbers Add numbers together Print total number total

8 3.Writing down the processing steps in an algorithm, Read three numbers Add numbers together Print total number

9 Solution Algorithm Add_three_numbers Read number1, number2, number3 Total = number1 + number2 + number3 Print total END

10 Example 2. Find average temperature A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

11 Step 1 A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

12 Defining diagram InputProcessingOutput Max_temp Min_temp Avg_temp

13 Step 2 A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

14 Defining diagram InputProcessingOutput Max_temp Min_temp Prompt for temperatures Get temperatures Calculate average temperature Display average temperature Avg_temp

15 Solution Algorithm Find average_temperature Prompt operator for max_temp, min_temp Get max_temp, min_temp Avg_temp= (max_Temp + min_temp)/2 Output avg_temp to the screen END

16 Example 3. Compute Mowing Time A program is required to read from the screen the lenght and widht of a rectangular house block, and the lenght and width of the rectangular house that has been built on the block. The algorithm should then compute and display the mowing time required to cut the grass around the house, at the rate of two square metres per minute

17 Step 1 A program is required to read from the screen the lenght and widht of a rectangular house block, and the lenght and width of the rectangular house that has been built on the block. The algorithm should then compute and display the mowing time required to cut the grass around the house, at the rate of two square metres per minute.

18 Defining diagram InputProcessingOutput Block_lenght Block_width House_lenght House_width Mowing_time

19 Step 2 A program is required to read from the screen the lenght and widht of a rectangular house block, and the lenght and width of the rectangular house that has been built on the block. The algorithm should then compute and display the mowing time required to cut the grass around the house, at the rate of two square metres per minute.

20 Defining diagram InputProcessingOutput Block_lenght Block_width House_lenght House_width Prompt for block measurements Get block measurements Prompt for house measurements Get house measurements Calculate mowing area Calculate mowing time Mowing_time

21 Solution Algorithm Calculate_mowing_time Prompt operator for block_lenght, block_width Get block_length, block_width block_area = block_lenght*block_width Prompt operator for house_lenght, house_width Get house_lenght, house_width house_area=house_lenght*house_width Mowing_area=block_area-house_area Mowing_time=mowing_area/2 Output mowing_time to screen END

22 Desk Checking

23 Checking the solution algorithm (Desk Checking) Tracing through the logic of the algorithm with some chosen data..

24 Step in desk Checking an algorithm 1.Choose valid simple input test case (2-3 enough) 2.Establish what the expected result should be. 3.Make a table of relevant variable names 4.Checking the test case line by line, step by step 5.Repeat process 4 for other test case 6.Check if expected result 2 matches with actual result 5

25 Example 4. Desk Chek for example 1  A program is required to read three numbers, add them together and print their total.

26 Solution Algorithm Add_three_numbers Read number1, number2, number3 Total = number1 + number2 + number3 Print total END

27 Desk Checking 1.Choose two sets input test data. Set 1: 10,20, 30 and Set 2: 40, 41, 42 Data Set 1Data Set 2 Number 11040 Number 22041 Number 33042

28 2. Establish the expected result for each test case Data Set 1Data Set 2 Total60123

29 3. Set up a table of relevant variable names, and pass each test data set statement by statement. Statement number number1number2number3total First Pass 1102030 260 3Print Second Pass 1404142 2123 3Print

30 4. Check the expected results (60 and 123) match the actual results.

31 Desk Check of Example 2. A program is required to prompt the terminal operator for the maximum and minimum temperature readings on a particular day, accept those readings as integers, and calculate and display to the screen the average temperature, calculated by (maximum temperature + minimum temperature)/2.

32 Solution Algorithm Find average_temperature Prompt operator for max_temp, min_temp Get max_temp, min_temp Avg_temp= (max_Temp + min_temp)/2 Output avg_temp to the screen END

33 Desk Checking 1.Choose two sets input test data. Set 1: 30, 10 and Set 2: 40, 20 Data Set 1Data Set 2 Max_temp3040 Min_temp1020

34 2. Establish the expected result for each test case Data Set 1Data Set 2 Avg_temp2030

35 3. Set up a table of relevant variable names, and pass each test data set statement by statement. Statement number Max_tempMin_tempAvg_temp First Pass 1,23010 320 40utput Second Pass 1,24020 330 4output

36 4. Check the expected results match the actual results.

37 Assignment 2: Desk Checking for Compute mowing time A program is required to read from the screen the lenght and widht of a rectangular house block, and the lenght and width of the rectangular house that has been built on the block. The algorithm should then compute and display the mowing time required to cut the grass around the house, at the rate of two square metres per minute.

38 Solution Algorithm Calculate_mowing_time Prompt operator for block_lenght, block_width Get block_length, block_width block_area = block_lenght*block_width Prompt operator for house_lenght, house_width Get house_lenght, house_width house_area=house_lenght*house_width Mowing_area=block_area-house_area Mowing_time=mowing_area/2 Output mowing_time to screen END

39 Assignment 3 – Desk Checking for Mowing_time which now contains a logic error Calculate_mowing_time Prompt operator for block_lenght, block_width Get block_length, block_width block_area = block_lenght * block_width Prompt operator for house_lenght, house_width Get house_lenght, house_width house_area=block_lenght * block_width Mowing_area=block_area - house_area Mowing_time=mowing_area/2 Output mowing_time to screen END

40 Calculate_mowing_time 1 Prompt operator for block_lenght, block_width 2 Get block_length, block_width 3 block_area = block_lenght*block_width 4 Prompt operator for house_lenght, house_width 5 Get house_lenght, house_width 6 house_area=house_lenght*house_width 7 Mowing_area=block_area-house_area 8 Mowing_time=mowing_area/2 9 Output mowing_time to screen END Assignment 2 Review:

41 Desk Checking 1.Input data: Data Set 1Data Set 2 Block_lenght3040 Block_widht3020 House_lenght20 House_width2010

42 2. Expected result: Data Set 1Data Set 2 Mowing_time250 minutes300 minutes

43 3. Set up a table of relevant variable names, and pass each test data set statement by statement. Statement number Block_lenghtBlock_widthHouse_lenghtHouse_widthBlock_are a House_areaMowing_are a Mowing_time First Pass 1,230 3900 4,520 6400 7500 8250 9Output Second Pass 1,24020 3800 4,52010 6200 7600 8300 9Output

44 4. Check the expected results match the actual results.

45 What about This? Calculate_mowing_time 1 Prompt operator for block_lenght, block_width 2 Get block_length, block_width 3 block_area = block_lenght*block_width 4 Prompt operator for house_lenght, house_width 5 Get house_lenght, house_width 6 house_area=house_lenght*house_width 7 Mowing_area=block_area-house_area 8 Mowing_time=mowing_area/2 9 Output mowing_time to screen END

46 Desk Checking 1.Input data: Data Set 1Data Set 2 Block_lenght3040 Block_widht3020 House_lenght20 House_width2010

47 2. Expected result: Data Set 1Data Set 2 Mowing_time250 minutes300 minutes

48 3. Desk Check Table Statement number Block_lenghtBlock_widthHouse_leng ht House_widt h Block_areaHouse_areaMowing_are a Mowing_tim e First Pass 1,230 3900 4,520 6900 70 80 9Output Second Pass 1,24020 3800 4,52010 6800 70 80 9Output

49 4. Check the expected results match the actual results. We found that: –The calculation for the house_area is incorrect, the result is zero, which cannot be right. –The algorithm needs to be adjusted: house_area=block_lenght * block_width –Is changed to: house_area=house_lenght * house_width

50 Example 5. Process Customer Record A program is required to read a customer‘s name, a purchase amount and a tax code. The tax code has been validated and will be one of the following: 0baby needs tax (0%) 1Vegetables and food tax (3%) 2drink sales tax (5%) 3special sales tax (7%) The program must then compute the sales tax and the total amount due, and print the customer‘s name, purchase amount, sales tax and total amount due.

51 Defining diagram InputProcessingOutput Cust_name Purch_amt Tax_code Read customer details Compute sales tax Compute total amount Print customer details Cust_name Purch_amt Sales_tax total_amt

52 Solution Algorithm Process_customer_record 1Read cust_name, purch_amt,tax_code 2IF tax_code = 0 THEN sales_tax = 0 ELSE IF tax_code = 1 THEN sales_tax = purch_amt * 0.03 ELSE IF tax_code = 2 THEN sales_tax = purch_amt * 0.05 ELSE sales_tax = purch_amt * 0.07 ENDIF 3total_amt = purch_amt + sales_tax 4Print cust_name, purch_amt, sales_tax, total_amt END

53 Desk Checking Data Set 1Data Set 2 Purch_amt$ 10.00$ 20.00 Tax_code02 1. Input Data

54 2. Expected Results Data Set 1Data Set 2 Sales_tax0$1.00 Total_amt$10.00$21.00

55 3. Desk Check Table Statement number Purch_amtTax_codeSales_taxTotal_amt First Pass 1$ 10.000 20 3 4print Second Pass 1$ 20.002 2$ 1.00 3$ 21.00 4print

56


Download ppt "Logic and Algorithm. Developing an algorithm To help the initial analysis, the problem should be divided into 3 separate components: 1.Input: a list of."

Similar presentations


Ads by Google