Académique Documents
Professionnel Documents
Culture Documents
TempA0
TempB0
Weather
Pseudocode
Flow Chart
Output TempB
Output
Process
NonIterative
Formula/Value
Calculation
TempB (TempA-32)/1.8
is
TempB<20
?
Ye
s
Example:
TempA0
TempB0
Weather
Example:
DIM TempA As Integer=0
DIM TempB As Integer =0
DIM Weather As String=
[Variable Name]=Console.ReadLine()
Example:
TempA=Console.ReadLine()
No
Pseudoco
de
TempB (TempA-32)/1.8
TempB=(TempA-32)/1.8
Iterative
CountA
CountA+1
CountB
CountB+1
Formula/Val
ue
Calculation
Selection
Algorithm
Input TempA
Input
VB/VB.Net
IF Temp<20 THEN
CountA CountA+1
ELSE
CountB CountB+1
ENDIF
Totaling
Condition based
Loop
Example:
If Temp<20 Then
CountA=CountA+1
Else
CountB= CountB+1
End If
Counting
Extreme
Values
Example:
IF TempB>Highest THEN Highest TempB
Example:
If TempB>Highest Then Highest = TempB
No
Yes
is
TempB> Highest
?
Highest TempB
Ye
s
is
Weather=Foggy
?
No
Foggy
Foggy+1
Selection
Sunny
Sunny +1
Example:
CASE Weather OF
Foggy : FoggyFoggy+1
Cloudy: CloudyCloudy+1
Rainy : RainyRainy+1
OTHERWISE SunnySunny+1
ENDCASE
Example:
Module Module1
Sub Main()
DIM Weather as String
DIM Foggy as Integer=0
DIM Cloudy as Integer=0
DIM Rainy Yes
as Integer=0
DIM Sunny as Integer=0
Weather=Console.ReadLine()
is
Select Weather Weather=Cloudy
Case
"Foggy"
?
Cloudy
Foggy=Foggy+1
Cloudy+1
Case "Cloudy"
Cloudy=Cloudy+1
Case "Rainy"
Rainy=Rainy+1
Case Else
Yes
Sunny=Sunny+1
End Select
is
Console.WriteLine (Foggy)
Weather=Rainy
Console.WriteLine
(Cloudy)
?
Console.WriteLine
(Rainy)
Rainy
Console.WriteLine
(Sunny)
Rainy+1
End Sub
End Module
(You can try this code online at
http://ideone.com/EOBwlK,)
No
No
Counter could be
Count, X, etc.
Start
Count 0
Yes
Count=100
No
Output
"Hello World"
Count Count + 1
End
Counter could be
Count, X, etc.
DIM Counter As Datatype
FOR Counter = Start TO End
-------Things to do within
-------loop
---------------------NEXT
Things to do outside
-------the loop
--------------Example:
Print Hello World 100 times:
Module Module1
Sub Main()
Dim Count As Integer
For Count= 1 To 100
Console.WriteLine("Hello World)
Next
End Sub
End Module
Start
Count 0
Input
Code
Yes
Code=9999
No
Print
"Hello World"
Input
Code
End
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Example:
Print Hello World till code 9999 was entered:
Module Module1
Sub Main()
Dim Code As Integer=0
Code=Console.ReadLine()
While Code<>9999
Console.WriteLine(Hello World)
Code=Console.ReadLine()
End While
End Sub
End Module
1) Start of Flowchart
Start
Count0
CountA0
and
initialized
CountB0
TempA0
TempB0
Total0
Avg0
Highest0
Lowest1000
3) Start of the
loop. Set loop exit condition i.e. Count=100 if you ha
Yes
is
Count=100
4) Input Command
No
AvgTotal/100
Input
TempA
Output
Avg, CountA, CountB Highest, Lowest
TempB (TempA-32)/1.8
End
Output
TempB
12) Always Print Average, Counting Variables, and Extreme Values outside the loop.
Yes
CountA CountA+1
is
TempB<20
?
CountB CountB+1
No
is
TempB>Highest
?
Highest TempB
Yes
No
Lowest TempB
is
TempB<Lowest
?
10) Increment the loop counter by 1 for the next iteration and
Count Count+1
Initialization
Start
([Variable]Initial Value)
Initialization Box
Yes
Loop exit
Condition Check
No
Input Value
(TotalTotal+[Variabl
Counting based on co
Output Result
Totaling
data to find)
Counting
Condition Check
Yes
No
Increment the
counter by 1
Yes
Increment the
counter by 1
(IF [Variable]>Highes
Highest [Variable])
(IF [Variable]<Lowest
Lowest [Variable])
Next
Calculate Average
Increment the counter and return to loop exit condition
Calculate Average
Output Average,
Counting, Extreme Values
End
(Per(CountA/Loop End V
Start
Question:
Write an algorithm in the form of a
flowchart which takes temperatures
input in Fahrenheit over a 100 day
period (once per day). Convert the
temperature in Celsius with the help
of following formula:
Temp (in Celsius)=(Temp (in
Fahrenheit) - 32)/1.8
and output temperature in Celsius,
also print:
(b) number of days when the
temperature was below 20C and
the number of days when the
temperature was 20C and above.
(c) average temperature of 100
days.
(d) the highest and lowest
temperature recorded in these
100days.
Variables to be
used
Count
TempA
TempB
CountA
CountB
Total
Avg
Highest
Lowest
to Store/Count
No of iteration
Temp in Fahrenheit
Temp in Celsius
Number of days
temp was below 20
Number of days
temperature was 20
and above
Running sum of 100
days temperature
Average
temperature of
100days
Highest temperature
in 100 days
Lowest temperature
in 100 days
Yes
Count0
CountA0
CountB0
Total0
Avg0
Highest0
Lowest1000
Count0
Count=100
TempB0
CountA0
CountB0
TempA0
Total0
No
Input
TempA
Avg0
Highest0
Lowest1000
FOR Count 1 TO 100
Output
TempB
READ TempA
Total Total + TempB
Yes
TempB<20
No
TotalTotal+Tem
CountA CountA + 1
IF TempB < 20 T
CountB CountB + 1
CountA
Yes
TempB>Highest
ELSE
No
CountB
ENDIF
HighestTempB
IF TempB>Highe
Yes
TempB<Lowest
No
HighestTempB
IF TempB<Lowes
LowestTempB
Lowest TempB
NEXT
Count Count + 1
AvgTotal/100
End
Start
Num0
Count0
Num0
Count0
CountA0
Largest00
Yes
CountA0
Largest0
FOR Count1 TO 50
READ Num
Count=50
IF Num>100 THE
No
CountACountA+1
Input
Num
IF Num>Largest
LargestNum
Yes
Num>100
No
NEXT
PRINT CountA, Largest
CountA CountA + 1
Yes
Num>Largest
No
Largest Num
Count Count + 1
End
1) Start of Flowchart
Start
Count0
CountA0
and
initialized
CountB0
TempA0
TempB0
Total0
Avg0
Highest0
Lowest1000
Day
3) Input Command
Initialization
Input Day,
Start
TempA
[Variable]Initial Value)
Input [Variable]
Initialization Box
4) Start
of the loop. Input
UseValue
input variable to set Output
loop exit
conditio
Calculated
Val
Yes
Yes
Loop exit
Condition Check
No
(TotalTotal+[Variabl
Day= Friday
Value
? Calculation
AvgTotal/Count
data to find)
Output
Result
Calculate Average
(Avg Total/Count)
TempB (TempA-32)/1.8
Totaling
Output
Output
Avg, CountA, CountB Highest, Lowest
Counting based on co
No
End
Output
Count 6)
Count
+1
(to calculate average)
(IF [Variable]>Highes
Output
YesCounting ConditionNo
Check
TempB
Highest [Variable])
(IF [Variable]<Lowest
7) Add the
input value orIncrement
result the
of value calculated if averag
Increment the
counter variable by 1
counter variable by 1
Input [Variable]
Yes
Extreme
End
Lowest [Variable])
No
Value Check
Endwhile
Calculate Average
Count Count+1
Extreme
Yes
Calculate Percentage
(Per(CountA/Loop End V
Value Check
No
13) Always Print Average, Counting Variables, and Extreme Values outside the loop.
Output
Counting
9) Set the counting condition if tally is required
and Average,
increment
the
Values
No
Yes
CountA CountA+1
to Store/Count
is
Input Value
TempB<20
?
CountB CountB+1
Yes
No
is
TempB>Highest
?
Highest TempB
Yes
Lowest TempB
No
is
TempB<Lowest
?
Count0
CountA0
CountB0
TempA0
TempB0
Total0
Avg0
Highest0
Lowest1000
Highest/Lowest,
Tallest/Shortest,
Day
READ TempA, Day
WHILE DAY<>Friday
Do
TempB (TempAPRINT TempB
TotalTotal+Tem
CountCount+1
IF TempA < 20
THEN
ELSEre
11) Input command for next iteration before
Input Day,
TempA
ENDIF
IF TempB>Highe
HighestTempB
IF TempB<Lowes
LowestTempB
READ TempA, Da
ENDWHILE
AvgTotal/Count
PRINT Avg, CountA, Coun
used
Count
Day
TempA
TempB
CountA
CountB
Total
Avg
Highest
Lowest
No of days
Day of week
Temp in Fahrenheit
Temp in Celsius
Number of days
temp was below 20
Number of days
temperature was 20
and above
Running sum of 100
days temperature
Average
temperature of
100days
Highest temperature
in 100 days
Lowest temperature
in 100 days
Start
Count0
CountA0
CountB0
Total0
Avg0
Highest0
Lowest1000
Day
Input
TempA, Day
Yes
Day="Friday"
No
Avg Total/100
Output
TempB
Output
Count Count + 1
End
Yes
TempB<20
CountACountA + 1
No
CountBCountB + 1
Yes TempB>HighestNo
Highest TempB
Yes TempB<Lowest No
LowestTempB
Input
Day, TempA"
Num0
Start
CountA0
Largest00
Num0
CountA0
Largest0
READ Num
WHILE Num<> -1
Input
Num
Yes
Do
IF Num>100 THEN C
IF Num>Largest THE
Num= - 1
READ Num
No
Yes
Num>100
ENDWHILE
No
CountA CountA + 1
Yes
Num>Largest
No
Largest Num
Input
Num
Start
Num0
Total0
Count0
Largest00
Avg0
Num0
Count0
Input
Num
Total0
Avg0
Yes
Num= - 1
Largest0
READ Num
No
WHILE Num<> -1
TotalTotal + Num
Do
TotalTotal+Num
CountCount + 1
Yes
Num>Largest
CountCount+1
No
IF Num>Largest THE
READ Num
ENDWHILE
AvgTotal/Count
Largest Num
End
Practice Questions:
(1) Daniel lives in Italy and travels to Mexico, India and New Zealand. The times differences are:
Country
Hours
Minutes
Mexico
-7
0
India
+4
+30
New Zealand
+11
0
Thus, if it is 10:15 in Italy it will be 14:45 in India.
(a) Write an algorithm, using pseudocode or otherwise, which:
Inputs the name of the country
Inputs the time in Italy in hours (H) and minutes (M)
Calculates the time in the country input using the data from the table
Outputs the country and the time in hours and minutes
(2) As part of an experiment, a school measured the heights (in metres) of all its 500 students.
Write an algorithm, using pseudocode, which inputs the heights of all 500 students and outputs the height of the tallest person and the shortest person in the school.
(3) A geography class decide to measure daily temperatures and hours of sunshine per day over a 12 month period (365 days)
Write an algorithm, using pseudocode, which inputs the temperatures and hours of sunshine for all 365 days, and finally outputs the average (mean) temperature for
the year and the average (mean) number of hours per day over the year.
(4) A small shop sells 280 different items. Each item is identified by a 3 digit code. All items that start with a zero (0) are cards, all items that start with a one (1) are
sweets, all items that start with a two (2) are stationery and all items that start with a three (3) are toys.
Write an algorithm, using pseudocode, which inputs the 3 digit code for all 280 items and outputs the number of cards, sweets, stationery and toys.
(5) A company are carrying out a survey by observing traffic at a road junction. Each time a car, bus, lorry or other vehicle passed by the road junction it was noted
down.
10 000 vehicles were counted during the survey.
Write an algorithm, using pseudocode, which:
inputs all 10000 responses
outputs the number of cars, buses and lorries that passed by the junction during the survey
outputs the number of vehicles that werent cars, buses or lorries during the survey
(6) Speed cameras read the time a vehicle passes a point (A) on the road and then reads the time it passes a second point (B) on the same road (points A and B are
100 metres apart). The speed of the vehicle is calculated using:
The maximum allowed speed is 100 kilometres per hour. 500 vehicles were monitored using these cameras over a 1 hour period.
Write
May/June 2006
16 (a) A formula for calculating the body mass index (BMI) is:
Calculate the BMI for a person whose weight is 80kg and height is 2 metres.
[1]
(b) Using pseudocode or otherwise, write an algorithm that will input the ID, weight (kg) and height (m) of 30 students, calculate their body mass index
(BMI) and output their ID, BMI and a comment as follows:
A BMI greater than 25 will get the comment OVER WEIGHT, a BMI between 25 and 19 (inclusive) will get NORMAL and a BMI less than 19 will get
UNDER WEIGHT.
[6]
20 Temperatures (C) are being collected in an experiment every hour over a 200 hour period. Write an algorithm, using pseudocode or otherwise, which
inputs each temperature and outputs
how many of the temperatures were above 20C
how many of the temperatures were below 10C
the lowest temperature that was input
[5]
May/June 2007
19 A company has 5000 CDs, DVDs, videos and books in stock. Each item has a unique 5-digit code with the first digit identifying the type of item, i.e.
1 = CD
2 = DVD
3 = video
4 = book
For example, for the code 15642 the 1 identifies that it is a CD, and for the code 30055 the 3 identifies that it is a video.
Write
Oct/Nov 2007
16 (a) Fuel economy for a car is found using the formula:
[5]
May/June 2008
19 Customers can withdraw cash from an Automatic Teller Machine (ATM).
withdrawal is refused if amount entered > current balance
withdrawal is refused if amount entered > daily limit
if current balance < $100, then a charge of 2% is made
if current balance $100, no charge is made
Write an algorithm which inputs a request for a sum of money, decides if a withdrawal can be made and calculates any charges. Appropriate output
messages should be included.
[5]
Oct/Nov 2008
19 The manufacturing cost of producing an item depends on its complexity. A company manufactures three different types of item, with costs based on
the following calculations:
Item type 1: item cost = parts cost * 1.5
Item type 2: item cost = parts cost * 2.5
Item type 3: item cost = parts cost * 5.0
The company makes 1000 items per day.
Write an algorithm, using pseudocode, flowchart or otherwise, which
inputs the item type and parts cost of each item
outputs the item cost for each item
calculates and outputs the average (mean) item cost per day (based on 1000 items being made).
[5]
May/June 2009
18 A small airport handles 400 flights per day from three airlines:
FASTAIR (code FA)
SWIFTJET (code SJ)
KNIGHTAIR (code KA)
Each flight is identified by the airline code and 3 digits. For example FA 156.
Write an algorithm, using pseudocode or otherwise, which monitors the 400 flights into and out of the airport each day. The following inputs, processing
and outputs are all part of the monitoring process:
input flight identification
calculate number of flights per day for each of the three airlines
output the percentage of the total flights per day by each airline
any validation checks must be included
[5]
[7]
[3]
[3]
[4]
and travels
Hours
-7
+4
+11
[2]
[6]
[4]
[4]
[6]
[5]
[6]
15 A survey is being carried out which involves reading and recording sound levels near a busy road junction. Once all the data are collected, they are
input manually into a computer. A sound level of 0 decibels (0 dB) is input to indicate the end of the data.
Write an algorithm, using pseudocode or a flowchart, which:
inputs all the sound levels
after a sound level of 0 is input, outputs the following:
o average sound level
o highest recorded sound level.