WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ループ文について

0:[投稿] こた [2004/12/02 02:14 ][環境:IE6、WIN2000 わからない]

初めまして。perlを勉強し始めて数週間のものです。
ここで尋ねるような内容か悩んだんですが、質問させて下さい。
forの複合文を使って■をprintする問題があったんですが、

■         ■■■■■   
■■        ■■■■
■■■    と、 ■■■  
■■■■      ■■
■■■■■     ■ 

は、何とか出す事が出来ました。が、

■■■■■
 ■■■■
  ■■■
   ■■
    ■  

 ↑だけがどうしてもわかりません。
スペース、■、改行の3つの処理がいるってのは
わかるんですが・・・
よろしければご指南頂けないでしょうか・・・
的外れの質問だったらごめんなさい。お手数ですが削除お願いします。


1:[回答] andi [2004/12/02 09:36 ]

どう言った状況(何かのテストですか?)で、
どういうプログラムを書いて、どこでお悩み中ですか?
具体的にソースを書いてみてください。


2:[質問] こた [2004/12/02 20:17 ]

ご解答ありがとうございます。
説明不足で申し訳ありません。
例えば、
■         ■■■■■
■■        ■■■■
■■■    や  ■■■
■■■■      ■■
■■■■■     ■

は、それぞれ、

for(my $i=0; $i<9; $i++){
    for(my $j=0; $j<=$i; $j++){
        print("■");
    }
    print("\n");
}

     や、

for(my $u=10; $u>=1; $u--){
    for(my $i=0; $i<$u; $i++){
    print("■");
    }
    print("\n");
}

で合ってると思います。と言うより出来ました。
ですが、
■■■■■
 ■■■■
  ■■■
   ■■
    ■
  ↑となると、スペース、■、改行の順にprintする必要が
ありますよね?そこでどうしても詰まってしまいます。
発想力の欠如というか、早くも壁にぶつかっている状態です。
もしお暇なら相手してやってもらえませんでしょうか。
長々とすみません・・・よろしくお願い致します。


3:[質問] KiYO [2004/12/03 01:13 ]

すみません。。忘れてました。
補足ですがたまたま電車で人が「いい勉強になる」と
言ってたのをを盗み聞きしてしまい、
(今思えばそれがperlの事だったのかわかりませんが)
自分もやってみたい!と思った次第です。

どうもごめんなさい。


4:[回答] にゃんこ [2004/12/03 02:28 ]

for(my $u=10; $u>=1; $u--){
   for(my $k=10; $k>$u; $k--){
   print(" ");
   }
   for(my $i=0; $i<$u; $i++){
   print("■");
   }
   print("\n");
}
こんな感じで。文章で説明するのはちょっと難しいかも。


5:[回答] にゃんこ [2004/12/03 03:24 ]

$u = $k になるまで $k を10から減らしていき、
その都度スペースを加えるという概念です。

つまりこの処理は 10 - $u 回だけ繰り返されることになります。


6:[完了] こた [2004/12/03 12:16 ]

にゃんこさん!ありがとうございます!出来ました。
スコープ内の処理は別に1つだけのみ、という決まりは無かったんですね。
とても勉強になりました。
こんな素人の質問に丁寧に対応していただき、本当にありがとうございました。

あと
3:[質問]の投稿者は私です。名前間違えました。すみません。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World