combination of sequence, selection and repetition lecture 6

32
Combination of Sequence, Selection and Repetition Lecture 6

Upload: jemima-riley

Post on 27-Dec-2015

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Combination of Sequence, Selection and Repetition Lecture 6

Combination of Sequence, Selection and Repetition

Lecture 6

Page 2: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.1

Design an algorithm that will prompt for and receive pairs of numbers from an operator at a terminal and display their sum, product and average on the screen. If the calculated sum is over 200, an asterisk is to be displayed beside the sum. The program is to terminate when a pair of zero values is entered.

Page 3: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing Output

Number1Number2

Prompt for numbersGet numbersCalculate sumCalculate productCalculate averageDisplay sum, product, averageDisplay `*`

SumProductAverage`*`

Page 4: Combination of Sequence, Selection and Repetition Lecture 6

Control Structures required

1. A DOWHILE loop to control the repetition

2. An IF statement to determine if an asterisk is to be displayed

3. Note the use of the NOT operand with the AND logical operator.

Page 5: Combination of Sequence, Selection and Repetition Lecture 6

Solution AlgorithmProcess_number_pairs

Set sum to zeroPrompt for number1, number2Get number1, number2DOWHILE NOT (number1 = 0 AND number2 = 0)

sum = number1 + number2product = number1 * number2average = sum / 2IF sum > 200 THEN

Display sum, `*`, product, averageELSE

Display sum, product, averageENDIFPrompt for number1, number2Get number1, number2

ENDDOEND

Page 6: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.2 Print student records

• A file of student records consists of `S´ records and ´U`records. An `S`record contains the student‘s number, name, age, gender, address and course type; regular (R/C) or short course (S/C) . A `U`record contains the number and name of the unit or units in which the student has enrolled. There may be more than one `U`record for each `S`record. Design a solution algorithm that will read the file of student records and print only the student‘s number, name and address on a `STUDENT LIST`.

Page 7: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing Output

`s`records•Number•Name•Address•Age•Gender•Course type

`U` records

Print headingRead student recordsSelect `s`recordsPrint selected records

Heading lineSelected student records• number• name• address

Page 8: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. An IF statement to select `S`records.

Page 9: Combination of Sequence, Selection and Repetition Lecture 6

Solution Algorithm

Print_student_recordsPrint `STUDENT LIST` headingread student recordDOWHILE more record exist

IF student record = `S` record THENPrint student_number, name,

addressENDIFRead student record

ENDDOEND

Page 10: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.3 Print selected Students

Design a solution algorithm that will read the same student file as in Example 6.2 and produce report of all female students who are enrolled for short course. The report is to be headed `SHORT COURSE FEMALE STUDENTS` and is to show the student‘s number, name, address and age.

Page 11: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing Output

`s`records•Number•Name•Address•Age•Gender•Course type

`U` records

Print headingRead student recordsSelect S/C female studentsPrint selected records

Heading lineSelected student records• number• name• address• age

Page 12: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. An IF statement to select `S` records, female and Short Course (S/C) students.

Page 13: Combination of Sequence, Selection and Repetition Lecture 6

Solution Algorithm 1 (use non-linear nested IF)

Produce_short_course_female_listPrint `SHORT COURSE FEMALE STUDENTS`headingRead student recordDOWHILE more records

IF student record = `S` record THENIF course_type = S/C THEN

IF gender = female THEN Print student_number, name, address,

ageENDIF

ENDIFENDIFRead student record

ENDDOEND

Page 14: Combination of Sequence, Selection and Repetition Lecture 6

Solution Algorithm 2 (use a nested and compound IF)

Produce_short_course_female_listPrint `SHORT COURSE FEMALE STUDENTS`headingRead student recordDOWHILE more records

IF student record = `S` record THENIF (course_type = S/CAND gender = female) THEN Print student_number, name, address, ageENDIF

ENDIFRead student record

ENDDOEND

Page 15: Combination of Sequence, Selection and Repetition Lecture 6

Solution Algorithm 3(use a compound IF)

Produce_short_course_female_listPrint `SHORT COURSE FEMALE STUDENTS`headingRead student recordDOWHILE more records

IF student record = `S` recordAND course_type = S/CAND gender = female THEN Print student_number, name, address, ageENDIFRead student record

ENDDOEND

Page 16: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.4 Print and total selected students

• Design a solution algorithm that will read the same student file as in Example 6.3 and produce the same `SHORT COURSE FEMALE STUDENTS`report. In addition, you are to print at the end of the report the number of students who have been selected and listed, and the total number of students on the file.

Page 17: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing Output`s`records•Number•Name•Address•Age•Gender•Course type

`U` records

Print headingRead student recordsSelect S/C female studentsPrint selected recordsCompute total studentsCompute total selected studentsPrint totals

Heading lineSelected student records• number• name• address• ageTotal_studentsTotal_Selected_students

Page 18: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. IF statements to select `S`, female and Short Course (S/C) students.

3. Accumulators for total_selected_students and total_students.

Page 19: Combination of Sequence, Selection and Repetition Lecture 6

Solution AlgorithmProduce_short_course_female_list

Print `SHORT COURSE FEMALE STUDENTS`headingSet total_students to zeroSet total_selected_students to zeroRead student recordDOWHILE records exist

IF student record = `S` record THENincrement total_studentsIF (course_type = S/CAND gender = female) THEN

increment total_selected_studentsPrint student_number, name, address, age

ENDIFENDIFRead student record

ENDDOPrint total_studentsPrint total_selected_students

END

Page 20: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.5 Print student report

Design an algorithm that will read the same student file as in Example 6.4 and, for each student, print the name, number and course type from the `S` records (student records) and the unit number and unit name from the `U`records (enrolled units records) as follow:STUDENT REPORTStudent name ......................Student number ......................Course type ......................Enrolled units ...................... ................

...................... ................At the end of the report, print the total number of students enrolled.

Page 21: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing Output`s`records•Number•Name•Address•Age•Gender•Course type

`U` records•Unit_number•Unit_name

Print headingRead student recordsPrint `s` record detailsPrint `u` record detailsCompute total studentsPrint total students

Heading lineDetail lines:• name• number• course_type• unit_number• unit_name

Total_students

Page 22: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. An IF statement to select `S` and `U` records.

3. An accumulator for total_students.

Page 23: Combination of Sequence, Selection and Repetition Lecture 6

Solution AlgorithmPrint_student_report

Print `STUDENT REPORT`headingSet total_students to zeroRead student recordDOWHILE records exist

IF student record = `S` THEN add 1 to total_students Print `Student name`, name Print `Student number`, number Print `Course type`, course_type Print `Enrolled units`ELSE IF student record = `U` THEN Print unit_number, unit_name ELSE

Print `Student record error` ENDIFENDIFRead student record

ENDDOPrint `Total students`, total_students

END

Page 24: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.6 Produce sales report

Design a program that will read a file of sales records and produce a sales report. Each record in the file contains a customer‘s number, name, a sales amount and a tax code. The tax code is to be applied to the sales amount to determine the sales tax due for the sale, as follows:

Tax code Sales tax

0 Tax exempt

1 3%

2 5%

The report is to print a heading `SALES REPORT` and detail lines listing the customer number, name, sales amount, sales tax and the total amount owing.

Page 25: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing OutputSales_record•customer_number•Name•Sales_amt•Tax_code

Print headingRead sales recordsCalculate sales taxCalculate total amountPrint customer details

Heading lineDetail lines:• customer_number• name• sales_amt• sales_tax• total_amount

Page 26: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. A case statement to calculate the sales_tax

Page 27: Combination of Sequence, Selection and Repetition Lecture 6

Solution AlgorithmProduce_sales_report

Print `SALES REPORT`headingRead sales recordDOWHILE not EOF

CASE of tax_code0 : sales_tax = 01 : sales_tax = sales_amt * 0.032 : sales_tax = sales_amt * 0.05

ENDCASEtotal_amt = sales_amt + sales_taxPrint customer_number, name, sales_amt, sales_tax,

total_amtRead sales record

ENDDOEND

Page 28: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.7 Student test results

• Design a solution algorithm that will read a file of student test results and produce a student test grades report. Each test record contains the student number, name and test score (out of 50). The program is to calculate for each student the test score as a percentage and to print the student‘s number, name, test score (out of 50) and a letter grade on the report. The letter grade is determined as follows:

A = 90-100%B = 80-89%C = 70-79%D = 60-69%E = 0-59%

Page 29: Combination of Sequence, Selection and Repetition Lecture 6

• Defining diagram

Input Processing OutputStudent_test_records•student_number•Name•Test_score

Print headingRead student recordsCalculate test percentageCalculate letter gradePrint student details

Heading lineStudent detail:• student_number• name• test_score• grade

Page 30: Combination of Sequence, Selection and Repetition Lecture 6

Control structures required

1. A DOWHILE loop to control the repetition

2. A formula to calculate the percentage

3. A linear nested IF statement to calculate the grade (CASE construct can not be used here why ?)

Page 31: Combination of Sequence, Selection and Repetition Lecture 6

Solution AlgorithmPrint_student_results

Print `STUDENT TEST GRADES`headingRead student recordDOWHILE not EOF

percentage = test_score * 2IF percentage >= 90 THEN grade = `A`ELSE IF percentage >= 80 THEN grade = `B` ELSE IF percentage >= 70 THEN grade = `C`

ELSE IF percentage >= 60 THEN grade = `D` ELSE grade = `F`

ENDIF ENDIF

ENDIF ENDIF Print student_number, name, test_score, grade Read student_record ENDDOEND

Page 32: Combination of Sequence, Selection and Repetition Lecture 6

Example 6.8 Gas Supply Billling• The domestic Gas Supply Company records its customers‘ gas usage

figures on a customer usage file. Each record on the file contains the customer number, customer name, customer address, and gas usage expressed in cubic metres. Design a solution algorithm that will read the customer usage file, calculate the amount owing for gas usage for each customer, and print a report listing each customer‘s number, name, address, gas usage and the amount owing.

• The company bills its customers according to the following rate: if the customer‘s usage is 60 cubic metres or less, a rate of $2.00 per cubic metre is applied; if the customer‘s usage is more than 60 cubic metres, then a rate pf $ 1.75 per cubic metre is applied for the first 60 cubic metres and $1.50 per cubic metre for the remaining usage.

• At the end of the report, print the total number of customers and the total amount owing to the company.