1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ] あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 92代目 pc11.2ch.net/test/read.cgi/tech/1183511364/
149 名前:デフォルトの名無しさん [2007/07/17(火) 11:39:39 ] [1]授業単元:プログラミング技術III [2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4651.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ: gcc [3.3] 言語: C [4] 期限:7/18まで [5] その他の制限:特になし よろしくお願いします
150 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:09:50 ] [1]授業単元:ゲームV [2]問題文:数独(wiki参照ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC )解読プログラム [3] 環境 [3.1] OS: Linux [3.2] コンパイラ: gcc [3.3] 言語: C [4] 期限:7/20 [5] その他の制限:関数は2つ以下、#include <stdio.h>のみを使用すること 宜しくお願いします
151 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:22:11 ] >>150 www.techfinesse.com/game/sudoku_solver.php こんなのがあるようだぞ その制限には引っかかるようだがなw
152 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:30:55 ] [1] データ構造論 [2]treeprintのプログラムを参考にして木をカッコ表記で表示するプログラムを作り、コマンド X で動作するようにせよ。 /* treeprint() : 2分探索木を根から順にすべて表示する(1行10個毎) */ int num; /* 1行のデータ個数を制御するための変数。*/ void treeprint(void) { num= 0; /* 木の根ノードからサブ関数trprintを用いてプリント開始。*/ trprint(start->right); } int trprint(TNODE *p) /* trprint(p) : p の2分木を再帰的にプリント。*/ { if(p != end){ /* p が終端ノードでないならば */ trprint(p->left); /* pの左部分木を再帰的にプリント。 */ printf("%5d%c",p->key, (++num % 10) ? ' ':'\n'); /* pのkey値を表示。 */ trprint(p->right); /* pの右部分木を再帰的にプリント。 */ } } [3.1] Linux [3.2] gcc 3.4 VC 6.0等 [3.3] C言語 [4] 2007年07月18日12:00まで] [5] プログラムの中のtreeprintだけ問題文の載せています よろしくお願いします
153 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 13:33:01 ] >>149 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4652.c
154 名前: ◆Il0WZuGYWw mailto:sage [2007/07/17(火) 14:47:00 ] >>150 bsdのportsの中に入ってるお
155 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:36:03 ] >>150 何の工夫も無い力技だが一応やってみた。 出回っているソースは確実にこれよりはマシだろう。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4656.txt
156 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 16:23:42 ] あ、あ、ぼるじょあのほうにカキコしてしまった…… こっちのほうがいいのかな?マルチは怒られますよね?よければ誰かぼるじょあスレ見てください〜〜
157 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:15:37 ] >>142 遅い時間にも関わらず回答ありがとうございます。 確かに動作できました。 しかしながら関数を3つ作ってとけとのことでしたorz すみませんがお時間がありましたら回答おねがいします。 問題は>>140-141 です よろしくお願いします<(__)>
158 名前:c言語初心者 [2007/07/17(火) 20:00:23 ] 授業名:プログラミング1 プリントを渡されてやってこいとのことでした。 問題1 サイコロを10000回投げたとき、1から6までのそれぞれの目が 何回ずつ出たか調べるプログラムを作成せよ #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int main(void) { int i, j,spot, f[ ?(1) ]; srand(0); for (j = 1;j <= 6;j++){ f[j] = 0; } for( i = 1;i <= 10000; i++){ spot = (int)(6 * uniformrand()) + 1; [ ?(2) ] } return 0; } です。どうかよろしくお願いします。
159 名前:デフォルトの名無しさん [2007/07/17(火) 20:01:52 ] C++です 距離の単位にyかmが入力されるともう片方の単位に変換するプログラムです。 ただし、距離を変換する部分は、関数transを定義し、main関数で呼び出すこと。 距離の数値を入れた後に動かなくなるんですが、何が違うのか教えてほしいです。。 よろしくお願いします #include <iostream> using namespace std; double trans(char a,double b) { double c; cin>>a; cin>>b; if(a='y') { c=b*0.914; return c; } else if(a='m') { c=b/0.914; return c; } }
160 名前:デフォルトの名無しさん [2007/07/17(火) 20:02:55 ] 続き int main() { char a; double b; cout<<"meter or yard -->"; cin>>a; while(a!='E') { cout<<"input data -->"; cin>>b; { if(a='y') { cout<<b<<" yard --> "<<trans(a,b)<<" meter"; } else if(a='m') { cout<<b<<" meter --> "<<trans(a,b)<<" yard"; } cout<<"meter or yard -->"; cin>>a; } } return 0;
161 名前:デフォルトの名無しさん [2007/07/17(火) 20:04:35 ] a=='y' にしろ
162 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:05:45 ] >>158 結果の出力は要らないのか?
163 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:05:48 ] >>158 #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int main(void) { int i, j,spot, f[7]; srand(0); for (j = 1;j <= 6;j++){ f[j] = 0; } for( i = 1;i <= 10000; i++){ spot = (int)(6 * uniformrand()) + 1; f[spot]++; } for(i=1; i<=6; i++) { printf("%d %d \n",i,f[i]); } return 0; }
164 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:06:15 ] >158 (1)7 (2)f[spot]++;
165 名前:c言語初心者 [2007/07/17(火) 20:07:34 ] たぶん(1),(2)にあてはまるものをいれてこいってことだと思います。 よろしくおねがいします。。
166 名前:デフォルトの名無しさん [2007/07/17(火) 20:10:40 ] >161 改善されませんでした・・・
167 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:14:50 ] >>159 >>161 に加えて trans(a,b)で余計に a, b を入力させようとしてるから. 引数で渡してんだから,そこで入力させてどうする.
168 名前:c言語初心者 [2007/07/17(火) 20:27:54 ] ありがとうございました 講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします 1,2,・・・13の中から5個の数をランダムに選び出すプログラムを作成せよ #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[13]; void RandomPermutation(int n) { 例題2と同じ } int main(void) { int i; RandomPermutation(13); for (i = 0;i < (1)? ; i++){ printf("%4d \n", (2)? ); } return 0; } です。(1)(2)の部分をお願いします。『例題2と同じ』という場所は 問題の横に横に例題2というのが乗っていました。だけど、自分はどこからどこまでが例題2 と同じ部分なのかがわからないです。例題2の部分がいるならそれも打ちます。よろしくお願いします。
169 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:37:44 ] (1)13 (2)a[i]
170 名前:デフォルトの名無しさん [2007/07/17(火) 20:41:31 ] [1] 授業単元:C言語演習 [2] 問題文: テキストファイルを読み込みたとえばテキストファイルに 3+4= 5*6= ...etc(これは他のその他の数式、etcと直接出力しない) と書かれていたら画面に 3+4=7 5*6=30 ...etc と出力せよ。 [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C言語) [4] 期限: 7月19日
171 名前:c言語初心者 [2007/07/17(火) 20:46:29 ] 講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、 ただし、トランプにはジョーカーは含まれないものとする。 #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[ (1)? ]; void RandomPermutation(int n) { 例題2と同じ } int main(void) { int i; RandomPermutation( (1)? ); for(i = 0; i < 5; i++){ if( (2)? ){ printf("ハート% 4d \n", n (3)? ); }else if ( (4)? ){ printf("ダイア% 4d \n", n (5)? ); }else if ( (6)? ){ printf("クラブ% 4d \n", n (7)? ); }else{ printf("ハート% 4d \n", n (8)? ); } return 0; } 問2もありがとうございました。(1)から(8)までをよろしくお願いします
172 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 20:47:34 ] >>170 演算の種類は?
173 名前:デフォルトの名無しさん [2007/07/17(火) 21:06:43 ] >>172 足し算、引き算、割り算、掛け算です。説明不足ですいません。
174 名前:スモーク [2007/07/17(火) 21:23:34 ] こんばんわ。すみません、今度は説明を書いたのでよろしくお願いします。 「1」課題:C言語でコードを記述して実行する。 「2」内容:多分岐型のコードを使って整数型の変数a・b と、文字型の変数e を用意し、 キーボードから2つの数値と1つの演算子を入力して、その計算結果cを出力するプログラムを作る。 というもの。さらに、実行される計算は和・差・積・商・剰余の5種類とし、 演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で、 表現されるものとする。 演算子にそれ以外の記号が入力された場合は、 エラーメッセージを表示する。 また0による除算の回避も含めるものです。 「3」OS:WINDOWS XP SP2。 「4」バージョン:Visual Studio 2005。 「5」期限:今週の金曜まで。 「6」 コンパイラのバージョン: gcc。 これでおねがいします。
175 名前:デフォルトの名無しさん [2007/07/17(火) 21:23:47 ] [1] 授業単元: CG入門 [2] 問題文 縦横400ピクセルのスクリーン上に3次元空間の3角形が複数個、投影される。 この3角形についてそれぞれ @スクリーン上の頂点:(x1,y1)(x2,y2)(x3,y3) A頂点のZ値(視点から3次元空間までの距離):Z1,Z2,Z3 B三角形の色:(r,g,b)-均一色 が標準入力から与えられるとき、Z−バッファ法に基づいてスクリーン上に三角形を描き 最終結果をppm画像として出力するプログラムを作成せよ。 *必要なデータは標準入力から入力するものとし、かつ複数のB角形に対応させる事 (B角形個数は予め与えてもよい) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual studio. [3.3] 言語: C [4] 期限: 2007年7月19日 11:00まで この手のプログラムはスレ違いかもしれないと思いつつも、C言語で書いて来いとのことなので 書き込ませて頂きました。何卒、よろしくお願いします。
176 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:25:47 ] >>170 できた。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4657.txt
177 名前:デフォルトの名無しさん [2007/07/17(火) 21:28:47 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 線形探索 次の表は、平成19年のお年玉付き年賀葉書の当選番号である。 1等 157788、457190 2等 5161、7093、7485、9614 3等 64、79 手元に届いた年賀状の抽選番号をキーボードから入力し、 当選したかどうかチェックして結果を表示するプログラムを作成する。 当選番号(の下2桁)は、キーの配列に初期値として格納する キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。 探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。 【発展】 余力のある人は、下2桁に限らず、全桁を初期値として格納し、当選のチェックを実行するプログラムを作成してみること。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VB [3.3] 言語: C [4] 期限: 明日まで [5] その他の制限: 習ったのは 配列 if-else文 繰り返し ポインタ 線形探索と基礎知識 です。[発展]の方でお願いします。
178 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:37:38 ] >>174 >>170 と同じ人か? %演算子の分追加、変数名微修正と コマンドライン引数を指定するとそのファイルから、 指定しないと標準入力から読み取るようにした。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4658.txt
179 名前: ◆y43pIoOHKo mailto:sage [2007/07/17(火) 21:39:12 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 自分の名前をローマ字でキーボードで入力し、文字数を表示させる関数、名前を逆順にする関数を 各自それぞれ定義しプログラムを組みなさい。結果の表示はmainで行い、姓と名の間は1文字 空白を入れること。ただし、変数が文字型、ポインタ型のみの場合の2つに分けてプログラムを組みなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語:C++ [4] 期限: 2007年07月18日10:00まで] [5] その他の制限:できれば、do-while文及びfor文を使用してお願いします。
180 名前:デフォルトの名無しさん [2007/07/17(火) 21:41:12 ] >>176 さん、ありがとうございます。 けどまた説明不足でした…。小数の場合も含みます…。 >>170 追加例 ファイル内 1.5+1.5= 3*5= 1.5+2= 出力 1.5+1.5=3 3*5=15 1.5+2=3 何度も説明不足ですいません…。この小数と整数を区別して出力するのが むずかしいです。よかったらお願いします。
181 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:15 ] >>180 説明し忘れが無いか一度確認したほうがいいと思うよ 小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う
182 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:22 ] >>180 aとbの型をdoubleにして、 fscanfの%dを%lfに、 printfの%dを%gにすればおk
183 名前:デフォルトの名無しさん [2007/07/17(火) 21:50:56 ] 170です。 >>182 さんありがとうございます!!これで完成しました!! みなさんありがとうございました。%gとは便利な…。
184 名前:デフォルトの名無しさん [2007/07/17(火) 21:52:10 ] そんな事より、今日うちに犬が死んだ。老衰だった
185 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:53:27 ] >>34 >>37 遅くなりましたがありがとうございました。
186 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:01:04 ] [1] 授業単元: ソフトウェアシステム [2] 問題文(含コード&リンク): 以下の円周率を2000桁もとめるプログラムを できるだけ高速に計算できるように改良せよ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4659.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:分かりません [3.3] 言語: C [4] 期限: 2007年7月18日12:00まで [5] その他の制限: マイコン。配布プロラムはマチンの公式を使っている。 若干スレ違いかもしれないですが、よろしくお願いします。
187 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:05:38 ] >>186 マイコンかWindowsかどっちなんだ。つかマイコンだろうな。 どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴 いないんじゃないか。
188 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:07:21 ] >>175 よくわからんが、おもむろにCreateWindow()で窓を開く コンソールアプリをつくれということだろうか。
189 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:09:28 ] >>187 Windows上で開発してるってことだろ、多分 せめてどんなマイコンを使ってるかわからないと難しいな・・・
190 名前:デフォルトの名無しさん [2007/07/17(火) 22:17:30 ] ○×ゲーム Linuxのプロンプト上でplay com/man対戦、先攻/後攻を選べる
191 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:20:53 ] 最近三目並べはやってんのかyo
192 名前:175 [2007/07/17(火) 22:37:33 ] >>188 アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと それを適当なソフトで忠実に再現したppm画像に出してくれるものです。 同じ事言ってたらすいませんorz できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m
193 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:40:26 ] >>186 です >>187 >>189 説明不足ですいません。 答えになってないかいもしれないですが、この付属のV850基板を使っています。 ttp://www.cqpub.co.jp/interface/contents/2007/200705.htm
194 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:42:40 ] V850基板なら手元にあるぜ でもまだソフトインスコしてない・・・
195 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:43:16 ] >>192 いや、スクリーンに描画しろとか書いてあるからさ。 それを見なかったことにして、PPM画像ファイルを出力するだけなら、 標準Cの範囲のプログラムで出来る話だが、400*400の画面に 描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。
196 名前:190 ◆Oa0JSQvro2 [2007/07/17(火) 23:14:27 ] 追記です。 期限は木曜夜でお願いします。 よろしくおねがいしますm(__)m
197 名前:175 [2007/07/17(火) 23:14:34 ] >>195 なるほどそういう事でしたか… 特に制限などは言われていないので(Cのみとは言われてません) このスレの趣旨に沿っていないかもと思ったのです。 できれば400X400は後に考えますので、ファイル出力の部分をお願いします。
198 名前:デフォルトの名無しさん [2007/07/17(火) 23:36:49 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 練習13-2(気象情報) インターネットを利用して出身地の観測開始から現在までの 気象情報を入手し,各年の月別平均気温データを作成する. 作成したファイルから気象データを読み込んで, (1)平均気温が最も低い年月と最も高い年月を探索して 両者の年月と気温をディスプレイに出力する (2)年間平均気温を計算し,高い年から順に 年と年間平均気温をファイルに出力する プログラムを作成しなさい. 気象庁HP(www.jma.go.jp/jma/index.html )参照 [3] 環境 [3.1] OS: Windows [3.2] [3.3] 言語:C言語 [4] 期限: 2007年 7月18日の朝 [5] その他の制限: 出身地は神戸でお願いします
199 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:38:00 ] >>196 >>1 のテンプレを漏れなく書け。
200 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:45:39 ] × 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。 は、どうあつかうんだ?
201 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 02:31:07 ] [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク): longが定義されている数の最大値LONGMAXをもとめろ。 例えば、i=1 を2倍していき、LONGMAXの最大値を求める。 別にこの方法でなくてもいい。各自にまかせる。 ちなみに LONGMAXはおよそ2147483647である。 余裕があるものはdouble などもやることが望ましい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc2.95-3) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: (2007年07月25日23:59まで) [5] その他の制限:無制限 さぐりで下のようなところまでは書きました。 #include <stdio.h> #define LONGMAX 2147483647 int main(void) { long int i,i2; /*これは0 ... の無限ループ for(i=1;i<LONGMAX;i*=2) printf("%d ",i); */ for(i=1;;i2=i,i*=2){ printf("%d ",i); if(i<i2){ printf("%d is LONGMAX\n",i); break; }}} までできましたが、値が少し違い微妙です。 それと、コメントカットしたらなぜ無限ループになるのでしょうか? これにかなり悩みました。
202 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:17:08 ] >>201 無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。 で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。 後半での出力は…少しの違いなのか? --- #include <stdio.h> int main(void) { unsigned long max = -1; printf("Unsigned MAX:%ud\n", max); printf("Signed MAX:%d\n", max >> 1); return 0; } ----
203 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:37:53 ] >>201 2倍していき・・・verで書いてみた #include <stdio.h> #include <math.h> int main(void) { int i=0; long n, tmp; while( (tmp = pow(2, i)-1) >= 0 ){ n = tmp; i++; } printf("LONG MAX : %d\n", n); return(0); }
204 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:54:03 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4660.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C [4] 期限:7/19まで [5] その他の制限:課題@はwhile文、Aは両方とも構造体、Bは全てポインタと構造体の単元です @とAは自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです どうかご教授の程お願いします
205 名前:デフォルトの名無しさん [2007/07/18(水) 07:36:23 ] 授業単元:プログラミング 問題文(含コード&リンク): 環境 OS:Windows xp コンパイラ名とバージョン:ボーランド 言語:C 期限: その他の制限: テーマ:標準関数の利用 問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい 使用する標準関数:isalpha()など 実行画面 文字列入力==>A12H&jfTy8uZ3# 英字:AHjfTyuZ その他:12&83# 問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい 使用する標準関数:strncmp(),strcpy(),strlen()など 実行画面 文字列入力(m1)==>ABCDEFAADABC 削除文字列(m2)==>ABC 結果文字列(m1):DEFAD 注意:配列の使用はm1,m2のみとする
206 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 07:56:14 ] >>204 よく見てないけど @ =< じゃなくて <= isdigit() -> isdigit(moji) printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ) A × while(buff = getchar()!="0 0 0"){ whileのなかのsscanfのbufferなんてない × printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}
207 名前:206 mailto:sage [2007/07/18(水) 07:57:21 ] あー printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ) に訂正です
208 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 08:10:29 ] >>186 ttp://www.sra.co.jp/people/miyata/algorithm/multprec.txt たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。
209 名前:デフォルトの名無しさん [2007/07/18(水) 08:34:24 ] >>177 奮闘中ですが、できませんorz お願いします!
210 名前:190 ◆Oa0JSQvro2 [2007/07/18(水) 09:12:44 ] [1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: [3.3] 言語:C [4] 期限: 今週金曜夜 [5] その他の制限: 特になし
211 名前:デフォルトの名無しさん [2007/07/18(水) 10:09:46 ] [1] プログラミング基礎 [2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上) および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。 詳しいことは次のアドレスに書いてあります。 itohws03.ee.noda.tus.ac.jp/~matsuda/programming/final/programming.pdf [3.1] Unix [3.2] gcc [3.3] c [4] 7月27日(金) [5] 私の学籍番号の下三桁は080です。
212 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 10:14:23 ] どうせその学籍番号は他人のものだろ?
213 名前:デフォルトの名無しさん [2007/07/18(水) 10:41:19 ] >>177 VBではなくVSです
214 名前:c言語初心者 [2007/07/18(水) 10:56:39 ] 講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします 問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。 #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0)) int a[ (1)? ]; void RandomPermutation(int n)
215 名前:c言語初心者 [2007/07/18(水) 10:57:29 ] 『続き』 { 例題2と同じ } int main(void) { int i; RandomPermutation( (1)? ); for(i = 0; i < 5; i++){ if( (2)? ){ printf("ハート% 4d \n", n (3)? ); }else if ( (4)? ){ printf("ダイア% 4d \n", n (5)? ); }else if ( (6)? ){ printf("クラブ% 4d \n", n (7)? ); }else{ printf("ハート% 4d \n", n (8)? ); } return 0; } 例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。
216 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:07:22 ] >>209 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4661.c
217 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:19:47 ] >>215 四の五の言わないで全部書き出しな
218 名前:デフォルトの名無しさん [2007/07/18(水) 11:21:57 ] >>175 ですがどうにもうまく三角形が描けませんorz ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m
219 名前:c言語初心者 [2007/07/18(水) 11:39:59 ] >>215 0,1,2, … 、99をランダムに並べる #include<stdio.h> #include<stdlib.h> #define uniformrand()((double)rand() / ((double)RAND_MAX + 1)) int a[100]
220 名前:c言語初心者 [2007/07/18(水) 11:40:29 ] 続き void RandomPermutaion(int n) { int i, j, z; for (i = 0; i < n; i++) { a[i] = i; } for(j = n - 1; j > 0; j--) { i = (int)(j * uniformrend()); z = a[i]; a[i] = a[j]; a[j] =z; } } int main() { int n, i; n = 100; RandmPermutation(n); for (i = 0; i < n; i++){ printf("%4d", a[i]); } printf("/n"); return 0; } が例題2です。よろしくお願いします
221 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:56:24 ] >>220 できたぞ つか printf("ハート% 4d \n", n (3)? ); とか printf("ダイア% 4d \n", n (5)? ); って、問題間違ってないか?
222 名前:c言語初心者 [2007/07/18(水) 12:00:14 ] 間違ってました。申し訳ありません。 printf("ハート% 4d \n", (3)? ); printf("ダイア% 4d \n", (5)? ); です。 よろしくお願いします。
223 名前:デフォルトの名無しさん [2007/07/18(水) 12:07:51 ] [1] 授業単元: C [2] 問題文(含コード&リンク):単純選択法 大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。 ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。 【ヒント】 配列の大きさの指定 #define SIZE 20 単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する 途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。 比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。 発展 以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。 配列要素の入力を行う input_array 配列要素の出力を行う output_array 単純選択法によるソート select_sort [3] 環境 [3.1] OS: WindowXP [3.2] コンパイラ名とバージョン:VS2005 [3.3] 言語: C [4] 期限: いつでも [5] その他の制限:なし
224 名前:デフォルトの名無しさん [2007/07/18(水) 12:09:04 ] >>223 発展までは書いてみました #include<stdio.h> #define SIZE 20 void kadai28() { int key[SIZE]; int i, j, p, cnt = 0, w; for(i = 0; i < SIZE; i++) scanf("%d", &key[i]); for(j = 0; j < SIZE; j++) printf("%3d", key[j]); printf("\n"); for(i = 0; i < SIZE; i++){ p = i; for(j = i+1;j < SIZE;j++){ if(key[j] < key[p]) p = j; cnt++; } w = key[p]; key[p] = key[i]; key[i] = w; for(j = 0; j < SIZE; j++) printf("%3d", key[j]); printf("\n"); } printf("cnt = %d\n", cnt); return; } 発展の方お願いしますー
225 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:10:49 ] [1] プログラム基礎復習 [2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度) [3] 環境 [3.1] Windows2000プロ [3.2] gcc [3.3] C [4]7/20 [5]main以外の関数を作ってはいけない お願いします。さっぱりなので・・・
226 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:13:08 ] >>225 「+」「-」「*」「/」「√」位かな?
227 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:15 ] >>222 じゃ、パーツだけ教えるよ n a[i]/13==0 a[i]/13==1 a[i]/13==2 a[i]%13 a[i]%13 a[i]%13 a[i]%13 または n a[i]&3==0 a[i]&3==1 a[i]&3==2 a[i]/4 a[i]/4 a[i]/4 a[i]/4 好きなほうを使ってくれ
228 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:26 ] >>226 お願いできますか? charだと256までしか出来ないので積や商がさっぱりで・・・
229 名前:c言語初心者 [2007/07/18(水) 12:20:22 ] >>221 さん。 頼んでおいて申し訳ないのですが、>>214 の回答をよろしくお願いします。
230 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:20:25 ] >>225 小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?
231 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:24:54 ] >>229 >>227 にヒントを書いたんだけど、不服?
232 名前:225です mailto:sage [2007/07/18(水) 12:28:13 ] >>214 さん 問題文の意味がよく分からないんですけど ジョーカーは1枚ですよね? それでランダムで5枚引くと・・・・
233 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:29:21 ] >>225 小数点以上は無限大?
234 名前:225です mailto:sage [2007/07/18(水) 12:32:02 ] >>233 指定されていないので 多分無限だと思います
235 名前:c言語初心者 [2007/07/18(水) 12:33:46 ] >>231 さん 不服なんてとんでもないです。ただ、ヒントもらっても自分が解けないだけです。申し訳ないです。 >>232 さん たぶんジョーカー2枚を抜いた52枚でのことだとおもいます。よろしくお願いします。
236 名前:225です mailto:sage [2007/07/18(水) 12:33:59 ] 足し引きはifで100で固めれば簡単に出来ることはわかったんですけど
237 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:34:33 ] 多倍長の実数計算を実装させて >[5]main以外の関数を作ってはいけない か 冗談きつすぎ
238 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:37:24 ] >>225 100^256 までしかできなくね? 無限じゃネージャン
239 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:38:15 ] 再帰下降も不可、と
240 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:39:19 ] >>238 勿論char[]で多倍長を実装するんでしょ そうじゃなきゃそもそも実数すら扱えん
241 名前:256です mailto:sage [2007/07/18(水) 12:39:40 ] ごめんなさい頼る所はココしかないので・・・・orz
242 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:40:08 ] 未来からの使者か?
243 名前:149 [2007/07/18(水) 12:58:59 ] >>153 さんのテキストをコンパイルしてみたのですが、 /tmp/ccY67IGB.o(.text+0x163): In function `angle': : undefined reference to `sqrt' /tmp/ccY67IGB.o(.text+0x177): In function `angle': : undefined reference to `sqrt' /tmp/ccY67IGB.o(.text+0x197): In function `angle': : undefined reference to `acos' collect2: ld はステータス 1 で終了しました と表示されて、./a/out のファイルが作成されなかったのですが これは何でしょうか・・
244 名前:デフォルトの名無しさん [2007/07/18(水) 13:00:17 ] 何方か205お願いします
245 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:01:49 ] エラーメッセージじゃないかな??
246 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:05:23 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 特定の単語にgoogle 検索のリンクをはるプログラムをつくれ。 例えば、下は「テスト」という単語をgoogle検索したリンク である。 q= 以降は「テスト」という単語がURLエンコード(unicode)された文字列となっている。 www.google.co.jp/search?hl=ja&q=%E3%83%86%E3%82%B9%E3%83%88 1. htmlファイルを受け取る 2. 検索リンクにしたいいくつかの指定した単語を受け取る 3. すでにリンク済みの単語に注意しながら、指定した単語をgoogle 検索のリンクにする。 (例)「宿題」をgoogle 検索されたリンクにする。 この宿題ができなかったら単位はあげません。 -> この<a href="www.google.co.jp/search?hl=ja&q=%E5%AE%BF%E9%A1%8C"> 宿題</a>ができなかったら単位はあげません。 なお、目的を果たせるプログラムだったらこの形式でなくてもかまわない。 余裕がないものは ・検索ワードはURLエンコードの必要のない半角英数等だけでいい。 ・受け取った検索ワードはすでにリンクされていないと仮定してもいい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc2.95-3 [3.3] 言語: C [4] 期限: (2007年07月31日17:00まで) [5] その他の制限: 何を使っても構わない
247 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:07:40 ] >>243 -lmつけると幸せになれる
248 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:08:14 ] >>225 組むのめんどいからヒントだけあげるよ 現在のCPU能力では「+」と「-」しか演算が出来ない。 「*」「/」はただの演算方法でしかない 例 a*bの場合 int i; for(i=0;i=b;i){a++}
249 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:09:34 ] >>248 ちょw