-2
想像してみましょう - 80の家屋があります。それは4フロアと5ブロックを持っています。各ブロックには4つのフラットがあります。 ユーザはフラット番号を入力するように求められ、パスカルプログラムはフラット番号を計算して出力することになっています。これは何らかの種類の計算式を使用して計算する必要があります。私が持っている唯一のヒントは、divとmodの操作を使わなければならないということです。ブロック番号と階をフラットナンバーで見つけよう
家がどのように見えるかこれはある - すべての80の干潟をループし、各16の干潟後のブロック値を増加し、各4つのブロックの後に階段を高める
これまでのところ、私が作成したプログラム。
これは私のコードです:
program project1;
var
i, floors, blocks, flats, flat, block, floor, blockCounter, floorCounter : integer;
begin
floors := 4;
blocks := 5;
flats := 80;
while true do
begin
write('Flat number: ');
read(flat);
block := 1;
floor := 1;
blockCounter := 0;
floorCounter := 0;
for i := 1 to 80 do
begin
blockCounter := blockCounter + 1;
floorCounter := floorCounter + 1;
if (floorCounter = 4) then
begin
floorCounter := 0;
floor := floor + 1;
end;
if (blockCounter > 16) then
begin
block := block + 1;
blockCounter := 0;
floorCounter := 0;
floor := 1;
end;
if (i = flat) then
begin
writeln('Flat nr. ', flat, ' is in ', floor, '. floor and in ', block, '. block!');
end;
end;
end;
end.
はこれで私を助けることができる人はいますか?
modとdivでのあなたの試みはどこですか?あなたはそれらを勉強しましたか? –
あなたが 'div'と' mod'を学び、彼らが何をするのか知っていれば、与えられたフラットナンバーのブロックとフロアを計算することは実際には些細なことであり、2つの単純な代入文で実現できます。紙の上でそれを算術的に行い、それをコード化する方法を考えてください。これは明らかに宿題なので、私はあなたにそれを理解させるつもりです。 – MartynA
ヒント:番号16が重要です。 – Stuart