problem on the main program - Programmers Heaven

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# problem on the main program

Posts: 7Member
the following cannot be ran as the sample output shown :
F: (0)
E:** (2)
****** (6)
C:*********(9)
B:**** (4)
A:**(2)

how can solved this problem?
many thanks to you guys

[code]
program barchart;
var
count : array ['A'..'F'] of integer;
mark : array [1..15] of integer;
i: integer;
ch: char;

var
ch : char;
i : integer;
begin
for ch := 'A' to 'F' do
count[ch] := 0;
for i := 1 to 15 do
case mark[i] of
0..50 : count['F'] := count['F'] + 1;
51..60 : count['E'] := count['E'] + 1;
61..70 : count['D'] := count['D'] + 1;
71..80 : count['C'] := count['C'] + 1;
81..90 : count['B'] := count['B'] + 1;
91..100 : count['A'] := count['A'] + 1;
end
end;

procedure plotchart;
var
ch : char;
i : integer;
begin
for ch := 'F' to 'A' do
begin
write(ch, ':');
for i := 1 to count[ch] do
write('*');
writeln('(', count[ch], ')')
end
end;

begin
for i:=1 to 15 do
begin
write('Enter test mark for student ',i,': ' );
end;

plotchart;
end.[/code]

• Posts: 438Member
How many students can the program accommodate? How many marks?

Look at the loop in procedure plotchart; how does it terminate?

: [code]:
: program barchart;
: var
: count : array ['A'..'F'] of integer;
: mark : array [1..15] of integer;
: i: integer;
: ch: char;
:
: var
: ch : char;
: i : integer;
: begin
: for ch := 'A' to 'F' do
: count[ch] := 0;
: for i := 1 to 15 do
: case mark[i] of
: 0..50 : count['F'] := count['F'] + 1;
: 51..60 : count['E'] := count['E'] + 1;
: 61..70 : count['D'] := count['D'] + 1;
: 71..80 : count['C'] := count['C'] + 1;
: 81..90 : count['B'] := count['B'] + 1;
: 91..100 : count['A'] := count['A'] + 1;
: end
: end;
:
: procedure plotchart;
: var
: ch : char;
: i : integer;
: begin
: for ch := 'F' to 'A' do [red]{ how does this loop terminate? }[/red]
: begin
: write(ch, ':');
: for i := 1 to count[ch] do
: write('*');
: writeln('(', count[ch], ')')
: end
: end;
:
: begin
: for i:=1 to 15 do
: begin
: write('Enter test mark for student ',i,': ' );