Saturday, December 7, 2019
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.