解いてください!!


REX  2007-11-15 20:44:05  No: 66880

分からないんです!!forとifの()の空欄を教えてください!!
/**********************************************/
/*  パターン認識                      */
/*  登録画像 と一致するパターンを対象画像から検索   */
/**********************************************/
#include <stdio.h>
 /* 配列宣言・初期化 */
    //登録画像 
    int     touroku[8][8] ={ 
             {1,1,0,1,1,0,0,0}, {0,1,0,0,1,0,0,1},
            {0,0,1,1,0,1,1,0}, {0,0,0,1,0,1,1,0},
            {0,1,0,0,0,1,0,0}, {1,1,0,0,1,1,0,0},
            {0,1,1,1,1,0,0,1}, {0,1,0,1,0,0,0,1}
           };
    //検索対象画像 
    int     pattern[24][8] ={ 
             {1,1,0,1,1,0,0,0}, {0,1,0,1,1,1,1,1},
            {0,0,1,1,0,1,1,0}, {0,0,0,1,0,1,1,0},
            {0,1,1,1,1,1,1,0}, {1,1,0,0,1,1,0,0},
            {0,0,1,1,1,0,0,1}, {0,1,0,1,0,1,1,1},
             {1,1,0,1,1,0,0,0}, {0,1,0,0,1,0,0,1},
            {1,1,0,1,1,0,0,0}, {0,1,0,0,1,0,0,1},
            {0,0,1,1,0,1,1,0}, {0,0,0,1,0,1,1,0},
             {1,1,0,1,1,0,0,0}, {0,1,0,0,1,0,0,1},
            {0,0,1,1,0,1,1,0}, {0,0,0,1,0,1,1,0},
            {0,1,0,0,0,1,0,0}, {1,1,0,0,1,1,0,0},
            {0,1,1,1,1,0,0,1}, {0,1,0,1,0,0,0,1},
            {0,1,0,0,0,1,0,0}, {1,1,0,0,1,1,0,0}
           };
//画像を表示する関数
int arr_print(int p[][8],int m,int n)
{
     int     i, j;   /* 変数宣言 */
   /* 2次元配列を表示 */
    for () {
            printf("p[%d] ", i);
        for () {
      if()
          {
            printf("■");
          }else{
            printf("  ");
            }        }
        printf("\n");
    }

    return (0);
}

//検索対象画像 のなかから登録画像 と一致する部分を検索する関数
int kensaku(int t[][8],int k[][8])
{
  int g=0,h,i,j,r=0;//rは一致しない件数
  int Gyo=99;//一致した行番号(初期値は99)
  for(h){
      for (                          ) {
          for (                      ) {
      if(                        )
            {
              r++;
            }
          }
      }
      if(r==0){
        Gyo=h;
       }
    }
  return(Gyo);
}

int main(void)
{
    int x;
  //各画像を表示する
  printf("\n検索対象画像 \n");
    arr_print(pattern,0,24);
  printf("\n登録画像 \n");
    arr_print(touroku,0,8);
  //検索対象画像 のなかから登録画像 と一致する部分を検索する
    x=kensaku(touroku,pattern);
    if(x!=99)
    {
    printf("\n一致画像 \n");
      arr_print(pattern,x,x+8);
      printf("一致するのは %d 行目\n",x);
  }else{
    printf("一致するところはありません");
  }
  return (0);
}


επιστημη  2007-11-15 21:16:10  No: 66881

なんという丸投げ...


とおりすがり  2007-11-16 06:01:06  No: 66882

おそらく書いてるのは大学生か高校生だと思うけど、小学生の書き込みにしか見えないな。
さすがゆとり教育。円周率3で育ってきた世代は違うね。


どら  2007-11-16 07:29:43  No: 66883

ただ宿題の答えを教えてと言っているだけで、ここで答え聞いてはいおしまい、
って感じで寂しいですね・・・
理解しようという気持ちはあるのでしょうか?

もしあるのであれば、このソースは何をしようとしていて、どこまでが理解でき
ているのか、そしてどこがどうわからないのかを追記してくださいね。


REX  2007-11-16 20:24:20  No: 66884

>>どら
そうですね大変失礼しました。
次からはソースの目的など明確に書くようにします。

>>とおりすがり
僕は中1なのでゆとりでは無いと思います(笑)
間違ってないとは思いますが人の中傷しかできないあなたもどうかと思いますが?(爆)


επιστημη  URL  2007-11-16 20:44:34  No: 66885

> 次からはソースの目的など明確に書くようにします。

次から?
 
> 人の中傷しかできないあなたもどうかと思いますが?

丸投げには悪態吐かれて当然。
こんな質問しかできないあなたも...って言われちゃうよ?


とおりすがり  2007-11-16 23:19:12  No: 66886

>僕は中1なので
本当に中1なのか?ならこれって学校の宿題なの?それとも単なる独学?もし本当に中1で学校の宿題だと証明できるようなら謝罪の代わりに教えてあげるよ。
ただ現状ではいい年した大学生が中1を装って答えを聞き出そうとしてるようにしか見えないから教えないw


とおりすがり  2007-11-16 23:38:52  No: 66887

ちょっと推測。
中1が平日の11時に書いてるということは授業中に学校からネットに接続してるわけだ。ならIP表示で書き込んでみて。それで学校から接続していることが証明できるから、そしたら上記の通り謝罪して教えましょう。

それができないならまあ騙りだと思われてもしょうがないね。


おはつ  2007-11-17 00:02:43  No: 66888

眺めててちょっと疑問。

中学生ってVC授業でやるの?
もし独学だとするなら、ifやforの位置がよくここまで書き込めたね。
この状態で掲載されていたら、宿題の穴埋めとしか思えないな。

本当に中学生だったら、人にものを教えてもらう時のマナーをもっと勉強した方がいいかと。
大学生だったら呆れる。


wclrp ( 'o')  2007-11-17 09:22:06  No: 66889

自分で理解して自分のわからない点を自分の言葉で質問するのではなく
受けた内容をそのまま右から左へ受け流すような丸投げは
嫌われているから
// そういうのを扱っているところを除いて
多くの掲示板で叩かれるだろうね。

それに宿題の丸投げとなれば
丸投げする人が自分で理解するとは思えないわけで
// テストと宿題の違いがある程度で
他人の回答を写して提出するわけだから
カンニングみたいなので叩かれるのは自然な流れだよ。

それとプログラムの穴埋めは面倒。
インデントがずれてる。
空欄ってのがどれかぱっと見みずらい。


wclrp ( 'o')  2007-11-17 10:11:07  No: 66890

これ難しいな。

>//検索対象画像 のなかから登録画像 と一致する部分を検索する関数
>int kensaku(int t[][8],int k[][8])
mainを見るとtが登録画像tourokuでkが検索画像patternか。
コメントの説明と引数の変数の順が逆だし
わかり難いプログラムの書き方
つまり悪い見本だな。

ちょっとkensakuを見ていたが混乱してきた。
forで使う変数がh,i,j,rでわかり難い。思考の邪魔ばかり。
俺はこういう宿題うんざりだよ。

一致する部分て最初意味わからんかった。
>arr_print(pattern,x,x+8);
patternの一致した行の先頭のことか。

以下は動作確認していないのであっているかまったくわからん。

//検索対象画像kのなかから登録画像tと一致する部分の位置(行)を返す
int kensaku(int t[][8],int k[][8])
{
  int g=0,h,i,j,r=0;//rは一致しない件数←無駄なことさせんな
  int Gyo=99;//一致した行番号(初期値は99←無駄な)
  for(h=0;h<24-8&&Gyo==99;++h) { 
  //↑ &&Gyo==99 は見つかり次第終わらせるため
    for(r=0,i=0;i<8&&r==0;++i) { 
    //↑ &&r==0 は一致しないとわかり次第終わらせるため
    //↑ r=0 は先頭が不一致だと他の場所が一致しても-略-
      for(j=0;j<8&&r==0;++j) { 
      //↑ &&r==0 は一致しないとわかり次第終わらせるため
        if(k[h+i][j]!=t[i][j]) {
          r++;
        }
      }
    }
    if(r==0) {
      Gyo=h;
    }
  }
  return(Gyo);
}


wclrp ( 'o')  2007-11-17 10:13:05  No: 66891

タブ使ってたからインデント消えてしまった。
前から思っていたけどプログラムを掲示板に載せるのって面倒だよな。
掲示板のほうでタブを-略-


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加