プロが教えるわが家の防犯対策術!

こんにちわ。

Loopを使い、1~12までの掛け算の表を作ります。Rowが初め、Colが二番の変数になり、
Row、Colともに一つずつ増えます。

1x1=1
1x2=2
........
1x12=12
2x1=2
........
12x12=144

というようにすべての掛け算を表示させたいのですが、私が作ったプログラムで
上記のように表示されるのか、わからなくなってきてしまいました。
言語は問いませんのでアドバイスお願い致します。

下記が私が疑似コードで書いたものです。

Declare row, col, total As int

  For (row=1; row<=12; row++)

  For (col=1; col<=12; col++)

  Calculate total=row*col

  Display "row" + "*" + "col" + "=" + "total"

  EndFor

EndFor

よろしくお願いします。

A 回答 (4件)

意図自体は表現できているのではないでしょうか


他の方々も仰られてる通り、御自身で試されるのが一番簡単且つ手早いと思います。

スクリプト言語で書いた時の一例だけ貼っておきます

Python3
https://ideone.com/gNrju

Ruby
https://ideone.com/UUQ2K
    • good
    • 0

「++」を使用されているのでC言語的な文法と仮定して回答します。


2重ループになっていますのでrowが1に対してcolが1~12まで変化します。
次にrowが2に対してcolが1~12まで変化します。以下rowが12に対して
colが1~12まで変化します。
これに対して表示されていきますので掛け算の結果が表示されます。

しかし、「掛け算の票を作る」という観点でみるとDisplayの仕様によりますが
「1行分の表示を行う」という仕様では計算結果が縦に並んで表示されてしまい、
表にはなりません。

1x1=1
1x2=2
1x3=3
...
12x10=120
12x11=132
12x12=144

「表示だけを行う」という仕様の場合では改行の指定がないため計算結果が
横に並んで表示されてしまい、表にはなりません。
また、表示したあと空白が含まれていないので下記のように表示がつながってしまいます。

1x1=11x2=21x3=3...12x10=12012x11=13212x12=144

また表形式にするのであれば数値の桁数も考慮しなければきれいな表にはならないでしょう。

したがって計算自体は想定通りと思いますが、表にはなりません。
どのように表示されるのか考慮が必要です。
    • good
    • 0
この回答へのお礼

求めたい値を出せたのかばかり気にしていて、
表の表示については考えていませんでした。。

テキスト読み返し、不明点あればまた投稿致します。
ご指摘ありがとうございました。

お礼日時:2011/05/07 09:38

どの部分が「わからなくなった」のでしょうか?


フローチャートを書いてループのネストがちゃんとしてれば問題はないと思いますが。
    • good
    • 0
この回答へのお礼

説明不足で、すみません。。

フローチャート書かずに頭の中で考えていたら煮詰まってしまいました。
フローチャート書くようにします。

お礼日時:2011/05/07 09:30

実際にプログラムにして動かしてみたらどうです?



疑似コードの構文が実際の言語とかけはなれたものでなければ、特に間違いはないように思えますが。


> 上記のように表示されるのか、わからなくなってきてしまいました。

なぜ「わからなくなってきた」のか、その不安な点を明確にし、それが実際どうなっているかを言語のマニュアルなどで確認する、というのが上達のコツだと思います。
    • good
    • 0
この回答へのお礼

説明不足で申し訳ありません。

掛け算で出た値に、1~12をかけてしまっているのでは?と思ってしまったのですが、テキストを再度読み返したところ、少しクリアになってきました。

>マニュアルなどで確認する、というのが上達のコツだと思います。
おっしゃる通りです。試行錯誤が必要ですね。

ありがとうございました。

お礼日時:2011/05/07 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!