Я опубликовал это ранее, и оно было закрыто, потому что я не показал свою попытку его кодирования, поэтому вот вопрос:
SECTIONS
$160 = section 1
$220 = section 2
$280 = section 3
$350 = section 4
$425 = section 5
Разработка псевдокода, который принимает в качестве входных данных имя неуказанного числа маскарадеров, каждый из которых заплатил полную стоимость своего костюма, и сумму, которую каждый заплатил.
Маскарадер, возможно, заплатил за костюм в любой из пяти секций в группе. Алгоритм должен определять секцию, в которой играет маскарад, исходя из суммы, которую он / она заплатил за костюм. Алгоритм также должен определять количество маскарадеров, которые заплатили за костюмы в каждом разделе.
Должны быть напечатаны имена лиц и раздел, за который они заплатили. Список разделов и общее количество людей, зарегистрированных для участия в каждом разделе, также должны быть напечатаны вместе с общей суммой, выплаченной в каждом разделе.
Вот моя попытка: * Обратите внимание, что это запрограммировано на Паскале, и мне нужна помощь, чтобы исправить и закончить его. Пожалуйста, помогите и еще раз спасибо.
program Masqueraders;
uses
WinCrt; { Allows Writeln, Readln, cursor movement, etc. }
const
MAX = 5; {this determine the amount of masquarader entered}
Type
listname = Array[1..MAX] of string;
listsect = Array[1..MAX] of string;
var
names : listname;
sections : listsect;
i, amount, TotalMas, TotalAmt, c1, c2, c3, c4, c5, amt1, amt2, amt3, amt4, amt5 : integer;
begin
amount := 1;
while amount <> 0 do
begin
i := i + 1;
readln(names[i]);
readln(amount);
if(amount = 160) then
begin
c1 := c1 + 1; {Count the number of persons for section 1}
amt1 := amt1 + amount; {accumulate the amount for section 1}
sections[i] := 'Section 1';
end;
if(amount = 220) then
begin
c2 := c2 + 1; {Count the number of persons for section 1}
amt2 := amt2 + amount; {accumulate the amount for section 1}
sections[i] := 'Section 2';
end; {end the IF for section 2}
if(amount = 280) then
begin
c3 := c3 + 1; {Count the number of persons for section 1}
amt3 := amt3 + amount; {accumulate the amount for section 1}
sections[i] := 'Section 3';
end; {end the IF for section 3}
if(amount = 350) then
begin
c4 := c4 + 1;
amt4 := amt4 + amount;
sections[i] := 'Section4';
end; {end If for section 4}
if (amount = 425) then
begin
c5 := c5 + 1;
amt5 := amt5 + amount;
sections[i] := 'Section5';
end;{end the while loop}
TotalMas := c1 + c2 + c3;
TotalAmt := amt1 + amt2 + amt3;
writeln('Name Section'); {Heading for the output}
for i := 1 to MAX do
begin
write(names[i]);
writeln(' ',sections[i]);
end;
writeln('Section 1: ');
write('Masquader: ', c1);
write('Amount: ', amt1);
writeln('Total Number of Masquarader: ', TotalMas);
writeln('Total Amount Paid by masquarader: ', TotalAmt);
конец;
конец.
Короче говоря, он должен принять неопределенное количество людей и назначить их в соответствующие разделы на основе суммы денег, которую они ввели, а затем рассчитать количество людей в каждом разделе. Это мой текущий вывод:
Имя Джон Деньги = 160 Раздел 1
Имя Кита Деньги = 220 Раздел Джон
Вот что я хочу:
Имя Джон Деньги = 160 Раздел1
Имя Кита Деньги = 220 Раздел2