C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 思うように動きません


(過去ログ 26 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■12117 / inTopicNo.1)  思うように動きません
  
□投稿者/ matuda (1回)-(2007/12/31(Mon) 08:44:50)

分類:[C#] 

数字を100まで表示して2の倍数のときに数字をKと表示するプログラムを作っていますが、うまくいきません。ご指導願います。C#2005


private void button1_Click(object sender, EventArgs e)
{
int i;
double p;

string a = "k";


for (i = 1; i < 100; i++)
{
for (p = 0.5; p <100; p=p+0.5)
{

if (i == 2 * p) //2の倍数のときはKで表す
{

richTextBox1.Text += a;
}


else
{
richTextBox1.Text += i.ToString();





}
}
}
引用返信 編集キー/
■12118 / inTopicNo.2)  Re[1]: 思うように動きません
□投稿者/ Ognac (3回)-(2007/12/31(Mon) 09:43:40)
No12117 (matuda さん) に返信
>うまくいきません。
具体的にどのようにうまくいかないのか?
期待している動作と、結果の動作が異なるのなら、期待している動作を示さないと。


引用返信 編集キー/
■12119 / inTopicNo.3)  Re[1]: 思うように動きません
□投稿者/ やじゅ (51回)-(2007/12/31(Mon) 09:45:00)
やじゅ さんの Web サイト
2007/12/31(Mon) 09:47:09 編集(投稿者)

No12117 (matuda さん) に返信
> 数字を100まで表示して2の倍数のときに数字をKと表示するプログラムを作っていますが、
>うまくいきません。ご指導願います。C#2005

2の倍数は、一の位が0,2,4,6,8で、2で割り切れるから
「余り」を使えばいいんでないの

if (i % 2 == 0) then 数字をKと表示

引用返信 編集キー/
■12120 / inTopicNo.4)  Re[2]: 思うように動きません
□投稿者/ Ognac (4回)-(2007/12/31(Mon) 09:48:49)
No12118 (Ognac さん) に返信
> ■No12117 (matuda さん) に返信
> >うまくいきません。
> 具体的にどのようにうまくいかないのか?
> 期待している動作と、結果の動作が異なるのなら、期待している動作を示さないと。
>
型を意識すれば解決するかと
(肝心なことを、書き漏れしました。被ってしまいました。)




引用返信 編集キー/
■12122 / inTopicNo.5)  Re[2]: 思うように動きません
□投稿者/ matuda (2回)-(2007/12/31(Mon) 10:17:06)
No12119 (やじゅ さん) に返信
> 2007/12/31(Mon) 09:47:09 編集(投稿者)
>
> ■No12117 (matuda さん) に返信
>>数字を100まで表示して2の倍数のときに数字をKと表示するプログラムを作っていますが、
> >うまくいきません。ご指導願います。C#2005
>
> 2の倍数は、一の位が0,2,4,6,8で、2で割り切れるから
> 「余り」を使えばいいんでないの
>
> if (i % 2 == 0) then 数字をKと表示
>
おっしゃるとおり、余りを使えばできたのですが、
上記のように倍数を使う方法では不可能なのでしょうか

ちなみに期待値は、1k3k5k7k…です  
引用返信 編集キー/
■12123 / inTopicNo.6)  Re[3]: 思うように動きません
□投稿者/ やじゅ (52回)-(2007/12/31(Mon) 10:53:36)
やじゅ さんの Web サイト
No12122 (matuda さん) に返信
> 上記のように倍数を使う方法では不可能なのでしょうか
>
> ちなみに期待値は、1k3k5k7k…です

不可能ではないですよ、少しおかしいだけです。
今のプログラムがどうして期待値にならないか、紙と鉛筆で
値を追っていけばわかるでしょ

for (p = 0.5; p <100; p=p+0.5)のル−プは不要かな
あくまでiのループだけでいけるはず。
p=p+0.5の考えはいいので、p=0に戻す等を考えればいいかと

答えは教えません、勉強にならないから
 
引用返信 編集キー/
■12126 / inTopicNo.7)  Re[3]: 思うように動きません
□投稿者/ 渋木宏明(ひどり) (618回)-(2007/12/31(Mon) 11:25:48)
渋木宏明(ひどり) さんの Web サイト
> 上記のように倍数を使う方法では不可能なのでしょうか

不可能つか、それじゃ論理がまるで進行しないんじゃない?

「1, ..., x について、x が2の倍数である時 k を表示する」のが命題なわけでしょ。

したら

・1, ..., x を列挙する
・x が2の倍数であるかどうかを検査する
・x が2の倍数なら k を表示、それ以外の時は x 値を表示

という風に問題を分解するのがまぁ一般的でしょう。

列挙は for 使えばいいので、あと考えるべきは「x が2の倍数である」ことを検証する手段。

で、「x が2の倍数であること」を最も簡単に検証する方法が「x を2で割った余りが0であるかどうか調べる」ことなんだから、それ使うのが最も簡単明瞭。

「x が2の倍数であること」を検証するのに「2の倍数であることを検証する」んじゃ、堂々巡りでまったく論理が進展しないと思いますよ。


引用返信 編集キー/
■12129 / inTopicNo.8)  Re[4]: 思うように動きません
□投稿者/ matuda (3回)-(2007/12/31(Mon) 13:45:08)
No12126 (渋木宏明(ひどり) さん) に返信
>>上記のように倍数を使う方法では不可能なのでしょうか
>
> 不可能つか、それじゃ論理がまるで進行しないんじゃない?
>
> 「1, ..., x について、x が2の倍数である時 k を表示する」のが命題なわけでしょ。
>
> したら
>
> ・1, ..., x を列挙する
> ・x が2の倍数であるかどうかを検査する
> ・x が2の倍数なら k を表示、それ以外の時は x 値を表示
>
> という風に問題を分解するのがまぁ一般的でしょう。
>
> 列挙は for 使えばいいので、あと考えるべきは「x が2の倍数である」ことを検証する手段。
>
> で、「x が2の倍数であること」を最も簡単に検証する方法が「x を2で割った余りが0であるかどうか調べる」ことなんだから、それ使うのが最も簡単明瞭。
>
> 「x が2の倍数であること」を検証するのに「2の倍数であることを検証する」んじゃ、堂々巡りでまったく論理が進展しないと思いますよ。
>
ごもっともなご意見ですね。有り難うございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -