C/C++の宿題を片付けます 115代目at TECH
C/C++の宿題を片付けます 115代目 - 暇つぶし2ch2:デフォルトの名無しさん
08/08/04 07:46:14
只今全スレが稼働中です。

3:デフォルトの名無しさん
08/08/04 12:51:53
2chは今日も元気だってこと?

4:デフォルトの名無しさん
08/08/04 14:42:57
暇な奴が多いってことでしょ。

5:デフォルトの名無しさん
08/08/04 17:14:56
スレリンク(tech板:999番)
m9(^д^)

6: ◆7W9NT64xD6
08/08/04 17:31:05
[1]C言語応用
[2]2chの掲示板のdatファイルを解析して、レスストリーム(後述)に分解し、
フレーム付きのページで、ストリーム単位に閲覧することができるような
HTMLファイルを生成する。Windows/Linux/MacOS共に対応し、コマンドラインで
スレURLを与えれば、カレントディレクトリに、取得した時点のYYYYMMDDHHMMSS形式の
名称のディレクトリを作り、そこにフレーム付きページを生成する。
☆レスストリーム
(1)同一スレの別のレスへのアンカーを含まないレスは単一のストリームに含まれる、その
ストリームの代表レスとなる。
(3)同一スレの別のレスへのアンカーを含むレスは、指しているレスが所属するストリーム
のすべてに含まれる。
※一つのレスが複数のストリームに含まれることはあり得る。
[3] Windows/Linux /MacOS/gcc/C言語が望ましいがC++でも可
[4] 7月中でしたが8月中に変更

7:デフォルトの名無しさん
08/08/04 19:44:01
>>6
どこの学校の何年の課題だよ

8:デフォルトの名無しさん
08/08/04 19:50:19
自分がやりたいことを課題風に書いてアウトソースと予想

9:デフォルトの名無しさん
08/08/04 22:04:00
>>1


10:デフォルトの名無しさん
08/08/04 22:14:03
>>6 = スレリンク(tech板:170番)

11:デフォルトの名無しさん
08/08/04 22:20:28
>>6
サンプルの dat とそれに対する出力例うp!

12:デフォルトの名無しさん
08/08/04 23:07:23
[1]C言語
[2]
3次元ベクトルの外積を計算するプログラムを作れ。(以下の要求に従え。)
􀂉2つの3次元ベクトルa, b の成分はそれぞれテキストファイルa.txt, b.txtに作っておく。各行は1つの成分とする。
􀂉プログラムの中で、ファイルa.txt, b.txtからベクトルa, b の成分を読み込むようにする。
􀂉a=(a1,a2,a3), b=(b1,b2,b3) に対して、a とb の外積は(a2b3-a3b2, a3b1-a1b3, a1b2-a2b1)
􀂉a とb の外積をファイルaxb.txtに書き出せ
[3]OS:Windows  言語:C
[4]2008/08/5(pm.6)
よろしくお願いします

13:デフォルトの名無しさん
08/08/04 23:11:56
>>12
a.txtとb.txtをアップしろ

14:こんなんかな?
08/08/04 23:16:31
[a.txt]
1.1 2.1 3.1
1.2 2.2 3.2
: : :
[b.txt]
3.1 3.2 3.3
4.1 4.2 4.3
: : :

15:デフォルトの名無しさん
08/08/04 23:17:01
>>13
たぶん適当でいいんだと思います


a.txt

1
2
3

b.txt

4
5
6

よろしくお願いします

16:デフォルトの名無しさん
08/08/04 23:22:23
>>15
どう考えても>>14さんの形だろ
ってことで>>14さんのファイルでやってみる

17:デフォルトの名無しさん
08/08/04 23:39:49
3次元ベクトルで各行に一成分なら>>15じゃね?

18:デフォルトの名無しさん
08/08/04 23:50:32
>>15
すみません、ひょっとしたらこうかも。
たぶん>>14さんのような高度な事はこの問題は求めてないと思うので。


a.txt

a1
a2
a3

b.txt

b1
b2
b3


19:名無しさん
08/08/05 07:28:40
#include <stdio.h>
#define N 3
int main()
{
double a[N], b[N], axb[N];
FILE *fpA = fopen("a.txt", "r");;
FILE *fpB = fopen("b.txt", "r");;
FILE *fpAXB = fopen("axb.txt", "w");;
long i;
for(i=0L; i<N; i++)
{
fscanf(fpA, "%lf", &a[i]);
fscanf(fpB, "%lf", &b[i]);
}
fclose(fpA); fclose(fpB);
axb[0] = a[2] * b[3] - a[3] * b[2];
axb[1] = a[3] * b[1] - a[1] * b[3];
axb[2] = a[1] * b[2] - a[2] * b[1];
for(i=0L; i<N; i++)
{
fprintf(fpAXB, "%lf\n", axb[i]);
}
fclose(fpAXB);
return 0;
}

20:名無しさん
08/08/05 07:34:28
違ってるね。aとbの添え字。

21:名無しさん
08/08/05 07:45:34

axb[0] = a[2] * b[3] - a[3] * b[2];
axb[1] = a[3] * b[1] - a[1] * b[3];
axb[2] = a[1] * b[2] - a[2] * b[1];

axb[0] = a[1] * b[2] - a[2] * b[1];
axb[1] = a[2] * b[0] - a[0] * b[2];
axb[2] = a[0] * b[1] - a[1] * b[0];

axb = |a| * |b| * sin(theta)
直交ベクトルどうしのベクトル積は|a| * |b| * 符号
(1, 0, 0) x (0, 0, 1) ===> (0, -1, 0)
平行ベクトルどうしのベクトル積はゼロベクトル
(1, 2, 3) x (1, 2, 3) ===> (0, 0, 0)


22:デフォルトの名無しさん
08/08/05 10:39:44
>>21
ありがとうございました!
とても助かりました!

23:デフォルトの名無しさん
08/08/05 11:25:19
struct{
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
};
上記のようなマトリックスのクラスで、
m[1][2]のようにアクセスできるように演算子[]を多重定義せよ
という課題です。よろしくお願いします。

24:デフォルトの名無しさん
08/08/05 11:50:00
>>23
>>1くらい読め

25:デフォルトの名無しさん
08/08/05 16:39:16
2階線形常微分方程式、(d^2 y)/(dx^2 )=A(Aは任意の実数),dy/dx(x=0のとき)=0,y(x=0のとき)=0
をオイラー法で解くと、具体的にどのようなC言語のプログラムになるのでしょうか。
(刻み幅10の場合)

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



26:デフォルトの名無しさん
08/08/05 16:43:31
>>25
>>24

27:デフォルトの名無しさん
08/08/05 16:45:59
>>24 >>26
あんたも>>1を読もうな?読める?読めない?聖徳太(ry

28:デフォルトの名無しさん
08/08/05 16:47:27
> 気に入らない質問やその他や発言はスルーの方向で。
これね。読める?読めない?聖徳(ry

29:デフォルトの名無しさん
08/08/05 17:00:47
>>28
おまえがいうな

30:デフォルトの名無しさん
08/08/05 17:10:23
別に、テンプレを無視しているからって気に入らないとは限らないじゃんか

テンプレ通りじゃないから回答はしないけど、
スルーするほど気に入らないわけじゃないから
テンプレに則って質問すれば回答しますよっていう
意思表示でしょ?

もしくは、もっと単純に、このスレでは質問はテンプレ通りにしてくれよ
ていうアドバイスかもしれないし

31:デフォルトの名無しさん
08/08/05 21:39:59
お願いします

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
●トランプめくり
・好きなカードを入力する。
・好きなカードの柄を選択する。
・好きな数字を入力する。
・入力された好きなカードを表示して、指定したもので良ければ、
 トランプカードめくりを行う。

・トランプめくりの実行
・Enterキーにて、トランプを1枚表示する。
・入力された好きなカードが登場するまで繰返す。
 カードを何枚めくったか表示する。
・途中で終了したい場合は、'E' or 'e' + Enterキーで終了する。
[3] 環境
 [3.1] OS:Windows
 [3.2] VC
 [3.3] 言語:C
[4] 期限: [無期限]
[5] その他の制限:

32:デフォルトの名無しさん
08/08/05 22:02:22
【質問テンプレ】
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):
LU分解による連立一次方程式について、その精度を計算するプログラムを作成せよ。過程がわかるようにコメントを添えること。
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: Cのみ
[4] 期限: 8月8日17時
[5] その他の制限 とくになし
精度計算の方法からすでに僕ではわかりません。
4次元くらいの方程式で大丈夫だと思います、よろしくお願いします。

33:名無しさん
08/08/05 22:49:10
>>32
精度補償付き数値計算でググれ
インラインアセンブリが必要になるが、線形計算の精度を出せる。

それでは学部の課題としては高度過ぎるか?
だとすると行列の条件値(condition number)の話かもしれない。
行列A
その逆行列をinv(A)
Aのノルムを ||A||
inv(A)のノルムを ||inv(A)||
とすると
条件値= ||A|| * ||inv(A)||
になる。
ノルムの定義は各種あるので調べてみよ。
条件値と精度を関連付ける理屈を理解する必要がある。そうしないとレポートにならない。
理屈さえ分かれば、ノルムの計算法と逆行列の求め方に帰着するはずだ。

34:デフォルトの名無しさん
08/08/05 23:04:10
>>29
> 気に入らない質問やその他や発言はスルーの方向で。

35:デフォルトの名無しさん
08/08/06 03:47:31
>インラインアセンブリが必要になるが
詳説もとめます。

36:デフォルトの名無しさん
08/08/06 03:57:58
前スレ>>631さま
前スレ>>558です。
遅くなりましたが、ありがとうございました。
コメントの文言を変える等の若干手を加えたことを除いて、ほぼそっくりそのまま、提出したところ、
昨日遅く返事が来て、たいへん褒められました。ほとんど減点が無いそうで、クラスで1人だけだそうです
しかし、是非、「解説を書いてくれ(なければネットで同じコードがないか探すぞ)」と言われて(脅されて)
困ってます。
コードを見ても、ちんぷんかんぷんです。(中級者コースですが、初心者レベルです(哀))
コードの内容を教えて下されば幸甚です。
何か、悪質な問題だとか、色々ご指摘を受けてたようですが、実際、意図的に制限を付けて難しくしたと
言っていました。

37:引用
08/08/06 05:17:34
[1]C言語中級コース
[2]標準入力から読み込まれた文字列を改行で区切って辞書順に比較し、長さ上位の10行について
その前後周辺5行(前2行+当該+後続2行)を行番号+":"付きで表示するプログラムを作成
しなさい。(後続が無い場合は空行を表示)
当該行は先頭行番号前に*を付けて区別させること。
表示が重なり合う場合にも対応し、同じ行を二度出力しないようにすること。
制限:行取り込みにはfgets関数を用いること。1行は最大で4Kバイト以内であるとして良い。
入力された文字列は物質のように扱い、その加工(複製、部分複製、結合、部分文字削除)は
一切禁止する。fgetsで上書きするかfreeで解放するこの2つ以外認めない。
行の長期記憶は、固定変数char *(memory[50])でのみ行うことが出来るものとし、
それ以外の変数(ポインタ以外)で行を記憶してはならない。
static変数は使ってはならない。mallocで確保した領域は必ずfreeすること。

URLリンク(kansai2channeler.hp.infoseek.co.jp)


38:名無しさん
08/08/06 08:19:28
>>35
正しくは、精度補償じゃなくて精度保証ね。

IEEE-754を前提として、浮動小数点数のラウンディングの方法(四捨五入、全て切り上げ、全て切り下げ)を制御ができる。
ラウンディングを「全て切り上げ」に設定して、線形代数の計算を1回行い、答えその1を得る。
次に、ラウンディングを「全て切り下げ」に設定して、同じ線形代数の計算をもう1回行い、答えその2を得る。
真の答え=( 答えその1 + 答えその2 ) / 2
精度=絶対値( 答えその1 - 答えその2 )
となる、という定理が証明されている。

インラインアセンブリについては URLリンク(www.oishi.info.waseda.ac.jp) を見よ。


39:名無しさん
08/08/06 08:23:09
Linuxだったら /usr/include/fpu_control.h も見よ。



40:デフォルトの名無しさん
08/08/06 08:40:23
>>36
cs.tuat.ac.jp?

41:デフォルトの名無しさん
08/08/06 12:52:02
なんかそんな寓話がありそうだな。

42:デフォルトの名無しさん
08/08/06 14:23:37
>>37

>636 :デフォルトの名無しさん :2008/07/30(水) 17:35:28
>>558
>>631
>この問題は仕様と満たそうとすると、10x5行をmemoryに取り込んだ状態で
>つぎの2行が取り込む物ではないが、さらに次の行では取り込む物の場合
>過去の2行復元が出来ないよ。
最近読み込んだのは、それは長期じゃないから、長期記憶領域と呼ばないで良いとしないと出来ない。

43:デフォルトの名無しさん
08/08/06 15:02:05
>>42
>>37
> それ以外の変数(ポインタ以外)で行を記憶してはならない。
この、「ポインタ以外」ってのも良くわからない。
ポインタなら構わないという意味にも取れるが、
それなら、別途ポインタの配列を作るよな・・・

44:デフォルトの名無しさん
08/08/06 15:27:57
おやおや、麻呂のクソースの出番でおじゃるか?
麻呂を呼んだのは誰でおじゃ~る?えっ?お呼びでない?

45:デフォルトの名無しさん
08/08/06 17:13:15
んにゃ。多分お呼びじゃない

46:42
08/08/06 17:25:46
>>43 無理やり、こう↓読まないと解けない問題
>行の長期記憶は、固定変数char *(memory[50])でのみ行うことが出来るものとし、
ポインタ変数以外の変数     で行を記憶してはならない。
>それ以外の変数(ポインタ以外)で行を記憶してはならない。

47:デフォルトの名無しさん
08/08/06 17:41:04
[1]C言語演習(入門コース)
[2] 次の10進数覆面算を解くプログラムを作って実行させる。
(解は何個あるかを求める。0個の場合もあるかも知れない)
(FINE+PROGRAM)*IS=DIFFICULT
PC*LANG=IS*NICE
LANG<>NICE
PC<>IS
(同時に満たすものを探す)
(異なる文字で同じ数字が割り当てられても良いが、同じ文字に複数の数字を割り当てられないものと
する。また文字列先頭は0で始まらないものとする。
解が無いことが事前に判明した場合は、その理由を記せば、コードを書かなくても良い。
[3]Linux/gcc/C
[4]8/31 正午(プログラムと解説、実行結果をメール)

手が付けられません。よろしくお願いします。解説と実行結果のほうも甘えてよろしいでしょうか?
まだ期限まで時間がありまんで、回答は急ぎません。

48:デフォルトの名無しさん
08/08/06 18:44:16
>>47
URLリンク(kansai2channeler.hp.infoseek.co.jp)

解説:
総当りしただけ
実行結果:
 A=9 C=0 D=3 E=0 F=2 G=0 I=5 L=4 M=9 N=5 O=2 P=6 R=5 S=4 T=6 U=0  @@@

49:デフォルトの名無しさん
08/08/06 19:43:26
ヤター
俺が一番載りだ!
皆見てくれ凄いだろ

50:デフォルトの名無しさん
08/08/06 19:58:04
以下の二つの問題が分かる方助けて頂きたく願います

1.キーボードから入力した二つの整数値x,yのxのy乗を計算するプログラム
 を作成しなさい。

2.キーボードから入力した文字列を全て大文字(小文字は大文字に、大文字
 はそのまま)に変換して表示するプログラムを作成しなさい。ただし、文字
 を大文字に変換する関数を作成し、それを利用すること。

この二つです、よろしくお願いします

51:デフォルトの名無しさん
08/08/06 20:00:57
真似されないうちに貼っておこう
#include <stdio.h>
#define xx(v, from) for(v = from; v <= 9; ++v)
#define yy(expr) if(!(expr)) break
#define zz(v) printf(" " #v "=%d", v)
static int A,C,D,E,F,G,I,L,M,N,O,P,R,S,T,U;
int main(){
xx(P, 1)xx(C, 0)xx(I, 1)xx(S, 0){
// generated by "...".split(//).inject {|acc, item| "("+ acc +")*10+"+ item }
yy(P*10+C != I*10+S);
xx(L, 1)xx(A, 0)xx(N, 1)xx(G, 0)xx(E, 0){
yy(((L*10+A)*10+N)*10+G != ((N*10+I)*10+C)*10+E);
yy((P*10+C)*(((L*10+A)*10+N)*10+G)==(I*10+S)*(((N*10+I)*10+C)*10+E));
xx(D, 1)xx(F, 1)xx(M, 0)xx(O, 0)xx(R, 0)xx(T, 0)xx(U, 0){
yy((((((F)*10+I)*10+N)*10+E)+( ((((((P)*10+R)*10+O)*10+G)*10+R)*10+A)*10+M))*(I*10+S)
==(((((((((D)*10+I)*10+F)*10+F)*10+I)*10+C)*10+U)*10+L)*10+T));
zz(A);zz(C);zz(D);zz(E);zz(F);zz(G);zz(I);zz(L);zz(M);zz(N);zz(O);
zz(P);zz(R);zz(S);zz(T);zz(U);puts(" @@@");}}}}

52:デフォルトの名無しさん
08/08/06 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう

53:デフォルトの名無しさん
08/08/06 20:20:53
すみません>>50です質問し直します
[1] プログラミングⅠ
[2] 1.キーボードから入力した二つの整数値x,yのxのy乗を計算するプログラム
  を作成しなさい。

  2.キーボードから入力した文字列を全て大文字(小文字は大文字に、大文字
 はそのまま)に変換して表示するプログラムを作成しなさい。ただし、文字
 を大文字に変換する関数を作成し、それを利用すること。

[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明日の昼まで出来たらお願いします
よろしくお願いします

54:デフォルトの名無しさん
08/08/06 20:21:36
>>50
1.位は自力でやれば?
2.
#include<stdio.h>
void smallToCapital(char* string);
int main()
{
char* str;
scanf("%s",str);
smallToCapital(str);
printf("%s",str);
}
void smallToCapital(char* string)
{
char c;
int i;
for(i=0;c=string[i];i++)
{

if('a'<=c&&c<='z')
string[i]+='A'-'a';

}
}

55:デフォルトの名無しさん
08/08/06 20:26:54
52 名前: デフォルトの名無しさん Mail: 投稿日: 2008/08/06(水) 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう

56:デフォルトの名無しさん
08/08/06 20:32:13
>>54
ご回答ありがとうございます。
何分初心者なもので
なんとか1もお願いできませんでしょうか。

57:デフォルトの名無しさん
08/08/06 20:35:52
>>48様 解は16個、ちなみにこれ皆DIFFICULT
118815618
125521431
125521536
132232630
143346720
145549426
146643816
266665196
352250046
367767552
442248128
442248226
452258950
494497895
494497990
574472340

58:54
08/08/06 20:39:50
>>56
超適当
#include<stdio.h>
int pow(int x,int y);
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
z = pow(x,y);
printf("%d",z);
}
int pow(int x,int y)
{
int z=1,i;
for(i=0;i<y;i++)
z*=x;
return z;
}

59:デフォルトの名無しさん
08/08/06 20:42:34
>>58
適当でも十分です
ご回答感謝します

60:デフォルトの名無しさん
08/08/06 20:48:13
55 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:26:54
52 名前: デフォルトの名無しさん Mail: 投稿日: 2008/08/06(水) 20:01:44
51 名前:デフォルトの名無しさん 投稿日:2008/08/06(水) 20:00:57
真似されないうちに貼っておこう

61:デフォルトの名無しさん
08/08/06 20:56:54
真似されない内の意味が分からん。貼ったらそれを真似されるだろw

62:デフォルトの名無しさん
08/08/06 23:45:21
>>54
今日も一人クズを育てたねw
おつかれさま。設問1のプログラム書いて貼る時の気持ち、お察しします。

63:デフォルトの名無しさん
08/08/06 23:51:03
>>54
ある意味神頼みなコードやね
コンパイラとか最適化とかデバッグオプションの有無で動いたり動かなかったりw

64:デフォルトの名無しさん
08/08/07 00:01:43
動くときがあればいいんだけどなw

65:デフォルトの名無しさん
08/08/07 00:14:48
>>36
上位10行:*行  上位10行でない行:-行とする

先頭10行は無条件に読み込み、memory内に設定(全部*行)
読込み中にmemory内の最小値の位置を記憶しておく

11行目以降は、読み込んだ行が最小値より小さいか大きいかで分岐

小さい場合
 memory内の最後の*行の後ろに-行が2行設定されているかどうかで分岐
 設定されていない
  読み込んだ行を、memoryの最後に-行として設定
設定されている
  rlineの位置を1つずらす(rline内には最大で次に読み込む行の前2行を記憶)

大きい場合
 最小値の行を-行にする
 最小値の行とその前後2行の内、memory内から削除可能な範囲を削除 
 
 読み込んだ行の前の行がrline内にある場合は-行としてmemoryの最後に追加
 読み込んだ行を*行としてmemoryの最後に追加

 memory内の*行の内、最小値の位置を求める

こんな感じ(あんまりソースのコメントで書いてあることと変わらないけど)

66:デフォルトの名無しさん
08/08/07 00:46:55
>>63
char *str; を char str[12345]; とかえれば、特に問題ないと思いますが、どういう最適化がはたらくのでしょうか。
for(i = 0; (c = string[i]); i++) { 
と書いたほうがいいのはなぜでしょうか?

67:デフォルトの名無しさん
08/08/07 00:51:02
>>66
あれ?入門スレとここ以外にもマルチしてる?

68:デフォルトの名無しさん
08/08/07 00:52:25
>>67
ここにしか投げていませんし、ここしか読んでいません。

69:デフォルトの名無しさん
08/08/07 00:55:28
スレリンク(tech板:674番)
これと同じだったものでマルチかなと思ったんだけどほかの生徒さんか

70:デフォルトの名無しさん
08/08/07 00:59:46
それはいいとして、後者は警告を防ぐため。
条件部に代入文を書くと警告が出るのを防ぐために、()をつけてる。

71:デフォルトの名無しさん
08/08/07 01:03:57
>>70
たしかに、gcc ではtrue/false 判定をする代入文を使用すると「丸括弧でくくったほうがいいのでは?」という warning が出ますが、
なぜそんな warning を出すようにしているのか、よくわからないのです。

72:71
08/08/07 01:05:04
単に == と = の間違いを警戒しているだけかもしれませんが。

73:デフォルトの名無しさん
08/08/07 01:15:18
>>47 >>48 を元に変更させていただきました。
long int left, right1, right2, right3, right4, right5, right6, right7, right8, right9;
FOR_(P, 1) FOR_(C, 0)
FOR_(I, 1) FOR_(S, 0)
{
IF_(P!=I || C!=S);
FOR_(L, 1) FOR_(A, 0) FOR_(N, 1) FOR_(G, 0)
FOR_(E, 0)
{
IF_(L!=N || A!=I || N!=C || G!=E);
IF_((P*10+C) * (((L*10+A)*10+N)*10+G) == (I*10+S) * (((N*10+I)*10+C)*10+E));
FOR_(F, 1)
FOR_(R, 0) FOR_(O, 0) FOR_(M, 0)
{
left = (I*10+S) * (((((F)*10+I)*10+N)*10+E)
+ ( ((((((P)*10+R)*10+O)*10+G)*10+R)*10+A)*10+M ) );
right9 = left%10; left /= 10; right8 = left%10; left /= 10;
right7 = left%10; left /= 10; right6 = left%10; left /= 10;
right5 = left%10; left /= 10; right4 = left%10; left /= 10;
right3 = left%10; left /= 10; right2 = left%10; left /= 10;
right1 = left%10;
IF_( right2==I && right3==F && right4==F && right5==I && right6==C && right8==L );
FOR_(D, 1) FOR_(U, 0) FOR_(T, 0)
{
IF_( right1==D && right7==U && right9==T );
PRINT_(P); PRINT_(C); PRINT_(I); PRINT_(S);
PRINT_(L); PRINT_(A); PRINT_(N); PRINT_(G);
PRINT_(E); PRINT_(F);
PRINT_(R); PRINT_(O); PRINT_(M);
PRINT_(D); PRINT_(U); PRINT_(T);
puts(" @@@");
} } } }

74:デフォルトの名無しさん
08/08/07 01:56:25
>>57
やはり、麻呂のクソースの出番でおじゃるか・・・

75:デフォルトの名無しさん
08/08/07 02:08:31
>>57
別の文字なのに同じ数字が入ってもええのん?

76:デフォルトの名無しさん
08/08/07 02:09:23
>>75
>>47 によればおk

77:デフォルトの名無しさん
08/08/07 02:10:01
>>47
> 異なる文字で同じ数字が割り当てられても良いが
でしたね、すまそ。

78:デフォルトの名無しさん
08/08/07 03:54:36
>>73
LANG!=NICEだけど
G==Eでも構わないはずでは?

79:デフォルトの名無しさん
08/08/07 04:34:13
麻呂のクソースは数日掛かるでおじゃる。あっ、いや、ちょっと書店へ・・・
覆面算のソースを載せている本を探しに、でなぁ・・・

80:デフォルトの名無しさん
08/08/07 04:37:20
>>47
#include<stdio.h>
#define FINE (F*1000+I*100+N*10+E)
#define DIFFICULT (D*100000000+I*10010000+F*1100000+C*1000+U*100+L*10+T)
#define PC (P*10+C)
#define LANG (L*1000+A*100+N*10+G)
#define NICE (N*1000+I*100+C*10+E)
int main(void){
int program, is, A, C, D, E, F, G, I, L, M, N, O, P, R, S, T, U;
for(is=10;I=is/10,S=is%10,is<=99;is++){
for(D=1;D<=9;D++){ // DIFFICULT
for(F=1;F<=9;F++){ // FINE
for(C=0;C<=9;C++){
for(U=0;U<=9;U++){
for(L=1;L<=9;L++){ // LANG
for(T=0;T<=9;T++){
if(DIFFICULT%is) continue;
for(N=1;N<=9;N++){ // NICE
for(E=0;E<=9;E++){
program=(DIFFICULT/is)-FINE;
if(program<1000000 || program>9999999) continue;
P= (program/1000000)%10;
R= (program/100000)%10;
O= (program/10000)%10;
G= (program/1000)%10;
if((program/100)%10!=R) continue;
A= (program/10)%10;
M= (program/1)%10;
if(PC*LANG==is*NICE && LANG!=NICE && PC!=is) printf("(%d+%d)*%d=%d %d*%d=%d*%d\n", FINE, program, is, DIFFICULT, PC, LANG, is, NICE);
} } } } } } } } }
return 0;
}

81:73
08/08/07 04:53:45
>>78
G=E と、なる場合は、G=E=0 またはG=E=1 というクイズ。
ここで>>73に追加
#define IF_(expr) if(!(expr)) /*break*/continue

82:デフォルトの名無しさん
08/08/07 13:51:10
[1] 授業単元: 宿題じゃないんだ、すまない。
[2] 問題文(含コード&リンク):
 次の関数作っておねがいぷりーず。
 1.辺の長さがlhの正六角形からはみ出ない最大の正方形の辺の長さlsを求める関数。
 2.辺の長さがlsの正方形がはみ出さない最小の正六角形の辺の長さlhを求める関数。
 lhとlsはどちらもfloat型。小数点以下6桁までは精度保って。
[3] 環境
 [3.1] OS: WindowsXPだが?
 [3.2] VC8.0でおk
 [3.3] 言語: Cでいい
[4] 期限: なるたけ早く
[5] その他の制限:

83:デフォルトの名無しさん
08/08/07 14:17:40
数学方面のスレでそれぞれのいっぺんを求める式を得たほうが楽なような

84:デフォルトの名無しさん
08/08/07 15:20:08
ほっほっほ、最初から真似するつもりはないでおじゃるが、今回は
真似どころか麻呂オリジナルクソースになりそうでおじゃるなぁ~
後出しジャンケン、勝たぬなら、負けて見せようホトトギス

85:デフォルトの名無しさん
08/08/07 15:21:22
正六角形の中に円を描いて正方形を描くのかな
それなら簡単な気がする

86:デフォルトの名無しさん
08/08/07 16:15:17
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
 パーティクルを採用した、エフェクトプログラムデモを作成する。
 ・光の粒子が回転移動。
 ・爆発エフェクト(破片の物理移動) など。
 例)花火
   1.情報の洗い出し → 構造体
   2.初期化 → 爆発時に初期データセット
   3.実処理 → 移動、加減速、色調
   4.後処理 → 情報の削除(メモリの解放)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: Cのみ
[4] 期限: 8月18日
[5] その他の制限:特になし

 エフェクトは自由にとのことでしたが、炎や、例にある花火で作っていただけるとありがたいです。
 期限がまだあるため、早急な回答は求めません。
 よろしくお願いします。

87:デフォルトの名無しさん
08/08/07 16:30:04
>>86
3D?
DirectX 使ってもいいのなら探せばサンプルあるだろ

88:デフォルトの名無しさん
08/08/07 16:42:00
>>85
正方形の角が全部、六角形の変にくっつく方が、若干デカくね?

89:デフォルトの名無しさん
08/08/07 16:50:28
>>82
一定の係数をかけるだけになるだろうからその係数をさがせば
float func(float lh) { return lh * SECRET_NUMBER; }


90:デフォルトの名無しさん
08/08/07 17:00:36
あるクラスの試験の点数を整数で繰り返し入力し、
点数の合計と平均点を出力するプログラムを作成しなさい。
点数は、0点以上100点以下とし、
この範囲外の点(0点未満または100点より大きい点)が入力されたときは、
入力を終了し、点数の合計と平均点を出力する
(最後に入力された範囲外の点は集計の対象としない)。
また、平均は小数点以下2桁まで出力する。
繰り返しの命令は、何を使ってもよい。

91:デフォルトの名無しさん
08/08/07 17:03:14
>>90
>>1くらい読め

92:デフォルトの名無しさん
08/08/07 17:07:07
> 気に入らない質問やその他や発言はスルーの方向で。
オマエモナー、って読める?読めない?聖徳(ry

93:デフォルトの名無しさん
08/08/07 17:09:22
>>92
スルーできてないw

94:デフォルトの名無しさん
08/08/07 17:18:51
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
4*4行列の列ごとの各要素の絶対値の総和の最大値
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C
[4] 期限: 8月8日12:00まで

課題の途中で上記の関数が作れないので止まりました・・・行列は2次元の配列で定義しているので
配列を引数にできるように関数を作ってください。。。

95:86
08/08/07 17:19:50
>>87
説明不足すいません。DirectXは使用不可です。
3Dは使わず、"*"や、"+"などの記号で表現お願いします。
訂正申し訳ありません。

96:デフォルトの名無しさん
08/08/07 17:25:19
>>95
ベースとなるサンプルはないの?

97:86
08/08/07 17:56:51
>>96
炎のエフェクトの実行結果を見せてもらっただけなので、サンプルは貰っていません。
炎は、各方向に記号が常に飛び散っているエフェクトでした。

98:デフォルトの名無しさん
08/08/07 18:16:35
>>97
もっと具体的にかけないものかね。
コンソールアプリなのかどうかすら読み取れない

99:デフォルトの名無しさん
08/08/07 18:50:48
>>90 [C/C++ : C]
#include <stdio.h>

int main(void){
  int count = 0;
  int total = 0;
  int data = 0;

  do {
    printf("INPUT [%2d] :", count+1);
    if(fscanf(stdin, "%d", &data) < 1) break;
    if(data < 0 || data > 100) break;
    total += data;
    count++;
  } while(1);

  if(count)
    printf("COUNT=%d, AVERAGE=%.2f\n", count, (float)total/count);
}

100:85
08/08/07 19:07:38
>>82
家に着いたから書いてみた。あってるのかは知らない
URLリンク(kansai2channeler.hp.infoseek.co.jp)


101:デフォルトの名無しさん
08/08/07 19:32:51
>>82
>>82
#include<stdio.h>
#include<math.h>
int main(void){
float lh, ls;
double magic_number;

magic_number=3-sqrt(3);

printf("\nInput lh : ");
scanf("%f", &lh);
ls=lh*magic_number;
printf("ls=%f\n", ls);

printf("\nInput ls : ");
scanf("%f", &ls);
lh=ls/magic_number;
printf("lh=%f\n", lh);

return 0;
}

102:82
08/08/07 20:55:06
>>100
とても素直なプログラムだな。思考の仕方がよく見える。

>>101
マジックナンバーがとってもスマートだな。こりゃいい。

どちらさんもありがとう、ありがとう。

103:デフォルトの名無しさん
08/08/07 23:12:00
>>102
>>100>>101で数値が違うがどうすんだ?

104:デフォルトの名無しさん
08/08/07 23:36:58
>>98
コンソールアプリです。
あまりプログラムが分からず、度々すんません。

105:デフォルトの名無しさん
08/08/07 23:58:29
>>103
>>101 (>>88) のほうが正解だろうね、>>100 (>>85) よりも大きな正方形。

106:デフォルトの名無しさん
08/08/08 01:12:10
>>94
二元配列を引数にとるのは面倒だからそれを入れた構造体を作るのがいいと思うよ
>>86
難解だね、暇だからちょっとやってみるけど期待しないでね

107:デフォルトの名無しさん
08/08/08 01:48:37
>>94
double f(double a[4][4])
{
double max = 0;
int i, j;

for(i=0; i<4; i++) {
double temp = 0;
for(j=0; j<4; j++) temp += fabs(a[j][i]);
if(temp > max) max = temp;
}

return max;
}

108:デフォルトの名無しさん
08/08/08 07:11:55
>>107 double f(double a[4][4]) じゃなくて、ポインタ。
double f(double (*a)[4])
>>37 *(memory[50]) って、*memory[50] と同じ。

109:デフォルトの名無しさん
08/08/08 09:00:12
107の書き方でも別に問題ないと思うけど?
初心者にはこっちの方がわかりやすいだろうし。

110:デフォルトの名無しさん
08/08/08 09:00:47
いっけねぇ
ポインタじゃなくてポンタかと思ってた

111:デフォルトの名無しさん
08/08/08 18:47:54
>>106
WindowsXPだとエスケープシーケンスが使えないと仮定したほうがよさそうです

// 最下位ビットから順に RGB で光(≠色)の三原色の合成です RG=黄色 GB=水色 RB=紫 RGB=白色
void set_color(int color){
if(color>=0 && color<=7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

// (x,y)=(0,0) が左上になります (※スクロールバーがある場合は一番(左)上までスクロールバーが移動します)
void set_cursor_pos(int x, int y){
COORD pos;
pos.X=x;pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}

112:デフォルトの名無しさん
08/08/09 00:04:45
[1] 検索
[2] 配列に格納された文字列を前方一致検索して表示する
[3] 環境
 [3.1] Windows xp
 [3.2] borland
 [3.3] C言語
[4] 期限:2008年08月10日


113:デフォルトの名無しさん
08/08/09 00:58:34
っつーかね、最近思うんよ、書店で参考書を探せば答えられる課題なんて
いくらでもあると。

114:デフォルトの名無しさん
08/08/09 01:52:21
でもこのスレってそういうもんじゃね?

宿題で参考書買って解けないような問題出すやつある意味すげえよ

115:デフォルトの名無しさん
08/08/09 01:53:06
まぁ、学校ごとに固有の問題を出してはいるが、それでも解き方や
ヒントは普通にあるわけで・・・

116:デフォルトの名無しさん
08/08/09 02:24:09
>>114
それが結構あったりするのです‥‥‥。いや、それが面白かったりして。

117:デフォルトの名無しさん
08/08/09 07:02:53
void型関数、指定された文字を指定された個数だけ表示させる関数本体を作成する問題
 

#include <stdio.h>

void putnchars(char x,int n);

int main(void)
{
putnchars('A',1);
putnchars('B',2);
putnchars('C',3);
putnchars('D',4);

return 0;
}
//関数本体を作成せよ

実行結果が
A
BB
CCC
DDDD

となるようにしなければいけないのですが、どうしてもできません。教えてください



118:デフォルトの名無しさん
08/08/09 07:35:16
>>117
#include <stdio.h>
void putnchars(char x,int n) {
for(;n>0;n--) putchar(x);
puts(""); }
int main(void) {
putnchars('A',1); putnchars('B',2);
putnchars('C',3); putnchars('D',4);
return 0; }


119:デフォルトの名無しさん
08/08/09 07:52:24
ありがとうございます。助かりました。

120:デフォルトの名無しさん
08/08/09 08:41:23
コードに該当する部分に全角はいかんよ、文字列ならそれを扱うルールはあるが
コードに該当する部分は原則半角じゃ。

121:デフォルトの名無しさん
08/08/09 11:22:23
>>120
そうだね
全角文字だとエラーでコンパイルできないもんね


122:デフォルトの名無しさん
08/08/10 20:18:45
ラベルや関数名は全角文字OKだろ。

123:デフォルトの名無しさん
08/08/10 20:39:38
122 名前:デフォルトの名無しさん 投稿日:2008/08/10(日) 20:18:45
ラベルや関数名は全角文字OKだろ。


124:デフォルトの名無しさん
08/08/10 20:40:19
>>122>>117が読めない子

125:デフォルトの名無しさん
08/08/10 20:46:34
#include <stdio.h>
int 関数(void) {
printf("あああ\n");
return 0;
}
int main(void) {
関数();
return 0;
}

エラー出ました orz

126:デフォルトの名無しさん
08/08/10 20:55:11
>>125
VC++2008でビルドしたらコンパイル出来た
まあ使わないけどね


127:デフォルトの名無しさん
08/08/10 21:09:55
コンパイラが都合よく見繕ってくれるってのも、プログラマの認識レベルを下げる
原因になりそうな気がするのだが、まぁ車も安全装置が開発されたりと
それでもやらかす奴はやらかすわけで・・・

128:デフォルトの名無しさん
08/08/10 21:24:25
大規模なソフトウェアを開発をしたいと思ったら
自動化できることはできる限り自動化しないと
人間の把握できる範囲を超えてしまう

もちろん基礎は大事

129:デフォルトの名無しさん
08/08/10 21:40:21
[1]ゲームアルゴリズム
[2]テトリス制作でブロックを落とすところ(回転はしなくてよい)
[3]Windows Vista
Microsoft Visual Studio 2005
  C++
[4]8/20まで
[5]現在、基本情報技術者午後レベルを習っている状況

問題点
・凸型ブロックが落ちると途中で四角になってしまう
・左右移動するとブロックが分解された残像みたいなのが残る
・最下位の床につくと止まらずに突き抜けてしまう
コードをテキストでうpしました。
URLリンク(www2.uploda.org)

130:デフォルトの名無しさん
08/08/10 23:29:49
>>129
152-159行目をチェックしな

同じような部分が何度もでているところは関数に分けた方がいい

131:130
08/08/10 23:35:29
>・凸型ブロックが落ちると途中で四角になってしまう
これしか見てなかった
全面的に作り直してねって事だったんだなw

132:デフォルトの名無しさん
08/08/11 03:21:29
>>129
みられない

133:デフォルトの名無しさん
08/08/11 08:39:25
>>132
再うp
URLリンク(www.uploda.org)

134:デフォルトの名無しさん
08/08/11 10:10:48
プログラム全体の見通しがあまりにも悪いから、最初から書き直した方が良い。
機能単位に分けてちゃんと処理追えるようにさ。
悪いけど、こんなもんどこにバグがあるかなんて探したくもない。

135:デフォルトの名無しさん
08/08/11 10:12:48
>>134
すいません。出直してきます

136:デフォルトの名無しさん
08/08/11 10:48:09
>>135
方針として
1.固定化されたブロックと表示用のバッファは別にする
2.ブロックの移動に関する処理はブロックの種類によらず共通化する

137:デフォルトの名無しさん
08/08/11 11:10:45
>>136
丁寧なご回答ありがとうございました。がんばります

138:デフォルトの名無しさん
08/08/11 12:07:34
>>86
やってみた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

139:901
08/08/11 14:14:57
【質問テンプレ】
[2] 問題文:Bingoゲーム
・使用する数字は1~75まで、同じ数字は、登場しない
・スペースキー押下にて、スロットのように表示する。
ヒント:for文を使用して行う。
表示する際は、一旦、画面消去してから、表示することになる。
・スペースキー押下にて、停止させる。
ヒント:kbhit(),_getch() 関数を使用する。
・登場した番号リストを表示する。
・終了は、'E' or 'e'にて、終了するか、全ての数字が登場した場合。
[3] 環境
 [3.1] OS:Windows
 [3.2] VS
 [3.3] C
[4] 期限:できるなら早めがいいです
[5] その他の制限:俺に聞けスレから誘導されましたあちらへの書き込みは以下です

901 :デフォルトの名無しさん:2008/08/11(月) 13:17:59
こんにちは質問です
決められた範囲(こちらで指定する)の数字をスロットのように表示させるにはどうすればいいでしょうか?
画面はコマンドプロンプトでjpgなどは無しでおねがいします
905 :901:2008/08/11(月) 13:53:55
また、スペースキーを押した場合そのスロットが止められるように とのことなんですが・・・
ループ処理で、printfで表示したものを消す→表示→消す→表示
みたいなやり方とかあるんでしょうか?
また後出しになって申し訳ありませんが
kbhit(),_getch() 関数を使用する
そうです。関係なかったらすみません


140:sage
08/08/11 15:26:46
2分探査木と平衡木のどちらかをc言語でつくれ(データの追加、削除をする機能を含む)

↑が全くできません。助けて下さい

よろしくお願いします


141:sage
08/08/11 15:29:38
2分探査木と平衡木のどちらかをc言語でつくれ(データの追加、削除をする機能を含む)

↑が全くできません。助けて下さい

よろしくお願いします


142:デフォルトの名無しさん
08/08/11 15:42:37
[1] 数理物理
[2] 1、∫(sinx)^πdx (∫の上が1、下が0)
    の計算をガウス・ルジャンドル積分法とモンテカルロ法で計算し、比較せよ。

  2、x,y,z>0 x+y+z<1 で囲まれる三角錐に
(x-1/3)^2+(y-1/3)^2+(z-1/3)^2>(1/2√3)^2
の球で削った部分の体積を求めよ。

[3] 環境
 [3.1] Linux
 [3.2] ?
 [3.3] C
[4] 明後日までにお願いします。

どうしてもわからないのでお願いします。


143:デフォルトの名無しさん
08/08/11 15:57:38
>>142
C/C++の宿題を片付けます 114代目
スレリンク(tech板:619番)
スレリンク(tech板:723番)


144:デフォルトの名無しさん
08/08/11 16:37:38
[1] c入門
[2] 単方向,非循環の線形リストをC言語でつくれ
(条件ポインタ,構造体を使用する・線形リストの生成・データ削除の機能)
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 今日


145:デフォルトの名無しさん
08/08/11 16:50:52
>>144
C/C++の宿題を片付けます 114代目
スレリンク(tech板:606番)

146:デフォルトの名無しさん
08/08/11 17:15:42
>>145
727 名前:デフォルトの名無しさん[sage] 投稿日:2008/07/31(木) 16:47:18
>>606
URLリンク(kansai2channeler.hp.infoseek.co.jp)


147:デフォルトの名無しさん
08/08/11 17:20:05
>>139
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define NUMBER_MAX 75
void swap(int *a, int *b){int c;c=*a; *a=*b; *b=c;}
void disp_numbers(int number[], int number_num){
int i;
system("cls");
for(i=0;i<number_num;i++) printf(" %2d ", number[i]);
printf("\n");
}
int main(void){
int number[NUMBER_MAX], i, x, keycode, is_exit=0;
for(i=0;i<NUMBER_MAX;i++) number[i]=i+1;
for(i=0;i<NUMBER_MAX;i++){
for(disp_numbers(number, i);;){
x=rand()%(NUMBER_MAX-i);
printf(" %2d \r", number[i+x]);
if(_kbhit() && (keycode=_getch())){
if(keycode==' ' || keycode=='E' || keycode=='e'){
swap(&number[i], &number[i+x]);
is_exit=(keycode=='E' || keycode=='e');
break;
}
}
}
if(is_exit) break;
}
disp_numbers(number, i);
return 0;
}

148:デフォルトの名無しさん
08/08/11 17:52:30
[1] c入門
[2] 2分探査木と平衡木のどちらかをc言語でつくれ
(データの追加、削除をする機能を含む)
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 今日

テンプ無視してすいません
よろしく願いします


149:デフォルトの名無しさん
08/08/11 18:04:26
>>148
C/C++の宿題を片付けます 114代目
スレリンク(tech板:175番)

URLリンク(www.psg.cs.titech.ac.jp)

150:デフォルトの名無しさん
08/08/11 19:21:14
>>144
仕様が指定されてない故、クソースでいくでおじゃっ、少し待ってたもう

151:デフォルトの名無しさん
08/08/11 20:03:21
>>144
URLリンク(kansai2channeler.hp.infoseek.co.jp)
番号を追加するだけでおじゃる

152:デフォルトの名無しさん
08/08/11 21:16:58
>>151
番号を追加するとはどういうことでおじゃるか
無能なまろに教えてくだしゃれ

153:デフォルトの名無しさん
08/08/11 22:12:00
ハンゲーム - チョコットランドと言うゲームで
NPC_2047から始まるクエストのプログラムで教えて頂きたいのです
クエストを受ける→クリアを素材、回数制限をなくしたくて
いろいろ試しているのですが
クエストが止まる、うけれなくなるの繰り返しで進めません
どうかご教授おねがいします
プログラムを書きたいのですが長すぎで省略すみません

154:デフォルトの名無しさん
08/08/11 22:16:37
>>152
実行して、追加、一覧表示で調べてみれば分かる

155:デフォルトの名無しさん
08/08/11 22:32:50
>>153
ケーブル抜いて首つれ

156:デフォルトの名無しさん
08/08/12 01:44:24
>>144
>>151は先頭を削除したときの対処をしていなかったでおじゃる。訂正。
URLリンク(kansai2channeler.hp.infoseek.co.jp)


157:デフォルトの名無しさん
08/08/12 08:47:32
自演で宿題w

158:デフォルトの名無しさん
08/08/12 12:27:45
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
A B C D E Fの6つのアルファベットから3つ選んだときの順列を列挙するプログラムを作れ

6P3=120通りである。l

[3] 環境
 [3.1] OS:Xp
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: ありません

159:デフォルトの名無しさん
08/08/12 12:35:15
>>158

puts("ABC");
puts("ACB");
puts("BAC");
puts("BCA");



puts("FED");


160:デフォルトの名無しさん
08/08/12 13:20:25
>>158
#include <stdio.h>

int main()
{
int i,j,k;
int count;
const char *table = "ABCDEF";

count = 0;
for(i = 0; i < 6; ++i){
for(j = 0; j < 6; ++j){
if(i == j)continue;
for(k = 0; k < 6; ++k){
if(k == i || k == j)continue;
if((count % 10) == 0)
printf("\n");
printf("%c%c%c ", table[i], table[j], table[k]);
count++;
}
}
}
printf("\n%d個", count);
return 0;
}

161:デフォルトの名無しさん
08/08/12 13:46:02
テーブル使わないver
#include<stdio.h>
int main()
{
int i,count=0;
for(i=0 ;i<6*6*6;i++)
{
int a1,a2,a3;
a1= i%6;
a2= (i/6)%6;
a3= i/(6*6);
if( a1 == a2||a2==a3||a3==a1)
continue;
printf("%c%c%c\n",a3+'a',a2+'a',a1+'a');
count++;
}
printf("%d",count);
return 0;
}


162:デフォルトの名無しさん
08/08/12 13:50:48
再帰で書こうとしたが無理だったorz

163:デフォルトの名無しさん
08/08/12 13:54:39
157 名前:デフォルトの名無しさん 投稿日:2008/08/12(火) 08:47:32
自演で宿題w

164:デフォルトの名無しさん
08/08/12 13:55:32
>>162
かけなくもないが、これは再帰で書く意味なくないか?

165:デフォルトの名無しさん
08/08/12 13:57:38
どう考えても再帰のほうが楽
#include<stdio.h>
void go(){
    int i=0,flag=0,j_[3];
    char s[4];
    j_[0]=-1;s[3]=0;
    do for(flag &= ~(1<<j_[i]);++j_[i]<6;)
        if(!(flag&1<<j_[i])){
            s[i]=j_[i]+'A';
            if(i+1==3)puts(s);
            else{
                flag |= 1<<j_[i++];
                j_[i]=-1;
            }
        }
    while(i--);
}
int main(void){
    go();
    return 0;
}


166:デフォルトの名無しさん
08/08/12 14:00:10
>>165
天才

167:デフォルトの名無しさん
08/08/12 14:05:55
再・・・帰?

168:デフォルトの名無しさん
08/08/12 14:13:04
うわ、再帰と非再帰間違った。
こっちを適当に非再帰に書き直したやつを張っちまった。
#include<stdio.h>

void go(char s[4],int flag,int i){
    int j;
    if(i==3){puts(s);return;}
    for(j=0;j<6;++j)
        if(!(flag&1<<j)){
            s[i]=j+'A';
            go(s,flag|1<<j,i+1);
        }
}
int main(void){
    char s[4];
    go(s,0,0);
    return 0;
}


169:デフォルトの名無しさん
08/08/12 14:20:38
なるほど・・・・使った文字をビット立てて記録しておくわけか
参考になったtnx

170:デフォルトの名無しさん
08/08/12 14:22:51
>>168
s[3]にごみが入ってて変になったよ


171:デフォルトの名無しさん
08/08/12 14:32:58
ここ思ったより人いるね、やっぱ学生が多いのか?

172:デフォルトの名無しさん
08/08/12 14:34:47
>>170
非再帰に直してる途中で発見したバグだから、
非再帰のほうでしかデバグしてなかった。
thx

173:デフォルトの名無しさん
08/08/12 14:50:07
>>165 が優秀過ぎ ><;

174:デフォルトの名無しさん
08/08/12 15:54:25
>>168
int i=0;
int j=1;
char s[4];

この条件で

s[i]=j+'A'

上記(s[0])に入るのって何なんでしょうか。メモリ内で'A'という文字が格納されたアドレスの、1バイト後のアドレス、すなわち'B'をs[0]に代入?

また、以下の条件を追加して、
int flag=0;

>>168にあるように、
if(!(flag&1<<j){
...}

とあったら、これは
・1をjbitずらす(=2)
・flagと2の論理積(=0)
であると思うのですが、その後の ! が解釈出来ません。
もし0じゃなければ、と解釈しようとしても、何が0じゃなければ?という疑問です。


175:デフォルトの名無しさん
08/08/12 15:57:17
'A' にアドレス関係ないぞ、定数だ。

176:デフォルトの名無しさん
08/08/12 16:45:08
>>174
・flagと2の論理積(=0)
↑これが0かどうか

177:デフォルトの名無しさん
08/08/12 18:04:43
>>175
配列に代入する場合、s[i]=1+'A' という表記は、その右辺は、'A'の格納されたアドレスに+1バイトのアドレスに格納された文字と同等である、ということになるのかと思いました。
いずれにしろchar型の配列に格納できるのは1バイトまでですから、上記のように考えてBという文字が格納されたんだと認識しないと意味が分からなかったので。
私の文章を見ると上記と言ってることが違いますね。

>>176
& とはビット毎の論理積で、だとすると
0000 // flag
0010 // 10進数の2の2進表記
0000 // 各ビットの論理積。10進表記すると0

調べたところ、論理積とはある数の第一ビット(右から二番目)が立っているか否かを調べるもの、と書いてありました。
それに従えば、flagは第一ビットが立っていないと言えないでしょうか。

178:デフォルトの名無しさん
08/08/12 18:19:37
>>177
元の話、全然見てないが、、、
環境によるけど通常、'A' は65だ。
s[i]=1+'A' なら、 s[i] = 1 + 65 つまり 66 を代入。
(文字コード66はすなわち 'B'だ)

for(j=0;j<6;++j)
if(!(flag&1<<j)){
この部分は自分で展開してみればいい
j が 0のとき
flag & 1 << 0 → flag & 00000001
1のとき
flag & 1 << 1 → flag & 00000010
以下
flag & 1 << 2 → flag & 00000100
flag & 1 << 3 → flag & 00001000

& の結果、flagの該当位置が1じゃなかったら結果が0になるだろ
0は偽だから、!で反転して真になる。
つまり左から j 番目のビットが0の場合にif文以下が実行される。

179:デフォルトの名無しさん
08/08/12 18:36:42
>>178
分かりました。レス下さった方々、ありがとうございました。

180:デフォルトの名無しさん
08/08/13 16:55:23
宿題カモーーーンっ!リストカモーーンッ!麻呂のクソースで対処するでおじゃっ

181:デフォルトの名無しさん
08/08/14 00:57:13
構わん、うpロダにソースを上げろ(麻呂の碇ゲンジバージョンのAA略)

182:デフォルトの名無しさん
08/08/14 04:51:55
[1] 授業単元:リスト
[2] 問題文(含コード&リンク):
単方向リストのソート関数を完成させよ
ソート順は昇順、降順のいずれでもよい
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 特になし
[5] その他の制限: 標準ライブラリの範囲内で

183:182
08/08/14 04:53:05
>>182 は宿題ではありません
気が向いたらやってみてください

184:デフォルトの名無しさん
08/08/14 06:58:29
麻呂はリストのソートは出来なかったでおじゃる(過去ログ参照)
出来なかったけど、やればなんとかなる、けど マンドクセッ でおじゃる。

185:デフォルトの名無しさん
08/08/14 17:29:32
>>182
list_t *list_sort(list_t *list, int (*cmp_func) (const data_t, const data_t))
{
    list_t *i, *j, *next, *item, *tmp;
    list_t head;
    head.next = list;
    for (i = &head; i->next; i = next) {
        next = i->next;
        for (j = &head; j->next != i->next; j = j->next) {
            if (cmp_func(i->next->data, j->next->data) < 0) {
                item = i->next;
                i->next = i->next->next;
                tmp = j->next;
                j->next = item;
                item->next = tmp;
                break;
            }
        }
    }
    return head.next;
}

186:デフォルトの名無しさん
08/08/14 17:45:28
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
URLリンク(gacco.o0o0.jp)
スレリンク(news4vip板)
URLリンク(ex14.vip2ch.com)
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
 *サーバー側
  言語はRubyかPerlの予定ですが、Perlが有力候補。
  ・チャット
   定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
   通信するときのフォーマットは未定。
  ・ログイン・アカウント管理
   ログイン認証、各アカウントの点数などの管理。データベースは未定。
  ・お絵描き
   未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
 *クライアント側
  はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
 挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
 サイトのデザインを考えてくれる人、作ってくれる人募集中。
 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)


187:デフォルトの名無しさん
08/08/14 18:03:20
>>186
wwwwwwwww 草が多過ぎてぁゃιぃから却下w

188:デフォルトの名無しさん
08/08/15 19:18:21
>>86 でミルククラウンに挑戦するものはいないか!

期日までにできるかどうか分からないし
二次元として計算する予定だからクラウンになるかどうかあやしいけどw

189:デフォルトの名無しさん
08/08/16 09:09:52
宿題こないね

190:デフォルトの名無しさん
08/08/16 09:14:54
休みだしコミケだしな

191:デフォルトの名無しさん
08/08/16 10:58:24
コミケは関係ないだろ

192:デフォルトの名無しさん
08/08/16 12:36:31
逆走すんなよ

193:デフォルトの名無しさん
08/08/16 13:22:02
英語のwrong wayには、一通を逆走するという意味と、道を誤るの二つの意味がある

194:デフォルトの名無しさん
08/08/16 15:41:59
後者の意味でどっちも説明できるな。

195:デフォルトの名無しさん
08/08/16 21:17:46
This is a pen. とかの英文章をファイルで入力して
単語ごとにバッファに詰めたいんですが上手くいきません。
単語の長さも持たせたいので構造体を使いたいです。
知恵を貸してください、お願いします。

196:デフォルトの名無しさん
08/08/16 21:22:40
stringつかえよ

197:デフォルトの名無しさん
08/08/16 21:22:45
上手くいかないソースを出せば知恵を貸してくれる人もいるだろうな

198:デフォルトの名無しさん
08/08/16 21:28:33
strtokとstd::stringでOKだよ

199:デフォルトの名無しさん
08/08/16 22:07:07
while ((c = fgetc(in)) != EOF) {
if ( (c != ' ') || (c != '\t') || (c != '\n') ) {
strcat(wp->string, c);
wp->length = strlen(wp->string);
} else {
strcat(wp->string, '\0');
wp++;
}
}
こんな感じで一個一個結合しようとしたんですが、
strcatは文字列同士じゃないといけないっぽくてでできなくて。
strtok便利そうですね。

200:デフォルトの名無しさん
08/08/16 22:12:02
>>199
よくわかんないけど、
wp->length = strlen(wp->string);
wp->string[wp->length] = c;
++(wp->length);
wp->string[wp->length] = '¥0';
こんな感じじゃ駄目なの?

201:デフォルトの名無しさん
08/08/16 22:30:49
>>200
文字化けとセグメントエラーでした。
strtok使ったほうが簡単そうなんでそっちで考えてみます

202:デフォルトの名無しさん
08/08/17 01:28:39
>>195
C?C++?
C++なら while(ifs >> str) strlist.push_back(str);
だけで済みそうな気がする

203:デフォルトの名無しさん
08/08/17 02:28:36
>>201
おそらくはポインタの指す先が確保されていない

204:デフォルトの名無しさん
08/08/17 09:49:09
すいません関数がわかりません。
[]の中に答えが入ります。

3つの整数を入力して、その和を表示する。
3つの整数の和を求めるkasan()関数を使う。

[]
void main(void)
{
int a,b,c,wa;
scanf("%d%d%d",&a,&b,&c);
printf("%d+%d+%d=%d\n",[]);
}
[]kasan([])
{
int kotae;
kotae=x+y+z;
[]
}

205:デフォルトの名無しさん
08/08/17 09:50:49
printf("%d+%d+%d=%d", a, b, c, kasan(a, b, c);
int kasan(int x, int y, int z)
return kotae;

206:デフォルトの名無しさん
08/08/17 09:52:10
あ、忘れた

#include <stdio.h>

それと

printf("%d+%d+%d=%d", a, b, c, kasan(a, b, c)); ←ここカッコ2つ

207:デフォルトの名無しさん
08/08/17 09:53:43
>>204
最初のところにプロトタイブ宣言が抜けてました。すいません


208:デフォルトの名無しさん
08/08/17 09:56:45
あ、そうだね。

int kasan(int x, int y, int z);

が必要か。

209:デフォルトの名無しさん
08/08/17 10:01:48
さっきのやつです。

点数を入力して、60点以上なら"合格"、60点未満なら"不合格"、と表示する。
点数によって"合格"、か"不合格"かを表示するhantei()関数を使う。

[]/*プロトタイプ宣言*/
void main(void)
{
int ten;
scanf("%d",&ten);
[]
}
[]hantei([])
{
if(data>=60)
printf("合格");
else
printf("不合格");
}

210:デフォルトの名無しさん
08/08/17 10:16:59
void hantei'int data);
hantei(ten);
void hantei'int data)

211:デフォルトの名無しさん
08/08/17 10:20:59
これで最後です。

2つの実数を入力して、その積と商を表示する。
2つの実数の積と商を求めるkeisan()関数を使う。

[]/*プロトタイプ宣言*/
void main(void)
{
float s,t,seki,sho;
scanf("%f%f",&s,&t);
[]
printf("%.1f*%.1f=%.1f\n",[]);
printf("%.1f/%.1f=%.1f\n",[]);
}
[]keisan([])
{
[]=su1*su2;
[]=su1/su2;
}

212:デフォルトの名無しさん
08/08/17 10:28:37
void keisan(float su1 float su2, float *seki, float *sho);
keisan(s, t, &seki, &sho);
printf("%.1f*%.1f=%.1f\n", seki);
printf("%.1f/%.1f=%.1f\n", sho);
void keisan(float su1, float su2, float *seki, float *sho)
*seki=su1*su2;
*sho=su1/su2;


213:デフォルトの名無しさん
08/08/18 23:04:51
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 多倍長演算(10進数)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++

除算のやり方がよくわかりません。


214:デフォルトの名無しさん
08/08/19 17:37:02
>>213
桁の数、期限が分かりません

215:デフォルトの名無しさん
08/08/19 20:01:05
>>213
やり方は筆算と引き算
符号に注意

216:デフォルトの名無しさん
08/08/19 20:42:09
すいませんはじめてなのですが。
長いソースコードでもここで質問してよろしいですか?
上の方にあるリンクは全然開けなくて。


217:デフォルトの名無しさん
08/08/19 21:04:41
単なる質問ならスレ違い
宿題を丸投げするならできればうpろだを使ってください

218:デフォルトの名無しさん
08/08/19 21:18:27
丸投げではないんですけどすでにソースコードを打ち込んだ後なのですが
メモリリークを起こしていて理由がよくわからないので教えていただきたい
のですが


219:デフォルトの名無しさん
08/08/19 21:22:00
>>218
ロダにうpしてみてよ
複数ファイルならzipとかで

220:デフォルトの名無しさん
08/08/19 21:31:43
遅れてすいませんUpろだに投稿しました。
自分はリソースの番号管理を作っていて、リソースを読み込むときに番号
を使用してるのをカウントして動的に管理しようとしているのですが。
メモリリークを起こしてしまって自分では対処できませんよろしくお願いします。


221:デフォルトの名無しさん
08/08/19 21:32:35
URLリンク(kansai2channeler.hp.infoseek.co.jp)

222:デフォルトの名無しさん
08/08/19 21:34:38
はいこのファイルです。どうかよろしくお願いします

223:デフォルトの名無しさん
08/08/19 21:35:51
エラー E2209 resource1.cpp 275: インクルードファイル 'gslib.h' をオープンできない
エラー E2209 resource1.cpp 308: インクルードファイル 'TestResourceList.h' をオープンできない

おいファイルが足りんぞ
これじゃCodeGuardを掛けられない

224:デフォルトの名無しさん
08/08/19 21:41:50
>>220
boost の shared_ptr についての質問で

class A
class B : public A
boost::shared_ptr< A > ptr=new B;

このとき B のデストラクタは呼ばれますかってこと?

225:デフォルトの名無しさん
08/08/19 21:47:13
すいません修正版をうpろだに上げました。
いいえ、理由はよくわからないのですが。ResourceList単体ではリークは
起こさないのですが。ResourceManagerに実装しようとするとリークが起こってしまうんです



226:デフォルトの名無しさん
08/08/19 22:02:53
これって、そもそも、何に基づいてリークが起きていると判断してるんだ?

227:デフォルトの名無しさん
08/08/19 22:10:59
相変わらず "gslib.h" が無いと言われるからこの行だけコメントアウト
してCodeGuard掛けてみたが、リークはないみたいだぞ

228:デフォルトの名無しさん
08/08/19 22:11:22
>> 226
自分が通っている学校の先生の作ったCxxTestのプログラムでのチェック
なのですが

229:デフォルトの名無しさん
08/08/19 22:17:22
そのCxxTestやらがおかしいんじゃないの?

230:デフォルトの名無しさん
08/08/19 22:36:36
なんかCodeGuard至上主義の人がいるようだが、それ使うと何がどこまで検出されるの?

231:デフォルトの名無しさん
08/08/19 22:47:54
>>229
そうですか、自分でもメモリリークをCrtDbgでやって見ましたがリークが
検出できないのでCxxTestのプログラムの所為かもしれないです。
教えていただいてありがとうございました。

232:デフォルトの名無しさん
08/08/19 22:50:42
>>230
メモリリークはほぼ100%、それから非初期化領域も
かなりの確率で発見できる。これだけのためにC++Builderを買ったぐらい。

ただC++以前に開発された部分がかなり残っているらしく、継承した
クラスを参照で渡すとそれも検出しやがる。例えばstd::ostreamに
std::fstreamを渡すとそれはひどい事に。まあ意図して検出しているの
かもしれんけど。

233:デフォルトの名無しさん
08/08/19 22:52:52
おっと誤解のないように

std::ostreamにstd::ofstreamな。わかると思うけど
こんなの検出する必要ねーしオプションで制御できるようにしとけ

234:デフォルトの名無しさん
08/08/20 15:02:30
<windows.h>をつかわず
ビットマップを読み込んで、色を文字で表したテキストファイルを出力する
◆仕様
・ビットマップは24bit限定
・テキスト出力フォーマット
0 1 2 3 ...
1 xx xx xx
2 xx xx xx
3 xx xx xx
.
.
.
・対象ビットマップ
 赤、青、緑、白、黒

◆コマンドライン引数
1.入力ビットマップファイル名
2.出力テキストファイル名

Cでおねがいできますか?

235:デフォルトの名無しさん
08/08/20 15:13:21
まだビットマップ読み込む課題出す駄目教師いるんだな

236: ◆gnmPGtYhqU
08/08/20 15:51:10
[1]C言語応用
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]OS:Windows 言語:C
[4]2008/08/26 23:59まで
[5]特に制限はありません
  よろしくお願いします

237:デフォルトの名無しさん
08/08/20 15:53:34
>>234
そもそも、ここで言う「ビットマップ」はファイルから読み込むらしいが、
そのフォーマットはどうなってるんだ?

238:234
08/08/20 15:56:08
ペイントでbmpファイルは自作です

239:234
08/08/20 16:28:31
すみません見当違いなレスしてしまいました
DIB形式です

240:デフォルトの名無しさん
08/08/20 17:17:52
すいません、リソースマネージャとかでお世話になった218ですが。
あの後、一応完成まで言ったんですが最後の最後でリンクエラーが起きて
ビルドが行きませんうpろだにはファイルをあげていますので誰かお願いします


241:デフォルトの名無しさん
08/08/20 17:23:10
>>240
リンクくらい貼れよ、バカ

242:デフォルトの名無しさん
08/08/20 17:28:57
すいません。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これですよろしくお願いします。

243:デフォルトの名無しさん
08/08/20 17:32:50
>>240
そもそも、リンクエラーって何が出てんのよ?

244:デフォルトの名無しさん
08/08/20 17:33:50
>>242
makefileとか無いぞ

245:デフォルトの名無しさん
08/08/20 17:41:33
自分はVisual C++しか使ったことがないのでmakefileとかに詳しくないです。すいません。
エラーは長いですけど以下のように出ています

エラー 1 error LNK2019: 未解決の外部シンボル "public: class
boost::shared_ptr<class IResource<unsigned int> > __thiscall ResourceIDManager::getFreeID<class ResourceManager::IDDeletor>
(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class ResourceManager::IDDeletor)"
(??$getFreeID@VIDDeletor@ResourceManager@@@ResourceIDManager@@QAE?AV?$shared_ptr@V?$IResource@I@@@boost@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VIDDeletor@ResourceManager@@@Z)
が関数 "private: bool __thiscall ResourceManager::loadGraphicsResource(class ResourceIDManager &,class boost::shared_ptr<class IResource<unsigned int> > &,
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool (__cdecl*)(unsigned int,char const *),void (__cdecl*)(unsigned int))"
(?loadGraphicsResource@ResourceManager@@AAE_NAAVResourceIDManager@@AAV?$shared_ptr@V?$IResource@I@@@boost@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@P6A_NIPBD@ZP6AXI@Z@Z) で参照されました。
ResourceManager.obj


246:デフォルトの名無しさん
08/08/20 17:59:02
>>237
24bit BMPって書いてあるだろ。要するに、ヘッダの部分から下は
一番下の行の左側のRGBから順に記録されているタイプ。

247:デフォルトの名無しさん
08/08/20 18:10:00
>>246
BMPなんてかいてねーよ。
ビットマップとしか書かれてないだろ。

248:デフォルトの名無しさん
08/08/20 18:20:22
>>234
ビットマップを読み込んで、色を文字で表したテキストファイルを出力する
◆仕様
・ビットマップは24bit限定

が読めない日本人じゃない奴が、北京五輪を機に紛れ込みましたか?
祖国のサイトにお帰り下さい。

249:基地外揚げ足取り
08/08/20 18:21:24
>>234
> <windows.h>をつかわず

247 名前:デフォルトの名無しさん 投稿日:2008/08/20(水) 18:10:00
>>246
BMPなんてかいてねーよ。
ビットマップとしか書かれてないだろ。

BMPなんてかいてねーよ。
ビットマップとしか書かれてないだろ。

BMPなんてかいてねーよ。
ビットマップとしか書かれてないだろ。

BMPなんてかいてねーよ。
ビットマップとしか書かれてないだろ。

250:デフォルトの名無しさん
08/08/20 18:22:30
>>247
どうせ答える気がないんだろ、だったら無知、揚げ足取り、横槍程度のバカは
口出しするなよ。言い草がみっともない。人として恥ずかしい。
> BMPなんてかいてねーよ。
> ビットマップとしか書かれてないだろ。
何これ?日本語が読めないバカって頭も悪いんだなw

251:デフォルトの名無しさん
08/08/20 18:25:04
>>247 = >>235
鬱陶しいんだよ、クソガキ。
お前が答えられないだけだろw
教師をバカにする以前に、お前がバイナリすらまともに扱えない証拠。

>>238 にbmpと断っていますが?w

URLリンク(www.mm2d.net)
URLリンク(www.geocities.co.jp)
どちらにしろ、同じようなもの。はいはい、知ったかの答える気無しの野次馬は帰った帰った。

252:デフォルトの名無しさん
08/08/20 18:29:39
>>251
> >>238 にbmpと断っていますが?w
>>234の話だろ。それとも文書の前後が理解できない病気か?

253:デフォルトの名無しさん
08/08/20 18:30:23
>>249
そういう思い込みで手を動かすタイプが、バカコード書くんだろ。

254:デフォルトの名無しさん
08/08/20 18:30:59
>>250
ひょっとして、BMPがなんなのか知らないのか?

255:デフォルトの名無しさん
08/08/20 18:31:52
わざわざ連投しないで1レスにまとめろよ屑

256:デフォルトの名無しさん
08/08/20 18:36:19
>>255
おまえもな

257:デフォルトの名無しさん
08/08/20 18:37:34
>>241とか、分かりやすいだろ、上から目線どころか、バカとか平気で
相手を罵倒する発言をする。夏厨丸出し。ここはお前の管轄じゃないから
とっとと新学期の準備をしとけや。お前みたいな実力も知識も無い無能じゃ
このスレの宿題ですら答えられないから。

258:デフォルトの名無しさん
08/08/20 18:40:55
>>257は馬鹿

259:デフォルトの名無しさん
08/08/20 18:41:10
>>247
これは酷い。言葉が読めないのか、こいつは?w

>>238の条件でBMPファイルを生成してみれば、どうなっているかくらいわかっているはず。
あぁそうか、Windowsを使ってないどこぞの研究所の人か?
世の中はWindowsがメインだぞ。俺は大学では実験や研究では
SolarisやUNIXなどを使っていたが、ワークステーションでもWindows系は
使ってたがね。当然、そこでは標準搭載のペイントはあったけどな、
もう6年くらい前の話だが、自分が大学生だったのは。

260:デフォルトの名無しさん
08/08/20 18:43:10
ハナっから課題に答える気が無い奴が、揚げ足取りみたく
要らない横槍や罵倒、自分の無知をさらすなんてことはするなよ
スレが荒れるだろが >>247 >>241

261:デフォルトの名無しさん
08/08/20 18:43:56
なんか>>237の件で揉めてるのに>>238に書いてあるじゃないかとか、あほくさい・・・

262:デフォルトの名無しさん
08/08/20 18:45:00
>>259
> >>238の条件でBMPファイルを生成してみれば、どうなっているかくらいわかっているはず。
これも、前後感覚が無くなる病気か?

263:デフォルトの名無しさん
08/08/20 18:47:00
>>259
> 世の中はWindowsがメインだぞ。俺は大学では実験や研究では
なんで、オマエの狭い世界が基準なんだよ。

264:デフォルトの名無しさん
08/08/20 18:51:09
>>235
235 名前:デフォルトの名無しさん 投稿日:2008/08/20(水) 15:13:21
まだビットマップ読み込む課題出す駄目教師いるんだな


265:デフォルトの名無しさん
08/08/20 18:55:31
>>264
その場で作ったBMPを読み取ると言う話からすれば、
バリエーションのあるフォーマットに網羅的に対応すると言う課題でもない様だし、
ターゲットとしてバカらしくはある。

266:デフォルトの名無しさん
08/08/20 20:09:16
>>234 >>238
テキスト形式の具体的な内容は?

267:デフォルトの名無しさん
08/08/20 20:48:42
>>234
左上から順にRGBを6桁の16進数にして出力するプログラムは出来たでごわすが
現在、>>1にあるうpろだが利用できないようなので、復旧したらうpするでごわす。

268:デフォルトの名無しさん
08/08/20 21:46:50
>>245

 一応、リンクできるようにしてみたけど
URLリンク(kansai2channeler.hp.infoseek.co.jp)
つながり難い

269:デフォルトの名無しさん
08/08/20 21:52:10
>>1にあるうpろだの調子が悪い?

270:デフォルトの名無しさん
08/08/20 22:43:24
>>258が馬鹿


271:デフォルトの名無しさん
08/08/20 23:09:59
BMPの話でここまで必死にバカになれるお前らが羨ましいぜ

272:デフォルトの名無しさん
08/08/20 23:57:20
っつかさ、別に個人を特定して直接自分に対して文句を言ってきた奴が
いるわけでもないのに、口出ししておいて相手を罵倒している奴って何?
後から補足でBMPって本人が言ってんじゃん。BMPなんて書いてないって
どんだけ文字が読めない学の無い奴だよ?って思われるような墓穴を掘るなよw
Windows、ペイント、ビットマップって言ったら普通に知っている人は分かるぞ?
けどさ、それを言うと、自分にとっては当たり前じゃないとか、それ以外にもあるとか
言い出すんだろ?分からないなら口出ししなきゃ良いじゃんw
己の無知を晒す場でもないから、知らないなら別に口出しせんでもよろしい。
なのに、その課題を扱う講師がどうとか、無関係なレスしてんの???

273:デフォルトの名無しさん
08/08/21 00:14:44
>>272
これが前後関係のわからなくなる病気

274:デフォルトの名無しさん
08/08/21 00:15:10
>>272
>>234読めよ、夏厨

275:デフォルトの名無しさん
08/08/21 00:48:15
BMPって書いてあるのに、口出しして墓穴を掘った本人乙w
それに反応するのはお前くらいだよ

276:デフォルトの名無しさん
08/08/21 00:54:15
>>238が読める?読めない?聖徳太(ry

277:デフォルトの名無しさん
08/08/21 00:55:50
>>276
結局、BMPがなんだか知らなかったのか・・・

278:デフォルトの名無しさん
08/08/21 00:56:14
さてと、分からず屋はとりあえず、Windowsに標準搭載の
ペイントで24ビットBMPファイルを何でも良いから作ってみましょう。
先に言っておくが、中身がまったくないってのは無しね。

279:デフォルトの名無しさん
08/08/21 00:57:01
>>276
まあ、Wikipediaをwikiって略すようなもんだから、バカっぽいけど、それほど恥ずかしくないんじゃないの?

280:デフォルトの名無しさん
08/08/21 01:04:43
テンプレに沿ってないだけでここまで荒れるものなのか
なんというか活気があるな

281:デフォルトの名無しさん
08/08/21 01:05:10
あらあら、課題に答える気もないくせに、煽るのに必死な奴が必死だなw
ねぇ、Macユーザ?それともUNIX、Linux系?Windows固有のものではないが、
>>234には
> <windows.h>をつかわず
って条件があるし、24ビットBMPっと言ってしまえば、察するに例のあれでしょ。
あぁ、そうか、windows.hすら知らない初心者か、んじゃあんたみたいなのは
ここで回答せずにROMってなさい、ね?口ばっかりでソースを提示しない卑怯者には
用がないんですけど?

URLリンク(e-words.jp)
URLリンク(ja.wikipedia.org)
URLリンク(ja.wikipedia.org)


282:デフォルトの名無しさん
08/08/21 01:08:50
wingdi.h使えばBITMAPINFOHEADER使えるよ

283:デフォルトの名無しさん
08/08/21 01:10:50
>>281
よっぽど恥ずかしいんだろうけど、もう、気にするなよ。

284:デフォルトの名無しさん
08/08/21 01:13:12
題意が分からなくて答える気がないなら、要らんレスせんでよろしいよ。
本当にお前が日本語が理解できるかも疑わしい。
>>1読め。
> 気に入らない質問やその他や発言はスルーの方向で。
何もあんたを特定して質問者は質問をしてんじゃないんだから。
知らない、分からない奴に押し付けてないだろw
そうやって、自分が知らなかったことを許してもらおうとかしているわけ?
それとも、知らなかったことを言い訳して、認めてもらおうとしてんの?
あんたがどこの誰か知らないが、自分が解けない課題を出す奴を
目の敵にしてどーすんだよ?w
答える気がないなら黙っとれ、鬱陶しい。スレが汚れるからこの変にしとくぞ。


285:デフォルトの名無しさん
08/08/21 01:15:09
>>284
とうとう、>>1を持ち出したよ。
それ、何回もやりすぎで効果ないだろ。

286:デフォルトの名無しさん
08/08/21 01:16:13
>>284
>>1を持ち出して何とか、自分が最後の発言者になりたいんだろうけど、逆効果じゃね?

287:デフォルトの名無しさん
08/08/21 01:16:57
>>284
それ、何行目からコピペなの?

288:デフォルトの名無しさん
08/08/21 01:18:30
回答できない人に向けて質問者は質問なんてしてませんよぉ~?
なんでそれが分からないで、一人で質問者に噛み付いてファビョってんの?w
>>1読め

289:デフォルトの名無しさん
08/08/21 01:21:29
>>288
オマエは質問者じゃないだろ。
当人はとうに飽きて出てったさ。

290:↑課題に答えられなくて悔しいのう悔しいのう
08/08/21 01:35:50
そろそろ寝たら?どうせ解けないんだろ?暇でやることないんだろ?
最近、丸投げのレスがなくて、たまにある課題をwktkして待っていたが
BMPの問題程度の簡単なものでも、解けなくて悔しいんだろうけどさ。
お前もあれだろ、昼夜逆転した生活で脳がおかしくなって
世の中がおかしく見え始めている妄想癖のある危険人物。
他の板でも、深夜に暴れているキチガイを見かけるけど、そいつらって
最後は暴れて逮捕されてるんじゃね?あと、スレが汚れるからこの辺で、な?
お前みたいなのは、引き際を知らないから、余計に泥沼に嵌るんだよ。
とにかくな、ごちゃごちゃ言い訳っぽいことを並べるだけの奴って、
どんな業界でも、無責任で情けなく見えるんだわ。お前が無能だから出来ないんだろって
普通に言われるぞ。ここは答えるのも任意だから、出来なくても誰にも文句いわれないから、
だから安心して寝ろ、な?お前が出来る課題が必ずしも質問されるとは限らないからさ。
出来る人に任せとけ、な?

291:デフォルトの名無しさん
08/08/21 01:41:25
>>290
BMP程度って、中身は簡単なようで複数フォーマットがあって
割と面倒なんでけどw



292:デフォルトの名無しさん
08/08/21 02:00:24
わざわざ限定されてるんだから複数フォーマットは考慮しないでいいだろ

293:268
08/08/21 03:56:42
>>245

URLリンク(kansai2channeler.hp.infoseek.co.jp)
うpろだ復活したので修正したのをあげとく

294:デフォルトの名無しさん
08/08/21 09:38:10
BMPファイル討論して盛り上がったが誰も問題は解いてやってない件www

295:デフォルトの名無しさん
08/08/21 09:44:59
いつもの人は解けない問題がくるとファビョって他人に絡みだすからな

296:234
08/08/21 11:32:45
なんだか争いが起きていたようですが
元はといえばボクの情報漏れが原因なので・・・
みなさんすみません。
>>266
FF00FF みたいな感じだと思います
>>267
よろしくおねがいします

297:デフォルトの名無しさん
08/08/21 13:07:53
>>295
さすがに解けないわけじゃなくて、面倒くさいだけだろ。

298:デフォルトの名無しさん
08/08/21 13:40:44
とりあえず、仕様はっきりさせて仕切り直ししようか?
C言語でやること、24bit色の無圧縮BMPだけを扱えば良さそうなとこまでは把握した。

>・対象ビットマップ
> 赤、青、緑、白、黒
これがいまいちわからない。どゆこと?

299:デフォルトの名無しさん
08/08/21 13:47:39
>>298
この手の問題をやりたくないのは

出題者がいい加減な出題の仕方をしてて、答えるほうが質問者に落としどころを確認しないと

いけないことだ。



300:デフォルトの名無しさん
08/08/21 13:49:35
オレは、赤、青、緑、白、黒 の5色だけ使われてて
テキストファイルにはピクセルに相当する赤、青、緑、白、黒の文字が並ぶんだと思ってたよ・・・

301:デフォルトの名無しさん
08/08/21 13:51:22
>>234
「私の為に争わないで」ってかw
URLリンク(kansai2channeler.hp.infoseek.co.jp)

302:デフォルトの名無しさん
08/08/21 13:53:27
第一24bitビットマップでどうやって赤青緑白黒とか区切るんだよw

RGBそれぞれ256段階指定できるんだぞ。

やっぱり糞問題じゃねーか

303:デフォルトの名無しさん
08/08/21 14:01:55
>>299
出題者は講義を通じて課題の範囲を示しているだろうが、
質問者はやる気の無いド素人だから、課題を理解していない。
それが、源泉だと思う。

304:デフォルトの名無しさん
08/08/21 14:30:22
>>300
0000FF00、FF000000、00FF0000、FFFFFF00、00000000の5種類のデータしか並んでないって事か。
決めうちしちゃって大丈夫かな・・・?


305:デフォルトの名無しさん
08/08/21 14:35:56
>>304
そらなw

PC9801の初期のデジタルモードじゃないだからwww

出題者はやっぱり糞

本気で赤青とかに分類するための条件設定がなくて
ソフト作れーねーよ。

24bitビットマップでざっくり「赤青・・・」に分けるなら色ごとの閾値設定だとかも
よこせよ

306:デフォルトの名無しさん
08/08/21 14:56:46
>>305
糞なのは、質問者だろ。

307:デフォルトの名無しさん
08/08/21 14:57:38
なんでこんなにもビットマップが人気なのか分からんw

308:デフォルトの名無しさん
08/08/21 15:33:57
とりあえずそれっぽいソースに見えるだけなビットマップ for VC++ 8.0
URLリンク(kansai2channeler.hp.infoseek.co.jp)

動作確認?まったくしとらんでおじゃるよ?(鼻糞ほじりながら)

309:デフォルトの名無しさん
08/08/21 17:44:52
閾値がどうとかどうでもいー
ペイントでそのようなファイル作ってくれるんでしょ?他のがあったら捨て置けばいいじゃん

310:デフォルトの名無しさん
08/08/21 17:45:52
>>306
またお前か、答えもせず回答する能力もないくせに、偉そうに
口出ししかしないお前の方が糞なんだよ!このスレでは用なし
要らない子でつよ?wwww

311:デフォルトの名無しさん
08/08/21 19:04:00
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):
二次元配列「field[5][5]」に格納されている

#####
#####
#****
#****
#****

という文字列(#は壁。*がフィールド)で一番左上が(0,0)とした場合のフィールドの開始位置の座標を求めよ。
上でしたら「X:1 Y:2」

#####
#####
###**
###**
###**

でしたら「X:3 Y:2」という値を求めたいです。

[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C)
[4] 期限:無期限

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

312:デフォルトの名無しさん
08/08/21 19:08:39
>>311
この場合は?
#####
#####
###**
##***
##***

313:デフォルトの名無しさん
08/08/21 19:11:59
>>312
そうゆうのは無いです。。
あくまで角がある(?)パターンです。

お願いします(;´Д`)

314:デフォルトの名無しさん
08/08/21 19:13:34
>>234
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>308
偽おじゃるめ、クソースさが足りないでごじゃる

315:デフォルトの名無しさん
08/08/21 19:24:52
>>234 余計なコードを削除したでござる
URLリンク(kansai2channeler.hp.infoseek.co.jp)

316:デフォルトの名無しさん
08/08/21 19:34:27
>>311
#include<stdio.h>

int main(int argc, char *argv[]){
int i, x, y, width=5, height=5, left=-1, top=-1;
int field[5][5]={
{'#', '#', '#', '#', '#'},
{'#', '#', '#', '#', '#'},
{'#', '#', '#', '*', '*'},
{'#', '#', '#', '*', '*'},
{'#', '#', '#', '*', '*'},
};

for(i=0;i<width+height-1;i++){
for(y=0;y<i;y++){
x=i-y;
if(x<0 || x>=width) continue;
if(field[y][x]=='*'){
left=x;
top=y;
break;
}
}
if(y<i) break;
}
printf("X:%d Y:%d\n", left, top);

return 0;
}

317:デフォルトの名無しさん
08/08/21 19:51:46
>>316
本当にありがとうございます!
助かりました!

318:デフォルトの名無しさん
08/08/22 01:57:08
>>316が理解できない。
何でこういうループになるの?

319:デフォルトの名無しさん
08/08/22 02:03:22
無駄の多いループだけど、やってることは難しいことじゃないだろw

320:デフォルトの名無しさん
08/08/22 08:58:01
無限ループじゃないから安心汁!

321:デフォルトの名無しさん
08/08/22 09:36:59
さて、宿題かもーん

322:回答者修行中
08/08/22 11:50:25
質問者もういっちゃいましたね
#include <string.h>
#include <stdio.h>
int main()
{
int i, x, y, width=5, height=5, left=-1, top=-1;
char *p;
char field[5][5]={
{'#', '#', '#', '#', '#'},
{'#', '#', '#', '#', '#'},
{'#', '#', '#', '*', '*'},
{'#', '#', '#', '*', '*'},
{'#', '#', '#', '*', '*'},
};

p=strchr((char *)field,'*');
i = ((int)p - (int)field)/sizeof(char);
y=i/5;
x=i-y*5;
printf("x=%d y=%d",x,y);
return 0;
}
これまともに動いてる?

323:デフォルトの名無しさん
08/08/22 16:03:54
クソコテww

324:デフォルトの名無しさん
08/08/22 18:47:59
>>322
*が存在することが明確なら特に問題ないのかな
y=i/widthのほうがよかったりしないかな、とおもいつつも、ともあれその発想が面白かったです

325: ◆tr.t4dJfuU
08/08/22 22:21:04
[1] プログラミング演習
[2] 問題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
  データ:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] VC 5.0
 [3.3] 言語:C
[4] 期限:2008年08月24日16:00
[5] 特になし。

326:デフォルトの名無しさん
08/08/22 22:52:15
>>322
>((int)p - (int)field)/sizeof(char);
こう書くより
p - (char*)field
こう書いたほうがよくね?

327:デフォルトの名無しさん
08/08/22 23:46:36
>>236をお願いできないでしょうか。

328:デフォルトの名無しさん
08/08/23 00:37:29
[2] 問題文
1.
次のような式で表される数列が与えられたとする。
a0=1,a1=1,an=an-1+2an-2
int型の整数n(n≧0)を受け取り、上記の数列anの値をa0からanまで全て表示する関数printa(n)を作成せよ。

2.
要素数2個のdouble型の配列xy(xy[0]にはx座標、xy[1]にはy座標が納められている)と2行2列のdouble型の2次元配列Aを受け取り、座標(x,y)のAによる1次変換を求めて、その結果を配列xyに格納する返却値無しの関数LinearTrance(xy,A)を作成せよ。

3.
文字列の納められた文字型の配列sとstailを受け取り、sの末尾にstailの文字列が含まれているかどうかを調べ、含まれている場合には1、含まれていない場合には0を返す関数strcmptail(s,stail)を作成せよ。

4.
4個の文字列"abc.txt","xyz.jpg","foo.txt","bar.mp3"と文字列"txt"を受け取り、文字列の末尾に"txt"を含む文字列かあるかどうかを調べて、あればその文字列全てを表示するプログラムを作成せよ。ただし問3で作成した関数を用いること。


[3] 環境
 [3.1] OS:Windows
 [3.2] すいません、わからないです。
 [3.3] 言語:C
[4] 期限:23日正午

見づらいかもですが、よろしくお願いします。

329:デフォルトの名無しさん
08/08/23 01:07:37
1.
void printa(int n) {
int a = 0, b = 1, i;
printf("%d ", a);
if(n==0) return;
printf("%d ", b);
for(i=2; i<=n; i++) {
int temp = a * 2 + b;
printf("%d ", temp);
a = b;
b = temp;
}
}

2.
void LinearTrance(double xy[2], doubleA[2][2]) {
double temp[2];
temp[0] = A[0][0] * xy[0] + A[0][1] * xy[1];
temp[1] = A[1][0] * xy[0] + A[1][1] * xy[1];
xy[0] = temp[0];
xy[1] = temp[1];
}

3.
int strcmptail(char *s, char *stail) {
char *p = s, *q = stail;
while(*p) p++;
while(*q) q++;
while(q > stail) if(*--q!=*--p) return 0;
return 1;
}

330:デフォルトの名無しさん
08/08/23 01:29:43
>>329
int main(void){
char *tail="hogehuga";
char *s="foobarhogehuga", *p;

p=s+20;
printf("%s %s %d\n", p, tail, strcmptail(p, tail));

return 0;
}

331:クソコテ
08/08/23 18:10:22
ありがとうございます
>>324
そうですねマジックナンバーはいただけませんね
>>326
それでいけますか?
あ、いけますね、やっぱりまだ少し勘違いがあるみたいです。
>>327
すみません、私の力不足の用で、途中までやってみましたが、
構造体に入れるところで、異常に長くなってしまうので諦めました。
メモリ上での構造体の配置を仮定すればループでいけますが
あまりにも処理系依存なので止めておきます、
誰かがすごい解答を出してくれるのを待ちましょう。



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch