如何结束此循环/逻辑结束伪代码

时间:2014-05-13 13:31:26

标签: loops logic pseudocode do-while records

我正在编写一个伪代码程序来读取客户记录,确定他们的帐户类型,然后在最后输出他们的名字和金额。我写了一个程序(差不多完成)我只是不确定如何循环它,直到没有更多的记录。你能帮助我吗?我最后的输出应该是客户名称和欠款。感谢。

read_customer_record 
get num_of_records
    get customer_name
get account_type
get num_basic_channels
get num_premium_channels
calculate_rate (calcR) 
calculate_totals (calcT)
output(outp)


END

Calculate_rate (calcR)
IF account_type = personal
Basic_rateP = $5
Pre_rateP = $10
    ELSE
        Basic_rateB = $7.50
        Pre_rateB = $12.50
END

Calculate_totals (calcT, calcR)
IF account_type = personal
total = (num_basic_channels * Basic_rateP) + (num_premium_channels * Pre_rateP)
    ELSE
total = (num_basic_channels * Basic_rateB) + (num_premium_channels * Pre_rateB)
END

output (

2 个答案:

答案 0 :(得分:0)

你可以这样做:

>>> 打印客户名称和金额,直到客户名称不等于空。

如果我用C ++编写代码,它看起来就像这样。

for(i=0;CustomerName[i]!=NULL;i++)  //Loop till there is some Customer Name exists
{
cout<<CustomerName[i]<<"\t"<<AmountOwed[i];  //Printing out the Data
}

当没有客户剩余时,如果没有客户,它将停止,显然没有欠款。

答案 1 :(得分:0)

我认为你只需要围绕主程序包装一个WHILE语句。这样做的方法取决于您从哪里读取客户记录。

案例1:在许多情况下,您只能通过尝试读取结束来告知您已完成处理输入流。在这种情况下,您的伪代码可能如下所示:

read_customer_record 
while the previous read succeeded
    get num_of_records
    get customer_name
    get account_type
    get num_basic_channels
    get num_premium_channels
    calculate_rate (calcR) 
    calculate_totals (calcT)
    output(outp)
    read_customer_record
end

情况2:在其他情况下,您可以在读取之前判断是否还有东西要从输入流中读取。在这种情况下,您的伪代码可能如下所示:

while there are more customer records to process
    read_customer_record
    get num_of_records
    get customer_name
    get account_type
    get num_basic_channels
    get num_premium_channels
    calculate_rate (calcR) 
    calculate_totals (calcT)
    output(outp)
end