[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 06/07 15:56 / Filesize : 283 KB / Number-of Response : 835
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 137代目



1 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:27:59 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 136代目
pc12.2ch.net/test/read.cgi/tech/1274827528/

45 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:08:59 ]
復号したらそのままコンパイル出来るものを、添付書類無し
で再頒布するのはGPLに抵触しかねないから、
コメントとか外したりいろいろ細工してる可能性もあるだろ

46 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:15:28 ]
>>44
ああー、なるほど。そういう理由だったのか。スマソ。

47 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:57:17 ]
この行より前は >>41 と一致する
YCvXRg("クォートされた部分も暗号化対象外\n",wYkyL);

48 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:58:17 ]
>>45
この場合頒布してるのは質問者?回答者?

49 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:12:23 ]
該当箇所に printf("", inode); を挿入したら完全に一致した

50 名前:デフォルトの名無しさん [2010/06/18(金) 22:38:46 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):図1のプログラムを参考に、文字配列とアドレスの関係、すなわち、
char str[ ] = “abc”とアドレスの関係を調べよ。特にアドレスが幾つずつ変化するかを理解すること。
尚、char型変数へのポインタ変数は、char *ptr;になることを注意すること。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる
図1
#include<stdio.h>

int main(void){

int a[4];
int *p;
p = &a[0];
for(i=0;i<4;i++){
a[i] = i;
}
for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}



51 名前:デフォルトの名無しさん [2010/06/18(金) 22:40:07 ]
>>50
図1の実行例

a[0]=0
p = 0x22ccd0
*p = 0

a[1]=1
p = 0x22ccd4
*p = 2

a[2]=2
p = 0x22ccd8
*p = 2

a[3]=3
p = 0x22ccdc
*p = 3

つまり、int型では4byteずつ変化する。これをchar型は1byteずつ変化するということを示しなさいということです。

52 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:43:49 ]
>>51
charに変えるのが出来ないっていってますか?

53 名前:デフォルトの名無しさん [2010/06/18(金) 22:50:29 ]
>>52
そうです。
それから、もうひとつ
図1をdouble型に変えるのもお願いします。



54 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 01:54:57 ]
こういうこと?
#include <stdio.h>
int main(void) {
char str[] = "abc", *ptr;
int i;

ptr = &str[0];

for(i = 0; str[i]; i++, ptr++) {
printf("str[%d] = %c\n", i, str[i]);
printf("ptr = %p\n", ptr);
printf("*ptr = %c\n\n", *ptr);
}

return 0;
}

55 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 02:49:18 ]

[1] 授業単元:
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10719.zip
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: ([2010年06月20日23:59まで]
[5] その他の制限:


56 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 03:00:29 ]
>>55
#include <stdlib.h>
#include <time.h>

void random_format(int num_data, int array[])
{
int i;
srand(time(NULL));
for(i = 0; i < num_data; i++)
array[i] = (int)( (double)rand() / RAND_MAX * 100.0 );
}

57 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 05:15:59 ]
>>55
0〜99の数値が全て1回ずつ必要なら、以下でok。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NMAX 100

int main(void)
{
    int i, a[NMAX], tmp, w;

    srand(time(NULL));
    for (i = 0; i < NMAX; i++)
a[i] = i;

    for (i = 0; i < NMAX; i++) {
w = rand() % (NMAX - i) + i;
tmp = a[w];
a[w] = a[i];
a[i] = tmp;
    }

    return 0;
}

58 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 05:33:12 ]
>11
>min = 10000000;
10000000って数字はどっから出てきたの?

59 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 06:19:17 ]
>>58
有り得ないほどの大きい数字なら何でも良かったんじゃないかな?
min = num/coins[0];
でいいと思う。

60 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:42:30 ]
>>28
バージョンは分からんが、Linuxカーネルのfs/buffer.cをエンコードしてるのか?

61 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:43:06 ]
for(i = 0; i < NMAX; i++) {
w = rand() % (i + 1);
a[i] = a[w];
a[w] = i;
}

62 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:48:14 ]
>>20
一応MFCでデコードしながら、分からなくなったらユーザに聞いてくるアプリにしてみた。
コメントとかリテラルとか、まだ一回も動いてないコードとか有るし、
デコードした文字列をエディットに出力して、ユーザが判断する材料にさせてるんだが、
うまくエディットコントロールスクロールさせられなくて面倒くさくなって放置してる。
(メインスレッドでループしながらエディットに出力して、且つスクロールさせようってのがダメなんだろうが。。)
需要があればうpします。
一旦入力した候補はhistファイルに取っておくので、これを使って地道にやってけばいずれデコード出来ると思う。

63 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 16:02:35 ]
>>20 のエンコード部分
typedef unsigned char uchar;

void encode_output(int moji)
{
static int is_first=1;
static uchar next_table[256], table[256];

if(is_first)
{
int i;

for(i=0;i<256;i++) next_table[i]=table[i]=i;

for(i='A';i<'Z';i++) next_table[i]=i+1;
next_table[i]='a';
for(i='a';i<'z';i++) next_table[i]=i+1;
next_table[i]='A';
for(i='0';i<'9';i++) next_table[i]=i+1;
next_table[i]='0';
is_first=0;
}

putchar(table[moji]);
table[moji]=next_table[table[moji]];
}



64 名前:デフォルトの名無しさん [2010/06/19(土) 16:26:50 ]
>>54
ありがとうございました。

65 名前:デフォルトの名無しさん [2010/06/19(土) 16:49:54 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):以下のプログラムをdouble型にせよ。
尚、double型変数へのポインタ変数は、double *ptr;になることに注意すること。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる

#include<stdio.h>
int main(void){
int a[4];
int *p;
p = &a[0];

for(i=0;i<4;i++){
a[i] = i;
}

for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}

実行例は>>51と同じです


66 名前:023 mailto:sage [2010/06/19(土) 17:08:52 ]
#include <stdio.h>
void encode_output(int moji);
int main(void){  int c, slash = 0;
while((c = getchar()) != EOF) {
  if(c>='a' && c<='z' || c>='A' && c<='Z' || c>='0' && c<='9'){
    if(slash){ /* /X は、同じ文字で2回出力 */
      encode_output(c); slash = 0; }
    encode_output(c);
  } else if(c == '*') {
    if(slash){ /* /*のコメントは読み飛ばす */
      do { while(getchar() != '*'); } while(getchar() != '/');
      slash = 0;
    } else putchar(c);
  } else if(c == '/') {
    if(slash) { /* // comment は、そのまま出力 */
      putchar(c);
      do putchar(c); while((c = getchar()) != '\n');
      putchar(c);
      slash = 0;
    } else slash = 1;
  } else if(c == '"') { /* "string" は、そのまま出力 */
    if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
    do {
      if(c == '/') {slash = 1; continue;}
      if(slash) {slash = 0; putchar(c);}
      putchar(c);
    } while((c = getchar()) != '"');
    putchar(c);
  } else {
    if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
    putchar(c); }
}}

67 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:05:22 ]
>>5
亀ですがこういうのはどうなんでしょう?
#include <stdio.h>
int coin(int m,int i,int sum)
{ int a[]={1,5,8,10,15};
sum=sum+m/a[i];m=m%a[i];
if (m==0)return sum;
if (!i){sum+=m;return sum;}
if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
return coin(m,i-1,sum);}
int main(void){
int x;
printf("金額を入力してください:");
scanf("%d",&x);
printf("最小枚数は%d枚です。\n",coin(x,4,0));
return 0;}

68 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:15:54 ]
>>62
見せて見せて

69 名前:62 mailto:sage [2010/06/19(土) 21:54:03 ]
>>68
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10721.zip
うpしました。

input.txtに暗号化された内容をおいておきます。
hist.txtは履歴の入力。実行するとhistout.txtができるので、それをhist.txtに書き換えればおk。
deb.txtにデバッグログ
dec.txtに復号化したもの
enc.txtは今のところ何も出ない。

です。
一応7行目くらいまでやって放置してます。
バグもいっぱいあると思うんで、実行しながら候補を入れていき、バグ取りしてけば・・というレベルです。

70 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:55:47 ]
>>67
興味深いな。
> if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
3,4になるプロセスが判らない。

71 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:22:38 ]
特定の組み合わせ限定だからだろ

72 名前:デフォルトの名無しさん [2010/06/19(土) 22:56:00 ]
>>65です
誰かよろしくお願いします。

73 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:02:49 ]
>>70
最初の3,4以外の、8以上のm%5で3,4になる数字は最小枚数を求める時必ず8が入るので
15と10で割り過ぎないように先に8で割るようにしました。




74 名前:73 mailto:sage [2010/06/19(土) 23:07:36 ]
×先に8で割るように ○後で8で割れるように

75 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:12:30 ]
>>65
#include<stdio.h>
int main(void){
int i;
double a[4];
double *p;
p = a;

for(i = 0; i < 4; i++){
a[i] = i;
}

for(i = 0; i < 4; i++, p++){
printf("a[%d]=%f\n", i, a[i]);
printf("p = %p\n", p);
printf("*p = %f\n\n", *p);
}
return 0;
}


76 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:10:03 ]
>>73
なるほど。
オーソドックスな解法は、>>17のようなDPだろうけど、>>67でも出来る、
という事は、条件付きで数学的に等価なのかもな。

77 名前:デフォルトの名無しさん [2010/06/20(日) 02:55:07 ]
>>75
ありがとうございました

78 名前:デフォルトの名無しさん [2010/06/20(日) 02:57:10 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):以下のプログラムをdouble型について調べるプログラムを作成せよ。
尚、単純ポインタが指す値をprintf(“%p) =0x%x\n”, ptr_d, *ptr_d);
を用いて表示すると図1のような実行結果を得るが、図2のように表示をするようにしなさい。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月20日[5] その他の制限:int main(void){から始まる


79 名前:デフォルトの名無しさん [2010/06/20(日) 02:58:58 ]
#include <stdio.h>
int main(void){
char src[32], dst[32];
char *ptr_c;
int *ptr_i, *ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
//配列の出力
for(i=0; i<32; i++){
printf("dst[%d]=0x%x\n", i, dst[i]);
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_c = src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<32; i++){
printf("%p) = 0x%x\n", ptr_c, *ptr_c);
ptr_c++;
  }
}


80 名前:デフォルトの名無しさん [2010/06/20(日) 03:00:45 ]
図1
0x22ccc0) = 0.3020100
0x22ccc8) = 0.b0a0306
0x22ccd0) = 0.13121110
0x22ccd8) = 0.1b1a1918

図2
ptc_d:0x22ccc0) = 0.3020100
   0x22ccc4) = 0.7060504
ptr_d:0x22ccc8) = 0.b0a0306
 0x22cccc) = 0.f0e0d0e
ptr_d:0x22ccd0) = 0.13121110
0x22ccd4) = 0.17161514
ptr_d:0x22ccd8) = 0.1b1a1918
0x22ccdc) = 0.1f1e1d1c


81 名前:023 mailto:sage [2010/06/20(日) 13:34:27 ]
>>069
VS2005で動かしてみました。
ゲームとしては7行くらいでゲームオーバーでもかまいません。
ただ、/を入れた後の文字選択が2回必要なのはなぜでしょうか。

82 名前:デフォルトの名無しさん [2010/06/20(日) 14:57:39 ]
>>78です
どなたか、よろしくお願いします。


83 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 15:06:53 ]
以前のヤツからそうなんだけど、書いてあるコード実行しても図の例と同じにはならないんだよな



84 名前:デフォルトの名無しさん [2010/06/20(日) 15:49:25 ]
すみません。説明不足でした。
ソースコードは、int型で書かれています。これを、double型に書き換えていただきたいんです。
そして、double型に書き換えたものを実行すると、図2のように表示せよという問題です。
よろしくお願いします。


85 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 16:16:30 ]
>>78
#include<stdio.h>
#define SIZE 4
int main(void){
int i;
double src[SIZE], dst[SIZE];
double *ptr_d;
// データ格納?
for (i = 0; i < SIZE; i++) {
src[i] = i;
dst[i] = src[i];
}
// 配列の内容を出力
for (i = 0; i < SIZE; i++) {
printf("%p) = %f\n", &dst[i], dst[i]);
}
// ポインタと配列を使って内容を出力
for (ptr_d = src, i = 0; i < SIZE; ptr_d++, i++) {
printf("ptr_d :%p) = %f\n", ptr_d, *ptr_d);
printf("src[%d]:%p) = %f\n", i, &src[i], src[i]);
}
return 0;
}

すいません。
問題のゴールが明確には分からなかったので適当に書いてます。
大枠はこれでいいと思うので書き換えて使ってください。

86 名前:62 mailto:sage [2010/06/20(日) 16:49:11 ]
>>81
入力しても時々無視されちゃってます。
バグですが、もう一度入れれば入るみたいなんで、無視しちゃってください。
(直して^^;)

87 名前:023 mailto:sage [2010/06/20(日) 17:16:35 ]
int ch, ch2, ch3;
bool slash = false;
/****/
try{
/****/
while(1){
  ch = skip();
  if(ch == EOF) break;
  plane_put(ch);
  kouhosu = 0;
  bslash = 0;
  ch2 = fgetc(fp1);
  if(!kigou(ch2) && (ch2 == ch + 1)){
    bslash=1;}
  ungetc(ch2, fp1);
  if(slash) { // add 2010.6.20
    ch = ch3;
    slash = false;
  }else{
    ch = fukugou(ch);}
  dec_put(ch);
  fputc(ch, fp3);
  if(ch=='/'){
    ch3 = fukugou(ch2 - 1);
    angou(ch3);
    slash = true; // add 2010.6.20
  }else{
    deb("angou=%c\n",ch);
    angou(ch);
  }
}}

88 名前:62 mailto:sage [2010/06/20(日) 18:08:56 ]
>>87
ありがとうございます!!

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10722.zip
に更新しました。
スクロール出来なくて今何をデコードしてるのか分からなくなってた問題は
別スレッドのポップアップウインドにしたので解消しました。


なんか'/'の扱いが難しいすね。よく考えると、'/'と見なしたら、その次の文字を-1して復号化するんだけど、
その復号化において、さらに、'/'と見なすべき場合は再帰でやらないと出来ないんじゃないだろうか。。という気がしてきた。

89 名前:62 mailto:sage [2010/06/20(日) 18:31:48 ]
っていうか、ほぼ毎回、候補が複数出てくる。
これほとんど無理だよねw

90 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:24:13 ]
?1から10までの積を計算するプログラムを書け。このとき,whileループを用いて、
画面に 1*2*3*・・・・*10 = という風に表示されるようにすること。

期限は6/22までです。お願いします。

91 名前:デフォルトの名無しさん [2010/06/20(日) 20:24:33 ]
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)

I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)

ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。

この問題を解ける方教えていただけませんか?

92 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:35:12 ]
>>90
#include <stdio.h>
int main(void)
{
int i=10,sum=1;
while(i--)printf(i?"%d*":"%d=%d\n",i+1,sum*=(i+1));
return 0;
}

93 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:41:29 ]
>>1
>>1
大事なことなので2回言いました。最近守らないやつが多すぎる。



94 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:44:42 ]
>>78
char src[32], dst[32];
int *ptr_i,*ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_d = (double *)src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<4; i++){
printf("ptc_d:%#6x) = 0.%x\n", ptr_d, *ptr_d);
ptr_i = (int *)ptr_d;
printf(" :%#6x) = 0.%x\n", (ptr_i+1), *(ptr_i+1));
ptr_d++;
}
図2 ptr_d:0x22ccc8) = 0.b0a0306 は>>79のソース内容から外れるので考慮していない

95 名前:91 [2010/06/20(日) 20:58:11 ]
[1] 授業単元:数値計算法
[2] 問題文(含コード&リンク):
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)

I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)

ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。
[3] 環境
 [3.1] OS:vista
[4] 期限: 無期限


96 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 05:37:05 ]
>>89
適当に選ぶと正解じゃない場合は常に行き詰まる模様

97 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 07:33:49 ]
エロゲの選択肢よりシビアだな

98 名前:023 mailto:sage [2010/06/21(月) 09:02:14 ]
decrypt 窓が、文字の無いところを表示するから、常に横スクロールが必要。

99 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 13:31:35 ]
>>95
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10726.txt

100 名前:87 の修正を修正 mailto:sage [2010/06/21(月) 16:05:27 ]
int ch, ch2, ch3;
bool slash = false;
/****/
try{
while(1){
  ch = skip();
  if(ch == EOF) break;
  plane_put(ch);
  scroll(IDC_EDIT3); // add 2010.6.21 他のscroll()呼び出しは削除
  kouhosu = 0;
  bslash = 0;
  ch2 = fgetc(fp1);
  if(!kigou(ch2) && (ch2 == ch + 1)){
    bslash=1;}
  ungetc(ch2, fp1);
  if(slash) { // add 2010.6.20
    ch = ch3;
    slash = false;
  }else{
    ch = fukugou(ch);}
  dec_put(ch);
  fputc(ch, fp3);
  if(ch=='/'){
    kouhosu = 0; // add 2010.6.10 候補を消す
    ch3 = fukugou(ch2 - 1);
    angou(ch3);
    slash = true; // add 2010.6.20
  }else{
    deb("angou=%c\n",ch);
    angou(ch);
  }
}}

101 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:08:25 ]
そろそろ別にスレでも作ってそっち行ってくんないかな

102 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:17:56 ]
>>99
間違ってるぞw

103 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:33:42 ]
>>102
本からの丸写しなんだが。間違ってる点があるなら指摘よろしく



104 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:37:28 ]
本当に丸写しなら、出版社に言って謝礼をもらうべきw
どうせ問題にあわせていじったところでミスってるだけだろうけど。

105 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:38:51 ]
>>104
嫌味なら誰にでも言える
どこがどう間違っているのか具体的に指摘よろしく
それかお前が正しいプログラムを書いて示せ

106 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:40:47 ]
間違いの存在教えてもらっただけでも感謝して、自分で探せよw

107 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:41:28 ]
まあどこが間違っているか示せないだろうけどな

>>99は何度も検証したし結果も合ってる

ただケチを付けてみたいだけだろう>>102

108 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:45:23 ]
そんな検証の仕方じゃ話になんないなw

109 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:45:57 ]
以降放置勝手に言ってろ

110 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:46:36 ]
>h = b - a;
これはなんですか?w

111 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:49:57 ]
>>110
それで合ってんだよ

112 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:52:32 ]
え?w

113 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:29 ]
>>20 の問題だけでスレ立てるのもアレなのでこちらでどうぞ

スレ立てるまでもない質問はここで 106匹目
pc12.2ch.net/test/read.cgi/tech/1276215571/



114 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:29 ]
wてなに


115 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:30 ]
どうせ台形公式とかルンゲ・クッタ法のhと混同してるんだろうこの馬鹿は
ロンバーグ積分も知らない馬鹿は口出しすんな

116 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:58:01 ]
ロンバーグ積分は台形公式利用するものだし、hの意味は同じなんだがw

aとbは係数として関数に渡すもので、始点・終点じゃない
h = f - e;
が正しい。


117 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:05:21 ]
>>99のやり方はミス抜かしてもロンバーグ積分としては微妙だけどな。
毎回台形公式で求めなおしてるから計算回数無駄に多いし。

118 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:06:54 ]
>>116
確かにその通りだスマン

>>117
だから文句タラタラ言うなら自分でプログラムを書いて示せっつーの

119 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:09:36 ]
スマンですますなよ、この低脳がw
教えてくださいって土下座しろよこのマヌケ

120 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:11:47 ]
>>110で指摘されてもなお>>111と言える心の強さは素晴らしい

121 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:14:36 ]
>>113
まともに機能してるスレに関係ないもの誘導すんなよ。
過疎ってるスレがいくらでもあまってるんだから、そっちにしようぜ。

例えば
C言語を勉強しあおう
pc12.2ch.net/test/read.cgi/tech/1190599975/
とかさ

122 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:15:12 ]
そこまで言わなくてもいいと思うが、丸写しした本を教えてほしい。
それから、
> 何度も検証したし結果も合ってる
というところも詳しく。

123 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:30:15 ]
台形公式で刻み数を倍にするときは前回の計算結果を利用して、
関数の計算回数を減らすのが普通。
減らすって言っても、前回の計算がなかったとして直接計算したときと同じなんだけど。
少なくとも、前回の計算分丸々計算しなおすよりはマシになる。



124 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:01:03 ]
>>123
だから言葉で言わずにプログラムで書けっつーの
ここはプログラム板だ

125 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:03:59 ]
ググれカス

126 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:05:22 ]
>>124
先に>>122の質問に答えたら?

127 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:25:50 ]
>>90
#include <stdio.h>
int main(void)
{
    int i = 1, sum = 1;
    while (i < 10) {
sum *= i;
printf("%d*", i);
i++;
    }
    printf("%d = %d\n", i, sum *= i);

    return 0;
}

128 名前:113 mailto:sage [2010/06/21(月) 20:05:45 ]
>>121
了解した

>>20 の問題に関しては是非こちらへ

C言語を勉強しあおう
pc12.2ch.net/test/read.cgi/tech/1190599975/168-

129 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:46:57 ]
wってなに?

130 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:03:40 ]
waraiのw

131 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:04:39 ]
sumって変数名に乗算の結果を入れるのは気持ち悪い

132 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:09:40 ]
product

133 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:05:37 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
[1] 授業単元:
char buf[80];
int main(int ac, char ** av)
{
int i;
buf[0] = '\0';
for(i = 1; i < ac; i++){
printf("%3d \"%s\"\n", strlen(av[i]), av[i]);
strcat(buf, av[i]);
}
printf("%3d \"%s\"\n", strlen(buf), buf);

これを入力した文字列を逆順に表示できるように書き換えよ
[3] 環境
 [3.1] Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 本日三時
[5] その他の制限:なし

おねがいします





134 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:39:40 ]
for(i = strlen(buf) - 1; i >= 0; i--) printf("%c", buf[i]);

135 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:49:15 ]
配列a[n],配列b[n] と配列の大きさn を渡すと配列の
要素を入れ換えるプログラムをポインタを用いて作成せよ.
例えば,a[3]={1,2,3},b[3]={101,102,103}とすると
き,結果として,a[3]={101,102,103},b[3]={1,2,3}と
なるようにせよ.

よろしくお願いします!

136 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:50:29 ]
void f(int *a, int *b, int size)
{
while(size--) {
int temp = *a;
*a++ = *b;
*b ++ = temp;
}
}

137 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 12:06:39 ]
>>136
早速の回答感謝します
ありがとうございました!

138 名前:デフォルトの名無しさん [2010/06/22(火) 14:55:24 ]
1] 授業単元:システムコール
[2] 問題文(含コード&リンク):
コマンドライン引数で指定された文字列のいずれかと一致する名前の環境変数についてのみ、
#include <stdio.h>
#include <stdlib.h>
extern char **environ;
main()
{
char **p;
for (p = environ; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}

#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[], char *envp[])
{
char **p;
for (p = envp; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}
のように変数名と値を表示するプログラムを書け。
ただし、コマンドライン引数に重複があっても、対応する環境変数について複数回表示してはならない
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限:2010年5月24日12:59まで
[5] その他の制限:特になし
よろしくお願いします


139 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:05:45 ]
期限が過ぎているのでスキップされました

140 名前:デフォルトの名無しさん [2010/06/22(火) 15:17:58 ]
>>138
すいません!期限6/24です

141 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 17:56:42 ]
ワイルドカードのマッチを、正規表現使って行うにはどう変換すればいいですか。
. や * や ? で機能が違うのですが。



142 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:01:55 ]
ワイルドカード → 正規表現
? → .
* → .*

143 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:05:12 ]
サンクス。あと正規表現の特殊文字に\つけとけばいいですかね。



144 名前:デフォルトの名無しさん [2010/06/22(火) 18:47:03 ]
[1] 授業単元:C・プログラミング
[2] 問題文(含コード&リンク):
深さ優先探索をリスト表現で表すプログラムを作成せよ。
制限は特にないです。
[3] 環境
 [3.1] Windows 7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2010年6月25日迄
よろしくお願いします。

145 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:41:07 ]
>.144
めっちゃ抽象的だな…

146 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:44:08 ]
まずは要件定義から始めること。



という実践的な問題なんだろ。

147 名前:デフォルトの名無しさん [2010/06/22(火) 20:09:28 ]
>>138
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int
main(int argc, char *argv[], char *envp[])
{
char **p, **v;
int lth;
for (p = envp; *p != NULL; p++) {
lth = strchr(*p, '=') - *p;
for (v = argv; *v != NULL; v++) {
if (!strncmp(*p, *v, lth)) {
printf("%s\n", *p);
*p = '\0';
break;
}
}
}

return 0;
}

148 名前:デフォルトの名無しさん [2010/06/22(火) 20:30:24 ]
[1] 応用プログラミング
[2] 問題文(含コード&リンク):構造体の基礎
  kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10733.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2008
 [3.3] 言語:C
[4] 期限:24日まで
[5] その他の制限:プログラミングやってまだ半年しか経ってません。
         構造体の授業の宿題です。
         どうか宜しくお願いします。


149 名前: ◆QZaw55cn4c mailto:sage [2010/06/22(火) 20:43:07 ]
>>148
codepad.org/nXIJMHE8

150 名前:デフォルトの名無しさん [2010/06/22(火) 22:25:31 ]
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):三目並べを作成せよ。ポインタとクラスを使用。
[3] 環境
 [3.1] OS:WinodwsVista
 [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
 [3.3] 言語:C++
[4] 期限:6/23(水)8時半まで
[5] その他の制限:C++触り始めた所です。どうかお願いします。

151 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:27:42 ]
>>150
GUIでいいのか

152 名前:デフォルトの名無しさん [2010/06/22(火) 22:30:13 ]
>>151
言い忘れてた。CUIでお願いします。

こんな感じにしてほしいです。
  1 2 3






○の横座標を入力してください:
○の縦座標を入力してください:

153 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:04:32 ]
>>152
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10734.txt



154 名前:デフォルトの名無しさん [2010/06/22(火) 23:16:46 ]
>>153
出来ればクラスとメソッドをしっかりと分けてほしいです。

クラスの中にメソッドが入ってる感じなのでこう分けてくれると助かります。

class game{
public:
void init();
bool Player(int x, int y);
};

void Game::init()
{
・・・
}

他のメソッドもこんな感じに処理毎に分けてくれると助かります。あと○に座標だけでなく
×の座標も入力できるようにしてほしいです。

155 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:18:02 ]
www

156 名前:デフォルトの名無しさん [2010/06/22(火) 23:18:30 ]
>>154
ミス。「○に座標」じゃなくて「○の座標」でした。

入力した座標をポインタで受け取る感じにしてほしいです。

申し訳ありません。

157 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:31:38 ]
座標をポインタで受け取りたいってのがよくわからんが。。

ってかドローゲーム忘れてたw

158 名前:デフォルトの名無しさん [2010/06/22(火) 23:39:19 ]
>>157
自分の中のイメージとしてg.player(&width, &height)って感じでメソッド呼び出して
座標データを取得したいのですが。。。。。

すいません。なかなか上手く説明できないです。初心者なので。。。。。。



159 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:42:24 ]
クラスとメソッドを分けてほしいって表現がすごいけど、その例を書けるんならそんぐらい直せw

160 名前:デフォルトの名無しさん [2010/06/22(火) 23:45:28 ]
>>159
クラスとメソッド分けるのちょっとやってみます。

挫折したらすみません。あと途中で解説欲しくなるかもしれないです。

161 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:48:40 ]
>>158
こんなんでどう?
get_posってヤツで座標を取るんで、これなら意味分かるわ。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10735.txt

162 名前:デフォルトの名無しさん [2010/06/22(火) 23:52:37 ]
>>161
おおおおおおおおおおお。けっこうスマートになってるwwww

助かります。ちょっとソースコード読んでみます。解説欲しくなったら言うので。

163 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:54:19 ]
どんだけ上から言ってんだよw

ってかもうねる。



164 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:01:03 ]
>>163
乙。

釣りなのかと思っちゃうよね。

165 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:15:45 ]
インライン関数は使わない流儀

166 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:27:12 ]
[1] 授業単元:プログラミング応用  ;構造体
[2] 問題文(含コード&リンク):
以下コピペ
表示例のように,名前,性別,身長,体重,腹囲(ウエスト)を3人分入力した後, 3名全員について入力データに加えてBMI値とメタボリック症候群の疑いの判定を 表示するプログラムを作成しなさい.
プログラムでは,名前,性別,身長,体重,腹囲をまとめて 個人データとして表すための構造体を定義して利用すること.
注意
" 体重はkg, 身長,腹囲はcmで入力する.
" 性別は 1 で男性,2で女性を表す.
" BMI値 = 体重(kg) / 身長(m)2
" 男性は腹囲85cm以上,女性は腹囲90cm以上でメタボリック症候群の疑い がある

表示例
データ1を入力してください
名前: Hanako
性別: 2
身長: 156.4
体重: 65.3
腹囲: 93.4
名前: Hanako, 性別: 女, 身長: 156.4, 体重: 65.3, 腹囲: 93.4, BMI: 26.7, メタボリック症候群の疑いがあります
コピペ終わり
本当はデータ3つです。改行制限で割愛
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (cc 3.4)
 [3.3] 言語: (どちらでも可)
[4] 期限: (6月23日15時まで)
[5] その他の制限: (構造体でデータを個々で格納してお願いします。)

よろしくお願いします。

167 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:51:24 ]
>>>166
codepad.org/z3vbEcex

168 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 11:20:14 ]
>>166
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10736.c

169 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:33:36 ]
>>167
>>168
ありがとうございました。参考にさせていただきます。

170 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:18:36 ]
【質問テンプレ】
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):
1.関数sqrtを使って1〜10までの二乗根の和を求めなさい。
2.16進数ABC.DEを10進数にしなさい。
[3] 環境
 [3.1] OS: Windows XP
 [ [3.3] 言語: C言語
[4] 期限: 6月24日15時まで
よろしくお願いします。

171 名前:デフォルトの名無しさん [2010/06/23(水) 15:33:07 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10737.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6月28日まで
[5] その他の制限:なし
よろしくお願いします

172 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 15:55:30 ]
【質問テンプレ】
[1] 授業単元: プログラミングB
[2] 問題文(含コード&リンク):実行したい処理を選ぶことが可能なプログラムを作りなさい。このとき、実
行できる処理は以下の三つとする。

処理1:複数の2択問題への回答に応じた結果を表示する。(例:職種選択、旅行先選び

処理2:文字コード一覧表を出力する。(文字コード32~126を一行に8文字ずつ)

処理3:本のページ数を入力し、その本を読み切るために必要な日数を表示
    する。このとき、初日は10ページ、2日目は20ページ,,,と読むページ
    数は増加するものとする。

以下の仕様で作成すること

キーボードから入力された数に応じて、switch文で各処理に移動する。
処理1:if文を使って
処理2:for文を使って
処理3:while文またはdo・while文を使って。

[3] 環境
 [3.1] OS: WindowsXP
 [3.3] 言語: C言語
[4] 期限: 6月25日まで
よろしくお願いします。

173 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 16:03:04 ]
>>171
(1)j-1
(2)printf("   ");



174 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 16:07:11 ]
>>170
1.
#include <stdio.h>
#include <math.h>

int main(void)
{
int i;
double sum = 0;

for(i = 1; i <= 10; i++) sum += sqrt(i);

printf("%f\n", sum);

return 0;
}

175 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 16:45:32 ]
>>170
2.
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10738.c

176 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 17:34:30 ]
>>172
自己解決しました。

177 名前:デフォルトの名無しさん [2010/06/23(水) 21:05:54 ]
>>149
ありがとうございました、参考にさせていただきました。
それにしてもわずか10分でするとは…

178 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:17:16 ]
質問させてください
当方、エントロピー値の計算するプログラムをperlで作成したのですが
わけあってC++に書き直すことになりました
しかし、C++にはハッシュ(連想配列)などは自分で作らなければならなく
どうしてもうまく行きませんでした・・・
perlで作ったプログラムをここに張るのは良くない思うのですが
どうかC++動くようにご教授お願いします


179 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:20:11 ]
こちらがperlのプログラムです
#! c:/perl/bin/perl

open(FILE,"IPsource.txt"); #ファイル読み込み
use strict;
use warnings;
use utf8;
print "Content-type: text/html\n\n";
my $count;
my $t;
my $key;
my $ref_freq;
my %ref_freq;
my @x;
my $v;

$count = 0; #全体IPカウント
while ($t = <FILE>){ #IPファイル展開

#IP集計
if($t) {
$count += 1; #全体IPカウント
++$ref_freq{$t};
}
}






180 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:21:17 ]

@x = values %ref_freq;

print"@x \n";

close(IN);


#my @x= map $_ ,$key;
#エントロピー計算
my $y=$count;
my $num;
my @pi = map $_ / $y, @x;
my $i;
print"@pi \n"; #テスト用プリント
#print"@x \n";
for($i=0;$i<=$#pi;$i++){
$num += -($pi[$i]*log($pi[$i]) / log(2));
}


#print"@pi\n\n";
print "-Σpi*log2(pi) = $num \n";

181 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:27:16 ]
std::hash_map, std::mapはC++にもある

182 名前:178 mailto:sage [2010/06/23(水) 21:32:30 ]
プログラムの動きですが
>>179でtxtに入れられたIPアドレスの種類と数をカウントします
ここでハッシュ(連想配列)を用いています
ここを出力するとこのようになります

IP    数
202.・・・ 20

そして>>180でエントロピー計算を行います
エントロピーの計算方法はlog(対数)とΣ(for文)で
my $y=$count;
my $num;
my @pi = map $_ / $y, @x;
この部分に先ほどカウントしたIPが入り
for($i=0;$i<=$#pi;$i++){  ←カウントしたIP分だけループさせ
$num += -($pi[$i]*log($pi[$i]) / log(2));  ←エントロピーの計算をします
}



183 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:36:16 ]
文字列をキーとした連想配列はmapで代用できる。
もちろん、>>181の言うようにhash_mapでもいい。(あれば)



184 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:39:16 ]
std::tr1::unordered_map も忘れないでください。


185 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 21:55:08 ]
>>178
元のコードにできるだけ合わせたつもり
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10740.cpp

186 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 22:17:25 ]
CでなくC++でよかったな

187 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 22:18:45 ]
余計な言い訳せずにC++のコードくださいって言えばいいのにね。

188 名前:185 mailto:sage [2010/06/23(水) 22:54:11 ]
>>185 の訂正
途中で @x 相当の変数使うの忘れてたw
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10741.cpp

189 名前:178 mailto:sage [2010/06/23(水) 23:11:42 ]
>>181、183、184
ご指摘ありがとうございます
その範囲を調べてみます。

>>185
わざわざコードを作っていただき
本当にありがとうございます
このコードを参考に勉強させていただきます。

190 名前:デフォルトの名無しさん [2010/06/24(木) 00:22:32 ]
モンテカルロ法で√2の近似値を求めたいのですが、
ネット調べてみるとモンテカルロ法と言えばπの近似に関するばかりで・・・
どなたか教えてくださいませ

191 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 00:33:17 ]
[sin θ]0〜PI に近い

192 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 00:37:45 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
問題1:char name[20], int english, int mathematicsをメンバとする構造体 score を定義せよ
問題2:以下の5人の情報をもつ配列 seito[5] を、問題1で作成した構造体 score 型を使って宣言せよ。なお、5人の情報は初期値として宣言することにする。
name  english mathematics
"yamada" 50 70
"tanaka" 70 60
"suzuki" 80 70
"yamamoto" 40 60
"sakata" 90 80
問題3:問題2で初期値を代入した構造体 score 型の構造体配列 seito[5] を宣言し、各メンバ変数をソートする関数を作成せよ。
[3] 環境
 [3.1] OS:Win Vista
 [3.2] コンパイラ名とバージョン:VB 2008
 [3.3] 言語:C
[4] 期限:2010年6月25日まで
[5] その他の制限:無し

よろしくお願いします

193 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 01:36:43 ]
>>173ありがとうございます。助かりました!



194 名前:デフォルトの名無しさん [2010/06/24(木) 01:42:16 ]
>>190
#include <stdio.h>
#include <stdlib.h>
#define NN 10000

int
main(void)
{
int i, w, cnt = 0, n;

printf("input sample no(cf.1000)=");
scanf("%d", &n);

for (i = 0; i < n; i++) {
w = rand() % NN;
w *= w;
if (w < NN * NN / 2)
cnt++;
}
printf("PI neary equal = %f", (double) cnt * 2 / n);

return 0;
}


195 名前:デフォルトの名無しさん [2010/06/24(木) 11:48:13 ]
[1] 授業単元:情報処理
[2] 問題文:ガウスの消去法のプログラムをピボット対応と
      ピボット非対応の2つ作成し、連立方程式の解を求めよ。
     (ただし解くべき連立方程式は5元1次方程式で、ピボットの
      発生するものと発生しないものの2種類とする)
       
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C++
お願いします。

196 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 13:44:31 ]
演習6-1

複数の文字列を読み込み,それらの文字列を空白を入れて繋ぎ合わせるプログラムを作成せよ.

【実行例】

何個の文字列を入力しますか?:3
入力文字列[1]:A
入力文字列[2]:B
入力文字列[3]:C

結果:A B C

演習6-3

入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ.
【実行例】

% ./a.out
tataatccg ← 入力し,リターンを押して ^D
Thymine (t) : 3
Cytosine (c) : 2
Adenine (a) : 3
Guanine (g) : 1
%

よろしくお願いします!

197 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 15:07:11 ]
>>196
演習6-1

#include <stdio.h>

int main(void)
{
char buff[32], str[1024], *p, *q;

int i, n;

printf("何個の文字列を入力しますか?:");
scanf("%d", &n);

for(i = 1, p = str; i <= n; i++) {
printf("入力文字列[%d]:", i);
scanf("%s", buff);
for(q = buff; *q; q++, *p++) *p = *q;
*p++ = ' ';
}
*(p - 1) = '\0';

printf("\n結果:%s\n", str);

return 0;
}

198 名前:デフォルトの名無しさん [2010/06/24(木) 17:15:46 ]
ファイルkadai.txt に記述された数行の数値を表す文字列を読み込み、整数に変更して数値として表示
するプログラムを作成せよ。関数としてstrtol()を使用すれば問題ないが、同じ機能の関数を作成すること。
基数の設定に関する引数は必要なくデフォルト(先頭が0 なら8 進、それ以外は10 進、16 進は使用しな
い)とする
お願いします!

199 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 19:22:26 ]
>>197
助かりました!本当にありがとうございます!
>>196の演習6-3は無事、自己解決致しました。
ありがとうございました〜


200 名前:デフォルトの名無しさん [2010/06/24(木) 20:10:46 ]
>>198
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10743.c

201 名前:デフォルトの名無しさん [2010/06/24(木) 21:08:03 ]
バブルソートでは, 配列のデータがすでに適正な順序, あるいはそれに近い順序で並んでいても
n-1回の走査をしなければならない. すなわち, n(n-1)/2回の比較が行われなければならない. そこで, 各回の走査の終わりに,
交換が行われたか否かをチェックするようにし, 交換が行われていなければそれ以上走査の必要はないのでソートを完了するようなプログラムを作成しなさい.
sizeofは使わない。
↓のような出力結果になるようにする。
初期状態: 10, 3, 1, 15, 2, 7
[1回目の走査]
1回目の交換: 3, 10, 1, 15, 2, 72回目の交換: 3, 1, 10, 15, 2, 73回目の交換: 3, 1, 10, 2, 15, 74回目の交換: 3, 1, 10, 2, 7, 15
[2回目の走査]
1回目の交換: 1, 3, 10, 2, 7, 15 2回目の交換: 1, 3, 2, 10, 7, 15 3回目の交換: 1, 3, 2, 7, 10, 15
[3回目の走査]
1回目の交換: 1, 2, 3, 7, 10, 15
[4回目の走査]

最終状態: 1, 2, 3, 7, 10, 15

202 名前:デフォルトの名無しさん [2010/06/24(木) 21:09:51 ]
#include <stdio.h>
int main(void) {

int str[100]={0};
int i,j, temp,x;
x=0;

printf("値の上限を設定してください:");
scanf("%d",&x);

for(i=0;i<x;i++){
printf("%d番目の値を入力してください:",i+1);
scanf("%d", &str[i]);
}
printf("初期状態:");
for(i=0;i<x;i++){
if(i==x-1){
printf("%d\n ",str[i]);
}else{
printf("%d, ",str[i]);
}
}


203 名前:デフォルトの名無しさん [2010/06/24(木) 21:11:02 ]
for (i = 1; i<x; i++) {
for(j=x-1; j>=i; j--){
if (str[i-1] > str[i]){
temp = str[i-1];
str[i-1] = str[i];
str[i] = temp;

}
}
}
for (i = 0; i < x; i++){
if(i==x-1){
printf("%d\n", str[i]);
}else{
printf("%d, ", str[i]);
}
}
return 0;
}

ここまで作りましたが出力結果が上のようになりません。
誰か助けてください!お願いします。



204 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:50:07 ]
#include <stdio.h>
int main(void) {
  int i, j, temp, x=0, f;

  printf("初期状態: %d", str[0]);
  for(i=1;i<x;i++)
    printf(", %d", str[i]);
  printf("\n");

  for (i = 1; i<x; i++) {
    f = 1;
    for(j=x-1; j>=i; j--){
      if (str[j-1] > str[j]){
        temp = str[j-1];
        str[j-1] = str[j];
        str[j] = temp;
        f = 0;
      }
    }
    if(f != 0) break;
    printf("%d回目の走査: %d", i, str[0]);
    for(j=1;j<x;j++)
      printf(", %d", str[j]);
    printf("\n");
  }
  printf("最終状態: %d", str[0]);
  for(i=1;i<x;i++)
    printf(", %d", str[i]);
  printf("\n");
  return 0;
}

205 名前: ◆QZaw55cn4c mailto:sage [2010/06/24(木) 22:05:02 ]
>>201
codepad.org/4Nxqmitu

206 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:05:49 ]
&nbsp;使うとインデント表現できるんだね

207 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:08:25 ]
>>206
s/\&/\&/g
s/ /\ /g
s/"/\"/g
s/</\</g
s/>/\>/g

208 名前:270 mailto:sage [2010/06/24(木) 22:09:47 ]
すみません、間違えました。
s/\&/\&/g
s/ /\ /g
s/"/\"/g
s/</\</g
s/>/\>/g

209 名前:208 mailto:sage [2010/06/24(木) 22:11:50 ]
んー、うまくいかない。
s/\&/\&amp;/g
s/ /\&nbsp;/g
s/"/\&quot;/g
s/</\&lt;/g
s/>/\&gt;/g
こうか?

210 名前:sage [2010/06/24(木) 22:51:25 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
再帰呼び出しを使い、入力した値の階乗を求めるプログラムを書きなさい。
なお、出来る限り大きな値の計算を出来るように工夫しなさい。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
 [3.3] 言語: C言語
[4] 期限: 6月中
[5] その他の制限:指定なし


211 名前: ◆QZaw55cn4c mailto:sage [2010/06/24(木) 23:12:33 ]
>>210
なんの工夫もしていません。
codepad.org/31sqsbvL

212 名前:デフォルトの名無しさん [2010/06/25(金) 00:18:02 ]
[1] 授業単元: 数値解析
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10745.txt
ニュートン・ラフソン法についての問題です。教科書に例題として載っていたプログラミングに今回問題となっている方程式の当てはめ方がわかりません(おそらく初歩的な事だと思われます)
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C
[4] 期限:2010年6月25日16:00まで
[5] その他の制限: 半年前に教養の授業として数時間C言語の授業があった程度の知識しかありません
周囲もそのような人ばかりなので深いC言語の知識が必要な問題ではないと思われます
どうかよろしくお願い致します

213 名前:デフォルトの名無しさん [2010/06/25(金) 02:14:39 ]

[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):

以下に示す2階の定係数線形同次微分方程式につ
いて,初期値y(0)=a, y’(0)=bをキーボードから入力し,
t=4における値を出力するプログラムを作成する.

y''(t)+2y'(t)+2y(t)=0
条件 y(0)=2 , y'(0)=-2

答え y(4)=-0.02394

[3] 環境
 [3.1] OS: (Windows/Linux/等々) vista
[4] 期限:6月30日まで



214 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 10:25:17 ]
>>213
精度を考慮してルンゲ・クッタ法で解いた

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10746.txt

215 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 11:43:42 ]
[1] 授業単元: 画像処理

[2] 問題文(含コード&リンク):
入力した2値白黒画像をハフ変換して直線および円を検出し、結果を表示するプログラムを作成せよ。
直線の式はρ= xcosθ + ysinθを、円の式はr2= (x-a)2 + (y-b)2をそれぞれ使用する。

なお、直線について処理後のρθ平面を濃淡画像として出力せよ。
円については処理後のabrパラメータ空間をGnuplotを用いて、
1点のエッジに対する軌跡(円錐)と2点以上のエッジに対する軌跡(円錐)を出力せよ。

また、円と直線両方について、3種類以上に閾値を変化させた実験結果を逆変換し、
その結果を原画像に投影した画像も出力せよ。
 
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C

[4] 期限: [2010年06月25日23:50まで]

[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
画像として出力というくだりについては、RGBそれぞれの値を
変数名[画像サイズ].r/.g/.bという要素を持つ構造体を使って格納してください。

216 名前:デフォルトの名無しさん [2010/06/25(金) 14:26:22 ]
>>147
亀ですがありがとうございました!

217 名前:デフォルトの名無しさん [2010/06/25(金) 14:32:43 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
午前四時から正午までは Good Morning! と、
正午から午後八時までは Good Afternoon! と、
午後八時から午前四時までは Good Evening! と、表示するプログラムを書け。ただし、境界の時刻は前の時間帯に含まれるものとする

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限:2010年6月30日23:55
[5] その他の制限: 特になし

お願いします

218 名前:デフォルトの名無しさん [2010/06/25(金) 16:58:06 ]
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): 番号 国語 数学 英語のメンバを持っている構造体を作って各教科の平均値と、全平均値を求めてください。(人数は4人とか5人で行ってください。あと番号っていうのは、番号は、4人なら1〜4までで5人なら1〜5までです)
[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C++
[4] 期限: ([2010年6月26日まで]
[5] その他の制限:
#include <iostream>
using namespace std;
struct score {
で始めて、
return文で終わってください


219 名前:デフォルトの名無しさん [2010/06/25(金) 17:13:52 ]
>>214
ありがとうございました^^

220 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 17:59:13 ]
>>218
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10748.cpp

221 名前:218 [2010/06/25(金) 21:51:05 ]
>>218ですが忘れてました。なるべく簡単にしてください。
あと配列を使います。

222 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 01:08:39 ]
>>217
#include <stdio.h>
#include <time.h>

int main()
{
time_t now = time(NULL);
struct tm* local_now = localtime( &now );
const int hour = local_now->tm_hour;

if ( hour>4 && hour<=12 )
printf( "Good Morning!" );
else if ( hour>12 && hour<=20 )
printf( "Good Afternoon!" );
else // ( hour>20 && hour<=4 )
printf( "Good Evening!" );

return 0;
}


223 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 02:27:00 ]
【質問テンプレ】
[1] 授業単元:画像処理
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10749.txt
[3] 環境
 [3.1] OS: (指定なし)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: ([2010年06月28日14:50まで] )
[5] その他の制限:ヘッダファイル"bmp.h"はこちらです
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10669.txt

よろしくお願いします。



224 名前: ◆C/HmxiIl0o [2010/06/26(土) 02:42:14 ]
[1] 授業単元: 解析

[2] 問題文(含コード&リンク):
x=1.0, 1.1,...,3.9, 4.0が与えられた時のlogxの値をラグランジュ補間で求め、
その近似値とlogxの真値をそれぞれ出力せよ。
また、求めた値と真値との誤差(絶対値)も求め、一次多項式の誤差と2次多項式の誤差を
それぞれ出力せよ。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C

[4] 期限: 本日(26日)中にお願いします

宜しくお願いいたします。

225 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 02:59:03 ]
>>223
codepad.org/D3nsJwKm
簡単に試したけど多分こんなん。

226 名前:デフォルトの名無しさん [2010/06/26(土) 03:40:45 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
構造体Triangleを下のように定義する。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10750.txt
この構造体により一つの三角形を表現する。
Triangle構造体の構成要素は、三つの頂点のx座標、y座標をメンバとして持つ構造体Pointである。
このTriangle構造体を用いて、以下の使用に従う関数を作成し、任意の三角形の面積、その三角形を適切な2×2行列で線形変換した結果の三角形の座標とその面積、および任意の二つの三角形が合同であるかどうかを表示するプログラムを実装しなさい。
・一つのTriangle構造体の変数を引数とし、その構造体が表す三角形の面積を返す関数。
・一つのTriangle構造体の変数と、double型の二次元配列(2×2行列Aとする)を引数とし、引数で与えた三角形を行列Aによって線形変換した後の三角形を返す関数。
・二つのTriangle構造体の変数を引数とし、その構造体が合同であれば1を、合同でなければ0を返す関数。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月28日まで
[5] その他の制限:特にありません。よろしくお願いします。



227 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 07:07:19 ]
double area(Triangle t) {
return fabs((t.p2.x - t.p1.x) * (t.p3.y - t.p1.x) - (t.p2.y - t.p1.x) * (t.p3.x - t.p1.x));
}

Triangle linear(Triangle t, double a[2][2]) {
Triangle ret;
ret.p1.x = a[0][0] * t.p1.x + a[0][1] * t.p1.y;
ret.p1.y = a[1][0] * t.p1.x + a[1][1] * t.p1.y;
ret.p2.x = a[0][0] * t.p2.x + a[0][1] * t.p2.y;
ret.p2.y = a[1][0] * t.p2.x + a[1][1] * t.p2.y;
ret.p3.x = a[0][0] * t.p3.x + a[0][1] * t.p3.y;
ret.p3.y = a[1][0] * t.p3.x + a[1][1] * t.p3.y;
return ret;
}

int isCongruence(Triangle t1, Triangle t2) {
double l1[3], l2[3];
int i, j;
l1[0] = (t1.p1.x - t1.p2.x) * (t1.p1.x - t1.p2.x) - (t1.p1.y - t1.p2.y) * (t1.p1.y - t1.p2.y);
l1[1] = (t1.p2.x - t1.p3.x) * (t1.p2.x - t1.p3.x) - (t1.p2.y - t1.p3.y) * (t1.p2.y - t1.p3.y);
l1[2] = (t1.p3.x - t1.p1.x) * (t1.p3.x - t1.p1.x) - (t1.p3.y - t1.p1.y) * (t1.p3.y - t1.p1.y);
l2[0] = (t2.p1.x - t2.p2.x) * (t2.p1.x - t2.p2.x) - (t2.p1.y - t2.p2.y) * (t2.p1.y - t2.p2.y);
l2[1] = (t2.p2.x - t2.p3.x) * (t2.p2.x - t2.p3.x) - (t2.p2.y - t2.p3.y) * (t2.p2.y - t2.p3.y);
l2[2] = (t2.p3.x - t2.p1.x) * (t2.p3.x - t2.p1.x) - (t2.p3.y - t2.p1.y) * (t2.p3.y - t2.p1.y);
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) if(l1[i] == l2[j]) { l2[j] = 0; break;}
if(j == 3) return 0;}
return 1;
}

228 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:36:43 ]
ラグランジュ補間で log(x) を求める。?

229 名前: ◆C/HmxiIl0o mailto:sage [2010/06/26(土) 12:07:55 ]
>>228
問題にはそう書いてありました。
log2=0.6931,log3=1.0986 1次多項式で近似
log2=0.6931,log3=1.0986,log4=1.3863 2次多項式で近似

2点(2,0.6931)(3,1.0986)を用いてlog2.5を推定する
logxの1次多項式による補間では、x0=2,x1=3より、
L-zero(x)=(x-3)/(2-3)
L-one(x)=(x-2)/(3-2)
であるから、p1(x)=1.0986(x-2)-0.6931(x-3)
p1(2.5)=1.0986(2.5-2)-0.6931(2.5-3)=0.89585

3点(2,0.6931)(3,1.0986)(4,1.3863)を用いてlog2.5を推定する
logxの1次多項式による補間では、x0=2,x1=3より、
L-zero(x)=(x-3)(x-4) / (2-3)(2-4)
L-one(x)=(x-2)(x-4) / (3-2)(3-4)
L-two(x)=(x-2)(x-3) / (4-2)(4-3)
であるから、p2(x)=0.34655(x-3)(x-4)-1.0986(x-2)(x-4)-0.6931(x-2)(x-3)
p1(2.5)=0.919575

真値=0.91629

誤差を求める式は
e-k(x)=f(x) - p-k(x) = (f^(k+1)(クサイ) / (k+1)!)*(x-x0)・・・(x-xk)
だそうです。

宜しくお願いします。


230 名前:デフォルトの名無しさん [2010/06/26(土) 12:17:47 ]
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):三目並べのプログラムにCPとの対戦をつけろ。
codepad.org/wfwkEbVP
[3] 環境
 [3.1] OS:WinodwsVista
 [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
 [3.3] 言語:C++
[4] 期限:6/27(水)8時半まで
[5] その他の制限:C++初心者です。インライン関数は使わない方向でお願いします。

実行結果としてはこんな感じにしてほしいです。
1Pと2Pとの交互に対戦しますか?
1Pとコンピュータとの対戦にしますか?
プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください:

こんな感じで選らばせて対戦できるようにしてほしいです。

※1Pのマスは○でコンピュータのマスは×でお願いします。

231 名前:デフォルトの名無しさん [2010/06/26(土) 12:19:15 ]
>>230
ミス。

6/27(月)でした

232 名前:デフォルトの名無しさん [2010/06/26(土) 12:20:03 ]
>>231

日曜でした。すいませんでした。

233 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 14:54:26 ]
> であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) - 0.6931(x-2)(x-3)
> p1(2.5)=0.919575
であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) + 0.6931(x-2)(x-3)
p1(2.5)=0.9105875
物理のかぎしっぽ:計算物理学:補間法:ラグランジュ補完
moondial0.net/archives/www12.plala.or.jp/ksp/computPhys/lag-hokan/index.html



234 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 15:11:16 ]
[1]授業単元:システムプログラミング
[2]課題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10751.txt
[3] OS:Windows Vista コンパイラ:CygWin上のgcc 言語 C
[4] 7/1迄
[5] 授業は殆ど出ておらず単位を落としそうですんでよろしくお願いしまつ

235 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:49:42 ]
>>229
ラグランジュ補間は手持ちの本「科学技術計算ハンドブック」に
掲載されているので、一次補間も二次補間も意味はわかるけど、
logxの近似をしたかったら、x=1.0から4.0まで近似したいなら、
もっと数表x[], y[]の標本が必要だよ

というのは、ラグランジュ補間は極めて振動しやすいという欠点を
持っていて、その欠点を埋め合わせるには数表の取り方を工夫
しなければならない

少なくとも、[x,y]の組み合わせが多数欲しい

今1.0〜4.0の範囲で近似しようとしているのだから、xが0.0から5.0
の範囲で5点ほどは欲しい

236 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:58:22 ]
> 今1.0〜4.0の範囲で近似しようとしているのだから、
x=2.5 のだけで。

237 名前:デフォルトの名無しさん [2010/06/26(土) 22:13:54 ]
>>218を誰か簡単にお願いします

238 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:31:31 ]
>>224
ideone.com/6f9pM

239 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:39:35 ]
>>229
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10752.txt

数表が与えられていないので勝手に作ったよ。
logxはx=1.0未満になるとぐっとマイナスの方へ振れてしまい
標本としてはあまり好ましくないので、x=1.0以下の部分は
標本間隔を詰めた。

240 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:40:49 ]
あ、ごめん>>236が見えてなかった。
>>239の取り扱いは好きなようにしてください。

241 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 22:48:41 ]
>>237
>>218

codepad.org/3jK2ScYK
簡単というのがSTLを使いまくることだったらすまない。

242 名前: ◆C/HmxiIl0o mailto:sage [2010/06/26(土) 23:51:34 ]
>>239
ありがとうございます。>>236は偽者です。

問題文には数表は全く書かれていなかったのですが、授業で使うスライドを見ていったところ、
1枚だけ、端っこの方に小さくy=f(x)= 1/(1+25*x^2)と書かれていました。
宜しくお願いします。

243 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 23:55:23 ]
よろしく



244 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:37:41 ]
>>242
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10753.txt

うーん標本の取り方がいまいちかな・・・
一次補間が振動しちゃってます
適当に数表をいじって誤差が少なくなるようにトライしてみてください

245 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:47:15 ]
数値計算理論の問題でC/C++のコーディング技術の問題じゃなさそう

246 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 03:08:48 ]
[1] 授業単元:計算機とアルゴリズム
[2] 問題文(含コード&リンク):数列と漸化式を表示できるように9行目からお願いします。kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10754.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 2010年6月28日
[5] その他の制限:whileを使うと思います。

お願いします。

247 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:46:12 ]
>>246
#include <stdio.h>

main()
{
int n, m, an, sum;

m = 5;
printf("数列 an = n*n とその和を %d 項目まで表示します\n", m);

n = 1;
sum = 0;
while (n <= m)
{
an = n * n;
sum += an;
printf("a[%d] = %d, sum = %d\n", n, an, sum);
n++;
}
}

248 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 08:50:58 ]
>>246
#include <stdio.h>

main()
{
int n, m, an;

m = 5;
printf("漸化式 a(n) = 2*a(n-1), a1 = 2 で生成される数列を %d 項目まで表示します\n", m);

n = 1;
an = 2;

while (n <= m)
{
if (n == 1)
{
printf("a[%d] = %d\n", n, an);
n++;
continue;
}
an = 2 * an;
printf("a[%d] = %d\n", n, an);
n++;
}
}

249 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 10:35:20 ]
>>224
ideone.com/vVi7u
期限すぎてるけど、いいどらえもんがかけた。

250 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:20:11 ]
>>210
codepad.org/2uVp97hy
100! まで確認しています。#define で指定している定数を増加させれば、もっと大きな数値にも対応できるかもしれません。

251 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 16:39:40 ]
【質問テンプレ】
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 入力した2つの整数の間 (入力した数も範囲に含める) にある
 「2の倍数でない」かつ「3の倍数でない」かつ「5の倍数でない」
の条件を満たす整数を順に表示し,最後にその個数を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS:VineLinux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2010年7月4日
[5] その他の制限:なお,整数の入力には get_int() を用いること。
# define BUFFER_SIZE (256)//get_int()です

int get_int(void)
{
char buf[BUFFER_SIZE];

fgets(buf, BUFFER_SIZE, stdin);

return atoi(buf);
}

よろしくおねがいします


252 名前: ◆QZaw55cn4c mailto:sage [2010/06/27(日) 16:46:14 ]
>>251
codepad.org/kofHJzGi

253 名前:251 mailto:sage [2010/06/27(日) 17:12:01 ]
>>252

迅速な回答本当にありがとうございます



254 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:04:24 ]
[1] 授業単元:情報処理学
[2] 問題文(含コード&リンク):
do-while文を用いて、キーボードから入力された値が素数であるかどうかを
判別するプログラムを作成せよ。入力された値が素数の場合は"素数"と出力し、
素数でない場合は最小の因数を出力せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:すいませんがわからないです。
 [3.3] 言語:C
[4] 期限:2010年6月30日まで

255 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:17:03 ]
1] 授業単元:情報処理学
[2] 問題文(含コード&リンク):
1次元配列に34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、
これらの平均値を求めよ。さらにint eval[3]という1次元配列を用意して
eval[0]には0〜60の数の個数
eval[1]には61〜80の数の個数
eval[2]には81〜100の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。(配列、for文、if文を使って)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月30日まで


256 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:30:25 ]
>>254

#include <stdio.h>
int main(){
int i,n,f;
printf("> ");
scanf("%d",&n);

f=1; i=1;
do{
++i;
if(n%i==0){
f=0;
break;
}
}while(i*i<=n);
if(f)printf("素数\n");
if(!f)printf("%d\n",i);
}


257 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 20:33:36 ]
>>255
#include <stdio.h>

int main(void)
{
int array[] = {34, 57, 45, 21, 89, 63, 39, 48, 78, 68, 76, 84, 92, 53, 62}, eval[3] = {0}, i;
double ave;

for(i = 0, ave = 0.0; i <sizeof array / sizeof *array; i++) {
ave += array[i];
if(array[i] < 0) continue;
else if(array[i] <= 60) eval[0]++;
else if(array[i] <= 80) eval[1]++;
else if(array[i] <= 100) eval[2]++;
}

printf("平均値:%f\n", ave / (sizeof array/ sizeof *array));
printf("0〜60の数の個数:%d\n", eval[0]);
printf("61〜80の数の個数:%d\n", eval[1]);
printf("81〜100の数の個数:%d\n", eval[2]);

return 0;
}

258 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:44:01 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
次のように表示するプログラムを作りなさい。

私の学籍番号は0000000Aです。
氏名は aaaaa aaaaaaaaです。
       ↑半角スペース
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:C++
 [3.3] 言語: C言語
[4] 期限: 6月28日午前0時
[5] その他の制限:
char型の配列no name を使う。
noに学籍番号、nameに氏名を格納し表示に使う。
自分の学籍番号、氏名はchar型の配列、no nameを初期化して配列に格納する。


259 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:52:25 ]
#include <stdio.h>

int main(void)
{
char no[] = "0000000A", name[] = "aaaaa aaaaaaaa";

printf("私の学籍番号は%sです。\n", no);
printf("氏名は %sです。\n", name);

return 0;
}

260 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:23:44 ]
>>256
ありがとうございます。

261 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:35:45 ]
>>257
ありがとうございます。

262 名前:デフォルトの名無しさん [2010/06/27(日) 22:45:00 ]
>>241
>>241で書いてもらったみたいな感じです。ありがとうございました

263 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:22:42 ]
a



264 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:25:25 ]
>>259
本当に助かります(涙)ありがとうございます!!!!

265 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:45:11 ]
>>264
いえいえ

266 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:33:27 ]
お礼を言われると返って心苦しくなるなw

267 名前:デフォルトの名無しさん [2010/06/28(月) 00:41:58 ]
>>241
忘れてました
全部の平均ってどういう意味なんですかね?これがいまいちわからないです

268 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 00:47:00 ]
>>267
例えば、
英数国合計の平均=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点)/3

269 名前:268 mailto:sage [2010/06/28(月) 00:56:58 ]
これのほうがまだわかるかな
(Eavg)
+(Mavg)
+(Javg)

=(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点)
+(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点)
+(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点)

=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4


=英数国合計の平均

270 名前:みすった mailto:sage [2010/06/28(月) 00:58:13 ]
(Eavg)
+(Mavg)
+(Javg)

=(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点)
+(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点)
+(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点)

=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)


これを人数分で割ると
(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4
=英数国合計の平均

271 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 01:15:43 ]
すみっこつつきで申し訳ないけど、変数名がavgなのがちょっと変かもね。
質問者がそれで理解できてるようだからいいけれど。

272 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 06:33:29 ]
>>271
うざいです(>_<)

273 名前:デフォルトの名無しさん [2010/06/28(月) 07:26:32 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
社員の情報を管理するプログラムを作りたい。
そこで、以下の例のような構造体Employeeを考える。
以下の構造体Employeeの例は、社員の名前を保存するchar型の配列変数name、年齢を保存するint型の変数age、年譜を保存するint型の変数salaryを有している。
名前は、アルファベットで記述することとし、この構造体では名字だけを管理することとする。(ただし、この構造体のメンバは変更してもかまわない。)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10756.txt
このような構造体を用いて、下の実行例のような社員データベースを処理するプログラムを実装しなさい。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10757.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月29日まで
[5] その他の制限:特にありません。よろしくお願いいたします。





274 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:31:05 ]
1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク): 2つの自然数 n と m を入力し、その積 n×m を
たし算のみで計算するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] borland c++ compiler 5.5
 [3.3] 言語: C
[4] 期限: 2010年06月28日14:30まで
[5] その他の制限: 特になし

よろしくお願いします

275 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:36:05 ]
#include <stdio.h>

int main(void)
{
int n, m, ans;

scanf("%d%d", &n, &m);

printf("%d * %d = ", n, m);

for(ans = 0; m; m--) ans += n;

printf("%d\n", ans);

return 0;
}

276 名前:246 mailto:sage [2010/06/28(月) 11:02:07 ]
>>247
>>248
ありがとうございます。
助かりました。

277 名前:274 mailto:sage [2010/06/28(月) 12:02:00 ]
>>275
ループ変数使用して、printf 文をまとめた方がよくないですか?

278 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:05:40 ]
[1] 授業単元: C言語プログラミング入門
[2] 問題文:関数の再帰的呼び出しによりAckermann(アッカーマン)関数を計算するプログラムを作れ。同じプログラムを繰り返し処理(ループ計算)により実現できるか考えよ。Ackermann関数は次式で定義される。
[3] 環境 
 [3.1] OS: Mac OS
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2010年6月30日
[5] その他の制限: 特にはないです。

よろしくお願いします。

279 名前:278 mailto:sage [2010/06/28(月) 14:07:58 ]
Ackermann関数は次式で定義される。の次式を書き忘れてましたすいません。
n+1 m=0 and n>_0
ack(m,n)= ack(m-1,1) m>0 and n=0
ack(m-1,ack(m,n-1)) m>0 and n>0


280 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:19:21 ]
>>277 足し算で
#include <stdio.h>
int main(void)
{
int a,b,c;
scanf("%d %d",&a,&b);
if (a<b){c=a;a=b;b=c;}c=0;b=-(b);
while (b++)printf(b?"%d + ":"%d = %d\n",a,c+=a);
return 0;
}

281 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 14:20:10 ]
>>274
#include <stdio.h>
int main(void) {
  int i, n, m, ans;

  printf("input:"); scanf("%d", &n);
  printf("input:"); scanf("%d", &m);
  if(n<0 || m<0) { printf("error"); return 1; }
  ans = 0;
  if(n < m){
    for(i=n; i > 0; --i)
      ans += m;
  }else{
    for(i=m; i > 0; --i)
      ans += n;
  }
  printf("\nans:%d * %d = %d", n, m, ans);
  return 0;
}

282 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:02:40 ]
>>224について、教えていただいたプログラムで提出したのですが、
logxの真値と補間で求めた値の誤差を比較していないとのことで受理されませんでした。

>>249さんのような結果を出さないといけないようなのですが、c++だったので、
Cに作り直そうとしたのですが、うまくできませんでした。

大変申し訳ないのですが、Cで作り直していただけないでしょうか?
宜しくお願い致します。

283 名前: ◆/91kCCQXBo mailto:sage [2010/06/28(月) 16:05:01 ]
いいよCで作り直して。
>>280 文章よめ



284 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 16:16:58 ]
>>282
ideone.com/Kc5i7

285 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/28(月) 16:26:08 ]
>>284
ありがとうございました。

286 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 17:36:30 ]
[1] プログラミング1
[2] 現在のインターネットを実現しているTCP/IP通信プロトコルでは主にIPv4
  を用いており、コンピュータを一意に識別するために32ビットのIPアドレスを
  用いている。これを踏まえ、IPアドレスの4つの数字を入力させ、これらを32ビットの
  データ型であるunsigned int型の変数にIPアドレスを示す2進数の数値として保存せよ。
  保存したIPアドレスがunsigned intの整数値として解釈するといくつとなるか表示する
  プログラムを作成せよ。
[3] 環境
 [3.1] OS Linux
 [3.2] gcc
 [3.3] 言語 C言語
[4] 期限:2010年6月30日19:00まで
[5] 特に制限はありませんが、while文は習っていません。
  if文、for文、配列など基本的なものを習いました。

どうぞよろしくお願いします。

287 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:07:05 ]
>>286
int main(int argc, char* argv[])
{
int i;
unsigned int val;
unsigned int addr = 0;

for (i = 0; i < 4; i++)
{
printf("%d:", i + 1);
addr <<= 8;
scanf("%d", &val);
addr |= val;
}

printf("addr=%u\n", addr);

return 0;
}


288 名前:デフォルトの名無しさん [2010/06/28(月) 18:24:56 ]
[1] 応用プログラミング
[2] 問題文(含コード&リンク):  
  kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10758.txt 
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2008
 [3.3] 言語:C
[4] 期限:30日まで
[5] その他の制限:プログラミング経験はほとんどないです。
         構造体の授業での宿題です。
         構造体はまだわかるのですがそれに苦手なポインタが加わるとどうにもわかりません。
         宜しくお願いします。

289 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 18:35:59 ]
>>278
codepad.org/P5qj1UBe

290 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:40:17 ]
>>287
ありがとうございました!

291 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 18:46:34 ]
>>288
codepad.org/boZTLkkn

292 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:49:03 ]
>>288
codepad.org/XnGsYKmG

293 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 18:59:13 ]
>>292
> scanf("%s",p[i].name);
buffer overrun...



294 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:07:57 ]
元がそうなってんだからそっちに文句つけろよw

295 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:15:50 ]
>>294
氏ねといわれたら氏ぬんですね、よくわかります。

296 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:19:18 ]
長すぎる文字列入れたら正しく動作しないのは>>291もかわらないしw

297 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:36:54 ]
>>295
原要求を無視したらテンプレの意味が(ry

298 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 19:50:14 ]
>>291 = >>293か?

299 名前: ◆QZaw55cn4c mailto:sage [2010/06/28(月) 20:05:36 ]
>>296
たしかにうまく処理できませんね。標準で入力バッファをクリアする方法はなんでしょうかね。

>>298
違います。

300 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 20:46:00 ]
[1] 授業単元:情報処理学
[2] 問題文(含コード&リンク):
例1は、3教科5人の生徒の合計得点を求めるプログラムである。
これを実行し、動作を説明せよ。さらに、教科毎の平均点、
生徒毎の平均点を計算して表示できるようにプログラムを修正し、
結果とともに示せ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月30日

よろしくお願いします。

301 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 20:47:24 ]
>>300の例1
例1
#include<stdio.h>
#define KAMOKU 3
#define SEITO 5
int main()
{
int ten[][KAMOKU]={{ 80, 65, 70},
{ 70, 55, 75},
{ 75, 80, 70},
{ 80, 60, 60},
{ 90, 80, 75}};
int j,k,s;
printf(“ kokugo sugaku eigo gokei\n”);
printf(“------------------------------------------------\n”);
for (j=0;j<SEITO;j++) {
s=0;
for (k=0;k<KAMOKU;k++) {
printf(“%8d”,ten[j][k]);
s=s+ten[j][k];
}
printf(“%8d\n”,s);
}
return 0;
}


302 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:18:08 ]
>>300

> これを実行し、動作を説明せよ。
codepad.org/EfWyhSTD

> 教科毎の平均点、生徒毎の平均点を計算して表示できるようにプログラムを修正し、
結果とともに示せ。
codepad.org/9EYyajom

303 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:29:23 ]
[1] 授業単元:プログラミング演習
[2]問題文:長いので次のレスに書かせていただきます
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2010年6月29日17:00まで
[5] その他の制限:特に制限はありませんが、なるべく簡単な文法で書いていただけるとありがたいです




304 名前:303 mailto:sage [2010/06/28(月) 21:31:23 ]
次レスにまとめても規制されてしまったので・・・・
[2] 問題文:[1],[2]のプログラムを作成せよ。
      [1]多項式の次数nと係数a,(i=0,1・・・・,n)を入力し、
その多項式f(x)=a_nx^2+a_n-1x^n-1+・・・+a_2x^2+a_1x+a_0と
       その微分の多項式f'(x)を出力するプログラムを作成せよ。
       ただし、nはint型,a_iはdouble型の配列とせよ。n<100と仮定してよい。
       以下に入力例を示す
n=5
a5=1
a4=0
a3=2
a2=0
a1=3
a0=0
f(x)=x^5+2x^3+3x
f'(x)=5x^4+6x^2+3

305 名前:303 mailto:sage [2010/06/28(月) 21:32:41 ]
続きです
[2]以下の要領で、平均点、分散、標準偏差、最小値、最大値を求めるプログラム
        を作成せよ。
        (1)100人分の点数(int型)を記憶するための配列変数aを定義する
        (2)人数(int型)を記憶するための変数nを定義する。
        (3)人数nの初期値を0とする
        (4)点数をa[n]に入力する
        (5)点数が負の数ならば終了する
        (6)人数nを1つ増やす
        (7)全員の点数を空白で区切って表示する。例:83 52 64
        (8)平均点を出力する
        (9)分散を出力する
        (10)標準偏差を出力する
        (11)最小値を出力する
        (12)最大値を出力する
        (13)(4)へ戻る
        ※標準ライブラリのsqrt関数を使わずニュートン法によって平方根を
         求める自作の関数を使え。
        ※平均点、分散、標準偏差を求めるとき、キャスト演算子を用いてdouble型へ
         型変換せよ。
多いですがどうぞよろしくお願いします

306 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 21:38:30 ]
>>210
やっと規制が解けた。
3000!の桁数=9131なので、#define文を変えればもう少しいけるはず。
codepad.org/6S9o89xk

307 名前:デフォルトの名無しさん [2010/06/28(月) 21:56:52 ]
>>273もどなたかお願いいたしますm(_ _)m

308 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:29:23 ]
>>304
#include <stdio.h>

int main(void)
{
    int n, i;
    double a_i[100], a;
    printf("n=");
    scanf("%d", &n);
    for (i = n; i >= 0; i--) {
printf("a%d=", i);
scanf("%lf", &a);
a_i[i] = a;
    }
    printf("f(x)=");
    for (i = n; i >= 0; i--)
if (a_i[i])
    printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i);
    printf("\n");

    for (i = 0; i < n; i++)
a_i[i] = a_i[i + 1] * (i + 1);
    a_i[n] = 0;

    printf("f'(x)=");
    for (i = n; i >= 0; i--)
if (a_i[i])
    printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i);
    printf("\n");

    return 0;
}

309 名前:デフォルトの名無しさん [2010/06/28(月) 22:44:17 ]
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):○×ゲームのプログラムにコンピュータとの対戦をつける。
コンピュータと対戦するかしないかは選べれるようにする事。
codepad.org/wfwkEbVP
[3] 環境
 [3.1] OS:WinodwsVista
 [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
 [3.3] 言語:C++
[4] 期限:6/29(火)AM9時まで
[5] その他の制限:C++触り始めたばかりです。インライン関数は使わない方向でお願いします。

実行結果としてはこんな感じにしてほしいです。
1Pと2Pとの交互に対戦しますか?
1Pとコンピュータとの対戦にしますか?
プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください:
こんな感じで選らばせて対戦できるようにしてほしいです。

※1Pのマスは○でコンピュータのマスは×でお願いします。

大変だと思いますがどうかお願いします。

310 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:46:03 ]
礼も言わないヤツか

311 名前:デフォルトの名無しさん [2010/06/28(月) 22:57:23 ]
>>310
あの時は本当にありがとうございました。

本当に申し訳ありません。

312 名前:デフォルトの名無しさん [2010/06/28(月) 23:57:38 ]
>>258
おい!同じ大学だw

>>259
助かりました ありがとうございます。

313 名前:303 mailto:sage [2010/06/29(火) 00:11:24 ]
>>308 ありがとうございます。
   どなたか>>305に書いてある[2]の方もよろしくお願いします



314 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 00:15:38 ]
>>273
codepad.org/IKYypUgq

とりあえずここまで。
昇級については仕様を推測できなかった。
他の機能については適当に推測した。
リファクタリングし甲斐があると思うから,がんがれ。


315 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 01:09:05 ]
>>312
char型ならまとめ方一緒だったの?
俺的には全然違ったw

316 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 02:14:34 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10760.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月1日

よろしくお願い致します。

317 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:05:10 ]
[1] 授業単元:プログラミング言語
[2] # リストに格納したデータを,データファイルとは
別のファイル(出力先ファイルとよぶ)に書き出す.
データファイルと出力先ファイルのファイル名は
コマンドライン引数として指定する
下記テンプレートを使用すること
codepad.org/d9CUmfae
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月2日
お願います

318 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:13:02 ]
言い忘れてました
>>310以外の方にお願いします

319 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 04:59:18 ]
windows+gccな人って具体的にどういう環境なんだろ。

320 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 05:05:35 ]
CygwinかMinGWだろ

321 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 05:22:04 ]
そういう予想じゃなくてさ。
出題者がちゃんと理解してるのかどうかを知りたいという意味合いも含んでた。
実はteratermでredhatにつないでました、とかありえない話じゃないと思うのよ。

322 名前:デフォルトの名無しさん [2010/06/29(火) 09:22:02 ]
>>316
#include <stdio.h>
#define NN 3
#define loop(i,NN) for (i = 0; i < NN; i++)

int
main(void)
{
    int i, j, seq[3], n;
    char s[NN][100];

    loop(i, NN) {
        printf("入力文字列[%d]=", i);
        scanf("%s", s[i]);
    }
    printf("繋ぎ合わせる順番を入力してください\n");
    loop(i, NN) {
        scanf("%d", &n);
        seq[i] = n;
    }
    printf("結果 -> ");
    loop(i, NN) {
        loop(j, NN) {
            if (seq[j] == i + 1)
                printf("%s", s[j]);
        }
    }

    return 0;
}

323 名前:デフォルトの名無しさん [2010/06/29(火) 10:06:01 ]
>>316の2番目
#include <stdio.h>
#include <string.h>
#define NN 100
#define loop(i,NN) for (i = 0; i < NN; i++)

int
main(void)
{
    int i = 0, linemax = 0, cnt = 0;
    char s[NN][100], *p, str[] = "abc";

    while (fgets(s[i++], 100, stdin) != NULL)
        linemax++;
    loop(i, linemax) {
        for (p = s[i]; *p; p++) {
            if (!strncmp(p, str, 3))
                cnt++;
        }
    }
    printf("#%s is %d\n", str, cnt);

    return 0;
}



324 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 11:49:06 ]
>>322-323さん

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

325 名前:デフォルトの名無しさん [2010/06/29(火) 12:48:44 ]
画像上のある点からy=ax^2の2次曲線を赤線で描画しなさい(画像 320×240)


(x,y)=(160,120)
a=1/3のとき
a=1/2のとき
a=1のとき
a=2のとき

描画範囲
yの範囲は40
xの範囲は60

326 名前:224 ◆C/HmxiIl0o mailto:sage [2010/06/29(火) 14:19:04 ]
>>283
すみません。折角作っていただいたのですが、データが>>242の通り、
x=1.0〜4.0,y=1/(1*25*x*x)でそれぞれ31個づつあります。
何度もお願いするのも申し訳ないと思い自分で拡張を試みたのですが、
Interpolationの部分が出来ませんでした。

startが最大で31まで増えるため、そのまま入れてもオーバーフローしてしまい、
かといって、iやjを消してdata[0][start]のような記述をするとnanになってしまいます。

何度も申し訳ないのですが、forの部分だけで構いませんので、作っていただけないでしょうか?

327 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 14:30:53 ]
>>325
こっちにも投げたか

328 名前:278 mailto:sage [2010/06/29(火) 15:09:56 ]
>>289 ありがとうございます。

329 名前:デフォルトの名無しさん [2010/06/29(火) 15:11:29 ]
>>305
codepad.org/LiIrNdPK

330 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 15:17:38 ]
>>324>>328
はい

331 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 17:26:05 ]
[1] 授業単元:一般情報処理
[2] 問題文(含コード&リンク):次のような動作をするプログラムを作成せよ。
               配列内のデータの最小値を返す。int min() 配列内のデータの最大値を返す。int max()
配列内のデータの平均値を返す。double mean() 配列内のデータの標準偏差を返す。double stdev()
ただしmain関数は次のものを使うこと。
               int main(void){
int a[15]={81,36,45,67,73,98,62,56,77,61,65,70,25,51,18};
printf("min=%d\n",min(15,a));
printf("max=%d\n",max(15,a));
printf("average=%lf\n",mean(15,a));
printf("standard deviation=%lf\n",stdev(15,a));
return 0; }
さらに、配列a[]の各要素の偏差値を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:[2010年06月30日18:30まで]
[5] 文章中の示された関数・main関数を使ってください
よろしくお願いしますm(_ _)m

332 名前:デフォルトの名無しさん [2010/06/29(火) 18:18:32 ]
>>226です。
>>227を作って頂いたのですが、main関数の部分も含め、プログラム全体を作って頂きたいです。

333 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 18:34:36 ]
>>331
codepad.org/hXydfZTX



334 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 18:53:33 ]
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):16×16サイズの白黒ビットマップ画像を読み込んで、
                 上下反転させた画像をビットマップで保存するプログラムを作成。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限: ビットマップのファイル構造は少し勉強しました。
           画像のデータを取り込むところと処理を行う部分がよくわかりません。
           RGB値、malloc、Loadbmp等わかりやすく載ってるHPや本があれば教えてください。
           よろしくお願いします。

試しに書いてみた上下反転プログラム → codepad.org/4iL9agVw
反転させたい画像を作ったプログラム → codepad.org/8z8MCdZG

335 名前:デフォルトの名無しさん [2010/06/29(火) 21:00:18 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):ファイルに保存された会員情報を指定された項目をキーとしてソートするプログラムを作成する.
出力形式は,入力データと同じ,つまり1行に1人分のデータを格納し,各項目間はカンマで区切るものとする.
また,ソート済みのデータはファイルではなく標準出力に出力するものとする.
整数型のデータについては数値として,文字列型のデータについては大文字/小文字を区別せずにソートをすること.
ソートアルゴリズムはこれまでの演習で使用したもの,していないものに関わらず,何を用いてもよい.

また,会員数は最大で20,000人と仮定してもよい.

会員情報の入ったファイルのファイル名,キーとなる項目,正順か逆順かの指定はプログラム実行時の引数として与える.第一引数が会員情報の入ったファイル名,第二引数が項目番号(表1参照),第三引数がソート方法(0なら昇順,1なら降順)とする.

表1: データ型 項目名 項目番号 型
会員ID 1 整数(int)
姓 2 文字列(最大で50文字)
名 3 文字列(最大で50文字)
年齢 4 整数(int)
州 5 文字列(最大で50文字)
郡 6 文字列(最大で50文字)


[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2010年6月30日20:00まで
[5] その他の制限: 特になし


よろしくお願いします。

336 名前:デフォルトの名無しさん [2010/06/29(火) 21:25:33 ]
>>291
>>292
ありがとうございました。
返事送れて申し訳ありません。
書き込んでから20分とはおどろきました

337 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 21:44:13 ]
>>302
ありがとうございます!

338 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 21:46:47 ]
>>317
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10762.txt

339 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 22:55:19 ]
>>335
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10763.txt

340 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 23:39:54 ]
[1] 授業単元: プログラミング開発基礎
[2] 問題文 複数ありますのでこちらで
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10764.txt
[3] 環境
[3.1] OS:(Windows 
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:なし
問題数が多くて恐縮なのですがなにとぞよろしくお願いします

341 名前:デフォルトの名無しさん [2010/06/29(火) 23:56:51 ]
>>339
ありがとうございます!

342 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 00:18:49 ]
>>340
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10766.txt

343 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 00:29:31 ]
>>326
テンプレ嫁



344 名前:デフォルトの名無しさん [2010/06/30(水) 01:09:50 ]
>>335
ピキーーーン・・・麻呂のク(ry

345 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 02:44:25 ]
>>342ありがとうございますこれでどうどうと学校にいけます

346 名前:331 mailto:sage [2010/06/30(水) 08:20:03 ]
>>333
ありがとうございます。
ただ、コンパイルしてみたところ

/tmp/ccSDhYV6.o: In function `stdev':
test.c:(.text+0x18a): undefined reference to `sqrt'
collect2: ld returned 1 exit status

このようにエラーがでてしまうのですがどうすればコンパイルできるでしょうか?

347 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 09:03:08 ]
-lm

348 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 10:48:45 ]
>>346
次回からは、undefined reference to `sqrt'  でGoogle検索するとかして、自分で調べてくれ。
対策は、コンパイル時に -lm オプションを付ける。
例:gcc -lm test.c

349 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 11:11:24 ]
>>346
もう一度言うぞ。
対策は、コンパイル時に -lm オプションを付ける。
わかったな。

350 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 12:19:22 ]
こういうときどういう反応したらいいのだろうか
とりあえず、笑えばいいのかな

351 名前:デフォルトの名無しさん [2010/06/30(水) 14:36:15 ]
>>350
最近、IDなしのスレに粘着してるなりすましのかまってちゃんが居るから、本人とは限らない。
「俺が348だ、349は偽物だ」と言っても確認出来ないからね。
という訳で、不快に思ったらスルーが一番。

352 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 16:17:43 ]
そうすることにするよ

353 名前:335 [2010/06/30(水) 16:32:15 ]
何度もすみません。
せっかく解いていただいたのですが、「昇順か降順でしかソートできない」として、もう一度お願い致します。




354 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 18:16:33 ]
>>325
>>1
環境によってはとけるかもしれません。(最近apiを勉強しているところでして)
テンプレートを書くときには条件をもっと詳しく書いてください。
・描画範囲の意味がよくわかりません。±40, ±60 ということですか?
・y = ax^2 を平行移動したものを描画すればいいのでしょうか?
・(x, y) = (160, 120) というのは頂点なんですか?
以上よろしくお願いいたします。

355 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 18:33:45 ]
>>354
mixiに似たような質問あったけど(既に削除済み)
背景が真黒のbmpに白で線を書き込みたいようだよ。

356 名前:346 mailto:sage [2010/06/30(水) 18:48:06 ]
本当にすみませんでした;
回答してくださった方、ありがとうございます
無事にコンパイルできました


357 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 19:55:42 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10767.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visua lstadio
 [3.3] 言語:C
[4] 期限:2010年7月1日

よろしくお願いします

358 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 20:27:38 ]
>>357
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10769.txt

359 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 20:56:55 ]
>>358
すいません、こちらの環境(Microsoft Visual Studio 2008)ではエラーが2つ出て動きませんでした。

360 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:12:49 ]
>>353
もともと昇順か降順かしかないんじゃ?
コードもascとdescしかないように見えるし。
どこが気に入らないのか具体的に

361 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:13:19 ]
>358, 359
確保したら開放ぐらいきちんと書けとも思ったがまぁいいや
C言語としてコンパイルすればエラーはでない
VS2008のclは使ったことないので、どんなスイッチ指定すればいいか知らないが、原因はC++ではvoid *から他のポインタへの暗黙の型変換がされないから
C++のソースコードとしてコンパイルしたければ、malloc()の戻り値を適当にキャストすれば良い

362 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:13:32 ]
>>359
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10770.txt

これでどうですか?
VisualStudio使ったことないもので、すいません。

363 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:13:53 ]
>>359
エラーの内容はなんとなく予想できるけど、コンパイルの仕方が悪い。
具体的には/Tcスイッチをつけるといいと思う



364 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:21:01 ]
>>358
>>361
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10771.txt

365 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 21:36:58 ]
>>364
49行目、と思わんでもないけど別にいいや、としたいところだけど
学生はしっかりやっておいた方がいいのかもな、とも。。。

366 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 22:05:33 ]
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク):
登録番号 (int no) と名前 (char *name) と年齢 (int age) を含む構造体 person 型のポインタ変数を宣言し、登録人数分だけの動的メモリ確保をせよ。そして、データをファイルから入力せよ。
ファイルの形式は、先頭に登録する人物とし、そのあとに人数分のデータを登録番号、名前、年齢の順に書いていく(下の例を参照。登録番号は入力順に1,2,3,4,5,・・・とする。そして、入力した全員データを表示せよ。)

(ファイルの例)
3
1 田中 20
2 大田 40
3 井上 35
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:2010年7月2日まで
[5] その他の制限:無し

よろしくお願いします

367 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 22:42:19 ]
>>366
>>357といっしょ

368 名前: ◆QZaw55cn4c mailto:sage [2010/06/30(水) 23:23:11 ]
>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?

369 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 01:48:52 ]
>>338
ありがとうございます

370 名前:デフォルトの名無しさん [2010/07/01(木) 06:24:44 ]
>>368
麻呂じゃないが、勘違いしたのはお前だろ?しつこいぞw
麻呂の偽者との区別もつかず、いつまでも相手が勘違いしたと思い込んでろ。
自分が勘違いしてた癖にw 資料をきちっと読めよ、青二才。
あと、お前の言っている事は本当に意味不明。

371 名前:デフォルトの名無しさん [2010/07/01(木) 06:25:39 ]
>>368
そ・れ・か・ら、getchar() と EOF について理解できましたか?
どうですか?成長しましたか?

372 名前:デフォルトの名無しさん [2010/07/01(木) 06:28:28 ]
>>368
ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html
> int getchar(void);
getchar() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?

373 名前:デフォルトの名無しさん [2010/07/01(木) 06:32:27 ]
>>368
EOF がマクロで定義されているであることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?



374 名前:デフォルトの名無しさん [2010/07/01(木) 06:39:34 ]
>>368
あぁ、あなた、結局ここで質問された課題に答えられず麻呂に負けたヘタレですか?w
いつまでも根に持つ陰険。お前の人生はクソだなw
一生こんなスレでネット弁慶をやってろ。お前が見ず知らずの人間に偉そうな態度で
上から目線で優越感を感じられるのは、せいぜいこのスレだけなんだろ?実に寂しい人生だ。

【話題】2ちゃんねる・ネット弁慶には困ったものだ 自らが叩きやすそうな対象を見つけたとたん、ムキになっ
tsushima.2ch.net/test/read.cgi/newsplus/1277889771/
↑まさにお前のことだなw それも自分の勘違いだと気づかずに、揚げ足取りをしたつもりのバカ

375 名前:デフォルトの名無しさん [2010/07/01(木) 06:41:27 ]
>>368
戻り値がどうしたって?リストの課題で麻呂のクソースは付き物。
しかし、今回は提示される事はなかった。それが何を意味しているか分かるか?
麻呂はもう居ないってことだ。俺は何となく麻呂のクソースが出るか扇動してみたが
出なかったしw

376 名前:デフォルトの名無しさん [2010/07/01(木) 06:42:01 ]
>>368
お前のおつむは成長していないようだなw 精神レベルもw

377 名前:デフォルトの名無しさん [2010/07/01(木) 06:45:23 ]
>>368
そろそろお前が痛いって気づけよ

378 名前:デフォルトの名無しさん [2010/07/01(木) 06:46:19 ]
>>368
悔しかったらお前オリジナルのリストのソースを書いて公表しろよ
他人のパクリしか出来ないコピーキャット

379 名前:デフォルトの名無しさん [2010/07/01(木) 06:48:06 ]
>>368
ん〜〜、みっともない。このスレに何しに来てんの?分かりきった答えの問題を
解き続けるだけがお前の人生?このスレから離れて自分の人生を見つめ直したら?
どうせいつかは死ぬ限り有る時間を生きている人生だぞ?
こんな場所で揉めるのに使った時間も、過去のものとなるがそれが未来に役に立つ
有意義な時間になるとは思えないね。

380 名前:デフォルトの名無しさん [2010/07/01(木) 06:50:01 ]
>>368
戻り値が重要ではないとは言わないが、いきなりそんなことを書くお前は何者だ?
麻呂がいつそんなことを言ったか、ログを参照してくれ。それが麻呂だという証拠も付けてな。
こんなIDも出ない、本人がトリップを使ってない騙りが可能な場所で、見えない敵と
戦い続ける恥ずかしい戦士めw

381 名前:デフォルトの名無しさん [2010/07/01(木) 06:56:00 ]
>>368
> そろそろ理解していただきたいのですが。
相手を茶化すにしても痛すぎ。そんな態度だから周りから干されて孤立したんだろ。
言動が陰険過ぎ。いつまでも理解していないみたいな勘違いとか、粘着していることも含めて
人間として終わってる。

382 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 06:59:49 ]
368は人気者?

383 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 07:02:14 ]
>>382
この間隔で書き込まれているのを見ていると、
一人で騒いでいるだけのようにしか見えない



384 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 07:25:34 ]
あいかわらずですね。

385 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 07:37:16 ]
見えない敵と戦っているんだろう
プログラマなら魔法で戦えよ

386 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 07:47:46 ]
>>383
一度に多数の人間が同時に書き込んだ、というのを演出したいらしい。

387 名前:デフォルトの名無しさん [2010/07/01(木) 12:11:13 ]
vectorをリファレンス引数で扱う意味を教えてください

388 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 12:53:33 ]
>>387
コピーするコストがもったいないから
コピーだと中身に変更を加えても呼び出し元に影響を与えられないから

389 名前:デフォルトの名無しさん [2010/07/01(木) 12:59:28 ]
>>388
つまり、コピーだとその後代入などの手間がかかるため
リファレンス引数で扱い、その手間を省くということですね
ありがとうございます。

390 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 14:36:20 ]
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10772.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Vc
 [3.3] 言語: C++
[4] 期限:2010年07月10日まで
[5] その他の制限:なし

391 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 14:50:54 ]
>>383
その感覚じゃ連続投稿に引っかかることくらい、ここの住人なら知っているだろう。
バイバイさるさんにも引っかかる可能性はある。

392 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:39:51 ]
>>391
抜け道はいくらでもある。

393 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/07/01(木) 21:27:49 ]
>>390
void main (笑)



394 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:29:53 ]
>>389
コンストラクタ・デストラクタのコストを避けるのが主目的。

395 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:32:19 ]
>>379
なに、ほんの手遊びですよ。ちょろちょろっと書いてみるのもまた楽しいものです。

396 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:35:24 ]
>>378
>>250
オリジナルの多桁演算ライブラリです。いつのまにか乗算・除算もできてしまいました。
効率は悪いのですが、それでもわりに重宝しています。

397 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:44:08 ]
トリップ付けずに代弁するとか、大人しくトイレで大便しといれw

398 名前:デフォルトの名無しさん [2010/07/01(木) 21:53:17 ]
>>396
横レスで失礼。除算をどうやったのか興味があります。

399 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:59:57 ]
>>398
2進法での除算そのものです。ちょっとググってみたところでは homepage2.nifty.com/ttoyoshima/Computer/Multiply.htm など。
多桁数を1bit ずつシフトさせながら引き算できるときは引き算をする、という感じです、言葉にすれば。
>>250 も、折をみて、剰余を出力させるように改良しなくては。

400 名前:デフォルトの名無しさん [2010/07/01(木) 22:25:54 ]
>>399
なるほど。繰り返しで処理出来るからハードウェア化も可能、というのが理解出来ました。
有難う御座います。

401 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 22:39:01 ]
>>400
手近な環境でマシン語を習得し、割り算を実装することができれば、そのマシン語は卒業したといってもいいと思います。
x86 がいいでしょうが、casl でもできます。

402 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 22:54:25 ]
>>401
CASLには虎馬が...ww

403 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 23:05:13 ]
>>390の前半
// ◎ソースコード
#include <stdio.h>
#define N 10
#define ID   "/0000/"
#define NAME "/やまだ/"

static int fib(int n)
{
    int r;
    if (n <= 2)
r = 1;
    else
r = fib(n - 1) + fib(n - 2);
    return r;
}

//-----------------------------------------------------
int main(void)
{
    int i;
    printf("%s %s\n\n", ID, NAME);
    for (i = 1; i <= N; i++) {
printf("F%2d = %7d\n", i, fib(i));
    }
    return 0;
}




404 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 23:09:06 ]
>>403
ついでに改造版。
#include <stdio.h>
#define N 40
#define ID   "/0000/"
#define NAME "/やまだ/"
#define fib(n) fib2(n,1,1)
static int fib2(int n, int a, int b)
{
    return (n <= 2) ? b : fib2(n - 1, b, a + b);
}

//-----------------------------------------------------
int main(void)
{
    int i;
    printf("%s %s\n\n", ID, NAME);
    for (i = 1; i <= N; i++) {
printf("F%2d = %7d\n", i, fib(i));
    }
    return 0;
}


405 名前:デフォルトの名無しさん [2010/07/01(木) 23:15:15 ]
摂氏から華氏,及び華氏から摂氏に換算する関数を作成して、
main関数でキーボードから温度とその値が摂氏であるか華氏であるかを
入力し,摂氏ならば華氏に,華氏ならば摂氏に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
なお出力は main関数で行うこと。

406 名前:デフォルトの名無しさん [2010/07/01(木) 23:29:03 ]
#include <stdio.h>
float power(float x,float y)
{
float ans;
char i;

ans=0;

if((char)y='C'){
ans=9/5 * x + 32;
y='摂氏';
i='華氏';
}else{
ans=5/9 * (x - 32) ;
y='華氏';
i='摂氏';
}
return ans;
}


407 名前:デフォルトの名無しさん [2010/07/01(木) 23:29:54 ]
int main(void)
{
float a;
char b,i;

a=0;

printf("温度を入力してください: ");
scanf("%f", &a);

printf("%d度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ",(int)a);
scanf("%s", &b);
printf("\n");

printf("%c %8.3f = %c %8.3f\n",b, a, i, CelsiusFahrenheit(a, b));
return 0;
}

ここまでできたんですが、出力がうまくいきません。
誰か教えてください。

408 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 00:20:43 ]
>>405
#include <stdio.h>

float CelsiusFahrenheit(float a, char *b)
{    return (*b == 'C') ? (a - 32) * 5 / 9 : a * 9 / 5 + 32;}

int main(void){
    float a = 0;
    char b[2];

    printf("温度を入力してください: ");
    scanf("%f", &a);
    printf("%g度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ", a);
    scanf("%s", b);
    b[1] = (*b == 'C') ? 'F' : 'C';
    printf("%5.1f °%c = %5.1f °%c\n",
            a, b[0], CelsiusFahrenheit(a, b), b[1]);

    return 0;
}

409 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 02:19:37 ]
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
極座標(r,θ)の値を入力すると、直交座標(x,y)に変換するプログラムを作成せよ。
但し,θの値はdegree(度)で入力すること。また、πの値は逆三角関数(arctan(x))を使って計算をすること。
[3] 環境
 [3.1] OS:WinodwsVista
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:7/5(月)迄
[5] その他の制限:特になし

よろしくお願いします

410 名前:デフォルトの名無しさん [2010/07/02(金) 02:42:39 ]
[1] 授業単元:アルゴリズム論
[2] 問題文(含コード&リンク):分離連作法と外部ハッシュ法の性能比較
[3] 環境
 [3.1] OS:windows XP
 [3.2] gcc
 [3.3] 言語:C++
[4] 期限:2010年7月10日00:00
[5] その他の制限: 特になし

411 名前: ◆QZaw55cn4c mailto:sage [2010/07/02(金) 05:55:41 ]
>>409
codepad.org/Md5TRgzM

412 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 07:22:59 ]
>>403
ありがとうございます
よろしければ演習2のほうもお願いします・・・

413 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 12:17:45 ]
>>411
ありがとうございます!



414 名前:デフォルトの名無しさん [2010/07/02(金) 12:56:28 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
・ ファイル名はキーボードから入力する。
・ 1〜4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
・1〜4以外の数値が入力されたら再入力させること。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:cc
 [3.3] 言語:C言語
[4] 期限:7月5日

415 名前:デフォルトの名無しさん [2010/07/02(金) 17:27:31 ]
もう麻呂のク(ryで十分じゃんw

416 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 18:26:04 ]
>>415
コードを出したり引っ込めたりしなければね。

417 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 19:01:48 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
正の整数を引数とし、その階乗(n!)を計算して戻り値とする関数
factを作成して動作を確認せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月5日

よろしくお願いします。

418 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 19:04:56 ]
>>417
>>211, >>250, >>306 あたりを参考にしてはいかが?

419 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 19:43:49 ]
>>417
codepad.org/vNVYL56R

420 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:35:07 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
実数値(xとする)と正の実数値(yとする)を引数としてx^yを戻り値とする
関数mypowを作成し、プログラムリストと実行結果を示せ。
ただし、xとyについてはmain関数でキーボードから入力するようにし、
出力結果としては、mypow関数の計算結果と数学関数pow関数の結果を
両方表示するようにせよ。また、mypow関数のプロトタイプ宣言も行うこと。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月5日

よろしくお願いします。


421 名前:デフォルトの名無しさん [2010/07/02(金) 20:35:15 ]
[1] 授業単元: プログラム言語
[2] 問題文(含コード&リンク):
10 人の成績を入力し,その順位を成績と共に表示したい。以下の考え方に基づいた
プログラムを作成せよ。
1 ?
2次元配列s[10][2] を用意する。
2 ?
i=0〜9 のfor 文を用いてs[i][0] に成績を入力する。
3 ?
s[0][0] とs[j][0],j=0〜9 を比較し,s[0][0] より大きい数値の個数n を数え
 る。その個数+1 が成績順位になるので,s[0][1] にn+1 を代入する。
4 ?
同様の操作をs[i][0],i=0〜9 に対して行なえば,その成績順位がs[i][1] とし
 て求められるので,あとは成績と共に表示すればよい。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C++
[4] 期限: 2010年7月6日まで
[5] その他の制限: main関数
よろしくお願いします

422 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 20:39:26 ]
>>419
ありがとうございます!

423 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 21:27:52 ]
>>408
遅れてすいません。ありがとうございます!



424 名前:デフォルトの名無しさん [2010/07/02(金) 21:44:46 ]
>>416
しつけぇw

425 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 22:02:53 ]
>>423ですが、何度もすいません。

>>408

80度が「摂氏」なら "C" を「華氏」なら "F" を入力してください: F

日本基準 80.0 度 = 欧米基準 176.0 度

と出力できるようにはできませんか?

426 名前: ◆QZaw55cn4c mailto:sage [2010/07/02(金) 22:47:29 ]
>>420
codepad.org/7QLze0b2
もっとまじめにmypow()を定義しなければならないのでしたら、その旨ご返事ください。考え直します。

427 名前: ◆QZaw55cn4c mailto:sage [2010/07/02(金) 23:06:15 ]
>>421
codepad.org/BowfSESU
VC6 でコンパイルできなかったらごめんなさい。

428 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:47:19 ]
>>424
質問でも宿題でもないのにあげている、という点で同一人間っぽいですね。
いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。

429 名前: ◆QZaw55cn4c mailto:sage [2010/07/03(土) 00:49:16 ]
>>390
codepad.org/dxhtULqH

430 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 00:56:52 ]
>>425
計算違いがありましたので修正しました。

#include <stdio.h>
#define c1(c) (c=='C')?"日本基準":"欧米基準"

float CelsiusFahrenheit(float a, char *b)
{    return (*b == 'F') ? (a - 32) * 5 / 9 : a * 9 / 5 + 32;}

int main(void)
{
    float a = 0;
    char b[1];

    printf("温度を入力してください: ");
    scanf("%f", &a);

    printf("%g度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ", a);
    scanf("%s", b);
    printf("%s %5.1f 度 = %s %5.1f 度\n",
   c1(*b), a, c1('C' + 'F' - *b), CelsiusFahrenheit(a, b));

    return 0;
}

431 名前:デフォルトの名無しさん [2010/07/03(土) 06:36:17 ]
>>428
し・つ・こ・い。このスレに何しに来てんの?基地外。自分のレスを読み返せ。
浮いてるぞ

432 名前:デフォルトの名無しさん [2010/07/03(土) 06:43:38 ]
>>428
> いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。
自己紹介しているし、このバカw
お前の揚げ足取り、反論はどれも論点がズレている。もう少し自分の方が
勘違いをしてコミュ力がないと気づけよ、お子ちゃま。
で、fgetc()の戻り値なんて今更持ち出す池沼乙w

433 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 06:45:57 ]
>>234
よろしければお願いします



434 名前:バカ晒しage [2010/07/03(土) 06:48:26 ]
ageているからという理由で勘違いしているなら
ピエロのお前を晒し続けてやるよw
お前がこのスレに無関係な話を延々と見えない敵に噛み付いて
し始めているからきめぇつってんだよ。スレタイ読めや、文盲かてめぇは?

435 名前:いつまでもおつむは成長しないお子ちゃま [2010/07/03(土) 06:49:18 ]
368 名前: ◆QZaw55cn4c 投稿日:2010/06/30(水) 23:23:11
>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?

436 名前:見えない敵に噛み付く自分こそ自意識過剰のスレチバカ [2010/07/03(土) 06:50:06 ]
428 名前:デフォルトの名無しさん 投稿日:2010/07/02(金) 23:47:19
>>424
質問でも宿題でもないのにあげている、という点で同一人間っぽいですね。
いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。

437 名前:デフォルトの名無しさん [2010/07/03(土) 06:53:32 ]
>>368 = >>428
EOF がマクロで定義されていることを、そろそろ理解していただきたいのですが。
どうですか?精神レベルとプログラミングの技能は成長しましたか?

ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html
> int getchar(void);
getchar() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?


438 名前:433=234 mailto:sage [2010/07/03(土) 07:10:46 ]
ちなみに期限のほうですが、来週の月曜日にまで延長して貰えました

439 名前:デフォルトの名無しさん [2010/07/03(土) 07:18:56 ]
このスレがどんなスレか、そろそろ理解していただきたいのですが?
スレタイも>>1も読めないアホ

440 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 12:50:16 ]
内容:
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10774.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:7/6まで
[5] その他の制限:特になし
2問ありますがよろしくお願いします

441 名前:デフォルトの名無しさん [2010/07/03(土) 13:27:17 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
UNIXコマンドのgrep(指定したファイルを読み込み、指定した文字列とマッチする行を出力するコマンド)と同じ動作をするプログラムを実装しなさい。
ただし、オプションなどの副次的な機能はつけなくてもよい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月5日まで
[5] その他の制限:とくにありません。よろしくお願いします。

442 名前: ◆QZaw55cn4c mailto:sage [2010/07/03(土) 15:41:24 ]
>>441
codepad.org/dQt9ehKW

443 名前:334 [2010/07/03(土) 17:20:02 ]
codepad.org/gKSA4OIw

コンパイルが上手く行ったので実行したらゴミができた
タイミングよく救急車のサイレンがきこえてきた 死にたいw

(gdb) run
Starting program: /cygdrive/c/works/1/rev/rev
[New thread 2376.0x258]
[New thread 2376.0xbf0]
6 [main] rev 2376 exception::handle: Exception: STATUS_ACCESS_VIOLATION
3713 [main] rev 2376 open_stackdumpfile: Dumping stack trace to rev.exe.stack
dump

Program received signal SIGSEGV, Segmentation fault.
0x611203f8 in _fread_r () from /usr/bin/cygwin1.dll



444 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 17:26:03 ]
>>443
画像開く前から画像の幅と高さがわかるとかどんなエスパーだよバカ

445 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 17:29:08 ]
ワロタ

446 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 19:06:49 ]
>>426
ありがとうございます。

447 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 19:44:18 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
例を修正し、double型の配列変数に格納されている値の
平均値を求める関数aveを作成せよ。また、aveもdouble型とする。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月5日


448 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 19:46:04 ]
>>447の例は以下の通りです。よろしくお願いします。

#include<stdio.h>
#define N 10
int sum(int num[])
{
int n, s=0;

for (n=0;n<N;n++)
s+=num[n];

return 0;
}

int main()
{
int aa[N], bb;
/* 配列変数aaに値を代入 */

bb = sum(aa);
printf(“sum=%d\n”,bb);

return 0;
}


449 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 20:06:46 ]
>>447
#include<stdio.h>
#define N 10
double sum(double num[])
{
int n;
double s=0.0;
for (n=0;n<N;n++)
s+=num[n];
return s;
}

int main()
{
int i;
double aa[N], bb;
/* 配列変数aaに値を代入 値は適当*/
for (i=0;i<N;i++)
aa[i]=i*2.5;
bb = sum(aa);
printf("sum=%f\n", bb);
return 0;
}


450 名前: ◆GmgU93SCyE mailto:sage [2010/07/03(土) 20:08:55 ]
>>447
#include <stdio.h>
#define N 10

double ave( const double arr[] )
{
int i;
double total = 0;
for ( i=0; i<N; ++i )
total += arr[i];

return total/N;
}

int main()
{
const double arr[N] = { 1.23, 9.87, 5.94, 0.157, 7.2, 1.23, 9.87, 5.94, 0.157, 7.2 };
printf( "average = %f", ave(arr) );
return 0;
}


451 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 20:47:22 ]
>>408
ありがとうございます!

452 名前:デフォルトの名無しさん [2010/07/03(土) 20:52:37 ]

[1] c言語活用:
[2] 例を改造して、ガウス関数に関する折れ線グラフにしなさい。
codepad.org/bsUmakKX
[3] 環境
 [3.1] OS : Linux
 [3.2] コンバイラ名 : gcc
 [3.3] 言語 : C
[4] 期限: 7月 5日まで

例をガウス関数で定義するところまでは自力でできましたが、
グラフが点集合でしか表せません。
現在のX座標の点と隣のX座標の点を直線で結ぶために2組の座標の組
(x1, y1, disp_x1, disp_y1),
(x2, y2, disp_x2, disp_y2) を用意するとうまくいくそうですが
どうしてもわかりませんでした。
御助力お願いします。

453 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 21:42:14 ]
>>452
handy.h とはなんでしょうか?
あと、X Window ?



454 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 22:01:38 ]
>>390
誰かコレの演習2お願いしますっ

455 名前: ◆QZaw55cn4c mailto:sage [2010/07/03(土) 22:35:14 ]
>>390
>>454
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10777.txt

>>431
宿題しにきていますが、なにか?

>>432
べつに当たり前のことをいってるだけですけどね。でも、当時話題になったが fgetc() ではなくて getchar() マクロや EOF だっただなんて、よくご存知ですね。やっぱり当事者だったんですね。つれた、つれた。

>>434
そういいながらも sage で投稿できないところなんか、末期的としかいわざるを得ないでしょうね。一度 sage で投稿してごらんなさい?

まあ一匹の自意識障害者をあぶりだすことができたようで、満足しています。

456 名前: ◆QZaw55cn4c mailto:sage [2010/07/04(日) 00:21:30 ]
>>390
>>454
訂正します。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10779.txt

457 名前:デフォルトの名無しさん [2010/07/04(日) 00:31:44 ]
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
以下のプログラムに、下に示す二つの関数を実装し、組み込みなさい。
ファイル中に保存するデータはアスキー形式でも、バイナリ形式でもどちらでも構わないものとする。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10778.txt
・構造体Employee型のデータが順に保存されているファイルからデータを読み込む関数。
・作成したデータをファイルに書き出す関数。
例えば、構造体Employeeを下に示すものと同じ定義にしたとする。
この構造体に従ったASCII形式のデータベースファイルを読み込み、社員の追加や、給与の変更をした後、同様なデータベースファイルとして保存できるようにしなさい(もちろん、バイナリ形式のファイルにしても構わない)。
[構造体Employeeの例]
typedef struct {
char name[16];
int age;
int salary;
} Employee;

[データベースファイルの例]
TANAKA 32 620
SUZUKI 25 500
CHIBA 35 650
NAKAMURA 50 1000
IIDA 45 800

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月5日まで
[5] その他の制限:特にありません。よろしくお願いします。



458 名前:457 mailto:sage [2010/07/04(日) 00:43:11 ]
>>459
ありがとうございます。

459 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 00:50:36 ]
どういたしまして

460 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:02:03 ]
>>456
ありがとうございます、助かりました

461 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:03:27 ]
1] 授業単元: プログラミング実験
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10780.zip
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C言語
[4] 期限: ([2010年07月05日22:00まで]
[5] その他の制限: よろしくお願いします!

462 名前:デフォルトの名無しさん [2010/07/04(日) 01:03:42 ]
>>455
精神障害者だろ、お前?いつまでも昔の(自分の勘違いのせいで起こった論争)を引き摺るとか。
気持ち悪い。このスレ、お前のオナニースレじゃないんだが?周りを見ろよ。
日頃、現実世界でまともに相手にされていないのがバレバレだぞ。

463 名前:デフォルトの名無しさん [2010/07/04(日) 01:05:26 ]
>>1
> 気に入らない質問やその他の発言はスルーの方向で。
最初の1行も読めないとか、日本人かも疑わしいわ。
ageられているのはお前みたいなキモイ奴を晒しageされていると気づけよ。
このスレにsageルールはないけど?



464 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:15:35 ]
ID希望

465 名前:精神障害者アスペ君の恥ずかしいレス [2010/07/04(日) 01:15:35 ]
368 名前: ◆QZaw55cn4c 投稿日:2010/06/30(水) 23:23:11
>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?

466 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:23:04 ]
どなたか教えてください。ずっと考えてたけど、答えがわかりませんorz。

<標準関数>文字列と削除文字列を入力し、文字列中から削除文字列を削除しなさい。
※配列の使用は2つだけ。
例) 文字列入力→ABCDEFAABCDABC
   削除文字列→ABC
   結果文字列→DEFAD

どなたか教えてください、お願いします。

467 名前:デフォルトの名無しさん [2010/07/04(日) 01:35:50 ]
IDが表示されない、だから相手が特定できないから自分にレスした奴を
虱潰しに煽る事で炙り出そうって魂胆だろ。一生見えない敵と戦うぞ、こいつw

468 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 02:00:45 ]
>>467
今来産業の俺にもう少し分かりやすく

469 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 02:05:50 ]
>>466
#include <stdio.h>
#include <string.h>

int main(void)
{
char source[] = "ABCDEFAABCDABC";
char target[] = "ABC";

size_t l = strlen(target);
char *p;

puts(source);
puts(target);

while (p = strstr(source, target)) {
while (p[0] = p[l]) {
p++;
}
}

puts(source);

return 0;
}


470 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 02:06:11 ]
麻呂のクソースを超えるクソースは出てこない、間違いない

471 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 02:21:25 ]
>>469
※配列の使用は2つだけ。
って言われてるけど

472 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 02:35:20 ]
>>471
はあ?確保してる配列は2つだけだろうが
脳みそヒヨコかよ

473 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 11:33:13 ]
>>449
「ave」という文字がないのですがこれでいいんですかね?



474 名前:デフォルトの名無しさん [2010/07/04(日) 14:29:58 ]
>>453

handy.h はHandyGraphic という
グラフィックスライブラリを使うことを意味しています。
また学校のパソコンなのでわかりませんがおそらく
X Windowかと思われます。いいかげんですみません。

明日提出なのでよろしければ、どなたかよろしくお願いします。

475 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 14:41:34 ]
[1] 授業単元:プログラミング
[2]問題文:
ファイルseiseki.txt から氏名と点数を読み込んで、成績順に並べ替え、結果を画
面に表示するプログラムを作成せよ。
・氏名は2次元配列、点数は1次元配列に格納する。
・ データの並べ替えには単純挿入法、単純選択法またはバブルソートを使用する。
・ 文字列 x[]と文字列y[]の入れ替えは、文字列操作関数strcpy を用いて行う。
strcpy(z,x); strcpy(x,y); strcpy(y,z);
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: ([2010年07月06日0:00まで]

この問題が解ける方はいらっしゃいますでしょうか。

476 名前: ◆QZaw55cn4c mailto:sage [2010/07/04(日) 15:11:12 ]
>>475
codepad.org/1E7wG9Fa

>>463
>>1 を読めないのはおまえさんも同じ。私?いちおう宿題といてますけどね。
なによりこれだけの過剰反応を示していること自体が、つれた、つれた、と判断されてもしかたのないことでは?
さらしあげ?専用ブラウザを使っている私にはなんのことだか。

>>467
それはおまえさんのことですがな。

477 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:21:19 ]
>>469
よみにくいから段下げをつけてくれ

478 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:24:06 ]
>>473
>>450

479 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 15:36:07 ]
>>477
ついてるよ
メモ帳にコピペしてみ

480 名前:デフォルトの名無しさん [2010/07/04(日) 15:41:04 ]
>>457もお願いします。

481 名前:デフォルトの名無しさん [2010/07/04(日) 16:04:42 ]
[1] 授業単元:方程式の解
[2] 問題文(含コード&リンク):方程式exp(-x^2/2)=0.5の解を求める
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:Cygwin
 [3.3] 言語:C
[4] 期限:7/9
[5] その他の制限:
double f(double x);
int main(void){
double x,min_f,solution;
min_f=1e100;
for(x=0;x<=3;x+=dx){
printf("%e,%e\n",f,min_f);
if(fabs(f(x))<min_f){
solution=x;
min_f=fabs(f(x));
}}
printf("f(%e)=%e\n",solution,min_f);
return 0; }
double f(double x){
double y;
y=exp(-x*x/2)-0.5;
return y; }
と組んで実行できたんですが、なぜmin_fを最初に10^100とするのでしょうか?
なんか私の感覚的には10^-100な気がするのですが・・・
この部分の解説お願いします。

482 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 16:20:47 ]
>>479
確かにソースをみるとついてますな。

483 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 16:44:30 ]
>>481
範囲をdx刻みで分割して、|f(x)|が最小となるxを求める。
min_fは暫定の最小。もしあるxで|f(x)|<min_fなら、min_fを更新する。
dxに対してmin_fを小さくしすぎると、|f(x)|<min_fなxがない可能性がある。



484 名前:デフォルトの名無しさん [2010/07/04(日) 20:06:11 ]
>>476
うわっ、お前マジキモイ・・・そのままトリップを付けたまま書き込めよ。
必死に自分の不満、苛立ちを露にする長文を書くしバカ丸出しw

485 名前:デフォルトの名無しさん [2010/07/04(日) 20:06:54 ]
>>476
> それはおまえさんのことですがな。
いや、お前のことだよ。第一、お前はトリップを付けているが
お前にレスした奴が特定の一人とは限らないだろ?

486 名前:デフォルトの名無しさん [2010/07/04(日) 20:07:19 ]
>>476
見えない敵と戦う必死な戦士、かっちょわりぃ〜w

487 名前:デフォルトの名無しさん [2010/07/04(日) 20:08:06 ]
>>476
>>1
>あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
読めませんか?相手をいちいち自分の勘違いで挑発するお前が一番幼稚

488 名前:デフォルトの名無しさん [2010/07/04(日) 20:08:28 ]
>>476 日本語でおk

489 名前:デフォルトの名無しさん [2010/07/04(日) 20:09:12 ]
>>476
自分はさっぱり分かりません、みたいなしらばっくれた書き込みをして
自分がした 勘違い を認めないとか、頭おかしいぞw
自覚が無いなら責任が問われる社会では通用しません。

490 名前:デフォルトの名無しさん [2010/07/04(日) 20:09:55 ]
>>476
最後の1行がみっともないです ><;
早くこのスレから出て行くか、大人になって下さい ><;
ねぇ、まだ社会に出て働いた事の無いお子ちゃまw

491 名前:デフォルトの名無しさん [2010/07/04(日) 20:10:37 ]
>>476
やっぱりお前が>>1の注意書きを読めてないじゃんw

492 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:11:40 ]
>>476
そろそろ、自分の苛立ちを見えない敵にぶつけないで良いよ。
今後無駄なレスをしても、スルーされるだけだからw
で、お前は俺を麻呂と思っているんだろ?麻呂があれから
騙りもあり、しばらく来ていなかったことも知らないとは・・・
そうやって見えない敵に噛み付いてなさいw

493 名前:デフォルトの名無しさん [2010/07/04(日) 20:14:39 ]
>>476 の書き込み全てが恥ずかしい。このスレに何しに来てんですか?
他人にお前こそと言う前に、議論するスレは他にありますので、そちらでやって下さい。
トリップ付けてまでバカ晒すなよ、ガキw



494 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:16:42 ]
>>493
お前はコテハンかトリップつけろクズ

495 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:28:46 ]
>>469
解答ありがとうございます。もしよろしかったら、使用する標準関数は、strncmp(),strcpy(),strlen()で書いてもらえないでしょうか?

496 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:47:34 ]
少しも勉強しないんだな。それでいいのか若者

497 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 20:56:45 ]
>>476
ありがとうございます。助かりました。

498 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 21:23:46 ]
>>495
codepad.org/T48qu3kj

499 名前:481 [2010/07/04(日) 21:37:31 ]
>>483
どうもありがとうございます。納得できました。
ifの条件文に引っかからなくなる直前のxがsolutionとなる、という認識で大丈夫ですか?

500 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 23:15:12 ]
>>478
ありがとうございます。

501 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 23:29:02 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
次式の値を返す関数を作成せよ。
f(x)=e^{-x} cos(2πx)
その関数を用いて0≦x≦3の間で0.1刻みで計算し、結果をリダイレクトで
ファイルに記録せよ。その結果をgnuplotでグラフにして示せ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月6日

よろしくお願いします。

502 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 00:35:56 ]
だれか>>440お願いします。

503 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 04:14:21 ]
>>440
【1】 (1) return ; (2) shift_down(heap, s, 2*s, n);
【2】 (2) swap(&heap[1], &heap[i]); (2) shift_down(heap, 1, 2, i-1);

酷いコードだ。
教育だからこそ、スマートなコードにしてくれることを切に願う。



504 名前:デフォルトの名無しさん [2010/07/05(月) 05:16:09 ]
[1]授業単元:プログラミング演習
[2]問題文;離散探索木(26進)と外部ハッシュ法の比較(探索関数)
 キー:   文字列
 使用ファイル: wordE100KR.dat
 上記ファイルを読み込み、通常の配列に格納する。
 この配列から要素を読み込み、分離連鎖法および離散探索木(26進)を生成する。
 格納された要素と同一の要素集合すなわち、配列に格納された用語集合に対して、1万語毎に探索を行い、照合回数、および探索時間を測定する。
 結果として、照合回数について20個のデータ(2×10)、同様に探索時間について20個のデータ(2×10)が得られる。
 これらのデータをExcelに格納し、表、グラフを作成し、分析せよ。
[3]環境
[3.1]OS;windowsXP
[3.2]コンパイラ名とバージョン:gcc
[3.3] 言語:C/C++どちらでも可
[4]期限;7月8日

使用ファイルはrg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htmにあります。
丸投げで申し訳ありません。よろしくお願いします。

505 名前:デフォルトの名無しさん [2010/07/05(月) 06:49:51 ]
すみません、>>457もお願いします。

506 名前:デフォルトの名無しさん [2010/07/05(月) 12:32:23 ]
[1] 授業単元: C言語プログラミング
[2] 問題文メモリや実行時間の許容範囲内の、最大完全数、最大友愛数、および最大婚約数を算出プログラムを作成
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2003
[3.3] C言語・C++
[4] 期限: ([2010年7月6日12:00まで

よろしくお願いします。



507 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 16:52:56 ]
>>461おねがいします

508 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 17:01:57 ]
>>507
zipはめんどくさいので放置。
できれば1レス、最低でもWEBだけで確認できる様に書きなおせ。

509 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 17:03:46 ]
>>506
> 許容範囲内
とは誰が許容する範囲内なんだ。
具体的に書きなおせ。

510 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 17:50:36 ]
最大友愛数、最大婚約数…

511 名前: ◆QZaw55cn4c mailto:sage [2010/07/05(月) 18:29:52 ]
>>501
codepad.org/GosjtHA7

512 名前:デフォルトの名無しさん mailto:age [2010/07/05(月) 20:24:06 ]
>>507
問題文の

確率指定 p

って何?>

513 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:28:32 ]
あれだけISOの標準スタイルについて述べられていたのに未だに
int main() 笑 の奴がいるとかw



514 名前: ◆QZaw55cn4c mailto:sage [2010/07/05(月) 20:28:45 ]
>>457
>>505
codepad.org/7YlltRQG

515 名前: ◆QZaw55cn4c mailto:sage [2010/07/05(月) 20:34:19 ]
>>513
pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。

ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。

516 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:36:40 ]
>>513
void main()でも別に構わんぞ
コンパイル通ればいいんだよ

517 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:45:25 ]
>>516
これには異論があり。
個人的には、int main() でコンパイルできる環境で、main() が引数をかえさない、という main() 側の都合で void main() と宣言するのには疑問がある。

518 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:51:48 ]
ま〜たこの話題かw
ちょっと前にもどっかのスレで泥沼化してただろう?
だれか過去ログはっておやり。

519 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:53:34 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 四則演算と平方根を求める事が出来る電卓プログラムを作成せよ.
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2010年7月7日22:00頃まで
[5] その他の制限: 数学関数等は利用不可,関数ライブラリは標準入出力ライブラリ stdio.h のみを利用可

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10781.txt

math.h等の利用が出来ないため平方根はニュートン法により求めるプログラムを使用したいと思っています.
URLに記載した二つのプログラムを組み合わせて上記の条件を満たすような電卓プログラムを作りたいのですが,
私なりに見よう見まねで組み合わせて見たのですが,知識が足りず平方根を求める動作が働きません.
根本的に間違っている可能性もありますが,どなたか修正点を教えて頂けると幸いです.
よろしくお願いいたします.




520 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:55:25 ]
あのな、isoだかなんだか知らんが、そんなもんただの標準だろ。
守らなきゃいけないルールじゃない。
単にコンパイラやソースが標準に沿っていますということを表明できるだけの意味しかないんだよ。
この世にはmainが存在しないプログラムをCで書くケースだって腐るほどあるし、
エントリ関数がWinMain()になっている世界で最も普及したコンパイラだってあるんだぞ。

521 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:58:04 ]
>>518
このスレの先々代(135)、3月〜4月にかけて宿題が欠乏し宿題解き人が暇になったために泥沼化した。
結論としては、規格の上では void main() も int main() も合法だったかと。

522 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 21:01:57 ]
>>521
情報トンクス! ていうかこのスレだったかw

523 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 21:30:58 ]
[1] 授業単元: Visual Studio 入門
[2] 問題文 3問ほどあるのでリンクを
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10782.txt
[3] 環境
[3.1] OS:Windowsvista 
[3.2] Microsoft Visual Studio 2008
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
問題が多いのですがひとつお助けください



524 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:14:53 ]
>>523
gccでの確認になりますが。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10784.txt

525 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:23:17 ]
x(1)、 x(2)、・・・とaは2000次元ベクトルとします。

N
Σ || x(n)-a || / N   || ・|| はノルム。

を高速に計算する方法わかりますか。

526 名前: ◆QZaw55cn4c mailto:sage [2010/07/05(月) 22:30:05 ]
>>523
codepad.org/QpeyhPJI
codepad.org/zWPlVycN
codepad.org/ysQFpPnA

527 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:32:14 ]
X=(x, y) Y=(z, w) A=(a ,b) とすると、

||X-A|| + ||Y-A|| = SQRT( (x-a)^2 + (y-b)^2 ) + SQRT( (z-a)^2 + (w-b)^2 )

を高速で計算したいという訳なんです。

2000次元だと、かけ算とSQRTが相当あって時間掛かりますが。
短縮する方法ありますか。

528 名前:527 mailto:sage [2010/07/05(月) 22:35:42 ]
面倒なので、

||X-A||  = |x-a| + |y-b| と定義してしまうか。

すると、 |x-a| + |y-b| + |z-a| + |w-b| を求めるだけで簡単。

529 名前: ◆QZaw55cn4c mailto:sage [2010/07/05(月) 23:23:14 ]
>>519
codepad.org/LQ8UIyYT
キー入力の具合はこれでいいですか?

530 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:24:23 ]
◆QZaw55cn4c はもりもりがんばってるなぁ。
定期的に叩かれるみたいだけどがんばれ。

531 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:29:13 ]
やってることは怠け者の成績を上げてやることだけどなw

532 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:31:38 ]
>>530
叩いてもらえる、というのは、コードをみてくださっている、というありがたい反応ですから、ウェルカムです。
ちょっと前の、あいかわらず頭の変な奴にかかわってしまったのは失敗ですが、スルーすることにしました。
でも今日はおやすみなさいです。

533 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:51:43 ]
>>532
じゃあたまにのぞいて気になるとこあったらレスすることにするよ。
っても地力ぼちぼちありそうに見えるんで、重箱の隅ぐらいしか突っ込めないかも。



534 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:53:45 ]
[1] 授業単元: Visual Studio 入門
[2] 問題 半乱順列の関数作成
[3] 環境 指定なし
[3.1] OS:Windowsvista 
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
半乱順列の関数を作ってください!お願いします!!

535 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:54:08 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):data.txtに書かれている氏名と成績を読み込み、氏名を2次元配列、成績を1次元配列に格納せよ。
[3] 環境
 [3.1] OS:Ubuntu 10.4
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:7/7まで
[5] その他の制限:
data.txtの中身は
aoyama 36
oomura 42
sugiyama 50
morita 14

となっております。

536 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 00:06:46 ]
>>535
>>476 は読み込んだあとソートしていますが、そのソート部分を削ればご所望のコードになるかと。

537 名前:535 mailto:sage [2010/07/06(火) 00:18:01 ]
>>536
似た問題があったのですね。ありがとうございました。

538 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 16:11:53 ]
>>529
お答え頂きありがとうございます。
動作は申し分無いのですがこのプログラムだとstdio.h以外にmath.h等の関数ライブラリが見られます。
すみませんがstdio .h のみで動作することを前提でお願いしたいと思います。
また、授業では本当に基礎的な内容のみしか扱っておらず、ネットや本を見て勉強している段階ですので、なるべく基本的な分かりやすい形でプログラムを組んでいただけたら幸いです。

539 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 16:15:25 ]
このとき、穏やかな表情の>>529の脳裏に、
慇懃無礼、という言葉が頭をよぎったという。

540 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 16:17:37 ]
>>538
せっかく答えてくれた人に喧嘩売るのはやめようね

541 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 16:48:46 ]
>>538
ソースよく読めよ

542 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 16:53:32 ]
はいはい、もう答えなくて結構です

543 名前:デフォルトの名無しさん [2010/07/06(火) 17:44:44 ]
int main() 笑 なんて使う奴はスルーしてヨシ!



544 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:04:56 ]
538です。

せっかく解答をして下さったにも関わらず、不快感を与える表現をしてしまいすみませんでした。
if 0とend ifの意味を理解していませんでした。
こちらの理解不足で本当に失礼しました。



545 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:17:15 ]
◆QZaw55cn4c は古い人間でしょ?コードの書き方でバレバレ

546 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:26:10 ]
>>545
どの辺が古いの?

547 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:54:59 ]
>>546
無理しないで良いよ、爺ちゃん。

548 名前:デフォルトの名無しさん [2010/07/06(火) 19:01:50 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):

#include <stdio.h>typedef struct { char *fname, *mname, *lname; int byear, dyear;
} writer_t;

writer_t writers[] = { {"Edward", "Elmer", "Smith", 1890, 1965},
{"Robert", "Anson", "Heinlein", 1907, 1988},
{"Arthur", "Charles", "Clarke", 1917, 2008},
{"Isaac", " ", "Asimov", 1920, 1992},
{"Raymond", "Douglas", "Bradbury", 1920, 0}};
int main(void){ int i; char s[10];
for (i = 0 ; i < sizeof(writers)/sizeof(writer_t) ; i++){
printf("%c. ", writers[i].fname);
if (writers[i].mname[0] != "\0") {
printf("%c. %-10s", writers[i].mname[0], writers[i].lname); }
else { printf("%-13s", writers[i].lname); }
printf("%4s - ", writers[i].byear);
if (dyear > 0){ printf("%4s", writers[i].dyear); } printf("\n"); } return 0;}
上記のエラープログラムを正しく直す。
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2010年7月28日20:00まで
[5] その他の制限: なるべく簡潔に(新しい変数を定義したり)お願いします。見づらいですが改行が多いと怒られるので・・

549 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:09:55 ]
お・に・い・ちゃ・ん、じゃなくて、お・じ・い・ちゃ・ん ♥

550 名前: ◆QZaw55cn4c mailto:sage [2010/07/06(火) 19:11:24 ]
>>538
#if 0
から
#endif
までの間を削除してください。
わかりやすさについては、これが限界です。

551 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:12:43 ]
>>543
pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。

ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。

552 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:15:17 ]
>>545
確かに古いといわれたらそうかもしれません。
func(a, b)
int a;
char *b;
{
...
return 0;
}
と書いていたころもありました。
setq とか car とか cdr とかを乱発していたこともあります。

553 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:17:21 ]
>>494
お前がコテハンかトリップつけろ塵



554 名前: ◆QZaw55cn4c mailto:sage [2010/07/06(火) 19:18:17 ]
>>544
いえいえ、全然。

555 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:22:15 ]
>>553-554
コテハン付けたり、外したり大変だなw

556 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:24:57 ]
>>555
専用ブラウザを使っていますから、簡単ですよ。

557 名前:デフォルトの名無しさん [2010/07/06(火) 19:31:06 ]
>>547
>setq とか car とか cdr とかを乱発していたこともあります。
横レスだけど、そのネタはww
[H|T] -> とか言い出さないようにw>>552

まあ、コード書けない煽りは無視で行きましょう。

558 名前: ◆GmgU93SCyE mailto:sage [2010/07/06(火) 19:34:15 ]
>>548
codepad.org/Wng6j1dW

559 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:35:47 ]
>>552
その頃は
return (0);
と書いてたりしないか?

560 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:37:06 ]
>>557
処理系をCで書く、という解説本を集めているんです。でも、いまんところ2冊しかみつかっていません。
やっぱり、そんな本は売れないんですかね。おもしろいんですけれどね。

561 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:38:44 ]
>>559
しまった!

562 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:39:30 ]
>>560
訳されてない本が沢山あるよ

563 名前:デフォルトの名無しさん [2010/07/06(火) 19:51:18 ]
>>560,562
Cに限らず、技術資料とかサンプルは英語の方が多いよね。
Google codeもよく使ったなあ。



564 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:51:18 ]
お爺ちゃんお口くちゃ〜い、クソースなんて書くなよw

565 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:53:06 ]
>>562
洋書まではあさる実力がない‥‥‥。でもながめてみたいもの。
著者名でよければ教えてください。

566 名前:デフォルトの名無しさん [2010/07/06(火) 20:06:48 ]
>>558
ありがとうございました〜

567 名前:523 mailto:sage [2010/07/06(火) 20:42:03 ]
>>526
>>524
回答ありがとうございます。
 まさか一日かからずに終わらせてくれるとは思いませんでした。


568 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 21:09:00 ]
C言語と関係無いじゃん。
OSやコンパイラを作るって事だろ。

569 名前:デフォルトの名無しさん [2010/07/06(火) 22:11:38 ]
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラム。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
入力された金額が負の場合は、「Error」を出力するようにします。
そこで、下のようなプログラムを書いたのですが、うまく起動しません。
このプログラムを、上の出力例のように出力してくれるように書きなおしてくれませんか??
下のプログラムでは合計枚数を出力する部分しか書いてません。
ちなみに、再帰を使ってプログラミングお願いします。

570 名前:デフォルトの名無しさん [2010/07/06(火) 22:14:36 ]
569質問者のプログラム(続き)
#include<stdio.h>
int coinfunc(int *C, int k, int M){

/* *C・・・コインの種類の配列(小さい順にソートされているとする)
M・・・支払う金額/
k・・・コインの種類の数 */

if(M == 0){ return(0); }
else if(M < 0){ return(Error); }
else{
int min = 100000;
int i;
for(i = 0; i <= k - 1; i++){
int tmp = coinfunc(C, k, M - C[i]);
if(tmp < min){ min = tmp; }
}
return(min + 1);
}
}
int main(){
int C[5] = {1,5,8,10,15};
int k = 5;
int M;
printf("支払う金額M=");
scanf("%d",&M);
printf("%d\n",coinfunc(C, k, M));
}


571 名前: ◆QZaw55cn4c mailto:sage [2010/07/06(火) 22:36:25 ]
>>506
codepad.org/dYsw25Et
許容範囲云々は考えていません。

572 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 22:38:55 ]
明日までにある宿題あるんですけど頼めますかね?
すぐ貼ります

573 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 22:40:44 ]
頼めます



574 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 22:42:55 ]
>>572
ここまでは作った
#include<stdio.h>

int main(void)
{
return 0;
}

575 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 22:54:22 ]
[1] 授業単元:プログラミング演習
[2] 問題文:このプログラムを拡張して、個人ごと平均点と科目ごとの平均点を小数点以下1桁まで
表示できるプログラムを作成せよ。

#include <stdio.h>
main()
{
int score[4][3]:
int total[4]:
int i , j ;
for (i = 0; i < 4; i++) {
total[i] = 0 ;
printf("No . %d\n" , i + 1);
for( j = 0 ; j < 3; j++) {
printf("score %d : " , j + 1) ;
scanf("%d", &score[i][j]);
total[i] += score[i][j];
}
}
printf("\n");
printf("No . | s1 s2 s3 | total\n");
printf("---+----------+------\n");
for ( i = 0; i < 4; i++) {
printf("%2d | " , i + 1) ;
for( j = 0; j < 3; j++) {
printf("%3d " , score[i][j]);
}
printf("| %4d\n" , total[i]) ;
}
}

576 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 22:56:36 ]
連投すみません
[3]環境
 Windows、VC6.0、C
[4]期限
 7月7日
[5]配列まで

よろしくお願いします。

577 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:36:32 ]
>>570 再帰は駄目だな、100円でいっぱいいっぱいだw
#include<stdio.h>
#include <limits.h>

int coinfunc(int *c, int k, int m)
{
    int i, tmp, min = INT_MAX;
    if (m == 0)
        return 0;
    else if (m < 0)
        return -1;
    for (i = 0; i < k; i++) {
        tmp = coinfunc(c, k, m - c[i]);
        if (tmp < 0)
            continue;
        else if (tmp < min)
            min = tmp;
    }
    return min + 1;
}

int main(void)
{
    int m, c[] = {1, 5, 8, 10, 15};
    while (scanf("%d", &m) != 1)
        scanf("%*[^\n]");
    printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
    return 0;
}

578 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:38:48 ]
低額は計算済みにしておいて、再帰使えば。

579 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:45:42 ]
結局イタチごっこだろ
じゃあ非再帰ならいいのかと思って試したら、100000000円くらいが限界だった(メモリ確保できず)
割り算で出来る貨幣制度にしろってこった

580 名前:デフォルトの名無しさん [2010/07/06(火) 23:50:38 ]
コインに関する問題への解答ありがとうございます。
>>577さんありがとうございます。
>>579さん、非再帰の場合のプログラムをのせてください。お願いします。

581 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:53:49 ]
>>580
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10789.c

582 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:56:49 ]
最終的には、低額の計算だけにできるだろ。
基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。

583 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:59:29 ]
予想では、コインの最小公倍数になるまでは最大値のコインで支払って
最小公倍数を下回る所になったら、組み合わせを考慮する。



584 名前:デフォルトの名無しさん [2010/07/07(水) 00:01:27 ]
<<579さん、ありがとうございます。
ここで、第2問↓↓
今も上で議論されていますが、このプログラム(<<577)の効率の解析をしてください。
「ある重要な演算1つに注目し、その実行回数(最悪の入力時における)を、入力
サイズを表すパラメータの関数として表す。最終的にはT(n,...)=O(n^2×・・・)
のような評価式を求めてください。」できれば、その式を求める過程をお願いします。

585 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:06:30 ]
>>568
ええ、lisp 用として。

586 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:07:51 ]
O(1)だろ。

587 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:08:29 ]
>>582
確かにそれで大分削れそうだな

588 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:08:29 ]
>>575
分かる人これも頼みます

589 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:26:32 ]
>>583
#include<stdio.h>
#include<stdlib.h>
int gcd(int a, int b){ int c; while((c=a%b)) a=b, b=c; return b; }
int lcm(int a, int b){ return a/gcd(a, b)*b; }
void coin_func_r(int *result, int c[], int m, int n){
int i;
if(m<0 || c[0]<0 || (*result>0 && n>=*result)) return;
if(m==0){
if(*result<0 || *result>n) *result=n;
return;
}
for(i=0;c[i]>0;i++) coin_func_r(result, c+i, m-c[i], n+1);
}
int coin_func(int c[], int amount){
int i, lcm_all=1, result=-1, rest, c_max=1;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
rest=amount%lcm_all;
coin_func_r(&result, c, rest, 0);
return result+(amount-rest)/c_max;
}
int main(int argc, char *argv[]){
int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
if(argc==2) x=atoi(argv[1]);
result=coin_func(c, x);
printf("%d\n", result);
return 0;
}

590 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:36:26 ]
>>589
とてもいい感じだが、コインの最小公倍数の大きさに極めて依存

- int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
+ int c[]={777, 128, 100, 15, 10, 8, 5, 1, -1}, x=100, result=-1; // tekitou
として 100000をコマンドライン引数で与えると帰ってこねえ

最小公倍数よりも範囲を狭くする方法はありそうだけどなぁ

591 名前: ◆QZaw55cn4c mailto:sage [2010/07/07(水) 00:37:41 ]
>>575
codepad.org/VmHF0iio
表示具合の微調整はお願いいたします。

592 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:40:32 ]
>>591
ありがとうございます!
本当に助かりました。

593 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 01:07:22 ]
>>503
ありがとうございました!



594 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 01:58:42 ]
>>551
そこでも述べられているがそれTC2

595 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 02:06:02 ]
[1] 授業単元:プログラミング演習
[2]Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような
形式で表示するプログラムを作成せよ。

例 100 20 30 40と入力すれば
  | 100 20 | =3400
| 30 40 | と表示される

Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で
4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを
作成せよ。

[3]環境
 Windows、VC6.0、C
[4]期限
 7月8日
[5]配列よりちょっと前

Q.1に関してはできそうだったのですが、バーが表示されないために却下となってまいました。
皆さんにとっては大変簡単だと思いますがよろしくお願いします。
初心者ですみません。

596 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 02:10:06 ]
>>551
ちがう。そういうことじゃない。ISO、ANSI準拠はプログラムの開始、主体となる関数を
mainとし、引数がある時と無い時でどう記述するか、標準スタイルを提唱している。
ただし、それはあくまでも 標準スタイル であり、各自の環境によって準拠しなくても構わない。

597 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 02:12:37 ]
また、main関数の戻り値はint型とする。これは散々既出だから議論する必要なし。
自分はどうこうすると、根拠も無く意味も分からないスタイルを用いると
他者とコードをやり取りする場合は、弊害が起こるかもしれないが。
そもそも、ここでは個人的なやり取り、スタイルが通用するが
C言語は何も個人が私用で使うだけでなく、世界に通じて商業用としても
普通に用いられている。それは工業規格も同じ事。だから少しでも
幅広く通用するスタイル、規格というのが必要になる。
ちなみに、CDやDVDなどもISO準拠で世界で通用する方式、規格が使われている。

598 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 02:25:18 ]
さらに、C++では引数が無い場合は int main() としている。
あくまでも ANSI、ISO準拠の標準スタイルの話。個人的なスタイルには言及せず。

599 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 05:44:31 ]
>>590
最大のコインを選ぶか選ばないかのときだけやればいい。
777円が最大なら 777*2-1以上までは777円を選んでおいてokのはず。
一枚選べる最大価格は777*2-1円だからこの辺から調べる。

600 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 06:08:18 ]
コインが100円と99円としたとき。
297円 = 99*3円で100円を選ぶと失敗するから
599は間違えだな。
やっぱどのコインの倍数でもある最小公倍数がよさげか。

601 名前:デフォルトの名無しさん [2010/07/07(水) 12:20:52 ]
>>582
>最終的には、低額の計算だけにできるだろ。
>基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。

>>11を改造させてもらいました。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10790.c

602 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 13:24:29 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10791.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: ([2010年07月10日22:00まで]
[5] その他の制限: よろしくおねがいします!


603 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:23:20 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
10人の成績を入力し、その順位を成績と共に表示したい。以下の考えに基づいたプログラムを作成せよ。

1. 2次元配列s[10][2]を用意する。
2. i=0〜9のfor文を用いて、s[i][0]に成績入力する。
3. s[0][0]とs[j][0], j=0〜9を比較し、s[0][0]より大きい数値の個数nを考える。
  その個数+1が成績順位になるので、s[0][1]にn+1を代入する。
4. 同様の操作をs[i][0]にi=0〜9に対して行えば、その成績順位がs[i][1]として求められるので、
  あとは成績と共に表示すればいい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (VC 6.0)
 [3.3] 言語: C
[4] 期限: ([2010年07月9日15:00まで]
[5] その他の制限: 初心者で申し訳ないですが頼みます。



604 名前:デフォルトの名無しさん [2010/07/07(水) 15:25:25 ]
>>603
>>421,427

605 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:28:54 ]
>>604
おお同じ人がいたとはw
ありがとうございます!

606 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 17:49:16 ]
>>604
これC++用だからできなかったorz

607 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:00:51 ]
>>606
codepad.org/HReXj7Ky

608 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:15:29 ]
>>607
ありがとうございます。
感謝感謝です。

609 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:20:35 ]
>>595
暇ならでいいんでこれも頼みます

610 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:35:12 ]
>>609
Q2.
codepad.org/Nhl8WS7Q

611 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:42:57 ]
>>610
ありがとうございます。

612 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 19:14:20 ]
>>609
Q1
codepad.org/yXo3FhWm

613 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 19:26:52 ]
>>550
ありがとうございました。
プログラムをしっかり理解出来るようもっと知識を深めたいと思います!



614 名前:デフォルトの名無しさん [2010/07/07(水) 19:29:25 ]
>>612
ありがとうございます!
助かりました。

615 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 20:57:40 ]
>>612
重くて開かないですね

616 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 21:24:39 ]
見れました!

617 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 21:58:05 ]
独自のライブラリも悪くは無いが 標準ライブラリ で済むならそれでおk

618 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 22:39:34 ]
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
円形テンプレートマッチングのプログラムを作成せよ。

白い楕円が複数書いてあるBMP画像を読み込み(適当にペイントで作成)画像左下からラスタ走査し、円形テンプレートマッチングをするプログラムを作成せよ。
円形テンプレートはサイズA〜Bまで変化させ、一致率(円形テンプレートの円周上に一致する白画素と一致している数/円形テンプレート円周のプロット数、円形テンプレート内の黒画素に一致している黒画素数/円形テンプレート内の黒画素数)
上位5つを色を変えて描画せよ。

また、一致率上位5つの半径、一致率、座標(画像の左下をx=0、y=0とする)をdos窓上に標示せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C++
[4] 期限:2010年7月10日まで
[5] その他の制限:

よろしくお願いします

619 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 23:37:51 ]
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク):
問題1. 10進数1234を2進数で表示するプログラムを作成せよ。
問題2. 変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x) を作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Stduio 2008
 [3.3] 言語:C
[4] 期限:2010年7月9日まで
[5] その他の制限:無

よろしくお願いします


620 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 23:53:18 ]
#include <stdio.h>

int main()
{
int a, b, c, d;

scanf( "%d", &a );
scanf( "%d", &b );
scanf( "%d", &c );
scanf( "%d", &d );

int value= a*d - b*c;


printf( "| %d %d | =%d\n", a, b);
printf( "| %d %d |\n", c, d );

return 0;
}

エラー
z:\プログラミング演習\sample\sample\sample01c.c(12) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
cl.exe の実行エラー

どこを直せば良いのですか?

621 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 23:54:42 ]
#include <stdio.h>

int main()
{
int unit_price; // 単価
int num; // 個数

printf( "買う商品の単価: " );
scanf( "%d", &unit_price );

printf( "個数: " );
scanf( "%d", &num );

int total_price = unit_price * num;

// 小数を使うと誤差がでるので使わない
if ( num >= 20 )
total_price = total_price*6/10;
else if ( num >= 10 )
total_price = total_price*8/10;
else if ( num >= 5 )
total_price = total_price*9/10;

printf( "合計金額: %d", total_price );
}

エラー
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(14) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(18) : error C2065: 'total_price' : 定義されていない識別子です。
cl.exe の実行エラー

これもお願いします。

622 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 23:58:40 ]
>>621
変数の宣言場所をブロックの先頭に移動

623 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 23:59:05 ]
#include <stdio.h>
const int n = 10;
int main()
{
int i, j;
int s[n][2];
for (i = 0; i < n; i++) {
printf( "%d: ", i );
scanf( "%d", &s[i][0] );
}

for (i = 0; i < n; i++) {
s[i][1] = 0;
for (j = 0; j < n; j++) {
if (s[i][0] < s[j][0])
s[i][1]++;
}
s[i][1]++;
}
for (i = 0; i < n; i++)
printf( "s[%d]: %d\n", i, s[i][1] );
return 0;
}
/* end */

Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2057: 定数式が必要です。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2133: 's' : サイズが不明です。
cl.exe の実行エラー

すみませんこれも駄目でした。
お願いします。



624 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:01:53 ]
>>622
ありがとうございます。
しかし警告が出てしまいました。

Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'unit_price' に対して参照が行われました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'num' に対して参照が行われました。

625 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:18:06 ]
もしかして↓みたいな感じにしてない?

int unit_price; // 単価
int num; // 個数
int total_price = unit_price * num;


626 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:19:39 ]
>>625
なってます。
初心者ですみません。
正しいやり方教えてください。

627 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:27:29 ]
int unit_price; // 単価
int num; // 個数
int total_price;

printf( "買う商品の単価: " );
scanf( "%d", &unit_price );

printf( "個数: " );
scanf( "%d", &num );

total_price = unit_price * num;


628 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:30:08 ]
>>627
できました!
どうもありがとうございました。

629 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 00:34:44 ]
>>620
自己解決できました。

630 名前:デフォルトの名無しさん [2010/07/08(木) 02:22:04 ]
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (visual stadio 2008)
 [3.3] 言語: (C)
[4] 期限: [2010年07月08日13:00まで]
[5] その他の制限:ほんの入門級なので、if,for,whileぐらいしか使えません
あと配列は禁止

概要:数値を1つ(2〜9の数字)入力し、その個数分の"*"を1辺とする
完成図(*=★、空白=☆):

3を入力した場合
★★★
☆☆★
★★★

9を入力した場合
★★★★★★★★★
☆☆☆☆☆☆☆☆★
★★★★★★★☆★
★☆☆☆☆☆★☆★
★☆★★★☆★☆★
★☆★☆☆☆★☆★
★☆★★★★★☆★
★☆☆☆☆☆☆☆★
★★★★★★★★★

ーーーーーーーーーーーーーーーー
自分の考え方で進んでみましたが、ifの条件式の部分が分からなくて
助力を求めます

631 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 07:27:39 ]
>>630
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10793.c
奇数のみ出力できるモノで良ければ

632 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 10:01:13 ]
[1] 授業単元:C・プログラミング
[2] 問題文(含コード&リンク):
下記のGPA計算のプログラムを読み込んだ数値を入れる配列を指すポインタを用いて書き換えよ.ただし,配列は1次元配列を用い,また関数を使う必要はない.
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10794.txt
[3] 環境
 [3.1] Windows 7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2010年7月10日迄
よろしくお願いします。

633 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 10:51:09 ]
>>632
void input(int sei[][N2], int n);
↓↓↓↓
void input(int (*sei)[N2], int n);

for(i=0; i<n; i++){
↓↓↓↓
int (*p)[N2];
for (p = sei; p < sei + n; p++) {

sei[i][2]= 0;
↓↓↓↓
(*p)[2]= 0;



634 名前:デフォルトの名無しさん [2010/07/08(木) 11:18:09 ]
C言語プログラミング(再帰)について質問です。
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる

プログラムを書こうと思っています。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
そこで、下のようなプログラムを書いたのですが、合計枚数を出すまでしかできませんでした。
これを、それぞれのコインが何枚必要か出力するように書き換えてください!お願いします。

ソースコードは次の書き込みで。

635 名前:デフォルトの名無しさん [2010/07/08(木) 11:19:16 ]
#include<stdio.h>
#include<limits.h>

int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}

int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
printf("m=?\n");
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}

636 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 11:21:49 ]
23円は15と8じゃダメですか? ><;

637 名前:デフォルトの名無しさん [2010/07/08(木) 11:28:10 ]
>>636
すいません!!23円のときは15と8が最小ですね。。

638 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 11:57:17 ]
>>634
codepad.org/GanifMOO

639 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:01:39 ]
性帝トーマス△

640 名前:デフォルトの名無しさん [2010/07/08(木) 12:17:43 ]
>>638
33円 -> 15円1枚、10円1枚、8円1枚 が最小。

641 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:26:46 ]
1 #include<stdio.h>
2 #include<string.h>
3 typedef struct K{
4 char* name;
5 int tensuu;
6 }K;
7 int main(void)
8 {
9 FILE *fp;
10 char str[256];
11 char *p1,*p2;
12 int i,j,n;
13 double d,e,f;
14 int a[250];
15 char b[250][250];
16 int x;
17
18 if((fp=fopen("seiseki.txt","r"))==NULL){
19 printf("ファイルがありません\n");
20 return -1;
21 }else{
22 /*while(fgets(str,256,fp)!=NULL){
23 p1=strtok(str," ");
24 p2=strtok(NULL," ");
25 a.name=p1;
26 a.tensuu=atoi(p2);*/
27 i=0;
28 while(fscanf(fp,"%s %d",&b[i],&a[i])!=EOF){
29 i=i+1;



642 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:28:08 ]
30 }
31 n=i;
32 printf("----------入力データ------------\n");
33 for(i=0;i<n;i++){
34 printf("%s %d\n",b[i],a[i]);
35 }
36 for( j=0; j<n; j++){ /* 未処理データの先頭 */
37 for( i=1; i < n-j; i++){
38 if( a[i-1] < a[i] ){ /* 隣り合うデータの交換*/
39 x = a[i-1];
40 a[i-1] = a[i];
41 a[i] = x;
42
43 strcpy(str,b[i-1]);
44 strcpy(b[i-1],b[i]);
45 strcpy(b[i],str);
49 }
50 }
51 }
52
53 }
54 printf("----------出力データ------------\n");
55 for(i=0;i<n;i++){
56 printf("%s %d\n",b[i],a[i]);
57 }
58 fclose(fp);
59 return 1;
60 }
61


643 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:29:05 ]
ファイル処理の応用
switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
 ファイル名はキーボードから入力する。
 1〜4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
 1〜4以外の数値が入力されたら再入力させること。
 switch 文については教科書 56 ページを参照すること。





644 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:31:22 ]
1. 新規作成の実行例

********** 成績処理 ********* ← メニューの表示
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
← データ入力の誤り
処理番号を入力して下さい(1〜4):9
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):1
← ファイル名の入力
Input file name= abc.txt
name=?oota
tensuu=?10
oota 10
name=?yamada
tensuu=?50
yamada 50
name=? ← 入力の終了 Ctrl + D





645 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 12:33:27 ]
2. 追加作成の実行例

********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):2

name=?isida
tensuu=?90
isida 90
name=?torii
tensuu=?70
torii 70
name=? ← 入力の終了 Ctrl + D

3. 読み込みと表示の実行例

********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):3
Input file name= abc.txt
oota 10
yamada 50
isida 90
torii 70



646 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:25:35 ]
>>633
ありがとうございます。助かりました。


647 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:25:53 ]
>>641-645
>>1

648 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:29:13 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):
2〜9の数字を入力その数字に応じて図形を表示させる関数を作る
正方形 三角形 六角形 菱形 星 渦巻き
星と渦巻き以外できたからこの2つについて知りたい
例 7を入力したとき 左:渦 右:星

*******  *   *   *
         *    * *  *
*****  *     ***
*    *  *  *******
* ***  *     ***
*       *   *  *  *
*******  *   *   *
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: よくわからない 申し訳ないVS2008使ってる
 [3.3] 言語: C
[4] 期限: 2010年7月13日
[5] その他の制限: 配列は禁止

649 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:44:06 ]
>>648
ほー。配列は禁止。

printf("*******  *   *   * \n");
printf("         *    * *  * \n");
printf("*****  *     *** \n");
printf("*    *  *  ******* \n");
printf("* ***  *     *** \n");
printf("*       *   *  *  * \n");
printf("*******  *   *   * \n");
は禁止?

650 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:51:34 ]
面白いと思ってやってんの?

651 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 19:11:07 ]
>>648
渦巻きの偶数パターンが分かればコードが書けるんだが

652 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 22:56:04 ]
>634
ってさ、たとえば 36 のときみたいに解が複数あるときはどうすんの?
15,15,5,1 の4枚と、10,10,8,8 の4枚。

653 名前:デフォルトの名無しさん [2010/07/08(木) 23:06:15 ]
>>630
ありがとうございます
助かりました



654 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:20:25 ]
>>653
いえいえ

655 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:32:53 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

以下の仕様に従って,分数の四則演算を行うプログラムを作成せよ。
[仕様1] 以下のような構造体を定義し,分数のデータ構造に利用すること。
struct fraction{
int parent; /* 分母(denominator) */
int child; /* 分子(numerator) */
};
[仕様2] 以下の実行結果となるようなプログラムを作成せよ。
プログラムの実行結果↓
1つ目の分数を入力して下さい。
3/4 ←キーボードより入力
2つ目の分数を入力して下さい。
1/4 ←キーボードより入力
演算方法(1.加算,2.減算,3.乗算,4.除算)を入力して下さい。
2 ←キーボードより入力
3/4 - 1/4 = 1/2
計算結果は約分をして表示

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 7月9日
[5] その他の制限:ポインタ変数、データ構造まで習いました
よろしくお願いします

656 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:41:48 ]
>>651
特に指示はないからこっちに任せただと思う
だから左上からスタートで

********
          *
****** *
*      * *
* *    * *
* ****  *
*         *
********

>>649
ifかswitchでそれをつくろうかと思ったがさすがにふざけてると思われそうなのでやめた

657 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:51:27 ]
>>656
日本語でおk。偶数パターンを出力してからものを言え

658 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 00:02:35 ]
>>657
すまなかった 6 4 2の順で

******
       *
**** *
*   * *
*      *
******

****
    *
*   *
****

2は正方形でも右の形でもどっちでもいい

** **
**   *

659 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 00:34:07 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
yonex1.cis.ibaraki.ac.jp/~yonekura/Socket-base/Sock-prog9.html
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 4.3.4
 [3.3] 言語:C
[4] 期限:2010年7月11日
[5] その他の制限:
よろしくお願いします。

660 名前:デフォルトの名無しさん [2010/07/09(金) 01:28:45 ]
次のプログラムを、分かりやすく疑似コードに直してください!!
分かり易ければOKです!
static int coin[] = {1, 5, 8, 10, 15};
int main(void){
int *nr, *hist, money, c, n, new;
printf("input money : ");
while (scanf("%d", &money) != 1) {
scanf("%*[^\n]");
printf("input money again : "); }
scanf("%*[^\n]");
nr = (int *)malloc((money + 1)*sizeof(*nr));
if (nr == 0) {
perror("calloc");
return 1; }
hist = (int *)calloc(money + 1, sizeof(*hist));
if (hist == NULL) {
perror("calloc");
goto err; }
for (n = 0; n <= money; n++)
nr[n] = n;
for (c = 0; c < sizeof(coin)/sizeof(*coin); c++)
for (n = coin[c]; n <= money; n++) {
new = nr[n - coin[c]] + 1;
if (new < nr[n]) { nr[n] = new; hist[n] = c;}
}
printf("total number : %d\n", nr[money]);
printf("coins : ");
for (n = money; n > 0; n -= coin[hist[n]])
printf("%d ", coin[hist[n]]); printf("\n");
free(nr); free(hist); return 0; err:
free(nr); return 1; }

661 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 02:34:47 ]
>>648
> 2〜9の数字を入力
2はどうなのよ、2の時は?

662 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 04:46:59 ]
>>602お願いします!!

663 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 07:59:57 ]
>>655
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10795.txt



664 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 16:09:48 ]
>>661
星は正方形で
渦巻きは>>658でおねがいします

665 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:03:15 ]
codepad.org/hm0UfG3p

666 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:21:22 ]
> codepad.org
↑便利だ。
コンパイルまでしてくれる必要は無いんだけど、
もっと色々な言語(Pascalとかverilogとか)貼り付けて、
整形して表示してくれるアプローダ無いかな?

667 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:26:18 ]
ideone.comは?整形して表示の意味がよく分からないけど

668 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:40:12 ]
>>667
ありがとう。これでいいです。
こんなんとかPascal似の言語とか貼り付けたかったのです。
ideone.com/zrjGj

669 名前: ◆QZaw55cn4c mailto:sage [2010/07/09(金) 22:04:40 ]
ideone.com は対応している言語が多いけれども、コンパイルエラーの表示に難があるからなあ。
ideone.com/ffzm5
正解は、
transform(radians.begin(), radians.end(), sines.begin(), (double (*)(double))sin);

670 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 22:41:13 ]
整数を入力:18
1
2
3!?
(中略)
13!?
14
15!?
16
17
18!?

こんなプログラムはどうやって書くんですか?

671 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 22:48:40 ]
さぁ、世界のナベアツ先生に聞いてちょっ

672 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 22:49:53 ]
誘導されてきたんだなぁ。ってか宿題だったのか。
次は>>1を読もう。

673 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 22:57:56 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):3の付く数字と3の倍数の時にアホになりなさい。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)Borland C++ 5.5.1
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 20日(火)




674 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:19:04 ]
>>673
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10796.txt

675 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:27:09 ]
>>674
こうすれば文字列操作が不要になるんでは。
int isAho(int n)
{
if (n % 3 == 0) return 1;
while (n)
{
if (n % 10 == 3) return 1;
n /= 10;
}
}

676 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:28:12 ]
>>675
最後にreturn 0;するの忘れてた。

677 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:45:55 ]
30台もどうかとは思うが300、3000台にもなるとアホばかりで疲れるわ・・・

678 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 00:17:05 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下の機能を持つプログラムを作ること。

-1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不
可)
-抽出した素数を大きい順(降順)にソートする
-ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)

但し、以下の4つの機能を使ったプログラムにすること。
-サブ関数
-配列
-if文
-for文

以下の点に関して工夫をした場合は加点の対象とする

-素数の計算時間の低減
-見つけた素数の数のカウント
-ソートのアルゴリズム高速化
-実行時間の表示

作成したプログラムの特徴を提出時のコメントに記入すること
(素数の見つけ方、ソートの仕方、表示方法での工夫など)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010/07/23

初心者ですがよろしくお願いします。

679 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 02:06:24 ]
>>678
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10797.c

680 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:13:45 ]
ソートはなんならクイッ クソート があるでおじゃる

681 名前:618 mailto:sage [2010/07/10(土) 09:33:45 ]
その他制限はありません。一通り学びましたが初心者です。
よろしくおねがいします

682 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:10:43 ]
>>589
該当する関数をこれに置き換えると早くなる

int coin_func_r(int result[], int c[], int m, int n){
int i, num;
if(m<0 || result[m]==0) return -1;
if(result[m]>0) return result[m];
for(i=0;c[i]>0;i++){
num=coin_func_r(result, c, m-c[i], n+1);
if(num>0 && (result[m]<0 || result[m]>num+1)) result[m]=num+1;
}
if(result[m]<0) result[m]=0;
return result[m];
}

int coin_func(int c[], int amount){
int i, lcm_all=1, rest, c_max=1, *result, ret;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
result=calloc(lcm_all, sizeof(int));
for(i=0;i<lcm_all;i++) result[i]=-1;
for(i=0;c[i]>0;i++) result[c[i]]=1;
rest=amount%lcm_all;
coin_func_r(result, c, rest, 0);
ret=result[rest]+(amount-rest)/c_max;
free(result);
return ret;
}

683 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:24:32 ]
>>511
ありがとうございます!



684 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:28:20 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
 int i_minof(int x, int y){ /* ... */}
を作成せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。


685 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:40:05 ]
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
下に示すように、整数値を読み込んで、その値を0までカウントダウン
しながら表示するプログラムを作成せよ。なお、負の値を読み込んだ時は
何も表示しない(改行も表示せず終了する)ようにせよ。
=====
整数を入力してください:9
9 8 7 6 5 4 3 2 1 0
=====
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。

686 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:41:38 ]
>>684
int i_minof(int x, int y){ return rand()&1?x:y; }

687 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 11:41:06 ]
>>684の訂正です。

[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
 int i_minof(int x, int y){ /* ... */}
を作成せよ。
=====
二つの整数を入力してください。
整数1:49
整数2:92
小さい方の値は17です。
=====
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。


688 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 11:42:32 ]
>>687
×小さい方の値は17です。
○小さいほうの値は49です。

何度も訂正すいません。

689 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 12:21:49 ]
>>687
int i_minof(int x, int y){
if(x<y){
return x;
}
else{
return y;
}
}

690 名前:689 mailto:sage [2010/07/10(土) 12:24:03 ]
補足すると
条件演算子を使えばもっと簡単になる

参考
ttp://www5c.biglobe.ne.jp/~ecb/c/05_08.html

691 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 14:55:54 ]
>>685
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10798.txt

692 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 17:55:41 ]
>>691
ありがとうございます。

693 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 18:01:33 ]
【質問テンプレ】
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10799.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:[無期限]

お願いします。



694 名前:名無しさん@そうだ選挙に行こう [2010/07/10(土) 23:01:52 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、3つの色成分(Blue, Green, Red)に分離し、
それぞれを異なるファイルに保存するプログラムを実装しなさい。
プログラム中でやることは以下のことである。
1.ヘッダ部分を適切に読み込む
2.読み込んだヘッダ部分(ファイルヘッダ、情報ヘッダ)を用いて、適切なバイト数(画素数×1画素あたりのバイト数)を読んでくる。
3.分離したい色成分以外を0に書き換え、ヘッダ部分と色情報をファイルに書き込む。
ただし、以下のような構造体を使用する。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10800.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日
[5] その他の制限:特にありません。よろしくお願いします。


695 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 02:36:18 ]
クイックソートのソースをとりわけ、クイックソースと言うでおじゃる

696 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 10:40:06 ]
【質問テンプレ】
[1] 授業単元:Visual C++ でのプログラミング演習
[2] 問題文(含コード&リンク):課題4.3.bをお願いします。www.dotup.org/uploda/www.dotup.org1020755.jpg
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 200
 [3.3] 言語:C++
[4] 期限:[無期限]

697 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:07:13 ]
>>696
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10801.txt

動作例から推測するに、恐らく最小の整数ではなく最小の自然数を出力するのだろう。
(1+1/n)^n は n>0 で単調減少だから、二分探索で解を求める。

698 名前:697 mailto:sage [2010/07/11(日) 11:12:36 ]
単調減少ではなく、単調増加でした

699 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:14:30 ]
> while 型繰り返し
> #include <stdio.h>
ん〜〜〜

700 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:26:33 ]
>>696
C言語でかいた
#include<stdio.h>
#include<math.h>

int main(void){
int n = 0;
double fn;

while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
printf("n = %d\n", n);

return (0);
}

701 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:41:33 ]
math.hを使うことを宣言し マス! って言ってみたかった

702 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:53:54 ]
>>697 さま
>>700 さま

有難うございました。無事解決できました。
また質問で申し訳ないのですが
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;

while((fn=pow((double)(1+1/n), n))<=2.71 || 2.72<=fn) n++;
のようにdouble型にキャストをすると実行中にエラーが出るのですが何故でしょうか?

703 名前:700 mailto:sage [2010/07/11(日) 11:56:42 ]
>>702
ごめん
0 除算エラーだね

n の初期値を 0 から 1 に変更してちょ



704 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 11:59:42 ]
>>702
n>=2 のとき
(double)(1+1/n)
は常に 1.0 になってしまうぞ

705 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 12:11:50 ]
>>703
n=0→1でエラーはでなくなりました!
>>704
Googleさんで調べても分からなかったのですが
キャストするとなぜだめ(1.0になる)なのでしょうか・・・?

706 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 12:13:47 ]
除数をキャストしてごらん。あるいはnをdouble型にする

707 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 12:33:26 ]
>>706
割り算は整数だけではだめなのですね・・・。
最初から最後までご教授いただきありがとうございました。

#include <stdio.h>
double a = (double)1/2;
double b = 1/(double)3;
double c = 1/4;
printf("%f\n%f\n%f\n",a,b,c);

実行結果
0.500000
0.333333
0.000000

708 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 16:02:06 ]
インチをセンチに変換するプログラムを作れという課題が出たのですが、わかりません!
明日の1限までに仕上げなければならないので、大至急お願いします!
下のところまでは書けたのですが、???のところがわかりません。
定数を掛けるというところまでは想像出来るのですが、何を掛けたらいいのか全然想像付きません。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

double to_cm(double in)
{
    return in * ???;
}

int main(int argc, char *argv[])
{
    double in;
    char str[32];

    if (argc > 1)
    {
        strncpy(str, argv[1], 31);
    }
    else
    {
        printf("input inch: ");
        fgets(str, 31, stdin);
    }
    in = atof(str);
    printf("%f [in] = %f [cm].\n", in, to_cm(in));
    return 0;
}

709 名前: ◆QZaw55cn4c mailto:sage [2010/07/11(日) 16:05:01 ]
>>708
return in * 2.56

あと、
fgets(str, 31, stdin);

fgets(str, 32, stdin);
でいい。

710 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 16:07:24 ]
>>709
出来ましたああああ!!!!!!!!111
先週出た課題でずっと悩んでたんですがこれで提出できそうです!
あとプログラムの問題点まで指摘してくださってありがとうございました。

それから、次からはちゃんとテンプレを守ります。すみませんでした。

711 名前:709 mailto:sage [2010/07/11(日) 16:08:05 ]
>>708
失礼、
return in * 2.54;
だった。1 inch = 2.54 cm。

712 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 16:43:25 ]
ちなみに、12インチ=1フィート=30.48cm、3フィート=1ヤード=91.44cm
これ豆知識な。マイルの計算もしっかり出来ないと、参るぜ?

713 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 16:45:13 ]
∧_∧∩))
( ・∀・)彡   パーン!
  ((⊂彡☆∩  _, ,_
   ⊂(⌒⌒(;`Д´)
      `ヽ_つ ⊂ノ ←>>712



714 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 16:50:16 ]
>>713
まぁそうフィートアップするなよ

715 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 17:11:59 ]
パンパンパーン
  ∧_∧ ∩
 ( ・∀・)彡☆
   ⊂彡☆))Д´) >>714
       ☆

716 名前:名無しさん@そうだ選挙に行こう [2010/07/11(日) 18:26:12 ]
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): imepita.jp/20100711/659870
画像のプログラムを下のEOFを探して処理を行う方法に書き換えてプログラムを実行せよ
また、input.dataの中身を10行未満にしても正常に動く事を確かめてみよ。

int counter=0;
while (!input_file.eof()){
input_file>>data[counter];
counter++
}

for(i=0;i<counter;i++)
output_file << data[i]*2 << '\n';

[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。


717 名前:名無しさん@そうだ選挙に行こう [2010/07/11(日) 18:29:40 ]
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): imepita.jp/20100711/660110
画像のプログラムの九九表を以下の様に書き換えよ
1 画面に表示してた部分(coutの部分)をファイルに書き出す様にする
2 一番目のcoutにある''を','に変更する
3 出力ファイル名を"output.csv"とする。
この九九表が入っているファイルをExcelで読み込んで、九九表を見ることができるか確かめてみよ

[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。


718 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 19:19:51 ]
>>693
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10802.c

719 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:01:05 ]
>>717
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10803.txt

720 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:46:43 ]
[1]授業単元:プログラミング基礎
[2] 課題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10804.txt
[3] 環境:指定無し 言語C(なるべく)
[4] 9/1迄(夏期課題)
[5]意味がよくわからないので丸投げします

721 名前:名無しさん@そうだ選挙に行こう [2010/07/11(日) 23:08:44 ]
>>719
ありがとうございます。でも、このプログラムをコンパイルしても、
続行するには何かキーを押してください
で終わってしまいます

722 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:13:01 ]
>>721
実行ファイルと同じところに、なにか新しいcsv ファイルが作成されていませんか?

723 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:15:40 ]
>>20 といい >>720 といい、変な傾向の宿題が出るようになったものですね。



724 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:20:59 ]
別に変でもないよ。処理の内面的な部分を知る課題だろ。

725 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:25:41 ]
仕様をもとにプログラムを作成する、というのがまっとうだと思うんですが。
判じ物の問題は、「プログラム基礎」とか「暗号理論」という単元名とは全然違うのでは。

726 名前:デフォルトの名無しさん [2010/07/11(日) 23:37:13 ]
>>722
プログラムのコンパイルした時にExcelを開いておけばいいって事ですか

727 名前:名無しさん@もう選挙は終わってるんで mailto:sage [2010/07/11(日) 23:37:20 ]
>>725
それいうなら結局誰も答えなかったみたいだけど
>>234とかがある意味最もC言語の宿題っぽいw(けど学校の宿題としては
やはり不適なんだろなw)

728 名前:デフォルトの名無しさん [2010/07/12(月) 00:04:27 ]
>>722
実行ファイルと同じところに、Excelで保存したものがはいっているんですが、もしかしてそれですか

729 名前:デフォルトの名無しさん [2010/07/12(月) 00:14:16 ]
誰か716の問を助けてください

730 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:27:34 ]
>>679
亀レスですみません
ありがとうございました

731 名前: ◆QZaw55cn4c mailto:sage [2010/07/12(月) 02:39:35 ]
>>716
単に指示通りにプログラムを入力しただけです。
codepad.org/73sQ9rsX

732 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 02:58:38 ]
>>725
何が言いたいのかさっぱり分からんが、プログラムを動かしている電子機器の
基本的な仕組みも知らないでコードを書くとか・・・どれも基本は同じだし。
IFや数値を扱うにしても、もう既に実装されているコンピュータの仕組みが
大きく関与しているし。

733 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 03:01:15 ]
>>732
>>20 >>720 のような出題を批判しているだけです。



734 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 03:02:17 ]
>>720
っつか、学んだ内容が分かればヒントが得られるかもしれないが・・・
法則が分からん。511までで何か数字を弄れば気づくかもしれんが。

735 名前:デフォルトの名無しさん [2010/07/12(月) 06:29:39 ]
2進数にしたときに1の数が順番に増えていくのだけはわかった。
ソートの条件はさっぱりだが。

736 名前:デフォルトの名無しさん [2010/07/12(月) 07:07:43 ]
>>694お願いします。。。

737 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 08:16:55 ]
順応性を高めなさい!そしてあるがままを受け止めなさい。

738 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 10:12:44 ]
実験(数値実験、確認、解析)
システムプログラミング(アプリケーション実装)
マネジメント(ネットワーク構築 etc)
開発(OS,言語、処理系、ライブラリの整備)
教育(カルチャーの紹介)
....まだあるかも

ことコンピュータの世界(実世界に非ず)の教育を
単一言語で行うことには相当無理があるよな

739 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 10:34:43 ]
そんなのだいたいCでやってるという現実。

740 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:02:57 ]
まアセンブラを言語と考えるのならこれ以上に万能な
言語は無いな

741 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:03:01 ]
だからCみたいな面倒な言語を経験しておけば他のスクリプト言語も
簡単に使えるという意図なんだろう

742 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:05:00 ]
お前らのCに対する意見、気持ちはよーく分かった。だから早く
初めてのCもしてこい、なっ!

743 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:21:10 ]
>>735
当たり前だろwww



744 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:34:36 ]
>>738
Cが他の言語に対して圧倒的に強いのは
開発
だろな
教育できるような世界じゃないだろうけど

745 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:37:42 ]
はい、Cなら色々と開発できます!

746 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:40:07 ]
Cは非プログラミング言語で言うと英語みたいなもんだよ。
言語設計が優れてるか否かというよりも(まぁ優れてはいるんだろうが)、
みんなが使って、長い間使ったから、デカイ顔できるし信頼も置ける。

747 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 12:54:06 ]
>>720
1 になっている bit の数を x とすると
x に対して昇順にするのが大前提

x%3==0 のとき数値で昇順
x%3==1 のとき数値で降順

x%3==2 のときが分からない
数値を昇順にソートし大きい方から使う

x=2 の場合だと逆順に見て
8 ? 7 ? 6 ? 5 ? 4 ? 3 ? 2 ? 1
こんな感じ

x=5 の場合だと逆順に見て
5 ? 4 ? 3 ? 2 ? 1 ? ? ? 4 ? 3 ? 2 ? 1 ? ? ? 3 ? 2 ? 1 ? ? ? 2 ? 1 ? ? ? 1 ? ? ?
こんな感じ

748 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 13:18:12 ]
>>720 >>747 の条件分岐 x%3==0 と x%3==1 のときだけ実装
#include<stdio.h>
#include<stdlib.h>
int bit_count(int value){
int ret=0;
while(value>0){
ret+=value&1;
value>>=1;
}
return ret;
}
int num_cmp(const int *a, const int *b){
int a_bits, b_bits, ret=0;
a_bits=bit_count(*a);
b_bits=bit_count(*b);
if(a_bits<b_bits) return -1;
if(a_bits>b_bits) return 1;
if(*a<*b) ret=-1;
if(*a>*b) ret=1;
if(a_bits%3==1) ret=-ret;
return ret;
}
int main(void){
int num[4096], i;
for(i=0;i<4096;i++) num[i]=i;
qsort(num, 4096, sizeof(int), num_cmp);
for(i=0;i<4096;i++){
if(bit_count(num[i])%3!=2) printf("%d:%d\n", i, num[i]);
else printf("%d:???\n", i); // よく分からないので数値を出力しない
}
return 0;
}

749 名前:デフォルトの名無しさん [2010/07/12(月) 13:40:45 ]
1
乱数を使って計算機とじゃんけんをするゲームを作成せよ。
人間の入力はグーは0、チョ基は1、パーは2とし、勝ち、負け、引き分けの判定をすること。
乱数の初期設定のために srand((unsigned int)time(NULL)); を使うこと。

2
1を改良して0,1,2以外の値が入力されるまで繰り返し勝負を続けるものを作成せよ。

よろしくお願いします。

750 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 17:20:04 ]
>>749
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10806.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10807.txt

751 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:47:31 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10808.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:7月14日まで
[5] その他の制限:
お手数をおかけしますが、よろしくお願いします。

752 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:53:30 ]
>>751(1)

i = left - 1; //(1)________
j = right + 1; //(2)________

753 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:57:22 ]
>>751(2)
return a->height - b->height; // (1)______ /*高さで比較*/

qsort(a, N, sizeof(person_t), (int (*)(const void *, const void *))compare); // (2)___________________________);



754 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:29:58 ]

内容:
[1] 授業単元: プログラミング開発基礎
[2] 問題文 複数あるのでこちらで
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10809.txt
[3.1] OS:(Windows 
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:なし
毎週毎週申し訳ありませんがよろしくお願いします

755 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:50:19 ]
[1] 授業単元: 応用プログラミング
[2] 問題文(含コード&リンク): 任意のサンプル値(2のべき乗)を入力し、計算結果を出力する2次元FFTのプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語: どちらでも可
[4] 期限: 7月17日まで

www.kurims.kyoto-u.ac.jp/~ooura/fftman/index.html
FFT、二次元FFTに関しては、上記のサイトの1.2、3.1を参考にしていたのですが、
入出力表示の仕方などが良く分からなかったので、よろしくお願いします。

756 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:53:35 ]
[1] 授業単元: ソフトウェア信頼性
[2] 問題文(含コード&リンク):
問題文+自分で作った部分は以下のファイルに
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10810.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 2010年7月12日 24時

757 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 21:14:47 ]
>>754
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10811.txt

758 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 21:35:17 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。ここでは1桁
分の数を記憶するオブジェクトを多数作りそれらの協調で計算を進めること。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 7月13日

よろしくおねがいします 


759 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 21:37:27 ]
>>758
ちょっと何を言っているのかわからない

760 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 21:53:46 ]
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):3+6+9+12+・・・+n≧100の成立する最小のnの値と
               nがその値をとる場合の左辺の値(3〜nまでの和)を
               求めて表示するプログラムをdo-while文を使って作成せよ。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ:gcc
 [3.3] 言語:C言語
[4] 期限:2010年07月13日17:00まで
[5] その他の制限:問題文中にある制限以外に制限はありません。

どうかよろしくお願いします

761 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:00:27 ]
>>756
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10812.txt

762 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:02:40 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。1桁
分の数を記憶するオブジェクトを多数作り計算するプログラムにすること。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 7月13日

よろしくおねがいします

763 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:05:40 ]
うぜえな



764 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:08:49 ]
>>761
ありがとうございます
助かりました

765 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:11:12 ]
>>762が理解できないんだけど

766 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:14:10 ]
>>760
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10813.txt

767 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:14:16 ]
>>758
>>762
C なのか JAVA なのか?

768 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:19:49 ]
>>767
問題文だけ読むとjava

環境だけを見るとcっぽい

あくまで推測ですが・・・

769 名前:760 mailto:sage [2010/07/12(月) 23:02:37 ]
>>766
ありがとうございました

770 名前:デフォルトの名無しさん [2010/07/12(月) 23:18:18 ]
すみません、どなたか>>694お願いいたします。

771 名前:デフォルトの名無しさん [2010/07/12(月) 23:52:39 ]
>>762
codepad.org/rW111uZW

772 名前: ◆QZaw55cn4c mailto:sage [2010/07/13(火) 01:05:09 ]
>>694
codepad.org/xqiSFBEr
コマンドライン第一引数に対象となる bmp ファイルを指定すると、r.bmp, g.bmp, b.bmp を出力します。
24bit bmp ファイルにしか対応していません。そのほかのタイプの bmp ファイルに対応する必要があれば、ご連絡ください。

773 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 02:02:59 ]
そういえば、より汎用的なソースコードに書き換えた麻呂に負けた悔しさなのか
素人麻呂相手に必死にに噛み付いていたあいつはどこへ行ったんだろうか?



774 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 02:19:51 ]
>>773
そのより汎用的なソースとやらを教えてくださいな。

775 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 02:24:58 ]
こんな時間に釣れるとは思わなかったよ、麻呂と勘違いして意味不明な
戻り値の話をしちゃったおバカさんw

776 名前: ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ mailto:sage [2010/07/13(火) 02:35:36 ]
   /二__,--、r'"___、 ヾト、.ヽ
レ'"~,-,、 !  ! ' '" ̄ .ノ\ヾ:、
K/ー'~^~_/  ヽミ:ー‐‐'"  ヽ i
!〉ー―'"( o ⊂! ' ヽ  ∪ Y」_  
i ∪  ,.:::二二ニ:::.、.      l 、...
!    :r'エ┴┴'ーダ ∪   ! !l
.i、  .  ヾ=、__./      ト=. 
ヽ 、∪   ― .ノ     .,!  

777 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 02:36:43 ]
またおまえかよ。。。
コテつけろよ>>775

778 名前:デフォルトの名無しさん [2010/07/13(火) 02:45:16 ]
【質問テンプレ】
[1] 授業単元:画像処理プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10814.zip
画像を8×8 画素のブロックに分割します。各ブロック毎に平均値を求めます。
※average という関数を作ってブロック内の平均値を求めても良いでしょう。
ブロック内の画素すべての輝度値を平均値で置き換えます。どのような画像が得られますか?
8×8画素のブロックサイズでモザイク処理を行うプログラムと、モザイク処理後の画像を提出しなさい。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/13 13時がリミット
[5] その他の制限: getPixelは使わない方法で現状のコードを変更した程度で完成できればベストです。

779 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 04:14:26 ]
lennaたん、かわいいよ、lennaたん

780 名前:デフォルトの名無しさん [2010/07/13(火) 05:39:44 ]
>>750
ありがとうございます。

781 名前:デフォルトの名無しさん [2010/07/13(火) 08:53:35 ]
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10816.txt
いっぱいあります。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/20
お願いします。

782 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 09:08:53 ]
1*3*5*7*9*・・・*111を11で割った剰余を求めよ

783 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 09:51:05 ]
 A=1*3*5*7*9
 B=13*・・・*111
とおくと、
与式は
 A*11*B
と書ける。
これは 11 で割り切れる。
つまり、題意の剰余は 0 。



784 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 11:32:47 ]
[1] 授業単元:プログラミング演習III
[2] 問題文(含コード&リンク):
以下の機能を含む整数版秀丸エディタ用のDLLを作成せよ。
・返り値がint型で、パラメータ(整数)を渡すと、「整数*5」の結果を返す。
・返り値がchar型で、パラメータ(文字列)を渡すと、文字列の先頭にHello!!を付けた「Hello!!+文字列」の結果を返す。
以下のサイトも参考にする事。
homepage3.nifty.com/kons/hidemaru/helpsite/hidemac/html/200_Dll.html
[3] 環境
 [3.1] OS:Windows 32bit
 [3.2] コンパイラ名とバージョン: Visual C++ 2010 Express
 [3.3] 言語:C++
[4] 期限: 2010/07/14 10:40
[5] その他の制限: なし

785 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 12:28:53 ]
>>762は環境はcですが、問題はjavaです。

どうかよろしくお願いします。

786 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 13:57:12 ]
コンピュータ基礎1
OS windows7 32bit
gcc2.9.5
言語 c
期限 なし
課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
よろしければ教えていただきたいです。

@キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい

Aキーボードからテストの得点m(0以上100以下)を入力し
(1) m<60 の場合は「不合格」
(2) 60≦m<80 の場合は「普通」
(3) 80≦m の場合は「優秀」
と表示するプログラムを作りなさい。

787 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 14:09:43 ]
>>786

48 名前:デフォルトの名無しさん[sage] 投稿日:2010/07/13(火) 14:00:23
>>46
int main() {
double x;
scanf("%lf", &x);
printf("%f\n", fabs(x));
}

int main() {
int m;
scanf("%d", &m);
printf("%s\n", m < 60 ? "不合格" : m < 80 ? "普通" : "優秀");
}

転載

788 名前:デフォルトの名無しさん [2010/07/13(火) 15:12:30 ]
[1] 授業単元:プログラミング演習I
[2] 問題文(含コード&リンク):
課題
(1000以下の完全数)正整数kが等式
   k=(kの約数の内、k以外のものの総和)
を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
[3] 環境
 [3.1] OS:unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2010/07/14
[5] その他の制限: 環境はcですがjavaの問題です。

お願いします。

789 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 15:44:30 ]
それ自身を含まない約数を足してイークォールか比較すりゃええがな
俺はメルセんヌ素数を使うけど

790 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 16:28:51 ]
以下の入力をして、これを二次元配列に代入していく方法がわかりません。
当方scanf+Enterによる単純な入力しかしたことがありません。
空白を認識して代入先を変える方法?と考えて手が止まりました。

/*以下入力*/
3 /*変数int nへ代入する。今から3*3行列を入力するという意味*/
3 5 7
2 5 8
6 8 1
/*入力ここまで*/

for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ", a[i][j]);
}printf("\n");
}printf("\n");
の結果は上記の
3 5 7
2 5 8
6 8 1
を表示するように二次元配列aに代入する。

791 名前:790 mailto:sage [2010/07/13(火) 16:31:19 ]
テンプレ忘れ
[1] 授業単元:プログラミング
[2] 問題は>>790
[3] 環境
 [3.1] OS: Windows
 [3.2] Visual C++ 2008
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 入力はscanfにこだわらなくても良いですが、なるべく単純にお願いします。

792 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 18:13:07 ]
>>790
#include <stdio.h>
#define loop(i,n) for (i = 0; i < n; i++)

int main(void)
{
    int i, n, j, a[10][10];

    printf("n=");
    scanf("%d", &n);
    for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
    scanf("%d", &a[i][j]);
    for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
    printf("%d ", a[i][j]);
printf("\n");
    }
    printf("\n");

    return 0;
}


793 名前: ◆QZaw55cn4c mailto:sage [2010/07/13(火) 18:38:51 ]
>>694
バグがありましたので修正いたします。
codepad.org/es0chPgG



794 名前: ◆QZaw55cn4c mailto:sage [2010/07/13(火) 18:46:36 ]
>>778
>>694 と並行して作成しておりました。とりあえずできているものをあげておきます。
>>778 に示されているソースコードに沿って書き直す作業は、余裕があれば行います。

第一引数にターゲットとなる bmp ファイル名、第二引数に平均化した bmp ファイル名を指定します。
入力ファイルとしては、256色 bmp と 24ビット bmp に対応しています。出力ファイルは 24ビット bmp です。
codepad.org/M7WwUgUS

795 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 18:47:54 ]
>>775
汎用的なソースとやらは、実は無いんですね。

796 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 19:07:59 ]
>>792
どうもありがとうございました。

797 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 19:46:44 ]
>>788
>>785 も同一人物だとしたら頭の中身がどこかから漏れてないか?

798 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:14:14 ]
>>785
> >>762は環境はcですが、問題はjavaです。
完成ソースをコンパイルする時のコマンドは、gcc、javacのどっち?

799 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:48:50 ]
>>788
>>506, >>571

800 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 22:18:55 ]
>>784
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10818.txt

801 名前:デフォルトの名無しさん [2010/07/13(火) 22:52:55 ]
【質問テンプレ】
[1] 授業単元: 計算機プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10819.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語: C
[4] 期限:7/24
[5] その他の制限: なし
電気電子系の問題です。
よろしくお願いします

802 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:10:48 ]
[1] 授業単元:オペレーティングシステムプログラミング演習
[2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10820.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2010年7月15日17:00まで
[5] その他の制限:特にありません

よろしくお願いします

803 名前:デフォルトの名無しさん [2010/07/13(火) 23:27:12 ]
>>800
ありがとうございます



804 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:28:45 ]

             / ̄\
            │34nm |
             \_/    インテル!
             _|_|_
       n:     /      \    n: 
       ||   /         ヽ    ||   
      f「| |^ト  |   :::\::/:::   |  「| |^|`|  エーーックス
      |: ::  ! }  | <(゚)>::::<(゚)> |  | !  : ::}   ニジュウゴ
      ヽ  ,イ  ヽ  (__人__) /  ヽ  ,イ     エーーーッムッッ!
            \ `⌒´ /

805 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:37:07 ]
>>798 javacです。
よろしくお願いします。

806 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:13:03 ]
>802 778lenna-tan10815.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10822.c

807 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:30:21 ]
>>806
ファイルが消えてるみたいで
あつかましいのですが、もう一度あげていただくことは出来ないでしょうか

808 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:35:30 ]
>>795
単にマクロで求める数値を適当に変えられる仕様にしただけであって
大して改変はしていなかったしw

809 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:55:05 ]
>807
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10823.c
だった

810 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:58:36 ]
>>809
すいません、ありがとうございます

811 名前:デフォルトの名無しさん [2010/07/14(水) 01:00:16 ]
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク):www.dotup.org/uploda/www.dotup.org1025743.jpg
[3] 環境
 [3.1] OS: (Windows vista
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 特になしです。

よろしくお願いします。

812 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 01:02:15 ]
AKB48の篠田と板野が好きです、けど
モー娘。の石川梨華はもっと好きです。

813 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 01:18:57 ]
>>752>>753ありがとうございました!



814 名前:デフォルトの名無しさん [2010/07/14(水) 01:59:24 ]
>>811
codepad.org/9aQwdDgL

815 名前:デフォルトの名無しさん [2010/07/14(水) 03:28:55 ]
[1] C言語プログラミング演習
[2] 問題文

name(名前: char型配列), height(身長: float型変数), bloodType(血液型: char型変数)をメンバに持つ構造体を宣言し, 128名分が記憶可能になるようその構造体の配列を定義せよ.また,その配列に対して値を入力し,
さらに表示できるようにせよ.構造体のメンバ値を表示するには、ひとつの構造体の各メンバの値を表示する関数を作成すること。


% ./bodyData
1人目のデータ: 立命太郎 175.5 A
2人目のデータ: 野路花子 169.0 B
3人目のデータ: 衣笠一郎 180.4 O
4人目のデータ: 0 0 0 ← 0 0 0 と入力すると終わる.
名前 身長 血液型
立命太郎 175.5 A
野路花子 169.0 B
衣笠一郎 180.4 O
%

ヒント: 各人の名前、身長、血液型のデータを1行で入力するためには、参考12.1に示されたfgets()関数で、これらを1度に取り込み、最初の空白までを名前とみなし、次の空白までを身長とみなし、
次に改行までを血液型をみなせばよい。これらを別々の文字列として、必要に応じて整数や浮動小数点数に変換し、構造体のメンバに設定すること。

ヒント: ひとつの構造体の各メンバの値を表示する関数に構造体を引渡すことを繰り返えせばよい。


[3] 環境
 [3.1] OS: (Windows vista
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 実行結果までできれば表示してほしいです

816 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 03:48:45 ]
>>806
ん、例の出したり引っ込めたりか‥‥‥。

817 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 03:49:02 ]
くせぇくせぇ、麻呂のクソースの臭いがぷんぷんすんぜっ

818 名前:816 mailto:sage [2010/07/14(水) 03:50:48 ]
失礼。

819 名前:デフォルトの名無しさん [2010/07/14(水) 03:58:00 ]

[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
整数を各要素の値とする、2つの2次元ベクトルが与えられたときに、それらの内積を計算する関数innerProduct()を使って、この2つのベクトルが直行しているかどうかを判定するプログラムを作成せよ。

2つの2次元ベクトル U(ux,uy)とv(vx,vy) の内積は,
ux × uy + vx + vy
で計算でき、2つのベクトルが作る角度は、
内積が正なら90°より小さく 内積が0なら 90° 内積が負なら90°より大きい
この考え方は3次元のベクトルでも同じである。上記のプログラムを、3次元のベクトルにも対応したものにすぐに修正できるようにするには、マクロを使うことが有効である。
どのようにすればよいかを考えよ。
2次元の場合
% ./innerProduct
input u[0]: 2 input u[1]: 6 input v[0]: 9input v[1]: -1
u=[ 2 6 ], v=[ 9 -1 ]
inner product is 12
The angle of the vectors is less than 90 degree.
%
3次元の場合
% ./innerProduct
input u[0]:input u[1]: 1input u[2]: 2input v[0]: 6input v[1]: 3input v[2]: -2
u=[ 0 1 2 ], v=[ 6 3 -2 ]
inner product is -1
The angle of the vectors is greater than 90 degree.
%
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし

820 名前:デフォルトの名無しさん [2010/07/14(水) 04:00:27 ]
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
標準入力から正の整数値を読み込み,0が入力されたらそれらの整数を小さい順に表示するプログラムを作成せよ.

以下のような処理の流れでプログラムを作成すること。

数字を読み込むごとに, それまでに入力された数値が格納された配列の最後の要素から, 先頭に向かって順に大小の比較を行う. これにより、読み込んだ数字の方が入るべき位置がわかる.
読み込んだ数字が入るべき箇所を空けるために、 既に記憶されている配列の要素のうち、 この数字よりも大きな数字をひとつ後ろにずらす。 空いた箇所に読み込んだ数字を代入する.
次に入力される数字の処理へ移る.

% ./ordering
正整数: 17
正整数: 3
正整数: 9
正整数: 4
正整数: 0
入力された整数は小さい順に 0, 3, 4, 9, 17 です.
%
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし

821 名前:デフォルトの名無しさん [2010/07/14(水) 04:08:05 ]
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
文字列yを文字列xの最後に連結する関数stringcat(char [], char [])を作成せよ.この関数を用いて、入力された2つの文字列を連結するプログラムを作成せよ。

注意: stringcat()を呼び出すときは,連結後の文字列がxの配列長を超えないように注意すること.


% ./catenate
文字列x (20字まで)? linux
文字列y (20字まで)? kadai
連結後のx: linuxkadai ←全部で20字以内なので連結可能
20字を超える場合は連結不可能とする
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし




822 名前:デフォルトの名無しさん [2010/07/14(水) 04:13:00 ]
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char [], char [])を作成せよ.この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。


% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? dai
"kadaigakitui"に"dai"は含まれます.

% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? ycx
"kadaigakitui"に"ycx"は含まれません.

[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし



823 名前: ◆QZaw55cn4c mailto:sage [2010/07/14(水) 04:34:26 ]
>>815
codepad.org/NLFiBXoJ



824 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 05:16:06 ]
fgets△〜

825 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 07:15:41 ]
>>820
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10824.c

826 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 08:02:12 ]
>>821
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10825.c
>>822
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10826.c

827 名前:デフォルトの名無しさん [2010/07/14(水) 08:33:18 ]
>>814
ありがとうございました
助かりましたっ!

828 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 09:01:59 ]
>>820 漏れもやってみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10827.c

829 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 09:45:18 ]
for(j = i; j > 0 && n < a[j - 1]; j--) a[j] = a[j - 1];
a[j] = n;
ってやるのが普通。

830 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 09:47:42 ]
普通(笑) お前がそう思うんならそうなんだろう、お前ん中では

831 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 09:54:41 ]
>>829 クソースを推敲したならお主が纏めて記述したのを提出するでおじゃるよ

832 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 09:57:22 ]
いやよ、久々にこのスレを覗いたんだが、相変わらず毎年過去に出されたのと
似たようなものばっかでさ。たまには捻くれてクソースにしたくなるじゃん。
俺の勝手だがw

833 名前:デフォルトの名無しさん [2010/07/14(水) 11:02:31 ]
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
リストへの要素の追加を行うプログラムで、以下のプログラムを完成させよ。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10828.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月18日まで
[5] その他の制限:特にありません。よろしくお願いいたします。



834 名前:デフォルトの名無しさん [2010/07/14(水) 12:58:43 ]
>>820
codepad.org/QeE6s096






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<283KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef