C/C++の宿題を片付けます 122代目
at TECH
1:デフォルトの名無しさん
09/01/15 15:30:38
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
前スレ
C/C++の宿題を片付けます 121代目
スレリンク(tech板)
2:デフォルトの名無しさん
09/01/15 16:05:19
気に入らない質問やその他や発言はスルーの方向で。
3:デフォルトの名無しさん
09/01/15 16:08:59
前スレ987
(32^816077) mod (1009*1013)
電卓片手に計算してみた
答え 2
自分で計算しといてなんだが、なんか信じられん
4:デフォルトの名無しさん
09/01/15 16:16:02
そんなのって、あんま(余)りだぁ〜〜
5:デフォルトの名無しさん
09/01/15 16:17:54
あれ?剰余を求めるだけ?なら似たような問題が過去にもあったし、
それを流用すれば良くね?
6:デフォルトの名無しさん
09/01/15 16:22:46
>>5
いや宿題自体はちがうけど、
答えだけでも教えてほしいって書いてあったから。
なんとなくやってみた
7:デフォルトの名無しさん
09/01/15 16:26:27
37335
8:デフォルトの名無しさん
09/01/15 16:35:12
スレリンク(tech板:987番)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
9:デフォルトの名無しさん
09/01/15 16:59:33
> 32 ^ 816077 mod 1022117
指数を2進展開すると 11000111001111001101
元の計算を二乗と基数倍だけで書くと(逆ポーランド)
1 32 * 2 ^ 32 * 2 ^ 2 ^ ... 2 ^ 32 * 2 ^ 2 ^ 32 *
int modpow(int x, int n, int p)
{
int i;
long long int y = 1;
for(i = 1 << 30; i > 0; i >>= 1) {
y = (y * y) % p;
if(n & i) y = (y * x) % p;
}
return (int)y;
}
10:デフォルトの名無しさん
09/01/15 17:09:10
void Point_k(int j,double Point[k][4]);
void Point_k(int j,double Point[k][4]){ /*ただ今1辺6Mの正方形*/
int c=NX-1; //X軸の要素数-1
int d=NX-1;
int m=c+NY; //i+Y軸の要素数=5
int n=d+NY;
//double Point[k][4];
for(j=0;j<k;j++){
if(j<=d){
Point[j][0]=X_memori*j;
Point[j][1]=X_memori*j+X_memori;
Point[j][2]=0;
Point[j][3]=0;
このプログラムの意味分かりますか??
11:デフォルトの名無しさん
09/01/15 17:10:46
>>10
質問スレへ行け
12:デフォルトの名無しさん
09/01/15 17:26:48
long long int y = 1;
13:デフォルトの名無しさん
09/01/15 17:44:16
10問の一桁同士の四則演算(問題はランダム)の計算ドリルを作り
正解数、正解率、かかった時間を表示させたい。
また、1問10秒という制限をつけ、その制限時間をリアルタイムに表示せよ
というものがどうしてもできません。
出題、正解数やかかった時間の表示はできるのですが
その先でつまづいています。
14:デフォルトの名無しさん
09/01/15 17:45:57
>>13
死ね
>>1くらいよめ
舌噛め
15:デフォルトの名無しさん
09/01/15 17:46:55
ミスって問題文だけ投稿してしてしまいました。
[2] 問題文(含コード&リンク): >>13
[3] 環境
[3.1] OS: DOS
[3.2]lcc
[3.3] 言語: C言語
[4] 期限: 今日まで
16:デフォルトの名無しさん
09/01/15 17:50:27
せっかちな>>14
17:デフォルトの名無しさん
09/01/15 17:50:43
[1]C
[2]
(1)
12の2乗数は144となり、各桁の数字の総和は1+4+4=9である。
10000以下の正整数で、2乗数の各桁の数字の総和が最大の数字はいくつか?
(2)
3乗すると丁度8桁になる正整数はいくつあるか?
[3]LINUX C
[4]24時まででお願いします。
よろしくお願いします。
18:デフォルトの名無しさん
09/01/15 17:55:50
>>14 >>14 >>14 >>14 >>14 >>14 >>14 >>14 >>14
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
19:デフォルトの名無しさん
09/01/15 17:57:04
>>15
dosでlccとか、死ね
LSI-Cのことだろ
20:デフォルトの名無しさん
09/01/15 17:57:15
>>18
>>1
21:デフォルトの名無しさん
09/01/15 18:00:08
ルールに従わない奴を陰湿に罵倒して自治厨を気取るくせに、
自分が違反しているのを指摘されるとファビョる、引きこもり基地外ニートって
明らかに社会のクズだよね。
22:デフォルトの名無しさん
09/01/15 18:00:39
>>20
お前だよ、>>1も読めないバカは
日本語を習ってから出直せよ、いい年したおっさんが。
お前の人生終わってんぞw
23:デフォルトの名無しさん
09/01/15 18:01:58
19 名前:デフォルトの名無しさん 投稿日:2009/01/15(木) 17:57:04
>>15
dosでlccとか、死ね
LSI-Cのことだろ
↑詰らない揚げ足をとって、自分は知識がありますといった
自己主張が激しい反面、下らないことしか指摘しないため、
社会から干されているバカ
24:デフォルトの名無しさん
09/01/15 18:02:28
>>21
鏡
25:デフォルトの名無しさん
09/01/15 18:08:08
あっ、社会の外れの基地外がまたファビョってますよw
やだね、こういうのって。何でこのスレに来ているんだろう。
別にお前が頼られているわけじゃないんだが?w
まぁ、お前みたいに社会でまともに相手にされない奴が、
ここを生き甲斐にしちゃったんだろうけど、所詮ここは
不特定多数の人が来る2ちゃんねるの一部ですからw
狭い世界で必死になってなさい。お前見たな奴は、出世せずに
この世を去るんでしょうけど、見ず知らずの誰かなんてこっちは
知ったこっちゃないんで、あしからず。さぁ、>>1も読めないバカは以後放置よろ。
26:デフォルトの名無しさん
09/01/15 18:18:44
っつか、何かすぐに 死ね って書くけど、人間性の悪さが露呈してますよ?
言われた側が気分を悪くしていると思っているんだろうけど、別の人間から見ると
さもしい 人間に見えるよ。
27:デフォルトの名無しさん
09/01/15 18:21:06
すみません、LSICでした。
なにぶん3ヶ月前にはじめたばかりでもうしわけない
28:デフォルトの名無しさん
09/01/15 18:34:17
>>17 (1)
#include <stdio.h>
int main( void )
{
int i,j,k,l=0,m=0;
for (i=1;i<=10000;i++) {
k=0;j=i*i;
while(j>0){k+=j%10;j/=10;}
if(k>m){m=k;l=i;}
}
printf("%d:%d\n",l,m);
return 0;
}
29:デフォルトの名無しさん
09/01/15 18:43:34
>>17
URLリンク(kansai2channeler.hp.infoseek.co.jp)
30:585 ◆i9Dvbn/Lf6
09/01/15 19:00:48
お願いします。
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
zipで専用ロダにもあげておきます
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
さっぱりわからないので少しだけでもお願いします
31:585 ◆i9Dvbn/Lf6
09/01/15 19:02:48
画像はこちらです(内容はzipと一緒です)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
32:デフォルトの名無しさん
09/01/15 19:16:23
lcc.exeだから間違いではない
33:デフォルトの名無しさん
09/01/15 19:17:51
厳密な数値解及び解析的な近似解ってこれ逆じゃないの?
なんで解析解が近似なのさ
34:585 ◆i9Dvbn/Lf6
09/01/15 19:24:37
>>33
いえ、確かに問題文には
>厳密な数値解及び解析的な近似解
と書いてあります
35:デフォルトの名無しさん
09/01/15 19:34:31
>>33
使う式のことじゃないのか?
正しい式を数値解析で解くのと
近似式を解析的に解くのとで
36:デフォルトの名無しさん
09/01/15 19:36:15
>>30
>機動時
いい加減、直したらどうだろ
37:デフォルトの名無しさん
09/01/15 20:09:31
>>36
機動性に優れていて、良いだろ?
38:デフォルトの名無しさん
09/01/15 20:10:00
>>31
最低でも、3枚目の一番上の式を確認しないとな・・・
39:デフォルトの名無しさん
09/01/15 21:06:27
前スレにて
940 名前:デフォルトの名無しさん[sage] 投稿日:2009/01/14(水) 22:40:43
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(uproda.2ch-library.com)
[3] 環境
[3.1] OS:WindowsVista
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C++
[4] 期限: 1月16日まで
[5]その他の制限:特になし
という質問で
URLリンク(kansai2channeler.hp.infoseek.co.jp)
という回答を頂いたのですが上手くいきません。
失礼かと思いますが、どこがおかしいか教えていただけると助かります。
40:デフォルトの名無しさん
09/01/15 21:26:35
>>39
> [1] 授業単元:C言語
> [3.3] 言語: C++
どっちだよ。
C++ならそれで動く。
Cなら
- std:: をすべて消す
- #include <c*****> を #include <*****.h> に直す
- for ループ部の i を for ループの外であらかじめ宣言しておく
- static_cast<int> を (int) に直す
くらいか。
それと、「上手くいきません」じゃなくて具体的に書いとけ。
コンパイルエラーが出たんならエラーメッセージを貼るとか、実行結果がおかしいならどこがどうおかしいのかとか。
41:デフォルトの名無しさん
09/01/15 21:49:35
>>40
上手くいきました。ありがとございました。
42:デフォルトの名無しさん
09/01/15 22:21:11
>>31
この辺みて、教員に確認しろ。
URLリンク(www.ne.jp)
仕様が固まれば、コーディングくらいしてくれる人がいるだろ
43:デフォルトの名無しさん
09/01/15 22:55:10
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月16日午前8時
[5] その他の制限:できるだけ簡単な関数でお願いします
44:デフォルトの名無しさん
09/01/15 23:26:02
[1] 授業単元: プログラミング基礎実習
[2] 問題文(含コード&リンク):
s2 の文字列を s1 へ,最大で n 文字未満コピーするstrncpy関数の作成
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: cc
[3.3] 言語: C言語
[4] 期限:あさって
[5] その他の制限: 関数宣言は
char *strncpy(char *s1, char *s2, int n);
45:デフォルトの名無しさん
09/01/15 23:46:26
>>44
最大で n 文字未満ってことはn-1文字コピーしてNULL文字入れろってことか?
何返せばいいのかもわからん。とりあえずs1そのまま返しておいた
char *strncpy(char *s1, char *s2, int n){
int i;
for(i = 0; i < n-1 && s1[i]; i++)
s1[i] = s2[i];
s1[i] = '\0';
return s1;
}
46:デフォルトの名無しさん
09/01/15 23:46:27
切羽詰ってます。よろしくお願いします><
[1] 授業単元:ディジタル信号処理
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windows vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:16日の12:00
[5] その他の制限:.txtのDFTプログラムのような簡単な記述で、流れは変更前のものを参考に
47:デフォルトの名無しさん
09/01/16 00:24:23
手羽詰ってます、安いよ安いよーよろしくご購入して下さい ><
48:デフォルトの名無しさん
09/01/16 00:43:38
>>46
元のコードがタイポってるってどういうことよ
49:45
09/01/16 00:56:45
>>45
ミスってるw
char *strncpy(char *s1, char *s2, int n){
int i;
for(i = 0; i < n-1 && s2[i]; i++)
s1[i] = s2[i];
s1[i] = '\0';
return s1;
}
こうだな
50:デフォルトの名無しさん
09/01/16 01:17:13
皆様のおかげで無事単位を取得できました
本当にありがとうございます
これからは人に頼らずできるかぎり自分の力で頑張っていきたいです
51:デフォルトの名無しさん
09/01/16 01:19:34
ここで回答する側になって人に頼られるようになるともっといいね
がんばれ
52:デフォルトの名無しさん
09/01/16 01:40:03
久々に和んだ
53:デフォルトの名無しさん
09/01/16 01:49:17
このスレの本質は自分に解ける課題を楽しむというエゴであって
相手のためを考えることなんかじゃない
頼られていると感じたいというエゴでもいいけどさ
[1] 授業単元:暇つぶし
が好きだ
54:デフォルトの名無しさん
09/01/16 01:53:28
プログラミングをしたって、商用で使わなきゃ金なんて入ってこないし。
まぁ、趣味でも良いが、カンパウェアとして、任意で気に入ったら
金を払ってくれるソフトでも作ってな。
55:デフォルトの名無しさん
09/01/16 01:56:35
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): コード URLリンク(web.hc.keio.ac.jp)
課題 URLリンク(web.hc.keio.ac.jp) のTermEndRport.doc のステージ4まで
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual studio 2008
[3.3] 言語: C++)
[4] 期限: ([2009年1月16日9時まで]
56:デフォルトの名無しさん
09/01/16 01:58:23
そんなおまいを、KOしてやりたいぜ・・・
57:デフォルトの名無しさん
09/01/16 02:00:31
>>56
反応早いなw
そんなに暇なのか
58:デフォルトの名無しさん
09/01/16 02:03:27
ちょっと前にも多倍長演算でヘンテコな質問繰り返してるヤツがいたっけ。
59:デフォルトの名無しさん
09/01/16 02:04:21
いやね、言語にC++と指定しておきながら、C言語なのは
なんでだろ〜なんでだろ〜なんでだなんでだろ〜 って思ってね
リングに沈めてやろか?って
60:デフォルトの名無しさん
09/01/16 02:06:02
Cの課題をC++で解いて提出するのが流行ってるのかね
61:デフォルトの名無しさん
09/01/16 02:09:45
>>55
んで、どうすれば良いの?int型の上限を超える2つの値の加算のコードを
各自で最初から記述しろと?俺流ので良ければやるが、朝の9時までか・・・もう眠い。
っつか、それ、確かに長いな・・・もっとスマートにしてちょっ
62:デフォルトの名無しさん
09/01/16 02:11:32
>>61
TermEndRport.docに
>超基本機能版(mcalc0.c)に対して、次の手順に従って、機能を拡張しなさい。
って書いてあるよ
63:デフォルトの名無しさん
09/01/16 02:15:50
>>62
みなかったことにしよう
64:デフォルトの名無しさん
09/01/16 02:16:22
同じリンク先のmalc0.cをいじってやるのですが全然わからなくて・・・
65:デフォルトの名無しさん
09/01/16 02:18:57
>>62
見落としてた。まぁ、出来ないことはないが、
コードの解析が面倒だから、あとはあんたに任せたw
66:デフォルトの名無しさん
09/01/16 02:19:40
やらないんなら出来ないのと同じw
67:デフォルトの名無しさん
09/01/16 02:25:15
あんだよぉ、俺を試そうってかぁ?朝の9時までってタイムリミットがあるから
今はやらないんだよぉ。起きたら自主でやるから、許してw
68:デフォルトの名無しさん
09/01/16 02:31:11
ゴネたけど、見たら仕組みが分かったんで、ステージ2まですぐに終わったから
このままステージ4までやるわw
69:デフォルトの名無しさん
09/01/16 02:34:16
あれ?ステージ2の答えが合ってねーぞ・・・
70:デフォルトの名無しさん
09/01/16 03:03:37
>>69
どんな感じですか?
71:デフォルトの名無しさん
09/01/16 03:06:15
>>70
URLリンク(kansai2channeler.hp.infoseek.co.jp)
TermEndReport.docのと比較してみて。目で追って確認したところ、
繰上げがされていない結果が記述されているようだが・・・
72:デフォルトの名無しさん
09/01/16 03:10:15
>>71はステージ1と2
>>55 続いてステージ3
URLリンク(kansai2channeler.hp.infoseek.co.jp)
73:デフォルトの名無しさん
09/01/16 03:31:19
>>55 ステージ4 投げやりですまそ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
74:デフォルトの名無しさん
09/01/16 03:32:46
あと、出題者も分かっているとは思うけど、入力する値に
マイナスを入れても正常に機能しないので、あしからず。
さっ、寝よっと。
75:デフォルトの名無しさん
09/01/16 03:37:37
ありがとうございます! これで単位が来ます。 ちょっと質問なのですがステージ2の
putchar(0x20) は何を意味しているのですか?
76:デフォルトの名無しさん
09/01/16 03:39:27
あ、起きてからでも教えてくださいw
77:デフォルトの名無しさん
09/01/16 03:41:50
>>76
あっ、いや、 ' ' 空白と同じ。嫌なら変えておいて。
78:デフォルトの名無しさん
09/01/16 03:45:15
putchar(' '); ね。あと、add(a,b,MAXDIGIT+1); の+1は要らんかったかも・・・
79:デフォルトの名無しさん
09/01/16 03:46:46
せっかく作ったので貼ってみる stage4
URLリンク(kansai2channeler.hp.infoseek.co.jp)
80:デフォルトの名無しさん
09/01/16 05:13:18
せっかく作ったので貼ってみる スペシャルステージ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
演算子定義するのが面倒だったから"減算"ではなく"負数の加算"だけども。
81:デフォルトの名無しさん
09/01/16 05:43:23
落ち着け
82:デフォルトの名無しさん
09/01/16 07:27:45
スイマセン、どなたか>>43を解いて頂けないでしょうか?
83:デフォルトの名無しさん
09/01/16 07:54:53
>>43
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = {0};
int len;
int i;
printf("文字列を入力:");
scanf("%s", str);
len = strlen(str);
for (i=len-1; i>=0; i--)
printf("%c", str[i]);
putchar('\n');
for (i=0; i<len; i++)
printf("%d,", str[i]);
putchar('\n');
for (i=0; i<len; i++)
printf("0x%x,", str[i]);
putchar('\n');
return 0;
}
84:デフォルトの名無しさん
09/01/16 08:24:06
1.10個の2桁で正の10進データをstaticデータとしてプログラム中にいれ、11個目の数をー999とする。ポインターを使って、この10個の数の合計と平均を求めるプログラムをつくる。
2.Sachiko, Emiko, Setuko, Rie, Mariko, Sara の6人の名前をポインター配列にし、頭文字がSで次の文字がaの名前を表示するプログラムを書け。
3.3つの数字をmain文でscanfで与える。そして、関数maxで3つの数の最大値を求めて、mainに帰り次のように出力する。(p102参照)
3つの数を入力してください? 55 86 32
最大値は86です。
4.do while文をつかって、1から100までの和を求めよ。
5. 練習問題29のメニューの中にそれぞれの金額を設定し、つまり
kingaku[ ] という配列をもう一つつくり、2つ以上の品を注文したとき
品名と合計金額をもとめるプログラムをつくる。
メニュー表:1サーロインステーキ
2ビーフストロガノフ
3ヒレカツ定食
4すき焼き定食
85:84
09/01/16 08:25:19
6. page 137 のソートのプログラムを参考にして、8人の名前をアルファベットでプログラム中に配列で入力しておき(参考p94−ポインタ配列)、ABC順に名前を並べ替える。
p137のソートプログラム参考
#include<stdio.h>
#define N 8
Void main (void) /*基本選択法によるソート*/
{
Static int a[]={100,55,65,33,211,66,31,90};
Int j,k,min,s,dumy;
For (k=0;k<N−1;k++) {
Min=a[k];
S=k;
For (j=k+1;j<N;j++) {
If (a[j]<min) {
Min=a[j];
S=j;
}
}
Dumy=a[k]; a[k]=a[s]; a[s]=dumy;
}
For (k=0;k<N;k++)
Printf(“%5d”,a[k]);
}
以上です。徹夜してもわからなかったのでお助けください。
よろしくお願いします。
86:デフォルトの名無しさん
09/01/16 09:04:24
>>85
6番だけやってみた。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
87:デフォルトの名無しさん
09/01/16 09:39:46
>>84
URLリンク(kansai2channeler.hp.infoseek.co.jp)
5番目の問題にある「練習問題29」を提示してくれ。
88:デフォルトの名無しさん
09/01/16 09:57:35
>>84
何か勘違いしてた。
↓5番の問題
URLリンク(kansai2channeler.hp.infoseek.co.jp)
89:46
09/01/16 11:54:16
訂正します
[1] 授業単元:ディジタル信号処理
[2] 問題文(含コード&リンク):
入力値は{1,1,1,1,0,0,0,0}で、出力が
0 4.000 0.000 4.000
1 1.000 -2.414 3.414
2 -0.000 -0.000 0.000
3 1.000 -0.414 1.082
4 0.000 -0.000 0.000
5 1.000 0.414 1.082
6 0.000 -0.000 0.000
7 0.999 2.414 2.613
になる8点FFTプログラムを作成せよ
[3] 環境
[3.1] OS:windows vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:16日の17時
[5] その他の制限:なるべく簡単な記述で
90:デフォルトの名無しさん
09/01/16 11:59:27
>>89
何を訂正したのか知らないけど、
オマエが張ったBASICと思しきコードは一度も実行してないだろ
91:46
09/01/16 12:10:07
>>90
元のコードはテキストにあったものを打ち込んだだけなんです。。
講師にこのプログラムを参考にC言語で8点FFTを作成しろとだけ言われたもので実行はしてないです。すみません
92:デフォルトの名無しさん
09/01/16 12:19:02
. ./ \
/ \
\ '''''' '''''':::::::::::::/
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::| まピョーン☆
. | `-=ニ=- ' .:::::::| +
\ `ニニ;‘ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
93:デフォルトの名無しさん
09/01/16 19:28:50
[1] 授業単元:Computer Prigramming II 第14回:木(ツリー)構造,再帰的関数と再帰的呼び出し
[2] 問題文(含コード&リンク):
下の入出力例のように,適当な数字を入れると,1からその数までの和が計算過程とともに
表示されるプログラムを作りなさい。ループ(for)文を使うものと再帰的関数を使用するも
のの2種類の解答を作ること。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows Vista / Linux
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition / gcc
[3.3] 言語:C
[4] 期限:2008年1月25日00:00まで
[5] その他の制限:
94:デフォルトの名無しさん
09/01/16 19:33:54
>>93ヒント載せ忘れ:
@ループ文とは例えば以下のようなものである。
int i, s=0;
for(i=1;i<=n;i++) s += i;
A再帰的関数の漸化式で表現したものとは例えば以下のようなものである。
int sum(int n){
if(n==1) return( 1 );
else return( n + sum( n-1 ) );
}
int main(void){
scanf( "%d", &n);
printf( "%d\n", sum( n ) );
return 0;
}
95:84
09/01/16 19:51:24
>>86 >>88
ありがとうございます!!!!
96:585 ◆i9Dvbn/Lf6
09/01/16 20:58:38
お願いします。
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを起動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
画像はこちらです(内容はzipと一緒です)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
zipで専用ロダにもあげておきます
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
さっぱりわからないので少しだけでもお願いします
>>42
さんのリンク先の内容でいいみたいです(はっきりとは答えてもらえませんでした)
URLリンク(www.ne.jp)
97:デフォルトの名無しさん
09/01/16 21:14:53
>>96
使用が固まらない限り、誰にも、どうにも出来ない。
98:デフォルトの名無しさん
09/01/16 21:31:46
[1] 授業単元:C言語
[2] 問題文:2人の人の名前と年齢を入力し、同じ年なら「○○と××は同じ年」、
そうでなければ「○○は××より□歳年上」と表示するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2]
[3.3] 言語: C言語
[4] 期限: 1月18日まで
誰か教えてください!!お願いします!!
99:585 ◆i9Dvbn/Lf6
09/01/16 21:43:36
>>97
仕様とは具体的にどういうことでしょうか?
100:デフォルトの名無しさん
09/01/16 21:54:01
>>99
>>42のリンク先と3枚目の式があってないだろ
101:585 ◆i9Dvbn/Lf6
09/01/16 21:56:07
>>100
そこらへん先生がはっきり言ってくれなかったんですよね…
3枚目は無視してもらって>>42のリンク先でやってもらうということはできないでしょうか?
102:デフォルトの名無しさん
09/01/16 21:56:24
[1] 授業単元:C言語
[2] 問題文:ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。
単語の切れ目はアルファベット以外の文字、行の終わりは改行文字またはファイルの終端とします。
この課題のソースファイルで動作確認をしてください。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1/18まで
[5] その他の制限:特にありません。
よろしくお願いします。
103:デフォルトの名無しさん
09/01/16 21:57:37
>>101
作るものがわからないのに無理だろ
104:585 ◆i9Dvbn/Lf6
09/01/16 22:01:37
>>103
たぶんですが、>>42のリンク先の一番下で
>数値解析してシミュレーションしたのが〜
でいいと思うんですけど…
105:デフォルトの名無しさん
09/01/16 22:05:32
1.10個の2桁で正の10進データをstaticデータとしてプログラム中にいれ、11個目の数をー999とする。ポインターを使って、この10個の数の合計と平均を求めるプログラムをつくる。
2.Sachiko, Emiko, Setuko, Rie, Mariko, Sara の6人の名前をポインター配列にし、頭文字がSで次の文字がaの名前を表示するプログラムを書け。
3.3つの数字をmain文でscanfで与える。そして、関数maxで3つの数の最大値を求めて、mainに帰り次のように出力する。(p102参照)
3つの数を入力してください? 55 86 32
最大値は86です。
4.do while文をつかって、1から100までの和を求めよ。
よろしくお願いします><
106:デフォルトの名無しさん
09/01/16 22:08:08
>>98
#include <stdio.h>
int main(void)
{
char name1[32],name2[32];
int age1,age2;
scanf("%s",&name1);
scanf("%d",&age1);
scanf("%s",&name2);
scanf("%d",&age2);
if(age1>age2)
printf("%sは%sより%d歳年上",name1,name2,age1-age2);
else if(age1<age2)
printf("%sは%sより%d歳年上",name2,name1,age2-age1);
else
printf("%sと%sは同じ歳",name1,name2);
return 0;
}
107:デフォルトの名無しさん
09/01/16 22:17:54
>>106
わざわざありがとうございます!助かりました!ありがとうございました!
108:デフォルトの名無しさん
09/01/16 23:02:12
>>104
URLリンク(www.ne.jp)
見てのとおり、1,2の比を固定してもパラメータが四つもあるぞ。
大体、振り子が二つあるのに初期振れ角が一個とか、どうなってんだ?
第八回の課題をコピペして、直し忘れたんじゃないのか?
URLリンク(www-it.sci.waseda.ac.jp)
109:585 ◆i9Dvbn/Lf6
09/01/16 23:08:53
>>108
だとすると先生側のミスって事ですかね?
110:585 ◆i9Dvbn/Lf6
09/01/16 23:11:27
らちが明かないので諦めますね
ありがとうございました
111:デフォルトの名無しさん
09/01/16 23:16:04
>>109
URLリンク(www-it.sci.waseda.ac.jp)
付録と微小振動の式が違うんだから、絶対間違ってるだろ
112:デフォルトの名無しさん
09/01/16 23:35:54
>>585
URLリンク(kansai2channeler.hp.infoseek.co.jp)
やっとできた頃にあきらめるとは…
タイミング悪すぎやわ
113:デフォルトの名無しさん
09/01/16 23:58:51
校名晒されて怖くなったんじゃねぇの
114:デフォルトの名無しさん
09/01/17 00:08:28
>>113
公開されてる問題文を書き込んでおいて今更なあ・・・
115:デフォルトの名無しさん
09/01/17 00:12:29
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
<学籍番号(7カラム)><氏名(10カラム)><成績1(2カラム)><成績2(2カラム)>
こういう行が100行あるファイルを読み込んで、
点数の平均・標準偏差・偏差値を求め、
その後点数順に表示・順位の項目を加えて表示する。
[3] 環境
[3.1] OS: ウィンドウズ
[3.2] Visual C++
[3.3] 言語: C
[4] 期限: 1月20日まで
[5] その他の制限:
標準偏差と偏差値に関しては構造体を利用する。
よろしくお願いします
116:デフォルトの名無しさん
09/01/17 00:31:00
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
URLリンク(www.k-php.com)
この問題をR=0、R=0.2のそれぞれの場合について求めろという課題です
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限: 1月19日まで
[5] その他の制限:
特にないです
どなたかよろしくお願いします
117:デフォルトの名無しさん
09/01/17 01:24:17
専門的な知識が必要な課題が増えてきたなあ。
そういう時期なんだろうなあ。
俺には無理。
118:デフォルトの名無しさん
09/01/17 01:40:43
[1] プログラミング
[2] 問題文(含コード&リンク):
画面に任意の次数の単位行列を表示するプログラムを作れ。
[3] 環境
[3.1] OS:Windows XP
[3.2] g++
[3.3] C++
[4] 期限:1月19日まで
[5] 特に制限はないです。
お願いします;;
119:デフォルトの名無しさん
09/01/17 01:49:52
>>115
成績1、成績2ってなんだ?
点数とはどう関係する?
>>116
まずは、
v(t) = ...
i(t) = ...
まで手計算で解け
120:デフォルトの名無しさん
09/01/17 01:52:33
>>116
この辺を100ボルトにしてやれば、ナントカなるのだろうか?
URLリンク(www.ele.kanagawa-it.ac.jp)
121:デフォルトの名無しさん
09/01/17 01:55:06
>>118 表示の仕方が良く分からんけど
#include<stdio.h>
int main()
{
int i,j,k;
printf("次数を入れてね:");
if((1!=scanf("%d",&k))||(k<2)) {
printf("入力ミス");
return 0;
}
for(i=0;i<k;i++) {
for(j=0;j<k;j++) {
if(i==j)
printf("1 ");
else
printf("0 ");
}
printf("\n");
}
return 0;
}
122:デフォルトの名無しさん
09/01/17 01:57:46
>>118
#include <iostream>
using namespace std;
int main(){
int N;
cout << "Input N:";
cin >> N;
for(int i=0;i<N;++i){
for(int j=0;j<N;++j)
cout << ((i==j)?1:0) << " ";
cout << endl;
}
}
123:デフォルトの名無しさん
09/01/17 02:49:00
>>109
大抵は生徒のミス。
先生がミスってると思うのであれば、解答しなくても点くれるよ。
124:デフォルトの名無しさん
09/01/17 03:17:08
>>116 以下はR=0.2Ωの場合。RESISTANCE_RがRなので、適当に変えてね。
#include<stdio.h>
#define INDUCTANCE_L 0.5 // インダクタンスL [H]
#define CAPACITANCE_C 0.5 // 容量C [F]
#define VOLTAGE_E 100 // 電圧E [V]
#define RESISTANCE_R 0.2 // 抵抗R [Ω]
#define TIME_STEP 0.001 // 時間刻み [s]
int main() {
double current_i; // 電流i [A]
double charge_c; // Cの電荷 [C]
double voltage_r; // Rの電圧 [V]
double voltage_l; // Lの電圧 [V]
double voltage_c; // Cの電圧 [V] (=v)
int i;
current_i = 0;
charge_c = 0;
for (i = 0; i <= 30000; i ++) {
voltage_c = charge_c / CAPACITANCE_C;
voltage_r = current_i * RESISTANCE_R;
voltage_l = VOLTAGE_E - voltage_r - voltage_c;
if (i % 100 == 0) {
printf("t=%3.3f[s], i=%3.2f[A], Q_C=%3.2f[C], V_R=%3.2f[V], V_L=%3.2f[V], V_C=%3.2f[V]\n",
i*TIME_STEP, current_i, charge_c, voltage_r, voltage_l, voltage_c);
}
charge_c += current_i * TIME_STEP;
current_i += voltage_l / INDUCTANCE_L * TIME_STEP;
}
return 0;
}
125:デフォルトの名無しさん
09/01/17 04:02:42
>>120さん>>124さん
ありがとうございます。すごく参考になります。
126:デフォルトの名無しさん
09/01/17 06:32:16
丸投げでなくてすみません。あと一歩で完成だと思うのですが、実行するとコンソールの途中で処理が止まってしまいます。
(MPI_SendとMPI_Recvのデッドロック?)どこかを少しいじれば完成なのですが、ご指摘頂けませんか?
[1] 並列プログラミング
[2] 問題文(含コード&リンク):
整数を昇順にソートするプログラムを並列プログラミングで作成せよ。
mpirun -np 3 ./a.out 9
のように実行すると、3つのプロセスがそれぞれ3要素の乱数配列を作成し、
プロセス内でバブルソートした後にマージ処理を行って全体での昇順に格納します。
例)
proc0: array[0]=13, array[1]=7, array[2]=5
proc1: array[0]=9, array[1]=4, array[2]=2
proc2: array[0]=20, array[1]=12, array[2]=10
という乱数配列を生成した場合、まずプロセサ内でバブルソートして
proc0: array[0]=5, array[1]=7, array[2]=13
proc1: array[0]=2, array[1]=4, array[2]=9
proc2: array[0]=10, array[1]=12, array[2]=20
とする。最後にマージする。このとき、各プロセス内にarrayと同一個数の
メモリを使用してよいが、それ以上のメモリを使ってはならない。
(この例の場合各プロセスはそれぞれtemp_array[3]を使って良い。)
proc0: array[0]=2, array[1]=4, array[2]=5
proc1: array[0]=7, array[1]=9, array[2]=10
proc2: array[0]=12, array[1]=13, array[2]=20
僕のプログラムの、74行目から102行目までのどこかがおかしいのだと思います。
URLリンク(www.dotup.org)
[3] 環境
[3.1] OS:MacOSX
[3.2] gcc
[3.3] C
[4] 期限:1月17日まで
127:デフォルトの名無しさん
09/01/17 07:49:18
mpi.h
128:126
09/01/17 09:14:13
原因が判明しました。各処理内で1回だけ処理させるべきところを全てのプロセスに処理させて
しまっていたため、デッドロックになっていたみたいです。
で、そこは修正したのですが、肝心の結果がおかしく、ソートされていません。
理由が解る方いたら教えて下さい。宜しくお願いします。
URLリンク(www.dotup.org)
129:デフォルトの名無しさん
09/01/17 10:15:45
ソースをもう少し整理してください。
57から59の時点でおかしい気がする。
同じアドレスに複数のCPUで同時にアクセスしたらやばいんじゃない?
並列化するなら分割統治法のソートを用いるべき。
130:126
09/01/17 10:27:06
>>129
レス有り難うございます。同じ配列名ですが、CPU個別で別の配列なのでそれぞれソートしてくれるような気がするのですが。。
(最初の乱数配列作成も同じ手順でやっています)とりあえず、57〜59行目を以下のように変更しましたが、ソートはされませんでした。
for(i=0; i<nprocs; i++) {
if(mype==i) {
bubblesort(array, nlocal);
}
MPI_Barrier(MPI_COMM_WORLD);
}
131:129
09/01/17 10:36:36
なにー!?
132:デフォルトの名無しさん
09/01/17 10:45:33
>>130
これってどういう挙動のソート?
for(p=0; p<nlocal; p++) {
for(q=0; q<nlocal; q++) {
if(array[p]>temp_array[q]) {
array[p]=array[p]^array[q];
array[q]=array[p]^array[q];
array[p]=array[p]^array[q];
}
}
}
133:デフォルトの名無しさん
09/01/17 10:48:32
全体見てないからわからないけど、まさか p == q のときにif文内実行したりはしないよな?
134:126
09/01/17 10:58:03
>>132
ごめんなさい。一部誤りがありました。以下のように修正させて下さい。(修正しても結果はソートされませんでしたが。。)
for(p=0; p<nlocal; p++) {
for(q=0; q<nlocal; q++) {
if(array[p]>temp_array[q]) {
array[p]=array[p]^temp_array[q]; //array[q]をtemp_array[q]に変更
array[q]=array[p]^temp_array[q]; //array[q]をtemp_array[q]に変更
array[p]=array[p]^temp_array[q]; //array[q]をtemp_array[q]に変更
}
}
}
この意味するところは、
int dummy;
for(p=0; p<nlocal; p++) {
for(q=0; q<nlocal; q++) {
if(array[p]>temp_array[q]) {
dummy=array[p];
array[p]=temp_array[q];
temp_array[q]=dummy;
}
}
}
と同一のつもりです。使って良いメモリはプロセスあたりnlocal*2ですので。。
つまり、arrayとtemp_arrayの配列を比較し、arrayに小さい半分の(nlocal個の)整数を格納し、temp_arrayに大きい半分の(nlocal個の)整数を格納したつもりです。
135:デフォルトの名無しさん
09/01/17 11:13:23
同一じゃなあああああああああああーい
array[q]=array[p]^temp_array[q]; -> temp_array[q]=array[p]^temp_array[q];]
ってことかな
int dummy;
for(p=0; p<nlocal; p++) {
for(q=0; q<nlocal; q++) {
if(array[p]>temp_array[q]) {
dummy=array[p];
array[p]=temp_array[q];
temp_array[q]=dummy;
}
}
}
の結果はランダムになると考えてよいのか?
それとも、ソート処理の一環と考えるべき?
136:126
09/01/17 11:19:02
>>133
p==qのときもif処理は実行するようにしています。
例えば、以下のようなケースの場合、
array[0]=2, array[1]=9, array[2]=17
temp_array[0]=1, temp_array[1]=3, temp_array[2]=20
まずarray[0]とtemp_array[0]を比較し、array[0]の方が大きいので交換。
array[0]=1, array[1]=9, array[2]=17
temp_array[0]=2, temp_array[1]=3, temp_array[2]=20
次にarray[0]とtemp_array[1]を比較し、array[0]の方が小さいので何もしない。
次にarray[0]とtemp_array[2]を比較し、array[0]の方が小さいので何もしない。
次にarray[1]とtemp_array[0]を比較し、array[0]の方が大きいので交換。
と続けて行くと、最終的に
array[0]=1, array[1]=2, array[2]=3
temp_array[0]=17, temp_array[1]=9, temp_array[2]=20
となるようにするのが意図です。
137:デフォルトの名無しさん
09/01/17 11:23:32
>>136
いや
array[p]=array[p]^array[q];
みたいにどっちもarrayだったらの話だから気にするな
138:126
09/01/17 11:35:23
あっ。。。出来たかもしれません。
最終確認して、正常動作したらアップ致します。
139:デフォルトの名無しさん
09/01/17 11:56:52
>>121>>122
無事表示されました!ありがとうございます♪
140:デフォルトの名無しさん
09/01/17 12:07:09
1] プログラミング
[2] 問題文(含コード&リンク):
キーボードから入力された0から1までの数字各々の個数をカウントし、表示するプログラムを作れ
(例19003と打ち込めば、1・9・3は1、0が2、他は0)
[3] 環境
[3.1] Windows xp
[3.2] gcc
[3.3] C++
[4] 1月20日
[5] 制限なし
お願いします。
141:デフォルトの名無しさん
09/01/17 12:22:57
0から1まで?
142:デフォルトの名無しさん
09/01/17 12:31:26
あッ、間違えました
0から9までです。
143:デフォルトの名無しさん
09/01/17 12:39:23
>>140
#include <stdio.h>
#include <string.h>
int main()
{
char buf[256], *ptr;
int cnt[10], i;
fgets(buf, sizeof(buf), stdin);
for(i = 0; i < 10; i++){
cnt[i] = 0;
}
for(ptr = buf; *ptr != '\0'; ptr++){
if('0' <= *ptr && *ptr <= '9'){
cnt[*ptr - '0']++;
}
}
for(i = 0; i < 10; i++){
printf("%d: %d\n", i, cnt[i]);
}
return 0;
}
144:143
09/01/17 12:41:00
#include <string.h>
は余計だった。その行は消してくれ。
145:デフォルトの名無しさん
09/01/17 13:11:56
助かりました!
146:126
09/01/17 13:20:29
なんか軽くなりすましが入ったようですが、一応クラスタ環境でも
動作しましたのでソースアップしときます。各位コメント有り難う。
URLリンク(www.dotup.org)
147:デフォルトの名無しさん
09/01/17 13:36:13
ASCIIコードのうち印字可能(空白含む)な文字を表示しなさい。
なお、その際、英数字以外の文字は [ ] で囲みなさい。
お願いします
148:デフォルトの名無しさん
09/01/17 13:40:08
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int i;
for(i=0; i<256; i++) {
if(isprint(i)) {
if(isalnum(i)) putchar(i);
else printf("[%c]", i);
}
}
return 0;
}
149:デフォルトの名無しさん
09/01/17 13:41:29
>>147
#include <stdio.h>
#include <ctype.h>
int main()
{
int i;
for(i = 0; i <= 0xFF; i++){
if(isprint(i)){
if(isalnum(i)){
printf("%c", i);
} else {
printf("[%c]", i);
}
}
}
return 0;
}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/102 KB
担当:undef