C/C++の宿題片付けます 129代目
レス数が1000を超えています。これ以上書き込みはできません。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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/
0002デフォルトの名無しさん
2009/07/13(月) 17:49:16コンパイラの構成
[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の問題です。よろしくお願いします。
今日中にできそうにないので期限を延ばして再提出することにしました。
0003tac
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++でウインドウを開き、チャットの画面を作り、書き込み欄に書き込むと
その書き込まれた文字列がウインドウに表示されるプログラムから教えていただけると嬉しいです。
期限は来週ですが、出来るだけ早い完成が望ましいので宜しくお願いします。
0004デフォルトの名無しさん
2009/07/13(月) 20:14:29もしそれでも片付けてくれる人がいらっしゃればお願いできないでしょうか?
0005デフォルトの名無しさん
2009/07/13(月) 20:15:24ゼミってことは通信技術方面の研究室なんでしょ?それなら今後を考えて自分でやったほうがいいと思うよ。
初心者でも分かる参考書を紹介しとくから、勉強してみてダメだったらもう一回来てみたら?
http://www.amazon.co.jp/dp/4797334797
あとCは使えるんだよね?Cが使えることは大前提だから。
0006デフォルトの名無しさん
2009/07/13(月) 20:17:38[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] その他の制限:
0007デフォルトの名無しさん
2009/07/13(月) 20:56:54mixiのほうはもういいの?
0008デフォルトの名無しさん
2009/07/13(月) 20:59:23#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;
}
0010デフォルトの名無しさん
2009/07/13(月) 21:14:23メールアドレスは?
0011tac
2009/07/13(月) 21:28:03完成系のイメージはチャットのような事ができるプログラムを使って、
実際の講義中にそのプログラムを使い、学生に対して使用した場合
どのような効果が得られるかを検証することなので、
チャットでなくても、インスタントメッセンジャー?!でも良いです。
一応、情報系の学部ですが、
研究テーマは「チャットのようなモノを使った時の学生の学習効果」です。
なので、プログラミングに対して全く無知なので、力を貸していただけないでしょうか??
0012デフォルトの名無しさん
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日
0013デフォルトの名無しさん
2009/07/13(月) 21:37:45学習効果の調査ならc++である必要はあるの?
あと都合のいいコメントだけレス返すのやめたほうがいいですよ
0014tac
2009/07/13(月) 21:41:21C++は所属しているゼミの先生の指定があったので、強制的に決定してしまいました。
都合のいいコメントだけにレスを返したつもりはなかったんですが、
勘違いされたなら、申し訳ありませんでした。
0015デフォルトの名無しさん
2009/07/13(月) 21:42:54それがホントならフリーのチャットPG漁るべき。
C系言語でソケットから作ろうつーのは迂遠過ぎる。
(C系言語が得意で漁るより作るほうが早いって人は別ね)
0016デフォルトの名無しさん
2009/07/13(月) 21:48:450017デフォルトの名無しさん
2009/07/13(月) 21:49:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9740.txt
実行時間がN*N*Nに比例する単純なやつ
ぐぐったらN*N*log(N)のアルゴリズムがあるらしいので、
こういうの好きな人は俺のにかまわず別回答どうぞ
0018tac
2009/07/13(月) 21:50:14チャットPGっていうのは、簡易型のチャットってことですか?
「漁る」の意味がいまいち理解できなかったんですが、どういう意味でしょうか?
0019デフォルトの名無しさん
2009/07/13(月) 21:55:55やべ、一部ミスがあったので修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9741.txt
0020デフォルトの名無しさん
2009/07/13(月) 22:01:3115じゃないが漁るというのはチャットプログラムを作るのではなく、
既にあり公開されているものを持ってきて利用した方が良いのでは?
ということだろう
0021デフォルトの名無しさん
2009/07/13(月) 22:06:16漁るってのはどこからか適当なソースコード見つけてきてパクってくるってこと。
だいたい「チャットのようなモノを使った時の学生の学習効果」を調べるだけなら
わざわざ自分でチャットプログラム作る必要がないし。
チャットをする方法はjavascriptのチャットルーム使うとか、IRCクライアントを使うとか方法は
いくらでもあるからその研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。
0022デフォルトの名無しさん
2009/07/13(月) 22:27:1215ですが、その通りです。フォローどもでした。
0023前スレ794
2009/07/13(月) 22:49:35今日も休んだのですがメールで先生に連絡したら前スレの>>997のように少し待ってくれるみたいです
ギャグではないので改めて宜しくお願いします
0025デフォルトの名無しさん
2009/07/13(月) 23:11:48前スレ794は解答者です
0026デフォルトの名無しさん
2009/07/13(月) 23:15:58>その研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。
教授の真意を聞いたほうがいい。
本当の研究としてだけ(学会論文目指して)やってるならそうだが、
そうじゃないなら、学生の勉強のためにやらせてる可能性もある。
それに、調べるだけならチャットを作る必要はないんだが、
「改良」したいなら、学生がちゃんとソースを理解していることが必要だ。
それでも、C++を選択する理由としては弱いかもしれないが。
0027デフォルトの名無しさん
2009/07/13(月) 23:17:48No.9742に前スレの>>820クワイン・マクラスキー法書いたよ。
やり方分からなくてこうなったけど。
0028前スレ749
2009/07/13(月) 23:18:17正しくは749ですね
>>25さん指摘ありがとうございました
0029デフォルトの名無しさん
2009/07/13(月) 23:20:18全くの無知な学生にこの課題を出すなら、パワハラの可能性があるのでしかるべきところに相談するといいんじゃね?
0030デフォルトの名無しさん
2009/07/13(月) 23:28:31>配列を用いた計算機のプログラム
の意味がよく分からない
0031デフォルトの名無しさん
2009/07/13(月) 23:39:38丸一週間寝込んだってこと?お大事に。
0032デフォルトの名無しさん
2009/07/14(火) 00:42:12using 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桁以上です』と表示するプログラムを作成せよ
誰かこれ教えてくれませんか?
0033デフォルトの名無しさん
2009/07/14(火) 00:47:47いいよ
0034デフォルトの名無しさん
2009/07/14(火) 00:48:36#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;
}
0035デフォルトの名無しさん
2009/07/14(火) 00:52:31その例があって、その問題が答えられないって小学生未満?
0036デフォルトの名無しさん
2009/07/14(火) 01:00:31>>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
質問の仕方からしてガキでしょ
0037デフォルトの名無しさん
2009/07/14(火) 01:02:24そのように出力する問題ではないのだよ
-100は9以下なので、"入力した値は1桁です"と出力することは完全に仕様通り。
0038デフォルトの名無しさん
2009/07/14(火) 01:07:48ただその仕様どうなのよってことが言いたかったの。
0039デフォルトの名無しさん
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は等しいです』と表示する
先ほどの例を踏まえて誰かこれ教えてくれませんか?
0040デフォルトの名無しさん
2009/07/14(火) 01:10:25出力する文字列なんて下っ端には関係ないんです
…もちろんネタだよ
0041デフォルトの名無しさん
2009/07/14(火) 01:11:08先ほどの例を参考に自分で考えるという選択肢はなしかよwww
0042デフォルトの名無しさん
2009/07/14(火) 01:14:520043デフォルトの名無しさん
2009/07/14(火) 01:32:520044デフォルトの名無しさん
2009/07/14(火) 01:44:15>変数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++指定無いからこれでいいよね?
あ、もちろん先ほどの礼を踏まえた回答だよ?
これでキミはヒーローだっ!!
0045デフォルトの名無しさん
2009/07/14(火) 02:15:380046デフォルトの名無しさん
2009/07/14(火) 02:32:37ゼミナール
[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
このページを参考にしつつプログラムを書いていたのですが、
録音と再生を同時に行うところで行き詰まってしまいました。
このページにのってるプログラムに追加する形でどなたか教えていただけないでしょうか。
0047デフォルトの名無しさん
2009/07/14(火) 12:06:02エラーが起こってしまうので、どなたか修正していただけないでしょうか。
0048デフォルトの名無しさん
2009/07/14(火) 12:16:24[2] 問題文(含コード&リンク):
主語、目的語、述部が入ったデータファイルを読み込み、それらをランダムに組み合わせて生成した短文を20個ファイルに出力するプログラムの作成。
短文の構文は必ず、「(主語)は、(目的語)(述部)。」となるようにする。
出力例:俺は、カレーが大好きだ。
データファイルは以下を使用すること。
主語: 俺 私 あなた 彼 彼女 先生 犬のポチ 猫のタマ ライオン その人 政治家 ネズミ
目的語: カレー ご飯 肉 授業 男 女 すごいもの アレ アンパン お金
述部: が大好きだ が大嫌いだ を作った をなくした が欲しい に全力を尽くす を新しいものに交換した ?なにそれ美味いの? について深く考えた を捨てた に塩をふりかけた
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 2009年7月20日
0049デフォルトの名無しさん
2009/07/14(火) 12:18:00[2] 問題文 2人の人の名前と年齢をキー入力し、同じ年なら「○○さんと××さんは同じ年です」、
そうでなければ「○○さんは××さんよりyy 歳年上です」と表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borlandc++
[3.3] 言語: C
[4] 期限: 今日の2時30分
[5] その他の制限: なし
よろしくお願いします
0050>8
2009/07/14(火) 12:24:180051デフォルトの名無しさん
2009/07/14(火) 12:24:27エラーが出るというなら、コードとそのエラーを貼るべきだな。
でないとどこで何が起きているのかわからん。
0052デフォルトの名無しさん
2009/07/14(火) 12:24:43前スレ>>971の回答なら俺も試したがエラー出なかったぞ
自分の書いたソースをロダにうpすれ
0053デフォルトの名無しさん
2009/07/14(火) 12:27:37前スレ>>939に回答
005447
2009/07/14(火) 12:55:24入力が誤っていたみたいです。ありがとうございました。
0055デフォルトの名無しさん
2009/07/14(火) 12:58:23[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レスに分けて投稿します。ソースを以前ろだに貼ろうと思ったのですができませんでした。見づらくてすいません。
どうか宜しくお願いします。
0056772
2009/07/14(火) 13:00:29#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] = ;
}
0057772
2009/07/14(火) 13:01:33/* ルンゲクッタ法を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]);
}
0058772
2009/07/14(火) 13:02:34int 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;
}
0059デフォルトの名無しさん
2009/07/14(火) 13:05:38はやくうpろだ使えるようになってくれよ
0060デフォルトの名無しさん
2009/07/14(火) 13:08:27だからはやく宿題手伝ってください。
0061デフォルトの名無しさん
2009/07/14(火) 13:37:26>>60 ファイル名のところに直接ファイル名書いてる?、「参照..」ボタン押せ。
0062デフォルトの名無しさん
2009/07/14(火) 13:39:1860は本人じゃないだろw
このスレのみんなの心の声だ
#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";
}
0064デフォルトの名無しさん
2009/07/14(火) 13:56:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9745.zip
キャストって、(int),(double)で良いんだよねぇ?
0066デフォルトの名無しさん
2009/07/14(火) 15:27:580068デフォルトの名無しさん
2009/07/14(火) 15:59:17前スレ>>939の回答だが試してみた。
で、コンパイルエラーが起こったけど修正すれば動いた。
>>srand((unsigned) time(NULL));/* 乱数系列の変更 */
上記の一文を変数宣言後の位置にいどうするか、コメントアウトすれば動く。
C99なら問題ないのだけど。
0069デフォルトの名無しさん
2009/07/14(火) 16:30:14前回回答した者だけど、規格とかまで理解できてなかったゴメン・・・
>>68さんが言ってるように修正してみてほしい
コメントアウトすると乱数が一定になるからなるべく移動で解決する方が良さそう
あと、それでもエラーが出るようなら、エラーメッセージを貼り付けて欲しい
0070デフォルトの名無しさん
2009/07/14(火) 17:26:39データファイルが本当にそういう仕様だと信じて書いてみた。
入力ファイル名、出力ファイル名はそれぞれ input.txt output.txt ね。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9747.txt
0071デフォルトの名無しさん
2009/07/14(火) 17:37:440072デフォルトの名無しさん
2009/07/14(火) 18:37:04[2] 問題文:配列を用いた計算機のプログラムを作成してください。
計算は前から順に行われていく。
入力される数値の個数は最大でも20個としてください。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C言語
[4] 期限:2009年7月19日
[5] その他:特になし
自分も新スレになったので再貼りです
改めてよろしくおねがいします
0073デフォルトの名無しさん
2009/07/14(火) 18:37:48>配列を用いた計算機のプログラムを作成してください。
の具体例をくれ
#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);
0075デフォルトの名無しさん
2009/07/14(火) 19:39:08問題文の意味が全く分からない
0076デフォルトの名無しさん
2009/07/14(火) 19:42:05・問題文は、出題されたまま全文を書いてください。
0077デフォルトの名無しさん
2009/07/14(火) 20:25:48はい!ほんとにありがとうございました。
助かりました
0078デフォルトの名無しさん
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;
}
0079デフォルトの名無しさん
2009/07/14(火) 20:34:060080デフォルトの名無しさん
2009/07/14(火) 20:35:20問題張りなおして
008179
2009/07/14(火) 20:44:12お願いします
0082デフォルトの名無しさん
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++;
}
0083デフォルトの名無しさん
2009/07/14(火) 20:48:42x=hen-1;
while(1<=x)
{
kakugyou();
x=x-1;
}
}
void kakugyou(void)
{
y=1;
while(y<=x)
{
printf("*");
y=y+1;
}
printf("\n");
}
これだと、アスタリスクが旗みたいな形になるけど、これを基本にしてダイヤ型と六角形、星形の結果を出すにはどうしたらいいのだろうか。
誰か教えてください。
0084デフォルトの名無しさん
2009/07/14(火) 20:51:560085デフォルトの名無しさん
2009/07/14(火) 20:55:45ビルから飛び降りればいいんじゃないかな?
0086デフォルトの名無しさん
2009/07/14(火) 21:07:07[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++
0087デフォルトの名無しさん
2009/07/14(火) 21:21:18課題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;
}
0088デフォルトの名無しさん
2009/07/14(火) 21:32:10Extracting 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
0089デフォルトの名無しさん
2009/07/14(火) 21:40:24#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;
}
0090デフォルトの名無しさん
2009/07/14(火) 21:47:250091デフォルトの名無しさん
2009/07/14(火) 21:50:54Q2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9748.txt
0092デフォルトの名無しさん
2009/07/14(火) 21:51:50[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] その他の制限: 特にありません。よろしくお願いします。
0093デフォルトの名無しさん
2009/07/14(火) 21:57:24zipになります。どうかよろしくお願いします。
http://down11.ddo.jp/uploader/download/1247576184.zip/attatch
0094デフォルトの名無しさん
2009/07/14(火) 21:58:07passは先ほどと同じですので
0095デフォルトの名無しさん
2009/07/14(火) 21:59:38(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;
}
0096デフォルトの名無しさん
2009/07/14(火) 22:26:39課題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
0097デフォルトの名無しさん
2009/07/14(火) 22:37:54(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;
}
009879
2009/07/14(火) 23:01:46ありがとうございます
0099デフォルトの名無しさん
2009/07/15(水) 01:17:23[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] その他:特になし
どうかよろしくお願いします。
0100デフォルトの名無しさん
2009/07/15(水) 01:37:56解答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
環境依存あるかも。
0101デフォルトの名無しさん
2009/07/15(水) 01:50:31ありがとうございます
0102デフォルトの名無しさん
2009/07/15(水) 02:32:03[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] その他の制限:特にないです、どうかよろしくお願いします
0103デフォルトの名無しさん
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] その他の制限: 特になし
よろしくお願いします
0104デフォルトの名無しさん
2009/07/15(水) 03:06:34プログラミングの題材探しにすんげぇ助かるかもしれない
0105デフォルトの名無しさん
2009/07/15(水) 03:08:39利用料を徴収します
0106デフォルトの名無しさん
2009/07/15(水) 03:23:11がんばって技術向上のついでに単位取得を手伝ってあげるといい
0107デフォルトの名無しさん
2009/07/15(水) 03:28:46[2] 問題文(含コード&リンク): 2つのテキストファイル(double型)を読み込み、畳み込み和を計算し、別のファイルに出力せよ。
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年 7月16日
[5] その他の制限: よろしくお願いします。
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
0109デフォルトの名無しさん
2009/07/15(水) 09:13:24[2] 問題文(含コード&リンク):
共有バッファを用いて、子プロセスでメッセージを書き込み、親プロセスで読み出すプログラムを作成せよ。
ただし、共有バッファは128バイトとし
先頭には‘書き込みマーク’を付し、そのリセットは親プロセスが、セットは子プロセスが行うとせよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:7月17日
[5] その他の制限:なし
よろしくお願いします。
0110デフォルトの名無しさん
2009/07/15(水) 09:37:44[2] 問題文:ニュートン法により代数方程式を解くプログラムを作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio
[3.3] 言語:C
[4] 期限:2009年7月22日
[5]少しでも易しい表現にしていただくようよろしくお願い致します。
あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて
いただけるとありがたいです。
0111デフォルトの名無しさん
2009/07/15(水) 09:58:44t(f):=block([fd,h],fd:diff(f(x),x),h:x-f(x)/fd,return(rat(h)))$t(f);
代数方程式に制限はないの?普通の多項式に限るとか
それか、代数方程式とその微分が与えられている前提なら
話は簡単だけども
多項式の微分を自分で作れって問題ならめんどいね
0112デフォルトの名無しさん
2009/07/15(水) 10:36:10方程式と、方程式の微分結果は、ソースに直接書くの?
それとも、入力された方程式を解くの?
それによって、難易度がかなり違うんだけども。
011372
2009/07/15(水) 11:26:38作成例の実行ファイルを昨日貰ったので家に帰ったらアップします
0114tac
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++ 言語のオープンソースが置いてあるサイトを紹介してください。
宜しくお願いします。
0115デフォルトの名無しさん
2009/07/15(水) 16:49:040116デフォルトの名無しさん
2009/07/15(水) 17:19:47mixiであんたが消したトピに答えがあったんだが見てないのか?
0118デフォルトの名無しさん
2009/07/15(水) 18:32:28IPMessanger
http://www.ipmsg.org/
ソフト自体のソースも公開されてるし、
通信部分のみのDLLなんかもあるから、充分なんじゃない?
0119デフォルトの名無しさん
2009/07/15(水) 18:36:46[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] その他:特になし
よろしくおねがいします
0120デフォルトの名無しさん
2009/07/15(水) 18:56:31#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;
}
0121obama ◆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] その他の制限:
0122obama ◆dXPOZaWDCk
2009/07/15(水) 19:14:55お願いします
0123デフォルトの名無しさん
2009/07/15(水) 19:29:560124デフォルトの名無しさん
2009/07/15(水) 19:35:45http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9756.txt
0125デフォルトの名無しさん
2009/07/15(水) 19:44:51[2] 問題文(含コード&リンク):
以下のゲームの中からどれか二つを選んで作成せよ。
・マインスイーパー
・七並べ
・ブラックジャック
・ポーカー
カードゲームを作成する場合、同じカードが2枚存在してはならない。
ジョーカーは無いものとする。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2009年7月17日12:00まで]
出来れば7並べかマインスイーパーをお願いします。
0126デフォルトの名無しさん
2009/07/15(水) 20:18:28[2] 問題文(含コード&リンク):
一次元配列を用いて、Aをn次(nは100以下)の正方行列としたときの
対称行列の成分の添字番号、行成分を格納し表示せよ。
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: visual c++
[3.3] 言語: c++
[4] 期限: 2009年07/17まで
[5] その他の制限: 一次元配列で考える。
よろしくお願いします。
0127デフォルトの名無しさん
2009/07/15(水) 20:28:13だめだ、10回読み直したけどわからん。
だれか分かりやすく読み下してくれ・・・
0128デフォルトの名無しさん
2009/07/15(水) 20:43:06配列名をMとする時
i行j列成分は(i>=j)の時 M[ i*(i-1)/2+j-1 ] (i<j)の時 j,i成分と同じ
乱数で適当に格納した後表示する。
これでどーだ?
0129デフォルトの名無しさん
2009/07/15(水) 20:47:13先に書かれたー。せっかくなので俺がいま書いた解釈も…
N次正方行列をあらわすには普通N*N個の要素を必要とするが
それが対称行列ならN*(N-1)/2個の要素ですむ
それでは、N次の対称行列をN*(N-1)/2個の要素を持つ一次元配列に
格納し、取り出すプログラムを作成せよ
0130デフォルトの名無しさん
2009/07/15(水) 20:48:43ありがとうございます。
じっくり考えたいと思います。
013172
2009/07/15(水) 21:05:30http://www.rupan.net/uploader/download/1247658809.zip
参考例と作成例をうpしました
参考例のほうはソースと実行ファイル共にありです
作成例のほうは実行ファイルだけになります
0132デフォルトの名無しさん
2009/07/15(水) 21:26:34なるほど
「添字番号、行成分」なるなにものかを何とか数値化して配列に入れる方向で考えてた。頭堅いのは駄目だな
その方向で行くとして、出力は1次元配列の構造そのままがいいんだろうか、行列っぽくするべきだろうか
なんとなく後者かなと思ったが
0133obamaさんへ
2009/07/15(水) 21:29:22図を右上から左下、左上から右下の二本の線でバツに区切ります。
すると4つの同じような図形の菱形になります。
その一つを見るとさらに同じように4つの菱形に区切れます。
部分が全体を含んでいます。
そのように繰り返し的に同じ図形が現れるのをフラクタル図形といいます。
プログラムは4つの点を描き、中心位置をずらして
大きさを小さくしながら再帰的に同じ形を描いていっています。
0134デフォルトの名無しさん
2009/07/15(水) 22:07:23>>78
0135デフォルトの名無しさん
2009/07/15(水) 22:22:25[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でお願いします
なるべく簡単なものでおねがいします
0137デフォルトの名無しさん
2009/07/15(水) 22:57:39#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;
}
0138デフォルトの名無しさん
2009/07/15(水) 22:59:39[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] その他の制限:なし
0139デフォルトの名無しさん
2009/07/15(水) 23:10:28ありがとうございました
0140デフォルトの名無しさん
2009/07/15(水) 23:45:12↓
a.out
にする
あと、パスに.を入れるのはよくない
#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
*/
0142デフォルトの名無しさん
2009/07/16(木) 00:23:11与えられた方程式をソースに直接書くタイプなのです。
方程式や収束条件が先生の方からまだ発表されていなかったので、
大変申し訳ないですが、後日あらためて書き込みさせていただきます。
0143デフォルトの名無しさん
2009/07/16(木) 00:29:44ありがとうございます
0144デフォルトの名無しさん
2009/07/16(木) 01:52:56[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] その他の制限:基本的なもので
0145デフォルトの名無しさん
2009/07/16(木) 02:05:38�@
#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;
}
0146デフォルトの名無しさん
2009/07/16(木) 04:51:120147デフォルトの名無しさん
2009/07/16(木) 06:45:230148デフォルトの名無しさん
2009/07/16(木) 09:19:20マインスイーパってやっぱりマウスでクリックするの?
0149デフォルトの名無しさん
2009/07/16(木) 09:48:29どちらもCUIです。
説明が足りず申し訳ありません。
0150デフォルトの名無しさん
2009/07/16(木) 09:49:580151デフォルトの名無しさん
2009/07/16(木) 10:05:58だと思います。特に方法は指定されていませんでした。
0152138
2009/07/16(木) 11:17:32レスありがとうございます。
その場合、スクロール、ページャ運用ができません。
是非プログラム内で解決したいと思っています。
宜しくお願い致します。
0153デフォルトの名無しさん
2009/07/16(木) 12:12:15http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9759.c
0154デフォルトの名無しさん
2009/07/16(木) 12:57:017並べは、コンピュータ対戦?
両方人間で、同じ画面見てたらゲームになんないよねぇ・・・
0155デフォルトの名無しさん
2009/07/16(木) 13:52:287並べサーバを作って、人間用クライアントが複数接続できるようにして、
足りないぶんはAIクライアントに担当させる・・・
AIはインタフェースだけ決めといて実装は自由、各自が自作の思考ルーチンの強さを競う
なんて妄想してると夢だけはひろがりんぐw
0156デフォルトの名無しさん
2009/07/16(木) 21:46:370157デフォルトの名無しさん
2009/07/16(木) 23:13:11[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] その他の制限:特になし
朝までになりますので、どなたかよろしくお願いします。
0158デフォルトの名無しさん
2009/07/16(木) 23:18:58下図に示すa,bに数値を設定したときに
--------------
この図はどこ
0159デフォルトの名無しさん
2009/07/16(木) 23:48:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9763.txt
すいません、こちらが図になります
0160デフォルトの名無しさん
2009/07/17(金) 00:11:31[2] 課題
言語: C もしくは C++ 言語
(1)以下のプログラムを作成しなさい(数当てゲーム)
*画面上に「好きな数字を入力してください」と表示して、キーボードからの入力を待つ。
変数aを定義して、10までの乱数を発生させて変数aに代入する。
キーボードからの入力があれば、先に発生させた乱数と一致しているならば
「あたり!!」と表示する。
一致していなければ「残念乱数はxxです」と表示する(xxには変数aの中身を表示する)
宜しくお願い致します。
0161デフォルトの名無しさん
2009/07/17(金) 00:50:40C++で
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9764.txt
0162デフォルトの名無しさん
2009/07/17(金) 01:24:03一応windows.hを使ったインタフェースで作ってた。
0163デフォルトの名無しさん
2009/07/17(金) 03:26:21#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;
}
0164デフォルトの名無しさん
2009/07/17(金) 04:07:54これから見てみます
ありがとうございました
0165デフォルトの名無しさん
2009/07/17(金) 09:44:19[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします
0166デフォルトの名無しさん
2009/07/17(金) 10:46:21コメントじゃなくて?
0167新たな課題です
2009/07/17(金) 10:59:16[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ファイルとして保存すること
0168デフォルトの名無しさん
2009/07/17(金) 11:00:02コメントです!!
0169デフォルトの名無しさん
2009/07/17(金) 11:23:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9767.zip
0170デフォルトの名無しさん
2009/07/17(金) 11:51:14ショートカットファイルしかありませんでした
0171デフォルトの名無しさん
2009/07/17(金) 13:40:01[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] その他の制限: 特になし
よろしくお願いします。
0172デフォルトの名無しさん
2009/07/17(金) 18:47:16キャラクタ画面でマインスイーパ作ったけど、〆切りすぎてたね・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9773.c
0173デフォルトの名無しさん
2009/07/17(金) 18:57:320174デフォルトの名無しさん
2009/07/17(金) 21:12:10ありがとうございます!!
0175デフォルトの名無しさん
2009/07/17(金) 21:47:15[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] その他の制限:なし。
0176デフォルトの名無しさん
2009/07/17(金) 23:06:06#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;
}
0177デフォルトの名無しさん
2009/07/18(土) 00:14:07WriteLine関数とReadLine関数の定義はどこ?
0178デフォルトの名無しさん
2009/07/18(土) 00:26:57[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] その他:特になし
よろしくお願いします。
0179デフォルトの名無しさん
2009/07/18(土) 00:39:26【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
0180デフォルトの名無しさん
2009/07/18(土) 00:46:43助かりました。ありがとうございます。
0181デフォルトの名無しさん
2009/07/18(土) 00:58:23ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9775.c
これになります。失礼しました
画像は読む事が出来た だれかプログラムしてくれ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9777.txt
0183デフォルトの名無しさん
2009/07/18(土) 02:52:07>>167やろうと思ったけど何すればいいんだこれ
問題が意味不なんだが
数値をエクセルでグラフにしたので、朝、目が覚めたら読んでくれ。こっちは解析しただけでやる気が終わった。
http://www51.tok2.com/home/rg550/cgi-bin/hosoku/img0046.zip
0185デフォルトの名無しさん
2009/07/18(土) 14:25:51[2] 問題文:データベースに対して線形探索を行うプログラムを作成するこのとき探し出す値の項目(キー)は、生徒の名前とする。なお、番兵法を用いて繰り返しの終了判定を少なくする。また、文字列を比較する場合、関数strcmp()を用いる
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名:CPad for Borland C++Compiler
[3.3] 言語:C
[4] 期限: 2009年7月20日
0186デフォルトの名無しさん
2009/07/18(土) 14:34:07そのデータベースというのはSQLのことかい?
0187デフォルトの名無しさん
2009/07/18(土) 14:35:010188デフォルトの名無しさん
2009/07/18(土) 15:39:08こんな感じで。配列を使うとは書いて無いから線形リストにした。
あと、動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9782.txt
0189デフォルトの名無しさん
2009/07/18(土) 16:13:30それ番兵の意味ないでしょ。ノード数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;
0190デフォルトの名無しさん
2009/07/18(土) 16:43:40それ、C++ですねぇ。
検索文字列を番兵にするのは予想外でした。確かに比較回数はへりますね。
でも、その擬似コードは末尾にpushとpopしないといけないので、サーチにやっぱり時間かかりませんか?
文字列比較よりも低コストという感じですか?
0191デフォルトの名無しさん
2009/07/18(土) 16:47:19データベース(人の名前,tomなど9人,txtファイル)から
キーボードから入力したKEY(生徒の名前)を
検索するプログラムを作ってほしいんです><
0192デフォルトの名無しさん
2009/07/18(土) 17:02:22リストの末尾へのポインタをあらかじめ保持しておけば番兵の追加と削除に検索はいらない。
もちろん構造体を作るコストはかかるけどね。どっちが早いかは環境やリストの長さによる。
Node* head;
Node* tail;
//番兵追加
Node sentinel = new Node("hoge");
tail.next = sentinel;
//
//検索処理
//
//番兵削除
delete(tail.next);
tail.next = NULL;
>>191
初めに書けよ
他に抜けてる条件は無いのか?
0193デフォルトの名無しさん
2009/07/18(土) 17:03:35ちょ!おま。
情報の後出しは禁止だ!このやろー。
findfirstfileを自作しろってことか?
さらに、その上で全文検索しろってことか?
どの辺のことを言ってるのかよくわからん。
0194デフォルトの名無しさん
2009/07/18(土) 17:13:26すみません;;
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で検索して該当したデータを表示させるプログラムなんですけど
データベースからデータを検索するプログラムが作れなくて困ってたんです;;
0195デフォルトの名無しさん
2009/07/18(土) 17:14:20tailの管理がちょっと厄介ですなぁ。tailをpopしたら再検索ですし。まぁ、用途によりけりか。
0196デフォルトの名無しさん
2009/07/18(土) 18:12:47[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
0197デフォルトの名無しさん
2009/07/18(土) 18:44:09多分あってると思うがほとんどデバッグしてないので何とかしてくれ。動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9786.zip
もう、今日は切ったり張ったりしないぞ。疲れた。
0198デフォルトの名無しさん
2009/07/18(土) 18:50:20めちゃめちゃ高度ですが
すごい助かります
ありがとうございました^^
お疲れ様です;;
0199デフォルトの名無しさん
2009/07/18(土) 22:17:40[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] その他の制限:
0200デフォルトの名無しさん
2009/07/18(土) 22:21:25サーバ側 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には何も表示されなかった。課題どころか元のプログラムすら動かない危機的な状況なので
誰か助けてください。サーバ側に何か問題があると思うのですが全く見当がつきません
0201デフォルトの名無しさん
2009/07/18(土) 22:38:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9789.txt
0202デフォルトの名無しさん
2009/07/18(土) 23:34:12サーバの202行目はj++だよね。
0203デフォルトの名無しさん
2009/07/18(土) 23:37:58using 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++です
0204デフォルトの名無しさん
2009/07/18(土) 23:45:37本当にありがとうございました。頑張ってみます
0205デフォルトの名無しさん
2009/07/18(土) 23:47:48負の数に対応したやつ
#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;
}
0206デフォルトの名無しさん
2009/07/19(日) 00:04:42&&を使わずに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;
}
0207デフォルトの名無しさん
2009/07/19(日) 01:08:17using 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
&&が使えなければドモルガンの法則使って||にすればいいじゃない、と思った
//このプログラムは負の数値に対して考慮していない。←仮定
//このプログラムは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;
}
//これじゃ駄目かね? 質問者も、どれ提出すればいいか困るか。
#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;
}
0210デフォルトの名無しさん
2009/07/19(日) 02:44:04ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9790.zip
>>185と同じ人っぽかったので、データベースはtxtファイルで
「データベースに格納する前にスタックに一時的に格納」ってのは
「入力されたデータをスタックにためておき、スタックが一杯になったら
データベースに書き込む」ということだと解釈したのだけど、合ってる?
#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();
}
0212デフォルトの名無しさん
2009/07/19(日) 07:33:25>>184読んでやっと理解して
defineとか使ってごちゃごちゃ書いて完成したら
>>211が出来てて涙目なので少しすっきり書き直してアップしといた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9791.c
0213デフォルトの名無しさん
2009/07/19(日) 12:40:03[2] 問題文(含コード&リンク):
下に示すように,キーボードから文字列を読み込み,その文字列が回文(前から読んでも後
ろから読んでも同じ)かどうかを判定するプログラムを作成せよ.なお,入力する文字列は半
角の英数字および記号のみと仮定してよい.
文字列を入力してください: abcba
回文です.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 09年07月21日
[5] その他の制限:なし。
0214デフォルトの名無しさん
2009/07/19(日) 12:55:27前スレに似たようなのがあった。空白を読みとばしたり大文字小文字を区別しない上級バージョンだけど参考まで
http://pc12.2ch.net/test/read.cgi/tech/1245853701/107-111
0215デフォルトの名無しさん
2009/07/19(日) 12:56:06#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;
}
0216デフォルトの名無しさん
2009/07/19(日) 13:26:37100以下の整数を入力し80以上なら”優”、70以上80未満なら“良”、60以上70未満なら“可”、60未満なら“不可”と表示する。tenに格納された値が不なら終了する。
条件:scanfの前にprintf(”点数を入力してください”);を入れる。whileを使いマイナスの値が入力された場合終了し、100〜0の場合ループさせる。ifを使う
0217デフォルトの名無しさん
2009/07/19(日) 13:29:51入門スレがあっただろ?そっちで聞け
0218デフォルトの名無しさん
2009/07/19(日) 13:31:46入門スレから誘導した
こっちで受けてやってくれw
0219デフォルトの名無しさん
2009/07/19(日) 13:38:00int 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;
}
0220デフォルトの名無しさん
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の値を表示
0221デフォルトの名無しさん
2009/07/19(日) 13:43:09常連さんになるなら>>1のテンプレに沿って書き直してくれ
とくにC/C++の違いとか、よく混乱がおきてんだ
0222デフォルトの名無しさん
2009/07/19(日) 13:53:47[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,とか超簡単なところしか習ってない)
0223デフォルトの名無しさん
2009/07/19(日) 13:59:26[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] その他の制限:特にないです。よろしくお願いします。
0224デフォルトの名無しさん
2009/07/19(日) 14:15:54[2] 問題文(含コード&リンク):
生起確率リストのファイルlist.txtの情報源に対するハフマン符号を求めなさい。
簡単なアルゴリズムも記載するように。
list.txtは手元に無いのですが、適当な小数が列挙されているモノです。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 09年07月20日
[5] その他の制限:特にありません。
宜しくお願いします。
0225デフォルトの名無しさん
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] 期限: [無期限]
0226デフォルトの名無しさん
2009/07/19(日) 15:23:18#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;
}
0227デフォルトの名無しさん
2009/07/19(日) 16:49:38#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;
}
重複が消せない(;ω;)
0228デフォルトの名無しさん
2009/07/19(日) 16:56:03[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] その他の制限:問題ではプロットせよと書いていりますが問題の計算のプログラムをお願いします。
0229デフォルトの名無しさん
2009/07/19(日) 17:15:050230デフォルトの名無しさん
2009/07/19(日) 19:02:35小数って実数のことじゃなくて、「小さな整数」の意味でいいのかな
0231デフォルトの名無しさん
2009/07/19(日) 19:59:15実数と考えて頂いて問題ないです
紛らわしくてごめんなさい
0232デフォルトの名無しさん
2009/07/19(日) 20:26:16[2] 問題文(含コード&リンク):
fopenと fclose ライブラリ関数を使って、
C言語でファイルをコピーするプログラムを作成せよ。
ただしカレントディレクトリを表示せよ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 09年07月20日
[5] その他の制限:特にありません。
0233デフォルトの名無しさん
2009/07/19(日) 20:37:29その解釈でも大丈夫だと思いますが、プログラムの例の部分から察するに
プッシュするごとに格納されたデータを表示するんじゃないでしょうか?
あと、>>210さんのプログラムは終了させた場合のみ全データをポップ&表示
していますが、多分プッシュと同様ポップもメニュー?に入れて、
ポップするごとに全データを表示して、プッシュポップの関係を
分かりやすくするというプログラムなんじゃないでしょうか?
長々とすみませんでした。
0234デフォルトの名無しさん
2009/07/19(日) 20:56:14[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] その他の制限:特にありません。
長文で申し訳ありません。よろしくお願い申し上げます。
0235デフォルトの名無しさん
2009/07/19(日) 21:03:00[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
0236デフォルトの名無しさん
2009/07/19(日) 23:31:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9799.txt
0237デフォルトの名無しさん
2009/07/19(日) 23:47:26サーバ側であるバッファに格納する部分はどう書けばいいんでしょうか?
クライアントのどの部分でサーバにWriteLineで送るのかと
サーバ側がいつ送られてきたメッセージを受信するのかが分かりません
0238デフォルトの名無しさん
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);
}
0239デフォルトの名無しさん
2009/07/19(日) 23:54:43using 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を書きました
誰かこれ教えてくれませんか
0240デフォルトの名無しさん
2009/07/19(日) 23:55:24関数の中で受け取った配列の中身をすべて 0 に書き換え,内容を表示して確認しなさい.
main 関数での処理は次の通りです.
まず,配列を宣言し 0〜9 を代入しなさい.
次に,内容の確認のため main 関数で配列の内容を表示しなさい.
最後に,hairetsu_zero() を呼び出し,実行後の配列の内容を表示しなさい.
さらに余力があれば,別で配列 y[5] を作成し,1..5 で初期化し, hairetsu_zero(y) を実行しなさい.
0241239
2009/07/19(日) 23:56:16100を書きました
99を書きました
…
88を書きました
87を書きました
上にあった書き方を参考にして、以下のように出力できるプログラムを作成せよ
0242デフォルトの名無しさん
2009/07/20(月) 00:00:260243デフォルトの名無しさん
2009/07/20(月) 00:21:04[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
0244234
2009/07/20(月) 01:23:22問題文そのままだけでは講義中の説明がないとわかりづらいと感じた部分の補足です
・センサーはユーザーの頭部についていて、原点(机の右上角)からの距離を取っています
・頭部初期位置とはユーザーが目の前のディスプレイの画面中心を静視したときの頭部の座標です。
・頭部をトラッキングという表現というよりは頭部の動きを実際にトレースする
と言い換えた方が題意がつかみやすいと言われました。
またその他の制限に描くべきだったと思うのですが、
ウィンドウでの実現が困難な場合、長方形の描画などで実現してもよい
との回答が教官からありました。
文意が伝わらない部分が多く大変失礼いたしました。
引き続きよろしくお願いいたします。
0245234
2009/07/20(月) 01:28:31×・センサーはユーザーの頭部についていて、原点(机の右上角)からの距離を取っています
○・センサーはユーザーの頭部についていて、机の右上角を原点とした3次元座標を取っています
(ディスプレイ側をx軸正方向、被験者手前側をy軸正方向、地軸正方向(上向き)をz軸正方向)
正確にはこのようになります。度々本当に申し訳ございません。
0246デフォルトの名無しさん
2009/07/20(月) 02:21:59#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";
}
}
0247デフォルトの名無しさん
2009/07/20(月) 02:47:47/*
#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));
}
0248デフォルトの名無しさん
2009/07/20(月) 03:33:13#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("");
}
0249デフォルトの名無しさん
2009/07/20(月) 04:59:59[2] 問題文(含コード&リンク)
台形の面積を求める関数を作成し、この関数を用いて台形の面積を求め画面に表示する。
ただし作成する関数は引数はないが戻り値がある関数であること。
なお上底、下底、高さはキーボードから入力する。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2009年07月21日AM1:00まで
[5] その他の制限
特になし。出来ればわかりやすいもので。
お願いします。
0250デフォルトの名無しさん
2009/07/20(月) 05:19:17#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;
}
0251デフォルトの名無しさん
2009/07/20(月) 07:45:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9800.c
0252デフォルトの名無しさん
2009/07/20(月) 10:58:39>ただしカレントディレクトリを表示せよ が分かりません。
カレントディレクトリのパスを表示するのか、ディレクトリ内容を一覧で表示するのか。
入力ファイル名と出力ファイル名はコマンドで指定するのか、プロンプトで入力するのか。
カレントディレクトリは先に表示するのか、後で表示するのか、何のために表示するのか。
0253デフォルトの名無しさん
2009/07/20(月) 11:13:39[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法のどれかを使用したものと
それ以外の方法を使用したもの
両方を書いてくれるとありがたいです。
お願いします。
0254デフォルトの名無しさん
2009/07/20(月) 14:05:41[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] その他の制限:問題文通りでお願いします課題二つありますがよろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9801.c
0256デフォルトの名無しさん
2009/07/20(月) 15:20:27[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] その他の制限:問題文の指定された通りにお願いします
0257デフォルトの名無しさん
2009/07/20(月) 17:11:47有難うございました。
0258デフォルトの名無しさん
2009/07/20(月) 17:14:07ありがとうございます。
100を書きました
99を書きました
…
88を書きました
87を書きました って問題と
5を書きました
6を書きました
…
12を書きました
13を書きましたって問題が別の問題なんですが、>>246で書いてみたいに一緒に書いてしまってはまずいですよね?
0259デフォルトの名無しさん
2009/07/20(月) 17:33:410260デフォルトの名無しさん
2009/07/20(月) 18:10:41[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] その他の制限:
特に制限はないですが、コメントを付けてくださると助かります。
コメントがないと多分意味が分からないので…
0261デフォルトの名無しさん
2009/07/20(月) 18:56:36ごめんなさい。まだいますか。そうじゃなくて、問題がべつの問題だから分けないといけないかなと思って
0262デフォルトの名無しさん
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です。
// 問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;
}
0264デフォルトの名無しさん
2009/07/20(月) 19:53:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9803.c
0266デフォルトの名無しさん
2009/07/20(月) 22:03:55#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;
}
0267デフォルトの名無しさん
2009/07/20(月) 22:04:44#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;
}
0268デフォルトの名無しさん
2009/07/20(月) 22:20:56widchってwhichですか?
あと、問3が九九のやつのですよね?
0269デフォルトの名無しさん
2009/07/20(月) 22:40:32すみません。
widchって何でしょうか
0270デフォルトの名無しさん
2009/07/20(月) 22:43:351番の成績を入力してください
85
1番は85点です
2番の点数を入力してください
100
2番は100点です
…
この問題は一部を以下にしめす
for(i=『』; i <=『』;『』) {
cout << i << "『』\n";
cin << n;
cout << i << "『』" << n << "『』\n";
}
ここでは、上のプログラムの一部を使い(更には『』に適当な文字を入れて)、上の仕様を満たすプログラムを作成せよ
0271デフォルトの名無しさん
2009/07/20(月) 22:44:010272270
2009/07/20(月) 22:44:41#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"; }
}
}
}
上の例文を参考に
これ分かる人いませんか?
0273デフォルトの名無しさん
2009/07/20(月) 23:59:52ありがとうございます
0274デフォルトの名無しさん
2009/07/21(火) 00:09:13>>268>>269widchってなに?どこにそんな関数書いてあるよ?え?言ってみろ
問3が九九のやつかなんて実行すれば分かるだろ?え?面倒だ?視ね
>>270>>272
お前同じ質問者か?>>1読んで市ね
0275デフォルトの名無しさん
2009/07/21(火) 00:12:250276デフォルトの名無しさん
2009/07/21(火) 00:13:56馬鹿じゃね?
0277デフォルトの名無しさん
2009/07/21(火) 00:15:17エスパー禁止にすべき
解答以外の発言は慎むようにしてね
質問者への質問はしても良い
こういうのは掲示板を使って行うものではないと思っている
0278デフォルトの名無しさん
2009/07/21(火) 00:56:170279デフォルトの名無しさん
2009/07/21(火) 01:25:32>>276
0280デフォルトの名無しさん
2009/07/21(火) 01:56:030281デフォルトの名無しさん
2009/07/21(火) 01:57:09>>204でクローズじゃなかったんだ?
0282デフォルトの名無しさん
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] その他の制限:
問題文の通りです。
宜しくお願いします。
0283デフォルトの名無しさん
2009/07/21(火) 03:52:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9805.c
0284デフォルトの名無しさん
2009/07/21(火) 05:09:44>>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';
}
}
0285デフォルトの名無しさん
2009/07/21(火) 10:12:41[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)
0286デフォルトの名無しさん
2009/07/21(火) 10:18:11[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)
0287デフォルトの名無しさん
2009/07/21(火) 10:26:49入力した整数値の桁を数えるプログラムを作る
整数値を入力せよ
5659693
7桁です
問題を解くためのプログラムの一部を下に示す
_____{
a=a/10;
keta++; //またはketa=keta+1;
}____
あと
#include <iostream>
using namespace std;
return 0;
の中に入れてください
0288デフォルトの名無しさん
2009/07/21(火) 11:07:10// 入力した整数値の桁を数える
#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;
}
0289デフォルトの名無しさん
2009/07/21(火) 11:24:08スタックのお題。継承まで。
動作は保障しないので自分でデバッグ、修正してくれ。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9807.zip
0290デフォルトの名無しさん
2009/07/21(火) 11:35:58動作は保障しない。
#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;
}
0291デフォルトの名無しさん
2009/07/21(火) 11:39:18[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
0292デフォルトの名無しさん
2009/07/21(火) 12:17:45[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] その他の制限:とくになし
よろしくお願いします
0293デフォルトの名無しさん
2009/07/21(火) 12:25:43意向に添えてるかはわからないが、とりあえず修正してみた。動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9808.txt
0294デフォルトの名無しさん
2009/07/21(火) 12:54:480295デフォルトの名無しさん
2009/07/21(火) 13:07:55>>294さん 特にないです。並び替えさえできればそれで大丈夫です。よろしくお願いします。
0296デフォルトの名無しさん
2009/07/21(火) 13:36:53int size(Tree t){
if(t==NULL) return 0;
return size(t->left_subtree)+size(t->right_subtree)+1;
}
0297デフォルトの名無しさん
2009/07/21(火) 13:37:51[2] 問題文(含コード&リンク): ∫₀¹ 1/1+x²dx の積分を
方形公式、台形公式、シンプソン公式を
用いて数値計算するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月24日(金)まで
[5] その他の制限: 分割数を10の時と50の時のプログラムを作成する
よろしくお願いします
0298デフォルトの名無しさん
2009/07/21(火) 13:48:29ありがとうございました
0299デフォルトの名無しさん
2009/07/21(火) 14:33:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9809.txt
0300デフォルトの名無しさん
2009/07/21(火) 16:21:15[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
0301デフォルトの名無しさん
2009/07/21(火) 17:15:33for文使っちゃいけないのか?
一応、for文を使わずwhile文で書いたが不便だな
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9811.txt
0302167
2009/07/21(火) 17:15:51投稿しなおします
[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ファイルとして保存すること
0303デフォルトの名無しさん
2009/07/21(火) 17:17:25インタラクティブッコミュニケーション
[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] その他の制限:
問題文のページにもあるようにポインタとアドレスを使用してください。
締切日はまだ先ですが、出来るだけ早いほうが嬉しいです。
0304デフォルトの名無しさん
2009/07/21(火) 17:29:57提出状況が悪いため明日提出になりました。
なので今日中にお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9791.c
このプログラムをコンパイルしてみたのですが
thetaが定義されてないのと
17行目、constのまえのに;がありませんというエラーが出ます
修正お願いします
0305デフォルトの名無しさん
2009/07/21(火) 17:30:40文の格納に必要なバイト数をJISコードの場合とシフトJISコードの場合のそれぞれで計算する問題なのですが、これはどうやって考えれば良いのですか?
漢字、カタカナ、英数字(半角)、記号で構成されている文です
曖昧な質問で申し訳ないのですが、ここでは課題の文を晒せないので、よろしくお願いします><
0306デフォルトの名無しさん
2009/07/21(火) 17:41:35M_PIは定義してあるかい?
0307デフォルトの名無しさん
2009/07/21(火) 17:42:58C言語なら俺に聞け(入門篇) Part 50
http://pc12.2ch.net/test/read.cgi/tech/1246342847/
0308デフォルトの名無しさん
2009/07/21(火) 17:54:05C言語ではブロック内の変数宣言は最初の実行文の前に置かないとエラーになる
つまり次のように入れ替える
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>
0309デフォルトの名無しさん
2009/07/21(火) 17:59:19#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);
}
}
0310デフォルトの名無しさん
2009/07/21(火) 18:02:05ヒントのプログラムを修正
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);
}
0311デフォルトの名無しさん
2009/07/21(火) 18:08:35おれには、「少数型」って書く勇気がなかった・・・
#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);
}
}
0313デフォルトの名無しさん
2009/07/21(火) 18:30:27間違った誘導するな。課題だと書いてあるのだからこのスレで処理しろよ。
0314デフォルトの名無しさん
2009/07/21(火) 18:30:42>>312
修正thx
0315234
2009/07/21(火) 18:48:57>>244で補足させていただきました通り、
教官の話では、ウィンドウの移動でなくても
長方形を描画してデータのに合わせて移動させていく形でもよいそうです
また、ウィンドウ2の動きだけの実現でもよいそうなのでよろしくお願いします
0316デフォルトの名無しさん
2009/07/21(火) 20:05:43[2] 問題文(含コード&リンク): ※
[3] 環境
[3.2] コンパイラ名とバージョン:MicroSoft Visual Studio 2005
[3.3] 言語:C++
[4] 期限:2009年7月24日
[5] その他の制限:※
※バレが怖いのでメールにてやり取りさせていただけないでしょうか・・・。
もしそれでもいいという方がいらっしゃれば
antispammailaddress49 @ yahoo.co.jpまでメール下さい、お願いします。
ゲーム製作ですが、単純な内容だと思います。
0317デフォルトの名無しさん
2009/07/21(火) 20:10:20通報もされるかも
0318デフォルトの名無しさん
2009/07/21(火) 20:13:25通報ってどこにだよw
0319デフォルトの名無しさん
2009/07/21(火) 22:05:370320デフォルトの名無しさん
2009/07/21(火) 22:49:47課題から学校名がわかる可能性あり
0321デフォルトの名無しさん
2009/07/21(火) 22:51:37ちょっと変えてシラきったら証拠ないんだからむこうだって泣き寝入りだよ
教授にプロバイダにアクセスログ聞きだせる権限でもあるなら別だけどな
0322316
2009/07/21(火) 23:10:13なるべく秘密裏にしていただけると嬉しいです
0323デフォルトの名無しさん
2009/07/21(火) 23:22:18プログラムの中身を解説することを求められたら‥‥‥。
0324デフォルトの名無しさん
2009/07/21(火) 23:23:48忘れました
0325デフォルトの名無しさん
2009/07/21(火) 23:37:34[2] 問題文(含コード&リンク):
年月日を表現する構造体を作成し,この構造体を使って,
現在の年月日の前の日と次の日をセットする関数を作成せよ.
※この課題では struct tm は使わず、新たに構造体を作ること。また、閏年
等もきちんと判別させること。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4のはず
[3.3] 言語:c
[4] 期限:[2009年07月28日23:59まで]
[5] その他の制限:特にないです、どなたかよろしくお願いします。
0326デフォルトの名無しさん
2009/07/21(火) 23:46:42一応やってみた。題意を満たしてるかどうかはわからん
あと、環境がVS2005EEなので動かなかったらゴメンネ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9814.c
0327sage
2009/07/21(火) 23:58:19[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] その他の制限: 課題用テンプレート参照
期限が近いので、切実にお願いします。
0328デフォルトの名無しさん
2009/07/22(水) 00:00:150329デフォルトの名無しさん
2009/07/22(水) 00:06:29[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にあります。
0330デフォルトの名無しさん
2009/07/22(水) 00:39:35シラを切れるほど変更できないでしょ。
鶏の唐揚げにレモン汁かけて「これは鶏の唐揚げじゃないですから!」って言い張ってるようなもんで
聞いてる先生の方が恥ずかしくなるレベルなんじゃないの?
0331デフォルトの名無しさん
2009/07/22(水) 00:40:21[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
よろしくおねがいします。
0332デフォルトの名無しさん
2009/07/22(水) 00:44:59何を今更って感じだけどなw
まあでもバレ気にするならメールはアリだと思うけど俺は
0333デフォルトの名無しさん
2009/07/22(水) 00:48:17前々スレで作ったので、
そっちから引っ張ってきた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9427.txt
これ見る限り同じ学校か同一人物?
全く同じ課題じゃないの?
0334デフォルトの名無しさん
2009/07/22(水) 00:49:58[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] その他の制限: 一つ一つのプログラムの意味を詳しく教えてください。
お願いします
0335デフォルトの名無しさん
2009/07/22(水) 01:25:46なんかデジャブを感じるんだが
0336デフォルトの名無しさん
2009/07/22(水) 01:28:360337デフォルトの名無しさん
2009/07/22(水) 01:29:03>>308
>>304 が載せたソース書いた >>212 だけど、
関数化してたのをすっきりさせたときにコピペ順序ミスった
しかもgccで確認してたから気付かなかった。フォローthx
M_PI の定義については VC++ だけでバージョン示されてなかったから
M_PI が math.h インクルードで使えない6.0以前を無視して敢えてそんな風に書いてみた
>>212で defineとか使ってごちゃごちゃ とか言ったのはそこらへんも書いてた
なんか糞レスでごめん
0338234
2009/07/22(水) 01:42:49ありがとうございます!
自宅に環境がないので、学校が開き次第動作確認して報告いたします。
プログラム提出後のレポートのため、
こちらはプログラムの締め切り期限後でも構いませんので、
関数MyRegisterClassEx、InitInstance、WINAPI _tWinMainの
役割と全体の流れを簡単に教えていただけないでしょうか。
お手数をお掛けして申し訳ございませんが、
何卒よろしくお願い申し上げます。
0339デフォルトの名無しさん
2009/07/22(水) 03:38:38http://www.kumei.ne.jp/c_lang/index_sdk.html
http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
:
こんなとこか
0340デフォルトの名無しさん
2009/07/22(水) 04:03:45>>133 見てなかったのか (C 括弧閉じない性格の人
0341デフォルトの名無しさん
2009/07/22(水) 10:02:51[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
お願いします
0342デフォルトの名無しさん
2009/07/22(水) 11:17:280343デフォルトの名無しさん
2009/07/22(水) 11:35:50とりあえず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;
}
0344316
2009/07/22(水) 12:55:330345234
2009/07/22(水) 13:19:28VisualStudio2005で動作確認を行ったのですが、
エラーは出ないものの、実行の様子が確認できませんでした
どなたかVisualStudioで動作確認できた方いらっしゃいますでしょうか?
>>339
リンク先で関数の説明を読んでみます
誠にありがとうございました
0346デフォルトの名無しさん
2009/07/22(水) 13:23:43その段階でその情報は公開されたと考えて欲しい。
とまでは言わないが、いかに質問内容を工夫して
不要な(回答者や他人に迷惑をかけかねない)情報を
漏らさないように質問することも勉強のうちじゃない
か?
まぁ大抵は漏らしてもなんともない内容のものである
ことが殆どなんだけどね。
0347デフォルトの名無しさん
2009/07/22(水) 13:28:05ここにいる連中はお前の家庭教師でもなんでもねーんだよボケ
お前みたいな屑は単位落としたほうがいい
0348デフォルトの名無しさん
2009/07/22(水) 13:35:16メールは出したいんだが、おまえさんが変なヤツかどうかわからんからな。
変なヤツにからまれるのはイヤだ
0349デフォルトの名無しさん
2009/07/22(水) 14:19:50変な奴ってことは既に分かってるじゃないか
どの程度粘着でキチってるかだけが焦点
0350デフォルトの名無しさん
2009/07/22(水) 14:36:40バレが怖いからメールでっていうのは前のスレから希望あったし、
別に考え方は普通じゃん、変な奴か?
文章もおかしくないし
0351デフォルトの名無しさん
2009/07/22(水) 14:38:14>気に入らない質問やその他や発言はスルーの方向で。
0352デフォルトの名無しさん
2009/07/22(水) 14:48:38>>1で禁止しといた方がいいかもな
トラブルのもとだし
だいたいバレ怖いなら自分でやるのが普通だろ
0353デフォルトの名無しさん
2009/07/22(水) 15:14:06>※バレが怖いのでメールにてやり取りさせていただけないでしょうか・・・。
>もしそれでもいいという方がいらっしゃれば
単純に「それでもいい」という方がいないだけと思います。自分も含めて。
>>346の言うようになにかしらの工夫をしたほうが円滑に進むと思いますよ。
0354デフォルトの名無しさん
2009/07/22(水) 15:32:03ここで待つより、信頼できる友人か先輩に頼む方が現実的
0355デフォルトの名無しさん
2009/07/22(水) 16:01:58ありがとうございます!
そうですね、whileもしくはdo〜whileと指定されてますので><
お手数お掛けしましたm(_ _)m
0356デフォルトの名無しさん
2009/07/22(水) 16:08:02動作が保障できないからいやです〜。
間違いや仕様変更があったらそのたびにゴネラレルとほんとにやってられんからねぇ。
0357デフォルトの名無しさん
2009/07/22(水) 16:31:28あれか、やっぱ社交能力ないヒキコモリばっかりなのかwwww
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°を各点で結んだ正方形である。
0359デフォルトの名無しさん
2009/07/22(水) 16:33:13メールだと動作が保障できないとかキチガイじみたクズがいるみたいだな。
スルーもできないみたいだしwwww
0360デフォルトの名無しさん
2009/07/22(水) 16:35:48とりあえず荒れるってのはよく分かった。
0361デフォルトの名無しさん
2009/07/22(水) 16:36:38そんなこと書く暇があったらここに問題文を書いちゃいなよ
0362デフォルトの名無しさん
2009/07/22(水) 16:37:32s/>>357-358/>>357,>>359/
ね
0363デフォルトの名無しさん
2009/07/22(水) 16:41:38特にメールだから、動作が保障できないとは書いてないが。俺いつも言ってるよ?
それに、そんな人を中傷するであればあんたらが受ければ万事解決だ。がんばってね。
0364デフォルトの名無しさん
2009/07/22(水) 16:44:31これどういう意味?
0365デフォルトの名無しさん
2009/07/22(水) 16:46:590366デフォルトの名無しさん
2009/07/22(水) 16:50:540367デフォルトの名無しさん
2009/07/22(水) 16:52:41俺、解答するときはその一文を常につけてる。動作は保障しない。って。
見たことないかい?
0368デフォルトの名無しさん
2009/07/22(水) 16:54:220369デフォルトの名無しさん
2009/07/22(水) 16:55:15>>361
0370デフォルトの名無しさん
2009/07/22(水) 16:56:57メールでのやり取りは1:1
だから返事が遅くなれば催促される。
内容にミスがあっても結局自分しか治せないので同様に催促される。
暇人じゃねえとメールでのやり取りなんてめんどくさくてやってられんだろww
俺が思う嫌というのと>>356の言ってることは違うけど
叩くぐらいなら>>359お前がメールしてやれよw
0371デフォルトの名無しさん
2009/07/22(水) 17:01:46君みたいなやつさ。メールだと性格変わるやつがいるからねぇ〜。
それと、2chで何いってんのさ。珠玉混合。わすれてないかな?
0372デフォルトの名無しさん
2009/07/22(水) 17:11:44玉石混交、では?
0373デフォルトの名無しさん
2009/07/22(水) 17:16:452つを同時に求めてもうまくいくわけないよ、ほら一石二鳥っていうじゃん!
0374デフォルトの名無しさん
2009/07/22(水) 17:18:06うおー。こういうミスがあるからプログラムは恐ろしい。いや関係ないか。。。
指摘さんきゅー。
0375デフォルトの名無しさん
2009/07/22(水) 17:23:360376デフォルトの名無しさん
2009/07/22(水) 17:24:590377デフォルトの名無しさん
2009/07/22(水) 17:31:530378デフォルトの名無しさん
2009/07/22(水) 17:48:08そこまでして手を抜きたいのかなぁ。
テンプレ書けば解いてくれるといういわばシステムなわけだ、
それを度外視してまでやってもらいたいことってなんだろう??
細かい動作に目をつぶるなら、自分で解いても良いようなきがするが。
意図が読めないなぁ。
0379デフォルトの名無しさん
2009/07/22(水) 17:54:160380デフォルトの名無しさん
2009/07/22(水) 17:56:02そうなら、これ以上はやめとく。荒らし気味になってごめんね。
0381デフォルトの名無しさん
2009/07/22(水) 18:04:56だよ
0382デフォルトの名無しさん
2009/07/22(水) 19:09:11[2] 問題文(含コード&リンク):テキストボックスから文字列を取得して文字数に応じて処理を振り分ける
[3] 環境
[3.1] OS: WindowsXP
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限: 出来れば本日中にお願いします
[5] その他の制限: 特にないです。
JAVAだと分かるんですがCだと書き方が難しいです。
どなたかよろしくお願いいたします。
0383デフォルトの名無しさん
2009/07/22(水) 19:17:470384デフォルトの名無しさん
2009/07/22(水) 19:19:03Javaで書いてみてよ
0385デフォルトの名無しさん
2009/07/22(水) 19:26:42・問題文は、出題されたまま全文を書いてください。
0386デフォルトの名無しさん
2009/07/22(水) 19:27:42int len = this.textBox1.get_SelectionLength();
if(len == "文字数"){
//処理
}else if(len == "文字数"){
//処理
}
JAVAだとこういう感じになると思うんですがいかがでしょうか?
0387デフォルトの名無しさん
2009/07/22(水) 19:28:360388デフォルトの名無しさん
2009/07/22(水) 19:33:08グループで1つのシステムを作成することになったんです。
自分の担当がそこの部分ということで作業を振られました。
なので問題文というのがないんです。申し訳ありません。
システムというのが、人材管理システムを作っております。
IDを手打ちかリーダーかバーコード?で読み込んで
テキストボックスに表示する。
そこでテキストボックスの文字数に応じて処理を振り分けるということです。
言葉足らずですいませんでした。
0389デフォルトの名無しさん
2009/07/22(水) 19:34:13文字列長はstrlenその他で取得できるよ。
0390デフォルトの名無しさん
2009/07/22(水) 19:34:56処理の内容に関しては自力で考えます。
大枠で急ぎで作れと言われたので頼らせていただきました。
0391デフォルトの名無しさん
2009/07/22(水) 19:37:56開発環境ほんとにC言語でいいのか?
Cだとオブジェクトも何も使えないよ?
VC++でMFC使うとかじゃないの
0392デフォルトの名無しさん
2009/07/22(水) 19:50:05恥ずかしながら右も左も分からない状況なんです。
ぐぐりながら探してるんですがなかなかいいサンプルがなくて困っています。
>>391
開発環境は使ってるツールのことですか?
開発ツールはVisual C++ 6.0というのを使っています。
0393デフォルトの名無しさん
2009/07/22(水) 19:58:26[2] 問題文(含コード&リンク):次に表示
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名とバージョン:Xcode
[3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限: 2次元配列(int score[100][3];)を用いる
お願いします
0394デフォルトの名無しさん
2009/07/22(水) 19:58:50//テキストボックスの文字列を取得する
// 例1 str = 〜;
// 例2 strcpy(str, 〜);
//文字数を取得する
int len = strlen(str);
if(len == "文字数"){
//処理
}else if(len == "文字数"){
//処理
}
こんなん。大して変わらんよ
0395393
2009/07/22(水) 19:59:562次元配列(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
0396デフォルトの名無しさん
2009/07/22(水) 20:01:41ありがとうございます。
検索するとポインタとか出てきて頭がこんがらがって苦労してたんです。
本当にありがとうございました。
0397デフォルトの名無しさん
2009/07/22(水) 20:03:53ありがとうございます。ひとつかしこくなりました。
0398デフォルトの名無しさん
2009/07/22(水) 20:07:050399デフォルトの名無しさん
2009/07/22(水) 20:09:040400デフォルトの名無しさん
2009/07/22(水) 20:22:18[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] その他の制限: 特にないです。
よろしくお願いします。
0401デフォルトの名無しさん
2009/07/22(水) 20:32:071000
i = 1
i++
0402デフォルトの名無しさん
2009/07/22(水) 20:37:531は間違えてる
0403デフォルトの名無しさん
2009/07/22(水) 20:39:50>=だったのか。よく見てなかったわ。
0回だね
0404234
2009/07/22(水) 20:45:41環境の違いだと思うのですが、
作成していただいたプログラムでは動く方のウィンドウ2しか表示されませんでした、
テキストを読み、2つのウィンドウでウィンドウハンドルやウィンドウプロシージャを別々に
定義するようになおしたところ、きちんと2つ表示させることができました
タイマー部分やセンタリングする関数などはそのまま使用させていただきました
大変助かりました、ありがとうございました!
0405234
2009/07/22(水) 20:53:41書き忘れの追記なのですが
ディスプレイの幅を取得する関数や、その使い方なども
そのまま使用させていただきました
また追加での不躾な質問にも丁寧に答えて下さりありがとうございました
連書き失礼しました
0406デフォルトの名無しさん
2009/07/22(水) 21:14:24意図がよくわからないけど、それらしいものを作った。必要に応じてカスタムしてくれ。
あと、動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9820.txt
0408デフォルトの名無しさん
2009/07/22(水) 21:17:25[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] その他の制限
特になし
以前にも書きこんだんですが
答えをもらえなかったんで。
よろしくお願いします。
0409デフォルトの名無しさん
2009/07/22(水) 21:17:440410デフォルトの名無しさん
2009/07/22(水) 21:50:37>>343じゃダメなの?
0411デフォルトの名無しさん
2009/07/22(水) 21:53:20ありがとうございます。
今はまだプログラムを読む力がありませんが解析して自分なりに処理を理解しようと思います。
0412デフォルトの名無しさん
2009/07/22(水) 22:06:492分法、はさみうち法、NR法以外の方法でやったやつも欲しいんです・・・
0413デフォルトの名無しさん
2009/07/22(水) 22:12:250414デフォルトの名無しさん
2009/07/22(水) 22:17:46二分法、はさみうち法とこれ以外で精度の良い方法ってあったっけ?
0415デフォルトの名無しさん
2009/07/22(水) 22:34:47int main() , if(i==50) break; , return 0; を習っていないので、一応自分のわかる範囲内でいじったのですがうまくいきません。
お手数ですが、void , char以外に上記を使わないでもう一度作っていただけますか?
よろしくお願いします。
0416デフォルトの名無しさん
2009/07/22(水) 22:36:280417デフォルトの名無しさん
2009/07/22(水) 22:38:26if(i==50) break;→消す
return 0;→消す
でおk
0418デフォルトの名無しさん
2009/07/22(水) 22:39:49int main()→main()
return 0;→消去
if(i==50) break;→消去
でも行けるよ多分。
50個以上入力すると不思議なことが起こるかも知れんが。
0419デフォルトの名無しさん
2009/07/22(水) 22:44:23>>417さん>>418さん ありがとうございます。
0420デフォルトの名無しさん
2009/07/22(水) 22:45:590421デフォルトの名無しさん
2009/07/22(水) 22:47:02[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
出力されるファイルの波形がどう見ても正弦波ではありません、何がおかしいのでしょうか?
0422デフォルトの名無しさん
2009/07/22(水) 22:52:35x=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;
}
0423デフォルトの名無しさん
2009/07/22(水) 22:52:39ググったら「ブレント法」なるものがあったのでやってみた。
#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;
}
0424途中経過出力付けた
2009/07/22(水) 22:56:45x=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;
}
0425デフォルトの名無しさん
2009/07/22(水) 23:10:17別におかしくないと思うが?
サンプリング周波数を信号周波数の20倍くらいにしないと
正弦波っぽく見えないけどね
0426デフォルトの名無しさん
2009/07/22(水) 23:20:280427デフォルトの名無しさん
2009/07/22(水) 23:46:410428デフォルトの名無しさん
2009/07/22(水) 23:57:52http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9822.txt
0429デフォルトの名無しさん
2009/07/23(木) 00:03:19ありがとうございます。とても助かりました。
0430デフォルトの名無しさん
2009/07/23(木) 00:14:04Input sin frequency(Hz): 1
Input sampling frequency(Hz): 10
play time(second): 2
0431デフォルトの名無しさん
2009/07/23(木) 01:22:41[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS:WindowsVista SP1
[3.2] Visual stdio2008
[3.3] 言語:C
[4] 期限:2009年7月23日午前7時まで
[5] その他の制限:できるだけ簡単に
倍精度浮動小数点型変数で数値を入力し, 小数点以下を切り捨て・切り上げ・四捨五入するプログラムを作成せよ.
ただし, 条件式は使用せず, 型変換を必ず使用すること.
0432デフォルトの名無しさん
2009/07/23(木) 01:40:36#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;
}
0433デフォルトの名無しさん
2009/07/23(木) 02:15:11<入力ファイル>
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
続きます。
0434433
2009/07/23(木) 02:16:07[3.1] OS: vista
[3.2] gcc
[3.3] C
[4] 期限:7月24日 まで(7月23日中にお願いします。)
[5] その他の制限: 特にありません。
長くなってすいません。はっきりしない点があればお尋ね下さい。
0435デフォルトの名無しさん
2009/07/23(木) 02:16:220436433
2009/07/23(木) 02:17:20書き直した方がいいですか?
0437デフォルトの名無しさん
2009/07/23(木) 02:18:190438デフォルトの名無しさん
2009/07/23(木) 02:46:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9823.c
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/20-21
0440デフォルトの名無しさん
2009/07/23(木) 03:28:00宿題の仕様自体がヘン。ここでは4人だから、インデックス3とわかるが、
実務だとそうはいかない。237人目だったら、どうやってインデックス236を自覚するか?
0441デフォルトの名無しさん
2009/07/23(木) 03:43:35>>430
ありがとう、double型で格納すれば確かに正弦波になるが実はshort型で格納しようとしたらまたもおかしなことになるんだが
どうなってるんでしょうか??
0442デフォルトの名無しさん
2009/07/23(木) 03:57:29自己解決しました。
最初の宣言を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で格納することは出来ないものなのでしょうか?
0443デフォルトの名無しさん
2009/07/23(木) 04:03:32最初にshort型の宣言を行わずにdouble型で格納することはできないのでしょうか?
という事です。
//sinshort = sindouble; この文章を消して
fwrite(&sindouble,sizeof(short),1,fp);
では何がいけないのか?という質問です。そういう仕様ですと言われればそうなのですが、では何故fwrite()関数の引数にsize指定があるのかという事です。
0444デフォルトの名無しさん
2009/07/23(木) 04:19:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9825.txt
>>443
sindoubleの先頭sizeof(short)バイトを出力するから。
0445デフォルトの名無しさん
2009/07/23(木) 04:28:55fwrite(&sindouble, sizeof(double), 1, fp);
・なぜ引数でsizeを指定するのかについて
はしょって書くと、構造体配列の各要素先頭数バイトをファイル出力したい場合に対応できるから
0446445
2009/07/23(木) 04:31:480447デフォルトの名無しさん
2009/07/23(木) 05:15:23解りました、少し勘違いをしていたようです。fwriteは前から順にサイズ分で区切って書き込むだけで、double型のshortからあふれたバイト数を無視するということを、していないからということですね。
ありがとうございました。
0448デフォルトの名無しさん
2009/07/23(木) 08:00:09[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]少しでも易しい表現にしていただくようよろしくお願い致します。
あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて
いただけるとありがたいです。
0449デフォルトの名無しさん
2009/07/23(木) 09:05:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9826.txt
0450デフォルトの名無しさん
2009/07/23(木) 11:28:33[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] その他の制限:
0451デフォルトの名無しさん
2009/07/23(木) 11:55:39#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;
}
0452デフォルトの名無しさん
2009/07/23(木) 13:33:53[2] 問題文(含コード&リンク): オブジェクト指向を使ってなんでも良いのでプログラムを書け
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 7月24日まで
[5] その他の制限: メソッドを5個以上使う
変数はpublicとprivateを使い分ける
よろしくお願いします
0453デフォルトの名無しさん
2009/07/23(木) 14:09:44なんでもいいってひでえなw
とりあえずプログラムのテーマつうか、なにかネタを言ってくれ
0454デフォルトの名無しさん
2009/07/23(木) 15:18:520455433
2009/07/23(木) 15:33:35すごいなぁ、ありがとうございます。
0456デフォルトの名無しさん
2009/07/23(木) 20:27:20はいはいガイシュツガイシュツ
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
0457デフォルトの名無しさん
2009/07/23(木) 20:55:50[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] その他の制限
特になし
期限が迫ってますがよろしくお願いします。
0458デフォルトの名無しさん
2009/07/23(木) 21:26:53そこで動作を確認するため下記のリンクのソースを動かそうとしたのですが、
>.\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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
制限は特になし
0459デフォルトの名無しさん
2009/07/23(木) 21:58:46snprintfを_snprintf辺りにしたらコンパイル通ると思う。
0460デフォルトの名無しさん
2009/07/23(木) 22:00:07Parameter snake_param = { 0.45f, 0.35f, 0.2f }; /* cvSnakeImage のパラメータ */にする
snprintf (iter, 8, "%03d", ++j);を
sprintf (iter, "%03d", ++j);にするか自分で同じようなものを作る
snprintf()は、C99から入った標準関数であり、sprintf()では、バッファが溢れる可能性があるから採り入れられた
インターフェースの仕様ははっきりしようよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9828.c
0462デフォルトの名無しさん
2009/07/23(木) 22:36:00[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] その他の制限:
歩いてるように見えるってことは一度出力したものを
消すか上書きしないといけないと思うんですがその方法が分かりません
できるだけ難しい関数を使わずにお願いします
0463デフォルトの名無しさん
2009/07/23(木) 23:23:38本当に申し訳ないですが、どなたかよろしくお願いいたします。
0464デフォルトの名無しさん
2009/07/23(木) 23:45:20#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;
}
0465デフォルトの名無しさん
2009/07/23(木) 23:54:27[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文をどこに入れればいいかわかりません
ので教えてください。
お願いします。
0466デフォルトの名無しさん
2009/07/24(金) 00:12:26if(i>=9 && j>=6) { break;}
↓
if (3<=i && i<=6 && 3<=j && j<= 6) {
v[i][j] = 5.0;
break;
}
0467デフォルトの名無しさん
2009/07/24(金) 00:35:40助かりました。
0468デフォルトの名無しさん
2009/07/24(金) 00:37:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9829.txt
0469デフォルトの名無しさん
2009/07/24(金) 02:19:57ありがとうございました。
0470デフォルトの名無しさん
2009/07/24(金) 02:21:42ありがとうございました。無事エラーが消えました。これで何とか卒論につなげられそうです。
またプログラムで行き詰ったらお世話になるかもしれません。
本当にありがとうございました。
0471デフォルトの名無しさん
2009/07/24(金) 06:33:26[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] その他の制限:特にありません。どうかよろしくお願いします
#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
0473デフォルトの名無しさん
2009/07/24(金) 13:59:33[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
どなたかお願いします ;;
0474デフォルトの名無しさん
2009/07/24(金) 14:10:07たぶん同じ授業の別の宿題で、スタックのとき(>>196)はスタック実装の参考コードがあったけど、
キューは参考コードないの?自力で作れってことかな
0475デフォルトの名無しさん
2009/07/24(金) 14:27:46ごめん参考コードついてた…
0477デフォルトの名無しさん
2009/07/24(金) 15:17:140478デフォルトの名無しさん
2009/07/24(金) 15:27:27本当ですか?
0479デフォルトの名無しさん
2009/07/24(金) 15:36:57ググってみたらカマドウマ法と書いてありました
嘘は勘弁してください…
0480デフォルトの名無しさん
2009/07/24(金) 15:51:27それも嘘ですよね?
真面目にお願いします…
0481デフォルトの名無しさん
2009/07/24(金) 16:07:180482デフォルトの名無しさん
2009/07/24(金) 16:13:52ならないんだと思ってる奴のイタさときたら....
0483デフォルトの名無しさん
2009/07/24(金) 16:21:44じゃあこれは何をもとに解いているんですか?
0484デフォルトの名無しさん
2009/07/24(金) 16:28:24俺様が考えた方法。
おおすげー この考え方って良いよね と公知されると名前がついたり
論文でこういうやりかたどうよ? と予め呼び名を先に言ったりすることもあるが…
<アルゴリズムの命名
# >>422 や >>424 のは逐次探索法とでも呼べばよいのか?
0485デフォルトの名無しさん
2009/07/24(金) 16:32:02アルゴリズム的には、該当してるんだけども。
0486デフォルトの名無しさん
2009/07/24(金) 16:38:01みなさんみたいなニートと違うんです。
0487デフォルトの名無しさん
2009/07/24(金) 16:42:270488土日用の未解決問題
2009/07/24(金) 19:01:04>>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日
0489デフォルトの名無しさん
2009/07/24(金) 20:14:24顔が見えないからってバカみたいに調子にのり過ぎ
初心者にはもっと優しく対応すべき
0490デフォルトの名無しさん
2009/07/24(金) 20:30:03物理学実験
[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日
0491デフォルトの名無しさん
2009/07/24(金) 20:55:29[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
参考までにアップしておきます。
何卒よろしくお願い申し上げます。
0493491
2009/07/24(金) 21:12:05本当に度々申し訳ございません、言語はC++の間違いでした。
後付けではないのですが、書き間違えてしまいました。
大変申し訳ございません。
0494デフォルトの名無しさん
2009/07/25(土) 00:58:57[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でギブアップ
それでは宜しくお願いします
0495デフォルトの名無しさん
2009/07/25(土) 01:11:29exeは誰も試さないと思う。
0496デフォルトの名無しさん
2009/07/25(土) 01:16:17..*.*.*.
..*.*.*.
****.*.*
..O.*.*.
**.***.*
**.*.***
..*.*.*.
..*.*.*.
(2,3) times:0
>>495
0497デフォルトの名無しさん
2009/07/25(土) 01:20:08回答でWin32APIバリバリのプログラムが見られて楽しいからいいけど
0498494
2009/07/25(土) 01:45:53ってウイルスが怖いって意味ですよね
0499デフォルトの名無しさん
2009/07/25(土) 01:56:07なにをいっているのか
0500デフォルトの名無しさん
2009/07/25(土) 02:29:51------------------------------
Jul 21 2009 (01:55:40)
C言語1 課題3サンプル 渕野 哲彦
------------------------------
push Enter key
0501デフォルトの名無しさん
2009/07/25(土) 02:31:50危険。DLするだけでも
0502494
2009/07/25(土) 04:14:360503494
2009/07/25(土) 10:56:19マスも同じで8×8でお願いします
0504デフォルトの名無しさん
2009/07/25(土) 11:12:32ちなみに、ブラウザの文字化けなおせ。
http://up01.ayame.jp/up/ 5073
0505494
2009/07/25(土) 11:24:28一度落としたって事は解いてくれようとしていただいたのですね
解けます?
それと再うpとかはやめていただきたいのですが…
0506デフォルトの名無しさん
2009/07/25(土) 11:26:25ダメならうpすな
0507494
2009/07/25(土) 11:29:21それで解けるならいいですが再うpして解いてもらえないなら再うpはスレチだと思うのです
0508デフォルトの名無しさん
2009/07/25(土) 11:37:29P=Parking
0509デフォルトの名無しさん
2009/07/25(土) 11:57:53ゴチャゴチャ言うなら自分で解け
以上!
0510494
2009/07/25(土) 12:15:07わかりました
これ以上は何も言わないので解いてください
0511デフォルトの名無しさん
2009/07/25(土) 13:30:440512デフォルトの名無しさん
2009/07/25(土) 13:31:35うまくうごかせなかった。
0514494
2009/07/25(土) 15:00:22..*.*.*.
..*.*.*.
****.*.*
..O.*.*.
**.***.*
**.*.***
..*.*.*.
..*.*.*.
の絵で説明すると0が>>494でいう任意マスにあたります
ここからエンターキーを押すと四方、つまり上下左右の*と.が反対となって
..*...*.
....*.*.
**.*.*.*
**O*.*.*
******.*
****.***
....*.*.
....*.*.
となります。>>494のすべてのマークを消すとは.を*にすると終了という意味です
0515494
2009/07/25(土) 15:03:26..*...*.
....*.*.
**.*.*.*
***0.*.*
******.*
****.***
....*.*.
....*.*.
というように1つ右に0が移動します
0516494
2009/07/25(土) 15:12:27>>514最後の行は、>>494のすべてのマークを消すとはすべての.を*にすると終了という意味です
ESCでも終了となっており、>>496の(2,3) times:0とは(、)の数字が0の場所の様でtimesはエンターーキーを押す時に1づつカウントされていく仕様でした
ただし今回は>>494のルールが出来れば課題達成となるので0の場所とかまでは求めません
一応カウントとかつければ加点はされるそうなんですけどね
ともかく改めて宜しくお願いします
0517デフォルトの名無しさん
2009/07/25(土) 16:38:32ライツアウトは、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使わない画面クリアて何だっけ?
0519デフォルトの名無しさん
2009/07/25(土) 18:49:57http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9833.txt
希望通りC言語。VC2005でしか確認していない。
掲示板に書いた内容だけで推測して作ったから、間違ってるかも知れないな。
カーソル位置のマス自体はリターンで反転しない。
「選んだマスから四方にマークがつく」としか書いてないのでそうした。
マス自体も反転したいなら、reverse()に追加すればいい。
0520518
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;
0521518
2009/07/25(土) 19:31:22..*.*.*.
..*.*.*.
****.*.*
..O.*.*.
**.***.*
**.*.***
..*.*.*.
..*.*.*.
ここからエンターキーを押すと四方、つまり上下左右の*と.が反対となって
....*.*.
....*.*.
**.*.*.*
**O*.*.*
******.*
****.***
....*.*.
....*.*.
0522デフォルトの名無しさん
2009/07/25(土) 20:39:23>>519さんのはreverse()に何を追加すればいいんでしょうか…
0523デフォルトの名無しさん
2009/07/25(土) 21:41:06reverse()の中の最後の方にある
times++;
の直前に
if (ban[posX][posY] == 0) {
ban[posX][posY] = 1;
remains--;
} else {
ban[posX][posY] = 0;
remains++;
}
を追加する。
Returnを押した直後は表示は変わらないが、移動した後で表示に反映する。
0524デフォルトの名無しさん
2009/07/25(土) 21:44:42最後まで親切にしてもらってありがとうございました
ただ、名前の露呈が気がかりです…
とはいえスレを騒がしてしまって申し訳ありませんでした
考えていただいた人のすべての人に感謝しています
0525デフォルトの名無しさん
2009/07/25(土) 21:54:420526デフォルトの名無しさん
2009/07/25(土) 21:56:15「先生・・御願いです。今度の試験でどうか私を合格させてください」
「その為なら・・私・・なんでもします・・」
女学生は教授の前に跪き、長い髪をなで上げながら
彼の瞳を見つめ、さらにつづけた。
「あぁ・・なんでも・・ねぇ・・御願い・・」
教授も彼女の瞳を見つめる。
『何でも・・するのかい?』
「えぇ・・します・・」
彼女の耳元にそっと教授は囁いた。
『それじゃ・・・してくれるかな・・・勉強を』
0528デフォルトの名無しさん
2009/07/25(土) 22:00:18今思うとあれって・・・
0529デフォルトの名無しさん
2009/07/25(土) 22:01:55>>519 ソース修正しました。('*'の数で残りを数える)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9834.c
0531デフォルトの名無しさん
2009/07/26(日) 01:30:22[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日まで
サンプルは分けて表示します。
0532デフォルトの名無しさん
2009/07/26(日) 01:32:18#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;
0533デフォルトの名無しさん
2009/07/26(日) 01:34:46print_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);
}
お願いします。
0534494
2009/07/26(日) 02:33:47おー、本当にありがとうございます
ここまでしてもらえるとは思ってもみなかったです。
0535デフォルトの名無しさん
2009/07/26(日) 10:35:43[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日まで
0536デフォルトの名無しさん
2009/07/26(日) 14:46:42[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
某国立大学のプログラムの最後の問題です
どなたか、お手数ですがお願いいたします
0537デフォルトの名無しさん
2009/07/26(日) 18:22:25[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) を求める手順を示せ。
0538デフォルトの名無しさん
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日まで
サンプルプログラムは次からです。
0539デフォルトの名無しさん
2009/07/26(日) 21:34:21#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 とする.
0540デフォルトの名無しさん
2009/07/26(日) 21:35:53print_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;
}
}
0541デフォルトの名無しさん
2009/07/26(日) 21:45:27[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] その他の制限:なし。
0542デフォルトの名無しさん
2009/07/26(日) 22:26:04#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;
}
0543デフォルトの名無しさん
2009/07/26(日) 22:50:12自己レス。
出力が頭おかしかった。
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');
}
0544デフォルトの名無しさん
2009/07/26(日) 23:44:32ありがとうございます。解決しました。
0545デフォルトの名無しさん
2009/07/27(月) 01:13:24[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] その他の制限: 配列、繰り返し処理、出力のみ
よろしくお願いします。
0546デフォルトの名無しさん
2009/07/27(月) 02:30:08(a)http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9840.txt
(b)はプログラムを見て考えて下さい
0547デフォルトの名無しさん
2009/07/27(月) 03:47:06[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]制限なしです。お願いします。
0548デフォルトの名無しさん
2009/07/27(月) 03:51:58sample_data2.txtはどこ?
0549デフォルトの名無しさん
2009/07/27(月) 04:13:411,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
0550デフォルトの名無しさん
2009/07/27(月) 04:26:33これって一行読み込む毎に前のリストをクリアしちゃうの?
0551デフォルトの名無しさん
2009/07/27(月) 06:12:54http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9842.txt
0552デフォルトの名無しさん
2009/07/27(月) 06:13:48print_tlist付けるの忘れた
ちょっと待って
0553デフォルトの名無しさん
2009/07/27(月) 06:20:22>>547
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9843.txt
これで問題あったらまた教えて
0554デフォルトの名無しさん
2009/07/27(月) 07:51:38[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月今日まで
0555デフォルトの名無しさん
2009/07/27(月) 08:25:38すみません。教えてください。
typeの中にある'n'と'd'はなにを意味するのですか。
それから何という語の略なのか、も。
0556デフォルトの名無しさん
2009/07/27(月) 09:28:59#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;
}
0557デフォルトの名無しさん
2009/07/27(月) 09:35:36>演算子+,-,*,/と整数と浮動小数点数からなる計算式の文字列から
>計算木を作成せよ。計算木は次のようなc_tree構造体を使うとする。
ここから察するにnは整数、dは浮動小数点じゃないかな?
0558535
2009/07/27(月) 11:02:22その通りです。
0559デフォルトの名無しさん
2009/07/27(月) 11:11:38[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] その他の制限:配列 繰り返し 出力のみで構成できるそうなのです。
0560デフォルトの名無しさん
2009/07/27(月) 11:41:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9845.txt
0561デフォルトの名無しさん
2009/07/27(月) 11:43:19>>559
同一人物? 別人なら、そのまま提出すると丸かぶり・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9846.txt
0562561
2009/07/27(月) 11:44:320565デフォルトの名無しさん
2009/07/27(月) 12:24:39普通「相関係数」と言う時は1/Nみたいだね
「ピアソンの積率相関係数」とわざわざ呼びならわす時は1/(N-1)
プログラム中に「ピアソンの相関係数」とあるからそのまま提出してもいいかもね
0566デフォルトの名無しさん
2009/07/27(月) 12:27:02正規分布しない時はスピアマンの相関係数を使う
とあるから、1/Nにしといた方が無難かも
0567デフォルトの名無しさん
2009/07/27(月) 12:31:22どちらを取るかは自己責任で
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9847.txt
N/sqrt(N)/sqrt(N) = (N-1)/sqrt(N-1)/sqrt(N-1) = 1
0569デフォルトの名無しさん
2009/07/27(月) 12:46:570571デフォルトの名無しさん
2009/07/27(月) 18:42:55[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です。 よろしくお願いします。
#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;
}
0573デフォルトの名無しさん
2009/07/27(月) 19:02:48#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;
}
0574デフォルトの名無しさん
2009/07/27(月) 19:21:34[2] 問題文(含コード&リンク): CUI上で動くメーラーを作れ
[3] 環境
[3.1] OS: Win XP
[3.2] コンパイラ名とバージョン: Visual Studio 2003
[3.3] 言語: C++
[4] 期限: 2009年7月28日 0:00まで
[5] その他の制限: 多機能
0575デフォルトの名無しさん
2009/07/27(月) 19:36:070576デフォルトの名無しさん
2009/07/27(月) 19:37:44序論でそれか。
socketとかならった?
0577デフォルトの名無しさん
2009/07/27(月) 22:46:03[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>しかならっていません。
0578help
2009/07/27(月) 22:52:44[2]問題文
10進数から2進数へ変換し、その補数表現を書け
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語: C言語
[4] 期限: 7月28日まで
0579デフォルトの名無しさん
2009/07/27(月) 23:11:20#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;
}
0580デフォルトの名無しさん
2009/07/27(月) 23:19:11#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;
}
0581help
2009/07/27(月) 23:31:26ありがとうございます。
そこから2進数の補数表現にするにはどうすればいいんでしょうか?
あと、cじゃなく、c++でした・・・
すいません
0582デフォルトの名無しさん
2009/07/27(月) 23:34:27しってる。
あっちの回答使えば?
0583デフォルトの名無しさん
2009/07/27(月) 23:41:17喫煙者かどうかはあまり関係ないと思う
0584help
2009/07/27(月) 23:46:34あっちとは、どこの事でしょう?
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;
}
0586デフォルトの名無しさん
2009/07/27(月) 23:49:470587デフォルトの名無しさん
2009/07/27(月) 23:51:56なんでendlつかわないの?
0588デフォルトの名無しさん
2009/07/27(月) 23:52:56> そこから2進数の補数表現にするにはどうすればいいんでしょうか?
って言われるぜ
0589デフォルトの名無しさん
2009/07/28(火) 00:08:432の補数 → 1の補数を取った後、+1
簡単だニャー。
0590help
2009/07/28(火) 00:14:26それができれば、聞いてないっす・・・
0591デフォルトの名無しさん
2009/07/28(火) 00:24:140592デフォルトの名無しさん
2009/07/28(火) 00:35:48例えば、10進数で-10を16bitの2進数に変換し1の補数表現とするなら、
bitset< 16 > b( ~10 );
同じく2の補数表現とするなら、
bitset< 16 > b( ~10 + 1 );
こんだけ。画面に表示するときは
cout << b.to_string() << endl;
C++では線形リスト作れとかソートしろとかみたいな
基礎レベルの宿題はほとんどコード書く必要がない。
0593デフォルトの名無しさん
2009/07/28(火) 00:36:16解答を書き込んだところ、それがそのまま提出されてきました。
思わず笑って×を付けましたが、一応合っているのに×を付けられても
文句すら言ってこないんですよね。つまらん。
0594デフォルトの名無しさん
2009/07/28(火) 00:38:21合ってるかどうかも分からないからでしょ
0595デフォルトの名無しさん
2009/07/28(火) 00:39:230596デフォルトの名無しさん
2009/07/28(火) 00:47:370597デフォルトの名無しさん
2009/07/28(火) 00:49:02車輪の再開発はどうのこうのって言われるとそりゃそんな中まで考えないよ
先人が悪い
0598デフォルトの名無しさん
2009/07/28(火) 00:50:280599デフォルトの名無しさん
2009/07/28(火) 00:51:39宿題出されて課題スレに投げる奴って目的見失ってるだろ。
0600デフォルトの名無しさん
2009/07/28(火) 00:53:38勉強しなきゃいけないときぐらい勉強しろ
できないならまったく関係ない業界に就職してくれ
0601デフォルトの名無しさん
2009/07/28(火) 00:54:42お前はスレ違い
このスレに来るな
0602デフォルトの名無しさん
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
0603デフォルトの名無しさん
2009/07/28(火) 00:58:05見たいな事を長々と書いて、単位もらったとかいう話を思い出した
0604デフォルトの名無しさん
2009/07/28(火) 01:03:52[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] その他の制限: 特にありません。
難しい宿題なんですが、ここの方ならできるかもしれません(--;)
よろしくお願いします!
0605デフォルトの名無しさん
2009/07/28(火) 01:08:43C++の宿題を出しておいて
「STLを使わないこと」と指示しない教師の方がアホだ。
そして、STLを使っていいにもかかわらず
STLよりも効率の悪いコードを「発明」している生徒がいたら
そいつはもっとアホだ。
0607デフォルトの名無しさん
2009/07/28(火) 01:16:36相手の意図を察して常識的な対応できるようにならないと社会人失格ですよ
0608602
2009/07/28(火) 01:18:48#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の中身を読んでこうしてやった。
自己解決しました。
解決はしてないけど
0609デフォルトの名無しさん
2009/07/28(火) 01:19:02ワインバーグ先生も確かに書いているが、
だがマヌケな教師に付き合う義理もない。
特に回答者は。
0610デフォルトの名無しさん
2009/07/28(火) 01:23:060612デフォルトの名無しさん
2009/07/28(火) 01:28:06160 200 225 100 160 200 20 100 160
配列160以上の数はそのままの値で、160未満は0として表示する。
お願いします!
0613デフォルトの名無しさん
2009/07/28(火) 01:28:470614デフォルトの名無しさん
2009/07/28(火) 01:30:07表示の見た目はお任せでいいのかね?
0615デフォルトの名無しさん
2009/07/28(火) 01:34:41#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;
}
0616デフォルトの名無しさん
2009/07/28(火) 01:35:20最近のトレンドは自決しました。
0618デフォルトの名無しさん
2009/07/28(火) 01:58:25ご丁寧にインデントに気を使ってるからでしょ
>>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;
}
0619デフォルトの名無しさん
2009/07/28(火) 11:46:08[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内に同梱しています。よろしくお願いします
0620デフォルトの名無しさん
2009/07/28(火) 14:16:46課題の載ったファイルはどれですか?
0621デフォルトの名無しさん
2009/07/28(火) 14:36:210622デフォルトの名無しさん
2009/07/28(火) 15:07:02と、代弁してみたよ
0623デフォルトの名無しさん
2009/07/28(火) 15:16:440624デフォルトの名無しさん
2009/07/28(火) 15:23:300 160 200
0 0 160
と表示するようにお願いします。
何回もすみません。
0625デフォルトの名無しさん
2009/07/28(火) 15:27:38#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;
}
0626デフォルトの名無しさん
2009/07/28(火) 15:47:22ありがとうございます
0627577
2009/07/28(火) 15:48:38ありがとうございます。
[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>しかならっていません。
0628デフォルトの名無しさん
2009/07/28(火) 15:57:01算術式の構文解析ってけっこう難しいんだな。模範解答とかあれば見てみたい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9851.txt
0629デフォルトの名無しさん
2009/07/28(火) 15:59:551.
#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;
}
0630デフォルトの名無しさん
2009/07/28(火) 16:15:513. 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;
}
0631デフォルトの名無しさん
2009/07/28(火) 16:17:44そうなんですよめんどうなんですよ。
なので俺はそっとしまっておいた。
負の値と括弧ぐらいには対応したいし、と思うとやっぱりいろいろ。
ポーランド記法からふつうの形式に変換なら楽なのにね
0632604
2009/07/28(火) 16:25:06期限を明日まで延ばしてもらいました、、、
難しいとは思いますが、どなたかよろしくお願いします。m(__;)m
0633デフォルトの名無しさん
2009/07/28(火) 16:31:300634デフォルトの名無しさん
2009/07/28(火) 16:32:130635デフォルトの名無しさん
2009/07/28(火) 16:54:36http://www1.cts.ne.jp/~clab/hsample/Sort/Sort6.html
0636デフォルトの名無しさん
2009/07/28(火) 17:50:34× 難しい
○ 面倒
0637604
2009/07/28(火) 18:02:470638デフォルトの名無しさん
2009/07/28(火) 18:13:22問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;
}
0639デフォルトの名無しさん
2009/07/28(火) 19:41:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9852.txt
0640604
2009/07/28(火) 19:52:57ありがとうございます!!
面倒なプログラミングなのにありがとうございましたm(__;)m
ほんとに助かりました、、、
0641デフォルトの名無しさん
2009/07/28(火) 22:39:22おかしいな。Cでの実装へのアンカーを貼ったはずなんだが。。。
0642デフォルトの名無しさん
2009/07/28(火) 22:41:52>>635のことかな?問題文のウンコ仕様と全然違うから無視されたんじゃね?
0643デフォルトの名無しさん
2009/07/28(火) 22:53:10これはすまんかった
0644デフォルトの名無しさん
2009/07/29(水) 00:55:400645デフォルトの名無しさん
2009/07/29(水) 02:00:49パラメータa,b,c,dを求めたいのですが、何法を用いればいいのでしょうが?
お願いします。
0646デフォルトの名無しさん
2009/07/29(水) 02:04:52http://oshiete1.goo.ne.jp/qa1417190.html
0647デフォルトの名無しさん
2009/07/29(水) 10:26:19[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] その他の制限: 特にありません。
ご迷惑をおかけしますがどうか宜しくお願いいたします。
0648デフォルトの名無しさん
2009/07/29(水) 10:48:02せめてコンパイル通るソース用意しなよ
0649デフォルトの名無しさん
2009/07/29(水) 11:02:03コンピュータの強さを10段階で選べるように
後出しじゃんけんのことか
0650デフォルトの名無しさん
2009/07/29(水) 11:04:44>>333
これで3回目のような…。
0651デフォルトの名無しさん
2009/07/29(水) 11:06:26お手間を掛けさせてすみませんm(__)m
上げ直しました。
宜しくお願い致します。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9857.c
0652デフォルトの名無しさん
2009/07/29(水) 12:29:35ありがとうございます
0653デフォルトの名無しさん
2009/07/29(水) 12:31:54>>650じゃダメなの?
0655デフォルトの名無しさん
2009/07/29(水) 12:39:49>>653
レスが遅れて済みません。
ありがとうございます!これで提出できそうですm(__)m
0656デフォルトの名無しさん
2009/07/29(水) 12:47:47なら、検証に何通りか、その入力した値を書き出して。
0657627
2009/07/29(水) 12:58:32すみません。
もう一度やってみたら出来ました。
0658デフォルトの名無しさん
2009/07/29(水) 22:53:57>>243 解答>>255(9801) 単方向連結リストの最後に順次追加し,そのリストの内容を先頭から順に標準出力に出力するプログラム extra6
>>547 解答>>553(9843) 2つの構造体を用い,方向連結リストに保存するプログラム extra8
0659デフォルトの名無しさん
2009/07/30(木) 00:40:51[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] その他の制限: (ポインタまで習っていますがポインタは最初のほうしか習っていません)
よろしくお願いします
0660デフォルトの名無しさん
2009/07/30(木) 01:38:11[2] 2つのファイルを比較し,内容が異なっている最初の行の行番号と内容を
標準出力に表示するプログラムを作成せよ。
ファイル名はコマンドライン入力により受け取ることとする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:gcc 3.4
[3.3] 言語:C
[4] 期限:2009年7月31(金)
[5] その他の制限:ポインタ履修済みです
0661デフォルトの名無しさん
2009/07/30(木) 01:48:07#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;
}
0662デフォルトの名無しさん
2009/07/30(木) 02:18:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9860.txt
0663デフォルトの名無しさん
2009/07/30(木) 03:10:03ありがたいのですがまだfputcなどを学んでいないのでちょっとわかりません…
参考にします
ありがとうございます
0664デフォルトの名無しさん
2009/07/30(木) 03:18:00fputc('*', stdout);
↓
printf("*");
でもいいよ
0665デフォルトの名無しさん
2009/07/30(木) 09:51:30迅速な解答、本当に感謝しております。
感動しました!
0666デフォルトの名無しさん
2009/07/30(木) 13:38:32[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] その他の制限:特にありません
大きなプログラムになりますが、宜しくお願いします。
0667デフォルトの名無しさん
2009/07/30(木) 15:08:03[2]>>662のコードにあるアルゴリズム以前の致命的な問題を指摘し、
修正したコードを書け。
[3]>>662のコードが実行出来る処理系ならば何でも可
[4]本日中
0668デフォルトの名無しさん
2009/07/30(木) 15:21:48一行目を削る
0669デフォルトの名無しさん
2009/07/30(木) 15:34:400670デフォルトの名無しさん
2009/07/30(木) 15:52:000671デフォルトの名無しさん
2009/07/30(木) 15:52:350672デフォルトの名無しさん
2009/07/30(木) 16:01:36#if 0と#endifを削る?
これはひどいシンタックスエラーですね
0673デフォルトの名無しさん
2009/07/30(木) 16:04:030674デフォルトの名無しさん
2009/07/30(木) 16:07:27(プリプロセッサで挟まれているとはいえ、漢字リテラルのがまずい?)
0675デフォルトの名無しさん
2009/07/30(木) 16:57:49何か勘違いしてんじゃね?
0676デフォルトの名無しさん
2009/07/30(木) 17:15:52(stdio.h に居る)
0677数学科学生S
2009/07/30(木) 17:21:05[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日
0678数学科学生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 ;
}
0679数学科学生S
2009/07/30(木) 17:28:15zcompl 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") ;
}
0680数学科学生S
2009/07/30(木) 17:31:14zcompl 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 ;
}
}
0681数学科学生S
2009/07/30(木) 17:32:43for(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") ;
}
}
0682デフォルトの名無しさん
2009/07/30(木) 17:56:160683デフォルトの名無しさん
2009/07/30(木) 18:51:45BUFSIZがstdio.hで公開されているのはある種のバグ
というか名前の付け方が安直過ぎ(今となっては,>>662の
ように無関係なところに流用し自分のプログラムで
決めるべきことをsetbuf関数作成者の決定にすり替えて
責任転嫁した上にsetbufの都合でBUFSIZを変更すること
すら許さないようなコードが多くなっており、修正はムリ
だが)
SETBUF_BUFSIZEとかにしておけば良かったし、恐らく
作成者はしたいだろうね、今でも。
0684デフォルトの名無しさん
2009/07/30(木) 21:35:39[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] その他の制限:
0685デフォルトの名無しさん
2009/07/30(木) 22:51:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9862.c
コンパイルするときはcursesライブラリのリンクを忘れずに
cc hoge.c -lcurses
0686デフォルトの名無しさん
2009/07/30(木) 23:00:48・・大掛かりなのにも関わらず解答して頂き、
心から感謝申し上げます。
精進します・・・
0687デフォルトの名無しさん
2009/07/30(木) 23:31:24#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;
}
0688デフォルトの名無しさん
2009/07/31(金) 00:24:04[2] 問題文(含コード&リンク):本文が長すぎて書き込めないので下に
分けて書き込みます
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: borland c++
[3.3] 言語: C
[4] 期限: 7月31日 15時
[5] その他の制限:なし
本気で困っています よろしくお願いします
0689688
2009/07/31(金) 00:26:32K氏は、3つのコンビニエンスストア(X店、Y店、Z店)をチェーン店に持つオーナーです。コンビ
ニエンスストアの経営において、売れ筋商品と死に筋商品の的確な把握は死活問題に直結する重要な業務
です。そこでK氏は、チェーン店に、毎日どんな商品がどれくらい売れたのかといった販売情報を、CS
Vファイルとして送るように指示していました。しかし、送られてくるデータファイルは膨大であり、そ
れらを統合して、全店を通して最も売れた商品はどれで、何が売れていないかを把握することは困難でし
た。つまり、送られてくるデータを適切に活用できないでいました。そこで、K氏はあなたに、こういっ
たことを解決するシステム(POSデータ解析システム)を開発するように頼みました。K氏は、毎日送
られてくるX、Y、Z店の個別の販売情報を合計した一括データを入手したいそうです。
0690688
2009/07/31(金) 00:28:56まず、あなたは、各店舗から送ってもらう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 個も売れなかった商品情報は載せないことにしました。
0691688
2009/07/31(金) 00:30:15K氏から、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レスも消費してすいませんでした
よろしくお願いします
0692デフォルトの名無しさん
2009/07/31(金) 00:43:390693デフォルトの名無しさん
2009/07/31(金) 00:55:360694662
2009/07/31(金) 01:04:35勉強になりました。
とりあえず自分のコードでは1行の長さがBUFSIZを超えた場合にうまく動かないので、
もしよければ手直しを。。。
0695デフォルトの名無しさん
2009/07/31(金) 01:05:37わかりにくくてすいませんm(__)m
0696デフォルトの名無しさん
2009/07/31(金) 01:06:480697デフォルトの名無しさん
2009/07/31(金) 01:56:34>>683は煩さ杉。公開ヘッダの定数値を流用することなんて
禁止する手段も意味も無いと思う。但しコードの可読性から
「流用した」とコメントを入れておいたほうがいいかも
そしてなるべく別の名称にエイリアスする。
↓こんな感じかな
#define BUFFER_SIZE BUFSIZ
/* BUFSIZはstdio.hで定義されている共通定数 */
0698デフォルトの名無しさん
2009/07/31(金) 02:10:54それをここに書き込んでね。自分も含めて
どこが「致命的」なのかわからないから…。
0699デフォルトの名無しさん
2009/07/31(金) 03:25:28BUFSIZが非常に小さい処理系(DOSとか古い組み込みOSの
一部の処理系じゃ32バイトとかそんな程度)
ではうまく動かないというよりか、ヘンに正しく動作しなが
らも思いっきり間違った答えを出して平然という
表現のほうがあってると思われ
これを致命的だと表現出来るかどうかは感覚の問題だろけど
まWindowsの上のGCCじゃ問題ないだろうが
例えばfgetsで行を読み込んだ時に終端が改行かどうかチェックし
改行じゃない場合は判定不能として処理を中断するコード
が入ってることとかが模範解答としては求められているんぢゃ?
(自分は求めてはいないけどw)
0700デフォルトの名無しさん
2009/07/31(金) 03:57:102つのファイルが同じときは、どう表示するか、
[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++;
}
0702デフォルトの名無しさん
2009/07/31(金) 04:44:400703デフォルトの名無しさん
2009/07/31(金) 04:52:000704デフォルトの名無しさん
2009/07/31(金) 07:26:12[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] 急な話ですがお願いします。コメント部分を書き換えてください。
0705デフォルトの名無しさん
2009/07/31(金) 07:48:23負数を忘れておるな?
0706687
2009/07/31(金) 08:06:32指摘ども。
>>684
修正お願いします。
b = (double)(int)(a*100+(a>=0?0.5:-0.5)) / 100;
0707デフォルトの名無しさん
2009/07/31(金) 14:23:23ステップ1およびステップ2
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9865.txt
0708707
2009/07/31(金) 14:34:27しまった、この条件を見逃してた。step2.cだけ修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9866.c
0709デフォルトの名無しさん
2009/07/31(金) 14:55:26qsort の 比較関数戻り
引き算の結果 INT_MAX 超える(= uriage 差が INT_MAX 以上ある) と
ソート方向裏返らない?
面倒でも if なり 条件演算式なりにしたほうが無難じゃないかな?
0710デフォルトの名無しさん
2009/07/31(金) 15:12:36どういう場合にINT_MAXを超えますか?
0711デフォルトの名無しさん
2009/07/31(金) 15:21:37本当にありがとうございましたm(__)m嬉しくて泣きそうです!
0712デフォルトの名無しさん
2009/07/31(金) 15:37:53ごめん 意味的には負数になることないんで超えないね…
0713デフォルトの名無しさん
2009/07/31(金) 17:10:20>面倒でも if なり 条件演算式なりにしたほうが無難じゃないかな?
全面的に同意。俺707だけどw
>>711
わりい、>>708の修正版でランク付けする部分が完全にバグってた
まだ提出してなければ適当にデバッグしてくだされ
0714709
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以上の隔たりがあるときにね
0715デフォルトの名無しさん
2009/08/01(土) 13:16:54[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] その他の制限: よろしくお願いします。
0716デフォルトの名無しさん
2009/08/01(土) 14:15:46[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 正午までにメール
0717デフォルトの名無しさん
2009/08/01(土) 14:37:26問題の意味がわからないが、こういうことだろうか
#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;
}
0718デフォルトの名無しさん
2009/08/01(土) 14:56:33:6: error: `main' must return `int'
0719デフォルトの名無しさん
2009/08/01(土) 14:58:12void main() → int main(void)
関数の最後にreturn 0;
0720デフォルトの名無しさん
2009/08/01(土) 16:12:53ちょっと意味がわからん
0721デフォルトの名無しさん
2009/08/01(土) 16:19:400722721
2009/08/01(土) 16:34:57#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;
}
0723sage
2009/08/01(土) 17:53:19[2] 問題文(含コード&リンク):
体格判定プログラム(身長,体重からBMIなどを計算
し,「メタボ予備軍です」などのメッセージを出力する.)
• 占いプログラム(日付などを入力すると、それらを用い
た計算を行い,今日の運勢,ラッキーカラーなどを出力
する)など
• 会話[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 8月5日
[5] その他の制限:int以外の変数、配列、関数の使用
0724デフォルトの名無しさん
2009/08/01(土) 18:28:400725デフォルトの名無しさん
2009/08/01(土) 19:10:20int以外の
・変数
・配列
・関数
の使用
ではないかとエスパー。
0726デフォルトの名無しさん
2009/08/01(土) 19:49:310727デフォルトの名無しさん
2009/08/01(土) 19:58:00double使っちゃいけないって本当?
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;
}
0728デフォルトの名無しさん
2009/08/01(土) 19:58:590729デフォルトの名無しさん
2009/08/01(土) 20:05:28訂正
int以外の変数をしている
scanf・for・配列・関数を使用
for文の中にforを使用
3つ以上のcaseを含むswitchを使用している
関数の再起呼び出し
0730デフォルトの名無しさん
2009/08/01(土) 20:12:38・後から問題に付け足しするのはコラー!!です。
付け足しは作業を無駄にしがちです。
#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;
}
0731デフォルトの名無しさん
2009/08/01(土) 20:26:150732デフォルトの名無しさん
2009/08/01(土) 20:26:46#include<stdio.h>
int main(void){
int moji;
printf("今日はいい天気ですね\n>");
fflush(stdout);
while((moji=getc(stdin))!=EOF && moji!='\n');
printf("うっせーハゲ\n");
return 0;
}
0733デフォルトの名無しさん
2009/08/01(土) 20:58:09ちゃんと分かるように書け
int以外の変数をしている といいのかいけないのかどっちだ?
scanf・for・配列・関数を使用 するとどうなんだ?
for文の中にforを使用 すると?
3つ以上のcaseを含むswitchを使用している ?
関数の再起呼び出し ?
BMIの計算方法は?「メタボ予備軍です」などのメッセージを出力するときの閾値とメッセージは?
占いプログラムのちゃんとした仕様は?
会話って何?
0734デフォルトの名無しさん
2009/08/01(土) 21:10:03ここは宿題スレだからさ
0735デフォルトの名無しさん
2009/08/01(土) 21:50:40ってちょっとやってみたけど意外にムズいな
0736デフォルトの名無しさん
2009/08/01(土) 22:34:05はあ?
0737デフォルトの名無しさん
2009/08/01(土) 23:44:00[2] 問題文(含コード&リンク):
キーボードから整数をひとつ入力し,その数が素数であるかどうかを判定するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語: C
[4] 期限: 09年08月03日
[5] その他の制限:
0738デフォルトの名無しさん
2009/08/01(土) 23:52:56#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;
}
0739デフォルトの名無しさん
2009/08/01(土) 23:53:25仕様がわからないからな
0740デフォルトの名無しさん
2009/08/02(日) 00:04:030741デフォルトの名無しさん
2009/08/02(日) 00:42:43>>729を全部みたしているものを書いてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9867.txt
>>733
馬鹿相手にむきになると馬鹿がうつるぞ
0742デフォルトの名無しさん
2009/08/02(日) 00:58:44コンパイルはしたけど実行はしてない。
#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;
}
0743デフォルトの名無しさん
2009/08/02(日) 00:59:03[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] その他の制限:特になし。
0744デフォルトの名無しさん
2009/08/02(日) 01:05:31#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;
}
0745デフォルトの名無しさん
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番)
・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・ ・ ・ ・
ですよろしくお願いします。
0746745
2009/08/02(日) 01:53:04[1] 授業単元:プログラミング
[2]上記
[3] 環境
[3.1] OS: (Red Hat Linux)
[3.2] コンパイラ名とバージョン: (xemacs)
[3.3] 言語: (C)
[4] 期限: ([2009年8月3日まで])
[5] その他の制限: (for文と配列でお願いします。)
0747デフォルトの名無しさん
2009/08/02(日) 06:36:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9869.c
0748デフォルトの名無しさん
2009/08/02(日) 10:18:34>>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を使用してください
関数の再起呼び出しをしてください
0749デフォルトの名無しさん
2009/08/02(日) 11:31:18× 再起
○ 再帰
0750デフォルトの名無しさん
2009/08/02(日) 13:41:070751745
2009/08/02(日) 15:44:48問題文に記載し忘れていて大変申し訳ないのですが、入力データは任意の値
なので、その場合どのような文になりますか?
0752デフォルトの名無しさん
2009/08/02(日) 16:04:24[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] その他の制限:特になし
お願いします
0753デフォルトの名無しさん
2009/08/02(日) 16:46:15変換指定子%〜がOSによっては文字化けすることがあるんです
0754デフォルトの名無しさん
2009/08/02(日) 18:17:59どうかいたらどうばけた
0755デフォルトの名無しさん
2009/08/02(日) 18:37:10printf("%5s%Akko$4s〜
で、%AkkoのAkkoが化けるときと化けないときがあります
0756デフォルトの名無しさん
2009/08/02(日) 18:39:56%Aは十六進浮動小数点変換を意味する。%Aが使えない環境でも%を出力するという保証はない。
printf系で%を出力させるには書式文字列で%%を指定すればいい。
0757デフォルトの名無しさん
2009/08/02(日) 18:44:34間違えました、すみません。Akkoのうち、Aが%Aと認識して
Aの部分だけ化けるときと化けないときがあるんです
OSで違いが出ているんです
0758デフォルトの名無しさん
2009/08/02(日) 19:02:17>>757はまだ不満であるか
0759デフォルトの名無しさん
2009/08/02(日) 19:08:07[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] その他の制限:特にないです
宜しくお願いします
0760デフォルトの名無しさん
2009/08/02(日) 19:46:31すみません、%Aが使えない環境ってどういうのでしょうか?
0761デフォルトの名無しさん
2009/08/02(日) 19:48:04% を出力したければ %% と書けばいい
それだけの話じゃないの?
0762デフォルトの名無しさん
2009/08/02(日) 19:57:52ごめんなさい。%は不要なんです。Akkoと表示したいのに、Akkoの前の%が邪魔で
Aが化けるときがあるんです。
0763デフォルトの名無しさん
2009/08/02(日) 20:03:48何を言いたいのかさっぱり分からない
邪魔なだけなら消せばいい
printf("%5s%%Akko$4s〜\n", "hoge");
↓
hoge%Akko$4s〜
printf("%5sAkko$4s〜\n", "hoge");
↓
hogeAkko$4s〜
0764デフォルトの名無しさん
2009/08/02(日) 20:04:490765デフォルトの名無しさん
2009/08/02(日) 20:14:100766デフォルトの名無しさん
2009/08/02(日) 20:32:54http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
0767デフォルトの名無しさん
2009/08/02(日) 20:57:150768デフォルトの名無しさん
2009/08/02(日) 21:01:41OSによってprintfの挙動が違うとか言ってるけれど、処理系の実装に差があることが分かってないのが真相てことかね?
だったらOSとコンパイラ晒せば解決だな
0769デフォルトの名無しさん
2009/08/02(日) 21:11:20の実行結果
http://codepad.org/PSbQtmav
0770デフォルトの名無しさん
2009/08/02(日) 21:21:01OSはAIXです。バージョンによって化けます
0771デフォルトの名無しさん
2009/08/02(日) 22:02:26#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;
}
0772デフォルトの名無しさん
2009/08/02(日) 23:14:113ヶ所修正したら動いた。(VC++2005)
修正前 → 修正後
while(r<l) → while(l<r)
m = (l+r)/2; → m = (l+r)/2+1;
r = m; → r = m-1;
0773デフォルトの名無しさん
2009/08/02(日) 23:42:25max_size = 0;
for (bit = 0x80000000; bit > 0; bit >>= 1) {
mem = malloc(max_size | bit);
if (mem != NULL) {
free(mem);
max_size |= bit;
}
}
0774デフォルトの名無しさん
2009/08/02(日) 23:52:38[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] その他の制限:特になし
よろしくお願いします。
0775デフォルトの名無しさん
2009/08/03(月) 00:15:33[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言語ではありませんが、誰が分かる人がいるなら
よろしくお願いします。
0776デフォルトの名無しさん
2009/08/03(月) 00:20:12[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] その他の制限:特になし
よろしくお願いします。
0777デフォルトの名無しさん
2009/08/03(月) 01:48:32[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] その他の制限:特になし
どうかよろしくお願いします
0778デフォルトの名無しさん
2009/08/03(月) 02:17:59printf("%debug")と書いたら化けました。なぜですか?(ちなみに%は出力したくないです)
と本質的に変わらんのはわかるよな?
0779デフォルトの名無しさん
2009/08/03(月) 04:10:43http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9874.cpp
0780デフォルトの名無しさん
2009/08/03(月) 05:23:541.
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); }
0781デフォルトの名無しさん
2009/08/03(月) 05:37:40ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9875.c
0782デフォルトの名無しさん
2009/08/03(月) 10:13:29#include <stdio.h>
#include <stdlib.h>
int main(){
int max_size, bit, *mem; // 追加
//<---->
return 0;
}
0783デフォルトの名無しさん
2009/08/03(月) 10:19:03[2] 2ちゃんねるに書き込むプログラムを作れ
http://www1.axfc.net/uploader/Sc/so/24023.zip
[3] 環境
[3.1] Windows
[3.2] BCC55
[3.3] C++
[4] 無期限
0784デフォルトの名無しさん
2009/08/03(月) 15:02:42なつだなあ
0785デフォルトの名無しさん
2009/08/03(月) 15:40:23[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] その他の制限:コメント部分を変更して実行できる形にして欲しいです
0786デフォルトの名無しさん
2009/08/03(月) 17:38:15[2] 問題文(含コード&リンク):台形公式により関数y=x^2とx軸によって挟まれる部分のx=0〜x=8までの範囲の面積を求めよ。
分割は4で計算せよ。
[3] 環境
[3.1] OS: ソラリス
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (C)
[4] 期限: ( [無期限])
[5] その他の制限: (無し)
お願いします。
0787デフォルトの名無しさん
2009/08/03(月) 19:51:01#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;
}
0788デフォルトの名無しさん
2009/08/03(月) 21:53:14[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言語内の円周率の定数をそのまま使うのは、おそらくダメだと思います。
よろしくお願いします。
0789デフォルトの名無しさん
2009/08/03(月) 22:00:37過去にもπを多桁出力させる宿題にはたくさん解答してきましたが、N進法ですか?これはこまった。もう狙い撃ちされてますねえ。
0790デフォルトの名無しさん
2009/08/03(月) 22:04:03マチンの公式でも使って多倍長計算するしかないか・・・
0791デフォルトの名無しさん
2009/08/04(火) 02:05:43上の桁から計算していかなきゃいけないような気がするんだが
0792デフォルトの名無しさん
2009/08/04(火) 02:08:260793デフォルトの名無しさん
2009/08/04(火) 02:52:180794デフォルトの名無しさん
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] その他の制限: 特になし
よろしくおねがいします
0795デフォルトの名無しさん
2009/08/04(火) 08:10:56・問題文は、出題されたまま全文を書いてください。
0796794
2009/08/04(火) 08:27:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9881.txt
0797デフォルトの名無しさん
2009/08/04(火) 08:39:22もうどうにでもなれ
/*
* 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;
0798デフォルトの名無しさん
2009/08/04(火) 08:45:20ありがとうございます
0799デフォルトの名無しさん
2009/08/04(火) 08:49:48グローバル変数だから 0x00 で初期化されているから
多くの環境で NULL と等価な扱いになると思う
0800デフォルトの名無しさん
2009/08/04(火) 10:01:21http://www.geocities.jp/civiltool/index/bcc/bcc.html
↑参考に進めていたら
edit autoexec.batと入力しても「バッチファイルとして認識されない」とエラーでます
どうすればコンパイルできるんですか
0801デフォルトの名無しさん
2009/08/04(火) 10:25:37適当なエディタで編集すればいける。
エディタは使えるよな?
C:\>EDLIN.EXE AUTOEXEC.BAT
EDLIN は使えるよな?
もしくは、
C:\>NOTEPAD.EXE AUTOEXEC.BAT
0803デフォルトの名無しさん
2009/08/04(火) 12:46:18[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] その他の制限:特にないです
0804デフォルトの名無しさん
2009/08/04(火) 13:27:56教員の役職は何を見て決めればいいの?
0805デフォルトの名無しさん
2009/08/04(火) 13:57:08役職名は「○○教授」だけでいいようで
区別はしなくてもかまわないみたいです。
0806デフォルトの名無しさん
2009/08/04(火) 17:12:12[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>は使わないようにお願いします。
出来れば色んな方の作品があることが望ましいです。
0807デフォルトの名無しさん
2009/08/04(火) 19:00:53#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);
}
0808デフォルトの名無しさん
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] その他の制限: なし
お願いします。
0809デフォルトの名無しさん
2009/08/04(火) 20:17:43ほー、XP にもedlin が入っていたなんて今の今までしらなかった。感動した。
0810デフォルトの名無しさん
2009/08/04(火) 20:22:50たぶん>>786
0811デフォルトの名無しさん
2009/08/05(水) 00:54:58[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] その他の制限: ポインタまで
0812デフォルトの名無しさん
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] その他の制限: ポインタまで
よろしくお願いします
0813デフォルトの名無しさん
2009/08/05(水) 01:05:10double sin_degree(double degree)
{
double theta;
theta=(degree-90)*M_PI/180.0;
return cos(theta);
}
0814デフォルトの名無しさん
2009/08/05(水) 01:25:34http://www1.axfc.net/uploader/Sc/so/24580.zip
main()は適当に直して下さい。
0815デフォルトの名無しさん
2009/08/05(水) 02:09:17PCやITなら兎も角,他所の世界で通用するとは限らないぞw
0816デフォルトの名無しさん
2009/08/05(水) 02:11:590817デフォルトの名無しさん
2009/08/05(水) 04:04:47ありがとうございます
とても助かりました
0818デフォルトの名無しさん
2009/08/05(水) 09:46:46>>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;
}
0819デフォルトの名無しさん
2009/08/05(水) 12:35:11>>813のほうがよほどスマートだな
0820デフォルトの名無しさん
2009/08/05(水) 12:38:470821デフォルトの名無しさん
2009/08/05(水) 12:41:03double sin_degree(int degree)
{
double[360] table = {,/*エクセル辺りで作る*/,};
degree %= 360;
return table[degree];
}
テーブルサイズは90にしてもいい
0822デフォルトの名無しさん
2009/08/05(水) 12:42:18double sin_degree(int degree)
{
double table[360] = {,/*エクセル辺りで作る*/,};
degree %= 360;
return table[degree];
}
0823デフォルトの名無しさん
2009/08/05(水) 12:44:16負の値用に while(degree < 0) degree+=360; も入れとこうぜ
#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));
}
0825デフォルトの名無しさん
2009/08/05(水) 12:47:24表は90度までにしたいな
0826デフォルトの名無しさん
2009/08/05(水) 12:48:15math.hで宣言されているsin関数を使用せずに
他のと違って確実却下
0827デフォルトの名無しさん
2009/08/05(水) 12:51:23なんとなくこれを思い出した
0828デフォルトの名無しさん
2009/08/05(水) 13:04:280829デフォルトの名無しさん
2009/08/05(水) 13:08:40指定されてるのは引数と関数名だけ。
void sin_degree(double degree) { }
で満点もらえてもおかしくない。
0830デフォルトの名無しさん
2009/08/05(水) 14:02:54一休さんかよw
0831デフォルトの名無しさん
2009/08/05(水) 14:41:51教官からVOIDと書かれて返されたりして
0832デフォルトの名無しさん
2009/08/05(水) 14:46:28適当に改行いれて読みやすくして。
#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;
}
0833デフォルトの名無しさん
2009/08/05(水) 16:15:04>>807
これってどういったプログラムなんでしょうか?
よくわからない結果がでたんですが・・・
0834デフォルトの名無しさん
2009/08/05(水) 16:28:35int main(int argc, char **argv) { puts(argv[0]); return 0; }
と一緒
0835デフォルトの名無しさん
2009/08/05(水) 17:59:34適当に文字列と一緒に起動してみろ
0836デフォルトの名無しさん
2009/08/05(水) 18:00:57いやいや argv[0] だから
0837デフォルトの名無しさん
2009/08/05(水) 18:01:250838デフォルトの名無しさん
2009/08/05(水) 18:05:100839デフォルトの名無しさん
2009/08/05(水) 18:11:37で?
0840デフォルトの名無しさん
2009/08/05(水) 18:19:39それぞれもう少し詳細を頼む
0841デフォルトの名無しさん
2009/08/05(水) 18:21:36> 再帰呼出がわかっていない
これだけ全く意味が分からない
0842デフォルトの名無しさん
2009/08/05(水) 18:23:19mainを再帰で呼び出すソースは初めてみたなw
0843デフォルトの名無しさん
2009/08/05(水) 18:27:44argv[argc] == NULL だっけ? 鼻から悪魔アドレスだっけ?
0844デフォルトの名無しさん
2009/08/05(水) 18:28:52コードゴルフスレへいけばポピュラーなんだけどね
0845デフォルトの名無しさん
2009/08/05(水) 18:30:21argv[argc]なんて見てないよ
0846デフォルトの名無しさん
2009/08/05(水) 18:32:23あースマン
再帰でargvを総なめ巡回してるのと勘違いしたたたたた
0847デフォルトの名無しさん
2009/08/05(水) 19:01:38main()は最後に数値として何を返すかわからない
if (strlen(argv[0]) < 1)はif (*argv[0] == '\0')で良い
main()の再帰呼出、int main(int, char**)はintを返していない
0848デフォルトの名無しさん
2009/08/05(水) 19:02:140849デフォルトの名無しさん
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);
}
0850デフォルトの名無しさん
2009/08/05(水) 22:17:021
ttp://www1.axfc.net/uploader/Sc/so/24774.txt
0851デフォルトの名無しさん
2009/08/05(水) 23:25:48なんかどっちもどっちなんでやっちゃっていんじゃないかと思った。俺はやらないが。
0852デフォルトの名無しさん
2009/08/05(水) 23:28:090853デフォルトの名無しさん
2009/08/06(木) 05:36:56[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
0854デフォルトの名無しさん
2009/08/06(木) 13:21:27一問目だけやってみた。
効率から言えば配列は0から使ったほうが良いんだが、あえてやらなかった。
関数をいくつか追加しているのでそっちもよろしく。
あと、動作は保障しない。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9885.zip
0855854
2009/08/06(木) 13:55:42一問目から検索関数追加でできたのでついでにアップ。
すんごい大雑把に作ってるので動作は保障しない。
そんな感じで。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9886.zip
0856デフォルトの名無しさん
2009/08/06(木) 14:11:49addListの前にfindListを入れて、!=NULLでcontinueしたらどうかな?
0857デフォルトの名無しさん
2009/08/06(木) 14:27:34大変助かります!
>>856 さん 余裕があれば少し試してみます!
0858デフォルトの名無しさん
2009/08/06(木) 15:20:18[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] その他の制限: 特になし
よろしくお願いします。
0859デフォルトの名無しさん
2009/08/06(木) 16:19:430860デフォルトの名無しさん
2009/08/06(木) 16:30:20暇つぶしにメール送ってみたんじゃない?
そしたらとるしまとか言われたのでつい書き込みたくなったと。たぶん。
0861デフォルトの名無しさん
2009/08/06(木) 16:30:23strcat(vs,".dem");
printf("%s",vs);
rename("pov.dem", vs);
0862デフォルトの名無しさん
2009/08/06(木) 17:29:25夏休みだからしかたない
0863デフォルトの名無しさん
2009/08/06(木) 20:31:49ありがとうございます。
0864851
2009/08/07(金) 00:13:53何がしたいか本心を言えば、通報したあとで806に真剣に取り組みたかった。
「出来れば色んな方の作品があることが望ましいです。」に挑発されたともいう。
あと夏休み関係ないっす。
0865デフォルトの名無しさん
2009/08/07(金) 00:26:48そういうスレでやれ
0866デフォルトの名無しさん
2009/08/07(金) 00:35:05あとそんな言葉で挑発されるってのもどうかと思うぜ
0867デフォルトの名無しさん
2009/08/07(金) 01:14:010868デフォルトの名無しさん
2009/08/07(金) 01:58:23,.ィ炙ヲ�i≠┴⇒弍j込ス>。
. ,ィ升ヲナ'´ `゙'<弖心、
. ;夕フア´ \ホi心.
んfiУ ▽ij∧
从j'Y ∨iハ
. 斤W �kい
|友カ }ソ川
. い叭 仄ガ
. Wi从 从ノリ
. ∀t△ ∧fリ/
゙マじへ、 /リiУ
\夊i�d、_ ,.イ!刋/
`マ才i「≧ェ。。.__。っ夭テ少'゚
`゚'' ミあらぶる鷹=‐'´
0869デフォルトの名無しさん
2009/08/07(金) 18:10:06宿題がすべてできました。すごいパワーです。
0870デフォルトの名無しさん
2009/08/08(土) 02:04:50まあ、夏休み遊びほうけてるだけだろうけど。
0871りん
2009/08/08(土) 10:25:59[2] 問題文(含コード&リンク):
あとから書きます><
[3] 環境
[3.1] OS:Windows
[3.2] 今C++Dロードしました
[3.3] 言語: C++ 多分。。。
[4] 期限:今日の11時半まで
[5] その他の制限:なし
どなたかよろしくお願いします><。
0872りん
2009/08/08(土) 10:27:20#pragma warning ( disable: 4996 )
#include <stdio.h>
////////////////////////////////////////////////////////////////////////
//
// 月と日を入力させて、その星座を表示するプログラムを作成すること
//
// void main(void)
{
int month;
int day;
printf("誕生日を入力してください\n");
printf("月:");
// scanf()
printf("日:");
// scanf()
// 月日より星座を判定して、表示
// あなたの星座は、XX座です
}
0873デフォルトの名無しさん
2009/08/08(土) 11:04:41main(){
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");
}
0874りん
2009/08/08(土) 11:26:05#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("有効な日付です");
}
これはどうですか?><。
0875デフォルトの名無しさん
2009/08/08(土) 11:51:110876デフォルトの名無しさん
2009/08/08(土) 11:51:420877デフォルトの名無しさん
2009/08/08(土) 13:58:050878デフォルトの名無しさん
2009/08/08(土) 20:49:080879デフォルトの名無しさん
2009/08/08(土) 21:11:15俺は本気で間違えたのであしからず!!
0880デフォルトの名無しさん
2009/08/09(日) 02:37:11if (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);
}
0881デフォルトの名無しさん
2009/08/09(日) 02:44:17if (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);
0882デフォルトの名無しさん
2009/08/09(日) 02:45:10if (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);
だね
0883デフォルトの名無しさん
2009/08/09(日) 09:41:250884デフォルトの名無しさん
2009/08/09(日) 10:17:03if (month == 2) days_month[month - 1] += isLeapYear(year);
の方が好きだな
if( month != 2 && day <= days_month[month-1] ||
month == 2 && day <= days_month[month-1] + isLeapYear(year) )
printf("有効な日付です");
0886デフォルトの名無しさん
2009/08/09(日) 15:36:38結局ものに出来なかったのですね。わかります。
0887デフォルトの名無しさん
2009/08/09(日) 16:41:16[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] その他の制限:かなりの初心者なのでできるだけ簡単な構造でお願いします。
0888デフォルトの名無しさん
2009/08/09(日) 17:18:17見た目は簡素にしてみました。動作は保障しない。
#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;
}
0889デフォルトの名無しさん
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;
}
0890888
2009/08/09(日) 17:27:10qsort(str,Elements,ArrayLen,comp);
↓
qsort(str,Elements,sizeof(char)*ArrayLen,comp);
あんま変わらんけど、だいじなことなので。
0891デフォルトの名無しさん
2009/08/09(日) 17:52:21#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;
}
0892デフォルトの名無しさん
2009/08/09(日) 17:55:50#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;
}
0893デフォルトの名無しさん
2009/08/09(日) 18:08:35ありがとうございました
参考にさせてもらいました
0894デフォルトの名無しさん
2009/08/09(日) 19:14:16[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になってしまいます。
0895デフォルトの名無しさん
2009/08/09(日) 19:20:400896デフォルトの名無しさん
2009/08/09(日) 19:34:0315歳の以上と以下で条件被っとるやん
int price( int age, int s)
{
if(age<=5) return 0;
if(age<=15) return 100;
if(s==FEMALE) return 150;
return 200;
}
0897894
2009/08/09(日) 19:56:01あの、自分で
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;
}
と書いてみたのですが、どこがおかしいのでしょうか?何度もすみません!
0898デフォルトの名無しさん
2009/08/09(日) 20:03:41return result=price;
でおk
0899894
2009/08/09(日) 20:20:11ありがとうございます!
0900デフォルトの名無しさん
2009/08/09(日) 20:37:46return price;
でもいい
0901デフォルトの名無しさん
2009/08/09(日) 21:04:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9890.c
0903807
2009/08/10(月) 00:38:03#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;
}
0904このプログラム作ってください!( >_ < )
2009/08/11(火) 04:45:52(= 勝ち数 / ( 勝ち数 + 負け数) )を計算するプログラムである。
勝ち数、負け数に負の値が入力された場合は入力をやり直させ、
勝ち数+負け数が0 の場合は勝率計算が不能であることを表示する。
ただし、このプログラムはバグを含んでおり正しく動作しない。
デバックを行って正常動作するようにせよ。
修正したソースプログラムと実行結果を示すこと。
0905デフォルトの名無しさん
2009/08/11(火) 05:03:24相変わらず以下のプログラムが秘密なままだしテンプレにも従ってないぜ
0906このプログラム作ってください!( >_ < )
2009/08/11(火) 05:20:08int 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);
}
0907このプログラム作ってください!( >_ < )
2009/08/11(火) 05:21:13プログラムを作成せよ。円周率の小数点以下桁数は任意に決めてもよい。
ただし、入力値に以下の処理を加えること。
・半径に負の値が入力された場合、入力をやり直させる。
・中心角の入力値は以下のように処理する。
i. 0〜359の場合はそのまま使う。
ii. 負の値の場合、0か正の数になるまで繰り返し360を
加えた値を中心角とする。
(例: -30 -> 330, -450 -> 270 )
iii.360以上の場合、360で割った剰余を中心角とする。
3.正の整数を繰り返し入力し、0 か負の数が入力されたらそこで入力を打ち切り、
そこまでの合計と平均を計算するプログラムを作成せよ。
最後に入力した負の数は計算に入れないようにせよ。
また、平均は小数点以下まで算出せよ。
すいません、明日までにお願いできますか?
0908デフォルトの名無しさん
2009/08/11(火) 05:23:290909このプログラム作ってください!( >_ < )
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] その他の制限:とくにないです
0910デフォルトの名無しさん
2009/08/11(火) 10:34:20はマルチする気まんまんなんで相手にしないように。
0911デフォルトの名無しさん
2009/08/11(火) 11:22:592.
#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;
}
0912デフォルトの名無しさん
2009/08/11(火) 11:32:533.
#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;
}
0913デフォルトの名無しさん
2009/08/11(火) 11:41:05#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;
}
0914デフォルトの名無しさん
2009/08/11(火) 11:48:11int 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です。
0915デフォルトの名無しさん
2009/08/12(水) 22:02:16[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関数が長くなってしまう場合は関数化してください。
よろしくお願いします。
0916デフォルトの名無しさん
2009/08/12(水) 22:17:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9895.txt
0917デフォルトの名無しさん
2009/08/12(水) 22:24:500918デフォルトの名無しさん
2009/08/12(水) 22:30:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9896.txt
関数化したから>>916は消したよ
0919デフォルトの名無しさん
2009/08/13(木) 00:32:16これqsort()を利用しちゃだめなのかな?
--------------------
#include <stdlib.h>
(略)
/*ソートする関数を使い、文字列を昇順にソート*/
qsort(string, 5, 10, strcmp);
(略)
--------------------
もし5とか10の数字を生で書くのがいやなら
qsort(string, sizeof(string)/sizeof(string[0]), sizeof(string[0]), strcmp);
0920デフォルトの名無しさん
2009/08/13(木) 00:52:36qsort()の引数にstrcmp()をそのままってのはどうなのかね。
少なくとも俺の環境では無理なんだけど。
キャストでコンパイルはできるけど期待通りには動かない。
0921デフォルトの名無しさん
2009/08/13(木) 00:54:50環境とソースコードを示すべきだ
気になって眠れないじゃないか
0922デフォルトの名無しさん
2009/08/13(木) 01:03:21環境は 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
0923デフォルトの名無しさん
2009/08/13(木) 01:07:50#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
0924デフォルトの名無しさん
2009/08/13(木) 01:09:17char *s[]
の部分を
char s[][10]
に変えてくれないか?
0925デフォルトの名無しさん
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;
}
0926デフォルトの名無しさん
2009/08/13(木) 01:12:580927デフォルトの名無しさん
2009/08/13(木) 01:13:11strcmp を使ってポインタの大小を比較しているからだと思うよ
0928デフォルトの名無しさん
2009/08/13(木) 01:19:27よく考えると危ないな
文字列は'\0'でターミネートされる決まりになってるけど
ポインタはそうでないから下手をすると暴走する危険もあるわけか
0929デフォルトの名無しさん
2009/08/13(木) 01:38:04動作しない
0930デフォルトの名無しさん
2009/08/13(木) 01:40:520931デフォルトの名無しさん
2009/08/13(木) 02:15:27>>928
なにか勘違いをしている
0932デフォルトの名無しさん
2009/08/13(木) 02:27:36文字列とみなして比較するって事でしょ?
0933デフォルトの名無しさん
2009/08/13(木) 02:29:250934デフォルトの名無しさん
2009/08/13(木) 02:32:09*は一個外れて*になってるよ
0935デフォルトの名無しさん
2009/08/13(木) 02:33:490936デフォルトの名無しさん
2009/08/13(木) 02:37:170937デフォルトの名無しさん
2009/08/13(木) 02:41:0680000102->"int"
80000106->"main"
8000010b->"void"
とかになってて、この80000102とか80000106を文字列と
見なしてqsort掛けてるわけで
大抵のCコンパイラはコンパイルする時に文字列が出て来た
順番にアドレスをセットするから初めからソートされてる形に
なってて、qsort()しても結果は変わらないという
0938デフォルトの名無しさん
2009/08/13(木) 02:42:22char *s1=&"int"; //Cではリテラルは変更不能な初期化済ブロックとなる
char *s2=&"main";
..........
として
char *(s[])={s1,s2,....};
とすべき
これではメンドイし貴重なな名前空間の浪費なので
char *(s[])={"int","main",....};
という略記法が認容されるようになったと考えるのが自然
0939デフォルトの名無しさん
2009/08/13(木) 02:42:36そう簡単にはいかないか
どちらにしてもたまたま動いているだけで結果はおかしなものになる
0940デフォルトの名無しさん
2009/08/13(木) 02:46:260941デフォルトの名無しさん
2009/08/13(木) 02:47:48キューソート以外ありえないわ
0942デフォルトの名無しさん
2009/08/13(木) 02:58:150943デフォルトの名無しさん
2009/08/13(木) 03:01:31認識しなかったので、quicksortにすると"quicks"と見なされてしまう
それよりも"qsort"の方がいいと思ったんだろう
これなんかはまだいい方でstring.h系の関数の名付け方は
ひどいものがあると思う
strstrとかstrcspnとか関数名を言われてパッと何をする関数なのか
わからんし
0944デフォルトの名無しさん
2009/08/13(木) 03:06:48名付けで一番気になるのはO_CREATだなあ
0945デフォルトの名無しさん
2009/08/13(木) 03:11:187文字でも実質的に6文字までしか認識しない処理系でも
問題ないようにしてたんだろう
ANSI-Cになってからようやく32文字まで認識するようになった
しかし古い標準関数の名前はそのままそっくり受け継いだ
俺が気になっているのは creat() だよな
0946デフォルトの名無しさん
2009/08/13(木) 11:26:27charへのポインタの配列とcharの配列の配列の違いはp.139,
qsortにstrcmpを渡す例はp.145に載ってた
付録抜いたら230ページなのに論点のカバー率半端ないっす
0947デフォルトの名無しさん
2009/08/13(木) 11:44:57まあ今回のqsort()の引数にstrcmp()を渡す話には
charへのポインタの配列とcharの配列の配列の違いは
関係ないけどね
0948デフォルトの名無しさん
2009/08/13(木) 12:44:17え、そうなの?
char *s[] だとstrcmpがポインタの大小を比較してしまうのに対し
char s[][ELEM_SIZE] だと文字列の大小を比較することになるから
charへのポインタの配列とcharの配列の配列の違いが肝心だと思ったんだけど
0949デフォルトの名無しさん
2009/08/13(木) 12:51:28>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
これを見て分からなかったら要勉強。
0950デフォルトの名無しさん
2009/08/13(木) 12:53:05分かんない
0951デフォルトの名無しさん
2009/08/13(木) 12:57:06何が分からないのかが分からない
0953948
2009/08/13(木) 13:08:59>>925の場合、strcmpに渡るのはchar **なので、strcmpはポインタを左から1バイトずつ比較
>>923の場合、*((char **)a)、つまりchar *なので、strcmpは文字列を比較
0954デフォルトの名無しさん
2009/08/13(木) 13:15:010955デフォルトの名無しさん
2009/08/13(木) 13:18:54&a==a;
char *b;
&b!=b;
これだけの話
0956デフォルトの名無しさん
2009/08/13(木) 13:27:45[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] その他の制限:なし
お願いします。
0957デフォルトの名無しさん
2009/08/13(木) 13:28:45この話題は【とりあえず質問スレ】レベルの話題ではないかと。
もしかすると【ちょっと深い質問】スレの話題になるかも
知れないが「浅い!」と却下されるか。
【クィックヘルプ】スレじゃIDEのデバッガ使えとケンも
ホロロだろうな
0958デフォルトの名無しさん
2009/08/13(木) 14:07:57#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;
}
0959デフォルトの名無しさん
2009/08/13(木) 14:16:45階乗の逆数の和だよ。
0960デフォルトの名無しさん
2009/08/13(木) 14:18:540961デフォルトの名無しさん
2009/08/13(木) 14:22:210962デフォルトの名無しさん
2009/08/13(木) 14:44:310963デフォルトの名無しさん
2009/08/13(木) 15:38:350964デフォルトの名無しさん
2009/08/13(木) 16:40:26[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言語の基本的なことは大方学びました。
よろしくお願いいたします。
0965デフォルトの名無しさん
2009/08/13(木) 18:21:48結構ごちゃごちゃしてしまった
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9899.txt
0966デフォルトの名無しさん
2009/08/13(木) 19:30:05即レスありがとうございます!助かりました。
0967806
2009/08/14(金) 01:38:43ですが>>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)ソースコードには「何をしようとしている」プログラムなのか等がわかるように適宜コメントを付ける。
よろしくお願いします。
0968デフォルトの名無しさん
2009/08/14(金) 01:43:34これ、専ブラ経由でリファラ拾われたらncc-1701の人にバレちゃうけど平気なの?
0969デフォルトの名無しさん
2009/08/14(金) 06:34:280970デフォルトの名無しさん
2009/08/14(金) 07:04:09大丈夫じゃね?
受講生のみの閲覧と制限してないんだし
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
0972デフォルトの名無しさん
2009/08/14(金) 09:12:18int main(void)
{
int a;
int i;
for (i=0;i<10;i++){
a[i]=9999;
printf("%d\n",a);
}
fflush(stdin);
getchar();
return 0;
}
無効な間接参照って出るけどなんで??
0973デフォルトの名無しさん
2009/08/14(金) 09:16:52a[i]=9999;
とかなってるの?
0974デフォルトの名無しさん
2009/08/14(金) 09:58:33fflush(stdin);
はやめなされ
動作が標準で定義されていない
VC特有の機能で入力バッファをクリアするのは知ってるけど
0975デフォルトの名無しさん
2009/08/14(金) 10:00:29ハッキングの練習でもしてるのかw
0976デフォルトの名無しさん
2009/08/14(金) 10:37:39他に画面終了させない方法あるの?
0977デフォルトの名無しさん
2009/08/14(金) 10:41:01_getch()とかあるだろう
趣味でやってるならともかく、将来グラマになりたいのなら
悪い癖は今の内に取っておく事だな
0978デフォルトの名無しさん
2009/08/14(金) 10:42:01スレとしてC/C++の標準で定義されていない未定義の動作を
する書き方は推奨されない
0979デフォルトの名無しさん
2009/08/14(金) 10:47:240980デフォルトの名無しさん
2009/08/14(金) 10:51:20課題で出されたサンプルプログラムがふつうに
void main(void)
なんて書いてあったりするから困る
0981デフォルトの名無しさん
2009/08/14(金) 10:53:04コマンドプロンプトを開くとき、これを使って
http://www.geocities.jp/katayama_hirofumi_mz/fdprompt/
0982デフォルトの名無しさん
2009/08/14(金) 10:55:14そんな大学辞めろ
0983デフォルトの名無しさん
2009/08/14(金) 10:56:42俺はデスクトップにcmd.exeを実行するショートカットを置いて
それを使っている
しかしIDE環境の中からでは役に立たないよね?
0984デフォルトの名無しさん
2009/08/14(金) 11:05:45別に、はじめのうちはそれでいいと思うが。
最低限プログラムを理解するうえで関数宣言とかの部分の意味なんて
後から理解できればそれで問題がないと思うよ。
あれ?Winキー+R押してcmdってうつのって少数派?
0985デフォルトの名無しさん
2009/08/14(金) 11:07:300986デフォルトの名無しさん
2009/08/14(金) 11:07:44記述ではライブラリ関数の動作仕様まで規定することは出来ないし
void main(void)を禁止することも出来ません。
特定のコンパイラが特定のライブラリ関数やエントリーポイントの
動作が標準と異なる場合はそれを標準Cコンパイラとみなさなければ
いいだけの話です。(純粋な意味での標準Cコンパイラは存在しない
でしょう。但しMSのC処理系はWindowsに合わせて相当に手が
加えられており標準Cの学習には向かないかも知れません)
0987デフォルトの名無しさん
2009/08/14(金) 11:09:35>[3.3] 言語:C言語
これだけの条件しか出されていない時は標準で定義されていない
Cの機能は使うべきではない
>[3.2] Visual Studio 2005
とか書いてあったらいいかもしれないけど
0988デフォルトの名無しさん
2009/08/14(金) 11:12:37と書いてあったら諦めましょう
0989デフォルトの名無しさん
2009/08/14(金) 11:21:57★コードは回答者によって十分なテストが行われており、そのまま提出
しても大丈夫な場合が多いですし回答者どうしで相互チェックもそれな
りに行われているとも思いますが、それでも求められているもの
と異なる場合があり得ます
★回答者は質問点プレで記載されている処理系上で動作するように
回答すれば良いのですが、他の処理系でコンパイル可能だが
著しく動作が異なるとか動作しない場合は処理系依存と明記した
ほうがいいと思います。
(ライブラリが無く他の処理系ではコンパイル不能な場合はこの
限りではありません)
0990デフォルトの名無しさん
2009/08/14(金) 11:29:52mingw/conio.hとか有るけど、これは使えないのか?
0991デフォルトの名無しさん
2009/08/14(金) 11:30:060992デフォルトの名無しさん
2009/08/14(金) 11:31:08回答処理系にMinGWを指定してくる出題者はほとんどいないだろう
大抵Linuxだ
0993デフォルトの名無しさん
2009/08/14(金) 15:31:430994デフォルトの名無しさん
2009/08/14(金) 15:32:46http://gimpo.2ch.net/test/read.cgi/news7/1240277978/l50
0995デフォルトの名無しさん
2009/08/14(金) 15:46:36scanf()を使った後なんかだとバッファに改行が残るので、getchar()で止まってくれないんだ
int n;
scanf("%d", &n);
getchar(); /* ここで入力待ちしたいが待ってくれない */
↓
int n;
scanf("%d", &n);
while (getchar() != '\n') {} /* 改行まで読み捨てる処理が必要 */
getchar();
0996デフォルトの名無しさん
2009/08/14(金) 16:38:55http://pc12.2ch.net/test/read.cgi/tech/1250204272/
0997デフォルトの名無しさん
2009/08/14(金) 16:47:43それだけなら
scanf("%d", &n);
rewind(stdin);
getchar();
0998デフォルトの名無しさん
2009/08/15(土) 07:30:37[4] 期限: (無期限)
>>786 台形公式により
>>808 シンプソンの公式により
0999デフォルトの名無しさん
2009/08/15(土) 12:26:17http://pc12.2ch.net/test/read.cgi/tech/1250204272/
1000デフォルトの名無しさん
2009/08/15(土) 12:27:00http://pc12.2ch.net/test/read.cgi/tech/1250204272/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。