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

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

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

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0052片山博文MZボット ◆0lBZNi.Q7evd 2013/01/11(金) 15:08:45.89
[1] 授業単元:MZからの挑戦状
[2] 問題文(含コード&リンク):
(i) 正規表現をPEGに変換するプログラムを書け。
(ii) EBNFをPEGに変換するプログラムを書け。
http://ja.wikipedia.org/wiki/EBNF
http://ja.wikipedia.org/wiki/PEG_(%E6%96%87%E6%B3%95)
http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
[3] 環境
 [3.1] OS:不問
 [3.2] コンパイラ名とバージョン:不問
 [3.3] 言語:C++かD言語
[4] 期限:2013/11/20
[5] その他の制限:特になし。他のライブラリを使ってもかまわない。
0053デフォルトの名無しさん2013/01/11(金) 16:02:32.28
すれち?
0054デフォルトの名無しさん2013/01/11(金) 16:05:36.99
[1] プログラミング実習�U
[2] 課題14-1 http://www.dotup.org/uploda/www.dotup.org3832133.jpg
課題 14-2 http://www.dotup.org/uploda/www.dotup.org3832135.jpg
 14-2の画像はreturn 0; } も追加です
  参考課題 http://www.dotup.org/uploda/www.dotup.org3832147.jpg
         http://www.dotup.org/uploda/www.dotup.org3832150.jpg
         http://www.dotup.org/uploda/www.dotup.org3832153.jpg
         http://www.dotup.org/uploda/www.dotup.org3832159.jpg
  レベル3問題 http://www.dotup.org/uploda/www.dotup.org3832161.jpg
 [3.1] OS Windows
 [3.2] リナックスのイーマックスです
 [3.3] 言語 C
[4] 1/17
[5] その他の制限:問題文の指示に従って解いてください 青いバックの結果が実行結果
なのでそれになるようお願いします。すべて上からとった写真なので実行結果だけが
違う写真にあることもあります。

よろしくお願いします

お願いします
0055デフォルトの名無しさん2013/01/11(金) 16:26:31.53
>>54
>  14-2の画像はreturn 0; } も追加です

return y;

じゃなかろうか
0056デフォルトの名無しさん2013/01/11(金) 16:36:40.95
>>55
そうでした!ありがとうございます!
0057デフォルトの名無しさん2013/01/11(金) 17:18:02.81
>>54
14-1 ttp://ideone.com/cklfAy
14-2 ttp://ideone.com/V595HV

問題文は画像ファイルじゃなくて、テキストで貼り付けてほしい。
0058デフォルトの名無しさん2013/01/11(金) 18:02:59.40
>>57
>問題文は画像ファイルじゃなくて、テキストで貼り付けてほしい。
大いに同感。課題14-1は画像を見てタイプし直しました。
http://nojiriko.asia/prolog/c162_54_1_text.html
0059デフォルトの名無しさん2013/01/11(金) 18:30:26.15
[1] 授業単元:C言語
[2] >>5のプログラムを利用して、data.txtを読み込み、数が小さい順に並べ替えた結果をresult.txtという名前のファイルに出力するように入力関数inputと出力関数outputを作成せよ。
#include <stdio.h>
typedef struct Personal {
char name[50];
int ten;
} Kojin;
void input(Kojin *p);
void output(Kojin *p);
void data_sort(Kojin *p);
int main(void){
Kojin data[5];
input(data,mozi);
data_sort(data);
output(data,mozi);
return 0;
}
int input(Kojin *p){
[3] 環境
 [3.1] OS: windows 7
 [3.2] コンパイラ名とバージョン: visual studio2010
 [3.3] 言語: C
[4] 期限: 2013年1月10日 24時まで

data.txt
Name1 100
Name2 50
Name3 30
Name4 70
Name5 60
0060デフォルトの名無しさん2013/01/11(金) 18:33:02.50
>>59
訂正です。
input(data,mozi)
output(data,mozi)
ではなく
input(data)
output(data)
です。
0061デフォルトの名無しさん2013/01/11(金) 18:56:20.53
>>12
数時間放置してやっと……
31385539 31805959 32226379 32646799 33067219 33487639 33908059
34328479 34748899 35169319 35589739 36010159 36430579 36850999
0062デフォルトの名無しさん2013/01/11(金) 19:00:41.59
>>61
こっちは100000000までで一晩かかったぞ
503213 5007713 9512213 14016713 18521213 23025713 27530213 32034713 36539213 41043713
45548213 50052713 54557213 59061713
0063デフォルトの名無しさん2013/01/11(金) 19:18:18.86
>>59
ttp://ideone.com/tHLQri
0064デフォルトの名無しさん2013/01/11(金) 21:12:44.15
>>12
INT_MAX以下の素数を先に求めておいてやってみたが、やはり時間がかかる、
ttp://ideone.com/wHkuu3
0065デフォルトの名無しさん2013/01/11(金) 21:12:48.11
>>58
prologですか。
面白いですね
0066572013/01/11(金) 21:55:26.50
>>54 続き忘れていた
参考課題   ttp://ideone.com/bWT8b2
レベル3問題 ttp://ideone.com/Xdjq1q
0067デフォルトの名無しさん2013/01/11(金) 22:25:42.93
皆様ありがとうござます

プリントエフのエラーゼロ除算や、ゼロを指定しないでくださいとはどういう意味ですか?
0068デフォルトの名無しさん2013/01/11(金) 22:30:17.66
>>67
変な独自言語に翻訳すんな
スレチだ消えろ
0069デフォルトの名無しさん2013/01/11(金) 22:32:37.82
>>68
解答してくださったプログラムの中にあったので質問させて頂きました
0070572013/01/11(金) 22:37:26.08
>>67

>>57の14-1のことだね。
ゼロ除算がされるとプログラムが途中でエラー終了するので、
あらかじめチェックしているだけ。
以下のコードを実行すると分かると思うけど、"正常終了"が表示される前に
プログラムが落ちる。

#include<stdio.h>
int main()
{
int a;
a = 1;
printf("111 / %d\n", 111 / a);
a--;
printf("111 / %d\n", 111 / a);
printf("正常終了\n");

return 0;
}
0071デフォルトの名無しさん2013/01/11(金) 22:38:48.16
>>70まちがった

#include<stdio.h>
int main()
{
int a;
a = 1;
printf("111 / %d = %d\n", a, 111 / a);
a--;
printf("111 / %d = %d\n", a, 111 / a);
printf("正常終了\n");

return 0;
}
0072デフォルトの名無しさん2013/01/11(金) 23:33:55.28
ありがとうございました!
0073デフォルトの名無しさん2013/01/12(土) 21:55:29.23
>>49
http://ideone.com/4qJjUD
0074デフォルトの名無しさん2013/01/12(土) 23:43:58.01
[1] 授業単元:計算機実習
[2] 問題文(含コード&amp;リンク):
http://ideone.com/V4h6ti
1. 上記のプログラムをfgetsを使ったプログラムに書きかえなさい.
fgets の書式はfgets(結果を格納する変数(配列変数なのでポインタ), 読み込むバイト数, ファイルポインタ)である.

2. 上記のプログラムをファイル名を「コマンドラインの引数」で指定するプログラムに変更しなさい.

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/16
よろしくお願いします。
0075デフォルトの名無しさん2013/01/12(土) 23:50:35.27
>>20
一応long longで計算できる範囲なんだな
自分の総当りプログラムだと結果が出るよりも太陽系の寿命のほうが早くくる計算だw
0076デフォルトの名無しさん2013/01/12(土) 23:51:44.00
お姉さんの寿命は永遠です
0077デフォルトの名無しさん2013/01/13(日) 03:55:37.58
>>74
1
http://ideone.com/YYEQNm

2
http://ideone.com/UM7snl
0078デフォルトの名無しさん2013/01/13(日) 14:21:55.28
[1] 授業単元:C言語
[2] 問題 http://codepad.org/yV0KrZox
[3] 環境
 [3.1] OS:windows7
 [3.2] コンパイラ名とバージョン: VisualStudio2010
 [3.3] 言語:C
[4] 期限:1/18
よろしくお願いします。
0079 ◆KdAlbZZjhY 2013/01/13(日) 14:40:57.88
[1] 授業単元: システム開発
[2] 問題文(含コード&amp;リンク):
以下のヒントを元に、生徒の成績を管理するプログラムを作りなさい
http://codepad.org/vevYc04f
http://codepad.org/rCOCOccX
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio2010
 [3.3] 言語:C言語
[4] 期限: 2013年1月22日17時まで
[5] その他の制限:仕様についても詳しい説明は無く、ヒントと授業を見るに、
国数英の成績を入力し、平均と他の生徒との偏差値と、生徒の成績一覧を出すプログラムを作るようです。
0080デフォルトの名無しさん2013/01/13(日) 22:41:03.38
過去スレ貼る荒らしがいるようだから運営に相談してみるか
スレ立て荒らしもあった事だし対応してくれるかも
0081デフォルトの名無しさん2013/01/14(月) 01:30:10.13
過去問が貼られて苛つくということは、C/C++はPythonなどと同様、
同じタスクのプログラムは大体同じようなプログラムに収束するということ
だろうか。Prologのように常に4-6通りくらいのプログラムパターンの存在
する言語だと、多分過去問大歓迎ということになるのだろう。
0082デフォルトの名無しさん2013/01/14(月) 01:32:25.48
答えても応えてくれる相手が居ないようなのは寂しいじゃない
0083デフォルトの名無しさん2013/01/14(月) 01:48:51.78
>>77
ありがとうございます
0084デフォルトの名無しさん2013/01/14(月) 02:04:06.38
>>79
読み込む成績データの仕様は?
勝手に決めて良いなら別だけど。

それと、「データの書き込み」はいらないのでは?
0085 ◆KdAlbZZjhY 2013/01/14(月) 04:10:32.85
>>84
授業内で書き込みは
http://codepad.org/8kkTTyLp
のように習い(習い、と言ってもそこを見ておいてと言われただけですが)
読み込みは
http://codepad.org/ciFpR9pI
という風に習いました
成績データの仕様についても特に指定はされていません
0086デフォルトの名無しさん2013/01/15(火) 18:50:34.53
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):

ランダムに生成された20bitの2進数の並びを、先頭から5bitごとに見ていき、目的の5bitの2進数の並び
(「00001」「00010」「00100」「00110」「01000」「01001」「01011」「01101」「01110」
「10000」「10010」「10100」「10101」「10111」「11001」「11010」「11100」「11110」)
が存在すれば、点数を10点加算する(よって最高得点は40点である)プログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] microsoft visual c++ 2010
 [3.3] 言語: C
[4] 期限: 2013年1月20日まで
0087デフォルトの名無しさん2013/01/15(火) 19:42:35.31
>>86
ランダムに生成された20bitの2進数というのは
プログラム内で作るのか
それとも外から与えられるのか

あと、一度で終わるのか何度か繰り返すのか
繰り返すなら終了条件暮れ
0088デフォルトの名無しさん2013/01/15(火) 19:56:11.42
>>87
問題文が正確に示されたものじゃないのでわかりにくくて申し訳ありませんでした。

20bitの2進数は、プログラム内でランダムに作成します。

繰り返し条件はありません。1度で終了します。

よろしくお願いします。
0089デフォルトの名無しさん2013/01/15(火) 19:58:41.24
ネットって口より耳だけのほうが多いからな
普通に大学の先生は観てるよこのスレ
ここで回答してもらったコードを提出しても減点されるのは間違いないw
0090デフォルトの名無しさん2013/01/15(火) 19:59:35.82
本科目の受講生より、こちらにて12月19日出題の課題を
インターネットに投稿している者がいるとの連絡を受けました。
今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、
問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。

初回の講義でお話しましたように、ソースコードの書き方には個人差があり、
過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。

他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。
提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。

締切りは明日の17時とまだ時間もいくらか残されていますので、
この問題を投稿した、または参考に読んでいる学生には自分の力で
今回の課題に取り組んで頂けることを期待しています。
0091デフォルトの名無しさん2013/01/15(火) 20:00:46.77
確かにナ、まともな奴は出来る友達に聞くか相談することを考えるからな。
2chで質問してるってことは友達いないか馬鹿な友達しかいないか、そして自分で考える気力のない無能。
そんな人間の将来は程が知れてる。
わざわざ質問すんならまず自分が考えたコードくらい提示しろっての。
0092デフォルトの名無しさん2013/01/15(火) 20:25:32.46
[1] 授業単元:情報処理学
[2] 問題文(含コード&リンク):
例1は、3教科5人の生徒の合計得点を求めるプログラムである。
これを実行し、動作を説明せよ。さらに、教科毎の平均点、
生徒毎の平均点を計算して表示できるようにプログラムを修正し、
結果とともに示せ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2013年1月20日

よろしくお願いします。
0093デフォルトの名無しさん2013/01/15(火) 20:43:32.69
[1] 授業単元:プログラミング基礎I
[2] 問題文(含コード&リンク):
配列a[n],配列b[n]と配列の大きさnを渡すと配列の要素を入れ換えるプログラムをポインタを用いて作成せよ.

例えば,a[3]={1,2,3},b[3]={101,102,103}とするとき,結果として,a[3]={101,102,103},b[3]={1,2,3}となるようにせよ.


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:1/21
[5] その他の制限:とくにありません
0094デフォルトの名無しさん2013/01/15(火) 21:29:58.48
[1] 授業単元: Cコーディング初級
[2] 問題文(含コード&リンク):
プログラムを実行した日がその年の第何週目にあるかを終了コードとして整数で返す
[3] 環境
 [3.1] OS: Windows
 [3.2] gcc 4.3.4
 [3.3] 言語: C
[4] 期限: 1/17
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
time.h を使います
週の頭は日曜から始まります
1月1日を含む週に4日以上ある場合に第1週となります
つまり1月1日が日曜から始まっているときはその週が第1週ですが
1月4日が日曜から始まっているときはその週が第1週になります
0095デフォルトの名無しさん2013/01/15(火) 21:41:08.95
[1] C言語復習
[2] 1 桁の整数をスーペース区切りで何個か入力する
(EOF で入力の終了とする) と, 下のように隣合う要素同士で桁上がりを無視した加算を行って逆三角形を作り,
最後に残った 2 桁 (ただし 3 桁で 1 0 0 が残ったときは満点なのでそこで終了する) で運勢を占う, というプログラムを作成せよ.
0 7 9 5 6 5 7 7 4 2 ← 入力
7 6 4 1 1 2 4 1 6
3 0 5 2 3 6 5 7
3 5 7 5 9 1 2
8 2 2 4 0 3
0 4 6 4 3
4 0 0 7
4 0 7
4 7
[3] 環境
 [3.1] OS: Windows7
 [3.2] Cygwin 1.7.7 よくわかりませんでした
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 明日
0096デフォルトの名無しさん2013/01/15(火) 22:31:42.30
[1] C言語復習
[2] 問題文(含コード&リンク):
アフィン線形ブロック暗号を使用する。
3*3行列の暗号鍵で暗号化された文章の復号化を行うプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] visual c++ 2008
 [3.3] 言語: (C言語もしくはC++)
[4] 期限: 2013年1月20日
0097デフォルトの名無しさん2013/01/15(火) 22:49:55.28
[2] 問題文
以下の関数を記述しなさい。
long Shuffles(int nCards, int iCut);
この関数は、以下の処理の解を返す。

1.n枚の全て異なるカードがAに置かれている。
2.上からi枚目までを取り、右隣Bに置く。
3.Aの山の一番下からカードを取り、Cの上に置く。
4.Bの山の一番下からカードを取り、Cの上に置く。
  以下、3と4を何れかの山が無くなるまで繰り返す。
5.残った山のカードをCの上に置く。
6.Cの山をAの位置に移動する。

カードが初期の並び順に戻るためには、この操作を何回繰り返せば良いか。

引数、nCardsはカードの枚数、iCutは2の操作時に分ける枚数を指定する。
回答は作成したソースと、
正しく動いている証として、Shuffles(1001,100)の実行結果を書きなさい。

[3] 環境
 [3.1] OS:問わない
 [3.2] コンパイラ名とバージョン: 問わない
 [3.3] 言語: C
[4] 期限: 一週間くらい?
0098デフォルトの名無しさん2013/01/15(火) 22:59:27.88
>>86
ttp://ideone.com/nusS1Z
0099デフォルトの名無しさん2013/01/15(火) 23:05:08.47
>>95
#include <stdio.h>

#define DIGIT_MAX 1024

int main(void)
{
int digit[DIGIT_MAX], digit_num, i;

for(digit_num=0;digit_num<DIGIT_MAX;digit_num++)
{
if(scanf("%1d", &digit[digit_num])!=1) break;
}

for(;digit_num>2;digit_num--)
{
if(digit_num==3)
{
if(digit[0]==1 && digit[1]==0 && digit[2]==0) break;
}

for(i=0;i<digit_num-1;i++)
{
digit[i]=(digit[i]+digit[i+1])%10;
printf("%d ", digit[i]);
}
printf("\n");
}

return 0;
}
0100デフォルトの名無しさん2013/01/15(火) 23:27:13.77
>>98
ありがとうございます!!

質問なのですが、15行目の「t = n & 0x1f;」、16,17行目で記されている「18」
とはどういうことなのでしょうか??
かなり初歩的な質問で申し訳ありません。
0101デフォルトの名無しさん2013/01/15(火) 23:45:06.09
[1] 授業単元:C++基礎
[2] 問題文(含コード&リンク):
基底クラスとして Shape、その派生クラスとして Rectangle (正方形)を定義し、
正四角形の辺の長さの合計と面積を計算する。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン:VisualStudio2010 コマンドプロンプト
 [3.3] 言語: C++
[4] 期限: 2013/1/20 8:50
[5] その他の制限: 基底クラスとMainは変更不可。加筆は、ソースコメント「問題箇所」で示します。

派生クラスを加筆しましたが、以下のエラーが出ます。
どう直せばいいか分かりません。お願いします。
enshu6_3.cpp(32) : error C2512: 'Shape' : クラス、構造体、共用体に既定のコンストラクタがありません。
課題はこの後投稿します。
0102片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/15(火) 23:45:22.18
>>93 #include<stdio.h>
void f(int *a,int *b,int n){
int i,tmp;for(i=0;i<n;i++){tmp=*a;*a=*b;*b=tmp;a++;b++;}
}
int main(void){
int i,n=3;
int a[3]={1,2,3};int b[3]={101,102,103};
f(a,b,n);
for(i=0;i<n;i++)printf("a[%d]=%d\n",i,a[i]);
for(i=0;i<n;i++)printf("b[%d]=%d\n",i,b[i]);
return 0;
}
携帯からです。
0103デフォルトの名無しさん2013/01/15(火) 23:53:31.26
>>100
15行目
マスク処理、0x1f = 00000000000000000000000000011111
これを n と &(and)することで下位5bitのみを抽出し t に代入

16,17行目
18なのはa[ ]に入っている判定パターンが18個あるってこと
んで、さきほどの t とa[i]を比較し、一致したときはfor文即終了
このときiは18より小さいはずなので r += 10点!

一応私も作ったので
http://ideone.com/05htNf
0104デフォルトの名無しさん2013/01/15(火) 23:55:57.89
>>101
http://unkar.org/r/tech/1279286575/174
0105デフォルトの名無しさん2013/01/16(水) 00:08:52.82
>>94
http://nojiriko.asia/prolog/c139_273.html
010678 ◆iN8Tjk0s/o 2013/01/16(水) 00:20:30.77
>>78の下に荒しと勘違いされているレスがありますが
荒らしではありませんのでよろしくお願いします
0107片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/16(水) 00:56:44.99
>>97
int f(int*a,int an){
int i;for(i=0;i<an;i++)if(i!=a[i])return 0;return 1;
}
long Shuffles(int nCards,int iCut){long t;int i,an,bn,cn;
int*a=(int*)alloca(nCards*sizeof(int));
int*b=(int*)alloca(nCards*sizeof(int));
int*c=(int*)alloca(nCards*sizeof(int));
an=nCards;bn=cn=0;
for(i=0;i<an;i++)a[i]=i;
t=0;
do{
memcpy(b,a,iCut*sizeof(int));an-=iCut;bn+=iCut;
memmove(a,a+iCut,an*sizeof(int));
while(an&&bn){c[cn++]=a[--an];c[cn++]=b[--bn];}
if(an){memmove(c+an,c,cn*sizeof(int));memcpy(c,a,an*sizeof(int));cn+=an;an=0;}
else{memmove(c+bn,c,cn*sizeof(int));memcpy(c,b,bn*sizeof(int));cn+=bn;bn=0;}
memcpy(a,c,cn*sizeof(int));
an=cn;cn=0;t++;
}while(!f(a,an));
return t;
}
0108デフォルトの名無しさん2013/01/16(水) 02:08:35.34
>>78
http://codepad.org/knWkkCH4
0109デフォルトの名無しさん2013/01/16(水) 02:38:26.42
>>108
ありがとうございます!
0110 忍法帖【Lv=6,xxxP】(1+0:5) 2013/01/16(水) 08:56:21.64
[1] 授業単元: 実践プログラミング
[2] 問題文(含コード&リンク): imgur.com/6Vkql.png
サンプルコード codepad.org/icgAW7Re
2番自力 codepad.org/4DeXoHUP
[3] 環境
 [3.1] OS: Mac
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 1月16日 23:59
一応2番合ってるか見てください
3番難しすぎです。お願いします。
0111デフォルトの名無しさん2013/01/16(水) 12:03:20.69
>>97
この問題
昔見た
0112デフォルトの名無しさん2013/01/16(水) 15:02:37.23
>>102
解説ありがとうございます!

教えていただいたプログラムを使用して、GAを組んでいます。
個体の20bitの遺伝子の中から>>86で記した5bitの2進数があれば得点を加算し、
その得点が個体の適応度とするものです。
evaluation関数内で教えていただいたプログラムを少し変更して利用してみたのですが、
うまくいきません。
どうしたらよろしいのでしょうか??

以下にURLにプログラムをのせます。
//codepad.org/lFBp6n49
0113デフォルトの名無しさん2013/01/16(水) 15:31:12.42
>>112
>個体の20bitの遺伝子の中から>>86で記した5bitの2進数があれば得点を加算し、

>//codepad.org/lFBp6n49
↑のは、int gene[20]だから、>>86(20bit用)のをそのまま使えない。
0114デフォルトの名無しさん2013/01/16(水) 15:36:41.18
>>112
77行目
switch(a[j]>>j*5 & mask){
jが増えるとa[j]の数が変わっちゃいますよね?


一方 >>103のソース
20行目
switch ( bits >> i*5 & mask ){
bitsは単体の変数なのでiが変わってもbits自身は変わりません
0115デフォルトの名無しさん2013/01/16(水) 15:57:11.81
>>112
もし
int gene[N]; // 遺伝子
配列geneに入ってるのが1か0なら、
つまりflip(0.5)の戻り値が1か0なら
修正はイカのように簡単にできるね

evaluation関数内に
int bits = 0;
for(j=0;j<N;j++){
bits += a[j];
bits <<= 1;
}
を追加し、
77行目
switch(bits>>j*5 & mask){
a[j]をbitsに変えればおk
0116sage2013/01/16(水) 16:15:28.72
[1] 授業単元:C言語 画像処理
[2] 問題文(含コード&amp;リンク):5×5のモザイク処理を行う関数と5×5のぼかし処理を行う関数を作る。
構造体は codepad.org/ZH5NHQko

関数は
PPMFile bokashi(PPMFile gazou)
PPMFile mozaiku(PPMFile gazou)
を使うそうです。
[3] 環境
[3.1]Linux
[3.2]emacs
[3.3]C言語
[4] 期限: 1月21日

色々考えたのですがよくわかりませんでした。よろしくお願いします。
0117デフォルトの名無しさん2013/01/16(水) 16:18:58.41
>>113 >>114
なるほど!確かにこのままだとa[j]の中身が変わってしまいますね。
とてもわかりやすく解説していただきありがとうございます。
0118デフォルトの名無しさん2013/01/16(水) 16:24:52.54
>>114
教えていただいたように修正したところ、好ましい結果が得られるようになりました!!
できるだけ自分で考えようと試みたのですが厳しかったです。
ありがとうございました。
0119デフォルトの名無しさん2013/01/16(水) 16:48:30.79
【質問テンプレ】
[1] 授業単元:プログラミング設計演習�U
[2] 問題文(含コード&リンク):
0 から 9 の数字から異なる n 個の数を取り出して合計が s となる組み合わせの数を出力して終了するプログラムを作成してください。
n 個の数はおのおの 0 から 9 までとし、1つの組み合わせに同じ数字は使えません。
たとえば、n が 3 で s が6 のとき、3 個の数字の合計が 6 になる組み合わせは、
1 + 2 + 3 = 6
0 + 1 + 5 = 6
0 + 2 + 4 = 6
の 3 通りとなります。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++2010
 [3.3] 言語: C++
[4] 期限: 2013/1/19 13:00
[5] その他の制限:
0120デフォルトの名無しさん2013/01/16(水) 16:51:51.92
>>119
ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0030&lang=jp
0121デフォルトの名無しさん2013/01/16(水) 16:54:24.15
[1] 授業単元: アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):
 typedef struct{char name[256]; unsigned char sex; unsigned char age;} PERSONAL_DATA
上記の構造体PERSONAL_DATA型の配列(要素数n)に格納された
n人の名前・性別・年齢のデータの中から同じ年齢の2人組の名前を全て表示せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C++
[4] 期限: ([2013年1月18日まで] または [無期限] のいずれか)
[5] その他の制限: 特に無し

自分でも考えてみたのですが、まず性別・年齢がunsigned char型の意味が、
そして年齢比較のアルゴリズムも、もう一つ構造体を定義して比較すれば良いのかが分かりません。
どうぞよろしくお願いします。
0122デフォルトの名無しさん2013/01/16(水) 16:59:10.00
http://hibari.2ch.net/test/read.cgi/tech/1288531658/172
0123デフォルトの名無しさん2013/01/16(水) 17:32:43.61
[1] 授業単元: プログラミング 

[2] 問題文(含コード&リンク):パスワード認証プログラムをつくりたい。
プログラムの概要は、パスワードを入力し、正常なら"パスワードは正常です。"
と表示し、間違っていれば"パスワードが違います。"という表示してプログラムを
終了する。

入力の仕様は、パスワードは4文字とし、1文字入力される毎に'*'を1個表示する。
4文字入力後パスワードをチェックする。

[3] 環境
 [3.1] OS: 7
 [3.2] コンパイラ名とバージョン: MSC Ver.5.1
 [3.3] 言語: C
[4] 期限: 今週中

お願いします
0124デフォルトの名無しさん2013/01/16(水) 17:45:43.25
[1] 授業単元: C言語
[2] 問題文: 16進数変換
<プログラム名>
inttoh.c

<処理内容>
int型の数値(-32767〜32768)を入力して、16進文字列(char型)に変換する。

<実行例>
入力データ 6371
16進文字 18E3

入力データ -367
16進文字 FE91

[3] 環境
 [3.1] OS: vista
 [3.2] コンパイラ名とバージョン: visual studio2007
 [3.3] 言語: C
[4] 期限: 2013年1月20日
[5] その他の制限: 特になし

分かりにくいかもしれませんがぜひともよろしくお願いいたします。
0125デフォルトの名無しさん2013/01/16(水) 17:49:43.98
[1] 授業単元:授業とは関係なし
[2] 問題文(含コード&リンク):
世界のナベアツのネタ「3の倍数と3が付く数字だけアホになり、5の倍数だけ犬っぽくなる」プログラムを作りたいと思っています。
出力は
1 2 ア3 4 犬5 ア6 のようにアホになるときは数字の前に「ア」、犬の時は数字の前に「犬」を付ける形で出力したいです。
1〜10000程度の範囲でお願いします
春休みに入り、プログラミングの授業の復習のつもりでやってみようと思ったのですが、
思っていたよりも難しくて挫折しました。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:BCC Borland C++ 5.5.1
 [3.3] 言語: C
[4] 期限: 早いとうれしいですが、課題ではなく提出期限が無いのでいつでも
[5] その他の制限: あまり深くは習っていません。あまり難しいと困ります。
0126デフォルトの名無しさん2013/01/16(水) 18:05:01.21
>>125
どうでもいいけどbcc5.5なんか捨てろよ…
0127デフォルトの名無しさん2013/01/16(水) 18:06:25.63
>>125
公倍数どうすんだ?
0128デフォルトの名無しさん2013/01/16(水) 18:07:43.73
35とか両方つけんのかな
つける場合は順番とかもちゃんと
0129デフォルトの名無しさん2013/01/16(水) 18:08:04.31
学校の課題を手伝ってください。
[1] 授業単元: データ構造アルゴリズム
[2] 問題文(含コード&リンク):
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
vaio enqueue(int val)キューにデータを追加する
vaio dequeue() キューからデータを取り出す
vaio queue_print()キュー全内容を表示する
以上ですお願いします。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: 不明
 [3.3] 言語: C
[4] 期限: ([2013年1月20日])
[5] その他の制限: なし
0130デフォルトの名無しさん2013/01/16(水) 18:09:42.83
過去スレコピペに反応してんなよ
0131デフォルトの名無しさん2013/01/16(水) 18:11:20.00
トリップつけないのはな・・
0132デフォルトの名無しさん2013/01/16(水) 18:15:07.62
>>124
存在しないバージョンでどうしようもないけど

char buf[5];
int i;
sprintf(buf,"%4x",(unsigned)i);

で足りるんじゃね?
0133デフォルトの名無しさん2013/01/16(水) 18:17:57.95
>>130
ぶっちゃけ暇つぶしだからどうでもいい
0134デフォルトの名無しさん2013/01/16(水) 18:33:37.29
過去スレコピペして日にちのところを書き換えて必死に貼るのが暇つぶしかw
0135デフォルトの名無しさん2013/01/16(水) 19:03:21.36
[1] 授業単元: データ構造アルゴリズム
[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
逆ポーランド電卓
逆ポーランド記法の数式を入力してリターンキーを押すと答えを表示してくれるもの。スタックを使用して以下のように計算する。
1.数値なら、そのままスタックにつむ
2.演算子なら、2つの数をスタックからおろして演算を行い、その結果を再びスタックにつむ。
※逆ポーランド記法とは演算子を後ろに置く記法。例えば1+2は12+に、(1+2)*3は12+3*になる。逆ポーランド記法は後置法ともよばれる。
[3] 環境
 [3.1] OS: (unix)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [1/17]
[5] その他の制限: なし
よろしくお願いします。
0136デフォルトの名無しさん2013/01/16(水) 19:18:16.26
>>135
KRのアンサーブックにそのまま書いてある
0137デフォルトの名無しさん2013/01/16(水) 19:18:24.52
>>121
年齢ごとに人数カウント後、人数>1のものだけ出力。
ttp://ideone.com/NUgdm1
0138デフォルトの名無しさん2013/01/16(水) 19:38:53.89
また騙されちゃったwww
0139デフォルトの名無しさん2013/01/16(水) 19:39:35.82
                      ■■              ■                ■                            ■
  ■■■■■  ■■■■                  ■                ■                            ■
  ■  ■      ■              ■■■■■■■■■■    ■■■■    ■■■          ■■■■■■
  ■■■■■  ■■■■■■                ■              ■  ■■      ■              ■
  ■  ■      ■        ■                ■              ■■          ■            ■
  ■■■■■  ■■■■■■                  ■            ■            ■            ■      ■■■■■      ■      ■■      ■
  ■  ■      ■                  ■■■■■■          ■■            ■            ■                      ■      ■■      ■
  ■■■■■  ■■■■■■■    ■          ■■        ■■            ■          ■                          ■    ■■    ■
          ■  ■  ■  ■  ■  ■              ■      ■  ■            ■          ■      ■                  ■  ■    ■  ■
  ■  ■  ■■■■■■■■■  ■                      ■  ■            ■          ■      ■                  ■  ■    ■  ■
  ■  ■  ■  ■  ■  ■  ■    ■                        ■            ■  ■    ■        ■                    ■■    ■■
  ■      ■  ■  ■  ■  ■      ■■■■■              ■              ■      ■          ■■■■■■        ■        ■
      ■■    ■  ■  ■  ■
0140デフォルトの名無しさん2013/01/16(水) 19:40:58.69
ネットって口より耳だけのほうが圧倒的に多いからな
普通に大学の先生は観てるよこのスレ
ここで回答してもらったコードを提出しても減点されるのは間違いないw
0141デフォルトの名無しさん2013/01/16(水) 19:41:42.61
本科目の受講生より、こちらにて12月19日出題の課題を
インターネットに投稿している者がいるとの連絡を受けました。
今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、
問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。

初回の講義でお話しましたように、ソースコードの書き方には個人差があり、
過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。

他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。
提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。

締切りは明日の17時とまだ時間もいくらか残されていますので、
この問題を投稿した、または参考に読んでいる学生には自分の力で
今回の課題に取り組んで頂けることを期待しています。
0142デフォルトの名無しさん2013/01/16(水) 19:44:02.13
このスレは宿題解くことで不真面目で役立たずな学生増やす事が目的なんだから
邪魔しないでくれよ
0143デフォルトの名無しさん2013/01/16(水) 19:48:43.58
外部から解答を得る機会を与えないような環境で課題出せば良いだけだ。
例えば1時限の講習で完結するような。
逆恨みで第三者のコミュニティを破壊することは、犯罪だろ。
0144 ◆KdAlbZZjhY 2013/01/16(水) 19:50:40.36
既に取り掛かっている方いたら恐縮ですが
>>79をお願いしますテァクソァ・ホンマニ
0145 ◆KdAlbZZjhY 2013/01/16(水) 19:51:27.70
>>144予測変換で誤爆しましたすみません
0146デフォルトの名無しさん2013/01/16(水) 20:28:38.59
>>140
宿題の回答でだいたいの交友関係わかるよな
いつも自力で解いてる子がいると、友達がいないのかと心配になってしまう
0147デフォルトの名無しさん2013/01/16(水) 20:32:55.18
確かにナ、まともな奴は出来る友達に聞くか相談することを考えるからな。
2chで質問してるってことは友達いないか馬鹿な友達しかいないか、そして自分で考える気力のない無能。
そんな人間の将来は程が知れてる。
わざわざ質問すんならまず自分が考えたコードくらい提示しろっての。
0148デフォルトの名無しさん2013/01/16(水) 20:33:59.94
>>147
>2chで質問してるってことは友達いないか馬鹿な友達しかいないか、そして自分で考える気力のない無能

回答する側にも言える
0149デフォルトの名無しさん2013/01/16(水) 20:34:48.88
[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。
※qsort関数
書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void))
[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([1月19日まで] )
[5] その他の制限:
0150デフォルトの名無しさん2013/01/16(水) 20:35:50.18
ちょっとだけマジメな話をすると
社会人になってからも自力だけでコーディングしようとするやつは
お荷物になっちゃうんだよね・・・
0151デフォルトの名無しさん2013/01/16(水) 20:38:04.35
だそうですw
0152デフォルトの名無しさん2013/01/16(水) 20:49:14.33
>>144
どこまで機能が欲しいのか、いまいちイメージできない。。
■ このスレッドは過去ログ倉庫に格納されています