C/C++の宿題を片付けます 96代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【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++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0102デフォルトの名無しさん
2007/09/23(日) 15:14:21ちょwwwそういう意味の問題だったのかwww
0103デフォルトの名無しさん
2007/09/23(日) 15:16:520104デフォルトの名無しさん
2007/09/23(日) 15:17:000105デフォルトの名無しさん
2007/09/23(日) 15:18:300106デフォルトの名無しさん
2007/09/23(日) 15:20:04電卓っぽく。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4952.txt
実行例書いてくれれば、あとで直す。
0107デフォルトの名無しさん
2007/09/23(日) 16:22:051+1=
と打っても真っ暗だよ。
0108デフォルトの名無しさん
2007/09/23(日) 16:31:21そりゃあんたの「お先」だろ。
0109デフォルトの名無しさん
2007/09/23(日) 18:00:54[2] 問題文(含コード&リンク):
エディットコントロールにアドレスを入れてボタンを押すと、
そのページを表示するプログラムを作れ。
[3] 環境
[3.1] OS: WinXP
[3.2] Borland C++ 5.5
[3.3] C言語
[4] 期限:9月25日まで
[5] その他の制限: 要は超簡易ブラウザです。
オリジナリティをつけろとの事なので、表示しているページに何か変化があった場合、
(例えばリンクの移動だとか、ボタンクリックだとか、フォームに入力だとか)、
エディットコントロールに変化がありましたって表示するような感じの機能をつけてもらえると幸いです。
0110デフォルトの名無しさん
2007/09/23(日) 18:03:15どこの大学?
0111デフォルトの名無しさん
2007/09/23(日) 18:05:450112デフォルトの名無しさん
2007/09/23(日) 18:12:25GUI とネットワーク接続に関するライブラリは何を使ってよいの?
0113デフォルトの名無しさん
2007/09/23(日) 18:17:21特に指定はないです。むしろ大事なのはUIなんです。
使用者に使いやすい設計を心がける事って言われたんですが・・・。
それにしても1から作れって鬼杉。ある程度の機能もったブラウザをいじれって言うならまだしも。
で、あたふたしてると期限が近づいてきて俺涙目みたいな・・・
0114デフォルトの名無しさん
2007/09/23(日) 18:21:240115デフォルトの名無しさん
2007/09/23(日) 18:22:01有料のライブラリとか使ったらあんたが困るでしょ?
講義で過去に作ったプログラムなどがあったらそれを
アップしてもらうのが話が早くて楽なんだけどな。
0116デフォルトの名無しさん
2007/09/23(日) 18:22:440117デフォルトの名無しさん
2007/09/23(日) 18:23:310118デフォルトの名無しさん
2007/09/23(日) 18:26:370119デフォルトの名無しさん
2007/09/23(日) 18:27:470120デフォルトの名無しさん
2007/09/23(日) 18:27:550121デフォルトの名無しさん
2007/09/23(日) 18:30:06なるほど、有料は確かに困ります。
講義で用意されたものは何もないのですが・・・。
一応自分でも色々と調べてみたのですが、IEコンポーネントを使うのが楽そうな感じでしたね。
ただ、VC++とかばかりでなかなか。Borlandじゃコンパイル出来なかったりしてもうワケワカラン状態です。
コンパイラはBorlandと書きましたが、実はこれは指定されてるわけではないです。学校のパソコンにはVisual Studio .netが
入ってますが、家にはBorlandを入れてます。さすがに有料はキツイって事で・・・。でも家でコーディングできないと不便なのでBorland。
0122デフォルトの名無しさん
2007/09/23(日) 18:32:01精神的な話だから、実際には泣いてないんだぜ。
0123デフォルトの名無しさん
2007/09/23(日) 18:32:040124デフォルトの名無しさん
2007/09/23(日) 18:32:180125109
2007/09/23(日) 18:34:54一つのコンパイラで全部やろうって考え自体おかしいんですかね?
ノートなのであまり重たいのは入れたくないなと思ってBorlandにしてみました。
その後Turbo C++入れて、一気に重くなってげんなりしてます。
というか、コンパイラの違いってなんなんですか・・・どれがいいとかあるんですか?って質問はスレ違いですね
0126デフォルトの名無しさん
2007/09/23(日) 18:35:260127デフォルトの名無しさん
2007/09/23(日) 18:35:57スレ違いって分かってるんだったら、書き込むなよ。
0128デフォルトの名無しさん
2007/09/23(日) 18:36:060129109
2007/09/23(日) 18:36:51涙目です。
0130デフォルトの名無しさん
2007/09/23(日) 18:36:55こいつアホだ。実際に泣いてるかどうかではなく、
そんなことを書き込むことを皆、からかってるのに。
0131デフォルトの名無しさん
2007/09/23(日) 18:48:08> そのページを表示する
って、一般的なサイト全て?
単純なボタンやフォーム程度なら自分でHTML解析してできるだろうけど、
そうじゃないならIEコンポやGecko使うしかないと思うよ
0132デフォルトの名無しさん
2007/09/23(日) 18:49:390133デフォルトの名無しさん
2007/09/23(日) 19:02:33MFC使えないのかな
0134109
2007/09/23(日) 19:27:49>>131-133
オリジナリティはもう少し練りたいと思います。ので、最低限の機能を持ったブラウザの実装をお願いします。
その後のUIやオリジナル機能は自分で頑張ってみます。とはいえ、時間はあまり残ってないのですが・・・。
IEコンポーネント使用で、コンパイラはBorlandC++5.5で出来る範囲でお願いします。
有料なものを使わなければ特に制限はないです。やりやすい形でお願いします。
もしBorlandじゃどうしてもダメというなら、私がVCを入れます。
0135デフォルトの名無しさん
2007/09/23(日) 19:29:00最初にまとめて書け。
0137デフォルトの名無しさん
2007/09/23(日) 19:35:020138デフォルトの名無しさん
2007/09/23(日) 19:38:13最初からやり直せ。
0139デフォルトの名無しさん
2007/09/23(日) 19:38:240140デフォルトの名無しさん
2007/09/23(日) 19:38:45VC入れて、IEコンポでぐぐってサンプル拾ってコンパイル。
ここまではできるだろう。
0141デフォルトの名無しさん
2007/09/23(日) 19:40:07[1] 授業単元:GUIプログラミング
[2] 問題文(含コード&リンク):
エディットコントロールにアドレスを入れてボタンを押すと、
そのページを表示するプログラムを作れ。
[3] 環境
[3.1] OS: WinXP
[3.2] Borland C++ 5.5
[3.3] C言語
[4] 期限:9月25日まで
[5] その他の制限: IEコンポーネントを使用。有料のものは使用しない事。
0142デフォルトの名無しさん
2007/09/23(日) 19:44:00VC++でIEコンポーネントのサンプルを置いてる良さそうなサイトはGoogleのトップに出てきたのですが、
Borlandだとインクルードファイルがなくて、コンパイル通らないですね。VC入れろと言われたら終わりですけど。
むしろそっちの方が幸せになれるのかな・・・
0143デフォルトの名無しさん
2007/09/23(日) 19:47:09依頼しなおしたのなら、黙ってろ。
0144デフォルトの名無しさん
2007/09/23(日) 19:50:25014516
2007/09/23(日) 19:58:521+1=
2 ←(計算毎に答えは出る)
3+3=
6
M+ ←(直前の計算結果がメモリに。この場合6)
MR+1=
7
end:(計算終了)
といった具合がベストだと思うのですが。
(問題には書いていなかったので、質問発言時に書けませんでした。
これも先生が望んでいる解答結果とはわかりませんが…)
度々申し訳ないのですが、よろしくお願いします。
0146デフォルトの名無しさん
2007/09/23(日) 20:16:02[2] 問題文(含コード&リンク):
キーボードからn+m,n-m,n*m,n/mを入力し、演算結果を出力せよ。
結果出力後は「再入力:」と出力し、再度計算できるように
ループさせる。
「off:」と入力することで計算を終了させる。
演算結果例:
5+6
11
再入力:
6*7
42
再入力:
off:
(計算終了)
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C言語)
[4] 期限: [2007年9月23日まで]
[5] その他の制限:特になし
0147デフォルトの名無しさん
2007/09/23(日) 20:19:36その形式以外の入力はないと仮定していいのか?
0148デフォルトの名無しさん
2007/09/23(日) 21:04:40>>16と共同で頑張れ
0149デフォルトの名無しさん
2007/09/23(日) 21:18:500150デフォルトの名無しさん
2007/09/23(日) 22:02:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4954.txt
0152デフォルトの名無しさん
2007/09/23(日) 22:11:32みんなかどうかは怪しいけどなw
0153146
2007/09/23(日) 23:19:02そうです。命令はn+m,n-m,n*m,n/m4つのみです。
>>149
桁数は指定はありませんでした。
先ほど書き忘れてしまったのですが、「n,mは実数」
という条件がありました。
0154デフォルトの名無しさん
2007/09/23(日) 23:25:01[2] 問題文(含コード&リンク): クイックソートのプログラムを作成しなさい
・ソート対象は文字列配列
・引数でソート対象、ソート後の配列をしていする
[3] 環境
[3.1] OS: XP
[3.2] VC++ 2008
[3.3] 言語: C
[4] 期限: なるべく早めに
[5] その他の制限: ソート以外の標準関数は使ってもよい
もう大方は作ってみたんですが、途中でエラーで終了してしまいます
協力お願いします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?
↑にうpしました。クイックソートと書いてるやつです
0157デフォルトの名無しさん
2007/09/24(月) 06:32:53それなりに努力の跡は見えるんだが、なんとも……。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4956.txt
それにしてもVC2008か…ちょっと欲しい。orcasはいつ出るのかなぁ。
ありがとうございます!
できたら悪い点が沢山あったと思うので教えて欲しいです
あと、VC++2008はベータ版ならダウンロードできますよ
0159デフォルトの名無しさん
2007/09/24(月) 10:02:55比較関数が間違ってる。文字列の第一文字目だけで比較するそうな。
>>158
157じゃないけど
1. sort_array[0] が NULL かどうかを見てるのは再帰の一発目だけを
区別する目的だろうけれど、そんなのは再帰中にやらず、157 のように
別の関数に分けるべき。これが落ちる原因になっている。
2. それを直しても正しく動作しない。last の前後に分けるところがダメ。
pivot を特別扱いしたいのだろうけど、並べ替え中に pivot も動いてしまう。
ここは 157 のように、両側から同時にやるのが常套テクニック。
今の方法でも、pivot を必ず最後に選ぶようにすると、一応できる。
1 を小細工で対応し、2 を適当に修正したものを以下に示す。
実際の修正量は数行程度のはずだけれど、相当不自然なコードなので
もう一度自分で考えて書いたほうが勉強になると思う。
0160デフォルトの名無しさん
2007/09/24(月) 10:09:03続き。関係ないところは行をつめている。
!! つきのコメントのあるところが主な修正箇所。
int quick_sort(const char *array[], int left ,int right,char *sort_array[]) {
int last = 0; int cnt = 0; int pivot = 0;
if(array == NULL || left < 0 || right < 0 || sort_array == NULL) return 0; //引数チェック
if(left >= right) return 1; //配列の要素が一つの場合
if(sort_array[0] == NULL){ //sort_array[0]がNULLならarrayをコピー
for(cnt = 0;cnt <= right;cnt++){
sort_array[cnt] = (char *)malloc(256); // !!malloc で適当に確保してからコピーする
strcpy(sort_array[cnt],array[cnt]);
}
}
pivot = (right+left)/2; //基準値を決める
change(sort_array, pivot, right); // !!pivot を最後に送りつける
pivot = right;
last = left;
for(cnt = left; cnt <= right;cnt++){ // !![left,last) は pivot 以下
if(sort_array[cnt][0] <= sort_array[pivot][0]){ // !!pivotが左側に入るために等号付き
change(sort_array,cnt,last++); !! last++ と後置インクリメント
}
}
quick_sort(array,left,last-2,sort_array); // !!array[last-1] が pivot なので抜く
quick_sort(array,last,right,sort_array);
return 1;
}
0161デフォルトの名無しさん
2007/09/24(月) 10:15:230162デフォルトの名無しさん
2007/09/24(月) 10:21:150163デフォルトの名無しさん
2007/09/24(月) 10:31:52[2] 問題文(含コード&リンク): -Promt the user for the base value(int date type).
-Read the base value.
-Promt the user for the exponent value(int date type).
-Read the exponent value.
-using a <cmath> function.
-The following output should be displayed:
/* Enter the base: 3
Enter the exponent: 2
3 to the 2 power equals 9.
The square root of 3 equals 1.41
Press any key to continue*/
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: VC++
[3.3] 言語: C++
[4] 期限: なるべく早くお願いします
[5] 習って4週間目です
めちゃめちゃですが自分のプログラムです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4957.txt
ご指摘ありがとうございます!
クイックソートがまだつかめてない様なのでもう少し考えます
0165デフォルトの名無しさん
2007/09/24(月) 10:46:10'^' はビットXOR演算子であり、べき乗を処理する演算子はC言語にはない
pow() を使え
sqr() ではなく sqrt()
他にも突っ込み所はあるけどコンパイルすれば気付くと思うので触れない
0166デフォルトの名無しさん
2007/09/24(月) 11:19:02これくらいの英語はできなきゃ恥ずかしいくらいだけど、
日本語訳しておくくらいの心遣いをしなさい
0167デフォルトの名無しさん
2007/09/24(月) 11:20:07アホ? 矛盾してるけど。
0168デフォルトの名無しさん
2007/09/24(月) 11:22:250169デフォルトの名無しさん
2007/09/24(月) 11:57:43併記しておけば問題ないし
ということで>>163は首を洗って出直してきなさい
0170デフォルトの名無しさん
2007/09/24(月) 11:59:39>>168
0171デフォルトの名無しさん
2007/09/24(月) 12:14:29自分の言葉でたのむわ
むしろ、依頼者が英語がわかんなくて適当にやって
さりげなく間違い訂正させてるのかもしれんし
油断は禁物だぞ
0172デフォルトの名無しさん
2007/09/24(月) 12:15:40>>168
0173デフォルトの名無しさん
2007/09/24(月) 12:19:38答えになってねーよ在日
かくいう俺は在日日本人だが
0174デフォルトの名無しさん
2007/09/24(月) 12:20:030175デフォルトの名無しさん
2007/09/24(月) 12:22:32英語は分かるがcが分からないんだ…
0176デフォルトの名無しさん
2007/09/24(月) 12:22:50-ベース値(int日付のタイプ)のためのユーザのPromt。
-ベース値を読んでください。
-解説者値(int日付のタイプ)のためのユーザのPromt。
-解説者値を読んでください。
-<cmath>機能を使用します。
-以下の出力を表示するべきです:
/*はベースに入ります: 3
解説者に入ってください: 2
3 2と、パワーは9と等しいです。
3の平方根はいずれも*/を続けるために合わせる1.41Pressと等しいです。
0177デフォルトの名無しさん
2007/09/24(月) 12:25:260178汗
2007/09/24(月) 14:39:17現在の地域時間から15時間後の日時を表示するプログラムを作成しなさい。
表示形式は日付と時間が表示されれば、自由とします。
0179デフォルトの名無しさん
2007/09/24(月) 14:41:15>>7
0180デフォルトの名無しさん
2007/09/24(月) 14:41:48>>178
>>1
0181デフォルトの名無しさん
2007/09/24(月) 14:45:40#include <time.h>
int main() {struct tm tm; time_t now = time(NULL); tm = * localtime(& now); tm.tm_hour += 15; mktime(& tm); puts(asctime(& tm)); return 0;}
0182汗2
2007/09/24(月) 14:55:45[2] 問題文(含コード&リンク):
次のプログラムで本来入れるべき処理は何か。それを指摘しなさい。
1:char*pstr;
2:
3:pstr=malloc(100)
4:sprintf(pstr,"123")
5:patr=malloc(10)
6:sprintf(pstr,"456")
7:free(pstr);
[3] 環境
[3.1] OS: (Windows)
[3.3] 言語: (C)
[4] 期限:早いと助かるス。
0183デフォルトの名無しさん
2007/09/24(月) 14:59:188:free(pastr);
0184デフォルトの名無しさん
2007/09/24(月) 15:00:008:free(patr);
0185デフォルトの名無しさん
2007/09/24(月) 15:04:33#include <iostream>
#include <cstdio>
#include <cmath>
int main()
{
using std::cin;
using std::printf;
using std::putchar;
char *str[4] = {"Enter the base: ",
"Enter the exponent: ",
"%d to the %d power equals %.0lf.",
"The square root of %d equals %1.2lf"};
int b,ex;
double p,r;
printf(str[0]);
cin >> b;
printf(str[1]);
cin >> ex;
printf(str[2],b,ex,pow(static_cast<double>(b),ex));
putchar('\n');
printf(str[3],b,sqrt(static_cast<double>(b)));
putchar('\n');
return 0;
}
The square root of 3 equals 1.41はおかしすぎる
0186デフォルトの名無しさん
2007/09/24(月) 15:54:34だったな確か
0187続・汗3
2007/09/24(月) 16:03:22違う行があればその行番号を表示するプログラムです。空白部分(�@〜�D)を埋めて、
プログラムを完成させなさい。
1:/* インクルード /*
2:#include<stdio.h>
3:#include<string.h>
4:#include<errno.h>
5:
6:FILE*Fp1;
7:FILE* �@ ;
8:
9:/* 関数宣言 /*
10:int main(int argc,char*argv[]);
11:
12:int Func_open(char*,int);
13:int Func_read(void);
14:
0188続続・汗3
2007/09/24(月) 16:04:5916:int main(int argc,char*argv[])
17:{
18: int nrtn;
19: int ncnt;
20:
21: nrtn=Func_open(argv[1],1);
22: if(nrtn!=0)
23: return1;
24: nrtn=Func_open( �A ,2);
25: if(nrtn!=0){
26: fclose( �B );
27: return1;
28: }
29:
30: ncnt=0;
31: nrtn=0;
32: while(nrtn==0){
33: nrtn=Func_read();
34: ncnt++;
35: }
0189続続続・汗3
2007/09/24(月) 16:05:5137: fclose(Fp1)
38: fclose(Fp2)
39:
40: if(nrtn<0)
41: printf("%sと%sは違う内容でした(%d行目)",
42: argv[1],argv[2],ncnt);
43: else
44: printf("%sと%sは同じ内容でした",
45: argv[1],argv[2])
46:
47: return(0);
48:}
49:
50:int Func_open(char*szfname,int nno)
51:{
52: errno=0;
53: if(nno==1)
54: Fp1=fopen(szfname,"r")
55: else
56: Fp2=fopen(szfname,"r")
57: if((Fp1==NULL&&nno==1)�U�U
58: (Fp2==NULL&&nno==2)){
59: printf("<%s>エラー:%s",szfname,strerror �C ));
60: return(-1);
61: }
62:
63: return(0);
64:}
0190続続続続・汗3
2007/09/24(月) 16:06:4266: int Func_read(void)
67:{
68: char*prtn1;
69: char*prtn2;
70: char szdat1[81];
71: char szdat2[81];
72: int nrtn;
73:
74: prtn=fgets(szdat1,81,Fp1);
75: prtn=fgets(szdat2,81,Fp2);
76: if(prtn1==NULL)�U�Uprtn2==NULL)
77: return(9);
78:
79: nrtn=strcmp(szdat1,szdat2)
80: if(nrtn!= �D )
81: return(-1);
82: return(0);
83:}
0191続続続続続・汗3
2007/09/24(月) 16:08:232つのレコードが同じかどうか判断しています。
これをmemcmpを利用したロジックに作り直しなさい。
当方、全く初心者なのでさっぱしです。ヨロシクお願いしますm(__)m
0192デフォルトの名無しさん
2007/09/24(月) 16:13:300193デフォルトの名無しさん
2007/09/24(月) 16:15:270194へたれ
2007/09/24(月) 16:27:29Windows
EZ EDITOR
for文,1次元変数,do-while文,if-else文,doubleなどは習いました。
期限:今日中
問題
2次方程式の開放プログラム:a,b,cをそれぞれ入力し、axの2乗+bx+c=0の2つの解を表示するプログラムです。
こんな感じで大丈夫でしょうか?
0195デフォルトの名無しさん
2007/09/24(月) 16:35:41>こんな感じで大丈夫でしょうか?
なんて言う前に、>>1嫁
EZ EDITORってエディタ?そんな情報いらん
コンパイラの方が重要だ
0196へたれ
2007/09/24(月) 17:00:15コンパイラの意味がわかりません。Visualかなぁ?
WZ EDITORは関係なかったんですね。
PC初心者ですいません
0197デフォルトの名無しさん
2007/09/24(月) 17:16:03今でも使っている奴いるのか?
0198デフォルトの名無しさん
2007/09/24(月) 17:19:34http://pc11.2ch.net/test/read.cgi/tech/1190555031/
0199デフォルトの名無しさん
2007/09/24(月) 17:42:41[2] 問題文 19と打てば、2 4 6 8 10 12 14 16 18と表示するプログラム
[3] 環境
[3.1] OS: XP
[3.2] VC++ 2008
[3.3] 言語: C
[4] 期限: なるべく早めに
[5] その他の制限:
0200デフォルトの名無しさん
2007/09/24(月) 17:45:220201デフォルトの名無しさん
2007/09/24(月) 17:45:35ほぼフルセットのC言語なマクロも使えるから、入門用の教材として使われるケースも希にある。
まあ、浮動小数点数とか使えないから、素直にVisualC++使っとけとも思うが。
■ このスレッドは過去ログ倉庫に格納されています