C/C++の宿題片付けま ..
296:デフォルトの名無しさん
10/01/28 19:57:42
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
10個の要素を持つ動的な整数配列を作るプログラムを作成しなさい。
動的な配列へのポインタを整数ポインタに代入しなさい。
次に、ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入しなさい。
最後に、代入した値を表示し、メモリを解放しなさい。
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限:2010年1月29日16:00まで
[5] その他の制限: 特にありません
よろしくお願いします。
297:デフォルトの名無しさん
10/01/28 20:01:53
>>294
三行目に書いたところは、scじゃなくてnumでした。すみません。boolalphaってなんですか?
298:デフォルトの名無しさん
10/01/28 20:04:45
>>296
#include <iostream>
int main() {
int *p = new int[10]; // 動的な配列へのポインタを整数ポインタに代入
for (int i = 0; i < 10; i++) {
p[i] = 1 + i; // ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入
}
for (int i = 0; i < 10; i++) {
std::cout << p[i] << std::endl; // 代入した値を表示し
}
delete p; // メモリを解放
return 0;
}
299:デフォルトの名無しさん
10/01/28 20:28:30
[1] 授業単元:コンピュータリテラシー
[2] 問題文(含コード&リンク):
あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:BCC Developer Borland C++ 5.5.1
[3.3] 言語:C++
[4] 期限:2010年1月29日12:00まで]
[5] その他の制限: 上記のプログラミングの他に fp while float else puts gets
strlen strcpy strcat 以外は使用しないでください。授業で習っていないので…
よろしくおねがいしまつ。
PC規制で携帯からですみません…
300:デフォルトの名無しさん
10/01/28 20:38:42
>>295
URLリンク(kansai2channeler.hp.infoseek.co.jp)
301:デフォルトの名無しさん
10/01/28 20:40:23
>>193
今更なんですが、『厳密解』って所に『double exact=63』ってあるんですが、これを計算するプログラムを作るんじゃないんですか?これをプログラムに書いてもいいんですかね?
302:301
10/01/28 20:42:52
でも
//厳密解 の部分は出力される結果は同じですね。入れるとどう違うんですか
303:298
10/01/28 20:43:48
て、訂正! >>296さん気をつけて。
×delete p; // メモリを解放
○delete[] p; // メモリを解放
304:デフォルトの名無しさん
10/01/28 20:44:22
>>301
大丈夫?中学校からやり直す?
305:デフォルトの名無しさん
10/01/28 20:52:41
>>304
?
306:デフォルトの名無しさん
10/01/28 20:56:54
ごめんなさい。納得しました
307:デフォルトの名無しさん
10/01/28 20:57:01
[1] Cプログラミング入門:
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] gcc(すいませんバージョンがわかりません)
[3.3] 言語:C
[4] 期限: 2010年1月31日23:59まで
[5] その他の制限: 特にないです。
お願いします。
308:デフォルトの名無しさん
10/01/28 21:10:31
>>299
> fp while float else puts gets
>strlen strcpy strcat 以外は使用しないでください。
その条件じゃオレには無理。
//(前略)
fin=fopen(filename1,"r");//fout=fopen(filename1,"r");
fout=fopen("kojin.txt","w");//fin=fopen("kojin.txt","w");
for(i=0;i<100;i++)
if(fscanf(fin,"%s%s%s%s",&date[i].myouji,&date[i].name,&date[i].jusho,&date[i].denwa)==EOF)break;
fclose(fin);//fclose(fout);
printf("名前もしくは名字=");
scanf("%s",&ss);
for(i=1; i<=5; i++){
if(strcmp(ss,date[i].myouji)==0){
//printf("%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa);
fprintf(fout,"%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa);
k=k+1;
}
if(strcmp(ss,date[i].name)==0){
//printf("%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa);
fprintf(fout,"%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa);
k=k+1;
}
}
fclose(fout);//fclose(fin);
}
309:デフォルトの名無しさん
10/01/28 21:21:00
[1] C言語プログラミング演習(大学任意科目)
[2] コマンドラインで指定された各テキストファイルに対して個別に以下の処理を行うCプログラムを作成
☆テキストファイルを通読し、各行のインデント深度の最大値を求める(それをNとおく)
☆テキストファイルの先頭から再度読み出し、それぞれの行についてインデント深度がnなら
ば、インデント深度をN-nに変更したものを標準出力する。
☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。
ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合
深度=nとする。
[3]
[3-1] Windows XP Professional Edition
[3-2] Visual-C++ 6.0 SP6
[3-3] C言語
[4] 2/1迄
[5] stdio.hを使用可 (他は暗黙的にNG)
310:309
10/01/28 21:24:53
すみません。転記ミスです
×
☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。
ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合
深度=nとする。
○
☆新しいテキストファイルのNが判明した時点で、改行とそのファイル名、改行を標準出力する。
ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでタブがn回(n>=0)現れた場合
深度=nとする。
311:デフォルトの名無しさん
10/01/28 21:32:45
>>308
わざわざご返答ありがとうございます。そうですか…無茶振りすいません。
一応引き続き、>>299お答え出来る方いらっしゃいましたら厚かましいですが宜しくお願い致します…
312:デフォルトの名無しさん
10/01/28 21:40:54
>>310
スペースがいくら続こうともタブが一つも無ければ深度=0ですか?
313:デフォルトの名無しさん
10/01/28 21:50:33
>>311
freopenもダメなんでしょ?
314:デフォルトの名無しさん
10/01/28 22:02:09
>>313
すみません。習ってないのでわからないです…
315:デフォルトの名無しさん
10/01/28 22:03:34
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual studio 2003
[3.3] 言語:C
[4] 期限:2010年2月2日正午まで
[5] その他の制限: 特にありません
よろしくお願いします。
316:デフォルトの名無しさん
10/01/28 22:04:06
>>307
URLリンク(codepad.org)
ヒントがひどいよ(´;ω;`)
一応ヒントに沿う形で書いたけどいろいろ酷い…。
こちらの環境では動いてるけど、そちらの環境で動くかどうか不明。
codepadでOutput: 1 Segmentation faultとか出ちゃってるから。
317:デフォルトの名無しさん
10/01/28 22:06:10
>>315
問題文URLでミスしました。再投稿します。
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual studio 2003
[3.3] 言語:C
[4] 期限:2010年2月2日正午まで
[5] その他の制限: 特にありません
今度こそ、よろしくお願いします。
318:316
10/01/28 22:08:10
あ、Resultsの中の
for (i = 0; i < N; i++) printf("%d:%d\n", i, COM[i]);
for (i = 0; i < n; i++) printf("%d:%d\n", i, MAN[i]);
printf("count = %d\n", count);
この三行はデバッグ用なので不要です。消しておいてください。
319:デフォルトの名無しさん
10/01/28 22:26:00
>>311
その条件で問題を解くのは不可能だから、
あきらめるか、条件を見直すしかないね。
320:デフォルトの名無しさん
10/01/28 22:39:27
>311
あ、コマンドラインパラメタとパイプ・リダイレクトを使えばいけるな。
type 入力ファイル | 宿題.EXE 検索語句 > 出力ファイル
こんな起動方法はあり?
321:デフォルトの名無しさん
10/01/28 22:43:19
>>307
どうぞ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
322:デフォルトの名無しさん
10/01/28 22:44:06
>>316 >>318
どうもありがとうございます。一人ではどうにもなりませんでした。
323:デフォルトの名無しさん
10/01/28 22:49:08
>>321
ありがとうございます!
なんとかのりきれそうですm(_ _)m
324:デフォルトの名無しさん
10/01/28 22:52:05
>>320
あの…
名簿の人数が大体5人と考えてみても無理でしょうか?
その中から一人検索するので…
条件が習ってる範囲なので変えることができないのですが。
325:デフォルトの名無しさん
10/01/28 23:03:15
>324
データ数は関係ない。
その条件だとファイルの読み書きができない。
使用可能関数に記述もれは無いのか?
fで始まる名前の関数を習って無いのか?
326:デフォルトの名無しさん
10/01/28 23:07:18
>>299
> fp while float else puts gets
>strlen strcpy strcat 以外は使用しないでください。
これだけだと、ファイルに入出力できない。
>>320 タソが言ってる方法もあるが・・・
> 名簿の人数が大体5人と考えてみても無理でしょうか?
人数は関係ないかと。
というか、名簿のフォーマットは決められていないですか?
ファイルの入出力関数について何も習ってないならば、
この問題は解けないと思います。
とりあえず、講義資料とかノートとか読み返して、
fgetsとかfputsとかを習っていないか確認してください。
327:デフォルトの名無しさん
10/01/28 23:15:56
>>324
>上記のプログラミングの他に fp while float else puts gets
>strlen strcpy strcat 以外は使用しないでください。授業で習っていないので…
それ、あなたが勝手に付けた条件だよね?
上記に記載されていない
fopen,fclose,scanf,printf,struct等使ってるけど
それはいいの?
fopenやfcloseは使ってるのに
fprintf,fgets,fputs等のファイル入出力関数は使っちゃダメなの?
・問題文は、出題されたまま全文を書いてください。
328:デフォルトの名無しさん
10/01/28 23:16:59
翻弄された回答者が(´・ω・)カワイソス
329:デフォルトの名無しさん
10/01/28 23:17:22
>>320
>>326
すみません!!見直したところfscanf、fprintf、fputsとfgetsも使ってました。
不注意でご迷惑お掛けしました…
330:デフォルトの名無しさん
10/01/28 23:18:53
>>329
なら308でいいよね?
331:デフォルトの名無しさん
10/01/28 23:29:58
>>330
それがEOFとbreakがつかえないもので…すみません。
332:デフォルトの名無しさん
10/01/28 23:45:17
連投すみません。これ以上書くと私物化も甚だしいので控えます。
頂いたヒントで頑張ります。情報不足でご迷惑お掛けしました。
本当にありがとうございました。
333:デフォルトの名無しさん
10/01/29 04:07:06
下痢便飲みたいのかそうか
334:デフォルトの名無しさん
10/01/29 16:23:54
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1] OS:WindouwsXP
[3.2] コンパイラ名とバージョン:Microsoft VisualC++2008 Express Edition
[3.3] 言語:C
[4] 期限: (2010年1月31日17:00まで
[5] その他の制限:特になし
ファイルの入出力について理解したいので、
すみませんが、よろしくお願いします。
335:デフォルトの名無しさん
10/01/29 17:43:11
>>334
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
FILE *fp,*fin;
char s[256]="gomibako";
char fname[256], buff[256];
long pos;
printf("出力するファイル名を入力せよ。\n");
fgets(fname,256,stdin); //スペース入りファイル名なので
fname[strlen(fname)-1]='\0'; //\n → \0
strcat(fname, ".txt");
fp = fopen(fname, "a"); fin = fopen("word.txt","r");//fpは"a"追記モード
if ((fp == NULL)||(fin == NULL)) {
printf("ファイルオープン失敗。\n");
exit(EXIT_FAILURE);
}
fseek(fp,0,SEEK_END); //ファイル名出力は最初の1回目のみのようなので
pos=ftell(fp);
if(pos==0)
fprintf(fp,"%s\n",fname);
while(fscanf(fin,"%s",buff)!=EOF)
if(strcmp(buff,s)!=0)
fprintf(fp,"%s\n",buff);
fclose(fin);
fclose(fp);
printf("読み込み完了/書き込み完了。\n\n");
return 0;
}
336:デフォルトの名無しさん
10/01/29 20:20:50
[1] 授業単元: 情報処理B
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows vista
[3.2] Cygwin
[3.3] 言語: C
[4] 期限:2月9日まで
[5] その他の制限: とりあえずstrcpyは習っています。
課題5以外はプログラム中の省略を補っていただきたいです。多いですがよろしくお願い致します。
337:200
10/01/29 22:56:13
>>200ですがおかげさまでプログラムを完成させられました。
do{
}while(next_permutation(intary.begin(), intary.end()));
を使いました。
ところで>>200ではn!もしくはn!×n!の組み合わせを計算することになりますが
nが10だとn!×n!は1.31681894 × 10^13もの組み合わせになります。
この辺をうまいことごまかす方法ってないものでしょうか。
厳密な解でなくともそこそこの解を短時間で計算できる、みたいな・・・。
338:デフォルトの名無しさん
10/01/29 23:26:09
>>335さん。
詳しい解説助かります。本当にありがとうございました。
339:デフォルトの名無しさん
10/01/30 01:16:49
>>337
「B組の隣にA組を並ばせる」「身長差を最小にする」
の2つを同時に満たす解があるとは限らないので、よくあるのは重みWを利用して
点数=(1-W)×(Bの隣にAがいるか?)+W×(身長差が最小か?)
で並びを評価する。2つの条件のどちらを重視するかでWの値を調節する。
あとは色々とアルゴリズムあると思うけど、ランダム山登り探索でもすればいいんじゃないかね
@今の並びの点数を計算
Aランダムに2つ選んで交換してみる
B交換したあとの点数を計算
C点数が高くなっていたら交換を採用、低くなっていたら元に戻す
を繰り返していって、何回か連続で失敗したら終了。
340:デフォルトの名無しさん
10/01/30 03:04:51
>>336
課題1 URLリンク(codepad.org)
課題2 URLリンク(codepad.org)
課題3 URLリンク(codepad.org)
341:デフォルトの名無しさん
10/01/30 09:16:33
>>339
これは組み合わせ最適化ってカテゴリになるんですかね?
う〜ん、なかなか手の込んだことしないといけないっぽいなぁ。
342:デフォルトの名無しさん
10/01/30 11:14:15
>>337
計算途中で、過去の最小を超えたら中止したらいいんじゃね?
少しはラクになるはずw
343:デフォルトの名無しさん
10/01/30 11:19:52
身長順にソートして、
隣の組の子と手を繋がせて、
A組の子を元の順に並べる。
これじゃダメなの?
344:342
10/01/30 11:33:03
あ、中止つうのは、端折って次へ、という意味。
345:デフォルトの名無しさん
10/01/30 12:09:33
>>341
宿題のレベル超えるから最適化アルゴリズムでも調べてくれ
>>342
それをやったとしても計算量のオーダーには寄与しないよ
テクニックとしては重要だが。
>>343
そのやり方だと「AとBが隣り合う」という条件を完全に満たして、
「身長差が小さい」についてはそこそこ、という解が得られる。
そういう解が欲しいときにはその手の方法がベストだと思う。
>>200の問題文を見る限り、その解釈でいいと思う。
346:デフォルトの名無しさん
10/01/30 13:21:56
Microsoft社 Visual Studio C++のソフトウェアを用いて
チャットアプリケーションを作れと言われたのですが、
当方C言語系がとても苦手で困っています;;
システムの仕様は
・1対1の環境でのみ動作。
・サーバ側はポート番号を指定して、クライアントからの接続を待つ。
・クライアント側はサーバのIPアドレスとポート番号を指定して、サーバに接続する。
・この時の通信はTCPで行う。
・クライアントが通信をやめたい場合は"endc"
・サーバ側がやめたい場合は"ends"と入力。
・WinSockを使用してWindowsのコンソールプログラムとして基本的な簡易なチャット
以上の条件でプログラミングしていただけると幸いです。
よろしくお願いします m__)m
347:デフォルトの名無しさん
10/01/30 13:38:34
>>346
>>1
348:200
10/01/30 14:21:39
身長順にソートできれば確かに楽になりそうですね。
ただ>>200の問題はもっと複雑なものの一部分を抜き出したもので、
本当は身長順というよりも2次元平面上で距離が近いもの同士って感じなんです。
そうなると・・・ちょっと安易にはソートできないかな?
なんにしても宿題としては提出してしまっているので自分が気になってるだけです。
最適化アルゴリズムでいろいろ見てみようと思います。
349:デフォルトの名無しさん
10/01/30 14:45:58
Cマガのプログラミング研究会を思い出した。
350:デフォルトの名無しさん
10/01/30 15:26:06
>>345
343じゃないけど、>>343のやり方で、
身長差が最小とならない場合って、どんな場合?
計算してみたら、常に最小になりそうなんだが。
それとも「そこそこ」ってのは
「最小にならない場合がある」って意味ではない?
351:デフォルトの名無しさん
10/01/30 15:29:09
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク):
□1□2□3□4□5□6□7□8□9
の□に四則の演算子(+,−)や空白を入れて100なるような
小町算の全ての解を求めるプログラムを作成すること
例えば
12 + 3 - 4 + 5 + 67 + 8 + 9 = 100
123 - 45 - 67 + 89 = 100
[3] 環境
[3.1] OS: Windows
[3.2] VC3.5SP1
[3.3] 言語: C++
[4] 期限: 本日4時まで
[5] その他の制限: 特にないです
かなり切羽詰まってるのでお願いします…
352:350
10/01/30 15:42:36
と、思ったけど、AとBが隣り合わない場合を考慮すると、
343のやり方では、身長差が最小とならない場合がある、
という意味だったのね。
失礼、読み違えてました。
353:デフォルトの名無しさん
10/01/30 16:14:36
[1] 授業単元:コンピュータグラフィック
[2] 問題文(含コード&リンク):10468.txt
モノクロ画像を読み込み,(319,239) の画素値を 0 とする
画像を関数を使用して読み込み,それを 2 次元配列に格納する関数を作成する.
指定した画素の画素値をセットする.
2 次元配列に格納していた画像を 1 次元配列に再度格納し,関数を使用して画像ファイルとして書き戻す.
[3] 環境
[3.1] OS:WindowsXP
[3.2] VC 05
[3.3] 言語:C
[4] 期限: ([2010年2月1日01:00まで]
[5] その他の:
前スレで24日辺りに回答を頂いた問題なのですが、差し戻されました
自分なりに分かる部分を書き直してみましたが、一向に解決しないので回答をいただけないでしょうか?
354:デフォルトの名無しさん
10/01/30 16:16:35
>>351
31分でコードを作ってもらおうという考えは非常識
355:デフォルトの名無しさん
10/01/30 17:51:17
>>351
前にIPAの試験に出てたので、そのまま作ってみたよ
URLリンク(codepad.org)
356:デフォルトの名無しさん
10/01/30 18:07:34
[1]情報科学特論 (大学院講義レポート課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] OS:Solaris GNU-C-compiler 4.0 C言語
[4] 2/11迄
[5] 面倒なのでよろしく
357:デフォルトの名無しさん
10/01/30 18:28:17
[1] 授業単元:計算機自論
[2] 問題文(含コード&リンク):
LISPはCと同じで関数型言語ではないということを200文字以内で表現してください
[3] 環境
[3.1] OS: すべて
[3.2] コンパイラ名とバージョン: すべて
[3.3] 言語: 日本語
[4] 期限: 無期限
358:デフォルトの名無しさん
10/01/30 19:15:44
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindouwsXP
[3.2] コンパイラ名とバージョン:VisualC++2008 Express Edition
[3.3] 言語:C
[4] 期限:2010年2月2日15:00まで
[5] その他の制限:特になし
なんとか途中まで頑張りましたが、今の自分ではこれが限界でした・・・。
問題文リンク先の≪問題と条件≫の全てを満たすソースを、お教え下さい。
お手数かけますが、よろしくお願いします。
359:デフォルトの名無しさん
10/01/30 19:21:19
>>351
なんか変数いっぱい散らかしてもっちゃりしてるけど。
処理もなんかぐねぐねぐねぐねとしてるし。駄目だな。
URLリンク(codepad.org)
>>355さんのを見て勉強しなおしてきます。
360:デフォルトの名無しさん
10/01/30 19:44:31
>>358
#include <stdio.h>
int main(int argc,char *argv[]){
FILE *fp1=NULL,*fp2=NULL;
char buf;
int i=1;
int result=0;
if(argc!=3){
printf("引数が不正\n");
result=-1;
goto EXIT;
}
fp1 = fopen(argv[1],"rb");
fp2 = fopen(argv[2],"w");
if(fp1==NULL || fp2==NULL){
printf("file open error\n");
result=-1;
goto EXIT;
}
while(fread(&buf,1,1,fp1)){
fprintf(fp2,"%02X ",buf);
if(i%16==0)
fprintf(fp2,"\n");
i++;
}
EXIT:
if(fp1) fclose(fp1);
if(fp2) fclose(fp2);
return result;
}
361:デフォルトの名無しさん
10/01/30 20:26:12
360さん。回答ありがとうございます。
早速、このソースでコンパイルしたところ問題なくビルドは出来ました。
しかし、その後の「デバックなし」で実行してみましたが、
「引数が不正」と表示されてしまい、上手く出来ません。
これは何故でしょうか?しょぼい質問ですいません・・・。
362:デフォルトの名無しさん
10/01/30 20:38:24
>>361
≪問題と条件≫
第1引数に指定したファイルからバイナリーモードで1バイトずつファイルを読み込み、
ファイルの内容を16進数で示したものを第2引数に指定したファイルに書き込むプログラムを作成せよ。ただし、16バイトごとに改行を入れること。
(実行)
>free1.exe test.txt test2.txt
でしょ?
363:デフォルトの名無しさん
10/01/30 20:41:50
>>361
横からだけど、
今の場合引数っていうのは、プログラム実行時にプログラム名の後に続けて書くもの
>free1.exe test.txt test2.txt
この場合はtest.txtが第1引数で、test2.txtが第2引数
例えばここを
>free1.exe hoge.txt fuga.txt
にしても、ちゃんとhoge.txtから読み込んでfuta.txtに出力するような
プログラムを作れっていうのが、この課題なんじゃないかな
364:デフォルトの名無しさん
10/01/30 20:45:52
>>362
はい、そうです。
365:デフォルトの名無しさん
10/01/30 20:51:31
>>363
はい、test.txtとhoge.txtは、あらかじめ作成している状態です。
366:デフォルトの名無しさん
10/01/30 20:57:08
分かってねー
367:363
10/01/30 20:59:19
>>365
だったら実行時に指定しないと。
VC++でどうやって指定するか分かんないけど
368:デフォルトの名無しさん
10/01/30 21:11:35
>>365
コマンドライン引数というものが分かってないので
URLリンク(www9.plala.or.jp)
URLリンク(www.geocities.jp)
この辺読みましょう
369:デフォルトの名無しさん
10/01/30 22:28:36
[1] 授業単元: プログラム演習U
[2] 問題文(含コード&リンク):
3次元空間において線分が平面を通過しているか判定するプログラムを作りなさい
(線分の座標(x1,y1,z1) (x2,y2,z2)と平面の四隅の座標は入力する)
平面を通過していても平面の四隅の中に交点がない場合は通過していないものとする
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C
[4] 期限:2010/2/8
お願いします
370:デフォルトの名無しさん
10/01/30 22:43:05
>>358です。
稚拙ですが、質問をURLにまとめたので、よろしくお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
371:デフォルトの名無しさん
10/01/30 22:46:23
>>370
>>368を読め。
372:デフォルトの名無しさん
10/01/30 22:58:55
>>370
Cドライブ直下にfreeフォルダを作成します。
C:\free です。
>>360のソースを free1.c などとしコンパイルして free1.exe を作成します。
作成された free1.exe を C:\free フォルダ内にコピーします
C:\free\free1.exe です。
作成済みのデータ test.txt も同様に C:\free フォルダ内にコピーします
C:\free\test.txt です。
C:\free フォルダの中には free1.exe test.txt 2つのファイルがあります。
コマンドプロンプトを起動します。
スタート>ファイル名を指定して実行>cmd.exe OKボタン
コマンドプロンプトが立ち上がりました。
C:\............... >_ (_は点滅状態)
となります。
カレントディレクトリを C:\free に移動します。
C:\............... >cd c:\free
です。
C:\free>_ (_は点滅状態)
になりました。
この状態で
C:\free>free1.exe test.txt test2.txt
を実行します。
C:\freeフォルダの中に test2.txt が作成されました。おしまい。
373:デフォルトの名無しさん
10/01/30 23:03:50
>>340
ありがとうございます!助かりました!
課題4、5については引き続きどなたかよろしくお願い致します。。
374:デフォルトの名無しさん
10/01/30 23:30:33
>>353
ファイルの入出力はファイルポインタを用いたものに変更してます。
(インデントが変な所はタブをスペース4つに換えて下さい)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
375:デフォルトの名無しさん
10/01/31 00:04:17
372さん。回答ありがとうございます。
アドバイス通りにしてみて、実行したのですが、
「Lhaplus slef extractor」というのが
表示されます。展開先のフォルダはC:\free を選べるのですが、
展開されるファイルが何故かfree1.cしか選べません・・・。
何度も見直して実行したのですが、結果は一緒です。
これは、なにか他に原因があるのでしょうか?
376:デフォルトの名無しさん
10/01/31 01:53:57
>>356
には手だすな。
>>357も>>369も
やんないほうがいい
377:デフォルトの名無しさん
10/01/31 02:16:46
>>375
それ以上の質問はスレ違いどころか板違い。
378:デフォルトの名無しさん
10/01/31 02:35:35
乱数は言語学習レベルの人がうかつに手を出すべきものじゃない。
補助的に使うのならともかく
高度に依存するプログラムの生成には高度な専門知識が必要で
専門家”集団”レベルで扱うべきもの。
みだりに使う癖だけは付けないほうが良い
以上自戒を込めて
379:378
10/01/31 02:37:05
誤爆につき謝罪
380:デフォルトの名無しさん
10/01/31 07:42:21
around >>372
URLリンク(www.geocities.jp)
381:デフォルトの名無しさん
10/01/31 07:47:50
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク): 入出力とデータファイルへの保存とその間の処理あるプログラムを作成する
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません
自分では手のつけようがなく、非常に困っています。
どなたかよろしくお願いします。
382:デフォルトの名無しさん
10/01/31 14:33:52
漠然としすぎ
383:357
10/01/31 15:40:24
ほとほと困っています。どなたか回答お願いします。
384: ◆QZaw55cn4c
10/01/31 15:41:15
[1] 自主課題:前スレ スレリンク(tech板:776番) 関連
[2] パイプ機能(prog1|prog2|prog3) を有するシェルを作成せよ。
[3.1] WindowsXP/cygwin または Linux(Vine linux 4.2)
[3.2] gcc3
[3.3] C
[4] 特になし
前スレ スレリンク(tech板:776番) を解こうとして挫折しました。
なにとぞ、お手本のプログラムを示していただきたく、お願いいたします。
私のほうでは、
まず、pipe() -> fork() ->read()/write()またはgetchar()/printf() の流れでチャイルドプロセスの鎖の間をパイプでつなごうとしましたがうまくいきません。
プログラムは
URLリンク(codepad.org) です。
#define LOWLEVEL ではパイプが頭からお尻までつながって、 read()/write() 低水準入出力てデータが渡り、最後にプロンプトが表示されます。
ところが、
/* #define LOWLEVEL */ とコメントアウトした場合、FILE stdin, stdout でデータの読み書きを行うのですが、EOF を検出できず
チャイルドプロセスがロックしてしまいます。
ヒントでもかまいませんので、この種のプログラムのやりかたをどうか教えていただきたくよろしくお願いいたします。
385:デフォルトの名無しさん
10/01/31 16:06:44
>>384
> EOF を検出できず
EOFではなく0x0Aを検出したらどうでしょ
386:デフォルトの名無しさん
10/01/31 19:35:06
URLリンク(kansai2channeler.hp.infoseek.co.jp)
どうぞ。
387:デフォルトの名無しさん
10/01/31 19:43:07
息抜きにって下さい。
自分は分からないっす
お客様に「今後の夏のセールには、必ず連絡してほしい」といわれた時
お客様に「もらいもので気に入らないので他の商品と取り替えて欲しい」といわれた時
販売員の正しい行動を。
388:デフォルトの名無しさん
10/01/31 20:49:08
上司に聞け
389:デフォルトの名無しさん
10/01/31 22:26:49
>>384
できたよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
390:384
10/01/31 23:00:10
>>389
提示されたコードを読ませていただき、私のコードがうまくいかなかった原因がわかりました。
int fd[2];
pipe(fd);
dup2(fd[0], 0);
close(fd[0]);
のあとに、
close(fd[1]);
が必要でした。
その他、いろいろと示唆にとむコードを掲示していただき、ありがとうございました。
391:デフォルトの名無しさん
10/02/01 00:47:15
すいませんが規制されてるので携帯から簡単に
問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
環境:XP、gcc、C言語
期限:今日の午前中
その他制限:なし
構造体とfwrite関数とコマンドライン引数等を使うらしいのですがよく分かりません
よろしくおねがいします
392:デフォルトの名無しさん
10/02/01 00:50:31
>>391
追加ですいません
バイナリファイルです
393:デフォルトの名無しさん
10/02/01 01:44:49
>>391
名前〜年齢間のタブ数が一定ではないけどそのルールはどうなってるの?
394:デフォルトの名無しさん
10/02/01 05:48:48
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 住所録の機能を実現するプログラムを作成せよ。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2月3日 17時まで
[5] その他の制限: 特になし
395:デフォルトの名無しさん
10/02/01 08:23:12
>>384,390
EOFの検出はfeof()でできるよ。
396:デフォルトの名無しさん
10/02/01 09:15:16
>>393
タブ数は共通して一回です
397:デフォルトの名無しさん
10/02/01 10:27:05
>>391
URLリンク(codepad.org)
これじゃダメ?
398:デフォルトの名無しさん
10/02/01 10:28:21
>>391
連投スマソ。
構造体も,fwrite() も使ってなかったorz
忘れて下さい。
399:デフォルトの名無しさん
10/02/01 10:32:02
[1] 授業単元: C++実習
[2] 問題文(含コード&リンク):
●自由にクラスを設計する
設計図を提出 : クラスのデータメンバ、メンバ関数、仕様、
使い方等を詳しく説明したドキュメント 形式自由
(ただし電子化されたものに限る)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio2008
[3.3] 言語: C++
[4] 期限: 2010年2月7日まで
プログラム作成ではないのですが、よろしければよろしくお願いします。
400:デフォルトの名無しさん
10/02/01 11:11:23
設計図て。図まで書けと申すか。
401:デフォルトの名無しさん
10/02/01 11:32:51
規制中なので携帯から失礼します
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio2008
[3.3] 言語:C++
[4] 期限:2010年02月5日まで
[5] その他の制限:特になし
自分では全然作れませんでした・・・
よろしくお願いします
402:デフォルトの名無しさん
10/02/01 12:47:47
配列の使い方がイヤすぎるw
403:デフォルトの名無しさん
10/02/01 12:48:02
schaffleって英語じゃないよな?何語?
404:デフォルトの名無しさん
10/02/01 12:51:07
シャッフルしてランダムな結果を返すならシャッフル関数は2つもいらない気がする
405:デフォルトの名無しさん
10/02/01 12:55:25
schaffle1(int n, int a[]) {
while(n > 1) {
int i = rand() / (RAND_MAX + 1.0) * n + 1;
int temp = a[n];
a[n--] = a[i];
a[i] = temp;
}}
schaffle2(int n, int a[]) {
int i, j, temp;
for(i=1; i<=n; i++) {
j = rand() / (RAND_MAX + 1.0) * i + 1;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}}
406:デフォルトの名無しさん
10/02/01 14:48:08
[1] 授業単元:プログラミング応用演習
[2] 問題文(含コード&リンク): URLリンク(mikilab.doshisha.ac.jp)
[3] 環境
[3.1] OS: Windows
[3.2] )
[3.3] 言語:C++
[4] 期限: 2010/2/2or3
[5] その他の制限: ライブラリは使わず。問題文のリンク先のプログラム(DIRECT)を組む。
よろしくお願いします。できれば解説を付けてくださると助かります。
407:390
10/02/01 18:25:32
>>395
C 言語というより UNIX/POSIX システムコールの問題でした。
パイプを pipe() で作成した後適切に処理しなければ、パイプが閉じたことにならず、EOF が検出できずに getchar()やread() がブロックされたのでした。
これは fcntl() で NONBLOCK 属性をつけてもうまくいきませんでした。
URLリンク(codepad.org)
408:395
10/02/01 19:13:22
>>407
オレの言いたかったのはget_line()の方。
これじゃコマンドを入力するときのEOFを検出できないと言いたかったの。
409:デフォルトの名無しさん
10/02/01 19:26:11
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0]+2*x[1]*y[1]+3*x[2]*y[2]+4*x[3]*y[3]+5*x[4]*y[4]+6*x[5]*y[5]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し
410:デフォルトの名無しさん
10/02/01 20:27:14
>>408
拙作のgetline() のほうでしたら、fgets() が NULL を返すのをみて、一行入力の終わりがきたことを検知できます。特に問題はありません。
411:デフォルトの名無しさん
10/02/01 20:36:37
>>410
EOF入力してみた?
412:デフォルトの名無しさん
10/02/01 20:37:07
>>409
6以降はどうすんの?
413:410
10/02/01 20:41:12
>>411
わざわざ Ctrl-Dを入力しなくとも、一行の終わりは検知できていますが、何か?
414:409
10/02/01 20:43:57
すみません。誤りがありましたので訂正させて下さい。
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0] - 2*x[1]*y[1]+3*x[2]*y[2]- 4*x[3]*y[3]+5*x[4]*y[4]-6*x[5]*y[5]
+7*x[6]*y[6]-8*x[7}*y[7]+9*x[8]}*y[8]-10*x[9]*x[9]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
最大/最小になる時のx[],y[]とその値を出力すること
[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し
415:デフォルトの名無しさん
10/02/01 20:51:49
>>413
入力してみ。
416:デフォルトの名無しさん
10/02/01 21:05:14
>>415
特になにもおこりません。というか fgets() で一行入力できているのですが。
どんな振る舞いが発生して、どうおかしいのか教えていただけないでしょうか?
417:デフォルトの名無しさん
10/02/01 21:21:57
>>416
> >
cannot found
がずっとでたけど。
EOFになったら綺麗に終了したほうがいいよ。
418:デフォルトの名無しさん
10/02/01 21:34:01
[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できないので、指針だけでも
よろしくお願いします
419:デフォルトの名無しさん
10/02/01 21:36:53
>>417
なるほど、bash でも Ctrl-D できれいに終了しますね。
これは改良の余地がありました。アドバイスありがとうございます。
コード中のgetline() (とmain())を書き直しました。
URLリンク(codepad.org)
420:デフォルトの名無しさん
10/02/02 00:56:53
[1] 授業単元:プログラミング実践
[2] 問題文
アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして90°回転した結果を出力せよ。
(図)affin.txt
00000
00000
11111
00000
00000
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名: gcc
[3.3] 言語:C++
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません
色々試しましたが、うまくいきませんでした。
よろしくお願いします。
421:409
10/02/02 00:59:25
すみません。
>>414の問題なんですがこちらの写し間違いみたいですので
結構です。取り敢えず今回はお願いを取り消させてください。
もういちど確かめてお願いするかもしれません。
422:418
10/02/02 14:40:57
>>418
の宿題のほう一部SQLが間違ったようですので
修正しました。まだ間違いがあるかもしれませんが。
注意事項も入れ忘れてましたので、いれました.
改めて依頼させて頂きます。
[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できてないので、指針だけでも
よろしくお願いします
423:デフォルトの名無しさん
10/02/02 15:56:42
[1] 授業単元:DirectX研究
[2] 問題文(含コード&リンク):
サイコロを転がして目を決める。
・テーブルとサイコロを作成する。
・キー操作でサイコロを投げ下ろすように振る。
・落下してきて,1つの目を上にして止まる。
・何度でも遊べる
◎テーブルにサイコロの影がある
◎回転しながら落下してくる
◎自由な方向から見ることができる
◎テーブルの上でサイコロは跳ね,転がる。
◎サイコロとして正しい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
[3.3] 言語:C++
[4] 期限: 2月10日まで
[5] よろしくお願いいたします。
424:デフォルトの名無しさん
10/02/02 16:51:53
>>420
どのように試したの?
>>421
素朴だが10!x10!の組み合わせ最適化問題
この手には一般論は無いだろから、奇麗なCプロ
グラム一つに纏めるという発想が頭にあると困難かと.
(いろいろ「補助手段」を開発しているうちに
別の手段で偶然、解けてしまって目的自体が大
きく喪失してしまう危険性がこの手の問題に
はつきまとう)
てか宿題としてC言語限定というのは不適当
>>422
SQLをわかる奴は少ないとオモ
425:デフォルトの名無しさん
10/02/02 16:59:09
SQL文はわかるが、プログラムに組み込めといわれると・・・
426:デフォルトの名無しさん
10/02/02 17:06:40
>>422
RDBMSには何を使うの?
コネクションを張ってSQL文を投げるのには何のライブラリ使うの?自作するの?
427:デフォルトの名無しさん
10/02/02 17:09:14
SQL文を組み込むんじゃなくて、SQLで書かれた
抽象的な処理仕様に基づいて実装しろってことじゃ?
SQL鯖とかが出てなかった昔は結構この手の奴あった
常識的にこの手の奴ではテーブル配列自体は勝手に
ソート出来なかったり項目を拡張してはならなかったり
とか色々とウルサイし、処理速度向上の為に細かい
最適化が要求されてメンドイんで俺はパス
428:デフォルトの名無しさん
10/02/02 17:15:17
>>427
そういう意味か。それは面倒だ。
429:デフォルトの名無しさん
10/02/02 17:21:16
>>427
問題文の URLリンク(kansai2channeler.hp.infoseek.co.jp)
前半: 固定項で項目の拡張無しの配列
後半:
解釈1) 題中のSQL文を与えたとして得られるであろう結果 と 同じ結果が得られるような関数を実装せよ
(→ 関数実装時 SQL構文を解釈する必要は全く無い。 同じ結果を求めるコードを直接記述してね)
解釈2) 題中のSQL文を渡して結果が得られるような 関数を実装せよ
(→ 関数実装時 SQL構文を解釈する必要が出てくる) ((題中に出てこない SQL文に関してはスルーの方向で))
こう読み取れるっぽいけど… …俺 SQL文わからんのでパス
430:デフォルトの名無しさん
10/02/02 17:40:19
>>429
どこの大学か知らんが、宿題として汎用SQLパーサーを
作れって奴出す教師も、それを真に受ける奴もちょっと
って感じ。
てか市販のRDBMSのSQLパーサーの性能は相当に
高くなってきてるけど、ちょっと大きなデータ+複雑なSQLに
なると手動で作ったCPG+CSVデータにパフォーマンスで
大敗することも多い。
酷いSQLだったり酷い構造のテーブルが多いってことも
多いけど
431:デフォルトの名無しさん
10/02/02 17:57:49
>>429
とても動きそうにないコードだけど、これは 解釈1)の方だね。
スレリンク(tech板:569番)
432:429
10/02/02 18:09:32
>>430
俺はそこらへんの事情を全く知らないんで勘弁して。
問題文の意図が分からなかったんで >>429 と…
433:デフォルトの名無しさん
10/02/02 19:50:16
あんだけgroup byがネストしてたらやる気失う。
434:429
10/02/03 00:28:45
>>431
とりあえずありがとうございます。
がprologではなくあくまでもCの宿題なので、
参考のみにさせて頂きます。
ちなみにそのスレに私は書き込んでいません。
もし誰かが転記したのをやって頂いてここに貼りなおして
下さったというのであれば結果的に相当無駄なお手数を
おかけしたことになります。
構造体をほぼSQLのまま定義しその構造体の配列にデータ
が詰め込まれた状態でlist関数が呼び出されるという前提で、
SQLが記述しているセレクト処理で得られるレコードを
そのままコンソール出力すれば良いと
同輩が言ってたのですがやっぱり皆様が御指摘の
通りめんどうなコードになるんでしょうか?
(ちなみにSQL自体が何をする処理なのか
今ひとつつかめてません。おわかりの方が
いらしゃいましたら教えて頂けると嬉しいです)
DB板というのがあるそうでそちらのほうでも
聞いてみます。
435:デフォルトの名無しさん
10/02/03 00:29:10
どなたか317を作ってもらえませんか?
私の力では手におえません。。。
436:418
10/02/03 00:30:16
レス番号のほう間違えました。
>>418=>>422=>>434でした。
437:デフォルトの名無しさん
10/02/03 00:42:08
配列 int out[3]={1,5,3};
の配列の各要素の大小関係を比べるプログラムをfor文で作りたんですけど
どうすればいいですか?
438:デフォルトの名無しさん
10/02/03 00:42:52
質問は「俺に聞け」スレで
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4948日前に更新/264 KB
担当:undef