C/C++の宿題を片付け ..
75:デフォルトの名無しさん
07/07/16 19:02:39
>>51
サウンドデバイスの IO の定義が無いとどうにもならない
最低限でも
1.音量設定の方法
2.周波数設定の方法
3.サウンドバッファへの書き込み&失敗検出の方法
くらいは必要だと思うよ
76:55
07/07/16 19:05:29
>>58
ぐぐってみましたが意味不明でした…
すいません、教えていただけますか?
77:デフォルトの名無しさん
07/07/16 19:06:56
>>63 が駄目ならこれも駄目ってことか
OS無しって難しすぎだろ
PlaySound("c:\\windows\\media\\chimes.wav", NULL, SND_SYNC | SND_FILENAME);
78:デフォルトの名無しさん
07/07/16 19:08:20
>>76
./a.out 変換元ファイル 変換後ファイル名
79:デフォルトの名無しさん
07/07/16 19:10:28
>>64
出てきたバイナリのコマンドラインに対象テキストファイル名と出力先ファイル名を追記。
例えばコンパイルして出てきたプログラムがa.exe、暗号化するテキストがbefore.txt、
出力先をafter.txtとするなら
a.exe before.txt after.txt
でafter.txtに暗号化済みのファイルが出力される。
逆操作は不可。そういう意味では>>55は要件を満たしていないね。
こんなとこに丸投げする人にいう事じゃないと思うけど
こんくらいのソース読めないでこれからやっていけると思ってる?
80:51
07/07/16 19:12:04
すいません
やっぱり 自分でやってみます
自分で考えて解決しなきゃ成長しませんもんね・・・・・
色々ありがとうございました。
>>71さん、心使いは嬉しいのですが学校で研究を続けるつもりなので・・・・
それと学校名は出せません。ごめんなさい
81:デフォルトの名無しさん
07/07/16 19:15:45
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 出来る限り単純な方法で回答して下さると助かります。
よろしくお願いします。
82:デフォルトの名無しさん
07/07/16 19:16:44
擁護するわけじゃないけど、コマンドライン引数の実際の使い方は教本によっちゃ物凄い投げやりだからな。
こんなんで分かればエスパーだろってぐらい。
で、分からんから後まわしにして課題出てくると四苦八苦するんだよな。
83:デフォルトの名無しさん
07/07/16 19:16:53
>>80
ここの方達が手上げてるのを完成させるの難しくない?
>>67の行ってるUNIX板行った方がよくない?
84:デフォルトの名無しさん
07/07/16 19:18:28
>>81
前スレに同じのがあったから見てくるといいと思うよ。
85:デフォルトの名無しさん
07/07/16 19:20:27
LL構文解析懐かしすぎる
86:デフォルトの名無しさん
07/07/16 19:27:12
>>29
だれかお願いします。
>>47,48ががんばってくれたけど「ポインタのポインタ」使用版でないと
駄目な課題なので分かる方お願いします。
>>47,48
ありがとうございます。
87:56=57=60
07/07/16 19:29:07
orz
88:51
07/07/16 19:32:53
自分も投げ出してたから人のこと言えないけど
時間かかってでも自分で考えて解決した方がいいと思う
89:デフォルトの名無しさん
07/07/16 19:34:51
>>88
秀同って事でスレ終了 乙です
90:デフォルトの名無しさん
07/07/16 19:45:35
>>78
その通りやっても出来ない・・・なぜでしょうか
91:デフォルトの名無しさん
07/07/16 19:57:19
>>90
次の一連のコマンドを打ち込んだ結果を晒してみて
echo hello>a.txt
./a.out a.txt b.txt
echo $?
cat b.txt
92:91
07/07/16 19:59:42
最後に追加
ls -l a.out a.txt b.txt
93:デフォルトの名無しさん
07/07/16 20:00:57
C:\Documents and Settings\******>echo hello>a.txt
C:\Documents and Settings\******>./a.out a.txt b.txt
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Documents and Settings\******>echo $?
$?
C:\Documents and Settings\******>cat b.txt
cat: b.txt: No such file or directory
こうなりました
94:デフォルトの名無しさん
07/07/16 20:02:44
C:\Documents and Settings\******>ls -l a.out a.txt b.txt
ls: a.out: No such file or directory
ls: b.txt: No such file or directory
-rw-rw-rw- 1 user group 7 Jul 16 19:59 a.txt
追加の分はこうなりました
コマンドプロンプトで実行しました
95:91
07/07/16 20:05:31
>>93
linux じゃなかったのかよ!
echo hello>a.txt
.\a.exe a.txt b.txt
type b.txt
dir
96:デフォルトの名無しさん
07/07/16 20:08:41
笑った。
どうみてもコマンドプロンプトかcygwinとかだね。
97:デフォルトの名無しさん
07/07/16 20:21:17
>>86
皆さんの回答を参考にして作ってみた。これでどうかな。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
98:デフォルトの名無しさん
07/07/16 20:31:46
よく見てないけど。
if(buf[strlen(buf)-1] == '\n')
buf[strlen(buf)-1] = 0;
↑ifで判定する必要ない。
99:デフォルトの名無しさん
07/07/16 20:41:55
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
参考コードは一部使用していない
100:99
07/07/16 20:52:38
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
一部訂正
101:デフォルトの名無しさん
07/07/16 21:00:34
>>42
コンパイルしていない
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _{ int r, i; } img;
static img *ary=NULL;
static int arysize;
static int arylen;
void putimg(img img){
if(arysize<=arylen){
arysize+=10;
ary=realloc(ary, sizeof(img)*arysize);
}
ary[arylen++]=img;
}
int main(void){
img m;
int i;
for(;;){
scanf("%d,%d", &m.r, &m.i);
if(m.r==1&&m.i==0) break;
putimg(m);
}
for(m.r=1, m.i=i=0;i<arylen;i++){
printf("%d+%d*i\n", ary[i].r, ary[i],i);
m.r=m.r*ary[i].r-m.i*ary[i].i;
m.i=m.r*ary[i].i+m.i*ary[i].r;
}
printf("%d+%di\n", m.r, m.i);
}
102:デフォルトの名無しさん
07/07/16 21:04:13
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
• 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う
• 適用する公式は,シンプソンの公式
S=h/3{y(0)+y(2n)+4{y(1)+y(2)+....+y(2n-1)}+y(2)+y(4)+.....+y(2n-2)}
• f ( x)=1/(1+x2)
• a=0, b=10, e=0.0000001の場合の積分値とnの値を表示する
• 各変数(nを除く)の型はdoubleとする
[3] 環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C++
[4] 期限:次の木曜まで
[5] その他の制限: これといって無し
リンク先に手順の例とかがあります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
とりあえず自分でやってみたけど無理でした。この雑魚にどなたかご教授をorz
あと最後らへんのprintf文の、&nの&は無かったことに(´;ω;`)
103:デフォルトの名無しさん
07/07/16 21:05:06
>>97
ぜんぜん良いと思います。
ありがとうございます。
ポインタのポインタを使っていてちゃんと動作するものなら問題ないので。
104:デフォルトの名無しさん
07/07/16 21:09:42
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwin
[3.3] 言語: C
[4] 期限: 7/17午前中
[5] その他の制限: なし
105:デフォルトの名無しさん
07/07/16 21:19:06
>>103
ベースは>>56さんのなので、よろ
106:デフォルトの名無しさん
07/07/16 21:34:45
>>102
#include <stdio.h>
double f(double x){
return 1.0/(1.0+x*x);
}
int main(void){
double a=0.0, b=10.0, h, sum;
long n=10000000, i;
h=(b-a)/n;
sum=f(a)+f(b);
for(i=1;i<n;i+=2) sum+=2*f(a+h*i);
for(i=2;i<n;i+=2) sum+=4*f(a+h*i);
sum*=h/3;
printf("Answer: %f\n", sum);
return 0;
}
107:デフォルトの名無しさん
07/07/16 22:14:38
>>106さん、ありがとうございます。工夫すればかなり短くなるんですね・・・
それと、問題文に抜けてしまったんですが
• s2は最新の計算結果,s1は一つ前の計算結果
• |s2-s1|<eとなるまで,nを1増やしながら,以下の
処理を繰り返す
- s1←s2
- s2を新しいnで計算する
というのはどうすれば出来るでしょうか?よろしければご教授お願いします
108:デフォルトの名無しさん
07/07/16 22:24:21
>>104
#include <stdio.h>
int main(void){
int masu[9], a, i, j, turn = 0;
char *koma[3] = {" 0 ", " X ", " * "};
for(i = 0; i < 9; i++) masu[i] = 2;
while(1){
do{
printf("?"), scanf("%d", &a);
if(a >= 9) continue;
}while(masu[a] != 2);
masu[a] = turn%2;
turn++;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++) printf("%s", koma[masu[i*3 + j]]);
printf("\n");
}
if((masu[(a + 3)%9] == masu[a] && masu[(a + 6)%9] == masu[a]) ||
(masu[3*a/3 + (a + 1)%3] == masu[a] && masu[3*a/3 + (a + 2)%3] == masu[a]) ||
(a%4 == 0 && masu[0] == masu[a] && masu[4] == masu[a]&& masu[8] == masu[a]) ||
(a%2 == 0 && a%8 != 0 && masu[(a + 2)%8 + 2] == masu[a] && masu[(a + 4)%8 + 2] == masu[a])){
printf("%s\n", koma[masu[a]]);
break;
}else if(turn >= 9){
printf("draw\n");
break;
}
}
return 0;
}
109:デフォルトの名無しさん
07/07/16 22:29:18
一つでまとめますかw
あんたすごいよ。
110:21
07/07/16 22:30:37
どなたか>>21お願いします!
111:デフォルトの名無しさん
07/07/16 22:33:10
>>107
#include <stdio.h>
#include <math.h>
double f(double x){
return 1.0/(1.0+x*x);
}
int main(void){
double a=0.0, b=10.0, e=0.0000001, h, s1=0.0, s2;
long n, i;
int is_first=1;
for(n=2;;n+=2){ // アルゴリズムの関係で n は偶数
h=(b-a)/n;
s2=f(a)+f(b);
for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);
s2*=h/3;
if(!is_first && fabs(s2-s1)<e) break;
s1=s2;
is_first=0;
}
printf("n=%ld integral=%f\n", n, s2);
return 0;
}
112:デフォルトの名無しさん
07/07/16 22:46:56
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
CSVファイルからデータを読み込み、構造体に入れる。
CSVファイルの中身は、名前・住所・電話番号で、10件以内である。
構造体には、登録番号・名前・住所・電話番号を入れる。
登録番号は自分でつける。
最初に、登録番号と名前を表示し、入力された登録番号に応じて
名前住所電話番号を表示する。
[3] 環境
[3.1] OS:windows cygwin
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特になし
色々かんがえたのですがわかりませんでした。。
よろしくおねがいします。
113:デフォルトの名無しさん
07/07/16 22:48:53
>>111さん
素早い回答ありがとうございました。おかげで次の宿題は出せそうです。ありがとうございました。
114:デフォルトの名無しさん
07/07/16 22:49:29
>>107
ごめん間違った
for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);
↓
for(i=1;i<n;i+=2) s2+=4*f(a+h*i);
for(i=2;i<n;i+=2) s2+=2*f(a+h*i);
115:デフォルトの名無しさん
07/07/16 22:50:12
あちゃー手遅れだったか
116:スモーク
07/07/16 22:50:23
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
まだcaseになれていないのだろうか・・・。
教えてください。
117:スモーク
07/07/16 22:51:41
他にも。
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。
また開催年でない場合は、画面にその旨メッセージを出力すること。
118:デフォルトの名無しさん
07/07/16 22:55:35
>>117
説明がneeeeeeeeeeeee
119:107
07/07/16 22:56:05
>>114さん、わざわざ丁寧にありがとうございます!(´;ω;`)ブワッ
120:デフォルトの名無しさん
07/07/16 22:57:52
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字列を置換するプログラムをつくれ。
どのような形でもいいので、置き換える文字列と置き換えられる文字列を受け取り
置換した文章を出力する。なるべくポインタを使うこと。試しにちゃんと動くか確認すること。
(例)”僕" を ”私” に置換する
僕は20才だ。僕の好きなたべものはお酒だ。
-> 私は20才だ。私の好きなたべものはお酒だ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:(gcc 2.95.3)
[3.3] 言語: C
[4] 期限: (2007年07月31日23:59まで )
[5] その他の制限: 無し
121:デフォルトの名無しさん
07/07/16 22:58:12
まぁ、感謝されたって力つかなきゃ意味無いし、暇つぶしの種にされてるだけだから考え物だけどな。
122:デフォルトの名無しさん
07/07/16 23:05:22
>>110
あれでできてるんじゃねえのか?
scanfの前に"c2p Message:","p2c Message:"とか
printfをいれて挙動をチェックしろ
123:デフォルトの名無しさん
07/07/16 23:11:52
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
[3.3] 言語:C
[4] 期限:2007/7/17(火) 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。
どうかよろしくお願いします。
124:デフォルトの名無しさん
07/07/16 23:16:50
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): メンバx[]の値が定まっているPoint5Dのインスタンスを引数とし,
その2ノルムを計算して返す関数 Norm を書け.
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:無し
問題の意味がいまいち分かりません…orz
よろしくお願いします。
125:デフォルトの名無しさん
07/07/16 23:17:09
>>120
#include <stdio.h>
#include <string.h>
void replace(char *sentence, char *src, char *dest){
char *ptr;
int src_len;
src_len=strlen(src);
for(;;){
ptr=strstr(sentence, src);
if(ptr==NULL) break;
printf("%.*s%s", ptr-sentence, sentence, dest);
sentence=ptr+src_len;
}
printf("%s", sentence);
}
int main(void){
char *sentence="僕は20才だ。僕の好きなたべものはお酒だ。";
char *src="僕", *dest="私";
replace(sentence, src, dest);
return 0;
}
126:デフォルトの名無しさん
07/07/16 23:18:52
>>120
#include <stdio.h>
int main(int argc, char **argv)
{
char *queue;
int c, qhead = 0, qtail = 0, qsize;
if (argc < 3)
return fprintf(stderr, "usage: %s from to\n", argv[0]), 1;
qsize = strlen(argv[1]);
queue = malloc(qsize);
while ((c = getchar()) != EOF) {
queue[qtail] = c;
qtail = (qtail + 1) % qsize;
if (qhead != qtail) continue;
if (memcmp(&queue[qhead], argv[1], qsize - qhead) == 0
&& memcmp(queue, argv[1] + qsize - qhead, qtail) == 0) {
fputs(argv[2], stdout);
qhead = qtail = 0;
} else {
putchar(queue[qhead]);
qhead = (qhead + 1) % qsize;
}
}
while (qhead != qtail) {
putchar(queue[qhead]);
qhead = (qhead + 1) % qsize;
}
free(queue);
return 0;
}
127:126
07/07/16 23:21:41
あ。
#include <stdlib.h>
#include <string.h>
もしといて。スマソ。
128:デフォルトの名無しさん
07/07/16 23:28:07
>>125
ありがとうございます。かなりきれいにできていますね。
自分もstrstr ()を使ったのですが、途中でつまってしまいました。
129:デフォルトの名無しさん
07/07/16 23:28:59
>>120 便乗
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[1024], rep[2048], word1[32], word2[32], *p = buf, *q = rep;
scanf("%[^\n]%s%s", buf, word1, word2);
while(*p){
if(!strncmp(p, word1, strlen(word1))) strcpy(q, word2), p += strlen(word1), q += strlen(word2);
else *q++ = *p++;
}
*q = '\0';
puts(rep);
return 0;
}
130:デフォルトの名無しさん
07/07/16 23:31:06
>>126
すごいですね。こんなやりかたもあったのですか。
131:デフォルトの名無しさん
07/07/16 23:38:44
>>129
検索単語がみつかったら単語の文字の数だけ前に進めてstrcpy()をつかうのですね。
それも考えていたのですが、できそうでできませんでした。
みなさん、ありがとうございました。
132:デフォルトの名無しさん
07/07/16 23:40:48
[1] 授業単元:情報基礎
[2] 問題文:
・1から9までの数字を一回ずつ使った9桁の数字を小町数という。
自乗した数が小町数となるような自然数をすべて求めるプログラムを作成し
その数と小町数の両方を出力せよ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: (明日まで )
[5] その他の制限: 無し
C言語習いたてで、期限ぎりぎりまでがんばったんですけどダメでした
どなたかよろしくお願いします。
133:デフォルトの名無しさん
07/07/16 23:52:56
昔のスレに同じ質問あった気がするな
134:22
07/07/16 23:54:32
>>25
ありがとうございます。
なんですが、元々のソースを追記修正して今まできたので
一応そのような形でって事になってます。
制限なしと書いていましたが、現在のソースを
やっと作れるか作れないかぐらいのレベルなので
>>25さんのだとまだちょっとわからないことがいろいろとあります。
勉強してみます。ありがとうございました。
135:デフォルトの名無しさん
07/07/17 00:08:28
>>132
#include <stdio.h>
#include <string.h>
int check(unsigned long n)
{
char f[10] = { '0' };
for (n = n * n; n > 0; n /= 10)
f[n % 10] = '1';
return memcmp(f, "0111111111", 10) == 0;
}
int main(void)
{
unsigned long n;
/*
* 最小小町数 123456789, sqrt(123456789) = 11111.11...
* 最大小町数 987654321, sqrt(987654321) = 31246.96...
*/
for (n = 11111; n < 31428; ++n)
if (check(n))
printf("%lu * %lu = %lu\n", n, n, n * n);
return 0;
}
136:135
07/07/17 00:11:09
あ、コメント間違ってら
sqrt(987654321) = 31426.96...
ね、正しくは。
137:デフォルトの名無しさん
07/07/17 00:18:27
>>136
わざわざありがとうございます!
今できる環境にないので明日大学で試してみます
138:デフォルトの名無しさん
07/07/17 01:10:25
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し
よろしくお願いします。
139:デフォルトの名無しさん
07/07/17 01:50:51
>>108
ありがとうございます。
終了条件の部分大変参考になりました。
140:デフォルトの名無しさん
07/07/17 03:38:07
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):迷路の作成(探索)
2次元配列を用いて迷路をつくりSTARTからGOALまでの経路を視覚的にわかるように出力せよ。
(例)壁1 通路0 START8 GOAL9
データ
1 1 1 1 1 1 1 1 1 1
1 9 0 0 0 1 0 1 0 1
1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 1 1 0 0 0 1
1 0 0 0 1 0 0 1 1 1
1 1 0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 8 1
1 1 1 1 1 1 1 1 1 1
141:デフォルトの名無しさん
07/07/17 03:38:42
続きです
出力結果
**********
*G+++* * *
****+* *
* *++*** *
* *+** *
* ++* ***
**+** * *
* ++* * **
* *+++++S*
**********
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し
現在奮闘中ですがなかなかできませんorz
よろしくお願いします。
142:デフォルトの名無しさん
07/07/17 04:26:02
>>142
#include <stdio.h>
#define X 10
#define Y 10
int map[X][Y]={ {1,1,1,1,1,1,1,1,1,1}, {1,9,0,0,0,1,0,1,0,1},
{1,1,1,1,0,1,0,0,0,1},{1,0,1,0,0,1,1,1,0,1},
{1,0,1,0,1,1,0,0,0,1},{1,0,0,0,1,0,0,1,1,1},
{1,1,0,1,1,0,1,0,0,1},{1,0,0,0,1,0,1,0,1,1},
{1,0,1,0,0,0,0,0,8,1},{1,1,1,1,1,1,1,1,1,1}};
char expr[]=" *+34567SG";
int next(int x, int y) {
if (map[x][y] == 0) map[x][y] = 2;
if (map[x-1][y] == 9 || map[x-1][y] == 0 && next(x-1, y)) return 1;
if (map[x][y-1] == 9 || map[x][y-1] == 0 && next(x, y-1)) return 1;
if (map[x+1][y] == 9 || map[x+1][y] == 0 && next(x+1, y)) return 1;
if (map[x][y+1] == 9 || map[x][y+1] == 0 && next(x, y+1)) return 1;
if (map[x][y] == 2) map[x][y] = 0;
return 0; }
int main() {
int x, y, r=0;
for (x=0; x<X; x++) for (y=0; y<Y; y++) if (map[x][y] == 8) next(x, y);
for (x=0; x<X; x++) {
for (y=0; y<Y; y++) putchar(expr[map[x][y]]);
putchar('\n');
}
return 0; }
143:142
07/07/17 04:30:54
安価ミスた.orz
144:デフォルトの名無しさん
07/07/17 04:46:27
URLリンク(ja.wikipedia.org)
145:デフォルトの名無しさん
07/07/17 08:50:03
>>138
URLリンク(kansai2channeler.hp.infoseek.co.jp)
146:デフォルトの名無しさん
07/07/17 09:22:08
>>112
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char num[128], name[128], adr[128], tel[128];
}Data;
int main(int argc, char *argv[])
{
Data x[10];
FILE *fp;
int i = 0, j;
char buf[1024], *p, search[128];
if(argc < 2) fprintf(stderr, "usage : %s string\n", argv[0]), exit(1);
if((fp = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
while(fgets(buf, sizeof(buf), fp) != NULL){
printf("num : "), scanf("%s", x[i].num);
if((p = strtok(buf, ",")) != NULL) sscanf(p, "%s", x[i].name);
if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].adr);
if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].tel);
i++;
}
for(j = 0; j < i; j++)
printf("%s %s\n", x[j].num, x[j].name);
printf("search : "), scanf("%s", search);
for(j = 0; j < i; j++)
if(!strcmp(search, x[j].num))
printf("%s %s %s\n", x[j].name, x[j].adr, x[j].tel);
return 0;
}
147:デフォルトの名無しさん
07/07/17 11:28:50
[1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
参考プログラムです→URLリンク(www-it.sci.waseda.ac.jp)
よろしくお願いします。
148:デフォルトの名無しさん
07/07/17 11:38:25
>>147
検索して死ね
149:デフォルトの名無しさん
07/07/17 11:39:39
[1]授業単元:プログラミング技術III
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限:7/18まで
[5] その他の制限:特になし
よろしくお願いします
150:デフォルトの名無しさん
07/07/17 13:09:50
[1]授業単元:ゲームV
[2]問題文:数独(wiki参照Wikipedia項目リンク)解読プログラム
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限:7/20
[5] その他の制限:関数は2つ以下、#include <stdio.h>のみを使用すること
宜しくお願いします
151:デフォルトの名無しさん
07/07/17 13:22:11
>>150
URLリンク(www.techfinesse.com)
こんなのがあるようだぞ
その制限には引っかかるようだがなw
152:デフォルトの名無しさん
07/07/17 13:30:55
[1] データ構造論
[2]treeprintのプログラムを参考にして木をカッコ表記で表示するプログラムを作り、コマンド X で動作するようにせよ。
/* treeprint() : 2分探索木を根から順にすべて表示する(1行10個毎) */
int num; /* 1行のデータ個数を制御するための変数。*/
void treeprint(void)
{
num= 0;
/* 木の根ノードからサブ関数trprintを用いてプリント開始。*/
trprint(start->right);
}
int trprint(TNODE *p) /* trprint(p) : p の2分木を再帰的にプリント。*/
{
if(p != end){ /* p が終端ノードでないならば */
trprint(p->left); /* pの左部分木を再帰的にプリント。 */
printf("%5d%c",p->key, (++num % 10) ? ' ':'\n'); /* pのkey値を表示。 */
trprint(p->right); /* pの右部分木を再帰的にプリント。 */
}
}
[3.1] Linux [3.2] gcc 3.4 VC 6.0等 [3.3] C言語
[4] 2007年07月18日12:00まで]
[5] プログラムの中のtreeprintだけ問題文の載せています
よろしくお願いします
153:デフォルトの名無しさん
07/07/17 13:33:01
>>149
URLリンク(kansai2channeler.hp.infoseek.co.jp)
154: ◆Il0WZuGYWw
07/07/17 14:47:00
>>150
bsdのportsの中に入ってるお
155:デフォルトの名無しさん
07/07/17 15:36:03
>>150
何の工夫も無い力技だが一応やってみた。
出回っているソースは確実にこれよりはマシだろう。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
156:デフォルトの名無しさん
07/07/17 16:23:42
あ、あ、ぼるじょあのほうにカキコしてしまった……
こっちのほうがいいのかな?マルチは怒られますよね?よければ誰かぼるじょあスレ見てください〜〜
157:デフォルトの名無しさん
07/07/17 19:15:37
>>142
遅い時間にも関わらず回答ありがとうございます。
確かに動作できました。
しかしながら関数を3つ作ってとけとのことでしたorz
すみませんがお時間がありましたら回答おねがいします。
問題は>>140-141です
よろしくお願いします<(__)>
158:c言語初心者
07/07/17 20:00:23
授業名:プログラミング1
プリントを渡されてやってこいとのことでした。
問題1
サイコロを10000回投げたとき、1から6までのそれぞれの目が
何回ずつ出たか調べるプログラムを作成せよ
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int main(void)
{
int i, j,spot, f[ ?(1) ];
srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
[ ?(2) ]
}
return 0;
}
です。どうかよろしくお願いします。
159:デフォルトの名無しさん
07/07/17 20:01:52
C++です
距離の単位にyかmが入力されるともう片方の単位に変換するプログラムです。
ただし、距離を変換する部分は、関数transを定義し、main関数で呼び出すこと。
距離の数値を入れた後に動かなくなるんですが、何が違うのか教えてほしいです。。
よろしくお願いします
#include <iostream>
using namespace std;
double trans(char a,double b)
{
double c;
cin>>a;
cin>>b;
if(a='y')
{
c=b*0.914;
return c;
}
else if(a='m')
{
c=b/0.914;
return c;
}
}
160:デフォルトの名無しさん
07/07/17 20:02:55
続き
int main()
{
char a;
double b;
cout<<"meter or yard -->";
cin>>a;
while(a!='E')
{
cout<<"input data -->";
cin>>b;
{
if(a='y')
{
cout<<b<<" yard --> "<<trans(a,b)<<" meter";
}
else if(a='m')
{
cout<<b<<" meter --> "<<trans(a,b)<<" yard";
}
cout<<"meter or yard -->";
cin>>a;
}
}
return 0;
161:デフォルトの名無しさん
07/07/17 20:04:35
a=='y' にしろ
162:デフォルトの名無しさん
07/07/17 20:05:45
>>158
結果の出力は要らないのか?
163:デフォルトの名無しさん
07/07/17 20:05:48
>>158
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int main(void)
{
int i, j,spot, f[7];
srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
f[spot]++;
}
for(i=1; i<=6; i++) {
printf("%d %d \n",i,f[i]);
}
return 0;
}
164:デフォルトの名無しさん
07/07/17 20:06:15
>158
(1)7
(2)f[spot]++;
165:c言語初心者
07/07/17 20:07:34
たぶん(1),(2)にあてはまるものをいれてこいってことだと思います。
よろしくおねがいします。。
166:デフォルトの名無しさん
07/07/17 20:10:40
>161
改善されませんでした・・・
167:デフォルトの名無しさん
07/07/17 20:14:50
>>159
>>161 に加えて
trans(a,b)で余計に a, b を入力させようとしてるから.
引数で渡してんだから,そこで入力させてどうする.
168:c言語初心者
07/07/17 20:27:54
ありがとうございました
講義名:プログラミング1
プリントを渡されてやってこいとのことでした。よろしくおねがいします
1,2,・・・13の中から5個の数をランダムに選び出すプログラムを作成せよ
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int a[13];
void RandomPermutation(int n)
{
例題2と同じ
}
int main(void)
{
int i;
RandomPermutation(13);
for (i = 0;i < (1)? ; i++){
printf("%4d \n", (2)? );
}
return 0;
}
です。(1)(2)の部分をお願いします。『例題2と同じ』という場所は
問題の横に横に例題2というのが乗っていました。だけど、自分はどこからどこまでが例題2
と同じ部分なのかがわからないです。例題2の部分がいるならそれも打ちます。よろしくお願いします。
169:デフォルトの名無しさん
07/07/17 20:37:44
(1)13
(2)a[i]
170:デフォルトの名無しさん
07/07/17 20:41:31
[1] 授業単元:C言語演習
[2] 問題文:
テキストファイルを読み込みたとえばテキストファイルに
3+4=
5*6=
...etc(これは他のその他の数式、etcと直接出力しない)
と書かれていたら画面に
3+4=7
5*6=30
...etc
と出力せよ。
[3] 環境
[3.1] OS: (Linux)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C言語)
[4] 期限: 7月19日
171:c言語初心者
07/07/17 20:46:29
講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします
よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、
ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int a[ (1)? ];
void RandomPermutation(int n)
{
例題2と同じ
}
int main(void)
{
int i;
RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
問2もありがとうございました。(1)から(8)までをよろしくお願いします
172:デフォルトの名無しさん
07/07/17 20:47:34
>>170
演算の種類は?
173:デフォルトの名無しさん
07/07/17 21:06:43
>>172
足し算、引き算、割り算、掛け算です。説明不足ですいません。
174:スモーク
07/07/17 21:23:34
こんばんわ。すみません、今度は説明を書いたのでよろしくお願いします。
「1」課題:C言語でコードを記述して実行する。
「2」内容:多分岐型のコードを使って整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力して、その計算結果cを出力するプログラムを作る。
というもの。さらに、実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で、
表現されるものとする。 演算子にそれ以外の記号が入力された場合は、
エラーメッセージを表示する。
また0による除算の回避も含めるものです。
「3」OS:WINDOWS XP SP2。
「4」バージョン:Visual Studio 2005。
「5」期限:今週の金曜まで。
「6」 コンパイラのバージョン: gcc。
これでおねがいします。
175:デフォルトの名無しさん
07/07/17 21:23:47
[1] 授業単元: CG入門
[2] 問題文
縦横400ピクセルのスクリーン上に3次元空間の3角形が複数個、投影される。
この3角形についてそれぞれ
@スクリーン上の頂点:(x1,y1)(x2,y2)(x3,y3)
A頂点のZ値(視点から3次元空間までの距離):Z1,Z2,Z3
B三角形の色:(r,g,b)-均一色
が標準入力から与えられるとき、Z−バッファ法に基づいてスクリーン上に三角形を描き
最終結果をppm画像として出力するプログラムを作成せよ。
*必要なデータは標準入力から入力するものとし、かつ複数のB角形に対応させる事
(B角形個数は予め与えてもよい)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual studio.
[3.3] 言語: C
[4] 期限: 2007年7月19日 11:00まで
この手のプログラムはスレ違いかもしれないと思いつつも、C言語で書いて来いとのことなので
書き込ませて頂きました。何卒、よろしくお願いします。
176:デフォルトの名無しさん
07/07/17 21:25:47
>>170
できた。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
177:デフォルトの名無しさん
07/07/17 21:28:47
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 線形探索
次の表は、平成19年のお年玉付き年賀葉書の当選番号である。
1等 157788、457190
2等 5161、7093、7485、9614
3等 64、79
手元に届いた年賀状の抽選番号をキーボードから入力し、
当選したかどうかチェックして結果を表示するプログラムを作成する。
当選番号(の下2桁)は、キーの配列に初期値として格納する
キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。
探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。
【発展】
余力のある人は、下2桁に限らず、全桁を初期値として格納し、当選のチェックを実行するプログラムを作成してみること。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VB
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 習ったのは 配列 if-else文 繰り返し ポインタ 線形探索と基礎知識
です。[発展]の方でお願いします。
178:デフォルトの名無しさん
07/07/17 21:37:38
>>174
>>170と同じ人か?
%演算子の分追加、変数名微修正と
コマンドライン引数を指定するとそのファイルから、
指定しないと標準入力から読み取るようにした。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
179: ◆y43pIoOHKo
07/07/17 21:39:12
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
自分の名前をローマ字でキーボードで入力し、文字数を表示させる関数、名前を逆順にする関数を
各自それぞれ定義しプログラムを組みなさい。結果の表示はmainで行い、姓と名の間は1文字
空白を入れること。ただし、変数が文字型、ポインタ型のみの場合の2つに分けてプログラムを組みなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語:C++
[4] 期限: 2007年07月18日10:00まで]
[5] その他の制限:できれば、do-while文及びfor文を使用してお願いします。
180:デフォルトの名無しさん
07/07/17 21:41:12
>>176さん、ありがとうございます。
けどまた説明不足でした…。小数の場合も含みます…。
>>170追加例
ファイル内
1.5+1.5=
3*5=
1.5+2=
出力
1.5+1.5=3
3*5=15
1.5+2=3
何度も説明不足ですいません…。この小数と整数を区別して出力するのが
むずかしいです。よかったらお願いします。
181:デフォルトの名無しさん
07/07/17 21:45:15
>>180
説明し忘れが無いか一度確認したほうがいいと思うよ
小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う
182:デフォルトの名無しさん
07/07/17 21:45:22
>>180
aとbの型をdoubleにして、
fscanfの%dを%lfに、
printfの%dを%gにすればおk
183:デフォルトの名無しさん
07/07/17 21:50:56
170です。
>>182さんありがとうございます!!これで完成しました!!
みなさんありがとうございました。%gとは便利な…。
184:デフォルトの名無しさん
07/07/17 21:52:10
そんな事より、今日うちに犬が死んだ。老衰だった
185:デフォルトの名無しさん
07/07/17 21:53:27
>>34>>37
遅くなりましたがありがとうございました。
186:デフォルトの名無しさん
07/07/17 22:01:04
[1] 授業単元: ソフトウェアシステム
[2] 問題文(含コード&リンク):
以下の円周率を2000桁もとめるプログラムを
できるだけ高速に計算できるように改良せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:分かりません
[3.3] 言語: C
[4] 期限: 2007年7月18日12:00まで
[5] その他の制限:
マイコン。配布プロラムはマチンの公式を使っている。
若干スレ違いかもしれないですが、よろしくお願いします。
187:デフォルトの名無しさん
07/07/17 22:05:38
>>186
マイコンかWindowsかどっちなんだ。つかマイコンだろうな。
どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴
いないんじゃないか。
188:デフォルトの名無しさん
07/07/17 22:07:21
>>175
よくわからんが、おもむろにCreateWindow()で窓を開く
コンソールアプリをつくれということだろうか。
189:デフォルトの名無しさん
07/07/17 22:09:28
>>187
Windows上で開発してるってことだろ、多分
せめてどんなマイコンを使ってるかわからないと難しいな・・・
190:デフォルトの名無しさん
07/07/17 22:17:30
○×ゲーム
Linuxのプロンプト上でplay
com/man対戦、先攻/後攻を選べる
191:デフォルトの名無しさん
07/07/17 22:20:53
最近三目並べはやってんのかyo
192:175
07/07/17 22:37:33
>>188
アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと
それを適当なソフトで忠実に再現したppm画像に出してくれるものです。
同じ事言ってたらすいませんorz
できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m
193:デフォルトの名無しさん
07/07/17 22:40:26
>>186です
>>187
>>189
説明不足ですいません。
答えになってないかいもしれないですが、この付属のV850基板を使っています。
URLリンク(www.cqpub.co.jp)
194:デフォルトの名無しさん
07/07/17 22:42:40
V850基板なら手元にあるぜ
でもまだソフトインスコしてない・・・
195:デフォルトの名無しさん
07/07/17 22:43:16
>>192
いや、スクリーンに描画しろとか書いてあるからさ。
それを見なかったことにして、PPM画像ファイルを出力するだけなら、
標準Cの範囲のプログラムで出来る話だが、400*400の画面に
描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。
196:190 ◆Oa0JSQvro2
07/07/17 23:14:27
追記です。
期限は木曜夜でお願いします。
よろしくおねがいしますm(__)m
197:175
07/07/17 23:14:34
>>195
なるほどそういう事でしたか…
特に制限などは言われていないので(Cのみとは言われてません)
このスレの趣旨に沿っていないかもと思ったのです。
できれば400X400は後に考えますので、ファイル出力の部分をお願いします。
198:デフォルトの名無しさん
07/07/17 23:36:49
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
練習13-2(気象情報)
インターネットを利用して出身地の観測開始から現在までの
気象情報を入手し,各年の月別平均気温データを作成する.
作成したファイルから気象データを読み込んで,
(1)平均気温が最も低い年月と最も高い年月を探索して
両者の年月と気温をディスプレイに出力する
(2)年間平均気温を計算し,高い年から順に
年と年間平均気温をファイルに出力する
プログラムを作成しなさい.
気象庁HP(URLリンク(www.jma.go.jp))参照
[3] 環境
[3.1] OS: Windows
[3.2]
[3.3] 言語:C言語
[4] 期限: 2007年 7月18日の朝
[5] その他の制限: 出身地は神戸でお願いします
199:デフォルトの名無しさん
07/07/17 23:38:00
>>196
>>1のテンプレを漏れなく書け。
200:デフォルトの名無しさん
07/07/17 23:45:39
× 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?
201:デフォルトの名無しさん
07/07/18 02:31:07
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
longが定義されている数の最大値LONGMAXをもとめろ。
例えば、i=1 を2倍していき、LONGMAXの最大値を求める。
別にこの方法でなくてもいい。各自にまかせる。
ちなみに LONGMAXはおよそ2147483647である。
余裕があるものはdouble などもやることが望ましい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc2.95-3)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: (2007年07月25日23:59まで)
[5] その他の制限:無制限
さぐりで下のようなところまでは書きました。
#include <stdio.h>
#define LONGMAX 2147483647
int main(void)
{
long int i,i2;
/*これは0 ... の無限ループ
for(i=1;i<LONGMAX;i*=2)
printf("%d ",i);
*/
for(i=1;;i2=i,i*=2){
printf("%d ",i);
if(i<i2){
printf("%d is LONGMAX\n",i);
break;
}}}
までできましたが、値が少し違い微妙です。
それと、コメントカットしたらなぜ無限ループになるのでしょうか?
これにかなり悩みました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5379日前に更新/328 KB
担当:undef