<`Д´>C/C++の宿題は私にやらせるニダ!Ver11
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
ただし四面体の宿題は禁止!
前スレhttp://pc2.2ch.net/test/read.cgi/tech/1057070174/
9代目:http://pc2.2ch.net/test/read.cgi/tech/1055944101/ 150
8代目: http://pc2.2ch.net/test/read.cgi/tech/1055056940/l50
7代目: http://pc2.2ch.net/test/read.cgi/tech/1053963794/l50
6代目: http://pc2.2ch.net/test/read.cgi/tech/1053045530/l50
↓現在5代目スレまでhtml化完了
5代目: http://pc2.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc2.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0160デフォルトの名無しさん
NGNGround(1.005, 2)やってみ
0161デフォルトの名無しさん
NGNG2.C/C++から呼ぶ
終了
0162デフォルトの名無しさん
NGNGround(1.006,2)やってみ
0163128
NGNGbinary_search が call された回数: の出し方が分かりません。
教えてくださいお願いします。
0164デフォルトの名無しさん
NGNG適当なstaticな変数をインクリメント
0165デフォルトの名無しさん
NGNG適当なグローバル変数をインクリメント
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG組み合わせの数nCmを求める関数combinationを書け。この関数の引数は、整数が二つである。
例題1の関数factを利用して書いても良い。関数combinationを使ってPascalの三角形
(0<=n<=10),0<=m<=nの範囲のnCmの一覧表)を表示するmainを書くこと。
出力は例えば次のようになればよい
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...........
この表の出力の仕方がわかりません(´・ω・`)
とりあえずソース書きます
0169デフォルトの名無しさん
NGNGint fact(int x);
int combination(int n,int m);
int main(void){
int m,n,x,i;
printf("n: ");scanf("%d",&n);
printf("m: ");scanf("%d",&m);
x=combination(n,m);
printf("nCm=%d",x);
return(0);
}
int fact(int x)
{
int f;
f=1;
while(x>0){
f=f*x;
x=x-1;
}
return(f);
}
int combination(int n,int m){
int a;
a=fact(n)/(fact(m)*fact(n-m));
return(a);
}
0170デフォルトの名無しさん
NGNG例題1の関数 fact をキボンヌ。使わなくて何とかなりそうだが。
0171デフォルトの名無しさん
NGNGfor (m = 0; m <= n; m++)
printf("%d ", conbination(n, m);
printf("\n");
}
0172デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=120
0173デフォルトの名無しさん
NGNGパースエラー
0174デフォルトの名無しさん
NGNGカッコ悪いな。
0175172
NGNG0176デフォルトの名無しさん
NGNGnode->data.key < head->data.key
これをless関数で書くと、
less(key2(node),key(head))==1
と書けますが、
node->data.key < p->next->data.key
はless関数で書くとどのようになりますか?
それと、
head->data.key==a_key
これをequal関数で書くと、
equal(key2(head),a_key)==1
と書けますが、
p->next->data.key==a_key
はequal関数で書くとどのようになりますか?
教えて下さい。
0177デフォルトの名無しさん
NGNGless( key2(node), key(p->next) ) == 1
equal( key2( p->next ), a_key ) == 1
でいいんじゃない?
0178デフォルトの名無しさん
NGNGソース:http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=121
問題(3)main関数、及びInsertNode(treeT *tptr,string key)を次のように変更しなさい。
これに応じて他の関数についてもif(t<=(treeT)0x00001001)及びif(t>=(treeT)0x00001001)の部分を変更しなさい。
変更するところ:http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=122
どういう風に変更するのか教えてください。
0179178
NGNG質問は撤回します
0180デフォルトの名無しさん
NGNG出現回数(文字「a」が何回、文字「b」が何回、・・・・)を計算し、
出現回数が1以上の文字について次のように表示(文字・出現回数・
グラフ)するプログラムを作成せよ。
Input string : Tokyo Osaka Nagoya
N --- 1 *
O --- 1 *
T --- 1 *
a --- 4 ****
g --- 1 *
k --- 2 **
o --- 3 ***
s --- 1 *
y --- 2 **
[ヒント1]
・ASCIIコード256種類分を表す配列変数としてcountを用意する。
・h[i]を入力文字列の各要素の文字とすれば、count[h[j]]++ により、
文字ごとに一回現れるたびにcountを1増やす処理を行う。
・最後に英小文字と英大文字の範囲でカウント回数と*を出力する。
[ヒント2]文字列の代入例
i=0;
while ( (h[i]=getchar()) != EOF) { i++; }
EOFはEnd Of File を意味し、入力ファイルの終わりの文字、すなわち
Ctrl-d という文字に対応した記号である。
Ctrl-d を入力した時点で、それまでに入力した文字情報が対称になる。
お願いします
0181デフォルトの名無しさん
NGNG#include <stdlib.h>
void showHist(char c,int num){
int j;
printf("%1c :",c);
for(j=0;j<num;j++){
printf("*");
}
printf("\n");
}
int main(){
char h[BUFSIZ];
int count[256]={0};
int i=0,j;
while ( (h[i]=getchar()) != EOF) { i++; }
h[i]='\0';
for(j=0;j<i;j++) count[h[j]]++;
for(i='A';i<='Z';i++){
if(count[i]!=0) showHist(i,count[i]);
}
for(i='a';i<='z';i++){
if(count[i]!=0) showHist(i,count[i]);
}
return 0;
}
0182デフォルトの名無しさん
NGNGありがとうございますm(_ _)m
0183なっち
NGNG何度やってもうまく作れないので、教えてください。お願いします。
よくYes/Noで選択肢を選び、あなたは〜〜ですという占いのようなものご存知でしょうか。
今、それを作ろうとしています。
もしよろしければ、作成していただけないでしょうか?
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGよく〜ご存知でしょうか。
も繋がってない
0186デフォルトの名無しさん
NGNG#include<string.h>
int main (void)
{
char buf[5];
printf("Yes/No");
scanf("%s",buf);
if(!strcmp(buf,"Yes"))
{
printf("あなたはひきこもりです。\n");
}
else if(!strcmp(buf,"No"))
{
printf("あなたは厨房です。\n");
}
else
{
printf("あなたは知障です\n");
}
return 0;
}
0187デフォルトの名無しさん
NGNGYes/Noって入れて実行したら暴走しますた
0188デフォルトの名無しさん
NGNG4文字を超えてはならない、
とマジレスしておこう。
0189デフォルトの名無しさん
NGNG{
char buf[256];
printf("Yes/No\n");
scanf("%s",buf);
if(!strcmp(buf,"Yes"))
printf("あなたはひきこもりです。\n");
else if(!strcmp(buf,"No"))
printf("あなたは厨房です。\n");
else
printf("あなたは知障です\n");
return 0;
}
0190デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
int main(){
string buf;
cout << "Yes/No > ";
cin >> buf;
if(buf == "Yes")
cout << "あなたはひきこもりです。" << endl;
else if(buf == "No")
cout << "あなたは厨房です。" << endl;
else
cout << "あなたは知障です。" << endl;
return 0;
}
0191デフォルトの名無しさん
NGNG#include <iostream>
#include <map>
using namespace std;
typedef pair<string, string> Pair;
int main(){
Pair p[] = {Pair("Yes","ひきこもり"),Pair("No","厨房")};
map<string,string> m(p,p+sizeof(p)/sizeof(Pair));
map<string,string>::iterator it;
string in,result;
cout << "Yes/No > ";
cin >> in;
if((it = m.find(in)) == m.end()) result = "知障"; else result = it->second;
cout << "あなたは" << result << "です。" << endl;
return 0;
}
0192デフォルトの名無しさん
NGNGSTLって読みづらいよね…
019399
NGNGttp://www.asahi-net.or.jp/~uc3k-ymd/Sketch/Life/life02.html
0194デフォルトの名無しさん
NGNG#include <iostream>
#include <map>
#include <utility>
typedef std::pair<std::string,std::string> yesno;
typedef std::map<std::string,yesno> question;
template<class T,int I>T *eoa(T(&a)[I]){return a+I;}
const char *const startques="毎日2chを見る";
const char *data[][3]={
{startques,"一日2時間以上2chを見る","2chはおかしな人の集まりだ"},
{"一日2時間以上2chを見る","2chに書き込むことがある","2chは便所の落書き"},
{"2chはおかしな人の集まりだ","2chなど無くなればいい","2chは見ていて楽しい"},
{"2chは便所の落書き","2chは見ていて楽しい","モナーはかわいい"},
{"2chなど無くなればいい","さては2chで嫌な事がありましたね?","モナーはかわいい"},
{"2chに書き込むことがある","煽りあいは楽しい","2chは見ていて楽しい"},
{"2chは見ていて楽しい","あなたは平均的な2chねらーです。","あなたはまだ2chの素晴しさに気付いていません。"},
{"モナーはかわいい","あなたの世界は色鮮やかなことでしょう。","憂鬱な生活を送っていますね。"},
{"煽りあいは楽しい","コテハンがある","普通の掲示板利用者です。"},
{"コテハンがある","あなたは2ch中毒です。","娯楽をかなり2chに依存していますね。"}
};
main(){
question ques ;
for(const char *const (*ci)[3]=data;ci!=eoa(data);ci++)ques[**ci]=yesno((*ci)[1],(*ci)[2]);
std::cout << "yes/noで答えてね" << std::endl;
std::string current=startques;
do{
std::string ans;std::cout << current << ">";std::cin >> ans;
if(ans.find("n")!=ans.npos||ans.find("N")!=ans.npos) current=ques[current].second;
else current=ques[current].first;
}while(ques.find(current)!=ques.end());
std::cout << "\n" << current << std::endl;
}
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGint main(){puts("晴郎ワールド"); return 0;}
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGだーーーーい好きぃーーーーーーーーーーー♥
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGいっきにボタンが消える処理をキューを使ってやるにはどうすれば?
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG質問が曖昧過ぎます。具体的にどうぞ。
>>201
Q(que)じゃなくて、queueでは?
0203デフォルトの名無しさん
NGNGいっきにボタンが消える処理するクラス、Q をつくれ。
0204デフォルトの名無しさん
NGNG☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
0205200
NGNGqueueです。よろしくお願いします
0206200
NGNGcueです。よろしくお願いします
0207セイラ
NGNG0208デフォルトの名無しさん
NGNG0209200
NGNGsphereです。よろしくお願いします
0210r
NGNGstruct Tile_tag {
unsigned int opened;
unsigned int count;
unsigned int exist;
} Tile;
const static int hoge[] = { -1, 0, 1 };
void OpenTile( Tile* tileArray, int x, int y ) {
Tile* t= &tileArray[y * WIDTH + x];
if( ! t -> opened && t -> count == 0 && ! t -> exist ) {
t -> opened = 1;
for( i = 0; i < 9; i++ )
OpenTile( tileArray, x + hoge[i%3], y + hoge[i/3] );
}
}
キューは使ってないけど、大体こんな感じの処理になるかと。
(疑似コードだと思ってみて下さい)
0211r/210
NGNGで、キューな訳ね。
0212r/210
NGNG2. キューからデータを一つポップし、それを操作対象にする。
3. タイルを開く関数をよぶ。引数には、さっきポップした操作対象と、キューへのポインタを設定。
4. タイルを開く関数では、タイルを開くのに成功し、
タイルの周りの爆弾の数が0だったら、タイルの周辺をキューにPushする。
5. 2に戻る
こんな感じかな。
0213193
NGNG0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGstruct _list{
int car;
struct _list* cdr;
}typedef struct _list* list;
list cons (int x, list xs){
list ret = (list)malloc(sizeof(struct _list));
ret->car = x; ret->cdr = xs; return ret;
}
int car(list xs){
return xs->car;
}
list cdr(list xs){
return xs->cdr;
}
/* insertの定義をここに挿入 */
(ここに入れるべきプログラムを教えてください。
また、新しい要素(insertの第1引数)をcar成分に持つ
ひとつのconsセル以外は新しいconsセルを作らず、
既存の consセルを破壊的に書き換えるバージョンも定義してください。)
int main(int argc, char** argv) {
list xs = cons(1, cons(4, cons(7, cons(10, NULL))));
xs = insert(atoi(argv[1]), xs);
printf("result: ")
for(; xs; xs=cdr(xs)) {
printf("%d ", car(xs));
} putchar('\n');
}
0219デフォルトの名無しさん
NGNG名前:「マツダ ユウイチ」松田雄一
http://lv3.lib.net/up/img-box/img20030713070131.jpg
年齢:12歳(確定)
身長:約165cm(確定)
住所:長崎市千歳町5番26号 「チトセピア」1201(確定)
両親:父親は調理師、母親は去年まで専業主婦今年からパート(確定)
兄弟:一人っ子(確定)
学校:長崎市立西浦上中学校(確定)、小学校の時には私立→公立に転校(精道小学校?)
学年:中学1年(確定)
所属クラブ:小学校時代パソコンクラブ、現在中学校では無所属(確定)
犯罪歴:過去数回に渡り近隣で児童わいせつなどの事件を起こす。
また今回の事件現場と同じ立体駐車場で、
以前に犬を投げ落とし骨折させていた模様。(同一人物とほぼ確定)
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG1.演算レジスタの説明
2.ブートストラッパの役割
3.補助記憶から目的プログラムを主記憶にコピーするシステムプログラムの名称
この3つがわからないので、どなたか知っている方は教えていただけないでしょうか
0222デフォルトの名無しさん
NGNGスレ違い
0223デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227r
NGNG0228デフォルトの名無しさん
NGNG「pull oneself up by one's own bootstraps:
自力で進む、自力で向上する」という口語から生まれた言葉で、コンピュータを起動する過程を指す。
たとえばPC互換機では、電源投入時にはまずシステムROM内の小さなコードが実行され、
各種デバイスの初期化が行なわれる。続いてこのコードは、ディスク内にあるOSの初期コードに
制御を移す。このように、より高レベルなソフトウェアを実行するために、段階を追って初期化を
行なうことをブートストラップという。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231193
NGNGttp://mukun_mmg.tripod.co.jp/mmg/bncpp/10/174.html
を見てどんなのがリスト構造なのかってのは何となく分かりました、>>193は違うみたいですね。
今回の宿題は、>>193にあるみたいなライフゲームを、配列を用いて生きているセル、死んでいるセルを管理するのではなく
生きているセルの縦横の位置をリストの要素として持つリスト構造を使って作成せよって物なんですが
考えるといろいろ分からないとこがでてきて混乱してします(;´Д`)
配列使わないでできるもんなんでしょうか・・
0232193
NGNG0233デフォルトの名無しさん
NGNG配列でhoge[x-1][y]とかやるかわりに
ポインタでアクセスする。
0234193
NGNGみたいな書き方で言うと
□→□→□→□→□→
■ ■ ■ ■ ■
↓ ↓ ↓ ↓ ↓
□→□→□→□→□→
■ ■ ■ ■ ■
↓ ↓ ↓ ↓ ↓
□→□→□→□→□→
■ ■ ■ ■ ■ (□:ポインタ)
↓ ↓ ↓ ↓ ↓ (■:データ)
って感じでしょうか?
そうするとデータに当たるのはそのセルが生きているか死んでいるか?
>生きているセルの縦横の位置をリストの要素として持つ
ってのはどういう事なんでしょう(´・ω・`)?
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGなんでそんなことするのかわからんけど
0237デフォルトの名無しさん
NGNG生きてるCellのインスタンスだけつなげてリストにしろって事だろ。
Cellのメンバはx座標とy座標。
でも隣の座標の状態を調べるだけでも全走査するんだろうか…
0238デフォルトの名無しさん
NGNG二分木リストとかにするんだろうけど。
0239r
NGNGstruct cell_t* tonari[8];
int live;
};
とかじゃねーの?
0240デフォルトの名無しさん
NGNG意味がわからん。
0241193
NGNG□→□→□→□→□→
■ ■ ■ ■ ■
で、データが座標、生きてるセルができるたび追加して死んだら削除すればよいですか?
周り数えたり、死んでるセルについても順番に判定していかないといけないこと考えると配列使うのに比べてすっごい無駄な気がするです・・
0242デフォルトの名無しさん
NGNGいっぽう、生きてるやつだけ持っておけばその時点で生きてるやつの個数に比例する
メモリしかいらない。Conwayのルールだと全部生きてることは初期値以外あり得ない。
ところで各セルは自分の座標だけ知ってればよいから、2次元なら
typedef size_t Index; // 座標を表すのに必要な整数型にする
struct cell_t { Index x,y; char next_state; };
で良いと思う。こうするとsizeof(Index)を小さくとればより省メモリ。
0243r
NGNGおおそうか。なるほどな。
しかし>>241の言うことも正しい気がするな。
セルの数がn個、平均個体数がmだとすると、
メモリ
配列:O(n)
リスト:0(m)
計算速度
配列:O(n)
リスト:O(m^2)
ただし n >> m
って所か。
n > m^2 なら、リストの方が有利かな。
ただ配列の方が定数係数少なそうだから...
実際やってみて、メモリ使用量とか実行速度とか
計ってみないと、なんとも言えないか。
0244デフォルトの名無しさん
NGNGライフゲームとチューリング機械が等価だという話があって、
グライダーを使ってワイヤーとゲートを構成するんだけど、
それで少しでも意味のあるTMを組んで実際に動かそうとすると、
セルは疎なのに回路(グライダーの経路)を張るのに馬鹿デカい空間が必要で、
空間全体を保持しようとすれば二次記憶を要することになり、
生きたセルのみを管理する場合と比べて比例係数はむしろ大きい、
とかいう昔話もある。
それとランダムな初期値に関する平均コストの解析は簡単ではないと思われ。
有限の空間では必ず周期運動に落ちるが、空間サイズの関数としての
平均セル数などは知られていないはず。Collatz problem に似た話。
読み筋は Wolfram の class IV や Langton の edge of chaos など。
要するに効率は初期条件に禿しく依存。
>>242
メモリをケチるなら next_state は生死の1ビットにcharを使ってて勿体ないので、
ビットベクトルを別に持ちセルには座標だけ持たせるのが良い。
また速度が欲しければ、セル管理に単純なリストだけでなくハッシュを併用する。
0245デフォルトの名無しさん
NGNGソース見てみるか。
0246デフォルトの名無しさん
NGNG配列を確保して生きているセルのポインタをいれる。
順番に上下左右のセルがあれば1足すし、無ければ新たにセルをつくる。
双方向にしとけば走査は一回につき一辺の長さの2倍で済む。
俺の考えたのはこんなの。
0247デフォルトの名無しさん
NGNGどういう意味?
0248218
NGNGint insert(int x, list xs){
if(xs == NULL || x < (xs->car)){
return cons(x, xs);
}else{
return cons (car(xs),insert(x,cdr(xs)));
}
}
こんな感じでいいのでしょうか?
0249デフォルトの名無しさん
NGNGそのセルの上左と下右のセルを探す。
セルがあれば周りのセルの数を示す数値を1増やす。
なければ作る。
0250アフォ
NGNGお願いします
0251デフォルトの名無しさん
NGNG0252pop
NGNG計算する。
f(x)=ax*x+bx+c
係数aは10、bは5、cは2とします。答えは、2ax+bになるはずなので数値的に微分した
結果と解析的に求めた値を比べて、計算が正しく行われていることを示してください。
計算範囲は0から2までとします。分割数は各自決めてください。(十分正確に計算できるように)
2)
台形公式を使って、1)の式を積分計算してください。積分範囲は0から2とします。
解析的な解も計算して、数値計算結果を比較してください。a、b、cの値は1)と同様とします。
以上のプログラムと実行結果をお願いいたします。
0253デフォルトの名無しさん
NGNG難しいよなぁ。
何をどうすればいいのかさっぱり判らん。
>>250
乱数の種が違ったら、それは「独立した乱数列」と認めるのかえ?
だったらちょー楽勝だが。
0254250
NGNG一様分布していれば問題ないと思います
0255デフォルトの名無しさん
NGNG*The C Language
e*The C Languag
ge*The C Langua
age*The C Langu
uage*The C Lang
guage*The C Lan
nguage*The C La
anguage*The C L
Language*The C
規則性がある。これに着目してプログラムを作成せよ。
for文でお願いします
0256デフォルトの名無しさん
NGNGint main(void)
{
const char string[] = "The C Language*";
int i;
for (i = sizeof string - 1; i >= 6; --i) {
printf("%s", string + i);
printf("%.*s\n", i, string);
}
return 0;
}
0257デフォルトの名無しさん
NGNGあ、printfは使用禁止なんです。
0258デフォルトの名無しさん
NGNGprintfと名の付くものは禁止なんです。
■ このスレッドは過去ログ倉庫に格納されています