5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:05/02/06 02:38:42
わからない宿題を片づけます
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:

【アップローダー】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【歴代スレは>>1-10辺り】
39代目: http://pc5.2ch.net/test/read.cgi/tech/1106650397/
38代目: http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/

2 :デフォルトの名無しさん:05/02/06 02:39:20
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html

3 :ぼるじょあ@さっきのテンプレ屋 ◆yBEncckFOU :05/02/06 02:56:33
つまらないが、ま、いっか。

4 :ぼるじょあ ◆yBEncckFOU :05/02/06 03:37:21
(; ・3・)<アルェー

5 :デフォルトの名無しさん:05/02/06 07:53:07
>>1


6 :デフォルトの名無しさん:05/02/06 10:38:40


7 :デフォルトの名無しさん:05/02/06 12:03:25
それではさっそく
【質問テンプレ】
[1] 授業単元:ファイル操作
[2] 下記のプログラムにID番号を入力しその人のデータを表示させなさい
[3] 言語:C
[4] 期限:2月7日朝まで
[5] その他の制限: 特になし

#include <stdio.h>
#include <string.h>
struct tuika
{
char name[20],ID[100];
float sin;
};
void main(void)
{
FILE *fs;
char flag,ken;
struct tuika data;
int a,c=1,i=0;
fs=fopen("sample5.txt","w");
fclose(fs);
fs=fopen("sample5.txt","a");
printf("名前:");scanf("%s",data.name);
printf("ID:");scanf("%s",data.ID);
printf("身長:");scanf("%f",&data.sin);
fprintf(fs,"%20s%10s%10.2f\n",data.name,data.ID,data.sin);

8 :続き:05/02/06 12:04:48
fclose(fs);
LOOP:
printf("ctrl+zで終了します\n");
printf("それ以外の場合は追加入力\n");
fflush(stdin);
flag=getchar();
fflush(stdin);
if(flag!=EOF){
fs=fopen("sample5.txt","a");
printf("名前:");scanf("%s",data.name);
printf("ID:");scanf("%s",data.ID);
printf("身長:");scanf("%f",&data.sin);
fprintf(fs,"%20s%10s%10.2f\n",data.name,data.ID,data.sin);
fclose(fs);
c++;
goto LOOP;
}
printf("表示させたい人物のIDを入力せよ");
fflush(stdin);
ken=getchar();
     fflush(stdin);
fs=fopen("sample5.txt","r");
※ここで検索&表示※
fclose(fs);

}


9 :デフォルトの名無しさん:05/02/06 12:06:33
IDって1桁?


10 :7.8:05/02/06 12:09:17
>>9
はい

11 :ぼるじょあ ◆yBEncckFOU :05/02/06 12:28:11
ぼるじょあは一個おきでいいね。
次はぼるじょあ

12 :最凶VB厨房:05/02/06 14:05:48

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct tuika
{
char name[20],ID[100];
float sin;
};
void main(void)
{
FILE *fs;
char flag;
char ken[100];
char *pken=&ken[0];
struct tuika data;
int a,c=1,i=0;//aってなんよ?


13 :最凶VB厨房:05/02/06 14:07:08

printf("表示させたい人物のIDを入力せよ\n");
fflush(stdin);
scanf("%10s",&ken);
fflush(stdin);
fs=fopen("sample5.txt","r");
//※ここで検索&表示※
struct tuika t;
while(fscanf(fs,"%20s",t.name)!=EOF)
{
fscanf(fs,"%10s",t.ID);
char fsin[10];
fscanf(fs,"%10s",fsin);
float f=(float)atof(&fsin[0]);
t.sin=f;
char *pt=&t.ID[0];
if(strncmp(pt,pken,10)==0)
{
printf("名前:%20s\nID:%10s\n身長:%10.2f\n",t.name,t.ID,t.sin);
}
}
fclose(fs);
}
/*きもいこーどになったw*/

14 :デフォルトの名無しさん:05/02/06 16:56:04
>>12>>13できんくねぇ?

15 :最凶VB厨房:05/02/06 17:15:22
え?まじか?
>>7-8のコードに>>12-13のコードを適切に上書きコピペしてくれ。
//は抜いてくれよ。
あとはなんだ。タブは大丈夫か?w

16 :デフォルトの名無しさん:05/02/07 09:06:26
>>7
※ここで検索&表示※

while (scanf("%s%s%lf", data.name, data.ID, &data.sin)) {
  if (data.ID[0] == ken) {
    printf("%10s%10s%10.2f\n", data.name, data.ID, data.sin);
  }
}

17 :デフォルトの名無しさん:05/02/07 14:09:04
使いたいC++のDLL関数だけが本にのってたんですけど、DLL関数の使い方が
分からず使えません。どなたか教えてくださらないでしょうか?関数の最初の部分は、
_declspec (dllexport) void _stdcall
dynamic(HDC hDC1,HDC hDC2, short sizeImage,
short size,short tWidth,short flagBacdground)
{
こうゆう感じです。この関数の行う作業は画像を2値化するときしきい値を場所によって最適なもの
にしてくれるものです。どうゆうふうにこの関数を使えばいいのでしょうか?

18 :デフォルトの名無しさん:05/02/07 14:12:35
>>17
使い方は本を読め

19 :デフォルトの名無しさん:05/02/07 14:14:20
>>17
その本教えれ。

20 :17:05/02/07 14:15:43
その通りですが私の持っている本は初級者向けじゃないらしくDLL関数に
ついては一切ふれてないので…分かんないんです。

21 :17:05/02/07 14:17:44
本の名前は
”Visual Basic&Visual C++による  デジタル画像処理入門”
という本です。

22 :デフォルトの名無しさん:05/02/07 14:20:40
LoadLibrary
GetProcAddress
FreeLibrary

うろ覚えなんでスペルミスってたらゴメン

23 :デフォルトの名無しさん:05/02/07 14:36:40
>>17
その本は、VBから使うためのDLLの作成方法を書いているのだろ?
関数本体はそのままDLLとしてではなくそのまま使えると思うが。
常識的に考えれば、引き数はそのままで_declspec()と_stdcallを外せばいいと思う。

24 :デフォルトの名無しさん:05/02/07 14:46:17
なんでやねん

25 :17:05/02/07 14:59:43
ありがとうございます、大変ためになりました。今頑張ってますが、またわからない
ところがあったらお聞きするかもしれません。その時はよろしくお願いします。

26 :デフォルトの名無しさん:05/02/07 15:03:57
>>25
ほんとに宿題か?それ

27 :デフォルトの名無しさん:05/02/07 17:05:57
>>12>>15ありがd

28 :デフォルトの名無しさん:05/02/07 20:26:12
[1] 授業単元:c
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS: XP pro
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:なるべく明日の朝くらいまでにお願いします
[5] その他の制限: まだ習いたてで自分には理解できないかもしれませんので
          なるべく単純にお願いします。
課題文

○(-1)^(n-1)・X^(2n-1)/(2n-1)!を計算する関数をお願いします.
条件は、入力を整数nと実数xとすることです

○sinのテイラー展開はSin X=X-X^3/3! +X^5/5!+ …+ (-1)^(n-1)・X^(2n-1)/(2n-1)!+…でこと
をふまえた上でsin Xを計算する関数を作ってください.

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

29 :デフォルトの名無しさん:05/02/07 20:35:46
C言語のスレで^を見るとXORだと思ってしまう…

30 :デフォルトの名無しさん:05/02/07 23:18:55
>>28
#include <stdio.h>
#include <math.h>

#define N_MAX    100
#define SIGN(__n)    ((((__n) % 2) == 0) ? 1 : -1)

/*
 * SIGN(x) = (-1)^x
 *         = 1        // if x is 0(mod 2)
 *         = -1       // if x is 1(mod 2)
 * pow(x, y) = x^y
 * f(n, x) = SIGN(n - 1) * pow(x, 2 * n - 1) / (2 * n - 1)!
 */
double f(int n, double x)
{
    int i;
    double val;

    /* val: the demoninator of f(n, x) */
    val = SIGN(n - 1) * pow(x, 2 * n - 1);

    /* f(n, x) = val / (2 * n - 1)! */
    for (i = 1 ; i <= (2 * n - 1); ++i) {
        val /= i;
    }

    return val;
}



31 :デフォルトの名無しさん:05/02/07 23:21:00
続き

double my_sin(double x)
{
int n;
double val = 0;

for (n = 1 ; n < N_MAX ; ++n) {
val += f(n, x);
}

return val;
}

手元の sin() と比較したので、結果は合ってると思われ。
テイラー展開自体を忘れてて、ちょっと時間が掛かっちゃったよ。

32 :デフォルトの名無しさん:05/02/07 23:27:42
[1]情報処理演習
[2]ガウスジョルダン法を用いてn元一次連立方程式を解け。
[3]環境
 [3.1]Microsoft Windows XP Professional
 [3.2]Microsoft Visual Studio.NET Professional 2003
 [3.3]C++
[4]2005年02月08日06:00まで

ガウスジョルダン法の関数はできてます。
new演算子を用いてdouble型二次元配列を取得する方法を教えてください。
今はnewの代わりにmallocを使っています。
解放の仕方も教えてくださると助かります。

33 :28:05/02/07 23:30:35
>>30>>31
ありがとうございます!!
これを元に自分でも組めるように勉強します

34 :デフォルトの名無しさん:05/02/07 23:35:11
>>32
int** a = new int*[4];
for (int i = 0; i < 4; ++i) *(a + i) = new int[3];
// a[0...3][0...2]でhogehoge
for (int i = 0; i < 4; ++i) delete[] (a + i);
delete[] a;

35 :デフォルトの名無しさん:05/02/07 23:37:54
>>32
double **ppd = new double*[x];
*ppd = new double[x * y];
for (int i = 1; i < y; i++)
    ppd[i] = *ppd + i;

delete[] *ppd;
delete[] ppd;

36 :デフォルトの名無しさん:05/02/08 00:01:26
[1] 授業単元: データ構造アルゴリズム
[2] シェルソートを行うプログラムを完成させよ。
  ソート間隔dは3倍+1とすること。
  入出力は次のとおりとする。
  10個の整数を入力せよ。
  x[0]:10
x[1]:15
x[2]:14

   ・
   ・
x[9]:20

昇順にソートしました
x[0]:3
x[1]:10
x[2]:14


37 :デフォルトの名無しさん:05/02/08 00:02:53
(2)入力数と昇順、降順をユーザが決めるようにする
入力例:入力する整数の個数は(最大100まで):15
昇順(1)降順(2)どちらですか?:2
入力
x[0]:10
x[1]:15
 ・
  ・
  ・

降順にソートしました。
x[0]:20
x[1]:15
  ・
  ・
  ・
x[9]:3

[3] 環境
 C言語
[4] 期限:2月9日(水)まで
[5] その他の制限: とくになし

長くなりましたがよろしくお願いいたします。
  


38 :デフォルトの名無しさん:05/02/08 00:17:49
>>34-35
ありがとうございます。
これでやっと眠れます

39 :デフォルトの名無しさん:05/02/08 00:22:29
>>7-8で聞いたものですが
下記のように自分なりにアレンジしたところ19行目で
「 パラメータ '__mode' は const signed char * 型として定義されているので int は渡せない(関数 main )」
とエラーがでます。なぜでしょうか?お願いします
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct tuika {
char name[20],ID[100],sin[20];
};

void main() {
FILE *fs;
char flag,flagmenu;
char ken[100],g[100];
int kn;
struct tuika data;
struct tuika t;
int a,k=0;
while(g!=EOF){
if(k==0){kn='w';}
if(k>0){kn='a';}
fs=fopen("data.txt",kn);
printf("名前:");scanf("%s",data.name);
printf("ID:");scanf("%s",data.ID);
printf("身長:");scanf("%s",&data.sin);
fprintf(fs,"%20s%10s%10s\n",data.name,data.ID,data.sin);


40 :続き:05/02/08 00:23:44
fclose(fs);
printf("ctrl+zで終了します\n");
fflush(stdin);
scanf("%s",g);
fflush(stdin);
}

printf("%20s%10s%11s\n","名前","ID","身長");
fs=fopen("data.txt","r");
while((a=fgetc(fs))!=EOF){printf("%c",a);}
printf("\n");
fclose(fs);

printf("表示させたい人物のIDを入力せよ\n");
fflush(stdin);
scanf("%s",ken);
fflush(stdin);
fs=fopen("data.txt","r");
while((a=fgetc(fs))!=EOF){
fscanf(fs,"%20s",t.name);
fscanf(fs,"%10s",t.ID);
fscanf(fs,"%10s",t.sin);
if(strcmp(ken,t.ID)==0){
printf("名前:%s ID:%s 身長:%s\n\n",t.name,t.ID,t.sin);
}
}
fclose(fs);
}

41 :デフォルトの名無しさん:05/02/08 00:42:35
>>39-40
このスレでお世話になったので参考に。
ファイルのオープンモード?はchar型じゃなくてchar *型。
つまり文字列なんですよ。
具体的じゃなくてごめんね。

42 :デフォルトの名無しさん:05/02/08 00:55:22
char kn[2] = {'w', '\0'};

while(g!=EOF){
if(k>0){kn[0]='a';}
fs=fopen("data.txt",kn);

43 :デフォルトの名無しさん:05/02/08 00:57:18
っつうか、なんで関係ないところを書き変えたんだ?

44 :デフォルトの名無しさん:05/02/08 01:41:15
学校で自由課題の宿題が出たんだが、C言語で仮想アセンブラ環境つくる
っていうのどうよ?あんま複雑にすると収集つかなくなるからwindowsの
Debugでできる様な4byte環境で

45 :デフォルトの名無しさん:05/02/08 01:43:13
>>44
CASL II 作ればいいじゃん

46 :デフォルトの名無しさん:05/02/08 01:44:56
いや、つまんね。コンパイラ、とか、CPUでも設計したらどうだい

47 :デフォルトの名無しさん:05/02/08 01:48:22
単一命令のが簡単だろう。sbnオンリーで済むよ。

48 :デフォルトの名無しさん:05/02/08 01:49:07
>>45
nasmしかシラネ
>>46
いいね、俺が128bitCPuを設計してやるよ

49 :デフォルトの名無しさん:05/02/08 02:27:44
>>44
これに載ってるエミュレータ改造しちくりマンボ
ttp://www.amazon.co.jp/exec/obidos/ASIN/4839909865/


50 :デフォルトの名無しさん:05/02/08 04:15:12
こんな宿題が出ました誰か教えてください。
imageee[Y_size][X_size][3]
というカラー画像の入っているものがあるときこのカラー画像を
f[i][j]
という画像に置換えよ

51 :デフォルトの名無しさん:05/02/08 04:20:35
問題文はそれだけじゃないはずだから
>>1 のテンプレみてうpしなおせ


52 :デフォルトの名無しさん:05/02/08 04:20:48
>>50
カラーのモノクロ化?
それならばrgbの格納順がわからないと「グレイ = 0.299R + 0.587G + 0.114B」の式が使えない。
i, jがX_size, Y_sizeではない任意の値ということなら拡大になるか縮小になるかで適当にループを回せばいい。
いずれにしても、情報量が少なすぎ。


53 :デフォルトの名無しさん:05/02/08 04:25:50
実はRGB構造体を定義しろって問題とか

54 :50:05/02/08 04:41:48
情報が少なかったですね、すいません。imageee[Y_size][X_size][3]は
FILE *fp;
int i, j, k;
/* ファイルオープン */
fread(&bfType, sizeof(bfType), 1, fp);       fread(&bfSize, sizeof(bfSize), 1, fp);
fread(&bfReserved1, sizeof(bfReserved1), 1, fp); fread(&bfReserved2, sizeof(bfReserved2), 1, fp);
fread(&bfOffBits, sizeof(bfOffBits), 1, fp);    fread(&biSize, sizeof(biSize), 1, fp);
fread(&biWidth, sizeof(biWidth), 1, fp);     fread(&biHeight, sizeof(biHeight), 1, fp);
fread(&biPlanes, sizeof(biPlanes), 1, fp);   fread(&biBitCount, sizeof(biBitCount), 1, fp);
fread(&biCompression, sizeof(biCompression), 1, fp);fread(&biSizeImage, sizeof(biSizeImage), 1, fp);
fread(&biXPelsPerMeter, sizeof(biXPelsPerMeter), 1, fp); fread(&biYPelsPerMeter, sizeof(biYPelsPerMeter), 1, fp);
fread(&biClrUsed, sizeof(biClrUsed), 1, fp); fread(&biClrImportant, sizeof(biClrImportant), 1, fp);
/* ビットマップデータ */
for (i=0; i<biHeight; i++)
for (j=0; j<biWidth; j++) {
for (k=0; k<3; k++) {  fread(&image[i][j][2-k], 1, 1, fp);
}
}
fclose(fp);
こんな感じで読み込まれています。

55 :50:05/02/08 04:43:25

/* 最大画像サイズ */
#define Y_size 512
#define X_size 512

/* BMPファイル用 */
typedef unsigned short WORD;
typedef unsigned long DWORD;

WORD bfType;
DWORD bfSize;
WORD bfReserved1,
bfReserved2;
DWORD bfOffBits;
DWORD biSize,
biWidth, biHeight;
WORD biPlanes,
biBitCount;
DWORD biCompression,
biSizeImage,
biXPelsPerMeter,
biYPelsPerMeter,
biClrUsed,
biClrImportant;
と定義されていました。

56 :デフォルトの名無しさん:05/02/08 04:54:43
相変わらず情報が少なすぎますが。

57 :デフォルトの名無しさん:05/02/08 07:01:54
だから >>1 読んだか?

58 :デフォルトの名無しさん:05/02/08 08:49:30
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。

59 :デフォルトの名無しさん:05/02/08 10:19:05
肝腎な質問に対する答がないからもうしらね。

60 :デフォルトの名無しさん:05/02/08 10:21:36
素でアホなんだな、こいつ
痴呆みたいなものを感じる

61 :デフォルトの名無しさん:05/02/08 11:28:21
[1] 授業単元: OS
[2] 問題文(含コード&リンク):
Cで、MAX10のコマンド履歴を作ります。
例:
5 cd /usr/include
6 dir
7 cp a b
...
古いものから自動で消えていって、STLのpushのように動いて欲しいです。
説明が下手ですみません。よろしくお願いします。
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン): GCC
 [3.3] 言語:C


62 :デフォルトの名無しさん:05/02/08 11:36:48
最大要素数10のキューとして作れってことでいいのか?
つか、コマンドってコンソールの奪ってくるのか?

63 :61:05/02/08 11:42:36
>最大要素数10のキューとして作れってことでいいのか?
はい、その通りです。
データはstructでintとcharを含むhistory(適当)です。

>つか、コマンドってコンソールの奪ってくるのか?
いえ、新しく有効コマンド5個位のごく単純なコマンドコンソールを作る宿題です。
UNIX上でプログラムを起動すると作ったコンソールがでて、ユーザにコマンドを入力してもらう感じです。

64 :デフォルトの名無しさん:05/02/08 11:49:27
で、何したいの?
ヒストリはコマンド入力毎に全表示?

65 :61:05/02/08 11:58:33
えっと、hlistというコマンドをユーザが入力すると、
過去の最新10コマンドを表示するようにしたいです。

66 :デフォルトの名無しさん:05/02/08 12:04:24
すみません。c言語であるディレクトリの複数のファイルを
順に読み込むにはどうしたらいいんですか。
おしえてくださいおねがいします。

67 :デフォルトの名無しさん:05/02/08 12:14:54
>>66
http://www.ncad.co.jp/~komata/c-kouza14.htm

68 :67:05/02/08 12:24:54
読み違えた
スマン無かったことに

69 :デフォルトの名無しさん:05/02/08 12:26:21
>>67
ありがd!!!

70 :デフォルトの名無しさん:05/02/08 12:38:42
[1] 授業単元: C言語
  提出期限は木曜日です、宜しくお願いします

1.以下の仕様に基づいて,任意の探索開始点から訪問できる全ての頂点を訪問する関数
void visit(int k)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.
 (必要に応じて,ヘッダー・ファイルをインクルードすること.)
また,この関数のアルゴリズムを説明せよ.

* 関数名:visit
* 仮引数int k:探索を開始する頂点番号
* 戻り値なし(void型)
* 機能:探索を開始する頂点番号kを受け取り,キュー(void enqueue(int dt)およびint dequeue())を使用した幅優先探索をおこなって,
訪問可能な全ての頂点を訪問し,訪問した頂点を表示する.

2.以下の仕様に基づいて,隣接リストから指定された接続関係(辺)を削除する関数
void delete_edge(int v1, int v2)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.
(必要に応じて,ヘッダー・ファイルをインクルードすること.)

* 関数名:delete_edge
* 仮引数int v1, int v2:v1とv2との間の接続関係を削除する.
* 戻り値なし(void型):
* 機能:受け取ったv1とv2との接続関係を削除するために,隣接リストから,
v1とv2との接続関係に対応するノードを削除する.
隣接リストへの追加と同様に,adj[v1]からv2のノードを削除し,
adj[v2]からv1のノードを削除すること.

71 :デフォルトの名無しさん:05/02/08 13:13:26
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 学年末の課題作成で、電卓ソフト(ボタンなどを表示して)を作りたいのですが、
 ここをこうしたらよくなる、いい感じのソフトが出来るなどのアドバイスをいただけないでしょうか?
[3] 環境
 [3.1] OS: WindowsXP Home Edition
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:Cのみです
[4] 期限:2005年02月27日

まったくと言っていいほど詳しくないので、お手数かける場合があると思いますがよろしくお願いします。

72 :デフォルトの名無しさん:05/02/08 13:16:54
>>71
まずはコンパイラを決めろ

73 :71:05/02/08 13:24:57
コンパイラはボーランドです

74 :デフォルトの名無しさん:05/02/08 13:28:19
>>73
TurboCか?バージョンはいくつだ?

75 :71:05/02/08 13:40:22
>>74
1.01Jです。

76 :デフォルトの名無しさん:05/02/08 13:49:50
>>71
まったくわからないなら、ここで教えられる量じゃない
入門サイト見たり入門書買え

77 :71:05/02/08 14:00:48
>>76
嫌です。ぜひともここで教えて下さい。

78 :71:05/02/08 14:03:53
>>77
誰ですか?あなたは

79 :デフォルトの名無しさん:05/02/08 14:07:15
TurboC1.01っていったら16bitアプリしか作れないじゃん
XPで動かないじゃん

80 :デフォルトの名無しさん:05/02/08 14:08:48
>>79
動くだろ

81 :デフォルトの名無しさん:05/02/08 14:13:42
てか、未だに TurboC なんて使ってる奴いるのかよ。

82 :デフォルトの名無しさん:05/02/08 14:17:01
71は使ってるんだろ
お前がとやかく言う事じゃねえよ

83 :デフォルトの名無しさん:05/02/08 14:18:48
1.0ならフリーコンパイラになってたよな。1.01Jって事は日本語版か?

84 :ホルモン:05/02/08 15:29:24
[1]授業単元:C言語
[2]問題文:商品作りがうまくいった年は商品の数が倍になります。そうでなかった年は商品の数が13個減ります。商品1個からはじめて、1年目で2個、2年目で4個、3年目で8個になりました。ある年でちょうど100個になりました。それは最短で何年目のことでしょう。
[3]環境
 [3.1]OS:UNIX
[3.2]コンパイラ:gcc
[3.3]言語:C言語
[4]期限:2005年2月9日17:00まで
[5]その他の制限:リストを用いること。途中経過も表示すること。

85 :ホルモン:05/02/08 15:30:40
続き
少し前にも書き込んだのですが、自分ではどうしてもできないのでまた書き込みました。
よろしくお願いします。

86 :デフォルトの名無しさん:05/02/08 15:39:32
>>84
#include <stdio.h>
int main() {printf("1st year: 2 pcs.\n2nd year: 4 pcs.\n3rd year: 8 pcs.\n4th year:16 pcs.\n5th year: 32 pcs.\n6th year: 64 pcs.\n7th year: 128 pcs.\nThe answer is 7th year.\n"); return 0;}


87 :デフォルトの名無しさん:05/02/08 15:40:28
>>71
Cのみで、ボタンはどうやって表示するの?
#API直叩きは面倒だからパス。

88 :デフォルトの名無しさん:05/02/08 15:42:58
[1] 授業単元:初心者C++独習
[2] 問題文(含コード&リンク):
物理の公式を使って
公式は
最終速度
1.Final Velocity = Initial Velocity + Acceleration * Time
最終速度の二乗
2.pow(Final Velocity, 2) = pow(Initial Velocity, 2) +2*Acceleration * Distance
距離
3.Distance = Initial Velocity * Time + Acceleration * (pow(Time, 2))/2
距離
4.Distance = Average Velocity/Time
平均速度
5.Average Velocity = (Starting Velocity + Ending Velocity)/2
Header file(例:distance.h)を使って以上の公式を計算するプログラムを作らないといけません。
結果をテストするMainプログラムも必要です。
[3] 環境Codewarrior v9.2
 [3.1] OS:Win XP
 [3.2] コンパイラ(バージョン):Codewarrior v9.2
 [3.3] 言語:C++
[4] 期限:二月九日まで
[5] その他の制限:関数の名前
Compute_Final_Velocity_Using_Time: 1.の公式 パラメータ−は初期速度、加速と時間
Compute_Final_Velocity_Using_Distance: 2.の公式 パラメーターは初期速度、加速と距離
Compute_Distance_Using_Initial_Velovity: 3.の公式 移動した距離を算出させる。 パラメーターは初期速度、時間と加速
Compute_Distance_Using_Average_Velocity: 4.の公式 パラメーターは平均速度と時間
Compute_Average_velocity: 5の公式で平均速度を算出する。 パラメーターは初期速度と最終速度
よろしくお願いします!

89 :ホルモン:05/02/08 15:45:42
>>86
ちょうど100個なので絶対どこかで13個引かなければいけないので倍していけばいいというものではないんです。
あと線形リストが絶対条件です!!

90 :デフォルトの名無しさん:05/02/08 15:46:31
>86
ここはそういう事をするのが趣旨の板なわけ?

91 :デフォルトの名無しさん:05/02/08 16:19:21
>>89
>・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
線形リストとは書いてなかったと思うのだが。
そもそも、100個丁度になることを求めるプログラムとすら書いてないわけだが。

>>90
は? 誤爆ですか? そうでないならこちらへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1101931660/


92 :デフォルトの名無しさん:05/02/08 16:21:52
>>88
そこまで情報があって、何がわからないの?
例えば1なら
double Compute_Final_Velocity_Using_Time(double initialVelocity, double acceleration, double time) {return initialVelocity + acceleration * time;}
とするだけなんだけど。

93 :デフォルトの名無しさん:05/02/08 16:22:39
> [1]授業単元:C言語
> [2]問題文:商品作りがうまくいった年は商品の数が倍になります。そうでなかった年は商品の
> 数が13個減ります。商品1個からはじめて、1年目で2個、2年目で4個、3年目で8個になり
> ました。ある年でちょうど100個になりました。それは最短で何年目のことでしょう。
>           ~~~~~~~~~~~~~~~
> [3]環境
>  [3.1]OS:UNIX
> [3.2]コンパイラ:gcc
> [3.3]言語:C言語
> [4]期限:2005年2月9日17:00まで
> [5]その他の制限:リストを用いること。途中経過も表示すること。
            ~~~~~~~~~~~~~~~~~~~

94 :デフォルトの名無しさん:05/02/08 16:24:00
>>61
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/188.c

95 :デフォルトの名無しさん:05/02/08 16:24:54
>>93
> [5]その他の制限:リストを用いること。途中経過も表示すること。

漏れの目が悪いのかな、どこに線形リストって書いてあるんだろう。

96 :デフォルトの名無しさん:05/02/08 16:25:35
つーか、プログラムで求めろとはどこにも書いてないわけで……

97 :94:05/02/08 16:27:24
修正。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/188.c
の61行め、( } else { の上の行)に
free( buf ) 追加。
メモリリークでした(w


98 :デフォルトの名無しさん:05/02/08 16:32:51
>>95-96
線形リストと書いてないのは事実だけど。

・提示されたのは、ちょうど100個じゃない
・提示されたのは、線形じゃないとしてもどのリストも使っていない
・プログラムで求めるのは常識的に考えれば分かる

は言えると思うけど。


こんなこと言ってたら、お前が作れって言われそうだな。

99 :デフォルトの名無しさん:05/02/08 16:34:22
>>98
お前が作れ。

100 :デフォルトの名無しさん:05/02/08 16:35:20
>95、96
私の目からは、
・丁度100になる最短ステップ数とその経過
・それを代入、表示する単方向リスト
の二つを作成する課題だと。
どう実装するか、勉強になるな、と思って眺めていたわけですが、
私の日本語読解力不足でつかそうでつか小学校からやり直しですかそうでつか逝ってきまつ。

101 :デフォルトの名無しさん:05/02/08 16:39:38
小物どもはつまらんことで言い合って大変だな

102 :デフォルトの名無しさん:05/02/08 16:40:13
可哀想に・・・ とか言ったらお前が作れと言われそうだな。

103 :デフォルトの名無しさん:05/02/08 16:41:08
>>102
お前ら作れ

104 :デフォルトの名無しさん:05/02/08 16:52:00
>>101
お前は大物なのかと問いたい。
よろしければお問いつめ致したい。

105 :デフォルトの名無しさん:05/02/08 16:53:56
>>104
大物らしくさくっと作ってくれるでしょうから御覧アレ

106 :デフォルトの名無しさん:05/02/08 18:26:06
(・3・)アルェー

107 :デフォルトの名無しさん:05/02/08 18:32:34
めんどくさくてリスト使いたくない。
リスト使わないなら簡単でコーディングする気おきるんだが。

108 :100:05/02/08 18:51:33
>107
依頼者では無いのですが、
最短で10ステップ消費して100に辿り着くと思うのですが、
これ、どういったアルゴリズムで求めるのでしょうか?
#全く持って個人的な興味なんですが(ーー;)

1;2;4;8;16;32;(19);38;(25);50;100の10ステップ

これ、コードにするとすればどう表現するんでしょう?


109 :デフォルトの名無しさん:05/02/08 18:53:05
>>108
二進数で表現できるじゃん。

110 :デフォルトの名無しさん:05/02/08 18:58:05
最短の操作回数で解を求めるのではないので
再帰総当りでやれば良いと思っただけ。

111 :デフォルトの名無しさん:05/02/08 19:04:25
どこでリストを使えばいいのかがまったく分からん


112 :デフォルトの名無しさん:05/02/08 19:06:05
再帰的に求めるなら
100
50
25
奇数なので
38
19
奇数なので
32
16
8
4
2
1

と逆にすれば計算できたりする

113 :デフォルトの名無しさん:05/02/08 19:06:39
>>84
typedefstructstruct_Cell*Cell;
typedefstructstruct_NumCell*NumCell;
#defineNULL((void*)0)

structstruct_Cell {
NumCellmGood;
NumCellmBad;
};

structstruct_NumCell {
intmNum;
CellmNext;
};

staticCell
NewCell( NumCell pGood, NumCell pBad ) {
Cell v = (Cell)malloc( sizeof( struct struct_Cell ) );
v->mGood = pGood;
v->mBad = pBad;
return v;
}

staticNumCell
NewNumCell( int pNum ) {
NumCell v = (NumCell)malloc( sizeof( structstruct_NumCell ) );
v->mNum = pNum;
v->mNext = NULL;
return v;
}



114 :112:05/02/08 19:06:57
あ〜再帰的にする必要ないか…

115 :デフォルトの名無しさん:05/02/08 19:07:20
typedefstructstruct_AnswerList*AnswerList;

structstruct_AnswerList {
intmNum;
AnswerListmNext;
};

staticAnswerList
NewAnswerList( int pNum, AnswerList pNext ) {
AnswerList v = (AnswerList)malloc( sizeof( struct struct_AnswerList ) );
v->mNum = pNum;
v->mNext = pNext;
return v;
}

staticvoid
AdvanceYear( NumCell p ) {
if ( p->mNext == NULL ) {
p->mNext = NewCell(
NewNumCell( p->mNum * 2 ),
NewNumCell( p->mNum - 13 )
);
} else {
AdvanceYear( p->mNext->mGood );
AdvanceYear( p->mNext->mBad );
}
}



116 :デフォルトの名無しさん:05/02/08 19:08:01
staticAnswerList
Find100( NumCell p ) {
if ( p->mNum == 100 ) return NewAnswerList( p->mNum, NULL );
if ( p->mNext == NULL ) return NULL;
AnswerList w;
w = Find100( p->mNext->mGood );
if ( w != NULL ) return NewAnswerList( p->mNum, w );
w = Find100( p->mNext->mBad );
if ( w != NULL ) return NewAnswerList( p->mNum, w );
return NULL;
}

int
main( int argc, char* argp[] ) {
NumCellw = NewNumCell( 8 );
intwYear = 3;
while ( wYear++ ) {
AdvanceYear( w );
AnswerList v = Find100( w );
if ( v != NULL ) {
while ( v != NULL ) {
printf( "%d\n", v->mNum );
v = v->mNext;
}
printf( "At year %d\n", wYear );
break;
}
}
}


117 :113:05/02/08 19:09:19
ってな感じでどう?リスト使いまくってみたよ。
C って久しぶりに書いたけど、めんどいね。

118 :113:05/02/08 19:11:04
がーん、タブが消えてくっついちゃってるよ

119 :100:05/02/08 19:13:38
>109
済みません、消防にも理解出来る様解説して戴けますと助かります<(_ _)>

>110
当方も、手書きで最短解を求める際は
{1,2,4,8,16,32,62,128,256}より、
[-13]{3,19,51,115,243}:{6,38,102,230}}
[-13]{6,37,102,230}:{12,74,204}
という風に3次元配列に展開、それより100を検索という手順で総当りしたのですが、
これ、数式的に式になりそう・・・と思いつつも見出せずにいました。


120 :113:05/02/08 19:14:28
>>112
発想がすごいね!
最短であることを別建てで証明しなくちゃいけないのが難点だけど。


121 :デフォルトの名無しさん:05/02/08 19:16:53
>>120
数値の大きい方から順々に値を減らしているんだから、最短なのは自明。


122 :100:05/02/08 19:17:24
>112
おぉ!すごい・・・・
成る程、こういう考え方もあるのか・・・頭堅くなってるなぁ

123 :100:05/02/08 19:25:19
>121
重箱の隅つつきで相済みませぬ。
課題が「商品の数が13個増えます」だとその通りだと思うのですが、
「減ります」故にターゲットの100を1ステップオーバーした値も
吟味される必要があるのでは無いのでしょうか?
#勘違いでしたら<(_ _)>です

124 :100:05/02/08 19:28:37
>123
書いた直後に思いつきました。
[113]は素数なのでこの値は評価される価値の無い値でした。

125 :113:05/02/08 19:31:17
>>84
#define NULL ((void*)0)

typedef struct struct_AnswerList* AnswerList;

struct struct_AnswerList {
int mNum;
AnswerList mNext;
};

static AnswerList
NewAnswerList( int pNum, AnswerList pNext ) {
AnswerList v = (AnswerList)malloc( sizeof( struct struct_AnswerList ) );
v->mNum = pNum;
v->mNext = pNext;
return v;
}

static AnswerList
Find100( int pSY, int pEY, int pNum ) {
if ( pSY == pEY ) return pNum == 100 ? NewAnswerList( pNum, NULL ) : NULL;
AnswerList w;
w = Find100( pSY + 1, pEY, pNum * 2 );
if ( w != NULL ) return NewAnswerList( pNum, w );
w = Find100( pSY + 1, pEY, pNum - 13 );
if ( w != NULL ) return NewAnswerList( pNum, w );
return NULL;
}



126 :113:05/02/08 19:32:22
int
main( int argc, char* argp[] ) {
int wYear = 3;
while ( wYear++ ) {
AnswerList v = Find100( 3, wYear, 8 );
if ( v != NULL ) {
while ( v != NULL ) {
printf( "%d\n", v->mNum );
v = v->mNext;
}
printf( "At year %d\n", wYear );
break;
}
}
}

以上タブでくっついたのを直すついでに探索手続きにリストを
使わないようにしてみた例

127 :113:05/02/08 19:52:49
>>121
自明かなぁ、例えばもし設問が2倍と28引くだったら
8,16,32,64,128,100って経路が最短になる。
ってことは13の場合は100 から下がる方向で考える方が
最短であることを証明する必要があるような気がするけど。

128 :デフォルトの名無しさん:05/02/08 19:59:35
おそらく、出題者は二分木で表す方法を理解させようとしているんだと
思う。でも、出題が悪い。

>>127
これには汎用の最短解法は発見されていないと思う。

129 :デフォルトの名無しさん:05/02/08 20:01:12
なんか、プログラムの宿題と言うより、算数の宿題だな。
解いた過程と結果の文章を、printf()で表示した方がいいんじゃないか?(w

130 :100:05/02/08 20:01:14
>127
このケースだと、100+13=113が100超えの最短経路となり得る可能性、ですよね。
多分、
再帰的に考えたとして、
113<2で割れないので
100
・・・
となるのではないでしょうか?
#と書いてて思ったが、2ステップマイナスで最短経路なんだから、
#オーバー側も126まで評価する必要が?
##それってスターの様なコストポインタが必要になってくるような・・・

131 :121:05/02/08 20:07:57
自明じゃねーな(´Д`)ムフ-

数学板往ってくる_| ̄|○


132 :100:05/02/08 20:14:42
>121
あいやまたれいっ!
なんか久々に熱い議論で楽しいです(=´▽`=)

133 :デフォルトの名無しさん:05/02/08 20:17:43
まったくもってスレ違いだけどなw
数学系の問題は数式問いておいて欲しいな……。

134 :100:05/02/08 20:41:43
そこの部分も課題だと思って必死こいて考えてましたw
未だにわからんwww
#コスト計算してスターってのはワイルドカードみたいなもんですよね

135 :デフォルトの名無しさん:05/02/08 20:44:56
【質問テンプレ】
[1] 授業単元: 計算物理学演習
[2] 4次のルンゲクッタ法を用いてα粒子を金の原子核に
   当てた時の粒子の軌道がどうなるか:
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:2005年02月10日10:00まで
[5] その他の制限:
dvx/dt= (2Z e^2 x)/(4 pi e0 m )r^3
dx/dt=vx
r=(x^2+y^2)^1/2
(yはx->yに入れ替え)
の連立微分方程式からx,vx,y.vyを順次もとめ軌道のグラフをexcelなどで作成
  pi=3.14159265 Z=79 e=1.6022e-19 e0=8.8542e-12 m=6.0174e-10
時間間隔はdt=1.0e-21 初期値はx=-1.0e-12 y=-1.0e-14から1.0e-14間隔で10点ほど
vx=1.0e7 vy=0.0 繰り返し回数は150回程度
という条件でお願いします。

 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/191.txt
 と一応自分で作ったのですがどうしてもx[i],y[i]の値が先に進みません。何故でしょうか?

136 :デフォルトの名無しさん:05/02/08 20:47:05
現在の状態から、次の成功、失敗に分岐する、それを記録していくだけ、
がんばれ

137 :デフォルトの名無しさん:05/02/08 21:53:00
[1] 授業単元: C言語
  提出期限は木曜日です、宜しくお願いします

1.以下の仕様に基づいて,任意の探索開始点から訪問できる全ての頂点を訪問する関数
void visit(int k)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.
 (必要に応じて,ヘッダー・ファイルをインクルードすること.)
また,この関数のアルゴリズムを説明せよ.

* 関数名:visit
* 仮引数int k:探索を開始する頂点番号
* 戻り値なし(void型)
* 機能:探索を開始する頂点番号kを受け取り,キュー(void enqueue(int dt)およびint dequeue())を使用した幅優先探索をおこなって,
訪問可能な全ての頂点を訪問し,訪問した頂点を表示する.

2.以下の仕様に基づいて,隣接リストから指定された接続関係(辺)を削除する関数
void delete_edge(int v1, int v2)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.
(必要に応じて,ヘッダー・ファイルをインクルードすること.)

* 関数名:delete_edge
* 仮引数int v1, int v2:v1とv2との間の接続関係を削除する.
* 戻り値なし(void型):
* 機能:受け取ったv1とv2との接続関係を削除するために,隣接リストから,
v1とv2との接続関係に対応するノードを削除する.
隣接リストへの追加と同様に,adj[v1]からv2のノードを削除し,
adj[v2]からv1のノードを削除すること.

138 :デフォルトの名無しさん:05/02/08 21:58:32
>>136
マルコフ家庭?

139 :デフォルトの名無しさん:05/02/08 22:00:13
>>138
確率考えてないのでそうでは無い

140 :デフォルトの名無しさん:05/02/08 22:00:18
宿題とゆーか、既出だけど・・・どなたか書いてくださいな。
[1] 授業単元: なし
[2] 問題文:
以下の置換をするプログラムを作成せよ。
・&を&amp;に
・<を&lt;に
・>を&gt;に
・タブや空白を適当な数の&nbsp;に
補足:標準入力から標準出力へ出力するだけでも良いが、
引数がある場合はそれを入力ファイルとする機能をつけるとなお良い。
オプションでタブ幅を決められるとなお良い。
[3] 環境 ANSI C (89年版)
[4] 期限:無期限
[5] その他の制限: ・・・固定幅で標準入力→標準出力のやつは、昔作って書き込みしたはずなんだが、みつからん(^^;;

141 :デフォルトの名無しさん:05/02/08 22:06:13
>>137
多分、接続関係(辺)のデータ定義と、それをを追加する関数が与えられてると思うんだが・・・開示してくれい。

142 :デフォルトの名無しさん:05/02/08 22:12:52
>>140
俺もそう思うことがあった、でも、誰でも手が届くととこに、
すごいソースがあるからがんばれ。ヒントは慶応かな?

143 :デフォルトの名無しさん:05/02/08 22:16:19
【質問テンプレ】
[1] 単元:二分木
[2] 文字列のアスキーコードを小さいものは左、大きいものは右に登録して二分木を作る。
  また、登録した単語の種類を出力する。
[3] 言語:C
[4] 期限:2月中

いろいろ参考にしながら↓まで書いたんですが、insertNodeのあたりでいつもコンパイルエラーが出て困ってます。
char x[]は実験用の適当な配列です。提出するときはint main(int argc, char argv[])で入力したものを使います。
単語の種類を出力する方法も考えあぐねてます。
あと他にも間違ってるかもしれないので見つけたら教えてください。

#include <stdlib.h>
#include <stdio.h>

struct tnode {
char n;
struct tnode *left, *right;
};

struct tnode *createNode (char);
struct tnode *insertNode (struct tnode *, char);


144 :デフォルトの名無しさん:05/02/08 22:17:30
//143の続き//

int main()
{
int i;
char x[10] = {"rr", "aa", "re", "gr", "gg", "ge", "ag", "we", "wh", "qr"};
struct tnode *top;

top = createNode(0);

for (i = 0; i < 10; i++)
top = insertNode(top, x[i]);

exit(0);
}



145 :デフォルトの名無しさん:05/02/08 22:18:04
//144の続き//

struct tnode *createNode (char num)
{
struct tnode *node;
if ((node = malloc(sizeof(struct tnode))) == NULL) {
fprintf(stderr, "malloc\n");
exit(1);
}
node -> n = num;
node -> left = NULL;
node -> right = NULL;
return node;
}

struct tnode *insertNode (struct tnode *node, char num)
{
node -> n;
if (!node) {
node = createNode(num);
return node;
}

if (strcmp(char *num, char *node) > 0)
node -> left = insertNode(node -> left, num);

if (strcmp(char *num, char *node) < 0)
node -> right = insertNode(node -> right, num);

return node;
}


146 :デフォルトの名無しさん:05/02/08 22:25:30
>>140
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=31 の 52

147 :進級かかってます。。:05/02/08 22:38:10

[1] 授業単元: 情報処理概論
[2] 問題文(含コード&リンク):ニュートン法を用いて以下の問いに対するプログラムを作成しなさい。
         直径2mの半球状をした椀形の船に体重60kgの
        人間が乗ったとする。船の質量を10kgとするとき、
        この船の沈む深さを求めなさい。
[3] 環境
 [3.1] OS:winxp
 [3.2] コンパイラ(バージョン): active basic
[4] 期限:2/11までです。
[5] その他の制限:おとすと留年になってしまいます。
        どうしてもわからないので教えてもらえませんか?


148 :デフォルトの名無しさん:05/02/08 22:39:04
>>145
実験用の配列がなあ…

149 :デフォルトの名無しさん:05/02/08 22:57:23
なになに法と言われても俺はいちいち覚えてる訳じゃないんでできれば数式あげて欲しいものです…

ワザワザ他人のためにそこから調べだすのはかったるいし

150 :デフォルトの名無しさん:05/02/08 22:59:15
>>149
厨規制法

151 :デフォルトの名無しさん:05/02/08 22:59:39
わかる人おねがいします。。

152 :デフォルトの名無しさん:05/02/08 23:00:28
>>147
タイタンでメタンが液化してる条件でよいか?

153 :デフォルトの名無しさん:05/02/08 23:07:07
>>147
コンパイラを見た…目を疑った…

154 :デフォルトの名無しさん:05/02/08 23:10:24
世の中には学校でActive basicを使ってる所があるのか
日本の未来はダメだな
お前らもアメリカにこいよ

155 :進級かかってます。。:05/02/08 23:14:03
>>149
レスありがとうございます。
ニュートン法とは、紙と鉛筆で解けない、代数方程式の近似解を求める手法
らしいです。
ニュートン法でといてもらわなくてもよいので回答お願いします。。
問題文には数式とかかいてなくて・・・すみません。

>>152
冗談は俺の顔だけでお願いします。

>>153
真性バカですみません。。



156 :デフォルトの名無しさん:05/02/08 23:15:41
ま、あれだ。スレタイ嫁。

157 :デフォルトの名無しさん:05/02/08 23:18:40
ここはC/C++のスレなわけで、返ってくるコードはC || C++なわけで

158 :デフォルトの名無しさん:05/02/08 23:19:36
CやC++のコード出してもらって、次はそのコードからABに変換する
プログラムをねだればいい

159 :デフォルトの名無しさん:05/02/08 23:23:04
それだ!

160 :デフォルトの名無しさん:05/02/08 23:23:46
CでもABのコンパイラでも通るソースをねだるという新手もありで

161 :デフォルトの名無しさん:05/02/08 23:25:03
もう、ひつまぶしを食いながら、見てるのは変態だな。

162 :デフォルトの名無しさん:05/02/08 23:26:29
Cの前がABだから、共通点あるんじゃねえの?

163 :デフォルトの名無しさん:05/02/08 23:28:57
いっそのことDにしたらどうか?

164 :進級かかってます。。:05/02/08 23:29:34
お騒がせしましたww

165 :デフォルトの名無しさん:05/02/08 23:57:18
C言語で提出日は木曜日です。

o 頂点名と頂点番号の関係は以下の通りとする.
+ 頂点名:頂点番号
+ A:0
+ B:1
+ C:2
+ D:3
+ E:4
+ F:5
+ G:6
+ H:7
+ I:8
+ J:9
+ K:10
+ L:11
+ M:12

1.#defineを使って,以下の仕様に基づいたマクロ定義をせよ.
(文中の「」記号は強調のために記述したものである.)
* 頂点の最大数を表わす識別子「MAX_V」を,置換リスト「13」に置き換える.
* 未訪問を表わす識別子「UNSEEN」を,置換リスト「-999」に置き換える.

* 接続関係データのファイル名を表わす識別子「FNAME」を,置換リスト「"Data3.dat"」に置き換える.

2.以下の仕様に基づいて自己参照構造体を宣言せよ.
* 構造体タグ名:ELEMENT
* メンバ:
o 隣接頂点の頂点番号を表すint型の変数:変数名 Num
o ELEMENT型へのポインタ型変数:変数名 Next
* typedefによって再定義する型名:NODE

166 :デフォルトの名無しさん:05/02/08 23:59:05
3. グローバル配列として以下の配列を定義せよ.

NODE型へのポインタ配列:
* 配列名:adj
* 要素の数:MAX_V(問題1参照)

以下の仕様に基づいて,ファイル(ファイル名 FNAME(問題1参照))から接続関係を読み込んで,上記のポインタ配列で定義した隣接リスト(adj[])に追加する関数
void input_data_from_file()
を定義せよ.そして,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ(必要に応じて,ヘッダー・ファイルをインクルードすること.).また,この関数の処理内容を説明せよ.
* 関数名:input_data_from_file
* 仮引数:なし
* 戻り値:なし(void型)
* 機能:接続関係を記したデータファイル(FNAME)を開いて,ファイルの先頭から読み込みながら,隣接リストadj[]にNODE型のノードとして追加する.
ファイルには,接続関係が以下のように記述されている.

AB(頂点Aと頂点Bとが隣接していることを表わす.)
AF
BC
BD
BE
CE
DE
DF
EF

隣接リストに追加するとき,頂点名を頂点番号に変換して追加する(データ処理に関する前提を参照).
隣接リストへの追加処理において,頂点Xと頂点Yとを結ぶ辺(XY)が読み込まれると, Yの隣接リストadj[Y]にXを,そして, Xの隣接リストadj[X]にYをそれぞれ追
加する.

例:ABを読み込んだ場合,隣接リストadj[0]の先頭ノード(NODE型)として,メンバNumが1のノードを追加する.
さらに,隣接リストadj[1]の先頭ノード(NODE型)として,メンバNumが0のノードを追加する.

167 :デフォルトの名無しさん:05/02/09 00:00:35
4.以下の仕様に基づいて,キューにデータ(頂点番号)を追加する関数
void enqueue(int dt)
を定義せよ.(必要に応じて,ヘッダー・ファイルをインクルードすること.)

* 関数名:enqueue
* 仮引数int dt:キューに追加するデータとして,int型のデータ(頂点番号)を受け取る.
* 戻り値:なし.
* 機能:int型のデータ(頂点番号)を追加・取り出しできるキューに,頂点番号を追加する.仮引数として受け取ったint型のdtをメンバNumの値としてもつ NODE型のノードを,連結リストの先頭ノード
として追加すること.また,キューの先頭ノードを指すポインタとして,
以下のグローバル変数を使用すること(必要であれば初期化すること).

NODE *q_head;

5.以下の仕様に基づいて,キューからデータ(頂点番号)を取り出す関数
int dequeue()
を定義せよ(必要に応じて,ヘッダー・ファイルをインクルードすること.).

* 関数名: dequeue
* 仮引数:なし.
* 戻り値 (int型):キューのデータ構造に基づいて取り出されるint型のデータ(頂点番号)
※キューにデータがない場合,他の関数および機能の実行に影響のない戻り値を返すこと.
* 機能:呼び出し側にキューから取り出したデータ(頂点番号(int型))を返す.上記のvoid enqueue(int dt)のデータ構造に基づいて,連結リストの操作をおこない,末
尾ノード(ノードがひとつの場合は先頭ノード)を取り出すこと.

168 :デフォルトの名無しさん:05/02/09 00:02:29
6.以下の仕様に基づいて,任意の探索開始点から訪問できる全ての頂点を訪問する関数

void visit(int k)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.(必要に応じて,ヘッダー・ファイルをインクルードすること.)
また,この関数のアルゴリズムを説明せよ.
* 関数名:visit
* 仮引数int k:探索を開始する頂点番号
* 戻り値なし(void型)
* 機能:探索を開始する頂点番号kを受け取り,キュー(void enqueue(int dt)およびint dequeue())を使用した幅優先探索をおこなって,訪問可能な全ての頂点を訪問
し,訪問した頂点を表示する.


7.以下の仕様に基づいて,隣接リスト(問題3参照)から指定された接続関係(辺)を削除する関数 void delete_edge(int v1, int v2)
を定義し,main()関数への必要な記述をおこなって,関数を実行できるプログラムを作成せよ.
(必要に応じて,ヘッダー・ファイルをインクルードすること.)
* 関数名:delete_edge
* 仮引数int v1, int v2:v1とv2との間の接続関係を削除する.
* 戻り値なし(void型):
* 機能:受け取ったv1とv2との接続関係を削除するために,隣接リストから,v1とv2との接続関係に対応するノードを削除する.
隣接リストへの追加(問題3参照)と同様に,adj[v1]からv2のノードを削除し,
adj[v2]からv1のノードを削除すること.

169 :デフォルトの名無しさん:05/02/09 00:02:40
>>165
>1を読めないか?読めないのか?読もうとしてないのか?読みたくないのか?

170 :デフォルトの名無しさん:05/02/09 00:03:26
出題が進化してるなw
一見見たところ、不都合が無いが、バカじゃないのw
もっと面白い具体的な、例題作れ。

171 :デフォルトの名無しさん:05/02/09 00:12:15
おれとしては、リストとかじゃなくて、
画像認識ではリスト構造は必須だし、変だ。

172 :デフォルトの名無しさん:05/02/09 01:09:19
自由課題お願いします。
テーマは各自で決めよ、との事です。

173 :デフォルトの名無しさん:05/02/09 01:15:15
>>172
過去ログ漁って自分の好きなテーマのやつをコピーしろ

174 :デフォルトの名無しさん:05/02/09 01:17:32
>>172
ふむ、それじゃ出来るだけ短いコードを書くというテーマで行きますか。
main(){}

175 :デフォルトの名無しさん:05/02/09 01:18:04
>>170
先公も見てんだな、いい事だ。
でも課題出されたやつには厳しくお願い、糞プログラマー卒業させるな

176 :デフォルトの名無しさん:05/02/09 01:39:23
>174

七行プログラミング part4
http://pc5.2ch.net/test/read.cgi/tech/1051703369/
( ・ω・)?

177 :デフォルトの名無しさん:05/02/09 08:07:14
>>172
添削する院生を困らせるために、IOCCCに出せるようなヤツにしようぜ。

178 :37:05/02/09 08:59:09
どなたかお願いします。

179 :デフォルトの名無しさん:05/02/09 11:10:46
//>>37 合ってるかどうかは分からん。ユーザによる入力間違いの処理はしていない。
#include <stdio.h>
void shell_sort(int data[],int n){
  int i,j,t,d;
  for(d=1; d<n/9; d=3*d+1);
  for(; d>0; d/=3){
    for(i=d; i<n; i++){
      j = i;
      while(j>=d && data[j-d]>data[j]){
        t = data[j]; data[j] = data[j-d]; data[j-d] = t; j -= d;
      }
    }
  }
}
int main(){
  int x[100]; int i,len=1,type=1;
  printf("input (max-100):"); scanf("%d",&len);
  len = (len>100)?100:len;
  printf("s?(1) k?(2):"); scanf("%d",&type);
  printf("input please\n");
  for(i=0; i<len; i++){
    printf("x[%d]:",i); scanf("%d",&(x[i]));
  }
  shell_sort(x,len);
  printf("sort type:%s\n",(type==1)?"s":"k");
  for(i=0; i<len; i++)
    printf("x[%d]:%d\n",i,(type==1)?x[i]:x[len-i-1]);
  return 0;
}

180 :36:05/02/09 11:44:13
おぉ!ありがとうございます!
よろしければ36のほうもやって欲しいのですが。両方ださないといけないので・・・

181 :デフォルトの名無しさん:05/02/09 11:57:36
>>180 答えは目の前にあるってのに、ちょっとは読んでみようぜ。
入力項目が固定されているわけだから、>>179から入力処理を省くだけだろう。
main を以下に置き換え。ちゃんと内容確認してから提出してくれよ。間違ってても知らん。
int main(){
  int x[10]; int i,len=10;
  printf("input please\n");
  for(i=0; i<len; i++){
    printf("x[%d]:",i); scanf("%d",&(x[i]));
  }
  shell_sort(x,len);
  printf("sort type:s\n");
  for(i=0; i<len; i++)
    printf("x[%d]:%d\n",i,x[i]);
  return 0;
}

182 :168:05/02/09 12:09:35
どらたか解いてもらえないでしょうか…

183 :デフォルトの名無しさん:05/02/09 12:20:10
おーい、「どらたか」いるか〜

184 :デフォルトの名無しさん:05/02/09 12:22:18
説明せよとかがめんどい

185 :デフォルトの名無しさん:05/02/09 14:07:02
だねえ

186 :デフォルトの名無しさん:05/02/09 14:28:51
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): マインスイーパを作成せよ。サイズは9*9とする。
[3] 環境
 [3.1] OS: XP pro
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
 [4] 期限:木曜の夜までに作っていただければ幸いです
 [5] その他の制限: なし

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

187 :デフォルトの名無しさん:05/02/09 14:38:32
>>186
Windowsについてるアレをそのまま作れという事か?

188 :186:05/02/09 14:48:23
すみません詳しいところを書き忘れました。

配列には

????A
???A
??A
?A

?A
??A
???A
????A

といった表記のプログラムを作成し、それを利用する
クリックする位置はscanfで文字入力方式にし、縦を数字、横を
アルファベットで表す。入力毎に状況表示すること。点数表示は
マークに成功した個数とする。配列は一次元配列を使用すること

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

189 :デフォルトの名無しさん:05/02/09 14:54:28
>>188
せっかく作り始めてたのに!!
すげえムカついた!!!

190 :デフォルトの名無しさん:05/02/09 14:56:42
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――

191 :デフォルトの名無しさん:05/02/09 15:14:13
つーか、ほんとに宿題かと小一時間(略

192 :デフォルトの名無しさん:05/02/09 15:15:14
ただのヒッキーに反応するなよ

193 :88:05/02/09 15:17:49
すみません・・プログラムを作ってみたのですがFunction should return a value in functionとToo many types in declaration in function main()等のErrorが出て出力させることができません。 どなたかプログラムを見本に書いていただけないでしょうか?

194 :デフォルトの名無しさん:05/02/09 15:19:00
ブルドッグソースみして

195 :デフォルトの名無しさん:05/02/09 15:33:34
>>193
中学生の知識ありゃ読めるだろ?
コンパイラの言う通りにすれ。

196 :デフォルトの名無しさん:05/02/09 15:40:23
>>193
関数は計算の結果をreturnして渡すべきだ
Main関数を宣言しすぎている
なんか意味違うような…

197 :デフォルトの名無しさん:05/02/09 16:01:31
struct hoge {}; の後ろの ; 付け忘れてない?


198 :デフォルトの名無しさん:05/02/09 16:03:36
>>193
たぶん前者はエラーではなく警告。
でも無視しないに越したことはない。

199 :デフォルトの名無しさん:05/02/09 17:14:03
[1] 授業: Cプログラミング
[2] 問題文 FILE1にある文章(英語-小文字)をFILE2にコピーし、その際 その文章を全て大文字に変換せよ。
[3] 言語:C
[4] 期限: 早ければ早いほどいいです。
#include <stdio.h>
main()
{


FILE *f1 = fopen("file1","r");
FILE *f2 = fopen("file2","w+");

char buff[128];

int br;

while( (br = fread(buff, 1,1, f1)) > 0)
fwrite(buff, 1, br, f2);

fclose(f1) ;
fcpose(f2);

}
上記のプログラムを元に編集お願いします。




200 :デフォルトの名無しさん:05/02/09 17:26:58
確認してねーけど、多分動くだろ。

#include <stdio.h>
#include <ctype.h>

int main(void)
{
FILE *f1 = fopen("file1","r");
FILE *f2 = fopen("file2","w+");

char buff[128];

int br;

while( (br = fread(buff, 1,1, f1)) > 0) {
int i;

for (i = 0 ; i < br ; ++i) {
buff[i] = toupper(buff[i]);
}

fwrite(buff, 1, br, f2);
}

fclose(f1) ;
fcpose(f2);

return 0;
}


201 :デフォルトの名無しさん:05/02/09 17:36:58
br って 0 か 1 しかないだろ

202 :デフォルトの名無しさん:05/02/09 17:54:34
fgetchar()使うつもりだったんじゃね?

203 :デフォルトの名無しさん:05/02/09 18:13:38
>>202
char buff[128];
それならなんでこんなことを・・・


204 :186:05/02/09 18:18:05
>>189
余計なお手数おかけして大変申し訳ありませんでした。私用で席を離れておりまして
お詫びがこんな時間になってしまいました。
>>190
テンプレは読んでおりましたが自分の書き込みを確認していなかったために
付けたしをしてしまう結果となってしまいました。
>>191
本当です。課題です。

もし再度検討していただければ幸いです。
>>189さんはじめ、本当にご迷惑おかけしました


205 :200:05/02/09 18:31:00
>>201
read() と同じ仕様だと思ってた(;゚Д゚)


206 :デフォルトの名無しさん:05/02/09 18:36:53
>>205
同じですが何か?

207 :デフォルトの名無しさん:05/02/09 18:44:46
>>187 は良く分かるんだが
>>188 は全然分からん

208 :デフォルトの名無しさん:05/02/09 19:34:09
>>186-188
#include <stdio.h>
#define MAX_X 9
#define MAX_Y 9
int main(void)
{
char field[MAX_X][MAX_Y];
int i, j;
char buf[128];
for(j = 0; j < MAX_Y; j++)
for(i = 0; i < MAX_X; i++)
field[j][i] = 0;
do{
printf("--abcdefghi\n");
for(j = 0; j < MAX_Y; j++){
printf("%d:", j + 1);
for(i = 0; i < MAX_X; i++)
printf("%c", field[j][i] ? '0' : '?');
printf("\n");
}
do{
printf("input: ");
fgets(buf, sizeof(buf), stdin);
}while(buf[0] < 'a' || buf[0] > 'i'
|| buf[1] < '1' || buf[1] > '9');
field[buf[1] - '1'][buf[0] - 'a'] = 1;
}while(1);
return 0;
}

209 :186:05/02/09 19:49:32
>>208さん本当にありがとうございます。 
見直して今度は自分でも組めるようにがんばります

210 :デフォルトの名無しさん:05/02/09 19:58:58
>>209
いいのか?それで

211 :デフォルトの名無しさん:05/02/09 20:32:30
>>186
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/195.zip

212 :デフォルトの名無しさん:05/02/09 20:35:38
188見てませんでした…

213 :デフォルトの名無しさん:05/02/09 22:15:18
>>199
>fcpose(f2);
>上記のプログラムを元に編集お願いします。
#include <stdio.h>
#include <ctype.h>
int fcpose(FILE * f) {return fclose(f);}
int main(void)

    FILE *f1 = fopen("file1","r");
    FILE *f2 = fopen("file2","w+");
    char buff[128];
    int br;
    if (f1 == NULL) return 1;
    if (f2 == NULL) {fclose(f1); return 1;}
    while((br = fread(buff, 1, 1, f1)) > 0) {
        buff[0] = toupper(buff[0]);
        fwrite(buff, 1, br, f2);
    }
    fclose(f1);
    fcpose(f2);
    return 0;
}

214 :213:05/02/09 22:19:36
>>213
自分自身に喰わせたらCOBOLみたいに見えて吐き気がした ..orz

215 :デフォルトの名無しさん:05/02/09 22:21:05
[1] 授業単元: 数値解析
[2] 問題文(含コード&リンク): 下に書きます。
[3] 環境
 [3.1] OS: win xp
 [3.2] コンパイラ(バージョン): bcc
 [3.3] 言語:C
[4] 期限:2005年2月11日
ガウス・ザイデル法を用いて連立一次方程式
6x+2y+3z=6
2x+3y+4z=9
3x+4y+7z=15
の解を求める。
[5] その他の制限:
係数は自分が入力できるようにしていただきたいです。
どうぞ、よろしくお願いします。

216 :デフォルトの名無しさん:05/02/09 22:27:14
>>213
最近こんなバカが増えたよな。
同一人物か?

217 :213:05/02/09 22:33:55
誰と同一人物だと言いたいのか分からないけど多分そう。
気分害したならごめんね

218 :デフォルトの名無しさん:05/02/09 22:40:31
ぐぐれ無いのかしょうがない、2chがプロきしかよw
デリゲートされないよん

219 :デフォルトの名無しさん:05/02/09 23:14:44
>>215
ガウス・ザイデルって収束させるやつだっけ?
ガウス・ジョルダンなら手元にプログラムがあるんだけどなぁ

220 :デフォルトの名無しさん:05/02/09 23:18:13
収束させるやつ。
列と行でピボットしてな。

221 :デフォルトの名無しさん:05/02/09 23:24:42
ザイデル法もあった
実験用に作ったやつだから入出力とか少し変だけどいいかな?

222 :デフォルトの名無しさん:05/02/09 23:33:37
初耳、ガウスジョルダンしか知らんかった。教えて〜

223 :ふぅははー:05/02/09 23:34:25
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158
初心者だから変かもしれない。
ゴメン許してもう限界

224 :ふぅははー:05/02/09 23:46:54
ついでに複素連立一次方程式のガウスジョルダンもあった
交流回路の解析に便利

225 :215:05/02/10 00:11:41
>>223
ありがとうございました。

226 :ふぅははー:05/02/10 03:04:36
>>223の投稿はどうやってけせばいいのー?

227 :デフォルトの名無しさん:05/02/10 06:44:16
>>226
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
の一番下に修正・削除用のフォームがある

228 :デフォルトの名無しさん:05/02/10 09:46:56
あ、そかそか。
100うんぬんのネタ(>>84)、出題意図がわかった。
2分木を使って探索ってのは、あれだ。質問したひとが勝手に思ってただけ。
アルゴリズムは幅優先探索で、リスト使うのは、状態登録の場面だけでいいわ。
>>137 のenqueue(),dequeue()みて思ったよ(^^;;
メモリ効率わるいけれど、配列固定や配列の伸張でやるよりは楽かも。

あ、提出期限すぎてるね。

229 :デフォルトの名無しさん:05/02/10 12:04:51
[1] Introduction of C language/Pointer Application
  (C言語入門/ポインター)
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Microsoft Visual C++ 6.0
 [3.3] C
[4] 2月11日0:00pmまで
[5] その他の制限:
  最初のコメントの部分が問題文ですが、全部英語です。

  日本語の用語もよくわからないので間違ってたらごめんなさい。

  問題を訳すと、
  キーボードからintの配列(array)のサイズを読み込んで
  (私のコードだとgetData)
  そのメモリーをheapに動的に割り当て(dynamically allocate)、
  キーボードから配列の中に整数を読み込みます。
  (alloInteger)
  で、同じサイズのポインター配列を動的に割り当て、
  それぞれのポインターがそれぞれの配列の要素を指すようにします。
  (alloPointer)
  もとの整数配列をいじらないことが条件になっているので、
  ポインター配列を挿入ソートして小さい順から並べます。
  (interSort ← ここがどうもおかしい感じ)
  そして最後に結果を、元の順、小さい順、大きい順に並べます。
  (print)
  
  よろしくおねがいします。

230 :229:05/02/10 15:29:19
学校でビルドした時はエラーなしでwarningが出たんですが
いま自宅でやってみたら何も出ませんでした。
どっちにしろソートされてないんですが。

あと、コピペしたらコードのインデントが崩れてしまいました。
読みづらくてすいません。

231 :デフォルトの名無しさん:05/02/10 15:47:18
>>229
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/201.txt
こんなの普段は絶対に[]演算子使えよ。

232 :デフォルトの名無しさん:05/02/10 16:48:34
C言語です。どうぞお願いしますm(_ _)m
以下のテキストファイルから日付、時間、ファイル名(jpg)をそれぞれ
取り出して別々のテキストファイルに保存して下さい。(ファイル名は任意)

-----------------abc.txt--------------------------
2005/02/01 11:02 5,785 10046a541.jpg
2005/02/02 11:04 22,143 17092705-3.jpg
2005/02/03 11:58 18,156 1994NBS_LG.jpg
-------------------------------------------------

233 :デフォルトの名無しさん:05/02/10 16:53:08
日付ファイル、時間ファイル、ファイル名ファイルを
作るということでいいの?

234 :デフォルトの名無しさん:05/02/10 16:54:37
>>233
そうです。
なんなら日付ファイルだけでもいいですm(_ _)m

235 :デフォルトの名無しさん:05/02/10 16:55:14
テンプレも見ない香具師はスルーでいいと思うよ

236 :デフォルトの名無しさん:05/02/10 17:01:47
>>1を見ていないだけでスルーはあんまりだ
せめて弄るだけ弄ってから放置にしよう

237 :デフォルトの名無しさん:05/02/10 17:03:03
>>236
ひとでなし

238 :デフォルトの名無しさん:05/02/10 17:33:44
>>234
FILE *fin, *fdate, *ftime, *fname;
char date[100], time[100], length[100], name[100];
/* ファイルのオープンくらいは出来るとして。 */
while (fscanf(fin, "%99s%99s%99s%99s", date, time, length, name) == 4) {
  fprintf(fdate, "%s\n", date);
  fprintf(ftime, "%s\n", time);
  fprintf(fname, "%s\n", name);
}

fname と lengthの名前が気に入らんが・・・こんなかんじ。

239 :デフォルトの名無しさん:05/02/10 17:38:24
>>238
それだと100バイト超える場合大丈夫ですか?

240 :デフォルトの名無しさん:05/02/10 17:41:33
そんなに長いファイル名なのかよ

241 :デフォルトの名無しさん:05/02/10 17:41:49
>>238
ありがとうございます。ほんと嬉しいですm(_ _)m


242 :229:05/02/10 19:17:32
>231
ありがとうございます!
参考にさせていただきます。

243 :デフォルトの名無しさん:05/02/10 19:36:14
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158

244 :デフォルトの名無しさん:05/02/10 19:47:12
超初心者質問で申し訳ないのですが、
「ls」コマンドを入力しても
No such file or directory って出るのですが( TДT)

そのときのプログラムはこれです

intmain()
{
printf( "Hello,World!" );
}
 
入門でいきまりつまずいて、泣きそうです。。。

245 :デフォルトの名無しさん:05/02/10 19:54:59
int main()
{
printf( "Hello,World!" );
}
これでいけるはず

246 :デフォルトの名無しさん:05/02/10 19:58:12
#include <stdio.h>
int main()
{
printf( "Hello,World!" );
}

247 :244:05/02/10 20:04:10
>>245
intスペースmainですよね・・・

すみません・・・そうしてるのですが
なぜだかできません・・・。

248 :244:05/02/10 20:06:32
>>246
#include <stdio.h>
でもだめです・・・。
これは神が自分には無理と言ってるのでしょうか・・・

249 :デフォルトの名無しさん:05/02/10 20:07:26
>>244
ちょっとまて。lsでそのプログラムになんの関係が?

250 :244:05/02/10 20:09:12
>>249
いまこのプログラムしか作ってないんですよ。


251 :デフォルトの名無しさん:05/02/10 20:10:35
ls コマンドでディレクトリーの内容を見るためのものだろ
何をしたいんだ

252 :244:05/02/10 20:13:08
ファイル名であるhello.cって出てくるはずですよね?
それがなぜか出てこないんです・・・

253 :デフォルトの名無しさん:05/02/10 20:14:13
なるほど。そういうことか。
lsっつーことはwindowsか?

254 :デフォルトの名無しさん:05/02/10 20:14:43
あ、無茶苦茶書いてるorz
windowsならばlsじゃなくてdirで見てみよ。

255 :244:05/02/10 20:14:50
そうですwindowsです

256 :244:05/02/10 20:16:14
dirでもやはり
No such file or directory です。゚(゚´Д`゚)゜。

257 :244:05/02/10 20:21:40
もうだめぽ・・・

258 :デフォルトの名無しさん:05/02/10 20:24:43
何をしたいのか、何をしているのかがわからん

259 :244:05/02/10 20:27:29
作ったはずのプログラムが作成されてない
という事ですかね・・・?
ちなみに今日はじめてCに触れました。

260 :デフォルトの名無しさん:05/02/10 20:28:24
おしりが痒いんです

261 :デフォルトの名無しさん:05/02/10 20:29:56
>>260
そうか、ボクがちょっと看てあげよう…
ん?これは酷い…
注射が必要だな。

262 :デフォルトの名無しさん:05/02/10 20:31:25
こりゃあ、エディタの使い方やらコマンドプロンプトの使い方やらからやらんとダメだな。
Cコンパイラもインストールしてない可能性大だな…
このスレで説明するには手が余る。



263 :244:05/02/10 20:35:29
とりあえず、スレ違いということで
これ以上のレスは控えますね。

ありがとうございました。゚・(ノД`)人(´Д`)人(Д` )・゚。

264 :デフォルトの名無しさん:05/02/10 20:59:26
いまの釣り?

265 :デフォルトの名無しさん:05/02/10 21:01:52
てんぷれつかってないからどっちでもいい

266 :デフォルトの名無しさん:05/02/10 21:41:16
何か分かんなくなってきたorz

VisualC++.NET(非2002) &MFC
でバイナリデータ扱うPGやってるんだけど、

unsigned char a;

a=0x80;    ←これは出来る
b=0x81;    ←何故かbには0しか入らない

色々調べていると、どうやら漢字の1バイト目(0x81〜0x9f)だけは何を代入しても0になってしまうみたいで、
コンパイル警告も何も出ないしさっぱり分からん。

何か根本がおかしい気がするんだけど・・・何とかならんのこれ?


267 :デフォルトの名無しさん:05/02/10 21:42:31
げ・・・誤爆・・・
スマソ

俺に聞けスレに描こうと思ってたのに何故・・・orz


268 :デフォルトの名無しさん:05/02/10 21:42:43
>>266
ならん。

269 :デフォルトの名無しさん:05/02/10 21:43:24
たぶん、おまいが根本的におかしいです。
というか何をしたいのかさっぱりです。

270 :デフォルトの名無しさん:05/02/10 21:50:10
>269
プログラム側でデータ加工してRS232Cに送りたいだけなんだが・・・
送るデータが作れないので困っている

271 :デフォルトの名無しさん:05/02/10 21:51:10
>>270
質問はテンプレに沿って書いてくれ

宿題ならな。

272 :デフォルトの名無しさん:05/02/10 22:29:58
しね

273 :デフォルトの名無しさん:05/02/10 22:35:48
うんこ

274 :デフォルトの名無しさん:05/02/11 00:51:27
テンプレ厨うざすぎ。氏ね

275 :デフォルトの名無しさん:05/02/11 01:04:47
>>274
君に意見は求めてない。

276 :デフォルトの名無しさん:05/02/11 01:08:27
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
I=√1/T(∫i^2dt) (積分範囲は0からTまで)を用いて、
振幅10Vの正弦波電圧の実効値を有効数字6桁で求めよ。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン): BorlandC++
 [3.3] 言語:C
[4] 期限:2005年02月12日17:00まで
[5] その他の制限: 特になし。

Iの式が見難いですがよろしくお願いします。


277 :デフォルトの名無しさん:05/02/11 01:34:42
先生方、これをお願いいたします。

環境
WinXP
.NET C++
期限:明日の10時ぐらいまでには・・・

1.double x, double yをメンバにもつクラスVECTOR2を作成せよ.
2.2つのdoubleを引数に取るVECTOR2クラスのコンストラクタを作成せよ.
3.点の座標を表示するメンバ関数printを作成せよ.
4.点の原点からの距離を計算するメンバ関数absを作成せよ.
5.2つの点の座標を足し合わせる演算子+を作成せよ.

278 :デフォルトの名無しさん:05/02/11 01:37:39
Iの式がわかりましぇんw


279 :276:05/02/11 01:42:41
>>278
すみません。
ttp://okawa-denshi.jp/techdoc/1-3-3zikkoti2.htm
↑のページの一番最後の式です。

280 :デフォルトの名無しさん:05/02/11 01:47:15
>>277
#include <iostream>
#include <cmath>

class VECTOR2
{
    double x, y;
public:
    VECTOR2(double xs, double ys) : x(xs), y(ys) {}
    void print() const{std::cout << '(' << x << ',' << y << ')';}
    double abs() const{return std::sqrt(x * x + y * y);}
    friend const VECTOR2 operator+(const VECTOR2& lhs, const VECTOR2& rhs)
    {
        return VECTOR2(lhs.x + rhs.x, lhs.y + rhs.y);
    }
};

281 :デフォルトの名無しさん:05/02/11 01:57:54
>>280 (TдT) アリガトウゴザイマス
ちょっと自分流にあわさせてもらいます。

#include <iostream>
#include <cmath>
using namespace std;

class VECTOR2
{
  double x, y;
public:
  VECTOR2(double xs, double ys) : x(xs), y(ys) {}
  void print() const{cout << '(' << x << ',' << y << ')';}
  double abs() const{return sqrt(x * x + y * y);}
  friend const VECTOR2 operator+(const VECTOR2& lhs, const VECTOR2& rhs)
  {
   return VECTOR2(lhs.x + rhs.x, lhs.y + rhs.y);
  }
};

これでもよかでしょうか?
あとこれ
  VECTOR2(double xs, double ys) : x(xs), y(ys) {}
の∩( ´Α`)< 先生、意味がわかりません!


282 :デフォルトの名無しさん:05/02/11 02:01:15
かまわんよ、作った側としてはあまりいい気はせんがね。
VECTOR2(double xs, double ys){x = xs; y = ys;}でも構わないけど、
こう書くとxとyは2度初期化されて無駄。
VECTOR2(double xs, double ys) : x(xs), y(ys) {}と書くと初めから
xs,ysで初期化される。

283 :デフォルトの名無しさん:05/02/11 02:03:09
>>282
なるほど。了解しました。
作って頂いたものにケチつけるようなマネをしてしまってすみませんでした。
精進いたしますペコペコ

284 :sage:05/02/11 06:20:53
[1] 授業単元: CSCI 142 HW#3
[2] 英語の文ですが、やることはプロントに次に車の最初のスピードを入力を最初に入力、
次に10文字までの車の種類(wheel-4,wheel-8など)を入力、そして最後のスピードを入力これのループです。
-99と入力するとループを終了させます。
車のスピードを0.00<x=<100.00でそれ以外(文字や0以下,100より上)は無視して計算を続けるようにします。
車の種類別の名前&最後の平均速度 と 総合の平均速度を出力
※例えばユーザーが
[3] 環境
 [3.1] winXP
 [3.2] Visual C++
 [3.3] C++
[4] 期限:2005年2月12日00:00まで
[5] その他の制限: なし
ループはできたのですが、範囲の指定が全くできませでした。
文字を入力するとえらいことに・・・
これに詰まって一睡もできず、やむ終えず投稿することにしました。
どなたか分かる先輩方お願いします。
直接メールかレスいただけるとありがたいです。

285 :デフォルトの名無しさん:05/02/11 06:32:07
>>284
寝れ。

286 :デフォルトの名無しさん:05/02/11 06:35:29
>>284
ソースを晒せ。うpろーだは>>1

287 :デフォルトの名無しさん:05/02/11 06:46:59
>>284
もちつけ。日本語思い出せ。

288 :デフォルトの名無しさん:05/02/11 08:24:58
「やむ終えず」って書いていて違和感を覚えないんだろうか

289 :デフォルトの名無しさん:05/02/11 08:30:54
日本人じゃないんだろう。多分。

290 :デフォルトの名無しさん:05/02/11 08:34:24
>>288
時間が無くて「やむ終えず」じゃないの?

291 :デフォルトの名無しさん:05/02/11 08:55:49
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi

292 :デフォルトの名無しさん:05/02/11 11:47:55
>>290
「やむ終えず」の「やむ」って何なんですか。

293 :デフォルトの名無しさん:05/02/11 11:52:35
やむ終えず の検索結果のうち go.jp からの日本語のページ 7 件中 1 - 6 件目 (0.25 秒)
やむ終えず の検索結果のうち ac.jp からの日本語のページ 36 件中 1 - 32 件目 (0.42 秒

これってどうなのかなぁ...

294 :デフォルトの名無しさん:05/02/11 11:58:48
「やもうえず」の間違いだろ?

細かいとこにイチイチ突っ込むなよ。


295 :デフォルトの名無しさん:05/02/11 12:01:33
>>292
>「やむ終えず」の「やむ」って何なんですか。
終わること

296 :デフォルトの名無しさん:05/02/11 12:08:27
このスレは釣りがすごすぎる

297 :デフォルトの名無しさん:05/02/11 12:11:29
やむ終えず
http://www.yomiuri.co.jp/komachi/reader/200309/2003090300133.htm#0004

298 :デフォルトの名無しさん:05/02/11 12:26:37
>>295
「終わらせ終えない」ってとこですか

299 :デフォルトの名無しさん:05/02/11 14:01:58
病むを得ず

300 :デフォルトの名無しさん:05/02/11 14:02:24
止むを得ずAtok15だと一発で変換できないな・・
>>297
勉強になりますなぁ。



というわけで、このスレは
ぼるじょあがC/C++で正しい日本語教えますYO!スレに変わりました。

301 :デフォルトの名無しさん:05/02/11 14:06:18
どうでもいいから俺のちんぽこすってくれ

302 :デフォルトの名無しさん:05/02/11 14:09:24
かしこまりました

303 :デフォルトの名無しさん:05/02/11 14:18:25



|<>>301:あぁん・・・・。



304 :デフォルトの名無しさん:05/02/11 14:29:05
12番ですお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158

305 :デフォルトの名無しさん:05/02/11 14:34:08
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?
C/C++宿題スレ 579ソースの11です。


306 :デフォルトの名無しさん:05/02/11 15:03:59
PDF って時点で見る気もしない。

307 :デフォルトの名無しさん:05/02/11 20:01:13
>>305

1) Trace the following code using blocks and pointers.
int x; /* 中に入っている値は不定 */
int y; /* 同上 */
int *ptr1; /* 指している場所は不定 */
int *ptr2; /* 同上 */

x = 2; /* xの値は2 */
y = 3; /* yの値は3 */

ptr1=&x; /* ptr1はxを指す */
y = *ptr1; /* yの値は3 */

ptr2 = ptr1; /* ptr2はxを指す */
ptr1 = &y; /* ptr1はyを指す */

*ptr1 = *ptr2 + *ptr1; /* yの値は6 */

y= x + y + *ptr1; /* yの値は14 */

で、最終的にxは2,yは14,ptr1は&y,ptr2は&x。

308 :307:05/02/11 20:02:09
おう、なんか間違えたな(^^;;まーいーや。

309 :デフォルトの名無しさん:05/02/11 20:10:47
>>305
これでいいんだろうか
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/206.txt

310 :デフォルトの名無しさん:05/02/11 20:40:57
直しとこう
if(sscanf(str, "%lf%s%lf", &speed, vehic_name, &distance) != 3 || qualified(speed) == 0)

311 :デフォルトの名無しさん:05/02/12 14:34:05
struct list{
char name[64];
long int telnum;
long int time;
long int money;
};
int func(struct list *person){
int n,i=0;
do{ printf("名前:");scanf("%s",person->name);
printf("電話番号:");scanf("%d",&(person->telnum));
printf("勤務時間数:");scanf("%d",&(person->time));
printf("時給額:");scanf("%d",&(person->money));
i++;person++;
printf("まだ入力しますか?Yes:1/No:0 :");scanf("%d",&n);
}while(n);
return (i);
}
int main(int argc, char *argv[])
{
int n;
struct list s[512];
n = func(s);
printf("%s / %d / %d / %d \n",s[0].name,s[0].telnum,s[0].time,s[0].money);
return 0;
}
構造体の各メンバに適切な代入がなされないのはなぜでしょうか?

312 :デフォルトの名無しさん:05/02/12 14:40:22
ぉぃぉぃ。

313 :デフォルトの名無しさん:05/02/12 16:35:57
>>311
ちゃんと動くんだが

ただpersonインクリメントするのはちょっと…
最初何故動くんだろうと思ってしまった

314 :デフォルトの名無しさん:05/02/12 17:24:17
まぁ、常套手段としては
&(person->money)
ではなく
&person[i].money
だろうね。

315 :デフォルトの名無しさん:05/02/12 18:11:41
(person+i)->moneyでもいいけど

person++しても、s++になるわけじゃないんだな
勉強になりましたわ



316 :311:05/02/13 00:37:12
レス遅れてスマソ、寝てました^^;
みんな回答ありがとうvとりあえず>>314に指摘されたところだけ直してみたんだが
やっぱりうまくいかないや、とりあえず実行画面をUPしたから見てみて欲しいんだけど・・・
ちなみに開発環境はCPadっす!(visualホスィ・・・)
ttp://u.skr.jp/1024/files/1301.jpg.shtml

317 :デフォルトの名無しさん:05/02/13 00:58:10
>>316
使ってるコンパイラは何?
%dはint用、longには%ldを使わないといけない。sizeof(int) < sizeof(long)な処理系だと
これをちゃんとしないとうまくいかない。

318 :ろだ208:05/02/13 01:00:57
うpろだの208です。
授業でもうついていけないまま提出期限に終われる日々です。
たすけてください

319 :デフォルトの名無しさん:05/02/13 01:28:43
>>317
LSI C-86 v3.30c 試食版ってやつ
ttp://hp.vector.co.jp/authors/VA017148/pages/cpad.html#cpadintroduction
とりあえず構造体のメンバ初期化してみたらなんとかちゃんと動作するようになったんだけど
long intなのに五桁整数までしかサポートしないのはなんで?

320 :デフォルトの名無しさん:05/02/13 01:29:11
3)

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

int main(void)
{
int data[SIZE];
int i;
char str[BUFSIZ];

for(i=0; i<SIZE; i++)
{
if(fgets(str, sizeof(str), stdin) == NULL) exit(1);
if(sscanf(str, "%d", &data[i]) != 1) exit(1);
}

for(i=0; i<SIZE; i++)
if(data[i] >= 100) printf("%d ", data[i]);
puts("");
for(i=0; i<SIZE; i++)
if(data[i] < 100) printf("%d ", data[i]);
puts("");

return 0;
}

321 :デフォルトの名無しさん:05/02/13 01:35:08
>>318
このぐらいタイプしてあげてくれ、読みにくすぎる。

【例】以下のようなプログラムを配列を使ってつくりなさい。
3) 配列data[0]〜data[9]に数値をキーボードより入力し、100以上の
  数と、100未満の数をそれぞれ一行ずつで出力する。
4) キーボードより数字をgetchar()で順に入力し(終わりは^Z)、それ
  ぞれの数字の頻度を求め、最後に出力する。EOFでぬけること
5) キーボードより金額を入力し、その金額におけるそれぞれの金種の
  数を求め出力する。

例 入力金額が188977の場合。
.10000円. 18枚
  5000円  1枚
  1000円  3枚
.  500円  1枚
.  100円  4枚
   50円  1枚
   10円  2枚
.   5円  1枚
.   1円  2枚

322 :デフォルトの名無しさん:05/02/13 01:39:11
5)

#include <stdio.h>
#include <stdlib.h>
#define COIN_KIND 9

int main(void)
{
const int coin_money[COIN_KIND] = {10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
int coin_suu[COIN_KIND] = {0};
int i, money;
char str[BUFSIZ];

puts("金額を入力してください");
if(fgets(str, sizeof(str), stdin) == NULL)exit(1);
if(sscanf(str, "%d", &money) != 1)exit(1);

for(i=0; i<COIN_KIND; i++)
{
while(coin_money[i] <= money)
{
coin_suu[i]++;
money -= coin_money[i];
}

printf("%5d円  %d枚\n", coin_money[i], coin_suu[i]);
}

return 0;
}


323 :ろだ208:05/02/13 01:52:33
さっそく320、322さんが答えてくれて嬉しいのですが
習っていない命令文が入ってて…
教科書はやさしいC第二版をつかってるんですけど
その本で言えばレッスン7まで習ってるんですよ。
文的なものではprintf,scanf,if,swich,for,while,等くらいなもので
超初心者的な文で教えてもらえると嬉しいのですが…
わがまま言ってすみません。よろしくお願いします。

324 :デフォルトの名無しさん:05/02/13 01:57:34
>>323
アホか。今勉強すればいいじゃん。
他を引き離すチャンスだべ。

325 :320, 322:05/02/13 02:06:01
>>323
3)
・coin_moneyの宣言の const を消す。
・SIZE を 10 に置き換える。
・if(fgets(str, sizeof(str), stdin) == NULL) exit(1);
 if(sscanf(str, "%d", &data[i]) != 1) exit(1);
 を scanf("%d", &data[i]); にする。
・puts(""); を printf("\n"); にする。
・#include <stdlib.h> と char str[BUFSIZ]; を消す。

5)
・COIN_KIND を 9 に置き換える。
・puts("金額を入力してください"); を
 printf("金額を入力してください\n"); にする。
・if(fgets(str, sizeof(str), stdin) == NULL)exit(1);
 if(sscanf(str, "%d", &money) != 1)exit(1);
 を scanf("%d", &monde); にする。
・#include <stdlib.h> と char str[BUFSIZ]; は必要なくなるので消す。

326 :320, 322:05/02/13 02:07:56
>>325
修正。
>を scanf("%d", &monde); にする。
 を scanf("%d", &money); にする。

327 :320, 322:05/02/13 02:09:10
>>325
もう1つ修正。
>coin_moneyの宣言の const を消す。
は 3) ではなく 5) の方。

328 :デフォルトの名無しさん:05/02/13 02:15:22
>>319
 scanfみたいな可変長引数の関数は、基本的に引数の型が判らない。
 だから、scanfのformatに%dがあると、それに対応する引数がintへのポインタだと仮定して
動作する。
 そのコンパイラはintが16bitだから、%dを指定した時点で32767より大きい数字には対応
できないし、上位16bitは何も代入されないから、もとからあったゴミが残る。(初期化したら
うまくいくのは、ゴミが0になるから。)

 ということで、%dを%ldにしましょう。

329 :デフォルトの名無しさん:05/02/13 02:35:05
>>328
解決しました^^v
あんたイイヤツだな、多分俺が2chで会った中でベスト3には入るね。

330 :デフォルトの名無しさん:05/02/13 07:47:08
Cプログラムをする上で「構造化」ってどこまでやっていいと思いますか?
たとえば、「関数細分化しすぎてかなりデカイプログラムなのにmain関数はほんとに数行しかない」
って状態はどうなんでしょうか?

331 :デフォルトの名無しさん:05/02/13 08:32:35
C言語なら俺に聞け!スレへの誤爆と見た。

332 :330:05/02/13 09:17:43
>>331
スレ違いスマソ

333 :デフォルトの名無しさん:05/02/13 09:44:49
>>330
普通はそうならないか?

334 :デフォルトの名無しさん:05/02/13 09:55:26
>>333
そうなのか?じゃあこれからはなるべくmain関数少なくなるように
心がけるわ。

335 :デフォルトの名無しさん:05/02/13 10:29:49
少なくとも、OSなどとのI/F以外の詳細はmain()に書くべきじゃないね。

336 :デフォルトの名無しさん:05/02/13 10:32:13
小さいコードならmainに詰め込んでも構わないと思うけどね。

337 :デフォルトの名無しさん:05/02/13 11:53:24
習ってないものは使ってはいけないっていう教育はいかにも日本的だな


338 :C:05/02/13 12:18:57
教えてください

339 :C:05/02/13 12:21:47
F(T)=6.72*10^(-4)*(1000-T)-5.67*10^(-8)*0.5*(T^4-600^4)の
はさみうち法をC言語でのプログラムを教えていただけないでしょうか??
ホントよくわかんないので、よろしくお願いします(><)

340 :デフォルトの名無しさん:05/02/13 13:29:41
マルチ?

341 :デフォルトの名無しさん:05/02/13 15:28:16
(><)←これがむかつく

342 :デフォルトの名無しさん:05/02/13 15:37:26
禿同

343 :デフォルトの名無しさん:05/02/13 15:45:07
禿同←これがむかつく

344 :デフォルトの名無しさん:05/02/13 15:52:13
(><)←回答禁止マスクのように見える

345 :デフォルトの名無しさん:05/02/13 16:44:34
double f(double t) {return 6.72 * pow(10, -4) * (1000 - t) - 5.67 * pow(10, -8) * .5 * (pow(t, 4) - pow(600, 4);}

346 :デフォルトの名無しさん:05/02/13 21:46:50
問題
ソートのプログラムで1000個ソートしたら約一秒かかった。
じゃあ10000個ではおよそ何秒?

誰か答えてくださいお願いします。

347 :デフォルトの名無しさん:05/02/13 21:48:34
>>346
ソートの方法は?

348 :346:05/02/13 21:50:44
単純選択ソートです

349 :デフォルトの名無しさん:05/02/13 21:57:26
>>346,348

ネタじゃなかったのか・・・orz


350 :デフォルトの名無しさん:05/02/13 21:58:41
約100秒

351 :デフォルトの名無しさん:05/02/13 21:59:05
そうとはかぎらんよ

352 :デフォルトの名無しさん:05/02/13 21:59:54
ひねくれた問題は出さないだろ…

353 :デフォルトの名無しさん:05/02/13 22:03:02
何も考えずに10秒と答えなければいい、くらいの気持ちで出した問題だろう

354 :デフォルトの名無しさん:05/02/13 22:05:01
データ数の二乗に比例するってことが分かってりゃいいんでない

355 :デフォルトの名無しさん:05/02/13 22:05:23
そうとうなあほだ

356 :デフォルトの名無しさん:05/02/14 07:26:10
質問です。
ActiveDeskTop Objectを使って現在の壁紙パスを取得するという
プログラムなんですが、取得方法がうまくいきません。

//#include 省略・・・

unsigned short* Path;
WCHAR wszWallpaper [MAX_PATH];

WCHAR* PathAA(void){
if (FAILED(CoInitialize(NULL))) return 0;
HRESULT hr;
IActiveDesktop *pActiveDesktop;
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&pActiveDesktop);
hr= pActiveDesktop->GetWallpaper(wszWallpaper, 256, 0);
pActiveDesktop->Release();
CoUninitialize();
return wszWallpaper;
}
int main(void)
{
Path=PathAA();
cout << (LPSTR)(Path) << endl;
return 0;
}
これで実行すると壁紙パスの最初の一文字しか取得できません。
全ての文字(フルパスの文字)を取得するにはどこを直せばよいでしょうか。
ご教授宜しくお願いいたします。

357 :デフォルトの名無しさん:05/02/14 09:10:24
WCHARとはなにか、よく考えてみましょう。

358 :356:05/02/14 09:22:29
>>357
すんなり答えが書けないんですか?
思わせぶりなレスはかえって迷惑です。ヴォケ。
本当は答え知らないんでしょ?

359 :デフォルトの名無しさん:05/02/14 09:25:24
基礎が出来てなさ過ぎですな

360 :デフォルトの名無しさん:05/02/14 09:56:54
>>357
どもです。
型を変更したらできました。
358は偽りなんでシカトしてください。

361 :デフォルトの名無しさん:05/02/14 12:14:34
シェルソートはO記法ではどのようなオーダーでしょうか?

362 :デフォルトの名無しさん:05/02/14 14:42:35
>>361
http://www.google.com/search?q=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88+%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC

363 :デフォルトの名無しさん:05/02/14 14:46:20
>>362
O(N^(3/2))なんですね。ありがとうございました。
変なオーダーなんですね・・・・

364 :デフォルトの名無しさん:05/02/14 19:44:23
シェルソートの場合、間隔hによって指数の部分が変わるし。

365 :デフォルトの名無しさん:05/02/14 19:57:01
>>356
wcout使え

366 :デフォルトの名無しさん:05/02/14 20:54:20





367 :デフォルトの名無しさん:05/02/14 22:14:36
50個以内の任意の個数の整数データを入力したあと、入力順に表示するプログラムをCで作成せよ。
という課題がでたのですがどのようにすればよいのでしょうか?

制御変数が2個使うというところまでしかわかりません・・・・


よろしくお願いします。

368 :デフォルトの名無しさん:05/02/14 22:17:00
>>1

369 :デフォルトの名無しさん:05/02/14 22:23:23
>>367
漏れの出番だな
#include <stdio.h>
int main(void)
{
    int data[50], n, i;
    for (n = 0; n < 10 && scanf("%d", &data[n]); ++n) ;
    for (i = 0; i < n; ++i) printf("data[%d] == %d\n", i, data[i]);
    return 0;
}

370 :デフォルトの名無しさん:05/02/14 22:56:27
>>369

本当にありがとうございました。
授業中苦戦してました(;´Д`)

371 :デフォルトの名無しさん:05/02/14 22:59:28
そんな糞ソースで本当にいいのか

372 :デフォルトの名無しさん:05/02/14 23:17:46
だいたい何らかのアクションをもって入力終了とするのか、
それとも入力個数を指定するのかさえ分からないあたり、課題が悪いな。

373 :デフォルトの名無しさん:05/02/14 23:40:38
つーか>>1以下のテンプレ読んでねえだろどいつもこいつも

374 :デフォルトの名無しさん:05/02/14 23:43:24
質問する人が読むわけねえだろ

375 :デフォルトの名無しさん:05/02/14 23:46:58
>>371
あれで逆にいいのでは?
あんまり綺麗に書くと、他人が書いたって、すぐわかるだろうし。

ただ、癖が出るから、見慣れると、ばれるけど。
しかも、C/C++はフリーフォーマットだし。

376 :デフォルトの名無しさん:05/02/15 00:40:12
>>374
んー、ログ少しでもよめばテンプレぐらい気づくよね。
別に掲示板とかネットに限らず現実の日常生活でもある程度
その場の雰囲気読んで行動するの当たり前でしょ。

まあ、隔離目的のこのスレにまともな奴が集まるとも思えないけどなー。

377 :デフォルトの名無しさん:05/02/15 00:42:32
テンプレ嫁、過去ログ嫁、と言われて実際に読む2ちゃんねらは見たことない

378 :デフォルトの名無しさん:05/02/15 00:43:48
お前らだって家電の説明書なんぞよまねえだろ
ソフトの説明なんてよまねえだろ
コンパイラのヘルプも全部よまねえだろ
Cの仕様を全部読んだやつなんて割合すくねえだろ

したがって、テンプレ読まねえ奴は市ね

379 :デフォルトの名無しさん:05/02/15 01:09:01
>>378
なんつーか、ワロタ

380 :デフォルトの名無しさん:05/02/15 01:10:27
#include <stdio.h>
double func(double x){
double y;
y=x*x*x-3*x*x+9*x-8;
return(y);
}

int main(){
double EPS=0.00005;
double a, b, c;
char t;
int i=0;

do{
printf(" a = ");
scanf("%lf%c", &a, &t);
printf(" b = ");
scanf("%lf%c", &b, &t);

if(func(a)*func(b) >= 0){
printf(" f(a)*f(b)>0\n\n");
}



381 :デフォルトの名無しさん:05/02/15 01:10:59
}while(func(a)*func(b) >= 0);
if(b-a<0){
c=a;
a=b;
b=c;
}
while(b-a>EPS){
c=a-((b-a)/(func(b)-func(b)))*func(a);
if(func(c)*func(a)<0){
b=c;
}else{
a=c;
}
i++;
printf(" %d\t%20.15f\n",i,c);
}
0=x^3-3^2+9*x-8をはさみうちにより求めたいんですが、コンパイルするとa,bを入力する画面
までいくんですが、その後がまったくしゅつりょくされません。なにがいけないんでしょうか?
もしくはなにが足りないんでしょうか?

382 :デフォルトの名無しさん:05/02/15 01:15:53
scanf("%lf%c", &a, &t);
scanf("%lf%c", &b, &t);

383 :デフォルトの名無しさん:05/02/15 01:17:32
>>381
>なにがいけないんでしょうか?
あんたの頭
>もしくはなにが足りないんでしょうか?
あんたの頭

まぁ、>382よりはましだがな。

384 :デフォルトの名無しさん:05/02/15 01:32:36
>>383
いいからこたえてあげなよ

385 :デフォルトの名無しさん:05/02/15 01:33:02
scanf禁止令

386 :デフォルトの名無しさん:05/02/15 01:34:18
nの階乗をn!と表記する
s=1/0!+1/1!+1/2!+......+1/20!
を表示するプログラムを作成する

f=1.0;
s=0.0;
for(i=0;i<20;i++){
  s+=1.0*f;
  ☆;
}

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

自分でソースを書いて、いろいろな式で実行してみたんですが
うまくいきません。☆の部分にはどのような式が入れば問題の解答としてふさわしいでしょうか?
よろしくお願いします

387 :デフォルトの名無しさん:05/02/15 01:37:15
>>386
>>373-378 読め

388 :386:05/02/15 01:40:23
[1]
プログラム
[2]
nの階乗をn!と表記する。
s=1/0!+1/1!+1/2!+......+1/20!を表示するプログラム断片である
----------------
f=1.0;
s=0.0;
for(i=0;i<20;i++){
  s+=1.0*f;
  ☆;
}

printf("%f\n",s);
----------------
☆に当てはまる式を答えよ

[3] 環境
 [3.1] OS: VineLinux2.6
 [3.2] コンパイラ:gcc(??)
 [3.3] 言語:C
[4] 期限:2004年2月15日08:00まで

389 :デフォルトの名無しさん:05/02/15 01:48:46
>>384
分母が0

390 :デフォルトの名無しさん:05/02/15 02:13:02
質問です!

Intの値を、例えば16進法でStringに保存する方法はありますか?
C++です。お願いいたします!

391 :デフォルトの名無しさん:05/02/15 02:13:59
>>390
sprintf
%x

392 :デフォルトの名無しさん:05/02/15 03:48:06
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
以下の様に出力されるプログラムを使いたいのですが、初心者なのでStringの使い方がわかりません。参考の為にどうか解答していただけないでしょうか?どうぞよろしくお願いします。
What is the name of the racer? Armstrong, Lance
What is the day of the race? 10 Feb 05
What is the elapsed time? 04:15:30

On Feb 15 05, Lance Armstrong raced for 15330 seconds. This is equivalent to 255.50 minutes, and 4.26 hours.
[3] 環境:BCC Developer
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン): BCC
 [3.3] 言語:C++
[4] 期限:2005年02月15日まで
[5] その他の制限: 特になし。


393 :デフォルトの名無しさん:05/02/15 07:08:08
すいません、 調べてみたのですが 見つからないので教えてください。

fstreamのifstreamを使ってファイルからデータを読み取る時、
途中もしくは最後まで読み取ってから、また最初から読み取りたい場合、
どのようにするのでしょうか?Seekgを使うのでしょうか?Seekgを使っても、うまくいかなかったのですが、
使い方がおかしいのでしょうか。。。



394 :最凶VB厨房:05/02/15 07:30:21
ファイルオープンしなおすとか。

395 :デフォルトの名無しさん:05/02/15 08:50:03
>>393
seekg (0, ios::beg);

396 :388:05/02/15 08:55:19
どなたかわかりませんかね?
だめですか。

397 :デフォルトの名無しさん:05/02/15 09:08:39
>>396
f /= (float)(i + 1);

398 :デフォルトの名無しさん:05/02/15 10:02:58
もうとっくに8時すぎてるし。


399 :デフォルトの名無しさん:05/02/15 10:03:37
20時のつもりで書いたんじゃないかね
午前8時に締め切りってのは奇妙だ

400 :393:05/02/15 11:48:47
なぜか 教えていただいたseekgの使い方でも、最初に戻りません。
リセットする前にEOFを使って、ファイルの最後まで読むループがある
のですが、そのループが終わった時点で、tellgで-1という値が返され、
リセットしても-1のままなのです。ファイルオープンしなおすには、
ファイルのディレクトリとかファイル名とか必要ですよね?だとすると、
この場合無理っぽいです。。

どうにかなりませんでしょうか?

401 :デフォルトの名無しさん:05/02/15 11:52:06
>>400
最後まで読んでEOF出したら、clear()せんといかんよ。

402 :デフォルトの名無しさん:05/02/15 11:52:29
コード出してみれ。それだけじゃわからん。

403 :デフォルトの名無しさん:05/02/15 11:55:45
どうせstd::ios::failbitをクリアしてないってオチだろうな。C++初心者には
よくある事だ。

404 :デフォルトの名無しさん:05/02/15 12:22:30
実はファイルじゃなくデバイスだったって落ちだったりして。
#いやほら、「この場合無理っぽい」とか書いてるし。

405 :393:05/02/15 12:23:23
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/211.txt

本当に、お恥ずかしいコードなのですが、上記のURLにコードをあげてみました。

Clearしてみましたが、うまくいきません。
parserというクラスの中に、コンストラクターと、二つのファンクション(first_pass(), second_pass())があり、コンストラクターに、ifstreamを渡して、二つのファンクションで使うという仕組みに
したいのですが、first_passでifstreamを使って、次に second_passで同じifstreamを
最初から使いなおしたいのです。

お時間がありましたら、よろしくお願いします。


406 :393:05/02/15 12:27:50
うわあ、お恥ずかしい できました! 消すつもりなかった部分まできえsてしまっていました。
ありがとうございました! でバグの続き がんばってきます。。

407 :デフォルトの名無しさん:05/02/15 12:33:15
>>393
つーか、関数長すぎ。時間が余ってても見る気無くなる。
それと、finはparserクラスを使う側で開いているということなのか?
それならなんでfirst_pass()でのエラーチェックでexit()してしまうんだ?
exit()するとデストラクタが走れないぞ。
後、std::endlはただの改行ではないから二つ並べるのはやめとけ。

408 :388:05/02/15 12:56:30
午前八時のつもりで書きましたけどありがとうございました

409 :393:05/02/15 13:19:02
ですよね。たしかに、みるきがうせるコードです。。
finは、mainで開いて、parserに渡します。endlの代わりに\nを使うようにします!

実は、second passの//ASSEMBLES TEXT RECORD.以下のループ内getlineで 何度getlineしても 同じ行を
返すばかりで、次の行にいかない症状にみまわれています。こんなこと、ありええるのでしょうか。。

410 :デフォルトの名無しさん:05/02/15 13:29:50
同じファイルストリームをずっと使いたいなら、参照で返すのも面倒だから、
ポインタにnewしてかちこむか、クラス作るかした方が楽なような。

411 :デフォルトの名無しさん:05/02/15 13:32:17
>>409
eof()だけでなく、fail()、bad()も調べてみたら?
いやもちろん、最終的には削るにしても、どんなエラーが発生しているのかは
把握しておいた方がいいから。

412 :デフォルトの名無しさん:05/02/15 20:19:10
LINUXで動作するアドレス帳プログラムを作りたいのですが全く手も足も出なくて困っています。
条件は編集、検索、ソート、ファイル入出力、氏名、電話番号、住所、郵便番号の機能をもつプログラムです。
行数は200行以上で、リンク形式をとらないプログラムです。
言語はC言語です。
どなたかお願いします。


413 :デフォルトの名無しさん:05/02/15 20:24:29
それはCUI、それとも、GUIで作るの?

414 :デフォルトの名無しさん:05/02/15 20:30:47
CUIです

415 :デフォルトの名無しさん:05/02/15 20:40:01
>>412
MySQLとかPostgreSQLとか使った方がいいよ。

416 :デフォルトの名無しさん:05/02/15 21:29:14
>>412
前スレ>>940
さっさと逝け

417 :デフォルトの名無しさん:05/02/15 21:29:27
宿題なら、全文をかき写せ

418 :デフォルトの名無しさん:05/02/16 00:41:07
このスレはデジャブがよく起きます。
なんど同じ文句を見たことか。
だからさー

 テ ン プ レ 嫁 つ っ て ん だ ろ ー が !!!

419 :デフォルトの名無しさん:05/02/16 00:49:34
質問する人が読むわけねえだろ

420 :デフォルトの名無しさん:05/02/16 00:59:31
>>419=>>374

421 :デフォルトの名無しさん:05/02/16 01:35:27
[1] 授業単元:後置記法の演算
[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=158の15レス目のプログラムを、複数桁の演算ができるよう改良
[3] 言語:C
[4] 期限:2月16日朝まで
[5] その他の制限:特になし

よろしくお願いします。

422 :デフォルトの名無しさん:05/02/16 01:42:05
次スレからタイトルに【テンプレ嫁】って入れたら?

423 :デフォルトの名無しさん:05/02/16 01:46:51
>>422
覚えていたらそうするとしよう

424 :デフォルトの名無しさん:05/02/16 01:51:37
>421
コンパイルとかしてないけどイメージとしてはこうかな?
- push(&stackPtr,(postfix[index1])-48);
+ {
+ char* next;
+ push(&stackPtr,(int)strtod(&postfix[index], &next));
+ index += next - &postfix[index];
+ continue;
+ }


425 :421:05/02/16 01:57:20
>>424
push(&stackPtr,(postfix[index1])-48);
以下に+〜の文を追加すればよいということでしょうか?

426 :デフォルトの名無しさん:05/02/16 01:59:36
追加ではないよ。
その行のかわりに+で示した行で置換えしてね。

strtod()…んーまぁいいや。

427 :421:05/02/16 02:38:21
>>424さんできました!ありがとうございます!

428 :デフォルトの名無しさん:05/02/16 04:04:56


429 :デフォルトの名無しさん:05/02/16 04:39:31
>>428
何がwなのかよくわからないんだが。
説明してくれない?
そういうの大事だからね。

430 :428:05/02/16 04:55:23
>>429
あんたいったい何?
俺がwってしたことがそんなに気に入らないの?
あんたも小さい人間だねえ。そんなことでいちいちむくれるんだから。
説明もくそもない。マターリしたいからwってやったんだろ。


431 :デフォルトの名無しさん:05/02/16 05:04:12
>>430
気にくわない

432 :デフォルトの名無しさん:05/02/16 05:04:28
>>430
くだらない事でスレを浪費するなボケ

433 :デフォルトの名無しさん:05/02/16 09:08:44
スルーできないお前も無駄にスレ浪費してるわけだが
そしてオレモナー

434 :デフォルトの名無しさん:05/02/16 09:10:58
あ、無駄に浪費っておかしいよな

435 :デフォルトの名無しさん:05/02/16 12:01:07
あははーーーーーーーー

436 :デフォルトの名無しさん:05/02/16 12:17:15
いつから糞スレになったんだ?

437 :デフォルトの名無しさん:05/02/16 12:19:02
あはあはあはああぁぁあはあ

438 :デフォルトの名無しさん:05/02/16 12:19:55
>>436
ぼるじょあスレになった時期から。

439 :デフォルトの名無しさん:05/02/16 15:52:57
スレタイにインパクトがないな
次スレには顔文字AAを入れよう

440 :デフォルトの名無しさん:05/02/16 17:18:32
【テンプレ嫁】C/C++の宿題を片付けます 41代目【ヽ(`Д´)ノ】

441 :デフォルトの名無しさん:05/02/16 17:49:10
【テンプレを】C/C++の宿題を片付けます 41代目【読んでくれ】

442 :デフォルトの名無しさん:05/02/16 18:00:43
【>>1-3を】C/C++の宿題を片付けます 41代目【読んでくれ】

443 :429:05/02/16 19:06:07
>>430
ええと、どうして君はそんなにむきになっているのかな?
単にwの意味がわからないから聞いただけだったんだが・・・
まあ、回答をいただいたようなので、そこら辺はよしとしよう。
だが、“マターリしたいからwってやった”というのがいまいち飲み込めない。
どうして、そんな無意味にマターリしたくなったの?
wって書き込めばマターリするの?
そこら辺をもう少し、具体的に説明してもらいたいんだが。

444 :デフォルトの名無しさん:05/02/16 19:12:27
宿題に欠乏すると、なぜかこういう流れになるね。

445 :430:05/02/16 19:26:53
>>443
お前もほんとにしつこいやろうだな。ちょっと頭を疑うよ。
マターリするのに理由が必要だとでもいうの?
マターリは快楽の一種。人間が快楽を追求するのは当然のこと。
wの意味知らないってことはないよな。
マターリと微笑みは切ってもきれない関係だってことは
そこら辺の厨房でも知ってること。
夜中にマターリしたくなったが、コーヒーがなかった、
だからかわりにwって書き込んだ。それだけ。
自明だろそんなこと。


446 :デフォルトの名無しさん:05/02/16 19:43:29
wwwwwwwwwwwwwwwwwwwwwwwwwwwww

447 :429:05/02/16 19:49:51
>>445
なるほど、了解しました。
ただ、ここにwって書き込むのはスレ違いだと思いませんか?
スレタイとまったく関係ない内容ですから。
つまり、私のいいたいことはあなたは荒らしじゃないかということです。
そこら辺はどう考えますかね。

448 :デフォルトの名無しさん:05/02/16 19:54:49
>>447
なるほど、了解しました。
ただ、ここに荒らしって書き込むのはスレ違いだと思いませんか?
スレタイとまったく関係ない内容ですから。
つまり、私のいいたいことはあなたも荒らしじゃないかということです。
そこら辺はどう考えますかね。

449 :デフォルトの名無しさん:05/02/16 20:03:55
どうでも良いからてめえら黙ってろ

450 :デフォルトの名無しさん:05/02/16 20:05:08
てめえらって言われても一人の自作自演なんだが

451 :デフォルトの名無しさん:05/02/16 20:05:50
>>450
それが本当なら、おまいも自演でつか?

452 :デフォルトの名無しさん:05/02/16 20:10:46
次スレ
「日本一上品で丁寧なC/C++の宿題スレでございます。」

453 :430:05/02/16 20:18:57
>>447
お前は本気でそんなことを言ってるのか?
確かにここは宿題スレ。宿題についてのレス、宿題を回答するレス
それが主となるのは当然のことだし、何の異存もないよ。
だが、スレの住人同士、一息ついて雑談することにだって意義はあるはずだろうが。
宿題がなかなか出ないが、このスレが廃れてしまっては困るというスレ愛が
俺にwとここに書き込ませた。それが荒らしだというのか?
愛のない自治厨なんかよりも、愛のある荒らしのほうがよっぽど素敵じゃないか?
それが人間ってものじゃないか?

454 :429:05/02/16 20:25:58
わかった、もういいよ。
君の底が知れたから。

455 :デフォルトの名無しさん:05/02/16 20:28:14
[1] 授業単元: 基礎情報処理
[2] 問題文(含コード&リンク):
ローマ字で書かれた文章ファイルを仮名変換して別のファイルに保存する。

ローマ字で書かれた文章ファイルの中身
bokuha2chnera-
仮名変換ファイルの中身
ぼくは2chねらー

[3] 環境
 [3.1] OS: winXP
 [3.2] コンパイラ(バージョン): bcc++5.5
 [3.3] 言語:C
[4] 期限:2005年02月17日20:00
[5] その他の制限:
文章ファイルを読み込む際はfgetsを利用してくれるとうれしいです

456 :デフォルトの名無しさん:05/02/16 20:33:06
>>454
わかった、もういいよ。
君は底なしだから。

457 :デフォルトの名無しさん:05/02/16 20:46:25
>>455
文字コードは?
複数行に及ぶ場合は存在するのか?
別のファイルってそのファイル名は生成するのか?取得するのか?
そもそもローマ字ってkstnhmyrwgzdb+aiueoだけで表現するやつか?
それともxやlも扱うのか?
またshiなども含むのか?
ttiなどの詰まらせるとかの処理も行うのか?

458 :デフォルトの名無しさん:05/02/16 21:07:59
bokuha2chigaimimasen
こういう場合の変換規則とかあるのん?

459 :455:05/02/16 21:23:07
>>457
文字コードはwindowsなのでshift-jisです。
入力ファイルは複数行にも及びます。
出力先のファイル名は、
コマンドラインから入力するようにしてもらうとうれしいです。
ローマ字は
ttp://www.kcn-net.org/junior/romaji1.html
に載っているものに対応していただければありがたいです。
tti等の詰まらせる処理もできたらありがたいです。

>>458
bokuha2chigaimimasen
ぼくは2ちがいみませn

のような変換になればありがたいです。

460 :デフォルトの名無しさん:05/02/16 21:26:45
テーブル作るのメドイ・・・

461 :デフォルトの名無しさん:05/02/16 21:28:51
tsu
tu
の違いは?

462 :デフォルトの名無しさん:05/02/16 21:41:18
http://www.kcn-net.org/junior/romaji1.htmlって
ヘボン式なのか訓令式なのかハッキリしないな

463 :デフォルトの名無しさん:05/02/16 23:18:48
前に作った物。
ただしC++で、しかも入出力先は標準入出力で固定。
でも参考程度にはなると思う。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/214.txt

464 :む〜ん:05/02/16 23:23:17
プログラミング初心者です。
次のプログラムをつくってみようと思っているんですが、わかりません

問 名詞の単数形を入力すれば、複数形を出力するプログラムを書け。
1、語尾がs,sh,x,chの時には文句なくesをつける。
2、語尾がoのときにはesのときも、sのときもある。
potato->potatoes,piano->pianos,photo->photos
3、語尾が子音字+yのときはyをiに変えてesをつける。
4、語尾がf,feで終わるときにはf,feをvesとする。
knife->kinives
ただし例外あり。roof->roofs

マジ困ってます。お願いします


465 :デフォルトの名無しさん:05/02/16 23:26:08
で?2は辞書を持つのか?radio,piano,photo…激しくめんどい。

466 :デフォルトの名無しさん:05/02/16 23:28:41
>>464
例外ありすぎ。いっそ英和辞典のサイトからデータ奪ってきた方が楽。

467 :む〜ん:05/02/16 23:31:59
1番だけでも出来れば十分です。

468 :デフォルトの名無しさん:05/02/16 23:55:21
main.hで
int a = 3;

main1.cppで
#include "main.h"

main2.cppで
#include "main.h"

これをやるとaを2回定義しているのでコンパイルエラーになる。
ところがaにconstをつけるとコンパイルエラーにならない。

main.hで
const int a = 3;

これはなぜ?
const型修飾子に値を変更できなくする以上の意味があるように思えるのだが
正確にはどう考えるのが正しいのだろうか?


469 :デフォルトの名無しさん:05/02/17 00:07:35
リンカエラー?コンパイルエラー?
const付けたら値を式中に展開してしまうっぽい。

470 :468:05/02/17 00:39:25
>>469
間違えた。正しくはリンカーエラー。

> const付けたら値を式中に展開してしまうっぽい。

#define a (3)
const int a = 3;

確かにほぼ同じ使い方ができる。
だが何故constをつけると上記の2つが同じ様な意味になるのだろうか?
constを付けなければ外部リンケージを持つグローバル変数なaを2回定義する事になり
リンカーエラーが出るのは当たり前だ。
constの本来の動作は宣言子が変更不能である事を示すはず。
aはconstを付けても外部リンケージのままなのでリンカーエラーを出すのが
正しい動作のような気がするのだが誰か詳しい人はいませんか?


471 :デフォルトの名無しさん:05/02/17 00:56:28
ふーん、アドレスも取れなくなるってことですかそうですか

472 :469:05/02/17 00:59:43
プログラミング言語C++第2版リファレンスマニュアルr.7.1.1 記憶クラス指定子
「constと宣言されたオブジェクトは、以前に外部リンケージが与えられていなければ内部リンケージを持つ。」

…ということなんだそうです。

473 :デフォルトの名無しさん:05/02/17 02:03:08
>> 464
できたぞー
一応,全条件に対応したつもり.
インデントはかんべんしてくれ.

#include <stdio.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
int nlastsame(char* s1, char* s2) {
return (0 == strcmp (s1 + (strlen(s1) - strlen(s2)) , (s2) ));
}
int nlastsameEx(char* s1, char* s2 ) {
char *s3[] = {"t", "ch"};
char s4[256];
int i;
int num = sizeof(s3) / sizeof(char*);
for (i = 0; i < num; i++) {
strcpy(s4, s3[i]);
strcat(s4, s2);
if (nlastsame(s1, s4) ) {
printf( "%s = %s\n", s1, s4);
return TRUE;
}
}
return FALSE;
}


474 :デフォルトの名無しさん:05/02/17 02:03:59
int is_xx_case(char* s1, char *xx[], int n) {
int i;
int num = n / sizeof(char*);
for (i = 0; i < num; i++) {
if (! strcmp(s1, xx[i]) ) {
return TRUE;
}
}
return FALSE;
return 0;
}
int is_oes_case(char* s1) {
char* s2[]={"potato","xxxo"};
is_xx_case(s1, s2, sizeof(s2));
}
int is_fes_case(char* s1) {
char* s2[]={"roofe","xxxfe"};
is_xx_case(s1, s2, sizeof(s2));
}
int is_fs_case(char* s1) {
char* s2[]={"roof","xxxf"};
is_xx_case(s1, s2, sizeof(s2));
}

475 :デフォルトの名無しさん:05/02/17 02:05:30
int main() {
char s[256];
scanf("%s", &s);
printf("%s の複数形は", s);
if( nlastsame(s,"s") || nlastsame(s,"sh") ||
nlastsame(s,"x") || nlastsame(s,"ch") ) {//語尾がs,sh,x,chの時には
strcat(s,"es");//文句なくesをつける。
} else if (nlastsame(s,"o")) {//語尾がoのときには
//potato->potatoes,piano->pianos,photo->photos
if(is_oes_case(s)) {//esのときも
strcat(s,"es");
} else {//sのときもある
strcat(s,"s");
}
} else if (nlastsameEx(s,"y")) {//語尾が子音字+yのときは
s[strlen(s)-1] = '\0';
strcat(s , "ies");//yをiに変えてesをつける。


476 :デフォルトの名無しさん:05/02/17 02:06:23
} else if (nlastsame(s,"f")) {//語尾がfで終わるときには
if (is_fs_case(s)){
strcat(s, "s");
} else {
s[strlen(s)-1] = '\0';//fをvesとする。
strcat(s,"ves");//
}
} else if (nlastsame(s,"fe")) {//語尾がf,feで終わるときには
if (is_fes_case(s)){
strcat(s, "s");
} else {
s[strlen(s)-2] = '\0';//feをvesとする。
strcat(s,"ves");
}
} else {
strcat(s,"s");
}
printf (" %s です\n", s);
return 0;
}

477 :474〜476:05/02/17 02:09:33
ホントは,C++のSTLのstringってのとか
boostライブラリの正規表現を使うともっと楽かもね.

でも,初心者が宿題で使うと,確実にばれるから
string.h 内の関数でがんばってみたよ.

478 :あぼーん:あぼーん
あぼーん

479 :デフォルトの名無しさん:05/02/17 03:04:02
>>478
先生! 入力された文字列にカンマがまじってたらどうすればいいんですか?

480 :デフォルトの名無しさん:05/02/17 06:32:48
入力はカンマで区切って一度に入力するのか?
それとも会員番号、名前、電話番号を別々に入力していくのか?

481 :デフォルトの名無しさん:05/02/17 07:32:18
>>478
電話番号が引っかかったようだな(;・∀・)

482 :デフォルトの名無しさん:05/02/17 07:39:56
クソワロタ

483 :デフォルトの名無しさん:05/02/17 09:25:26
あ、しまった、確認する前に消しちまったよ。
>478は例に実在の電話番号でも載せてたのか?

484 :デフォルトの名無しさん:05/02/17 09:29:37
実在の電話番号であろうがなかろうが電話番号形式の数字なら自動的にあぼ〜んされる
そしてそれを投稿をした人のIPが2chのブラックリストに自動的に登録される

485 :デフォルトの名無しさん:05/02/17 09:37:43
なるほど、迂闊にサンプル載せられない訳ね。

486 :デフォルトの名無しさん:05/02/17 10:45:00
昨日見たときは、サンプルも含めて、きちんとテンプレに沿った丁寧な書きかたしてたけど、
それが仇になったわけね。

CSV形式のファイルで、会員番号、名前、電話番号を入力、表示するとか、そんな感じだったけど。

487 :392:05/02/17 12:24:22
すいません・・お忙しいところどうかお答えいただけないでしょうか?

488 :デフォルトの名無しさん:05/02/17 12:36:45
>>392
std::stringを使って文字列を加工しろってこと?
cstdio使っちゃいかんのかな?

とか書いて時間稼ぎしておくと誰かやってくれるだろうw

489 :デフォルトの名無しさん:05/02/17 13:38:38
[1] 授業単元:情報技術
[2] 問題文(含コード&リンク):
カレントディレクトリの "ls"の結果をls[]に入れよ
ls[]は最大200迄とし、 ls[0]からls[199]までとする
ls[]一つにたいして一つのファイル名を入れることとする
[3] 環境
 [3.1] OS: FreeBSD
 [3.2] コンパイラ(バージョン): gcc 3.3.3
 [3.3] 言語:C言語
[4] 期限:本日中(できれば夕方までにおねがいします)
[5] その他の制限:
popenの実習なのでpopenを使わないといけないと思います
できれば、私もちゃんとわかりたいので説明付でおねがいします

490 :デフォルトの名無しさん:05/02/17 13:43:31
「説明付」って言うの一番嫌われる

491 :デフォルトの名無しさん:05/02/17 13:46:30
>>490
宿題だったら普通はソース一つでOKというのはまずないと思うが。

492 :デフォルトの名無しさん:05/02/17 13:49:59
popen()の実習って…
阿呆な実習やってるなぁ。

で、ls配列の型が書かれていないけどどうするの?
指定が無ければchar ls[200][200]とでもしてしまうのが楽なのだが。

493 :489:05/02/17 13:54:32
すいません
説明はでは、もし書くのが面倒ならかまいません
もしわからなかったらすいませんが 質問させていただくかもしれません

>>492
どういうことでしょうか?
char *ls[200]
と言うのを考えたのですが これだと駄目なのでしょうか?
これだと、 printf("%s", ls[0]);等でいけると思ったのですが・・
すいませんが ls[200][200]の意味が・・

494 :デフォルトの名無しさん:05/02/17 13:58:01
>>492
たぶん、200行ではなくて半角200文字だと思うぞ。

495 :デフォルトの名無しさん:05/02/17 14:30:20
/* 200文字ならこんな感じ。 */
#include <stdio.h>

int main()
{
char ls[200];
FILE * fp = popen("ls", "r");
ls[fread(ls, 1, sizeof(ls), fp)] = '\0';
fclose(fp);
puts(ls);
return 0;
}


496 :388:05/02/17 14:33:21
すいません、締め切りすぎてるんですが、それでもきちんとした答えを知っておきたいです。 板荒らしてすいません。

497 :489:05/02/17 14:37:46
すいません
もう一度言い直します
例えばカレントディレクトリに
1.c 2.c 3.c 4.c があるとすると
ls[0]は1.cが
ls[2]は2.cが
と言う感じで入れなくてはならないのです
ですので、私は *ls[200]で宣言しなくてはいけないものだと思いました
言葉足らずで申し訳ありませんでした


498 :デフォルトの名無しさん:05/02/17 14:41:10
だまされ無い、まだ時間あるんだろう?

499 :デフォルトの名無しさん:05/02/17 14:42:01
>>497
だったらそれでいいんでない。ls[2]には3.cが入る。細かくてスマソ

500 :489:05/02/17 14:47:16
>>499
すいません
そこまでは考えたのですが
実際にpopenを使って"ls -1"等の結果を
*ls[]に入れるにはどうしたらいいのかわかりません
すいませんがおねがいします

501 :デフォルトの名無しさん:05/02/17 14:52:55
/* 200行ならこんな感じ */
#include <stdio.h>

int main()
{
int ic;
char ls[200][200]; /* ポインタの配列にしたいなら勝手にしとくれ */
FILE * fp = popen("ls", "r");
if (fp == NULL) {
return 0;
}
for (ic = 0; ic < sizeof(ls) / sizeof(*ls); ++ic) {
if (fgets(ls[ic], sizeof(*ls), fp) == NULL) {
break;
}
}
fclose(fp);
for (; ic < sizeof(ls) / sizeof(*ls); ++ic) {
ls[ic][0] = '\0';
}
for (ic = 0; ic < sizeof(ls) / sizeof(*ls); ++ic) {
printf("%s", ls[ic]);
}
return 0;
}


502 :デフォルトの名無しさん:05/02/17 15:14:44
/* 200行、動的確保版(エラー処理は省略) */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int ic;
char * ls[200];
FILE * fp = popen("ls", "r");
for (ic = 0; ic < sizeof(ls) / sizeof(*ls); ++ic) {
char buf[200]; /* 1行文字数は200で制限 */
char * tmp;
if (fgets(buf, sizeof(buf), fp) == NULL) {
break;
}
ls[ic] = strcpy(malloc(strlen(buf)), buf);
}
fclose(fp);
for (; ic < sizeof(ls) / sizeof(*ls); ++ic) {
ls[ic] = NULL;
}
for (ic = 0; ic < sizeof(ls) / sizeof(*ls); ++ic) {
if (ls[ic] != NULL) {
printf("%s", ls[ic]);
free(ls[ic]);
ls[ic] = NULL;
}
}
return 0;
}


503 :デフォルトの名無しさん:05/02/17 16:06:55
もうちょっと簡単にしてください
sizeofとかの意味がわかりません

504 :デフォルトの名無しさん:05/02/17 16:20:11
sizeof(type) == x の時、

type a[10];

sizeof(a) == x * 10
sizeof(a[0]) == sizeof(type) == x

つまり、sizeof(a) / sizeof(a[0]) で配列のサイズが求まる。

固定配列にしか使えないけどな。

505 :デフォルトの名無しさん:05/02/17 16:26:56
>>503
ムカツクので二度とこないでね^^

506 :デフォルトの名無しさん:05/02/17 16:32:05
>>504
なぜ固定配列にしか使えないんですか?
そもそも、固定配列って何ですか?

507 :503:05/02/17 16:33:53
char *ls[200];
int count=0;
FILE *fpls;

fpls = popen("ls -1", "r");
while(fgets(ls, 1024, fpls) != NULL){
printf("%s", ls[count]);
count++;
}

pclose(fpls);

こんなかんじのでできませんか?
とりあえず ls の結果を1個づつ ls[]にいれたいだけです

508 :デフォルトの名無しさん:05/02/17 16:43:49
すごいアホが来たな

509 :デフォルトの名無しさん:05/02/17 16:45:11
こんなの相手にしてたらいくらスレがあっても足りません
ここは皆さんスルッとスルーをしましょうね。

510 :デフォルトの名無しさん:05/02/17 16:48:50
[1] 授業単元: 基礎情報処理
[2] 問題文:

入力された文字列をメモリ上に保存し、保存データが5件を越えたら、
古いものから順番に削除して、常に5件を維持せよ。
最終的にバイナリファイルで保存すること。
また、バイナリファイルにデータが保存されている場合、
データをメモリ上に読み出し、これも使用せよ。
なお、レコード長は10バイトとする
例 5件を超えた場合の処理
1→2
2→3
3→4
4→5
5→6
例 既存のデータがある場合
1→1
2→2
3→3
4

[3] 環境
 [3.1] OS: winXP [3.2] コンパイラ(バージョン): bcc++6.0 [3.3] 言語:C
[4] 期限:2005年02月18日20:00
[5] その他の制限:

常に最新の情報を5件保存する処理です。
環状リスト処理のアルゴリズムで組もうとしてみたのですが、全然うまくいきません。
このHPを参考に組もうとしていました。
ttp://www5c.biglobe.ne.jp/~ecb/c/c00.html
よろしくお願いします。


511 :503:05/02/17 17:13:49
誰かかけよ
かけないのか?
しょぼいなオタクども

512 :デフォルトの名無しさん:05/02/17 17:20:04
環状にしなくても単方向リストでいいんじゃない


513 :デフォルトの名無しさん:05/02/17 17:25:15
まぁポインタの扱いとか分かってないなら
リスト構造自体難しいから
最悪2次元配列にして
追加のたびにずらして入れるんだな。

514 :デフォルトの名無しさん:05/02/17 17:27:20
リングバッファでいいだろ。リスト使う意味ないし。

515 :デフォルトの名無しさん:05/02/17 17:33:38
セマフォ使えw

516 :デフォルトの名無しさん:05/02/17 17:37:35
誤爆?

517 :489:05/02/17 17:38:06
私は503ではないです
私もさっきからずっと考えているのですが

#include<stdio.h>
int main(void){
char *ls[200];
int count=0;
FILE *fpls;
fpls = popen("ls -1", "r");
while(fgets(ls[count], 100, fpls) != NULL){
printf("%s", ls[count]);
count++;
}
pclose(fpls);
}

見たいなものを考えましたが
どうしてこれだとできないのかがわかりません
説明していただけないでしょうか?

518 :510:05/02/17 17:48:52
ヒントをくれた皆様方、ありがとうございます。
とりあえずヒントを頼りに、もうちょっと頑張ってみます。

519 :デフォルトの名無しさん:05/02/17 17:51:44
>>516
一バイトごとにやれば大丈夫

520 :デフォルトの名無しさん:05/02/17 17:51:44
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |        (>>517)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ

                        /
                 ぷちっ   /
         ∩___∩  .   从 /
         | ノ       ヽ      /
        /  ●   ● |(>>517)ヽし
        |    ( _●_)  ミ/ ` ノ
       彡、   |∪|  ノ   /
         /   ヽノ     /  ノノ
         /         /
        /        /

           ムシャ         |
             ムシャ       |
      ∩___∩              |  ぷらぷら
      | ノ      ヽ        ((   |
     /  ●   ● |         J  ))
. ((  |    ( _●_)  ミ ・
    彡、   |∪17) ,ノ ∴
     /    ヽ/^ヽ ヽ  。
     |      ヽ \ |
     |      ヽ__ノ


521 :デフォルトの名無しさん:05/02/17 17:54:25
>>517
ls[count]で指されているアドレスはどこ?
そのアドレスはfgetsするのに充分な長さでアロケートされてる?

あくまでchar*は文字列型ではなくcharのポインタ。
メモリの確保は自分でやらなきゃいけない。

522 :デフォルトの名無しさん:05/02/17 17:56:12
#define QUEUE_SIZE 5
#define BUFF_SIZE 256
char queue[QUEUE_SIZE][BUFF_SIZE];
int front;
int rear;
void init() {front = rear = 0;}
int next(int x) {return (x + 1) % QUEUE_SIZE;}
void enqueue(char* str) {
if ( next(rear) == front ) dequeue();
strcpy(queue[rear], str);
rear = next(rear);
}
void dequeue() {if (front != rear) front = next(front);}
main() {
int i, j;
char str[256];
for(i = 0; i < 10; ++i) {
scanf("%s", str);
enqueue(str);
for(j = front; j != rear; j = next(j)){
printf("%s\n", queue[j]);
}
}
}

523 :デフォルトの名無しさん:05/02/17 17:58:50
>>517
http://www.ncad.co.jp/~komata/c-kouza3.htm

524 :デフォルトの名無しさん:05/02/17 18:24:15
横入りだけど
for (ic = 0; ic < sizeof(ls) / sizeof(*ls); ++ic) {
ってなに?  sizeofって型のサイズかえすんじゃないの?
sizeof(ls) / sizeof(*ls) ってのが何してるのかもわからん
説明プリーズ

525 :デフォルトの名無しさん:05/02/17 18:33:12
>>524
T ls[200];
のとき、lsの型はT [200]で、sizeof(ls) = sizeof(T [200]) = sizeof(T) * 200
*lsの型はTで、sizeof(*ls) = sizeof(T)

526 :デフォルトの名無しさん:05/02/17 18:35:27
>>524
C FAQくらい読んでくれ。
sizeof(配列) / sizeof(*配列)で配列要素数になる。

527 :517:05/02/17 18:38:12
ありがとうございました
>>502さんのを読んで なんとなく理解はできたのですが
1点わからないところがあったので質問させていただきます
何度もすいません
ls[ic] = strcpy(malloc(strlen(buf)), buf);
というのは、
strlen(buf)のサイズ分 ls[ic]にメモリを確保して そこにbufをstrcpyするということでしょうか?
ls[ic] = malloc(strlen(buf));
strcpy(ls[ic], buf);
と、同等と考えていいのでしょうか?

528 :デフォルトの名無しさん:05/02/17 18:43:39
>>527
>ls[ic]にメモリを確保して
いいえ

>同等と考えていいのでしょうか
はい

確保されたメモリ(へ)のポインタを、ls[ic]に代入していると解釈すべき。

529 :デフォルトの名無しさん:05/02/17 19:20:42
>>392
一応全部C++。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/215.txt

530 :デフォルトの名無しさん:05/02/17 19:22:33
[1] 授業単元: 符号理論
[2] 問題文(含コード&リンク):行列が入力されたとき左が単位行列になるようにガウス消去をするプログラムを書きなさい.
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 期限:2005/2/24
[5] その他の制限: 成分は2元(0と1)です

ガウス消去していく過程の中で全0の行がでてきてしまい,うまくいきません.
全0の行がでてきてしまったらその行を削り,行数を減らした行列として
左に単位行列がくるようなプログラムを作っていただけないでしょうか.

531 :デフォルトの名無しさん:05/02/17 19:30:36
じゃ、ユークリッドの互助法ではいかが?

532 :デフォルトの名無しさん:05/02/17 19:33:02
478です。
[1] 授業単元: C
[2] 問題文(含コード&リンク):
画面から( 会員番号, 名前, 電話番号 )を入力し、
以下のようなCSV形式のファイルを書き出すプログラムを作成してください
<CSVファイル> カンマ区切り
A001,tanaka daisuke,電話番号
B033,内藤 一,電話番号
B012,saito,電話番号
A004,鈴木 三郎,電話番号
会員番号 − 最大4byte 半角英数字のみ
名前   − 最大32byte 制御文字以外の文字全て
電話番号 − 最大13byte ハイフン,数字のみ
・入力項目は全て入力しなければならない
・入力項目が不足している場合、入力項目の文字種別が異なる場合、
最大byte数を超えて入力された場合は標準エラーストリーム(stderr)にエラー情報を出力する。
ただし、エラー表示後、入力状態に戻ること。
・何度も繰り返して会員番号を入力できるようにする
プログラムを終了させる条件を考えること
・構造体を使用すること
・登録件数の上限をなくすこと。(メモリが許す限り何件でも登録できること)
・会員情報を記述するファイル名はプログラムの引数で与える
ファイルが存在しない場合は作成
すでに存在する場合は、すでにある行の後に追記
・会員番号の昇順でファイルに出力すること。
・会員番号は重複しても構わない
[3.2] コンパイラ(バージョン):borland
[3.3] 言語:C
[4] 期限:2月18日15:00まで位でお願いします。
実際の電話番号の形式でのせたら駄目なのを知らずに消されてしまってました。(汗)
これでお願いします。できればリスト構造でお願いします。


533 :デフォルトの名無しさん:05/02/17 20:09:43
>>530
完全ピボット選択したらどうなん?

534 :デフォルトの名無しさん:05/02/17 20:21:10
>>530
わろた、そこで先生教えろ矢、
うちは、英語を読まされた、ごらー

535 :530:05/02/17 20:34:32
やっぱり部分ピボット選択だけじゃ完全にどんな行列にも対応するってことはムリですかね.
完全ピボット選択で少し考えて見ます・

536 :デフォルトの名無しさん:05/02/17 20:45:44
こんなの収束速度だよ、CPU考えろボケw

537 :468:05/02/17 21:58:31
>>472
ありがとう。そんな規則があったんだね……
プログラミング言語C++買わせていただきます。
Bjarne Stroustrupって変な名前の人が書いた本ですよね。



538 :デフォルトの名無しさん:05/02/17 22:12:42
禿を知らない以上の無知はないな

539 :472:469:05/02/17 22:14:39
>>537
お役に立てて幸いです。
Bjarne Stroustrupっていう変な名前の人が書いたプログラミング言語C++を買うなら第3版以降をどうぞ。

540 :む〜ん:05/02/17 22:23:29
返事遅れてすいません。「単数形を複数形にしろ」という問題を依頼したものです。
とても助かりました、ありがとうございます!まさか、本当にしてくれるとは思ってなくて
感動しました〜。また、わからない問題があったらよろしくおねがいします。

541 :468:05/02/17 22:23:41
高いけど買ったよ〜

プログラミング言語C++第3版 - Bjarne Stroustrup
¥ 7,350 - 数量: 1 - 通常24時間以内に発送

これ読んで一流プログラマー目指してがんばるっす。


542 :デフォルトの名無しさん:05/02/17 22:24:40
俺は糞第1版を持ってるぞ

543 :デフォルトの名無しさん:05/02/17 22:33:38
>>542
原著ですかぁ〜?
初版第1刷ですかぁ〜?

544 :デフォルトの名無しさん:05/02/17 22:43:05
D&Eの方がいい希ガス

545 :デフォルトの名無しさん:05/02/17 22:50:46
原著じゃなくて糞訳の方orz

546 :(´・ω・`)ショボーン:05/02/18 03:46:41
僕の存在意義を教えてください・・・

547 :デフォルトの名無しさん:05/02/18 04:21:25
>>546
それは自分で見つけるものだよ。


548 :(´・ω・`)ショボーン:05/02/18 04:36:15
>>547
知ったようなこと言わないで下さいよ。
何かいい言葉をいったようで、何も中身のない言葉。
何か、あんたと似てるね。(´・ω・`)

549 :デフォルトの名無しさん:05/02/18 04:36:35
初心者です。↓のprogramを作りましたが、実行した時に入力まではエラーせずにいくのですが、入力した後、Floating exception Invalidとしか結果が出ません。
どうもポインタ・構造体苦手なもので。何かご指摘お願い致します。

550 :デフォルトの名無しさん:05/02/18 04:37:08
>>549
#include<stdio.h>
#include<math.h>
#define pai 3.1415926535

struct fukusosu{
double x;
double y;
};

int main(void){
int i;
double r,m,n,ac,bd,cd,bc,ad;
struct fukusosu z[6];
struct fukusosu *p;
p=z;
printf("複素数平面上のベクトルのなす角(1番目の複素数を基準)\n");
for(i=0;i<3;i++){
printf("%d番目の複素数を入力して下さい。\n",i+1);
scanf("%f",&(p+i)->x);
printf("+\n");

551 :デフォルトの名無しさん:05/02/18 04:43:10
それで終わりなの?

552 :デフォルトの名無しさん:05/02/18 04:54:44
とりあえず%lfね。

553 :392:05/02/18 06:59:30
>>529
ありがとうございます! 自分で書いたプログラムではIf statementなど使っていなかったのでとても参考になりました! 
今使っている教科書がC++: An Introduction to Computing Third Edition by Joel Adams and Larry Nyhoffというやつなんですが、きちんとした例文が載っていなく困っていました。 どうもありがとうございました。

554 :デフォルトの名無しさん:05/02/18 13:36:07
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/216.txt
配列の中身をクイックソートで並べ替えたいんですが、
思ったように並べ変わらないです。どこがおかしいか指摘お願いします。


555 :デフォルトの名無しさん:05/02/18 13:55:34
>>554
double値の差しか取ってないから、intにcastした結果が0になってしまう。
int comp(const void * p1, const void * p2)
{
double d1 = * (double *) p1;
double d2 = * (double *) p2;
return p1 > p2 ? 1 : p1 < p2 ? -1 : 0;
}
とでもすればいい。

556 :デフォルトの名無しさん:05/02/18 14:01:48
宿題でないとだめですか?
お願いがあるんですが…

daemon関数を使って5秒毎に標準出力にメッセージ出すPGを作ってもらいたいのですが…
使い方がわからず困っています。

よろしくお願いします。

557 :デフォルトの名無しさん:05/02/18 14:08:58
>>555さま

int comp(const void * p1, const void * p2)
{
double d1 = * (double *) p1;
double d2 = * (double *) p2;

return d1 > d2 ? 1 : d1 < d2 ? -1 : 0;
}

ですよね?ありがとうございました。



558 :デフォルトの名無しさん:05/02/18 14:09:30
ドラえもん?

559 :555:05/02/18 14:21:58
>>557
わはは、ごめん、そのとおり。

560 :デフォルトの名無しさん:05/02/18 14:22:49
>>556
デーモンとバックグランドで動作させるのは意味が違う。
デーモンで、標準出力にメッセージを出すこと自体が矛盾してる。

じゃなくて、ファイルディスクリプター1に/dev/console を割り当てて出力せよ、
とかならわかるけど。

561 :556:05/02/18 14:47:42
よく理解できなくてすみません。
完全にデーモンにすると標準出力できないと記事で見ています。

>じゃなくて、ファイルディスクリプター1に/dev/console を割り当てて出力せよ、
それでお願いしますと言ったら怒りますか?

ほんと、よくわからなくてすみません。
daemonを使ってのコーディングが知りたいだけなので…

562 :デフォルトの名無しさん:05/02/18 14:57:42
daemon(3) って、中身は、この程度しかしてないけど?

switch( fork() ) {
case -1:
return -1;

case 0:
setsid();
chdir( "/");
close( 0 );close( 1 );close( 2 );
return 0;

default:
_exit(0);
}

563 :デフォルトの名無しさん:05/02/18 15:04:45

void timer(int time_sec){
    time_t startTime,endTime;
    startTime=time(&startTime);

    while(1){  
        endTime=time(&endTime);
        if(difftime(endTime,startTime)>=time_sec){
            break;
        }
    }
}

timer(5);

ってかくだけで5秒間止めれるよ


564 :デフォルトの名無しさん:05/02/18 15:11:12
どなたか今日宿題手伝ってくださいませんか?
class Node,class List,class Employee,class EmpTable
項目は、File Process,Linked-list,node.
報酬します。
興味のある方は、上のメアドにメールください。

565 :564:05/02/18 15:14:29
ちなみに、これから6時間以内に仕上げなきゃいけないので・・・。

566 :デフォルトの名無しさん:05/02/18 15:23:47
そんなに速く仕上げたければ問題を書けばいいのに

だいたい報酬ってのがあやしすぎる


567 :デフォルトの名無しさん:05/02/18 15:27:12
>>564
あのさ、このスレで6時間後の事を考えてみろよ。
お前の宿題なんて誰も覚えてないぜ。

568 :デフォルトの名無しさん:05/02/18 15:28:49
>>564
それに、宿題解いて欲しかったらテンプレに従え。
マルチするな。マルチしたら身方を失うぞ。

569 :デフォルトの名無しさん:05/02/18 15:30:29
>>564
>報酬します。

報酬は「する」ものではない。

一瞬、「報復します」と勘違いしたぞ。


570 :564:05/02/18 15:43:58
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=217
これです。

571 :デフォルトの名無しさん:05/02/18 15:53:40
>>570
残念だが、このスレにエスパーはいないと思われ。

572 :564:05/02/18 15:57:35
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
これのC++というスレです。

573 :デフォルトの名無しさん:05/02/18 16:35:15
これか
http://www.math.ucla.edu/~yan/10b.1.05w/projects/project3.html

574 :デフォルトの名無しさん:05/02/18 16:35:57
いつ出た宿題だよ

575 :564:05/02/18 16:45:59
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
ちなみに、一番したに、p1.cppっていうのがあるんですけど、
だいたいのemployee.cppはできてて、あとはちょこっと変えて、link.cppと連結させればいいのですが。


576 :デフォルトの名無しさん:05/02/18 17:13:02
1番がよく分からへん。

http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/programming/%8F%EE%95%F1.txt

577 :デフォルトの名無しさん:05/02/18 17:48:51
http://pc5.2ch.net/test/read.cgi/tech/1108056236/501

578 :564:05/02/18 18:04:01
マジでお願いします。
メールください。

579 :デフォルトの名無しさん:05/02/18 18:07:13
メールにこだわる理由がわからん

580 :564:05/02/18 18:08:30
いや、別にメールじゃなくても良いんですけど、
マジで必要なんで、やってくれたら、お礼したいなって思ったので。

581 :デフォルトの名無しさん:05/02/18 18:12:52
先ず問題を全部訳してくれ。話はそれからだ。
#やるとは限らんがな。

582 :デフォルトの名無しさん:05/02/18 18:16:52
複素数の四則演算がわかりません‥‥
卒業かかっているのでお願いします

583 :デフォルトの名無しさん:05/02/18 18:20:44
>>582
算数の教科書嫁

584 :デフォルトの名無しさん:05/02/18 18:21:01
たぶん数学な。
あと>>1も嫁

585 :564:05/02/18 18:21:13
やることを言うのは、簡単で、
まず、emp2.txtを読み込んで、それをlinked-listを使って、ラストネームのアルファベット順にソートする。
読み込むプログラムは、だいたいp1.cppにあります。
それから、main.cppにあるように、データーを付け加えたり、消したりするんだけど、
かならず、ラストネームのアルファベット順になるように、linked-listを使って付け加える。
アウトプットのサンプルもアップしておきました。

586 :デフォルトの名無しさん:05/02/18 18:24:28
>>582
ttp://f4.aaa.livedoor.jp/~pointc/log506.html

587 :564:05/02/18 18:28:20
class EmpTableは一番土台のclassで、データーをclass Employeeに持っていって、
その順序を操作するのは、class list。
まず最初に、データーを読み込んで、並べるんだけど、最初のファイルから読み込むのは、
すでに、ラストネーム順になっていて、ただその順にlinked-listをすればいい。
で、そのあと、新しく付け加えられ場合は、linked-listから、アルファベット順になるように、
その場所を探して、add付け加えればよいです。
消去する場合には、消去する人のIDを聞くので、そのIDを使って、場所を探し、消去します。

588 :582:05/02/18 18:29:38
【質問テンプレ】
[1] 授業単元:
[2] 問題文
複素型を構造体を使って作成する
複素演算用関数を作る
o 加算  戻り値…複素型 引数…複素型、複素型 関数例…jadd(複素型 , 複素型)
o 減算  戻り値…複素型 引数…複素型、複素型 関数例…jsub(複素型 , 複素型)
o 乗算  戻り値…複素型 引数…複素型、複素型 関数例…jmul(複素型 , 複素型)
o 除算  戻り値…複素型 引数…複素型、複素型 関数例…jdiv(複素型 , 複素型)
o exp  戻り値…複素型 引数…複素型 関数例…jexp(複素型)
[3] 環境
 [3.1] OS:Windows XP pro
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C++
[4] 期限:2005年2月21日12:00まで
[5] その他の制限:特になし

急ですいません‥‥

589 :デフォルトの名無しさん:05/02/18 18:31:18
std::complex をそのままコピーすれば?

590 :デフォルトの名無しさん:05/02/18 18:32:59
[1] 授業単元: デジタル信号処理
[2] 問題文(含コード&リンク): DSKボードによるメロディ作成
[3] 環境  C言語
[4] 期限:月曜日
[5] その他の制限: 関数とポインタ使って簡単に作れ
#include <dsk.h>
void main()
{
int yout,n;
float yre,yre1,yre2;
float kamp=8192.0;
float bre1=1.94691841;

init();
yre1=0.22886060;
yre2=0.0;

while(1)
{
n=0;
while(++n<5000){
wait();
input();
yre=bre1*yre1-yre2;
yre2=yre1;
yre1=yre;
yout=kamp*(yre);
output(yout);
}
}}
これで一応 レの音が出るんですがこれだとメモリーを無駄に使ってだめなんで
どんな音でも対応できる関数とかポインタ使って作らなきゃならないんですがいい方法ありますか?

591 :564:05/02/18 18:47:57
どなたかlist.cppだけでも出来るかたいらっしゃいませんか?
linked-listがいまいちよくわからなくて、それが出来れば、employee.cppは
自分で出来るような気がするんです。
本当にお願いします。

592 :564:05/02/18 18:49:13
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=217

593 :564:05/02/18 19:10:17
すいません。このメールではログインできなくなってしまいました。

594 :デフォルトの名無しさん:05/02/18 19:18:37
このスレの厨房があほなことを試みたようだな

595 :デフォルトの名無しさん:05/02/18 19:20:36
>>593
必死だな(笑い)

596 :デフォルトの名無しさん:05/02/18 19:27:25
>>588
#include <cmath>

struct complex
{
    complex(double re, double im) r(re), i(im){}
    double r, i;
};

const complex jadd(const complex& w, const complex& z){return complex(w.r + z.r, w.i + z.i);}
const complex jsub(const complex& w, const complex& z){return complex(w.r - z.r, w.i - z.i);}
const complex jmul(const complex& w, const complex& z){return complex(w.r * z.r - w.i * z.i, w.r * z.i + w.r * z.i);}
const complex jdiv(const complex& w, const complex& z){return complex((w.r * z.r + w.i * z.i) / (w.i * w.i + z.i * z.i), (w.i * z.r - w.r * z.i) / (w.i * w.i + z.i * z.i));}
const complex jexp(const complex& z){return complex(std::exp(z.r) * std::cos(z.i), std::exp(z.r) * std::sin(z.i));}

597 :デフォルトの名無しさん:05/02/18 19:28:14
>>588
わり、コロンが1つ抜けてた。
#include <cmath>

struct complex
{
    complex(double re, double im) : r(re), i(im){}
    double r, i;
};

const complex jadd(const complex& w, const complex& z){return complex(w.r + z.r, w.i + z.i);}
const complex jsub(const complex& w, const complex& z){return complex(w.r - z.r, w.i - z.i);}
const complex jmul(const complex& w, const complex& z){return complex(w.r * z.r - w.i * z.i, w.r * z.i + w.r * z.i);}
const complex jdiv(const complex& w, const complex& z){return complex((w.r * z.r + w.i * z.i) / (w.i * w.i + z.i * z.i), (w.i * z.r - w.r * z.i) / (w.i * w.i + z.i * z.i));}
const complex jexp(const complex& z){return complex(std::exp(z.r) * std::cos(z.i), std::exp(z.r) * std::sin(z.i));}

598 :デフォルトの名無しさん:05/02/18 19:40:08
>>590
char s[][7] = {"ド", "ド♯", "レ", "レ♯", "ミ", "ファ", "ファ♯", "ソ", "ソ♯", "ラ", "ラ♯", "シ"};
s[a]の周波数は440.*pow(2.,(a-9)/12.)Hz

599 :デフォルトの名無しさん:05/02/18 19:42:08
>>593
ねぇねぇ 笑い って略さないのははやってんの?
いやこの前もどっか別のサイトで見たから聞いてみただけ。


600 :599:05/02/18 19:42:49
うげっ>>593じゃなくて>>595でした on_

601 :デフォルトの名無しさん:05/02/18 19:56:19
(微笑む)
ってのもあるくらいだからねえ。

602 :590:05/02/18 20:13:55
>>598
おお〜そうなるんですか 
よくわかってないけど どうもっす

603 :デフォルトの名無しさん:05/02/18 20:56:55
MMOを作ろう!企画を立ち上げました。協力できる人はこちら
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1108379282/l50

くすぶってないで、自分の力を試してみよう!!

604 :590:05/02/18 21:32:13
>>598
すいません よく考えたんですが
よくわからないっす!
これでどういう動きするんですか?

605 :598:05/02/18 21:44:41
>>604
DSKとか知らないけど。
440.*pow(2.,(a-9)/12.)、数学っぽく書くなら440×2 ^ {(a - 9) / 12}
からある音の周波数を求めて(ラだったら440Hz)、正弦波を作って
配列に格納した方が速いんじゃないかね?と言うこと。

606 :デフォルトの名無しさん:05/02/18 22:02:48
は長調のドは440Hz

607 :デフォルトの名無しさん:05/02/18 22:13:16
ハ長調の「ラ」が 440Hz では?


608 :564:05/02/18 22:26:50
class Employee;
typedef Employee* Data;

class Node
{
public:
Node() {next = NULL;}
Node(Data d, Node* n = NULL) {data=d; next=n;}
~Node();
void setNext(Node* n) {next=n;}
void setData(Data d) {data=d;}
Data getData() {return data;}
Node* getNext() {return next;}

private:
Node *next;
Data data;
};


609 :564:05/02/18 22:27:36
class List
{
public:
List(){setHead(NULL);size=0;}
~List() {clear();}
void setHead(Node *n) {head=n;}
Node* getHead() {return head;}
int getSize() {return size;}
bool isEmpty() {return (size==0);}

Data addNode(Data d) {return addNode(new Node(d));}
Data addNode(Node* n);
// ↓Node *prevの後にAdd Node *nを加える
void addNode(Node *prev, Node* n);
//↓Node *n をlistから消す
void removeNode(Node *n);
// ↓Data dを含んでいるNodeをlistから消す。
void removeNode(Data d);

private:
Node *head;
int size;
};

610 :564:05/02/18 22:28:49
Data addNode(Node* n);
void addNode(Node *prev, Node* n);
void removeNode(Node *n);
void List::removeNode(Data d)
をやっているんですけど、うまくいきません。。。

611 :デフォルトの名無しさん:05/02/18 22:30:59
C++ でコレクションクラスを作る気が知れない。

612 :デフォルトの名無しさん:05/02/18 22:45:49
車輪の再発明だしな

613 :デフォルトの名無しさん:05/02/18 22:53:15
>>612
九九を覚えるのも車輪の再発明ですか?

614 :デフォルトの名無しさん:05/02/18 22:58:43
>>613
Collectionの作り方を覚えればいい。

615 :デフォルトの名無しさん:05/02/18 23:00:15
>>614
ハァ?

616 :デフォルトの名無しさん:05/02/18 23:03:02
>>615
わざわざ一回作ってみる必要はなかろう。

617 :デフォルトの名無しさん:05/02/18 23:15:27
本当に勉強する気があるなら作って見るのも悪くは無い。
でもここに来る奴なら必要は無いね

618 :デフォルトの名無しさん:05/02/18 23:40:44
>>564
Data addNode(Node *n) {
  if(n == NULL) return NULL;
  if(size == 0) { head=n; size++; return NULL; }
  else if(size == 1) { if(*head == *n) return head->getData(); else { addNode(head, n); return NULL; } }

  Node *nd = head; int ct=2;
 if(*head == *n) return head->getData(); 
  while(*(nd->getNext()) != *n) { 
    if(size == ct) break; 
    nd = nd->getNext();
  }
  if(*(nd->getNext()) == *n) return nd->getNext()->getData();
  addNode(nd, n);
  return NULL;
}

void addNode(Node *prev, Node *n) { prev->setNext(n); size++; }


619 :618:05/02/19 00:21:41
...
if(size == 0) { head=n; size++; return NULL; } 
Node *nd = head;
int ct = 1;
while(1) {
  if(*nd == *n) return nd->getData();
  if(size == ct) break;
  nd = nd->getNext();
  ct++;
}
addNode(nd, n);
...
素直にList使うか…

620 :デフォルトの名無しさん:05/02/20 02:24:22
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 以下
[3] 環境
 [3.1] OS: Windows XP pro
 [3.2] コンパイラ(バージョン):bcc
 [3.3] 言語:C
[4] 期限:2月21日昼
[5] その他の制限: 必要な標準関数は適宜使用すること.
ただし,関数を作る問題ではその関数を使ったmain関数も考えること.

4.3次元ベクトルを表す構造体(タグ名「Vector3D」)を定義し,
この構造体を使ったベクトルの外積を計算する関数「Cross_Product」を作りなさい.
ただし,引数は2つの3次元ベクトル,戻り値は外積ベクトルとする.
なお,外積は以下の式で計算できる.
c = a×b = ( ay bz – az by, az bx – ax bz, ax by – ay bz )
この関数を使って以下の2つのベクトルの外積を求めなさい.
a = ( 0.1, -0.8, -1.3 )
b = ( 1.7, 2.2, -3.1 )

2.標準関数の「strlen」は半角文字の字数を数える関数なので全角文字1字を2字と数えてしまう.
一般に「DOS/V」と呼ばれる機種のパソコンでは漢字コードとして「シフトJISコード」が使われている.
シフトJISでは全角文字(2バイト)の第1バイトは 0x81(129)〜0x9f(159) および 0xe0(224)〜0xfc(252) の範囲の値をとる.
そこで,文字列を先頭から1バイト毎にチェックし,この範囲であればその文字は全角文字の第1バイトであることになり,
範囲外であれば半角文字ということになる.このことを利用して,
シフトJISコードの全角文字と半角文字が混在した文章の字数を正確に数えられる関数「strlen_sjis」を作りなさい.
なお,この関数の引数は「文字列」,戻り値はその字数とする.
【注意】上にあげた第1バイトの値はすべて127より大きく先頭ビットが反転しているので,
そのままでは負号をもちます.
そこで,文字列は「unsigned char」として宣言する必要があります.

5つ問題があって、これ以外のものは解けたんですがこの2つが解けません。
よろしくお願いします!

621 :デフォルトの名無しさん:05/02/20 03:10:32
>>620
問題を作った奴は誰だ?嘘ばかり並べやがって

622 :デフォルトの名無しさん:05/02/20 03:30:09
個人的にはこれが気に入ったyo!
> 一般に「DOS/V」と呼ばれる機種のパソコンでは漢字コードとして「シフトJISコード」が使われている.

そーだったのか。。。

623 :デフォルトの名無しさん:05/02/20 03:40:24
外積ってこれでよかった?
#include <stdio.h>
struct Vector3D { double x,y,z; };
void vec(const struct Vector3D *in1, const struct Vector3D *in2, struct Vector3D *out) {
 out->x = in1->y*in2->z - in1->z*in2->y;
 out->y = in1->z*in2->x - in1->x*in2->z;
 out->z = in1->x*in2->y - in1->y*in2->x;
}
#define ISLEAD(c) ((c)>=0x81 && (c)<=0x9f)
#define ISTAIL(c) ((c)>=0xe0 && (c)<=0xfc)
size_t strlen_sjis(const unsigned char *string) {
 size_t len = 0;
 const unsigned char *ptr = string;
 while(*ptr){
  if (ISLEAD(*ptr) && ISTAIL(*(ptr+1))) ptr++;
  ptr++; len++;
 }
 return len;
}
int main() {
 const struct Vector3D a = { 0.1, -0.8, -1.3 };
 const struct Vector3D b = { 1.7, 2.2, -3.1 };
 struct Vector3D c;
 const char d[] = "...";
 vec(&a, &b, &c); printf("c = ( %f, %f, %f )\n", c.x, c.y, c.z);
 printf("%s = %u\n", d, strlen_sjis((unsigned char *)d));
 return 0;
}


624 :デフォルトの名無しさん:05/02/20 03:42:25
ああ、回答混ぜちゃった。
外積は関数名やら戻り値が要求を満たしてなかった。すまんね。

625 :デフォルトの名無しさん:05/02/20 03:48:33
>>622
おれのDOS/Vと呼ばれる機種のパソコンにインストールしてあるOSだと、
漢字コードにいわゆるeuc-jpを使ってるけどなあ、というありがちな突っ込み。

626 :デフォルトの名無しさん:05/02/20 05:50:37
昔作られた問題をそのまま使ってるんだろう

627 :デフォルトの名無しさん:05/02/20 07:18:56
>>623
引数のstringを直接インクリメントしても平気だよ。
それ以前に"ほげ"を渡して4が返ってくるはどうかと。

>>620の問題を作った奴
こうすればunsigned charにしなくてもうまくいく。
逆にunsigned charに固定するとちゃんと動かない。
size_t strlen_sjis(const char *s) {
    size_t len = 0;
    while (*s != '\0') {
        len++;
        if ((*s >= '\x81' && *s <= '\x9F') || (*s >= '\xE0' && *s <= '\xFC'))
            s += 2;
        else
            s++;
    }
    return len;
}



628 :デフォルトの名無しさん:05/02/20 07:58:33
>>620
宿題はやらなくていいから出題者をののしってきなさい。

629 :564ではないですが、:05/02/20 08:45:32
>>576に答えてくれたら報酬はします

アップローダー
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

630 :デフォルトの名無しさん:05/02/20 11:51:39
>>627
>>623の修正どもー。問題をよく読めてなかったよ

631 :デフォルトの名無しさん:05/02/20 13:14:00
>>629
マルチする暇あるんならlibiconvのソースでも読んでろよ

632 :デフォルトの名無しさん:05/02/20 16:16:56
だから報酬はするもんじゃないと

633 :デフォルトの名無しさん:05/02/20 16:19:43
>>632
お前に報酬してやろう

634 :デフォルトの名無しさん:05/02/20 17:31:36
[1] 授業単元: 継承
[2] 問題文(含コード&リンク): 最低1回は継承を用いてクラスを定義し、定義したクラスを用いた
 プログラムを作成せよ。(その際、適宜コメントして説明すること)
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ(バージョン):visual C++
 [3.3] 言語:C/C++/どちらでも可 のいずれか C++
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか 2月21日
[5] その他の制限: 初心者のプログラムらしくしてもらえると幸いです。

すいません。超初心者なんで、ぜんぜんわかりませんでした。。。
どうかよろしくお願いします。


635 :デフォルトの名無しさん:05/02/20 17:35:48
class Parent
{
}

class Child extends Parent
{
}

class Test634
{
 static public void main(String argv[]){
   Child child = new Child();
 }
}


636 :デフォルトの名無しさん:05/02/20 17:37:22
>>635
凍んでいいよ

637 :635:05/02/20 17:37:35
すまん。めちゃくちゃかんちがいしてた。
無視してくれ。

638 :デフォルトの名無しさん:05/02/20 17:39:24
>>635
>言語:C/C++/どちらでも可 のいずれか C++

ここを日本語に訳してくれ

639 :デフォルトの名無しさん:05/02/20 17:52:11
>>638
それぐらい察しろよ。つかえねー奴だな。

640 :デフォルトの名無しさん:05/02/20 17:54:24
テンプレの文章のあとにC++を書き足したってだけみたいですな

641 :デフォルトの名無しさん:05/02/20 19:21:00
>>634
#include <iostream>
class BaseFunc{public:int m_vol;virtual int func(int rh)=0;BaseFunc():m_vol(0){;}BaseFunc(int vol):m_vol(vol){;}};
class Add:public BaseFunc{public:Add():BaseFunc(0){;}Add(int vol):BaseFunc(vol){;}int func(int rh){return m_vol+rh;}};
class Sub:public BaseFunc{public:Sub():BaseFunc(0){;}Sub(int vol):BaseFunc(vol){;}int func(int rh){return m_vol-rh;}};
class Mul:public BaseFunc{public:Mul():BaseFunc(0){;}Mul(int vol):BaseFunc(vol){;}int func(int rh){return m_vol*rh;}};
class Div:public BaseFunc{public:Div():BaseFunc(0){;}Div(int vol):BaseFunc(vol){;}int func(int rh){if(rh)return m_vol/rh;else return 0;}};
int main(){int x=21,y=7,z;BaseFunc *p;
{p=new Add(x);z=p->func(y);std::cout<<x<<" + "<<y<<" = "<<z<<std::endl;delete p;}
{p=new Sub(x);z=p->func(y);std::cout<<x<<" - "<<y<<" = "<<z<<std::endl;delete p;}
{p=new Mul(x);z=p->func(y);std::cout<<x<<" * "<<y<<" = "<<z<<std::endl;delete p;}
{p=new Div(x);z=p->func(y);std::cout<<x<<" / "<<y<<" = "<<z<<std::endl;delete p;}
return 0;}


642 :デフォルトの名無しさん:05/02/20 20:43:37
次のプログラムは配列tenの内容をポインタpによって参照し、入出力するプログラムである。次の空欄を埋めよ。ってゆう問題なんですけど@〜Cまでの空欄解いてもらえないでしょうか?
#include<studio.h>

main()
{
int i,ten[10]
int @p
A
   for(i = 0;i < 10;i++){
printf("整数を入力>>");
scanf("%d",B);
}
for(i = 0;i < 10;i++){
printf("%d個目 = %d\n",i+1,C);
   }
}


643 :デフォルトの名無しさん:05/02/20 20:46:22
>>642
1 *
2 = ten;
3 p + i
4 i[p]

644 :デフォルトの名無しさん:05/02/20 20:46:46
テンプレに従えとは言わんが、せめて問題をそのまま写せ
セミコロンが全角だったり抜けてたりしてて見る気にならん

645 :デフォルトの名無しさん:05/02/20 20:50:13
写したつもりやったんやけど、ぬけてたみたいで。。。すいませんでした

646 :デフォルトの名無しさん:05/02/20 20:56:31
あと二つあるんですけど解いてもらえませんか?

647 :デフォルトの名無しさん:05/02/20 21:03:11
>>645
あやまるだけじゃなく、きちんと訂正しないと>643みたいな回答のままになるぞ。

648 :デフォルトの名無しさん:05/02/20 21:15:06
次のプログラムは配列tenの内容をポインタpによって参照し、入出力するプログラムである。次の空欄を埋めよ。ってゆう問題なんですけど@〜Cまでの空欄解いてもらえないでしょうか?
#include<studio.h>

main()
{
int i,ten[10];
int @p;
A
for(i = 0;i < 10;i++){
printf("整数を入力>>");
scanf("%d",B);
}
for(i = 0;i < 10;i++){
printf("%d個目 = %d\n",i+1,C);
}
}
ちゃんと写せたと思うんですけど、あってますか??

649 :デフォルトの名無しさん:05/02/20 21:17:00
1 *
2 p = ten;
3 p + i
4 i[p]

650 :デフォルトの名無しさん:05/02/20 21:30:39
次のプログラムは入力すた値を2乗した値を表示するプログラムである。なお、整数を受け取り、受け取った値の2乗を戻す、jijyo関数を作成し、それを利用している。空欄を埋めよ。(仮引数名は自由に決めてよいものとする)
#include<stdio.h>

@ jijyo(A);

main()
{
int suu,ans;

printf("整数を入力してください>>");
    scanf("%d",B);

ans = C;
printf("%dの2乗は%dです。\n",D,E);
}
F
{
G
}
この問題の@〜G解いていただけますか??




651 :デフォルトの名無しさん:05/02/20 21:42:48
なにこの宿題ふざけてるの?

652 :デフォルトの名無しさん:05/02/20 21:44:36
>>650
解きました

653 :デフォルトの名無しさん:05/02/20 21:46:16
@int
Aint num
B&suu
Cjijyo(suu)
Dsuu
Eans
Fint jijyo(int num)
Greturn num * num;

654 :デフォルトの名無しさん:05/02/20 22:59:41
[1] 授業: Cプログラミング
[2] 問題文 文字、数値取得と判定
[3] 言語:C
[4] 期限: 早ければ早いほどいいです。

char ss[]="MPA T01 DELAY -24ms.wav";
char ss2[]="MPA T12 DELAY 234ms.wav";
char ss3[]="MPA T DELAY 21ms.wav";
char ss4[]="MP T01 DEBY -32ms.wav";

この文字列から XXmsの XXの数値を
得るにはどうすれば良いんでしょうか?

それとss3,ss4はエラーで出力したんですけど
教えてください

655 :654 ↑:05/02/20 23:03:36
解決しました
すいません(^^@

656 :デフォルトの名無しさん:05/02/20 23:12:46
>それとss3,ss4はエラーで出力したんですけど
>教えてください

だからこれの意味がわからんと

657 :デフォルトの名無しさん:05/02/21 02:44:14
機種依存文字使うなよ

658 :71:05/02/21 13:52:04
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 三角関数(Tan、Cos、Sin)を求めるプログラム作成
[3] 環境
 [3.1] OS: Windows XP Pro
 [3.2] コンパイラ(バージョン): ボーランド
 [3.3] 言語:C/C++/どちらでも可 のいずれか Cのみ
[4] 期限平成17年2月28日4:00まで
[5] その他の制限: 宿題なのでよろしくお願いします。

659 :デフォルトの名無しさん:05/02/21 14:30:19
C言語 三角関数でググったらいっぱいおっぱい出てくるよ

660 :デフォルトの名無しさん:05/02/21 14:34:18
>>658
#include <stdio.h>
#include <math.h>
#define put(f, d) printf("%s(%lf) == %lf\n", #f, d, f(d));
int main(void) {
    double d;
    if (scanf("%lf", &d) != 1) return 1;
    put(sin, d);
    put(cos, d);
    put(tan, d);
    return 0;
}

661 :デフォルトの名無しさん:05/02/21 14:54:27
>>659
おっぱいはドコだっ!! (゚Д゚≡゚Д゚)
イメージ検索じゃ、妄想を膨らまさなければそうは見えなかった。
チクショウ!

662 :デフォルトの名無しさん:05/02/21 15:36:18
[1] 授業: Cプログラミング
[2] 問題文 (下記のプログラムを参照して ) BMPファイルを開き、それを別のファイルにコピーせよ。その際
        そのBMPファイルをグレイスケール(灰色がかった色合い)に変更せよ。
ヒント:最初の99バイトをコピーし、残りのバイトに関しては、3つを1度に読み込む(赤ー緑ー青の順)。
            そして、それらの値の平均化し、新しい(別の)ファイルにコピーしなさい。
[3] 言語: C
[4] 期限: 早ければ早いほどいいです。
[5] 補足: ヒントの部分は分かりづらくてすみません。要はコピーした写真が灰色がかっていればいいと思います。
include <stdio.h>
main()
{


FILE *f1 = fopen("file1","r");
FILE *f2 = fopen("file2","w+");

char buff[128];

int br;

while( (br = fread(buff, 1,1, f1)) > 0)
fwrite(buff, 1, br, f2);

fclose(f1) ;
fclose(f2);


663 :デフォルトの名無しさん:05/02/21 15:55:12
<stdio.h>
main()
{
  FILE *f1 = fopen("file1", "rb");
  FILE *f2 = fopen("file2", "wb");
  unsigned char rgb[3];
  int i;
  for (i = 0; i < 99; i++)
    fputc(fgetc(f1), f2);
  while (!feof(f1)) {
    fread(rgb, 3, 1, f1);
    rgb[0] = rgb[1] = rgb[2] = (rgb[0] + rgb[1] + rgb[2]) / 3;
    fwrite(rgb, 3, 1, f2);
  }
  fclose(f1);
  fclose(f2);
}


664 :デフォルトの名無しさん:05/02/21 16:00:01
RGBをグレイスケールにするときは足して3で割ったらだめだよ

665 :デフォルトの名無しさん:05/02/21 16:08:09
いいんだよそれで
その程度の問題なんだから

666 :デフォルトの名無しさん:05/02/21 16:21:47
BMPの画像情報とかパレットテーブルって常に100バイトだっけ?

667 :デフォルトの名無しさん:05/02/21 16:40:54
いいんでない?
ヒントにそう書いてあるんだから。

668 :デフォルトの名無しさん:05/02/21 18:30:04
やり方わかんないです
教えてください
泣きそうです
1. freecommandlinetools.exe を実行します。無料の C++Builder 5
コマンドラインツール開発システムをインストールしたいドライブと
フォルダを選択します。

2. インストール先の bin ディレクトリで次の手順を実行します。
a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。
b. bcc32.cfg ファイルを作成します。このファイルは,Include
および Lib パスのコンパイラオプション(コンパイラの -I
および -L スイッチ)を設定するものです。ファイルには次の
行を含めてください。
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
c. ilink32.cfg ファイルを作成します。このファイルは,Lib
パスのリンカオプションを設定するものです。ファイルには
次の行を含めてください。
-L"c:\Borland\Bcc55\lib"

669 :デフォルトの名無しさん:05/02/21 18:30:57
スレ違い

670 :デフォルトの名無しさん:05/02/21 18:32:18
どこでしょうか?

671 :デフォルトの名無しさん:05/02/21 18:33:39
>>670
http://pc5.2ch.net/test/read.cgi/tech/1091066805/l50

672 :デフォルトの名無しさん:05/02/21 18:38:21
>>671
ありがとうございます

673 :デフォルトの名無しさん:05/02/21 22:21:55
以下は2点の座標値を入力し、2点間の距離を求めるプログラムである。
この続きを書き、プログラムを完成させよ。
ただし、与えられた関数を必ず使うこと。変数は自由に定義して構わない。

#include<stdio.h>
#include<math.h>
void main()
{
float kyori(int x , int y);
_________________________
授業単元: プログラム演習
[3] 環境
 [3.1] OS:WIN XP
 [3.3] 言語:C
[4] 期限:今日中

どなたかよろしくお願い致します。

674 :デフォルトの名無しさん:05/02/21 22:24:40
>>673
こんな今すぐ学校やめろ

675 :デフォルトの名無しさん:05/02/21 22:32:08
写し間違いじゃなければ、確かにこの問題はヤバい・・・

676 :デフォルトの名無しさん:05/02/21 22:35:59
>>674
禿同

>>673
君のためだ

677 :デフォルトの名無しさん:05/02/21 22:38:08
本気かこれ?

678 :デフォルトの名無しさん:05/02/21 22:44:07
多分写し間違いだろうけど、もしそうじゃなかったら
マジで今後の身の振り方考えた方がいいかもね。

679 :デフォルトの名無しさん:05/02/21 22:48:17
>>674
厨一でマイナスを習うときの数直線ぢゃないの?
やめられないっしょ。

>>673
#include <stdio.h> 
#include <math.h> 
float kyori(int x, int y) { return (float)(y - x); }
/*void*/ int main(void) 
{
    float kyori(int x, int y);
    int x, y;
    if (scanf("%d%d", &x, &y) != 2) return 1;
    printf("%d と %d の距離 = %.0f\n", x, y, kyori(x, y));
    return 0;
}

680 :デフォルトの名無しさん:05/02/21 22:59:56
[1] アクションゲーム製作
[2] LoadBMP(char* Filename, unsigned char** pGraph, int Width, int Height)関数の作成
[3] TurboC++ [3.1] WinXP [3.2]4.0 [3.3] Cのみ
[4] 2月23日 AM 9:00
[5] [2]の関数名で書いて下さい
/*************[LoadBMP]*********************/
int LoadBMP(char* Fn, unsigned char** ppGraph, int Width, int Height)
{
FILE* fp;
int err;

*ppGraph = (unsigned char*)malloc(Width*Height);
if(*ppGraph==NULL) return MEMORY_ERROR1;

fp=fopen(Fn,"rb");
if(fp==NULL) return FILE_ERROR1;

//読み込み位置を決める ←をやって頂きたいです

err = fread(*ppGraph, Width*Height, 1, fp);
if(err!=1)
{
fclose(fp);
return FILE_ERROR1;
}

fclose(fp);
return 0;
}

681 :デフォルトの名無しさん:05/02/21 23:02:07
>>679
距離は|y - x|だよっと

682 :681:05/02/21 23:05:12
>>679
ついでに、
>厨一でマイナスを習うときの数直線ぢゃないの?
お前は一次元ユークリッド空間をマイナスを教えるときにしか使わないのか

683 :デフォルトの名無しさん:05/02/21 23:08:28
>>682
あんま漏れをなめんといてくださいよ。

684 :デフォルトの名無しさん:05/02/21 23:10:23
だったら舐めらるようなレスつけないで下さいよ

685 :デフォルトの名無しさん:05/02/21 23:11:30
つーか距離の計算できないって、リアルで消防か
80杉のおっさんくらいしか思い浮かばない

686 :デフォルトの名無しさん:05/02/21 23:11:30
>>673
手遅れです(宿題が、ではなくあなたの人生が)
まじでやめたほうがいい、これは

687 :デフォルトの名無しさん:05/02/21 23:11:53
>>684
つけた覚えはありませんよ。

688 :デフォルトの名無しさん:05/02/21 23:12:53
そうですか

689 :デフォルトの名無しさん:05/02/21 23:13:12
ええ

690 :デフォルトの名無しさん:05/02/21 23:14:19
float kyori(int x, int y) { return (float)(y - x); }

691 :デフォルトの名無しさん:05/02/21 23:17:04
数直線での整数値の距離なら、戻り値をfloatにする意味がわかりません。
x,y座標においての距離なら、一点だけを入力して距離が求まるはずありません。
そういうことですね?貴様らが言いたいのは、あ?

692 :679:05/02/21 23:18:25
>>681
あーそーか。ゴメソ
>>682
限定的なことは言ってないよ。
てか,一次元ユークリッド空間とかムズイ事知らんのです。
漏れは高卒でつ

    結  論
>>679 <<<<<< >>673

693 :デフォルトの名無しさん:05/02/21 23:18:51
それよりも距離は符号つかねーよと言いたい

694 :デフォルトの名無しさん:05/02/21 23:29:29
>>693
>>681

695 :693:05/02/21 23:34:35
>>693>>691へのレスだ。
そもそもオレが>>681だ。

696 :デフォルトの名無しさん:05/02/22 00:30:49
>>673
#include<stdio.h>
#include<math.h>
int
main() {
float kyori( int x, int y );
int x1, y1, x2, y2;
if ( scanf( "%d%d%d%d", &x1, &y1, &x2, &y2 ) != 4 ) return;
printf( "%f\n", kyori( x2 - x1, y2 - y1 ) );
}

float
kyori( int x, int y ) {
return sqrt( x * x + y * y );
}

たぶんこういう意図じゃないかなー、期限すぎてるけど

697 :デフォルトの名無しさん:05/02/22 05:49:35
mainの戻り値がありませんが

698 :デフォルトの名無しさん:05/02/22 08:43:48
>>697
古い知識で煽らないように

699 :デフォルトの名無しさん:05/02/22 09:12:49
>>697
志村〜!上っ!上っ!

700 :デフォルトの名無しさん:05/02/22 12:21:10
[1] 授業単元: C
[2] 問題文(含コード&リンク):
画面から( 会員番号, 名前, 電話番号 )を入力し、
以下のようなCSV形式のファイルを書き出すプログラムを作成してください
<CSVファイル> カンマ区切り
A001,tanaka daisuke,電話番号
B033,内藤 一,電話番号
A004,鈴木 三郎,電話番号
会員番号 − 最大4byte 半角英数字のみ
名前   − 最大32byte 制御文字以外の文字全て
電話番号 − 最大13byte ハイフン,数字のみ
・入力項目は全て入力しなければならない
・入力項目が不足している場合、入力項目の文字種別が異なる場合、
最大byte数を超えて入力された場合は標準エラーストリーム(stderr)にエラー情報を出力する。
ただし、エラー表示後、入力状態に戻ること。
・何度も繰り返して会員番号を入力できるようにする
プログラムを終了させる条件を考えること
・構造体を使用すること
・登録件数の上限をなくすこと。(メモリが許す限り何件でも登録できること)
・会員情報を記述するファイル名はプログラムの引数で与える
ファイルが存在しない場合は作成
すでに存在する場合は、すでにある行の後に追記
・会員番号の昇順でファイルに出力すること。
・会員番号は重複しても構わない
[3.2] コンパイラ(バージョン):borland C++
[3.3] 言語:C
[4] 期限:2月24日15:00まで位でお願いします。
よろしくお願いします。

701 :デフォルトの名無しさん:05/02/22 12:26:16
>>696
こういう書き方流行ってんの?

702 :デフォルトの名無しさん:05/02/22 12:45:19
>701
696じゃないけど
うちの大学でもこう書けって習った・・・

703 :デフォルトの名無しさん:05/02/22 12:47:21
と、思ってよく見たら違ったorz

704 :デフォルトの名無しさん:05/02/22 16:22:23
[1]授業単元:C言語
[2]問題文:オセロを作れ
[3]環境
 [3.1]OS:UNIX
 [3.2]コンパイラ:gcc
 [3.3]言語:C
[4]期限:23日昼
[5]その他の制限:CPU対戦は不要

705 :705:05/02/22 16:29:45
エラトステネスのふるいってやつをプログラミングしてみたんだけど
もっと改良したほうがイイ所あったら指摘してください

706 :705:05/02/22 16:31:41
#include <stdio.h>
main(){
int data[100000],date[100000],i,j,k,n;
printf("2からいくつまでの間の素数を求めますか?数字を入力してください。2〜");
scanf("%d",&n);
data[2]=2;
date[2]=0;
j=3;
for(i=3;i<=n;i++){
if(i%2!=0){
data[j]=i;
date[j]=0;
j++;
}}
for(i=3;i<=j-1;i++){
for(k=i+1;k<=j-1;k++){
if((data[k]%data[i]!=0)&&(date[k]==0)){
date[k]=0;
}
else{
date[k]=1;
}}}
for(i=2;i<=j-1;i++){
if(date[i]==0){
printf("%6d",data[i]);
}}printf("\n");}



707 :デフォルトの名無しさん:05/02/22 16:51:40
>>706
パッと見だけど、date(日付け?)の振る舞いがおかしくないかい?
data[n]は常にnな気がするし。

708 :デフォルトの名無しさん:05/02/22 17:31:24
今アルゴリズムの勉強してるんですけど、

void alternate( int *a, int *b)
{ //ポインタaとbで指定された内容を交換する
 int w;
 (問1);
 *a = *b;
 (問2);
}

答1、w = *a;
答2、*b = w;
これで交換できますか?

709 :デフォルトの名無しさん:05/02/22 17:40:39
>>708
なぜそれを実環境で動作させてみないんだ?
それって、勉強っていうのか?

710 :デフォルトの名無しさん:05/02/22 17:43:54
>>708
できんじゃねーの?
アルゴリズムは激しく無関係だけどな。

711 :デフォルトの名無しさん:05/02/22 17:45:05
>>709
動作させる環境がまだないので…。
すいません、お邪魔しました

712 :デフォルトの名無しさん:05/02/22 17:45:37
>>708
実際に交換できるかどうかは自分で確認するべきだ
で、「希望通りの動きをしたが、やり方はこれでいいのか」ということを聞くべきだ
と思ったらここは宿題スレか

それでいいよ

713 :デフォルトの名無しさん:05/02/22 17:45:59
>>710
なるほど。ありがとうございました。

714 :680:05/02/22 19:20:33
すいません 答えて頂けないでしょうか

715 :デフォルトの名無しさん:05/02/22 19:35:13
>>714:680
すいません 読み込み位置をどこに決めたらいいのか答えて頂けないでしょうか

716 :デフォルトの名無しさん:05/02/22 21:01:23
>>714
18バイトだけシークしてから読めば良さそう。
この辺参照してみたら?
http://www.vector.co.jp/soft/data/art/se027618.html

717 :デフォルトの名無しさん:05/02/22 21:11:37
あ、しまった18バイトじゃないや。まぁ、調べれば分かるよな

718 :デフォルトの名無しさん:05/02/22 21:47:56
答えてもらいますよ。

719 :デフォルトの名無しさん:05/02/22 23:35:59
恐らく14+40。
つか、各ドットに対して1Byteな時点で(ry

720 :デフォルトの名無しさん:05/02/22 23:53:02
BITMAPFILEHEADERのメンバに直接ビットマップビットを(ry

721 :デフォルトの名無しさん:05/02/23 00:06:15
>>719
意地悪だなぁ、1バイトってことはパレ(ry

722 :デフォルトの名無しさん:05/02/23 00:08:19
ファイルサイズ - (Width*Height*3) じゃダメ?

723 :デフォルトの名無しさん:05/02/23 00:16:51
windows bitmap fileならダメ!
ファイルのヘッダー部を読まないと(ry

724 :デフォルトの名無しさん:05/02/23 04:37:40
OS/2 bitmap ならヘッダーサイズが違う

725 :yasu:05/02/23 12:38:04
学校の課題なんですが、入院をしていて全く分かりません。単位がもらえない
可能性があるのでどうかお願いします。たくさんあって申し訳ないんですが・・・。
c++です
1. (合計と平均)10個の整数の合計、平均を求めるプログラムをfor文で作りなさい。

2. (実数の掛け算)10個の実数を読みとり、それらを掛け合わせた値を表示するプロ
グラムをfor文でつくりなさい。

3. 整数nを読み込み、n行で三角形を描くプログラムをfor文を使って作りなさい。
例n=3のとき

**
***

4. 0から100までの整数の二乗、平方根を求めるプログラムを作りなさい。
但し、整数は15間隔で変化させること

5. 0〜180度までの角度に対する三角関数(sin,cos)の値を表示するプログラム
を作りなさい。ただし、角度は15度間隔で変化させ、値は全体7桁、小数部4桁で
表示させてください。なお、三角形に与える角度はラジアンです。

お願いします。卒業したいです。お願いします。

726 :デフォルトの名無しさん:05/02/23 12:48:46
>>725
そのくらいもできないのであれば、卒業しなくていいよ

727 :yasu:05/02/23 12:48:49
すいません。追加↑です
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 上に書いてあります
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ(バージョン): よく分からないですが、ボーランドのコンソールアプリケーションっているので作りました
 [3.3] 言語:C++
[4] 期限:2005年4月25日 失礼かもしれませんが、できるだけ早くお願いします

 本当にお願いします。これが最後の手段なんです。

728 :yasu:05/02/23 12:50:37
またしても追加です
期限が、4月ではなく【2月】です。本当に余裕がなくて間違いだらけですいません

729 :デフォルトの名無しさん:05/02/23 12:50:39
ところでBMPファイルは無圧縮前提なん?

730 :yasu:05/02/23 12:55:31
よく分かりません bmpファイルって。高校ではこんなの出てきませんでした。

731 :デフォルトの名無しさん:05/02/23 13:13:35
>>727
最後の手段つーことは、入院証明とって教授にかけあって補習とかそういうのを
してもらえないかどうか頼んだと考えていいのかな。

1. 10個の整数の入力をどうするのかが不明。予め10個入れちゃってもいいの?
2. 何から読み取ればいいのか。ファイル? 入力?
3. どこから読み(ry
4. 結局90まででいいのかな?

732 :デフォルトの名無しさん:05/02/23 13:20:02
入院をしていて・・・ニヤニヤ

733 :yasu:05/02/23 13:24:00
入力でいいと思います。お時間がなければ結構ですよ。素直にダブります。

734 :デフォルトの名無しさん:05/02/23 13:57:41
Cでやっちゃった(テヘッ♥

735 :デフォルトの名無しさん:05/02/23 13:59:50
時間はあるが お前の態度が 気に入らない

736 :デフォルトの名無しさん:05/02/23 14:01:57
>>725の5ってこんな感じで合ってますか?
数学自信ある方、添削よろしくお願いしますm(_ _)m

#include<stdio.h>
#include<math.h>

#define PAI 3.141592

int main(void)
{
double rad;
int i;
for( i = 0; i <= 180; i+=15){
rad = (2*PAI / 360) * i;
printf("sin(%3d) = %7.4f cos(%3d) = %7.4f\n", i, sin(rad), i, cos(rad));
}
return 0;
}

737 :yasu:05/02/23 14:05:10
ありがとうございます。たすかりました。私の態度が悪かったです。
すいませんでした。5番の方ありがとうございました。

738 :デフォルトの名無しさん:05/02/23 14:18:42
>>736
PIの精度がたらない。
math.hにM_PIがないなら3.14159265358979323846を使え。

>>725
/* 4 */
for (int ic = 0; ic < 100; ic += 15) {
printf("%d, %d, %g\n", ic, ic * ic, sqrt(ic));
}

739 :736:05/02/23 14:19:39
>>738
アドバイスアリガトゴザイマス

740 :yasu:05/02/23 14:21:44
いろいろとありがとうございます。

741 :デフォルトの名無しさん:05/02/23 14:49:09
>>725
>入院をしていて全く分かりません
ハァ? 何甘えたこといってんだ。
C++ 歴一日の俺でも本身ながらで20分くらいでできたぞ。
C++ の教科書あんだろ?
// 1
#include <iostream>
#define N 10
int main() {
    int sum = 0;
    for (int i = 0; i < N; ++i) {
        int data;
        std::cin >> data;
        sum += data;
    }
    std::cout << "合計:" << sum << '\n'
              << "平均:" << sum / N << '\n';
}

742 :741:05/02/23 14:50:02
// 2
#include <iostream>
#define N 10
int main() {
    double multiplied = 1;
    for (int i = 0; i < N; ++i) {
        double d;
        std::cin >> d;
        multiplied *= d;
    }
    std::cout << multiplied << '\n';
}
// 3
#include <iostream>
int main() {
    int n;
    std::cin >> n;
    for (int i = 1; i <= n; ++i) {
        for (int j = 0; j < i; ++j) std::cout << '*';
        std::cout << '\n';
    }
}

743 :741:05/02/23 14:51:54
// 4
#include <iostream>
#include <iomanip>
#include <cmath>
int main() {
    for (int i = 0; i < 100; i += 15)
        std::cout << std::setw(3) << i << '\t'
                  << std::setw(4) << pow(i, 2) << '\t'
                  << sqrt(i) << '\n';
}

744 :741:05/02/23 14:53:26
>>742
age ちゃったよ

745 :yasu:05/02/23 14:55:50
自分に甘えていたと思います。教科書はあるんですが…。
本当にありがとうございました。

746 :デフォルトの名無しさん:05/02/23 15:00:13
>>725
//Q1
#include<stdio.h>
#include<math.h>

int
main() {
int w[ 10 ];
int i;
for ( i = 0; i < 10; i++ ) {
printf( "%d=>:", i );
scanf( "%d", &w[ i ] );
}
int v = 0;
for ( i = 0; i < 10; i++ ) v += w[ i ];
printf( "Q1: Total:%d Mean:%lf\n", v, v / 10. );
}


747 :デフォルトの名無しさん:05/02/23 15:01:41
>>725
//Q2
int
main() {
double w[ 10 ];
int i;
for ( i = 0; i < 10; i++ ) {
printf( "%d=>:", i );
scanf( "%lf", &w[ i ] );
}
double v = 1;
for ( i = 0; i < 10; i++ ) v *= w[ i ];
printf( "%lf\n", v );
}



748 :デフォルトの名無しさん:05/02/23 15:02:56
>>725
//Q3
int
main() {
int w;
int i, j;
printf( "Q3=>:" );
scanf( "%d", &w );
for ( i = 0; i < w; i++ ) {
for ( j = 0; j <= i; j++ ) {
printf( "*" );
}
printf( "\n" );
}
}

749 :デフォルトの名無しさん:05/02/23 15:08:48
Cかよ。

750 :デフォルトの名無しさん:05/02/23 15:10:33
プププッ

751 :デフォルトの名無しさん:05/02/23 15:11:42
printf( "*" );
printf( "\n" );

冗長じゃね?

752 :yasu:05/02/23 16:20:37
ご協力していただいたかたありがとうございました。

753 :デフォルトの名無しさん:05/02/23 16:39:13
C++で文字の大きさを変更するってどうするんですか?

754 :デフォルトの名無しさん:05/02/23 16:47:52
>>753
std::stringならresize()

755 :デフォルトの名無しさん:05/02/23 16:48:38
>>754
ありがとうございます。引数は何にすればいいのでしょうか?

756 :デフォルトの名無しさん:05/02/23 16:49:44
文字の大きさってそういう意味なのか…?

757 :デフォルトの名無しさん:05/02/23 18:22:05
>>756
文字の大きさというからには、toupper()/tolower()じゃないのか?

758 :デフォルトの名無しさん:05/02/23 18:38:29
平均を整数で計算するのは何処の流儀なんだ?

759 :デフォルトの名無しさん:05/02/23 18:51:31
>>758
小数が使えないCPUを使うとき

760 :デフォルトの名無しさん:05/02/23 19:39:30
>>725
3番
#include <iostream>
#include <string>
#include <iomanip>
int main()
{
    static const int n = 3;
    for (int i = 1; i <= n; ++i)
        std::cout << std::setw(n + i - 1) << std::string(std::string::size_type(2 * i - 1), '*') << std::endl;
}

761 :デフォルトの名無しさん:05/02/23 21:14:48
Printfデバックの、やり方を教えて下さい。

762 :デフォルトの名無しさん:05/02/23 21:22:59
>>761
関数の戻り値や変数の値などを知りたい所でprintfやfprintf(stderr, などで出力して確かめる。

763 :デフォルトの名無しさん:05/02/23 21:32:09
どこで動作がおかしくなるのか、だいたいのあたりをつけたいときに
「このへんかな」ってとこにprintf入れて簡単に確認してた。

764 :デフォルトの名無しさん:05/02/23 21:54:01
>>762
>>763
さん

レス、ありがとうございます。さっそく試してみたいと思います。

765 :デフォルトの名無しさん:05/02/23 23:19:40
重点サンプリング法の質問はここで良いでしょうか?
プログラムを組もうと思っているのですが、重点サンプリング報じたいがよく判らないので、
『解を得るまでのフロー』があっているチェックしてください。

『問題』
P[R<S]を求めるのが最終目的です。(RとSは互いに独立)
fr,fsはS,Rの確率密度関数(それぞれWeibull,Frechet)
I(R<S)はR≦Sなら1を、R>Sなら0を返す関数
重点サンプリング関数は互いに独立な2次元正規分布で平均、標準偏差は共に(18,4.5)

『解を得るまでのフロー』
1. 正規分布(18,4.5)に従う乱数を2つ生成し、(r,s)とする。
2. I(r<s)を計算する。
3.fr(r)*fs(s)を計算する。
4.φ((r-18)/4.5)*φ((s-18)/4.5)を計算する。(φ(●)は標準正規密度関数)
5.(2の結果)*(3の結果)/(4の結果)を計算する。
6.1−5を繰り返し、平均値を取る。

よろしくお願いします。



766 :デフォルトの名無しさん:05/02/24 00:01:13
>>765
ここではそういう問題にはほとんど解答が返ってこない。
こっちの方でageて質問した方が早く返ってくるかもしれない。
計算アルゴリズム
http://pc5.2ch.net/test/read.cgi/tech/1090227743/

767 :デフォルトの名無しさん:05/02/24 00:01:17
http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/programming/%8F%EE%95%F1.txt
これに答えてくれたら報酬はします


アップローダー
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

768 :デフォルトの名無しさん:05/02/24 00:41:10
>>766
ありがとうございます。
そちらで聞いてみます。


769 :デフォルトの名無しさん:05/02/24 00:54:19
include <stdio.h>
unsigned int sjeuc();
unsigned int eucsj();
int main(void){
unsigned int a;
unsigned int b;
FILE *fp
a = sjeuc(?); // 題意では引数がunsigned int型のみ?
b = eucsj(?);
return 0;
}

/* Shift-JIS⇒EUC */
unsigned int sjeuc(unsigned int x){
return (x);
}

/* EUC⇒Shift-JIS */
unsigned int sjeuc(unsigned int x){
return (x);
}

ここから進まないって・・・・酷いな
ところでファイルからその2バイト読み込むんか?

770 :デフォルトの名無しさん:05/02/24 00:57:20
誤爆?

771 :デフォルトの名無しさん:05/02/24 01:38:12
どなたかナンバープレースのフローチャートを教えていただけませんか?
検索したら出てくるのは出てくるのですがExcelとか使ってて分からないんです。
できれば、すぐにでも。

772 :デフォルトの名無しさん:05/02/24 01:42:36

 知 っ て い る が お 前 の 態 度 に 気 に い ら な い 


773 :771:05/02/24 01:47:41
>>772
そうですよね。自分でもホントあつかましいと思ってます。
でも、時間が無いんです。お願いできませんか?

774 :デフォルトの名無しさん:05/02/24 01:47:58
元 か ら お 前 に は 聞 い て な い


775 :デフォルトの名無しさん:05/02/24 01:48:53
春休みで暇だから面白そうなら解きたい>>771
なにをすればいいの?
問題を解くフロチャ?問題を作るフロチャ?ってかフローチャートじゃなきゃ駄目ン?

776 :771:05/02/24 01:51:45
>>775
解くほうのフローですね。もしよければやっていただけますか?

777 :771:05/02/24 01:53:23
すいません、書き忘れました。
今のところはフローじゃないとダメです。
でも後日プログラムも提出ということになってます。

778 :765:05/02/24 02:23:31
出来ましたら、私の問題のフローチャートも教えてもらえませんか。

779 :デフォルトの名無しさん:05/02/24 02:31:29
>>769
関数を作れとだけあるので、何main関数内の仕様はないです
そもそも様々な場所で質問しても、この問題は意味不明 って問題自体を否定されます。(まぁ退院あがりで虚ろな教授の作成した問題ですけど)

どうしよう〆切は28日と時間が無いのに、こんな問題出されても

そもそもこの問題は引数の型を何にして欲しいのでしょうか (普通、文字コード変換はchar *が使われるのが当たり前なのに・・・)

780 :デフォルトの名無しさん:05/02/24 03:21:44
関数だけ作って、コンパイルも動作確認もせずに提出つもりなのか?

781 :デフォルトの名無しさん:05/02/24 04:24:44
euc(jis)コードとsjisコードのそれぞれ第1バイトを縦軸に、
第2バイトを横軸にして2次元であらわして見比べりゃ、
只の座標移動だろに・・・

782 :デフォルトの名無しさん:05/02/24 05:47:19
[1]C言語
[2]キーボードから入力された整数を、線形リストとして追加していき、
リストの末尾をポインタpで指すプログラムを以下に示す。
なお、プログラムの終了条件は、0以下の整数が入力されたときとする。
[3]環境
 [3.1]Microsoft Windows XP Professional
 [3.2]Microsoft Visual Studio.NET Professional 2003
 [3.3]C++
[4]2005年02月24日中
?の部分がわかりませんお願いします
#include <stdio.h>
#include < ? >
struct list{
int number;
struct list* before;
};
struct list* add_list(struct list*,int};
void print_list(struct list*);
void free_list(struct list*);
void main(void)
{



783 :782:05/02/24 05:49:28
struct list* p;
int n;
p= ? ;
printf("整数を入力してください!\n");
printf("(0以下の入力で終了)\n");
scanf("%d",&n);
while(n > 0)
{
p=add_list(p,n);
printf("整数を入力してください!\n");
printf("(0以下の入力で終了)\n");
scanf("%d",&n);
}
print_list(p);
free_list(p);
}
struct list* add_list(struct list* p,int n)
{
struct list* q;



784 :782:05/02/24 05:52:50
q = (struct list*)malloc(sizeof( ? ));
q->number = ? ;
q->before = ? ;
return ? ;
}
void printf_list(struct list* p)
{
if(p != ? )

{
print_list( ? );
printf("number = %d\tbefore = %p\n",p->number,p->before);
}
}
void free_list(struct list* p)
{
if(p != ? )
{
free_list( ? );
free(p);
}
}


785 :デフォルトの名無しさん:05/02/24 07:38:13
>>782
上から
stdlib
NULL
struct list
p
q
NULL
p->before
NULL
p->before

786 :デフォルトの名無しさん:05/02/24 07:54:18
2バイト以上文字コード(Unicode等)を数値から
文字に変換するにはどういった処理を書けばよろしいでしょうか?

数値を入力したら対応する文字を表示させる
41→A
こういった感じの2バイト以上の文字(日本語)を表示させたいんです。

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

787 :782:05/02/24 07:55:06
さっそくありがとうございます
一個足りないみたいなんですがどこが抜けてるのでしょうか?;;

788 :デフォルトの名無しさん:05/02/24 07:56:58
>>786
Unicode等って何だ?あらゆる文字コードにも対応しないといけないのか?

789 :デフォルトの名無しさん:05/02/24 08:00:52
>>787
お、抜けてた。 struct list の次のやつは n で。

790 :デフォルトの名無しさん:05/02/24 08:04:22
>>788
すいませんでした。Unicodeだけで大丈夫です。

791 :デフォルトの名無しさん:05/02/24 08:06:22
eucsj と sjeuc さえ作ればいいんだろ。
なんで、main を作りたがる?
「unsigned int型のデータに、第1バイトを上位8ビット(8〜15ビット)、
第2バイトを下位8ビット(0〜7ビット)に格納することで2バイトデータを表すことにする。」
ここまで明確に書いてあるのに、何を迷う?

792 :デフォルトの名無しさん:05/02/24 08:13:47
>>786
環境は?つか、テンプレ使えって。

793 :デフォルトの名無しさん:05/02/24 08:21:52
>>792
環境はC++です。

scanfで数値を入力して数値に対応した文字(Unicode)を
printfで表示させるといった感じです。

794 :782:05/02/24 08:24:05
>>789
ありがとうございました

795 :デフォルトの名無しさん:05/02/24 08:27:43
>>793
表示先はどこだよ
Unicodeが出せる環境なのか?自分で何がやりたいかわかってんのか?

796 :デフォルトの名無しさん:05/02/24 08:29:03
>>792
すいません。テンプレ忘れてました。

[1] プログラミング言語(C)
[2] scanfで入力した数値を対応した文字で出力しなさい。
  ただし、2バイト以上に対応していること。Unicodeで出力。
[3] C++
 [3.1] OS: WindowsXP(Pro)
 [3.2] BorlandC++
 [3.3] 言語:C
[4] 期限:2005年02月28日まで

失礼いたしました。

797 :デフォルトの名無しさん:05/02/24 09:04:36
>>796
unsigned int n;
do{
 scanf("%x", n);
}whie(n > 0xFFFF);
printf("%s", (char *)n);

むしゃくしゃしてやった。反省はしてない。

798 :デフォルトの名無しさん:05/02/24 10:13:08
[1] 授業単元:ファイル入力
[2] 以下のファイル (テキスト形式、名称は任意) から数値を読み込み、
各行の数値の和を出力しなさい。
なお、行内の数値の数は6個で固定としても構わないが、
任意の行数に対応出来るものとする事。

1,-2,3,4,5,6
7,8,9,10,11,-13

[3] 環境: C
 [3.1] OS:WindowsXP(Professional)
 [3.2] コンパイラ(バージョン):Microsoft Visual C++ 6.0
 [3.3] 言語:C
[4] 期限:2005年02月26日まで
[5] その他の制限: 特になし。不足している情報があればご指摘願います。

799 :デフォルトの名無しさん:05/02/24 11:02:23
[1]C言語
[2]二分探索に関するプログラムで?の部分に入る適切な物を書きなさい。
[3]環境
 [3.1]Microsoft Windows XP Professional
 [3.2]Microsoft Visual Studio.NET Professional 2003
 [3.3]C++
[4]今日中
#include<stdio.h>
# ? ARRAY_SIZE

void main(void)
{
int a[]={10,20,30,40,50,60};
int left,right,middle,value;

printf("検索する数を入力して下さい!¥n”);
scanf(" ? ”,&value);
left = 0
right = ARRAY_SIZE - ?;
middle =  ?;
while ( ? !=value && left <= ?)

800 :799:05/02/24 11:06:04
{
if ( ? >value)
right = middle - 1;
else if ( ? < value)
left = middle + 1;
middle =  ?  ;
}
if( ? ==value)
printf("find !\n");
else
printf("not find !\n");
}

801 :デフォルトの名無しさん:05/02/24 11:13:18
・・・

802 :デフォルトの名無しさん:05/02/24 11:15:03
できたらこちらもお願いします
[1]C言語
[2]単純選択法を用いた昇順のソートを行う次のプログラムで、
次の?に適切なものを書きなさい 。
1. i←0とする
2. a[i]からa[n]までで最小値をとる配列の添字kを求める
3. a[i]とa[k]の値を交換する
4. i ← i+1とする
5. i <= n-1であれば、2.へ行く。
   i = n となったら終了する

[3]環境
 [3.1]Microsoft Windows XP Professional
 [3.2]Microsoft Visual Studio.NET Professional 2003
 [3.3]C++
[4]今日中


#include <stdio.h>
# ? ARRAY_SIZE 5
void main(void) {
int a [] = {1,5,7,6,3} ;
int i,j,k,temp;
・・・ /*プログラム省略部分*/
/***単純選択法によるソート処理開始***/


803 :デフォルトの名無しさん:05/02/24 11:16:10
>>798
こんなときはどうするの?
1.5,-2.7,3.6,4.3,5.2,6.6
7+4,8*4,9-5,10/3,11^6,-13+4


804 :802:05/02/24 11:16:33
802はやはりいいです
無視してください
すいません

805 :デフォルトの名無しさん:05/02/24 11:17:57
>>799
どの?がわからないんだ? 何もかもわかってないわけじゃないんだろ?

806 :デフォルトの名無しさん:05/02/24 11:18:17
>>799
# ? ARRAY_SIZE
ここ写し間違いじゃないか?


807 :799:05/02/24 11:30:54
>>805
right = ARRAY_SIZE - ?;
ここからわからないです・・・
>>806
# ? ARRAY_SIZE 6でしたすいません

808 :798:05/02/24 11:34:20
>>803

すいません、>>798の書式が説明不足でした。
えーとですね、

> 1.5,-2.7,3.6,4.3,5.2,6.6

小数点を含む値についても考慮しなければならないみたいです。
具体的な範囲については特に指示が無かったですね。


> 7+4,8*4,9-5,10/3,11^6,-13+4

テキストファイル中での四則演算については考えなくていいそうです。


809 :デフォルトの名無しさん:05/02/24 12:05:49
#include<stdio.h>
#define ARRAY_SIZE (6)

void main(void)
{
int a[]={10,20,30,40,50,60};
int left,right,middle,value;

printf("検索する数を入力して下さい!\n");
scanf("%d",&value);
left = 0 ;
right = ARRAY_SIZE - 1;
middle =left;

while (a[left] !=value && left <= right){
if ( a[left]>value){ right = middle - 1; }
else if (a[left]< value){ left = middle + 1; }
middle =left;
}
if( a[left] ==value) {printf("find !\n"); }
else { printf("not find !\n"); }
}

ifの後の{ }は消しておけ。

810 :デフォルトの名無しさん:05/02/24 12:37:26
>>807
right = ARRAY_SIZE - ARRAY_SIZE + sizeof(a) / sizeof(int) - 1;


811 :デフォルトの名無しさん:05/02/24 12:48:47
>>808
>> 1.5,-2.7,3.6,4.3,5.2,6.6
>小数点を含む値についても考慮しなければならないみたいです。
>具体的な範囲については特に指示が無かったですね。

「みたい」ってなんだよ

>> 7+4,8*4,9-5,10/3,11^6,-13+4
>テキストファイル中での四則演算については考えなくていいそうです。

上のような記述なら無視するの?それともエラーにするの?
無視するにしても 0,0,0,0,0,0 とみなすのか
74,84,95,103,116,-134
とみなすのかによっても処理は変わるんだから
仕様は厳密に定義してくれよな


812 :デフォルトの名無しさん:05/02/24 12:52:53
こういう奴は大抵、条件に従ったコードを出した後にダメだししてくるんだよな

813 :デフォルトの名無しさん:05/02/24 12:54:01
意地悪だなw

814 :798:05/02/24 13:02:24
>>811
> 上のような記述なら無視するの?それともエラーにするの?

エラーにして頂いて結構です。
仕様の定義云々については、こちらの不勉強です。申し訳ない。
あと、人様が作ったものに文句を言うつもりは毛頭ありません。
多少のズレは自分で何とかします。
参考になるアイディアを頂きたかったので。

815 :799:05/02/24 13:02:30
ありがとうございます
助かりました

816 :デフォルトの名無しさん:05/02/24 13:15:36
ところで動くかどうかは確認したか?
たまにここに書かれた回答は間違っていることがあるぞ
意図的になのか素で間違っているのかは知らないが

817 :デフォルトの名無しさん:05/02/24 13:23:05
ここに来るやつにそんな質問は無駄だよ。
それができるやつならここに来ないと思う

818 :>798 (1/3):05/02/24 13:41:42
#include <stdio.h>
int ReadCalc(char *chrFileName);
double DecimalBase(int intLv);//0.1のintLv乗を返します。0で1、1で0.1、2で0.01。
int main(int argc, char *argv[]){
 if(argc <= 1){
  printf("ERROR:読み込むテキストファイル名が指定されていませんよボケ。\n");
  return (-1);
 }
 return (ReadCalc(argv[1]));
}
int ReadCalc(char *chrFileName){
 char ch;
 FILE *fp;
 double dblCache = 0.0;//今の数を組み立てる際に使うdouble
 double dblSum = 0.0;//今の行の合計
 int intPlus = 1;//今の数が正なら1,負なら-1。
 int intDot = 0;//今の数の小数点以下の数。
 int intLines = 1;//今の行数
 fp = fopen(chrFileName, "r");
 if (!fp){
  printf("ERROR:File not Found.\n");
  return (-2);
 }
 while((ch = fgetc(fp)) >= 0 ){
  if(10==ch){//New Line
   dblSum = dblSum + intPlus * dblCache;
   printf("Line %d total : %f\n",intLines, dblSum);
   intLines++;
   dblSum=0.0;
   dblCache = 0.0;
   intPlus = 1;
   intDot = 0;

819 :>798 (2/3):05/02/24 13:42:39
  }else if(44==ch){//,
   dblSum = dblSum + intPlus * dblCache;
   dblCache = 0.0;
   intPlus = 1;
   intDot = 0;
  }else if(45==ch){//-
   if(dblCache == 0.0){
    intPlus = -1;
   }
  }else if(46==ch){//.
   if(0 == intDot){
    intDot = 1;
   }
  }else if((48 <= ch)&&(57 >= ch)){//0~9
   if(0 == intDot){
    dblCache = (dblCache * 10) + (ch - 48);
   }else{
    dblCache = dblCache + DecimalBase(intDot) * (ch-48);
    intDot = intDot+1;
   }
  }else{//仕様に無い文字を無視したければこの辺りを削除すればよし。
   printf("ERROR:仕様に無いテキストなので何かかっこいいエラーメッセージを考えろ:");
   printf(" Line %d\n",intLines);
   return (-3);
  }//end if ch
 }
 if(dblSum != 0.0){//最後が改行で終わってない場合
  dblSum = dblSum + intPlus * dblCache;
  printf("Line %d total : %f\n",intLines, dblSum);
 }
 fclose(fp);
 return(0);

820 :>798 (3/3):05/02/24 13:46:09
}
double DecimalBase(int intLv){//0.1のintLv乗を返します。0で1、1で0.1、2で0.01。
 int cnt = 0.0;
 double dblReturn = 1.0;
 for(cnt=0;cnt<intLv;cnt++){
  dblReturn = dblReturn * 0.1;
 }
 return dblReturn;
}

読みこみ対象のテキストを実行時に引数で指定。
FILENAME.exe TARGET.txt
あと、VC++は今持ってないので手元のBCC32でしか確かめてない。まあ宿題ごときで差異が出るとも思えんが。
できるだけわかりやすい書き方を心がけたつもり。
あと全角空白→タブへの置き換えを忘れずに。

821 :798:05/02/24 13:48:33
>>818

ありがとうございました。
早速やってみます。

こちらの不勉強でご迷惑をかけてしまい、申し訳ありませんでした>各位

822 :デフォルトの名無しさん:05/02/24 13:49:29
・main()からマイナス値を戻すな。
・文字を数値で表すな。asciiじゃない環境でどうするんだ。

823 :デフォルトの名無しさん:05/02/24 13:49:34
>>767

824 :デフォルトの名無しさん:05/02/24 13:50:05
どこがわかりやすいんだボケ。

825 :デフォルトの名無しさん:05/02/24 13:50:50
> int cnt = 0.0;
プ

826 :818-820:05/02/24 13:56:26
>822の方はバイト先の癖。(-1)mainは何かそうしろとか言われたのでそれが標準だと心の底から信じてました。
>825は純粋なミス。でも謝らない。

このぶんだと他にも色々失態が出そうだ。でも反省しない。

827 :デフォルトの名無しさん:05/02/24 14:00:23
出来ればこれも通して欲しい
+7,+8,+9,+10,+11,-13


828 :デフォルトの名無しさん:05/02/24 14:03:21
>>822
return(-1);
とかいても戻るのは 255 で正数だから大丈夫♪

829 :デフォルトの名無しさん:05/02/24 14:05:45
おまえら・・・

830 :デフォルトの名無しさん:05/02/24 14:34:38
素直にsscanf()でばらせばいいんでないの?

831 :デフォルトの名無しさん:05/02/24 14:36:08
そうでもないべ

832 :デフォルトの名無しさん:05/02/24 14:55:27
>>831
個数限定ならsscanf()一発でできるし、個数可変でもこんなもん。
#include <math.h>
#define NaN nan(NULL)/* 数値が得られないことを示せればいい */

double sum1Line(char const * line)
{
int idx;
int cnt;
double value;
double sum = 0;
if (line == NULL) {
return NaN;
}
do {
cnt = sscanf(line, "%lg,%n", & value, & idx);
if (cnt > 0) {
sum += value;
}
line += idx;
} while (cnt > 0);
return sum;
}

833 :デフォルトの名無しさん:05/02/24 16:06:11
%n
引数を必要としない。そのかわりに、入力からここまで消費された文字数が
次のポインタを通じて格納される。このポインタは int へのポインタで
なければならない。 * フラグをもちいて抑制することができるにもかかわらず、
これは変換ではない。 C 言語の標準規格は「実行の完了時に返される代入の
回数を %n 命令の実行は増加させない」と言っているが、正誤表ではこれを
否定するようである。おそらく、返り値の %n 変換の効果についてはどのような
仮定もしないことが賢明であろう。


834 :デフォルトの名無しさん:05/02/24 16:09:28

ここの解説なんだけど激しく意味不明
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html


835 :デフォルトの名無しさん:05/02/24 16:18:17
%nはオーバーフローに関して感知しないだろ?

836 :デフォルトの名無しさん:05/02/24 17:00:45
>>828
処理系に依存すること言うな

837 :832:05/02/24 18:07:34
>>833
>正誤表ではこれを
>否定するようである。おそらく、返り値の %n 変換の効果についてはどのような
>仮定もしないことが賢明であろう。

がーん、漏れは賢明じゃないらしい。

>>835
それが何か? いや、煽りじゃなくて何が言いたいのかな、と。

>>828
処理系依存だし、-1 を返した積もりが 255が返るのなら、最初から 255を返すべきでしょ。

838 :デフォルトの名無しさん:05/02/24 19:49:52
>>767

839 :デフォルトの名無しさん:05/02/24 19:54:56
>>569

840 :デフォルトの名無しさん:05/02/24 19:58:52
>>718

841 :デフォルトの名無しさん:05/02/25 06:47:29
どうか教えてください。

[1] 授業単元:プログラム概論
[2] 問題文(含コード&リンク):
   シフトJISからEUCへの文字コード変換プログラムを作りたい(余裕があればその逆も)
   http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/programming/prog1.txt
[3] 環境
 [3.1] OS: WindowsXP,NT Solaris2.0
 [3.2] コンパイラ(バージョン):富士通fcc,Cygwin(gcc)
 [3.3] 言語:C
[4] 期限:2005年2月28日12:00まで
[5] その他の制限: この問題文の意図だと引数をunsigned int型にするべきかどうか分からない


842 :デフォルトの名無しさん:05/02/25 07:10:56
>>841
あちこちにマルチしてんじゃねえほボケカス

843 :デフォルトの名無しさん:05/02/25 09:48:11
>>842
まぁまぁ、そんなに噛み付かなくてもいいじゃねえほボケカス

844 :デフォルトの名無しさん:05/02/25 13:45:50
1] 授業: C++プログラミング
[2] 問題文 下記のリンクを見てほしいです。(一応問題は---個々の生徒のID名、クイズ、
       テストの点数をテキストファイルから読み、それを画面に表示する。という感じです。)
[3] 言語: C++
[4] 期限: 早ければ早いほどいいです。
[5] 補足: 下のリンク先は C言語で書かれたものなんですけど、
      これをクラスを使ったC++言語で書ける方いませんでしょうか?
      もしくは このプログラムをC++言語で書いてあるサイトがあればいいのですが・・・
      
      http://e.strlen.net/~alex/lab3/lab3.c.txt

845 :デフォルトの名無しさん:05/02/25 13:55:52
>>844
あんたの言う、CとC++との違いとは何だ?
単にC++で問題が無い、Cのプログラムでいいのか、
C++特有の文法を使わなければいけないのか(その場合その機能は何か)、
C++ならではのライブラリを使わなければいけないのか(その場合どのライブラリか)、
その辺りをはっきりしてくれ。

846 :デフォルトの名無しさん:05/02/25 14:06:21
1] 授業単元: プログラムU
[2] 問題文(含コード&リンク):
f(x)=sinxをテイラー展開すると
∞ k-1 2k-1
f(x)=(-1) x /(2k-1)!
k=1
となるこれを計算して出力するプログラムを書け。
[3] 環境
 [3.1] OS:Windows XP sp1
 [3.2] コンパイラ(バージョン): Microsoft Visual Studio.NET Professional 2003
 [3.3] 言語:C
[4] 期限:2005年3月1日
[5] その他の制限:なし

もしよろしかったらヒントだけでもお願いします。

847 :デフォルトの名無しさん:05/02/25 14:19:29
>>845
クラスを使えと書いてある

848 :デフォルトの名無しさん:05/02/25 14:35:20
簡単な質問かもしれませんが、分からないので教えてください。

以下のプログラム、核は出来ています。このまま使用しても目的は達成できます。が、
http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CSJS2EUC.C
http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CEUC2SJS.C
この2つのソースコードをJISを経過させずに直接変換させるにはどうしたらいいでしょうか?


849 :デフォルトの名無しさん:05/02/25 14:39:57
[1] 授業単元:文字列操作
[2] 問題文(含コード&リンク):
  文字列変数に"abcde"とあったとき、"a"を消して"bcde"にしたいのです。
[3] 環境
 [3.1] OS:WindowsXP Pro SP1
 [3.2] コンパイラ(バージョン):LCC-Win32(Ver不明)
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限: なし

850 :デフォルトの名無しさん:05/02/25 14:40:02
マルチすると、かえって答えてもらえる確率が減るとどうして気づかないんだろう

851 :デフォルトの名無しさん:05/02/25 14:41:14
>>849
aを消すだけでいいのか?
それとも先頭の文字を消すのか?
それとも入力で指定された文字を消すのか?
問題の意図がわからない

852 :デフォルトの名無しさん:05/02/25 14:42:43
>>851
先頭の文字を消したいです。
問題の意図がわかりずらくてすみませんorz

853 :デフォルトの名無しさん:05/02/25 14:50:40
char a[] = "abcdef";
char *b = &a[1];

854 :デフォルトの名無しさん:05/02/25 15:01:52
>>853に追加、フルに書いても短い。
void main()
{
char a[] = "abcdef";
printf( &a[1] );
}

855 :デフォルトの名無しさん:05/02/25 15:19:00
>>848
EUCの性質上、JISを経由する方法で充分。
どうしても二段階になるのがいやならSJIS⇔JISを改造すればいい。

856 :デフォルトの名無しさん:05/02/25 15:44:00
>>855
そ、そうなのですか。
そもそも他の様々なサイトを見ていたらC言語の文字コード変換プログラムでは
そもそも引数がchar *型なうえに、直接に変換している気がしましたから。

857 :849:05/02/25 17:00:25
出来ました!
>>853-854さん、ありがとうございました!

858 :デフォルトの名無しさん:05/02/25 17:02:37
>>857
本当にいいのか? (((( ;゚Д゚)))ガクガクブルブル

859 :デフォルトの名無しさん:05/02/25 17:31:24
>>858
ふむ。void main(void)となっているからお前さんの心配は正しい。

860 :デフォルトの名無しさん:05/02/25 21:13:51
printf("%s\n", a);

861 :デフォルトの名無しさん:05/02/25 21:14:32
printf("%s\n", a+1);

862 :849:05/02/25 21:27:55
>>858
853-854さんのをヒントに、↓を作ってました。

strcpy(path,GetCommandLine()); // ""でくくられたフルパスがとれる
strcpy(lpath, &path[1]); // pathの1文字目からをコピーして先頭の"を取り除く
lpath[strlen(lpath) - 2] = '\0'; // 後ろの"とスペースを消す
GetShortPathName(lpath, path, MAX_PATH); //変換

863 :デフォルトの名無しさん:05/02/25 22:07:37
>>862
上2行はまとめて、こうできる。
strcpy(lpath, &GetCommandLine()[1]);

それどころかPathUnquoteSpacesなんていう関数もある。
IE4以上が必要になるが。(たぶんSHLWAPI.DLLだけあれば平気だろうが)

864 :849:05/02/26 06:43:12
>>863
>strcpy(lpath, &GetCommandLine()[1]);
こんなことが出来るんですか!ありがとうございます。

PathUnquoteSpacesは知っていましたが、IE4以上が必要なので使いたくなかったのです。
(古い環境でも動かせるようにしたかったので)

865 :デフォルトの名無しさん:05/02/26 09:01:26
[1] 授業単元: データ構造
[2] 問題文(含コード&リンク):レポート課題
問題
下図のように、0と1で構成された図がある。
この図の横軸をx(右方向が正)、縦軸をy(下方向が正)としたとき、
「0のみで構成される最大の正方形」の場所を探しなさい。

  123456789→x
1:100001010
2:010000010
3:010000010
4:101000010
5:000000001
6:000000100
7:100010000
↓y

[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ(バージョン): gcc(var不明)
 [3.3] 言語:C
[4] 期限:2005年3月2日
で例題のプログラムがあってこれはオーダがO(n^4)でこれのプログラムを改良してO(n^3)以上に
したいんです。どなたかよろしくおねがいします。




866 :デフォルトの名無しさん:05/02/26 09:03:22
例題#include <stdlib.h>

#define MAX_SIZE 10002
#define BUF_SIZE 256

typedef enum {true=1, false=0} BOOLEAN;

char map[MAX_SIZE][MAX_SIZE];
char buf[BUF_SIZE];
main(int argc, char **argv){
int max, max_x, max_y, x_coord, y_coord, x, y, i, size;
BOOLEAN flag;
FILE *fp;


if(argc != 2){
fprintf(stderr, "Usage: %s [filename]\n", argv[0]);
exit(1);
}
if((fp=fopen(argv[1], "r"))==NULL) {
fprintf(stderr, "Can't find file '%s'\n", argv[1]);
exit(1);
}
fgets(buf, BUF_SIZE, fp);
max_x = atoi(buf);
fgets(buf, BUF_SIZE, fp);
max_y = atoi(buf);




867 :デフォルトの名無しさん:05/02/26 09:04:45
つづき
for(y=0; y<max_y; y++){
fgets(map[y], MAX_SIZE, fp);
}

max=0;
for(y=0; y<max_y; y++){
for(x=0; x<max_x; x++){
for(size=0, flag=false; !flag; size++){
for(i=0; i <= size; i++){
if((max_x <= x+i) || (max_y <= y+i)){
flag=true;
break;
}
if(map[y+size][x+i] == '1'){
flag=true;
break;
}
if(map[y+i][x+size] == '1'){
flag=true;
break;
}
}
}



868 :デフォルトの名無しさん:05/02/26 09:06:18

if(size-1 > max) {
x_coord = x+1;
y_coord = y+1;
max = size-1;
}
}
}
printf("size=%d, (x,y)=(%d, %d)\n", max, x_coord, y_coord);
}


869 :mi:05/02/26 13:07:16
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
   キーボードから入力した正の整数を降順にソートして、数値分の*と数値で表示する。
   入力は999が入力されるまたは要素の数が10をこえたら終わるり、数値と*の表示を行う。
   要素数は10で11以上の入力はなく、数字以外の入力もないものとする。
   
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン):CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限:2005年3月5日12:00まで
[5] その他の制限: なし

よろしくお願いします m(;_;)m

870 :デフォルトの名無しさん:05/02/26 13:57:14
#include <stdio.h>
#include <stdlib.h>


int sort_int(void const * a,
             void const * b)
{
    return *((int *)a) - *((int *)b);
}


int main(void)
{
    int i;
    int n;
    int data[10];

    for (n = 0 ; n < 10 ; ++n) {
        scanf("%d", &data[n]);

        if (data[n] == 999) {
            break;
        }
    }


871 :デフォルトの名無しさん:05/02/26 13:58:29

    qsort(data, n + 1, sizeof(data[0]), &sort_int);

    for (i = 0 ; i < n ; ++i) {
        int j;

        printf("%2d ", data[i]);

        for (j = 0 ; j < data[i] ; ++j) {
            putchar('*');
        }

        putchar('\n');
    }

    return 0;
}


872 :デフォルトの名無しさん:05/02/26 15:46:52
>>870-871
ワラタ

873 :デフォルトの名無しさん:05/02/26 18:46:00
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
  オセロ(ネット上にあるやつ以外で
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン): ボーランド
 [3.3] 言語:C
[4] 期限:02月26日5:00まで/
[5] その他の制限:出来るだけ、初心者でも作れるようなプログラムでお願いしたいです。

このプログラムが出来ないと進級が危ういので、何卒お願いします。

874 :デフォルトの名無しさん:05/02/26 18:47:37
>>873
どんなのが作りたいんだ?

875 :デフォルトの名無しさん:05/02/26 18:47:48
>ネット上にあるやつ以外で

ここに書いた時点で「ネット上にあるやつ」になってしまいますよ :-P

876 :デフォルトの名無しさん:05/02/26 18:53:07
期限過ぎてるし、やっても無駄か

877 :デフォルトの名無しさん:05/02/26 20:47:16
>>[3.2] コンパイラ(バージョン): ボーランド

だめだこりゃ

878 :デフォルトの名無しさん:05/02/26 21:17:15
>[5] その他の制限:出来るだけ、初心者でも作れるようなプログラムでお願いしたいです。
上級者向けオセロ(思考含む)じゃなくてじゃんけんゲームにしとけ。
それならリストも出て気安いぞ。w

879 :873:05/02/26 21:18:34
すみません、私がズレてたみたいです。
2月27日PM5時で、検索して出てくるHP上のコピーなどではないやつです。
コンパイラはBorlandで、Vrは多少古いです。
>>874
オセロってわけでもないのですが、簡単なオセロや、○×ゲームです。

よろしくお願いします。




880 :デフォルトの名無しさん:05/02/26 21:52:10
>>879
CPU対戦か?

881 :880:05/02/26 22:02:11
>>873
某スレのCPU対戦オセロ(改)だが、簡単には見つからないだろう。かなり厳しい
オプションでも通ると思う。

#include <stdio.h>
int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;int k(){if(m[p]==0)for(i=m;*i;i
++){for(v=p+*i;m[v]==9-t;v+=*i){}if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v+=*
i;while(m[v]-t);}return 0;}int main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a
=d=0){for(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9
:s?s=0,puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}
return 0;}

882 :デフォルトの名無しさん:05/02/26 22:14:41
俺はリバーシゲームを一行で書いたことがあるぜ。(C/C++じゃないけど)

883 :873:05/02/26 22:50:47
>>880
レスありがとうございます。
CPU対戦は考えてなく、友達間で遊べるようなものを考えています。

884 :873:05/02/26 22:53:44
また間違えてました。たびたび申し訳ないです。
28日の月曜日、PM5時締め切りです。


885 :デフォルトの名無しさん:05/02/26 23:00:15
>>883
対戦通信か?

886 :デフォルトの名無しさん:05/02/27 00:04:28
>>881
7行スレ?

887 :デフォルトの名無しさん:05/02/27 00:28:26
>>886
当たり

888 :mi:05/02/27 01:58:09
>デフォルトの名無しさん
ありがとうございました!!!
もう一つ質問です。*を縦に表示する追加課題が出てしまったのですが、
どのように作ったらいいでしょうか?
例えば下記のように・・・

******
*****1   ↓ コッチ向きに
****2
****
***4
**5
*6



889 :デフォルトの名無しさん:05/02/27 02:10:18
それぞれデクリメントして0でないなら*を出力しし、最後に\nを出力
てのを全てが0になるまで繰り返す

どのように作ったらいいか?って聞いたから作りかただけ示したぞ

890 :デフォルトの名無しさん:05/02/27 02:15:40
>>887
その縦グラフみにくいねw
*
**
***
321

の形式だったらやってもいいけどね。



891 :デフォルトの名無しさん:05/02/27 02:15:51
>>888
クラス対抗玉入れ合戦の数え上げのように作ったらいいでしょう。

892 :890:05/02/27 02:17:00
ごめんまちがえた
訂正前:>>887
訂正後:>>888
だった

893 :mi:05/02/27 02:18:30
>デフォルトの名無しさん
申し訳ないのですが、ソースにしていただくことは
お願い出来ますでしょうか・・・?
よろしくお願いします。


894 :mi:05/02/27 02:21:14
>890
すみません間違えました!!
890さんの書かれてらっしゃる表示方法でした。

895 :デフォルトの名無しさん:05/02/27 02:22:20
>>893:mi 05/02/27 02:18:30
 >デフォルトの名無しさん
より
 >>レス番号
の方がよさげ

896 :デフォルトの名無しさん:05/02/27 02:29:30
>>mi
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/229.txt

むかしつくったやつ
ぷれぜんと!

897 :896:05/02/27 02:30:33
数によってはちょっと表示が汚いときがあるので修正してくれるとうれしいです。


898 :mi:05/02/27 02:30:52
>>895
すみません教えていただいてありがとうございますm(。。)m
ネットのルールをあまり知らなくて・・・勉強になりました!!


899 :デフォルトの名無しさん:05/02/27 02:31:06
最大値mから下げていって
 (m<=data[i])?'*':' '
を出したら?

900 :899:05/02/27 02:34:00
>>899は無視してくれ。

901 :873:05/02/27 02:35:15
>>885
通信ではなくて学校の友人と学校で遊ぶ、みたいな風です。

902 :mi:05/02/27 02:38:50
>>896
教えていただいたURLをアドレスの欄に入れたのですが、発見できない
というように表示されてしまいました。始めにhをつけたりいろいろ
やってみたのですが・・・
なにか表示の仕方があるのでしょうか?


903 :デフォルトの名無しさん:05/02/27 02:46:25
問題なく見れますが。
URL要確認

904 :mi:05/02/27 02:58:01
>>903
何度も申し訳ありません・・・
URL全部をアドレスに入れるとやはり、発見できませんとなるので、始めの/までで
やってみたら、ログイン出来ませんという表示がでてユーザ名とパスワードを
入力するFormが表示されました。
パスワードなどは何を入力したらいいのでしょうか?


905 :デフォルトの名無しさん:05/02/27 03:10:49
>>904
おそらくftpから入ろうとしてる…
先頭部はhttp://

906 :デフォルトの名無しさん:05/02/27 18:48:17
>>873
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/230.txt

てきとうだから、ちゃんとまとめてくれ

907 :896:05/02/27 19:17:15
>>MI
まだみれないのかな?
たしかieでみるとINFOSEEKへの直リンははじかれるっていってましたね。

もうみてないかもしれないけど、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
スレッド立てるまでもないソース
の31番目のレスです。

908 :873:05/02/27 22:01:11
>906
ありがとうございます。
これを少し変えて使わせていただきます


909 :デフォルトの名無しさん:05/02/27 22:11:26
[1] 授業単元:オペレーションシステム(プロセスとスレッド)
[2] 問題文:A process can be put into a round-robin queue more than once to give it a higher priority.
Running multiple instances of a program each working on a different part of a data pool can have the
same effect. Write a program that tests a list of number for primality.
[3] C言語
[4] 期限:2005年2月28日10:00まで
[5] その他の制限: 問題文が英語で申し訳ありませんが教えてください。お願いします。

910 :デフォルトの名無しさん:05/02/27 23:16:56
その講義受けてないとわからんようなcontext情報なしに
こんなもん作れるかよ。primalityってわからんし。


911 :デフォルトの名無しさん:05/02/27 23:23:30
リナックスくらいのプログラムならすぐ書けるけど、それをここに書き込むにはあまりに余白がせますぎる。

912 :873:05/02/28 00:24:02
[1] 授業単元: 自主作成
[2] 問題文(含コード&リンク):
  簡単な○×ゲームかじゃんけん。AIはなし、ネット対戦は考えてません。
  猫でもわかる様に乗ってる方法ではないプログラムでお願いします。

[3] 環境
 [3.1] OS: WindowXP Pro
 [3.2] コンパイラ(バージョン): Borland
 [3.3] 言語:Cのみ
[4] 期限:02月28日16:30まで
[5] その他の制限:
オセロは自分にとって高度でした。宿題をしてくださった方申し訳ありません。
オセロを頼んでおいて我侭なのですが、よろしくお願いします。
じゃんけんでも、ここをこんな感じに変えたら面白くなるなどの意見ありましたらお願いします。



913 :906:05/02/28 01:01:54
・・・馬鹿にされてるのかな?

914 :デフォルトの名無しさん:05/02/28 01:02:21
/* >>873 じゃんけん */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
  int a,i;
  srand((unsigned int)time(NULL));
  i = rand()%3;
  while(i==0){
    printf("1:Gu / 2:Chi / 3:Pa ");
    scanf("%d",&a);
    printf("Aiko\n");
    i = rand()%3;
  }
  printf("1:Gu / 2:Chi / 3:Pa ");
  scanf("%d",&a);
  printf("You %s\n",(i==1)?"Win.":"Lose.");
  return 0;
}


915 :デフォルトの名無しさん:05/02/28 01:22:36
/* >>873 AIなしだったな、すまん */
/* できるだけ初心者っぽくした。 */
#include <stdio.h>

int main(){
  int a=0,b=0,i;
  do {
    printf("1:Gu / 2:Chi / 3:Pa\n");
    printf("1P:");
    scanf("%d",&a);
    printf("2P:");
    scanf("%d",&b);
    i = ((b+3)-a)%3;
  }while(i==0);

  printf("%dP Win.\n",i);
  return 0;
}

916 :LogicFlex LCD in C language:05/02/28 03:58:55
2つの整数(NN)をLCDディスプレイのLine2&Position4(hexC3)とLine2&Position12(hexCB)に位置づけて、
ディスプレイにその整数を写しだした後、
キーボードの1を打ったらNNカウントが1ずつ増えていって(01、02・・・)
キーボードの2を打ったらNNカウントが(00と29の範囲で)2づつ増えていき0に戻る
キーボードのxを打ったらプログラムは終了してDOSに戻るというCコードを書けという問題をもらいました。
一応書いたんでけど、どなたかチェックお願いできますか?

917 :LogicFlex LCD in C language:05/02/28 04:02:45
#include <stdio.h>
#include <time.h>
#include <conio.h>
#define LCD_CMD 160
#define LCD_CMD1 40
#define LCD_CMD2 6
#define CLR_HOME 1
#define input


918 :LogicFlex LCD in C language続き:05/02/28 04:04:29
void main(void)
{
FILE *lcd; /*stream for lcd data*/
unsigned char lcd_pos1=0xC3;
unsigned char lcd_pos2=0xCB;
unsigned int value=0;
lcd=stdprn; /*borland 4.52用は STDPRM deviceを使用*/ 
setbuf(lcd,NULL);
fprint(lcd,"%c%c",LCD_CMD,LCD_CMD1);
fprint(lcd,"%c%c",LCD_CMD,40);
fprintf(lcd,"%c%c",LCD_CMD,0xC);
fprintf(lcd,"%c%c",LCD_CMD,LCD_CMD2);
fprintf(lcd,"%c%c",LCD_CMD,CLR_HOME);
fprintf(lcd,"%c%c",LCD_CMD,LCD_POS);
input = getch();
if input == 1
value++;
if input == 2
value++;
value++;
if input == x
return;
end if
fprint(lcd,"%c%c",LCD_CMD,LCD_pos);
while (!kbhit()){ }
getch();
return;
}


919 :デフォルトの名無しさん:05/02/28 06:58:10
unsigned char array[8];  ←この書き方ってダメ?

Error E2040 ..\lab3.c 18: Declaration terminated incorrectly
↑このエラーはどういうことでしょうか?

920 :デフォルトの名無しさん:05/02/28 07:03:38
>>919
その前後に間違いがあるんじゃないの?

921 :デフォルトの名無しさん:05/02/28 07:15:30
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1109542053/

922 :デフォルトの名無しさん:05/02/28 09:40:27
>>919
ダメなわけがない。
周りをよーく眺めて間違いないか探す。分かんなかったら、
一部コメントアウトしてエラーが消えるかどうか確認する。

923 :873:05/02/28 11:39:17
>>906
馬鹿にしてるわけじゃなくて本当にわからないんです・・・。
申し訳ないです


924 :デフォルトの名無しさん:05/02/28 12:15:39
>>923
わかりづらくてスマソ

で限定ジャンケンってどうよ
って通信対戦じゃないと無理か…

925 :デフォルトの名無しさん:05/02/28 21:49:47
age

926 :(・∀・) ◆LC7P44pfbg :05/02/28 22:07:29
スーパーマターリプログラミングを待ちわびているんですが?

927 :デフォルトの名無しさん:05/02/28 22:09:31
>>926
スーパーマターリプログラミングは不可能なことが
このまえDr.knuthによって証明されたよ。

928 :(´・ω・`) ◆LC7P44pfbg :05/02/28 22:14:09
(´・ω・`)ショボーン

929 :デフォルトの名無しさん:05/02/28 22:14:50
knuthはどこまで調子に乗れば気が済むんだ

930 :873:05/02/28 22:27:05
>>924
いえ、分かりにくいのではなくて自分が努力不足で・・・><
限定ジャンケンとはなんでしょうか?

931 :デフォルトの名無しさん:05/03/01 00:08:47
カイジ 限定じゃんけん
でぐぐれ

932 :デフォルトの名無しさん:05/03/01 00:27:07
宿題でリストのソートが出たのですがリストをソートするのに配列を用意する以外になにか良い方法ってありますか?
リストが小さいなら配列?
大きいならどうすればよいでしょうか?

933 :デフォルトの名無しさん:05/03/01 00:27:54
日本語で説明してくれ

934 :デフォルトの名無しさん:05/03/01 00:36:28
リストのままソートするのと
一回配列に全部いれてソートしてから繋ぎ変えるのとどちらが良いですか?

リストが小さいならメモリ気にせず配列使った方のが良いのですか?基準とかってありますか?

935 :デフォルトの名無しさん:05/03/01 00:43:47
少々大きくても、配列に入れてしまう方が結局お得じゃないかね?
が、スレ違い。

936 :デフォルトの名無しさん:05/03/01 01:41:55
根本的な勘違いをしているな。
配列よりリストのほうがメモリを食うぞ。

937 :デフォルトの名無しさん:05/03/01 01:46:33
>>934
マージソート汁

938 :デフォルトの名無しさん:05/03/01 01:46:38
あ、漏れが勘違いしてた。
配列を使ってソートする話か。

ソートに関しては一般論というものは言いにくい。
配列の特性によって有効なソートアルゴリズムも違うから。

コーディングの手間を押しmなら、いったん配列に入れて、
標準ライブラリのqsort でソートして、先頭からノードをつなぎなおすというのは、
単純で分かりやすいかもしれないな。

でもメモリ的にも、速度的にも必ずしも効率がとはいえない。

939 :デフォルトの名無しさん:05/03/01 01:48:10
ミスタイプ多いので訂正

×コーディングの手間を押しmなら、いったん配列に入れて、
○コーディングの手間を惜しむなら、いったん配列に入れて、

×でもメモリ的にも、速度的にも必ずしも効率がとはいえない。
○でもメモリ的にも、速度的にも必ずしも効率がいいとはいえない。

940 :デフォルトの名無しさん:05/03/01 08:32:04
っつーかリストを配列に入れてソートしたらそれは
もはやリストのソートじゃなくて配列のソートだろ
「宿題でリストのソートが出たのですが」という文脈なら
配列を持ち出した時点で評価は0点確定

941 :デフォルトの名無しさん:05/03/01 14:22:52
ここで質問してもいいですか?

942 :デフォルトの名無しさん:05/03/01 14:30:43
>>941
宿題ならばな。

943 :デフォルトの名無しさん:05/03/01 18:15:38
[1] 授業単元:自主作成
[2] 問題文(含コード&リンク):OSを作れ
[3] 環境
 [3.1] OS:制限なし
 [3.2] コンパイラ(バージョン):制限なし
 [3.3] 言語:C
[4] 期限:2005年03月14日17:00まで
[5] その他の制限:AT互換機で動作するもの


944 :デフォルトの名無しさん:05/03/01 18:17:31
>>943
uiTRON改造しろ。

945 :デフォルトの名無しさん:05/03/01 19:33:22
>>943
cd /usr/src/linux
make menuconfig
make
make install

OS を make しました。

946 :デフォルトの名無しさん:05/03/01 20:13:48
あああああああ!!!!!!!!!!!
なんか使いにくい!!!!1
ochushaもkitaも全然使いにくい!!!!!!!!!!!!!!!!
俺ブラウザでも作るか…どうせ公開しても叩かれるだろうがな…

947 :デフォルトの名無しさん:05/03/01 20:20:35
>>946
完成してから言え

948 :デフォルトの名無しさん:05/03/01 20:34:42
>>947
すぐに作ってやるよ!!!
えと…3日…くらい…かなぁ…。

949 :デフォルトの名無しさん:05/03/01 21:07:19
> どうせ公開しても叩かれるだろうがな…
よくできていたら叩かないよ。


950 :デフォルトの名無しさん:05/03/01 21:13:48
>>949
いいアイデアがピンと浮かんできたのよ。ゴキゲンなやつが出来ちまうぜ。

951 :デフォルトの名無しさん:05/03/01 21:18:53
>>950
動くものが出来てから言え

952 :デフォルトの名無しさん:05/03/01 22:27:11
公開出来ないに一票

953 :デフォルトの名無しさん:05/03/01 22:29:27
>>952
なんでそんなにネガティブなんだよ!!!
おまえってあれだろ、負け組だからひがんでるんだろ!!!!!!!!!!!

954 :デフォルトの名無しさん:05/03/01 22:31:24
>>953
お前が作って公開すりゃいいだけの事だろ

955 :デフォルトの名無しさん:05/03/01 22:37:20
クソ!!!2chに気をとられてなかなか進まねー!!!!!!!!!
お前らのせいだ、おまえらが悪い!!!!!!!!!!!!

956 :デフォルトの名無しさん:05/03/02 05:18:05
そんなこと気にしてどうする
人生は有意義に使え

957 :デフォルトの名無しさん:05/03/02 05:26:47
お取り込み中大変恐縮ですが、
次スレの時間です。

958 :デフォルトの名無しさん:05/03/02 06:31:44
埋め

959 :デフォルトの名無しさん:05/03/02 06:37:12


960 :デフォルトの名無しさん:05/03/02 12:47:45
ume

961 :デフォルトの名無しさん:05/03/02 13:18:01
なんかそれらしいものが出来ちまった。
完成度50%ってところか。

962 :デフォルトの名無しさん:05/03/02 13:18:52
疲れたので寝よう… 明日には公開できるかも。

963 :デフォルトの名無しさん:05/03/02 13:49:46
>>962
期待してまってます^^


964 :デフォルトの名無しさん:05/03/02 15:02:08
埋め

965 :デフォルトの名無しさん:05/03/02 15:39:31
埋め

966 :デフォルトの名無しさん:05/03/02 15:42:05
946の進歩報告スレなんだから埋めんじゃねえよチンカス

967 :デフォルトの名無しさん:05/03/02 15:43:28
そういやあそうだなw
出来るまで待っておくか

968 :デフォルトの名無しさん:05/03/02 15:43:35
うめ

969 :デフォルトの名無しさん:05/03/02 15:45:06
釣りだろう、実際にやってるわけないだろうが

970 :デフォルトの名無しさん:05/03/02 15:46:53
埋め

971 :デフォルトの名無しさん:05/03/02 15:47:20
>>966
946が埋めてるに決まってるだろうが

972 :デフォルトの名無しさん:05/03/02 16:19:05
もちょっと信じてみろ
待つぐらい損はないだろ


973 :デフォルトの名無しさん:05/03/02 16:20:46
みんな、信じて待とうよ!

974 :デフォルトの名無しさん:05/03/02 16:31:51
といいながら埋めてるわけだろ

975 :デフォルトの名無しさん:05/03/02 16:40:29
>>946
1年は待ってやろう

976 :デフォルトの名無しさん:05/03/02 17:06:23
埋め

977 :デフォルトの名無しさん:05/03/02 18:10:47
ついうとうとと5時間近くも眠ってしまった。再開だ!再開!!!

978 :デフォルトの名無しさん:05/03/02 18:22:26
さて一時休憩と…

979 :デフォルトの名無しさん:05/03/02 19:11:24
ume

980 :デフォルトの名無しさん:05/03/02 19:14:17
あーまんどくさい、ヤメヤメ

981 :デフォルトの名無しさん:05/03/02 19:25:03
埋め

982 :デフォルトの名無しさん:05/03/02 19:29:38
うめ

983 :デフォルトの名無しさん:05/03/02 20:17:15
梅揚

984 :デフォルトの名無しさん:05/03/02 20:18:47
俺なんてブラウジャをクリック5回ぐらいで作れるぜ

985 :デフォルトの名無しさん:05/03/02 20:45:09


986 :デフォルトの名無しさん:05/03/02 20:47:23
>>985
どうしてそこまでして邪魔したがるのかね

987 :デフォルトの名無しさん:05/03/02 21:13:37
よし、完成したじょー
どうだすごいだろう、今このスレ見るのに使ってるよ。

988 :デフォルトの名無しさん:05/03/02 21:14:18
>984
凄いかもな(蕨

989 :デフォルトの名無しさん:05/03/02 21:14:41
>987
見え見えの嘘乙

990 :デフォルトの名無しさん:05/03/02 21:16:56
990 get

991 :デフォルトの名無しさん:05/03/02 21:17:54
991get

992 :デフォルトの名無しさん:05/03/02 21:50:53
埋め

993 :fdjかs:05/03/02 21:58:02
dふぁs

994 :デフォルトの名無しさん:05/03/02 22:07:11
初めての 994

995 :デフォルトの名無しさん:05/03/02 22:10:20
>>987


996 :デフォルトの名無しさん:05/03/02 22:11:57
うめー

997 :デフォルトの名無しさん:05/03/02 22:12:38


998 :デフォルトの名無しさん:05/03/02 22:13:15


999 :デフォルトの名無しさん:05/03/02 22:14:10
来世に期待

1000 :デフォルトの名無しさん:05/03/02 22:14:16
引き続き宿題を解き続けてくださいな

ぼるじょあがC/C++の宿題を片づけますYO! 41代目
http://pc5.2ch.net/test/read.cgi/tech/1109542053/l50

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

270 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)