Tuesday, May 5, 2020
Mathematics Critical Thinking and Problem Solving
Questions: 1. Draw a defining diagram for the following problem statementA program that will prompt for and receive the measurements of a rectangle and then calculate the circumference (perimeter) and the area of the rectangle. The program is to continue until a sentinel of 999 is entered. 2. Develop a solution algorithm for a program that prompts for and obtains the daily temperatures for a whole month and displays the average, minimum, maximum temperature for that month. Your solution should contain a defining diagram, a pseudocode algorithm and a desk check of the algorithm Your algorithm should first prompt the user for the number of days in the month (x) and then request the user to enter x temperature values. If the user enters a negative number for x then an appropriate message should be displayed. Once the x number of temperatures have been entered, your algorithm must calculate and display the average, minimum and maximum temperature.3. Develop an algorithm for the following problem statement using appropriate modularisation techniques. Your solution should contain a defining diagram, a pseudocode algorithm and a desk check of the algorithm. Your algorithm will produce a list of students from a student file. The file has a record for each unit attempted and result achieved in that unit for each student. Eg. If a student has passed four units and failed two there will be 6 records on the file. Each record contains the following fields: Field Name Data Type Student Id Alphanumeric Student Name Alphanumeric Unit Code Alphanumeric Unit Result Numeric The algorithm is to read the records from the student file and print a report of all students as well as their results. The report should contain all of the fields properly formatted. For each student there should be a printed summary of their results i.e. a printed line of the number of passed units, the number of failed units and the students WAM, the average of all units. Print page headings and column headings at the top of each page. After printing 50 lines, a new page should be started. At the end of the report, the total number of students; the total number of passed units and the total number of failed units should be printed. Answers: 1. Defining diagram is, Input Processing Output LENGTH BREADTH TOKEN (Enter 999 to stop) Check TOKEN = 999, then STOP. Calculate CIRCUMFERENCE = 2(LENGTH x BREADTH) CIRCUMFERENCE 2. The defining diagram is, Input Processing Output NUM_DAYS_MONTH DAILY_TEMP Check NUM_DAYS_MONTH =0, PRINT ERROR. Enter daily temperature for NUM_DAYS_MONTH one by one using DAILY_TEMP. Calculate MIN_TEMP, MAX_TEMP, AVG_TEMP. MIN_TEMP, MAX_TEMP, AVG_TEMP The Pseudo code is, ALGORITHM1 (MIN_TEMP = 0, MAX_TEMP=0, TOTAL_TEMP=0) { INPUT NUM_DAYS_MONTH IF NUM_DAYS_MONTH = 0 PRINT Enter Positive number. ELSE FOR (i=1 to NUM_DAYS_MONTH) { INPUT DAILY_TEMP(i) SET TOTAL_TEMP = TOTAL_TEMP + DAILY_TEMP(i) i++ } AVG_TEMP = TOTAL_TEMP / NUM_DAYS_MONTH FOR (i=1 to NUM_DAYS_MONTH ) { IF (DAILY_TEMP (i) = MIN_TEMP) ) { MIN_TEMP = DAILY_TEMP (i) i++ } } FOR (i=1 to NUM_DAYS_MONTH ) { IF (DAILY_TEMP (i) MAX_TEMP ) { MAX_TEMP = DAILY_TEMP (i) i++ } } PRINT MAX_TEMP, MIN_TEMP, AVG_TEMP } The desk check is, ALGORITHM1 () { INPUT NUM_DAYS_MONTH NUM_DAYS_MONTH = 3 IF NUM_DAYS_MONTH = 0 FALSE PRINT Enter Positive number. ELSE FOR (i=1 to NUM_DAYS_MONTH) 1 to 3 { INPUT DAILY_TEMP(i) 40 30 20 SET TOTAL_TEMP = TOTAL_TEMP + DAILY_TEMP(i) TOTAL_TEMP = 40 TOTAL_TEMP = 70 TOTAL_TEMP = 90 i++ 1 2 3 } AVG_TEMP = TOTAL_TEMP / NUM_DAYS_MONTH AVG_TEMP = 30 FOR (i=1 to (NUM_DAYS_MONTH )) i= 1 to 2 { IF (DAILY_TEMP (i) = MIN_TEMP ) TRUE TRUE { MIN_TEMP = DAILY_TEMP (i) MIN_TEMP = 30 MIN_TEMP = 20 i++ 2 3 } } FOR (i=1 to NUM_DAYS_MONTH ) i=1 to 2 { IF (DAILY_TEMP (i) MAX_TEMP) TRUE FALSE { MAX_TEMP = DAILY_TEMP (i) MAX_TEMP = 40 i++ 2 } } PRINT MAX_TEMP, MIN_TEMP, AVG_TEMP MAX_TEMP = 40, MIN_TEMP = 20, AVG_TEMP= 30 } 3. The defining diagram is, Input Processing Output NUM_RECORDS COUNTER = 0 RECORD(i) Check for NUM_RECORDS COUNT NUM_FAIL for a STUDENT_ID COUNT NUM_PASS for a STUDENT_ID PRINT 50 RECORDS on each page of REPORT The pseudo code is, ALGORITHM2(COUNTER1=0, COUNTER2=0, Counter3 = 0) { INPUT NUMBER_RECORDS IF NUMBER_RECORDS 0 PRINT Please enter valid number. FOR (i=1 to NUMBER_RECORDS) { X= STUDENT_ID(i) FOR (j = 2 to NUM_RECORDS) { IF (X = STUDENT_ID(j)) { IF (UNIT_RESULT(j) = PASSED COUNTER1 ++ ELSE COUNTER2++ } J++ } PRINT [STUDENTID, COUNTER1 AS PASSED, COUNTER2 AS FAILED] PRINT NEW LINE I++ IF (COUNTER3 =50) { INSERT PAGE BREAK COUNTER3 = 0 } ELSE COUNTER3 ++ } } The desk check is, ALGORITHM2(COUNTER1=0, COUNTER2=0) COUNTER1=0, COUNTER2=0 next iteration next iteration { INPUT NUMBER_RECORDS 3 IF NUMBER_RECORDS 0 FALSE PRINT Please enter valid number. FOR (i=1 to NUMBER_RECORDS) i= 1 to 3 { X= STUDENT_ID(i) X = STUDENT_ID(1) FOR (j = 1 to NUM_RECORDS) j= 1 to 3 j= 2to 3 j=3 to3 { IF (X = STUDENT_ID(j)) TRUE TRUE FALSE { IF (UNIT_RESULT(j) = PASSED TRUE FALSE COUNTER1 ++ COUNTER1=1 ELSE COUNTER2++ COUNTER2 = 1 } J++ j = 2 j=3 j=3 } PRINT [STUDENTID, COUNTER1 AS PASSED, COUNTER2 AS FAILED] PRINT STUDENT_ID, PASSED =1, FAILED =1 PRINT NEW LINE i++ i=2 IF (COUNTER3 =50) FALSE { INSERT PAGE BREAK COUNTER3 = 0 } ELSE COUNTER3 ++ COUNTER3=1 } } The process will continue for 3 records. The first two records are for same student in two different subject, one PASSED and another FAILED, the third record is for another student and PASSED.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.