C/C++の宿題を片付けます 119代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/12/03(水) 23:08:12【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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なんでお前へらへらしてんの?
きもい
0154デフォルトの名無しさん
2008/12/06(土) 11:41:42なんでお前いらいらしてんの?
きんもぉ〜★
0155デフォルトの名無しさん
2008/12/06(土) 11:55:23まぁ、↓でも見て落ち着きなよ。和むぜ?
ttp://emaedanaoko.at.infoseek.co.jp/flash/peri.swf
0156デフォルトの名無しさん
2008/12/06(土) 13:03:11[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#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[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以上にするとエラーになるとおもいます。
その場合、入力できる最大の数を入れる場合どうすればいいのでしょうか?
それではよろしくお願いします。
0159108
2008/12/06(土) 13:58:38ありがとうございます。挑戦してみます!
0160デフォルトの名無しさん
2008/12/06(土) 14:19:16出力するプログラムをつくりなさい。
0161デフォルトの名無しさん
2008/12/06(土) 14:26:54#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[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#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出来てないみたい
のでもう一度お願いします
0165デフォルトの名無しさん
2008/12/06(土) 15:15:54rand()/(RAND_MAX+1.0) では?その値に、範囲の最大から最小を引いた差を
掛けてやれば良い。
0166デフォルトの名無しさん
2008/12/06(土) 15:20:01(int)(rand() * 9 / (1.0 + RAND_MAX));
にしろと?
おまえ馬鹿?
0167デフォルトの名無しさん
2008/12/06(土) 15:22:30どのあたりをみてできてないと思ったか感想をお願いします
0168デフォルトの名無しさん
2008/12/06(土) 15:26:47となるはずですが
何もでてないです
0169デフォルトの名無しさん
2008/12/06(土) 15:27:27> おまえ馬鹿?
随分だな。しかもそんなこと言ってないし。基地外低脳バカは黙ってろよ、クズが
最近書き込まれている、口の悪いバカはお前だろ?死ねよアホ
0170アホの書いた稚拙なコード
2008/12/06(土) 15:28:54163 名前:デフォルトの名無しさん 投稿日: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:020172デフォルトの名無しさん
2008/12/06(土) 15:31:19↑アホ丸出しだ、こいつwwwwwww
>>166
>>165が理解出来ない?日本語も、物事も的確に理解できな奴って、
自分の無能さ、理解力の無さを、他人のせいにするから面倒だよな。
無能な癖して、思う通りに物事が進まないと、キレたりグズったりする
精神レベルの低い大人になりきれないお子ちゃま。
0173デフォルトの名無しさん
2008/12/06(土) 15:31:35一致したとき表示としか書いてなかったからそのようになってます
一致したときに両方表示して終了します
改造が必要であれば具体的に、言ってみてください
0174デフォルトの名無しさん
2008/12/06(土) 15:32:45int s = rand()%10;
0175デフォルトの名無しさん
2008/12/06(土) 15:34:36は?それもいまいちだろ?
0176デフォルトの名無しさん
2008/12/06(土) 15:48:58小手先技使っていい気になっている奴が消えることを祈る。
疑似乱数2
http://pc11.2ch.net/test/read.cgi/tech/1192628099/
0177デフォルトの名無しさん
2008/12/06(土) 15:53:38int 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お 前 が 言 う な w
お前のは、いまいちどころじゃないがw
int s = 0 + (int)(rand() * (9 - 0 + 1.0) / (1.0 + RAND_MAX));
(int)(rand() * 9 / (1.0 + RAND_MAX));
0179suzuki
2008/12/06(土) 16:03:58このスレの回答の丸写しが発覚した場合、それを減点対象にします。
自分の力で問題を解くようにしてください。
0180デフォルトの名無しさん
2008/12/06(土) 16:06:34範囲によっては不適切だな。完全に駄目とは言わないが、RAND_MAXを使用して
0〜1未満の範囲の値を出してからの方が無難。そこに差を掛けて、最小を加えると。
人それぞれだが、汎用性を考慮するなら、もう一歩、前進したいところだ。
0181デフォルトの名無しさん
2008/12/06(土) 16:36:26死ね
0182デフォルトの名無しさん
2008/12/06(土) 16:48:58いい方法ってどんなのがあるんですか?
教えてください
ちなみに私は>>163 >>166ではありません
0183デフォルトの名無しさん
2008/12/06(土) 17:26:42[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[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:220187デフォルトの名無しさん
2008/12/06(土) 18:32:23[2]問題文:「AT-GPIB/TNT」GPIBと計測器を使い、発振器の波形を取り込みデータを保存する。
[3]環境:コンパイラBorlandC
[4]制限:GPIBの関数を使う。以下はその一例
ibsic():指定したGPIBボードの初期設定、
ibdev():指定デバイスの設定
ibfind():指定したアドレスのデバイスを検出
ibclr():指定したアドレスのデバイスの初期設定
ibwrt():指定したアドレスのデバイスへ送信
ibrd():指定したアドレスのデバイスから受信:
ibonl():装置のクローズ
単位落としそう。
できるなら、説明文付け加えてください。
面倒だったら説明文は省いてもいいです
よろしくお願いします;;;
0188デフォルトの名無しさん
2008/12/06(土) 18:33:27偏りは同じじゃないよ。下1桁が同じものが連続して出る確率の方が、
RAND_MAX以下の値の中から1つ選ぶのとでは、違いすぎる。
ただ、それでもrand()に依存するため、所詮は擬似だけど。
0189デフォルトの名無しさん
2008/12/06(土) 18:39:071つ選んだのと、例えば出た順番が 15 10005 20005 と出た場合、
rand()%10はどれも5だが、もう一方のは、値が小さい程0に近く、大きいほど10に近くなる。
0190デフォルトの名無しさん
2008/12/06(土) 18:50:35馬鹿を晒すなw
0191デフォルトの名無しさん
2008/12/06(土) 19:05:48馬鹿はおまえだろ
0192デフォルトの名無しさん
2008/12/06(土) 19:06:22偏りは起こりうる。なんなら、適当にSEEDを与えて、2つの式によって得られる値に
偏りがあるか、統計をとってみては?
0193デフォルトの名無しさん
2008/12/06(土) 19:08:16ありがとう!
0194おねがいしますw
2008/12/06(土) 19:08:51お願いします
0195デフォルトの名無しさん
2008/12/06(土) 19:10:17r=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:440197デフォルトの名無しさん
2008/12/06(土) 20:24:21[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これ、たたき台のプログラム、display() の部分作れって言ってるけど、他の部分もおかしいよ
どうすればいい?
0199デフォルトの名無しさん
2008/12/06(土) 22:00:41[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[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:05randが一様乱数という仮定が大抵の環境で成り立たないというのが現実。
線形合同法が悪すぎる。
0202デフォルトの名無しさん
2008/12/06(土) 22:11:37http://blog-imgs-32.fc2.com/u/g/l/uglike/tree.txt(UTF-8)
0203デフォルトの名無しさん
2008/12/06(土) 22:15:24[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[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:53926 デフォルトの名無しさん[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[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#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[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[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アドレスで返せってあるんだけど
1.mallocして確保して返す.
2.関数がstaticな構造体を持つ
3.第一引数を破壊してそれを返す
どれがいい?
0211 ◆ncE6YQxqag
2008/12/06(土) 23:19:012番でお願いします。
0212デフォルトの名無しさん
2008/12/06(土) 23:38:470213デフォルトの名無しさん
2008/12/06(土) 23:43:42ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8240.c
>>210
でいうところの1.となっております。
動いて数値が出るのは確認しましたが、検算はしてません
0214デフォルトの名無しさん
2008/12/06(土) 23:52:59http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8241.txt
0215デフォルトの名無しさん
2008/12/06(土) 23:57:15できるだろうけど、プログラムがでかくなるので作るのが面倒
0216「 ◆xstMZhzLPE
2008/12/07(日) 00:01:04whileのループを用いていただきたいんです。授業でもこちらのスレほどレベルが高くなので
わかりやすくしていただけたら嬉しいです。
やっていただいた方には感謝の気持ちと申し訳ない気持ちで一杯です・・・。
0217デフォルトの名無しさん
2008/12/07(日) 00:22:29そうですか・・・ですが、どなたかお願いします・・・!
0218デフォルトの名無しさん
2008/12/07(日) 00:37:20_ 、 へ 、
.〃´ \ 、 〃 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[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プログラミングの課題としては、"同心円の円周の和"を期待しているのかも
0221デフォルトの名無しさん
2008/12/07(日) 00:54:25#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#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[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ちょっと笑ったww
マルチなのか騙りなのか・・・・・
どっちにしろスレ違い
0225デフォルトの名無しさん
2008/12/07(日) 01:45:08を「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スレ違いなら、どこのスレがいいでしょうか。
0227デフォルトの名無しさん
2008/12/07(日) 01:48:59これが宿題だったら笑う
0228デフォルトの名無しさん
2008/12/07(日) 01:57:18ぜひお願いします!
0229デフォルトの名無しさん
2008/12/07(日) 02:12:48private: System::Void button1_Click(System::Object^
sender, System::EventArgs^ e) {
ここに入れたいのですが
}
そのままいれても大丈夫ですか?
制限なしと書いたのにすみません。
0230デフォルトの名無しさん
2008/12/07(日) 02:42:23個人的には数学的に解いて、教官を困らせてやるのがお勧め
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:16C++/CLIは全くわからないんだが、
そのままつっこむってどのくらいそのままなのかによるよ
そのまま丸ごとコピペしたらおそらく動かない
クラスと関数を置く位置ちゃんとしてたら動くだろきっと
0232デフォルトの名無しさん
2008/12/07(日) 02:48:39[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:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8244.zip
動作とアルゴリズムは、読めばわかるので説明付けなかった。
ただ、僕の作った汎用リストのテストケースとして使わせてもらったので、アップしただけです。
まぁ、Cygwinとかなっているので、makeをソースから入れてmakeすればいいよ。
僕は、>>218さんではないので、>>218さんのソースを待ってあげてください。
0234デフォルトの名無しさん
2008/12/07(日) 02:57:56int 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追記です。
ツールボックスの機能を使って作ってるんですが
ボタン1個とラベル1個を使ってボタンを押したら長さは○mです。
と表示したいです。
結果は83.59mになるみたいです。
0236デフォルトの名無しさん
2008/12/07(日) 07:13:12・高度な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コラー!!
0238デフォルトの名無しさん
2008/12/07(日) 09:50:43なぁ〜〜にぃ〜〜!?やっちまったな!
0239おねがいしますw
2008/12/07(日) 10:04:52>>128の者です えっと、他は違う場合自分でやれると思うんで
演習のプログラムだけお願いします。 あと、教科書を手打ちしましたが
間違いがどこだか分かりません。 その辺の指摘もできたらお願いしますw
ほかの方も >>128 お願いしますw
0240デフォルトの名無しさん
2008/12/07(日) 10:32:42#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:410242デフォルトの名無しさん
2008/12/07(日) 10:46:281)
#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#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#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本当にありがとうございます
0246デフォルトの名無しさん
2008/12/07(日) 11:06:36なんとお早い・・・。ありがとうございます。
すみませんが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#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ありがとうございます!できました!
0249デフォルトの名無しさん
2008/12/07(日) 11:32:25期限は12月13日ぐらいまでです。
0250デフォルトの名無しさん
2008/12/07(日) 11:56:36市名(文字列)とintの構造体として定義できない縛りがアホっぽい
0251デフォルトの名無しさん
2008/12/07(日) 12:01:58#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:20p = 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;
}
■ このスレッドは過去ログ倉庫に格納されています