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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けない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://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
【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++の宿題片付けます 143代目
http://hibari.2ch.net/test/read.cgi/tech/1289913298/
2デフォルトの名無しさん:2010/12/04(土) 23:53:14
糞スレ
3デフォルトの名無しさん:2010/12/05(日) 01:55:51
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):問い1:1/(2×3)+2/(3×4)+…+10/(11×12)の答えをfor文を用いて答えよ
                  問い2:キーボードから入力された整数に対して「偶数なら2で割り、奇数なら3倍して1加える」
                       という作業を行いこれを結果が1になるまで繰り返すプログラムを作成し途中の変化の値を表示させよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: teraterm
 [3.3] 言語: C
[4] 期限: [2010年12月9日00:00まで]
[5] その他の制限: 習ったのは選択処理と反復処理です

よろしくお願いします
4デフォルトの名無しさん:2010/12/05(日) 02:07:16
>>3
問い1
#include <stdio.h>
int main(void)
{
int i;
double ans = 0.0;

for(i = 1; i <= 10; i++) ans += (double)i / ((i + 1) * (i + 2));

printf("%f\n", ans);

return 0;
}
問い2
#include <stdio.h>

int main(void)
{
int n;

scanf("%d", &n);

while(n != 1) {
if(n % 2 == 0) n /= 2;
else n = n * 3 + 1;
printf("%d\n", n);
}

return 0;
}
5デフォルトの名無しさん:2010/12/05(日) 02:23:09
>>4
ありがとうございます
助かりました
6デフォルトの名無しさん:2010/12/05(日) 03:12:53
7デフォルトの名無しさん:2010/12/05(日) 11:20:50
#include <stdio.h>
int main() 笑
8デフォルトの名無しさん:2010/12/05(日) 11:27:03
>>7
どうせVC使ってC++モードでコンパイルしてるんだろ
9デフォルトの名無しさん:2010/12/05(日) 11:27:45
#include <stdio.h> int main() 笑
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
10デフォルトの名無しさん:2010/12/05(日) 11:57:46
>>6 のソース、無駄に関数を増やしたりと、冗長すぎ。
11デフォルトの名無しさん:2010/12/05(日) 14:26:54
>>7
すまんが、何がおかしいんだ?
stdio.hをつかっていること?
それともmain()に引数がないこと?
コンパイラがCだったら引数がないとダメだよな。
12 ◆QZaw55cn4c :2010/12/05(日) 14:51:17
>>11
私を釣ろうとしているだけですよ、多分。>>9 であげているけれども、あげる人間は一人しかいませんからねえ。
http://hibari.2ch.net/test/read.cgi/tech/1289715349/で猛者にぺしゃんこにされたので腹の虫がおさまらないのかな
int main() が C89/C99 の両方で規格に適合している、と馬鹿のひとつ覚えよろしくISO/IEC 9899:1999 を引用して延々と主張してもいいのですが、さすがに飽きてしまいました。
13デフォルトの名無しさん:2010/12/05(日) 15:16:43
>>12
お前はしゃしゃり出てくるだけで釣ろうと思わなくても釣られているだけだろw
お前はint main(void)って書いているだろ。あと、標準スタイルって言葉をいい加減覚えろよ、ボケ爺。
14デフォルトの名無しさん:2010/12/05(日) 15:19:37
基本が分かってない奴がいるから断っておくぞ。
ISO、ANSI”準拠”の”標準スタイル”の話。
プログラムの開始をmain関数とし、実行時の引数があるかないかで
引数の部分の記述スタイルについてあくまでも”標準スタイル”としての記述あり。
引数が無い場合にvoidも書かないのは標準スタイルに非ず。
”独自の環境”であれば”それに限らず”。
15デフォルトの名無しさん:2010/12/05(日) 15:21:40
また、CとC++でその部分の”標準スタイル”の記述に違いあり。
C++ではreturn int型;の省略も可。
CとC++の区別もつかない初心者がごちゃごちゃ意味不明な反論をしているから
墓穴を掘っているだけで、理解している人は理解している。
分からないなら口出しするなよ。恥を晒すだけだから。
自分はこういうスタイルにしているという個人的なスタイルを標準スタイルとして
語られても迷惑。この世はどこぞの無名で小さな個人を中心に動いてませんから。
16デフォルトの名無しさん:2010/12/05(日) 16:02:04
>>6だけど荒れてるなあw

色々見たけどCだと引数なし()だと何でも引数にできる(...)と同じって事になるらしいね
礼儀正しいプログラマなら明示的に引数の無い(void)にするべきらしい
http://www.6809.net/tenk/html/cgokai/fncarg.htm

また間違ってたらできるだけわかりやすく教えてね
色々勉強になりますthx
17デフォルトの名無しさん:2010/12/05(日) 16:28:22
18 ◆QZaw55cn4c :2010/12/05(日) 16:35:48
>>16
実は C99 では、func() と func(void) は条件つきで同じ意味です。
ISO/IEC 9899:1999 6.7.5.3-14
ただ、私もいろいろと指摘を受けたのですが、コンパイラの振る舞いも含めて等価、というわけではないようです。
実際に gcc で確かめてみても、func() と func(void) で扱いが異なります。
19デフォルトの名無しさん:2010/12/05(日) 17:12:54
>>18
嘘乙
20デフォルトの名無しさん:2010/12/05(日) 17:26:08
C/C++の宿題片付けます 143代目
http://hibari.2ch.net/test/read.cgi/tech/1289913298/

前スレを消化したら?
21デフォルトの名無しさん:2010/12/05(日) 18:22:20
[1] プログラミング演習
[2] 問題文
下記のルールの通りに暗号化されたメッセージを解読するプログラムを作成してください。
(条件)
暗号は一つの文字列として与え、その解読結果も一つの文字列として表す。
暗号化の対象となる文字列はNULL文字を含も25文字で、25文字に満たないメッセージ
についても最後尾より後ろは空白で埋める。
利用できる文字はASCII文字0x20〜0x7dまでとする。
(暗号化ルール)
縦横5×5のマス目からなる表の一列目の上から下に向かって、
文字列の一文字目から順に当てはめていく。
1番下までいったら、2列目、3列目、・・・に同様に文字を当てはめていく。
次に各マス目の文字をA->B、B->C、C->D、・・・のように、
ASCIIコード表に合わせて1文字づつずらす。
最後にこの表の1行目から5行目までの各行の文字列を取り出し連結する。
空白はすべて!になります。
二次元配列を用いて行うとのことです。
例:SBB/!Z!N!!PTP!!VBU!!NLP!!→RYOUMA SAKAMOTO.
[3] 環境
 [3.1] windows7
 [3.2]visual stdio2008
 [3.3] c言語
[4] 2010/12/7
[5] ポインタ、構造体はまだ習っていません。
お願いいたします。
22デフォルトの名無しさん:2010/12/05(日) 18:25:54
このご時世に
#include <stdio.h>
int main()
とか、どこの田舎ッペだよw
23デフォルトの名無しさん:2010/12/05(日) 18:51:28
>>21
#include <stdio.h>

int main(void)
{
int i, j;
char str[25] = "SBB/!Z!N!!PTP!!VBU!!NLP!!", a[5][5];

for(i = 0; i < 25; i++) a[i / 5][i % 5] = str[i];
for(i = 0; i < 25; i++) printf("%c", a[i % 5][i / 5] - 1);

return 0;
}
24デフォルトの名無しさん:2010/12/05(日) 19:29:04
少し効率化してみました。
#include <stdio.h>
int main(void) {
int i;
char str[25] = "SBB/!Z!N!!PTP!!VBU!!NLP!!";
char (*a)[5] = (void*)str;
for(i=0; i<25; i++) printf("%c", a[i%5][i/5] - 1);
return 0;
}

>>22
その話題は、こちらに引っ越したようですよ。
http://hibari.2ch.net/test/read.cgi/tech/1289913298/
25デフォルトの名無しさん:2010/12/05(日) 19:38:18
>二次元配列を用いて行うとのことです。
26デフォルトの名無しさん:2010/12/05(日) 19:42:43
>>25
ごめんなさい。見逃してました。
27デフォルトの名無しさん:2010/12/05(日) 20:00:16
[1] C・C++言語ディベート
[2] 課題
C/C++言語を思いの丈語れ
[3] 環境 C/C++言語
 [3.1] このスレ
 [3.2] 脳内
 [3.3] 文章
[4] 無期限
28デフォルトの名無しさん:2010/12/05(日) 21:13:46
独自の環境でもC言語でint main()はないわ。
29 ◆QZaw55cn4c :2010/12/05(日) 21:21:40
>>19
ISO/IEC 9899:1999 6.7.5.3-14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters. The empty list in a function declarator that is not part of a
definition of that function specifies that no information about the number or types of the
parameters is supplied.124
関数定義の一部である関数宣言の引数リストが空リストの場合、それは引数(パラメータ)がないことを示す。
関数定義の一部でない観戦宣言の引数リストが空リストの場合、それは引数の型や数についての情報がないことを示唆する。
30デフォルトの名無しさん:2010/12/05(日) 21:42:59
>>29
それは知ってるけどさ、C99に完全準拠しているコンパイラってIntel C++以外に
何があるの?

gccは部分準拠だから話にならないし
31デフォルトの名無しさん:2010/12/05(日) 21:51:22
>>29
俺が言うのもあれだが
お前はいつもそういうの持ち出すが大抵検討違い
格好つけたいのか?
32 ◆QZaw55cn4c :2010/12/05(日) 21:59:02
>>31
func() と func(void) が条件付で同等であることが規定されているのはこの部分なんですが、どこが「見当」違いなのでしょうか。
33デフォルトの名無しさん:2010/12/05(日) 22:00:27
>>32
だから今C99の話をして何になるの?って聞いてるんですけど無視ですか?
34 ◆QZaw55cn4c :2010/12/05(日) 22:07:13
>>33
それはそうですね。失礼いたしました。
35デフォルトの名無しさん:2010/12/05(日) 22:14:33
◆QZaw55cn4cはさあ、頭悪いんだから無理すんなよ
確かにプログラムはちょこっとは書けるようだけど、思考が論理的じゃないんだから
相当無理をしていると思うぞ

お前の書いている文章を読んでいてそう思うもん
36デフォルトの名無しさん:2010/12/05(日) 22:17:32
同意
気持ちが悪い
周りに迷惑だからこっち来ないで
ねぇ
37 ◆QZaw55cn4c :2010/12/05(日) 22:17:53
>>35
ご指摘ありがとうございます。無理しているつもりはないですが、論理的でないといわれると自身でお思い当たるところもありますね。
また、なにかお気づきの点がありましたら教えてください。
38デフォルトの名無しさん:2010/12/05(日) 22:19:55
>>37
自分で論理的じゃないって分かってないならこりゃ絶望的だな
自覚がないというのは最悪の事だ
39デフォルトの名無しさん:2010/12/05(日) 22:23:04
>>37
「なにかお気づきの点がありましたら教えてください」じゃねぇよ
そんなんでよく金取ろうとしたな
周りが楽しくお前のためにお前の間違え指摘してんじゃねぇんだぞ
何?お前みんなが自分のこと考えてくれてると思ってんの
気持ちわりぃな
40デフォルトの名無しさん:2010/12/05(日) 22:25:07
>>37
おめえよう、宿題答える時はちゃんとここで答えろ
自分のスレに答えのリンク貼ってんじゃねーぞコラ
41 ◆QZaw55cn4c :2010/12/05(日) 22:26:40
>>39
単なる社交辞令に噛み付かれても。
42デフォルトの名無しさん:2010/12/05(日) 22:27:03
>>38
誘導乙w
ここに宣伝貼るな
自分が建てたスレ恥ずかしくなって埋めたいのかもw
43デフォルトの名無しさん:2010/12/05(日) 22:28:34
>>41
だってよ
ついに尻尾出しやがった
わかってたがやっぱり自分は悪くないと思ってんだなw
重傷だ...
44デフォルトの名無しさん:2010/12/05(日) 22:29:11
>>41
だったら金とんなカス
あんな糞みたいな答えを書かれて金を取るというのはもはや詐欺だ
45デフォルトの名無しさん:2010/12/05(日) 22:30:58
◆QZaw55cn4cはアスペルガー症候群+自己愛性人格障害
それもかなり強烈

こいつは社会に出る事は出来ず家に引き籠もってプログラムでも書いてるしかないんだな
反省の意が全くない奴は社会は必要としない
46デフォルトの名無しさん:2010/12/05(日) 22:33:01
みんなでこいつのスレ埋めてこようず
47デフォルトの名無しさん:2010/12/05(日) 22:40:39
何か ◆QZaw55cn4c を育てるスレにでも変わったか?
別に良いじゃん。どうでも。
比較的まともに宿題に答えてる部類だし、
モリタポ稼げてるとも思えんし。
48デフォルトの名無しさん:2010/12/05(日) 22:42:56
何か面白い問題ないか?
難しすぎない奴1個頼む。
49デフォルトの名無しさん:2010/12/05(日) 22:55:04
あんなんでモリタポ稼げるわけがない
こいつ社会を舐めすぎ
娑婆はそんな甘いもんじゃおまへんで
50デフォルトの名無しさん:2010/12/05(日) 23:34:43
[1] 授業単元:C言語
[2] 問題文:
下記ソースに示される、上下左右につながる'#'の島の数を数える関数Funcを実装せよ。
http://codepad.org/UFLHo5LH
尚、gDtの内容は破壊してかまわないものとする。
例1) 次の場合島の数は3
 ...##
 ..#..  <--- 上下左右につながっていないので1つと数える
 .....
 ..###
 ....#

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: MinGW , VC++
 [3.3] 言語: C
[4] 期限: [2010年12月7日まで]
[5] その他の制限: 無し
51デフォルトの名無しさん:2010/12/06(月) 00:02:43
4近傍ってことか
52 ◆QZaw55cn4c :2010/12/06(月) 00:15:26
53デフォルトの名無しさん:2010/12/06(月) 00:25:04
>>52
答えがおかしくないか?
54デフォルトの名無しさん:2010/12/06(月) 00:30:52
>>53
いや、合ってるよ。
しかしあくまで抵抗するな /* >>3 */。
現在のrand()では不要ということかw
再帰使うともっとスッキリ書けるぞ。
55 ◆QZaw55cn4c :2010/12/06(月) 00:35:14
>>54
>再帰使うともっとスッキリ書けるぞ。
>>52 でも再帰をつかっていますが、これよりももっとスッキリ書ける方法は思いつきませんでした。
>>50 のためにも是非。
56デフォルトの名無しさん:2010/12/06(月) 00:42:12
>>55
日本語おかしかったな。"再起使ったんなら"って感じか。
スッキリつーのも俺にとってスッキリだけど。
http://codepad.org/alEtSwm0
57 ◆QZaw55cn4c :2010/12/06(月) 00:46:55
>>56
再帰関数の内部処理に若干の違いがあるものの、 >>56>>52 は本質的に同一ですね。提示いただきありがとうございます。
58デフォルトの名無しさん:2010/12/06(月) 02:27:30
糞スレ
59デフォルトの名無しさん:2010/12/06(月) 06:58:52
>>58
◆QZaw55cn4cがいなけりゃ良スレ
60デフォルトの名無しさん:2010/12/06(月) 07:58:37
int Func(void) {
int y, x, cnt = 0;
for(y = 0; y < N; y++) for(x = 0; x < N ; x++) cnt += f(y, x);
return cnt;
}

int f(int y, int x) {
if(gDt[y][x] != '#' || y < 0 || x < 0 || y == N || x == N) return 0;
gDt[y][x] = 0;
f(y, x + 1);
f(y, x - 1);
f(y + 1, x);
f(y - 1, x);
return 1;
}
61デフォルトの名無しさん:2010/12/06(月) 09:04:27
便乗質問です。
1.座標x,yで位置を指定されるイメージの2次元配列は、
 gDt[y][x]とyのほうを先に書くのが一般的でしょうか?
 理由も教えて頂けると幸いです。
2.条件文のショートサーキットは全ての環境で行われる保証があるのでしょうか?
 if (x>0 && gDt[y ][x-1]=='#') Replace(x-1, y );
62デフォルトの名無しさん:2010/12/06(月) 09:15:25
>61
1.
一般的かどうかは知らない
しかしながら、僕は画像(pixmapとか)を想定していたからわりと普通に思えた

2.
ノー、全てという保証はない、例えば、俺様環境とか
しかしながら、規格では短絡になることが決められている
ISO/IEC 9899:1999 (E)
6.5.13 Logical AND operator
4 Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation;
there is a sequence point after the evaluation of the first operand. If the first operand
compares equal to 0, the second operand is not evaluated.
63デフォルトの名無しさん:2010/12/06(月) 09:28:26
>>62
キモイからトリップ付けろよ。お前は根拠と示したことが
主観による解釈だから間違いだらけなんだよ。
64デフォルトの名無しさん:2010/12/06(月) 09:55:17
>>62 完全なアスペだな。
「全ての環境」と言うのは「規格を満たす」が暗黙の前提だ。
65デフォルトの名無しさん:2010/12/06(月) 10:30:44
>>21
書いてみたけど、例題みたいな変換結果は得られないよ
例題の変換結果を得るには A->B ではなく B->A にすれば良いみたい

#include <stdio.h>
int main( void )
{
 char* in = "SBB/!Z!N!!PTP!!VBU!!NLP!!";
 char tmp[5][6] = {0x00};
 int i, j;

 for( i = 0; i < 5; i++ ) {
  for( j = 0; j < 5; j++ ) {
   if( *in ) {
    tmp[j][i] = (*in) - 1;
    *in++;
   }
   else {
    tmp[j][i] = ' ' - 1;
   }
  }
 }
 for( i = 0; i < 5; i++ )
  printf( "%s", tmp[i] );
 printf( "\n" );
 return 0;
}
66デフォルトの名無しさん:2010/12/06(月) 11:46:27
[1] 授業単元:アルゴリズム相談
[2] 問題文:
 C++で例えば座標と燃料変数を持つCarクラスをなんらかのボタンを押したときなどに動的に生成したいのですが
どの様なプロセスで実装すればいいんでしょうか?
また生成したそれら全てを燃料がある限り動かしたいのですがメソッドでそろぞれ動かすためにはどうすればいいでしょうか?
[3] 環境
 [3.1] OS:Win
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語: C++
[4] 期限:なし
[5] その他の制限: C++独学始め

初めて質問でまだ勝手がわかりませんが、どうかよろしくお願いします。
67デフォルトの名無しさん:2010/12/06(月) 12:46:09
やっと規制解除。もう遅いかもしれないけど貼っておこうヽ(´ー`)ノ

前スレ650-651
http://hibari.2ch.net/test/read.cgi/tech/1289913298/650
http://codepad.org/hTWnVRm3
68デフォルトの名無しさん:2010/12/06(月) 13:02:36
1] 授業単元:C言語
[2] 問題文:次のようにファイルを使うために関数fopenでファイルを開く文を書きなさい。尚、すべてテキストモードとする。

(1)ファイルsinki.txtを新しく作成して書き込む。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: MinGW , VC++
 [3.3] 言語: C
[4] 期限: [2010年12月6日まで]
[5] その他の制限: 無し
69デフォルトの名無しさん:2010/12/06(月) 15:18:15
FILE *ofp = fopen("sinki.txt", "rt");
70デフォルトの名無しさん:2010/12/06(月) 15:18:53
"rt" じゃなくて "wt" だった
71デフォルトの名無しさん:2010/12/06(月) 16:48:03
>>21です。
>>23 >>24 >>65
御回答ありがとうございます。
助かりました。ありがとうございます。
72デフォルトの名無しさん:2010/12/06(月) 18:10:40
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):次のように、10から0までカウントダウンして、0になったら!!!と表示
して終わるCプログラムを作って実行しなさい。
  10
9
8
(中略)
1
0
!!!
[3] 環境
 [3.1] OS:mac OS X
 [3.2] コンパイラ名とバージョン:ターミナル
 [3.3] 言語: C
[4] 期限: 2010/12/8
[5] その他の制限: for文を習った時に出された課題です。
お願いいたします。
73デフォルトの名無しさん:2010/12/06(月) 18:22:47
74デフォルトの名無しさん:2010/12/06(月) 18:23:02
このくらい出来ないと今後の課題も全て無理じゃね?全部やってもらうの?と思う宿題がたまにあるよね。

>>72
とりあえず2パターン。

int i;
for(i=0;i<=10;i++)printf("%d\n",10-i);
printf("!!!");

int i;
for(i=10;i>=0;i--){
  printf("%d\n",i);
  if(i==0)printf("!!!\n");
}
75デフォルトの名無しさん:2010/12/06(月) 18:54:41
>>74
いざプログラムを組む時になると、どれをどういう風に使ったらよいか全然分からなくなってしまって…
多分一行一行の理解が出来て無いんだと思います
>>72>>74
どうもありがとうございました、大変助かりました
76デフォルトの名無しさん:2010/12/06(月) 20:15:18
>>72
タイマーを実装しろって問題じゃないんだよね
77デフォルトの名無しさん:2010/12/06(月) 20:39:47
>>72
#include <stdio.h>
#include <time.h>
int main(void) {
clock_t n,i,cnt=10;
for(i=0; i<=cnt; ) {
n=clock()/CLOCKS_PER_SEC;
if(n>=i) {
printf("%d ",cnt-i); i++;
}
}
printf("アッー!!!\n");
return 0;
}
78デフォルトの名無しさん:2010/12/06(月) 21:00:48
#include <stdio.h>
#include <conio.h>
int main(void) {
while( !kbhit() ){ putchar('A'); } return 0;
}
79デフォルトの名無しさん:2010/12/06(月) 21:09:31
'∀' '-' '_' 'д'
80デフォルトの名無しさん:2010/12/06(月) 21:18:59
>>66
取りあえずホイ。
http://mailsrv.nara-edu.ac.jp/~asait/visual_cpp/intro_cpp.htm
いまどきMFCなど薦めるなといわれそうだが・・・・
C++だとMFCが一番情報多いんじゃないかな。
後は頑張れ。
81デフォルトの名無しさん:2010/12/06(月) 21:20:13
[1] プログラミング演習
[2] 問題文
メンバとしてchar型変数chとint型変数i,double型変数dを持つ
共用体を用意する。iに16進数を代入した後ch,i,dそれぞれを
表示するプログラムを作成せよ。なお、表示する際に、全ての変数を%xで
表示すること。
[3] 環境
 [3.1] windowsXP
 [3.2]visual stdio2005
 [3.3] c++
[4] 2010/12/7
[5] 無し

よろしくお願いします
82デフォルトの名無しさん:2010/12/06(月) 21:24:22
ch と d に何も入れないと、どんな値が入っているか不定だが
83デフォルトの名無しさん:2010/12/06(月) 21:40:58
>>81
こうなってくるとCOBOLだな。
84デフォルトの名無しさん:2010/12/06(月) 21:41:47
[1] プログラミング演習
[2] 問題文
構造体を引数と戻り値とする関数を作成せよ。なお、作成する関数は
引数を四則演算して戻すものとする。
[3] 環境
 [3.1] windowsXP
 [3.2]visual stdio2005
 [3.3] c++
[4] 2010/12/7
[5] 無し

こちらもお願いします。

>>82
問題文には、このように書かれてました。
85デフォルトの名無しさん:2010/12/06(月) 21:50:26
>>81
深く考えず、問題の内容どおりのソースを書いた。
#include <stdio.h>
union UA {
char ch;
int i;
double d;
};
int main() {
union UA A;
A.i = 0x12345678;
printf("ch : %x\n",A.ch);
printf("i : %x\n",A.i);
printf("d : %x\n",A.d);
return 0;
}
86デフォルトの名無しさん:2010/12/06(月) 21:53:56
不定だってよ、笑っちまうな
87デフォルトの名無しさん:2010/12/06(月) 21:58:34
全くつながらんな >>81 >>84
「おじいさんは芝刈りに」 と 「明日晴れるかな」という文章ぐらいつながらん。
88デフォルトの名無しさん:2010/12/06(月) 22:03:06
>>87
明日の大事な試合のために、おじいさんはスタジアム(ゴルフ場かも)の整備しているとみた
89デフォルトの名無しさん:2010/12/06(月) 22:03:48
>>87
おじいさんは芝刈りに行くけど明日晴れるかな
ツナガタ!!
90デフォルトの名無しさん:2010/12/06(月) 22:12:55
>>88
分かります
おじいさんは性格のいい働き者で自分仕事だけじゃなく孫の大切な大会のことも心配してるんですね
91デフォルトの名無しさん:2010/12/06(月) 22:22:03
>>3で依頼したものですが
問い2の処理はfor文を用いよと言われてしまいました
厚かましいようですがお願いしたく思います
92デフォルトの名無しさん:2010/12/06(月) 22:22:36
>>90
そうです
おじいさんは孫のためならバリカンでも芝刈りをします
93デフォルトの名無しさん:2010/12/06(月) 23:19:31
>>91
なるべく簡単に
#include <stdio.h>
int main()
{
int num;
scanf("%d",&num);
for (; num >1;) {
printf("%d ",num);
if (!(num % 2)){
num /= 2;
}else{
num *= 3; num++;
}
}
printf("%d\n",num);
return 0;
}
94デフォルトの名無しさん:2010/12/06(月) 23:24:33
[1] 授業単元:ネットワーク演習
[2] 問題文(含コード&リンク):
wireshark/tcpdumpで収集したファイルを読み込み、"SYNフラグのみ"が送られてくるパケットの平均の時間間隔(単位:秒)を"すべての送信元アドレスと送信先アドレスごと(1対1の関係で)"に求める。
最終的に求める平均時間間隔は、小数点第6位までとする。もし送信先に1度しかSYNを送られないアドレスがある場合は、その時間間隔を-1とする。
これをcsv形式で出力するプログラムを書いてください。

例えば、送信元が133.165.2.250で、66.42.132.222宛てに3回SYNを飛ばしたとする。
その時刻(タイムスタンプ)がそれぞれ"312.1s,313.3s,314.8s"だとすると、その時間間隔は1.1s(=313.3-312.1)と1.5s(=314.8-313.3)になり、平均は1.3s {=(1.1+1.5)/2 }になる。
また、送信元が133.165.2.250で、34.141.144.255宛てに1回しかSYNが飛ばなかったような場合は、そのアドレスに対しての時間間隔の平均値は-1になる。
この動作を繰り返します。

出力例
srcip          dstip           ave_timesub
133.165.2.250     66.42.132.22       1.3
133.165.2.250     34.141.144.255     -1
133.165.2.250     10.31.1.11        1.45
133.165.2.185     66.42.132.222      0.74
・・・
・・・

[3] 環境
 [3.1] OS: (Windows/Linux/等々)Linux CentOS 5
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:どちらでも可
[4] 期限: 12月13日
[5] その他の制限: なし

どうぞよろしくお願いします。
95デフォルトの名無しさん:2010/12/06(月) 23:25:49
>>93
ありがとうございます
96デフォルトの名無しさん:2010/12/06(月) 23:26:04
> 問い2の処理はfor文を用いよ

題意がわからんな
while を使うべきところを for にする事で何を学ばせたいのか
97デフォルトの名無しさん:2010/12/06(月) 23:35:42
>>94
回答者はwiresharkだかEtherealのファイル形式を調べることから初めにゃならんのか?
98デフォルトの名無しさん:2010/12/07(火) 00:09:52
>>97
だな、なんか業務の臭いがする
せめて tcpdump だかの出力サンプルくらいは提示しないと回答は得られないと思うよ
99デフォルトの名無しさん:2010/12/07(火) 00:20:19
>94
セントくん5なのにずいぶん古いバージョンのcc使っているんだな
こういうのは、perlやpythonでやったほうがいいと思うけど
がんばれ、未来のNWE

とりあえず、SYNとタイムスタンプの位置とがわかった
13日までか、ちょっとがんばってみる
いや、やっぱやめよう
100デフォルトの名無しさん:2010/12/07(火) 00:21:59
しかしコンパイラ名がteratermとはなかなかいいね。
> 奇数なら3倍して1加える ・・・・ これを結果が1になるまで繰り返す
これは問題あってる?
101デフォルトの名無しさん:2010/12/07(火) 00:38:51
>>100
あってるはずだと思います
102デフォルトの名無しさん:2010/12/07(火) 00:45:19
>>101
そうか。じゃ >>93 をコンパイル実行した後、 3 を指定し、
停まるまで何時間かかったか後で教えてくれ。
103デフォルトの名無しさん:2010/12/07(火) 00:50:21
http://codepad.org/D7LCYDSZ

このような2分木を作成したのですが、

1,3のところを+
2,4のところを×にして、
計算式にしたいのですが、どのように変形すればいいですか?

やはり後順走査になりますか?

このソースをもとによろしくお願いします。
104デフォルトの名無しさん:2010/12/07(火) 00:52:29
>>102
>>93では

10

16




というようにはならないということですか?
105デフォルトの名無しさん:2010/12/07(火) 00:58:21
>>104
いや、俺が計算間違えたみたいだ。
もう一度よく考えてみるわ。これ必ず収束するのかなぁ・・・
ちなみに問題どおりのソースは for (; num!=1;) { だぞ。
106デフォルトの名無しさん:2010/12/07(火) 00:58:40
コラッツの予想は正しくなかったのでしょうかね?
107デフォルトの名無しさん:2010/12/07(火) 01:01:46
>>105
補足ありがとうございます
108デフォルトの名無しさん:2010/12/07(火) 01:12:19
1431655765とかは?
109デフォルトの名無しさん:2010/12/07(火) 01:15:06
>>108
GoodJob!!
110デフォルトの名無しさん:2010/12/07(火) 02:25:50
>>108

1431655765 4294967296 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
111デフォルトの名無しさん:2010/12/07(火) 02:46:41
[1] 授業単元:アルゴリズム
[2] 問題文
・正の値をキーボードから入力。-の値の場合停止。
・入力された値をヒープ配列(入力された値の並びをヒープに)に格納。配列の大きさはランダムにしておく。
そして降順に並びかえて画面に出力
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010/12/7 23:59分までにお願いします
時間あまりなくてすいません・・・ 本当に急いでます・・/
112デフォルトの名無しさん:2010/12/07(火) 02:53:16
void PushHeap(int x)

int i,j;
if(++n>=MAXSIZE)stop("Overflow");
else

heap[n]=x;
i=n; j=i/2;
while(j>0&&x>heap[j]){
heap[i]=heap[j]; i=j; j=i/2;

heap[i]=x;


がヒープへのデータの格納のアルゴリズムらしいのですがこれを参考に製作しろと言われました。
ここにおけるnはデータの個数、xは入れたい値、iとjは子と親の関係を表してます。
お願いします
113デフォルトの名無しさん:2010/12/07(火) 05:14:12
何度もレスすいません
降順ではなくヒープ配列に入っている順です
[72,35,47,18,29,32,13,5,9]等

114デフォルトの名無しさん:2010/12/07(火) 06:52:57
>>111
> 配列の大きさはランダムにしておく

if(++n>=MAXSIZE)stop("Overflow");  はて?
115デフォルトの名無しさん:2010/12/07(火) 06:58:08
配列の大きさnをランダムで決めるってことだろ
116デフォルトの名無しさん:2010/12/07(火) 07:02:27
違うnじゃなくてMAXSIZEだ
MAXSIZEって名前のグローバル変数なんだろ
117デフォルトの名無しさん:2010/12/07(火) 07:02:29
>>114

すいません!
そこの部分は与えられた題には関係ないですね・・・
MAXSIZEは定義されてないです。
とりあえず「正の値を入力してください」と何度も表示し-の値を与えられた場合
配列への値の格納を終了といった感じですので
ヒープ配列のサイズはランダムです。

わかりにくくてすいません・・・
118デフォルトの名無しさん :2010/12/07(火) 10:50:43
119デフォルトの名無しさん:2010/12/07(火) 14:57:59
>>118
ありがとうございます!

贅沢言って申し訳ないのですが これの簡素版って不可能なんですかね?
出来るだけライブラリ関数を使わなかったりとか…
すみません…
あまり凝ったのだと 僕の実力と合わない故…
120デフォルトの名無しさん:2010/12/07(火) 15:34:25
>>119

>>118はソート他を実装してくれてるじゃん
ライブラリ関数のqsortは使ってない

後は動的配列だが、こんなもん自分で実装する方が実力と合ってないと思う
ライブラリ関数で出来る事はそれを使った方がいい
121デフォルトの名無しさん:2010/12/07(火) 15:34:44
[1] 授業単元:情報
[2] 問題文(含コード&リンク):整数i, j,実数x,y それぞれに任意の値を入力し、
i+j, i-j, およびx+y,x/yを計算し、その結果を出力するプログラムを作成せよ
入力にはscanf関数、出力にはprintf関数を用いること
出力結果は
i+j=計算結果の数字
i-j=計算結果の数字
x*y=計算結果の数字
x/y=計算結果の数字
[3] 環境
 [3.1] Windows_xp
 [3.2] コンパイラ名とバージョン: ?
 [3.3] 言語:C99
[4] 期限: 明日の12時
[5] その他の制限: TeraPaDでコマンドプロンプトに実行


お願いします


122デフォルトの名無しさん:2010/12/07(火) 15:36:54
>TeraPaDでコマンドプロンプトに実行
このレベルだとC99でいいってのも怪しいな
123デフォルトの名無しさん:2010/12/07(火) 15:38:56
>>118 int main() 爆笑
124デフォルトの名無しさん:2010/12/07(火) 15:39:43
>>118 static void 大爆笑wwwwwww
125デフォルトの名無しさん:2010/12/07(火) 15:40:16
えっ
126デフォルトの名無しさん:2010/12/07(火) 15:40:56
カプセル化を意識するとそうなる
127デフォルトの名無しさん:2010/12/07(火) 15:41:03
>>122
C99対応の教科書使っています
128デフォルトの名無しさん:2010/12/07(火) 15:43:19
>>123-124
顔洗って出直して来い
129デフォルトの名無しさん:2010/12/07(火) 15:44:41
static void の意味も理解していないとバレバレな使い方しているしwwwwww
こいつ知ったか無知wwww
130デフォルトの名無しさん:2010/12/07(火) 15:46:14
http://codepad.org/fbIGEN8w
このソースに於いて static void は意味ないよ。というか、何の意図があって?と
逆に意味を成さない行為に疑問をもたれるよ。
131デフォルトの名無しさん:2010/12/07(火) 15:46:35

>>118 int mainのとこはvoid mainなんですかね?あとstatic voidとはどういった処理なんですかね?記憶になくて… 薄識ですいません…
132デフォルトの名無しさん:2010/12/07(火) 15:49:08
static void ・・・ちょっと格好つけてみたかったとです・・・ヒロシです・・・(キリッ)
static void だっておー(バンバン)
ぎゃははははははははははは!!!wwwwww
133デフォルトの名無しさん:2010/12/07(火) 15:49:22
ここまで自信満々に間違えると恥ずかしいな
134デフォルトの名無しさん:2010/12/07(火) 15:52:47
別に意味がないってだけで間違いではないんじゃ
135デフォルトの名無しさん:2010/12/07(火) 16:04:02
>>130
void staticを使わないでも出来るということですかね? なにぶん見たことない処理ですので…
136デフォルトの名無しさん:2010/12/07(火) 16:05:43
>>133-134
かまって欲しいだけなんだからスルーしろ
137まさるさん:2010/12/07(火) 17:27:52
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):

c言語の問題について
10桁以上ある2進数をユーザに入力させ,
それを4桁ずつ区切って(16進数で)表示するプログラムを作成せよ

実行例です。
H:\> prog0904 000111101001001
0001 = 1
1110 = e
1001 = 9
001 = 1

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語:C++
[4] 期限: ([2010年12月7日18:00まで] )
[5] その他の制限:TeraPaDでコマンドプロンプトに実行
138デフォルトの名無しさん:2010/12/07(火) 18:21:11
test
139デフォルトの名無しさん:2010/12/07(火) 18:32:07
int main() wwwwwww
static void wwwwwww
voidを使う場所、それで良いんか?
140デフォルトの名無しさん:2010/12/07(火) 18:47:50
静的関数はともかく
int main()はなんの問題があるの?
141 ◆QZaw55cn4c :2010/12/07(火) 18:54:17
>>140
なんの問題もありません。
ISO/IEC 9899:1999 6.7.5.3-14
ISO/IEC 9899:1999 5.1.2.2.1-1
142デフォルトの名無しさん:2010/12/07(火) 18:56:02
>>141
お前は黙ってろ

知らない方へ
こいつの隔離スレをご覧ください
143デフォルトの名無しさん:2010/12/07(火) 18:57:58
>>140
特に問題ないけど
144デフォルトの名無しさん:2010/12/07(火) 18:59:12
>>137
#include <iostream>

int main(int argc, char **argv) {
int i, n = 0;
if(argc < 2) return 0;
for(i = 0; argv[1][i]; ++i) {
n = n * 2 + argv[1][i] - '0';
std::cout << argv[1][i];
if(i % 4 == 3) {
std::cout << " = " << std::hex << n << std::endl;
n = 0;
}}
}
145144:2010/12/07(火) 19:02:47
>>137
最後の処理忘れた
#include <iostream>

int main(int argc, char **argv) {
int i, n = 0;
if(argc < 2) return 0;
for(i = 0; argv[1][i]; ++i) {
n = n * 2 + argv[1][i] - '0';
std::cout << argv[1][i];
if(i % 4 == 3) {
std::cout << " = " << std::hex << n << std::endl;
n = 0;
}}
if(i % 4 != 3) std::cout << " = " << std::hex << n << std::endl;
}
146デフォルトの名無しさん:2010/12/07(火) 19:13:23
147デフォルトの名無しさん:2010/12/07(火) 19:15:14
C++はC言語の上位互換です!w
148デフォルトの名無しさん:2010/12/07(火) 19:17:43
>>147
質問者がどっちか分かってないんだからしょうがないだろ
149デフォルトの名無しさん:2010/12/07(火) 19:18:18
>>145
最後の3桁の時に答えが表示されないぞ
150デフォルトの名無しさん:2010/12/07(火) 19:20:19
>c言語の問題について
って書いてあるんだからCなんじゃないの?
言語:C++の信用度は限りなく低い
151デフォルトの名無しさん:2010/12/07(火) 19:21:57
>>149
if(i%4) だった
ループのインクリメント忘れてた
152デフォルトの名無しさん:2010/12/07(火) 19:39:23
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題1 2つの整数値を読み込んで、その差の絶対値の数だけ「ツイテル」を表示する「ツイテルプログラ ム」を作成しなさい。
num1:18
num2:3
ツイテル ツイテル ツイテル ツイテル ツイテル
ツイテル ツイテル ツイテル ツイテル ツイテル
ツイテル ツイテル ツイテル ツイテル ツイテル
問題2 2重ループの構文を用いて、次の実行結果に示すように数値でピラミッドを表示するプログラムを作成しなさい。
段数を入力して下さい8
1
22
333
4444
55555
666666
7777777
88888888
問題3 2重ループの構文を用いて、次の実行結果に示すようにn行×m列の長方形を表示するプログラム
を作成しなさい。
高さ(n)を入力して下さい:5
幅(m)を入力して下さい:10
**********
*        *
*        *
*        *
**********
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:12月8日
よろしくお願いします。
153デフォルトの名無しさん:2010/12/07(火) 19:56:17
>>111-112
>>118はおそらくヒープ間違い
単元が「アルゴリズム」で,>>112の「子と親の関係」という記述もあることだから
おそらく配列を使ったヒープ構造を指しているのじゃなかろうか
154デフォルトの名無しさん:2010/12/07(火) 20:16:52
155デフォルトの名無しさん:2010/12/07(火) 20:57:05
どなたか>>103をお願いします
156デフォルトの名無しさん:2010/12/07(火) 22:07:34
>>153
そうです

>>118って結局合ってるんですかね?

時間ないですが>>111お願いします………
切実です………
157デフォルトの名無しさん:2010/12/07(火) 22:28:28
質問なんですがstatic voidとは結局どのような意味なのでしょうが?
もし説明しろと言われると詰まるので・・・
158デフォルトの名無しさん:2010/12/07(火) 22:34:02
>>157
staticだけ消してもうその事は忘れろ
159 ◆QZaw55cn4c :2010/12/07(火) 22:35:09
>>157
一つのプログラムが一つのファイルで構成されている場合は、関数の宣言の前につける static は省略してもかまいません。
static void func() なら void func() だけでOK。
160デフォルトの名無しさん:2010/12/07(火) 22:38:01
>>118は全くの見当違い
気球(バルーン)を作って欲しかったのに
出来上がったものは紙風船(バルーン)だった
161デフォルトの名無しさん:2010/12/07(火) 22:42:48
>>157
static void は検索すれば何なのか分かるが、少なくともそのコードでは
特に意味のある、必要不可欠な部分ではないことは確か。
162デフォルトの名無しさん:2010/12/07(火) 22:43:45
>>160は英単語では同じだからこうかな
船(シップ)を作って欲しかったのに湿布(シップ)が出来たと
163デフォルトの名無しさん:2010/12/07(火) 22:51:40
まとめるとstaticと表記された部分を全て消去すればおk ということですね?

>>118さんも補足してくれた皆さんも本当にありがとうございます・・・!
164デフォルトの名無しさん:2010/12/07(火) 23:11:48
>>118をコンパイルすると

36:21: warning: multi-character character constant

In function ‘main’
36: 警告: 暗黙の定数変換でオーバーフローしました


となり
実行結果は表示されるのですが値の前になぜか\がついてしまいます

すいません・・・

このコンパイル結果はエラーではないのですかね?
165デフォルトの名無しさん:2010/12/07(火) 23:26:56
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次の手品を完成させるための、7組の数字郡を表示するプログラムを作りなさい。
(1)手品師は1~99 の数字の書かれた7枚のカードを用意し、客に渡す。
(2)客は1〜99の中の任意の数字を1つ思い浮かべ、
 7枚のカードの中からその数字が入っているものを全て選び手品師に渡す。
(3)手品師は渡されたカードを見て、客の思い浮かべた数字を瞬時に言い当てる。
タネ
(4)手品師は渡されたカードの最初の数字の合計を暗算する。
 その合計値が客の思い浮かべた数字となる。

問題
7枚のカードに書くべき数字をカードごとに表示するプログラムを作成しなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: MinGW
 [3.3] 言語: C言語
[4] 期限: 2010年12月8日23時59分
[5] その他の制限: 制限無し
166 ◆QZaw55cn4c :2010/12/07(火) 23:41:03
167 ◆QZaw55cn4c :2010/12/07(火) 23:47:28
>>164
手元の環境では問題なくコンパイルできます。
なんかまちがったところを消したりしてませんか?
168デフォルトの名無しさん:2010/12/07(火) 23:58:35
>>167

\のとこは解決できました。

一応実行は出来るのですが

警告文は無視していいのですかね?
一応気になったもので・・・
169デフォルトの名無しさん:2010/12/07(火) 23:58:55
>>165
> (2)客は1〜99の中の任意の数字を1つ思い浮かべ、
> 7枚のカードの中からその数字が入っているものを全て選び手品師に渡す。

これってどういう意味?
例えば 17 を思い浮かべたとすると 1 もしくは 7 の数字が入ったカードって意味?
170デフォルトの名無しさん:2010/12/08(水) 00:12:40
>>165
これって答えの一つになる?ならない?
10 26 38 46 58 70 90
171デフォルトの名無しさん:2010/12/08(水) 00:14:07
>>121 まだならどうぞ。
#include <stdio.h>
int main(void) {
int i, j;
double x, y;
printf("整数1つ目を入力してください:");
scanf("%d", &i);
printf("整数2つ目を入力してください:");
scanf("%d", &j);
printf("実数1つ目を入力してください:");
scanf("%lf", &x);
printf("実数2つ目を入力してください:");
scanf("%lf", &y);
printf("%d + %d = %d\n", i, j, i + j);
printf("%d - %d = %d\n", i, j, i - j);
printf("%f * %f = %f\n", x, y, x * y);
printf("%f / %f = %f\n", x, y, x / y);
return 0;
}
172デフォルトの名無しさん:2010/12/08(水) 00:14:34
173169:2010/12/08(水) 00:18:13
>>172
出力結果を見る限り、問題の意味を分かってないんじゃないかと
174165:2010/12/08(水) 00:21:13
>>169-170
う〜ん。どうでしょう。165が問題文の全てです。
問題に隙があればイヤミ臭くコメントにでも書きます。

>>170
◆QZaw55cn4c さんの >>166 の回答を見る限り、
17を思い浮かべた時に1と7は含まれず、そのものズバリの17だけのようです。

>>170
どうでしょう。よく分かりません。

色々、確認してみてるのですが ◆QZaw55cn4c さんの >>166 は正しそうですね。
どういうことなのかしら?
175169:2010/12/08(水) 00:23:13
>>174
いま題意が分かった

>>166 さんゴメン
176 ◆QZaw55cn4c :2010/12/08(水) 00:28:16
>>165
>>173
たとえば客が 29 を想像し、
card 1, 3, 4, 5 を手品師に渡す。
card 1, 3, 4, 5 の先頭の数字は、1, 4, 8, 16
手品師は 1+4+8+16=29 と暗算する。
177176 ◆QZaw55cn4c :2010/12/08(水) 00:29:31
遅かった。失礼しました。
178デフォルトの名無しさん:2010/12/08(水) 00:43:18
>>176
2010年12月8日23時59分でいいのでタネあかしを一つよろしく。
それまで俺なりに考えます。
注)モリタポは持ってません。
179 ◆QZaw55cn4c :2010/12/08(水) 00:52:50
>>178
モリタポか‥‥‥。ネタのつもりでネタに徹したのですが、思わぬ反響がありますねえ。
それはともかく、
card1 二進数で 2^0 の位が 1 であるような数全部
card2 二進数で 2^1 の位が 1 であるような数全部
card3 二進数で 2^2 の位が 1 であるような数全部

客が card1 card3 を手渡してきたとき、それは暗に「私の思い浮かべている数は二進数で 2^0 の位が1、2^2 の位が1、あとは 0」といっているようなものです。
180デフォルトの名無しさん:2010/12/08(水) 00:53:22
これだけでよくね?
#include <stdio.h>

int main(void)
{
int i, j;

for(i=0;i<7;i++)
{
printf("Card %d :", i+1);
for(j=1;j<=99;j++)
{
if(j&(1<<i)) printf(" %d", j);
}
printf("\n");
}
return 0;
}
181デフォルトの名無しさん:2010/12/08(水) 00:54:13
2進数
182デフォルトの名無しさん:2010/12/08(水) 00:55:46
それ以外にも先頭の数字の組み合わせ方とかあるのかな
183デフォルトの名無しさん:2010/12/08(水) 00:58:38
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-12-8.pdf
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 制限なし

よろしくお願いします。
184165:2010/12/08(水) 00:58:43
なるほど2進数か。さっき理解した。
解ければ、なかなかいい問題じゃんと思えてきた。
185デフォルトの名無しさん:2010/12/08(水) 00:59:32
>>182
あるよ
1 2 4 8 16 32 36
1 2 4 8 16 32 37
1 2 4 8 16 32 38
1 2 4 8 16 32 39
1 2 4 8 16 32 40
1 2 4 8 16 32 41

みたいにね
186176 ◆QZaw55cn4c :2010/12/08(水) 01:06:59
187デフォルトの名無しさん:2010/12/08(水) 01:21:02
◆QZaw55cn4cは出てくるなよ
188デフォルトの名無しさん:2010/12/08(水) 01:41:11
>>182
#include<stdio.h>

int main(void)
{
int kind[]={50, 25, 12, 6, 3, 2, 1};
int i, j, k, rest;

for(i=0;i<7;i++)
{
printf("Card %d :", i+1);
for(j=1;j<=99;j++)
{
rest=j;
for(k=0;k<i;k++)
{
if(rest>=kind[k]) rest-=kind[k];
}
if(rest>=kind[i]) printf(" %2d", j);
}
printf("\n");
}

return 0;
}
189デフォルトの名無しさん:2010/12/08(水) 02:50:17
>>103をお願いします・・・
190デフォルトの名無しさん:2010/12/08(水) 04:25:14
>>103
再帰使ったらダメなの?
http://codepad.org/zsO8UpZy
191118:2010/12/08(水) 08:56:59
みなさん、わらかしてしまってすいません。
staticは「どうせ、このファイルでしか使わないし」と思ってつけました。
192デフォルトの名無しさん:2010/12/08(水) 09:16:10
いや、それは正しい。笑った奴が素人。
193デフォルトの名無しさん:2010/12/08(水) 09:38:43
>>192
必要性のないことをしたから笑われたんだろ。知ってて笑われていることに気づかないお前が素人以下。
194デフォルトの名無しさん:2010/12/08(水) 09:39:45
>>192
いや、お前が素人。自分は意味を知っていたけど、相手は知らずに笑ったと思ったんだろ?
他人に理解されないとかではなく、意味も成さないコードを書くと笑われて当然。
もう少し他人の目を気にした方が良いですよ、知ったかの似非上級者さん。
自分は知っている=上級者ではないから。
195デフォルトの名無しさん:2010/12/08(水) 09:44:31
>>192
そこまで言うなら、その他の課題、コードにも全部 static 戻り値の変数の型 func()
って書けば?何で常にそれを貫き通さないのに、突発的に記述したりしなかったりする訳?
それが本質的に必要不可欠ならまだしも、あのコードは違和感を感じる人がいてもおかしくない。

お前は一生#include <stdio.h> int main() で良いよ。と言うかそれに限定しろ。

知ったか無知の思い上がったバカが特定できるから、コードに穴があったら
徹底的に批判してやるから。その内、自分のスタイルを叩かれて自身をなくすだろうけど
正さない、無駄な行動が多い奴は必要なことを最低限するという頭がなく
不要な無駄なことばかりして、自分は出来るんだと見せ付けたいお子ちゃまレベルの
低脳だから、バレバレ。
196デフォルトの名無しさん:2010/12/08(水) 09:48:14
ttp://www.geocities.jp/ky_webid/c/032.html

○静的関数
静的変数の関数版が、静的関数(static関数)です。関数なので、
ローカルということはありませんから、ローカル/グローバルの別はありません。
静的関数を使う方法は、関数の宣言時に、先頭にstaticと付けるだけです。
static void func(void);
関数の定義の方には、付けても付けなくても構いません。もちろん、付けておけば分かりやすいでしょう。

静的関数の意味は、静的グローバル変数と同じで、
そのソースファイル内からしかアクセスできないようにするというものです。


複数のソースを纏めて、その他にも同じ関数名のものがあるなら分かるが
118でその意味は理解されないよ。
それから BubbleSort の中身、揚げ足取りをしたくはないが
厳密に言うと無駄があるよ。
197デフォルトの名無しさん:2010/12/08(水) 09:49:57
無駄な部分を指摘しておくぞ

for(j = i; j<size;j++){
if(temp[i] <= temp[j])

後は自分で気づけ。
198デフォルトの名無しさん:2010/12/08(水) 09:59:41
っつか、それ、バブルソートじゃねーよ
199デフォルトの名無しさん:2010/12/08(水) 10:06:14
選択ソートだとしても
swap(&temp[i],&temp[j]);
の場所が不適切で無駄が発生しているよ。
比較して交換する候補が見つかったら、その位置を記憶して
2つ目のループの最後に交換で構わない。
200デフォルトの名無しさん:2010/12/08(水) 10:09:08
動けばいいのではないだろうか
201デフォルトの名無しさん:2010/12/08(水) 10:10:28
>>195
> そこまで言うなら、その他の課題、コードにも全部 static 戻り値の変数の型 func()
> って書けば?何で常にそれを貫き通さないのに、突発的に記述したりしなかったりする訳?

はあ? >>118は必須なシンボル(main)以外は全部staticになっているぞ。
「何で常にそれを貫き通さない」ってなんの事だよ。
202デフォルトの名無しさん:2010/12/08(水) 10:22:12
[1] 授業単元:プログラミング

[2] 問題文(含コード&リンク):
例題4の3個のfor文について規則性を見出し,
これを1つのfor文でまとめよ.
ヒント:2重ループのfor文になる.

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

[4] 期限: 本日中

[5] その他の制限:
for文、if文、配列を習っているところです。
下記の例題4の解答のレベルに合わせてもらえると幸いです。

例題4は↓の問題です。
例題3と同じく,int型の配列aを
a={ 5, 3, 1, 8, 3, 4, 7, 2}
と初期設定する.
このとき,配列の要素どうしの入れ替えを行い,
a[0] に一番大きい値
a[1] に二番目に大きい値
a[2] に三番目に大きい値
を格納するようなプログラムを作成せよ。

http://codepad.org/k5jEHRGr
203デフォルトの名無しさん:2010/12/08(水) 10:26:32
[1] 授業単元:プログラミング

[2] 問題文(含コード&リンク):
10進数で表現された63以下の正の整数をキーボードから入力する.
これを2進数に変換し,1の位から順にint型の配列a[0]〜a[5]に代入するプログラムを作成せよ.

ヒント
10進数を2進数へ直す計算方法を思い出そう.
この例は10進数に21を与えている.
21を2で割ったあまりを順に並べて各位の値を決めたはずである.
この場合は63以下なので,たかだか6回の割り算であまりを求めればよい.

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

[4] 期限: 本日中

[5] その他の制限:
for文、if文、配列を習っているところです。
こちらも上記の例題4の解答のレベルに合わせてもらえると幸いです。
204デフォルトの名無しさん:2010/12/08(水) 10:40:29
#include <stdio.h> int main() 大爆笑
その内、嘲笑、失笑になるから。
205デフォルトの名無しさん:2010/12/08(水) 10:53:45
>>195は逃亡ですか?

>>204
static voidの話なんだが、それが#include <stdio.h> int main()と何か関係有るのか?
206デフォルトの名無しさん:2010/12/08(水) 10:56:14
207デフォルトの名無しさん:2010/12/08(水) 10:57:32
話題引きずりすぎっすわぁwwww
208デフォルトの名無しさん:2010/12/08(水) 10:59:55
(´-`).。oO(馬鹿は放置しとけばいいのに)
209118:2010/12/08(水) 11:07:57
>>197
for(j = size-1;j>i;j--)
210118:2010/12/08(水) 11:23:34
>>203
新たに作るのめんどくさいから、http://codepad.org/sV4AAxVS
参考につくってみて
211デフォルトの名無しさん:2010/12/08(水) 11:26:47
212デフォルトの名無しさん:2010/12/08(水) 11:28:29
>>206
ありがとうございます

>>210
すみません、まだプログラミングを学び始めたばかりで
わからないところが多すぎて参考になりそうにないです…
213デフォルトの名無しさん:2010/12/08(水) 11:33:49
整数i,j,実数x,yそれぞれに任意の値を入力し,i+j,i-j,およびx*y,x/yを
計算し,その結果を出力するプログラムを作成せよ。入力にはscanf関数,
出力にはprintf関数を用いること。また,出力結果は次のような形式で
表示されること。当然ではあるが,数値については各自のi,jの値の選び方
によって計算結果が異なる。
おねがいします
214デフォルトの名無しさん:2010/12/08(水) 11:35:12
>>213
テンプレ
215デフォルトの名無しさん:2010/12/08(水) 11:37:19
>>214
>>171に書いておいたぞ。
216215:2010/12/08(水) 11:38:08
ミス
>>213
>>171に書いておいたぞ。
217デフォルトの名無しさん:2010/12/08(水) 11:38:19
>>211
すみません、>>210よりはまだ理解出来そうなのですが
while break putchar a[i++]
この辺りを使わずに出来ますかね?
218デフォルトの名無しさん:2010/12/08(水) 11:43:42
>>217
http://codepad.org/1M0xn7hr

こんなもんでどうですか?
219デフォルトの名無しさん:2010/12/08(水) 11:45:00
>>216
ありがとうございます。
220デフォルトの名無しさん:2010/12/08(水) 11:46:20
>>200
そういう問題ではないんだが・・・
221デフォルトの名無しさん:2010/12/08(水) 11:51:42
>>218
お手数をおかけしました
ありがとうございます
222デフォルトの名無しさん:2010/12/08(水) 12:01:21
意味を成さない無駄な動作をさせても動けば良い、あっそ。
そんな考えならプログラマーになんて向いてないよ。早く別の職種に転職を考えな。
適性のない選択をすると、一生を無駄にしますよ。ほら、こうしている間にも
確実にいつか必ず死ぬ日に刻一刻と近づいて、生きられる時間は短くなっていますから。
それは明日かもしれませんよ?
223デフォルトの名無しさん:2010/12/08(水) 12:04:30
>>222
自己紹介乙
そういうのを余計なお世話って言うんだよ
224176 ◆QZaw55cn4c :2010/12/08(水) 12:28:09
225デフォルトの名無しさん:2010/12/08(水) 12:37:02
>>224
ねえねえC89の話をしてるのにどうしてC99の規格票を参考にするの?
わけを教えて?意味あるの?
226デフォルトの名無しさん:2010/12/08(水) 13:51:40
>>225
コピペ厨に聞いても返ってくるわけないじゃん
227デフォルトの名無しさん:2010/12/08(水) 18:28:27
>>223
どこをどう読んだら自己紹介になるんだろうか・・・
あぁ、お前>>118かw
228デフォルトの名無しさん:2010/12/08(水) 18:33:51
いや、いつかは分からなくても、こうしている間にも時間は経過して
必ず老化も進み、衰弱するか病気になるかもハッキリとは分からないが
必ずいつかは誰もが死ぬんだが?いくら再生医療が発達した現代でも
DNAが分裂して新しい細胞が生み出されている訳だが、その再生できる回数に
限りがあるとのこと。その寿命が来た時、あるいは著しく健康を悪化させた結果
癌などに侵されるなりして、生物はいつかは死ぬんだが。
まぁ、人の死が身近ではない人もいるだろうけど、いずれ周りの人間で誰かは死ぬし
もしかすると自分が、不慮の事故などで死ぬかもしれないよ。

そんな中、こんな場所で自分より劣るプログラマーを見つけては罵倒して楽しイカ?
悪いがそんな池沼と付き合いたくないし、そんなバカと関わっても有意義な時間、人生が
過ごせるとは思えないんで。ここは幸い、IDもなく自分が特定されずに済むから
>>223 みたいなバカが居たらスルーするんで、以後放置よろ。
229 ◆QZaw55cn4c :2010/12/08(水) 18:34:54
>>225
どこにC89の話とかいてあるのですか?
あと、この話題はC89でもC99でも同じです。
230デフォルトの名無しさん:2010/12/08(水) 18:40:11
これだけ嫌われてるのに普通に書き込める厚顔さには呆れる
231デフォルトの名無しさん:2010/12/08(水) 18:42:20
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://情報処理試験.jp/FE22b-pm/t08.html
この問題のプログラム1とプログラム2をそれぞれ関数化しメイン関数で呼び出し実行するプログラムの作成。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:12月10日
[5] その他の制限:なし
宜しく御願いします
232デフォルトの名無しさん:2010/12/08(水) 18:45:49
長文と ◆QZaw55cn4cの2大キチガイの競演かw
233デフォルトの名無しさん:2010/12/08(水) 18:46:57
>>229
C89だと main()は main(...)と同じ意味になってしまうんですけど?
C99はmain(void)ですが
234デフォルトの名無しさん:2010/12/08(水) 18:48:23
自分がいつ死ぬか分からないとは言え、自殺すればその時が自分の人生の終わりさ。
高速で移動する物体の前に飛び出してごらん。鉄道じゃ吹き飛ぶかぶっ潰されて
ばらばらに切断されるか。そう言えば、100km/hの車に轢かれて
上半身だけボンネット、フロントガラスに、下半身が衝突した場所に残っていた
悲惨な事故を思い出したぜ。要するに 人間なんて脆い 生き物だよ。
大災害で死ぬかもしれないよ。ほら、明日にでも自分の住む地域に
大地震が発生したらどうよ?その先生きのこれる自身
235デフォルトの名無しさん:2010/12/08(水) 18:48:25
>>230
だから◆QZaw55cn4cは自己愛性人格障害なんだよ

>尊大で傲慢な行動、または態度。

アスペルガー症候群だと思っていたが、この厚顔無恥さは間違いなく自己愛だ
236デフォルトの名無しさん:2010/12/08(水) 18:55:25
自己愛性人格障害の特徴 17人目★
http://toki.2ch.net/test/read.cgi/utu/1291613687/

◆QZaw55cn4cそのものだ

前スレの内容がなかなか良かったのだが残念ながらDAT落ち
●を持っている人は読んでみてくれ
とにかくこの種の人に関わらない方が良いという事が痛いほどわかる
237 ◆QZaw55cn4c :2010/12/08(水) 19:11:10
>>233
そう、つまり C89/C99 どちらにしても int main() は規格に適合するのです。
238デフォルトの名無しさん:2010/12/08(水) 19:47:13
ドヤッ
239デフォルトの名無しさん:2010/12/08(水) 19:57:49
>>237
お前アホか?意味が違ってくると言ってるんだけど
規格に適合するかどうかなど聞いてない
240デフォルトの名無しさん:2010/12/08(水) 20:01:45
構ってくれるから嬉しい
241デフォルトの名無しさん:2010/12/08(水) 20:11:16
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):AOJ0004 http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0004&lang=jp
[3] 環境
 [3.1] OS:windows
 [3.2] VC++
 [3.3] 言語: C
[4]期限:無し
[5] その他の制限:無し

http://codepad.org/6t8deX5z
現在のコードです。OnlineJudgeが通りません。
よろしくお願いします。
242 ◆QZaw55cn4c :2010/12/08(水) 20:11:58
>>239
>>204 -> >>224 -> >>225 -> >>229 -> >>233 -> >>237
これらの一連の流れを参照してください。
C89/C99 の両者でパラメータが空リストの場合に意味が異なるのは当然ご存知の上で、 int main() が規格に適合するか適合しないか、を問題にしているのです。
243デフォルトの名無しさん:2010/12/08(水) 20:20:20
うんぽこー!
244デフォルトの名無しさん:2010/12/09(木) 01:06:53
>>242
ここで相手すんな。すごくうざい。
245デフォルトの名無しさん:2010/12/09(木) 02:19:07
不当に流れが早くて、なんか困る
246118:2010/12/09(木) 05:22:39
>>241
#include <stdio.h>

double Y_Answer(double a,double b,double c,double d,
double e,double f)
{
return ((c/a)-(f/d))/((b/a)-(e/d));
}
double X_Answer(double c,double b,double y,double a)
{
return (c-b*y)/a;
}
int main()
{
double a,b,c,d,e,f,x,y;

scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);

y = Y_Answer(a,b,c,d,e,f);
x = X_Answer(c,b,y,a);

printf("%.3lf %.3lf \n",x,y);

return 0;
}
247デフォルトの名無しさん:2010/12/09(木) 06:49:45
>>241
君の回答だと 0x + 0y = 1, 0x + 0y = 2 の時に x = 0, y = 0 になるけどこれはおかしい
正しくは一意解無しで題意からすると不正な入力だ
同様に 0x + 1y = 1, 0x + 2y = 3 も x = 0, y = 1 になりおかしい
簡単に言うと a * e == b * d の場合は全て不正な入力という事だ
よって while() 内だけ書くと

if( a * e == b * d ) {
  printf( "Ileagal input.\n" );
}
else {
  x = ( c * e - f * b ) / ( a * e - b * d );
  y = ( c * d - f * a ) / ( b * d - a * e );
  printf( "%.3f %.3f\n", x, y );
}

で良いと思うのだけど
248デフォルトの名無しさん:2010/12/09(木) 10:23:10
a*e-b*d==0となるのは行列式が潰れている、つまり固有値0で解なしという事だな
249デフォルトの名無しさん:2010/12/09(木) 10:23:57
×固有値
○行列式
250デフォルトの名無しさん:2010/12/09(木) 10:53:36
>>248
知ってると思うけど行列式≠0という事はこの行列が正則行列である事をしめしており、
逆行列が存在する必要十分条件ね

逆行列が存在すると言う事はこの連立一次方程式は解けるという事と等価
251デフォルトの名無しさん:2010/12/09(木) 13:27:16
252デフォルトの名無しさん:2010/12/09(木) 13:31:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):

二つの整数width, heightを入力として受け付ける。
文字*を使って幅(横)width,高さ(縦)height,縁の太さ2の「中が空白の長方形」を描きなさい。
例えば, 7 6 を読み込んだときには,
*******
*******
**___**
**___**
*******
*******
と表示されればよい。
ただし_のところは空白文字を示すので,
画面上では何も表示されない)。
なお,width, heightは4以上30以下と仮定してよい。

[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: gcc 4
 [3.3] 言語: C
[4] 期限: できるだけはやく
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

よろしくお願いします
253デフォルトの名無しさん:2010/12/09(木) 14:19:43
254デフォルトの名無しさん:2010/12/09(木) 14:27:45
>>252
int main() {
char image[30 + 1][30 + 1] = {'\0'}, mark = '*', space=' ';
int i, j, w, h, thickness = 2;
printf("w h: ");scanf("%d %d", &w, &h);
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
image[i][j] = mark;
}
}
for (i = thickness; i < h - thickness; i++) {
for (j = thickness; j < w - thickness; j++) {
image[i][j] = space;
}
}
for (i = 0; i < h; i++) {
printf("%s\n", image[i]);
}
printf("%d %d", w, h);
return 0;
}
255デフォルトの名無しさん:2010/12/09(木) 14:45:56
256デフォルトの名無しさん:2010/12/09(木) 16:05:09
お、久々に人気宿題か?
257デフォルトの名無しさん:2010/12/09(木) 16:38:22
いや、全然
258デフォルトの名無しさん:2010/12/09(木) 17:43:48
配列分からないので助けてください!
[1] 授業単元:Cプログラミング(配列)
[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1291228.txt
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 12/10 よろしくお願いします
259デフォルトの名無しさん:2010/12/09(木) 18:35:09
>>258
問題4

#include <stdio.h>

int main(void)
{
int i;
double x, d = 0;

scanf("%lf", &x);

for(i = 10; i > 0; i--) d = d * x + i;

printf("%f\n", d);

return 0;
}
260デフォルトの名無しさん:2010/12/09(木) 18:39:40
次の要領で meibo を発行します。記号 < はリダイレクト機能を表す。標準入力(キーボード)を
ファイル meibo.dat に切り替えている。
$./meibo 24680 < ./meibo.dat
meibo:コマンド名 24680:生徒番号(code)である。
カレントディレクトリに予め用意したテキスト形式のデータベース meibo.datに番号 24680の
生徒が存在し「ない」場合は
not found
と画面に表示させ、データベース meibo.dat に番号 24680 の生徒が存在「する」場合は
No: 24680
Name: Toyato Jiro
Birth Day: 1970.11.12
Gender: M
Adress: 12-25, Meito Ward, Nagoya City, Aichi
Tel: 773-1252
School: Aichi Univ.
と画面に表示させる。
データベースは以下のように1行1レコードで構成されていて、1レコードは7つのアイテムから成る。
http://codepad.org/ouU2gH02
上のリンクの通り、レコード毎の区切りは改行で、アイテムの区切りはセミコロンになっている。
アイテムは、7項目あり、1) 生徒番号, 2) 名前, 3) 生年月日, 4) 性別, 5) 住所, 6) 電話番号, 7) 大学名
がこの順序で並んでいる。
上記のリンクでは、3レコード分しか無いが、各自でもう少しレコード数を増やして下さい。
以下のリンクに定義する構造体を使って、上のような実装をする meibo.c を書け。
  http://codepad.org/V7MCRX0a
261デフォルトの名無しさん:2010/12/09(木) 18:42:01
>>258
問題2
ttp://codepad.org/vEHYTcqt
これ見れば1も出来ると思うけどどうだ?
262デフォルトの名無しさん:2010/12/09(木) 18:43:46
>>260
書ききれなかったので、続きです。。。
 [3] 環境
 [3.1] OS:Mac OS X
 [3.2] コンパイラ名とバージョン:ターミナル
 [3.3] 言語:C
[4] 期限:2010年12月11日 15:00まで
[5] その他の制限:ファイル処理のやり方については、まだ習っていないので使わないで下さい。
         標準入力を meibo.dat に切り替えて扱うようにお願いします。
263デフォルトの名無しさん:2010/12/09(木) 18:43:56
>>261は初期化忘れていたw
こっちで ttp://codepad.org/4Phuv3f8
264デフォルトの名無しさん:2010/12/09(木) 18:48:36
>>258
問題5
#include <stdio.h>

int main(void)
{
int i;
double x, d = 0, an = 1;

scanf("%lf", &x);

for(i = 1; i <= 9; i++) an /= i;

for(i = 9; i >= 0; i--) {
d = d * x + an;
an *= i;
}

printf("%f\n", d);

return 0;
}
265デフォルトの名無しさん:2010/12/09(木) 19:12:03
     |
     ↓
266デフォルトの名無しさん:2010/12/09(木) 20:14:00
>>231
すみません、これを御願いします。
267デフォルトの名無しさん:2010/12/09(木) 20:21:19
>>258
問題1
int main(void) {
int i;
double f[10][10];
for (i=0 ; i<100 ;i++) printf(" %f\n",f[i/10][i%10]=11.0);
return 0;
}
268デフォルトの名無しさん:2010/12/09(木) 20:45:20
>>266
a,bに入る数字を書くものと考えて。
問題1
a : 1110110000001
b : 1110001000000
とか、こんな感じでいいの?
269デフォルトの名無しさん:2010/12/09(木) 20:59:30
cもあったな。
c : 0000101001
つーかこれC/C++言語の問題じゃないじゃん。
270デフォルトの名無しさん:2010/12/09(木) 21:05:00
>>268
プログラム例の通り5や3などの整数をうけとりそれを2進数に直す感じです。
271デフォルトの名無しさん:2010/12/09(木) 21:07:13
>>269
はい、摸擬言語です
これをC言語でプログラムを作る課題です
272デフォルトの名無しさん:2010/12/09(木) 21:43:50
>>271
同じようにやってるつもりだがNがマイナスの時に合わん。デバッグは任せた。
http://codepad.org/zmuVF75O
273デフォルトの名無しさん:2010/12/09(木) 21:51:31
>>272
自己レス。最後8ビット返すのか。最後下記な。
return R.b08;
274デフォルトの名無しさん:2010/12/09(木) 22:06:16
275デフォルトの名無しさん:2010/12/09(木) 22:52:59
>>274
有難う御座います。
276デフォルトの名無しさん:2010/12/09(木) 23:05:11
[1] プログラミング演習
[2] 問題文
バイナリファイルを読み込み、バイト数を調べて表示し、
コピーを作成するプログラムを作成せよ。
バイナリファイルは『マイピクチャ』の『Sample Pictures』に含まれる
jpgファイルなどをコピーして使用すること。
[3] 環境
 [3.1] windowsXP
 [3.2]visual stdio2005
 [3.3] c++
[4] 2010/12/11
[5] 無し

お願いします。
277デフォルトの名無しさん:2010/12/09(木) 23:39:23
278デフォルトの名無しさん:2010/12/10(金) 04:25:29
279278:2010/12/10(金) 04:40:25
ちょっと修正
ttp://codepad.org/mHd5vqD5
280デフォルトの名無しさん:2010/12/10(金) 07:14:17
>>260
http://codepad.org/qhIHDusv
adhocだな、年は1900年代固定で良いの?
281デフォルトの名無しさん:2010/12/10(金) 13:04:50
[1] 授業単元:プログラミング[2] 問題文(含コード&リンク):関数を利用して、x二乗+y二乗+z二乗の計算を求めなさい。コム際、2種類のタイプ(1)void型(2)return型をそれぞれ利用したプログラムを作成しなさい。x,y,zは任意の値とする。
[3] 環境
[3.2] コンパイラ名とバージョン: gcc
[4] 期限:はやめにお願いします。
お願いします!
282 ◆/91kCCQXBo :2010/12/10(金) 13:28:28
283デフォルトの名無しさん:2010/12/10(金) 15:53:01
[1] 授業単元:プログラミング

[2] 問題文(含コード&リンク):
Aスターアルゴリズムを用いた迷路探索解決プログラムの作成

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

[4] 期限: 12月20日まで

[5] その他の制限:
http://www.is.kochi-u.ac.jp/~ryooka/ai/main_depth.c
のプログラムを利用して
284デフォルトの名無しさん:2010/12/10(金) 15:56:56
>>283
まったく関係ないけど、こういうコメントちゃんとついたスタイルのソース、
なんか懐かしいな。俺も十年位前そういう書き方に没頭してた。
285デフォルトの名無しさん:2010/12/10(金) 16:12:16
変数名とか関数名をちゃんと考えて付けてればコメントなんか必要ないのだ。

>/* ノード数(状態数) */
>#define N 9
こういうの馬鹿じゃないかと思うね。

#define NODE_NUM 9
で十分じゃないか
286デフォルトの名無しさん:2010/12/10(金) 16:15:51
>>285
細かい
そんなのは個人の自由
文句があるならお前が書け
287デフォルトの名無しさん:2010/12/10(金) 16:18:47
細かい? 自由? 文句?

>>285は親切にもアドバイスくれてるだけだと思うが…。
288デフォルトの名無しさん:2010/12/10(金) 16:23:34
>>285みたいのは親切とは言わない
「大きなお世話」と言う
289デフォルトの名無しさん:2010/12/10(金) 16:26:11
http://dictionary.goo.ne.jp/leaf/jn2/28447/m0u/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%81%8A%E4%B8%96%E8%A9%B1/

大(おお)きな御世話(おせわ)

よけいなおせっかい。不必要な世話。他人の助言や手助けを拒絶するときに言う。余計なお世話。
290デフォルトの名無しさん:2010/12/10(金) 16:29:44
しかしちゃんと整形するだけでも萎えそうになるソースだな
コレって俺の環境が読めない改行コードが使われてるだけ?
他の人はちゃんと見えてるのか?
291デフォルトの名無しさん:2010/12/10(金) 16:33:20
というか、グローバル変数が10個くらいある時点で読む気無しw
292デフォルトの名無しさん:2010/12/10(金) 17:03:15
じゃあNっていう定数が出てくる箇所すべてにコメント入れてろよクズwww
293デフォルトの名無しさん:2010/12/10(金) 17:05:29
>>290
> [3.1] OS: macosx
Windowsの場合、メモ帳だと改行おかしいけど
VSとか他のエディタ使えば平気

つか名前が入ってるけどいいのか?
294デフォルトの名無しさん:2010/12/10(金) 17:05:45
顔真っ赤ですよ?
295デフォルトの名無しさん:2010/12/10(金) 17:06:35
改行がCRだね。
296デフォルトの名無しさん:2010/12/10(金) 17:21:51
>>285 の不人気にshit!
297デフォルトの名無しさん:2010/12/10(金) 17:27:59
講師の名前だろうしインターネットから見える状態なんだから問題ないでしょ

それより1文字定数とかグローバル変数にいちゃもん付けてる奴(ら?)はあたまおかしい
298デフォルトの名無しさん:2010/12/10(金) 17:29:50
何百行もなく,目的もはっきりしているプログラムで

>/* ノード数(状態数) */
#define NODE_NUM 9
こういうの馬鹿じゃないかと思うね。

>#define N 9
で十分じゃないか
299デフォルトの名無しさん:2010/12/10(金) 17:31:38
どっちの言うことも分かるけどとっとと解けよ
300デフォルトの名無しさん:2010/12/10(金) 17:48:49
俺は N 9 にするけどね
301デフォルトの名無しさん:2010/12/10(金) 18:28:30
小規模な何の役にも立たないカスプログラムしか書いたことないんだろうなクズwww
302デフォルトの名無しさん:2010/12/10(金) 18:30:56
くだらん主張してる奴らはどちらもまだ解くことが出来ていない
これこそが真実だろう
303デフォルトの名無しさん:2010/12/10(金) 18:32:29
[1] 授業単元:プログラミング

[2] 問題文(含コード&リンク):
以下のようなカレンダープログラム mycal を作成せよ。
◦ 引数なしで実行されると、今月のカレンダーを出力する
◦ 引数1個で実行されると、その引数を月とみなし、その年のその月のカレンダーを出力する
◦ 引数2個で実行されると、第一引数を月、第二引数を年とみなしてカレンダーを出力する。

[3] 環境
 [3.1] windowsXP
[3.2]gcc
 [3.3] c
[4] 2010/12/13
[5] 無し
304デフォルトの名無しさん:2010/12/10(金) 18:34:54
>>302
そういう下らんレスをしているお前が言うのもどうかと思うが
305デフォルトの名無しさん:2010/12/10(金) 18:37:58
>>297
グローバル変数が入ってると読む気が無くなるのは普通の感覚だと思うけど?
306デフォルトの名無しさん:2010/12/10(金) 18:48:45
[1] 授業単元:プログラムA
[2] 問題文(含コード&リンク):http://codepad.org/MqsKAAAEを
多角形(n角形)の周囲長を求めるプログラム(nは自分で入力する)に変えなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2010年12月14日
[5] その他の制限:戻り値は構造体
307デフォルトの名無しさん:2010/12/10(金) 19:05:41
>>231
この問題でMを5ビットに拡張させる意図はなんでしょうか?
何故なのか分からなくて、試しに4ビットで組んだら普通に動作してるように見えます。
http://codepad.org/iSCHLPV8
回答者を混乱させる目的でしょうか、それとも何か重要な理由がありますか?
308デフォルトの名無しさん:2010/12/10(金) 19:13:54
>>305
むやみやたらとグローバル変数だらけだと同意だけど
この程度(しかも詳細なコメント付)なら
・「どんなデータがあるのか」を把握すればいいだけ
・どこからも参照されるようなデータを一々引数で引き回すな
と思うね

で,A*探索ってことは重み付きグラフのはずなのに「重み」がないけどどうすれば?
309デフォルトの名無しさん:2010/12/10(金) 19:31:30
グローバル変数ってだけで忌み嫌うのもどうかね。
C++だってクラス内で変数共有して便利に使ってるわけだし。
気になるんならstaticつけとけば。
310デフォルトの名無しさん:2010/12/10(金) 19:56:07
>>308
本気で言ってるのなら、もう何も言うことはない。
ネタだと言ってくれるなら、いいネタだよと称えたい。
311デフォルトの名無しさん:2010/12/10(金) 20:05:11
312デフォルトの名無しさん:2010/12/10(金) 20:19:23
どなたか>>306をおねがいします。
お慈悲を!
313デフォルトの名無しさん:2010/12/10(金) 20:25:16
>>312
まずはエラーのでないコードを貼れ
はなしはそれからだ
314デフォルトの名無しさん:2010/12/10(金) 20:41:41
315デフォルトの名無しさん:2010/12/10(金) 20:47:18
>>306
似たの最近見たけど、ただの多角形か?
正多角形とか、1の累乗根とかそんな条件はないか?
316デフォルトの名無しさん:2010/12/10(金) 20:54:48
>>313
http://codepad.org/77UTIjQ7
おねがいします。
317デフォルトの名無しさん:2010/12/10(金) 20:57:02
同じ学校にそう何人もこのスレで質問するわけないと思うんだが。
同一人物がせっかく書いてもらった貰ったレスを見てないとしか思えない。
318デフォルトの名無しさん:2010/12/10(金) 20:59:15
過去スレの人物との共通点は、
"多角形"で通じると思っているところかな。
319デフォルトの名無しさん:2010/12/10(金) 21:06:30
>>315
ただの多角形だと思います。
説明書きにも特に言及はありませんでしたので・・
320デフォルトの名無しさん:2010/12/10(金) 21:12:28
>>319
お前、前スレの奴だろ。
じゃなきゃ双子か?ここはお前のサポートセンターではないぞ。
321デフォルトの名無しさん:2010/12/10(金) 21:17:28
>>320
322デフォルトの名無しさん:2010/12/10(金) 21:17:48
>>307
これ誰か分かりませんか?
基本情報技術者過去問、見たいな感じで書かれているので
> 回答者を混乱させる目的
ではないと思ってます。ずっと考えてますがまだ分かりません。
323デフォルトの名無しさん:2010/12/10(金) 21:24:35
>>279
さん、ありがとうございます。
お手数ですが、ソースに説明をつけて頂けませんか?
お願い致します。。。
324デフォルトの名無しさん:2010/12/10(金) 21:29:06
325デフォルトの名無しさん:2010/12/10(金) 21:32:35
>>306
http://codepad.org/eyLxAOFV

>>320
ここはサポセンでしょ?もろもろの信頼性がないだけで
326デフォルトの名無しさん:2010/12/10(金) 21:36:29
>>325
問題よく読め。まちがってんぞ。
327デフォルトの名無しさん:2010/12/10(金) 21:38:48
>>324
ありがとうございます。
ただ、説明不足だったかも知れませが、角数を入力できませんか?
328325:2010/12/10(金) 21:38:52
>>326
>多角形(n角形)の周囲長を求めるプログラム(nは自分で入力する)に変えなさい。
頂点間の距離の総計じゃないの?
329デフォルトの名無しさん:2010/12/10(金) 21:42:27
信頼性がないということを身を持って証明した>>325であった
330デフォルトの名無しさん:2010/12/10(金) 21:43:04
確かにこれは間違いだな。>>325
これが正しい。>>324
331デフォルトの名無しさん:2010/12/10(金) 21:46:27
324 はゼロ除算の運試し?
332325:2010/12/10(金) 21:46:46
スマンどこがまちがってりうか教えてくれ
333デフォルトの名無しさん:2010/12/10(金) 21:48:08
>>328
>(nは自分で入力する)
これ#defineじゃなくキーボードからnを入力ってことじゃね
334324:2010/12/10(金) 21:52:07
>>331
おっと、これは失礼。
http://codepad.org/wZEHQcro
rand()+1でも良かったかな。
335デフォルトの名無しさん:2010/12/10(金) 21:52:15
>>333
そうです!
336デフォルトの名無しさん:2010/12/10(金) 21:53:09
そうです!じゃねぇよw
それくらい自分でやれ
337デフォルトの名無しさん:2010/12/10(金) 21:54:49
>>335
こうしとけ。
#define N (123) // 自分で入力しました。
338デフォルトの名無しさん:2010/12/10(金) 21:55:11
>>336
教えてください
339デフォルトの名無しさん:2010/12/10(金) 22:14:52
#define Nに入力した数を代入する方法を教えてください
340デフォルトの名無しさん:2010/12/10(金) 22:20:14
nを増やしていって円周に近似するとかじゃないのね
341デフォルトの名無しさん:2010/12/10(金) 22:21:58
>>306
前スレの奴だよ。
double PI = 3.1415926535897931;
acos(0)でエラーが出るからといって、3.1415926535897931を薦められ、
それをそのまま書いてるし、
ありふれた名前だが、PI,Len,N,sumなどが全て同じとは不自然。大文字小文字も完全に一致する。
ちなみに前スレの問題にhttp://codepad.org/MqsKAAAEの引用はなかった
前スレ内で出てきたソースの一部。
342デフォルトの名無しさん:2010/12/10(金) 22:24:53
>>340
いちいち変更するのが面倒なので、仕様でそうしたいのですが…

>>341
仮に、「私が前スレの奴です」と言ったらやり方教えてくれますか?
343デフォルトの名無しさん:2010/12/10(金) 22:26:08
>>342
書いてるだろ >>337
344デフォルトの名無しさん:2010/12/10(金) 22:28:11
>>343
いやいやいやいや
scanfを用いた方法を教えてほしかったんですよ
345デフォルトの名無しさん:2010/12/10(金) 22:33:00
>>344
質問者と同一人物なら、何故こんな大穴の開いた問題を引っ張る。
出題者への嫌がらせか?
346デフォルトの名無しさん:2010/12/10(金) 22:34:06
>>345
教えてもらえれば去ります
347デフォルトの名無しさん:2010/12/10(金) 22:43:52
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

東北地方の県のデータを打ち出すプログラムを作成しなさい。ただし、東北地方かどうかの判定をする部分は関数を使うこと。
県データの1行からなる構造体を受取る関数とする。該当すればYを戻り値として返すようにする。)
判定をする際の県名の比較は、関数側に県名の二次元配列を持ち、標準関数strcmpを使う。string.h のinclude を忘れないように。
strcmp(文字列1,文字列2) は文字列が一致すれば0を返す。

コード例示: http://minus-k.com/nejitsu/loader/up84923.jpg
 県データ: http://minus-k.com/nejitsu/loader/up84924.txt

[3] 環境
 [3.1] OS: Linux / Ubuntu 10.04
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12月12日まで
[5] その他の制限: 構造体まで学習済み


関数にどう渡し手て処理すればいいか分かりません。よろしくお願いします。
348デフォルトの名無しさん:2010/12/10(金) 23:14:37
>>347
一個目の画像。自分で打ち込むぐらいはやれ。
それだけでも多少覚える。
349デフォルトの名無しさん:2010/12/10(金) 23:24:06
>>346
おーい、サポートセンター教えてやれよ。教えたら帰るってよ。 >>325
350デフォルトの名無しさん:2010/12/10(金) 23:25:20
麻呂がクソースを脱糞するでおじゃるよ?
351デフォルトの名無しさん:2010/12/10(金) 23:48:42
352デフォルトの名無しさん:2010/12/10(金) 23:54:16
>>347
> 関数側に県名の二次元配列を持ち、
これって char kenmei[6][20]; みたいな定義だろ(東北って6県だよね)、これを静的に初期化するのってどうするんだ?
普通は char* kenmei[] = { "aomori", "miyagi", ..... }; みたいにするんだけど題意と反するよなぁ...
まさか、関数コールの度に strcpy( kenmei[0], "aomori" ); みたいな事するのか?
353デフォルトの名無しさん:2010/12/10(金) 23:58:34
>>352
static つけとけばOK
354デフォルトの名無しさん:2010/12/10(金) 23:59:47
普通にkenmei[6][20] = {"aomori", "akita", ....};でいいじゃねーかよw
355デフォルトの名無しさん:2010/12/11(土) 00:11:13
356355:2010/12/11(土) 00:13:59
スマン、最後
return 0;
忘れた
357デフォルトの名無しさん:2010/12/11(土) 00:14:42
>>354
それ出来たっけ?
358デフォルトの名無しさん:2010/12/11(土) 01:01:08
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):humという名前の構造体を受け取り、そのメンバの中の年齢の値を1/7倍して
返す関数を7humを完成させなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010
 [3.3] 言語: C++
[4] 期限:2010年12月15日
[5] その他の制限:
359デフォルトの名無しさん:2010/12/11(土) 01:04:52
7humなんて名前の関数を作れませんって先生に言え
360358:2010/12/11(土) 01:19:46
>>359
名前は変更してもらって結構なので
361デフォルトの名無しさん:2010/12/11(土) 01:23:44
kuso_sensei()にするか
362358:2010/12/11(土) 01:24:32
>>361
お願いします
363デフォルトの名無しさん:2010/12/11(土) 01:25:59
>>358
void I_am_hum(hum& h){ h.年齢 *= 1.0 / 7.0; }
364デフォルトの名無しさん:2010/12/11(土) 01:46:15
さすがVC++2010
365347:2010/12/11(土) 01:53:40
>>348-357
ありがとうございました。
366デフォルトの名無しさん :2010/12/11(土) 04:24:21
>>358
struct hum{
private:
double age;
public:
hum(double Age):age(Age);
hum():age(0.0);
~hum();
double GetAge();
double Sevenhum(hum &hobj);
};
hum::hum():age(0.0)
{}
hum::hum(double Age):age(Age)
{}
hum::GetAge()
{
return age;
}
double hum::Sevenhum(hum &hobj)
{
return hobj.GetAge()/7.0;
}
367デフォルトの名無しさん:2010/12/11(土) 05:12:00
漏れら極悪非道のageブラザーズ
368デフォルトの名無しさん:2010/12/11(土) 06:46:30
>>283
 ですが、重みは上下左右の全方向に対して1です
分岐路に立った時に、どちらの経路(重みの和)のほうが短いかを考慮するアルゴリズムらしいのですが・・・
それとソースプログラムの変数等については寛大な心で許してください
369デフォルトの名無しさん:2010/12/11(土) 07:26:06
>>306
宿題とは関係無いけど
何となく正n角形の周囲長を求めるだけのコードを書いてみた
http://codepad.org/cFjxXUS3
codepadて確かgccなんだよね
リンカに-lmを指定するにはどうしたら良いのでしょうか
370デフォルトの名無しさん:2010/12/11(土) 08:11:05
他人に寛大な心を要求するとは何て厚かましい奴なんだろう
371デフォルトの名無しさん:2010/12/11(土) 21:00:51
皆様に不快な思いをさせたかと思います。
私はしつこすぎた。
ごめんなさい
372デフォルトの名無しさん:2010/12/11(土) 21:29:21
>>368
それは単なる最良優先探索
A*は分岐路に立ったときに,『始点から』最も近いノードを選ぶアルゴリズム
横型探索だから「分岐路」が同時に複数発生するのが深さ優先と違う点
373デフォルトの名無しさん:2010/12/11(土) 21:38:40
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

以下の問題文の ^ はべき乗をあらわす記号とする。

1.二次方程式 "ax^2+bx+c=0" のxの解を"解の公式"を使って求め、表示しなさい。
a,b,cは乱数によって決定されるdouble型の変数とする。
a,b,cは "a≠0 , b^2-4ac>=0" を満たすものとする。
解の公式は {-b±√(b^2-4ac)}/(2a) を使うこと。

2.解の公式を使って解く上記方法には問題点があります。
上記問題点とは、"a=0 , b^2-4ac<0"の時という意図ではありません、
あくまで"a≠0 , b^2-4ac>=0"である前提での問題点です。
その問題点がなんであるかを答え、
その問題点を解決するプログラムを作成しなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2010年12月15日
[5] その他の制限:無し
374デフォルトの名無しさん:2010/12/11(土) 22:20:11
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):pgmの画像を上下左右反転させる関数void hanten_pgmを作りなさい。
[3] 環境
 [3.1] OS:Mac
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:12/15まで
[5] 配列の入れ替えを利用した比較的単純な関数で。
読み取り・書き込みを行う関数は既に完成済み。
375デフォルトの名無しさん:2010/12/11(土) 22:23:38
>>374
データの持たせ方が分からないよ
376デフォルトの名無しさん:2010/12/12(日) 00:21:53
>>283
http://ideone.com/Y07Z7

構造体・配列引数以外はポインタ・その他ヘッダ(malloc等)を一切未使用
なるべく骨組みを保とうと思ったがムリゲだった
(やろうと思えば再帰でもできそうだけどwhileループに変更)

Q:優先度付きキューの実装がトンデモだが大丈夫か?
A:大丈夫だ.問題ない
377376:2010/12/12(日) 00:26:14
見直してみるとムダが多すぎてgdgdだな
優先度付きキューのコメントに書いたことなんだけど,
それなら優先度付きである必要なかったorz
構造体のpriorityとnも同じ値を入れてるから1変数にまとめればよかったし
378デフォルトの名無しさん:2010/12/12(日) 00:41:16
>>111でたずねたものです

http://ideone.com/rzNIF
↑上のファイルを猿でもわかるように解説してもらっていいですかね?

説明しろ と言われると出来ないので・・・

すいません・・・お願いします

379デフォルトの名無しさん:2010/12/12(日) 00:41:58
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
下記のルールで作図した時の、各点のXY座標、および線分の長さの総和を表示せよ。
N(取りあえず10とする)個の点を一筆書きの要領で全て線分で結ぶ。
このとき線分の長さの総和が最小となるようにするものとする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
380デフォルトの名無しさん:2010/12/12(日) 01:03:03
>>378
根本から間違ったものを提出して教授に説明しろとでも言われたんだな

「ヒープ」とよばれるメモリ領域をOSから借りてそこに入力したデータを記録
入力完了後バブルソートでソートをかける
借りパクは行儀が悪いので借りたものは返しましょう
381デフォルトの名無しさん:2010/12/12(日) 01:05:49
>>378
まず int main() だがC言語では一番最初にこの関数が実行される。
int main(void)にしておいたほうが、無意味な言い争いを避けることが出来るため、
よりベストと思われる。
次にchar buff[256] = {'\0'};だがchar型の256個の配列buffを宣言し、
全ての要素を0に初期化している。char型、および配列はググって調べるように。
後の説明は長くなって書ききれないため省略する。
382デフォルトの名無しさん:2010/12/12(日) 01:31:51
>>378
要は君のレベルも分からんのに説明したところで、
空振りに終わる確率が高いわけだ。
「ここと、ここが分かりません」など回答者に何かヒントを与えるべきだ。
"全く分かりません"では"クソして寝ろ"以外の返事は帰ってこんぞ。
383デフォルトの名無しさん:2010/12/12(日) 02:34:18
>>379
このスレで一般にWindowsでgccってのはcygwinなりMinGWってことなのかな?
N個の点の座標について指定がないけどランダムってことなの?
点の数のNがとりあえず10個だけど、上限は設けないってこと?
総当たりを許すのか許さないのかね。
で、まぁNP困難であるわけだけど最小じゃないといけないと……。
384デフォルトの名無しさん:2010/12/12(日) 06:32:28
>>376
返信遅くなりましたがありがとうございます

Q:そんなプログラムの出来で大丈夫か

A:(自分にとっては)一番いいのだった、問題ない
385デフォルトの名無しさん:2010/12/12(日) 06:34:48
ニコ厨はしね
386デフォルトの名無しさん:2010/12/12(日) 09:23:38
>>383
ランダムでいいです。Nの上限は特に指定されてません。
387デフォルトの名無しさん:2010/12/12(日) 09:54:15
>>386
重要な質問は総当りで良いかってところだと思うぞ
388デフォルトの名無しさん:2010/12/12(日) 10:14:17
>>387
> 総当り
と言うことは、
 取りあえず結線して、その線分の長さの計算する。
 これを全ての結線(10!通り)で試して一番短いものを表示する。
ってことですかね。
これなら何とか自分でも書けそうですが、そういう問題なんでしょうか。
その辺の条件は特に記載がないのでよく分からんのですよ。
389デフォルトの名無しさん:2010/12/12(日) 10:42:36
>>388
ロジックとして一番最初に浮かぶのは
@ x + y が最小になる又は最大になる点を基点とする
A基点から最も近い点を次の点とする
こんなんじゃ最短になるとは限らないよね
なんかスマートな手法が有るのかなぁ
390379:2010/12/12(日) 10:53:31
自分で総当りなら書けそうだと大見得書いといて、
実際やってみると難しいですね。
外出までに書いて添削用に上げようと思ったんですが無理でした。
また夜にでも考えます。
391デフォルトの名無しさん:2010/12/12(日) 13:16:04
379 の問題総当りだと、たかだか15点でも10秒くらいかかってしまう
392デフォルトの名無しさん:2010/12/12(日) 13:37:25
>>388
条件は記載されてないって言っても
講義なりを踏まえた上での宿題なわけでしょ?
何の単元のどういう講義の後の宿題なのか分かればヒントにはなるかも

こういう計算量が膨大になっちゃうやつは
前スレだかにあった遺伝的アルゴリズムとか使えば少ない計算量で近似を求められるけど
393デフォルトの名無しさん:2010/12/12(日) 15:08:37
>>391
10秒で解ける様なスーパーコンピューター持ってるんだ、羨ましいな
394デフォルトの名無しさん:2010/12/12(日) 16:26:24
int min を使おうとすると「あいまい」であるとでて解決できません。
なぜでしょうか?
395デフォルトの名無しさん:2010/12/12(日) 16:52:55
VisualStudioだとminとmaxはどっかで定義されてるから使えなかったような?
396デフォルトの名無しさん:2010/12/12(日) 17:29:34
あいまいってことは二つの型がそろってないんだろう

std::min<int>(a, b); // 型を指定するか
std::min(a, static_cast<int>(b)); // キャストして型をそろえる
397397 ◆397/xJfLII :2010/12/12(日) 18:35:08
[1] 授業単元:プログラミングとコンパイラ
[2] 問題文:ttp://game.tasoki.net/src/up0691.txt
 (含コード&リンク):ttp://game.tasoki.net/src/up0689.zip.html
[3] 環境
 [3.1] OS:Linux(授業で使っているOSはRed Hat Linux)
 [3.2] コンパイラ名とバージョン:GNU Emacs
 [3.3] 言語:C++
[4] 期限:2010年12月16日12:25まで
[5] その他の制限:特にありません

皆様のお知恵をお貸し下さい。
宜しくお願い致します。
398デフォルトの名無しさん:2010/12/12(日) 18:46:54
>>396
動きました。ありがとうございます。
399デフォルトの名無しさん:2010/12/12(日) 18:56:58
http://codepad.org/lAy2GhB3

2分木を生成して、後順走査をしながら解を求めていくプログラムです。
なのですが、うまく左側の木の値を読み込んでくれません。

4行目が
info1= 2, info2= 0, x= 5, y=10, z= 3
となっているんですけど、

xは大きい方を選択するので5
yは足し算なので11
zは大きい方を選択するので6
つまり
info1= 2, info2= 0, x= 5, y=11, z=6
になって欲しいんですけどどこがおかしいですか?
よろしくお願いします。
400デフォルトの名無しさん:2010/12/12(日) 19:27:01
>>259 261 264 267 亀ですが助かりました有難うございます!

またわからない所あったのでお願いします。
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1296174.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:12/13
401383:2010/12/12(日) 19:52:52
>> 379
総当りのプログラムを書いてみた。
http://codepad.org/OFU5si3s
道順の前組み合わせに関しては適当にぐぐったコードなので詳しく説明できない。
よって、単に距離のルート取る前の値を比較して最短を探しただけ。

GA版は自分の得意なC#を使ってフォームアプリケーションを作ってみたけど
N = 10 ぐらいなら総当りで一瞬で解き終わるので使わないでいいんじゃないかな。
402デフォルトの名無しさん:2010/12/12(日) 20:07:10
>>391
15点で10秒!?
それを実現可能なコードとスパコンの構成をお教えください。
403デフォルトの名無しさん:2010/12/12(日) 20:12:56
>>401
RoutesNum を (N-1)! としてるけど N! じゃないの?
404383:2010/12/12(日) 20:14:58
>>403
輪になっているので始点を固定すると考えると
N点の場合は残りN-1点の並びを考えればいいのです。
405 ◆QZaw55cn4c :2010/12/12(日) 20:32:08
>>379
http://codepad.org/a6CBrvBy
手元の環境より codepad の方が 5 倍速いことがわかりました。
406デフォルトの名無しさん:2010/12/12(日) 20:38:47
>>402
15点の座標リストを作ってみてちょ
407デフォルトの名無しさん:2010/12/12(日) 20:51:25
私も総当りやってみましたが、問題が一つ・・・
http://codepad.org/GNn8iXQj

seed値合わせて、全く同じ座標となるように
>>401 >>404 を改造させてもらって試したところ。
俺のも含めて全部答えが異なっていると言う・・・
408デフォルトの名無しさん:2010/12/12(日) 21:22:17
>>405>>407 の差は最後に図形を閉じるか閉じないかの違いのようですね。
409デフォルトの名無しさん:2010/12/12(日) 21:26:41
やってみたら >>407 と同じ答えがでた
410407:2010/12/12(日) 21:33:54
GetTickCount()で調べてみたら、
私のはブッチギリで遅いw
どこをどう書けば早くなるかソース参考に勉強させてもらいます。
411デフォルトの名無しさん:2010/12/12(日) 21:41:47
途中で最小値を上回ったらそのルートは打ち切れば随分違う
412407:2010/12/12(日) 21:43:45
>>411
どうも。凄い早くなりました。
413デフォルトの名無しさん:2010/12/12(日) 21:52:09

[1] 授業単元:CGプログラミング
[2] 問題文(含コード&リンク):
・複数の画像(画像は3枚以上、縦横は同じ)を平均した画像を作成
・任意のカラー画像を入力するとRGBカラーヒストグラムを出力し、各ヒストグラムの平均値、分散値を求めるプログラムを作成
[3] 環境
 [3.1] OS:Win (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン:bcc (gcc 3.4 VC 6.0等)
 [3.3] 言語: C(C/C++/どちらでも可 のいずれか)
[4] 期限: 12月14日12:00まで
[5] その他の制限: もう動けば何でもいいです
414デフォルトの名無しさん:2010/12/12(日) 21:53:46
画像形式に指定はないのか
415>>414:2010/12/12(日) 22:01:21
>>413画像はpgm png bmp jpgのどれかでおkです
416デフォルトの名無しさん:2010/12/12(日) 22:18:43
>>399はここで聞くことじゃなかったですか?w
417デフォルトの名無しさん:2010/12/12(日) 22:24:45
418デフォルトの名無しさん:2010/12/12(日) 22:50:53
>>412
2次元配列を用意して、一度計算した距離を保存しておくのも高速化になる
419デフォルトの名無しさん:2010/12/12(日) 23:00:17
>>413
問題があまりにてんこ盛りすぎる。やる奴いるかな。
↓取りあえずカラーヒストグラムっぽい奴だけ。
http://codepad.org/yonm9an5

exeと同じディレクトリにTest.bmpが必要。
gcc なら gcc -Wall-ansi -pedantic -mwindows hoge.c -luser32 -lgdi32 で、
CLならそのまま CL hoge.c でいけると思う。

>> 418
どうも。なるほどやってみます。
420383:2010/12/12(日) 23:18:37
>>401
のコードは間違っている。
EvalRouteにおいて
int idxn; を追加して
idx = Route[i];
idxn = Route[i + 1];
dx = X[idx] - X[idxn];
dy = Y[idx] - Y[idxn];
じゃないとだめだ。
後、最小経路だけ知りたいので
全経路分のメモリ確保とか不要だよね。
http://codepad.org/kR42UrOn
修正したよ。
421デフォルトの名無しさん:2010/12/12(日) 23:20:48
[1] 授業単元:実習プログラミング
[2] 問題文(含コード&リンク):このプログラムを、ポーランド記法による計算を入力する式が長くなっても動作するように修正してください。
「このプログラム」は以下にURLを張ります。
[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:gcc最新版
 [3.3] 言語:C++
[4] 期限:明後日まで
[5] その他の制限:#include <ctype.h> int isxdigit(int c); という文字列を使うようです

http://codepad.org/YPDNSlLa
これの「//ここを作成する」を3箇所作成してから「ポーランド記法〜修正してください」
に取り掛かるという結構手間がかかりそうな作業になりそうで申し訳ないです。
よろしくお願いします。
422デフォルトの名無しさん:2010/12/12(日) 23:23:31
>>418
マジで超早くなりました。
私の環境での10点処理の時間(固定シードで計測)。
>>407 のソースそのまま --> 時間1609ms 探索数3628800
>>411 を実装 --> 時間172ms 探索数1545
>>418 を実装 --> 時間46ms 探索数1545
ありがとうございました勉強になりました。まさか30分の1以下になるとは・・・
423デフォルトの名無しさん:2010/12/12(日) 23:32:27
>>404
輪になってる前提だっけ?
424デフォルトの名無しさん:2010/12/12(日) 23:33:04
>>422
距離の大小だけわかればいいから
sqrt取るのをやめればいいと思うよ。
425デフォルトの名無しさん:2010/12/12(日) 23:34:31
>>423
一筆書きって閉じたのが一般的かと。
426デフォルトの名無しさん:2010/12/12(日) 23:40:05
>>374
pgmフォーマットはアスキーバイナリどちらでもいいの?
指定ある?

>読み取り・書き込みを行う関数は既に完成済み。
これがあるなら出してもらわんとデータの受け渡しが勝手にかかれるぜ
427407:2010/12/12(日) 23:40:24
私も教えてもらって修正したものを貼っておきますね。
http://codepad.org/MZixv48O
(↑ #include <windows.h>とGetTickCount()回り残ってます。)
428デフォルトの名無しさん:2010/12/12(日) 23:41:12
>>424
総和で調べなきゃいけないんだから sqrt は必要
429デフォルトの名無しさん:2010/12/12(日) 23:43:30
>>427
>return L[a][b] = LenMac(a,b);

return L[a][b] = L[b][a] = LenMac(a,b);
にすると、もうちょっと速くなる
430デフォルトの名無しさん:2010/12/12(日) 23:44:27
>>428
sqrtは最後に使えばいいってことだろ
431デフォルトの名無しさん:2010/12/12(日) 23:47:02
>>430
距離 4 4

距離 1 6
があったとして上が 8 、下が 7
二乗のままだと上が 32、下が 37
になっちゃうよ
432デフォルトの名無しさん:2010/12/12(日) 23:50:54
>>429-430
なるほどねぇ。みんなスゲー頭いいな。
今日は宿題やった甲斐があったわ。
433デフォルトの名無しさん:2010/12/12(日) 23:55:57
>>425
「日」は一筆書き出来ないってのが一般的なのか?
434デフォルトの名無しさん:2010/12/12(日) 23:56:38
みんなって言っても>>411 = >>418 = >>429は俺一人だけどな
435 ◆QZaw55cn4c :2010/12/13(月) 00:13:11
>>422 をみならって私も総当り方式 >>405 を改良しました。
同じく 10点固定
>>405 : http://codepad.org/sthIM457 時間 941ms
>>411 : 同上 時間 380ms
>>418 : http://codepad.org/tyCTn9Ce 時間 110ms
今ひとつオプティマイズの効果がでていないなあ。
436デフォルトの名無しさん:2010/12/13(月) 00:19:04
>>435
お前みたいなクズのために教えたんじゃないから真似すんな
437デフォルトの名無しさん:2010/12/13(月) 00:20:19
>>435
乱数の気まぐれもあるからね。
438 ◆1reJfOTbE. :2010/12/13(月) 00:29:16
[1] 授業単元:プログラミング実験
[2] http://www.icsd3.tj.chiba-u.jp/~yasukuni/10jikken/
[3] 環境
 [3.1] OS:Windows XP
 [3.2]コマンドプロンプトで、gccのコマンドでコンパイルしています
 [3.3] 言語:C言語
[4] 期限:2010年12月17日に提出なので前日くらいまで
[5] その他の制限:遅くなりましたが、前スレで答えていただいた方
大変ありがとうございました。
リンク先の、第4回の講義スライドの後ろに載っている課題と、第3回の
課題4−2以降がわかりません。よろしくお願いします。
439デフォルトの名無しさん:2010/12/13(月) 00:32:19
>>435
コードが根本的にクソだからに決まってんだろw
440デフォルトの名無しさん:2010/12/13(月) 00:49:17
乳バァー
441デフォルトの名無しさん:2010/12/13(月) 00:53:49
>>373
多分こうだと思うのですがどうでしょう
http://codepad.org/zccHWI9P
442デフォルトの名無しさん:2010/12/13(月) 01:35:05
Nを15にして>>420>>427>>435を比較してみよう
443デフォルトの名無しさん:2010/12/13(月) 01:57:18
面倒臭いからその比較のをcodepadに貼ってURLを貼って
444デフォルトの名無しさん:2010/12/13(月) 02:05:30
[1] 授業単元:なし
[2] http://codepad.org/riYRzZ7s
[3] 環境
 [3.1] OS:Windows vista
 [3.2]複数(codepad,borland,VC++exp)
 [3.3] 言語:C言語
[4] 期限:なし
[5] その他の制限:なし
ソートプログラムを作っていて、最後の配列がうまく変わってくれません。
ヒントだけでもかまいませんので、よろしくお願いします。
445 ◆QZaw55cn4c :2010/12/13(月) 02:15:11
>>442
N=12 かつ与えるデータを同一にして比較しました。私の環境 PenIII 866MHz では、以下の結果になりました。

>>420 39296ms
>>427 991ms
>>435 12758ms

>>427 が枝狩りが効いていて圧倒的に効率的、という結果です。 >>420 >>435 は同等でしょうね。

>>420>>435 は最短経路の解を出力しますが、それは一致しました。
ただ、3者とも、その値は大きくことなっておりました。どれが正しいのだろう。

>>427
最短経路を出力するようにしていただけますか。
446デフォルトの名無しさん:2010/12/13(月) 02:15:46
>>444
http://codepad.org/yQtUOWa3
とりあえず動くようにしたけど
見直したらこの訂正は不適切だと気づいたが一応レスしとこう
447デフォルトの名無しさん:2010/12/13(月) 02:22:02
>>445
15じゃ終わらなかったからって12にして誤魔化すなよw
448デフォルトの名無しさん:2010/12/13(月) 02:25:53
始点と終点を一致させるという指定がない以上、>>427のコードも正しい
一筆書きは>>433の指摘にもあるとおり始点と終点が一致しないパターンの方が多いから
449 ◆QZaw55cn4c :2010/12/13(月) 02:31:21
>>447
私の環境はしょぼいので N = 15 だと日が暮れます。でも N = 15 での傾向と N = 12 での傾向が大きく異なるということはないでしょうね。
450デフォルトの名無しさん:2010/12/13(月) 02:33:46
N=15でもまともな時間で計算できる>>427があるのに、
>>435みたいなゴミ貼ってはずかしくないの?
451デフォルトの名無しさん:2010/12/13(月) 02:34:02
今、日本にいるなら日が暮れているはずだ。夜が明けてしまうの間違いだろう。
452 ◆QZaw55cn4c :2010/12/13(月) 02:39:29
>>450
無論悔しいです。当然のことです。

>>451
多分私の環境では N=15 なんぞにすると、夜があけてそれから日が暮れるでしょうww
453デフォルトの名無しさん:2010/12/13(月) 03:03:22
[1] 授業単元:なし
[2] 二つの文字列を入力した際に、diffアルゴリズムであるエディットグラフを使って、最短距離で差分を求め、追加削除すべき要素をプリントアウトしなさい
またできる限りコメントで処理内容を示すこと
[3] 環境
 [3.1] OS:Windows vista
 [3.2]MS visual studio2010 評価版
 [3.3] 言語:C++
[4] 期限:12/14 0:00
[5] その他の制限:なし
エディットグラフに関しては曖昧な理解でしかなくコードにする程わかっていません
助けてください
454デフォルトの名無しさん:2010/12/13(月) 05:09:06
>>452
後からゴミを貼るなってことだろ
455デフォルトの名無しさん:2010/12/13(月) 05:33:55
>>444
超眠い中やったから変なところあるカモ
学校の宿題じゃないから変でも良いよね
http://codepad.org/U0FQeEFY
456400:2010/12/13(月) 06:01:23
>>400 IEだと文字化けしてたのではりなおします…(´・ω・`)

問題1:キーボードから4人の数学、英語、国語の成績(整数)をint型二次元配列に入力。
次の表の形式にして画面に出力するようにする(平均は小数点第二位まで)

A B C D heikin
sugaku 40 100 50 50 60.00
eigo 60 80 100 30 67.50
kokugo 26 25 50 60 40.25

問題2:サイズ2*2の2つの行列A,Bを配列A[2][2],B[2][2]を用いて作り各要素(合計8個)を、
キーボードから入力すると行列の和A+Bの結果を画面に表示するプログラム

問題3:キーボードから入力させた長さの同じ文字列2つを1文字ずつ交互に1つの文字配列に格納し表示する
457デフォルトの名無しさん:2010/12/13(月) 06:42:41
458デフォルトの名無しさん:2010/12/13(月) 06:59:17
まだベンチマークやってたんだ(笑)
ざっとコードみた感じだと距離計算で絶対値計算は不要だよな(どうせ2乗する)
単純なことだけどループの最深部だから多少の効果は望めそうだ
459デフォルトの名無しさん:2010/12/13(月) 09:51:47
>>421
言語:C++で書いておきました。

http://codepad.org/Id8rOmIz
460デフォルトの名無しさん:2010/12/13(月) 10:17:24
>>445
>私の環境 PenIII 866MHz では、

未だにこんな古い環境(もう10年以上前)を使っているという事は
◆QZaw55cn4cは新しいマシンも替えないニート

しかも古いPCなので多分30才を過ぎている中年ニートか
下手をすると35才位か?
461デフォルトの名無しさん:2010/12/13(月) 10:30:32
>>460
うちの会社では367MHzのノート(Fujitu)が
当たり前に動いているけどな。
ただし、FedoraCore5くらいかな。
462デフォルトの名無しさん:2010/12/13(月) 11:06:50
>>461
パーソナルユーズのOSならその程度で動いて当たり前なんだよな
糞Windows がアホみたいに重いのは新しいCPUを売るための戦略ではと考えていた頃が有りました
463デフォルトの名無しさん:2010/12/13(月) 11:10:17
>>462
と、コテを外した中年ニート◆QZaw55cn4cが吠えております
464デフォルトの名無しさん:2010/12/13(月) 11:13:49
◆QZaw55cn4cはコードの効率より自分のちんけなプライドの方を優先するゴミ屑だから
こういう問題じゃくそ遅いものしか書けないんだろうな
465デフォルトの名無しさん:2010/12/13(月) 11:22:14
頭が固くなってきてるんだよ◆QZaw55cn4cは
もう引退じゃね?w
466デフォルトの名無しさん:2010/12/13(月) 12:47:43
467デフォルトの名無しさん:2010/12/13(月) 13:24:25
>>462
つい最近までPenPro200使ってた
468デフォルトの名無しさん:2010/12/13(月) 13:26:33
3年前ならC3使ってた
469デフォルトの名無しさん:2010/12/13(月) 18:02:42
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):地図データ map.dat を読み込み、ディスプレイに表示するプログラムを書きなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語: C++
[4] 期限: 12月14日
[5] その他の制限: 構造体を用いてカーナビゲーションを作る課題です。
map.datの中身は以下のとおりです
1 0.0 0.0 H 2 2 4 0 0
2 -0.6 0.15 D 3 1 3 11 0
3 -0.83 0.0 K 4 2 4 9 10
4 -0.6 -0.38 O 3 1 3 5 0
5 -0.38 -0.68 M 3 4 6 7 0
6 6.0 -0.3 T 1 5 0 0 0
7 -0.18 -1.02 U 2 5 8 0 0
8 -0.84 -1.58 N 3 7 9 18 0
9 -0.9 -0.98 V 2 3 8 0 0
10 -0.98 0.51 R 3 3 11 13 0
11 -0.78 0.3 P 3 2 10 12 0
12 -1.28 0.68 E 2 11 13 0 0
13 -1.32 0.53 I 4 10 12 14 15
14 -1.8 0.98 C 2 13 20 0 0
15 -1.43 -0.15 J 2 13 16 0 0
16 -1.73 -0.26 P 3 15 17 0 0
17 -1.8 -1.43 W 3 16 18 19 0
18 -1.2 -1.73 S 2 8 17 0 0
19 -2.48 -1.2 Z 2 17 20 0 0
20 -2.33 -0.51 B 3 14 16 19 0
470デフォルトの名無しさん:2010/12/13(月) 18:20:51
>>469
突っ込み待ちなんだろうが、
どこから突っ込んでいいのかすらわからない。
誰か頼む!
471デフォルトの名無しさん:2010/12/13(月) 18:26:29
>>470
適当な解釈

座標ID
x座標
y座標
シンボル
連結する座標IDの数
連結する座標ID1
連結する座標ID2
連結する座標ID3
連結する座標ID4

これを画面に表示する
472デフォルトの名無しさん:2010/12/13(月) 18:29:45
[1] 授業単元:人工知能
[2] 問題文(含コード&リンク):http://www.nuis.ac.jp/~nakada/lectures/ai/report.pdf
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:?
 [3.3] 言語:C++
[4] 期限:2010年12月19日24:00まで
[5] その他の制限:課題No1.1で、どの探索法でも良いのでお願いします。
473デフォルトの名無しさん:2010/12/13(月) 18:30:13
>>469
すいません

交差点番号
交差点座標
交差点名称 (一文字)
隣接交差点数
隣接交差点番号

です
474デフォルトの名無しさん:2010/12/13(月) 18:36:55
>>473
後は【ディスプレイに表示】っていうのが、
Win32APIを使うのか、X Windowなのかがはっきりしないね。
475デフォルトの名無しさん:2010/12/13(月) 18:40:47
>>473
どちらかはわからないのですが、Crossingを使うように指定がありました
476デフォルトの名無しさん:2010/12/13(月) 19:09:28
どうせC言語なんてやってても金持ちにはなれんよ
お小遣い程度でも稼いだ方がマシかもしれんが
477デフォルトの名無しさん:2010/12/13(月) 19:11:15
>>476
どうしたんだ?何か嫌なことでもあったのか?
まぁ、元気だせよ。
478デフォルトの名無しさん:2010/12/13(月) 19:11:52
>>469
これっておかしいよね?
16 -1.73 -0.26 P 3 15 17 0 0
479デフォルトの名無しさん:2010/12/13(月) 19:50:14
>>478
Pというシンボルだけ、2座標に割り当てられているね。
480デフォルトの名無しさん:2010/12/13(月) 19:51:20
しかも、リンク数が合わない。
481デフォルトの名無しさん:2010/12/13(月) 20:00:58
http://2chnull.info/r/tech/1232001038/418-418
データはこれと似てるな
482デフォルトの名無しさん:2010/12/13(月) 20:59:10
>>446,455
ありがとうございました。
483デフォルトの名無しさん:2010/12/13(月) 21:08:16
[1] 授業単元:数値計算
[2] ∫_0^π?sinxdxにおいて2m=4とし、 10分割した際の数値積分をシンプソンの公式により求めなさい
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2010
 [3.3] 言語:C++
[4] 期限:明日の朝7:00まで
[5]お願いします
484デフォルトの名無しさん:2010/12/13(月) 21:26:32
>>469
すいません、打ち間違えてました。
正しくは
16 -1.73 -0.26 P 3 15 17 20 0
です

どなたかお願いします
485デフォルトの名無しさん:2010/12/13(月) 21:30:04
ここで質問することかどうかわからなかったのですがここしか思いつかなかったのでもしお答えできる方がいたら返答お願いします。
題:BMPの横幅はなぜ4の倍数でないとならないのか?

この問題で2週間悩み続けてて色々と調べてるのですが答えにたどしつけません・・・よろしくお願いします。
486デフォルトの名無しさん:2010/12/13(月) 21:33:33
>>483
2m=4って何?もう少し詳しく説明して
手持ちの科学技術計算の本を2冊読んだが2mとか出て来ない
487 ◆QZaw55cn4c :2010/12/13(月) 21:36:44
>>485
「IBM やマイクロソフトをはじめとする仕様策定者がそういう仕様にした」
としかいいようがありませんが、4 バイト = 32 bit ですから、32 bit のシステムにとって効率がいい、とかその手の可能性があるのかもしれません。
私もよくわかりませんが。
488デフォルトの名無しさん:2010/12/13(月) 21:42:25
>>487

お返事ありがとうございます。
32bitシステムの関係でしたか・・・ありがとうございます。
他にもわかる方いましたらご意見お待ちしています。
489デフォルトの名無しさん:2010/12/13(月) 21:45:40
32bitってw
490デフォルトの名無しさん:2010/12/13(月) 21:53:30
>>485
横幅って、ピクセルのことかな?
だったら、1ピクセルから作れるんじゃないの?
491デフォルトの名無しさん:2010/12/13(月) 21:55:35
http://codepad.org/GDgTUuPP

>>483
2m=4を無視してうpしたから、2m=4の詳しい意味が分かれば
改めてプログラムを書くので説明してください
492デフォルトの名無しさん:2010/12/13(月) 21:59:17
>>490

1ピクセル・・・?
できれば詳しい説明お願いします。
493デフォルトの名無しさん:2010/12/13(月) 22:22:00
処理を高速化するため。
494デフォルトの名無しさん:2010/12/13(月) 22:32:13
>>492
画素の最小単位なんだが。
色々調べた結果で、この言葉にぶつからないのが不思議

ググってみれ。その方が勉強になる。
495デフォルトの名無しさん:2010/12/13(月) 22:47:20
>>469
何で作ればいいか分からなかったんだけど、Win32で作りました。
こんなイメージですかね。codepadが重いのでgist.githubへ上げました。
https://gist.github.com/738999
496デフォルトの名無しさん:2010/12/13(月) 22:48:53
>>494

ピクセルという所にはたどり着いたのですが横の長さが4の場合は4つのピクセルでできているということであってますかね?
ということはBMPを読み込むときは4ピクセルごとの読み込みを行うということですかね・・・
いちいちと質問して申し訳ないです。
497デフォルトの名無しさん:2010/12/13(月) 23:00:48
>>495
これはひどい
コピペ不能
498デフォルトの名無しさん:2010/12/13(月) 23:02:45
4の倍数じゃないとダメなのはピクセルじゃなくてデータサイズ。
「ビットマップ」、「仕様」に加えて「パディング」も入れて検索してみれ
499デフォルトの名無しさん:2010/12/13(月) 23:04:18
>>496
>題:BMPの横幅はなぜ4の倍数でないとならないのか?

そんな事はない。最小サイズ1x1からBMPが作れる。
500デフォルトの名無しさん:2010/12/13(月) 23:14:11
>>497
ホントですね。ideoneも重いので下記に貼りなおしました。
上のほうのコピーと言うアイコンをクリックすると、
行番号の付かないウインドウが出るようです。
http://www.codeupload.com/1611
501デフォルトの名無しさん:2010/12/13(月) 23:15:24
パディングで検索してみたところ以前調べたものが出てきました。
これは4の倍数でないとき無理やり4の倍数にあわせるというものですよね?
もう何が何だかわからなくなってきましたがもうちょっと頑張ってみようと思います。
最小サイズ1*1の時のサイズは3バイトだと思うんですが何故問題ないのか教えていただけるとありがたいです。
502デフォルトの名無しさん:2010/12/13(月) 23:19:53
BMPファイルフォーマットと、普通のBMPデータとで話が食い違っているような。
503デフォルトの名無しさん:2010/12/13(月) 23:32:19
3バイトってどういうこと?24bitのビットマップという設定になってるの?
504デフォルトの名無しさん:2010/12/13(月) 23:37:28
>>503

説明不足ですみません・・・。
24bitビットマップファイルという設定での質問です。
1ピクセルで3バイトなので4ピクセルで12バイト=4の倍数ってのはわかるんですが
画像の横幅が4の倍数(ピクセルが4の倍数?)でないといけない理由がわからなくて困っています。
505デフォルトの名無しさん:2010/12/13(月) 23:42:05
>>459
とっても遅ればせながらありがとうございました!!!!!
506デフォルトの名無しさん:2010/12/13(月) 23:47:59
昔の人がそういう風に仕様を決めたからとしか

507デフォルトの名無しさん:2010/12/13(月) 23:48:38
>>504
WindowsBMPの仕様が決まったのは20年以上前だけど、その頃のPCは
処理速度が遅かったため、少しでもデータ転送を高速化する必要があった。

当時の最先端のCPU(80386とか)は、4バイト単位でデータを転送する時が
最高速だったので、それに合わせる形で非圧縮のWindowsBMP(DIB)の仕様は
1ラインのデータ長を4の倍数(バイト)とすることに決まった。

例えば24ビットカラーBMPで、水平方向画素数が1ピクセルの場合
画像1ライン当たりの情報は3バイトだけど、これは4の倍数ではない。
そこでダミーの1バイトを後ろに付加して、1ラインのデータ長を4バイト境界に
合せなければいけない。
508デフォルトの名無しさん:2010/12/14(火) 00:08:07
>>506 >>507

やはりマイクロソフトが決めた仕様ということでFAですかね!
事細かに教えてくださってありがとうございました。
509デフォルトの名無しさん:2010/12/14(火) 00:19:13
BMPってそもそもWindows標準だからね・・・
510デフォルトの名無しさん:2010/12/14(火) 00:38:11
codepad復活したな。誰かとんでもないコードでも走らせたのかな。
まさか俺じゃないよね・・・・・・
511デフォルトの名無しさん:2010/12/14(火) 00:43:03
15にした奴が犯人か?w
512 ◆QZaw55cn4c :2010/12/14(火) 02:00:12
513デフォルトの名無しさん:2010/12/14(火) 02:26:15
>>491
ありがとうございます 講師の板書が汚いので何か勘違いしたかもしれません
助かりました
514デフォルトの名無しさん:2010/12/14(火) 03:59:55
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
テキストファイルに保存された携帯電話データをコマンド選択により処理する
携帯電話情報管理プログラムを作成せよ

右のテキストファイルを左のように書き換える(昇順ソート)
2 SC-02B docomo 12 118     1 003SH softbank 12 139
3 IS03 au 13 138        → 2 SC-02B docomo 12 118
1 003SH softbank 12 139     3 IS03 au 13 138

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2010/12/14 17:00まで
[5] その他の制限:ポインタ、構造体、ファイル操作については学びました
また途中までのファイルはあります、よろしくお願いします
http://codepad.org/MVpUA7oT
515デフォルトの名無しさん:2010/12/14(火) 07:22:59
int main(void)
{
  system("sort data.txt");
  return 0;
}
516デフォルトの名無しさん:2010/12/14(火) 09:03:18
>>514
他は完成してると考えていいんだよな
眠いしやっつけ仕事

ttp://codepad.org/lE6iTeft
517デフォルトの名無しさん:2010/12/14(火) 10:20:36
>>516
他のは完成してます
どうもありがとうございました!
518デフォルトの名無しさん:2010/12/14(火) 15:07:59
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
引数をとして、複数の文字列を格納した配列、
その文字列数、ある文字列aを与え、
aが複数の文字列を格納した配列中に見つかれば1を返し、
見つからなければ0を返す関数find_string()をつくれ。

ヒント
*複数の文字列を格納した配列の例
char x[2][10]={"south","north"};

  [3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:12月15日
[5] その他の制限: なし
よろしくお願いします。
519デフォルトの名無しさん:2010/12/14(火) 15:28:04
codepad動かね
520デフォルトの名無しさん:2010/12/14(火) 15:50:31
>>518
#include <stdio.h>
#include <string.h>
int find_string(const char sa[][10],size_t n,const char*a)
{
while( n>0 ) {
if(strcmp(*sa,a)==0) return 1;
--n; ++sa;
}
return 0;
}
int find_string2(const char**sa,size_t n,const char*a)
{
while( (n>0) && *sa ) {
if(strcmp(*sa,a)==0) return 1;
--n; ++sa;
}
return 0;
}
int main(void)
{
char x[2][10]={"south","north"};
const char *s[]={"south","north",0};
printf("find_string:%d\n",find_string(x,2,"east"));
printf("find_string:%d\n",find_string(x,2,"north"));
printf("find_string2:%d\n",find_string2(s,2,"west"));
printf("find_string2:%d\n",find_string2(s,2,"north"));
return 0;
}
521デフォルトの名無しさん:2010/12/14(火) 17:23:55
>>518
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

char x[2][10] = {"south", "north"};

int find_string(char x[][10], int string_num, char* find_str)
{
  int i,result=0;
  char cmd[100], buff[100];
  FILE* fp;
  for(i=0; i<string_num; i++){
    sprintf(cmd, "echo %s | grep %s | cat", x[i], find_str);
    fp = popen(cmd, "r");
    if(fgets(buff, 100, fp) != NULL){
      result = 1;
      break;
    }
  }
  pclose(fp);
  return result;
}

int main(void)
{
  printf("so %s\n", find_string(&x[0], 2, "so") ? "found" : "not found");
  printf("aa %s\n", find_string(&x[0], 2, "aa") ? "found" : "not found");
  return 0;
}
522デフォルトの名無しさん:2010/12/14(火) 19:13:51
これは酷い
523デフォルトの名無しさん:2010/12/14(火) 19:31:41
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1299231.jpg.html
http://www.dotup.org/uploda/www.dotup.org1299230.jpg.html
http://www.dotup.org/uploda/www.dotup.org1299227.jpg.html
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ:gcc
 [3.3] 言語:C
[4] 期限:2010年12月14日11:59まで
[5] その他の制限:特になし

小問が3問です。よろしくお願いします
524デフォルトの名無しさん:2010/12/14(火) 19:48:06
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題15×5の正方形を表示をするプログラムを、 for 文を 使用して作成しなさい。ただし5は define マクロで NUM として使用すること。
問題2 8個の整数を格納する配列 cc を宣言し、宣言時に{ 1, 2, 3, 4, 5, 6, 7, 8 } で初期化しなさい。

また、これを同じサイズの配列 dd にfor 文を使って逆順にコピーしなさい。
最後に、ccとdd の内容を for 文を使って表示しなさい。
<実行例>
cc[0] = 1 dd[0] = 8
cc[1] = 2 dd[1] = 7
問題3 n 個の値を入れた配列を逆順に並べ替えるプログラムを作成しなさい。
(配列の要素は、100個分宣言しておきその先頭のn個を使用してください。)

<条件>
配列は1つしか使ってはいけません。
並び替えは、2値の入れ替え操作を行ってください。単なる配列を逆順にコピーするのはNGです。
また n はキーボードから入力します。
また、配列には 1...n のデータを入れておきます。
<実行例>
befor : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
after : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
  [3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:c
[4] 期限:12月15日
[5] その他の制限: なし
よろしくお願いします。
525デフォルトの名無しさん:2010/12/14(火) 20:48:44
>>523
さすがにこれは自分でやった方が良いと思うな
526デフォルトの名無しさん:2010/12/14(火) 21:04:52
>>523
期限切れてない?
527デフォルトの名無しさん:2010/12/14(火) 21:08:49
期限が切れてもいいから出せと言われたんかなあ
528523:2010/12/14(火) 21:21:50
期限は切れてしまったのですが、一応出せば受け付ける
と言われたので、どうかよろしくお願いします
529デフォルトの名無しさん:2010/12/14(火) 21:39:49
>>524
問題1
http://codepad.org/LD3ZpwfS

>>523
非常に見にくい。以上。
530デフォルトの名無しさん:2010/12/14(火) 21:49:36
531デフォルトの名無しさん:2010/12/14(火) 21:54:01
>>530
>配列は1つしか使ってはいけません。
532デフォルトの名無しさん:2010/12/14(火) 21:57:09
1つしか使っちゃいけないのは問題3じゃね?
533デフォルトの名無しさん:2010/12/14(火) 21:58:43
534デフォルトの名無しさん:2010/12/14(火) 22:04:15
[1] 授業単元:プログラム
[2] 問題文:三次元ベクトルx,yの内積を計算するプログラムを作成してください。ただし、Vector.h、Vector.cpp、Vectorクラスのオブジェクトを引数に持つ関数FUNCに分けて作ってください
 [3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:12月15日
[5] その他の制限:なるべく簡単にしてください。アクセス指定子、public、private、コンストラクタ、デストラクタなどは習いました。
535デフォルトの名無しさん:2010/12/14(火) 22:05:36
[1] 授業単元:プログラム
[2] 問題文:addメソッドとsubメソッドを作成してください。
 [3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:12月15日
[5] その他の制限:なるべく簡単にしてください。アクセス指定子、public、private、コンストラクタ、デストラクタなどは習いました。

536デフォルトの名無しさん:2010/12/14(火) 22:25:30
void add(void){ ; }
void sub(void){ ; }
537デフォルトの名無しさん:2010/12/14(火) 22:26:00
538デフォルトの名無しさん:2010/12/14(火) 22:27:32
>>534-535
悪いsubを忘れていた

http://codepad.org/x5S1KCtP
539デフォルトの名無しさん:2010/12/14(火) 22:29:53
あっ面倒くさい
分割コンパイルか
これはcodepadではうpできないな
540デフォルトの名無しさん:2010/12/14(火) 22:39:37
>>538
質問。
こういうコンストラクタの時、
Vector3d a[10];
見たいに、配列取る時はどう書けばいいの?
541デフォルトの名無しさん:2010/12/14(火) 22:40:53
>>540
その時はデフォルトコンストラクタを書いて、後からアクセサを通して
メンバに代入するようにする
当然constじゃだめだな
542デフォルトの名無しさん:2010/12/14(火) 22:44:05
どうすっかな
Eclipse立ち上げて3分割してzipに固めるか
543デフォルトの名無しさん:2010/12/14(火) 22:46:54
>>540
Vector3d a[] = {Vector3d(1, 2, 3)};
でいいんじゃない
544デフォルトの名無しさん:2010/12/14(火) 22:57:19
545デフォルトの名無しさん:2010/12/14(火) 23:06:31
>>543
そうだな
newと勘違いしてた
配列newはどうにもこうにも融通が利かないね
C#見たいに書ければいいのに
546535:2010/12/14(火) 23:47:52
http://imepita.jp/20101208/624860
元になるプログラムです。A、Bや数字には何かが入り、更に、どこかを訂正しないとクラス外から直接操作出来ないんです。
547デフォルトの名無しさん:2010/12/14(火) 23:52:44
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-12-15.pdf
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特になし
548デフォルトの名無しさん:2010/12/14(火) 23:57:19
どなたか>>523をお願いします
549デフォルトの名無しさん:2010/12/15(水) 00:08:19
550デフォルトの名無しさん:2010/12/15(水) 00:26:23
>>523
#include <stdio.h>

#define PI 3.1415926535898

void calc_circle(double r, double *c, double *a)
{
*c=(r+r)*PI; /* 円周の長さを計算 */
*a=r*r*PI; /* 円の面積を計算 */
}

int main(void)
{
double radius = 3.0, circ, area;
calc_circle(radius, &circ, &area);

printf("半径 = %lf\n", radius);
printf("円周の長さ = %lf\n", circ);
printf("円の面積 = %lf\n", area);

return 0;
}
551デフォルトの名無しさん:2010/12/15(水) 00:29:12
>>549
文字数文の数を超える数の文字をキーボードから入力してないか?
文字数が10ならびったりの文字数をキーボードから入力汁
10なら許されるのは
#include <
ここまでであとの文字は無効
552デフォルトの名無しさん:2010/12/15(水) 00:33:41
>>548
明解で良い問題なんだから朝まで考えてみなよ
朝まで考えて君なりの回答を出せば、誤りは正してあげるよ
こんな入り口の問題で人を頼るのは何の意味も無いと思うんだ、この問題だけ解けば単位くれるとか言うなら別だけど
553デフォルトの名無しさん:2010/12/15(水) 00:43:44
>>552
さっさと答え書けクズ!
554523:2010/12/15(水) 00:43:59
>>552
説教ウゼエ('A`)
555デフォルトの名無しさん:2010/12/15(水) 00:44:49
>>552
クソして寝ろ
556デフォルトの名無しさん:2010/12/15(水) 00:49:53
>>550 ありがとうございます!

>>552
>この問題だけ解けば単位くれるとか言うなら別だけど

これさえ解けば単位がもらえるという分けではありませんが、
解かなければ単位取得が難しくなってしまいます
557デフォルトの名無しさん:2010/12/15(水) 00:50:27
jpg部分をテキストで打ち直してくれたら今すぐやってあげるよ
558 ◆QZaw55cn4c :2010/12/15(水) 00:55:57
559デフォルトの名無しさん:2010/12/15(水) 01:07:20
>>523
#include <stdio.h>

/* 文字列に含まれている英字小文字の数を数える関数 */
int count_small(char *str)
{
int cnt=0, i=0;
while (str[i] != '\0')
{
if (str[i] >= 'a' && str[i] <= 'z')
cnt++;
i++;
}
return cnt;
}

int main(void)
{
char *str1 = "AbCDeFg";
char str2[] = "hiJKlmN";
char str3[20] = "OpQrstu";

printf("%s: %d\n", str1, count_small(str1));
printf("%s: %d\n", str2, count_small(str2));
printf("%s: %d\n", str3, count_small(str3));

return 0;
}
560デフォルトの名無しさん:2010/12/15(水) 01:09:53
>>558
申し訳ありませんでも、それじゃ駄目だろ
561デフォルトの名無しさん:2010/12/15(水) 01:10:17
562 ◆QZaw55cn4c :2010/12/15(水) 01:13:43
>>560
他に手がありません。
563デフォルトの名無しさん:2010/12/15(水) 01:16:31
>>562
文字列として表示するわけじゃないんだから\0の領域は今回は不要だろ
この頭の固い中年オヤジが
564523:2010/12/15(水) 01:30:04
>>550
>>559
>>561

ありがとうございます!助かりました
565デフォルトの名無しさん:2010/12/15(水) 01:30:48
他に手がないとか言っといて、p[n]つかってねーじゃねーかよw
566デフォルトの名無しさん:2010/12/15(水) 01:42:56
>>565
%1s で読んでるから \0 が付く
567デフォルトの名無しさん:2010/12/15(水) 01:52:53
文字の読み込みならgetchar()でもscanf("%c",)でもいいだろうに
568デフォルトの名無しさん:2010/12/15(水) 05:01:32
[1] 授業単元: プログラミング演習U
[2] 問題文(含コード&リンク):
指定した数の文字列をキーボードから入力し、
動的に確保した配列に格納し、配列の内容を画面に出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C
[4] 期限: 2010年12月17日中
[5] その他: http://codepad.org/IiP7IEh7 に作ったプログラムがあります
コンパイルは通ったものの、文字列入力後固まってしまうのです
ご指摘よろしくお願いします。
569デフォルトの名無しさん:2010/12/15(水) 05:17:42
>pt=(char**)calloc(num,sizeof(char));
pt = (char**)calooc(num, sizeof(char*));

>for(i=0;i<num;i++){
> free(p[i]); //pt[i]が指す領域を開放
> free(p); //pが指す領域を開放
> }
for(i=0;i<num;i++){
free(p[i]); //pt[i]が指す領域を開放
}
free(p); //pが指す領域を開放
いろいろおかしいけど、とりあえず致命的なとこだけ
570デフォルトの名無しさん:2010/12/15(水) 05:23:51
>>569
早速のご指摘ありがとうございます
言われてみればその通りでして、無事実行できました。
どうもありがとうございました。
571デフォルトの名無しさん:2010/12/15(水) 05:24:53
>>568
惜しいね、あと1歩
http://codepad.org/SxUWkr6F
572デフォルトの名無しさん:2010/12/15(水) 05:28:56
すでに解が出ていた上にmatrix_free()内でfree(p)が足りない事に気づいた
吊ってくる
573デフォルトの名無しさん:2010/12/15(水) 05:30:51
そもそもWindowsなら解放する必要がない
574デフォルトの名無しさん:2010/12/15(水) 05:39:28
ctype.h が使える場合
int count_small(char *str)
{
int count = 0;
while (*str != '\0') {
if (islower(*str)) ++count;
++str;
}
return count;
}

'a'〜'z' の連続性が保証されてなくて ctype.h も strchr も使わない場合
int count_small(char *str)
{
static const char s[] = "abcdefghijklmnopqrstuvwxyz";
int count = 0;
const char *p;
while (*str != '\0') {
for (p = s; *p != '\0'; ++p) {
if (*str == *p) {
++count;
break;
}
}
++str;
}
return count;
}
575 ◆QZaw55cn4c :2010/12/15(水) 07:31:02
>>563
つバッファオーバーラン
576 ◆QZaw55cn4c :2010/12/15(水) 07:33:57
>>567
改行文字も読み込む。環境によっては n = 5 と入力しながら 3 文字しか入らないことがある。
577デフォルトの名無しさん:2010/12/15(水) 07:39:35
読み飛ばす工夫すりゃいいだけだろw
問題の指定に背いてサイズ大きくして、文字じゃなくて文字列で読み込むとかアホ過ぎる
578 ◆QZaw55cn4c :2010/12/15(水) 07:48:00
>>577
なるほどね。
しかし scanf("%1s", ...) は一文字読み込むときの定石
579デフォルトの名無しさん:2010/12/15(水) 07:52:52
お前が定石とか言うかw
580デフォルトの名無しさん:2010/12/15(水) 09:24:30
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
引数をとして、複数の文字列を格納した配列、
その文字列数、ある文字列aを与え、
aが複数の文字列を格納した配列中に見つかれば1を出力し、
見つからなければ0を出力する関数find_string()をつくれ
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:12月15日
581デフォルトの名無しさん:2010/12/15(水) 09:27:53
int find_string(char x[][10], int string_num, char* find_str)
{
  int i,result=0;
  char cmd[100], buff[100];
  FILE* fp;
  for(i=0; i<string_num; i++){
    sprintf(cmd, "echo %s | grep %s | cat", x[i], find_str);
    fp = popen(cmd, "r");
    if(fgets(buff, 100, fp) != NULL){
      result = 1;
      break;
    }
    pclose(fp);
  }
  return result;
}
582デフォルトの名無しさん:2010/12/15(水) 09:29:25
583デフォルトの名無しさん:2010/12/15(水) 09:33:32
>>580です。
上にも同じようなのがあったのですが微妙に違うので・・・
上のものを少し改良すればいいのかもしれませんが初心者なのでわかりませんでした。
584デフォルトの名無しさん:2010/12/15(水) 09:45:50
>>575
お前どこまでもしつこいやっちゃなー
題意に沿えと言っているんだ
「文字数文の文字をキーボードから入力し」
どこにもバッファオーバーランの対策をしろとは書いてない
getchar()で文字数分ループを回せばオーバーランするはずもない

万事がこの調子であくまでも自分が正しいと思って回りの意見を
ことごとく無視して嫌われてるんだろうな
完全な自己愛性人格障害だな
585547:2010/12/15(水) 10:01:10
>>547
どなたかお願いします。
いままででた奴だと、アドレスが表示されない・・・
586547:2010/12/15(水) 10:02:58
>>547
追記で
入力した文字列において、文字を格納されているアドレスを一文字図津確認したいんですが・・・
587デフォルトの名無しさん:2010/12/15(水) 10:21:22
588デフォルトの名無しさん:2010/12/15(水) 10:25:09
最後の行は return 0; の方がいいな
589547:2010/12/15(水) 10:33:41
めっさエラーでたんですががが
590デフォルトの名無しさん:2010/12/15(水) 10:39:49
エラーメッセージをここに貼り付けて
591547:2010/12/15(水) 10:48:49
/tmp/ccy6ZYes.o(.text+0x2e): In function `main':
: warning: the `gets' function is dangerous and should not be used.

一応実行できますが、アドレスもなにも表示されません。
592デフォルトの名無しさん:2010/12/15(水) 10:51:05
>>591
それエラーじゃなくてウォーニング(警告)
gets()は危ないから使うなと出ている
だけど宿題だから無視してよい
ちゃんと文字数を数字で入力し、その後文字をその文字数分入れてる?
593デフォルトの名無しさん:2010/12/15(水) 10:52:11
例えば
文字数 = 5[Enter]
abcde[Enter]
としてみ
594547:2010/12/15(水) 10:56:36
なにもでませんね・・・
595デフォルトの名無しさん:2010/12/15(水) 10:58:45
ちょって待って
俺の所でもgccで走らせてみる
596デフォルトの名無しさん:2010/12/15(水) 11:01:06
00032C20 : 'a'
00032C21 : 'b'
00032C22 : 'c'
00032C23 : 'd'
00032C24 : 'e'

こんなん出ましたけど
597547:2010/12/15(水) 11:05:01
なぜだ・・・
598デフォルトの名無しさん:2010/12/15(水) 11:05:41
文字数 = というのは表示される?
599デフォルトの名無しさん:2010/12/15(水) 12:04:27
[1] 授業単元:プログラミングとコンパイラ
[2] 問題文(含コード&リンク):
・問題1
C++のサンプルプログラム http://codepad.org/BAl4ALCV ついて答えなさい。
MyStackクラスのコンストラクタにメッセージ出力(*)を追加して、MyStackオブジェクトが実体化されたことがわかるようにしなさい。

実行結果のみ示しなさい。

・問題2
問題1の結果を、次のスタイルに書き換えなさい。
stack.h:http://codepad.org/uEkKWS5W (ファイル名はstack.hhでもOK)
stack.cpp:http://codepad.org/A0gHDv2g (ファイル名はstack.ccでもOK)
main.cpp:http://codepad.org/j3bzECYU (ファイル名はmain.ccでもOK)
ただし、main.cppの中身は自分なりに変えてみること。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2010年12月16日08:00まで
600デフォルトの名無しさん:2010/12/15(水) 12:15:29
>>599
問題文の(*)のところ但し書きがあると思うんだが、抜けてないか?
601デフォルトの名無しさん:2010/12/15(水) 14:56:38
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題1
10個の要素を持つ配列 data を宣言し、先頭の要素から順番に1〜 10 までの整数を代入した後、表示するプログラムを for 文を 使用して作成せよ。
問題2
配列 va を定義して、 10,20,30,40,50 の値で初期 化し、その内容を表示するプログラムを作成しなさい 。
問題3
配列 va と配列 vb を宣言し、配列 va を 1,2,3,4,5 で 初期化し、その値を配列 vb にコピーした後、表示す るプログラムを作成しなさい。
  [3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:c
[4] 期限:12月16日
[5] その他の制限: なし
よろしくお願いします。
602デフォルトの名無しさん:2010/12/15(水) 15:20:09
>>600
ご指摘ありがとうございます。抜けておりました。
----- ----- ----- ----- -----
(*)例えば、次のようなコードに慣れること。
#include <iostream>
using namespace std;
または、
#include <iostream>

cout << "MyStack object instantiated!"<< endl;
これは、
printf ("%s\n", "MyStack object instantiated!");
と、同じである。

実行結果のみ示しなさい。
603デフォルトの名無しさん:2010/12/15(水) 15:25:16
604デフォルトの名無しさん:2010/12/15(水) 15:28:37
605デフォルトの名無しさん:2010/12/15(水) 15:30:29
606599:2010/12/15(水) 17:19:03
>>599の問題文にて一部文章が抜けていたので再投下失礼。

[1] 授業単元:プログラミングとコンパイラ
[2] 問題文(含コード&リンク):
・問題1
C++のサンプルプログラム http://codepad.org/BAl4ALCV ついて答えなさい。
MyStackクラスのコンストラクタにメッセージ出力(*)を追加して、MyStackオブジェクトが実体化されたことがわかるようにしなさい。

(*)例えば、次のようなコードに慣れること。
#include <iostream>
using namespace std;
または、
#include <iostream>

cout << "MyStack object instantiated!"<< endl; これは、
printf ("%s\n", "MyStack object instantiated!"); と、同じである。

実行結果のみ示しなさい。

・問題2
問題1の結果を、次のスタイルに書き換えなさい。
stack.h:http://codepad.org/uEkKWS5W (ファイル名はstack.hhでもOK)
stack.cpp:http://codepad.org/A0gHDv2g (ファイル名はstack.ccでもOK)
main.cpp:http://codepad.org/j3bzECYU (ファイル名はmain.ccでもOK) ただし、main.cppの中身は自分なりに変えてみること。

[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 2010年12月16日08:00まで
607535:2010/12/15(水) 17:30:02
>>537
>>538
std::って書き方を習っていないのですが、どう書き変えればいいですか
608デフォルトの名無しさん:2010/12/15(水) 17:47:22
>>607
usingは習った?
609535:2010/12/15(水) 17:50:29
>>608
using namespace std;
って習いました。
あと、文の一番最後に\nをつけるっていうのも習いました。
610デフォルトの名無しさん:2010/12/15(水) 18:04:19
>>609
じゃあ、#includeの後にusing namespace stdいれて、関数とかの頭にあるstd::は全部取っちゃって
611デフォルトの名無しさん:2010/12/15(水) 18:07:30
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
http://www1.axfc.net/uploader/File/so/55622 ←問題文です
http://www1.axfc.net/uploader/File/so/55623 ←datファイルです
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:visual studio2005
 [3.3] 言語: C言語
[4] 期限: 12月16日 午前9時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

時間がありませんがよろしくお願いします
612535:2010/12/15(水) 18:31:12
>>610
わかりました
613535:2010/12/15(水) 18:35:23
>>610
friendとかInnerVector3dって何でしょうか
614デフォルトの名無しさん:2010/12/15(水) 18:58:47
615デフォルトの名無しさん:2010/12/15(水) 19:00:41
616デフォルトの名無しさん:2010/12/15(水) 19:10:37
http://codepad.org/cmk80jWl

http://codepad.org/6COq3c53

この2つの文字化け部分がだいたいどのようなことを書いているかわかりませんか?
もともとの課題はこういうものでした。


1.例10.2 の2 を参考にして、以下のようなカレンダープログラムmycalを作成せよ。
◦引数なしで実行されると、今月のカレンダーを出力する
◦引数1個で実行されると、その引数を月とみなし、その年のその月のカレンダーを出力する
◦引数2個で実行されると、第一引数を月、第二引数を年とみなしてカレンダーを出力する。


2.例12.6 の2 に、練習問題12.6 の3 の変更を加え、さらに同様にしてべき乗(関数名power())も計算できるようにせよ。
617 ◆QZaw55cn4c :2010/12/15(水) 19:14:25
>>584
>どこにもバッファオーバーランの対策をしろとは書いてない
上流仕様書マンセー乙
618デフォルトの名無しさん:2010/12/15(水) 19:29:44
>>613
InnerVector3dは中身りゃわかると思うけど内積だろ
出題の通りに直せばいんじゃね?
この場合のfriendはメンバ関数じゃない関数でクラス内部の非公開メンバにアクセスする指定
619デフォルトの名無しさん:2010/12/15(水) 19:34:08
>>616
元ソースをzipかなんかに圧縮して、どっかのローダに上げてくれんかの。
620デフォルトの名無しさん:2010/12/15(水) 19:53:16
>>619

一応2番についての例と練習をのせました。
http://www.dotup.org/uploda/www.dotup.org1300844.zip.html
621デフォルトの名無しさん:2010/12/15(水) 19:58:39
622デフォルトの名無しさん:2010/12/15(水) 20:03:35
>>621
それ僕です。笑
課題2がわからない><
623デフォルトの名無しさん:2010/12/15(水) 20:14:58
>>620
jpeg上げてどうするよ。
もういいから取りあえずサクラエディタとか入れて見てみれば?
624デフォルトの名無しさん:2010/12/15(水) 20:19:46
>>622
問題の題意とプログラムから printf に書かれている内容を想像するんだ!
(`・ω・´) シャキーン
625デフォルトの名無しさん:2010/12/15(水) 20:26:47
>>616
取りあえず一番目の2行目はここまでは再現できた。
 - 引数なしで実行さ
eucをsjisで開いてるみたい。
サクラエディタ入れてeucで開きなおすと読めんじゃないかな。
626デフォルトの名無しさん:2010/12/15(水) 21:10:39
[1] 授業単元: プログラミング言語
[2] 問題文:
hドライブのogawaフォルダ配下のkyuuyo.datからデータを入力し、
そのデータを金額とした時の金種の一覧を表示するプログラムを
作成せよ。
但し、kyuuyo.datファイルはint型の複数データが格納されたバイナリファイルとする。

実行例

No| 給与  |一万円|五千円|千 円 |五百円|百 円 |五十円|十 円 |五 円|一 円|
--|----------------------------------------------------------------------------
1 | 419377 |  41|   1|    4|   0|   3|   1|    2|   1|   2|
2 | ・
3 | ・
4 | ・
5 | ・
6 | ・
7 | ・
8 | ・
--|----------------------------------------------------------------------------
 |合計  | 737|  15|  49|   8|  42|  10|   32|  8|   49|  


[3] 環境
[3.1] Windows XP
[3.2] visual stdio2005
[3.3] 言語: C++
[4] 期限: [2010年12月16日13:00まで]
[5] その他の制限: マス目付、#include <stdio.h>はじめでお願いしますm(_ _)m
627デフォルトの名無しさん:2010/12/15(水) 21:13:12
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のコードのMRand()は31ビットのM系列乱数を生成する関数である。
http://codepad.org/rxOLtNr0
この乱数列を様々な角度から検証して、この乱数列の問題点を見出し、
問題点の内容を提出せよ。
可能であればその解決方法も合わせて提出せよ。
[3] 環境
 [3.1] OS: windows,linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
628デフォルトの名無しさん:2010/12/15(水) 21:15:58
>>626
ヒント 611
629デフォルトの名無しさん:2010/12/15(水) 21:43:00
【C#, C♯, C#】 MonoMac 【MonoDevelop】
http://hibari.2ch.net/test/read.cgi/mac/1291602001/

プログラム言語に詳しい奴、ちょっと↑きてくれ。 
630535:2010/12/15(水) 22:17:39
>>618
ありがとうございました。
631デフォルトの名無しさん:2010/12/15(水) 22:46:06
内容:
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):正弦関数y=sinφのグラフを文字列■で描きなさい(31行程で)。グラフは一周期分で真ん中をy軸をlで区切ること。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Visual C
 [3.3] 言語: C
[4] 期限: [2010年12月16日09:00まで]

よろしくお願いします
632デフォルトの名無しさん:2010/12/15(水) 22:56:00
>>614
>>615
ありがとうございました!
633デフォルトの名無しさん:2010/12/15(水) 23:42:16
>>631
全角の■で描くのは面倒なので * で描いた、どうしても全角の■でなければならないのなら考える
31行で描くと間延びするので25行で描いたが、31行にしたい場合は Y_MAX を15にすれば良い

ttp://ideone.com/j35W9
634デフォルトの名無しさん:2010/12/15(水) 23:45:43
>>628
ああ既出だったー
ありがとー
635デフォルトの名無しさん:2010/12/15(水) 23:47:07
内容:
[1] 授業単元:画像処理プログラミング
[2] 問題文(含コード&リンク):任意の画像をRGB空間からからHSV空間に変換し
                  色彩、彩度、明度の値を表示すプログラムを作成しなさい
 [3.1] OS: linux
 [3.2] gcc
 [3.3] 言語: C言語
[4] 期限: [2010年12月17日12:00まで

よろしくお願いします
636デフォルトの名無しさん:2010/12/15(水) 23:53:34
>>633
ありがとうございます。
確認してみた所、■は絶対だそうなので
お手数お掛けして申し訳ありませんが、■でお願いしたいです。
637633:2010/12/15(水) 23:58:18
>>631
考えたら | も全角にすれば良いだけの話だった
ideone が死んでるみたいだから codepad に張ったけど、sin() が無いって言われるのは何でだろう?

ttp://codepad.org/OxNBcsjF
638デフォルトの名無しさん:2010/12/16(木) 00:18:10
>>637
ありがとうございました!
639デフォルトの名無しさん:2010/12/16(木) 01:00:20
>>635
・画像の形式は何?
・全ての画素について、HSVの数値を計算するの?
・計算で得られたHSVの数値は、どのように画面表示されればよい?
640デフォルトの名無しさん:2010/12/16(木) 01:09:36
>>639
問題文がこのような感じで書かれていて
画像の形式なども指定されてませんすいません
数値はターミナル上に表示できればいいと思います
わからない事だらけですいません
641デフォルトの名無しさん:2010/12/16(木) 07:54:29
>>639
24ビットBMPファイルのみ対応
#pragmaで処理系依存(gccでは問題なし)
動くけど汚いから他の人待ち…

http://codepad.org/om8Y3MiX
642デフォルトの名無しさん:2010/12/16(木) 07:55:24
アンカー間違えた
×:>>639
○:>>635
643デフォルトの名無しさん:2010/12/16(木) 12:45:43
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 正弦関数y=sinφのグラフを文字列■で描きなさい。数値yに対応する■の数はウインドウ各行に表示しきれる範囲内で任意に定めてよい。グラフは一周期でy軸をlで区切りなさい
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] VC
 [3.3] 言語: C++
[4] 期限: 12月16日17:00まで
[5] その他の制限:
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int _tmain(int argc, _TCHAR* argv[])
{
double y[100];
int i, j, k;
for(i = 0; i < 62; i++){
y[i] = 10 * sin(0.1 * i);
}
for(i = 0; i < 31; i++){
for(k = 0; k < 10; k++){
printf(" ");
}
printf("l");
for(j = 0; j < y[i]; j++){
printf("■");
}
printf("\n");
}
この続きからお願いします
644デフォルトの名無しさん:2010/12/16(木) 13:21:19
>>637
-lmがオプション指定してないんだろ
645デフォルトの名無しさん:2010/12/16(木) 14:12:19
>>644
それは考えたんだけど、atan() の立場が無くなるので....
atan() は mathlib じゃないって事はないだろ?
646デフォルトの名無しさん:2010/12/16(木) 14:24:05
>>643
最初から書き直したいくらいの前半だが
どうしても続きからと言うならこうだろうか
ループ回数はちょっと変えさせてもらったが

http://codepad.org/7JukMZUK
647デフォルトの名無しさん:2010/12/16(木) 14:24:59
>>641
ありがとうございます、助かりました〜
648デフォルトの名無しさん:2010/12/16(木) 14:26:04
>>646
ありがとうございます
649デフォルトの名無しさん:2010/12/16(木) 15:58:12
650デフォルトの名無しさん:2010/12/16(木) 16:02:01
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://ideone.com/fQdK2
[3] 環境
 [3.1] OS:macosx
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 12月20日
[5] 動作はするのですが、優先度付きキューを導入した理由、メリット、aスター探索内の意味がいまいち理解できないので説明してもらえないでしょうか
お願いします
651デフォルトの名無しさん:2010/12/16(木) 19:55:07
[1] 授業単元: プログラミング
[2] 問題文:
配列によるスタックを実現する。出来るだけ簡単なアルゴリズムで
ポップとプッシュの操作が可能なプログラムを作れ。正し配列は100要素
程度とする。

[3] 環境
 [3.1] OS:Unix Windows
 [3.2] gcc
 [3.3] 言語: C
[4]期限: 12月17日
[5]:よろしくお願いします。できるだけ簡単にお願いします。
652デフォルトの名無しさん:2010/12/16(木) 20:06:23
>>651
これでいいか?
http://ideone.com/ZihBZ
653デフォルトの名無しさん:2010/12/16(木) 20:17:12
>>652
ありがとうございます。
654デフォルトの名無しさん:2010/12/17(金) 00:39:47
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):ランダムな整数列を生成し、次の直接基数ソート
プログラムにより並べ替えるプログラムを作れ
直接基数プログラム
int i, j, pass, count[256];
for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
count[j] = 0;
for(i = 1;i <= n; i++)
count[bits(a[i],pass*8,8)]++;
for(j = 1;j < 256;j++)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
for(i = 1; i <= n; i++)
a[i] = b[i];
}
[3] 環境
 [3.1] unix
 [3.2] gcc
 [3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
  直接基数ソートとはランダムに出た数字を二進数に直し、順番に並び変える
  プログラムです。
655デフォルトの名無しさん:2010/12/17(金) 01:40:00
[1] 授業単元: 数値シミュレーション
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1303140.jpg
http://www.dotup.org/uploda/www.dotup.org1303143.jpg
1枚目が問題文画像、2枚目がそのプログラムです。
2枚目画像のメインプログラム内で、・・・・で省略されている箇所を埋めて欲しいです。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C/C++
[4] 期限: 2010年12月20日17:30まで
[5] その他の制限:
http://ideone.com/7DRAO
↑に書けるところまでプログラムを書いたので、どうぞよろしくお願いします。
656デフォルトの名無しさん:2010/12/17(金) 03:23:37
>>654
bitsってマクロ関数だと思うんだけど、どういうもの?

>>655
外部ヘッダ"glibw32.h"ってこれで合ってる?
ttp://www.asahi-net.or.jp/~uc3k-ymd/Glib32/glibw32.html
657デフォルトの名無しさん:2010/12/17(金) 03:28:15
>>656
655ですが、glibw32.hはそちらで間違いないです。
お手数かとは思いますが、for文の中の・・・・だけでも、どうかよろしくお願いします。
658654:2010/12/17(金) 03:39:51
>>656
bitsとはたとえばbits([ai],b,1)のときは、配列a[i]のbビット目から
1ビット、という意味です。
できたら書いている直接基数ソートを使ってくれたらうれしいんですが、
必ず使う必要はないです。
659デフォルトの名無しさん:2010/12/17(金) 04:35:31
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):
  クイックソートにより異なる15個の要素を配列するとき、比較回数の最小値と最大値求め、
  そのときに与えた要素をそれぞれ答えなさい。
  たとえば1、2、3、、、、15を与えると、105回となる。といったかんじです。
 
  プログラムの提出はないです。
   
[4] 期限: 2010年12月17日13:00まで。
660デフォルトの名無しさん:2010/12/17(金) 05:32:11
ギリギリで質問かいw
661デフォルトの名無しさん:2010/12/17(金) 05:58:12
>>655
http://codepad.org/Dm7JjAvK
○、△、□の描画ってのはよくわからんのだが、それでいいのか?w
662デフォルトの名無しさん:2010/12/17(金) 07:53:56
663654:2010/12/17(金) 09:11:01
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):直接基数ソートプログラムで、配列aとbの役割を
交互に替える(コピーをしない)プログラムを作れ。
[3] 環境
 [3.1] unix
 [3.2] gcc
 [3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
  
664デフォルトの名無しさん:2010/12/17(金) 09:38:08
>>659
同じ要素でもピボットの選び方で比較回数は変わると思うんだけど、指定はない?
665デフォルトの名無しさん:2010/12/17(金) 09:48:52
>>664
ピボット選択アルゴリズムの中の比較回数を別記するとか?
666デフォルトの名無しさん:2010/12/17(金) 09:54:02
>>665
合算してよい。
667デフォルトの名無しさん:2010/12/17(金) 10:57:39
ウチの大学の課題より難しそうなのに皆すげえわ
プログラミングが苦手でどうしてもできそうにないので大学辞めます
情報工学ともおさらばです
668デフォルトの名無しさん:2010/12/17(金) 11:02:49
人生に一度きりの最強カードの新卒を捨てるなんてとんでもない
669デフォルトの名無しさん:2010/12/17(金) 11:07:21
>>664
ピボットは、データ総数の中央値です!
670デフォルトの名無しさん:2010/12/17(金) 11:11:25
[1]授業単元:プログラミング演習T
[2]問題文
料理のデータベースを作成し、複数のデータの中からカロリーが最大と最小の料理の全データを出力するプログラムを作成せよ

[3]
[3.1]Windows
[3.2]Visual Studio 2010
[3.3]C
[4]12/20
[5]各料理のデータは「番号、名前、カロリー」
  料理とカロリーの値は適当でも可(ラーメン 10kcalとか)

よろしくお願いします
671デフォルトの名無しさん:2010/12/17(金) 11:16:20
>>669
再帰的だなぁ。
672デフォルトの名無しさん:2010/12/17(金) 11:50:44
>>670
データ構造の指定は無し?

struct dish[10] {
int id;
int name;
int cal;
}

みたいなのでもいいのかい
673デフォルトの名無しさん:2010/12/17(金) 12:53:15
[1] C++
[2]
・マウスを使って描画する
・BMP画像を表示する
・マウスで描画した部分だけ表示する
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限:VC++6.0を使ってます。 問題の上二つまでは出来てます。
674デフォルトの名無しさん:2010/12/17(金) 16:34:14
ttp://ist.ksc.kwansei.ac.jp/~ibaraki/algo.htmlの
4.整列のアルゴリズムの
第p要素を選ぶSELECTとデータファイルselectdataを
それぞれプログラムソースselect.cとデータファイルselectdata.datとして同じユーザーディレクトリ
に保存して、cygwin上でコンパイル(gcc select.c)してもエラーは出ないですが、実行(a.exe)
とすると
6[main]a 4656_cygtls::handle_exceptionx:Error while dumping state(probably corrupted stack)
Segmentation fault (core dumped)
となります。
どうしたらいいでしょうか?
675デフォルトの名無しさん:2010/12/17(金) 16:54:39
>>650
前の回答者だが問題変わってねえか?
ヒューリスティック関数を使ってるみたいだけど
前回提示した優先度付きキューは基本的に循環キューだからそのままでは使えないよ

ちなみに前回書いたやつは
開始ノードを優先度「0」でキューに追加
*begin
node←キューから優先度の最も高い(数値の小さい)ものを取り出す
nodeに接続しているノードを探して優先度「nodeの優先度+1」でキューに追加
終了ノードに達するまで*beginから繰り返す
だったと思う
676デフォルトの名無しさん:2010/12/17(金) 17:30:51
[1] 授業単元:ディジタル回路(プログラミング演習)
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwinのgcc
 [3.3] 言語: c言語
[4] 期限: 12月20日17:00まで
[5] その他の制限:

<基礎課題>
4変数の論理式からカルノーマップと簡略化した論理式を作成しなさい.
入力の論理式は文字列の配列とし,
const char* IN[] = {"Bcd", "Abcd", "aBc", "aB", "abC"}; // グローバル変数
ならば,
Bcd + Abcd + aBc + aB + abC (小文字は大文字の否定を表す)
の論理式のカルノーマップと簡略化した論理式
Acd + aB + aC
を表示する.
カルノーマップは表示方法を工夫しなさい.

<発展課題>
本講義では触れていないが,クワイン・マクラスキー法というものもある.
どのようなものか各自で調査し,同様にプログラムを作成しなさい.

という課題です。
よろしくお願いします
677デフォルトの名無しさん:2010/12/17(金) 18:28:07
>>672 遅くなってすみません、大丈夫です
678デフォルトの名無しさん:2010/12/17(金) 18:53:57
0〜2πまで、π/100おきに、sin/cos/tanの値を表示するプログラムです。
http://codepad.org/Jl9uLX3vのプログラムを作成しましたが、0からでなく途中からしか表示されません。
教えてください。
679デフォルトの名無しさん:2010/12/17(金) 19:04:19
改行多すぎて表示されてないように見えるだけじゃね?
680デフォルトの名無しさん:2010/12/17(金) 19:14:06
>>678
http://codepad.org/gM1ApotK
そういうときはパイプトレスを使え
681デフォルトの名無しさん:2010/12/17(金) 19:56:59
>>680
ありがとうございました!
682デフォルトの名無しさん:2010/12/17(金) 20:13:00
大文字入力か小文字入力か選択させて、選択した通りに変換して出力するプログラム
http://codepad.org/4WVt2eoI
起動しますが、↓のようになってしまいます。
文字数を入力:3
小文字変換は's',大文字変換は'd'と入力:1番目の文字を入力:s
2番目の文字を入力:3番目の文字を入力:

どなたか教えてくださいまし!
683デフォルトの名無しさん:2010/12/17(金) 21:40:11
>>682
scanf( "%d", &n ); に対して 3\n を入力すると、n に 3 が代入されるけど、stdin のバッファには \n が残ってる
その後に scanf( "%c", &moji ) を実行するとバッファの \n がmoji に代入されるから入力を待たずに復帰する
> 小文字変換は's',大文字変換は'd'と入力:1番目の文字を入力:s
この行はこれで説明が付くけど
> 2番目の文字を入力:3番目の文字を入力
こうはならない気がする

scanf は癖が有るので対話的入力を行うなら fgets() で一旦文字列として受け取ってから sscanf() で必要な項目を
抽出した方が良いと思うよ

char tmp[128];
fgets( tmp, 128, stdin );
sscanf( tmp, "%d", &n );

みたいな感じで

蛇足だけど scanf("%s",&str[i]); ではなく scanf( "%c", &str[i] ) じゃないかな、%s だとバッファオーバーランの可能性が生じる
684デフォルトの名無しさん:2010/12/17(金) 22:09:56
>>683
http://codepad.org/FpV5xj3Xに修正しましたが、同様の出力が見られました。
685デフォルトの名無しさん:2010/12/17(金) 22:30:58
>>684
一箇所だけ直しても駄目、例えばこんな感じ

ttp://codepad.org/aCjk8Knn
686デフォルトの名無しさん:2010/12/17(金) 22:55:09
>>685
ありがとうございます。
ただ、何故か大文字変換ができません。↓のように出力されます(小文字はできます)。
文字数を入力:2
小文字変換は's',大文字変換は'd'と入力:d
1番目の文字を入力:d
2番目の文字を入力:s
文字列:ss
変換後:SS
687デフォルトの名無しさん:2010/12/18(土) 00:42:05
>>686
なぜssになるんだ?bcc だとちゃんと ds -> DS になるよ
張ったコードを確認しようにも codepad が開かない、ハテ? 
688デフォルトの名無しさん:2010/12/18(土) 00:45:13
codepadにわざと重いコードを山ほど貼り付けてフリーズさせてるアホがいるんじゃね?
689codepad:2010/12/18(土) 00:55:06
ガラパゴスの黄色いサルへ
自分たちで黄色いサル用のcodepad作ってください
690デフォルトの名無しさん:2010/12/18(土) 03:25:27
>>670
こういう感じでいいのかな
http://ideone.com/rtEGH
691デフォルトの名無しさん:2010/12/18(土) 11:28:16
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):キーボードからいくつかの浮動小数点を読み込み、そのうち正の数値だけの
合計を求めて表示するプログラムを作りなさい。数値の個数は事前には分からないものと
し、0が入力されたら、合計すべき数値が尽きたものとする。
[3] 環境
 [3.1] OS: MAC OS X
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 12月20日
[5] その他の制限: ifとforを使ってください、よろしくお願いします
692デフォルトの名無しさん:2010/12/18(土) 11:42:55
#include <stdio.h>

int main(void)
{
double d, sum = 0.0;

printf("正の数値を入力して下さい。\n");

for (; scanf("%lf", &d) != EOF; )
{
if (d == 0.0)
{
break;
}
else if (d > 0.0)
{
sum += d;
}
}

printf("sum: %f\n", sum);

return 0;
}
693デフォルトの名無しさん:2010/12/18(土) 11:45:55
>>680
double型の変数をループカウンタに使うなカス
694デフォルトの名無しさん:2010/12/18(土) 11:48:03
>>693
>>678に言えよ
695デフォルトの名無しさん:2010/12/18(土) 11:49:10
>>680がそれに気づいて直すべきだろう
696デフォルトの名無しさん:2010/12/18(土) 12:14:04
>>692
forがifとしてしか機能してないけどいいのか
題意的な意味で
697 ◆/91kCCQXBo :2010/12/18(土) 12:16:38
>>691
#include <stdio.h>
int main(void)
{
  double indata, total=0.0;
  for(; printf("INPUT(end:0) > "), scanf("%lf", &indata) != EOF; )
    if(indata == 0.0) break;
    if(indata > 0.0) total += indata;
  printf("TOTAL = %g\n", total);
}

>>691
#include <stdio.h>
int main(void)
{
  double indata, total=0.0;
  printf("INPUT(end:0) > ");
  for(; scanf("%lf", &indata) != EOF & indata != 0.0; )
    if(indata > 0.0) total += indata;
  printf("TOTAL = %g\n", total);
}
698 ◆/91kCCQXBo :2010/12/18(土) 12:20:21
for()の{}消したの忘れてた!
699デフォルトの名無しさん:2010/12/18(土) 12:48:40
double に対して == 判定を行うのは良い習慣ではないので改めた方が良い
700デフォルトの名無しさん:2010/12/18(土) 12:51:25
>>699
回答をどうぞ
701デフォルトの名無しさん:2010/12/18(土) 12:51:55
この場合には当てはまらないだろw
702デフォルトの名無しさん:2010/12/18(土) 13:04:59
習慣になってると嵌る事が有るって話
703デフォルトの名無しさん:2010/12/18(土) 13:06:21
ぷw
704デフォルトの名無しさん:2010/12/18(土) 13:13:59
誰も==でなんて比較してなくね?
705デフォルトの名無しさん:2010/12/18(土) 13:17:14
問題も読まずに脊髄反射で書き込んだ>>699がアホ
706デフォルトの名無しさん:2010/12/18(土) 16:06:13
>>690
できました!ありがとうございます!
707デフォルトの名無しさん:2010/12/18(土) 21:34:25
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):直接基数ソートプログラムで、配列aとbの役割を
交互に替える(コピーをしない)プログラムを作れ。
直接基数プログラム
int i, j, pass, count[256];
for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
count[j] = 0;
for(i = 1;i <= n; i++)
count[bits(a[i],pass*8,8)]++;
for(j = 1;j < 256;j++)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
for(i = 1; i <= n; i++)
a[i] = b[i];
}

[3] 環境
 [3.1] unix
 [3.2] gcc
 [3.3] 言語: どちらでもよい
[4] 期限: 12月22日
[5] mainの中身もお願いします。
  

708デフォルトの名無しさん:2010/12/19(日) 00:11:47
>>707
aとbが指す先の領域のサイズを明確にして。
bitsはこんな感じか?
#define bits(value, byte, bit) ((value >> byte) & ((1 << bit) - 1))
つーか、そもそもソートできてなくない?
aとbをポインタで宣言して、それぞれ別々の配列を指すようにして、アドレス値を入れ替えちゃ駄目?
- for(i = 1; i <= n; i++)
- a[i] = b[i];
+ do { int *t = a; b = a; a = t; } while (0)
709デフォルトの名無しさん:2010/12/19(日) 00:22:32
>>699
value < epsilonにしろってことかな。
どっちかというとindataと0.0がちゃんと同じbit数同士の比較になってるのかどうかが気になる。
710707:2010/12/19(日) 00:33:12
>>708
一応役割を変えないパターンが662です
711デフォルトの名無しさん:2010/12/19(日) 01:02:39
>>710
先頭に入るゴミは何だコンチクショー。
見なかったことにする。

@@ -30,9 +30,10 @@ void main(void) {
}

//直接基数ソート
-void radix_sort(int a[], int b[], int n) {
+void radix_sort(int aa[], int bb[], int n) {
//この中はいじってない
int i, j, pass, count[256];
+ int *a = aa, *b = bb, *t;

for(pass = 0; pass < 4; pass++){
for(j = 0;j < 256;j++)
@@ -43,8 +44,9 @@ void radix_sort(int a[], int b[], int n)
count[j] = count[j-1] + count[j];
for(i = n; i >= 1;i--)
b[count[bits(a[i],pass*8,8)]--] = a[i];
- for(i = 1; i <= n; i++)
- a[i] = b[i];
+ t = a;
+ a = b;
+ b = t;
}
}
712デフォルトの名無しさん:2010/12/19(日) 13:43:05
[1] 授業単元:プログラミングとアルゴリズム
[2] 問題文(含コード&リンク):以下の課題をBinary search 関数の再帰呼び出しで実現しなさい。
0 から100 までの範囲で整数の乱数を1000 個発生させ、Bubble sort 関数で整列させた後、ターゲット整数を再帰で検索するBinary search 関数を作って下のプログラム(rbinsearch.c) を完成させなさい。
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限:月曜日正午
[5] その他の制限:特になし

以下がソースコードで、「ここを作る」の部分を作成して頂きたいです!
http://codepad.org/PMNoJqAZ
713デフォルトの名無しさん:2010/12/19(日) 14:31:23
714デフォルトの名無しさん:2010/12/19(日) 15:19:32
[1] 授業単元:cプログラミング1
[2] 問題文(含コード&リンク):
問題1、三角形の面積を求めるプログラムまではできたのですが
↓このプログラムを負の値が入力されるまで繰り返すようにしたいのですがどうすればいいですか?
#include <stdio.h>
double get_area( int hankei);
int main(void)
{
double hankei,area;
printf ("半径");
scanf ("%lf",&hankei);
area = get_area(hankei);
printf ("面積=%lf\n",area);
return 0;
}
double get_area( int hankei)
{
double area;
area = hankei * hankei * 3.14;
return area;
}
問題2:実数を引数として値が0以上の場合には小数第一位を四捨五入した値を、負の場合には-1を整数型で
返す関数proud()を作成し動作の確認をする。
問題3:実数xを引数とし、数列an=1/n!(n=0,・・・9)を係数にもつ多項式f(x)=a0 + a1x + ・・・a8x^8 + a9x^9
の値を計算して返す関数をforループを用い作成しmain文の中から呼び出し動作を確認する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:12/19
よろしくお願いします。
715デフォルトの名無しさん:2010/12/19(日) 15:45:16
>>713

ありがとうございます
716デフォルトの名無しさん:2010/12/19(日) 16:16:37
残り24時間なのでどなた様か>>676をお願いします
717デフォルトの名無しさん:2010/12/19(日) 17:13:07
>>714
#include <stdio.h>
double get_area( int hankei);
>>714
問題1
int main(void)
{
double hankei,area;
while(1) { //追加
printf ("半径");
scanf ("%lf",&hankei);
if(hankei < 0.0) break; //追加
area = get_area(hankei);
printf ("面積=%lf\n",area);
} //追加
return 0;
}
double get_area( int hankei)
{
double area;
area = hankei * hankei * 3.14;
return area;
}
718デフォルトの名無しさん:2010/12/19(日) 17:25:54
>>714
問題2
int proud(double x) {return x < 0.0 ? -1 : x + 0.5;}
719デフォルトの名無しさん:2010/12/20(月) 04:14:47
>>654,707
同じ講義受けてるわ・・・

>>656,708
マクロ関数は
#define bits(p,q,t) (p>>q)&~(~0<<t) です

>>654のソートが
count[j]=0; の初期化以降どうゆうことをしてるのかよく分からないので
解説していただけるとありがたいのですが
720 ◆QZaw55cn4c :2010/12/20(月) 05:43:19
721デフォルトの名無しさん:2010/12/20(月) 06:42:16
firefox3.6のbockmark形式の a.html、b.htmlを
マージして c.html として出力するプログラムを誰か書いてください。

例;
<a.html>
<link>ホームページA
<link>ホームページB
<link>ホームページC

<b.html>
<link>ホームページA
<link>ホームページY
<link>ホームページZ

<diff.html>
<link>ホームページY
<link>ホームページZ

<c.html>
<link>ホームページA
<link>ホームページB
<link>ホームページC
<link>ホームページY
<link>ホームページZ

a.html と b.html の差分 diff.html
a.html に diff.html を追加し c.html
722デフォルトの名無しさん:2010/12/20(月) 08:19:06
>>721
その例の謎MLはなんなんだよwwwww
723デフォルトの名無しさん:2010/12/20(月) 12:02:02
diff.htmlは一般に言われる差分ではなく、追加されたものだけ出せばいいのかな。
にしてもこんな形式で保存されてるとはしらなんだ。
724デフォルトの名無しさん:2010/12/20(月) 12:06:27
bookmarkのtypoだろうと思い込んでた自分が恥ずかしいです。
まるで形式が違うから別の話だな。。。
725デフォルトの名無しさん:2010/12/20(月) 12:57:39
形式全然知らないけど>>721の通りで
行単位でのマージならそんなに難しくないんじゃないか
726デフォルトの名無しさん:2010/12/20(月) 13:05:17
[1] 授業単元:プログラミング
[2] 問題文

#include <stdio.h>
#include <stdlib.h>intmain( int argc, char *argv[] ){double v1, v2, v;char op;if( argc != 4 ) /* パラメータの数が正しくない */
{/* コマンドラインの書き方を表示する */
printf( "使い方 : 実数1 演算記号 実数2\n" );
printf( "\t演算記号は+, -, *, /,%のうちのいずれか\n" );
return( 1 );}
v1 = atof( argv[1] ); /* 実数1 */ v2 = atof( argv[3] ); /* 実数2 */op = *argv[2]; /* 演算記号 */
switch( op ) /* switch文を用いた場合分け*/{case '+' :v = v1 + v2;break;case '-' : v = v1- v2;break;
case '*' :v = v1 * v2;break;case '/': v = v1 / v2;break;case '%' :v =( v1 /v2 )* 100; break;default:printf( "%c: ?\n", op ); return( -1 ); break; }
printf( "%f %c %f = %f\n", v1, op, v2, v ); /* 結果の表示 */
return( 0 );
}
このプログラミングを改造
1.コマンドラインパラメータを用いずに、入出力で電卓を作る。
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限:12月20日
[5] その他の制限:特になし
727デフォルトの名無しさん:2010/12/20(月) 13:50:57
>>725
全然難しくないけど、>>721の通りに作ってもダメだろうね。
728デフォルトの名無しさん:2010/12/20(月) 14:06:05
>>726
入力方法が示されていないので一番簡単な例
ttp://codepad.org/fSkzz56t
729デフォルトの名無しさん:2010/12/20(月) 15:44:00
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1309111.txt.html
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:2010年12月21日9:00まで
[5] その他の制限:なるべく簡単なコードで書いていただけたらと思います

よろしくお願いします
730デフォルトの名無しさん:2010/12/20(月) 18:12:08
>>729
bcc だと動くけど codepad だと Segmentation fault が出るなぁ、何故だろう?

ttp://codepad.org/jsOsCeO6
731デフォルトの名無しさん:2010/12/20(月) 18:15:27
>>730
リテラルに書き込みしてるからじゃね
732デフォルトの名無しさん:2010/12/20(月) 18:46:10
>>731
それだね、thanks

>>729
ちゅことで書き直した、' ' のサーチを2回行ってるのが馬鹿っぽいけど....
ttp://codepad.org/CaS3hUnj
733729:2010/12/20(月) 18:57:57
>>732
ありがとうございました
734デフォルトの名無しさん:2010/12/20(月) 19:10:09
>>732
リテラル問題を解決すればstrtok使えるところだと思う。
strchrしてnullいれてるとこ。
735デフォルトの名無しさん:2010/12/20(月) 19:27:53
と、書いたものの、これでいいんじゃないかな。
p = strchr( s, ' ' );
strncpy( person.name, s, p-s-1 );
person.name[p-s] = 0x00;

p++;
sscanf(
736デフォルトの名無しさん:2010/12/20(月) 19:36:31
>>735
それでいいなら %s でいいだろ
737デフォルトの名無しさん:2010/12/20(月) 19:45:03
ああ、scanfでスペース以外って指定できたんだっけ。
たしかにそうすれば%sでいいかも。
738デフォルトの名無しさん:2010/12/20(月) 19:48:33
こうか。>>736に感謝。

{
static PERSON person;

sscanf( s, "%[^ ] %c %d %lf %lf", person.name, &person.gender, &person.age, &person.height, &person.weight );
calc_bmi( person.height, person.weight, &person.bmi, &person.judge );
return person;
}
739デフォルトの名無しさん:2010/12/20(月) 20:36:03
bccでも -dc オプションを付けると文字列リテラルが書きこみ禁止になるよ
俺はいつもそうしてる
740デフォルトの名無しさん:2010/12/20(月) 23:34:08
>>720
ありがとうございました
741めぐ:2010/12/21(火) 11:24:21
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):ポインタ配列を利用して、10個の単語を単語帳に。登録しておき、任意にいれた単語が、単語帳の中にあるかどうかチェックするプログラムを作成せよ。
[3] 環境
 [3.1]
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:2010年12月22日
[5] その他の制限:なし
742デフォルトの名無しさん:2010/12/21(火) 12:46:09
>>741
こうかな?
http://ideone.com/BKhEq
743デフォルトの名無しさん:2010/12/21(火) 12:51:03
void main() (笑)
744デフォルトの名無しさん:2010/12/21(火) 13:02:18
またその話題か
745デフォルトの名無しさん:2010/12/21(火) 13:10:05
たぶん前に突っ込まれて顔を真っ赤にしちゃった人が今度は得意げに突っ込んでるんだよ
746デフォルトの名無しさん:2010/12/21(火) 17:49:29
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
問題1  非負の整数値を読み込んで、その数を逆順に表示するプログラムを作成しなさい(while文または for文) [オプション機能(任意)] 負の数を読み込んだ場合は再入力を促すこと(do-while文)
 <実行例>
非負の整数値を入力してください;-4673
負の値を入力しないでください。
非負の整数値を入力してください;12345
逆から読むと54321です。
<ヒント>
一の位の数字を求める方法
1963 % 10 -> 3
196 % 10 -> 6
19 % 10 -> 9
1 % 10 -> 1
問題2  30個目までのフィボナッチ数を順に計算し、その結果を順に配列 fib に格納しなさい。 また計算終了後に、 a_1, a_2, a_16, a_25 に相当する結果を表示しなさい。
<実行例>
a_01 = 1
a_02 = 1
a_16 = 987
a_25 = 75025
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:c
[4] 期限:12月22日
[5] その他の制限: なし
747デフォルトの名無しさん:2010/12/21(火) 20:28:14
[1] 授業単元:ファイヤーフォックス
[2] 問題文:ブックマークA,Bを合体してCにしろ。そういう処理のやつを書きなさい。
[3] 環境
 [3.1] OS:リナックス
 [3.2] コンパイラ名とバージョン: ジイシイシイ
 [3.3] 言語:シイ言語
[4] 期限:12月22日
[5] その他の制限: うごけば何でもいい
748デフォルトの名無しさん:2010/12/21(火) 20:49:40
しろだと?なんでそんなに高飛車に命令口調なんだ?
749デフォルトの名無しさん:2010/12/21(火) 22:27:45
>>747
手でやりなよ。
750デフォルトの名無しさん:2010/12/21(火) 22:48:58
恣意言語
751デフォルトの名無しさん:2010/12/21(火) 22:50:42
火狐だけで半年授業ができることのほうが驚きだ
752デフォルトの名無しさん:2010/12/21(火) 23:36:36
[1] 授業単元:電気情報特論
[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1311403.txt.html
[3] 環境
 [3.1] OS:Windows
 [3.2] Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: 12月22日17:00まで
[5] その他の制限: プログラムの動きををコメントでつけてください。
よろしくお願いします。
753デフォルトの名無しさん:2010/12/21(火) 23:58:42
> このプログラムと同じような出力が得られるプログラムを作成せよ。
なんだこれ。
754デフォルトの名無しさん:2010/12/22(水) 02:35:16
755デフォルトの名無しさん:2010/12/22(水) 02:57:32
>>749
百個くらいあるときは、わかんなくなっちゃうんだよ・・・
756デフォルトの名無しさん:2010/12/22(水) 03:21:48
>>749 手で?自慰言語?
757デフォルトの名無しさん:2010/12/22(水) 03:25:24
>>755
たった100個ならそれこそ手動が楽でいいよ。
出来ないのはエディタになれてないとかそういうレベル。
758デフォルトの名無しさん:2010/12/22(水) 03:28:20
>>755
STL使ってもいいならやってもいいけどCのみじゃちょっとやる気が起きない
フォルダの階層構造が深くなっていったらどうするんだとか
色々考えていくと自前で全部作るのはメンドくさすぎる
てか、これ宿題じゃないだろ
759755:2010/12/22(水) 03:40:23
はい、すみません。ほんとうは宿題じゃなくて、ほしかっただけです。ごめんなさい。
もしかして、こういうプログラムって難しいほうなの?なにげに
760デフォルトの名無しさん:2010/12/22(水) 03:43:09
いや?HTMLのマージすればいいんでしょ。形式も決まってるし難しくはない。練習にはいいと思うよ。
ただ、手でやったらすぐすむよと。
毎日毎日その作業をやるならプログラム書くけど、マってのはそういう人種。
761755:2010/12/22(水) 04:01:37
わかった、簡単なら自分で書いて練習してみる
762デフォルトの名無しさん:2010/12/22(水) 05:10:10
Cだとそもそものところでめんどくさいから、phpとかの方がいいんじゃないか?
763デフォルトの名無しさん:2010/12/22(水) 05:20:27
>>747
ブックマークのサンプルとかないの?
っていうか現物をアップしてくれ
764デフォルトの名無しさん:2010/12/22(水) 07:19:40
>>752
マスターならプログラミングぐらいマスターしろよw
765デフォルトの名無しさん:2010/12/22(水) 08:26:24
html弄るなら、E4XサポートしてるスタンドアロンのSpiderMonkeyが最適かつ最強。
766デフォルトの名無しさん:2010/12/22(水) 16:25:29
[1] 授業単元:自然言語処理
[2] 問題文(含コード&リンク):
http://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/rep3.pdf
(課題2のみ)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限: 2011年1月6日
[5] その他の制限:
資料↓
http://nlp.dse.ibaraki.ac.jp/~shinnou/lecture/nl/nlp10.pdf
できれば実行結果が問題文にあるものと同じになるようにお願いします。
767デフォルトの名無しさん:2010/12/22(水) 17:24:35
これだからゆとりは
768デフォルトの名無しさん:2010/12/22(水) 18:08:50
茨城大学工学部情報工学科か・・・
769デフォルトの名無しさん:2010/12/22(水) 18:29:37
>>766
エントロピーゲインがどこで働くのかわからないな。
770デフォルトの名無しさん:2010/12/22(水) 18:32:02
米倉さん元気ですかね。
771デフォルトの名無しさん:2010/12/22(水) 20:01:55
>>769
エントロピーゲインが大きい属性に注目して、
その属性でデータを分類します。
772デフォルトの名無しさん:2010/12/22(水) 22:13:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
例題11-1において、A~Dの学生それぞれに対し
第1回~第3回の小テストの平均点を求めるプログラムを作れ
なおA~Dそれぞれの平均点は、配列の宣言と生成double a[4]をしてから
この配列のa[0]から順に代入するようにせよ
[3] 環境
 [3.1] OS: windows 7
 [3.2] gcc
 [3.3] 言語:C
[4] 期限: 12/23
[5] その他の制限:
上記の例題11-1は
4人の学生A,B,C,Dの3回のテストの点数が表のようになっている
表中の12個の点数の平均を求めよ
A 45 50 60
B 75 95 45
C 100 90 95
D 60 70 80

という問題です。
また例題11-1の回答は下記のURLのようになり
回答もこのレベルのものに合わせてもらえると幸いです
whileやbreak?は習っていません
http://codepad.org/Frb50Xcg 
773デフォルトの名無しさん:2010/12/22(水) 22:16:16
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
例題11-1において、第1回~第3回のそれぞれの小テストにおいて
4人の学生の平均点を出力するプログラムを作れ
なお第1回~第3回のそれぞれの平均点は配列の宣言と生成double b[3]とし
この配列に代入するプログラムとせよ
[3] 環境
 [3.1] OS: windows 7
 [3.2] gcc
 [3.3] 言語:C
[4] 期限: 12/23
[5] その他の制限:
細かい事は>>722の[5]と同じです
レベルを合わせていただけると助かります
よろしくお願いします
774デフォルトの名無しさん:2010/12/22(水) 22:21:21
× >>722
>>773

なお>>772の答えは
a[0]=51.666668
a[1]=71.666664
a[2]=95.0
a[3]=70.0

>>773の答えは
b[0]=70.0
b[1]=76.25
b[2]=70.0

になるようです
775デフォルトの名無しさん:2010/12/23(木) 00:31:33
776デフォルトの名無しさん:2010/12/23(木) 01:56:21
>>775
ありがとうございます
777 ◆QZaw55cn4c :2010/12/23(木) 10:19:48
778デフォルトの名無しさん:2010/12/23(木) 15:52:06
1] 授業単元:Cプロ実習
[2] 問題文(含コード&リンク):
2つの4×4行列を2次元配列に格納し、それらの積を求めるプログラムを作成せよ。
以下の関数を必ず利用すること。
関数の引数の型では1次元目が空白になっているが、
 main関数では4×4の通常の2次元配列を用いればよい。

[3] 環境
 [3.1] OS:Windows7
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2010年12月24日09:00まで
[5] その他の制限:void mult_array(int(*a0)[][4], int(*a1)[][4], int(*result)[][4])

a0,a1  入力された行列の値が格納された2次元配列のポインタ
result 演算結果の行列の値が格納された2次元配列のポインタ
戻り値 なし

●入力に関して
キーボードからまず、1つめの行列の1行目の4つの整数を
 スペース1つをあけて1行で入力し、改行する。
以下同様に1つめの行列の2行目、3行目、4行目、
 2つめの行列の1・・・4行目を入力する。
この一連の入力時、入力を促す文字などは決して表示しないこと。

●出力に関して
1行目に結果の行列の1行目をスペースを1つあけて特に整形せず数値のみ出力(+改行)。
以下同様に2行目、3行目、4行目を特に整形せず数値のみ出力する。
指定した数値・改行以外の文字などの出力は一切行わないこと。
779デフォルトの名無しさん:2010/12/23(木) 16:07:09
すみません出来たら回答はリンク先で示さずに、直接書いてください;;
780デフォルトの名無しさん:2010/12/23(木) 16:14:30
>>778
#include <stdio.h>

void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4]);

#define N 4
#define COL 128

int main(void)
{
int i;
int a[N][N], b[N][N], c[N][N] = {{0}};
char buf[COL];

/* a[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
}
/* b[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &b[i][0], &b[i][1], &b[i][2], &b[i][3]);
}
mult_array(&a, &b, &c);
/* c[][]の出力 */
printf("\n");
for (i = 0; i < N; i++)
printf("%d %d %d %d\n", c[i][0], c[i][1], c[i][2], c[i][3]);
return 0;
}
781デフォルトの名無しさん:2010/12/23(木) 16:15:13
>>778続き
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4])
{
int i, j, k, s;

for (i = 0; i < N; i++)
for (j = 0; j < N; j++) {
s = 0;
for (k = 0; k < N; k++)
s += (*a0)[i][k] * (*a1)[k][j];
(*result)[i][j] = s;
}
}
782デフォルトの名無しさん:2010/12/23(木) 16:45:06
>>766
※VCで作ってみた。gccで動くかどうかは?
http://ideone.com/5TUCi

※datafile.txtの中身
0 0 0 0 1
0 0 0 0 0
1 1 0 0 1
1 2 1 0 1
1 2 2 1 1
0 2 2 1 0
1 1 2 1 0
0 0 1 0 1
1 0 2 1 1
1 2 1 1 1
1 0 1 1 0
1 1 1 0 0
1 1 0 1 1
0 2 1 0 0
783デフォルトの名無しさん:2010/12/23(木) 17:19:55
>>782
Study C Version 2.20a for windows 7/Vista/XP

で動くようにしたらどうなりますか?

厚かましくてすみません;;
784デフォルトの名無しさん:2010/12/23(木) 17:56:28
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
2*3行列 X と3*4行列Yの積X・Yを計算、出力するプログラムを作成せよ
ただし、行列の要素は全て整数であると仮定する
(要素は標準入力で与える)

ヒント
行列の計算は3重ループ
行列の積が定義できないときはエラーを出力して終わる

[3] 環境
 [3.1] OS:Windows7
 [3.2] gcc
 [3.3] 言語: C
[4] 期限 : 12月25日
[5] その他の制限
まだ習い始めたばかりなので出来るだけ簡単な文書いてもらえると助かります
よく使う文はfor,ifくらいでwhileは習っていません
785デフォルトの名無しさん:2010/12/23(木) 17:58:32
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
2*2行列 X の逆行列を計算し、出力するプログラムを作れ
(公式を使って構わない)

ただし、行列 X の要素は全て浮動小数点型であるとする
要素の値は標準入力で与える

ヒント
逆行列が定義できないときはエラーを出力して終わる

[3] 環境
 [3.1] OS:Windows7
 [3.2] gcc
 [3.3] 言語: C
[4] 期限 : 12月25日
[5] その他の制限
まだ習い始めたばかりなので出来るだけ簡単な文書いてもらえると助かります
よく使う文はfor,ifくらいでwhileは習っていません
786デフォルトの名無しさん:2010/12/23(木) 17:59:56
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2画像A,Bを表示してその差分のみを表示するCを表示せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VC 6.0等
 [3.3] 言語:どちらでも可)
[4] 期限: 2010年12月27日(17時迄)
787 ◆QZaw55cn4c :2010/12/23(木) 18:02:31
>>786
画像 A, B の差分の画像 C を生成する、ということでいいですか?
あと画像のフォーマットは 24bit bmp / 8bit (256色) bmp でいいですか?
788786 ◆GvcJDPcjoA :2010/12/23(木) 18:12:28
はい、大丈夫です。よろしくお願いします
789デフォルトの名無しさん:2010/12/23(木) 18:27:34
>>783
Study Cって初めて聞いた。最近の大学はこんなの使ってるのか・・・。
適当にググってインスコしてみたが

(1)まず適当なフォルダを作成する。(C:\test とか適当に)
(2)その中に C言語のソース(名前はmain.cとか適当に)を保存する。
(3)datafile.txtを作成して、C言語のソースと同じ場所に保存する。
(4)StudyCを起動すると、コマンドプロンプトに似た画面が開く
(5)コマンドプロンプトでcd コマンドを使い、カレントディレクトリを (1)で作成したフォルダにする。
  ※cd c:\test みたいな感じで入力する。
(6)メニュー(ファイル/開く/新しいバッファ)を選び、(2)で保存したC言語のファイルを選ぶ。
(7)メニュー(実行/実行)を選ぶ。
(8)コマンド引数を指定しろ、とか言われるので datafile.txt と入力してOKボタン

カレントディレクトリを動かさないでやる方法もあるけど、とりあえずこんな感じ
790デフォルトの名無しさん:2010/12/23(木) 18:56:57
>>789
まじありがとう。

あなた様は神だ
791デフォルトの名無しさん:2010/12/23(木) 19:04:45
というかgcccと指定しておいてそれはないんじゃないか
792 ◆QZaw55cn4c :2010/12/23(木) 19:18:52
>>786
http://hibari.2ch.net/test/read.cgi/tech/1289715349/480
題意を取り間違えていたら訂正しますので試してみてください。
793デフォルトの名無しさん:2010/12/23(木) 19:19:17
宿題を丸投げする奴に常識なんてないだろ
794デフォルトの名無しさん:2010/12/23(木) 19:46:54
>>782
ありがとうございます。
実行できました。
795755:2010/12/23(木) 20:55:07
わかんなくなっちゃたよ(・_;/ぜんぜん簡単じゃないじゃん!ちょー混乱するし!
http://codepad.org/bSt9bHT0

[1] 授業単元:ネットサーフィン
[2] 問題文(含コード&リンク):ウインドーズでもどっちでもうごくようにしなさい。
[3] 環境
 [3.1] OS:リナックスとウインドーズ
 [3.2] コンパイラ名とバージョン: ジイシイシイとビジュアルシイ
 [3.3] 言語:シイ言語
[4] 期限 : 12月24日
[5] その他の制限:うごけば何でもいい
796デフォルトの名無しさん:2010/12/23(木) 21:11:58
対象のファイルもどこかにあげてくれないとコード読む気にすらならない
797デフォルトの名無しさん:2010/12/23(木) 21:43:06
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
ttp://up3.viploader.net/pc/src/vlpc005607.jpg
ttp://up3.viploader.net/pc/src/vlpc005608.jpg
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法通りにやっていただけると幸いです
798デフォルトの名無しさん:2010/12/23(木) 21:49:31
[1] 授業単元:数値数理解析
[2] 問題文(含コード&リンク):
リンク先の画像に問題文を載せています。
ttp://www.dotup.org/uploda/www.dotup.org1315077.jpg
[3] 環境
 [3.1] OS: Windows
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 12月中
完全に数学の問題ですが、自分には理解が及ばず書けませんでした。
よろしくお願いします。
799デフォルトの名無しさん:2010/12/23(木) 21:50:46
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
ttp://up3.viploader.net/pc/src/vlpc005607.jpg
ttp://up3.viploader.net/pc/src/vlpc005608.jpg
ttp://up3.viploader.net/pc/src/vlpc005609.jpg
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法、ヒントを踏まえてやっていただけると幸いです
また罫線は半角でも構わないそうです
800デフォルトの名無しさん:2010/12/23(木) 21:50:55
>>797
この問題文ってJavaじゃね?
801786 ◆VOf09yik56 :2010/12/23(木) 21:54:41
>>792
申し訳ありません、VC6.0ではexe形式で出て来ますがすぐ消えてしまいます。
どのようにしたらよいのでしょうか?
802786 ◆VOf09yik56 :2010/12/23(木) 22:03:57
>>786
誠に申し訳ありません。
問題にWin32アプリケーションとしてと書くのを忘れました。
803デフォルトの名無しさん:2010/12/23(木) 22:11:06
すみません>>797、799はupミスです
貼り直します

[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1315138.jpg
http://www.dotup.org/uploda/www.dotup.org1315140.jpg
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法通りにやっていただけると幸いです
                                   
804デフォルトの名無しさん:2010/12/23(木) 22:12:42
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1315144.jpg
http://www.dotup.org/uploda/www.dotup.org1315145.jpg
http://www.dotup.org/uploda/www.dotup.org1315146.jpg
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限 : 12月24日
[5] その他の制限:手法、ヒントを踏まえてやっていただけると幸いです
また罫線は半角でも構わないそうです

>>800
C言語のはずです・・・
805デフォルトの名無しさん:2010/12/23(木) 22:36:25
>>804
input.readLineとかBufferedReaderって書いてあるからJavaだよね
806デフォルトの名無しさん:2010/12/23(木) 22:37:40
>>804
>シングルクォート''で囲んでいる中身は
>全角のスペース' 'がGood!

C言語でこれ出来る?
807デフォルトの名無しさん:2010/12/23(木) 22:49:17
>>805-806
すみません、まだプログラミングに疎いものでよく分かっていませんでした
ヒントの部分を無視したら出来そうですかね?
808デフォルトの名無しさん:2010/12/23(木) 23:13:00
ファイル名の拡張子が.cになっているけど……?
まさか出題する側も……という怖い考えが頭をよぎった。
809デフォルトの名無しさん:2010/12/23(木) 23:22:01
>>807

人同士の対戦で良いんだよね?
対戦の相手と交互に、例えば aA って入力してマスを指定する?
そのマスに置けるかどうかと、終了の判定の判定だけすれば良いね?
810デフォルトの名無しさん:2010/12/24(金) 00:14:10
>>809
ちゃんと理解していないのですがそれでお願いします
無知で申し訳ないです
811デフォルトの名無しさん:2010/12/24(金) 00:37:10
>>804
ttp://codepad.org/KcktWJi8

入力は Aa でも aA でも良い、縦がABCで横がabcね
変なとこが有ったら言ってちょ
812デフォルトの名無しさん:2010/12/24(金) 02:25:43
>>811
ありがとうございます
多分それで大丈夫だと思います

後はどなたか>>803もお願いします・・・
こちらはwhile文を使わずに書いて頂けると助かります
813デフォルトの名無しさん:2010/12/24(金) 02:37:49
>>812
forでやれってことでいいのか?
814デフォルトの名無しさん:2010/12/24(金) 02:42:45
>>813
はい
お手数かけますがよろしければお願いします
815デフォルトの名無しさん:2010/12/24(金) 02:57:57
#include <stdio.h>
#include <math.h>
int main()
{
const double r = 2;
const double r2 = r * r;
double x = 0, y = r;
double s = 0;
double n = 100;
double dx;
printf("分割数 : ");
scanf("%d", &n);
dx = r / n;
for (x = 0; x < r; x += dx) {
y = sqrt(r2 - pow(x, 2.0));
s += dx * y;
}
printf("面積 = %f\n", s);
return 0;
}
816デフォルトの名無しさん:2010/12/24(金) 03:00:58
ごめん図しか見てなかったから区分求積法でやっちまった
台形だったのかよ
817デフォルトの名無しさん:2010/12/24(金) 03:14:13
#include <stdio.h>
#include <math.h>

int main()
{
const double r = 2;
const double r2 = r * r;
double x = 0, y0 = r, y1 = r;
double s = 0;
double n = 100;
double dx;
printf("分割数 : ");
scanf("%d", &n);
dx = r / n;
for (x = dx; x <= r; x += dx) {
y1 = sqrt(r2 - pow(x, 2.0));
s += (y0 + y1) * dx / 2.0;
y0 = y1;
}

printf("面積 = %f\n", s);
return 0;
}

直しました
あと、>>815のあほなとこも直しておきました
818デフォルトの名無しさん:2010/12/24(金) 03:21:17
>>817
ありがとうございます
理解出来ました!
819デフォルトの名無しさん:2010/12/24(金) 08:53:38
>>817
ひでーなw
820デフォルトの名無しさん:2010/12/24(金) 08:55:49
>>819
どの辺が?
821デフォルトの名無しさん:2010/12/24(金) 09:03:27
>scanf("%d", &n);

>for (x = dx; x <= r; x += dx) {

とくにこの辺が
822デフォルトの名無しさん:2010/12/24(金) 09:08:28
>>821
すいません
もう少し具体的にお願いします
823デフォルトの名無しさん:2010/12/24(金) 09:13:49
double型変数nを読むのにscanf("%d", &n);としている

分割数によってはx==rにならないためにループ回数が不足する
824デフォルトの名無しさん:2010/12/24(金) 09:17:28
>>823
直しておいてもらえませんか?
825デフォルトの名無しさん:2010/12/24(金) 09:18:58
てめーで直せw
826デフォルトの名無しさん:2010/12/24(金) 09:28:41
まぁ別にこのままでいいや
827デフォルトの名無しさん:2010/12/24(金) 09:33:11
828デフォルトの名無しさん:2010/12/24(金) 09:35:29
画像のyを求める式間違ってんな
今年度に改定するときに忘れたんだろうか
829デフォルトの名無しさん:2010/12/24(金) 09:38:48
>>803
#include <stdio.h>
#include <math.h>

double f(double x) { return sqrt(4 - x * x); }

int main(void)
{
int i, n;
double r = 2.0, h, s;

for(n = 100; n <= 100000; n *= 10) {
h = r / n;
for(s = 0.0, i = 0; i < n; i++) s += (f(i * h) + f((i + 1) * h)) * h / 2;
printf("n = %-6d %f\n", n, s);
}

return 0;
}
830デフォルトの名無しさん:2010/12/24(金) 09:57:09
>>829
これはこれで画像ちゃんと見てないしww
831デフォルトの名無しさん:2010/12/24(金) 10:03:40
>>830
すいません
もう少し具体的にお願いします
832デフォルトの名無しさん:2010/12/24(金) 10:10:19
>>831
標準入力からと書かれているのに埋め込まれている
833デフォルトの名無しさん:2010/12/24(金) 10:19:44
1枚目には100, 1000, 10000, 100000のときと書いてあるのに
2枚目で標準入力からってなってるのは矛盾してるな
834デフォルトの名無しさん:2010/12/24(金) 10:21:59
>>832
直しておいてもらえませんか?
835デフォルトの名無しさん:2010/12/24(金) 10:31:44
それにしても、画像ファイル見ながら問題解くのは
苦痛だな。
836デフォルトの名無しさん:2010/12/24(金) 11:37:07
お取り込み中のところ申し訳ないのですがどなたか>>784-785を・・・
837デフォルトの名無しさん:2010/12/24(金) 13:54:53
>>784
http://codepad.org/hVW2K4cs

行と列の数はマクロとして与えたので行列の積が定義出来ない事はあり得ないけど
もし標準入力から与える場合は判定が生きてくる
838デフォルトの名無しさん:2010/12/24(金) 14:12:46
>>785
http://codepad.org/sGO48OiI

2×2の行列なので逆行列を求めるのに掃き出し法を使わずに公式を使った
839デフォルトの名無しさん:2010/12/24(金) 14:14:13
あ、

printf("%f\n", d);

はデバッグの時に取り除き忘れたので取っておいてください
840デフォルトの名無しさん:2010/12/24(金) 14:19:09
>>837
もう一つバグ発見

printf("%d × %d 型の行列の積として定義されます。\n", L, N);



printf("%d × %d 型の行列の積として定義されます。\n", N, L);

の間違いです
841デフォルトの名無しさん:2010/12/24(金) 16:26:09
どなたか798お願いします。orz
842デフォルトの名無しさん:2010/12/24(金) 17:52:00
843デフォルトの名無しさん:2010/12/24(金) 18:22:44
>>842
もう少し分かりやすくきれいなソースでお願いします
844デフォルトの名無しさん:2010/12/24(金) 18:42:52
これ以上分かりやすくってどうやるんだよw
845デフォルトの名無しさん:2010/12/24(金) 18:43:19
十分分かりやすいだろ・・・
846デフォルトの名無しさん:2010/12/24(金) 20:15:48
>>842
ありがとうございます!
847デフォルトの名無しさん:2010/12/24(金) 20:36:43
[1] 授業単元:C++
[2] 問題文(含コード&リンク):1辺の長さが2の正方形の中に半径1の円形の標的がある。この板に向かってランダムに弾を撃って、標的に
が入ったか否かを調べることで円周率を求める(モンテカルロ法)プログラムを作りなさい。
撃った弾の数をx、命中した数をyとする。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2010年12月27日 12:00
[5] その他の制限:以下の関数で宣言すること

1.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou
2.(-1,-1)~(1,1)の範囲の弾の命中した座標を設定する関数 settei
このとき、zahyou型の変数を引数を持ち、そのメンバに乱数を用いて
標的の命中した座標を一様乱数で設定すること。
3.弾の命中した位置が、円形の標的内か外かであるかを判定する関数 hantei
これもzahyou型の変数を引数に持っていること。また、当り(1)か否(0)かをint型で返すこと。
4.標的に命中した回数:m、外れた回数:kとして、その確率を返す関数 kaku
引数はint型、戻り値は確率としてdouble型で返すこと。
5.弾の数は変更できるようにすること。
848デフォルトの名無しさん:2010/12/24(金) 21:21:34
>>847
>1.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou

これって関数じゃなくて構造体じゃないの?
2.に「zahyou型の変数を」ってあるんだけど
849デフォルトの名無しさん:2010/12/24(金) 21:41:42
>>848
すいません間違えました
「構造体 zahyou」です
850デフォルトの名無しさん:2010/12/24(金) 23:05:31
851デフォルトの名無しさん:2010/12/24(金) 23:09:31
((int)RAND_MAX)/(double)RAND_MAX って1になるのかな。
852デフォルトの名無しさん:2010/12/24(金) 23:12:11
うん
853デフォルトの名無しさん:2010/12/24(金) 23:38:55
>>847です

1.(-1,-1)~(1,1)の範囲の弾を撃った位置(座標)を示す関数 zahyou
 『例として、標的に命中したとき、その命中した位置のx-y座標は、double型であり、
 (-1,-1)~(1,1)の範囲にある』

5.弾の数は変更できるようにすること。
『弾の数は構造体 zahyou 型の変数の数で設定できるようにすること。
 例:struct zahyou bullet[100]; と宣言すれば、100本の弾がプログラム上に準備できる』

『』の文章を追加でお願いします
見落としていました すいません
854デフォルトの名無しさん:2010/12/24(金) 23:41:31
後出しうぜー
855デフォルトの名無しさん:2010/12/24(金) 23:43:04
開区間なんだね
856デフォルトの名無しさん:2010/12/24(金) 23:51:30
>>853
x = sizeof(bullet)/sizeof(zahyou) ;
857デフォルトの名無しさん:2010/12/25(土) 03:33:13
これだからゆとりは
858デフォルトの名無しさん:2010/12/25(土) 14:02:36
ゆとりでごめんなさい
>>856の部分をどこに入れればいいのでしょうか?
859デフォルトの名無しさん:2010/12/25(土) 14:10:09
>>858
お前の尻の穴だよ
860デフォルトの名無しさん:2010/12/25(土) 20:15:16
>>859
気に障る事を言ったのなら謝ります
教えてください
x = sizeof(bullet)/sizeof(zahyou) ;
をどこに組み込めばいいんですか?
861デフォルトの名無しさん:2010/12/25(土) 20:18:54
情報後出しした時点でもうまともなレスはつかんと思うぞ
x=なんてしてるとこなんて一箇所しかないんだからちょっとは自分で考えようぜ
862デフォルトの名無しさん:2010/12/25(土) 21:20:20
>>860
お前の尻の穴だよ
863デフォルトの名無しさん:2010/12/26(日) 00:45:36
>>860

> 例:struct zahyou bullet[100]; と宣言すれば、100本の弾がプログラム上に準備できる』

こうあるんだから、その変数をまず宣言する。
その宣言から、100本の弾数をどうやって取得するかが、書いてあるヒント。

ソースの中の
//標準入力から弾の数を入力する場合
とコメントされてる前後のところをよく読んで,考えてみるといい
864デフォルトの名無しさん:2010/12/26(日) 03:00:09
Cで、2進数から16進数の変換をビット演算使ってやる方法教えてください。
865デフォルトの名無しさん:2010/12/26(日) 04:06:59
866デフォルトの名無しさん:2010/12/26(日) 04:19:16
ありがとうございました
867デフォルトの名無しさん:2010/12/26(日) 05:25:47
>>864
指を折る
指の間接は3つあるから3ビットまで表現可能
2本あれば4ビット(2ビット分は使わない)で16進数になる
4本使えば0xFFまで表現可能
両手を使えば0xFFFFまで出来る
868デフォルトの名無しさん:2010/12/26(日) 06:45:46
指を曲げた形がCってこと?
869デフォルトの名無しさん:2010/12/26(日) 06:52:10
そんな感じ
実際にインドでは数字を数えるときに間接を使っている
870デフォルトの名無しさん:2010/12/26(日) 10:28:55
>>869
それちょっと詳しく知りたいな。
ちなみに、フランスでは指を使っての掛け算をするらしい。
昔家にあった百科事典に載ってたけどやりかた忘れた。
871デフォルトの名無しさん:2010/12/26(日) 12:49:59
>>870
フランス語で数の数え方が20進法に近いのは、手の指と足の指を両方使ってた
名残らしいな

両方で丁度20本
872デフォルトの名無しさん:2010/12/26(日) 16:46:54
>>867
一番先の間接だけ曲げるのと一番先と一番根元の間接を曲げるのが出来ません
どうすれば良いですか?
873 ◆QZaw55cn4c :2010/12/26(日) 17:12:04
>>869
インドよりも我が愛すべき大日本帝国の数学のほうがはるかに進んでいるのですが、それでもインドを引き合いに出すはどういったわけですか。
874デフォルトの名無しさん:2010/12/26(日) 18:23:26
>>873
ほらまた出たよ自己愛性人格障害が

インド人は白人、つまりアーリア人だ
マイクロソフトの製品のいくつかもインドを拠点に作っている
一番多いのはユダヤ人だらけのイスラエルだが
日本国内に開発する場所はないでしょ?
875デフォルトの名無しさん:2010/12/26(日) 18:43:31
「巣に帰れ」と言おうとしたらスレストされててワロタ
876デフォルトの名無しさん:2010/12/26(日) 18:59:52
>>874
同等の能力程度じゃコストからして割に合わないからね
877デフォルトの名無しさん:2010/12/26(日) 20:50:20
実際問題日本人は数学に弱い気がする。江戸時代になっても鶴亀算だとかあんまり
発展性のない数学やってたし

そういや九九を99までやってるのはインドだっけ?
878デフォルトの名無しさん:2010/12/26(日) 21:07:18
>>877
19x19までじゃなかったっけ?
さうがに1万通りを覚えるのは無理でしょ
879デフォルトの名無しさん:2010/12/26(日) 22:32:48
インドの小学校にはプログラムの授業があり
3年生の時分には三角関数を使って円を描く。
880 ◆QZaw55cn4c :2010/12/27(月) 00:42:53
>>878
インド(諸語あるようだが)での記数法が20進法ならば 19x19 の九九は大いに意味があるが、実際は 10 進法であり 19x19 はオーバースペック。
覚えこむ必要のないものまでやって、他にやらなければならないことがおろそかになってやしないか?
10進法の世界では日本の九九が必要にして十分。

>>877
日本の数学界の活躍は私の語るところではないにしても、日本人は潜在的に九九と算盤の素養があり、計算能力は平均以上ではないか。
江戸時代の数学:和算についてはかなりのところまで西洋数学に追いついていたよう。
881デフォルトの名無しさん:2010/12/27(月) 00:50:31
ホルホルするのはそのぐらいにしておいて
さあ早く私の宿題を片付けるんだ。

というスレ一同の意見を代弁してあげようと思った。
882デフォルトの名無しさん:2010/12/27(月) 01:07:01
クズコードしか書けないゴミがインドの数学教育を語るとかw
883デフォルトの名無しさん:2010/12/27(月) 01:08:04
誰かに構って欲しいだけなんだから触るなよ
884デフォルトの名無しさん:2010/12/27(月) 03:05:49
分からないプログラミング課題があります。
問)N個の文字列を入力すると文字列の長さが短い順、同じ長さの時は順不同、に
  並べ替えて表すプログラムを作りなさい。

二次元配列とポインタ配列を使うらしいんですけど、コンパイル時にエラーばかり出てしまいます。
どなたか分かる方いらっしゃいますか?
885デフォルトの名無しさん:2010/12/27(月) 03:20:58
>>884
まず、>>1を読め
886デフォルトの名無しさん:2010/12/27(月) 03:47:27
>>884
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
#include <functional>

using namespace std;

typedef vector< string > Container;

class compare_length : public binary_function< Container::value_type, Container::value_type, bool > {
public:
result_type operator () ( first_argument_type const &lhs, second_argument_type const &rhs ) const {
return lhs.size() < rhs.size();
}
};

int main() {
ifstream infile( "test.txt" );
Container vs;
string s;
while ( infile >> s ) {
vs.push_back( s );
}
stable_sort( vs.begin(), vs.end(), compare_length() );
copy( vs.begin(), vs.end(), ostream_iterator< Container::value_type >( cout, "\n" ) );
}
887デフォルトの名無しさん:2010/12/27(月) 08:02:12
バカにはわからないが、必要かつ十分なのは九九の上三角(あるいは下三角)。
888デフォルトの名無しさん:2010/12/27(月) 09:29:09
>>881
ケツ出したら掘る彫るしてやんよ?
889デフォルトの名無しさん:2010/12/27(月) 09:30:43
>>873
ネトウヨってキモイんですねw まだ大日本帝国(笑)
ここは日本国ですよ?
890デフォルトの名無しさん:2010/12/27(月) 20:44:17
[1] 授業単元:プログラミングとアルゴリズム
[2] 問題文(含コード&リンク):最初のセルをスタックに定義した場合の連結リストへの新規、追加、削除プログラムを作りなさい。
[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限:明日の正午
[5] その他の制限: 特になし

ワケわからんとです…お願いします。
891デフォルトの名無しさん:2010/12/27(月) 22:02:45
俺にもワケわからんとです

セルって何?講義で出てこなかった?
892デフォルトの名無しさん:2010/12/27(月) 22:13:30
連結リストの各要素をセルと呼んでいるんだろうね。ノードっていったりもするけど。
で、headなりrootなりをヒープではなくスタックに用意すると。

でも、C++でなら…ねぇ
893デフォルトの名無しさん:2010/12/27(月) 22:53:39
明らかに授業の内容を踏まえた上での宿題だな
スタックを使わないバージョンを授業でやったんじゃないの?
894デフォルトの名無しさん:2010/12/27(月) 23:21:47
>>890
単なるポインターリンクをグローバル変数を使用せずに実装しろって意味なのかな?
グローバル変数を使用した場合と異なるのは root のアドレスを引数に追加するだけだと思うけど、
題意に沿うならグローバル変数を使用した例を修正したコードを提出すべきだろうな

新規:ポインターリンクの最後に追加
追加:既存要素の次に挿入
削除:既存要素の削除

だと思うけど、追加と削除で既存要素はどの様に指定するの?インデックス?ポインター?要素の数値?
895デフォルトの名無しさん:2010/12/27(月) 23:51:44
C++なのに自分で連結リスト作るのか…
まあ宿題だから仕方ないんだろうけどさw
896デフォルトの名無しさん:2010/12/28(火) 00:02:00
このスレでc++といえばほぼC言語のことだと何度言えば
897ハル:2010/12/28(火) 00:06:41
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.「逆ポーランド記法で書かれた式を入力させ、計算結果を出力するプログラムを作れ」
2.「qが入力されるまで動作を繰り返すこと」
3.「指定のスタックのプログラムを利用し、stack.hを各自で用意。構造体の定義も移動せよ」
4.「使用できるのは四則演算と=のみ」
5.「=はスタックの一番上の要素を表示するためのもの」
以上を満たせばどんなものでもok
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン: vc++ 2005
 [3.3] 言語: C++
[4] 期限:来年の7日
[5] その他の制限: 特になし
以下指定のスタックのプログラムになります。
30時間頑張ったんですが、ことごとくビルドに失敗し、心が折れました。
自慢じゃありませんが、あまり頼れる人脈もなくて……どうかおねがいします
898ハル:2010/12/28(火) 00:10:07
>>897 続きです
/stack.c/
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include"stack.h"
int main()
{}

void make_empty(Stack *s){
s->top = 0;}

int is_empty(const Stack *s){
return s->top == 0;}

int is_full(const Stack *s){
return s->top == STACK_SIZE;}

void push(Stack *s, int i){
if(is_full(s)) {puts("Overflow!");exit(EXIT_FAILURE);}
else s->contents[s->top++] = i; }

int pop(Stack *s){
if(is_empty(s)) {puts("Underflow!");exit(EXIT_FAILURE);}
else return s->contents[--(s->top)];}
899ハル:2010/12/28(火) 00:11:02
>>897  >>898 さらに続きです

/stack.h/
#ifndef STACK_H
#define STACK_H
#define STACK_SIZE 100
typedef struct{
int contents[STACK_SIZE];
int top = 0;
}Stack;
void make_empty(Stack *s);
int is_empty(const Stack *s);
int is_full(const Stack *s);
void push(Stack *s, int i);
int pop(Stack *s);
#endif

900デフォルトの名無しさん:2010/12/28(火) 02:03:01
ぜんぜんC++じゃねーじゃんかよw
901デフォルトの名無しさん:2010/12/28(火) 02:08:35
902デフォルトの名無しさん:2010/12/28(火) 02:19:42
yacc/lexの課題はここでやっておk?
903デフォルトの名無しさん:2010/12/28(火) 13:14:47
>>902
しないよりいいかも
904加奈子:2010/12/29(水) 01:19:38
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
トランプゲーム・ページワンを作成せよ。
動作はコマンドプロントの上でのみ。
カードの表示は1ならa、11ならjとする。
参考:http://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%AF%E3%83%B3
[3] 環境
 [3.1] OS:windows
 [3.2] VC++
 [3.3] 言語: C
[4]期限:無し
[5] その他の制限:無し
905加奈子:2010/12/29(水) 01:22:33
>>904
コンピューターの思考など、まったくわかりません。
どなたか助けてください。
906デフォルトの名無しさん:2010/12/29(水) 04:27:54
コンピューターが思考する時代になったんだ
夢も見るのかな?
907デフォルトの名無しさん:2010/12/29(水) 04:40:55
>>904
ちょっと規模の大きなプログラムになりそうだけど本当に制限無し?
あとでひっくり返されるとイラっとくるくらいは物量ありそうだけど
908デフォルトの名無しさん:2010/12/29(水) 04:42:09
僕のおばあちゃんは明治生まれのコンピューター
909デフォルトの名無しさん:2010/12/29(水) 05:01:49
コンピュータの思考ルーチンを実装するのは条件に書かれていないから作らないでいいのでは。
910デフォルトの名無しさん:2010/12/29(水) 05:03:19
>>897
最低限のコードなので好きに弄ぶがよろし

ttp://codepad.org/QE2fluSC
911デフォルトの名無しさん:2010/12/29(水) 05:11:59
>>909
手を見せ合ってたらゲームにならないから対人ゲームではないと思う、まさかの通信対戦?

コンピュータの手番に何かする処理は必要でしょ
手札リストを最初からチェックして出せるカードが見つかったら出すって処理でも良いと思う
そもそもページワンなんてガキの頃以来やってないからコツや戦略なんて解んないよね
912デフォルトの名無しさん:2010/12/29(水) 05:41:51
ページワンサーバとページワンブラウザ。
それにBOTを一つ。これでいいのかな。
コマンドプロンプトの上でのみ、というのが謎だけど。
913デフォルトの名無しさん:2010/12/29(水) 06:00:44
>>912
ゴタクはいいから、さっさと作れよデブ
914デフォルトの名無しさん:2010/12/29(水) 06:11:01
>>904
一応書いたけど表示に難が有るなぁ、トランプのマークって文字に無いのかなぁ

以下の点に注意
・コンピュータとプレイヤーの一対一対戦
・s,c,h,d がスペード〜ダイヤを表す、桁数を揃えたかったので10は+とした
・相手のカード(裏向き)、場に捨てられたカード、プレイヤーのカードの順で表示、各人のターン毎に再表示
・プレイヤーが先行で左端のカードを1とした番号を入力、山から引く場合は0以下を入力
・カードを先に捨てきれば勝ち、また最終山札を引いた方が負け
・ドロウ2やワイルドカード等のUNOチックなルールは一切無し(こんなルール俺が子供の頃は無かったなぁ)

ttp://codepad.org/zbRW6qyx
915デフォルトの名無しさん:2010/12/29(水) 08:49:07
>>914
ユニコードにはマークあるっぽいけどコマンドプロンプトじゃ出せないよなぁ
916デフォルトの名無しさん:2010/12/29(水) 10:15:43
出せるよ。APIを使う必要があるだけで。
917加奈子:2010/12/30(木) 00:14:34
ありがとうございます。
なんとかなりそうです。
これから頑張って説明付けて、理解できるようにします
918デフォルトの名無しさん:2010/12/30(木) 19:35:34
[1] 授業単元:プログラミング
[2] 問題文:
  5*5の' 'と'#'の2文字から構成される二次元配列のtxtファイルを読み込み、
  '#'を1,' 'を0と表示させるプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows
 [3.2] VC++
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:特になし
よろしくお願いします><
919デフォルトの名無しさん:2010/12/30(木) 21:56:02
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://ideone.com/v82fx
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン: vc++ 2010
 [3.3] 言語: C
[4] 期限:来年の1日
[5] その他の制限: 特になし
・・・どうかお願いします
920デフォルトの名無しさん:2010/12/30(木) 22:02:04
>>919
ライフゲームかよ
921デフォルトの名無しさん:2010/12/30(木) 22:30:53
>>919
初期状態の指定は?
922デフォルトの名無しさん:2010/12/31(金) 01:38:38
[1] 授業単元:プログラミング
[2] 問題文:
  3-gramでマルコフ連鎖を使って文章を生成、会話を行えるようにする。
[3] 環境
 [3.1] OS:Windows
 [3.2] VC++
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:特になし

2-gramまでは分かるのですが3-gram以降になるとどう組んで良いのか分かりませんでした。よろしくお願いします。
923デフォルトの名無しさん:2010/12/31(金) 01:42:23
924デフォルトの名無しさん:2010/12/31(金) 03:17:10
[1] 授業単元:C言語 関数
[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1330457.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限:2011年1月2日
よろしくお願いします。
925デフォルトの名無しさん:2010/12/31(金) 05:01:04
>>924
適当に書いたので検証はしてくれ。

int check(const char* str) {
const char num[] = "0123456789";
int i, l, e;
if(str == 0 || *str == '\0') return 0;
if(*str == '+') {
if(*++str == '\0') return 0;
} else if(*str == '-') {
if(*++str == '\0') return 0;
}
l = 0;
while(*str != '\0') {
e = 1;
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
e = 0;
l++;
break;
}
}
if(e) return 0;
if(8 < l) return 0;
str++;
}
return 1;
}
926デフォルトの名無しさん:2010/12/31(金) 05:02:39
>>925 続き
int sign(const char* str) {
const char num[] = "0123456789";
int res, e, i;
if( str == 0 || *str == '\0') return 0;
res = 1;
if(*str == '+') {
if(*++str == '\0') return 0;
} else if(*str == '-') {
res = -1;
if(*++str == '\0') return 0;
}
while(*str != '\0') {
e = 1;
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
e = 0;
break;
}
}
if(e) return 0;
str++;
}
return res;
}
927デフォルトの名無しさん:2010/12/31(金) 05:04:31
>> 926 続き
/* エラーが起きたときの仕様が決まっていないので
戻り値でエラーを返し、引数で整数値を取得するようにする。 */
int myatoi(const char* str, int* res) {
const char num[] = "0123456789";
int s,v,i;
if(res == 0) return 0;
if(!check(str)) {
*res = 0;
return 0;
}
v = 0;
s = sign(str);
if(*str == '+') {
str++;
} else if(*str == '-') {
str++;
}
while(*str != '\0') {
for(i = 0; i < 10; i++) {
if(*str == num[i]) {
v *= 10;
v += i;
break;
}
}
str++;
}
*res = s * v;
return 1;
}
928デフォルトの名無しさん:2010/12/31(金) 12:35:35
>>918
''って何?
929デフォルトの名無しさん:2010/12/31(金) 14:59:17
>>927 ありがとうございます!参考にさせていただきますね
930デフォルトの名無しさん:2010/12/31(金) 22:17:56
>>918
http://ideone.com/IPqqz
こんな感じ?
931 ◆QZaw55cn4c :2011/01/01(土) 02:54:31
>>890
遅くなってごめんなさい。
http://codepad.org/vsVpHSug
932デフォルトの名無しさん:2011/01/02(日) 02:06:59
【質問テンプレ】
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/9.txt
要約すると、プログラムを見て問題文に従って出力結果をだすようにするというものです。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2011年1月6日23:59まで
[5] その他の制限: なし

よろしくお願いします

933デフォルトの名無しさん:2011/01/02(日) 02:36:30
C言語で

*
**
***
****
*****
******
*******
********
*********
**********

こんな感じで表示したいんだけど、どうすればいいの?
934デフォルトの名無しさん:2011/01/02(日) 03:00:43
printf("*\n**\n***\n****\n*****\n******\n*******\n********\n*********\n**********\n");
935デフォルトの名無しさん:2011/01/02(日) 03:12:41
936 ◆/91kCCQXBo :2011/01/02(日) 11:44:34
#include <stdio.h>
void print(char, int);
int main(void){
  int i, N=10;
  printf("10 ? ");
  scanf("%d", &N);
  for (i = 0; i < N; i++){
    print(' ', N-i-1); /* 9,8,7,...,1,0 */
    print('*', i+1); /* 1,2,3,...,9,10 */
    puts("");
  }
}
void print(char c, int n){
  int i;
  for(i = 0; i < n; i++)
    putchar(c);
}
937デフォルトの名無しさん:2011/01/02(日) 14:02:15
【質問テンプレ】
[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
  指定されたエクセルファイルの中にあるデータを読み込み
  それぞれのデータの各列に列の番号の値を加えて
  別のエクセルファイルとして出力せよ.
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
  問題の意味は1列目に+1、2列目に+2をしろということです
5 20 15  → 6 22 18
8 50 14  → 9 52 17
9 30 16  → 10 32 19
2 40 17  → 3 42 20
 
よろしくお願いします
指定されてたエクセルファイルの中身は
まさに上の左側の4*3の数値でした

938デフォルトの名無しさん:2011/01/02(日) 14:15:53
>>937
>エクセルファイル
csvではなくて?
939デフォルトの名無しさん:2011/01/02(日) 14:19:49
問題文はそうなっていますが指定されていたファイルは
sitei.csvでした
ややこしい書き方をして申し訳ありませんでした
940デフォルトの名無しさん:2011/01/02(日) 15:37:18
先生が分かってない
あとCSVなのに区切り文字はカンマじゃなくてスペース?
"CSV" == "Comma Separated Values" なんだけど
941937:2011/01/02(日) 15:45:58
その他の部分で書いたのは
エクセルを用いてCSVファイルを開いたときに
それぞれの行列の枠内に
このような値が出ますよということです
私がセルの区切りの線を引かずにスペースで表しただけです
申し訳ありません
942デフォルトの名無しさん:2011/01/02(日) 15:47:37
>>940
Character-Separated Values もあるから
943デフォルトの名無しさん:2011/01/02(日) 15:48:11
>>940
それは察してあげようよ
944デフォルトの名無しさん:2011/01/02(日) 17:11:13
>>937
#include <stdio.h>
#include <string.h>
int main(){
const char* ifname = "sitei.csv";
const char* ofname = "out.csv";
FILE* ifp;
FILE* ofp;
char buf[1024];
char* p;
int line, num, d;
ifp = fopen(ifname, "r");
ofp = fopen(ofname, "w");
if(ifp != NULL && ofp != NULL){
line = 1;
while(fgets(buf, 1024, ifp)){
num = 0;
for(p = buf; ;){
if(sscanf(p, "%d", &d) <= 0)break;
if(num++ > 0)fprintf(ofp, ", ");
fprintf(ofp, "%d", d + line);
p = strstr(p, ",");
if(p == NULL)break;
p++;
}
fprintf(ofp, "\n");
line++;
}
fclose(ofp);
fclose(ifp);
}
}
945デフォルトの名無しさん:2011/01/02(日) 17:21:04
>>937 ちょっと変えた+インデント
#include <stdio.h>
#include <string.h>
int main(){
 const char* ifname = "sitei.csv";
 const char* ofname = "out.csv";
 FILE* ifp;
 FILE* ofp;
 char buf[1024];
 char* p;
 int line, num, d;
 ifp = fopen(ifname, "r");
 ofp = fopen(ofname, "w");
 if(ifp != NULL && ofp != NULL){
  for(line = 1; fgets(buf, 1024, ifp) != NULL; line++){
   p = buf;
   for(num = 0; ; num++){
    if(sscanf(p, "%d", &d) <= 0)break;
    if(num > 0)fprintf(ofp, ", ");
    fprintf(ofp, "%d", d + line);
    p = strstr(p, ",");
    if(p == NULL)break;
    p++;
   }
   fprintf(ofp, "\n");
  }
  fclose(ofp);
  fclose(ifp);
 }
 return 0;
}
946デフォルトの名無しさん:2011/01/02(日) 17:45:02
>>945

6, 21, 16
10, 52, 16
12, 33, 19
6, 44, 21

となるぞ
題意は

6, 22, 18
9, 52, 17
10, 32, 19
3, 42, 20

じゃないのか
 
947デフォルトの名無しさん:2011/01/02(日) 18:51:53
>>937 列か
#include <stdio.h>
#include <string.h>
int main(){
  const char* ifname = "sitei.csv";
  const char* ofname = "out.csv";
  FILE* ifp;
  FILE* ofp;
  char buf[1024];
  char* p;
  int num, d;
  ifp = fopen(ifname, "r");
  ofp = fopen(ofname, "w");
  if(ifp != NULL && ofp != NULL){
    while(fgets(buf, 1024, ifp) != NULL){
      p = buf;
      for(num = 0; ; num++){
        if(sscanf(p, "%d", &d) <= 0)break;
        if(num > 0)fprintf(ofp, ", ");
        fprintf(ofp, "%d", d + num + 1);
        p = strstr(p, ",");
        if(p == NULL)break;
        p++;
      }
      fprintf(ofp, "\n");
    }
    fclose(ofp);
    fclose(ifp);
  }
  return 0;
}
948デフォルトの名無しさん:2011/01/02(日) 20:40:35
教えていただけると助かります。
これを変更して,配列に格納されている整数の最大値と最小値を表示する様にせよ.

#include<stdio.h>#include<stdlib.h>#include<time.h>
int main(void){
int *A; int num, sum=0, ave; int i; int max=0;
srand(time(NULL));
do{
printf("整数はいくつですか?(正整数):");
scanf("%d", &num);
}while(num<1);
A = malloc(sizeof(int)*num);
for(i=0;i<num;i++){
A[i] = rand()%100;
printf("%d 番目の整数は %d です.\n", i+1, A[i]);
}
for(i=0;i<num;i++){
sum += A[i];
}
ave = sum/num;
printf("合計は %d で平均は %d です.\n", sum, ave);
for(i=0;i<num;i++){
if(max<A[i]){
max = A[i];
}
}
 printf("最大値は %d です.\n", max);

return 0;
}
949デフォルトの名無しさん:2011/01/02(日) 20:44:48
948です。
順番おかしくてすみません><

[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):948の本分です。
[3] 環境
 [3.1] OS:Windows
 [3.2] VC
 [3.3] 言語:C++
[4] 期限:2011年1月4日まで

よろしくお願いします!!
950デフォルトの名無しさん:2011/01/02(日) 22:56:25
>>949
#include <algorithm>
をインクルードして↓の処理を追加する

int min = *std::min_element(&A[0], &A[0] + num);
printf("最小値は %d です.\n", min);
951デフォルトの名無しさん:2011/01/02(日) 23:55:24
>>950
ありがとうございます!
動かしてみます!!
952デフォルトの名無しさん:2011/01/03(月) 01:33:53
自分で考えようというのがあまり見受けられないな
953デフォルトの名無しさん:2011/01/03(月) 02:18:10
自分で考える位なら宿題丸投げしないだろ
954デフォルトの名無しさん:2011/01/03(月) 02:18:38
そろそろ早稲田情報理工3年オペレーティングシステムの宿題がくる頃かな
955937:2011/01/03(月) 03:58:01
>>947さんありがとうございました
956937:2011/01/03(月) 05:12:56
【質問テンプレ】
[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
  指定されたエクセルファイルの中にあるデータを読み込み
  各列ごとにそれぞれのデータに対し[0,1]区間に正規化し
  別のエクセルファイルとして出力せよ.
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
  問題の意味は1列目は1列目の範囲で
  2列目は2列目の範囲とそれぞれ独立して正規化せよ
  ということです
  こちらのdata.csvは250行5列といったとても大きなものなので
  sitei.csvを基に作成していただけたらありがたいです
957937:2011/01/03(月) 05:14:37
すいません追記です
データの中に少数のデータもありますので
少数対応でお願いします
958デフォルトの名無しさん:2011/01/03(月) 06:18:17
>>956
正規化とは?

1列目:10 20 5 15 → 正規化:0.5 1 0.25 0.75
みたいに一番大きな値を1にして他を比率で表すって事?
959937:2011/01/03(月) 06:42:12
はい そうです
最大の値を1として列内で1の値(最大値)を基準として
他の値を比率であらわすということです
ただし列ごとに独立した基準でということです
よろしくお願いします
960デフォルトの名無しさん:2011/01/03(月) 06:58:32
めんどくせえなーこれ 各行の列数も独立なんだろ
普通に縦横入れ替えてループできないのか・・
961デフォルトの名無しさん:2011/01/03(月) 07:22:24
>>956
[0, 1]に正規化っていうことは最小値を0としててことだよね?
長いから↓に
http://codepad.org/mtb8d2x4
962937:2011/01/03(月) 07:26:09
データの数はきっちり5*250(data.csv)で全部埋まってますよ
250個の数を正規化したものを5つです
ただしそれぞれの列ごとに値の大きさが違いすぎるので
それぞれの基準で正規化しなくちゃいけないんです
(画素や座標といった基準の違うものがまとめて入ったデータなので
 正直課題じゃなかったら座標は正規化せずに座標でいいと思うのですが)
963937:2011/01/03(月) 07:27:49
入れ違いに書き込んでしまいました
拝見させていただきます
964937:2011/01/03(月) 07:49:38
拝見させていただきました
うまく正規化させることができました
>>961さんありがとうございます
965937:2011/01/03(月) 10:39:49
【質問テンプレ】
[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
  正規化されたエクセルファイルの中にあるデータを読み込み
  そのデータをそれぞれx軸の値として
  y = x + a  の式との交点であるy軸の値をそれぞれ
  別のエクセルファイルとして出力せよ.
  a の値は -1〜1 までの値を0.5刻みでランダムにとり
  同じ行では同じ関数を使うものとする.
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
  問題文中でエクセルファイルとなっていますがCSVのことです
  また前問(>>956)からの続きなので
  >>956の解である>>961さんのURL内のコードに
  本問で問われていることを付け足す形でお願いします
  長くなりましたがよろしくお願いします
966デフォルトの名無しさん:2011/01/03(月) 13:16:43
>>965
えっ。単発じゃないのか
>>961につなげるなら>>961も入力、加工、出力に関数分けする必要があるじゃないか
入力→正規化→出力→入力→加工→出力ってやるんだろこれ
967937:2011/01/03(月) 13:29:06
大きい問題の問1が>>956で問2が>>965なんです
>>元データ入力→正規化→出力→正規化データ入力→加工→出力
まさにそのやり方をしないといけないんです
968デフォルトの名無しさん:2011/01/03(月) 13:36:36
以降の問題とつながりあるなら最初から考慮して作る必要があるんだから
まず全ての問題のつながりを[5]あたりに書いとくこと
もうないよね?
969937:2011/01/03(月) 13:48:17
申し訳ありません
正直まだあるんですけどそこまでできあげちゃうと良レポートすぎるかなと思うのですが
この先の問題は
【質問テンプレ】
[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
  その後(>>965の後)そのプログラム(>>965の解となるプログラム)に加え
各行に対し3つずつそれぞれランダムにaを決定した関数との接点を求め出力する.
  また6列目に使用したaの値をa1,a2,a3という形で出力する
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:
  ここまでで終わりです
970937:2011/01/03(月) 13:55:28
すいません補足です
問題文最後の6列目というのはもとファイルが5列あって6列目にaの値を入れる欄を作れということです
問題分には明言されてませんが問3は一つのセルに
a1,a2,a3を用いて出た解1,2,3を記入した
5*250のセルをもとに (15)+1*250の結果を作れということです
列数で増えている1というのはaの値を表示するためのものです
多いうえにややこしい書き方をして申し訳ないです
971937:2011/01/03(月) 13:58:14
(解1-1,1-2,1-3)(,,)(,,)(,,)(,,)(a1,a2,a3)
横1行は上記のようになった6*250のCSVです
何度も追記して申し訳ないです
972デフォルトの名無しさん:2011/01/03(月) 18:26:55
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
5列5行の多次元配列(0または1が適当に並べられているもの)を用意し
1がある配列の上下左右の配列のうち2または3個1が存在するならその配列を0に変更し
そうでない場合は1のままにする この操作を10回行った配列を求めるプログラムを作成する
またこの配列は上下左右繋がっていて1,1の配列の場合上は1,5、左は5.1である
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:visual studio2005
 [3.3] 言語: C言語
[4] 期限: 1月5日
[5] その他の制限:
いわゆるライフゲームみたいなやつです
1と0の配列は特に指定はありませんので そこは適当で構いません
よろしくお願いします
973デフォルトの名無しさん:2011/01/03(月) 19:31:49
system関数でgnuplot呼び出しで一発じゃね
974デフォルトの名無しさん:2011/01/03(月) 20:03:24
975デフォルトの名無しさん:2011/01/03(月) 20:37:48
>>956
とりあえず>>956の方書き直したけど
http://codepad.org/EaoB8bcf

>>969の問題の意味がわからん
各列にランダム数(列内では同じ数)を足すって事?
976デフォルトの名無しさん:2011/01/03(月) 20:46:03
>>965を三回ずつやれってことじゃねーの
977デフォルトの名無しさん:2011/01/03(月) 20:57:31
>>974
ありがとうございました
助かります
978デフォルトの名無しさん:2011/01/03(月) 21:20:54
>>965
こうか わからん
http://codepad.org/FxCZDVCT
979976:2011/01/03(月) 22:09:57
>>978
こうだと思った

937.exe <in.csv | 956.exe | 969.exe >out.csv
>>937
http://ideone.com/IhJYa
>>956
http://ideone.com/gzme7
>>969
http://ideone.com/hyzwc
980デフォルトの名無しさん:2011/01/03(月) 22:24:24
次スレ立てます
981デフォルトの名無しさん:2011/01/03(月) 22:24:51
そうか列じゃなくて行か・・行ならメモリ確保とかする必要ないな・・
982デフォルトの名無しさん:2011/01/03(月) 22:25:13 BE:142007235-S★(532000)
次スレ立てました
C/C++の宿題片付けます 145代目
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
Linuxコマンドだけで宿題を片付けろ
984 ◆QZaw55cn4c :2011/01/04(火) 04:37:27
>>983
劣化 perl なんかを使うのか?それじゃ C とかわらへんのでは?
985937:2011/01/04(火) 05:13:44
帰ってくるのがこの時間帯になるもので遅くなって申し訳ないです
>>975, >>978拝見させていただきました
>>975の41行目 >>978の42行目の
csv = calloc(1, sizeof(CSV));
という記述に対して
       'void *' から 'CSV *' に変換できません。
というエラーが出ます
>>979さんのは実行の仕方が解らないのでただいま勉強中です

また>>965の問ですがこれは「正規化された値にランダム数を足す」のではなく
(以下2行は手順を追うための文です)
正規化された値(範囲は[0,1])と 「関数y=x」の交点の値を別のcsvとして出力します
ここまでだと入力と出力のファイルが同じになります
(ここから本問)
正規化された値(範囲は[0,1])と 「関数y=x+a」の交点の値を別のcsvとして出力します
a の値は-1〜1 までの値を0.5刻みでランダムにとり
同じ横列では同じ関数を使って交点をとるものとする
それを縦列数分繰り返して出力するということです
データは横5データ縦250データのデータです
横列ごとに同一の関数と比較した交点の出力なので
結果としては正規化されただけのデータと比べて横列では同じ程度の数値の変化になります
986937:2011/01/04(火) 05:14:37
問3は問2の拡大版で
正規化された値と関数y=x+aとの比較を各横列ごとに3回行うということです
セル1-1に対して「y=x+a1との交点」「y=x+a2との交点」「y=x+a3との交点」 の値を
出力するCSVのセル1-1の位置に a1との解 , a2との解 , a3との解
とコンマで刻んで出力します
また正規化されたCSVが横5縦250なので横6縦250のところに
使用したaの値を a1,a2,a3 と出力せよということです
結果的には
a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1,a2,a3
となります
この横列が250行縦に続きます

元データの形(行列が詳しくないもので正しい用語を使えてるかわからないので)
1 2 3 4 5
1 2 3 4 5  横が5つのデータで
〜〜〜〜〜〜〜〜〜  縦が250個のデータです
1 2 3 4 5  並み線は147個分省略
987937:2011/01/04(火) 05:17:50
関数のところが結果的同じじゃないかと思うかもしれませんが
場合によって関数が違うので
関数との交点をとりましたよというような記述の仕方が必要なんです
ながながと申し訳ありません
よろしくお願いいたします
988937:2011/01/04(火) 07:59:26
ちょっとプログラムと格闘して自分が>>987で言ってることの馬鹿さ加減に気付きました
プログラミング畑の人間じゃないものでして動作について
多めにコメントで説明してくださるとありがたいです
989デフォルトの名無しさん:2011/01/04(火) 08:20:40
>>988
・問題文は、出題されたまま全文を書いてください。
990937:2011/01/04(火) 08:27:51
問題文問1 >>956
問題文問2 >>965
問題文問3 >>969
問題文についての補足 >>985 >>986
です
補足は長すぎて書き込みを止められてしまったので分割してます
長くなってしまって申し訳ないです
問題文の原文は>>956 >>965 >>969です
991デフォルトの名無しさん:2011/01/04(火) 09:52:54
交点って意味が分からないな
>>937 そろそろ次スレ移動しよう
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
992937:2011/01/04(火) 10:31:17
すいません
補足のところは授業のノートを見て書いたものですから
二次関数とX座標の交点のようにメモをとってたのでそう書いてしまいました
実際は y= x + a の x にランダムで指定範囲内から決定されたaを加算すればいいので
その辺が>>988で言っていた自分のミスに気付いたってやつです
交点求めるには代入すればいいですものね
問題文が簡素なのは「授業でやってるとおりにやればわかるでしょ」っていう先生の暗黙の了解なので
その部分は補足という形をとりました次スレに質問を貼りなおしたいと思います。
993デフォルトの名無しさん:2011/01/04(火) 15:11:03
コレ埋めるけど、イイかな?
994デフォルトの名無しさん:2011/01/04(火) 15:27:40
C/C++、君との思い出は、数えるほどしかない。
995デフォルトの名無しさん:2011/01/04(火) 15:28:53
C/C++を思い出させるものは、数えきれないぐらいある。
996デフォルトの名無しさん:2011/01/04(火) 15:30:04
そして何より、何よりC/C++の笑顔が忘れられない。
997デフォルトの名無しさん:2011/01/04(火) 15:30:45
遅いかな…今頃になって言うのは。
998デフォルトの名無しさん:2011/01/04(火) 15:32:03
俺は…俺は…俺はC/C++が好きだった。
999デフォルトの名無しさん:2011/01/04(火) 15:48:17
オレ、main関数が書けません
1000デフォルトの名無しさん:2011/01/04(火) 15:50:28
1000ならC/C++絶滅
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。