トップページ⇒tech
1001コメント473KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/12/03(水) 23:08:12
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

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

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

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

前スレ
C/C++の宿題を片付けます 118代目
http://pc11.2ch.net/test/read.cgi/tech/1226847424/
0153デフォルトの名無しさん2008/12/06(土) 11:31:41
>>152
なんでお前へらへらしてんの?
きもい
0154デフォルトの名無しさん2008/12/06(土) 11:41:42
>>153
なんでお前いらいらしてんの?
きんもぉ〜★
0155デフォルトの名無しさん2008/12/06(土) 11:55:23
>>153
まぁ、↓でも見て落ち着きなよ。和むぜ?
ttp://emaedanaoko.at.infoseek.co.jp/flash/peri.swf
0156デフォルトの名無しさん2008/12/06(土) 13:03:11
[1] 授業単元: プログラミング�T
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8230.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] VS2005
 [3.3] 言語: Cのみ
[4] 期限: 2008年12月7日まで
[5] このような実行結果になるように求められていますhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8231.txt
   もっとも最近習ったもの(この宿題が出された時間に習ったもの)はwhile、do-whileです

よろしくお願いします
0157デフォルトの名無しさん2008/12/06(土) 13:13:45
>>156
#include <stdio.h>

int main()
{
int x, y, s;
while (1) {
fputs("1番目の整数= ", stdout);
scanf("%d", &x);
fputs("2番目の整数= ", stdout);
scanf("%d", &y);
printf("%d + %d = ", x, y);
scanf("%d", &s);
if (x + y == s) {
puts("正解です");
} else {
puts("不正解です");
}
fputs("さらに続けますか?(0:止める,1:続ける):", stdout);
scanf("%d", &s);
if (s == 0) break;
}
return 0;
}
0158デフォルトの名無しさん2008/12/06(土) 13:19:32
[1] 授業単元:Cプログラム
[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8232.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語:C++
[4] 期限:2008/12/10まで
[5] その他の制限:できるだけ簡単に、とのことでした。配列、if文、for文のみで出来るでしょうか?

#include <stdio.h>

void main(){
int a[10];
int x,i,sum;
printf("データ数を入力");
scanf("%d",&x);
for(i=0; i<x; i++){
printf("a[%d] = ??? ",i);
scanf("%d",&a[i]);
}
for(i=0,sum=0; i<x; i++){
sum += a[i];
}
printf("合計= %d \n", sum);
}
序盤のここまではできたのですが、この後がわかりません。
それと、質問なのですがint a[10]として、データ数入力を10以上にするとエラーになるとおもいます。
その場合、入力できる最大の数を入れる場合どうすればいいのでしょうか?
それではよろしくお願いします。
01591082008/12/06(土) 13:58:38
>>150
ありがとうございます。挑戦してみます!
0160デフォルトの名無しさん2008/12/06(土) 14:19:16
入力された30000以下の秒数を、「○○時間、○○分、○○秒」の形式で
出力するプログラムをつくりなさい。
0161デフォルトの名無しさん2008/12/06(土) 14:26:54
>>160
#include <iostream>
int main()
{
int c;
std::cin >> c;
std::cout << c / 3600 << "時間、"
<< c % 3600 / 60 << "分、"
<< c % 3600 % 60 << "秒" << std::endl;
return 0;
}
0162デフォルトの名無しさん2008/12/06(土) 14:55:06
[1]授業単元;C言語
[2]問題文
 0〜9の擬似乱数を発生させ、キーボードから入力した
任意の数字と一致したときに両者をディスプレイに
表示させ終了するプログラムを作りなさい。
乱数とキーボードとあったときだけ表示する。
だめだったら繰り返す。
ただし、宣言文に
#include<stdlib.h>
#include<time.h>
を、またmain関数内に
srand(unsigned) time(NULL);
を宣言して
rand()
用いる


[3]
 [3.1]OS:XP
[3.2]コンパイラとパーテンション:vc6.0
[4]期限:2008/12/10
お願いします
0163デフォルトの名無しさん2008/12/06(土) 15:00:34
>>162
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int x;
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));
srand((unsigned int)time(NULL));
while (1) {
scanf("%d", &x);
if (x == s) break;
}
printf("%d %d\n", x, s);
return 0;
}
0164デフォルトの名無しさん2008/12/06(土) 15:08:48
>>163
出来てないみたい
のでもう一度お願いします
0165デフォルトの名無しさん2008/12/06(土) 15:15:54
>>163
rand()/(RAND_MAX+1.0) では?その値に、範囲の最大から最小を引いた差を
掛けてやれば良い。
0166デフォルトの名無しさん2008/12/06(土) 15:20:01
>>165
(int)(rand() * 9 / (1.0 + RAND_MAX));
にしろと?
おまえ馬鹿?
0167デフォルトの名無しさん2008/12/06(土) 15:22:30
>>164
どのあたりをみてできてないと思ったか感想をお願いします
0168デフォルトの名無しさん2008/12/06(土) 15:26:47
数字入力→乱数でる→一致しなかったらやり直し
となるはずですが
何もでてないです
0169デフォルトの名無しさん2008/12/06(土) 15:27:27
>>166
> おまえ馬鹿?
随分だな。しかもそんなこと言ってないし。基地外低脳バカは黙ってろよ、クズが
最近書き込まれている、口の悪いバカはお前だろ?死ねよアホ
0170アホの書いた稚拙なコード2008/12/06(土) 15:28:54

163 名前:デフォルトの名無しさん 投稿日:2008/12/06(土) 15:00:34
>>162
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));

その後の低脳基地外のアホ丸出しな口答え

166 名前:デフォルトの名無しさん 投稿日:2008/12/06(土) 15:20:01
>>165
(int)(rand() * 9 / (1.0 + RAND_MAX));
にしろと?
おまえ馬鹿?
0171デフォルトの名無しさん2008/12/06(土) 15:30:02
コピペ君って馬鹿だな、まで読んだ。
0172デフォルトの名無しさん2008/12/06(土) 15:31:19
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));
↑アホ丸出しだ、こいつwwwwwww
>>166
>>165が理解出来ない?日本語も、物事も的確に理解できな奴って、
自分の無能さ、理解力の無さを、他人のせいにするから面倒だよな。
無能な癖して、思う通りに物事が進まないと、キレたりグズったりする
精神レベルの低い大人になりきれないお子ちゃま。
0173デフォルトの名無しさん2008/12/06(土) 15:31:35
>>168
一致したとき表示としか書いてなかったからそのようになってます
一致したときに両方表示して終了します

改造が必要であれば具体的に、言ってみてください
0174デフォルトの名無しさん2008/12/06(土) 15:32:45
srand((unsigned int)time(NULL));
int s = rand()%10;
0175デフォルトの名無しさん2008/12/06(土) 15:34:36
>>174
は?それもいまいちだろ?
0176デフォルトの名無しさん2008/12/06(土) 15:48:58
 別に乱数についてやってもいいが、スレッド違いだから止めておけ。
小手先技使っていい気になっている奴が消えることを祈る。
疑似乱数2
http://pc11.2ch.net/test/read.cgi/tech/1192628099/
0177デフォルトの名無しさん2008/12/06(土) 15:53:38
>>163 >>163 >>163 >>163 >>163 >>163 >>163 >>163 >>163 
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));

>>166 >>166 >>166 >>166 >>166 >>166 >>166 >>166 >>166 
(int)(rand() * 9 / (1.0 + RAND_MAX));

何   こ   れ   、   ア   ホ   で   す   か   ?
人の話をまともに聞かない、自分勝手を押し通す、指摘されれば
した人間を罵倒するなり、威圧するなりして押さえ込んで、自分を正当化してきたせいで
社会から孤立しましたか?
日本語が通じない人って、厄介ですね。己の未熟さを知れ、青二才めが。
0178デフォルトの名無しさん2008/12/06(土) 15:55:19
>>175
お  前  が  言  う  な  w
お前のは、いまいちどころじゃないがw
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));
(int)(rand() * 9 / (1.0 + RAND_MAX));
0179suzuki2008/12/06(土) 16:03:58
日本大学理工学部電気工学科の生徒の皆さん。
このスレの回答の丸写しが発覚した場合、それを減点対象にします。
自分の力で問題を解くようにしてください。
0180デフォルトの名無しさん2008/12/06(土) 16:06:34
rand()が返す値に範囲の最大と最小の差を掛けてるのか。今回は影響しないが、
範囲によっては不適切だな。完全に駄目とは言わないが、RAND_MAXを使用して
0〜1未満の範囲の値を出してからの方が無難。そこに差を掛けて、最小を加えると。
人それぞれだが、汎用性を考慮するなら、もう一歩、前進したいところだ。
0181デフォルトの名無しさん2008/12/06(土) 16:36:26
>>179
死ね
0182デフォルトの名無しさん2008/12/06(土) 16:48:58
>>180
いい方法ってどんなのがあるんですか?
教えてください
ちなみに私は>>163 >>166ではありません
0183デフォルトの名無しさん2008/12/06(土) 17:26:42
[1] 授業単元:プログラミング 基礎
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8233.c
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:2008年12月08日18:00まで
  よろしくお願いいたします
0184デフォルトの名無しさん2008/12/06(土) 17:54:31
[1] 授業単元:C
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8234.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[5] その他の制限
 [5.1]for文の二重ループを使う

どなたかよろしくお願いします
0185デフォルトの名無しさん2008/12/06(土) 18:23:43
下の二つは乱数の偏りはどちらも同じ
ただ偏り方がディザリングされているかどうかが違うだけ
rand()%10
(double)rand()/(RAND_MAX+1)*10
0186デフォルトの名無しさん2008/12/06(土) 18:30:22
リスト構造を使ってアドレス帳を作るにはどうすればいいですか??
0187デフォルトの名無しさん2008/12/06(土) 18:32:23
[1]授業単元:C(C++?)
[2]問題文:「AT-GPIB/TNT」GPIBと計測器を使い、発振器の波形を取り込みデータを保存する。
[3]環境:コンパイラBorlandC
[4]制限:GPIBの関数を使う。以下はその一例
ibsic():指定したGPIBボードの初期設定、
ibdev():指定デバイスの設定
ibfind():指定したアドレスのデバイスを検出
ibclr():指定したアドレスのデバイスの初期設定
ibwrt():指定したアドレスのデバイスへ送信
ibrd():指定したアドレスのデバイスから受信:
ibonl():装置のクローズ

単位落としそう。
できるなら、説明文付け加えてください。
面倒だったら説明文は省いてもいいです
よろしくお願いします;;;
0188デフォルトの名無しさん2008/12/06(土) 18:33:27
>>185
偏りは同じじゃないよ。下1桁が同じものが連続して出る確率の方が、
RAND_MAX以下の値の中から1つ選ぶのとでは、違いすぎる。
ただ、それでもrand()に依存するため、所詮は擬似だけど。
0189デフォルトの名無しさん2008/12/06(土) 18:39:07
ちなみに、自分の環境では、RAND_MAXは2^16-1の65535。それ以下の範囲から
1つ選んだのと、例えば出た順番が 15 10005 20005 と出た場合、
rand()%10はどれも5だが、もう一方のは、値が小さい程0に近く、大きいほど10に近くなる。
0190デフォルトの名無しさん2008/12/06(土) 18:50:35
>>189
馬鹿を晒すなw
0191デフォルトの名無しさん2008/12/06(土) 19:05:48
>>190
馬鹿はおまえだろ
0192デフォルトの名無しさん2008/12/06(土) 19:06:22
rand()が返す値は、srandのSEEDによって違うが、下1桁が同じものが出る
偏りは起こりうる。なんなら、適当にSEEDを与えて、2つの式によって得られる値に
偏りがあるか、統計をとってみては?
0193デフォルトの名無しさん2008/12/06(土) 19:08:16
>>157
ありがとう!
0194おねがいしますw2008/12/06(土) 19:08:51
>>128
お願いします
0195デフォルトの名無しさん2008/12/06(土) 19:10:17
rand() が一様乱数で RAND_MAX が 7 であるとき

r=rand() r%6 r/(RAND_MAX+1)*6
0 0 0
1 1 0
2 2 1
3 3 2
4 4 3
5 5 3
6 0 4
7 1 5

r%6 の場合には 0 と 1 が他に比べて 2倍
r/(RAND_MAX+1)*6 の場合には 0 と 3 が他に比べて 2倍
の確率で出現する

偏り方が同じっていう表現をどうとるかによるな
0196デフォルトの名無しさん2008/12/06(土) 19:14:44
スレ違い
0197デフォルトの名無しさん2008/12/06(土) 20:24:21
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8235.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
 [4] 期限:2008年12月08日まで
  よろしくお願いします
0198デフォルトの名無しさん2008/12/06(土) 21:54:46
>>128
これ、たたき台のプログラム、display() の部分作れって言ってるけど、他の部分もおかしいよ

どうすればいい?
0199デフォルトの名無しさん2008/12/06(土) 22:00:41
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
3行3列の行列をガウスの消去法をつかって単位行列にするプログラムを作る。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年12月9日
[5] その他の制限:最近ポインタを習い、そのときの課題です。
よろしくおねがいします。
0200「 ◆xstMZhzLPE 2008/12/06(土) 22:02:44
[1] 授業単元:プログラミング
[2] 問題文

以下の機能を実現するプログラムを作れ:
􀀄 元本と利率を入力できる。ただし、単利と複利そ
れぞれに別の利率を設定することもできる。
􀀄 最初に以下の処理のどちらかをユーザが選んで
実行できる(プログラムとしては1つのもので全
部の機能を提供すること)
􀀉 入力した年数が経過したら、単利・複利それぞれいく
らになるかを表示する。
􀀉 複利の方が(利率が低い場合でも)何年後に単利を追
い越すかを表示する。

forとwhileを使ってください





[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:visual studio2003
 [3.3] 言語: C++
 [4] 期限:2008年12月11日まで
  どうかよろしくお願いします
0201デフォルトの名無しさん2008/12/06(土) 22:07:05
>>195
randが一様乱数という仮定が大抵の環境で成り立たないというのが現実。
線形合同法が悪すぎる。
0202デフォルトの名無しさん2008/12/06(土) 22:11:37
>>197


http://blog-imgs-32.fc2.com/u/g/l/uglike/tree.txt(UTF-8)
0203デフォルトの名無しさん2008/12/06(土) 22:15:24
[1]授業単元:画像処理
[2]問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8236.zip
[3]環境
 [3.1]OS:WindowsXP
 [3.2]コンパイラ環境:bcc(Borland C++)
 [3.3]言語:C

[4]期限:2008年12月8日
[5]その他の制限:特にないが、URLのzipファイル内にある雛形のプログラム
を用いて作成すること。

自分の思うように動作せず困っているので、どうか宜しくお願い致します。
0204デフォルトの名無しさん2008/12/06(土) 22:21:22
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): リスト構造によるアドレス帳の作成
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: (C言語)
[4] 期限: ([2008年12月7日20:00まで])

よろしくお願いします。
0205デフォルトの名無しさん2008/12/06(土) 22:23:53
>>200
926 デフォルトの名無しさん[sage] 2008/12/03(水) 01:50:21
#include <math.h>
#include <iostream>
class cash {
protected:
double ga; double yen; double ri;
public:
cash(double ganpon, double riritsu) : ga(ganpon), yen(ganpon),ri(riritsu) { }
virtual void addYear() = 0; void show() { std::cout << floor(yen);}
bool operator<=(const cash& op) { return yen <= op.yen ? true : false;}
};
class hukuri : public cash {
public:
void addYear() { yen *= 1.0 + ri;} hukuri(double ganpon, double riritsu) : cash(ganpon, riritsu){ }};
class tanri : public cash {
public:
void addYear() { yen += ga * ri;} tanri(double ganpon, double riritsu) : cash(ganpon, riritsu){ }};
int main()
{ double gan, rit, rih; int y, ay = 0;
std::cout << "元本: " << std::endl; std::cin >> gan;
std::cout << "単利の利率: " << std::endl; std::cin >> rit; tanri t(gan, rit);
std::cout << "複利の利率: " << std::endl; std::cin >> rih; hukuri h(gan, rih);
std::cout << "年数: " << std::endl; std::cin >> y;
for (int i = 0; i < y; ++i) { h.addYear(); t.addYear();
if (t <= h && ay == 0) ay = i + 1; }
std::cout << "単利"; t.show(); std::cout << "円" << std::endl;
std::cout << "複利"; h.show(); std::cout << "円" << std::endl;
if (rit > rih) std::cout << "追い付くのは" << ay << "年" << std::endl;
return 0;}
前スレにあった気がしたので持ってきた
0206 ◆ncE6YQxqag 2008/12/06(土) 22:26:05
[1]授業単元: 応用C言語
[2]問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8238.c
[3]環境
 [3.1]OS:WindowsXP
 [3.2]コンパイラ環境:cygwin
 [3.3]言語:C

[4]期限:2008年12月8日
[5]その他の制限:
制限等は特にございません。
宜しくお願い致します。
0207デフォルトの名無しさん2008/12/06(土) 22:41:20
>>204
#include <stdio.h>
typedef struct ad_list AdList;
struct ad_list{
AdList * next;
char name[1000];
char address[1000];
};
void printlst(const AdList * o)
{
if (o == NULL) return;
for (; o; o = o->next) {
printf("%s, %s\n", o->name, o->address);
}
}
int main()
{
AdList lst = {NULL, "A", "1-1"};
AdList b = {NULL, "B", "1-2"};
AdList c = {NULL, "C", "1-3"};
lst.next = &b;
b.next = &c;
c.next = NULL;
printlst(&lst);
return 0;
}
0208デフォルトの名無しさん2008/12/06(土) 22:49:21
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
  データベースのソート機能プログラムを作成しなさい。
  〇山梨県の市のデータ(名前・人口)を各項目で昇順又は降順にソートできるようにする。
  〇最初に「どのフィールドでソートにしますか?」とたずねる文を表示し、入力されたら、
   「降順(大きい順)昇順(小さい順)かを決めてください」とたずねる文を表示する。
   入力されたらソートを実行する。(当然フィールドでソートが行われていなければならない)
  〇市の名前はポインタ配列で宣言する。
  〇ソートにはバブルソートを使うこととし、人口(数値)の入れ替えにはswap関数を
   使うこととする。(市名(ポインタ配列)の入れ替えは外部関数でなくてもよい)
  〇文字列にの比較には標準のstrcmp関数を使ってよい。(昇順はA→Z、降順Z→A)
   名前  人口
・koufu 199,445  ・kai 74,036 ・nirasaki 33,792   ・hokuto 47,662
・minami-alps 72,129  ・chuo 31,778 ・fuefuki 71,290   ・yamanashi 38,337
・koushu 35,233 ・otsuki 30,152  ・tsuru 34,416  ・fujiyoshida 52,102
・uenohara 28,400
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:bcc?
 [3.3] 言語: C言語
[4] 期限:今週中ぐらい
[5] その他の制限: 繰り返し文、条件判断文、関数、ポインタ配列勉強しました。
  初心者なので、初心者にも分かるようなプログラムをお願いします。

0209デフォルトの名無しさん2008/12/06(土) 22:55:29
[1] 授業単元:プログラミング
[2] 問題文
次のように1行に日付とその日の最低気温、最高気温が記録されたファイル(ファイル名:temp.dat)
があるとする。

1 10.0 30.0
2 12.1 28.8
3 11.3 25.2
4 10.5 27.4
5 13.1 28.0
6 9.8 24.2
7 11.9 30.4

このファイルを読み込んでファイルの中での最高気温がもっとも高い日の日付と最高気温、
同様に最も低い最低気温とその日付を表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2008年12月8日
[5] その他の制限: 上記のファイルが存在する設定で行うためプログラムさえ作成されていればよい。
0210デフォルトの名無しさん2008/12/06(土) 23:01:13
>>206
アドレスで返せってあるんだけど
1.mallocして確保して返す.
2.関数がstaticな構造体を持つ
3.第一引数を破壊してそれを返す
どれがいい?
0211 ◆ncE6YQxqag 2008/12/06(土) 23:19:01
>>210さん

2番でお願いします。
0212デフォルトの名無しさん2008/12/06(土) 23:38:47
>>69ですが、できる方いらっしゃいますか・・・?
0213デフォルトの名無しさん2008/12/06(土) 23:43:42
>>211
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8240.c
>>210
でいうところの1.となっております。
動いて数値が出るのは確認しましたが、検算はしてません
0214デフォルトの名無しさん2008/12/06(土) 23:52:59
>>209
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8241.txt
0215デフォルトの名無しさん2008/12/06(土) 23:57:15
>>212
できるだろうけど、プログラムがでかくなるので作るのが面倒
0216「 ◆xstMZhzLPE 2008/12/07(日) 00:01:04
>205

whileのループを用いていただきたいんです。授業でもこちらのスレほどレベルが高くなので
わかりやすくしていただけたら嬉しいです。

やっていただいた方には感謝の気持ちと申し訳ない気持ちで一杯です・・・。
0217デフォルトの名無しさん2008/12/07(日) 00:22:29
>>215
そうですか・・・ですが、どなたかお願いします・・・!
0218デフォルトの名無しさん2008/12/07(日) 00:37:20
>>217
     _ 、      へ 、
   .〃´ \ 、  〃   il
   .li    ヽV/-‐--|| 、
   .!|  ,. '  `.´   !l   ` 、
   |.| ' , ' ,       ||  、` 、 \
  ./!|/ ./ / i ヽ|!\ \ \ ヽ
 /./ / / ./ .l. {  { ヽ }ヽヽ\ \ ヽ ヽ
 ! i .i | { .|、-ヽ ヽ―ト}、\ヽ. }_ | l
 lハ | | l'´.l _Lヽ!\ヽ,,⊥._ヽ} }/77| |
 ! !l. ! lヽイfハ    ` |.f;;cl” |/〃 ! | |
   `ヽlヽ ゝ. !tj|    !.t''ノ .ノイ} .|. | !   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ヽ! !  ̄ `_    ̄` ノン | l |i. | < 2つほど制限ついてもいいなら書くよ
          |丶、     ,.イ´ .l | l ||. !   \___________
        ヽ| |. ー__' ´-‐'i  | | l l.l |l
         ヽN/´ _ /`ヽ、|. l. /レ !
        /| ` ̄ /     \レ’
       ,<ヽ l  ,. '        ヽ
      /  ヽヽl /  _ -‐_ニニ二、ヽ
     ./      レ ‐´ ´        .V}

  関数のプロトタイプに書かれているインターフェースを利用しない
  動作説明とアルゴリズムの説明はコメントレベルでしか書かない
0219デフォルトの名無しさん2008/12/07(日) 00:39:02
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): A社のトイレットペーパーは半径12mmの芯に巻かれ、
トイレットペーパーの最も外側の半径が53mmである。トイレットペーパーの紙厚が0.1mmのときに、
このトイレットペーパーの長さはおおよそ何mであるかを求めるプログラムを書け。
ただし、長さはm単位で小数第2位まで表示するものとする。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: VisualStudio2005
 [3.3] 言語: C++
[4] 期限:2008年12月17日まで
[5] その他の制限: 特になし
0220デフォルトの名無しさん2008/12/07(日) 00:53:04
断面積S[mm^2]、厚さd[mm]として、長さL=S/d[mm]

プログラミングの課題としては、"同心円の円周の和"を期待しているのかも
0221デフォルトの名無しさん2008/12/07(日) 00:54:25
>>219
#include <iostream>

const double PI = 3.14;

class Role {
double core_r; // 芯の太さ
double r; // 現在の半径
double len; // 現在の紙の長さ
double paper; // 紙の厚さ
public:
Role(double c, double p) : core_r(c), r(c), len(0.0), paper(p) { }
void rolingOne() { // 一巻する
len += 2 * PI * r;
r += paper;
};
double getSize() { return r; }
double getLength() { return len; }
};

int main()
{
const double core_r = 12.0;
const double role_r = 53.0;
const double paper_d = 0.1;
Role ro(core_r, paper_d);

for (; ro.getSize() < role_r; ro.rolingOne());
std::cout << ro.getLength() / 1000.0 << "m" << std::endl;
return 0;
}
0222デフォルトの名無しさん2008/12/07(日) 01:14:31
>>184
#include <stdio.h>

int EnNoNaka(double x, double y) { return (x * x + y * y <= 1)? 1: 0; }
int main(void)
{
int n;
double x, y, d;
int count = 0;

printf("input n >> "); scanf("%d", &n);

d = 1.0 / (double)n;
for (x = -1; x < 1; x += d) {
for (y = -1; y < 1; y += d) {
if (EnNoNaka(x, y) && EnNoNaka(x + d, y + d)) count++;
}
}

printf("Answer = %lf\n", count * d * d);
return 0;
}
0223デフォルトの名無しさん2008/12/07(日) 01:36:16
[1] 授業単元:TurboDebuggerの使用
[2]問題文(含コード&リンク):本に「TurboDebuggerというデバッガを無料で配布しています(本書付属
CD-ROMに収録)。インストール後にパスを設定すると(p.23参照)、BCCDeveloperの<デバッグ>ボタンを
クリックして起動できます。」とあるがパスの設定とはどうするのでしょうか。
TurboDebuggerの環境設定でコンパイラとデバッガの場所は指定済みです。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン: Borland C++
 [3.3] 言語: C
[4] 期限:2008年12月12日まで
[5] その他の制限: 特になし
0224デフォルトの名無しさん2008/12/07(日) 01:37:26
>>223
ちょっと笑ったww
マルチなのか騙りなのか・・・・・
どっちにしろスレ違い
0225デフォルトの名無しさん2008/12/07(日) 01:45:08
すみません223の質問の訂正です。問題文の「TurboDebuggerの環境設定」
を「BCCDeveloperの環境設定」に訂正します。
[1] 授業単元:TurboDebuggerの使用
[2]問題文(含コード&リンク):本に「TurboDebuggerというデバッガを無料で配布しています(本書付属
CD-ROMに収録)。インストール後にパスを設定すると(p.23参照)、BCCDeveloperの<デバッグ>ボタンを
クリックして起動できます。」とあるがパスの設定とはどうするのでしょうか。
BCCDeveloperの環境設定でコンパイラとデバッガの場所は指定済みです。
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン: Borland C++
 [3.3] 言語: C
[4] 期限:2008年12月12日まで
[5] その他の制限: 特になし
0226デフォルトの名無しさん2008/12/07(日) 01:47:57
すみません223=225ですが
スレ違いなら、どこのスレがいいでしょうか。
0227デフォルトの名無しさん2008/12/07(日) 01:48:59
Windowsの環境変数PATHにデバッガとコンパイラのパスを通してみて

これが宿題だったら笑う
0228デフォルトの名無しさん2008/12/07(日) 01:57:18
>>218さん

ぜひお願いします!
0229デフォルトの名無しさん2008/12/07(日) 02:12:48
>>221さん
private: System::Void button1_Click(System::Object^
sender, System::EventArgs^ e) {
ここに入れたいのですが
}
そのままいれても大丈夫ですか?
制限なしと書いたのにすみません。
0230デフォルトの名無しさん2008/12/07(日) 02:42:23
どう見てもC/C++ではないんだが…

個人的には数学的に解いて、教官を困らせてやるのがお勧め

double r1 = 12.0;
double r2 = 53.0;
double d = 0.1;
double l = Math::PI * (r2 * r2 - r1 * r1) / d;
0231デフォルトの名無しさん2008/12/07(日) 02:45:16
>>229
C++/CLIは全くわからないんだが、
そのままつっこむってどのくらいそのままなのかによるよ
そのまま丸ごとコピペしたらおそらく動かない

クラスと関数を置く位置ちゃんとしてたら動くだろきっと

0232デフォルトの名無しさん2008/12/07(日) 02:48:39
[1] 授業単元:プログラミング 基礎
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8245.txt
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:2008年12月08日18:00まで
  よろしくお願いいたします
0233デフォルトの名無しさん2008/12/07(日) 02:53:41
>>69
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8244.zip
動作とアルゴリズムは、読めばわかるので説明付けなかった。
ただ、僕の作った汎用リストのテストケースとして使わせてもらったので、アップしただけです。
まぁ、Cygwinとかなっているので、makeをソースから入れてmakeすればいいよ。

僕は、>>218さんではないので、>>218さんのソースを待ってあげてください。
0234デフォルトの名無しさん2008/12/07(日) 02:57:56
>>232
int strToInt(char string[])
{
int index = 0;
int result = 0;
int sign = 0;
char c;

// check first char
c = string[index];
sign = 1;
if((c == '+') || (c == '-'))
{
index++;
if(c == '-')
{
sign = -1;
}
}
while(c = string[index++])
{
result *= 10;
result += c - '0';
}
result *= sign;
return result;
}

なるたけ原形を維持しといた、スペース等は考慮しないっぽいと判断したので、変な文字列は変な変換結果を返す
0235デフォルトの名無しさん2008/12/07(日) 03:02:15
>>230さん
追記です。
ツールボックスの機能を使って作ってるんですが
ボタン1個とラベル1個を使ってボタンを押したら長さは○mです。
と表示したいです。
結果は83.59mになるみたいです。
0236デフォルトの名無しさん2008/12/07(日) 07:13:12
「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、バグ報告などなど書き込みお願いします。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。

2ちゃん本スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1226294070/l100
0237デフォルトの名無しさん2008/12/07(日) 08:30:15
>>235
コラー!!
0238デフォルトの名無しさん2008/12/07(日) 09:50:43
>>221
なぁ〜〜にぃ〜〜!?やっちまったな!
0239おねがいしますw2008/12/07(日) 10:04:52
>>198の方
>>128の者です えっと、他は違う場合自分でやれると思うんで 
演習のプログラムだけお願いします。 あと、教科書を手打ちしましたが
間違いがどこだか分かりません。 その辺の指摘もできたらお願いしますw
ほかの方も >>128 お願いしますw
0240デフォルトの名無しさん2008/12/07(日) 10:32:42
>>219 クソースいくでおじゃる。

#include <iostream>
using namespace std;
#define PI 3.14
int main() {
int i,pl=100,len,dmin=12000,dmax=53000; // mmを1000倍して割り出す
for(i=dmax; i>dmin; i-=pl) len += (2*i)*PI;
cout << len/1000/1000.0 << endl;
return 0;
}
0241デフォルトの名無しさん2008/12/07(日) 10:40:41
どなたか>>158お願いします。
0242デフォルトの名無しさん2008/12/07(日) 10:46:28
>>158
1)
#include <stdio.h>
void main(){
int a[256];
int x,i,sum;
printf("データ数を入力");
scanf("%d",&x);
for(i=0; i<x; i++){
printf("a[%d] = ??? ",i);
scanf("%d",&a[i]);
}
for(i=0,sum=0; i<x; i++) sum += a[i];
printf("%d個のデータの合計= %d\n", x, sum);
}
0243デフォルトの名無しさん2008/12/07(日) 10:47:44
2)
#include <stdio.h>
void main(){
int a[256];
int x,i,max;
printf("データ数を入力");
scanf("%d",&x);
for(i=0; i<x; i++){
printf("a[%d] = ??? ",i);
scanf("%d",&a[i]);
}
for(i=1,max=a[0]; i<x; i++){
if (max < a[i]) max = a[i];
}
printf("%d個のデータの最大値= %d\n", x, max);
}
0244デフォルトの名無しさん2008/12/07(日) 10:51:38
3)
#include <stdlib.h>
#include <stdio.h>
int compare(const void *a, const void *b)
{
return *(const int *)b - *(const int *)a;
}
int main(){
int a[256];
int x,i;
printf("データ数を入力");
scanf("%d",&x);
for(i=0; i<x; i++){
printf("a[%d] = ??? ",i);
scanf("%d",&a[i]);
}
printf("%d個の元データ: ");
for(i=0; i<x; i++) printf(" %d", a[i]);
printf("\n");
qsort(a, x, sizeof(int), compare);
printf("%d個のデータを大きい順に並べ替えたもの:\n", x);
for(i=0; i<x; i++) printf(" %d", a[i]);
return 0;
}
0245デフォルトの名無しさん2008/12/07(日) 10:53:11
>>222
本当にありがとうございます
0246デフォルトの名無しさん2008/12/07(日) 11:06:36
>>242-244
なんとお早い・・・。ありがとうございます。
すみませんが3を
int compare(const void *a, const void *b)
{
return *(const int *)b - *(const int *)a;
}
qsort

を使わずに作成できますでしょうか?

ヒントとして
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8246.txt
をもらったのですが・・・。
0247デフォルトの名無しさん2008/12/07(日) 11:23:33
>>246
#include <stdlib.h>
#include <stdio.h>
int main(){
int a[256];
int x,i,j,t;
printf("データ数を入力");
scanf("%d",&x);
for(i=0; i<x; i++){
printf("a[%d] = ??? ",i);
scanf("%d",&a[i]);
}
printf("%d個の元データ: ",x);
for(i=0; i<x; i++) printf(" %d", a[i]);
printf("\n");
for(i = 0; i < x; i++){
for(j = 0; j < x - 1; j++){
if (a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("%d個のデータを大きい順に並べ替えたもの:\n", x);
for(i=0; i<x; i++) printf(" %d", a[i]);
return 0;
}
0248デフォルトの名無しさん2008/12/07(日) 11:26:22
>>247
ありがとうございます!できました!
0249デフォルトの名無しさん2008/12/07(日) 11:32:25
学校の課題がわかりません。どなたか>>208をおねがいします。

期限は12月13日ぐらいまでです。
0250デフォルトの名無しさん2008/12/07(日) 11:56:36
>>208
市名(文字列)とintの構造体として定義できない縛りがアホっぽい
0251デフォルトの名無しさん2008/12/07(日) 12:01:58
>>208
#include <stdio.h>
#include <string.h>
char *namae[13] = {"koufu", "kai", "nirasaki", "hokuto", "minami-alps",
"chuo", "fuefuki", "yamanashi", "koushu", "otsuki", "tsuru",
"fujiyoshida", "uenohara"};
long jinko[13] = {199445, 74036, 33792, 47662, 72129, 31778, 71290,
38337, 35233, 30152, 34416, 52102, 28400};
void swap(long *a, long *b){
long n = *a; *a = *b; *b = n;
}
void sort1(int n){
int i, j; char *p;
for(i = 0; i < 13; i++){for(j = 13 - 1; j > i; j--){
if (n == 1){if (strcmp(namae[j - 1], namae[j]) < 0){
p = namae[j - 1]; namae[j - 1] = namae[j]; namae[j] = p;
swap(&jinko[j - 1], &jinko[j]);
}}else{
if (strcmp(namae[j - 1], namae[j]) > 0){
p = namae[j - 1]; namae[j - 1] = namae[j]; namae[j] = p;
swap(&jinko[j - 1], &jinko[j]);
}}}}}
void sort2(int n){
int i, j; char *p;
for(i = 0; i < 13; i++){
for(j = 13 - 1; j > i; j--){
if (n == 1){
if (jinko[j - 1] < jinko[j]){
p = namae[j - 1]; namae[j - 1] = namae[j]; namae[j] = p;
swap(&jinko[j - 1], &jinko[j]);
}}else{
0252デフォルトの名無しさん2008/12/07(日) 12:03:20
if (jinko[j - 1] > jinko[j]){
p = namae[j - 1]; namae[j - 1] = namae[j]; namae[j] = p;
swap(&jinko[j - 1], &jinko[j]);
}}}}}
int main(void){
int m, n, i;
printf("<メニュー> 1: 名前 2:人口\n");
printf("どのフィールドでソートにしますか? ");
scanf("%d", &m);
printf("<メニュー> 1: 降順(大きい順) 2:昇順(小さい順)\n");
printf("降順か昇順かを決めてください");
scanf("%d", &n);
switch(m){
case 1: sort1(n); break;
case 2: sort2(n); break;
}
for(i = 0; i < 13; i++)
printf("%15s: %10ld\n", namae[i], jinko[i]);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています