[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
62: 61 [sage] 04/06/15 17:32 ID:dz0re3XK(2/2) AAS
 途中で送信しちゃった。えと、向こうのスレでガンバリまつ! 
63(1): 名前は開発中のものです。 [sage] 04/06/15 17:36 ID:DDwACq7t(1/3) AAS
 参加します、HSPだけど・・・ 
  
 suuzi=1 
 kazu=0 
 randomize 
 rnd kazu,10 
 mes "数値を入力してください。" 
 *main 
 input suuzi 
 button "よし!",*hantei 
 stop 
 *hantei 
 cls 
 if 9<suuzi: mes "1から9までですよ。"goto*main 
 if 1>suuzi: mes "1から9までですよ。"goto*main 
 if kazu>suuzi:mes"もっと大きいよ。"goto*main 
 if kazu<suuzi:mes"もっと小さいよ。"goto*main 
 if kazu=suuzi:mes"あったりー!" 
64(2): 4  ◆3VUXqvbfSY  [] 04/06/15 20:16 ID:OmG1F0sQ(2/2) AAS
 >>63 
 はい、正解です。 
さて…次の課題は、素数です。 
 ゲームとは直接関係有りませんが、プログラムをやるなら、必ず一度は作るらしい!そんな課題です。 
  
 どの方法(アルゴリズム)を使っても構いません。 
 また、速度を追求させもしません。 
 ただし、速くしたいなら、どんどん高速化してみると楽しいですよ。 
  
 とりあえず、小さい方から1000個の素数を見つけるプログラムを作成してください。 
65: 63 ◆xdaKt6k1XI  [sage] 04/06/15 20:22 ID:DDwACq7t(2/3) AAS
 >>64 
 とりあえず素数について調べてきます。 
66: 63 ◆xdaKt6k1XI  [sage] 04/06/15 23:24 ID:DDwACq7t(3/3) AAS
 kuri=2 
 wara=2;割られる数 
 a=0 
 hyozi=0 
 *reset 
 waru=2;割る数 
 kota=0;答え 
 hante=0;判定 
 *sosu1000 
 if kuri-2<1 : goto*owari 
 REPEAT kuri 
 kota=wara/waru 
 if kota!1 : hante+1,break 
 waru+1 
 LOOP 
 *owari 
  
 if hante=0 : wara+1,kuri+1,goto*reset 
 hyozi+1 
 mes ""+wara+"" 
 if hyozi=1000 : stop 
 wara+1 
 goto*reset 
  
 ここまで作ってたらなんだか自分で何作ってんのかわからなくなりますた。 
 作り直します。 
67: 生徒A [sage] 04/06/15 23:36 ID:9w200AiB(2/2) AAS
 >5050(2): 名前は開発中のものです。 [sage] 04/06/15 11:35 ID:fWp+ET9z(1) AAS
 >>49 
 そういうことじゃない。 
 お前が今日やったことを書き並べていくだけの自己満足スレが邪魔だと言ってるだけ。 
 レベルが低くて見たところで誰も得しないし、 
 挙句に態度も無茶苦茶悪い。 
 あんた何様のつもりだ。  
 僕の発言と態度がそんなに誤解を与えたなら謝りたいと思います。 
 すいませんでした。 
  
 素数ですか…、そういえば「エラトステネスのふるい」のアルゴリズム 
 が有名ですよね 
  
 高校の時の先生におおまかな考え方だけ教えてもらったきりですが  
68(2): 生徒A [sage] 04/06/16 00:25 ID:aSS5sxrF(1) AAS
 とりあえず、エラトステネスのふるいを使わないで考えたプログラムです 
  
 /*1より大きい整数のうち,1と自分自身以外の整数では 
 割り切れないような整数を素数というらしい*/ 
  
 #include<stdio.h> 
  
 int main(void) 
  
 { 
 /*小さい方から1000個の素数を見つけるプログラム*/ 
 int count=0,chknum; 
 int i,j; 
  
 /*素数かどうかを判断するには、2からその数値のすぐ下まで全て割り切れないかどうかを判断する*/ 
  
 for(j=0;count<1000;j++){ 
 chknum=j; 
 for(i=2;i<=chknum;i++){ 
 if(i==chknum){/* この条件が当てはまれば素数になる */ 
 count++;/*カウンタをインクリメント*/ 
 printf(" %d(%d個目発見!)",chknum,count); 
 } 
 else if(chknum%i == 0){ /* i!=chknum の状態で 割り切れるなら */ 
 /*この条件が成り立つ時は、素数じゃないので*/ 
 break;/*内側のループのみ脱出する*/ 
 } 
 } 
 } 
 return (0); 
 } 
69: 名前は開発中のものです。 [sage] 04/06/16 01:31 ID:E0t6wJPT(1/3) AAS
 >>68 
 動作上は問題ないけど、ヘンなクセがあって読みにくいね。 
 先生のお手本キボンヌ。 
70(1): 名前は開発中のものです。 [sage] 04/06/16 01:41 ID:qW9lKpJw(1) AAS
 >>68 
 間違ってる希ガス。 
 1000までの数の中の素数を上げるんじゃないですよん。 
 変数chknumが必要かもう一度考え直してみなはれ。(こっちのが見やすいかもしんないけど) 
71: 4  ◆3VUXqvbfSY  [] 04/06/16 08:42 ID:XOSz7qTz(1/2) AAS
 模範解答は用意しましたよ。 
 でも、発表は答えが出そろってからにします。 
72: 名前は開発中のものです。 [sage] 04/06/16 09:07 ID:E0t6wJPT(2/3) AAS
 >>70 
 最初、オレもそう思ったけど、 
 問題には、小さい方から1000個って書いてある悪感。 
  
 for(j=0;count<1000;j++){ 
 これが紛らわしい。 
73: 名前は開発中のものです。 [] 04/06/16 14:41 ID:Zcc4AjKX(1) AAS
              ∩  
              | |  
              | |  
        ∧_∧  | |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
       ( ´Д`)//  < 先生!今から参加していいですか? 
       /     /    \_______________ 
      / /|    /  
   __| | .|     | __  
   \   ̄ ̄ ̄ ̄ ̄   \  
   ||\            \  
   ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄  
   ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||  
      .||              ||  
  
 数当てゲーム 
 外部リンク[zip]:gamdev.org 
74: 生徒(C++) [sage] 04/06/16 15:06 ID:KVxQtTo1(1) AAS
 先生、標準講座C++という本を読み終わった程度ですが参加してみます。 
 でもアルゴリズムは全然知らないので、総当りです。 
  
 #include<iostream> 
 #include<list> 
 using namespace std; 
 int main() 
 {//総当りで素数を探す 
  list<int> prime;//素数 
  int num=2;//走査する値 
  while(1) 
  { 
   for(list<int>::iterator itr=prime.begin();itr!=prime.end();itr++) 
    if(num%(*itr)==0)break;//素数以外はループを抜ける 
   if(itr==prime.end())prime.push_back(num);//素数は保存 
   if(prime.size()==1000)break;//1000個目で終了 
   num++;//値を1増やす 
  } 
  cout<<"1000個目の素数:"<<(*prime.rbegin())<<endl; 
  return 0; 
 }
75: 4 [] 04/06/16 15:59 ID:XOSz7qTz(2/2) AAS
 参加は嬉しい限りですよね >>1さん 
 でもむしろ…先生役やりたい人誰か居ない? 
 激しく募集中です… 
76: 名前は開発中のものです。 [sage] 04/06/16 18:33 ID:Ls5cfn3b(1) AAS
 <html><body><script> 
 function s(n){ 
 for (i=2;i<=n/2;i++)if(n%i==0)return false; 
 return true; 
 } 
 o="2,3,";c=0; 
 for(j=4;;j++){ 
 if (s(j)){c++;o+=j+',';} 
 if (c>999)break; 
 } 
 document.write(o); 
 </script></body></html> 
77(2): 63 ◆xdaKt6k1XI  [sage] 04/06/16 20:42 ID:KZI0wz/S(1) AAS
 挫折しますた・・・orz 
78(1): 名前は開発中のものです。 [sage] 04/06/16 22:21 ID:uyNGxE8j(1) AAS
 >>77 
 外部リンク[html]:www.ese.yamanashi.ac.jp
79(1): 名前は開発中のものです。 [sage] 04/06/16 23:54 ID:E0t6wJPT(3/3) AAS
 >>77 
 どこでどう挫折したのか書いてみましょうよ。 
80: 名前は開発中のものです。 [sage] 04/06/17 00:05 ID:AAkEHKib(1/2) AAS
 よし、俺も素数のと数当てやってみる 
81: 名前は開発中のものです。 [sage] 04/06/17 00:44 ID:AAkEHKib(2/2) AAS
 #include <stdio.h> 
 #include <math.h> 
  
 int IsPrime(int); 
  
 int main() 
 { 
 int i, n = 1; 
 printf("   2 "); 
 for(i = 0; i < 999; i++){ 
 for(n+=2; IsPrime(n) == 0; n+=2); 
 printf("%4d ", n); 
 } 
 return 0; 
 } 
  
 int IsPrime(int n) 
 { 
 int i; 
 if(n % 2 == 0 && n != 2) return 0; 
 for(i = 3; i <= sqrt(n); i += 2) 
 if(n % i == 0) return 0; 
 return 1; 
 } 
  
 2を出すべきか出さざるべきか小一時間悩んだ… 
82: 63 ◆xdaKt6k1XI  [sage] 04/06/17 07:40 ID:wIlIrMhO(1) AAS
 >>78 
 結構難しそうっすね。 
 >>79 
 2から自分自身のまで順番に割ってって計算結果が1以外だったら自分自身の数を1足してやりなおして、計算結果が1だけだったらその数を表示するってようにしたんですが。 
83(1): 名前は開発中のものです。 [sage] 04/06/17 10:39 ID:qLkBm+a6(1) AAS
 その考え方で問題ないか確認してみる。...のあとの数字は余り。 
  
 5/1 = 5 ... 0 
 5/2 = 2 ... 1 
 5/3 = 1 ... 2 
 5/4 = 1 ... 1 
 5/5 = 1 ... 0 
  
 6/1 = 6 ... 0 
 6/2 = 3 ... 0 
 6/3 = 2 ... 0 
 6/4 = 1 ... 2 
 6/5 = 1 ... 1 
 6/6 = 1 ... 0  
84: 63 ◆xdaKt6k1XI  [sage] 04/06/18 15:04 ID:uMGX0XjB(1) AAS
 >>83 
 駄目でしたか・・・・もう一度がんばります! 
85(2): 名前は開発中のものです。 [sage] 04/06/19 14:57 ID:W8craWnM(1/2) AAS
 #include <stdio.h> 
 void main() 
 { 
 unsigned long cun; 
 int a,i; 
 printf("2\n"); 
 for(i=3;i<=1000;i+=2){ 
 for(a=3;a<i;a+=2){ 
 cun++; 
 if(i%a==0) 
 break; 
 } 
 if(i==a) 
 printf("%d\n"); 
 } 
 } 
 暇なんで参加 
86(1): 85 [sage] 04/06/19 14:58 ID:W8craWnM(2/2) AAS
 unsigned long cun; とcun++;  
 は無視で <(_ _)> 
上下前次1-新書関写板覧索設栞歴
あと 701 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s