【发布时间】:2025-12-23 05:10:11
【问题描述】:
我必须为 Programming Logic 做一个作业(用荷兰语)。我们必须使用 Structizer,然后将其转换/导出为 Pascal 代码(是的,我知道,史前的!但他们说这就像学习“拉丁语”,如果你学会了它,你就有了一个基础。)
现在,我必须在转换我的 var 时找出几个错误。但我想问的主要问题是:
如果我输入 STOP(在代码中显示:Read naam),while 循环实际上会继续并打印出下一行:write naam 'moet', lidgeld:0:2, ' euro lidgeld betalen'。
而不是因为'STOP'而跳出while循环并打印出底线?
在其他代码中,检查 {} 并逐步监控它是相当容易的。但是在这里,我完全迷失了这段代码。在 read naam 之后我已经使用了一个 IF 语句来使“停止”工作,但是它仍然再次打印出来 write naam 'moet', lidgeld:0:2, ' euro lidgeld betalen.'
帕斯卡码:
{ Generated by Structorizer 3.26-05 }
program Vereniging;
var
{ TODO: check and accomplish variable declarations }
leeftijd: integer ; kinderen : integer ; leden : integer ; inkomen : real ; totaal : real ; lidgeld : real ; gemiddelde : real ; naam : string;
begin
lidgeld := 0;
leden := 0;
totaal := 0;
gemiddelde := 0;
writeln('Geef naam en voornaam in: ');
readln(naam);
writeln;
writeln('Geef de leeftijd in: ');
readln(leeftijd);
writeln;
writeln('Geef het aantal kinderen ten laste in: ');
readln(kinderen);
writeln;
writeln('Geef het jaarinkomen in: ');
readln(inkomen);
while (naam <> 'stop') or (naam <> 'STOP') do
begin
lidgeld := 10;
if (leeftijd > 50) then
begin
lidgeld := lidgeld - 2;
leden := leden + 1;
totaal := totaal + lidgeld;
gemiddelde := totaal / leden;
end;
if (kinderen > 0) and (kinderen < 6) then
begin
lidgeld := lidgeld - kinderen;
leden := leden + 1;
totaal := totaal + lidgeld;
gemiddelde := totaal / leden;
end
else
begin
lidgeld := lidgeld - 5;
leden := leden + 1;
totaal := totaal + lidgeld;
gemiddelde := totaal / leden;
end;
if (inkomen < 12500) then
begin
lidgeld := lidgeld - 2.5;
leden := leden + 1;
totaal := totaal + lidgeld;
gemiddelde := totaal / leden;
end;
if (leeftijd > 50) and (kinderen >= 5) and (inkomen < 12500) then
begin
lidgeld := lidgeld - 8.5;
leden := leden + 1;
totaal := totaal + lidgeld;
gemiddelde := totaal / leden;
end;
writeln;
writeln(naam, ' moet ', lidgeld:0:2, ' euro lidgeld betalen.');
writeln;
writeln('Geef naam en voornaam in: ');
readln(naam);
writeln;
writeln('Geef de leeftijd in: ');
readln(leeftijd);
writeln;
writeln('Geef het aantal kinderen ten laste in: ');
readln(kinderen);
writeln;
writeln('Geef het jaarinkomen in: ');
readln(inkomen);
writeln;
end;
writeln;
writeln('Het totaal aantal leden : ', leden);
writeln;
writeln('Het totaal aantal lidgeld : ', totaal:0:2, ' euro.');
writeln;
writeln('Het gemiddelde : ', gemiddelde:0:2, ' euro.');
writeln;
writeln('Druk op <ENTER> om het programma af te sluiten');
readln();
end.
【问题讨论】:
标签: pascal