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!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

problem on the main program

rrwerrwe Posts: 7Member
the following cannot be ran as the sample output shown :
F: (0)
E:** (2)
D:****** (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;

procedure countgrade;
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,': ' );
readln(mark[i]);
end;

countgrade;
plotchart;
readln
end.[/code]

Comments

  • ActorActor 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;
    :
    : procedure countgrade;
    : 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,': ' );
    : readln(mark[i]);
    : end;
    :
    : countgrade;
    : plotchart;
    : readln
    : end.[/code]:

Sign In or Register to comment.