C/C++の宿題片付けます 129代目at TECH
C/C++の宿題片付けます 129代目 - 暇つぶし2ch2:デフォルトの名無しさん
09/07/13 17:49:16
[1] 授業単元:
コンパイラの構成
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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の問題です。よろしくお願いします。
今日中にできそうにないので期限を延ばして再提出することにしました。

3:tac
09/07/13 19:48:08
【質問テンプレ】
[1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「PC間でソケットの接続確立とデータを送信を行うプログラム」
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2009年7月22日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。

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

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

期限は来週ですが、出来るだけ早い完成が望ましいので宜しくお願いします。


4:デフォルトの名無しさん
09/07/13 20:14:29
バレが怖いのでメールでやり取りしたいのですが、
もしそれでも片付けてくれる人がいらっしゃればお願いできないでしょうか?

5:デフォルトの名無しさん
09/07/13 20:15:24
問題文を見るとチャットである必要がないし、やるにしてもCUIでいいと思うんだが。
ゼミってことは通信技術方面の研究室なんでしょ?それなら今後を考えて自分でやったほうがいいと思うよ。
初心者でも分かる参考書を紹介しとくから、勉強してみてダメだったらもう一回来てみたら?
URLリンク(www.amazon.co.jp)
あとCは使えるんだよね?Cが使えることは大前提だから。

6:デフォルトの名無しさん
09/07/13 20:17:38
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
下に示すように,5 人の学生の体重を読み込んで、最も重い人と最も軽い人の体重を表示す
るプログラムを作成せよ.なお、体重はdouble 型で表すものとする。
体重を入力してください
1 番: 52.5
2 番: 64.0
3 番: 58.3
4 番: 67.4
5 番: 62.0
最も重い人の体重: 67.4
最も軽い人の体重: 52.5
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 7月14日まで
[5] その他の制限:

7:デフォルトの名無しさん
09/07/13 20:56:54
>>3
mixiのほうはもういいの?

8:デフォルトの名無しさん
09/07/13 20:59:23
>6

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

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

for(int i = 0 ; i < NUM ; i++){
printf("%d番:",i+1);
scanf("%lf",&input);
if(i == 0){
heavier = lighter = input;
continue;
}
if(heavier < input){
heavier = input;
}
if(lighter > input){
lighter = input;
}
}
printf("最も軽い人の体重:%g\n",lighter);
printf("最も重い人の体重:%g\n",heavier);
return 0;
}

9:前スレ949
09/07/13 21:12:28
前スレの>>963さん、>>972さんありがとうございます!おかげで助かりました。

10:デフォルトの名無しさん
09/07/13 21:14:23
>>4
メールアドレスは?

11:tac
09/07/13 21:28:03
>>5
完成系のイメージはチャットのような事ができるプログラムを使って、
 実際の講義中にそのプログラムを使い、学生に対して使用した場合
 どのような効果が得られるかを検証することなので、
 チャットでなくても、インスタントメッセンジャー?!でも良いです。
 
 一応、情報系の学部ですが、
 研究テーマは「チャットのようなモノを使った時の学生の学習効果」です。
 なので、プログラミングに対して全く無知なので、力を貸していただけないでしょうか??

12:デフォルトの名無しさん
09/07/13 21:32:57
期限前の問題(全て前スレ)
>> 988-989 (1)3つ以上の整数の階層的プログラミングを行うプログラムを作成せよ。 7月23日
>> 988-989 (2)3つ以上の2次元ベクトルの階層的プログラミングを行うプログラムを作成せよ。 7月23日
>> 964(9736) 英単語とその出現回数を登録する二分探索木を書け。 7月14日10:00
>> 962(dotup.org231968) コマンドラインで指定した2つのファイルの内容を交換する。 7月14日
>> 962(dotup.org231968) ライブラリ関数qsortを使って乱数のソートを行います。 7月14日
>> 847 LLLアルゴリズムをCでプログラミング 7月17日
>> 820 3入力のクワイン・マクラスキー法のプログラム 7月13日
>> 799 指定された点x,yを含む指定された境界色C2で囲まれた平面領域を指定された色C1で塗りつぶす 7月17日 正午
>> 791(9708,9709,DLL_BMP_C) 歌詞を暗号鍵Kとして読み込み、画像 NewYear2003.bmpを暗号化した画像Cを生成する。 7月15日
>> 772 4次のルンゲ-クッタ法を用いて連立微分方程式を解く 7月28日

13:デフォルトの名無しさん
09/07/13 21:37:45
>>11
学習効果の調査ならc++である必要はあるの?
あと都合のいいコメントだけレス返すのやめたほうがいいですよ

14:tac
09/07/13 21:41:21
>>11
 C++は所属しているゼミの先生の指定があったので、強制的に決定してしまいました。
 都合のいいコメントだけにレスを返したつもりはなかったんですが、
 勘違いされたなら、申し訳ありませんでした。

15:デフォルトの名無しさん
09/07/13 21:42:54
>>11
それがホントならフリーのチャットPG漁るべき。
C系言語でソケットから作ろうつーのは迂遠過ぎる。
(C系言語が得意で漁るより作るほうが早いって人は別ね)

16:デフォルトの名無しさん
09/07/13 21:48:45
勘違いにするならいいや

17:デフォルトの名無しさん
09/07/13 21:49:02
前スレ >> 988 (1)3つ以上の整数の階層的クラスタリングを行うプログラムを作成せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

実行時間がN*N*Nに比例する単純なやつ
ぐぐったらN*N*log(N)のアルゴリズムがあるらしいので、
こういうの好きな人は俺のにかまわず別回答どうぞ

18:tac
09/07/13 21:50:14
>11>>15
  チャットPGっていうのは、簡易型のチャットってことですか?
 「漁る」の意味がいまいち理解できなかったんですが、どういう意味でしょうか?
 

19:デフォルトの名無しさん
09/07/13 21:55:55
>>17
やべ、一部ミスがあったので修正
URLリンク(kansai2channeler.hp.infoseek.co.jp)

20:デフォルトの名無しさん
09/07/13 22:01:31
>>18
15じゃないが漁るというのはチャットプログラムを作るのではなく、
既にあり公開されているものを持ってきて利用した方が良いのでは?
ということだろう

21:デフォルトの名無しさん
09/07/13 22:06:16
>>18
漁るってのはどこからか適当なソースコード見つけてきてパクってくるってこと。
だいたい「チャットのようなモノを使った時の学生の学習効果」を調べるだけなら
わざわざ自分でチャットプログラム作る必要がないし。
チャットをする方法はjavascriptのチャットルーム使うとか、IRCクライアントを使うとか方法は
いくらでもあるからその研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。

22:デフォルトの名無しさん
09/07/13 22:27:12
>>20 >>21
15ですが、その通りです。フォローどもでした。

23:前スレ794
09/07/13 22:49:35
本当は土曜日にもう一度お願いし直したかったのですが、しんどくて出来ませんでした
今日も休んだのですがメールで先生に連絡したら前スレの>>997のように少し待ってくれるみたいです
ギャグではないので改めて宜しくお願いします

24: ◆jG/Re6aTC.
09/07/13 22:53:14
>>17
>>19さん

ありがとうございます!!!
提出するだけでなく、17,19さんみたいにソースを書けるように勉強させてもらいます^^


25:デフォルトの名無しさん
09/07/13 23:11:48
>>23
前スレ794は解答者です

26:デフォルトの名無しさん
09/07/13 23:15:58
>>21
>その研究内容でC++使って作るのははっきり言って無駄だって教授に言ってみろ。

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

それに、調べるだけならチャットを作る必要はないんだが、
「改良」したいなら、学生がちゃんとソースを理解していることが必要だ。
それでも、C++を選択する理由としては弱いかもしれないが。

27:デフォルトの名無しさん
09/07/13 23:17:48
URLリンク(kansai2channeler.hp.infoseek.co.jp)
No.9742に前スレの>>820クワイン・マクラスキー法書いたよ。
やり方分からなくてこうなったけど。

28:前スレ749
09/07/13 23:18:17
すいません、ぼけていました
正しくは749ですね
>>25さん指摘ありがとうございました

29:デフォルトの名無しさん
09/07/13 23:20:18
>>11
全くの無知な学生にこの課題を出すなら、パワハラの可能性があるのでしかるべきところに相談するといいんじゃね?

30:デフォルトの名無しさん
09/07/13 23:28:31
>>28
>配列を用いた計算機のプログラム
の意味がよく分からない

31:デフォルトの名無しさん
09/07/13 23:39:38
>>28
丸一週間寝込んだってこと?お大事に。

32:デフォルトの名無しさん
09/07/14 00:42:12
#include<iostream>
using namespace std;

int main(){
int a;

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

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



これが例文なんですが、

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


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

33:デフォルトの名無しさん
09/07/14 00:47:47
>>32
いいよ

34:デフォルトの名無しさん
09/07/14 00:48:36
>>32

#include<iostream>
using namespace std;

int main(){
int a;

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

if( a <= 9)
cout <<"入力した値は1桁です\n";
}
else if(a <= 99){
cout <<"入力した値は2桁です\n";
}
else {
cout <<"入力した値は3桁以上です\n";
}
return 0;
}

35:デフォルトの名無しさん
09/07/14 00:52:31
>>32
その例があって、その問題が答えられないって小学生未満?

36:デフォルトの名無しさん
09/07/14 01:00:31
>>32
>>1嫁といいたいところだがやさしい俺様は説いてあげるよ

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

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

int main()
{
int num;

cin >> num;
hoge(num);

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

return 0;
}

>>35
質問の仕方からしてガキでしょ

37:デフォルトの名無しさん
09/07/14 01:02:24
"入力した値は1桁です"と出力せよであって、入力した値が1桁の場合に
そのように出力する問題ではないのだよ
-100は9以下なので、"入力した値は1桁です"と出力することは完全に仕様通り。

38:デフォルトの名無しさん
09/07/14 01:07:48
おっと失礼。規定外という表現が誤りだった。確かに完全に仕様通りだよ。
ただその仕様どうなのよってことが言いたかったの。

39:デフォルトの名無しさん
09/07/14 01:09:06
ありがとうございました
変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる

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

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

先ほどの例を踏まえて誰かこれ教えてくれませんか?

40:デフォルトの名無しさん
09/07/14 01:10:25
9以下だった場合は「今日も暑いですね」と出力するのと同じように考えればいいよ
出力する文字列なんて下っ端には関係ないんです
…もちろんネタだよ

41:デフォルトの名無しさん
09/07/14 01:11:08
おまwww
先ほどの例を参考に自分で考えるという選択肢はなしかよwww

42:デフォルトの名無しさん
09/07/14 01:14:52
でもお礼を言えるっていうのは良い事だよ、うん。


43:デフォルトの名無しさん
09/07/14 01:32:52
なんか前スレで見たような気がするな

44:デフォルトの名無しさん
09/07/14 01:44:15
>>39
>変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる
main(a,b){a+b<b*2&&puts("aはbより小さいです");}

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

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

久しぶりにショートコーディングしてみるぜ!
C++指定無いからこれでいいよね?
あ、もちろん先ほどの礼を踏まえた回答だよ?
これでキミはヒーローだっ!!

45:デフォルトの名無しさん
09/07/14 02:15:38
>>44 コンパイル忘れてるよ。

46:デフォルトの名無しさん
09/07/14 02:32:37
1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「音声をマイクを使って入力し、リアルタイムでスピーカーから出力する」
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語:C言語
[4] 期限: 2009年7月20日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。


URLリンク(homepage3.nifty.com)
このページを参考にしつつプログラムを書いていたのですが、
録音と再生を同時に行うところで行き詰まってしまいました。
このページにのってるプログラムに追加する形でどなたか教えていただけないでしょうか。

47:デフォルトの名無しさん
09/07/14 12:06:02
前スレ>>970です。
エラーが起こってしまうので、どなたか修正していただけないでしょうか。

48:デフォルトの名無しさん
09/07/14 12:16:24
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
主語、目的語、述部が入ったデータファイルを読み込み、それらをランダムに組み合わせて生成した短文を20個ファイルに出力するプログラムの作成。
短文の構文は必ず、「(主語)は、(目的語)(述部)。」となるようにする。

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

データファイルは以下を使用すること。
主語: 俺 私 あなた 彼 彼女 先生 犬のポチ 猫のタマ ライオン その人 政治家 ネズミ
目的語: カレー ご飯 肉 授業 男 女 すごいもの アレ アンパン お金 
述部: が大好きだ が大嫌いだ を作った をなくした が欲しい に全力を尽くす を新しいものに交換した ?なにそれ美味いの? について深く考えた を捨てた に塩をふりかけた
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 2009年7月20日

49:デフォルトの名無しさん
09/07/14 12:18:00
[1] 授業単元:プログラミング
[2] 問題文 2人の人の名前と年齢をキー入力し、同じ年なら「○○さんと××さんは同じ年です」、
そうでなければ「○○さんは××さんよりyy 歳年上です」と表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: borlandc++
 [3.3] 言語: C
[4] 期限: 今日の2時30分
[5] その他の制限: なし
よろしくお願いします

50:>8
09/07/14 12:24:18
それ間違ってないか?

51:デフォルトの名無しさん
09/07/14 12:24:27
>>47
エラーが出るというなら、コードとそのエラーを貼るべきだな。
でないとどこで何が起きているのかわからん。

52:デフォルトの名無しさん
09/07/14 12:24:43
>>47
前スレ>>971の回答なら俺も試したがエラー出なかったぞ
自分の書いたソースをロダにうpすれ

53:デフォルトの名無しさん
09/07/14 12:27:37
>>48
前スレ>>939に回答

54:47
09/07/14 12:55:24
すみません。
入力が誤っていたみたいです。ありがとうございました。

55:デフォルトの名無しさん
09/07/14 12:58:23
前スレの>>772です。スレが変わったのでもう一度貼っておきます。

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

どうか宜しくお願いします。


56:772
09/07/14 13:00:29
#include <stdio.h>
#include <math.h>
#define N 3 //システムの次元
double a = 0.20;
double b = 0.20;
double c = 10.0;
/* 導関数 */
/* x における dx/dt を求める */
void derivs(double t, double x[], double dxdt[])
{
/* dx/dt = f(x) */
dxdt[0] = ;
dxdt[1] = ;
dxdt[2] = ;
}


57:772
09/07/14 13:01:33
>>56の続きです。
/* ルンゲクッタ法を1ステップ行う関数   */
/* x(t)=xin から x(t+h)=xout を求める */
void rungekutta(double xin[], double xout[], double t, double h)
{
int i;
double th2,h2,h6;
double dxdt0[N], dxdt1[N], dxdt2[N], dxdt3[N], xt[N];
double deriv(double, double [], double []);

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

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

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

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

derivs(t+h,xt,dxdt3);
for(i=0;i<N;i++)
xout[i] = xin[i] + h6*(dxdt0[i]+2.0*(dxdt1[i]+dxdt2[i])+dxdt3[i]);
}


58:772
09/07/14 13:02:34
>>57の続きです。
int main()
{
int i;
double t, tmax, dt;
double x[N], x_next[N];
FILE *fp;
void rungekutta(double [], double [], double, double);
/* 諸変数を初期化 */
tmax = ;
dt = ;
/* システムの状態を表すベクトルx(N次元)の初期化 */

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

/* 時刻tとxの各要素をファイルに書き出す */
fprintf(fp,"%lf %lf %lf %lf\n ", t, x[0], x[1], x[2]);
/* xを更新 */
x +=
}
/* ファイルを閉じる */
fclose(fp);
return 0;
}


59:デフォルトの名無しさん
09/07/14 13:05:38
うpろだが使えなかった人だっけ
はやくうpろだ使えるようになってくれよ

60:デフォルトの名無しさん
09/07/14 13:08:27
すみません。学習意欲がないんで、うpろだの使い方とか覚えるの面倒くさいんです。
だからはやく宿題手伝ってください。

61:デフォルトの名無しさん
09/07/14 13:37:26
>>50 いえいえ、合ってますよ。
>>60 ファイル名のところに直接ファイル名書いてる?、「参照..」ボタン押せ。

62:デフォルトの名無しさん
09/07/14 13:39:18
>>61
60は本人じゃないだろw
このスレのみんなの心の声だ

63: ◆/91kCCQXBo
09/07/14 13:52:23
>>039 これは多分1、2、3を順次処理する問題なのだろう。
#include <iostream>
using namespace std;
int main(void) {
  int a, b, c;
  char m;
  cout<<"a:"; cin>>a;
  cout<<"b:"; cin>>b;
  cout<<"c:"; cin>>c;
  cout<<"m:"; cin>>m;

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

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

  cout<<"a="<<a<<endl;
  cout<<"b="<<b<<endl;
  if(a < b) /* - 3 - */
    cout<<"aはbより小さいです\n";
  else if(a > b)
    cout<<"aはbより大きいです\n";
  else
    cout<<"aとbは等しいです\n";
}

64:デフォルトの名無しさん
09/07/14 13:56:51
>>2
URLリンク(kansai2channeler.hp.infoseek.co.jp)
キャストって、(int),(double)で良いんだよねぇ?

65: ◆/91kCCQXBo
09/07/14 15:00:08
>>049 2人の人の名前と年齢をキー入力
URLリンク(jbbs.livedoor.jp)

66:デフォルトの名無しさん
09/07/14 15:27:58
>>55です。大変ご迷惑をおかけしました。ろだにソースを貼りましたのでよろしくお願いします。

67:デフォルトの名無しさん
09/07/14 15:41:56
>>53 回答に誤りがあったみたいでプログラムが作動しません。

>>48 どなたかお願いします。

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

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

C99なら問題ないのだけど。 

69:デフォルトの名無しさん
09/07/14 16:30:14
>>67
前回回答した者だけど、規格とかまで理解できてなかったゴメン・・・
>>68さんが言ってるように修正してみてほしい
コメントアウトすると乱数が一定になるからなるべく移動で解決する方が良さそう
あと、それでもエラーが出るようなら、エラーメッセージを貼り付けて欲しい

70:デフォルトの名無しさん
09/07/14 17:26:39
>>48
データファイルが本当にそういう仕様だと信じて書いてみた。
入力ファイル名、出力ファイル名はそれぞれ input.txt output.txt ね。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

71:デフォルトの名無しさん
09/07/14 17:37:44
ノールなら130資源地しらみつぶしに攻撃したら100匹くらいやとってるとこあるからそれで完了

72:デフォルトの名無しさん
09/07/14 18:37:04
[1] 授業単元:C言語
[2] 問題文:配列を用いた計算機のプログラムを作成してください。
計算は前から順に行われていく。
入力される数値の個数は最大でも20個としてください。

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

[4] 期限:2009年7月19日
[5] その他:特になし
自分も新スレになったので再貼りです
改めてよろしくおねがいします


73:デフォルトの名無しさん
09/07/14 18:37:48
>>72
>配列を用いた計算機のプログラムを作成してください。
の具体例をくれ

74: ◆/91kCCQXBo
09/07/14 18:41:02
>>070 コンパイルして、テストはしていないみたい。
#define DELIMITER " \n" /* 半角文字 */

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

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

/* 述部の読み込み */
fgets(jbuff, BUFFSIZE, ifp);
j[0] = strtok(jbuff, DELIMITER);
for (i = 1; i < J; ++i) j[i] = strtok(NULL, DELIMITER);

75:デフォルトの名無しさん
09/07/14 19:39:08
>>72
問題文の意味が全く分からない

76:デフォルトの名無しさん
09/07/14 19:42:05
>>72
・問題文は、出題されたまま全文を書いてください。

77:デフォルトの名無しさん
09/07/14 20:25:48
>>64
はい!ほんとにありがとうございました。
助かりました

78:デフォルトの名無しさん
09/07/14 20:28:38
適当にエスパーしたものを貼っておく
#include <stdio.h>
#define MAX 20
int main(void) {
int i;
double result;
double num[MAX];
char op[MAX];
printf("1 個目の数字 = "); scanf("%lf", &num[0]); getchar();
for (i = 1; i < MAX; i++) {
printf("%d 個目の演算子 = ", i);
if ((op[i] = getchar()) == EOF) break;
printf("%d 個目の数字 = ", i + 1); scanf("%lf", &num[i]); getchar();
}
result = num[0];
for (i = 1; i < MAX && op[i] != EOF; i++) {
switch (op[i]) {
case '+': result += num[i]; break;
case '-': result -= num[i]; break;
case '*': result *= num[i]; break;
case '/': result /= num[i]; break;
default: printf("error\n"); return 1;
}
}
printf("ans = %f\n", result);
return 0;
}

79:デフォルトの名無しさん
09/07/14 20:34:06
前スレ962をお願いします

80:デフォルトの名無しさん
09/07/14 20:35:20
>>79
問題張りなおして

81:79
09/07/14 20:44:12
URLリンク(www.dotup.org)

お願いします

82:デフォルトの名無しさん
09/07/14 20:47:21
課題なんだが。。。。

#include<stdio.h>
void kakugyou(void);
int hen,x,y;
void main(void)
{
printf("数字(2~9)を入力してください:");
scanf("%d",&hen);
while(x<=hen)
{
kakugyou();
x++;
}


83:デフォルトの名無しさん
09/07/14 20:48:42
↑の続き
x=hen-1;
while(1<=x)
{
kakugyou();
x=x-1;
}
}
void kakugyou(void)
{
y=1;
while(y<=x)
{
printf("*");
y=y+1;
}
printf("\n");
}
これだと、アスタリスクが旗みたいな形になるけど、これを基本にしてダイヤ型と六角形、星形の結果を出すにはどうしたらいいのだろうか。
誰か教えてください。


84:デフォルトの名無しさん
09/07/14 20:51:56
ゆとり増えすぎだろこのスレマジで・・

85:デフォルトの名無しさん
09/07/14 20:55:45
>星形の結果を出すにはどうしたらいいのだろうか
ビルから飛び降りればいいんじゃないかな?

86:デフォルトの名無しさん
09/07/14 21:07:07
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
URLリンク(down11.ddo.jp)
[3] 環境
 [3.1] OS: (WindowsVista)
 [3.2] textpad
 [3.3] 言語: (C++)
[4] 期限: ([2009年07月15日23:59まで)

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

pass:C/C++

87:デフォルトの名無しさん
09/07/14 21:21:18
>>81
課題1
#include <stdio.h>

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

if (argc != 3) return 1;

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

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

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

return 0;
}

88:デフォルトの名無しさん
09/07/14 21:32:10
>>86 RAR駄目やっ。
Extracting from D:\My Documents\Cplus\Part129_086\001.rar
Extracting D:\My Documents\Cplus\Part129_086\tex.bmp
CRCエラー: D:\My Documents\Cplus\Part129_086\tex.bmp

89:デフォルトの名無しさん
09/07/14 21:40:24
>>81 課題2
#include <stdio.h>
#include <stdlib.h>
#define N 10

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

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

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

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

printf("実数[0, 1]の乱数を%d個発生しました\n");
for (i = 0; i < N; i++) printf("%7.3f", x[i]);
puts("\nソートすると");
qsort(x, N, sizeof(double), comp_d);
for (i = 0; i < N; i++) printf("%7.3f", x[i]);
puts("");
return 0;
}

90:デフォルトの名無しさん
09/07/14 21:47:25
ごめん>>89は忘れて

91:デフォルトの名無しさん
09/07/14 21:50:54
>>81
Q2
URLリンク(kansai2channeler.hp.infoseek.co.jp)

92:デフォルトの名無しさん
09/07/14 21:51:50
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: ?
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他の制限: 特にありません。よろしくお願いします。

93:デフォルトの名無しさん
09/07/14 21:57:24
>>88
zipになります。どうかよろしくお願いします。
URLリンク(down11.ddo.jp)

94:デフォルトの名無しさん
09/07/14 21:58:07
>>88
passは先ほどと同じですので

95:デフォルトの名無しさん
09/07/14 21:59:38
>>92
(2)
#include <stdio.h>

int main(void)
{
int i, j;
i = 1;
while (i < 10) {
j = 1;
while (j < 10) printf("%3d", i * j++);
printf("\n");
i++;
}
return 0;
}

96:デフォルトの名無しさん
09/07/14 22:26:39
>>55
課題1
URLリンク(kansai2channeler.hp.infoseek.co.jp)

あと問題をアップロードしたら>>66だけじゃなくリンクも書いて
元のソースこれでいいんだね?
URLリンク(kansai2channeler.hp.infoseek.co.jp)

97:デフォルトの名無しさん
09/07/14 22:37:54
>>92
(1)
#include <stdio.h>

int main(void)
{
int f1, f2, f3, n;
printf("n = "); scanf("%d", &n);
if (n == 0) { printf("F(0) = 0\n"); return 0; }
if (n == 1) { printf("F(1) = 1\n"); return 0; }
f1 = 0; f2 = 1;
while (n >= 2) { f3 = f2 + f1; f1 = f2; f2 = f3; n--; }
printf("F(%d) = %d\n", n, f3);
return 0;
}

98:79
09/07/14 23:01:46
>>90
ありがとうございます

99:デフォルトの名無しさん
09/07/15 01:17:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他:特になし
どうかよろしくお願いします。

100:デフォルトの名無しさん
09/07/15 01:37:56
>>99
解答01: string.h
解答02: cc minitest0926A.c -o minitest0926A
解答03: 3.464102
解答04: s=r*r*3.142;
解答05: 25
解答06: ( (x)<5 ? 'c' : 'd' )
解答07: .9
解答08: p=3.141592654

環境依存あるかも。

101:デフォルトの名無しさん
09/07/15 01:50:31
>>100
ありがとうございます

102:デフォルトの名無しさん
09/07/15 02:32:03
[1] 授業単元:OS演習
[2] 問題文(含コード&リンク):
(1)pipe3.cを完成させて、親子プロセス間で交互にメッセ
  ージを交換するプログラムを作成せよ。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

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

[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C言語
[4] 期限: 7/16
[5] その他の制限:特にないです、どうかよろしくお願いします

103:デフォルトの名無しさん
09/07/15 03:05:57
【質問テンプレ】
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:  C
[4] 期限: 2009年 7月20日
[5] その他の制限: 特になし

よろしくお願いします

104:デフォルトの名無しさん
09/07/15 03:06:34
ここすごく面白そうなスレだ
プログラミングの題材探しにすんげぇ助かるかもしれない

105:デフォルトの名無しさん
09/07/15 03:08:39
>>104
利用料を徴収します

106:デフォルトの名無しさん
09/07/15 03:23:11
最初はそう思うもんだ
がんばって技術向上のついでに単位取得を手伝ってあげるといい

107:デフォルトの名無しさん
09/07/15 03:28:46
[1] 授業単元: デジタル信号処理
[2] 問題文(含コード&リンク): 2つのテキストファイル(double型)を読み込み、畳み込み和を計算し、別のファイルに出力せよ。
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:  C
[4] 期限: 2009年 7月16日
[5] その他の制限: よろしくお願いします。


108: ◆/91kCCQXBo
09/07/15 04:21:59
>>082 ダイヤ型と六角形、星形
Part127>>953(9534) 問題 >>998(CODE)>>999(CODE)>>次014(9548) 「ピラミッドアート」ダイヤ、八角形、星型
Part128>>333(9630)>>342(9635)>>495 問題 >>440(9652) '*'を一辺とする六角形と星形を描画する
Part128>>898 問題 >>915(>>014(9548)) アスタリスクがダイヤ形になるプログラム

URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

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

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

よろしくお願いします。

110:デフォルトの名無しさん
09/07/15 09:37:44
1] 授業単元:数値情報解析
[2] 問題文:ニュートン法により代数方程式を解くプログラムを作りなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio
 [3.3] 言語:C
[4] 期限:2009年7月22日
[5]少しでも易しい表現にしていただくようよろしくお願い致します。
 あと、ソースファイルに処理過程がわかり易いようにコメント文を加えて
 いただけるとありがたいです。

111:デフォルトの名無しさん
09/07/15 09:58:44
maximaだとこれだけなんだけどね
t(f):=block([fd,h],fd:diff(f(x),x),h:x-f(x)/fd,return(rat(h)))$t(f);
代数方程式に制限はないの?普通の多項式に限るとか
それか、代数方程式とその微分が与えられている前提なら
話は簡単だけども
多項式の微分を自分で作れって問題ならめんどいね

112:デフォルトの名無しさん
09/07/15 10:36:10
>>110
方程式と、方程式の微分結果は、ソースに直接書くの?
それとも、入力された方程式を解くの?
それによって、難易度がかなり違うんだけども。

113:72
09/07/15 11:26:38
問題文はこれで全部です
作成例の実行ファイルを昨日貰ったので家に帰ったらアップします

114:tac
09/07/15 16:06:17
   先日、このスレッドで質問を書かせていただいたんですが、
  多くの方から、意見をいただき、とても参考になりました。
  今日、ゼミがあったので教授にその話を言うと、
  自分で1から開発せずに、オープンソースを探し、
  もし足りなければ、そこから、改良を加えるという形でOKがでました。
  
   なので、今回はCもしくはC++言語で、
  ソケット間通信を可能にするオープンソースを自分自身でも探してみますが、
  お勧めのソケット間通信のオープンソースのサイトやURLを教えていただけないでしょうか?
  
  
【質問テンプレ】
[1] 授業単元:
    ゼミナール
[2] 問題文(含コード&リンク):
    「PC間でソケットの接続確立とデータを送信を行うプログラム」の
    オープンソースを探す。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] Micro Soft Visual C++ 2008
 [3.3] 言語: C もしくは C++ 言語
[4] 期限: 2009年7月22日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  制限は特にありません。


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

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

  宜しくお願いします。

115:デフォルトの名無しさん
09/07/15 16:49:04
FreeBSD(オープンソース)にtalk/talkdというのがあります。

116:デフォルトの名無しさん
09/07/15 17:19:47
>>114
mixiであんたが消したトピに答えがあったんだが見てないのか?

117:>>55
09/07/15 17:36:32
>>96 すみませんでした。ありがとうございます。

118:デフォルトの名無しさん
09/07/15 18:32:28
>>114
IPMessanger
URLリンク(www.ipmsg.org)
ソフト自体のソースも公開されてるし、
通信部分のみのDLLなんかもあるから、充分なんじゃない?

119:デフォルトの名無しさん
09/07/15 18:36:46
[1] 授業単元:基礎プログラミング
[2] 問題文:

URLリンク(kansai2channeler.hp.infoseek.co.jp)

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

よろしくおねがいします

120:デフォルトの名無しさん
09/07/15 18:56:31
>>119
#include<stdio.h>
#include<string.h>
#include<ctype.h>

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

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

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

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

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

if(check(str)) printf("OK\n");
else printf("ERROR\n");
return 0;
}

121:obama ◆dXPOZaWDCk
09/07/15 19:13:28
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上のプログラムがなぜ図のような座標列を生成したのかを説明せよ
図;URLリンク(g.pic.to)
ヒント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] その他の制限:


122:obama ◆dXPOZaWDCk
09/07/15 19:14:55
>>121
お願いします

123:デフォルトの名無しさん
09/07/15 19:29:56
どなたか>>107お願いします

124:デフォルトの名無しさん
09/07/15 19:35:45
>>103
URLリンク(kansai2channeler.hp.infoseek.co.jp)

125:デフォルトの名無しさん
09/07/15 19:44:51
[1] 授業単元:ゲームプログラミング入門
[2] 問題文(含コード&リンク):
以下のゲームの中からどれか二つを選んで作成せよ。
・マインスイーパー
・七並べ
・ブラックジャック
・ポーカー
カードゲームを作成する場合、同じカードが2枚存在してはならない。
ジョーカーは無いものとする。

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

出来れば7並べかマインスイーパーをお願いします。

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

よろしくお願いします。


127:デフォルトの名無しさん
09/07/15 20:28:13
>>126
だめだ、10回読み直したけどわからん。
だれか分かりやすく読み下してくれ・・・

128:デフォルトの名無しさん
09/07/15 20:43:06
n次対称行列の格納に必要な配列の長さはn(n+1)/2
配列名をMとする時
i行j列成分は(i>=j)の時 M[ i*(i-1)/2+j-1 ] (i<j)の時 j,i成分と同じ
乱数で適当に格納した後表示する。
これでどーだ?

129:デフォルトの名無しさん
09/07/15 20:47:13
>>128
先に書かれたー。せっかくなので俺がいま書いた解釈も…

N次正方行列をあらわすには普通N*N個の要素を必要とするが
それが対称行列ならN*(N-1)/2個の要素ですむ
それでは、N次の対称行列をN*(N-1)/2個の要素を持つ一次元配列に
格納し、取り出すプログラムを作成せよ

130:デフォルトの名無しさん
09/07/15 20:48:43
>>128,129
ありがとうございます。
じっくり考えたいと思います。

131:72
09/07/15 21:05:30
URLリンク(www.rupan.net)
URLリンク(www.rupan.net)
参考例と作成例をうpしました
参考例のほうはソースと実行ファイル共にありです
作成例のほうは実行ファイルだけになります

132:デフォルトの名無しさん
09/07/15 21:26:34
>>128-129
なるほど
「添字番号、行成分」なるなにものかを何とか数値化して配列に入れる方向で考えてた。頭堅いのは駄目だな
その方向で行くとして、出力は1次元配列の構造そのままがいいんだろうか、行列っぽくするべきだろうか
なんとなく後者かなと思ったが

133:obamaさんへ
09/07/15 21:29:22
>>121
図を右上から左下、左上から右下の二本の線でバツに区切ります。
すると4つの同じような図形の菱形になります。
その一つを見るとさらに同じように4つの菱形に区切れます。
部分が全体を含んでいます。
そのように繰り返し的に同じ図形が現れるのをフラクタル図形といいます。
プログラムは4つの点を描き、中心位置をずらして
大きさを小さくしながら再帰的に同じ形を描いていっています。


134:デフォルトの名無しさん
09/07/15 22:07:23
>>131
>>78



135:デフォルトの名無しさん
09/07/15 22:22:25
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)のデータを取り込み、そこから最大値、最小値、データ個数、平均値を求めるプログラムを作成せよ
ただし最大値、最小値、データ個数、平均値は引数にポインタを用いて値を返すようにプログラムを作れ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 7月16日17時
[5]URLリンク(kansai2channeler.hp.infoseek.co.jp)のファイル名はtensu.txtでお願いします
なるべく簡単なものでおねがいします

136:72
09/07/15 22:40:50
うお、安価なかったので気づきませんでした
>>131さんとそれを教えてくれた>>134さんありがとうございました

137:デフォルトの名無しさん
09/07/15 22:57:39
>>135
#include <stdio.h>

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

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

int main(void)
{
int max, min, num;
double ave;
func(&max, &min, &num, &ave);
printf("最大値 = %d, 最小値 = %d, データ個数 = %d, 平均値 = %f\n", max, min, num, ave);
return 0;
}

138:デフォルトの名無しさん
09/07/15 22:59:39
[1] 授業単元: Linux/C
[2] 問題文(含コード&リンク):
標準入力からの入力を元に演算、結果を標準出力に出力するプログラムがあります。
---
#include <stdio.h>
#include <stdlib.h>

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

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

022
--More--

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

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

139:デフォルトの名無しさん
09/07/15 23:10:28
>>137
ありがとうございました

140:デフォルトの名無しさん
09/07/15 23:45:12
a.out | more

a.out
にする

あと、パスに.を入れるのはよくない

141: ◆/91kCCQXBo
09/07/16 00:20:28
>>126 n次の対称行列 めんどうなのでC/C++
#include <stdio.h>
int A[100*101/2];
int main() {
  int n, i, j, k, i1, j1;

  printf("n?"); scanf("%d%*c", &n); if(n>100) return 1;
  for(k=0, i=0; i<n; i++) { /* 成分の添字番号を表示 */
    for(j=i; j<n; j++, k++) {
      A[k] = k+1;
      printf("N(%2d,%2d) = A(%2d)\n", i, j, k);
    }
  }
  for(i=0; i<n; i++) { /* 行成分を表示 */
    for(j=0; j<n; j++) {
      if(i < j) i1=i, j1=j;
      else  i1=j, j1=i;
      k = j1+i1*n-(i1*(i1+1)/2); // i
      printf("A(%2d)=%2d", k, A[k]);
      if(j < n-1) printf(", ");
    }
    puts("");
  }
  return 0;
}
/*
1 2 3 4
2 5 6 7
3 6 8 9
4 7 9 10
*/

142:デフォルトの名無しさん
09/07/16 00:23:11
>>112
与えられた方程式をソースに直接書くタイプなのです。
方程式や収束条件が先生の方からまだ発表されていなかったので、
大変申し訳ないですが、後日あらためて書き込みさせていただきます。


143:デフォルトの名無しさん
09/07/16 00:29:44
>>124
ありがとうございます


144:デフォルトの名無しさん
09/07/16 01:52:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):①四則演算は用いずに, 0xabcdの下位8ビットを0にして表示するプログラムを作成せよ.
               ②変数xのyビット目を1にする関数 int bit_set(int x,int y) を作成せよ.
  ③変数xのyビット目を0にする関数 int bit_clear(int x,int y) を作成せよ.
               ④変数xのyビット目の値を返す関数 int bit_test(int x,int y) を作成せよ.
[3] 環境
 [3.1] OS:Windows Vista SP1
 [3.2] Visual studio 2008
 [3.3] 言語:C
[4] 期限:2009年7月16日8:30まで
[5] その他の制限:基本的なもので

145:デフォルトの名無しさん
09/07/16 02:05:38
>>144

#include <stdio.h>
int main(){
printf("%d",0xabcd & 0xff00);
return 0;
}


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


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


int bit_test(int x,int y){
return (x>>(y-1)) & 1;
}

146:デフォルトの名無しさん
09/07/16 04:51:12
どなたか>>125をお願いします。

147:デフォルトの名無しさん
09/07/16 06:45:23
どなたか>>102の(2)だけでよいのでよろしくお願いします

148:デフォルトの名無しさん
09/07/16 09:19:20
>>146
マインスイーパってやっぱりマウスでクリックするの?

149:デフォルトの名無しさん
09/07/16 09:48:29
>>148
どちらもCUIです。
説明が足りず申し訳ありません。

150:デフォルトの名無しさん
09/07/16 09:49:58
CUIでマインスイーパーって開ける箇所を座標指定とかでやるのか?

151:デフォルトの名無しさん
09/07/16 10:05:58
>>150
だと思います。特に方法は指定されていませんでした。

152:138
09/07/16 11:17:32
>>140
レスありがとうございます。
その場合、スクロール、ページャ運用ができません。
是非プログラム内で解決したいと思っています。
宜しくお願い致します。

153:デフォルトの名無しさん
09/07/16 12:12:15
>>147
URLリンク(kansai2channeler.hp.infoseek.co.jp)

154:デフォルトの名無しさん
09/07/16 12:57:01
>>146
7並べは、コンピュータ対戦?
両方人間で、同じ画面見てたらゲームになんないよねぇ・・・

155:デフォルトの名無しさん
09/07/16 13:52:28
>>154
7並べサーバを作って、人間用クライアントが複数接続できるようにして、
足りないぶんはAIクライアントに担当させる・・・
AIはインタフェースだけ決めといて実装は自由、各自が自作の思考ルーチンの強さを競う
なんて妄想してると夢だけはひろがりんぐw

156:デフォルトの名無しさん
09/07/16 21:46:37
いまからマインスイーパをCで作ってみようと思う

157:デフォルトの名無しさん
09/07/16 23:13:11
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Textpad
 [3.3] 言語:C/C++/どちらでも可
[4] 期限:2009年7月17日AM7:00まで
[5] その他の制限:特になし

朝までになりますので、どなたかよろしくお願いします。


158:デフォルトの名無しさん
09/07/16 23:18:58
>>157
下図に示すa,bに数値を設定したときに
--------------
この図はどこ

159:デフォルトの名無しさん
09/07/16 23:48:36
>>158
URLリンク(kansai2channeler.hp.infoseek.co.jp)
すいません、こちらが図になります

160:デフォルトの名無しさん
09/07/17 00:11:31
[1]プログラミング
[2] 課題
言語: C もしくは C++ 言語




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

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




宜しくお願い致します。



161:デフォルトの名無しさん
09/07/17 00:50:40
>>157
C++で
URLリンク(kansai2channeler.hp.infoseek.co.jp)

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

一応windows.hを使ったインタフェースで作ってた。

163:デフォルトの名無しさん
09/07/17 03:26:21
>>160
#include <stdio.h>
#include <stdlib.h>

int main(void){
int a,input;

srand( (unsigned)time(NULL) );

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

a = rand() % 10 + 1;

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

return 0;
}

164:デフォルトの名無しさん
09/07/17 04:07:54
>>153
これから見てみます
ありがとうございました

165:デフォルトの名無しさん
09/07/17 09:44:19
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):コメントアウト(//)を用いて下のプログラムを説明せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([09年7月17日12:30まで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします


166:デフォルトの名無しさん
09/07/17 10:46:21
コメントアウト?
コメントじゃなくて?

167:新たな課題です
09/07/17 10:59:16
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
授業時に作成したプログラム(ヒント) URLリンク(kansai2channeler.hp.infoseek.co.jp)
作成する図形URLリンク(kansai2channeler.hp.infoseek.co.jp)
実行例URLリンク(s.pic.to)
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: (VC++
 [3.3] 言語: (C
[4] 期限: ([09年7月20日15:30まで] または [無期限] のいずれか)
[5] その他の制限:成功すれば図は立体的に見える。
1.星形の座標列を生成する関数void draw_star(引数1,2,/…)を作成すること
どの星型もこの関数ひとつで描けるようにすること
2.星型中心座標から各凸角までの距離は0.5、各凹角までの距離は0.25
3.星型中心y座標値は-10から10までの整数とすること
y=0の場合は凸角数4というように、y座標値で凸角数が決まってくいる(実行例参照)
ifやswitchなどの条件分岐(場合分け)を用いずに規則を見つけてプログラミングすること
5.各行(各y座標値)の最初(左端)の星型中心x座標値はゼロとし、最後(右端)のそれは
40以下とすること。隣り合う星型中心のx座標値の間隔dxはdx=2+0.3×|y|とすること。
6.実行結果は.csvファイルとして保存すること



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



169:デフォルトの名無しさん
09/07/17 11:23:08
167 ほんとにこれでいいのか?(C 括弧閉じない性格
URLリンク(kansai2channeler.hp.infoseek.co.jp)

170:デフォルトの名無しさん
09/07/17 11:51:14
>>167
ショートカットファイルしかありませんでした


171:デフォルトの名無しさん
09/07/17 13:40:01
[1] 授業単元:システムコール
[2] 問題文(含コード&リンク):
問題文
URLリンク(kansai2channeler.hp.infoseek.co.jp)
リスト1~4
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月21日(火)12時10分まで
[5] その他の制限: 特になし

よろしくお願いします。


172:デフォルトの名無しさん
09/07/17 18:47:16
>>125
キャラクタ画面でマインスイーパ作ったけど、〆切りすぎてたね・・・
URLリンク(kansai2channeler.hp.infoseek.co.jp)

173:デフォルトの名無しさん
09/07/17 18:57:32
ゲームってグラフィック使わないとなるとかなり難しいけどなw


174:デフォルトの名無しさん
09/07/17 21:12:10
>>163

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



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

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

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

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

176:デフォルトの名無しさん
09/07/17 23:06:06
>>175

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char a[256], b[256];
int diff;
printf("文字列A : ");
scanf("%s", a);
printf("文字列B : ");
scanf("%s", b);
if(diff = strlen(a) - strlen(b))
printf("文字列%c の方が%d 文字長いです.\n", diff>0 ? 'A' : 'B', abs(diff));
else
puts("二つの文字列は同じ長さです.");
return 0;
}


177:デフォルトの名無しさん
09/07/18 00:14:07
>>171
WriteLine関数とReadLine関数の定義はどこ?


178:デフォルトの名無しさん
09/07/18 00:26:57
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C
[4] 期限: 7/20
[5] その他:特になし
よろしくお願いします。

179:デフォルトの名無しさん
09/07/18 00:39:26
>>178
【1】
stdio.h

【2】
n=0

【3】
Tn2 = Tn3

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

【4】
2555757

【4】の解の保証
URLリンク(www.research.att.com)

180:デフォルトの名無しさん
09/07/18 00:46:43
>>179
助かりました。ありがとうございます。

181:デフォルトの名無しさん
09/07/18 00:58:23
>>177
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これになります。失礼しました

182: ◆/91kCCQXBo
09/07/18 02:27:15
>>167 星形の座標列
画像は読む事が出来た だれかプログラムしてくれ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

183:デフォルトの名無しさん
09/07/18 02:52:07
>>182
>>167やろうと思ったけど何すればいいんだこれ
問題が意味不なんだが

184: ◆/91kCCQXBo
09/07/18 08:27:43
>>183 要するに線画の3D画像。①にあるように星の大きさ自体は全て同じ。
数値をエクセルでグラフにしたので、朝、目が覚めたら読んでくれ。こっちは解析しただけでやる気が終わった。
URLリンク(www51.tok2.com)

185:デフォルトの名無しさん
09/07/18 14:25:51
1] 授業単元:プログラミング論
[2] 問題文:データベースに対して線形探索を行うプログラムを作成するこのとき探し出す値の項目(キー)は、生徒の名前とする。なお、番兵法を用いて繰り返しの終了判定を少なくする。また、文字列を比較する場合、関数strcmp()を用いる
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月20日


186:デフォルトの名無しさん
09/07/18 14:34:07
>>185
そのデータベースというのはSQLのことかい?

187:デフォルトの名無しさん
09/07/18 14:35:01
あ、番兵って言ってるからちがうか。

188:デフォルトの名無しさん
09/07/18 15:39:08
>>185
こんな感じで。配列を使うとは書いて無いから線形リストにした。
あと、動作は保障しない。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

189:デフォルトの名無しさん
09/07/18 16:13:30
>>188
それ番兵の意味ないでしょ。ノード数Nのときに検索回数が1少なくなるだけで比較回数はN増えるし。
検索文字を番兵にしないと。

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

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

//リストの長さよりも小さければ番兵以外のノードが見つかった
if(i < p.count-1) return p;
else return NULL;

190:デフォルトの名無しさん
09/07/18 16:43:40
>>189
それ、C++ですねぇ。
検索文字列を番兵にするのは予想外でした。確かに比較回数はへりますね。
でも、その擬似コードは末尾にpushとpopしないといけないので、サーチにやっぱり時間かかりませんか?
文字列比較よりも低コストという感じですか?

191:デフォルトの名無しさん
09/07/18 16:47:19
>>188
データベース(人の名前,tomなど9人,txtファイル)から
キーボードから入力したKEY(生徒の名前)を
検索するプログラムを作ってほしいんです><

192:デフォルトの名無しさん
09/07/18 17:02:22
>>190
リストの末尾へのポインタをあらかじめ保持しておけば番兵の追加と削除に検索はいらない。
もちろん構造体を作るコストはかかるけどね。どっちが早いかは環境やリストの長さによる。

Node* head;
Node* tail;

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

//
//検索処理
//

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

>>191
初めに書けよ
他に抜けてる条件は無いのか?

193:デフォルトの名無しさん
09/07/18 17:03:35
>>191
ちょ!おま。
情報の後出しは禁止だ!このやろー。

findfirstfileを自作しろってことか?
さらに、その上で全文検索しろってことか?
どの辺のことを言ってるのかよくわからん。

194:デフォルトの名無しさん
09/07/18 17:13:26
>>193

すみません;;
Tom 75 60
Jerry 85 90
Spike 45 30
Rachel 55 85
Monica 75 90
Phoebe 80 75
Chandler 70 65
Joey 85 75
Ross 90 85
こんな感じのtxtファイルを読み込んで
名前をKEYで検索して該当したデータを表示させるプログラムなんですけど
データベースからデータを検索するプログラムが作れなくて困ってたんです;;

195:デフォルトの名無しさん
09/07/18 17:14:20
>>192
tailの管理がちょっと厄介ですなぁ。tailをpopしたら再検索ですし。まぁ、用途によりけりか。

196:デフォルトの名無しさん
09/07/18 18:12:47
1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだ文字列を、データベースに格納する前に
スタックに一時的に格納するプログラムを作成する
このときデータをまとめたデータ文字列を一つずつスタックへプッシュしたり
ポップしたりする過程が分かるプログラムを作成する。
なおスタックを実現するライブラリはスタックのための別のヘッダにまとめる

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

参考プログラムを元に完成させてほしいです
[参考プログラム]
URLリンク(kansai2channeler.hp.infoseek.co.jp)


197:デフォルトの名無しさん
09/07/18 18:44:09
>>185
多分あってると思うがほとんどデバッグしてないので何とかしてくれ。動作は保障しない。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

もう、今日は切ったり張ったりしないぞ。疲れた。

198:デフォルトの名無しさん
09/07/18 18:50:20
>>197

めちゃめちゃ高度ですが
すごい助かります
ありがとうございました^^
お疲れ様です;;

199:デフォルトの名無しさん
09/07/18 22:17:40
[1] 授業単元:  C言語
[2] 問題文 2進数の指定した場所の0、1を逆転せよ
たとえば 00110という2進数の3番目を反転としたら 2進数が00010となる。1番目の場合10110となる
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualC++
 [3.3] 言語: C
[4] 期限: 7月20日
[5] その他の制限:



200:デフォルトの名無しさん
09/07/18 22:21:25
>>171
サーバ側 URLリンク(kansai2channeler.hp.infoseek.co.jp)
クライアント側 URLリンク(kansai2channeler.hp.infoseek.co.jp)

ターミナル3つ立ち上げてサーバ、クライアント1、クライアント2を実行
クライアントからの入力はサーバ、他のクライアントにも送れた。
けど、サーバから文字を入力するとクライアント1側に入力文字が無限ループで出てきて
クライアント2には何も表示されなかった。課題どころか元のプログラムすら動かない危機的な状況なので
誰か助けてください。サーバ側に何か問題があると思うのですが全く見当がつきません

201:デフォルトの名無しさん
09/07/18 22:38:30
>>199
URLリンク(kansai2channeler.hp.infoseek.co.jp)

202:デフォルトの名無しさん
09/07/18 23:34:12
>>200
サーバの202行目はj++だよね。

203:デフォルトの名無しさん
09/07/18 23:37:58
#include<iostream>
using namespace std;

int main() {
int value;

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

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

return 0;
}

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



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

この2つ分かる方教えてくれませんか
C++です

204:デフォルトの名無しさん
09/07/18 23:45:37
>>202
本当にありがとうございました。頑張ってみます

205:デフォルトの名無しさん
09/07/18 23:47:48
>>203
負の数に対応したやつ

#include<iostream>
using namespace std;

int main() {
int value;

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

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

return 0;
}


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

#include<iostream>
using namespace std;

int main() {
int value;

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

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

return 0;
}


207:デフォルトの名無しさん
09/07/19 01:08:17
#include<iostream>
using namespace std;

int main() {
int value;

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

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

return 0;
}

自分で言うのもなんだがなんだこのクソプログラムはw
&&が使えなければドモルガンの法則使って||にすればいいじゃない、と思った

208: ◆/91kCCQXBo
09/07/19 02:27:51
>>203
//このプログラムは負の数値に対して考慮していない。←仮定
//このプログラムは1000以上の数値に対して考慮していない。←仮定を追加
//&&と同じ処理を&&を使わず、else ifを使って表現せよ
#include<iostream>
using namespace std;

int main() {
  int value;

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

  return 0;
}
//これじゃ駄目かね? 質問者も、どれ提出すればいいか困るか。

209: ◆/91kCCQXBo
09/07/19 02:39:52
//ド・モルガン版 >>207
#include<iostream>
using namespace std;

int main() {
  int value;

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

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

  return 0;
}

210:デフォルトの名無しさん
09/07/19 02:44:04
>>196
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>185と同じ人っぽかったので、データベースはtxtファイルで
「データベースに格納する前にスタックに一時的に格納」ってのは
「入力されたデータをスタックにためておき、スタックが一杯になったら
データベースに書き込む」ということだと解釈したのだけど、合ってる?


211: ◆/91kCCQXBo
09/07/19 03:14:40
>>167 C++ で提出すれば君はヒーローだ。(星形の座標列を生成する)
#include <fstream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define PI 3.1415926535897932384
void draw_star(ofstream &fout, float x1, int y1) {
  int i, dot;

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

  if(!fout) return 1;
  fout<<fixed<<setprecision(3);
  for( y = -10; y <= 10; y++ ) {
    xstep = 2.0 + 0.3 * abs(y);
    for( x=0.0; x<40.0; x += xstep ) {
      draw_star(fout, x, y);
    }
  }
  fout.close();
}

212:デフォルトの名無しさん
09/07/19 07:33:25
>>183だけど
>>184読んでやっと理解して
defineとか使ってごちゃごちゃ書いて完成したら
>>211が出来てて涙目なので少しすっきり書き直してアップしといた
URLリンク(kansai2channeler.hp.infoseek.co.jp)


213:デフォルトの名無しさん
09/07/19 12:40:03
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
下に示すように,キーボードから文字列を読み込み,その文字列が回文(前から読んでも後
ろから読んでも同じ)かどうかを判定するプログラムを作成せよ.なお,入力する文字列は半
角の英数字および記号のみと仮定してよい.

文字列を入力してください: abcba
回文です.
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月21日
[5] その他の制限:なし。

214:デフォルトの名無しさん
09/07/19 12:55:27
>>213
前スレに似たようなのがあった。空白を読みとばしたり大文字小文字を区別しない上級バージョンだけど参考まで
スレリンク(tech板:107-111番)

215:デフォルトの名無しさん
09/07/19 12:56:06
#include <stdio.h>
#include <string.h>

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

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

return 1;
}

int main(){
char buf[256];

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

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

return 0;
}

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

100以下の整数を入力し80以上なら”優”、70以上80未満なら“良”、60以上70未満なら“可”、60未満なら“不可”と表示する。tenに格納された値が不なら終了する。
条件:scanfの前にprintf(”点数を入力してください”);を入れる。whileを使いマイナスの値が入力された場合終了し、100~0の場合ループさせる。ifを使う

217:デフォルトの名無しさん
09/07/19 13:29:51
>>216
入門スレがあっただろ?そっちで聞け

218:デフォルトの名無しさん
09/07/19 13:31:46
>>217
入門スレから誘導した
こっちで受けてやってくれw

219:デフォルトの名無しさん
09/07/19 13:38:00
#include <stdio.h>

int main(){
    int ten;
    printf("点数を入力してください");
    scanf("%d", &ten);
    while( ten >= 0 ){
        if( ten >= 80 ){
            printf( "優\n" );
        }else if( ten >= 70 && ten < 80 ){
            printf( "良\n" );
        }else if( ten >= 60 && ten < 70 ){
            printf( "可\n" );
        }else{
            printf( "不可\n" );
        }
        printf("点数を入力してください");
        scanf("%d", &ten);
    }
    return 0;
}

220:デフォルトの名無しさん
09/07/19 13:41:01
ありがとうございます。
よろしければあと3つほどお願いしたいです。

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

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

③xの平方根を求める
条件:xには実数値を入れる。a=0、b=cとしてc=(a+b)/2を計算する
cの二乗<xならa=c、そうでなければb=cとして計算を繰り返す
b-aの値が0.0000001以下になったら計算を打ち切り、cの値を表示

221:デフォルトの名無しさん
09/07/19 13:43:09
>>220
常連さんになるなら>>1のテンプレに沿って書き直してくれ
とくにC/C++の違いとか、よく混乱がおきてんだ

222:デフォルトの名無しさん
09/07/19 13:53:47
[1] 授業単元: プログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (良く分らないけど学校のUNIXはlcc)
 [3.3] 言語: (C言語)
[4] 期限: ([2009年7月--日--:--まで]緊急ではないのですが夏季長期休の課題なので速く終らせたい )
[5] その他の制限: (scanf,printf,if,for,get,put,とか超簡単なところしか習ってない)

223:デフォルトの名無しさん
09/07/19 13:59:26
1] 授業単元:OS演習
[2]
セマフォを使った同期 -共有バッファを用いたプロセス間メッセージ通信
親/子プロセスでメッセージを書き込み、子/親プロセスで読み出す →semprog2.c

URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C言語
[4] 期限: 2009年7月22日
[5] その他の制限:特にないです。よろしくお願いします。

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

宜しくお願いします。

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

[3] 環境
 [3.1] OS: Windows Xp
 [3.2] CPad for Borland C++Compiler
 [3.3] C言語
[4] 期限: [無期限]

226:デフォルトの名無しさん
09/07/19 15:23:18
>>225
#include<stdio.h>
#include<stdlib.h>

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

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

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

scanf("%d", &x);
pattern=malloc(sizeof(int)*x);
if(pattern==NULL) return 1;
disp_whole_pattern(pattern, 0, x);
free(pattern);
return 0;
}

227:デフォルトの名無しさん
09/07/19 16:49:38
#include <stdio.h>
#include <stdlib.h>

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

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

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

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

重複が消せない(;ω;)

228:デフォルトの名無しさん
09/07/19 16:56:03
[1] 授業単元:数理物理
[2] 問題文(含コード&リンク):URLリンク(www.mns.kyutech.ac.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語:どちらでも可
[4] 期限:できれば2009年7月21日までにお願いします。
[5] その他の制限:問題ではプロットせよと書いていりますが問題の計算のプログラムをお願いします。


229:デフォルトの名無しさん
09/07/19 17:15:05
URLリンク(www.sangakuplaza.jp)

230:デフォルトの名無しさん
09/07/19 19:02:35
>>224
小数って実数のことじゃなくて、「小さな整数」の意味でいいのかな

231:デフォルトの名無しさん
09/07/19 19:59:15
>>230
実数と考えて頂いて問題ないです
紛らわしくてごめんなさい

232:デフォルトの名無しさん
09/07/19 20:26:16
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
fopenと fclose ライブラリ関数を使って、
C言語でファイルをコピーするプログラムを作成せよ。
ただしカレントディレクトリを表示せよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 09年07月20日
[5] その他の制限:特にありません。

233:デフォルトの名無しさん
09/07/19 20:37:29
>>210

その解釈でも大丈夫だと思いますが、プログラムの例の部分から察するに
プッシュするごとに格納されたデータを表示するんじゃないでしょうか?
あと、>>210さんのプログラムは終了させた場合のみ全データをポップ&表示
していますが、多分プッシュと同様ポップもメニュー?に入れて、
ポップするごとに全データを表示して、プッシュポップの関係を
分かりやすくするというプログラムなんじゃないでしょうか?
長々とすみませんでした。

234:デフォルトの名無しさん
09/07/19 20:56:14
[1] 授業単元:情報工学実験(ヒューマンインタフェース)
[2] 問題文(含コード&リンク):
画面中央にウィンドウを重ねて2つ表示し、
前面をウィンドウ1、後面をウィンドウ2とする。

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

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

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

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

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

長文で申し訳ありません。よろしくお願い申し上げます。

235:デフォルトの名無しさん
09/07/19 21:03:00
[1] 授業単元:プログラミング論
[2] 問題文:入力ストリームから読み込んだデータ文字列を、
データベースに格納する前にキューに一時的に格納するプログラムを
作成する。このとき、データをまとめたデータ文字列を一つずつ、キューへ
エンキューしたり、デキューしたりする過程が分かるプログラムを作成する。
なお、キューを実現するライブラリは、キューのための別のヘッダにまとめる。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名:CPad for Borland C++Compiler
 [3.3] 言語:C
[4] 期限: 2009年7月21日
[そのほか]
・入力ストリームから読み込んだデータ文字列を、キューにエンキューしたり、
デキューしたりするたびにデータベースに格納された全データを表示する。
・構造体オブジェクトは動的な記憶域に生成する。
・生徒の名前、試験の点数を構造体オブジェクトに格納することとする。
・関数の処理にコメントをつけて、キューをどのように実現しているか、
そのプログラムの処理内容が分かるようにする。
[このプログラムの流れ]
(1)ファイルやキーボードなどの入力ストリームから
データをデータ文字列として読み込む
(2)このデータ文字列をキューに一時的に蓄える
(3)キューからデータ文字列を取り出す
(4)このデータ文字列からそれぞれデータを取り出して
文字列や数値データに変換する
(5)変換したデータをデータベース(構造体の配列など)に格納してまとめて管理する
(6)このデータベースからデータを参照し、ディスプレイに出力する
[生徒、点数データ]
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[参考プログラム]
URLリンク(kansai2channeler.hp.infoseek.co.jp)

236:デフォルトの名無しさん
09/07/19 23:31:01
>>222
URLリンク(kansai2channeler.hp.infoseek.co.jp)

237:デフォルトの名無しさん
09/07/19 23:47:26
>>171のクライアントがハンドル名@マシン名をサーバに送って、そのメッセージを
サーバ側であるバッファに格納する部分はどう書けばいいんでしょうか?
クライアントのどの部分でサーバにWriteLineで送るのかと
サーバ側がいつ送られてきたメッセージを受信するのかが分かりません

238:デフォルトの名無しさん
09/07/19 23:51:49
デバッグエラーが出てしまいます。原因は何でしょうか。お願いします。ちなみに問題は以下です
配列を使って10個のデータを関数に渡します.
下記の平均を返す関数 ave1() を main 関数から呼び出し平均を求めなさい.
なお,main 関数では 配列に10個の値を代入し,ave1() を呼び出し,その結果を表示します.

#define NUM 10
double ave1( int dd[NUM] ){
int i, sum;
for(sum=0, i=0;i<NUM;i++){
sum += dd[i];
}
return (sum/(double)NUM);
}

239:デフォルトの名無しさん
09/07/19 23:54:43
#include<iostream>
using namespace std;

int main(){
int i,j;

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

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

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

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

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



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

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

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



241:239
09/07/19 23:56:16
1問忘れてしまいました

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

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







次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch