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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

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

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

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

前スレ
C/C++の宿題片付けます 128代目
http://pc12.2ch.net/test/read.cgi/tech/1245853701/
2デフォルトの名無しさん:2009/07/13(月) 17:49:16
[1] 授業単元:
コンパイラの構成
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9696.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C(yacc、lex)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
7月30日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スレが新しくなったので再度依頼させていただきます。
lexとyaccの問題です。よろしくお願いします。
今日中にできそうにないので期限を延ばして再提出することにしました。
3tac:2009/07/13(月) 19:48:08
【質問テンプレ】
[1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「PC間でソケットの接続確立とデータを送信を行うプログラム」
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2009年7月22日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。

大学のゼミの課題なんですが、C++は今までに使ったことがなくさっぱりわかりません。
ネットワークプログラミングも初めてなため、一切わかりません。

まずは、C++でウインドウを開き、チャットの画面を作り、書き込み欄に書き込むと
その書き込まれた文字列がウインドウに表示されるプログラムから教えていただけると嬉しいです。

期限は来週ですが、出来るだけ早い完成が望ましいので宜しくお願いします。
4デフォルトの名無しさん:2009/07/13(月) 20:14:29
バレが怖いのでメールでやり取りしたいのですが、
もしそれでも片付けてくれる人がいらっしゃればお願いできないでしょうか?
5デフォルトの名無しさん:2009/07/13(月) 20:15:24
問題文を見るとチャットである必要がないし、やるにしてもCUIでいいと思うんだが。
ゼミってことは通信技術方面の研究室なんでしょ?それなら今後を考えて自分でやったほうがいいと思うよ。
初心者でも分かる参考書を紹介しとくから、勉強してみてダメだったらもう一回来てみたら?
http://www.amazon.co.jp/dp/4797334797
あとCは使えるんだよね?Cが使えることは大前提だから。
6デフォルトの名無しさん:2009/07/13(月) 20:17:38
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
下に示すように,5 人の学生の体重を読み込んで、最も重い人と最も軽い人の体重を表示す
るプログラムを作成せよ.なお、体重はdouble 型で表すものとする。
体重を入力してください
1 番: 52.5
2 番: 64.0
3 番: 58.3
4 番: 67.4
5 番: 62.0
最も重い人の体重: 67.4
最も軽い人の体重: 52.5
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 7月14日まで
[5] その他の制限:
7デフォルトの名無しさん:2009/07/13(月) 20:56:54
>>3
mixiのほうはもういいの?
8デフォルトの名無しさん:2009/07/13(月) 20:59:23
>6

#include <stdio.h>
#define NUM (5)

int main() {
double heavier,lighter,input;

for(int i = 0 ; i < NUM ; i++){
printf("%d番:",i+1);
scanf("%lf",&input);
if(i == 0){
heavier = lighter = input;
continue;
}
if(heavier < input){
heavier = input;
}
if(lighter > input){
lighter = input;
}
}
printf("最も軽い人の体重:%g\n",lighter);
printf("最も重い人の体重:%g\n",heavier);
return 0;
}
9前スレ949:2009/07/13(月) 21:12:28
前スレの>>963さん、>>972さんありがとうございます!おかげで助かりました。
10デフォルトの名無しさん:2009/07/13(月) 21:14:23
>>4
メールアドレスは?
11tac:2009/07/13(月) 21:28:03
>>5
完成系のイメージはチャットのような事ができるプログラムを使って、
 実際の講義中にそのプログラムを使い、学生に対して使用した場合
 どのような効果が得られるかを検証することなので、
 チャットでなくても、インスタントメッセンジャー?!でも良いです。
 
 一応、情報系の学部ですが、
 研究テーマは「チャットのようなモノを使った時の学生の学習効果」です。
 なので、プログラミングに対して全く無知なので、力を貸していただけないでしょうか??
12デフォルトの名無しさん:2009/07/13(月) 21:32:57
期限前の問題(全て前スレ)
>> 988-989 (1)3つ以上の整数の階層的プログラミングを行うプログラムを作成せよ。 7月23日
>> 988-989 (2)3つ以上の2次元ベクトルの階層的プログラミングを行うプログラムを作成せよ。 7月23日
>> 964(9736) 英単語とその出現回数を登録する二分探索木を書け。 7月14日10:00
>> 962(dotup.org231968) コマンドラインで指定した2つのファイルの内容を交換する。 7月14日
>> 962(dotup.org231968) ライブラリ関数qsortを使って乱数のソートを行います。 7月14日
>> 847 LLLアルゴリズムをCでプログラミング 7月17日
>> 820 3入力のクワイン・マクラスキー法のプログラム 7月13日
>> 799 指定された点x,yを含む指定された境界色C2で囲まれた平面領域を指定された色C1で塗りつぶす 7月17日 正午
>> 791(9708,9709,DLL_BMP_C) 歌詞を暗号鍵Kとして読み込み、画像 NewYear2003.bmpを暗号化した画像Cを生成する。 7月15日
>> 772 4次のルンゲ−クッタ法を用いて連立微分方程式を解く 7月28日
13デフォルトの名無しさん:2009/07/13(月) 21:37:45
>>11
学習効果の調査ならc++である必要はあるの?
あと都合のいいコメントだけレス返すのやめたほうがいいですよ
14tac:2009/07/13(月) 21:41:21
>>11
 C++は所属しているゼミの先生の指定があったので、強制的に決定してしまいました。
 都合のいいコメントだけにレスを返したつもりはなかったんですが、
 勘違いされたなら、申し訳ありませんでした。
15デフォルトの名無しさん:2009/07/13(月) 21:42:54
>>11
それがホントならフリーのチャットPG漁るべき。
C系言語でソケットから作ろうつーのは迂遠過ぎる。
(C系言語が得意で漁るより作るほうが早いって人は別ね)
16デフォルトの名無しさん:2009/07/13(月) 21:48:45
勘違いにするならいいや
17デフォルトの名無しさん:2009/07/13(月) 21:49:02
前スレ >> 988 (1)3つ以上の整数の階層的クラスタリングを行うプログラムを作成せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9740.txt

実行時間がN*N*Nに比例する単純なやつ
ぐぐったらN*N*log(N)のアルゴリズムがあるらしいので、
こういうの好きな人は俺のにかまわず別回答どうぞ
18tac:2009/07/13(月) 21:50:14
>11>>15
  チャットPGっていうのは、簡易型のチャットってことですか?
 「漁る」の意味がいまいち理解できなかったんですが、どういう意味でしょうか?
 
19デフォルトの名無しさん:2009/07/13(月) 21:55:55
>>17
やべ、一部ミスがあったので修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9741.txt
20デフォルトの名無しさん:2009/07/13(月) 22:01:31
>>18
15じゃないが漁るというのはチャットプログラムを作るのではなく、
既にあり公開されているものを持ってきて利用した方が良いのでは?
ということだろう
21デフォルトの名無しさん:2009/07/13(月) 22:06:16
>>18
漁るってのはどこからか適当なソースコード見つけてきてパクってくるってこと。
だいたい「チャットのようなモノを使った時の学生の学習効果」を調べるだけなら
わざわざ自分でチャットプログラム作る必要がないし。
チャットをする方法はjavascriptのチャットルーム使うとか、IRCクライアントを使うとか方法は
いくらでもあるからその研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。
22デフォルトの名無しさん:2009/07/13(月) 22:27:12
>>20 >>21
15ですが、その通りです。フォローどもでした。
23前スレ794:2009/07/13(月) 22:49:35
本当は土曜日にもう一度お願いし直したかったのですが、しんどくて出来ませんでした
今日も休んだのですがメールで先生に連絡したら前スレの>>997のように少し待ってくれるみたいです
ギャグではないので改めて宜しくお願いします
24 ◆jG/Re6aTC. :2009/07/13(月) 22:53:14
>>17
>>19さん

ありがとうございます!!!
提出するだけでなく、17,19さんみたいにソースを書けるように勉強させてもらいます^^
25デフォルトの名無しさん:2009/07/13(月) 23:11:48
>>23
前スレ794は解答者です
26デフォルトの名無しさん:2009/07/13(月) 23:15:58
>>21
>その研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。

教授の真意を聞いたほうがいい。
本当の研究としてだけ(学会論文目指して)やってるならそうだが、
そうじゃないなら、学生の勉強のためにやらせてる可能性もある。

それに、調べるだけならチャットを作る必要はないんだが、
「改良」したいなら、学生がちゃんとソースを理解していることが必要だ。
それでも、C++を選択する理由としては弱いかもしれないが。
27デフォルトの名無しさん:2009/07/13(月) 23:17:48
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
No.9742に前スレの>>820クワイン・マクラスキー法書いたよ。
やり方分からなくてこうなったけど。
28前スレ749:2009/07/13(月) 23:18:17
すいません、ぼけていました
正しくは749ですね
>>25さん指摘ありがとうございました
29デフォルトの名無しさん:2009/07/13(月) 23:20:18
>>11
全くの無知な学生にこの課題を出すなら、パワハラの可能性があるのでしかるべきところに相談するといいんじゃね?
30デフォルトの名無しさん:2009/07/13(月) 23:28:31
>>28
>配列を用いた計算機のプログラム
の意味がよく分からない
31デフォルトの名無しさん:2009/07/13(月) 23:39:38
>>28
丸一週間寝込んだってこと?お大事に。
32デフォルトの名無しさん:2009/07/14(火) 00:42:12
#include<iostream>
using namespace std;

int main(){
int a;

cout << "数値を入力してください\n";
cin >> a;

if( a > 30)
cout <<"31以上ですね\n";
}
else if(a<10){
cout <<"10未満ですね\n";
}
else {
cout <<"30以下で10以上ですね\n";
}
return 0;
}



これが例文なんですが、

ある整数変数をキーボードから入力し、その数値が9以下なら『入力した値は1桁です』と表示させて、10以上、99以下の場合は、『入力した値は2桁です』と表示させ、
100以上なら『入力した値は3桁以上です』と表示するプログラムを作成せよ


誰かこれ教えてくれませんか?
33デフォルトの名無しさん:2009/07/14(火) 00:47:47
>>32
いいよ
34デフォルトの名無しさん:2009/07/14(火) 00:48:36
>>32

#include<iostream>
using namespace std;

int main(){
int a;

cout << "数値を入力してください\n";
cin >> a;

if( a <= 9)
cout <<"入力した値は1桁です\n";
}
else if(a <= 99){
cout <<"入力した値は2桁です\n";
}
else {
cout <<"入力した値は3桁以上です\n";
}
return 0;
}
35デフォルトの名無しさん:2009/07/14(火) 00:52:31
>>32
その例があって、その問題が答えられないって小学生未満?
36デフォルトの名無しさん:2009/07/14(火) 01:00:31
>>32
>>1嫁といいたいところだがやさしい俺様は説いてあげるよ

#include <iostream>
#define DEBUG
using namespace std;

void hoge(int num){
if(num <= 9) cout << "入力した値は1桁です" << endl;
else if(num <= 99) cout << "入力した値は2桁です" << endl;
else cout << "入力した値は3桁以上です" << endl;
}

int main()
{
int num;

cin >> num;
hoge(num);

#ifdef DEBUG
cout << "num に負の数を入れてみる" << endl;
num = -100;
hoge(num);
cout << "規定外の動作だけど見なかったことにしよう!" << endl;
#endif

return 0;
}

>>35
質問の仕方からしてガキでしょ
37デフォルトの名無しさん:2009/07/14(火) 01:02:24
"入力した値は1桁です"と出力せよであって、入力した値が1桁の場合に
そのように出力する問題ではないのだよ
-100は9以下なので、"入力した値は1桁です"と出力することは完全に仕様通り。
38デフォルトの名無しさん:2009/07/14(火) 01:07:48
おっと失礼。規定外という表現が誤りだった。確かに完全に仕様通りだよ。
ただその仕様どうなのよってことが言いたかったの。
39デフォルトの名無しさん:2009/07/14(火) 01:09:06
ありがとうございました
変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる

文字変数mの中身が'a'ならば、『aが格納されています』と表示させて、'a'でないならば『'a'でない文字が格納されています』と表示させたあと、変数bとcを使った『b=b+c』を計算する。

変数aが、変数bより小さい場合には、『aはbより小さいです』と表示し、変数bより大きい場合には、『aはbより大きいです』と表示し、変数bと等しい場合には、『aとbは等しいです』と表示する

先ほどの例を踏まえて誰かこれ教えてくれませんか?
40デフォルトの名無しさん:2009/07/14(火) 01:10:25
9以下だった場合は「今日も暑いですね」と出力するのと同じように考えればいいよ
出力する文字列なんて下っ端には関係ないんです
…もちろんネタだよ
41デフォルトの名無しさん:2009/07/14(火) 01:11:08
おまwww
先ほどの例を参考に自分で考えるという選択肢はなしかよwww
42デフォルトの名無しさん:2009/07/14(火) 01:14:52
でもお礼を言えるっていうのは良い事だよ、うん。
43デフォルトの名無しさん:2009/07/14(火) 01:32:52
なんか前スレで見たような気がするな
44デフォルトの名無しさん:2009/07/14(火) 01:44:15
>>39
>変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる
main(a,b){a+b<b*2&&puts("aはbより小さいです");}

>文字変数mの中身が'a'ならば、『aが格納されています』と表示させて、'a'でないならば『'a'でない文字が格納されています』と表示させたあと、変数bとcを使った『b=b+c』を計算する。
main(m){printf("%sが格納されています",m==97?"a":"'a'でない文字");}

>変数aが、変数bより小さい場合には、『aはbより小さいです』と表示し、変数bより大きい場合には、『aはbより大きいです』と表示し、変数bと等しい場合には、『aとbは等しいです』と表示する
main(a,b){a<b&&puts("aはbより小さいです")||a>b&&puts("aはbより大きいです")||puts("aとbは等しいです");}

久しぶりにショートコーディングしてみるぜ!
C++指定無いからこれでいいよね?
あ、もちろん先ほどの礼を踏まえた回答だよ?
これでキミはヒーローだっ!!
45デフォルトの名無しさん:2009/07/14(火) 02:15:38
>>44 コンパイル忘れてるよ。
46デフォルトの名無しさん:2009/07/14(火) 02:32:37
1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「音声をマイクを使って入力し、リアルタイムでスピーカーから出力する」
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語:C言語
[4] 期限: 2009年7月20日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。


ttp://homepage3.nifty.com/rio_i/lab/oss/004mic.htm
このページを参考にしつつプログラムを書いていたのですが、
録音と再生を同時に行うところで行き詰まってしまいました。
このページにのってるプログラムに追加する形でどなたか教えていただけないでしょうか。
47デフォルトの名無しさん:2009/07/14(火) 12:06:02
前スレ>>970です。
エラーが起こってしまうので、どなたか修正していただけないでしょうか。
48デフォルトの名無しさん:2009/07/14(火) 12:16:24
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
主語、目的語、述部が入ったデータファイルを読み込み、それらをランダムに組み合わせて生成した短文を20個ファイルに出力するプログラムの作成。
短文の構文は必ず、「(主語)は、(目的語)(述部)。」となるようにする。

出力例:俺は、カレーが大好きだ。

データファイルは以下を使用すること。
主語: 俺 私 あなた 彼 彼女 先生 犬のポチ 猫のタマ ライオン その人 政治家 ネズミ
目的語: カレー ご飯 肉 授業 男 女 すごいもの アレ アンパン お金 
述部: が大好きだ が大嫌いだ を作った をなくした が欲しい に全力を尽くす を新しいものに交換した ?なにそれ美味いの? について深く考えた を捨てた に塩をふりかけた
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 2009年7月20日
49デフォルトの名無しさん:2009/07/14(火) 12:18:00
[1] 授業単元:プログラミング
[2] 問題文 2人の人の名前と年齢をキー入力し、同じ年なら「○○さんと××さんは同じ年です」、
そうでなければ「○○さんは××さんよりyy 歳年上です」と表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: borlandc++
 [3.3] 言語: C
[4] 期限: 今日の2時30分
[5] その他の制限: なし
よろしくお願いします
50>8:2009/07/14(火) 12:24:18
それ間違ってないか?
51デフォルトの名無しさん:2009/07/14(火) 12:24:27
>>47
エラーが出るというなら、コードとそのエラーを貼るべきだな。
でないとどこで何が起きているのかわからん。
52デフォルトの名無しさん:2009/07/14(火) 12:24:43
>>47
前スレ>>971の回答なら俺も試したがエラー出なかったぞ
自分の書いたソースをロダにうpすれ
53デフォルトの名無しさん:2009/07/14(火) 12:27:37
>>48
前スレ>>939に回答
5447:2009/07/14(火) 12:55:24
すみません。
入力が誤っていたみたいです。ありがとうございました。
55デフォルトの名無しさん:2009/07/14(火) 12:58:23
前スレの>>772です。スレが変わったのでもう一度貼っておきます。

[1] 授業単元: 4次のルンゲ−クッタ法を用いて連立微分方程式を解く
[2] 問題文:システムの状態x = (x, y, z) が、以下の連立微分方程式に従う場合の挙動をシミュレーション
する.
dx/dt= −y − z
dy/dt= x + ay
dz/dt= b + (x − c)z
【課題1】4 次のルンゲ-クッタ法を用いて上記方程式を数値的に解くプログラムreport.c を完
成させよ.report.c には3 つの関数が定義されている.ルンゲ-クッタ法を1 ステップ行う関数
rungekutta() は完成しているが、導関数を求める関数deriv() とプログラム全体を制御する関
数main() は不完全である.各関数に適切な実行文等を記述し、プログラムを実行できるよう完
成させよ.
【課題2】課題1で完成させたプログラムreport.c を用い、シミュレーションを実行する.シス
テムパラメータが
1. (a, b, c) = (1.0, 0.2, 1.0)
2. (a, b, c) = (1.0, 0.2, 8.0)
の2つの場合に、時刻t = 200.0 からt = 400.0 の間にx が位相空間に描く軌跡を図に表せ.シ
ミュレーションの時間刻みはdt = 0.02 とし、初期値x(0) = (x(0), y(0), z(0)) は適当な値を選ぶ
こと.またそれぞれの場合について、初期値をわずかに変化させた場合に軌跡がどのように変化
するかを、同様に図に表して比較せよ.
[3] 環境 Vine Linux
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:2009年7月28日
[5] その他の制限:ソースは長いので3レスに分けて投稿します。ソースを以前ろだに貼ろうと思ったのですができませんでした。見づらくてすいません。

どうか宜しくお願いします。
56772:2009/07/14(火) 13:00:29
#include <stdio.h>
#include <math.h>
#define N 3 //システムの次元
double a = 0.20;
double b = 0.20;
double c = 10.0;
/* 導関数 */
/* x における dx/dt を求める */
void derivs(double t, double x[], double dxdt[])
{
/* dx/dt = f(x) */
dxdt[0] = ;
dxdt[1] = ;
dxdt[2] = ;
}
57772:2009/07/14(火) 13:01:33
>>56の続きです。
/* ルンゲクッタ法を1ステップ行う関数   */
/* x(t)=xin から x(t+h)=xout を求める */
void rungekutta(double xin[], double xout[], double t, double h)
{
int i;
double th2,h2,h6;
double dxdt0[N], dxdt1[N], dxdt2[N], dxdt3[N], xt[N];
double deriv(double, double [], double []);

h2=h*0.5;
h6=h/6.0;

th2=t+h2;
derivs(t,xin,dxdt0);
for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt0[i];

derivs(th2,xt,dxdt1);
for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt1[i];

derivs(th2,xt,dxdt2);
for(i=0;i<N;i++) xt[i] = xin[i] + h*dxdt2[i];

derivs(t+h,xt,dxdt3);
for(i=0;i<N;i++)
xout[i] = xin[i] + h6*(dxdt0[i]+2.0*(dxdt1[i]+dxdt2[i])+dxdt3[i]);
}
58772:2009/07/14(火) 13:02:34
>>57の続きです。
int main()
{
int i;
double t, tmax, dt;
double x[N], x_next[N];
FILE *fp;
void rungekutta(double [], double [], double, double);
/* 諸変数を初期化 */
tmax = ;
dt = ;
/* システムの状態を表すベクトルx(N次元)の初期化 */

/* 計算結果を書き出す為のファイルを開く */
fp = fopen("result.dat","w");
/* 時間tを刻み幅dtずつ増加させながら時間発展 */
for(t=0.0;t<tmax;t+=dt){

/* 時刻tとxの各要素をファイルに書き出す */
fprintf(fp,"%lf %lf %lf %lf\n ", t, x[0], x[1], x[2]);
/* xを更新 */
x +=
}
/* ファイルを閉じる */
fclose(fp);
return 0;
}
59デフォルトの名無しさん:2009/07/14(火) 13:05:38
うpろだが使えなかった人だっけ
はやくうpろだ使えるようになってくれよ
60デフォルトの名無しさん:2009/07/14(火) 13:08:27
すみません。学習意欲がないんで、うpろだの使い方とか覚えるの面倒くさいんです。
だからはやく宿題手伝ってください。
61デフォルトの名無しさん:2009/07/14(火) 13:37:26
>>50 いえいえ、合ってますよ。
>>60 ファイル名のところに直接ファイル名書いてる?、「参照..」ボタン押せ。
62デフォルトの名無しさん:2009/07/14(火) 13:39:18
>>61
60は本人じゃないだろw
このスレのみんなの心の声だ
63 ◆/91kCCQXBo :2009/07/14(火) 13:52:23
>>039 これは多分1、2、3を順次処理する問題なのだろう。
#include <iostream>
using namespace std;
int main(void) {
  int a, b, c;
  char m;
  cout<<"a:"; cin>>a;
  cout<<"b:"; cin>>b;
  cout<<"c:"; cin>>c;
  cout<<"m:"; cin>>m;

  if(a < b) /* - 1 - */
    cout<<"aはbより小さいです\n";
  else if(a > b)
    a = a + b;

  if( m == 'a' ) /* - 2 - */
    cout<<"'a'が格納されています\n";
  else
    cout<<"'a'でない文字が格納されています\n";
  b = b + c;

  cout<<"a="<<a<<endl;
  cout<<"b="<<b<<endl;
  if(a < b) /* - 3 - */
    cout<<"aはbより小さいです\n";
  else if(a > b)
    cout<<"aはbより大きいです\n";
  else
    cout<<"aとbは等しいです\n";
}
64デフォルトの名無しさん:2009/07/14(火) 13:56:51
>>2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9745.zip
キャストって、(int),(double)で良いんだよねぇ?
65 ◆/91kCCQXBo :2009/07/14(火) 15:00:08
>>049 2人の人の名前と年齢をキー入力
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/19
66デフォルトの名無しさん:2009/07/14(火) 15:27:58
>>55です。大変ご迷惑をおかけしました。ろだにソースを貼りましたのでよろしくお願いします。
67デフォルトの名無しさん:2009/07/14(火) 15:41:56
>>53 回答に誤りがあったみたいでプログラムが作動しません。

>>48 どなたかお願いします。
68デフォルトの名無しさん:2009/07/14(火) 15:59:17
>>67
前スレ>>939の回答だが試してみた。
で、コンパイルエラーが起こったけど修正すれば動いた。

>>srand((unsigned) time(NULL));/* 乱数系列の変更 */
上記の一文を変数宣言後の位置にいどうするか、コメントアウトすれば動く。

C99なら問題ないのだけど。 
69デフォルトの名無しさん:2009/07/14(火) 16:30:14
>>67
前回回答した者だけど、規格とかまで理解できてなかったゴメン・・・
>>68さんが言ってるように修正してみてほしい
コメントアウトすると乱数が一定になるからなるべく移動で解決する方が良さそう
あと、それでもエラーが出るようなら、エラーメッセージを貼り付けて欲しい
70デフォルトの名無しさん:2009/07/14(火) 17:26:39
>>48
データファイルが本当にそういう仕様だと信じて書いてみた。
入力ファイル名、出力ファイル名はそれぞれ input.txt output.txt ね。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9747.txt
71デフォルトの名無しさん:2009/07/14(火) 17:37:44
ノールなら130資源地しらみつぶしに攻撃したら100匹くらいやとってるとこあるからそれで完了
72デフォルトの名無しさん:2009/07/14(火) 18:37:04
[1] 授業単元:C言語
[2] 問題文:配列を用いた計算機のプログラムを作成してください。
計算は前から順に行われていく。
入力される数値の個数は最大でも20個としてください。

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

[4] 期限:2009年7月19日
[5] その他:特になし
自分も新スレになったので再貼りです
改めてよろしくおねがいします
73デフォルトの名無しさん:2009/07/14(火) 18:37:48
>>72
>配列を用いた計算機のプログラムを作成してください。
の具体例をくれ
74 ◆/91kCCQXBo :2009/07/14(火) 18:41:02
>>070 コンパイルして、テストはしていないみたい。
#define DELIMITER " \n" /* 半角文字 */

/* 主語の読み込み */
fgets(sbuff, BUFFSIZE, ifp);
s[0] = strtok(sbuff, DELIMITER);
for (i = 1; i < S; ++i) s[i] = strtok(NULL, DELIMITER);

/* 目的語の読み込み */
fgets(mbuff, BUFFSIZE, ifp);
m[0] = strtok(mbuff, DELIMITER);
for (i = 1; i < M; ++i) m[i] = strtok(NULL, DELIMITER);

/* 述部の読み込み */
fgets(jbuff, BUFFSIZE, ifp);
j[0] = strtok(jbuff, DELIMITER);
for (i = 1; i < J; ++i) j[i] = strtok(NULL, DELIMITER);
75デフォルトの名無しさん:2009/07/14(火) 19:39:08
>>72
問題文の意味が全く分からない
76デフォルトの名無しさん:2009/07/14(火) 19:42:05
>>72
・問題文は、出題されたまま全文を書いてください。
77デフォルトの名無しさん:2009/07/14(火) 20:25:48
>>64
はい!ほんとにありがとうございました。
助かりました
78デフォルトの名無しさん:2009/07/14(火) 20:28:38
適当にエスパーしたものを貼っておく
#include <stdio.h>
#define MAX 20
int main(void) {
int i;
double result;
double num[MAX];
char op[MAX];
printf("1 個目の数字 = "); scanf("%lf", &num[0]); getchar();
for (i = 1; i < MAX; i++) {
printf("%d 個目の演算子 = ", i);
if ((op[i] = getchar()) == EOF) break;
printf("%d 個目の数字 = ", i + 1); scanf("%lf", &num[i]); getchar();
}
result = num[0];
for (i = 1; i < MAX && op[i] != EOF; i++) {
switch (op[i]) {
case '+': result += num[i]; break;
case '-': result -= num[i]; break;
case '*': result *= num[i]; break;
case '/': result /= num[i]; break;
default: printf("error\n"); return 1;
}
}
printf("ans = %f\n", result);
return 0;
}
79デフォルトの名無しさん:2009/07/14(火) 20:34:06
前スレ962をお願いします
80デフォルトの名無しさん:2009/07/14(火) 20:35:20
>>79
問題張りなおして
8179:2009/07/14(火) 20:44:12
82デフォルトの名無しさん:2009/07/14(火) 20:47:21
課題なんだが。。。。

#include<stdio.h>
void kakugyou(void);
int hen,x,y;
void main(void)
{
printf("数字(2〜9)を入力してください:");
scanf("%d",&hen);
while(x<=hen)
{
kakugyou();
x++;
}
83デフォルトの名無しさん:2009/07/14(火) 20:48:42
↑の続き
x=hen-1;
while(1<=x)
{
kakugyou();
x=x-1;
}
}
void kakugyou(void)
{
y=1;
while(y<=x)
{
printf("*");
y=y+1;
}
printf("\n");
}
これだと、アスタリスクが旗みたいな形になるけど、これを基本にしてダイヤ型と六角形、星形の結果を出すにはどうしたらいいのだろうか。
誰か教えてください。
84デフォルトの名無しさん:2009/07/14(火) 20:51:56
ゆとり増えすぎだろこのスレマジで・・
85デフォルトの名無しさん:2009/07/14(火) 20:55:45
>星形の結果を出すにはどうしたらいいのだろうか
ビルから飛び降りればいいんじゃないかな?
86デフォルトの名無しさん:2009/07/14(火) 21:07:07
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
http://down11.ddo.jp/uploader/download/1247572884.rar/attatch
[3] 環境
 [3.1] OS: (WindowsVista)
 [3.2] textpad
 [3.3] 言語: (C++)
[4] 期限: ([2009年07月15日23:59まで)

独自のプログラムの書き方なので、とても困っています。
色々と試してみたのですが、自分の力だけでは出来そうにないため相談しました。
取り扱い説明書やプログラムは001.rarに入れておきました。
緊急を要しますので、何方かどうかよろしくお願いします。
ファイルサイズが大きいため違うアップローダーをお借りしました。
パスワードは以下になります。

pass:C/C++
87デフォルトの名無しさん:2009/07/14(火) 21:21:18
>>81
課題1
#include <stdio.h>

int main(int argc, char **argv)
{
FILE *fp1, *fp2, *tfp;
int c;

if (argc != 3) return 1;

fp1 = fopen(argv[1], "r"); tfp = fopen("temp.txt", "w");
while ((c = fgetc(fp1)) != EOF) fputc(c, tfp);
fclose(fp1); fclose(tfp);

fp1 = fopen(argv[1], "w"); fp2 = fopen(argv[2], "r");
while ((c = fgetc(fp2)) != EOF) fputc(c, fp1);
fclose(fp1); fclose(fp2);

fp2 = fopen(argv[2], "w"); tfp = fopen("temp.txt", "r");
while ((c = fgetc(tfp)) != EOF) fputc(c, fp2);
fclose(fp2); fclose(tfp);

return 0;
}
88デフォルトの名無しさん:2009/07/14(火) 21:32:10
>>86 RAR駄目やっ。
Extracting from D:\My Documents\Cplus\Part129_086\001.rar
Extracting D:\My Documents\Cplus\Part129_086\tex.bmp
CRCエラー: D:\My Documents\Cplus\Part129_086\tex.bmp
89デフォルトの名無しさん:2009/07/14(火) 21:40:24
>>81 課題2
#include <stdio.h>
#include <stdlib.h>
#define N 10

int comp_i(const void *m, const void *n) { return *(int *)m - *(int *)n; }
int comp_d(const void *x, const void *y) { return *(double *)x - *(double *)y; }

int main(void)
{
int a[N];
double x[N];
int i;
srand(time(NULL));

for (i = 0; i < N; i++) { a[i] = rand() % 100; x[i] = (double)rand() / RAND_MAX; }

printf("整数1〜100の乱数を%d個発生しました\n", N);
for (i = 0; i < N; i++) printf("%7d", a[i]);
puts("\nソートすると");
qsort(a, N, sizeof(int), comp_i);
for (i = 0; i < N; i++) printf("%7d", a[i]);
puts("");

printf("実数[0, 1]の乱数を%d個発生しました\n");
for (i = 0; i < N; i++) printf("%7.3f", x[i]);
puts("\nソートすると");
qsort(x, N, sizeof(double), comp_d);
for (i = 0; i < N; i++) printf("%7.3f", x[i]);
puts("");
return 0;
}
90デフォルトの名無しさん:2009/07/14(火) 21:47:25
ごめん>>89は忘れて
91デフォルトの名無しさん:2009/07/14(火) 21:50:54
92デフォルトの名無しさん:2009/07/14(火) 21:51:50
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9749.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: ?
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他の制限: 特にありません。よろしくお願いします。
93デフォルトの名無しさん:2009/07/14(火) 21:57:24
>>88
zipになります。どうかよろしくお願いします。
http://down11.ddo.jp/uploader/download/1247576184.zip/attatch
94デフォルトの名無しさん:2009/07/14(火) 21:58:07
>>88
passは先ほどと同じですので
95デフォルトの名無しさん:2009/07/14(火) 21:59:38
>>92
(2)
#include <stdio.h>

int main(void)
{
int i, j;
i = 1;
while (i < 10) {
j = 1;
while (j < 10) printf("%3d", i * j++);
printf("\n");
i++;
}
return 0;
}
96デフォルトの名無しさん:2009/07/14(火) 22:26:39
>>55
課題1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9750.c

あと問題をアップロードしたら>>66だけじゃなくリンクも書いて
元のソースこれでいいんだね?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9746.c
97デフォルトの名無しさん:2009/07/14(火) 22:37:54
>>92
(1)
#include <stdio.h>

int main(void)
{
int f1, f2, f3, n;
printf("n = "); scanf("%d", &n);
if (n == 0) { printf("F(0) = 0\n"); return 0; }
if (n == 1) { printf("F(1) = 1\n"); return 0; }
f1 = 0; f2 = 1;
while (n >= 2) { f3 = f2 + f1; f1 = f2; f2 = f3; n--; }
printf("F(%d) = %d\n", n, f3);
return 0;
}
9879:2009/07/14(火) 23:01:46
>>90
ありがとうございます
99デフォルトの名無しさん:2009/07/15(水) 01:17:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9751.txt
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他:特になし
どうかよろしくお願いします。
100デフォルトの名無しさん:2009/07/15(水) 01:37:56
>>99
解答01: string.h
解答02: cc minitest0926A.c -o minitest0926A
解答03: 3.464102
解答04: s=r*r*3.142;
解答05: 25
解答06: ( (x)<5 ? 'c' : 'd' )
解答07: .9
解答08: p=3.141592654

環境依存あるかも。
101デフォルトの名無しさん:2009/07/15(水) 01:50:31
>>100
ありがとうございます
102デフォルトの名無しさん:2009/07/15(水) 02:32:03
[1] 授業単元:OS演習
[2] 問題文(含コード&リンク):
(1)pipe3.cを完成させて、親子プロセス間で交互にメッセ
  ージを交換するプログラムを作成せよ。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9752.txt

(2)共有バッファを用いて、子プロセスでメッセージを書き込
  み、親プロセスで読み出すプログラムを作成せよ。ただし、
  共有バッファは128バイトとし、その先頭には‘書き込み
  マーク’を付し、そのリセットは親プロセスが、セットは子
  プロセスが行うとせよ。

[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C言語
[4] 期限: 7/16
[5] その他の制限:特にないです、どうかよろしくお願いします
103デフォルトの名無しさん:2009/07/15(水) 03:05:57
【質問テンプレ】
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9753.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:  C
[4] 期限: 2009年 7月20日
[5] その他の制限: 特になし

よろしくお願いします
104デフォルトの名無しさん:2009/07/15(水) 03:06:34
ここすごく面白そうなスレだ
プログラミングの題材探しにすんげぇ助かるかもしれない
105デフォルトの名無しさん:2009/07/15(水) 03:08:39
>>104
利用料を徴収します
106デフォルトの名無しさん:2009/07/15(水) 03:23:11
最初はそう思うもんだ
がんばって技術向上のついでに単位取得を手伝ってあげるといい
107デフォルトの名無しさん:2009/07/15(水) 03:28:46
[1] 授業単元: デジタル信号処理
[2] 問題文(含コード&リンク): 2つのテキストファイル(double型)を読み込み、畳み込み和を計算し、別のファイルに出力せよ。
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:  C
[4] 期限: 2009年 7月16日
[5] その他の制限: よろしくお願いします。
108 ◆/91kCCQXBo :2009/07/15(水) 04:21:59
>>082 ダイヤ型と六角形、星形
Part127>>953(9534) 問題 >>998(CODE)>>999(CODE)>>次014(9548) 「ピラミッドアート」ダイヤ、八角形、星型
Part128>>333(9630)>>342(9635)>>495 問題 >>440(9652) '*'を一辺とする六角形と星形を描画する
Part128>>898 問題 >>915(>>014(9548)) アスタリスクがダイヤ形になるプログラム

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9534.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9548.c
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9652.c
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9630.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9635.txt
109デフォルトの名無しさん:2009/07/15(水) 09:13:24
[1] 授業単元: OS
[2] 問題文(含コード&リンク):
共有バッファを用いて、子プロセスでメッセージを書き込み、親プロセスで読み出すプログラムを作成せよ。
ただし、共有バッファは128バイトとし
先頭には‘書き込みマーク’を付し、そのリセットは親プロセスが、セットは子プロセスが行うとせよ。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:7月17日
[5] その他の制限:なし

よろしくお願いします。
110デフォルトの名無しさん:2009/07/15(水) 09:37:44
1] 授業単元:数値情報解析
[2] 問題文:ニュートン法により代数方程式を解くプログラムを作りなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio
 [3.3] 言語:C
[4] 期限:2009年7月22日
[5]少しでも易しい表現にしていただくようよろしくお願い致します。
 あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて
 いただけるとありがたいです。
111デフォルトの名無しさん:2009/07/15(水) 09:58:44
maximaだとこれだけなんだけどね
t(f):=block([fd,h],fd:diff(f(x),x),h:x-f(x)/fd,return(rat(h)))$t(f);
代数方程式に制限はないの?普通の多項式に限るとか
それか、代数方程式とその微分が与えられている前提なら
話は簡単だけども
多項式の微分を自分で作れって問題ならめんどいね
112デフォルトの名無しさん:2009/07/15(水) 10:36:10
>>110
方程式と、方程式の微分結果は、ソースに直接書くの?
それとも、入力された方程式を解くの?
それによって、難易度がかなり違うんだけども。
11372:2009/07/15(水) 11:26:38
問題文はこれで全部です
作成例の実行ファイルを昨日貰ったので家に帰ったらアップします
114tac:2009/07/15(水) 16:06:17
   先日、このスレッドで質問を書かせていただいたんですが、
  多くの方から、意見をいただき、とても参考になりました。
  今日、ゼミがあったので教授にその話を言うと、
  自分で1から開発せずに、オープンソースを探し、
  もし足りなければ、そこから、改良を加えるという形でOKがでました。
  
   なので、今回はCもしくはC++言語で、
  ソケット間通信を可能にするオープンソースを自分自身でも探してみますが、
  お勧めのソケット間通信のオープンソースのサイトやURLを教えていただけないでしょうか?
  
  
【質問テンプレ】
[1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「PC間でソケットの接続確立とデータを送信を行うプログラム」の
    オープンソースを探す。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C もしくは C++ 言語
[4] 期限: 2009年7月22日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。


  みなさんのお勧めのインスタントメッセンジャーもしくはチャットを
 CもしくはC++言語で書かれたオープンソースを教えて下さい。

  また、お勧めの C または C++ 言語のオープンソースが置いてあるサイトを紹介してください。

  宜しくお願いします。
115デフォルトの名無しさん:2009/07/15(水) 16:49:04
FreeBSD(オープンソース)にtalk/talkdというのがあります。
116デフォルトの名無しさん:2009/07/15(水) 17:19:47
>>114
mixiであんたが消したトピに答えがあったんだが見てないのか?
117>>55:2009/07/15(水) 17:36:32
>>96 すみませんでした。ありがとうございます。
118デフォルトの名無しさん:2009/07/15(水) 18:32:28
>>114
IPMessanger
http://www.ipmsg.org/
ソフト自体のソースも公開されてるし、
通信部分のみのDLLなんかもあるから、充分なんじゃない?
119デフォルトの名無しさん:2009/07/15(水) 18:36:46
[1] 授業単元:基礎プログラミング
[2] 問題文:

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9754.zip

[3] 環境
 [3.1] OS: vista
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C++
[4] 期限:2009年7月17日
[5] その他:特になし

よろしくおねがいします
120デフォルトの名無しさん:2009/07/15(水) 18:56:31
>>119
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int check(const char *mailaddress)
{
const char *p;
int at_count=0;

if(!isalpha(mailaddress[0])) return 0;
if(!isalpha(mailaddress[strlen(mailaddress)-1])) return 0;

for(p=mailaddress;*p;p++)
{
if(!isalnum(*p) && !strchr("@-_.", *p)) return 0;
if(*p=='@') at_count++;
}
return (at_count==1);
}

int main(void)
{
char str[21];

printf("メールアドレス =>");
scanf("%20s", str);

if(check(str)) printf("OK\n");
else printf("ERROR\n");
return 0;
}
121obama ◆dXPOZaWDCk :2009/07/15(水) 19:13:28
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9755.txt
上のプログラムがなぜ図のような座標列を生成したのかを説明せよ
図;http://g.pic.to/17jcdy
ヒント1;関数draw_polygon()中のif(r>xxx)において、数値xxxをいろいろと変えること
数値xxxを大きくしていくと図が徐々に単純になっていく、単純な図から考えを進めること

ヒント2;自分がパソコンになったつもりでプログラムを順に追っていくこと。
その際呼び出した側のdraw_polygon()と呼び出された側のdraw_polygon()を区別して考えること
(前者と後者のローカル変数の区別をわすれないこと)

[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: (C
[4] 期限: ([09年07月17日13:00まで]
[5] その他の制限:
122obama ◆dXPOZaWDCk :2009/07/15(水) 19:14:55
>>121
お願いします
123デフォルトの名無しさん:2009/07/15(水) 19:29:56
どなたか>>107お願いします
124デフォルトの名無しさん :2009/07/15(水) 19:35:45
125デフォルトの名無しさん:2009/07/15(水) 19:44:51
[1] 授業単元:ゲームプログラミング入門
[2] 問題文(含コード&リンク):
以下のゲームの中からどれか二つを選んで作成せよ。
・マインスイーパー
・七並べ
・ブラックジャック
・ポーカー
カードゲームを作成する場合、同じカードが2枚存在してはならない。
ジョーカーは無いものとする。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [2009年7月17日12:00まで]

出来れば7並べかマインスイーパーをお願いします。
126デフォルトの名無しさん:2009/07/15(水) 20:18:28
[1] 授業単元:基礎c++
[2] 問題文(含コード&リンク):
一次元配列を用いて、Aをn次(nは100以下)の正方行列としたときの
対称行列の成分の添字番号、行成分を格納し表示せよ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: visual c++
 [3.3] 言語: c++
[4] 期限: 2009年07/17まで
[5] その他の制限: 一次元配列で考える。

よろしくお願いします。
127デフォルトの名無しさん:2009/07/15(水) 20:28:13
>>126
だめだ、10回読み直したけどわからん。
だれか分かりやすく読み下してくれ・・・
128デフォルトの名無しさん:2009/07/15(水) 20:43:06
n次対称行列の格納に必要な配列の長さはn(n+1)/2
配列名をMとする時
i行j列成分は(i>=j)の時 M[ i*(i-1)/2+j-1 ] (i<j)の時 j,i成分と同じ
乱数で適当に格納した後表示する。
これでどーだ?
129デフォルトの名無しさん:2009/07/15(水) 20:47:13
>>128
先に書かれたー。せっかくなので俺がいま書いた解釈も…

N次正方行列をあらわすには普通N*N個の要素を必要とするが
それが対称行列ならN*(N-1)/2個の要素ですむ
それでは、N次の対称行列をN*(N-1)/2個の要素を持つ一次元配列に
格納し、取り出すプログラムを作成せよ
130デフォルトの名無しさん:2009/07/15(水) 20:48:43
>>128,129
ありがとうございます。
じっくり考えたいと思います。
13172:2009/07/15(水) 21:05:30
http://www.rupan.net/uploader/download/1247659238.zip
http://www.rupan.net/uploader/download/1247658809.zip
参考例と作成例をうpしました
参考例のほうはソースと実行ファイル共にありです
作成例のほうは実行ファイルだけになります
132デフォルトの名無しさん:2009/07/15(水) 21:26:34
>>128-129
なるほど
「添字番号、行成分」なるなにものかを何とか数値化して配列に入れる方向で考えてた。頭堅いのは駄目だな
その方向で行くとして、出力は1次元配列の構造そのままがいいんだろうか、行列っぽくするべきだろうか
なんとなく後者かなと思ったが
133obamaさんへ:2009/07/15(水) 21:29:22
>>121
図を右上から左下、左上から右下の二本の線でバツに区切ります。
すると4つの同じような図形の菱形になります。
その一つを見るとさらに同じように4つの菱形に区切れます。
部分が全体を含んでいます。
そのように繰り返し的に同じ図形が現れるのをフラクタル図形といいます。
プログラムは4つの点を描き、中心位置をずらして
大きさを小さくしながら再帰的に同じ形を描いていっています。
134デフォルトの名無しさん:2009/07/15(水) 22:07:23
135デフォルトの名無しさん:2009/07/15(水) 22:22:25
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9757.txtのデータを取り込み、そこから最大値、最小値、データ個数、平均値を求めるプログラムを作成せよ
ただし最大値、最小値、データ個数、平均値は引数にポインタを用いて値を返すようにプログラムを作れ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 7月16日17時
[5]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9757.txtのファイル名はtensu.txtでお願いします
なるべく簡単なものでおねがいします
13672:2009/07/15(水) 22:40:50
うお、安価なかったので気づきませんでした
>>131さんとそれを教えてくれた>>134さんありがとうございました
137デフォルトの名無しさん:2009/07/15(水) 22:57:39
>>135
#include <stdio.h>

void func(int *max, int *min, int *num, double *ave)
{
int a, n;
FILE *fp = fopen("tensu.txt", "r");
if (fp == NULL) { fprintf(stderr, "file open error."); exit(1); }

if (fscanf(fp, "%d", &a) == EOF) { *num = 0; return; }
*max = *min = *ave = a;
*num = 1;
while (fscanf(fp, "%d", &a) != EOF) { if (*max < a) *max = a; if (*min > a) *min = a; *ave += a; (*num)++; }
*ave /= *num;
fclose(fp);
}

int main(void)
{
int max, min, num;
double ave;
func(&max, &min, &num, &ave);
printf("最大値 = %d, 最小値 = %d, データ個数 = %d, 平均値 = %f\n", max, min, num, ave);
return 0;
}
138デフォルトの名無しさん:2009/07/15(水) 22:59:39
[1] 授業単元: Linux/C
[2] 問題文(含コード&リンク):
標準入力からの入力を元に演算、結果を標準出力に出力するプログラムがあります。
---
#include <stdio.h>
#include <stdlib.h>

main(){
char c[BUFSIZ];
fputs("input:",stderr); fgets(c,BUFSIZ,stdin);
for(int i=0;i<atoi(c);i++) fprintf(stdout, "%03d\n",i);
}
---

これを以下のように実行し、例えば100を入力しても、エコーバックが画面表示されません。
$ a.out | more
input:000 ←入力内容はエコーバックされず、最初の出力結果が表示される
001

022
--More--

入力内容をエコーバックするようにプログラムを修正、または作り直して下さい。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C/C++
[4] 期限: 無期限
[5] その他の制限:なし
139デフォルトの名無しさん:2009/07/15(水) 23:10:28
>>137
ありがとうございました
140デフォルトの名無しさん:2009/07/15(水) 23:45:12
a.out | more

a.out
にする

あと、パスに.を入れるのはよくない
141 ◆/91kCCQXBo :2009/07/16(木) 00:20:28
>>126 n次の対称行列 めんどうなのでC/C++
#include <stdio.h>
int A[100*101/2];
int main() {
  int n, i, j, k, i1, j1;

  printf("n?"); scanf("%d%*c", &n); if(n>100) return 1;
  for(k=0, i=0; i<n; i++) { /* 成分の添字番号を表示 */
    for(j=i; j<n; j++, k++) {
      A[k] = k+1;
      printf("N(%2d,%2d) = A(%2d)\n", i, j, k);
    }
  }
  for(i=0; i<n; i++) { /* 行成分を表示 */
    for(j=0; j<n; j++) {
      if(i < j) i1=i, j1=j;
      else  i1=j, j1=i;
      k = j1+i1*n-(i1*(i1+1)/2); // i
      printf("A(%2d)=%2d", k, A[k]);
      if(j < n-1) printf(", ");
    }
    puts("");
  }
  return 0;
}
/*
1 2 3 4
2 5 6 7
3 6 8 9
4 7 9 10
*/
142デフォルトの名無しさん:2009/07/16(木) 00:23:11
>>112
与えられた方程式をソースに直接書くタイプなのです。
方程式や収束条件が先生の方からまだ発表されていなかったので、
大変申し訳ないですが、後日あらためて書き込みさせていただきます。
143デフォルトの名無しさん:2009/07/16(木) 00:29:44
>>124
ありがとうございます
144デフォルトの名無しさん:2009/07/16(木) 01:52:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):@四則演算は用いずに, 0xabcdの下位8ビットを0にして表示するプログラムを作成せよ.
               A変数xのyビット目を1にする関数 int bit_set(int x,int y) を作成せよ.
  B変数xのyビット目を0にする関数 int bit_clear(int x,int y) を作成せよ.
               C変数xのyビット目の値を返す関数 int bit_test(int x,int y) を作成せよ.
[3] 環境
 [3.1] OS:Windows Vista SP1
 [3.2] Visual studio 2008
 [3.3] 言語:C
[4] 期限:2009年7月16日8:30まで
[5] その他の制限:基本的なもので
145デフォルトの名無しさん:2009/07/16(木) 02:05:38
>>144
@
#include <stdio.h>
int main(){
printf("%d",0xabcd & 0xff00);
return 0;
}

A
int bit_set(int x, int y){
return x | (1<<(y-1));
}

B
int bit_clear(int x, int y){
return x & ~(1<<(y-1));
}

C
int bit_test(int x,int y){
return (x>>(y-1)) & 1;
}
146デフォルトの名無しさん:2009/07/16(木) 04:51:12
どなたか>>125をお願いします。
147デフォルトの名無しさん:2009/07/16(木) 06:45:23
どなたか>>102の(2)だけでよいのでよろしくお願いします
148デフォルトの名無しさん:2009/07/16(木) 09:19:20
>>146
マインスイーパってやっぱりマウスでクリックするの?
149デフォルトの名無しさん:2009/07/16(木) 09:48:29
>>148
どちらもCUIです。
説明が足りず申し訳ありません。
150デフォルトの名無しさん:2009/07/16(木) 09:49:58
CUIでマインスイーパーって開ける箇所を座標指定とかでやるのか?
151デフォルトの名無しさん:2009/07/16(木) 10:05:58
>>150
だと思います。特に方法は指定されていませんでした。
152138:2009/07/16(木) 11:17:32
>>140
レスありがとうございます。
その場合、スクロール、ページャ運用ができません。
是非プログラム内で解決したいと思っています。
宜しくお願い致します。
153デフォルトの名無しさん:2009/07/16(木) 12:12:15
154デフォルトの名無しさん:2009/07/16(木) 12:57:01
>>146
7並べは、コンピュータ対戦?
両方人間で、同じ画面見てたらゲームになんないよねぇ・・・
155デフォルトの名無しさん:2009/07/16(木) 13:52:28
>>154
7並べサーバを作って、人間用クライアントが複数接続できるようにして、
足りないぶんはAIクライアントに担当させる・・・
AIはインタフェースだけ決めといて実装は自由、各自が自作の思考ルーチンの強さを競う
なんて妄想してると夢だけはひろがりんぐw
156デフォルトの名無しさん:2009/07/16(木) 21:46:37
いまからマインスイーパをCで作ってみようと思う
157デフォルトの名無しさん:2009/07/16(木) 23:13:11
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9762.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Textpad
 [3.3] 言語:C/C++/どちらでも可
[4] 期限:2009年7月17日AM7:00まで
[5] その他の制限:特になし

朝までになりますので、どなたかよろしくお願いします。
158デフォルトの名無しさん:2009/07/16(木) 23:18:58
>>157
下図に示すa,bに数値を設定したときに
--------------
この図はどこ
159デフォルトの名無しさん:2009/07/16(木) 23:48:36
>>158
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9763.txt
すいません、こちらが図になります
160デフォルトの名無しさん:2009/07/17(金) 00:11:31
[1]プログラミング
[2] 課題
言語: C もしくは C++ 言語




(1)以下のプログラムを作成しなさい(数当てゲーム)

*画面上に「好きな数字を入力してください」と表示して、キーボードからの入力を待つ。
変数aを定義して、10までの乱数を発生させて変数aに代入する。
キーボードからの入力があれば、先に発生させた乱数と一致しているならば
「あたり!!」と表示する。
一致していなければ「残念乱数はxxです」と表示する(xxには変数aの中身を表示する)




宜しくお願い致します。

161デフォルトの名無しさん:2009/07/17(金) 00:50:40
162デフォルトの名無しさん:2009/07/17(金) 01:24:03
156だけど徹夜で用事入ったから17日昼までにマインスイーパ作れないと言っておく

一応windows.hを使ったインタフェースで作ってた。
163デフォルトの名無しさん:2009/07/17(金) 03:26:21
>>160
#include <stdio.h>
#include <stdlib.h>

int main(void){
int a,input;

srand( (unsigned)time(NULL) );

printf("input : ");
scanf("%d",&input);

a = rand() % 10 + 1;

if( a == input ) printf("あたり!!\n");
else printf("残念乱数は%dです。\n",a);

return 0;
}
164デフォルトの名無しさん:2009/07/17(金) 04:07:54
>>153
これから見てみます
ありがとうございました
165デフォルトの名無しさん:2009/07/17(金) 09:44:19
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):コメントアウト(//)を用いて下のプログラムを説明せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9765.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9766.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([09年7月17日12:30まで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします
166デフォルトの名無しさん:2009/07/17(金) 10:46:21
コメントアウト?
コメントじゃなくて?
167新たな課題です:2009/07/17(金) 10:59:16
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
授業時に作成したプログラム(ヒント) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9767.zip
作成する図形http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9767.zip
実行例http://s.pic.to/zrnq2
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: (VC++
 [3.3] 言語: (C
[4] 期限: ([09年7月20日15:30まで] または [無期限] のいずれか)
[5] その他の制限:成功すれば図は立体的に見える。
1.星形の座標列を生成する関数void draw_star(引数1,2,/…)を作成すること
どの星型もこの関数ひとつで描けるようにすること
2.星型中心座標から各凸角までの距離は0.5、各凹角までの距離は0.25
3.星型中心y座標値は-10から10までの整数とすること
y=0の場合は凸角数4というように、y座標値で凸角数が決まってくいる(実行例参照)
ifやswitchなどの条件分岐(場合分け)を用いずに規則を見つけてプログラミングすること
5.各行(各y座標値)の最初(左端)の星型中心x座標値はゼロとし、最後(右端)のそれは
40以下とすること。隣り合う星型中心のx座標値の間隔dxはdx=2+0.3×|y|とすること。
6.実行結果は.csvファイルとして保存すること

168デフォルトの名無しさん:2009/07/17(金) 11:00:02
>>166
コメントです!!

169デフォルトの名無しさん:2009/07/17(金) 11:23:08
167 ほんとにこれでいいのか?(C 括弧閉じない性格
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9767.zip
170デフォルトの名無しさん:2009/07/17(金) 11:51:14
>>167
ショートカットファイルしかありませんでした
171デフォルトの名無しさん:2009/07/17(金) 13:40:01
[1] 授業単元:システムコール
[2] 問題文(含コード&リンク):
問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9769.txt
リスト1〜4
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9770.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月21日(火)12時10分まで
[5] その他の制限: 特になし

よろしくお願いします。
172デフォルトの名無しさん:2009/07/17(金) 18:47:16
>>125
キャラクタ画面でマインスイーパ作ったけど、〆切りすぎてたね・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9773.c
173デフォルトの名無しさん:2009/07/17(金) 18:57:32
ゲームってグラフィック使わないとなるとかなり難しいけどなw
174デフォルトの名無しさん:2009/07/17(金) 21:12:10
>>163

ありがとうございます!!

175デフォルトの名無しさん:2009/07/17(金) 21:47:15
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

下に示すように,キーボードから二つの文字列を読み込み,どちらの文字列が何文字長いか
を表示するプログラムを作成せよ.なお,二つの文字列が同じ長さならば,「二つの文字列は同
じ長さです.」と表示させること.

文字列A : Good
文字列B : Morning
文字列B の方が3 文字長いです.

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月21日
[5] その他の制限:なし。
176デフォルトの名無しさん:2009/07/17(金) 23:06:06
>>175

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char a[256], b[256];
int diff;
printf("文字列A : ");
scanf("%s", a);
printf("文字列B : ");
scanf("%s", b);
if(diff = strlen(a) - strlen(b))
printf("文字列%c の方が%d 文字長いです.\n", diff>0 ? 'A' : 'B', abs(diff));
else
puts("二つの文字列は同じ長さです.");
return 0;
}
177デフォルトの名無しさん:2009/07/18(土) 00:14:07
>>171
WriteLine関数とReadLine関数の定義はどこ?
178デフォルトの名無しさん:2009/07/18(土) 00:26:57
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9774.txt
[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C
[4] 期限: 7/20
[5] その他:特になし
よろしくお願いします。
179デフォルトの名無しさん:2009/07/18(土) 00:39:26
>>178
【1】
stdio.h

【2】
n=0

【3】
Tn2 = Tn3

修正
n<20 を n<28 にする

【4】
2555757

【4】の解の保証
http://www.research.att.com/~njas/sequences/table?a=73&fmt=4
180デフォルトの名無しさん:2009/07/18(土) 00:46:43
>>179
助かりました。ありがとうございます。
181デフォルトの名無しさん:2009/07/18(土) 00:58:23
182 ◆/91kCCQXBo :2009/07/18(土) 02:27:15
>>167 星形の座標列
画像は読む事が出来た だれかプログラムしてくれ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9777.txt
183デフォルトの名無しさん:2009/07/18(土) 02:52:07
>>182
>>167やろうと思ったけど何すればいいんだこれ
問題が意味不なんだが
184 ◆/91kCCQXBo :2009/07/18(土) 08:27:43
>>183 要するに線画の3D画像。@にあるように星の大きさ自体は全て同じ。
数値をエクセルでグラフにしたので、朝、目が覚めたら読んでくれ。こっちは解析しただけでやる気が終わった。
http://www51.tok2.com/home/rg550/cgi-bin/hosoku/img0046.zip
185デフォルトの名無しさん:2009/07/18(土) 14:25:51
1] 授業単元:プログラミング論
[2] 問題文:データベースに対して線形探索を行うプログラムを作成するこのとき探し出す値の項目(キー)は、生徒の名前とする。なお、番兵法を用いて繰り返しの終了判定を少なくする。また、文字列を比較する場合、関数strcmp()を用いる
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月20日
186デフォルトの名無しさん:2009/07/18(土) 14:34:07
>>185
そのデータベースというのはSQLのことかい?
187デフォルトの名無しさん:2009/07/18(土) 14:35:01
あ、番兵って言ってるからちがうか。
188デフォルトの名無しさん:2009/07/18(土) 15:39:08
>>185
こんな感じで。配列を使うとは書いて無いから線形リストにした。
あと、動作は保障しない。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9782.txt
189デフォルトの名無しさん:2009/07/18(土) 16:13:30
>>188
それ番兵の意味ないでしょ。ノード数Nのときに検索回数が1少なくなるだけで比較回数はN増えるし。
検索文字を番兵にしないと。

<擬似コード>
//リストの最後に番兵を置く
sentinel = new Node("search word");
nodes.addLast(sentinel);

//検索文字を探す(番兵がいるので絶対見つかる)
int i=0;
for(p = nodes.head;p.name != "search word";p=p.next,i++){}

//リストの長さよりも小さければ番兵以外のノードが見つかった
if(i < p.count-1) return p;
else return NULL;
190デフォルトの名無しさん:2009/07/18(土) 16:43:40
>>189
それ、C++ですねぇ。
検索文字列を番兵にするのは予想外でした。確かに比較回数はへりますね。
でも、その擬似コードは末尾にpushとpopしないといけないので、サーチにやっぱり時間かかりませんか?
文字列比較よりも低コストという感じですか?
191デフォルトの名無しさん:2009/07/18(土) 16:47:19
>>188
データベース(人の名前,tomなど9人,txtファイル)から
キーボードから入力したKEY(生徒の名前)を
検索するプログラムを作ってほしいんです><
192デフォルトの名無しさん:2009/07/18(土) 17:02:22
>>190
リストの末尾へのポインタをあらかじめ保持しておけば番兵の追加と削除に検索はいらない。
もちろん構造体を作るコストはかかるけどね。どっちが早いかは環境やリストの長さによる。

Node* head;
Node* tail;

//番兵追加
Node sentinel = new Node("hoge");
tail.next = sentinel;

//
//検索処理
//

//番兵削除
delete(tail.next);
tail.next = NULL;

>>191
初めに書けよ
他に抜けてる条件は無いのか?
193デフォルトの名無しさん:2009/07/18(土) 17:03:35
>>191
ちょ!おま。
情報の後出しは禁止だ!このやろー。

findfirstfileを自作しろってことか?
さらに、その上で全文検索しろってことか?
どの辺のことを言ってるのかよくわからん。
194デフォルトの名無しさん:2009/07/18(土) 17:13:26
>>193

すみません;;
Tom 75 60
Jerry 85 90
Spike 45 30
Rachel 55 85
Monica 75 90
Phoebe 80 75
Chandler 70 65
Joey 85 75
Ross 90 85
こんな感じのtxtファイルを読み込んで
名前をKEYで検索して該当したデータを表示させるプログラムなんですけど
データベースからデータを検索するプログラムが作れなくて困ってたんです;;
195デフォルトの名無しさん:2009/07/18(土) 17:14:20
>>192
tailの管理がちょっと厄介ですなぁ。tailをpopしたら再検索ですし。まぁ、用途によりけりか。
196デフォルトの名無しさん:2009/07/18(土) 18:12:47
1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだ文字列を、データベースに格納する前に
スタックに一時的に格納するプログラムを作成する
このときデータをまとめたデータ文字列を一つずつスタックへプッシュしたり
ポップしたりする過程が分かるプログラムを作成する。
なおスタックを実現するライブラリはスタックのための別のヘッダにまとめる

[プログラムの例]
入力ストリームから読み込んだデータ文字列をスタックへプッシュしたり
ポップしたりするたびにデータベースに格納された全データを表示する。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月20日

参考プログラムを元に完成させてほしいです
[参考プログラム]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9784.txt
197デフォルトの名無しさん:2009/07/18(土) 18:44:09
>>185
多分あってると思うがほとんどデバッグしてないので何とかしてくれ。動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9786.zip

もう、今日は切ったり張ったりしないぞ。疲れた。
198デフォルトの名無しさん:2009/07/18(土) 18:50:20
>>197

めちゃめちゃ高度ですが
すごい助かります
ありがとうございました^^
お疲れ様です;;
199デフォルトの名無しさん:2009/07/18(土) 22:17:40
[1] 授業単元:  C言語
[2] 問題文 2進数の指定した場所の0、1を逆転せよ
たとえば 00110という2進数の3番目を反転としたら 2進数が00010となる。1番目の場合10110となる
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualC++
 [3.3] 言語: C
[4] 期限: 7月20日
[5] その他の制限:

200デフォルトの名無しさん:2009/07/18(土) 22:21:25
>>171
サーバ側 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9788.c
クライアント側 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9787.c

ターミナル3つ立ち上げてサーバ、クライアント1、クライアント2を実行
クライアントからの入力はサーバ、他のクライアントにも送れた。
けど、サーバから文字を入力するとクライアント1側に入力文字が無限ループで出てきて
クライアント2には何も表示されなかった。課題どころか元のプログラムすら動かない危機的な状況なので
誰か助けてください。サーバ側に何か問題があると思うのですが全く見当がつきません
201デフォルトの名無しさん:2009/07/18(土) 22:38:30
202デフォルトの名無しさん:2009/07/18(土) 23:34:12
>>200
サーバの202行目はj++だよね。
203デフォルトの名無しさん:2009/07/18(土) 23:37:58
#include<iostream>
using namespace std;

int main() {
int value;

cout << "整数値を入力値を入力してください\n";
cin >> value;

if(10 <= value && value <= 99) {
cout << "二桁の整数です\n";
}
else if( value <= 9 || value >= 100){
cout << "一桁か三桁以上の整数です.\n";
}

return 0;
}

このプログラムは負の数値に対して考慮していない。0未満の整数が入力された時、『負の整数が入力されました』と表示するプログラムを作成せよ



&&と同じ処理を&&を使わず、else ifを使って表現せよ

この2つ分かる方教えてくれませんか
C++です
204デフォルトの名無しさん:2009/07/18(土) 23:45:37
>>202
本当にありがとうございました。頑張ってみます
205デフォルトの名無しさん:2009/07/18(土) 23:47:48
>>203
負の数に対応したやつ

#include<iostream>
using namespace std;

int main() {
int value;

cout << "整数値を入力値を入力してください\n";
cin >> value;

if(value < 0) {
cout << "負の整数が入力されました\n";
}
else if(10 <= value && value <= 99) {
cout << "二桁の整数です\n";
}
else if( value <= 9 || value >= 100){
cout << "一桁か三桁以上の整数です.\n";
}

return 0;
}
206デフォルトの名無しさん:2009/07/19(日) 00:04:42
>>203
&&を使わずにelse ifでむりやり版
あとテンプレ使え

#include<iostream>
using namespace std;

int main() {
int value;

cout << "整数値を入力値を入力してください\n";
cin >> value;

if(10 <= value) {
if (!(value <= 99))
goto FOO;
else if(1)
cout << "二桁の整数です\n";
}
else if(value <= 9 || value >= 100){
FOO:
cout << "一桁か三桁以上の整数です.\n";
}

return 0;
}
207デフォルトの名無しさん:2009/07/19(日) 01:08:17
#include<iostream>
using namespace std;

int main() {
int value;

cout << "整数値を入力値を入力してください\n";
cin >> value;

if(value >= 0){
if(value >= 100) cout << "一桁か三桁以上の整数です.\n";
else if(value >= 10) cout << "二桁の整数です\n";
else if(1) cout << "一桁か三桁以上の整数です.\n";
}else if(1){
cout << "負の整数が入力されました\n";
}

return 0;
}

自分で言うのもなんだがなんだこのクソプログラムはw
&&が使えなければドモルガンの法則使って||にすればいいじゃない、と思った
208 ◆/91kCCQXBo :2009/07/19(日) 02:27:51
>>203
//このプログラムは負の数値に対して考慮していない。←仮定
//このプログラムは1000以上の数値に対して考慮していない。←仮定を追加
//&&と同じ処理を&&を使わず、else ifを使って表現せよ
#include<iostream>
using namespace std;

int main() {
  int value;

  cout << "整数値を入力値を入力してください\n";
  cin >> value;
/*
  if(value < 0) {
    cout << "負の整数が入力されました.\n";
  }
  else
*/  if(value < 10) {
    cout << "一桁か三桁以上の整数です.\n";
  }
  else if(value < 100) {
    cout << "二桁の整数です\n";
  }
  else {
    cout << "一桁か三桁以上の整数です.\n";
  }

  return 0;
}
//これじゃ駄目かね? 質問者も、どれ提出すればいいか困るか。
209 ◆/91kCCQXBo :2009/07/19(日) 02:39:52
//ド・モルガン版 >>207
#include<iostream>
using namespace std;

int main() {
  int value;

  cout << "整数値を入力値を入力してください\n";
  cin >> value;

  if(value < 0) {
    cout << "負の整数が入力されました.\n";
  }
  else if( value <= 9 || value >= 100) {
    cout << "一桁か三桁以上の整数です.\n";
  }
  else {
    cout << "二桁の整数です\n";
  }

  return 0;
}
210デフォルトの名無しさん:2009/07/19(日) 02:44:04
>>196
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9790.zip

>>185と同じ人っぽかったので、データベースはtxtファイルで
「データベースに格納する前にスタックに一時的に格納」ってのは
「入力されたデータをスタックにためておき、スタックが一杯になったら
データベースに書き込む」ということだと解釈したのだけど、合ってる?
211 ◆/91kCCQXBo :2009/07/19(日) 03:14:40
>>167 C++ で提出すれば君はヒーローだ。(星形の座標列を生成する)
#include <fstream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define PI 3.1415926535897932384
void draw_star(ofstream &fout, float x1, int y1) {
  int i, dot;

  dot = abs(y1) + 4;
  for( i = 0; i <= dot; i++ ) {
    fout<<setw(6)<< cos(2*PI/dot*i)/2+x1 <<','<<setw(7)<< sin(2*PI/dot*i)/2+y1 <<endl;
    if( i < dot )
    fout<<setw(6)<< cos(2*PI/dot*(i+0.5))/4+x1 <<','<<setw(7)<< sin(2*PI/dot*(i+0.5))/4+y1 <<endl;
  }
  fout<<endl;
}
int main() {
  float x, xstep; int y;
  ofstream fout("polygon_29.csv");

  if(!fout) return 1;
  fout<<fixed<<setprecision(3);
  for( y = -10; y <= 10; y++ ) {
    xstep = 2.0 + 0.3 * abs(y);
    for( x=0.0; x<40.0; x += xstep ) {
      draw_star(fout, x, y);
    }
  }
  fout.close();
}
212デフォルトの名無しさん:2009/07/19(日) 07:33:25
>>183だけど
>>184読んでやっと理解して
defineとか使ってごちゃごちゃ書いて完成したら
>>211が出来てて涙目なので少しすっきり書き直してアップしといた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9791.c
213デフォルトの名無しさん:2009/07/19(日) 12:40:03
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,キーボードから文字列を読み込み,その文字列が回文(前から読んでも後
ろから読んでも同じ)かどうかを判定するプログラムを作成せよ.なお,入力する文字列は半
角の英数字および記号のみと仮定してよい.

文字列を入力してください: abcba
回文です.
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月21日
[5] その他の制限:なし。
214デフォルトの名無しさん:2009/07/19(日) 12:55:27
>>213
前スレに似たようなのがあった。空白を読みとばしたり大文字小文字を区別しない上級バージョンだけど参考まで
http://pc12.2ch.net/test/read.cgi/tech/1245853701/107-111
215デフォルトの名無しさん:2009/07/19(日) 12:56:06
#include <stdio.h>
#include <string.h>

int is_kaibun(char* buf,int len){
int i;

for(i = 0;i<len/2;i++){
if(buf[i] != buf[len-i-1]) return 0;
}

return 1;
}

int main(){
char buf[256];

printf("文字を入力してください:");
fgets(buf,sizeof(buf),stdin);

if(is_kaibun(buf,strlen(buf)-1)){
printf("回文アル");
}else{
printf("回文チガウアル");
}

return 0;
}
216デフォルトの名無しさん:2009/07/19(日) 13:26:37
こんな事したいんですけどC言語のソース書いてください

100以下の整数を入力し80以上なら”優”、70以上80未満なら“良”、60以上70未満なら“可”、60未満なら“不可”と表示する。tenに格納された値が不なら終了する。
条件:scanfの前にprintf(”点数を入力してください”);を入れる。whileを使いマイナスの値が入力された場合終了し、100〜0の場合ループさせる。ifを使う
217デフォルトの名無しさん:2009/07/19(日) 13:29:51
>>216
入門スレがあっただろ?そっちで聞け
218デフォルトの名無しさん:2009/07/19(日) 13:31:46
>>217
入門スレから誘導した
こっちで受けてやってくれw
219デフォルトの名無しさん:2009/07/19(日) 13:38:00
#include <stdio.h>

int main(){
    int ten;
    printf("点数を入力してください");
    scanf("%d", &ten);
    while( ten >= 0 ){
        if( ten >= 80 ){
            printf( "優\n" );
        }else if( ten >= 70 && ten < 80 ){
            printf( "良\n" );
        }else if( ten >= 60 && ten < 70 ){
            printf( "可\n" );
        }else{
            printf( "不可\n" );
        }
        printf("点数を入力してください");
        scanf("%d", &ten);
    }
    return 0;
}
220デフォルトの名無しさん:2009/07/19(日) 13:41:01
ありがとうございます。
よろしければあと3つほどお願いしたいです。

@ユークリッドの互除法で最大公約数を求める

A自然対数の底eを求める
条件:実数で行う。eは1+1/1!+1/2!+1/3!+・・・1/n!+・・・
無限級数の打ち切りは1/n!<0.0000001とする

Bxの平方根を求める
条件:xには実数値を入れる。a=0、b=cとしてc=(a+b)/2を計算する
cの二乗<xならa=c、そうでなければb=cとして計算を繰り返す
b-aの値が0.0000001以下になったら計算を打ち切り、cの値を表示
221デフォルトの名無しさん:2009/07/19(日) 13:43:09
>>220
常連さんになるなら>>1のテンプレに沿って書き直してくれ
とくにC/C++の違いとか、よく混乱がおきてんだ
222デフォルトの名無しさん:2009/07/19(日) 13:53:47
[1] 授業単元: プログラミングT
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9792.txt
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (良く分らないけど学校のUNIXはlcc)
 [3.3] 言語: (C言語)
[4] 期限: ([2009年7月--日--:--まで]緊急ではないのですが夏季長期休の課題なので速く終らせたい )
[5] その他の制限: (scanf,printf,if,for,get,put,とか超簡単なところしか習ってない)
223デフォルトの名無しさん:2009/07/19(日) 13:59:26
1] 授業単元:OS演習
[2]
セマフォを使った同期 −共有バッファを用いたプロセス間メッセージ通信
親/子プロセスでメッセージを書き込み、子/親プロセスで読み出す →semprog2.c

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9793.c

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C言語
[4] 期限: 2009年7月22日
[5] その他の制限:特にないです。よろしくお願いします。
224デフォルトの名無しさん:2009/07/19(日) 14:15:54
[1] 授業単元:情報理論
[2] 問題文(含コード&リンク):
生起確率リストのファイルlist.txtの情報源に対するハフマン符号を求めなさい。
簡単なアルゴリズムも記載するように。
list.txtは手元に無いのですが、適当な小数が列挙されているモノです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 09年07月20日
[5] その他の制限:特にありません。

宜しくお願いします。
225デフォルトの名無しさん:2009/07/19(日) 15:03:43
授業の課題じゃないんですがよろしくお願いします。
[2]
5=1+1+1+1+1
5=1+1+1+2
5=1+1+2+1
5=1+2+1+1
5=2+1+1+1
5=1+1+3
5=1+3+1
5=3+1+1
5=1+4
5=4+1
5=3+2
5=2+3
というように入力された整数xをこのように分解して
表示するプログラムを作ってください。
ただし、 5=3+2 5=2+3
は別々のものとして扱ってください。
表示する順番は問いません。

[3] 環境
 [3.1] OS: Windows Xp
 [3.2] CPad for Borland C++Compiler
 [3.3] C言語
[4] 期限: [無期限]
226デフォルトの名無しさん:2009/07/19(日) 15:23:18
>>225
#include<stdio.h>
#include<stdlib.h>

int disp_whole_pattern(int pattern[], int pattern_num, int n){
int i, sum=0;

if(n<=0){
for(i=0;i<pattern_num;i++) sum+=pattern[i];
printf("%d=", sum);
for(i=0;i<pattern_num-1;i++) printf("%d+", pattern[i]);
printf("%d\n", pattern[i]);
return 0;
}
for(i=1;i<=n;i++){
pattern[pattern_num]=i;
disp_whole_pattern(pattern, pattern_num+1, n-i);
}
return 1;
}

int main(void){
int x=5, *pattern;

scanf("%d", &x);
pattern=malloc(sizeof(int)*x);
if(pattern==NULL) return 1;
disp_whole_pattern(pattern, 0, x);
free(pattern);
return 0;
}
227デフォルトの名無しさん:2009/07/19(日) 16:49:38
#include <stdio.h>
#include <stdlib.h>

void foo(int *a, int n) {
int i, j, *b;

for(i = 0; i < n; ++i)
printf("%d%c", a[i], i==n-1?'\n':'+');

for(i = 0; i < n-1; ++i) {
b = malloc(sizeof(int)*n-1);
for(j = 0; j < i; ++j) b[j] = a[j];
b[i] = a[i] + a[i+1];
for(j = i+1; j < n-1; ++j) b[j] = a[j+1];
foo(b, n-1);
free(b);
}
}

int main(void) {
int a[5] = {1, 1, 1, 1, 1};
foo(a, 5);
return 0;
}

重複が消せない(;ω;)
228デフォルトの名無しさん:2009/07/19(日) 16:56:03
[1] 授業単元:数理物理
[2] 問題文(含コード&リンク):http://www.mns.kyutech.ac.jp/~kamada/suuributuri/sub15.html
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語:どちらでも可
[4] 期限:できれば2009年7月21日までにお願いします。
[5] その他の制限:問題ではプロットせよと書いていりますが問題の計算のプログラムをお願いします。
229デフォルトの名無しさん:2009/07/19(日) 17:15:05
230デフォルトの名無しさん:2009/07/19(日) 19:02:35
>>224
小数って実数のことじゃなくて、「小さな整数」の意味でいいのかな
231デフォルトの名無しさん:2009/07/19(日) 19:59:15
>>230
実数と考えて頂いて問題ないです
紛らわしくてごめんなさい
232デフォルトの名無しさん:2009/07/19(日) 20:26:16
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
fopenと fclose ライブラリ関数を使って、
C言語でファイルをコピーするプログラムを作成せよ。
ただしカレントディレクトリを表示せよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 09年07月20日
[5] その他の制限:特にありません。
233デフォルトの名無しさん:2009/07/19(日) 20:37:29
>>210

その解釈でも大丈夫だと思いますが、プログラムの例の部分から察するに
プッシュするごとに格納されたデータを表示するんじゃないでしょうか?
あと、>>210さんのプログラムは終了させた場合のみ全データをポップ&表示
していますが、多分プッシュと同様ポップもメニュー?に入れて、
ポップするごとに全データを表示して、プッシュポップの関係を
分かりやすくするというプログラムなんじゃないでしょうか?
長々とすみませんでした。
234デフォルトの名無しさん:2009/07/19(日) 20:56:14
[1] 授業単元:情報工学実験(ヒューマンインタフェース)
[2] 問題文(含コード&リンク):
画面中央にウィンドウを重ねて2つ表示し、
前面をウィンドウ1、後面をウィンドウ2とする。

後ろ側のウィンドウ2を、頭部移動データに合わせて移動させ、
人間の頭の動きをウィンドウ2にトラッキングさせる。

実験環境は机の上にディスプレイが人間の正面に静置されている。
座標原点はディスプレイが置かれている机の、人間から見て右上の角とする。
そこからディスプレイ側をx軸正方向、被験者手前側をy軸正方向、地軸正方向(上向き)をz軸正方向とする。
頭部初期位置x1,y2,z3,は事前に与えられるので、移動距離はセンサデータから与えられる座標との差分によって求められる。
センサデータx,y,zは以下のように与えられる。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9795.txt

上記に基づき、頭部初期位置のセンサデータがx1=67.11,y1=88.95,z1=24.64として
与えられた時、ウィンドウ2が頭部をトラッキングするようなプログラムを完成させよ。
ウィンドウ1は動かず、常にウィンドウ2の前面にあるものとする。

注:トラッキングはユーザー頭部の上下左右方向のみなので、トラッキングにy軸のセンサデータは用いない。
センサデータの単位はcmなのでichに変換する必要があり、
使用する17インチディスプレイの解像度は72dpiであることから
ウィンドウのディスプレイ上での移動ピクセル数を算出することができる。

[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C,Win32API
[4] 期限: 7月22日正午
[5] その他の制限:特にありません。

長文で申し訳ありません。よろしくお願い申し上げます。
235デフォルトの名無しさん:2009/07/19(日) 21:03:00
[1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだデータ文字列を、
データベースに格納する前にキューに一時的に格納するプログラムを
作成する。このとき、データをまとめたデータ文字列を一つずつ、キューへ
エンキューしたり、デキューしたりする過程が分かるプログラムを作成する。
なお、キューを実現するライブラリは、キューのための別のヘッダにまとめる。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月21日
[そのほか]
・入力ストリームから読み込んだデータ文字列を、キューにエンキューしたり、
デキューしたりするたびにデータベースに格納された全データを表示する。
・構造体オブジェクトは動的な記憶域に生成する。
・生徒の名前、試験の点数を構造体オブジェクトに格納することとする。
・関数の処理にコメントをつけて、キューをどのように実現しているか、
そのプログラムの処理内容が分かるようにする。
[このプログラムの流れ]
(1)ファイルやキーボードなどの入力ストリームから
データをデータ文字列として読み込む
(2)このデータ文字列をキューに一時的に蓄える
(3)キューからデータ文字列を取り出す
(4)このデータ文字列からそれぞれデータを取り出して
文字列や数値データに変換する
(5)変換したデータをデータベース(構造体の配列など)に格納してまとめて管理する
(6)このデータベースからデータを参照し、ディスプレイに出力する
[生徒、点数データ]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9797.txt
[参考プログラム]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9798.txt
236デフォルトの名無しさん:2009/07/19(日) 23:31:01
237デフォルトの名無しさん:2009/07/19(日) 23:47:26
>>171のクライアントがハンドル名@マシン名をサーバに送って、そのメッセージを
サーバ側であるバッファに格納する部分はどう書けばいいんでしょうか?
クライアントのどの部分でサーバにWriteLineで送るのかと
サーバ側がいつ送られてきたメッセージを受信するのかが分かりません
238デフォルトの名無しさん:2009/07/19(日) 23:51:49
デバッグエラーが出てしまいます。原因は何でしょうか。お願いします。ちなみに問題は以下です
配列を使って10個のデータを関数に渡します.
下記の平均を返す関数 ave1() を main 関数から呼び出し平均を求めなさい.
なお,main 関数では 配列に10個の値を代入し,ave1() を呼び出し,その結果を表示します.

#define NUM 10
double ave1( int dd[NUM] ){
int i, sum;
for(sum=0, i=0;i<NUM;i++){
sum += dd[i];
}
return (sum/(double)NUM);
}
239デフォルトの名無しさん:2009/07/19(日) 23:54:43
#include<iostream>
using namespace std;

int main(){
int i,j;

for(i=1;i<=2;i++){
for(j=1;j<=3;j++){
cout << i << "X" << j << "は" << i * j<< "です\n"; }
}
}
}

結果
1×1は1です
1×2は2です
1×3は3です
2×1は2です
2×2は4です
2×3は6です
これを参考にして、完全な九九を表示するプログラムを作成せよ

上にあった書き方を参考にして、以下のように出力できるプログラムを作成せよ
5を書きました
6を書きました

12を書きました
13を書きました

誰かこれ教えてくれませんか

240デフォルトの名無しさん:2009/07/19(日) 23:55:24
配列の中身を0にしてその内容を表示する関数 void hairetsu_zero01(int x[10]) を作成しなさい.
関数の中で受け取った配列の中身をすべて 0 に書き換え,内容を表示して確認しなさい.

main 関数での処理は次の通りです.
まず,配列を宣言し 0〜9 を代入しなさい.
次に,内容の確認のため main 関数で配列の内容を表示しなさい.
最後に,hairetsu_zero() を呼び出し,実行後の配列の内容を表示しなさい.

さらに余力があれば,別で配列 y[5] を作成し,1..5 で初期化し, hairetsu_zero(y) を実行しなさい.

241239:2009/07/19(日) 23:56:16
1問忘れてしまいました

100を書きました
99を書きました

88を書きました
87を書きました
上にあった書き方を参考にして、以下のように出力できるプログラムを作成せよ




242デフォルトの名無しさん:2009/07/20(月) 00:00:26
質問テンプレ使いやがれー
243デフォルトの名無しさん:2009/07/20(月) 00:21:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):入力ファイルの各行を単方向連結リストの最後に順次追加し,そのリストの内容を先頭から順に標準出力に
出力するプログラム extra6 を作成せよ.ソースファイルの名前は extra6.c とし,単方向連結リストの最後に1行分の文字列データを
追加する関数を append_data,リストの内容を先頭から順に標準出力に出力する関数を print_list として,これら2つの関数を含む
こと.また,リストの各要素は,以下の構造体を用いて表現するものとする.

struct line {
char *data;
struct line *next;
};

なお,入力ファイル名はコマンドライン引数で指定するものとし,入力ファイルがオープンできなかった場合の処理も含めること.
また,プログラム自身を除く引数の数が0個,もしくは2個以上の場合は,何もせず適切なメッセージを出力して終了するものとする.
入力データ: http://pai.no.land.to/up/src/dgz13030.txt

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VS2008
 [3.3] 言語: C
[4] 期限:2009年7月21日10時まで
[5] その他の制限: 特になし

長文すいません。リストの最後に順次追加する部分が特にわかりません。
よろしくお願いしますm(_ _)m
244234:2009/07/20(月) 01:23:22
>>234です
問題文そのままだけでは講義中の説明がないとわかりづらいと感じた部分の補足です

・センサーはユーザーの頭部についていて、原点(机の右上角)からの距離を取っています
・頭部初期位置とはユーザーが目の前のディスプレイの画面中心を静視したときの頭部の座標です。
・頭部をトラッキングという表現というよりは頭部の動きを実際にトレースする
と言い換えた方が題意がつかみやすいと言われました。

またその他の制限に描くべきだったと思うのですが、
ウィンドウでの実現が困難な場合、長方形の描画などで実現してもよい
との回答が教官からありました。

文意が伝わらない部分が多く大変失礼いたしました。
引き続きよろしくお願いいたします。
245234:2009/07/20(月) 01:28:31
>>244
×・センサーはユーザーの頭部についていて、原点(机の右上角)からの距離を取っています

○・センサーはユーザーの頭部についていて、机の右上角を原点とした3次元座標を取っています
(ディスプレイ側をx軸正方向、被験者手前側をy軸正方向、地軸正方向(上向き)をz軸正方向)

正確にはこのようになります。度々本当に申し訳ございません。
246デフォルトの名無しさん:2009/07/20(月) 02:21:59
>>239>>241  礼はいらん、テンプレ>>1
#include<iostream>
using namespace std;
int main(){
  int i,j;

  for(i=5;i<=13;i++){
    cout << i << "を書きました\n";
  }
  cout<<endl;
  for(i=100;i>=87;i--){
    cout << i << "を書きました\n";
  }
  cout<<endl;
  for(i=1;i<=9;i++){
    for(j=1;j<=9;j++){
      cout << i << "*" << j << "=" ;
      cout.width(2);
      cout <<i * j<< " ";
    }
    cout << "\n";
  }
}
247デフォルトの名無しさん:2009/07/20(月) 02:47:47
>>238 良く出来たプログラムだ。
/*
#include <iostream>
using namespace std;
*/
#include <stdio.h>
#define NUM 10
double ave1( int dd[NUM] ){
  int i, sum;

  for(sum=0, i=0; i<NUM; i++){
    sum += dd[i];
  }
  return (sum/(double)NUM);
}
int main(void){
  int a[NUM]={10,9,8,7,6,5,4,3,2,1};

//  cout<<ave1(a);
  printf("%g",ave1(a));
}
248デフォルトの名無しさん:2009/07/20(月) 03:33:13
>>240 パラメータで、もうひとつ、要素の個数は渡さないのか?
#include <stdio.h>
#define NUM 10
void hairetsu_zero01(int x[NUM]) {
  int i;

  for(i=0; i<NUM; i++) x[i] = 0;
}
int main() {
  int i;
  int x[NUM] = { 9,8,7,6,5,4,3,2,1,0};
  int y[5] = {4,3,2,1,0};
  int z[5] = {4,3,2,1,0};

  puts("x=");
  for(i=0; i<NUM; i++) printf("%d ", x[i]); puts("");
  hairetsu_zero01(x);
  for(i=0; i<NUM; i++) printf("%d ", x[i]); puts("");
  puts("z=");
  for(i=0; i<5; i++) printf("%d ", y[i]); puts("");
  puts("y=");
  for(i=0; i<5; i++) printf("%d ", y[i]); puts("");
  hairetsu_zero01(y);
  for(i=0; i<5; i++) printf("%d ", y[i]); puts("");
  puts("z=");
  for(i=0; i<5; i++) printf("%d ", y[i]); puts("");
}
249デフォルトの名無しさん:2009/07/20(月) 04:59:59
[1] 授業単元:計算機言語TA
[2] 問題文(含コード&リンク)
台形の面積を求める関数を作成し、この関数を用いて台形の面積を求め画面に表示する。
ただし作成する関数は引数はないが戻り値がある関数であること。
なお上底、下底、高さはキーボードから入力する。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2009年07月21日AM1:00まで
[5] その他の制限
特になし。出来ればわかりやすいもので。

お願いします。
250デフォルトの名無しさん:2009/07/20(月) 05:19:17
>>249
#include <stdio.h>

double daikei(void){
double joutei,katei,takasa;

printf("input joutei : "); scanf("%lf",&joutei);
printf("input katei : "); scanf("%lf",&katei );
printf("input takasa : "); scanf("%lf",&takasa);

return (joutei+katei) * takasa * 0.5;
}


int main(void){
printf("ans : %lf\n",daikei());
return 0;
}
251デフォルトの名無しさん:2009/07/20(月) 07:45:36
252デフォルトの名無しさん:2009/07/20(月) 10:58:39
>>232
>ただしカレントディレクトリを表示せよ が分かりません。
カレントディレクトリのパスを表示するのか、ディレクトリ内容を一覧で表示するのか。
入力ファイル名と出力ファイル名はコマンドで指定するのか、プロンプトで入力するのか。
カレントディレクトリは先に表示するのか、後で表示するのか、何のために表示するのか。
253デフォルトの名無しさん:2009/07/20(月) 11:13:39
[1] 授業単元 数値解析

[2] 問題文(含コード&リンク)
以下の非線形方程式の数値解を求めよ。
(P) 1/x=tan x
ただし、(P)の数値解は次のように定義されるものである。
xが(P)の数値解 ⇒ |1/x-tan x|<1*10^-11
実際にC言語で数値解析を実行するプログラムを作成せよ。
実行結果は、求めた数値解および反復計算の過程がわかるように表示すること。

[3] 環境
 [3.1] OS Windows Vista
 [3.2] コンパイラ名とバージョン Visual Studio 2008
 [3.3] 言語 C++

[4] 期限 2009年07月25日まで

[5] その他の制限
2分法、はさみうち法、NR法以外の解法も実践すること。
とりあえず2分法、はさみうち法、NR法のどれかを使用したものと
それ以外の方法を使用したもの
両方を書いてくれるとありがたいです。

お願いします。
254デフォルトの名無しさん:2009/07/20(月) 14:05:41
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org260873.zip
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 7/22
[5] その他の制限:問題文通りでお願いします課題二つありますがよろしくお願いします。
255 ◆/91kCCQXBo :2009/07/20(月) 14:36:08
>>243 main()を分解して、必要な関数にしてくれ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9801.c
256デフォルトの名無しさん:2009/07/20(月) 15:20:27
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ファイルの1行目に2行目以降の各行に含まれる文字列の数が記述され,2行目以降はその数の不定長文字列が空白で区切られているような入力
ファイルを読み込み,各行を以下に示す構造体の単方向連結リストに保存するプログラムを作成せよ.ここでは,attributes が1行分のデータ
を保持する.
struct t_list {
char **attributes;
struct t_list *next;
};
またにはソースファイルには,生成した単方向連結リストの内容を標準出力に出力する関数 print_tlist を含むものとしprint_tlist により各行
に含まれる文字列を出力するものとする.動作確認には,以下のテキストを用いよ.なお,入力ファイル名はコマンドライン
引数で指定するものとし,入力ファイルがオープンできなかった場合の処理も含めること.また,プログラム自身を除く引数の数が0個,
もしくは2個以上の場合は,何もせず適切なメッセージを出力して終了するものとする.
入力ファイル:http://www.uploda.tv/v/uptv0033032.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 7/21
[5] その他の制限:問題文の指定された通りにお願いします
257デフォルトの名無しさん:2009/07/20(月) 17:11:47
>>251
有難うございました。
258デフォルトの名無しさん:2009/07/20(月) 17:14:07
>>246
ありがとうございます。
100を書きました
99を書きました

88を書きました
87を書きました って問題と

5を書きました
6を書きました

12を書きました
13を書きましたって問題が別の問題なんですが、>>246で書いてみたいに一緒に書いてしまってはまずいですよね?
259デフォルトの名無しさん:2009/07/20(月) 17:33:41
切り貼りコピペなんでもしていい。>>258
260デフォルトの名無しさん:2009/07/20(月) 18:10:41
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9802.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: GCC 4.3.3
 [3.3] 言語: C
[4] 期限: 7/27
[5] その他の制限:
 特に制限はないですが、コメントを付けてくださると助かります。
 コメントがないと多分意味が分からないので…

261デフォルトの名無しさん:2009/07/20(月) 18:56:36
>>259
ごめんなさい。まだいますか。そうじゃなくて、問題がべつの問題だから分けないといけないかなと思って
262デフォルトの名無しさん:2009/07/20(月) 19:05:25
よろしくお願いします。
[1] 授業単元:
    インタラクティブッコミュニケーション
[2] 問題文(含コード&リンク):
    このソースコード(ttp://www.ncc-1701.jp/kakei/InteractiveComm/Class9/exercise9.pdf)を参考にして、関数を利用し、前回演習で作成しプログラムの改良版を作成せよ。
    改良点:利用者が'Q'を入力するまで質問を繰り返す。
    *前回演習*
    国名を入力すると、その国の首都名を出力するプログラムを作成せよ。
    但し、国名と首都名の組み合わせは事前に与えられているものとする。
    *解答*
    ttp://www.ncc-1701.jp/kakei/InteractiveComm/Class8/exercise8.pdf
[3] 環境
 [3.1] OS: Windows XP
 [3.2] MicroSoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 2009年7月21日(明日)
[5] その他の制限:
     ?になっているところに適切なコードをお願いします。
      進んでいるところはttp://www.ncc-1701.jp/kakei/InteractiveComm/Class9/InteractiveComm_9.htmlです
263 ◆/91kCCQXBo :2009/07/20(月) 19:32:09
>>239
// 問1
int i;
for(i=5;i<=13;i++){
  cout << i << "を書きました\n";
}
// 問2
int i;
for(i=100;i>=87;i--){
  cout << i << "を書きました\n";
}
// 問3
int i,j;
for(i=1;i<=9;i++){
  for(j=1;j<=9;j++){
    cout << i << "*" << j << "=" ;
    cout.width(2);
    cout <<i * j<< " ";
  }
  cout << "\n";
}
// C++共通テンプレート
#include <iostream>
using namespace std;
int main(void) {
  // 問題の解答をここに流し込む。
  return 0;
}
264デフォルトの名無しさん:2009/07/20(月) 19:53:02
どなたか>>254お願いします
265 ◆/91kCCQXBo :2009/07/20(月) 19:55:01
>>256 main()を分解して、必要な関数にしてくれ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9803.c
266デフォルトの名無しさん:2009/07/20(月) 22:03:55
>>254 課題1
#include <stdio.h>
#include <string.h>
struct stationery {
char name[100];
int cost;
int price;
};
int main(void) {
struct stationery pencil = {"HB pencil", 25, 50};
struct stationery eraser;
struct stationery copy[2];
int i;
printf("消しゴムの名前?:");
scanf("%s", eraser.name);
strcpy(eraser.name, "Plastic-eraser");
printf("仕入価格 販売価格?:");
scanf("%d %d", &eraser.cost, &eraser.price);
putchar('\n');
strcpy(copy[0].name, pencil.name);
copy[0].cost = pencil.cost;
copy[0].price = pencil.price;
copy[1] = eraser;
for (i = 0; i < 2; i++) {
printf("コピー%dのデータ\n", i);
puts("商品名        仕入価格 販売価格");
printf("%-20s%10d%10d\n\n", copy[i].name, copy[i].cost, copy[i].price);
}
return 0;
}
267デフォルトの名無しさん:2009/07/20(月) 22:04:44
>>254 課題2
#include <stdio.h>

struct stationery {
char name[100];
int cost;
int price;
};

int profit(struct stationery *a, int *b, int c) {
int i;
int sum = 0;
for (i = 0; i < c; i++) {
sum += ((a+i)->price - (a+i)->cost) * *(b+i);
}
return sum;
}

int main(void) {
struct stationery stat[3] = {
{"HB pencil", 25, 50},
{"Plastic Eraser", 30, 60},
{"A4 notebook", 50, 100}
};
int n[3] = {20, 30, 10};
printf("総利益 = %d円\n", profit(stat, n, 3));
return 0;
}
268デフォルトの名無しさん:2009/07/20(月) 22:20:56
>>263
widchってwhichですか?
あと、問3が九九のやつのですよね?
269デフォルトの名無しさん:2009/07/20(月) 22:40:32
>>263
すみません。
widchって何でしょうか
270デフォルトの名無しさん:2009/07/20(月) 22:43:35
成績表示プログラムを作成せよ。処理する人数は40人であるとする。仕様は以下の通り
1番の成績を入力してください
85
1番は85点です
2番の点数を入力してください
100
2番は100点です


この問題は一部を以下にしめす
for(i=『』; i <=『』;『』) {
cout << i << "『』\n";
cin << n;
cout << i << "『』" << n << "『』\n";
}

ここでは、上のプログラムの一部を使い(更には『』に適当な文字を入れて)、上の仕様を満たすプログラムを作成せよ

271デフォルトの名無しさん:2009/07/20(月) 22:44:01
ググレカス
272270:2009/07/20(月) 22:44:41
角度0〜90度、10度刻みのsin、cos、tan表を作成せよ。
#include<iostream>
using namespace std;

int main(){
int i,j;

for(i=1;i<=2;i++){
for(j=1;j<=3;j++){
cout << i << "X" << j << "は" << i * j<< "です\n"; }
}
}
}
上の例文を参考に


これ分かる人いませんか?
273デフォルトの名無しさん:2009/07/20(月) 23:59:52
>>266-267
ありがとうございます
274デフォルトの名無しさん:2009/07/21(火) 00:09:13
最近質問者の質が悪すぎる
>>268>>269widchってなに?どこにそんな関数書いてあるよ?え?言ってみろ
問3が九九のやつかなんて実行すれば分かるだろ?え?面倒だ?視ね

>>270>>272
お前同じ質問者か?>>1読んで市ね
275デフォルトの名無しさん:2009/07/21(火) 00:12:25
1問100円、レポート3000円ぐらいで課題に答えるサービスやったら儲かるかな?
276デフォルトの名無しさん:2009/07/21(火) 00:13:56
>>275
馬鹿じゃね?
277デフォルトの名無しさん:2009/07/21(火) 00:15:17
いいかげんC言語とC++を分けてくれ

エスパー禁止にすべき

解答以外の発言は慎むようにしてね
質問者への質問はしても良い



こういうのは掲示板を使って行うものではないと思っている
278デフォルトの名無しさん:2009/07/21(火) 00:56:17
すいません>>171の問題だれかお願いします。
279デフォルトの名無しさん:2009/07/21(火) 01:25:32
280デフォルトの名無しさん:2009/07/21(火) 01:56:03
widchってなんですかワロタ
281デフォルトの名無しさん:2009/07/21(火) 01:57:09
>>278
>>204でクローズじゃなかったんだ?
282デフォルトの名無しさん:2009/07/21(火) 02:04:04

[1] 授業単元:プログラミング

[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org263757.zip

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

[4] 期限:2009/07/23

[5] その他の制限:
問題文の通りです。
宜しくお願いします。
283デフォルトの名無しさん:2009/07/21(火) 03:52:47
284デフォルトの名無しさん:2009/07/21(火) 05:09:44
int main() じゃなくて int main(void) でも同じ。
>>270
#include <iostream>
using namespace std;
int main(void) {
  int i, n;

  for(i=1; i <=40; i++) {
//    cout << i << "番の成績を入力してください\n";
//    cin << n;
    cout << i << "番の点数を入力してください\n";
    cin >> n;
    cout << i << "番は" << n << "点です\n";
  }
}

>>272
#include <iostream>
#include <math.h>
using namespace std;
int main(void){
  int i;

  cout << fixed << " sin(0~90) cos(0~90) tan(0~90)\n";
  for(i=0; i<=90; i+=10){
    cout.width(2);
    cout << i <<' '<< sin(M_PI*i/180) <<' '
      << cos(M_PI*i/180) <<' '<< tan(M_PI*i/180) <<'\n';
  }
}
285デフォルトの名無しさん:2009/07/21(火) 10:12:41
[1] ソフトウェア工学
[2] C++言語を使ってスタックを実現するクラスを定義し,その実行を確認するプログラム(main関数)を書く.

クラス名はstackとする.

要素のデータの型はintとする.
格納できる要素の最大数は10とする.
公開されているインターフェースは下記のものとする.

void push(int data);
int pop();

初期設定は,以下のいずれかにより行う.
(1) クラスのコンストラクタ(constructor)の機能を用いる.
(2) 初期設定用のインターフェース(init)を定義し,スタックを使用する前に,initを呼び出す.

機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい.

上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは評価の対象としない.

#入出力はprintfを用いること.
[3] 環境
 [3.1] XP
 [3.2] Visual Studio 2008
 [3.3] C++
[4] 7/22(明日です
期限ぎりぎりですいません。
[5]よくわからないので無しで。
よろしくお願いしますm(_ _"m)
286デフォルトの名無しさん:2009/07/21(火) 10:18:11
[1] ソフトウェア工学
[2] (1) 継承  
>>285で作成したスタックを実現するクラスを継承し,スタックの先頭(最後にpushされたデータ)を返す操作(メンバ関数)を追加したクラスを定義せよ.新たに定義されたクラスの名称はstack2とする.
(2) 仮想クラスと多相性  cryという操作(メンバ関数)を持つクラスanimalを定義する.cryは仮想関数(virtual属性をもつ)とする.メンバ変数は不要.
以下のプログラムを用い,animalクラスを継承して,dogクラスとcatクラスを定義せよ.また実行させてその結果をみる.(報告は不要)
dogクラスで関数cryを実装し,文字列"bowwow"を表示させる.catクラスで関数cryを実装し,文字列"mew"を表示させる.
#include <stdio.h>
class animal{};
class cat    {};
class dog    {};
void main() {
animal *ap;
cat *cp;
dogs *dp;
 cp = new cat();
dp = new dog;
ap = (animal *)cp;
ap->cry();
ap = (animal *)dp;
ap->cry();}
[3] 環境
 [3.1] XP
 [3.2] Visual Studio 2008
 [3.3] C++
[4] 7/22(明日です
[5]よくわからないので無しで。
二個目です。これでラスです。>>285と繋がってます。よろしくお願いしますm(_ _"m)
287デフォルトの名無しさん:2009/07/21(火) 10:26:49
C++ですが


入力した整数値の桁を数えるプログラムを作る

整数値を入力せよ
5659693
7桁です


問題を解くためのプログラムの一部を下に示す
_____{
a=a/10;
keta++; //またはketa=keta+1;
}____



あと
#include <iostream>
using namespace std;



return 0;
の中に入れてください
288デフォルトの名無しさん:2009/07/21(火) 11:07:10
>>287 礼はいらない >>1
// 入力した整数値の桁を数える
#include <iostream>
using namespace std;
/**/
int main(void) {
  int a, keta;
/**/
  cout << "整数値を入力せよ\n"; cin >> a;
  for(keta=0; a>0; )
/**/{
    a = a/10;
    keta++;
  }
/**/
  cout << keta << "桁です\n";
/**/
  return 0;
}
289デフォルトの名無しさん:2009/07/21(火) 11:24:08
>>285-286
スタックのお題。継承まで。
動作は保障しないので自分でデバッグ、修正してくれ。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9807.zip
290デフォルトの名無しさん:2009/07/21(火) 11:35:58
>>286
動作は保障しない。

#include <stdio.h> 
class animal{
public:
    virtual void cry()=0;
}; 
class cat:public animal{
public:
    void cry(){ printf("mew\n");}
}; 
class dog:public animal{
public:
    void cry(){ printf("bowwow\n");}
}; 
void main() { 
    animal *ap; 
    cat *cp;
    dog *dp; 
    cp = new cat();
    dp = new dog; 
    ap = (animal *)cp; 
    ap->cry(); 
    ap = (animal *)dp;  
    ap->cry();
    delete cp;
    delete dp;
291デフォルトの名無しさん:2009/07/21(火) 11:39:18
[1] 授業単元:コンピュータリテラシー
[2] 問題文(含コード&リンク):問題文と参考は以下です
  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9806.txt
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:BCC Developer version 1.2.21
 [3.3] 言語:C++
[4] 期限: 7月25日まで
[5] その他の制限: voidやcher?は使わないで下さい。主に平均の出し方が分からないのですが、/などだけを使って欲しいです。
  今習っているのがif、for、while、関係演算子。義理演算子、配列付変数その中からお願いします。
お手数ですがよろしくお願い致しますor2
292デフォルトの名無しさん:2009/07/21(火) 12:17:45
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):
typedef struct node *Tree;
typedef struct node{
int data;
Tree left_subtree;
Tree right_subtree;
}Node;

2分木の大きさ(節点の個数)を調べて返す関数
int size(Tree t)を定義せよ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/22まで
[5] その他の制限:とくになし
よろしくお願いします
293デフォルトの名無しさん:2009/07/21(火) 12:25:43
>>291
意向に添えてるかはわからないが、とりあえず修正してみた。動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9808.txt
294デフォルトの名無しさん:2009/07/21(火) 12:54:48
>>291 成績なら降順で、番号なら昇順ということは無いのか。
295デフォルトの名無しさん:2009/07/21(火) 13:07:55
>>293さんありがとうございます。ただ、自分のパソコンでは学校指定のプログラムが入っていないので、明日学校で確認します。
>>294さん 特にないです。並び替えさえできればそれで大丈夫です。よろしくお願いします。
296デフォルトの名無しさん:2009/07/21(火) 13:36:53
>>292
int size(Tree t){
if(t==NULL) return 0;
return size(t->left_subtree)+size(t->right_subtree)+1;
}
297デフォルトの名無しさん:2009/07/21(火) 13:37:51
[1] 授業単元: 数値解析プログラミング
[2] 問題文(含コード&リンク): ∫₀¹ 1/1+x²dx の積分を
              方形公式、台形公式、シンプソン公式を
              用いて数値計算するプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月24日(金)まで
[5] その他の制限: 分割数を10の時と50の時のプログラムを作成する

よろしくお願いします
298デフォルトの名無しさん:2009/07/21(火) 13:48:29
>>296
ありがとうございました
299デフォルトの名無しさん:2009/07/21(火) 14:33:29
300デフォルトの名無しさん:2009/07/21(火) 16:21:15
[1] 授業単元:プログラミング基礎
[2] 繰り返しをwhileもしくはdo〜while文を使って作成しなさい。

任意の数字を入力し、その数字分まで1つずつ加算して表示する。
入力した数字までいったら逆に1になるまで表示する。


  8

*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*
[3] 環境
 [3.1] WindowsXP
 [3.2] gcc
 [3.3] C
[4] 期限:2009年7月23日(木)まで
[5]数字は8でお願いします
よろしくお願いしますm(_ _)m
301デフォルトの名無しさん:2009/07/21(火) 17:15:33
>>300
for文使っちゃいけないのか?
一応、for文を使わずwhile文で書いたが不便だな
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9811.txt
302167:2009/07/21(火) 17:15:51
>>167です。久しぶりに見たら図がアップされていなかったので
投稿しなおします

[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
授業時に作成したプログラム(ヒント)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9810.txt
作成する図形: http://www.dotup.org/uploda/www.dotup.org265243.pdf.html
実行例http://s.pic.to/zrnq2
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: (VC++
 [3.3] 言語: (C
[4] 期限: ([09年7月20日15:30まで] または [無期限] のいずれか)
[5] その他の制限:成功すれば図は立体的に見える。
1.星形の座標列を生成する関数void draw_star(引数1,2,/…)を作成すること
どの星型もこの関数ひとつで描けるようにすること
2.星型中心座標から各凸角までの距離は0.5、各凹角までの距離は0.25
3.星型中心y座標値は-10から10までの整数とすること
y=0の場合は凸角数4というように、y座標値で凸角数が決まってくいる(実行例参照)
ifやswitchなどの条件分岐(場合分け)を用いずに規則を見つけてプログラミングすること
5.各行(各y座標値)の最初(左端)の星型中心x座標値はゼロとし、最後(右端)のそれは
40以下とすること。隣り合う星型中心のx座標値の間隔dxはdx=2+0.3×|y|とすること。
6.実行結果は.csvファイルとして保存すること
303デフォルトの名無しさん:2009/07/21(火) 17:17:25
[1] 授業単元:
    インタラクティブッコミュニケーション
[2] 問題文(含コード&リンク):
    外部変数を使用せずに、main()から関数を呼び出し、円をドルとユーロに換算
し、main()内のprintf()で結果を出力するプログラムを作成せよ。
    但し、1ドル = 118円, 1ユーロ = 160円とする。また、プログラムは負の値が入
力されるまで繰り返されるものとする。

    ttp://www.ncc-
1701.jp/kakei/InteractiveComm/Class10/InteractiveComm_10.html
の一番下の演習。
    最終的にはこの形にttp://www.ncc-
1701.jp/kakei/InteractiveComm/Class10/exercise10.gif  
[3] 環境
 [3.1] OS: Windows XP
 [3.2] MicroSoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 2009年7月27日
[5] その他の制限:
  問題文のページにもあるようにポインタとアドレスを使用してください。
締切日はまだ先ですが、出来るだけ早いほうが嬉しいです。
304デフォルトの名無しさん:2009/07/21(火) 17:29:57
>>302ですが
提出状況が悪いため明日提出になりました。
なので今日中にお願いします。


http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9791.c
このプログラムをコンパイルしてみたのですが
thetaが定義されてないのと
17行目、constのまえのに;がありませんというエラーが出ます
修正お願いします
305デフォルトの名無しさん:2009/07/21(火) 17:30:40
文字コードとかC言語とかよく分からないのでスレ違いかもしれませんが質問させて下さい

文の格納に必要なバイト数をJISコードの場合とシフトJISコードの場合のそれぞれで計算する問題なのですが、これはどうやって考えれば良いのですか?

漢字、カタカナ、英数字(半角)、記号で構成されている文です

曖昧な質問で申し訳ないのですが、ここでは課題の文を晒せないので、よろしくお願いします><
306デフォルトの名無しさん:2009/07/21(火) 17:41:35
>>304
M_PIは定義してあるかい?
307デフォルトの名無しさん:2009/07/21(火) 17:42:58
>>305
C言語なら俺に聞け(入門篇) Part 50
http://pc12.2ch.net/test/read.cgi/tech/1246342847/
308デフォルトの名無しさん:2009/07/21(火) 17:54:05
>>304
C言語ではブロック内の変数宣言は最初の実行文の前に置かないとエラーになる
つまり次のように入れ替える

isset[idx] = 1;
const double theta = M_PI / num;

const double theta = M_PI / num;
isset[idx] = 1;

あとVC++の場合、>>306のようにM_PIが定義されてないといわれるかもしれない。
そのときはmath.hをインクルードする前に、次のマクロ定義を書いておく

#define _USE_MATH_DEFINES /* ←これを書く */
#include <math.h>
309デフォルトの名無しさん:2009/07/21(火) 17:59:19
>>303
#include <stdio.h>
void conversion(float yen, float *doller, float *euro)
{
static const float MONEY_DOLLER = 109;
static const float MONEY_EURO = 139;
*doller = yen/MONEY_DOLLER;
*euro = yen/MONEY_EURO;
}
int main(int argc, char *argv[])
{
float yen, doller, euro;
yen = doller = euro = 0;
printf("プログラムを終了する場合は負の値(少数型)を入力してください\n");
while(1)
{
printf("換算金額を少数型で入力してください。");
scanf("%f", ¥);
if(yen < 0) break;
conversion(yen, &doller, &euro);
printf("%.2f円は\t%.2fドル\t%.2fユーロです。\n", yen, doller, euro);
}
}
310デフォルトの名無しさん:2009/07/21(火) 18:02:05
>>302
ヒントのプログラムを修正
void main(void)
{
double x, y;
fp=fopen("star.csv","w");
//NULLの場合の処理省略

for (y = -10; y <= 10; y += 1.0) {
for (x = 0; x < 40; x += 2.0+0.3*abs(y)) {
draw_star(4+abs(y), 0.5, x, y);
}
}
fclose(fp);
}
311デフォルトの名無しさん:2009/07/21(火) 18:08:35
>>309
おれには、「少数型」って書く勇気がなかった・・・
312 ◆/91kCCQXBo :2009/07/21(火) 18:24:31
>>311 いいつっこみありがとう。
#include <stdio.h>
void conversion(float m_yen, float *m_doller, float *m_euro)
{
  static const float MONEY_DOLLER = 109;
  static const float MONEY_EURO = 139;
  *m_doller = m_yen/MONEY_DOLLER;
  *m_euro = m_yen/MONEY_EURO;
}
int main(int argc, char *argv[])
{
  float m_yen, m_doller, m_euro;
  m_yen = m_doller = m_euro = 0;
  printf("プログラムを終了する場合は負の値(少数型)を入力してください\n");
  while(1)
  {
    printf("換算金額を少数型で入力してください。");
    scanf("%f", &m_yen);
    if(m_yen < 0) break;
    conversion(m_yen, &m_doller, &m_euro);
    printf("%.2f円は\t%.2fドル\t%.2fユーロです。\n", m_yen, m_doller, m_euro);
  }
}
313デフォルトの名無しさん:2009/07/21(火) 18:30:27
>>307
間違った誘導するな。課題だと書いてあるのだからこのスレで処理しろよ。
314デフォルトの名無しさん:2009/07/21(火) 18:30:42
309だが、scanfが変になってたな。すまぬ。

>>312
修正thx
315234:2009/07/21(火) 18:48:57
申し訳ありませんが、どなたか>>234をお願いします。
>>244で補足させていただきました通り、
教官の話では、ウィンドウの移動でなくても
長方形を描画してデータのに合わせて移動させていく形でもよいそうです
また、ウィンドウ2の動きだけの実現でもよいそうなのでよろしくお願いします
316デフォルトの名無しさん:2009/07/21(火) 20:05:43
[1] 授業単元:ゲーム製作1
[2] 問題文(含コード&リンク): ※
[3] 環境
 [3.2] コンパイラ名とバージョン:MicroSoft Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2009年7月24日
[5] その他の制限:※

※バレが怖いのでメールにてやり取りさせていただけないでしょうか・・・。
もしそれでもいいという方がいらっしゃれば
antispammailaddress49 @ yahoo.co.jpまでメール下さい、お願いします。
ゲーム製作ですが、単純な内容だと思います。
317デフォルトの名無しさん:2009/07/21(火) 20:10:20
メールでやり取りしても公開されたら意味ないぞ。
通報もされるかも
318デフォルトの名無しさん:2009/07/21(火) 20:13:25
まあ良心に任せるしかないっしょ
通報ってどこにだよw
319デフォルトの名無しさん:2009/07/21(火) 22:05:37
すいません、誰か>>253お願いします。
320デフォルトの名無しさん:2009/07/21(火) 22:49:47
>>318
課題から学校名がわかる可能性あり
321デフォルトの名無しさん:2009/07/21(火) 22:51:37
別にばれても良いじゃん
ちょっと変えてシラきったら証拠ないんだからむこうだって泣き寝入りだよ
教授にプロバイダにアクセスログ聞きだせる権限でもあるなら別だけどな
322316:2009/07/21(火) 23:10:13
頼んでいる身なので全く文句を言える立場ではありませんが
なるべく秘密裏にしていただけると嬉しいです
323デフォルトの名無しさん:2009/07/21(火) 23:22:18
>>321
プログラムの中身を解説することを求められたら‥‥‥。
324デフォルトの名無しさん:2009/07/21(火) 23:23:48
>>323
忘れました
325デフォルトの名無しさん:2009/07/21(火) 23:37:34
[1] 授業単元:コンピュータ入門U
[2] 問題文(含コード&リンク):
年月日を表現する構造体を作成し,この構造体を使って,
現在の年月日の前の日と次の日をセットする関数を作成せよ.
※この課題では struct tm は使わず、新たに構造体を作ること。また、閏年
等もきちんと判別させること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4のはず
 [3.3] 言語:c
[4] 期限:[2009年07月28日23:59まで]
[5] その他の制限:特にないです、どなたかよろしくお願いします。
326デフォルトの名無しさん:2009/07/21(火) 23:46:42
>>234
一応やってみた。題意を満たしてるかどうかはわからん
あと、環境がVS2005EEなので動かなかったらゴメンネ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9814.c
327sage:2009/07/21(火) 23:58:19
[1] 授業単元: データ構造
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9815.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:MicroSoft Visual Studio 2005
 [3.3] 言語:C
[4] 期限: [2009年7月26日23:59まで]
[5] その他の制限: 課題用テンプレート参照
期限が近いので、切実にお願いします。
328デフォルトの名無しさん:2009/07/22(水) 00:00:15
こういう穴抜きの課題って何の意味も無いよなw
329デフォルトの名無しさん:2009/07/22(水) 00:06:29
[1] 授業単元:プログラミングT
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9816.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4 VC 6.0
 [3.3] 言語:どちらでも可
[4] 期限:2009年7月27日:23:00まで
問題文は上記のURLにあります。
330デフォルトの名無しさん:2009/07/22(水) 00:39:35
>>321
シラを切れるほど変更できないでしょ。
鶏の唐揚げにレモン汁かけて「これは鶏の唐揚げじゃないですから!」って言い張ってるようなもんで
聞いてる先生の方が恥ずかしくなるレベルなんじゃないの?
331デフォルトの名無しさん:2009/07/22(水) 00:40:21
[1] 授業単元:プログラミング演習
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9817.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語:C++
[4] 期限:2009年7月23日9:00
よろしくおねがいします。
332デフォルトの名無しさん:2009/07/22(水) 00:44:59
>>330
何を今更って感じだけどなw
まあでもバレ気にするならメールはアリだと思うけど俺は
333デフォルトの名無しさん:2009/07/22(水) 00:48:17
>>329
前々スレで作ったので、
そっちから引っ張ってきた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9427.txt

これ見る限り同じ学校か同一人物?
全く同じ課題じゃないの?
334デフォルトの名無しさん:2009/07/22(水) 00:49:58
[1] 授業単元:プログラミング言語c
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9755.txt
上のプログラムがなぜ図のような座標列を生成したのかを説明せよ
図;http://g.pic.to/17jcdy
ヒント1;関数draw_polygon()中のif(r>xxx)において、数値xxxをいろいろと変えること
数値xxxを大きくしていくと図が徐々に単純になっていく、単純な図から考えを進めること

ヒント2;自分がパソコンになったつもりでプログラムを順に追っていくこと。
その際呼び出した側のdraw_polygon()と呼び出された側のdraw_polygon()を区別して考えること
(前者と後者のローカル変数の区別をわすれないこと)

[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: (C
[4] 期限: ([09年07月22日11:30まで]
[5] その他の制限: 一つ一つのプログラムの意味を詳しく教えてください。
お願いします
335デフォルトの名無しさん:2009/07/22(水) 01:25:46
>>334
なんかデジャブを感じるんだが
336デフォルトの名無しさん:2009/07/22(水) 01:28:36
俺だけじゃなかったか
337デフォルトの名無しさん:2009/07/22(水) 01:29:03
遅レスですまそ

>>308
>>304 が載せたソース書いた >>212 だけど、

関数化してたのをすっきりさせたときにコピペ順序ミスった
しかもgccで確認してたから気付かなかった。フォローthx
M_PI の定義については VC++ だけでバージョン示されてなかったから
M_PI が math.h インクルードで使えない6.0以前を無視して敢えてそんな風に書いてみた
>>212で defineとか使ってごちゃごちゃ とか言ったのはそこらへんも書いてた
なんか糞レスでごめん
338234:2009/07/22(水) 01:42:49
>>326
ありがとうございます!
自宅に環境がないので、学校が開き次第動作確認して報告いたします。

プログラム提出後のレポートのため、
こちらはプログラムの締め切り期限後でも構いませんので、
関数MyRegisterClassEx、InitInstance、WINAPI _tWinMainの
役割と全体の流れを簡単に教えていただけないでしょうか。
お手数をお掛けして申し訳ございませんが、
何卒よろしくお願い申し上げます。
339デフォルトの名無しさん:2009/07/22(水) 03:38:38
340デフォルトの名無しさん:2009/07/22(水) 04:03:45
>>334
>>133 見てなかったのか (C 括弧閉じない性格の人
341デフォルトの名無しさん:2009/07/22(水) 10:02:51
[1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだデータ文字列を、
データベースに格納する前にキューに一時的に格納するプログラムを
作成する。このとき、データをまとめたデータ文字列を一つずつ、キューへ
エンキューしたり、デキューしたりする過程が分かるプログラムを作成する。
なお、キューを実現するライブラリは、キューのための別のヘッダにまとめる。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月21日
[そのほか]
・入力ストリームから読み込んだデータ文字列を、キューにエンキューしたり、
デキューしたりするたびにデータベースに格納された全データを表示する。
・構造体オブジェクトは動的な記憶域に生成する。
・生徒の名前、試験の点数を構造体オブジェクトに格納することとする。
・関数の処理にコメントをつけて、キューをどのように実現しているか、
そのプログラムの処理内容が分かるようにする。
[このプログラムの流れ]
(1)ファイルやキーボードなどの入力ストリームから
データをデータ文字列として読み込む
(2)このデータ文字列をキューに一時的に蓄える
(3)キューからデータ文字列を取り出す
(4)このデータ文字列からそれぞれデータを取り出して
文字列や数値データに変換する
(5)変換したデータをデータベース(構造体の配列など)に格納してまとめて管理する
(6)このデータベースからデータを参照し、ディスプレイに出力する
[生徒、点数データ]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9797.txt
[参考プログラム]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9798.txt
お願いします
342デフォルトの名無しさん:2009/07/22(水) 11:17:28
誰か >>253お願いします。
343デフォルトの名無しさん:2009/07/22(水) 11:35:50
>>342
とりあえず2分法
#include <stdio.h>
#include <math.h>
#define E 1.0e-11

double f(double x) { return 1 / x - tan(x); }

int main(void)
{
double x0 = 0.5, x1 = 1.5, m;
int i = 0;

do {
printf("%4d: f(%f) = %f, f(%f) = %f\n", ++i, x0, f(x0), x1, f(x1));
m = (x0 + x1) / 2;
if (f(x0) * f(m) >= 0) x0 = m;
else if (f(x1) * f(m) >= 0) x1 = m;
} while (fabs(f(x0) - f(x1)) > E);

printf("ans: %20.16f\n", x0);
return 0;
}
344316:2009/07/22(水) 12:55:33
どなたか本当にお願いします、メールください
345234:2009/07/22(水) 13:19:28
>>326
VisualStudio2005で動作確認を行ったのですが、
エラーは出ないものの、実行の様子が確認できませんでした

どなたかVisualStudioで動作確認できた方いらっしゃいますでしょうか?

>>339
リンク先で関数の説明を読んでみます
誠にありがとうございました
346デフォルトの名無しさん:2009/07/22(水) 13:23:43
メールだろうが掲示板だろうが、他人に聞いたら
その段階でその情報は公開されたと考えて欲しい。
とまでは言わないが、いかに質問内容を工夫して
不要な(回答者や他人に迷惑をかけかねない)情報を
漏らさないように質問することも勉強のうちじゃない
か?
まぁ大抵は漏らしてもなんともない内容のものである
ことが殆どなんだけどね。
347デフォルトの名無しさん:2009/07/22(水) 13:28:05
>>344
ここにいる連中はお前の家庭教師でもなんでもねーんだよボケ
お前みたいな屑は単位落としたほうがいい
348デフォルトの名無しさん:2009/07/22(水) 13:35:16
>>344
メールは出したいんだが、おまえさんが変なヤツかどうかわからんからな。
変なヤツにからまれるのはイヤだ
349デフォルトの名無しさん:2009/07/22(水) 14:19:50
>>348
変な奴ってことは既に分かってるじゃないか
どの程度粘着でキチってるかだけが焦点
350デフォルトの名無しさん:2009/07/22(水) 14:36:40
なんでそんな叩いてるのか分からんのだがw
バレが怖いからメールでっていうのは前のスレから希望あったし、
別に考え方は普通じゃん、変な奴か?
文章もおかしくないし
351デフォルトの名無しさん:2009/07/22(水) 14:38:14
あとこれな

>気に入らない質問やその他や発言はスルーの方向で。
352デフォルトの名無しさん:2009/07/22(水) 14:48:38
前からメール希望だの金払うだのあったけど
>>1で禁止しといた方がいいかもな
トラブルのもとだし

だいたいバレ怖いなら自分でやるのが普通だろ
353デフォルトの名無しさん:2009/07/22(水) 15:14:06
>>316
>※バレが怖いのでメールにてやり取りさせていただけないでしょうか・・・。
>もしそれでもいいという方がいらっしゃれば

単純に「それでもいい」という方がいないだけと思います。自分も含めて。
>>346の言うようになにかしらの工夫をしたほうが円滑に進むと思いますよ。
354デフォルトの名無しさん:2009/07/22(水) 15:32:03
>>316
ここで待つより、信頼できる友人か先輩に頼む方が現実的
355デフォルトの名無しさん:2009/07/22(水) 16:01:58
>>301さん
ありがとうございます!
そうですね、whileもしくはdo〜whileと指定されてますので><
お手数お掛けしましたm(_ _)m
356デフォルトの名無しさん:2009/07/22(水) 16:08:02
>>316
動作が保障できないからいやです〜。
間違いや仕様変更があったらそのたびにゴネラレルとほんとにやってられんからねぇ。
357デフォルトの名無しさん:2009/07/22(水) 16:31:28
メールだとごねられる、の意味がわからんのだがww
あれか、やっぱ社交能力ないヒキコモリばっかりなのかwwww
358 ◆/91kCCQXBo :2009/07/22(水) 16:32:13
>>121 >>334
1.最初に、原点(0,0)を中心に、幅2高さ2の菱形を描く。
2.次に、最初に描いた菱形の4個の点を中心として、幅1高さ1の菱形を4個描く。
3.次に、2.で描いた4個の菱形の16個の点を中心として、幅1/2高さ1/2の菱形を16個描く。
4.次に、3.で描いた16個の菱形の64個の点を中心として、幅1/4高さ1/4の菱形を64個描く。
5.次に、4.で描いた64個の菱形の256個の点を中心として、幅1/8高さ1/8の菱形を256個描く。
1.での菱形の大きさを1とすると、5.では1/16=0.0625<0.1なので、ここまでで止める。
1.で描いた菱形は、半径1の円のそれぞれ0°90°180°270°360°を各点で結んだ正方形である。
359デフォルトの名無しさん:2009/07/22(水) 16:33:13
確かに、メールとここでのやり取りにオープンかそうでないか以外の違いがないのに
メールだと動作が保障できないとかキチガイじみたクズがいるみたいだな。
スルーもできないみたいだしwwww
360デフォルトの名無しさん:2009/07/22(水) 16:35:48
メール使用の是非はともかく
とりあえず荒れるってのはよく分かった。
361デフォルトの名無しさん:2009/07/22(水) 16:36:38
>>357-358
そんなこと書く暇があったらここに問題文を書いちゃいなよ
362デフォルトの名無しさん:2009/07/22(水) 16:37:32
レス番が飛んでるのに気づかなかった
s/>>357-358/>>357,>>359/
363デフォルトの名無しさん:2009/07/22(水) 16:41:38
>>357 >>359
特にメールだから、動作が保障できないとは書いてないが。俺いつも言ってるよ?
それに、そんな人を中傷するであればあんたらが受ければ万事解決だ。がんばってね。
364デフォルトの名無しさん:2009/07/22(水) 16:44:31
>特にメールだから、動作が保障できないとは書いてないが。俺いつも言ってるよ?
これどういう意味?
365デフォルトの名無しさん:2009/07/22(水) 16:46:59
メールでやり取りした後ここで公開すれば万事解決
366デフォルトの名無しさん:2009/07/22(水) 16:50:54
そういう根暗に当たらないようにしないとね
367デフォルトの名無しさん:2009/07/22(水) 16:52:41
>>364
俺、解答するときはその一文を常につけてる。動作は保障しない。って。
見たことないかい?
368デフォルトの名無しさん:2009/07/22(水) 16:54:22
自信ないなら質問者の迷惑だからROMってろ雑魚
369デフォルトの名無しさん:2009/07/22(水) 16:55:15
370デフォルトの名無しさん:2009/07/22(水) 16:56:57
>>359
メールでのやり取りは1:1
だから返事が遅くなれば催促される。
内容にミスがあっても結局自分しか治せないので同様に催促される。

暇人じゃねえとメールでのやり取りなんてめんどくさくてやってられんだろww
俺が思う嫌というのと>>356の言ってることは違うけど
叩くぐらいなら>>359お前がメールしてやれよw
371デフォルトの名無しさん:2009/07/22(水) 17:01:46
>>368
君みたいなやつさ。メールだと性格変わるやつがいるからねぇ〜。
それと、2chで何いってんのさ。珠玉混合。わすれてないかな?
372デフォルトの名無しさん:2009/07/22(水) 17:11:44
>>371
玉石混交、では?
373デフォルトの名無しさん:2009/07/22(水) 17:16:45
宿題の答と、身バレからの安全、
2つを同時に求めてもうまくいくわけないよ、ほら一石二鳥っていうじゃん!
374デフォルトの名無しさん:2009/07/22(水) 17:18:06
>>372
うおー。こういうミスがあるからプログラムは恐ろしい。いや関係ないか。。。
指摘さんきゅー。
375デフォルトの名無しさん:2009/07/22(水) 17:23:36
それは単純に君が哀れ無知君なだけです
376デフォルトの名無しさん:2009/07/22(水) 17:24:59
IMEは玉石混淆とおっしゃっておられる
377デフォルトの名無しさん:2009/07/22(水) 17:31:53
じゃあ細かい動作や返事が遅くなること対して文句言わなきゃやってくれるん?
378デフォルトの名無しさん:2009/07/22(水) 17:48:08
>>377
そこまでして手を抜きたいのかなぁ。
テンプレ書けば解いてくれるといういわばシステムなわけだ、
それを度外視してまでやってもらいたいことってなんだろう??
細かい動作に目をつぶるなら、自分で解いても良いようなきがするが。

意図が読めないなぁ。
379デフォルトの名無しさん:2009/07/22(水) 17:54:16
依頼人はスレを読まずに、メールを待っているんじゃないかな
380デフォルトの名無しさん:2009/07/22(水) 17:56:02
>>379
そうなら、これ以上はやめとく。荒らし気味になってごめんね。
381デフォルトの名無しさん:2009/07/22(水) 18:04:56
ぎょくせきこんこう
だよ
382デフォルトの名無しさん:2009/07/22(水) 19:09:11
[1] 授業単元:ゼミ
[2] 問題文(含コード&リンク):テキストボックスから文字列を取得して文字数に応じて処理を振り分ける
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] VC 6.0
 [3.3] 言語:C
[4] 期限: 出来れば本日中にお願いします
[5] その他の制限: 特にないです。

JAVAだと分かるんですがCだと書き方が難しいです。
どなたかよろしくお願いいたします。
383デフォルトの名無しさん:2009/07/22(水) 19:17:47
Cでそれやるの?
384デフォルトの名無しさん:2009/07/22(水) 19:19:03
と、つっこんだものの、その処理ってJavaとかわんなくね?
Javaで書いてみてよ
385デフォルトの名無しさん:2009/07/22(水) 19:26:42
>>382
・問題文は、出題されたまま全文を書いてください。
386デフォルトの名無しさん:2009/07/22(水) 19:27:42
//文字数を取得する
int len = this.textBox1.get_SelectionLength();

if(len == "文字数"){
//処理
}else if(len == "文字数"){
//処理
}

JAVAだとこういう感じになると思うんですがいかがでしょうか?
387デフォルトの名無しさん:2009/07/22(水) 19:28:36
そこだけでいいのかよ
388デフォルトの名無しさん:2009/07/22(水) 19:33:08
>>385
グループで1つのシステムを作成することになったんです。
自分の担当がそこの部分ということで作業を振られました。

なので問題文というのがないんです。申し訳ありません。
システムというのが、人材管理システムを作っております。
IDを手打ちかリーダーかバーコード?で読み込んで
テキストボックスに表示する。
そこでテキストボックスの文字数に応じて処理を振り分けるということです。

言葉足らずですいませんでした。
389デフォルトの名無しさん:2009/07/22(水) 19:34:13
で、Cだとどれが難しいの?
文字列長はstrlenその他で取得できるよ。
390デフォルトの名無しさん:2009/07/22(水) 19:34:56
>>387
処理の内容に関しては自力で考えます。
大枠で急ぎで作れと言われたので頼らせていただきました。
391デフォルトの名無しさん:2009/07/22(水) 19:37:56
>>390
開発環境ほんとにC言語でいいのか?
Cだとオブジェクトも何も使えないよ?
VC++でMFC使うとかじゃないの
392デフォルトの名無しさん:2009/07/22(水) 19:50:05
>>389
恥ずかしながら右も左も分からない状況なんです。
ぐぐりながら探してるんですがなかなかいいサンプルがなくて困っています。

>>391
開発環境は使ってるツールのことですか?
開発ツールはVisual C++ 6.0というのを使っています。
393デフォルトの名無しさん:2009/07/22(水) 19:58:26
[1] 授業単元:プログラミング及び演習
[2] 問題文(含コード&リンク):次に表示
[3] 環境
 [3.1] OS: Mac
 [3.2] コンパイラ名とバージョン:Xcode
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限: 2次元配列(int score[100][3];)を用いる

お願いします
394デフォルトの名無しさん:2009/07/22(水) 19:58:50
char *str;

//テキストボックスの文字列を取得する
// 例1 str = 〜;
// 例2 strcpy(str, 〜);

//文字数を取得する
int len = strlen(str);

if(len == "文字数"){
//処理
}else if(len == "文字数"){
//処理
}

こんなん。大して変わらんよ
395393:2009/07/22(水) 19:59:56
最大100人の学生(学籍番号 No.001〜No.100)の3教科(数学・理科・英語)の点数を
2次元配列(int score[100][3];)を用いて処理するプログラムを作成せよ.
ただし,以下の仕様を満たすこと.

1) 各学生の3教科の合計点と平均点(「平均」は英語で "mean")を求める.
2) 教科別の平均点と最高点と最低点を求める.
3) 各学生の合計点についてその平均点と最高点と最低点を求める.
4) 数値例は5人以上で確認すること.


例えば,以下のように表示されれば OK です.

Number of students?: 5 <enter>
Input 3 scores for No. 001 Math, Sci and Eng: 85 72 90 <Enter>
Input 3 scores for No. 002 Math, Sci and Eng: 60 65 54 <Enter>
Input 3 scores for No. 003 Math, Sci and Eng: 81 85 95 <Enter>
Input 3 scores for No. 004 Math, Sci and Eng: 55 60 72 <Enter>
Input 3 scores for No. 005 Math, Sci and Eng: 92 83 75 <Enter>

No Math Sci Eng Total Mean
------------------------------------
001 85 72 90 247 82.3
002 60 65 54 179 59.7
003 81 85 95 261 87.0
004 55 60 72 187 62.3
005 92 83 75 250 83.3
------------------------------------
Mean 74.6 73.0 77.2 224.8
Max 92 85 95 261
Min 55 60 54 179
396デフォルトの名無しさん:2009/07/22(水) 20:01:41
>>394
ありがとうございます。
検索するとポインタとか出てきて頭がこんがらがって苦労してたんです。
本当にありがとうございました。
397デフォルトの名無しさん:2009/07/22(水) 20:03:53
>>395
ありがとうございます。ひとつかしこくなりました。
398デフォルトの名無しさん:2009/07/22(水) 20:07:05
整数と文字列を比較するのには違和感があるw
399デフォルトの名無しさん:2009/07/22(水) 20:09:04
便宜上のダブルクォーテーションでしょう
400デフォルトの名無しさん:2009/07/22(水) 20:22:18
[1] 授業単元:ゼミ
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9819.txt
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名:emacs
 [3.3] 言語:C
[4] 期限: 7/24
[5] その他の制限: 特にないです。

よろしくお願いします。
401デフォルトの名無しさん:2009/07/22(水) 20:32:07
>>400
1000
i = 1
i++
402デフォルトの名無しさん:2009/07/22(水) 20:37:53
>>401
1は間違えてる
403デフォルトの名無しさん:2009/07/22(水) 20:39:50
>>402
>=だったのか。よく見てなかったわ。
0回だね
404234:2009/07/22(水) 20:45:41
>>326
環境の違いだと思うのですが、
作成していただいたプログラムでは動く方のウィンドウ2しか表示されませんでした、
テキストを読み、2つのウィンドウでウィンドウハンドルやウィンドウプロシージャを別々に
定義するようになおしたところ、きちんと2つ表示させることができました
タイマー部分やセンタリングする関数などはそのまま使用させていただきました
大変助かりました、ありがとうございました!
405234:2009/07/22(水) 20:53:41
>>326
書き忘れの追記なのですが
ディスプレイの幅を取得する関数や、その使い方なども
そのまま使用させていただきました
また追加での不躾な質問にも丁寧に答えて下さりありがとうございました

連書き失礼しました
406デフォルトの名無しさん:2009/07/22(水) 21:14:24
>>384
意図がよくわからないけど、それらしいものを作った。必要に応じてカスタムしてくれ。
あと、動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9820.txt
407406:2009/07/22(水) 21:15:44
>>382だった。ごめん。
408デフォルトの名無しさん:2009/07/22(水) 21:17:25
[1] 授業単元 数値解析

[2] 問題文(含コード&リンク)
以下の非線形方程式の数値解を2分法、はさみうち法、NR法以外の解法で求めよ。
(P) 1/x=tan x
ただし、(P)の数値解は次のように定義されるものである。
xが(P)の数値解 ⇒ |1/x-tan x|<1*10^-11
実際にC言語で数値解析を実行するプログラムを作成せよ。
実行結果は、求めた数値解および反復計算の過程がわかるように表示すること。

[3] 環境
 [3.1] OS Windows Vista
 [3.2] コンパイラ名とバージョン Visual Studio 2008
 [3.3] 言語 C++

[4] 期限 2009年07月25日まで

[5] その他の制限
特になし

以前にも書きこんだんですが
答えをもらえなかったんで。
よろしくお願いします。
409デフォルトの名無しさん:2009/07/22(水) 21:17:44
ま、MFCなんですけどね。ってなりそうに思うわ
410デフォルトの名無しさん:2009/07/22(水) 21:50:37
>>408
>>343じゃダメなの?
411デフォルトの名無しさん:2009/07/22(水) 21:53:20
>>406
ありがとうございます。
今はまだプログラムを読む力がありませんが解析して自分なりに処理を理解しようと思います。
412デフォルトの名無しさん:2009/07/22(水) 22:06:49
>>410
2分法、はさみうち法、NR法以外の方法でやったやつも欲しいんです・・・
413デフォルトの名無しさん:2009/07/22(水) 22:12:25
も、じゃなくて、が、のいい間違いのような。
414デフォルトの名無しさん:2009/07/22(水) 22:17:46
NR法ってニュートン・ラフソン法か
二分法、はさみうち法とこれ以外で精度の良い方法ってあったっけ?
415デフォルトの名無しさん:2009/07/22(水) 22:34:47
>>291です。>>293さんに教えてもらったのですが
int main() , if(i==50) break; , return 0; を習っていないので、一応自分のわかる範囲内でいじったのですがうまくいきません。
お手数ですが、void , char以外に上記を使わないでもう一度作っていただけますか?
よろしくお願いします。
416デフォルトの名無しさん:2009/07/22(水) 22:36:28
まさかのmain()禁止令w
417デフォルトの名無しさん:2009/07/22(水) 22:38:26
int main()→main()
if(i==50) break;→消す
return 0;→消す
でおk
418デフォルトの名無しさん:2009/07/22(水) 22:39:49
>>415
int main()→main()
return 0;→消去
if(i==50) break;→消去
でも行けるよ多分。
50個以上入力すると不思議なことが起こるかも知れんが。
419デフォルトの名無しさん:2009/07/22(水) 22:44:23
>>416さん いや、main()は使って大丈夫ですw変な書き方してすみません。
>>417さん>>418さん ありがとうございます。
420デフォルトの名無しさん:2009/07/22(水) 22:45:59
int main() は大丈夫でないご様子。
421デフォルトの名無しさん:2009/07/22(水) 22:47:02
[1] 授業単元: 信号処理
[2] 問題文:正弦波を出力せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 今日中
[5] その他の制限: 特になし

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9821.c

出力されるファイルの波形がどう見ても正弦波ではありません、何がおかしいのでしょうか?
422デフォルトの名無しさん:2009/07/22(水) 22:52:35
>>408
x=0.86033358902
ソース
#include <stdio.h>
#include <math.h>
double f(double x){
return x*tan(x)-1.0;
}
int main(void){
double sol=0.0,step=1.0/16.0;
while( fabs(f(sol))>fabs(1.0E-11*sol)){
while( f(sol+step)<0.0 ) sol+=step;
step/=2.0;
}
printf("x=%12.11lf¥n",sol);
return 0;
}
423デフォルトの名無しさん:2009/07/22(水) 22:52:39
>>408
ググったら「ブレント法」なるものがあったのでやってみた。
#include <stdio.h>
#include <math.h>
#define E 1.0e-11

double f(double x) { return 1 / x - tan(x); }

int main(void)
{
double x = 0.5, dx = 0.1, x1, zx;
int i;
do { zx = x; x = x + dx; } while (f(x) * f(zx) > 0);
i = 0;
do {
printf("%4d: x = %.16f, f(x) = %.16f\n", ++i, x, f(x));
x1 = x - f(x) / (f(x) - f(zx)) * (x - zx);
zx = x;
x = x1;
} while (fabs(f(x)) > E);
printf("ans: %20.16f\n", x);
return 0;
}
424途中経過出力付けた:2009/07/22(水) 22:56:45
>>408
x=0.86033358902
ソース
#include <stdio.h>
#include <math.h>
double f(double x){
return x*tan(x)-1.0;
}
int main(void){
double sol=0.0,step=1.0/16.0;
while( fabs(f(sol))>fabs(1.0E-11*sol)){
while( f(sol+step)<0.0 ) sol+=step;
printf("途中経過:x=%12.11lf 1.0/x-tan(x)=%12.11lf¥n",sol, f(sol)/sol);
step/=2.0;
}
printf("x=%12.11lf¥n",sol);
return 0;
}
425デフォルトの名無しさん:2009/07/22(水) 23:10:17
>>421
別におかしくないと思うが?
サンプリング周波数を信号周波数の20倍くらいにしないと
正弦波っぽく見えないけどね
426デフォルトの名無しさん:2009/07/22(水) 23:20:28
>>425は優しすぎる。これは罠だ。
427デフォルトの名無しさん:2009/07/22(水) 23:46:41
どなたか >>331 をお願いします。
428デフォルトの名無しさん:2009/07/22(水) 23:57:52
429デフォルトの名無しさん:2009/07/23(木) 00:03:19
>>428
ありがとうございます。とても助かりました。
430デフォルトの名無しさん:2009/07/23(木) 00:14:04
>>421 値による
Input sin frequency(Hz): 1
Input sampling frequency(Hz): 10
play time(second): 2
431デフォルトの名無しさん:2009/07/23(木) 01:22:41
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS:WindowsVista SP1
 [3.2] Visual stdio2008
 [3.3] 言語:C
[4] 期限:2009年7月23日午前7時まで
[5] その他の制限:できるだけ簡単に

倍精度浮動小数点型変数で数値を入力し, 小数点以下を切り捨て・切り上げ・四捨五入するプログラムを作成せよ.
ただし, 条件式は使用せず, 型変換を必ず使用すること.
432デフォルトの名無しさん:2009/07/23(木) 01:40:36
>>431
#include <stdio.h>

int r(double x) { return ((int)(x * 10) % 10) / 5 + (int)x; }

int main(void)
{
double x;
printf("input >> ");
scanf("%lf", &x);
printf("x = %f\n", x);
printf("floor(x) = %d\n", r(x - 0.5));
printf("ciel(x) = %d\n", r(x + 0.5));
printf("r(x) = %d\n", r(x));
return 0;
}
433デフォルトの名無しさん:2009/07/23(木) 02:15:11
[2]問題文

<入力ファイル>
shinjuku hare|kumori
yoyogi kumoei
shibuya kumori
yebisu hare|kumori
oosaki ame

入力ファイルのスペースを区切り文字としてstrtokし、 1行に2つずつあるトークンを
以下に示す構造体の単方向連結リストに保存するプログラムを作成せよ
ここでは,attributes が1行分のデータを保持する.

struct t_list {
char **attributes;
struct t_list *next;
};
  
また、生成した単方向連結リストの内容を標準出力に出力する 関数 print_tlist を含むものとする。

<実行例>
shinjuku,hare|kumori
yoyogi,kumoei
shibuya,kumori
yebisu,hare|kumori
oosaki,ame

続きます。
434433:2009/07/23(木) 02:16:07
[3] 環境
 [3.1] OS: vista
 [3.2] gcc
 [3.3] C
[4] 期限:7月24日 まで(7月23日中にお願いします。)
[5] その他の制限: 特にありません。

長くなってすいません。はっきりしない点があればお尋ね下さい。

435デフォルトの名無しさん:2009/07/23(木) 02:16:22
ろだつかえ
436433:2009/07/23(木) 02:17:20
すいません、やり方がわかりませんでした。
書き直した方がいいですか?
437デフォルトの名無しさん:2009/07/23(木) 02:18:19
いや、もう遅いからいいです。
438デフォルトの名無しさん:2009/07/23(木) 02:46:19
439 ◆/91kCCQXBo :2009/07/23(木) 03:03:44
>>393 各学生の3教科の合計点と平均点(「平均」は英語で "mean")を求める.
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/20-21
440デフォルトの名無しさん:2009/07/23(木) 03:28:00
>>428
宿題の仕様自体がヘン。ここでは4人だから、インデックス3とわかるが、
実務だとそうはいかない。237人目だったら、どうやってインデックス236を自覚するか?
441デフォルトの名無しさん:2009/07/23(木) 03:43:35
>>425
>>430
ありがとう、double型で格納すれば確かに正弦波になるが実はshort型で格納しようとしたらまたもおかしなことになるんだが
どうなってるんでしょうか??
442デフォルトの名無しさん:2009/07/23(木) 03:57:29
>>441
自己解決しました。
最初の宣言をshort型にして、格納するときもsizeof(short)にすれば出来ました。

ちなみに、最初の宣言をdoubleにしてて、格納するときにsizeof(short)でshort型に格納は何がだめなんでしょうか?
例えば

double sindouble;
short sinshort;

sindouble = am * sin(2*PI*fs*t/sample);
sinshort = sindouble;

fwrite(&sinshort,sizeof(short),1,fp);

簡素に書きましたが、上記のようにshort型の変数に一度格納すれば大丈夫なことは確認しましたが、double型を宣言を使わずにshortで格納することは出来ないものなのでしょうか?
443デフォルトの名無しさん:2009/07/23(木) 04:03:32
>>442何度も申し訳ない、最後の1文は、

最初にshort型の宣言を行わずにdouble型で格納することはできないのでしょうか?

という事です。

//sinshort = sindouble;  この文章を消して 

fwrite(&sindouble,sizeof(short),1,fp);

では何がいけないのか?という質問です。そういう仕様ですと言われればそうなのですが、では何故fwrite()関数の引数にsize指定があるのかという事です。
444デフォルトの名無しさん:2009/07/23(木) 04:19:17
>>433
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9825.txt

>>443
sindoubleの先頭sizeof(short)バイトを出力するから。
445デフォルトの名無しさん:2009/07/23(木) 04:28:55
・double型でファイル出力する方法について
fwrite(&sindouble, sizeof(double), 1, fp);

・なぜ引数でsizeを指定するのかについて
はしょって書くと、構造体配列の各要素先頭数バイトをファイル出力したい場合に対応できるから
446445:2009/07/23(木) 04:31:48
そもそもfwriteの中でサイズを知ることができないから指定するほかない
447デフォルトの名無しさん:2009/07/23(木) 05:15:23
<<443〜445
解りました、少し勘違いをしていたようです。fwriteは前から順にサイズ分で区切って書き込むだけで、double型のshortからあふれたバイト数を無視するということを、していないからということですね。
ありがとうございました。
448デフォルトの名無しさん:2009/07/23(木) 08:00:09
[1] 授業単元:数値情報解析
[2] 問題文:ニュートン法により代数方程式を解くプログラムを作りなさい。
      適当な初期値を自分で設定し、3つの真解すべてを求めなさい。
      ただし、結果画面には(1)収束解(2)初期値(3)反復回数が表示されていること。
      このとき、1回の実行で3つの真解すべてを求める必要はない。
      初期値を与え直しながら実行した結果画面が3枚示されていればよいものとする。
・ 解くべき代数方程式 : x^3 - 6x^2 + 7x +2 = 0
・収束条件 : ε < 10^-10
      ・微分は自分で計算した結果(3x^2 - 12x + 7 = 0)をソースファイルに
       直接入力してよいものとする。
   
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio
 [3.3] 言語:C
[4] 期限:2009年7月29日
[5]少しでも易しい表現にしていただくようよろしくお願い致します。
 あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて
 いただけるとありがたいです。
449デフォルトの名無しさん:2009/07/23(木) 09:05:27
450デフォルトの名無しさん:2009/07/23(木) 11:28:33
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
下に示す2 行3 列の行列a, b の差を求めて表示するプログラムを作成せよ.

a =
(
6 3 4
5 1 2
)
b =
(
1 2 3
4 5 6
)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月27日
[5] その他の制限:
451デフォルトの名無しさん:2009/07/23(木) 11:55:39
>>450
#include <stdio.h>
int main(){
int a[2][3]={{6,3,4},{5,1,2}};
int b[2][3]={{1,2,3},{4,5,6}};
printf("a-b=(\n");
printf("%2d %2d %2d\n",a[0][0]-b[0][0],a[0][1]-b[0][1],a[0][2]-b[0][2]);
printf("%2d %2d %2d\n",a[1][0]-b[1][0],a[1][1]-b[1][1],a[1][2]-b[1][2]);
printf(")\n");
return 0;
}
452デフォルトの名無しさん:2009/07/23(木) 13:33:53
[1] 授業単元: プログラミングW
[2] 問題文(含コード&リンク): オブジェクト指向を使ってなんでも良いのでプログラムを書け
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 7月24日まで
[5] その他の制限: メソッドを5個以上使う
          変数はpublicとprivateを使い分ける
よろしくお願いします

453デフォルトの名無しさん:2009/07/23(木) 14:09:44
>>452
なんでもいいってひでえなw
とりあえずプログラムのテーマつうか、なにかネタを言ってくれ
454デフォルトの名無しさん:2009/07/23(木) 15:18:52
ワンとかニャーとか言う系のやつでいいんじゃないの?学生っぽくて
455433:2009/07/23(木) 15:33:35
>>438
すごいなぁ、ありがとうございます。
456デフォルトの名無しさん:2009/07/23(木) 20:27:20
>>452
はいはいガイシュツガイシュツ

908 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/11(土) 01:00:49
>>896
オブジェクト指向?それっておいしいの??と思ってる人間が書いたソース。
継承しないで委譲って感じになってると思う。
あと、動作は保障しない。うちの環境はVC9EEだ。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9722.zip

909 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/11(土) 01:41:23
>>896
>>908さんとかぶったが一応やってみた
俺はC++本当にど素人なので何も保障できない
参考までに使ってくれ
ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/15-16
457デフォルトの名無しさん:2009/07/23(木) 20:55:50
[1] 授業単元 C++

[2] 問題文(含コード&リンク)
テキストファイルの中のタブコードをそれぞれ、空白N個に置き換えて、
新たなファイルに書き出しなさい。ただし、N≧0とする。
コマンドパラメーター:入力ファイル名、出力ファイル名、N

<解答例>
Hello( )Bye←入力ファイル
N=3の場合
Hello( )Bye←出力ファイル

[3] 環境
 [3.1] OS Windows Vista
 [3.2] コンパイラ名とバージョン Visual Studio 2008
 [3.3] 言語 C++

[4] 期限 2009年07月24日午前10時まで

[5] その他の制限
特になし

期限が迫ってますがよろしくお願いします。
458デフォルトの名無しさん:2009/07/23(木) 21:26:53
課題ではないのですが、卒論でSnakeを利用しようと考えています。
そこで動作を確認するため下記のリンクのソースを動かそうとしたのですが、
>.\snake.cpp(21) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
1>.\snake.cpp(21) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
1>.\snake.cpp(21) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
1>.\snake.cpp(63) : error C3861: 'snprintf': 識別子が見つかりませんでした。
となり、動かない現状です。よろしくお願いいたします。

opencvの設定に関しては、こちら(http://imagingsolution.blog107.fc2.com/blog-entry-134.html)を
参照して行いました。

[1] 授業単元:
    画像処理
[2] 問題文(含コード&リンク):
  http://opencv.jp/sample/ 物体追跡(Object Tracking)  
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C++ (おそらく)
[4] 期限: 2009年7月29日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特になし

459デフォルトの名無しさん:2009/07/23(木) 21:58:46
>>458
snprintfを_snprintf辺りにしたらコンパイル通ると思う。
460デフォルトの名無しさん:2009/07/23(木) 22:00:07
Parameter snake_param = { 0.45, 0.35, 0.2 }; /* cvSnakeImage のパラメータ */を
Parameter snake_param = { 0.45f, 0.35f, 0.2f }; /* cvSnakeImage のパラメータ */にする

snprintf (iter, 8, "%03d", ++j);を
sprintf (iter, "%03d", ++j);にするか自分で同じようなものを作る
snprintf()は、C99から入った標準関数であり、sprintf()では、バッファが溢れる可能性があるから採り入れられた
461 ◆/91kCCQXBo :2009/07/23(木) 22:34:42
>>325 昨日と明日の日付
インターフェースの仕様ははっきりしようよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9828.c
462デフォルトの名無しさん:2009/07/23(木) 22:36:00
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9827.txt

[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: 09年07月27日
[5] その他の制限:

歩いてるように見えるってことは一度出力したものを
消すか上書きしないといけないと思うんですがその方法が分かりません
できるだけ難しい関数を使わずにお願いします
463デフォルトの名無しさん:2009/07/23(木) 23:23:38
457です。
本当に申し訳ないですが、どなたかよろしくお願いいたします。
464デフォルトの名無しさん:2009/07/23(木) 23:45:20
>>457 エラー処理省略
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE *ifp = fopen(argv[1], "r");
FILE *ofp = fopen(argv[2], "w");
int N = atoi(argv[3]);
char buf;

while (fread(&buf, 1, 1, ifp) == 1) {
if (buf == '\t') {
int i;
buf = ' ';
for (i = 0; i < N; i++) {
fwrite(&buf, 1, 1, ofp);
}
} else {
fwrite(&buf, 1, 1, ofp);
}
}
return 0;
}
465デフォルトの名無しさん:2009/07/23(木) 23:54:27
[1] 授業単元:数理物理
[2] 問題文(含コード&リンク):http://www.mns.kyutech.ac.jp/~kamada/suuributuri/sub15.html
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:どちらでも可
[4] 期限:7/26
[5] その他の制限:
リンク内の「c10.c」を元に作っていますが
EFGHで囲まれた領域は常に5[V]にするため
にif文をどこに入れればいいかわかりません
ので教えてください。
お願いします。
466デフォルトの名無しさん:2009/07/24(金) 00:12:26
>>465
if(i>=9 && j>=6) { break;}

if (3<=i && i<=6 && 3<=j && j<= 6) {
v[i][j] = 5.0;
break;
}
467デフォルトの名無しさん:2009/07/24(金) 00:35:40
>>449 さん、ありがとうございます。
助かりました。
468デフォルトの名無しさん:2009/07/24(金) 00:37:25
469デフォルトの名無しさん:2009/07/24(金) 02:19:57
>>457
ありがとうございました。
470デフォルトの名無しさん:2009/07/24(金) 02:21:42
>>459,460
ありがとうございました。無事エラーが消えました。これで何とか卒論につなげられそうです。
またプログラムで行き詰ったらお世話になるかもしれません。
本当にありがとうございました。
471デフォルトの名無しさん:2009/07/24(金) 06:33:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9830.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Visual Studio 2008
 [3.3] 言語:C
[4] 期限: 7月27日
[5] その他の制限:特にありません。どうかよろしくお願いします
472 ◆/91kCCQXBo :2009/07/24(金) 10:36:47
// ■演習1 >>471
#include <stdio.h>
#define N 10
static int fibn(int n){
long r;
if (n <= 2) r = 1;
else r = fibn(n-1) + fibn(n-2);
return r;
}//end fibn
int main() {
for(int i = 1; i <= N; i++ ) {
printf( "fibonacci(%2d) = %7d\n", i, fibn(i));
}//end for
}//end main

// ■演習2 >>471
extern int fibn(int n); // fibn.hの内容
#include "fibn.h" // fibn.cppの内容
int fibn(int n){
long r;
if (n <= 2) r = 1;
else r = fibn(n-1) + fibn(n-2);
return r;
}//end fibn
#include <stdio.h> // main.cppの内容
#include "fibn.h"
#define N 10
int main() {
for(int i = 1; i <= N; i++ ) {
printf( "fibonacci(%2d) = %7d\n", i, fibn(i));
}//end for
}//end main
473デフォルトの名無しさん:2009/07/24(金) 13:59:33
[1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだデータ文字列を、
データベースに格納する前にキューに一時的に格納するプログラムを
作成する。このとき、データをまとめたデータ文字列を一つずつ、キューへ
エンキューしたり、デキューしたりする過程が分かるプログラムを作成する。
なお、キューを実現するライブラリは、キューのための別のヘッダにまとめる。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月27日
[そのほか]
・入力ストリームから読み込んだデータ文字列を、キューにエンキューしたり、
デキューしたりするたびにデータベースに格納された全データを表示する。
・構造体オブジェクトは動的な記憶域に生成する。
・生徒の名前、試験の点数を構造体オブジェクトに格納することとする。
・関数の処理にコメントをつけて、キューをどのように実現しているか、
そのプログラムの処理内容が分かるようにする。
[このプログラムの流れ]
(1)ファイルやキーボードなどの入力ストリームから
データをデータ文字列として読み込む
(2)このデータ文字列をキューに一時的に蓄える
(3)キューからデータ文字列を取り出す
(4)このデータ文字列からそれぞれデータを取り出して
文字列や数値データに変換する
(5)変換したデータをデータベース(構造体の配列など)に格納してまとめて管理する
(6)このデータベースからデータを参照し、ディスプレイに出力する
[生徒、点数データ]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9797.txt
[参考プログラム]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9798.txt
どなたかお願いします ;;
474デフォルトの名無しさん:2009/07/24(金) 14:10:07
>>473
たぶん同じ授業の別の宿題で、スタックのとき(>>196)はスタック実装の参考コードがあったけど、
キューは参考コードないの?自力で作れってことかな
475デフォルトの名無しさん:2009/07/24(金) 14:27:46
>>474
ごめん参考コードついてた…
476デフォルトの名無しさん:2009/07/24(金) 15:09:25
>>423はブレンド法と書いてありますが、
>>422>>424は何法ですか?
477デフォルトの名無しさん:2009/07/24(金) 15:17:14
しゃくとり虫法
478デフォルトの名無しさん:2009/07/24(金) 15:27:27
>>477
本当ですか?
479デフォルトの名無しさん:2009/07/24(金) 15:36:57
>>477
ググってみたらカマドウマ法と書いてありました
嘘は勘弁してください…
480デフォルトの名無しさん:2009/07/24(金) 15:51:27
>>479
それも嘘ですよね?
真面目にお願いします…
481デフォルトの名無しさん:2009/07/24(金) 16:07:18
バビロニアの平方根
482デフォルトの名無しさん:2009/07/24(金) 16:13:52
何でも名前がついているとか、名前が付けられんだ、つけなきゃ
ならないんだと思ってる奴のイタさときたら....
483デフォルトの名無しさん:2009/07/24(金) 16:21:44
>>482
じゃあこれは何をもとに解いているんですか?
484デフォルトの名無しさん:2009/07/24(金) 16:28:24
非線形方程式の数値解の条件を満たす x を探すのに
俺様が考えた方法。

おおすげー この考え方って良いよね と公知されると名前がついたり
論文でこういうやりかたどうよ? と予め呼び名を先に言ったりすることもあるが…
<アルゴリズムの命名

# >>422>>424 のは逐次探索法とでも呼べばよいのか?
485デフォルトの名無しさん:2009/07/24(金) 16:32:02
バビロニアの平方根←これじゃぁ不満だったのか・・・
アルゴリズム的には、該当してるんだけども。
486デフォルトの名無しさん:2009/07/24(金) 16:38:01
そんな架空の国家を出されても嘘にしか聞こえません。ふざけないでください。
みなさんみたいなニートと違うんです。
487デフォルトの名無しさん:2009/07/24(金) 16:42:27
迫害法
488土日用の未解決問題:2009/07/24(金) 19:01:04
>>327 穴埋め問題。ハッシュ 7月26日23:59
>>260 プロセス内で独自にメモリ管理を行うシステムを作りなさい。 7月27日
>>473>>341>>235 キューにエンキューしたり、デキューしたりする。 7月27日
>>232 C言語でファイルをコピーするプログラムを作成せよ。 7月20日
>>223 (Linux)セマフォを使った同期 −共有バッファを用いたプロセス間メッセージ通信。 7月22日
>>171>>181>>237 >>200(9787,9788)>>202 (Linux)チャットプログラム 7月21日12時10分
>>165 ソースプログラムにコメントを追加する。 7月17日12:30
>>109 (Linux)共有バッファを用いて、子プロセスでメッセージを書き込み、親プロセスで読み出す 7月17日
>>107 デジタル信号処理 。2つのテキストファイル(double型)を読み込み、畳み込み和を計算する。 7月16日
>>102 >>153(9759) (Linux)2問。パイプによるプロセス間通信。共有バッファ。 7月16日
>>086>>094 ウインドウ内でキャラモデルを自由に歩かせる 7月15日23:59
>>046 音声をマイクを使って入力し、リアルタイムでスピーカーから出力する 7月20日
489デフォルトの名無しさん:2009/07/24(金) 20:14:24
これだから2ちゃんねるバカにされるんだろ!?
顔が見えないからってバカみたいに調子にのり過ぎ
初心者にはもっと優しく対応すべき
490デフォルトの名無しさん:2009/07/24(金) 20:30:03
[1] 授業単元:
    物理学実験
[2] 問題文(含コード&リンク):

ダイオードの電流ー電圧特性 I=Is(exp{qV/nkT}-1)
この電流ー電圧特性を実験値を用いて、最小二乗法をによりフィッティングして、n,Isをもとめよ。

という課題なのですが、
for(n=1;n=3;n=n+0.1){
for(Is=1e-5;n=1e-4;n=n+1e-5){
y=Is(exp{qV/nkT}-1)-I;
sum=(実験値-y)*(実験値-y);
if(min>sum) min=sum;

のようにフィッティングパラメータ(n,Is)を変化させていき、sumが最小になるところのn,Isが求まる値としたのですが、
この非線形最小二乗法は何という方法なのでしょうか?(先生にこれは何法を使ったの?と聞かれて困っています)
例:直線探索法など。


[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2009年7月25日
491デフォルトの名無しさん:2009/07/24(金) 20:55:29
[1] 授業単元:情報通信実験
[2] 問題文(含コード&リンク):
以下のページを参考に、シリアル通信した際に読み込んだデータの末尾に
半角スペース区切り+(現在時刻)+改行文字(\n)
を付け、プログラム終了と同時にプログラム内で指定した任意の名前のテキストファイルに保存するプログラムを作成せよ。
プログラムの終了はキーボードの"q"キーの入力で終了するようにせよ。
http://www.ee.fukui-nct.ac.jp/~yoneda/text/other/C/A_06.htm
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 7月25
[5] その他の制限:特にありません。以下補足です。
なお講義で用いた、送られてくるシリアル通信のデータは以下のようなもので、
デバイスから一行づつ送られてきます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9831.txt
参考までにアップしておきます。
何卒よろしくお願い申し上げます。
492491:2009/07/24(金) 20:57:39
>>491です
投稿時のミスで期限が途中で切れてしまいましたが、7月25日(土)です。
連書き申し訳ございません。よろしくお願いします。
493491:2009/07/24(金) 21:12:05
>>491
本当に度々申し訳ございません、言語はC++の間違いでした。
後付けではないのですが、書き間違えてしまいました。
大変申し訳ございません。
494デフォルトの名無しさん:2009/07/25(土) 00:58:57
[1] 授業単元:C言語
[2] 問題文:パズルゲームの作成
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 8月5日23時まで
[5] その他の制限: ルールは以下の通りです
任意マスを選ぶ。
選んだマスから四方にマークがつく。
もしマークするマスにすでにマークがあるとマークが消える(反転する)
すべてのマークを消したら終了
実装例はこちらとなっています
http://up01.ayame.jp/up/download/1248441357.EXE
操作方法はカーソルキーでカーソル移動
Enterで確定
ESCでギブアップ
それでは宜しくお願いします
495デフォルトの名無しさん:2009/07/25(土) 01:11:29
>>494
exeは誰も試さないと思う。
496デフォルトの名無しさん:2009/07/25(土) 01:16:17
ENTER:swap [.]/[*].  UP,DOWN,LEFT,RIGHT:move cursor.

    ..*.*.*.
    ..*.*.*.
    ****.*.*
    ..O.*.*.
    **.***.*
    **.*.***
    ..*.*.*.
    ..*.*.*.


(2,3) times:0
>>495
497デフォルトの名無しさん:2009/07/25(土) 01:20:08
最近C++じゃなくてC言語でWindowsアプリ書く宿題おおいな
回答でWin32APIバリバリのプログラムが見られて楽しいからいいけど
498494:2009/07/25(土) 01:45:53
これしかないんですがZIPにしたほうがよかったでしょうか?
ってウイルスが怖いって意味ですよね
499デフォルトの名無しさん:2009/07/25(土) 01:56:07
>>497
なにをいっているのか
500デフォルトの名無しさん:2009/07/25(土) 02:29:51
>>494ここまでは実行した

------------------------------
Jul 21 2009 (01:55:40)
C言語1 課題3サンプル 渕野 哲彦
------------------------------

push Enter key
501デフォルトの名無しさん:2009/07/25(土) 02:31:50
ノートンさんパニック状態
危険。DLするだけでも
502494:2009/07/25(土) 04:14:36
うわ、自分のPCだとコメント欄文字化けしててうっかりしてた…
503494:2009/07/25(土) 10:56:19
えーと、実装例はもう遅いですが消しまたしが>>496さんが書いてくれた図みたいにお願いします
マスも同じで8×8でお願いします
504デフォルトの名無しさん:2009/07/25(土) 11:12:32
>>502
ちなみに、ブラウザの文字化けなおせ。
http://up01.ayame.jp/up/ 5073
505494:2009/07/25(土) 11:24:28
>>504
一度落としたって事は解いてくれようとしていただいたのですね
解けます?
それと再うpとかはやめていただきたいのですが…
506デフォルトの名無しさん:2009/07/25(土) 11:26:25
なんで再うpダメなんだよ
ダメならうpすな
507494:2009/07/25(土) 11:29:21
>>506
それで解けるならいいですが再うpして解いてもらえないなら再うpはスレチだと思うのです
508デフォルトの名無しさん:2009/07/25(土) 11:37:29
分かった、改めてPつける。
P=Parking
509デフォルトの名無しさん:2009/07/25(土) 11:57:53
>>507
ゴチャゴチャ言うなら自分で解け
以上!
510494:2009/07/25(土) 12:15:07
>>509
わかりました
これ以上は何も言わないので解いてください
511デフォルトの名無しさん:2009/07/25(土) 13:30:44
それって先生の名前なんかな。
512デフォルトの名無しさん:2009/07/25(土) 13:31:35
再うpのおかげで挙動を見ることができそうだったが
うまくうごかせなかった。
513 ◆/91kCCQXBo :2009/07/25(土) 14:54:57
クリアしたら終わった。>>512 ↑キー
514494:2009/07/25(土) 15:00:22
>>512
..*.*.*.
..*.*.*.
****.*.*
..O.*.*.
**.***.*
**.*.***
..*.*.*.
..*.*.*.

の絵で説明すると0が>>494でいう任意マスにあたります
ここからエンターキーを押すと四方、つまり上下左右の*と.が反対となって

..*...*.
....*.*.
**.*.*.*
**O*.*.*
******.*
****.***
....*.*.
....*.*.

となります。>>494のすべてのマークを消すとは.を*にすると終了という意味です
515494:2009/07/25(土) 15:03:26
任意マス(0)はカーソルキーを押すととなりの所に行き、たとえば→を押すと
..*...*.
....*.*.
**.*.*.*
***0.*.*
******.*
****.***
....*.*.
....*.*.
というように1つ右に0が移動します
516494:2009/07/25(土) 15:12:27
少し脱字修正orz
>>514最後の行は、>>494のすべてのマークを消すとはすべての.を*にすると終了という意味です
ESCでも終了となっており、>>496の(2,3) times:0とは(、)の数字が0の場所の様でtimesはエンターーキーを押す時に1づつカウントされていく仕様でした
ただし今回は>>494のルールが出来れば課題達成となるので0の場所とかまでは求めません
一応カウントとかつければ加点はされるそうなんですけどね
ともかく改めて宜しくお願いします
517デフォルトの名無しさん:2009/07/25(土) 16:38:32
要するにライツアウト?
518 ◆/91kCCQXBo :2009/07/25(土) 17:54:07
http://www.algopro.co.jp/sflguide/sfl_g2/rule.html
ライツアウトは、5×5の升目状にボタンが配置されています。ボタンは押すことができます。
ボタンを押すと、自分と周囲4つの計5つのボタンのライトの状態が反転します。
全てのボタンを消灯させれば、パズルを解いたこととなり、ゲーム終了です。

コイツは、8×8の升目状にボタンが配置されています。ボタンは押すことができます。
ボタンを押すと、自分以外の自分の上下左右、縦7横7の計14個のボタンのライトの状態が反転します。

>494 VC++/MFC
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9832.zip
ESCでの終了 … OnOK(); の呼び方が分からない。
参考プログラムはESC[2Jを使ってるけど、CUIのESC使わない画面クリアて何だっけ?
519デフォルトの名無しさん:2009/07/25(土) 18:49:57
>>494
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9833.txt
希望通りC言語。VC2005でしか確認していない。
掲示板に書いた内容だけで推測して作ったから、間違ってるかも知れないな。
カーソル位置のマス自体はリターンで反転しない。
「選んだマスから四方にマークがつく」としか書いてないのでそうした。
マス自体も反転したいなら、reverse()に追加すればいい。
520518:2009/07/25(土) 19:04:05
カーソルの下を反転してたので、修正します。
[MouseView.cpp]
//line_151: pDoc->m_pts[tmp.x][tmp.y] = mtmp;
pDoc->m_pts[tmp.x][tmp.y] = ! mtmp;
521518:2009/07/25(土) 19:31:22
>>514 質問者が間違えてるよ。
..*.*.*.
..*.*.*.
****.*.*
..O.*.*.
**.***.*
**.*.***
..*.*.*.
..*.*.*.

ここからエンターキーを押すと四方、つまり上下左右の*と.が反対となって

....*.*.
....*.*.
**.*.*.*
**O*.*.*
******.*
****.***
....*.*.
....*.*.
522デフォルトの名無しさん:2009/07/25(土) 20:39:23
すいませんどうやら選択マスも反転しないといけないみたいです
>>519さんのはreverse()に何を追加すればいいんでしょうか…
523デフォルトの名無しさん:2009/07/25(土) 21:41:06
>>522
reverse()の中の最後の方にある
times++;
の直前に
if (ban[posX][posY] == 0) {
ban[posX][posY] = 1;
remains--;
} else {
ban[posX][posY] = 0;
remains++;
}
を追加する。
Returnを押した直後は表示は変わらないが、移動した後で表示に反映する。
524デフォルトの名無しさん:2009/07/25(土) 21:44:42
>>523
最後まで親切にしてもらってありがとうございました

ただ、名前の露呈が気がかりです…
とはいえスレを騒がしてしまって申し訳ありませんでした
考えていただいた人のすべての人に感謝しています
525デフォルトの名無しさん:2009/07/25(土) 21:54:42
ちゃんと先生にごめんなさいって言えば大丈夫
526デフォルトの名無しさん:2009/07/25(土) 21:56:15
とある大学の教授の部屋を若い女学生が訪れた。

「先生・・御願いです。今度の試験でどうか私を合格させてください」
「その為なら・・私・・なんでもします・・」

女学生は教授の前に跪き、長い髪をなで上げながら
彼の瞳を見つめ、さらにつづけた。

「あぁ・・なんでも・・ねぇ・・御願い・・」
教授も彼女の瞳を見つめる。
『何でも・・するのかい?』
「えぇ・・します・・」

彼女の耳元にそっと教授は囁いた。

『それじゃ・・・してくれるかな・・・勉強を』
527518:2009/07/25(土) 21:56:47
学校行ってコンパイルすれば、それはライツアウトで、
コイツはそれとは違って将棋の飛車、チェスのルークだけど。>>517
528デフォルトの名無しさん:2009/07/25(土) 22:00:18
そういや中学のころ普段駄目駄目なのに成績はいつも5のかわいい娘いたなぁ
今思うとあれって・・・
529デフォルトの名無しさん:2009/07/25(土) 22:01:55
天は二物を与える。
530 ◆/91kCCQXBo :2009/07/26(日) 01:02:13
>>494
>>519 ソース修正しました。('*'の数で残りを数える)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9834.c
531デフォルトの名無しさん:2009/07/26(日) 01:30:22
[1]情報処理論
[2]問題文
サンプルプログラムに以下の関数を加えよ;
ポインタ *n の指すノードの直後に新しいノードを追加し, 新しいノードの value に v を代入する関数 void insert_node( node_t *n, int v ).
ポインタ *n の指すノードの次のノードを削除する関数 void remove_node( node_t *n ).
main 文では上の関数を適当に実行し, 要求通り動作することを確認せよ (例 ノードの追加, 削除をいくつか繰り返した後 print_node を実行し, 結果を考察欄に書く).
[3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 7月28日まで

サンプルは分けて表示します。
532デフォルトの名無しさん:2009/07/26(日) 01:32:18
531の続きです。
#include<stdio.h>


typedef struct node_tag {
int value;
struct node_tag *next;
} node_t;


void print_node( node_t* );
int sum_node( node_t * );


int main (void) {

node_t node1, node2, node3;


node1.value = 11;
node2.value = 12;
node3.value = 13;


node1.next = &node2;
node2.next = &node3;
node3.next = NULL;
533デフォルトの名無しさん:2009/07/26(日) 01:34:46
532のつづきです。

print_node( &node1 );
int sum = sum_node( &node1) ;

printf("\n合計:%d\n",sum);
return 0;
}
void print_node( node_t *head ) {
node_t *p = head;
while ( p != NULL ){
printf("%d\n", p->value);
p = p->next;
}
}

int sum_node( node_t *head )
{
int sum = 0;
node_t *p = head;
while ( p != NULL ){
sum += p->value;
printf("%d\n", p->value);
p = p->next;
}
return(sum);
}
お願いします。
534494:2009/07/26(日) 02:33:47
>>530
おー、本当にありがとうございます
ここまでしてもらえるとは思ってもみなかったです。
535デフォルトの名無しさん:2009/07/26(日) 10:35:43
[1] C++
[2] 問題文(含コード&リンク):
(1) 演算子+,-,*,/と整数と浮動小数点数からなる計算式の文字列から
計算木を作成せよ。計算木は次のようなc_tree構造体を使うとする。

struct c_tree
{
int type;
union { int n_value; double d_value; };
c_tree *left, *right;
};
typeは、'+', '-', '*', '/', 'n', 'd'のいずれか。

(2) 優先順位に注意してc_tree構造体からなる計算木から
計算式の文字列を作成せよ。
[3] 環境
 [3.1] Linux
 [3.2] gcc-4.4.0
 [3.3] C++
[4] 2009年8月10日まで
536デフォルトの名無しさん:2009/07/26(日) 14:46:42
[1] 授業単元:プログラミング論
[2] 問題文:データベースのデータ構造体として自己参照構造体で
線形リストを実現したプログラムを作成する
(1)データをノードに格納し、全データを先頭ノードから順番に表示する
(2)名前をキーとして探索し、その生徒の成績と計算した平均点を表示する
(3)数学あるいは英語の平均点を計算する
各ノードへの値の格納方法として、生徒の名前
試験の点数をファイルから読み込む
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月27日
[そのほか]
データを読み込むとき、教科書の線形リストに関する関数内でノードを格納する記憶域が動的に確保される
・従来のデータベースのデータ構造体であった<ポインタの配列>や、<構造体の配列>を用いない
・新しくライブラリを作成し、エラー処理を追加する
・並び替える場合、ノード内のデータのみを交換(swapを用いてはならない)するのではなく、ノード自身をリストからはずして挿入する。
[参考プログラム]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9836.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9837.txt
[生徒のデータ]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9797.txt
[実行例]
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9838.txt
某国立大学のプログラムの最後の問題です
どなたか、お手数ですがお願いいたします
537デフォルトの名無しさん:2009/07/26(日) 18:22:25
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):

式(1)の微分方程式を式(2)の初期条件のもとで、数値的に解くことを考えよ。

dx/dt = -x^2 …(1)
x(0)=1 …(2)

(a)式(1)を初期条件(2)のもとで解き、解析解を示せ。
(b)修正オイラー法によりを求める手順を示せ。 x(t) の値からx(t +1) を求める手順を示せ。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 2009年7月27日8:59
[5] その他の制限: 特になし

よろしくお願いします。


課題14
式(1)の微分方程式を式(2)の初期条件のもとで、数値的に解くことを考えよ。

dx/dt = -x^2 …(1)
x(0)=1 …(2)

(a)式(1)を初期条件(2)のもとで解き、解析解を示せ。
(b)修正オイラー法によりを求める手順を示せ。 x(t) の値からx(t +1) を求める手順を示せ。
538デフォルトの名無しさん:2009/07/26(日) 21:32:08
すいませんサンプルプログラム間違えたのでもう一度書きます。
[1]情報処理
[2]問題文
サンプルプログラムに以下の関数を加えよ;
ポインタ *n の指すノードの直後に新しいノードを追加し, 新しいノードの value に v を代入する関数 void insert_node( node_t *n, int v ).
ポインタ *n の指すノードの次のノードを削除する関数 void remove_node( node_t *n ).
main 文では上の関数を適当に実行し, 要求通り動作することを確認せよ (例 ノードの追加, 削除をいくつか繰り返した後 print_node を実行し, 結果を考察欄に書く).
[3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 7月28日まで

サンプルプログラムは次からです。
539デフォルトの名無しさん:2009/07/26(日) 21:34:21
サンプルプログラムです。538の問題のです

#include<stdio.h>

// ノードを表す構造体を定義
typedef struct node_tag {
int value;
struct node_tag *next;
} node_t;

void print_node( node_t* );

int main (void) {
// 3 つのノードを定義
node_t node1, node2, node3;

// 各ノードの value に値を代入
node1.value = 11;
node2.value = 12;
node3.value = 13;

// node1, node2, node3 の順番にリンク.
node1.next = &node2;
node2.next = &node3;
node3.next = NULL;
// node3 は最後のノードであることを表すために,
//次に来るノードを NULL とする.

540デフォルトの名無しさん:2009/07/26(日) 21:35:53
538の問題のサンプルの続きです。
print_node( &node1 );
return 0;
}

void print_node( node_t *head ) {
node_t *p = head;
while ( p != NULL ){
printf("%d\n", p->value);
p = p->next;
}
}
541デフォルトの名無しさん:2009/07/26(日) 21:45:27
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,2 つの行列の要素をキーボードから読み込み,それらの行列の和を表示す
るプログラムを作成せよ.

行列A を入力して下さい
0 1 2
10 11 12
20 21 22
行列B を入力して下さい
100 200 300
200 300 400
300 400 500
0.00 1.00 2.00 100.00 200.00 300.00 100.00 201.00 302.00
10.00 11.00 12.00 200.00 300.00 400.00 210.00 311.00 412.00
20.00 21.00 22.00 300.00 400.00 500.00 320.00 421.00 522.00
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月28日
[5] その他の制限:なし。
542デフォルトの名無しさん:2009/07/26(日) 22:26:04
>>541

#include <stdio.h>

int main(void){
int i;
double a[9],b[9];

printf("行列A を入力して下さい\n");
for(i=0;i<9;i++) scanf("%lf",&a[i]);

printf("行列B を入力して下さい\n");
for(i=0;i<9;i++) scanf("%lf",&b[i]);

for(i=0;i<9;i++){
printf("%6.2lf ",a[i]);
printf("%6.2lf ",b[i]);
printf("%6.2lf ",a[i]+b[i]);
if(i%3==2) putchar('\n');
}

return 0;
}
543デフォルトの名無しさん:2009/07/26(日) 22:50:12
>>542
自己レス。
出力が頭おかしかった。

int j;

for(i=0;i<3;i++){
for(j=i*3;j<(i+1)*3;j++) printf("%6.2lf ",a[j]);
for(j=i*3;j<(i+1)*3;j++) printf("%6.2lf ",b[j]);
for(j=i*3;j<(i+1)*3;j++) printf("%6.2lf ",a[j]+b[j]);
putchar('\n');
}
544デフォルトの名無しさん:2009/07/26(日) 23:44:32
>>466
ありがとうございます。解決しました。
545デフォルトの名無しさん:2009/07/27(月) 01:13:24
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9839.txt
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: VC2008
 [3.3] 言語: C
[4] 期限: 7月28日 18時
[5] その他の制限: 配列、繰り返し処理、出力のみ

よろしくお願いします。
546デフォルトの名無しさん:2009/07/27(月) 02:30:08
>>537
(a)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9840.txt
(b)はプログラムを見て考えて下さい
547デフォルトの名無しさん:2009/07/27(月) 03:47:06
[1] 授業単元: プログラミング
[2]問題文:以下の2つの構造体を用い,sample_data2.txt を単方向連結リストに保存するプログラム extra8 を作成せよ.item_list 中の item は各行中の数値を保持し,t_list 中の itemset は1行分のデータを保持するものとする.
struct item_list {
int item;
struct item_list *next;
};
struct t_list {
struct item_list itemset;
struct t_list *next
};
ソースファイルの名前は extra8.c とする.また,extra8.c には,生成した単方向連結リストの内容を標準出力に出力する関数 print_tlist を含むものとし,以下の実行例のように print_tlist により各行の内容を出力するものとする.
なお,入力ファイル名はコマンドライン引数で指定するものとし,入力ファイルがオープンできなかった場合の処理も含めること.また,プログラム自身を除く引数の数が0個,もしくは2個以上の場合は,何もせず適切なメッセージを出力して終了するものとする.
(実行例1)
> .\extra8 sample_data2.txt
Itemset: 1,3,9,13,23,25,34,36
Itemset: 2,3,9,14,23,26,34,36,39,40,52,55,59
Itemset: 2,4,9,15,23,27,34,36,39,41,93,99,108,115
Itemset: 1,3,10,15,23,25,34,36,38,41
Itemset: 2,3,9,16,24,28,34,37,39,40,53,54
Itemset: 2,3,10,14,23,26,34,36,39,41
Itemset: 2,4,9,15,23,26,34,36,39
Itemset: 2,4,10,15,23,27,34,36,39,41,52
Itemset: 1,3,10,15,23,25,34,36,38
[3]OS:WindowsXP コンパイラ:gcc 言語:C
[4]期限:7/31
[5]制限なしです。お願いします。
548デフォルトの名無しさん:2009/07/27(月) 03:51:58
>>547
sample_data2.txtはどこ?
549デフォルトの名無しさん:2009/07/27(月) 04:13:41
sample_data2.txtです
1,3,9,13,23,25,34,36
2,3,9,14,23,26,34,36,39,40,52,55,59
2,4,9,15,23,27,34,36,39,41,93,99,108,115
1,3,10,15,23,25,34,36,38,41
2,3,9,16,24,28,34,37,39,40,53,54
2,3,10,14,23,26,34,36,39,41
2,4,9,15,23,26,34,36,39
2,4,10,15,23,27,34,36,39,41,52
1,3,10,15,23,25,34,36,38
550デフォルトの名無しさん:2009/07/27(月) 04:26:33
>>549
これって一行読み込む毎に前のリストをクリアしちゃうの?
551デフォルトの名無しさん:2009/07/27(月) 06:12:54
552デフォルトの名無しさん:2009/07/27(月) 06:13:48
あ、ごめん
print_tlist付けるの忘れた
ちょっと待って
553デフォルトの名無しさん:2009/07/27(月) 06:20:22
再度修正版
>>547
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9843.txt

これで問題あったらまた教えて
554デフォルトの名無しさん:2009/07/27(月) 07:51:38
[1] 授業単元:
[2] 問題文(含コード&リンク):0から255の数字を入力させ、それを2進数に変換するプログラム
[3] 環境
 [3.1] OS: (Windows/Linux/等々) XP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) ボーランド
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)C言語
[4] 期限: ([yyyy年mm月今日まで
555デフォルトの名無しさん:2009/07/27(月) 08:25:38
>>535
すみません。教えてください。
typeの中にある'n'と'd'はなにを意味するのですか。
それから何という語の略なのか、も。
556デフォルトの名無しさん:2009/07/27(月) 09:28:59
>>554

#include <stdio.h>
int main(){
int a,i,num=256;
printf("0から255の数字を入力:");
scanf("%d",&a);
while(num>1){
num = num >> 1;
if(num<=a){
if((num&a)>0) printf("1");
else printf("0");
}
}
return 0;
}
557デフォルトの名無しさん:2009/07/27(月) 09:35:36
>>>555
>演算子+,-,*,/と整数と浮動小数点数からなる計算式の文字列から
>計算木を作成せよ。計算木は次のようなc_tree構造体を使うとする。
ここから察するにnは整数、dは浮動小数点じゃないかな?

558535:2009/07/27(月) 11:02:22
>>557
その通りです。
559デフォルトの名無しさん:2009/07/27(月) 11:11:38
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9844.txt
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:Cのみ
[4] 期限:2009年7月27日 18時まで
[5] その他の制限:配列 繰り返し 出力のみで構成できるそうなのです。
560デフォルトの名無しさん:2009/07/27(月) 11:41:58
561デフォルトの名無しさん:2009/07/27(月) 11:43:19
>>545
>>559
同一人物? 別人なら、そのまま提出すると丸かぶり・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9846.txt
562561:2009/07/27(月) 11:44:32
あっ、相関係数求めてないや・・・
563560:2009/07/27(月) 11:48:34
>>562
俺の相関係数を求める所を少し変えてもらえばOK
564 ◆/91kCCQXBo :2009/07/27(月) 11:54:48
>>560 1/(N-1) でいいのか? 1/N では。
565デフォルトの名無しさん:2009/07/27(月) 12:24:39
>>564
普通「相関係数」と言う時は1/Nみたいだね
「ピアソンの積率相関係数」とわざわざ呼びならわす時は1/(N-1)

プログラム中に「ピアソンの相関係数」とあるからそのまま提出してもいいかもね
566デフォルトの名無しさん:2009/07/27(月) 12:27:02
使い分けは元のデータが正規分布する時はピアソンの相関係数を使う
正規分布しない時はスピアマンの相関係数を使う
とあるから、1/Nにしといた方が無難かも
567デフォルトの名無しさん:2009/07/27(月) 12:31:22
Wikipediaの通りの定義で(1/N)書き直しました
どちらを取るかは自己責任で

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9847.txt
568 ◆/91kCCQXBo :2009/07/27(月) 12:43:35
それ、これから見るけど、割る必要ない。
N/sqrt(N)/sqrt(N) = (N-1)/sqrt(N-1)/sqrt(N-1) = 1
569デフォルトの名無しさん:2009/07/27(月) 12:46:57
同じか
570559:2009/07/27(月) 13:57:57
>>567
ありがとうございます。

書き直していただいた
後者のほうを使わせていただこうとおもいます
571デフォルトの名無しさん:2009/07/27(月) 18:42:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
例のような3行4列の行列aと、4行3列の行列bの積を、3行3列の行列cに格納し、
その結果を表示するプログラムを作成せよ。


a =
6 3 4 2
5 1 2 1
2 4 3 3

b =
1 2 3
4 5 6
1 2 3
4 5 6
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月28日
[5] その他の制限:
For{i= 0;〜〜〜}{
For{j=0;〜〜〜}{
For{k=0;〜〜〜}{
}
}
}
このような形を使って、作っていただけるとありがたいです。
この形じゃなくてもOKです。 よろしくお願いします。
572 ◆/91kCCQXBo :2009/07/27(月) 18:58:35
>>554 2進数に変換
#include <stdio.h>
int main(){
  int a, i;
  printf("0から255の数字を入力:");
  scanf("%d", &a);
  for(i=7;i>=0;i--)
    printf("%d", (a>>i)&1);
  return 0;
}
573デフォルトの名無しさん:2009/07/27(月) 19:02:48
>>571
#include <stdio.h>

int main(void)
{
int i, j, k;
int a[3][4] = {{6, 3, 4, 2}, {5, 1, 2, 1}, {2, 4, 3, 3}};
int b[4][3] = {{1, 2, 3}, {4, 5, 6}, {1, 2, 3}, {4, 5, 6}};
int c[3][3];

printf ("c = \n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] = 0;
for (k = 0; k <4; k++) {
c[i][j] += a[i][k] * b[k][j];
}
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
574デフォルトの名無しさん:2009/07/27(月) 19:21:34
[1] 授業単元:プログラミング序論演習
[2] 問題文(含コード&リンク): CUI上で動くメーラーを作れ
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語: C++
[4] 期限: 2009年7月28日 0:00まで
[5] その他の制限: 多機能
575デフォルトの名無しさん:2009/07/27(月) 19:36:07
めんどそうと思いながら>>535始めたらやっぱりめんどかった
576デフォルトの名無しさん:2009/07/27(月) 19:37:44
>>574
序論でそれか。
socketとかならった?
577デフォルトの名無しさん:2009/07/27(月) 22:46:03
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):数列an={0,1,3,6...}
(n=1,2,3,...,100)を求めて表示せよ
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: visual stdio 2008
 [3.3] 言語: C
[4] 期限:09/07/28
[5] その他の制限:1次元変数a[100]を使いなさいということだそうです。
#include<stdio.h>しかならっていません。
578help:2009/07/27(月) 22:52:44
[1]情報処理論
[2]問題文
10進数から2進数へ変換し、その補数表現を書け
[3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 7月28日まで
579デフォルトの名無しさん:2009/07/27(月) 23:11:20
>>577
#include <stdio.h>

int main(void)
{
int i;
int a[100];

a[0] = 0;
for (i = 1; i < 100; i++) {
a[i] = a[i-1] + i;
}

for (i = 0; i < 100; i++) {
printf("a(%d) = %d\n", i+1, a[i]);
}

return 0;
}
580デフォルトの名無しさん:2009/07/27(月) 23:19:11
>>578
#include <stdio.h>

int main()
{
int num, i;

scanf("%d", &num);

for (i = sizeof(num) * 8 - 1; i >= 0; i--)
{
printf("%d", (num & 1 << i) ? 1 : 0);
}
printf("\n");

return 0;
}
581help:2009/07/27(月) 23:31:26
>580

ありがとうございます。

そこから2進数の補数表現にするにはどうすればいいんでしょうか?

あと、cじゃなく、c++でした・・・
すいません
582デフォルトの名無しさん:2009/07/27(月) 23:34:27
>>581
しってる。
あっちの回答使えば?
583デフォルトの名無しさん:2009/07/27(月) 23:41:17
>>581
喫煙者かどうかはあまり関係ないと思う
584help:2009/07/27(月) 23:46:34
>582

あっちとは、どこの事でしょう?
585 ◆/91kCCQXBo :2009/07/27(月) 23:49:31
スレを勃てるまでもないC/C++の質問はここで 12
http://pc12.2ch.net/test/read.cgi/tech/1248010352/123-130

#include <iostream>
using namespace std;
int main(void){
  int a, i;
  cout<<"-32767から32767の数字を入力:";
  cin>>a;
  cout.width(1);
  for(i=15;i>=0;i--){
    cout<< ((a>>i)&1);
    if(i==8) cout<<' ';
  }
  cout<<'\n';;
  a = -a;
  for(i=15;i>=0;i--){
    cout<< ((a>>i)&1);
    if(i==8) cout<<' ';
  }
  return 0;
}
586デフォルトの名無しさん:2009/07/27(月) 23:49:47
きっと別人だろうけど、「助けて」って名前の人が同じような質問してて、C++の回答もらってるからそっちどうぞ
587デフォルトの名無しさん:2009/07/27(月) 23:51:56
>>585
なんでendlつかわないの?
588デフォルトの名無しさん:2009/07/27(月) 23:52:56
>>585
> そこから2進数の補数表現にするにはどうすればいいんでしょうか?
って言われるぜ
589デフォルトの名無しさん:2009/07/28(火) 00:08:43
1の補数 → 全ビット反転
2の補数 → 1の補数を取った後、+1

簡単だニャー。
590help:2009/07/28(火) 00:14:26
>>589

それができれば、聞いてないっす・・・
591デフォルトの名無しさん:2009/07/28(火) 00:24:14
こうやってみるとコードを理解しないままにありがとうとホクホク顔で帰っていく生徒も悪くないもんだな
592デフォルトの名無しさん:2009/07/28(火) 00:35:48
C++なら<bitset>使えば一発だよ。
例えば、10進数で-10を16bitの2進数に変換し1の補数表現とするなら、
bitset< 16 > b( ~10 );

同じく2の補数表現とするなら、
bitset< 16 > b( ~10 + 1 );

こんだけ。画面に表示するときは
cout << b.to_string() << endl;

C++では線形リスト作れとかソートしろとかみたいな
基礎レベルの宿題はほとんどコード書く必要がない。
593デフォルトの名無しさん:2009/07/28(火) 00:36:16
昔々、自分が出した宿題がここに出てきたので、ちょっと癖のある書き方で
解答を書き込んだところ、それがそのまま提出されてきました。
思わず笑って×を付けましたが、一応合っているのに×を付けられても
文句すら言ってこないんですよね。つまらん。
594デフォルトの名無しさん:2009/07/28(火) 00:38:21
>>593
合ってるかどうかも分からないからでしょ
595デフォルトの名無しさん:2009/07/28(火) 00:39:23
atoiを作れって課題でsscanfでケコーンしたのもいい思い出。
596デフォルトの名無しさん:2009/07/28(火) 00:47:37
基本的なアルゴリズムとかデータ構造の問題だされてSTLで返すやつって目的見失ってるだろ
597デフォルトの名無しさん:2009/07/28(火) 00:49:02
>596
車輪の再開発はどうのこうのって言われるとそりゃそんな中まで考えないよ
先人が悪い
598デフォルトの名無しさん:2009/07/28(火) 00:50:28
STLを使うなという指定が無い限り自由じゃないか?
599デフォルトの名無しさん:2009/07/28(火) 00:51:39
>>596
宿題出されて課題スレに投げる奴って目的見失ってるだろ。
600デフォルトの名無しさん:2009/07/28(火) 00:53:38
業務アプリじゃねーしな
勉強しなきゃいけないときぐらい勉強しろ
できないならまったく関係ない業界に就職してくれ
601デフォルトの名無しさん:2009/07/28(火) 00:54:42
>>599-600
お前はスレ違い
このスレに来るな
602デフォルトの名無しさん:2009/07/28(火) 00:56:03
盛り上がってるところ申し訳ないんだけど
>>592をみて
#include <bitset>
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
bitset<16> b(n);
cout << b.to_string() << endl;
return 0;
}
こんなのを書いてコンパイルしたら

error: no matching function for call to `std::bitset<16u>::to_string()'

こんなことを言われちゃった。なんで?
コンパイラはg++の3.4.4
603デフォルトの名無しさん:2009/07/28(火) 00:58:05
化学かなんかのテストで教科書のどこどこを読んで代入すれば答えが求まる。計算は任せる
見たいな事を長々と書いて、単位もらったとかいう話を思い出した
604デフォルトの名無しさん:2009/07/28(火) 01:03:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9849.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限:2009年7月28日12:00まで
[5] その他の制限: 特にありません。

難しい宿題なんですが、ここの方ならできるかもしれません(--;)
よろしくお願いします!
605デフォルトの名無しさん:2009/07/28(火) 01:08:43
>>596
C++の宿題を出しておいて
「STLを使わないこと」と指示しない教師の方がアホだ。

そして、STLを使っていいにもかかわらず
STLよりも効率の悪いコードを「発明」している生徒がいたら
そいつはもっとアホだ。
606554:2009/07/28(火) 01:14:41
>>556>>572
コンパイルできません
607デフォルトの名無しさん:2009/07/28(火) 01:16:36
STLで答えになるんなら講義もテストもいらないじゃん
相手の意図を察して常識的な対応できるようにならないと社会人失格ですよ
608602:2009/07/28(火) 01:18:48
#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int main()
{
int n;
cin >> n;
bitset<16> b(n);
string s;
b._M_copy_to_string(s);
cout << s << endl;
return 0;
}
わけわからんからbitsetの中身を読んでこうしてやった。
自己解決しました。
解決はしてないけど
609デフォルトの名無しさん:2009/07/28(火) 01:19:02
出題者の意図を察した答えを書けというのは
ワインバーグ先生も確かに書いているが、
だがマヌケな教師に付き合う義理もない。

特に回答者は。
610デフォルトの名無しさん:2009/07/28(火) 01:23:06
>>606 何なら出来るんだ。
611554:2009/07/28(火) 01:24:06
すいません>>572はできました
612デフォルトの名無しさん:2009/07/28(火) 01:28:06
整数型の2次元配列X[3][3]の初期値は先頭から順に以下とする。
160 200 225 100 160 200 20 100 160

配列160以上の数はそのままの値で、160未満は0として表示する。

お願いします!
613デフォルトの名無しさん:2009/07/28(火) 01:28:47
宿題程度で社会人失格とか、どんなだ。w
614デフォルトの名無しさん:2009/07/28(火) 01:30:07
>>612
表示の見た目はお任せでいいのかね?
615デフォルトの名無しさん:2009/07/28(火) 01:34:41
>>612
#include <stdio.h>

int main(void)
{
int X[3][3] = {{160, 200, 225}, {100, 160, 200}, {20, 100, 160}};
int i, j;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
printf("%d ", X[i][j] < 160? 0: X[i][j]);
return 0;
}
616デフォルトの名無しさん:2009/07/28(火) 01:35:20
>>608
最近のトレンドは自決しました。
617 ◆/91kCCQXBo :2009/07/28(火) 01:37:17
618デフォルトの名無しさん:2009/07/28(火) 01:58:25
>>610
ご丁寧にインデントに気を使ってるからでしょ

>>554
#include <stdio.h>

int main(void)
{
int b[8], n, i;
printf("input (0 - 255) >> ");
scanf("%d", &n);
for (i = 0; i < 8; i++) { b[i] = n % 2; n /= 2; }
for (i = 7; i >= 0; i--) printf("%d", b[i]);
printf("\n");
return 0;
}

619デフォルトの名無しさん:2009/07/28(火) 11:46:08
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9850.zip
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VS2008
 [3.3] 言語: Cのみ
[4] 期限: 7/31
[5] その他の制限:問題文どおりでお願いします。できればコメント文を付けてくださるとうれしいです。
必要なファイルはzip内に同梱しています。よろしくお願いします
620デフォルトの名無しさん:2009/07/28(火) 14:16:46
>>619
課題の載ったファイルはどれですか?
621デフォルトの名無しさん:2009/07/28(火) 14:36:21
ひょっとして全部やれとか・・・
622デフォルトの名無しさん:2009/07/28(火) 15:07:02
一人で全部やれとは言わないけど、分担してやってもらって最終的に全部そろえたいです
と、代弁してみたよ
623デフォルトの名無しさん:2009/07/28(火) 15:16:44
こういう風に小分けにされると面倒なんだよね
624デフォルトの名無しさん:2009/07/28(火) 15:23:30
>>612を160 200 225
0 160 200
0 0 160

と表示するようにお願いします。
何回もすみません。
625デフォルトの名無しさん:2009/07/28(火) 15:27:38
>>624
#include <stdio.h>

int main(void)
{
int X[3][3] = {{160, 200, 225}, {100, 160, 200}, {20, 100, 160}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
printf("%d ", X[i][j] < 160? 0: X[i][j]);
printf("\n");
}
return 0;
}
626デフォルトの名無しさん:2009/07/28(火) 15:47:22
>>625
ありがとうございます
627577:2009/07/28(火) 15:48:38
>>579
ありがとうございます。

[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):
1.scanfで正数nを入力させ、入力した正数nについてn!とn!/nを求めて表示するプログラム
2.scanfで数字nを入力させ、入力した数字nが0〜10未満なら"●"、10〜30未満で"○"、30〜60未満で"△"を表示させるプログラム
3.scanfでa,b,cを入力し、ax~2+bx+c=0の二つの解を求めて表示するプログラム

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: visual stdio 2008
 [3.3] 言語: C
[4] 期限:09/07/29
[5] その他の制限:1次元変数a[i]を使うらしいです。
#include<stdio.h>しかならっていません。
628デフォルトの名無しさん:2009/07/28(火) 15:57:01
>>535
算術式の構文解析ってけっこう難しいんだな。模範解答とかあれば見てみたい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9851.txt
629デフォルトの名無しさん:2009/07/28(火) 15:59:55
>>627
1.
#include <stdio.h>
int main(void)
{
int i, n;
double f = 1;
printf("input n: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) f *= i;
printf("%d! = %.0f\n%d!/%d = %.0f\n", n, f, n, n, f / n);
return 0;
}

2.
#include <stdio.h>
int main(void)
{
int n;
printf("input n: ");
scanf("%d", &n);
if (0 <= n && n < 10) printf("●");
else if (10 <= n && n < 30) printf("○");
else if (30 <= n && n < 60) printf("△");
return 0;
}
630デフォルトの名無しさん:2009/07/28(火) 16:15:51
>>627
3. sqrt()はつかっちゃいけないんだろうから

#include <stdio.h>
int main(void)
{
double a, b, c, D;
printf("input a: "); scanf("%lf", &a);
printf("input b: "); scanf("%lf", &b);
printf("input c: "); scanf("%lf", &c);
D = b * b - 4 * a * c;
printf("x = %f ± √%f\n", -b / 2 / a, D / 4 / a / a);
return 0;
}
631デフォルトの名無しさん:2009/07/28(火) 16:17:44
>>628
そうなんですよめんどうなんですよ。
なので俺はそっとしまっておいた。
負の値と括弧ぐらいには対応したいし、と思うとやっぱりいろいろ。

ポーランド記法からふつうの形式に変換なら楽なのにね
632604:2009/07/28(火) 16:25:06
>>604
期限を明日まで延ばしてもらいました、、、
難しいとは思いますが、どなたかよろしくお願いします。m(__;)m
633デフォルトの名無しさん:2009/07/28(火) 16:31:30
アイマス見てる暇があったらJavaしろよ
634デフォルトの名無しさん:2009/07/28(火) 16:32:13
誤爆した
635デフォルトの名無しさん:2009/07/28(火) 16:54:36
636デフォルトの名無しさん:2009/07/28(火) 17:50:34
>>632
× 難しい
○ 面倒
637604:2009/07/28(火) 18:02:47
面倒なプログラムなんですね、、、
638デフォルトの名無しさん:2009/07/28(火) 18:13:22
>>627
問1のみ
勝手に再帰関数を求めてると解釈した
#include<stdio.h>

double fact(int n) {
if (n==0 || n== 1) return 1;
else return n*fact(n-1);
}

int main(void) {
int n;
printf("正の整数nを入力してください\n");
scanf("%d",&n);
if(n==0) printf("n=0では%d!/%dが定義できません\n",n,n);
else printf("%d!=%.0f\n%d!/%d=%.0f\n", n, fact(n),n,n,fact(n)/n);
return 0;
}
639デフォルトの名無しさん:2009/07/28(火) 19:41:19
640604:2009/07/28(火) 19:52:57
>>639
ありがとうございます!!
面倒なプログラミングなのにありがとうございましたm(__;)m
ほんとに助かりました、、、
641デフォルトの名無しさん:2009/07/28(火) 22:39:22
>>640
おかしいな。Cでの実装へのアンカーを貼ったはずなんだが。。。
642デフォルトの名無しさん:2009/07/28(火) 22:41:52
>>641
>>635のことかな?問題文のウンコ仕様と全然違うから無視されたんじゃね?
643デフォルトの名無しさん:2009/07/28(火) 22:53:10
アラヤダ。
これはすまんかった
644デフォルトの名無しさん:2009/07/29(水) 00:55:40
今日は問題が少ないな
645デフォルトの名無しさん:2009/07/29(水) 02:00:49
C言語で陽に解けない方程式(例えば y=a(b-exp(cx−y))-dx)を非線形最小二乗法を用いて
パラメータa,b,c,dを求めたいのですが、何法を用いればいいのでしょうが?
お願いします。
646デフォルトの名無しさん:2009/07/29(水) 02:04:52
647デフォルトの名無しさん:2009/07/29(水) 10:26:19
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9856.txt
1.勝ちは"○"、引き分けは"ー"といった勝敗の履歴を"またね"と出力される前に表示せよ。
2.プログラムを起動した直後にコンピュータの強さを10段階で選べるように
せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:2009年7月31日15:00まで
[5] その他の制限: 特にありません。
ご迷惑をおかけしますがどうか宜しくお願いいたします。
648デフォルトの名無しさん:2009/07/29(水) 10:48:02
>>647
せめてコンパイル通るソース用意しなよ
649デフォルトの名無しさん:2009/07/29(水) 11:02:03
>>647
コンピュータの強さを10段階で選べるように
後出しじゃんけんのことか
650デフォルトの名無しさん:2009/07/29(水) 11:04:44
>>647
>>333

これで3回目のような…。
651デフォルトの名無しさん:2009/07/29(水) 11:06:26
>>648
お手間を掛けさせてすみませんm(__)m
上げ直しました。
宜しくお願い致します。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9857.c
652デフォルトの名無しさん:2009/07/29(水) 12:29:35
>>628
ありがとうございます
653デフォルトの名無しさん:2009/07/29(水) 12:31:54
>>651
>>650じゃダメなの?
654627:2009/07/29(水) 12:32:02
>>629
ありがとうございます。
>>630
出来ないのですが・・・
実行結果がすべて同じになってしまいます。
655デフォルトの名無しさん:2009/07/29(水) 12:39:49
>>650
>>653
レスが遅れて済みません。
ありがとうございます!これで提出できそうですm(__)m
656デフォルトの名無しさん:2009/07/29(水) 12:47:47
>>654 入力の値を変えても同じってことですか?
なら、検証に何通りか、その入力した値を書き出して。
657627:2009/07/29(水) 12:58:32
>>656
すみません。
もう一度やってみたら出来ました。
658デフォルトの名無しさん:2009/07/29(水) 22:53:57
>>619 kadai6, kadai8
>>243 解答>>255(9801) 単方向連結リストの最後に順次追加し,そのリストの内容を先頭から順に標準出力に出力するプログラム extra6
>>547 解答>>553(9843) 2つの構造体を用い,方向連結リストに保存するプログラム extra8
659デフォルトの名無しさん:2009/07/30(木) 00:40:51
[1] C言語
[2] 入力された英字文字列(a~z,A-Z)に、どの文字がいくつ入っているかを調べるプログラムcount_char.cを作成せよ。

実行例
String: cbbbAcAccZ
A: **
Z: *
b: ***
c: ****
%
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc 3.4
 [3.3] 言語: C
[4] 期限: 2009年8月5日まで
[5] その他の制限: (ポインタまで習っていますがポインタは最初のほうしか習っていません)

よろしくお願いします
660デフォルトの名無しさん:2009/07/30(木) 01:38:11
[1] C言語
[2] 2つのファイルを比較し,内容が異なっている最初の行の行番号と内容を
  標準出力に表示するプログラムを作成せよ。
  ファイル名はコマンドライン入力により受け取ることとする。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ:gcc 3.4
 [3.3] 言語:C
[4] 期限:2009年7月31(金)
[5] その他の制限:ポインタ履修済みです

661デフォルトの名無しさん:2009/07/30(木) 01:48:07
>>659
#include<stdio.h>

void print_star(int num)
{
int i;
for (i = 0; i < num; i++) fputc('*', stdout);
}
int main()
{
char in_buf[BUFSIZ];
char *p = in_buf;
int count[52] = {0}; /* A-Z a-z */
int i;
fgets(in_buf, sizeof(in_buf), stdin);

while (*p!='\0')
{
if (*p >= 'A' && *p <= 'Z') count[*p - 'A']++;
if (*p >= 'a' && *p <= 'z') count[*p - 'a' + 26]++;
p++;
}

for (i = 0; i < sizeof(count) / sizeof(count[0]); i++)
{
if (count[i] == 0) continue;
printf("%c: ", ((i < 26) ? 'A' : 'a' - 26) + i);
print_star(count[i]);
fputc('\n', stdout);
}
return 0;
}
662デフォルトの名無しさん:2009/07/30(木) 02:18:01
663デフォルトの名無しさん:2009/07/30(木) 03:10:03
>>661

ありがたいのですがまだfputcなどを学んでいないのでちょっとわかりません…
参考にします
ありがとうございます
664デフォルトの名無しさん:2009/07/30(木) 03:18:00
>>663
fputc('*', stdout);

printf("*");
でもいいよ
665デフォルトの名無しさん:2009/07/30(木) 09:51:30
>>662
迅速な解答、本当に感謝しております。
感動しました!
666デフォルトの名無しさん:2009/07/30(木) 13:38:32
[1] 授業単元:情報
[2] 問題文:次のコードに、ブロックくずしの機能を追加せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9861.txt
ブロックの数は自由である。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2009年8月1日(土)
[5] その他の制限:特にありません
大きなプログラムになりますが、宜しくお願いします。
667デフォルトの名無しさん:2009/07/30(木) 15:08:03
[1]C言語
[2]>>662のコードにあるアルゴリズム以前の致命的な問題を指摘し、
修正したコードを書け。
[3]>>662のコードが実行出来る処理系ならば何でも可
[4]本日中
668デフォルトの名無しさん:2009/07/30(木) 15:21:48
>>667
一行目を削る
669デフォルトの名無しさん:2009/07/30(木) 15:34:40
どゆこと?
670デフォルトの名無しさん:2009/07/30(木) 15:52:00
パラメータが多すぎるときのエラーメッセージがちょっと残念なこと、、、は別に致命的じゃないか
671デフォルトの名無しさん:2009/07/30(木) 15:52:35
#endifを消すってことだろ
672デフォルトの名無しさん:2009/07/30(木) 16:01:36
話を総合すると
#if 0と#endifを削る?
これはひどいシンタックスエラーですね
673デフォルトの名無しさん:2009/07/30(木) 16:04:03
宿題スレのテンプレが書かれた状態では提出できないのでテンプレ部分を省いて欲しいということかと。
674デフォルトの名無しさん:2009/07/30(木) 16:07:27
int main() 型だけど return が居ない? (全て exit で抜ける)

(プリプロセッサで挟まれているとはいえ、漢字リテラルのがまずい?)
675デフォルトの名無しさん:2009/07/30(木) 16:57:49
#if 0 〜 #endif は別に致命的でもないしな。
何か勘違いしてんじゃね?
676デフォルトの名無しさん:2009/07/30(木) 17:15:52
もしかして BUFSIZ が未定義のマクロに見えたのか?
(stdio.h に居る)
677数学科学生S:2009/07/30(木) 17:21:05
[1] 授業単元:アルゴリズムA演習
[2] 問題文(含コード&リンク):
以下のような図です.
http://imepita.jp/20090730/619100
そこでこの図の表現を変えてみるために以下のアルゴリズムを考えました.
表現すべき反復回数を5で割り余りを50倍する.
この値がもし255(グレイスケール8ビット最大値)を越えていたら255にする.
そしてこの値を2次元配列の対応する場所に代入する.そしてxvでプロットする.
以下がその結果です.これを作成してください.この時のプログラムと以下の図を併せて提出してください
http://imepita.jp/20090730/619740

 [3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:cc
 [3.3] 言語:C
 [4] 期限:8月3日
678数学科学生S:2009/07/30(木) 17:27:19
最初の図は途中まで与えられています。
#include <stdio.h>
#include <math.h>
#include "zcalc.h"
#define NSIZE 500
#define XYLOW -1.5
#define XYHIGH 1.5

zcompl zentry(float a,float b) {
zcompl c;
c.x = a ;
c.y = b ;
return c ;
}
zcompl zadd(zcompl a,zcompl b) {
zcompl c ;
c.x=a.x+b.x;
c.y=a.y+b.y;
return c ;
}
zcompl zsub(zcompl a,zcompl b) {
zcompl c ;
c.x=a.x-b.x;
c.y=a.y-b.y;
return c ;
}
zcompl zneg(zcompl a) {
zcompl c ;
c.x=-a.x ;
c.y=-a.y ;
return c ;
}
679数学科学生S:2009/07/30(木) 17:28:15
続き
zcompl zmul(zcompl a,zcompl b) {
zcompl c ;
c.x=a.x*b.x-a.y*b.y ;
c.y=a.x*b.y+a.y*b.x ;
return c ;
}
zcompl zconjugate(zcompl a) {
zcompl c ;
c.x=a.x ;
c.y=-a.y ;
return c ;
}
zcompl zdiv(zcompl a,zcompl b) {
zcompl bbbar,bconj,binv ;
zcompl c ;
bconj=zconjugate(b) ;
bbbar=zmul(b,bconj) ;
binv=zentry(bconj.x/bbbar.x,bconj.y/bbbar.x) ;
c = zmul(a,binv) ;
return c ;
}
float zabs(zcompl a) {

}
void zprint(zcompl a) {
printf("%f%s%f(i)",a.x,(a.y>=0?"+":""),a.y) ;
}
void zprintn(zcompl a) {
zprint(a) ;
printf("\n") ;
}
680数学科学生S:2009/07/30(木) 17:31:14
zandnit z3minus1(zcompl zinit) {
zcompl zfunc,zdfunc,zz,zold,znew,zdiff ;
zcompl zzero,zone,zthree ;
zandnit zn ;
float eps=1.0e-6 ;
int niterat=0;

niterat -= 1;
zn.z=znew ;
zn.niterat=niterat ;
return zn ;
}
int main() {
int nitxy[NSIZE][NSIZE] ;
zcompl zinit,zanswer ;
zandnit zend ;
float x,y ;
int niterat,nitmax ;
int ix,iy ;
float delta ;
printf("P2 %d %d\n",NSIZE,NSIZE) ;
delta=(XYHIGH-XYLOW)/NSIZE ;
for(ix=0;ix<NSIZE;ix++) { // x-direction
x=XYLOW+delta*ix ;
for(iy=0;iy<NSIZE;iy++) {
y=XYLOW+delta*iy ;
zinit.x=x ;
zinit.y=y ;
zend=z3minus1(zinit) ;
nitxy[ix][iy]=zend.niterat ;
}
}
681数学科学生S:2009/07/30(木) 17:32:43
nitmax=0;
for(iy=0;iy<NSIZE;iy++) {
for(ix=0;ix<NSIZE;ix++)
if(nitxy[ix][iy]>nitmax) nitmax=nitxy[ix][iy] ;
}
printf("%d\n",nitmax) ;
for(iy=0;iy<NSIZE;iy++) {
for(ix=0;ix<NSIZE;ix++)
printf("%d ",nitxy[ix][iy]) ;
printf("\n") ;
}
}
682デフォルトの名無しさん:2009/07/30(木) 17:56:16
インデント…
683デフォルトの名無しさん:2009/07/30(木) 18:51:45
>>676
BUFSIZがstdio.hで公開されているのはある種のバグ
というか名前の付け方が安直過ぎ(今となっては,>>662
ように無関係なところに流用し自分のプログラムで
決めるべきことをsetbuf関数作成者の決定にすり替えて
責任転嫁した上にsetbufの都合でBUFSIZを変更すること
すら許さないようなコードが多くなっており、修正はムリ
だが)
SETBUF_BUFSIZEとかにしておけば良かったし、恐らく
作成者はしたいだろうね、今でも。
684デフォルトの名無しさん:2009/07/30(木) 21:35:39
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
キーボードから実数を1つ入力し、double型の変数aに代入する。これを小数点以下第3位
で四捨五入した値をdouble型の変数bに代入し、さらに次の実行例のような出力をするプロ
グラムを作成せよ。

実数aを入力してください: 0.5372
この数を小数点以下第3 位で四捨五入した数は0.54です。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年08月03日
[5] その他の制限:
685デフォルトの名無しさん:2009/07/30(木) 22:51:30
>>666
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9862.c

コンパイルするときはcursesライブラリのリンクを忘れずに
cc hoge.c -lcurses
686デフォルトの名無しさん:2009/07/30(木) 23:00:48
>>685
・・大掛かりなのにも関わらず解答して頂き、
心から感謝申し上げます。
精進します・・・
687デフォルトの名無しさん:2009/07/30(木) 23:31:24
>>684
#include <stdio.h>

int main(void){
double a,b;

printf("実数aを入力してください: ");
scanf("%lf",&a);

b = (double)(int)(a*100+0.5) / 100;

printf("この数を小数点以下第3 位で四捨五入した数は%.2lfです。\n",b);

return 0;
}
688デフォルトの名無しさん:2009/07/31(金) 00:24:04
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):本文が長すぎて書き込めないので下に
分けて書き込みます
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: borland c++
 [3.3] 言語: C
[4] 期限: 7月31日 15時
[5] その他の制限:なし
本気で困っています よろしくお願いします
689688:2009/07/31(金) 00:26:32
[2] 問題文(含コード&リンク): POSデータ解析システムを作ってみよう
K氏は、3つのコンビニエンスストア(X店、Y店、Z店)をチェーン店に持つオーナーです。コンビ
ニエンスストアの経営において、売れ筋商品と死に筋商品の的確な把握は死活問題に直結する重要な業務
です。そこでK氏は、チェーン店に、毎日どんな商品がどれくらい売れたのかといった販売情報を、CS
Vファイルとして送るように指示していました。しかし、送られてくるデータファイルは膨大であり、そ
れらを統合して、全店を通して最も売れた商品はどれで、何が売れていないかを把握することは困難でし
た。つまり、送られてくるデータを適切に活用できないでいました。そこで、K氏はあなたに、こういっ
たことを解決するシステム(POSデータ解析システム)を開発するように頼みました。K氏は、毎日送
られてくるX、Y、Z店の個別の販売情報を合計した一括データを入手したいそうです。
690688:2009/07/31(金) 00:28:56
<第1ステップ>
まず、あなたは、各店舗から送ってもらうCSV ファイル名を以下のようにするよう、お願いしました。
X店=data-x.csv Y店=data-y.csv Z店=data-z.csv
また、商品名(全100 品種)は必ず以下の形式で入力するように指示しました。
「 Item-00 」から「 Item-99 」までの半角7文字
−75−
さらに、各店から送られてくるレコードのフィールドは、以下の項目にして、売上時刻順に並べてもら
うよう、お願いしました。以下のようなCSV ファイルが送られてくることになります。
売上時刻 商品名 売上個数
0:12,Item-42,2
0:12,Item-03,1
0:49,Item-92,3


23:38,Item-80,1
また、毎日送られてくるCSVファイルとは別に、単価情報が格納された tanka.csv ファイルを作りま
した。このファイルのレコードのフィールドは、次のようになっていて、商品名順に並んでいます。
商品名 単価
Item-00,150
Item-01,120

Item-99,230
最後に、K 氏に提供する統合ファイル(data-all.csv)のレコードの中身は以下のようにして、商品名
の小さい順にレコードを作りました。
商品名 単価 総売上個数 売上高
ここで、大事なことは、売上情報を統合することです。例えば、単価150 円のItem-23 という商品が、
X 店では15 個、Y 店では、25 個、Z 店では10 個売れたとすると、以下のようになっているということです。
Item-23,150,50,7500
また、全店舗を通して1 個も売れなかった商品情報は載せないことにしました。
691688:2009/07/31(金) 00:30:15
<第2ステップ>
K氏から、data-all.csv のレコードの中身を以下のように変更し、レコードを並べる順番も、これまで
の商品名順ではなく、売上順位の高い順にして欲しいと要望がありました。
売上順位 商品名 単価 総売上個数 売上高 全売上高にしめる割合(%)
全売上高とは、全商品の売上高の合計です。全売上高にしめる割合の有効数字は4 桁(10%未満の場合は
3 桁)にします。例えば、全売上高が100 万円で、該当商品の売上高が12,345 円だとすると、割合(%)
は 1.23 となります。
売上順位は、同じ売上高の場合は同一順位とします。
−76−
例えば、data-all.csv ファイルは次のようになります。
1,Item-23,150,50,7500,10.71
2,Item-52,240,30,7200,10.28
2,Item-53,360,20,7200,10.28
4,Item-14,230,30,6900,9.85



4レスも消費してすいませんでした
よろしくお願いします
692デフォルトの名無しさん:2009/07/31(金) 00:43:39
問題文の途中に出てくる−75−とか−76−はなんなの?
693デフォルトの名無しさん:2009/07/31(金) 00:55:36
元の資料あるならそのまま貼った方がいいんでないの?
694662:2009/07/31(金) 01:04:35
>>683
勉強になりました。
とりあえず自分のコードでは1行の長さがBUFSIZを超えた場合にうまく動かないので、
もしよければ手直しを。。。
695デフォルトの名無しさん:2009/07/31(金) 01:05:37
途中にある-75- -76-とかの数字はページの表記でした。気付かず投稿してしまいました。最初から資料貼ってれば良かったですねorz
わかりにくくてすいませんm(__)m
696デフォルトの名無しさん:2009/07/31(金) 01:06:48
宿題を自分でやらないというルールを守れないし、このスレのルールも守れないんですね。
697デフォルトの名無しさん:2009/07/31(金) 01:56:34
>>694
>>683は煩さ杉。公開ヘッダの定数値を流用することなんて
禁止する手段も意味も無いと思う。但しコードの可読性から
「流用した」とコメントを入れておいたほうがいいかも
そしてなるべく別の名称にエイリアスする。
↓こんな感じかな

#define BUFFER_SIZE BUFSIZ
/* BUFSIZはstdio.hで定義されている共通定数 */
698デフォルトの名無しさん:2009/07/31(金) 02:10:54
いずれにしても、>>667は宿題の答えを授業で教わったら
それをここに書き込んでね。自分も含めて
どこが「致命的」なのかわからないから…。
699デフォルトの名無しさん:2009/07/31(金) 03:25:28
>うまく動かないので

BUFSIZが非常に小さい処理系(DOSとか古い組み込みOSの
一部の処理系じゃ32バイトとかそんな程度)
ではうまく動かないというよりか、ヘンに正しく動作しなが
らも思いっきり間違った答えを出して平然という
表現のほうがあってると思われ
これを致命的だと表現出来るかどうかは感覚の問題だろけど

まWindowsの上のGCCじゃ問題ないだろうが
例えばfgetsで行を読み込んだ時に終端が改行かどうかチェックし
改行じゃない場合は判定不能として処理を中断するコード
が入ってることとかが模範解答としては求められているんぢゃ?
(自分は求めてはいないけどw)
700デフォルトの名無しさん:2009/07/31(金) 03:57:10
判定不能にはならないだろw
701 ◆/91kCCQXBo :2009/07/31(金) 04:39:43
>>667 解答
2つのファイルが同じときは、どう表示するか、
[EOF]\nの文字が最初の違いとして現れたら、どう表示するかとか、
ファイル名は表示するのかとか、気づいたのはその3点。

while (1) {
  if (fgets(line_1, sizeof(line_1), f_1) == NULL) {
    if (fgets(line_2, sizeof(line_2), f_2) == NULL) {
      break;
    }
    printf("%d + %s", line_2);
    break;
  }

  if (fgets(line_2, sizeof(line_2), f_2) == NULL) {
    printf("%d - %s", line_1);
    break;
  }

  if (strcmp(line_1, line_2) != 0) {
    printf("%d + %s", line_1);
    printf("%d - %s", line_2);
    break;
  }
  line_no++;
}
702デフォルトの名無しさん:2009/07/31(金) 04:44:40
なんかのギャグ?
703デフォルトの名無しさん:2009/07/31(金) 04:52:00
致命的な
704デフォルトの名無しさん:2009/07/31(金) 07:26:12
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9863.txt
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 8月1日
[5] 急な話ですがお願いします。コメント部分を書き換えてください。
705デフォルトの名無しさん:2009/07/31(金) 07:48:23
>>687
負数を忘れておるな?
706687:2009/07/31(金) 08:06:32
>>705
指摘ども。

>>684
修正お願いします。
b = (double)(int)(a*100+(a>=0?0.5:-0.5)) / 100;
707デフォルトの名無しさん:2009/07/31(金) 14:23:23
708707:2009/07/31(金) 14:34:27
>売上順位は、同じ売上高の場合は同一順位とします。
しまった、この条件を見逃してた。step2.cだけ修正

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9866.c
709デフォルトの名無しさん:2009/07/31(金) 14:55:26
>>708
qsort の 比較関数戻り
引き算の結果 INT_MAX 超える(= uriage 差が INT_MAX 以上ある) と
ソート方向裏返らない?

面倒でも if なり 条件演算式なりにしたほうが無難じゃないかな?
710デフォルトの名無しさん:2009/07/31(金) 15:12:36
>>709
どういう場合にINT_MAXを超えますか?
711デフォルトの名無しさん:2009/07/31(金) 15:21:37
>>708
本当にありがとうございましたm(__)m嬉しくて泣きそうです!
712デフォルトの名無しさん:2009/07/31(金) 15:37:53
>>710
ごめん 意味的には負数になることないんで超えないね…
713デフォルトの名無しさん:2009/07/31(金) 17:10:20
>>709
>面倒でも if なり 条件演算式なりにしたほうが無難じゃないかな?
全面的に同意。俺707だけどw

>>711
わりい、>>708の修正版でランク付けする部分が完全にバグってた
まだ提出してなければ適当にデバッグしてくだされ
714709:2009/07/31(金) 17:45:01
日本語がおかしかったな。
”引き算の結果は” どーなろうが INT_MAX 内だ

重要なのは、
 item[id_b].uriage > item[id_a].uriage
であるにもかかわらず
 item[id_b].uriage - item[id_a].uriage が負の値になる場合がある

item[id_b].uriage → INT_MAX 、 item[id_a].uriage → -10
のように INT_MAX以上の隔たりがあるときにね
715デフォルトの名無しさん:2009/08/01(土) 13:16:54
[1] 授業単元:プログラミング(C++)
[2] 問題文(含コード&リンク):

double型の変数dをcoutで出力すると 6.50877e+200 が出力される。
この値は、4.70322013 * 10^(87) と等しい。
87 を得られるプログラムを作成せよ。

[3] 環境
 [3.1] Linux
 [3.2] gcc 4.3.3
 [3.3] C++
[4] 期限: 出来れば本日(8/1)中
[5] その他の制限: よろしくお願いします。
716デフォルトの名無しさん:2009/08/01(土) 14:15:46
[1]C言語初級
[2]現在割り当て可能なmallocメモリ領域バイト数を1バイト単位
で取得する
unsigned int maxAvail()
関数を作成し、main関数の中で実行するサンプルプログラムを作成。
他のプログラムを立ち上げている状態で起動した場合に値がどのように
変化するか?
maxAvail関数呼び出し自体によってmalloc領域が変化する可能性は
無視して良い。
4Gバイトより大きい領域が取得できる場合は(unsigned int)
0xFFFFFFFFを返すこと
maxAvail関数の中で使用できる関数はmemset,malloc,freeのみとする。
割り当てた領域はすぐに解放するがその前にmeset関数で取得した
領域を0で埋めること。
[3] Linux/gcc 4.0/C言語
使用出来るライブラリ関数=printf malloc free memset
[4]8/10 正午までにメール
717デフォルトの名無しさん:2009/08/01(土) 14:37:26
>>715
問題の意味がわからないが、こういうことだろうか

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

void main()
{
double x1 = 6.50877;
double e1 = 200.0;
cout << x1 << "*e^" << e1 << " == ";

double d = x1 * exp(e1);
double e2 = floor(log10(d));
double x2 = d / pow(10.0, e2);
cout << x2 << "*10^" << e2 << endl;

cout << "answer is " << e2 << endl;
}
718デフォルトの名無しさん:2009/08/01(土) 14:56:33
int main()
:6: error: `main' must return `int'
719デフォルトの名無しさん:2009/08/01(土) 14:58:12
>>718
void main() → int main(void)
関数の最後にreturn 0;
720デフォルトの名無しさん :2009/08/01(土) 16:12:53
>>716
ちょっと意味がわからん
721デフォルトの名無しさん:2009/08/01(土) 16:19:40
exit(0);は保障されてる?
722721:2009/08/01(土) 16:34:57
>>715 入力を追加した。
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
  double d, e = 6.50877e+200, x1, e1, x2, e2;

  cout << "実数を入力して下さい:"; cin >> e;
  cout << e << " :: ";
  e1 = floor(log10(e));
  x1 = e / pow(10.0, e1);
  cout << x1 << "*e" << (e1<0?"":"+") << e1 << endl;

  d = x1 * exp(e1);
  e2 = floor(log10(d));
  x2 = d / pow(10.0, e2);
  cout << x2 << "e" << (e1<0?"":"+") << e2 << endl;
}
723sage:2009/08/01(土) 17:53:19
[1] 授業単元: プログラミングI
[2] 問題文(含コード&リンク):
体格判定プログラム(身長,体重からBMIなどを計算
し,「メタボ予備軍です」などのメッセージを出力する.)
• 占いプログラム(日付などを入力すると、それらを用い
た計算を行い,今日の運勢,ラッキーカラーなどを出力
する)など
• 会話[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 8月5日
[5] その他の制限:int以外の変数、配列、関数の使用

724デフォルトの名無しさん:2009/08/01(土) 18:28:40
まさかの関数使用不可
725デフォルトの名無しさん:2009/08/01(土) 19:10:20
>>724
int以外の
・変数
・配列
・関数
の使用

ではないかとエスパー。
726デフォルトの名無しさん:2009/08/01(土) 19:49:31
printfってOSの違いで影響受けますか?
727デフォルトの名無しさん:2009/08/01(土) 19:58:00
>>723
double使っちゃいけないって本当?
BMIは小数必要だからソースぐちゃぐちゃに。。

#include <stdio.h>

int main(void){
int height,weight;

printf("input height(cm) : "); scanf("%d",&height);
printf("input weight(kg) : "); scanf("%d",&weight);

printf("\nあなたのBMI指数は %4.1lf です。\n",(double)weight / (height/100.0) / (height/100.0));

if((double)weight / (height/100.0) / (height/100.0) < 18.5) printf("やせ気味です。\n");
else if((double)weight / (height/100.0) / (height/100.0) < 25) printf("標準体型です。\n");
else if((double)weight / (height/100.0) / (height/100.0) < 30) printf("メタボ予備軍です。\n");
else printf("太りすぎです。\n");

return 0;
}
728デフォルトの名無しさん:2009/08/01(土) 19:58:59
逆にintを使っちゃいけないんじゃ?
729デフォルトの名無しさん:2009/08/01(土) 20:05:28
>>723
訂正

int以外の変数をしている
scanf・for・配列・関数を使用
for文の中にforを使用
3つ以上のcaseを含むswitchを使用している
関数の再起呼び出し
730デフォルトの名無しさん:2009/08/01(土) 20:12:38
>>723
・後から問題に付け足しするのはコラー!!です。
 付け足しは作業を無駄にしがちです。

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

int main(void){
int month,day;
int luck,R,G,B;

printf("input month : "); scanf("%d",&month);
printf("input day : "); scanf("%d",&day);

srand(month*100+day);

luck = rand() % 4;
R = rand() % 256;
G = rand() % 256;
B = rand() % 256;

if(luck == 0) printf("\n何をしてもダメな日。無難に過ごそう。\n");
else if(luck == 1) printf("\n今日はアンラッキーデー。口は災いの元。\n");
else if(luck == 2) printf("\n今日はちょっといいことあるかも。\n");
else printf("\n今日は最高に良い日。何をしてもうまくいくよ!\n");

printf("\n今日のラッキーカラーは R%3d G%3d B%3d です。\n",R,G,B);

return 0;
}
731デフォルトの名無しさん:2009/08/01(土) 20:26:15
>>726エスケープシーケンスーとか?
732デフォルトの名無しさん:2009/08/01(土) 20:26:46
>>723
#include<stdio.h>

int main(void){
int moji;

printf("今日はいい天気ですね\n>");
fflush(stdout);
while((moji=getc(stdin))!=EOF && moji!='\n');
printf("うっせーハゲ\n");

return 0;
}
733デフォルトの名無しさん:2009/08/01(土) 20:58:09
>>729
ちゃんと分かるように書け

int以外の変数をしている といいのかいけないのかどっちだ?
scanf・for・配列・関数を使用 するとどうなんだ?
for文の中にforを使用 すると?
3つ以上のcaseを含むswitchを使用している ?
関数の再起呼び出し ?

BMIの計算方法は?「メタボ予備軍です」などのメッセージを出力するときの閾値とメッセージは?
占いプログラムのちゃんとした仕様は?
会話って何?
734デフォルトの名無しさん:2009/08/01(土) 21:10:03
>>733
ここは宿題スレだからさ
735デフォルトの名無しさん:2009/08/01(土) 21:50:40
>>716
ってちょっとやってみたけど意外にムズいな
736デフォルトの名無しさん:2009/08/01(土) 22:34:05
>>735
はあ?
737デフォルトの名無しさん:2009/08/01(土) 23:44:00
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
キーボードから整数をひとつ入力し,その数が素数であるかどうかを判定するプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年08月03日
[5] その他の制限:
738デフォルトの名無しさん:2009/08/01(土) 23:52:56
>>737
#include<stdio.h>

int main(void){
int x,i;
int flag = 1;

printf("input x : "); scanf("%d",&x);

for(i=2;i*i<=x;i++){
if(x%i==0){
flag = 0;
break;
}
}

if(flag) printf("\n %d is prime number.\n",x);
else printf("\n %d is composite number.\n",x);

return 0;
}
739デフォルトの名無しさん:2009/08/01(土) 23:53:25
>>735
仕様がわからないからな
740デフォルトの名無しさん:2009/08/02(日) 00:04:03
仕様は分かるが要求に無理があるのではないか?
741デフォルトの名無しさん:2009/08/02(日) 00:42:43
>>723
>>729を全部みたしているものを書いてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9867.txt

>>733
馬鹿相手にむきになると馬鹿がうつるぞ
742デフォルトの名無しさん:2009/08/02(日) 00:58:44
>>716もついでに書いてみた。
コンパイルはしたけど実行はしてない。

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

unsigned int maxAvail()
{
unsigned long n = 1;
char *p;
do {
p = malloc(n);
if (p != NULL) { memset(p, 0, n++); free(p); }
if (n > 4 * 1024 * 1024 * 1024) return 0xFFFFFFFF;
} while (p != NULL);
return --n;
}

int main(void)
{
printf("%d\n", maxAvail());
return 0;
}
743デフォルトの名無しさん:2009/08/02(日) 00:59:03
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
2つの整数をキーボードから入力し、それらの最大公約数を表示するプログラムを作成せよ。
最大公約数と、2つの数字を割り切る最大の整数のことである。
例えば12と18の最大公約数は6,24と48の最大公約数は24である。
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年08月03日
[5] その他の制限:特になし。
744デフォルトの名無しさん:2009/08/02(日) 01:05:31
>>743
#include <stdio.h>

int gcd(int a, int b)
{
int c;
while (b) { c = a % b; a = b; b = c; }
return a;
}

int main(void)
{
int a, b;
printf("input number >> "); scanf("%d", &a);
printf("input number >> "); scanf("%d", &b);
printf("GCD(%d, %d) = %d\n", a, b, gcd(a, b));
return 0;
}
745デフォルトの名無しさん:2009/08/02(日) 01:49:43
配列を使用して次のデータの合計を計算し、得点の高い人から並び替えその出力を求めよ。

入力データ↓

(学籍番号 国語 数学 理科 社会 英語)
10 65.0 55.0 74.0 63.0 67.0
20 45.0 63.0 67.0 58.0 73.0
30 72.0 62.0 56.0 77.0 54.0
40 58.0 71.0 77.0 67.0 43.0
50 66.0 58.0 81.0 82.0 55.0


出力のイメージは
(ヘッダー、見出し)
学籍番号 国語 数学 理科 社会 英語 合計
XX   XX.X XX.X XX.X XX.X XX.X XX.X(合計得点の1番)
XX   XX.X XX.X XX.X XX.X XX.X XX.X(合計得点の2番)
XX   XX.X XX.X XX.X XX.X XX.X XX.X(合計得点の3番)
・    ・  ・  ・  ・   ・ ・
・    ・  ・  ・  ・   ・ ・
・    ・  ・  ・  ・   ・ ・

ですよろしくお願いします。
746745:2009/08/02(日) 01:53:04
すいません745です 上記の問題をよろしくお願いします。
[1] 授業単元:プログラミング
[2]上記
[3] 環境
 [3.1] OS: (Red Hat Linux)
 [3.2] コンパイラ名とバージョン: (xemacs)
 [3.3] 言語: (C)
[4] 期限: ([2009年8月3日まで])
[5] その他の制限: (for文と配列でお願いします。)
747デフォルトの名無しさん:2009/08/02(日) 06:36:01
748デフォルトの名無しさん:2009/08/02(日) 10:18:34
>>723
>>741 まぜるな、分けた。
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/22
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/23
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/24

>>729 こう、だろ?
[その他制限]
int以外の変数を使用してください
scanf・for・配列・関数を使用してください
for文の中にforを使用してください
3つ以上のcaseを含むswitchを使用してください
関数の再起呼び出しをしてください
749デフォルトの名無しさん:2009/08/02(日) 11:31:18
>>748
× 再起
○ 再帰
750デフォルトの名無しさん:2009/08/02(日) 13:41:07
>>749 こぴぺ
751745:2009/08/02(日) 15:44:48
747さん本当にありがとうございます。ちなみに入力データを自分で入力して出力に反映させるには、scanfを使用すればいいのですか?
問題文に記載し忘れていて大変申し訳ないのですが、入力データは任意の値
なので、その場合どのような文になりますか?
752デフォルトの名無しさん:2009/08/02(日) 16:04:24
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
   ttp://dl1.getuploader.com/g/4a7538af-eda0-4179-9e58-2a304038400b/komekome1221/4/%E5%95%8F%E9%A1%8C%E5%88%86.txt
   ttp://dl1.getuploader.com/g/4a7538e6-83c4-45e8-b647-31214038400b/komekome1221/5/select.txt
   ttp://dl1.getuploader.com/g/4a753905-ba20-4801-894c-378e4038400b/komekome1221/6/%E9%9D%9E%E5%90%8C%E6%9C%9F%E3%81%AE%E3%83%81%E3%83%A3%E3%83%83%E3%83%88.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:GNU Cコンパイラ
 [3.3] 言語: C++
[4] 期限: 09年08月03日
[5] その他の制限:特になし
お願いします
753デフォルトの名無しさん:2009/08/02(日) 16:46:15
>>731
変換指定子%〜がOSによっては文字化けすることがあるんです
754デフォルトの名無しさん:2009/08/02(日) 18:17:59
>>753
どうかいたらどうばけた
755デフォルトの名無しさん:2009/08/02(日) 18:37:10
>>754
printf("%5s%Akko$4s〜
で、%AkkoのAkkoが化けるときと化けないときがあります
756デフォルトの名無しさん:2009/08/02(日) 18:39:56
>>755
%Aは十六進浮動小数点変換を意味する。%Aが使えない環境でも%を出力するという保証はない。
printf系で%を出力させるには書式文字列で%%を指定すればいい。
757デフォルトの名無しさん:2009/08/02(日) 18:44:34
>>756
間違えました、すみません。Akkoのうち、Aが%Aと認識して
Aの部分だけ化けるときと化けないときがあるんです
OSで違いが出ているんです
758デフォルトの名無しさん:2009/08/02(日) 19:02:17
レスしようと思ったら>>756が言いたいこと全部書いてくれてた。
>>757はまだ不満であるか
759デフォルトの名無しさん:2009/08/02(日) 19:08:07
[1] 授業単元:工学実験
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9870.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Stadio 2005
 [3.3] 言語:C++
[4] 期限: 2009年8月3日9:00まで
[5] その他の制限:特にないです
宜しくお願いします
760デフォルトの名無しさん:2009/08/02(日) 19:46:31
>>758
すみません、%Aが使えない環境ってどういうのでしょうか?
761デフォルトの名無しさん:2009/08/02(日) 19:48:04
>>760
% を出力したければ %% と書けばいい
それだけの話じゃないの?
762デフォルトの名無しさん:2009/08/02(日) 19:57:52
>>761
ごめんなさい。%は不要なんです。Akkoと表示したいのに、Akkoの前の%が邪魔で
Aが化けるときがあるんです。
763デフォルトの名無しさん:2009/08/02(日) 20:03:48
>>762
何を言いたいのかさっぱり分からない
邪魔なだけなら消せばいい

printf("%5s%%Akko$4s〜\n", "hoge");

hoge%Akko$4s〜


printf("%5sAkko$4s〜\n", "hoge");

hogeAkko$4s〜
764デフォルトの名無しさん:2009/08/02(日) 20:04:49
%が邪魔なら%消せよアホか
765デフォルトの名無しさん:2009/08/02(日) 20:14:10
ごめんなさい。%Aが有効になるのはどういうときか聞きたかったんです。
766デフォルトの名無しさん:2009/08/02(日) 20:32:54
767デフォルトの名無しさん:2009/08/02(日) 20:57:15
???
768デフォルトの名無しさん:2009/08/02(日) 21:01:41
>(C99 にはあるが SUSv2 にはない) a 変換では、
OSによってprintfの挙動が違うとか言ってるけれど、処理系の実装に差があることが分かってないのが真相てことかね?
だったらOSとコンパイラ晒せば解決だな
769デフォルトの名無しさん:2009/08/02(日) 21:11:20
770デフォルトの名無しさん:2009/08/02(日) 21:21:01
>>768
OSはAIXです。バージョンによって化けます
771デフォルトの名無しさん:2009/08/02(日) 22:02:26
>>716 一応出来たが自分の環境だとsegmentation fault
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int maxAvail(){
unsigned int l = 0,r = 0xFFFFFFFF,m;
char* mem;
mem = (char*)malloc(r);
if(mem != NULL){
memset(mem,0,r);
free(mem);
return r;
}else{
while(r<l){
m = (l+r)/2;
mem = (char*)malloc(m);

if(mem != NULL){
l = m;
memset(mem,0,m);
free(mem);
}else{
r = m;
}
}
}
return l;
}
int main(){
printf("%u",maxAvail());
return 0;
}
772デフォルトの名無しさん:2009/08/02(日) 23:14:11
>>771
3ヶ所修正したら動いた。(VC++2005)

修正前 → 修正後
while(r<l) → while(l<r)
m = (l+r)/2; → m = (l+r)/2+1;
r = m; → r = m-1;
773デフォルトの名無しさん:2009/08/02(日) 23:42:25
僕はこうやる。
max_size = 0;
for (bit = 0x80000000; bit > 0; bit >>= 1) {
mem = malloc(max_size | bit);
if (mem != NULL) {
free(mem);
max_size |= bit;
}
}
774デフォルトの名無しさん:2009/08/02(日) 23:52:38
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
任意の自然数aと実数bを受け取り,方程式
x^a=b
の解を計算するプログラムを作成せよ(ここでx^aはxのa乗).
ただし,累乗根の計算には,ニュートン法などの数値解法を用いること.
また,解が無い場合はその旨を出力するよう例外処理をすること.

[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc だと思います。
 [3.3] 言語: C(C/C++/どちらでも可 のいずれか)
[4] 期限: [2009年8月3日18:30まで]
[5] その他の制限:特になし

よろしくお願いします。
775デフォルトの名無しさん:2009/08/03(月) 00:15:33
[1] 授業単元: オブジェクト指向
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9871.txt
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン:JUDE Community
 [3.3] 言語:
[4] 期限: ([2009年08月03日12:00まで]
[5] その他の制限:
 
C言語ではありませんが、誰が分かる人がいるなら
よろしくお願いします。
776デフォルトの名無しさん:2009/08/03(月) 00:20:12
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
以下の機能を持った関数を含むプログラムを作成せよ.
1.正の整数n,rを読み込み,その組み合わせnCrを計算する関数を再帰呼び出しを用いて作成せよ.
2.正の整数n,rを読み込み,その組み合わせnCrを計算する関数を再帰呼び出しを用いないで作成せよ.

[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc だと思います。
 [3.3] 言語: C
[4] 期限: [2009年8月3日18:30まで]
[5] その他の制限:特になし

よろしくお願いします。
777デフォルトの名無しさん:2009/08/03(月) 01:48:32
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
   ttp://dl1.getuploader.com/g/4a7538af-eda0-4179-9e58-2a304038400b/komekome1221/4/%E5%95%8F%E9%A1%8C%E5%88%86.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:GNU Cコンパイラ
 [3.3] 言語: C++
[4] 期限: 09年08月03日
[5] その他の制限:特になし
どうかよろしくお願いします
778デフォルトの名無しさん:2009/08/03(月) 02:17:59
>>770
printf("%debug")と書いたら化けました。なぜですか?(ちなみに%は出力したくないです)
と本質的に変わらんのはわかるよな?
779デフォルトの名無しさん:2009/08/03(月) 04:10:43
780デフォルトの名無しさん:2009/08/03(月) 05:23:54
>>776
1.
int nCr(int n, int r){ return n == r ? 1 : r == 1 ? n : nCr(n, r-1) * (n - r + 1) / r; }

int nCr(int n, int r){ return n == r ? 1 : r == 1 ? n : nCr(n-1 ,r) * n / (n - r); }

int nCr(int n, int r){ return n == r ? 1 : r == 1 ? n : nCr(n-1, r-1) * n / r; }

int nCr(int n, int r) { return n == r ? 1 : r == 1 ? n : nCr(n-1, r-1) + nCr(n-1, r); }
781デフォルトの名無しさん:2009/08/03(月) 05:37:40
782デフォルトの名無しさん:2009/08/03(月) 10:13:29
>>773 君は変数宣言を忘れてる。
#include <stdio.h>
#include <stdlib.h>
int main(){
int max_size, bit, *mem; // 追加
//<---->
return 0;
}
783デフォルトの名無しさん:2009/08/03(月) 10:19:03
[1] なし
[2] 2ちゃんねるに書き込むプログラムを作れ
http://www1.axfc.net/uploader/Sc/so/24023.zip
[3] 環境
 [3.1] Windows
 [3.2] BCC55
 [3.3] C++
[4] 無期限
784デフォルトの名無しさん:2009/08/03(月) 15:02:42
>>783
なつだなあ
785デフォルトの名無しさん:2009/08/03(月) 15:40:23
[1] 授業単元: プログラム言語
[2] 問題文(含コード&リンク):1 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9877.txt
               2 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9876.txt
[3] 環境
 [3.1] OS:XP
 [3.2] VisualC++
 [3.3] C
[4] 期限:8/7まで
[5] その他の制限:コメント部分を変更して実行できる形にして欲しいです
786デフォルトの名無しさん:2009/08/03(月) 17:38:15
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):台形公式により関数y=x^2とx軸によって挟まれる部分のx=0〜x=8までの範囲の面積を求めよ。
分割は4で計算せよ。
[3] 環境
 [3.1] OS: ソラリス
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: (C)
[4] 期限: ( [無期限])
[5] その他の制限: (無し)
お願いします。
787デフォルトの名無しさん:2009/08/03(月) 19:51:01
>>786
#include <stdio.h>

double func(double x) {return x*x;}

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

for(x=0.0;x<8.0;x+=2.0){
sum += ( func(x) + func(x+2.0) ) * 2.0 / 2;
}

printf("sum = %lf\n",sum);

return 0;
}
788デフォルトの名無しさん:2009/08/03(月) 21:53:14
[1] 授業単元:応用プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9878.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: g++
 [3.3] 言語: c++
[4] 期限: 2009年8月7日金曜日
[5] その他の制限:
C言語内の円周率の定数をそのまま使うのは、おそらくダメだと思います。
よろしくお願いします。
789デフォルトの名無しさん:2009/08/03(月) 22:00:37
>>788
過去にもπを多桁出力させる宿題にはたくさん解答してきましたが、N進法ですか?これはこまった。もう狙い撃ちされてますねえ。
790デフォルトの名無しさん:2009/08/03(月) 22:04:03
N進法はいいんですけどね
マチンの公式でも使って多倍長計算するしかないか・・・
791デフォルトの名無しさん:2009/08/04(火) 02:05:43
無限に出力ってのは普通の多倍長計算でいいのかね
上の桁から計算していかなきゃいけないような気がするんだが
792デフォルトの名無しさん:2009/08/04(火) 02:08:26
東大の金田とかいう先生のライフワークに近いんじゃ?それって
793デフォルトの名無しさん:2009/08/04(火) 02:52:18
真面目にやったらD論書けるレベルの問題ってことか
794デフォルトの名無しさん:2009/08/04(火) 07:22:07
【質問テンプレ】
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):ハッシュ(チェイン法)を使ってkeyを検索し、該当するものがあればそのdataを表示する。(実際には検索してkeyとdataを返すまでです)
詳しくはこちらでhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9879.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限: 特になし

よろしくおねがいします
795デフォルトの名無しさん:2009/08/04(火) 08:10:56
>>794
・問題文は、出題されたまま全文を書いてください。
796794:2009/08/04(火) 08:27:00
797デフォルトの名無しさん:2009/08/04(火) 08:39:22
>794
もうどうにでもなれ
/*
* getHashValue()がkey == NULLのときに0を返すのはよくない
* こういう場合は、負値を返すべきである
*
* 命名規則も気にくわない
* hashtable[]がNULL初期化されていないのでうまく動く確率は零ナインに近い
*/
int hashvalue;
KeyAndData *kd = NULL;

if ( key == NULL ) {
return NULL;
}

hashvalue = getHashValue(key);
for ( kd = hashtable[hashvalue]; kd != NULL; kd = kd->next ) {
if ( strcmp(key, kd->key) == 0 ) {
return kd;
}
}

return NULL;
798デフォルトの名無しさん:2009/08/04(火) 08:45:20
>>797
ありがとうございます
799デフォルトの名無しさん:2009/08/04(火) 08:49:48
>>797
グローバル変数だから 0x00 で初期化されているから
多くの環境で NULL と等価な扱いになると思う
800デフォルトの名無しさん:2009/08/04(火) 10:01:21
Cのコンパイルがしたいです
http://www.geocities.jp/civiltool/index/bcc/bcc.html
↑参考に進めていたら
edit autoexec.batと入力しても「バッチファイルとして認識されない」とエラーでます
どうすればコンパイルできるんですか
801デフォルトの名無しさん:2009/08/04(火) 10:25:37
>>800
適当なエディタで編集すればいける。
エディタは使えるよな?
802 ◆/91kCCQXBo :2009/08/04(火) 11:23:35
>>800
C:\>EDLIN.EXE AUTOEXEC.BAT
EDLIN は使えるよな?
もしくは、
C:\>NOTEPAD.EXE AUTOEXEC.BAT
803デフォルトの名無しさん:2009/08/04(火) 12:46:18
[1] 授業単元:工学実験
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9870.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Stadio 2005
 [3.3] 言語:C++
[4] 期限: 2009年8月5日9:00まで
[5] その他の制限:特にないです

804デフォルトの名無しさん:2009/08/04(火) 13:27:56
>>803
教員の役職は何を見て決めればいいの?
805デフォルトの名無しさん:2009/08/04(火) 13:57:08
>>804
役職名は「○○教授」だけでいいようで
区別はしなくてもかまわないみたいです。
806デフォルトの名無しさん:2009/08/04(火) 17:12:12
[1] 授業単元:インタラクティブコミュニケーション
[2] 問題文(含コード&リンク):関数の呼び出し」、「配列」、「ポインタ」のすべてを使用したプログラムを
                  作成せよ。プログラミング力 + オリジナリティ、文字列、再帰が本質的な要素
                    として含まれていれば加点。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限: 8月17日(月)17:00(早いほうが望ましい)
[5] その他の制限: 習ったのはttp://www.ncc-1701.jp/kakei/InteractiveComm/IM_top.htmlに載ってる事です
             この範囲内で作って頂けると嬉しいです。
             #include <windows.h>は使わないようにお願いします。
             出来れば色んな方の作品があることが望ましいです。
807デフォルトの名無しさん:2009/08/04(火) 19:00:53
>>806
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
int i;
if (strlen(argv[0]) < 1) { puts(""); return 0; }
putchar(**argv);
argv[0]++;
main(argc, argv);
}
808デフォルトの名無しさん:2009/08/04(火) 19:55:35

[1] 授業単元:プログラミング実習
[2] 問題文 シンプソンの公式のよりy=x^2とx軸によって挟まれる部分のx=0〜8までの範囲の面積を求めよ。分割数は4で計算せよ。

[3] 環境
 [3.1] OS: ソラリス
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: (無期限)

[5] その他の制限: なし
お願いします。

809デフォルトの名無しさん:2009/08/04(火) 20:17:43
>>802
ほー、XP にもedlin が入っていたなんて今の今までしらなかった。感動した。
810デフォルトの名無しさん:2009/08/04(火) 20:22:50
>>808
たぶん>>786
811デフォルトの名無しさん:2009/08/05(水) 00:54:58
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
入力として与えられた文字列のアナグラム(anagram)を出力するプログラムanagram.cを作成せよ。

% ./a.out
String: abc
abc acb bac bca cab cba
%

入力する文字数が増えると計算時間はどのように変化していくかを考えよ。プログラムの実行時間は、「time」コマンドを使用して計測せよ。timeコマンドの結果のうち、ユーザ時間がプログラムの実行時間になります。

% time ./a.out
String: abc
abc acb bac bca cab cba

real 0m0.002s
user 0m0.000s
sys 0m0.001s
%

http://mdl.media.gunma-u.ac.jp/moodle09/file.php/97/program/anagram-skel.html
[3] 環境
 [3.1] OS:ソラリス
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限: ポインタまで
812デフォルトの名無しさん:2009/08/05(水) 01:01:44
続けて申し訳ありません
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):

引数に度(degree)をとるsin_degree関数を作成しなさい。math.hで宣言されているsin関数を使用せずに自作すること。

[3] 環境
 [3.1] OS:ソラリス
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限: ポインタまで
よろしくお願いします
813デフォルトの名無しさん:2009/08/05(水) 01:05:10
>>812
double sin_degree(double degree)
{
double theta;

theta=(degree-90)*M_PI/180.0;
return cos(theta);
}
814デフォルトの名無しさん:2009/08/05(水) 01:25:34
>>803
http://www1.axfc.net/uploader/Sc/so/24580.zip
main()は適当に直して下さい。
815デフォルトの名無しさん:2009/08/05(水) 02:09:17
>>812
PCやITなら兎も角,他所の世界で通用するとは限らないぞw
816デフォルトの名無しさん:2009/08/05(水) 02:11:59
誤爆った。スマソ
817デフォルトの名無しさん:2009/08/05(水) 04:04:47
>>814
ありがとうございます
とても助かりました
818デフォルトの名無しさん:2009/08/05(水) 09:46:46
>>812
>>813
確かに、sin関数は使ってないけどさ・・・

#include <stdio.h>
#include <math.h>
double sin_degree(double degree){
int i,j;
double sinx=0,temp,k=1.0;

//角度をラジアンに変換
double rad=degree/180*M_PI;

//マクローリン展開
for(i=1;i<20;i+=2){
temp=1;
for(j=i;j>0;j--){
temp=temp*rad/j;
}
sinx=sinx+temp*k;
k*=-1;
}
return sinx;
}

int main(){
printf("%lf\n",sin_degree(45));
return 0;
}
819デフォルトの名無しさん:2009/08/05(水) 12:35:11
>>818
>>813のほうがよほどスマートだな
820デフォルトの名無しさん:2009/08/05(水) 12:38:47
問題は出題者がどう判断するかだな。
821デフォルトの名無しさん:2009/08/05(水) 12:41:03
>>819
double sin_degree(int degree)
{
 double[360] table = {,/*エクセル辺りで作る*/,};
 degree %= 360;

return table[degree];
}

テーブルサイズは90にしてもいい
822デフォルトの名無しさん:2009/08/05(水) 12:42:18
間違えた
double sin_degree(int degree)
{
 double table[360] = {,/*エクセル辺りで作る*/,};
 degree %= 360;

 return table[degree];
}
823デフォルトの名無しさん:2009/08/05(水) 12:44:16
>>822
負の値用に while(degree < 0) degree+=360; も入れとこうぜ
824 ◆/91kCCQXBo :2009/08/05(水) 12:45:49
#include <stdio.h>
#include <math.h>
double sin_degree(double a) {
  return sin(a*M_PI/180);
}
int main() {
  int i;

  for(i=0;i<=90;i+=10)
    printf("%2d %f %f\n", i, sin(M_PI/180.0*i), sin_degree(i));
}
825デフォルトの名無しさん:2009/08/05(水) 12:47:24
>>822
表は90度までにしたいな
826デフォルトの名無しさん:2009/08/05(水) 12:48:15
>>824
math.hで宣言されているsin関数を使用せずに

他のと違って確実却下
827デフォルトの名無しさん:2009/08/05(水) 12:51:23
http://www.asahi-net.or.jp/~HA4K-MYZK/jyugyou/studentanswer.pdf
なんとなくこれを思い出した
828デフォルトの名無しさん:2009/08/05(水) 13:04:28
その人の名はチャングム(韓国)
829デフォルトの名無しさん:2009/08/05(水) 13:08:40
>>812の問題文にはsin(degree)を返す関数をつくれとは書いてないよね。
指定されてるのは引数と関数名だけ。

void sin_degree(double degree) { }

で満点もらえてもおかしくない。
830デフォルトの名無しさん:2009/08/05(水) 14:02:54
>>813
一休さんかよw
831デフォルトの名無しさん:2009/08/05(水) 14:41:51
>>829
教官からVOIDと書かれて返されたりして
832デフォルトの名無しさん:2009/08/05(水) 14:46:28
>>811
適当に改行いれて読みやすくして。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int next_perm(char a[], int size) {
int i, j;
char tmp;
if (size < 2) return 0;
for (i = size - 2; a[i] >= a[i+1]; --i) { if (i == 0) return 0; }
for (j = size - 1; a[i] >= a[j]; --j) { }
tmp = a[i]; a[i] = a[j]; a[j] = tmp;
for (++i, j = size - 1; i < j; ++i, --j) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; }
return 1;
}

int cmp_char(const void *pa, const void *pb) { return *(char *)pa - *(char *)pb; }

int main() {
char a[100], *p;
int n;
printf("String: ");
fgets(a, sizeof(a), stdin);
if ((p = strchr(a, '\n')) != NULL) { *p = '\0'; }
n = strlen(a);
qsort(a, n, 1, cmp_char);
printf("%s", a);
while (next_perm(a, n)) { printf(" %s", a); }
printf("\n");
return 0;
}
833デフォルトの名無しさん:2009/08/05(水) 16:15:04
>>806を誰かお願いします。

>>807
これってどういったプログラムなんでしょうか?
よくわからない結果がでたんですが・・・
834デフォルトの名無しさん:2009/08/05(水) 16:28:35
>>833
int main(int argc, char **argv) { puts(argv[0]); return 0; }
と一緒
835デフォルトの名無しさん:2009/08/05(水) 17:59:34
>>833
適当に文字列と一緒に起動してみろ
836デフォルトの名無しさん:2009/08/05(水) 18:00:57
>>835
いやいや argv[0] だから
837デフォルトの名無しさん:2009/08/05(水) 18:01:25
文字列と一緒に??
838デフォルトの名無しさん:2009/08/05(水) 18:05:10
>807は再帰呼出がわかっていないようだ、効率も悪い、規格準拠していない
839デフォルトの名無しさん:2009/08/05(水) 18:11:37
>>838
で?
840デフォルトの名無しさん:2009/08/05(水) 18:19:39
>>838
それぞれもう少し詳細を頼む
841デフォルトの名無しさん:2009/08/05(水) 18:21:36
>>838
> 再帰呼出がわかっていない
これだけ全く意味が分からない
842デフォルトの名無しさん:2009/08/05(水) 18:23:19
>>841
mainを再帰で呼び出すソースは初めてみたなw
843デフォルトの名無しさん:2009/08/05(水) 18:27:44
再帰の終端条件が色々と気持ち悪いな…

argv[argc] == NULL だっけ? 鼻から悪魔アドレスだっけ?
844デフォルトの名無しさん:2009/08/05(水) 18:28:52
>>842
コードゴルフスレへいけばポピュラーなんだけどね
845デフォルトの名無しさん:2009/08/05(水) 18:30:21
>>843
argv[argc]なんて見てないよ
846デフォルトの名無しさん:2009/08/05(水) 18:32:23
>>845
あースマン
再帰でargvを総なめ巡回してるのと勘違いしたたたたた
847デフォルトの名無しさん:2009/08/05(水) 19:01:38
>840
main()は最後に数値として何を返すかわからない
if (strlen(argv[0]) < 1)はif (*argv[0] == '\0')で良い
main()の再帰呼出、int main(int, char**)はintを返していない
848デフォルトの名無しさん:2009/08/05(水) 19:02:14
その上で、改めて>>838を評価してもらえないか
849デフォルトの名無しさん:2009/08/05(水) 19:04:50
行き違いがあった。
これならおk?

int main(int argc, char **argv)
{
if (*argv[0] == '\0') { puts(""); return 0; }
putchar(**argv);
argv[0]++;
return main(argc, argv);
}
850デフォルトの名無しさん:2009/08/05(水) 22:17:02
851デフォルトの名無しさん:2009/08/05(水) 23:25:48
807を通報してみたらとるしま大学(Tolushima-Univ.)内からじゃないと使えないアドレスだと言われた。
なんかどっちもどっちなんでやっちゃっていんじゃないかと思った。俺はやらないが。
852デフォルトの名無しさん:2009/08/05(水) 23:28:09
間違い。807じゃなくて806な。
853デフォルトの名無しさん:2009/08/06(木) 05:36:56
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):データファイルからグラフの情報を読み、
隣接リストでグラフを記憶する。隣接リストから隣接行列と頂点の次数を表示させる問題。
問題の詳細、必要なファイルはzipに入れました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9884.zip
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限:8月6日 21:00
[5] その他の制限:ヒントを頼りに途中まで書いてみましたが、勉強不足のため
         解らなくなってしまいました。急ですが、よろしくお願いしますm(__)m
854デフォルトの名無しさん:2009/08/06(木) 13:21:27
>>853
一問目だけやってみた。
効率から言えば配列は0から使ったほうが良いんだが、あえてやらなかった。
関数をいくつか追加しているのでそっちもよろしく。
あと、動作は保障しない。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9885.zip
855854:2009/08/06(木) 13:55:42
>>853
一問目から検索関数追加でできたのでついでにアップ。
すんごい大雑把に作ってるので動作は保障しない。

そんな感じで。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9886.zip
856デフォルトの名無しさん:2009/08/06(木) 14:11:49
>>855
addListの前にfindListを入れて、!=NULLでcontinueしたらどうかな?
857デフォルトの名無しさん:2009/08/06(木) 14:27:34
>>854-855 さんありがとうございます。それぞれの関数と動作を確認しました。
大変助かります!
>>856 さん 余裕があれば少し試してみます!
858デフォルトの名無しさん:2009/08/06(木) 15:20:18
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9888.zip
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: MinGW 5.1.4に入ってるgcc
 [3.3] 言語: C
[4] 期限: 本日19:00まで
[5] その他の制限: 特になし

よろしくお願いします。
859デフォルトの名無しさん:2009/08/06(木) 16:19:43
>>851は何がしたいんだ?スレタイ読めないの?
860デフォルトの名無しさん:2009/08/06(木) 16:30:20
ちくるなとは書いてないし、特定可能っぽい回答ついたしってことで
暇つぶしにメール送ってみたんじゃない?
そしたらとるしまとか言われたのでつい書き込みたくなったと。たぶん。
861デフォルトの名無しさん:2009/08/06(木) 16:30:23
>>858

strcat(vs,".dem");
printf("%s",vs);
rename("pov.dem", vs);
862デフォルトの名無しさん:2009/08/06(木) 17:29:25
>>859
夏休みだからしかたない
863デフォルトの名無しさん:2009/08/06(木) 20:31:49
>>861
ありがとうございます。
864851:2009/08/07(金) 00:13:53
>>859
何がしたいか本心を言えば、通報したあとで806に真剣に取り組みたかった。
「出来れば色んな方の作品があることが望ましいです。」に挑発されたともいう。

あと夏休み関係ないっす。
865デフォルトの名無しさん:2009/08/07(金) 00:26:48
>>864
そういうスレでやれ
866デフォルトの名無しさん:2009/08/07(金) 00:35:05
学校に連絡をしないと真剣に取り組めない理由がよくわからん
あとそんな言葉で挑発されるってのもどうかと思うぜ
867デフォルトの名無しさん:2009/08/07(金) 01:14:01
夏休みだからね
868デフォルトの名無しさん:2009/08/07(金) 01:58:23
              _.。ャぁて丕刀フ7ゎ。._
           ,.ィ炙ヲi≠┴⇒弍j込ス>。
.        ,ィ升ヲナ'´           `゙'<弖心、
.        ;夕フア´                \ホi心.
       んfiУ                ▽ij∧
       从j'Y                   ∨iハ
.       斤W                      kい 
     |友カ                    }ソ川 
.       い叭                   仄ガ
.     Wi从                  从ノリ
.      ∀t△                 ∧fリ/
       ゙マじへ、             /リiУ
        \夊id、_             ,.イ!刋/
         `マ才i「≧ェ。。.__。っ夭テ少'゚
           `゚'' ミあらぶる鷹=‐'´
869デフォルトの名無しさん:2009/08/07(金) 18:10:06
>>868
宿題がすべてできました。すごいパワーです。
870デフォルトの名無しさん:2009/08/08(土) 02:04:50
まさかこんなに効果があるとは思わなかった

まあ、夏休み遊びほうけてるだけだろうけど。
871りん:2009/08/08(土) 10:25:59
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
あとから書きます><

[3] 環境
 [3.1] OS:Windows
 [3.2] 今C++Dロードしました
 [3.3] 言語: C++ 多分。。。
[4] 期限:今日の11時半まで
[5] その他の制限:なし

どなたかよろしくお願いします><。
872りん:2009/08/08(土) 10:27:20
#define _CRT_SECURE_NO_DEPRECATE 1 /* VisualC++2005 での警告抑制 */
#pragma warning ( disable: 4996 )
#include <stdio.h>
////////////////////////////////////////////////////////////////////////
//
// 月と日を入力させて、その星座を表示するプログラムを作成すること
//
// void main(void)
{
int month;
int day;

printf("誕生日を入力してください\n");
printf("月:");
// scanf()
printf("日:");
// scanf()
// 月日より星座を判定して、表示
// あなたの星座は、XX座です
}
873デフォルトの名無しさん:2009/08/08(土) 11:04:41
#include<stdio.h>
main(){
int month,day,x;
printf("誕生日を入力してください\n");
printf("月:");
scanf("%d",&month);
printf("日:");
scanf("%d",&day);
x=month*100+day;
printf("あなたの星座は、");
if(x>1222||x<121)printf("やぎ");
else if(x<220)printf("みずがめ");
else if(x<321)printf("うお");
else if(x<421)printf("おひつじ");
else if(x<522)printf("おうし");
else if(x<622)printf("ふたご");
else if(x<723)printf("かに");
else if(x<822)printf("しし");
else if(x<923)printf("おとめ");
else if(x<1024)printf("てんびん");
else if(x<1123)printf("さそり");
else printf("いて");
printf("座です\n");
}
874りん:2009/08/08(土) 11:26:05
>873ありがとうございます!!!!!!!!!

#define _CRT_SECURE_NO_DEPRECATE 1 /* VisualC++2005 での警告抑制 */
#pragma warning ( disable: 4996 )
#include <stdio.h>
年月日を入力させ、日付の正当性をチェクし、
// 正しい場合は、「有効な日付です」と表示する
// 年は、1970年から9999年の範囲とする
// 月は、1月-12月とする
// 日は、1日-XX日とする(XX日は、各月により異なる)
// 閏年も考慮すること
int isLeapYear(int year)
{
return (((year) % 4) == 0) && (((year) % 100) != 0) || (((year) % 400) == 0);
}

void main(void)
{
int year,month,day;
int days_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

printf("年月日(yyyy mm dd)を入力してください。\n");
scanf("%d %d %d", &year,&month,&day);

// 日付が正しければ、「有効な日付です」と表示する
printf("有効な日付です");
}
これはどうですか?><。



875デフォルトの名無しさん:2009/08/08(土) 11:51:11
if(year>1969&&year<1e4&&month>0&&month<13&&day>0&&day<=days_month[month-1]+isLeapYear(year))printf("有効な日付です");
876デフォルトの名無しさん:2009/08/08(土) 11:51:42
>>872 8月22日は何星座?
877デフォルトの名無しさん:2009/08/08(土) 13:58:05
>>875 テストしろよ。2000 4 31
878デフォルトの名無しさん:2009/08/08(土) 20:49:08
まともに動かないネタレスって醜いね
879デフォルトの名無しさん:2009/08/08(土) 21:11:15
ネタじゃないよ
俺は本気で間違えたのであしからず!!
880デフォルトの名無しさん:2009/08/09(日) 02:37:11
>>874
if (year < 1970) exit(1);
if (year > 9999) exit(1);
if (month < 1) exit(1);
if (month > 12) exit(1);
if (day < 1) exit(1);
if (day > days_month[month - 1]) {
if (month != 2) exit(1);
if (!isLeapYear(year)) exit(1);
if (day != days_month[month - 1] + 1) exit(1);
}
881デフォルトの名無しさん:2009/08/09(日) 02:44:17
if (year < 1970) exit(1);
if (year > 9999) exit(1);
if (month < 1) exit(1);
if (month > 12) exit(1);
if (day < 1) exit(1);
if (month == 2) days_month[month - 1]++;
if (day > days_month[month - 1]) exit(1);
882デフォルトの名無しさん:2009/08/09(日) 02:45:10
あ。
if (year < 1970) exit(1);
if (year > 9999) exit(1);
if (month < 1) exit(1);
if (month > 12) exit(1);
if (day < 1) exit(1);
if (month == 2 && isLeapYear(year)) days_month[month - 1]++;
if (day > days_month[month - 1]) exit(1);

だね
883デフォルトの名無しさん:2009/08/09(日) 09:41:25
お前らいつまでC言語なんてやってるの?麻呂は引退したでおじゃる
884デフォルトの名無しさん:2009/08/09(日) 10:17:03
>>882
if (month == 2) days_month[month - 1] += isLeapYear(year);
の方が好きだな
885 ◆/91kCCQXBo :2009/08/09(日) 12:14:31
if( year>=1970 && year<=9999 && month>=1 && month<=12 && day>=1 )
  if( month != 2 && day <= days_month[month-1] ||
    month == 2 && day <= days_month[month-1] + isLeapYear(year) )

printf("有効な日付です");
886デフォルトの名無しさん:2009/08/09(日) 15:36:38
>>883
結局ものに出来なかったのですね。わかります。
887デフォルトの名無しさん:2009/08/09(日) 16:41:16
[1] 授業単元:ic論
[2] 問題文
キーボードから入力した二つの単語を辞書的順序に表示するプログラムを作れ。
条件は
・関数の呼び出しを使う(main関数とstrcomp関数を使う)
・ポインタを使う
・配列を使う

・例は
「2つの単語を入力してください。
 red,green

辞書順序で並び替えるとgreen、redの順になります。」

[3] 環境
 [3.1] OS: (Windows vista)
 [3.2] visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2009/08/15
[5] その他の制限:かなりの初心者なのでできるだけ簡単な構造でお願いします。
888デフォルトの名無しさん:2009/08/09(日) 17:18:17
>>887
見た目は簡素にしてみました。動作は保障しない。

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

int comp(const void* lhs,const void* rhs){
    return strcmp((const char*)lhs,(const char*)rhs);
}

int main(){
    static const int ArrayLen =128;
    static const int Elements =2;
    char str[Elements][ArrayLen]={"",""};

    printf("2つの単語を入力してください。単語間は空白で区切ってください\n");
    scanf("%s %s",str[0],str[1]);

    qsort(str,Elements,ArrayLen,comp);

    printf("辞書順序で並び替えると%s、%sの順になります。\n",str[0],str[1]);
    return 0;
}
889デフォルトの名無しさん:2009/08/09(日) 17:23:24
一番簡単だとおもう

#include <iostream>
#include <cstring>

int main() {
    char word1[32], word2[32];
    char * array[2];
    std::cout << "2つの単語を入力してください。" << std::endl;
    std::cin >> word1;
    std::cin >> word2;

    if( strcmp( word1, word2 ) < 0 ){
        array[0] = word1;
        array[1] = word2;
    }else{
        array[0] = word2;
        array[1] = word1;
    }

    std::cout << "辞書順序で並び替えると";
    for( int i = 0; i < 2; ++i ){
        std::cout << " " << array[i];
    }
    std::cout << " の順番になります。" << std::endl;
}
890888:2009/08/09(日) 17:27:10
ちょっとミスってる。
qsort(str,Elements,ArrayLen,comp);
   ↓
qsort(str,Elements,sizeof(char)*ArrayLen,comp);

あんま変わらんけど、だいじなことなので。
891デフォルトの名無しさん:2009/08/09(日) 17:52:21
>>887
#include<string>
#include<iostream>
#include<set>

struct comp{
bool operator()(const std::string &a, const std::string &b)
{
return strcmp(a.c_str(), b.c_str())<0;
}
};

int main(void){
std::set<std::string, comp> words;
std::string word;

std::cout << "単語を入力してください。";
std::cin >> word;
words.insert(word);

std::cout << "単語を入力してください。";
std::cin >> word;
words.insert(word);

std::cout << "辞書順序で並び替えると";
for(std::set<std::string>::iterator it=words.begin();it!=words.end();++it){
std::cout << " " << *it;
}
std::cout << " の順になります。" << std::endl;

return 0;
}
892デフォルトの名無しさん:2009/08/09(日) 17:55:50
>>887 例を見るかぎり、カンマ区切りを処理する必要があるとみた
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
char a[100], b[100], *p, *q;

cout << "2つの単語を入力してください。" << endl;

cin.getline(a, sizeof(a), ',');
cin.getline(b, sizeof(b));

if (strcmp(a, b) < 0) { p = a; q = b; } else { p = b; q = a; }

cout << "辞書順序で並び替えると" << p << "、" << q << "の順になります。" << endl;

return 0;
}
893デフォルトの名無しさん:2009/08/09(日) 18:08:35
887です
ありがとうございました
参考にさせてもらいました
894デフォルトの名無しさん:2009/08/09(日) 19:14:16
[1] 授業単元:
[2] 問題文:
入園料は次のように定められている。ソースコードに続けて完成させなさい
1、5歳以下は無料
2、15歳以下は100円
3、15歳以上の場合、男性は200円、女性は150円

#include<stdio.h>

#define MALE 1
#define FEMALE 2

int price( int age, int s);

int main(){

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン:visual c++ 2008
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:ものすごく初心者です。
ifを使ったのですが料金が0になってしまいます。
895デフォルトの名無しさん:2009/08/09(日) 19:20:40
どなたか>>806お願いします
896デフォルトの名無しさん:2009/08/09(日) 19:34:03
>>894
15歳の以上と以下で条件被っとるやん
int price( int age, int s)
{
if(age<=5) return 0;
if(age<=15) return 100;
if(s==FEMALE) return 150;
return 200;
}
897894:2009/08/09(日) 19:56:01
>>すみません!!15歳未満でした!returnに入れると出来るんですね!ありがとうございます。
あの、自分で
int main(){
int age, s;
printf("年齢を入力してください:");
scanf("%d", &age );
     printf("性別を入力してください(男性1、女性2):");
scanf("%d", &s);
printf("入場料は%d円です\n", price(age, s));
return 0;
}
  int price( int age, int s){
int result = 0;
int price;
     if(age >= 15){
if(s == MALE){
price = 200;
}else{
price = 150;
}
}else if(age < 15 && age >= 5){
price = 100;
}else
price = 0;
     return result;
}
と書いてみたのですが、どこがおかしいのでしょうか?何度もすみません!
898デフォルトの名無しさん:2009/08/09(日) 20:03:41
>>897
return result=price;
でおk
899894:2009/08/09(日) 20:20:11
>>898 出来たー!!!!!うわ、すごいうれしい!!
ありがとうございます!
900デフォルトの名無しさん:2009/08/09(日) 20:37:46
>>897
return price;
でもいい
901デフォルトの名無しさん:2009/08/09(日) 21:04:37
>>895の作ってやってたんだが完成しかけで停電してデータがパーに…ワロスwww
902 ◆/91kCCQXBo :2009/08/09(日) 21:12:50
>>806 このプログラムの名前は「BASE:32デコーダー」疑問・質問は受け付けない。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9890.c
903807:2009/08/10(月) 00:38:03
>>895
#include <stdio.h>

int main(int, char**);
int (*f[])(int, char**) = { main };
int main(int argc, char **argv)
{
puts("Hello, world.");
return --argc? (*f[0])(argc, argv): 0;
}
904このプログラム作ってください!( >_ < ):2009/08/11(火) 04:45:52
1. 以下のプログラムは、勝ち数と負け数を入力して勝率
(= 勝ち数 / ( 勝ち数 + 負け数) )を計算するプログラムである。
勝ち数、負け数に負の値が入力された場合は入力をやり直させ、
勝ち数+負け数が0 の場合は勝率計算が不能であることを表示する。
ただし、このプログラムはバグを含んでおり正しく動作しない。
デバックを行って正常動作するようにせよ。
修正したソースプログラムと実行結果を示すこと。
905デフォルトの名無しさん:2009/08/11(火) 05:03:24
こっちに来るまでずいぶん時間かかったな
相変わらず以下のプログラムが秘密なままだしテンプレにも従ってないぜ
906このプログラム作ってください!( >_ < ):2009/08/11(火) 05:20:08
#include <stdio.h>

  int main(void){
   int nwin, nlose;

   do
    printf("勝ち数を入力してください:");
    scanf("%d",nwin);
     if (nwin<0)
      puts("負の値を入力しないでください!");
  while(nwin<0);

   do
     printf("負け数を入力してください:");
     scanf("%d",nlose);
     if (nwin<0)
       puts("負の値を入力しないでください!");
   while(nlose<0)

  total = nwin + nlose;
   if (total = 0)
     puts("勝率を計算できません。");
   else
     printf("勝率は%dです。\n",nwin/total );
   return(0);
   }
907このプログラム作ってください!( >_ < ):2009/08/11(火) 05:21:13
2.半径(cm)と中心角(度)(いずれも整数値)を入力して扇形の面積を計算する
  プログラムを作成せよ。円周率の小数点以下桁数は任意に決めてもよい。
  ただし、入力値に以下の処理を加えること。
  ・半径に負の値が入力された場合、入力をやり直させる。
  ・中心角の入力値は以下のように処理する。
   i.  0〜359の場合はそのまま使う。
   ii. 負の値の場合、0か正の数になるまで繰り返し360を
     加えた値を中心角とする。
     (例: -30 -> 330, -450 -> 270 )
   iii.360以上の場合、360で割った剰余を中心角とする。

3.正の整数を繰り返し入力し、0 か負の数が入力されたらそこで入力を打ち切り、
  そこまでの合計と平均を計算するプログラムを作成せよ。
  最後に入力した負の数は計算に入れないようにせよ。
  また、平均は小数点以下まで算出せよ。  

すいません、明日までにお願いできますか?

908デフォルトの名無しさん:2009/08/11(火) 05:23:29
テンプレートに従ってないのでダメです
909このプログラム作ってください!( >_ < ):2009/08/11(火) 05:27:55

【質問テンプレ】
[1] 授業単元: C言語課題
[2] 問題文(含コード&リンク): 上に記載(すいません、先にルール無視してました)
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2009年8月12日15時まで。
[5] その他の制限:とくにないです
910デフォルトの名無しさん:2009/08/11(火) 10:34:20
>>904
はマルチする気まんまんなんで相手にしないように。
911デフォルトの名無しさん:2009/08/11(火) 11:22:59
>>907
2.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define BUFFSIZE 16

int r(void)
{
char b[BUFFSIZE]; int R;
printf("input radius >> "); R = atoi(fgets(b, BUFFSIZE, stdin));
return R < 0? r(): R;
}
int a(void)
{
char b[BUFFSIZE]; int A;
printf("input angle >> "); A = atoi(fgets(b, BUFFSIZE, stdin));
while (A < 0) A += 360;
return A % 360;
}
int main(void)
{
printf("%f\n", pow(r(), 2) * M_PI * a() / 360);
return 0;
}
912デフォルトの名無しさん:2009/08/11(火) 11:32:53
>>907
3.
#include <stdio.h>

int main(void)
{
int a, n = 0, s = 0;
scanf("%d", &a);
while (a > 0) { s += a; n++; scanf("%d", &a); }
printf("go-ke-: %d, he-kin: %f\n", s, (double)s / n);
return 0;
}
913デフォルトの名無しさん:2009/08/11(火) 11:41:05
>>904
#include <stdio.h>
#include <stdlib.h>
#define BUFFSIZE 16

int main(void)
{
int nwin, nlose, total;
char buff[BUFFSIZE];

do {
printf("勝ち数を入力してください:");
if ((nwin = atoi(fgets(buff, BUFFSIZE, stdin))) < 0)
puts("負の数を入力しないでください!");
} while (nwin < 0);

do {
printf("負け数を入力してください:");
if ((nlose = atoi(fgets(buff, BUFFSIZE, stdin))) < 0)
puts("負の数を入力しないでください!");
} while (nlose < 0);

if ((total = nwin + nlose) == 0)
puts("勝率を計算できません。");
else
printf("勝率は%fです。\n", (double)nwin / total);
return 0;
}
914デフォルトの名無しさん:2009/08/11(火) 11:48:11
#include <stdio.h>
int main(void){
  int nwin, nlose, total;

  do {
    printf("勝ち数を入力してください:");
    scanf("%d", &nwin);
    if (nwin<0)
      puts("負の値を入力しないでください!");
  } while(nwin<0);
  do {
    printf("負け数を入力してください:");
    scanf("%d", &nlose);
    if (nlose<0)
      puts("負の値を入力しないでください!");
  } while(nlose<0);

  total = nwin + nlose;
  if (total == 0)
    puts("勝率を計算できません。");
  else
    printf("勝率は%.2fです。\n",(float)nwin/total );
  return(0);
}
C:\>a
勝ち数を入力してください:-3
負の値を入力しないでください!
勝ち数を入力してください:23
負け数を入力してください:-3
負の値を入力しないでください!
負け数を入力してください:34
勝率は0.40です。
915デフォルトの名無しさん:2009/08/12(水) 22:02:16
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

問題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9892.txt
途中まで書いたソース:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9894.txt

[3] 環境
 [3.1] OS: Windows Vista
 [3.2] Visuak Studio 2008
 [3.3] 言語: C言語
[4] 期限:2009年08月13日
[5] その他の制限:main関数が長くなってしまう場合は関数化してください。

よろしくお願いします。
916デフォルトの名無しさん:2009/08/12(水) 22:17:53
917デフォルトの名無しさん:2009/08/12(水) 22:24:50
やべえかな関数化しようか?
918デフォルトの名無しさん:2009/08/12(水) 22:30:37
919デフォルトの名無しさん:2009/08/13(木) 00:32:16
>>915
これqsort()を利用しちゃだめなのかな?

--------------------
#include <stdlib.h>
(略)
/*ソートする関数を使い、文字列を昇順にソート*/
qsort(string, 5, 10, strcmp);
(略)
--------------------

もし5とか10の数字を生で書くのがいやなら
qsort(string, sizeof(string)/sizeof(string[0]), sizeof(string[0]), strcmp);
920デフォルトの名無しさん:2009/08/13(木) 00:52:36
>>919
qsort()の引数にstrcmp()をそのままってのはどうなのかね。
少なくとも俺の環境では無理なんだけど。
キャストでコンパイルはできるけど期待通りには動かない。
921デフォルトの名無しさん:2009/08/13(木) 00:54:50
>>920
環境とソースコードを示すべきだ
気になって眠れないじゃないか
922デフォルトの名無しさん:2009/08/13(木) 01:03:21
>>921
環境は cygwin + gcc3.4.4
キャストしなくてもコンパイルはできたわ。

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

int main(void)
{
char *s[] = { "int", "main", "void", "char", "qsort", "strcmp" };
qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), strcmp);

{ int i; for (i = 0; i < sizeof(s) / sizeof(s[0]); i++) puts(s[i]); }
return 0;
}

実行結果
int
main
void
char
qsort
strcmp
923デフォルトの名無しさん:2009/08/13(木) 01:07:50
ちなみにqsort()とstrcmp()を使うんならこうする

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

int cmpstr(const void *a, const void *b)
{
return strcmp(*((char **)a), *((char **)b));
}

int main(void)
{
char *s[] = { "int", "main", "void", "char", "qsort", "strcmp" };
/* qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), strcmp); */
qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), cmpstr);

{ int i; for (i = 0; i < sizeof(s) / sizeof(s[0]); i++) puts(s[i]); }
return 0;
}

実行結果
char
int
main
qsort
strcmp
void
924デフォルトの名無しさん:2009/08/13(木) 01:09:17
>>922
char *s[]
の部分を
char s[][10]
に変えてくれないか?
925デフォルトの名無しさん:2009/08/13(木) 01:11:32
なんで正しい結果にならないんだろ?

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

int main(void)
{
char *s[] = { "int", "main", "void", "char", "qsort", "strcmp" };
qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), (int (*)(const void *, const void *))strcmp);

{
int i;
for (i = 0; i < sizeof(s) / sizeof(s[0]); i++)
puts(s[i]);
}

return 0;
}
926デフォルトの名無しさん:2009/08/13(木) 01:12:58
あっそうかポインタ配列を文字列とみなすのは間違ってるな
927デフォルトの名無しさん:2009/08/13(木) 01:13:11
>>925
strcmp を使ってポインタの大小を比較しているからだと思うよ
928デフォルトの名無しさん:2009/08/13(木) 01:19:27
そうだな
よく考えると危ないな
文字列は'\0'でターミネートされる決まりになってるけど
ポインタはそうでないから下手をすると暴走する危険もあるわけか
929デフォルトの名無しさん:2009/08/13(木) 01:38:04
strcmpには実質的にchar**が渡ってることになるから正しく
動作しない
930デフォルトの名無しさん:2009/08/13(木) 01:40:52
そう考えるとCは良くも悪くも何でも出来てしまうなあ
931デフォルトの名無しさん:2009/08/13(木) 02:15:27
>>926
>>928
なにか勘違いをしている
932デフォルトの名無しさん:2009/08/13(木) 02:27:36
いやだからポインタ配列の中にあるアドレスを
文字列とみなして比較するって事でしょ?
933デフォルトの名無しさん:2009/08/13(木) 02:29:25
**がボイン太のボイン太だと知ってのことか?
934デフォルトの名無しさん:2009/08/13(木) 02:32:09
ポインタ配列は**だが、その要素をアクセスした時点で
*は一個外れて*になってるよ
935デフォルトの名無しさん:2009/08/13(木) 02:33:49
つーかポインタを表記する仕様を決めたやつでてこいよ
936デフォルトの名無しさん:2009/08/13(木) 02:37:17
その通りだが、”文字列列”の順序とは無関係なものになる
937デフォルトの名無しさん:2009/08/13(木) 02:41:06
例えばこういうことでしょう

80000102->"int"
80000106->"main"
8000010b->"void"

とかになってて、この80000102とか80000106を文字列と
見なしてqsort掛けてるわけで

大抵のCコンパイラはコンパイルする時に文字列が出て来た
順番にアドレスをセットするから初めからソートされてる形に
なってて、qsort()しても結果は変わらないという
938デフォルトの名無しさん:2009/08/13(木) 02:42:22
正しくは(規格違反になってしまうが)
char *s1=&"int"; //Cではリテラルは変更不能な初期化済ブロックとなる
char *s2=&"main";
..........
として
char *(s[])={s1,s2,....};
とすべき
これではメンドイし貴重なな名前空間の浪費なので
char *(s[])={"int","main",....};
という略記法が認容されるようになったと考えるのが自然
939デフォルトの名無しさん:2009/08/13(木) 02:42:36
あーでもCPUだとリトルエンディアンの場合もあるから
そう簡単にはいかないか

どちらにしてもたまたま動いているだけで結果はおかしなものになる
940デフォルトの名無しさん:2009/08/13(木) 02:46:26
qsortをクソートと言っているのは俺だけじゃないはず
941デフォルトの名無しさん:2009/08/13(木) 02:47:48
>>940
キューソート以外ありえないわ
942デフォルトの名無しさん:2009/08/13(木) 02:58:15
クイックソートって読んでた…
943デフォルトの名無しさん:2009/08/13(木) 03:01:31
中身はクイックソートなんだが、古いCは識別子が6文字までしか
認識しなかったので、quicksortにすると"quicks"と見なされてしまう

それよりも"qsort"の方がいいと思ったんだろう

これなんかはまだいい方でstring.h系の関数の名付け方は
ひどいものがあると思う
strstrとかstrcspnとか関数名を言われてパッと何をする関数なのか
わからんし
944デフォルトの名無しさん:2009/08/13(木) 03:06:48
その割にはstrcspnは6文字じゃないですね
名付けで一番気になるのはO_CREATだなあ
945デフォルトの名無しさん:2009/08/13(木) 03:11:18
strcspsとかそういう名前の関数を意図的に作らないようにして
7文字でも実質的に6文字までしか認識しない処理系でも
問題ないようにしてたんだろう

ANSI-Cになってからようやく32文字まで認識するようになった
しかし古い標準関数の名前はそのままそっくり受け継いだ

俺が気になっているのは creat() だよな
946デフォルトの名無しさん:2009/08/13(木) 11:26:27
>>919以降で分からないところがあったんでK&Rを引いてみたら
charへのポインタの配列とcharの配列の配列の違いはp.139,
qsortにstrcmpを渡す例はp.145に載ってた
付録抜いたら230ページなのに論点のカバー率半端ないっす
947デフォルトの名無しさん:2009/08/13(木) 11:44:57
>>946
まあ今回のqsort()の引数にstrcmp()を渡す話には
charへのポインタの配列とcharの配列の配列の違いは
関係ないけどね
948デフォルトの名無しさん:2009/08/13(木) 12:44:17
>>947
え、そうなの?
char *s[] だとstrcmpがポインタの大小を比較してしまうのに対し
char s[][ELEM_SIZE] だと文字列の大小を比較することになるから
charへのポインタの配列とcharの配列の配列の違いが肝心だと思ったんだけど
949デフォルトの名無しさん:2009/08/13(木) 12:51:28
>>948
>char *s[] だとstrcmpがポインタの大小を比較してしまうのに対し
>char s[][ELEM_SIZE] だと文字列の大小を比較することになるから
んなこたーない。どっちも文字列の大小を比較する。
問題になってるのはqsort()の引数。

int strcmp(const char *A, const char *B)
void qsort(void *base, size_t num, size_t size, int (*compare)(const void*, const void*))
>>923
これを見て分からなかったら要勉強。
950デフォルトの名無しさん:2009/08/13(木) 12:53:05
>>949
分かんない
951デフォルトの名無しさん:2009/08/13(木) 12:57:06
>>950
何が分からないのかが分からない
952950:2009/08/13(木) 13:03:05
>>951
要勉強はお前だって言ってるんだよ
953948:2009/08/13(木) 13:08:59
>>949
>>925の場合、strcmpに渡るのはchar **なので、strcmpはポインタを左から1バイトずつ比較
>>923の場合、*((char **)a)、つまりchar *なので、strcmpは文字列を比較
954デフォルトの名無しさん:2009/08/13(木) 13:15:01
strcmpにポインタの大小を比較する能力を求めてはいけない
955デフォルトの名無しさん:2009/08/13(木) 13:18:54
char a[1];
&a==a;

char *b;
&b!=b;

これだけの話
956デフォルトの名無しさん:2009/08/13(木) 13:27:45
[1] 授業単元: C言語課題
[2] 問題文(含コード&リンク):

入力した値を n とし、階乗の逆数の和
1 + 1/1! + 1/2! + 1/3! + ...... + 1/n! と、
ネピア数(M_E)との比を計算し、小数点以下第 6 位
まで求めて表示しなさい。繰り返しは for 文を使わず
while 文か do-while 文を利用して作成すること。

[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2009年8月14日。
[5] その他の制限:なし

お願いします。
957デフォルトの名無しさん:2009/08/13(木) 13:28:45
ここは俗に【丸投げスレ】と呼ばれるスレでして
この話題は【とりあえず質問スレ】レベルの話題ではないかと。
もしかすると【ちょっと深い質問】スレの話題になるかも
知れないが「浅い!」と却下されるか。
【クィックヘルプ】スレじゃIDEのデバッガ使えとケンも
ホロロだろうな
958デフォルトの名無しさん:2009/08/13(木) 14:07:57
>>956
#include <stdio.h>
#include <math.h>

int main(void)
{
int i = 0, n;
double sum = 0, a = 1.0;

scanf("%d", &n);

do {
sum += a;
a /= ++i;
}while(i < n);

printf("%.6f", M_E / sum);

return 0;
}
959デフォルトの名無しさん:2009/08/13(木) 14:16:45
>>958
階乗の逆数の和だよ。
960デフォルトの名無しさん:2009/08/13(木) 14:18:54
あってね?
961デフォルトの名無しさん:2009/08/13(木) 14:22:21
あってるな
962デフォルトの名無しさん:2009/08/13(木) 14:44:31
959は一体958をなんだと思ったんだろうか
963デフォルトの名無しさん:2009/08/13(木) 15:38:35
単に解説しただけとか
964デフォルトの名無しさん:2009/08/13(木) 16:40:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9898.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C
[4] 期限: 8月31日まで
[5] その他の制限: テキストに記載してあります。C言語の基本的なことは大方学びました。

よろしくお願いいたします。
965デフォルトの名無しさん:2009/08/13(木) 18:21:48
966デフォルトの名無しさん:2009/08/13(木) 19:30:05
>>965
即レスありがとうございます!助かりました。
967806:2009/08/14(金) 01:38:43
>>902さん>>903さんありがとうございます。
ですが>>806に条件追加されました。

[1] 授業単元:インタラクティブコミュニケーション
[2] 問題文(含コード&リンク):関数の呼び出し」、「配列」、「ポインタ」のすべてを使用したプログラムを
                  作成せよ。プログラミング力 + オリジナリティ、文字列、再帰が本質的な要素
                    として含まれていれば加点。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限: 8月17日(月)17:00(早いほうが望ましい)
[5] その他の制限: 習ったのはttp://www.ncc-1701.jp/kakei/InteractiveComm/IM_top.htmlに載ってる事です
             この範囲内で作って頂けると嬉しいです。
             #include <windows.h>は使わないようにお願いします。
             出来れば色んな方の作品があることが望ましいです。
        (new)ソースコードには「何をしようとしている」プログラムなのか等がわかるように適宜コメントを付ける。

よろしくお願いします。
968デフォルトの名無しさん:2009/08/14(金) 01:43:34
>>967
これ、専ブラ経由でリファラ拾われたらncc-1701の人にバレちゃうけど平気なの?
969デフォルトの名無しさん:2009/08/14(金) 06:34:28
プログラムに何をさせたいんだその先生は。
970デフォルトの名無しさん:2009/08/14(金) 07:04:09
>>968
大丈夫じゃね?
受講生のみの閲覧と制限してないんだし
971デフォルトの名無しさん:2009/08/14(金) 07:58:20 BE:426020459-DIA(303000)
次スレ立てました
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
972デフォルトの名無しさん:2009/08/14(金) 09:12:18
#include <stdio.h>
int main(void)
{
int a;
int i;
for (i=0;i<10;i++){
a[i]=9999;
printf("%d\n",a);
}
fflush(stdin);
getchar();
return 0;
}

無効な間接参照って出るけどなんで??
973デフォルトの名無しさん:2009/08/14(金) 09:16:52
aが配列になってないのになんで

a[i]=9999;

とかなってるの?
974デフォルトの名無しさん:2009/08/14(金) 09:58:33
エラーメッセージとは関係ないけど

fflush(stdin);

はやめなされ
動作が標準で定義されていない
VC特有の機能で入力バッファをクリアするのは知ってるけど
975デフォルトの名無しさん:2009/08/14(金) 10:00:29
>>972
ハッキングの練習でもしてるのかw
976デフォルトの名無しさん:2009/08/14(金) 10:37:39
>>974
他に画面終了させない方法あるの?
977デフォルトの名無しさん:2009/08/14(金) 10:41:01
>>976
_getch()とかあるだろう
趣味でやってるならともかく、将来グラマになりたいのなら
悪い癖は今の内に取っておく事だな
978デフォルトの名無しさん:2009/08/14(金) 10:42:01
それからここは宿題スレだ
スレとしてC/C++の標準で定義されていない未定義の動作を
する書き方は推奨されない
979デフォルトの名無しさん:2009/08/14(金) 10:47:24
自分でコマンドプロンプトを開いてから実行すればいいと思う。
980デフォルトの名無しさん:2009/08/14(金) 10:51:20
>>978
課題で出されたサンプルプログラムがふつうに
void main(void)
なんて書いてあったりするから困る
981デフォルトの名無しさん:2009/08/14(金) 10:53:04
>>979
コマンドプロンプトを開くとき、これを使って
http://www.geocities.jp/katayama_hirofumi_mz/fdprompt/
982デフォルトの名無しさん:2009/08/14(金) 10:55:14
>>980
そんな大学辞めろ
983デフォルトの名無しさん:2009/08/14(金) 10:56:42
>>981
俺はデスクトップにcmd.exeを実行するショートカットを置いて
それを使っている

しかしIDE環境の中からでは役に立たないよね?
984デフォルトの名無しさん:2009/08/14(金) 11:05:45
>>982
別に、はじめのうちはそれでいいと思うが。
最低限プログラムを理解するうえで関数宣言とかの部分の意味なんて
後から理解できればそれで問題がないと思うよ。

あれ?Winキー+R押してcmdってうつのって少数派?
985デフォルトの名無しさん:2009/08/14(金) 11:07:30
キーボードで操作できるランチャーに登録してる
986デフォルトの名無しさん:2009/08/14(金) 11:07:44
C言語で記述されていると、***貴方が***認めることが出来る
記述ではライブラリ関数の動作仕様まで規定することは出来ないし
void main(void)を禁止することも出来ません。
特定のコンパイラが特定のライブラリ関数やエントリーポイントの
動作が標準と異なる場合はそれを標準Cコンパイラとみなさなければ
いいだけの話です。(純粋な意味での標準Cコンパイラは存在しない
でしょう。但しMSのC処理系はWindowsに合わせて相当に手が
加えられており標準Cの学習には向かないかも知れません)
987デフォルトの名無しさん:2009/08/14(金) 11:09:35
>>986
>[3.3] 言語:C言語

これだけの条件しか出されていない時は標準で定義されていない
Cの機能は使うべきではない

>[3.2] Visual Studio 2005

とか書いてあったらいいかもしれないけど
988デフォルトの名無しさん:2009/08/14(金) 11:12:37
[3.2] gcc4.4.0/Linux

と書いてあったら諦めましょう
989デフォルトの名無しさん:2009/08/14(金) 11:21:57
点プレに記載すべき事柄

★コードは回答者によって十分なテストが行われており、そのまま提出
しても大丈夫な場合が多いですし回答者どうしで相互チェックもそれな
りに行われているとも思いますが、それでも求められているもの
と異なる場合があり得ます

★回答者は質問点プレで記載されている処理系上で動作するように
回答すれば良いのですが、他の処理系でコンパイル可能だが
著しく動作が異なるとか動作しない場合は処理系依存と明記した
ほうがいいと思います。
(ライブラリが無く他の処理系ではコンパイル不能な場合はこの
限りではありません)
990デフォルトの名無しさん:2009/08/14(金) 11:29:52
>>977 GCCでは、getch() は使えないのか?
mingw/conio.hとか有るけど、これは使えないのか?
991デフォルトの名無しさん:2009/08/14(金) 11:30:06
もう次スレ立ってるって
992デフォルトの名無しさん:2009/08/14(金) 11:31:08
>>990
回答処理系にMinGWを指定してくる出題者はほとんどいないだろう
大抵Linuxだ
993デフォルトの名無しさん:2009/08/14(金) 15:31:43
getcharじゃだめなの?
994デフォルトの名無しさん:2009/08/14(金) 15:32:46
【芸能】AV男優の加藤鷹(47)がNHKのバラエティ番組撮影中に3階から転落、意識不明の重体★2
http://gimpo.2ch.net/test/read.cgi/news7/1240277978/l50
995デフォルトの名無しさん:2009/08/14(金) 15:46:36
>>993
scanf()を使った後なんかだとバッファに改行が残るので、getchar()で止まってくれないんだ

int n;
scanf("%d", &n);
getchar(); /* ここで入力待ちしたいが待ってくれない */



int n;
scanf("%d", &n);
while (getchar() != '\n') {} /* 改行まで読み捨てる処理が必要 */
getchar();
996デフォルトの名無しさん:2009/08/14(金) 16:38:55
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
997デフォルトの名無しさん:2009/08/14(金) 16:47:43
>>995
それだけなら

scanf("%d", &n);
rewind(stdin);
getchar();
998デフォルトの名無しさん:2009/08/15(土) 07:30:37
>>810
[4] 期限: (無期限)
>>786 台形公式により
>>808 シンプソンの公式により
999デフォルトの名無しさん:2009/08/15(土) 12:26:17
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
1000デフォルトの名無しさん:2009/08/15(土) 12:27:00
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。