2 :
デフォルトの名無しさん :2008/07/23(水) 02:19:10
6 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/07/14(月) 07:52:06 基本的にスレ立て人がルールを作りますんで、最近話題の 回答テンプレはルール違反なんで遵守しないようお願いします。 以下の行為のいずれかを行った場合、回答テンプレ遵守行 為と見なされる場合がありますのでご注意下さい。 1)回答レスに回答の品質を書く事。 2)回答レスに外部サイト(アップローダー)に置かれたコードへのリンク を貼る際に、このレス(スレURL)とソースの間に相互関連づけを行 うこと。 3)コンパイル、コード作成に使用した環境を書く事 4)回答に余計なコメントを入れること。 (ソースに入れるコメントは本スレとの関連情報以外ならおKです)
後、まとめ作業の方は、2スレくらいに纏めて、小さいけど省スペース。
C/C++の宿題を片付けます 113代目の
>>406 です。
すいませんでした。
出直してきます。
本当に、お騒がせしました。
>>908 勉強不足で、分からないまま色々書き込んでしまい
本当にすいませんでした。
ありがとうございました。
宿題ではなくコンパイラのテストで以下の問題の類題が 出題されるのですが、解らなくて…。 問:次の言語を表す正則表現を示しなさい。 1.アルファベット{0,1}上の記号列のうち、0から始まり1が 0回以上続くもの全体からなる言語。 2.アルファベット{a,b,c}上の記号列のうち、1個以上のaと1個以上の bを含むもの全体からなる言語。 3.アルファベット{0,1}上の記号列のうち、0と1が交互に 出現するもの全体からなる言語。 テストが今日の朝なので、期限は今日の朝までです。 急で申し訳ありません。 また、適切なスレが分からなかったのでスレ違いっぽいですが、 よろしくお願い致します。
>>6 [regular expression]
1. 01*
2. a+c*b+|b+c*a+
3. 0(10)*|1(01)*
流派が何故かある性器表現w
>>7 2番って、[abc]*a[abc]*b[abc]*|[abc]*b[abc]*a[abc]*じゃなくて良いの?
>>7 3番って、0(10)*|1(01)*|0(10)*1|1(01)*0 じゃなくて良いの?
>>3 了解です。
しかし今のペースでは3スレにまたがってしまいます。何を省きましょうか?
(個人的な意向としては、1) 期限が切れた問題でも未解決のものは提示したい。2) 回答があった問題でも1回はリストに入れておきたい。)
内容要約を省く方向で考えていますがどうでしょうか。
ご意見をお待ちしています。
13 :
12 :2008/07/23(水) 06:22:36
>>2 個人的には、「回答テンプレートはルール違反」とは思いませんし、回答テンプレの提案行為事態を否定するものではありません。
ただし前スレ、前々スレで提案された内容については、すべて「強く反対」します。
いや、いちいち五月蝿い。最低限回答したソースを提示すりゃ良いのに。
自分が答える気がないのに、ソースを提示しないくせに質問者に
お前がやれみたいなアホなことぬかすボケがいたり、少しは
>>1 とスレタイを読めよ、ゆとりw
四の五の言わず、ソース以外の部分は各自適当に書いておけ。 一番重要なのは、課題に沿った答えの結果を出す、コンパイル可能なソースコード。 人間の言葉であれこれ解釈だのやり取りだのせんでもよろしい。
>>6 無駄に短縮したぜ
01*
C*(B[BC]*A|A[AC]*B)[ABC]*
(1|)(01)*(0|)
17 :
デフォルトの名無しさん :2008/07/23(水) 07:08:28
前スレ979 CSV形式にはタブで区切るのもあるので、 char *gDlim = " ,\n\t"; あとはちゃんとBook1.csvを同じフォルダに置かないとだめ。 fopenの戻り値がNULLならエラーするようにしておくんだ!! 前スレ968 mainだけの差分。 int main(){ int i,n;double AreaTotal,area; point O,R,C; printf("点数はなんぼじゃ!");scanf("%d",&n); for(i=0;i<n;i++){scanf("%lf %lf",&(Polygon[i].x),&(Polygon[i].y));} Polygon[n].x = Polygon[0].x;Polygon[n].y = Polygon[0].y; /* for(i=0;i<=n;i++){printf("%d - %lf %lf\n",i, (Polygon[i].x),(Polygon[i].y));} */ /* 確認用 */ O.x = 0.0; O.y = 0.0; for(i=0;i<n;i++){ O.x += Polygon[i].x; O.y += Polygon[i].y;}O.x /= (double)n; O.y /= (double)n; R.x = 0.0; R.y = 0.0;AreaTotal=0.0; for(i=0;i<n;i++){ C = TriCenter(O,Polygon[i],Polygon[i+1]);AreaTotal += area = TriArea(O,Polygon[i],Polygon[i+1]); R.x += C.x * area; R.y += C.y * area;} R.x /= AreaTotal; R.y /= AreaTotal; printf("%lf %lf\n",R.x,R.y);return 0;} じゃあの。
>>19 こまったことに広義のCSVつーとカンマありスペースありタブありなんでもありなんよ……
狭義つーより正しい意味合いならいうちょるとおり間違いなくカンマつかう方がええ。
まあ課題じゃ、そんなちっちゃいことは気にすんなや
じゃあの。
>>11 本当に助かります。
ありがとうございました。
22 :
デフォルトの名無しさん :2008/07/23(水) 08:01:02
>>20 ”こまったことに広義のCSVつーとカンマありスペースありタブありなんでもありなんよ…… ”
Comma Sparated ValueがCSVなのに、どこのどいつがそういってるの?ゆとりなの?
それとももう死んでるの?
(awkだとBEGIN句でフィールドセパレータを指定可ですね)
>>22 言葉1つ1つの意味ではそうなるが、実際に , 以外にも
スペース、タブなどで区切った CSV ファイルは存在するよ。
表計算ソフトを使ったことがある人なら知っている CSVは確かにコンマで区切られた値のファイルと言うべきだろうけど モノによるんで、その辺はそれに応じてユーザ側が適切に処理をするってことで。
そのようなフォーマットをCSVと呼ぶのが間違い。
26 :
デフォルトの名無しさん :2008/07/23(水) 08:11:21
27 :
デフォルトの名無しさん :2008/07/23(水) 08:12:58
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
分数の四則演算を計算するプログラムを作成せよ。
キーボードから、2つの分数、および、それらの間の演算子を入力して、その計算結果を表示すること。
<要求事項>
1.分母がゼロの入力エラーに対しては、再入力するよう促す。
2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。
3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。
-2147483648 〜 2147483647
4.計算結果(画面表示)については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。分数が負数の場合、負符号(-)を分数の前に表示する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: 2008年7月30日まで
[5] その他の制限:
条件分岐、繰り返し、配列ぐらいまでなら習ってます。
関数は使わないでください。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7478.txt ↑3以外の要求事項を満たしたプログラムです。参考までに…
よろしくお願いします。
スレが新しくなったので
>>22 > どこのどいつがそういってるの?ゆとりなの?
どこのどいつがではなく、そういうCSVファイルが存在します。
ゆとりとか相手を見下す、罵倒するレスは好ましくないどころか
ご自分の人間性の低さを露呈するだけですので、慎むことをお勧めします。
そう、あなたが自分の無知を晒して恥さらしをしているだけに
過ぎないということですので、あしからず。
29 :
6 :2008/07/23(水) 08:18:55
>>6 です。
皆さん、ありがとうございました。
助かりました。
30 :
デフォルトの名無しさん :2008/07/23(水) 08:21:08
>>28 >そういうCSVファイルが存在します。
そういう ”あたまの悪い” 引用例plz
>ゆとりとか相手を見下す、罵倒するレスは好ましくないどころか
>ご自分の人間性の低さを露呈するだけですので、慎むことをお勧めします。
自覚があるので大丈夫かな?(´・ω・`)
>そう、あなたが自分の無知を晒して恥さらしをしているだけに
>過ぎないということですので、あしからず。
ぉぅょ、無知なのでおせ〜てwww
カンマで区切られた値が更に別のセパレータで区切られてるようなものを言っている?
33 :
デフォルトの名無しさん :2008/07/23(水) 08:39:13
>>32 おまwww、フィールドセパレータってわかってるの?意味つうじんの?
>>33 いや俺に言われても。
CSVなのにタブ区切りとかいう無茶な主張を理解しようと努力してるだけだし。
>>20 ねーよ。
CSVのCはカンマだし、RFCもあるだろ?
きっとCharacter-Separated Values
>>35 お前が存在を知らないだけ、無知を晒す前に発言しない方が身の為だよ
いつまでCSVの話をしてんだよ?コンマで区切られているか 簡単にでも良いからコンマを検出するプログラムを作るなり ユーザはコンマでしっかりと区切られたデータを使うなりして 対処すりゃええがな。
41 :
22 :2008/07/23(水) 09:49:41
>>40 そだね
Character Sparated Valueには一本取られたって感じ
無知だったわww(こじつけかよww)
>>34 awkだとフィールドセパレータは一文字だけじゃなく文字列でいいんだわ
(半角スペースorTabとか)
>>all
日ごろcompilerにうざいwarningやerror指摘されてるんで
ちょっと煽ってみただけだわww、勉強になったわwww
>>40 本来気にしなくてはいけないのは、引用符の方だが、「タブ区切り」とか言ってる奴は無知だから知らない。
「ツリでした」は、敗北宣言だっけ?
>>42 意味がわからない。そもそも、CSVとは言えなくても、表計算ソフトが今回の話では
直接的ではないが、区切り文字にはコンマ以外にも、スペース、タブ、
文字列にはダブルクォート、シングルクォートなど使い分けがされているものもある。
だから、後はユーザ適当に統一させて、適切に読み込む操作をして
必要に応じたデータの読み込み、展開をしてやれば良いのさ。
完璧なプログラムなんてこの世にはないし、当然目的に応じたものを
目的に応じて、プログラムが適切に処理できる形式のファイルに保存、
ファイルを読み込むというのは昔からされていたことだしね。
まぁ、とにかくもうCSV形式の話は終わり。なんならしっかりとコンマで
区切られているか、最初に調べる部分を追加すりゃええがな。
>>43 CSVに含まれている空白やタブで勝手に区切っちまったら0点だろ?
2 名前: デフォルトの名無しさん Mail: 投稿日: 2008/07/23(水) 02:19:10 6 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/07/14(月) 07:52:06 基本的にスレ立て人がルールを作りますんで、最近話題の 回答テンプレはルール違反なんで遵守しないようお願いします。 以下の行為のいずれかを行った場合、回答テンプレ遵守行 為と見なされる場合がありますのでご注意下さい。 1)回答レスに回答の品質を書く事。 2)回答レスに外部サイト(アップローダー)に置かれたコードへのリンク を貼る際に、このレス(スレURL)とソースの間に相互関連づけを行 うこと。 3)コンパイル、コード作成に使用した環境を書く事 4)回答に余計なコメントを入れること。 (ソースに入れるコメントは本スレとの関連情報以外ならおKです)
>>43 CSVの話にCSVじゃないものを持ち込もうとした方がおかしいだろ?
ん?だって、コンマが1つもないのにCSVとか言われてもさぁ〜 それじゃ、スペースで区切ってますか?タブでつか? それとも、あ・た・し?ってプログラムに検出、判別する昨日がなきゃ 適切にコンマで区切ってくれないじゃ〜〜ん だったら、コンマがねーぞゴルァ、CSVじゃないからそのファイルは 読み込みしません、あしからずでプログラムを終了すりゃええやーん、な? 俺ってあったまいー
>>48 はぁ、だからそれは俺じゃねーってw
確かにおかしいが、そこまで必死に噛み付かなくてもええやん・・・
っつかキモイぞw
とにかくCSVの話はおーわーりー、ね?あまりしつこいと嫌われるよ。
あっ、もう既に嫌われたから孤立してここで相手にしてくれる人だけが
頼りの人生を送っているのか、すまねぇ。
CR/LF/CRLFで区切られたプレーンテキストファイルは、すべてCSV であることがわかった。勉強になったな、よかったなw
>>51 誰も聞いてないよ、そんなこと。終わりだっつってんだろ?
話の分からない奴ってほんっとさいてー、だからモテないんだよ。
しつけぇ、話の分からない奴ほど始末の悪い奴はいない。 これだから粘着暇人は・・・いつまでCSV紛いの区切りデータに 翻弄されてんの?w
>>53 知らないよ、俺はコンマ以外で区切ったCSVを良しとした覚えはないよ。
だからそこまでいうなら、コンマで区切られているか判定する
コードを追加したらどうだといったまでだが?何がCSVかについては
俺は言ってない。CSVかどうか判定するならしろってこと、いい加減うぜー
>>49 のどこにコンマ以外で区切ったものもCSVにしろって書いてある?
そうでなけば、CSVかどうか判定する機能をつけたらって話だろ。
ほんっと、話の分からない奴って鬱陶しいな。KYな奴は
まだCSVの話を続けるだろうけど、以後放置よろ。いい加減本題に戻れ。
CSVの話をメインにするスレじゃないぞ、ここは。
なんか前スレと話が変わってね?
>>57 カンマが一つも無くてもCSV形式なんだぞ?
[1]初等C言語 [2]32個の文字列をコンソールから読み込み、入力された順序と逆に 結合して表示せよ。 ただし使用出来る関数やコードに強い制限がある。 [3]Windows XP/Visual Studion 2003/C [4] 7/26 17:00 ※stdio.h string.hのみインクルード可能 ※10個の文字列は、長さ256の文字配列32個からなる2次元配列 とせよ。識別子は自由 ※文字列は長さ8192の文字配列geに結合すること ※printf系,putc系関数は使えない。文字表示はputs関数を使用すること ※コンソール入力はfgets関数を利用すること。入力が32個以下の 場合でも正常に処理が終了するようにすること。入力文字列に 改行コードが含まれる場合は除去する。 ※文字列結合はstrcat関数を使うこと.strcpy関数は使用してはならない。 ※main関数以外ユーザー定義関数を定義してはならない。 ※コードは出来る限り行数を減らす。;の数が少なければ少ないほど 評価が高い. よろしくお願いします。
[1] 授業単元:情報 [2] 問題文(含コード&リンク):貯蓄額とローン返済について複利計算を用いて計算、表示するプログラムを作成する。 元本金額、積み立て(返済)間隔、積み立て(返済)金額、年利、積み立て期間(ローン返済は無し)を入力させ、 貯蓄額がいくらになるか、ローン返済に何年かかるかを表示する。 [3] 環境 [3.1] OS: Windows vista [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005 (…でいいんですかね?) [3.3] 言語: C++ [4] 期限: 2008/07/28 [5] その他の制限: 特に無し 複利計算自体もイマイチ理解できていないのでキツいです。 よろしければ協力お願いします。
>>61 セミコロン数を減らすために小細工してある
#include<stdio.h>
#include<string.h>
int main(void){
static signed char m[32][256]={{0}}, ge[8192]="", *p, m_n=0;
while(m_n<32 && fgets(m[m_n], 256, stdin)) if((p=strchr(m[m_n++], '\n'))) *p='\0';
while(m_n>0) strcat(ge, m[--m_n]);
puts(ge);
return 0;
}
64 :
7 :2008/07/23(水) 12:59:26
2. は何で直されたのか、わからないけど、良い矢。
>>10 Thanks
3. 1?(01)*0|0?(10)*1
3. 1(01)*0?|0(10)*1?
>>16 3. nullが含まれる
>>64 2.はcabとかも含まれるんじゃないの?
abaとかも。
>>63 何気に何故static signedにするのか訊いてみたくなった。
>>61 俺にはこれが精一杯
#include <stdio.h>
#include <string.h>
int main(void) {
int i,j;
char buf[256],str[32][256],ge[8192];
for(i=0;i<32;i++) {
if(fgets(buf,sizeof(buf),stdin)==NULL) break;
for(j=0;buf[j]!='\n';j++) {
str[i][j]=buf[j];
}
str[i][j]='\0';
}
for(i=i-1;i>=0;i--) strcat(ge,str[i]);
puts(ge);
return 0;
}
>>68 まだまだいけるじゃん.
int main(void) {
int i,j;
char buf[257],str[33][256],ge[8192];
for(i=0;i<32;str[++i][0]=0)
if(fgets(buf,sizeof(buf),stdin)!=NULL)
for(j=0;buf[j]!='¥n';str[i][++j]=0) str[i][j]=buf[j] else str[i][0]=0;
for(i=31;i>=0;i--) strcat(ge,str[i]);
puts(ge);
return 0;
}
70 :
60 :2008/07/23(水) 15:40:09
ヘルプ
>>70 こうか?
エラーチェック追加と、reallocにNULL渡せない場合malloc追加するのやってない。
void push(struct list *p, int e)
{
if (p->n == p->N)
{
list->array = realloc(list->array, sizeof(int) *(p->N + 10));
list->N += 10;
}
list->array[list->n++] = e;
}
void unshift(struct list *p, int e)
{
if (p->n == p->N)
{
list->array = realloc(list->array, sizeof(int) *(p->N + 10));
list->N += 10;
}
memmove(list->array + 1, list->array, sizeof(int) * list->n);
list->array[0] = e;
list->n++;
}
memmove((list->array + sizeof(int) だなこりゃ
カレンダーだの素数だの、最大公約数だの最小公倍数だの、ソートだの 俺が得意な課題を質問してくれYO!
>>41 つるんだったらもっと盛大に面白くつればいいのに。
RFCで定義されているとか言い出せばまだネタにもなったのに。
つまらん男だのぉ。
じゃあの。
>>69 カッとなってやってしまった。今は反省していない。
#include <stdio.h>
void main(int i,int j) {
char buf[257],str[32][256],ge[8192];
if((i=0)==0){} while(i<32 && (str[++i][0]=0)==0 && ((j=0)==0) )
if(fgets(buf,sizeof(buf),stdin)!=NULL)
while(
(buf[j]!='\n') &&
((str[i][j]=buf[j])==buf[j]) &&
((str[i][j+1]='\0')=='\0') &&
(j++) >= 0
){}
if((i=31)==31){} while(i>0 && strcat(ge,str[i]) , i--){}
if((i=0)==0 && puts(ge) ) {}
}
じゃあの。
麻呂、西郷隆盛、次は竹原慎二かい・・・次はゆこりん?
>>79 Integer Integer::operator++(int)
{
Integer tmp(*this);
n++;
return tmp;
}
>>77 >>61 との行数の差が大きいんですが..
;の評価は高くても、改行数が多いと減点の悪寒
>>81 ん?1行=;の数じゃないのか
#include <stdio.h>
void main(int i,int j) {char buf[257],str[32][256],ge[8192];if((i=0)==0){} while(i<32 && (str[++i][0]=0)==0 && ((j=0)==0) )
if(fgets(buf,sizeof(buf),stdin)!=NULL)while((buf[j]!='\n') &&((str[i][j]=buf[j])==buf[j]) &&((str[i][j+1]='\0')=='\0')
&&(j++) >= 0){}if((i=31)==31){} while(i>0 && strcat(ge,str[i]) , i--){}if((i=0)==0 && puts(ge) ) {}}
適当に3行を1行につなげればOK。
じゃあの。
>void main(int i,int j) ありえないw 多分コンパイルとおらないだろ。 {}は空文でセミコロンと同じとみなされるだろw
>>83 これだから甘いのぉ……
多分じゃなく自分でちゃんと試してみるのが大切だぞ。
clでこれが通らないのを確認して発言してないだろ。
{}が空文?そんなの問題にないからその主張はまかり通らないな。
「行数、;を減らす」しか書いてないぞ。なんなら#define SEMI ; でやってもいいぐらいだ。
じゃあの。
87 :
61 :2008/07/23(水) 20:32:30
>>86 ないないwww
こんなもんshort codingみたことある人間ならすぐに思いつくだろ。もっともこれを使う意味は皆無なんだが。
じゃあの。
>>87 くやしいのぉ くやしいのぉwww
多分誰かが突っ込むと思ったので先に自爆しておきました。
じゃあの。
文字列リテラルの時も、自分で書き込んでたよな。
94 :
61 :2008/07/23(水) 20:44:40
はぁ? 私はそれなりに忙しいので失礼致します。
95 :
61 :2008/07/23(水) 20:50:24
失礼しました。
>>77 さんも回答して頂いたんですね。見落としておりました。
>>96 (問いの意味を確定するのが)きわめて難しい。
>>97 意味って難しいか簡単かただそれだけ。
宿題の問題にそれなりの意味が見いだせるのはエスパー
強い構文制限のもとで、どれだけ仕様を満たすものが作れるか
とか考えられるんじゃないか?
アルゴリズムとかも勿論重要だけど、意外とそういうのも重要かも
知れないと思ってる。
だからと言って、トリックに走り過ぎるのも何だかな〜と思うが.
>>69 とか
明らかにアルゴリズム学習がテーマの問題でそういう課題を出すのは
反対だけど。
>>98 「10個の文字列は」の制約が未だに理解できない俺は馬鹿ですか。そうですね。
まあ、質問者が問題を把握してないのは何時もの事だからな
>>99 少なくとも馬じゃないと思う
>>63 はエスパーなのか、問い直しをせずに即答したフライイングか
議論が分かれるかな
>>59 話がかみ合ってない。だからCSVか判定する部分をつけたらって話に
その意味不明なレスは何なの?w 日本語理解できないだろ、お前w
103 :
デフォルトの名無しさん :2008/07/23(水) 22:28:47
前スレの872どなたかお願いします。 ※1つ聞いたことない型があると思いますが、char型の間違いです。
>>102 完全なタブ区切り形式もCSV形式から外れないし、CSVとして受け取ったならタブで区切ってはいけない。
オマエはなにを判別しようとしているんだ?
106 :
デフォルトの名無しさん :2008/07/23(水) 22:36:16
CSVファイルとはなんぞや?タブ、スペースで区切っているくせに CSVファイルとか言っている奴がいる,そういう話じゃないんだよ。 区切り文字をコンマと限定するなら、そうなっているか判定したらどうかと? 1つも●ンコ(逆から読んで)がなければ、そりゃ〜CSVじゃないんだよ、ユーザの君。 だから、コンマで区切られたCSVファイルを用意してくれ、ベイビーってことさぁ〜
>>107 CSVの項目はタブを含んでいていいんだよ。
そして一つもカンマが無くても成り立つ。
>>107 CSVならカンマが含まれているだろう何て思い込みは、オマエの妄想だ。
おもしろそうな波が来てたのかよ とりあえず、valuesだろってツッコミはさておき、一つもカンマが無い場合はCSVの名称にはそぐわないが、 問題はなく、正しくCSVだね。 CRLFでなければならないのは知らなかったなぁ。次からCSV作るときには気をつけまする。 面倒なので大抵TSVにしちゃうけどw
111 :
デフォルトの名無しさん :2008/07/23(水) 23:24:00
質問させていただきます @ #include <stdio.h> main() { int i,j; for(i=1;i<=10;i++){ for(j=14;j>=i;j--){ printf("×"); } printf("\n"); } } A #include <stdio.h> main() { int i,j; for (i=1;i<=11;i=i+2){ for(j=1;j<=i;j++){ printf("×"); } printf("\n"); } } @の方は×で台形のような形が出来るんですけど、上底が14で下底が5で高さ5なんです Aの方は直角三角形みたいな形で、底辺が11高さが6なんです @の方は1つ目のfor(i=1;i<=10;i++){のところで高さを出してるのに Aの方は1つ目のfor (i=1;i<=11;i=i+2){のところで底辺を出してるんです @の要領でAの一つ目のforで高さを出そうとしても出来ません なぜ同じ要領で出来ないのですか?読解力に定評のある方教えてください><
こうやればいいんじゃね? #include <stdio.h> main() { int i,j; for (i=1;i<=6;i++){ for(j=1;j<=i*2-1;j++){ printf("×"); } printf("\n"); } }
何でぇ〜って言われても、2つ目は i=i+2 で2ずつインクリメントやし・・・ 1つ目は、iが1ずつインクリメントして、10回繰り返して 1つ増えるごとに14からiまで1ずつ減って・・・そういうことだ。 やりたい事があるなら、その辺を理解してやるべし。
114 :
デフォルトの名無しさん :2008/07/23(水) 23:45:50
>>112-113 さん
ありがとうございました!
for(j=1;j<=i*2-1;j++){ の発想があたしには無かったです!
だからね、そこまでCSVファイルはコンマで区切られているものに限る プログラムを作りたいなら、当然コンマで区切った処理をすりゃ良いんだが そうでないものに対応したきゃ、そうなのかな?っとスペースで区切ってますか? タブかな?って探るのもありかと言ったまでさ。それはCSVがコンマで 区切られたものとは限らないという人に対して、ならそうしたらと? 別に、自分はコンマ以外が使われているCSVファイルを認めたわけじゃないんだってw
まさかCSVネタを次の日に引っ張るとは思わなかった いいぞもっとやれ
> CSVがコンマで区切られたものとは限らないという人 その人に正しい認識をしてもらうスレですよね CSVです、といってるのに他のフィールドセパレータなりデリミタなりを勝手に適用したらまずいもんな
カンマがないCSVという表現なんだが、勘違いしてそうだから一応書いとくと タブで区切るとかそういう話じゃなくて、レコードに一つしかカラムがない状態よ
CSVをあぼ〜ん設定したらすっきりしたぜ。ん?まさかお前ら
C S V とか書いて続ける気ではあるまいな?やめとけ、スレタイと
>>1 読め、な?
>>121 別に荒れてないし簡単な話だしいいんでないの?いつもの長文さん
>>116 PDF! エディタで読めるの無いのか。
124 :
デフォルトの名無しさん :2008/07/24(木) 03:07:21
#include <stdio.h> main() { int i,j,k; for(i=1;i<=2;i++){ printf("a"); for(j=1;j<=2;j++){ printf("b"); for(k=1;k<=2;k++){ printf("c"); } printf("d"); } printf("e"); } } i=1 j=1 k=1 abc i=1 j=1 k=2 cd i=1 j=2 k=1 bc i=1 j=2 k=2 cde ※ i=2 j=1 k=1 abc i=2 j=1 k=2 cd i=2 j=2 k=1 bc i=2 j=2 k=2 cde ※ abccdbccdeabccdbccde ※印のとこなんでeまで行っちゃうんですかね? 意味が解らないので教えてください><
jが2以下じゃ無くなったらループを抜けて実行されるから
126 :
デフォルトの名無しさん :2008/07/24(木) 03:21:37
なるほどw その一声ですごく理解できました ありがとうございます!
128 :
デフォルトの名無しさん :2008/07/24(木) 09:12:49
int型の数値(文字コード)からcharを作る方法はありますか?
129 :
デフォルトの名無しさん :2008/07/24(木) 09:23:37
int i=1 を'1'にする→'0'を足す int i=0x31を'1'にする→単にキャストする
130 :
デフォルトの名無しさん :2008/07/24(木) 11:59:40 BE:69876094-2BP(222)
[1]C言語初級 [2]�コンソールをエスケープシーケンス0x27+"[2J"で文字をすべて消去した後、 文字'*'を用いて5~ 20までのランダムな半径と中心の円を書く 0x27+"[R;CH"でR行C桁にカーソルを移動できるものとする。 [3]linux/gcc/C [4]7/29 13:00 stdio.h math.hのみインクルード可能
>>131 トリップ
問題文が曖昧。20個まで円を描くのか?半径中心は固定なのか?
よろしく御願いしますの一言くらいあってもいいと思うのだが.
0x1Bってことだよな・・・
だろうなw 問題文に0xがもともとあったのかが気になる・・・
>>131 中心x,y半径rの円を書く関数
y方向に隙間が空くけどね
#define PSET(x,y) printf("\x1B[%d;%dH%c",(y),(x),'*')
void circle(int x, int y, int r)
{
int p, q;
for (p = 0; p <= r; p++) {
q = sqrt(r * r - p * p);
PSET(x + p, y + q);
PSET(x + p, y - q);
PSET(x - p, y + q);
PSET(x - p, y - q);
}
}
> [4] 期限:なるべく早くおねがいします 言いたいことは分かるが、来年にやるってことが なるべく早く に該当するくらい 時間の流れが速い時空から書き込みをしているのか・・・
>>141 宿題をやらない人間の時間間隔は知らないが、期日と言うものはそう言うものだ。
>>138 いつまで聖徳太子ネタやんのよ。
スルー力あげなよ
146 :
デフォルトの名無しさん :2008/07/24(木) 16:26:05
147 :
デフォルトの名無しさん :2008/07/24(木) 17:00:03
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://www.uploda.org/uporg1563099.zip.html [3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語:c
[4] 期限:7月28日
[5] その他の制限:
問題6−4をお願いします
正直コンパイラ名がよくわかりません。
もし的外れなことを言っているなら、ご指導いただければ幸いです。
よろしくお願いします。
FEP使うときにduってやるからヘボン式をちゃんとおぼえてなくてもしょうがないよ
>>148 数字読める?読めない?聖徳太子知ってる?知らない?
>>152 聖徳太子いなかったの知ってる?知らない?ていうか聖徳太子って読める?
>>151 見て、中の変数名のことだとやっとわかった
>>153 まぁ一説には架空の人物って話も聞くけどね・・・1万円札に印刷されていたの知ってる?知らない?
自分、子供の時にその一万円札を破っちゃったことあるんだけど、知るわけないよな・・・俺のことだからw
五千円札とか、千円札、百円札の聖徳太子は知ってるか
タイ子がそんなに出しゃばったらノリスケも落ち着かないだろうなあ
>>154 をみて、もしかして
>>152 の数字読める?は
>>147 の期限が7/28で未来なので何の問題も無いよね、数字読める?
という意図を含んでいたのかもしれないという考えに至った。
もしそうなら
>>148 のいいたいことを理解しないorできないままに煽ってたのか。
夏休みに入ったのか、宿題が一気に途絶えたな。 暫くこのスレも夏休み
>>131 Bresenhamのアルゴリズムが有名らしいのですが、ぐぐってもこれ、といったものがでてきませんね。
ん?夏休み?それじゃ、俺が課題を出してやろうか?
いいよ
フィボナッチ、組み合わせ、カレンダー、素数、最大公約数、最小公倍数、 ソート、トランプゲームなどなど、適当にやっとけ、ってことでw
[1]C言語応用 [2]2chの掲示板のdatファイルを解析して、レスストリーム(後述)に分解し、 フレーム付きのページで、ストリーム単位に閲覧することができるような HTMLファイルを生成する。Windows/Linux/MacOS共に対応し、コマンドラインで スレURLを与えれば、カレントディレクトリに、取得した時点のYYYYMMDDHHMMSS形式の 名称のディレクトリを作り、そこにフレーム付きページを生成する。 ☆レスストリーム (1)同一スレの別のレスへのアンカーを含まないレスは単一のストリームに含まれる、その ストリームの代表レスとなる。 (3)同一スレの別のレスへのアンカーを含むレスは、指しているレスが所属するストリーム のすべてに含まれる。 ※一つのレスが複数のストリームに含まれることはあり得る。 [3] Windows/Linux /MacOS/gcc/C言語が望ましいがC++でも可 [4] 7月中
>>170 A <- C
B <- C
のときのストリームは
1) A-C, B-C の二つ?
それとも
2) A-B-C の一つ?
173 :
デフォルトの名無しさん :2008/07/24(木) 22:18:43
[1] 授業単元: プログラミング演習 [2] 問題文: 問1 15乗根(!)を求める関数root15 を用いて、入力した数の15乗根と結果の誤差を 調べるプログラムをつくる。 関数root15をつくる。 平方根を求める関数sqrtを使ってよい。 関数の内容は以下の手続きに従うこと。 aの15乗根を求める手続き: xの初期値をaとする 以下を20回くりかえし aにxをかけた結果の平方根を4回とり (平方根の平方根の平方根の平方根) その結果を新しいxとする (くりかえしにより数値が収束すれば、 xの2乗の2乗の2乗の2乗(16乗)がa/xに等しい、すなわちxの17乗がaに等しい) [3] 環境 [3.1] OS:Linux [3.2] よくわかりません>< [3.3] 言語: C [4] 期限: 明日まで [5] その他の制限: 関数 プロトタイプ宣言までならいました。 よろしくお願いします。。。
>>173 問題文が意味不明
15乗根なのに17乗根求めてどうするの?
175 :
デフォルトの名無しさん :2008/07/24(木) 22:24:18
書き込みのはやきこと風の如く 他人と会話せざること林の如く ネットで煽ること火の如く 部屋から動かざる事山の如し __ ,. / |´ ̄`ヽー- 、 ト、 , -‐、/./.- 、 / | | ヽ l l ( 火◇風 ノ /o ̄`ハ._.ゝ===┴=く.ノ- 、 ノ ◇ ◇ ( /o O / l´ ノ ヽ lo ',ヽ ( 山◇ 林 } \___/. ト、 ● ● ハ ∧ `⌒/7へ‐´ / ,イ レ_ ( _●_) ミl~T--‐彡 /./ / ̄ ̄l. 彡、 |∪| ノ'l l::::::::::彡ー7⌒つ、 彡:::::::::::l ト、___ヽノ /| l::::::::::::ミ {,_.イニノ
177 :
デフォルトの名無しさん :2008/07/24(木) 22:26:16
>>174 -----------------------------
#include <stdio.h>
#include <math.h>
double root15(double);
main(void)
{
double x, a, xs;
scanf("%lf",&a);
x = root15(a);
xs = x*x*x*x;
xs = xs*sx*sx*sx*x;
printf("%f : %f\n", x, xs-a);
}
-----------------------------
このように使うことのできる関数root15を書け。
(上のプログラムをそっくりコピーし、その
続きに関数の内容を書けばよい。)
らしいんですが。。ちんぷんかんぷんで><
>>173 (
>>177 )
double root15(double a){
double x;
int i;
x=a;
for(i=0;i<20;i++) x=sqrt(sqrt(sqrt(sqrt(x*a))));
return x;
}
>>177 main関数はこうでしょ?
int main(void){
double x, a, xs;
scanf("%lf",&a);
x = root15(a);
xs = x*x*x*x;
xs = xs*xs*xs*xs/x;
printf("%f : %f\n", x, xs-a);
return 0;
}
>>172 1.A<-B Bは[A](Aが所属するストリームすべての集まり)に所属
2.A<-B<-C Cは[A]に所属
3.A<-B<-C && A<-D<-C A,B,C,Dはすべて同一のストリーム[A]の所属
4.A<-B & C<-B B は[A],[C]にも含まれる。
あるストリームSがレスAを祖先とするとは、
AはSに所属し、Aはアンカーを持たないか、同一スレの別レスへのアンカーを
持たないこと。
要するに、宿題スレのようなスレを、質問単位にページを分けて閲覧できる
ようにする。(質問に関連するレスをすべて収録)
>>170 は当然C言語上級グレードの問題なので難易度は高いと思われ
183 :
デフォルトの名無しさん :2008/07/24(木) 22:39:01
>>178 179 180即答本当に助かりました!!
>>180 たぶんそうですね、意地悪教授なのでわざとバク入れたのかも^^;
ニュートン法については無知なのでよく分かりませんが、見直してみます。
もう一つ甘えたい問題があるのですが・・・
>>173 17乗根ではないですよね。
#include <stdio.h>
#include <math.h>
int main()
{
double a, x1, x2, x;
int i;
for (a = 1.0; a <= 10.0; a += 1.0) {
printf("a=%.2f:\n", a);
x1 = a;
for (i = 0; i < 20; i++) {
x2 = sqrt(sqrt(sqrt(sqrt(a * x1))));
x1 = x2;
}
x = x2;
printf(" x=%.6f\n", x);
printf(" x^15=%.6f\n", x*x*x*x*x*x*x*x*x*x*x*x*x*x*x);
}
return 0;
}
/* end */
186 :
185 :2008/07/24(木) 22:43:11
>>170 ソケットは使わなくていいん?
ローカルにあるdatを解析すればいいんだよね?
って”URLを・・・”って書いてあったorz さすがにマルチプラットフォームでそれはやってられない・・・ C++ありだからASIOで使ってみようかな
189 :
183 :2008/07/24(木) 22:51:52
>>184 ほんとにひねくれた人というか・・・どうしようもないですw
>>186 いえいえ、回答ありがとうございます!
問2
穀物相場が高騰を続けているそうである。
ここに毎月のトウモロコシの価格を調べたデータが山のようにある。n月分としよう。
このデータを調べて1月の間に最もハゲシク値上がりした月x
(つまり第(x-1)月目と第x月目の間の価格差が最も大きい)
を調べたい。そのためのプログラムを作ってくれ。
データの数nは不明である。データの数を数えようと思ったが面倒くさいので、
プログラムの方でなんとかしてほしい。ただし、データの終わりを示すために、
データの1番最後(n+1行目)にマイナスの値を入れておくことにするので
よろしく。
です^^;
データの終わりはEOFで判断できるんだけどね。 わざわざ負の値を入れておくなんて嫌がらせ以外の何ものでもない。
だがちょっと待って欲しい、麻呂のクソースリストにEOFがどうとか突っ込んできたあいつなら あいつならEOFが入力されないと、最後まで粘ってくれるだろう。
何か文章が気持ち悪いな
>>189 データのサンプルうp!
もしくはフォーマット
ファイル数は一つ?複数?
複数の場合にはファイル名のフォーマットは?
>>184 は「バク」にかけたあなた宛の皮肉です(多分
なあに、かえって耐性がつく。
自然数540を格納するときに用意すればいい変数名と型の種類を教えてください。
int n
型はintでいいと思う。 変数名は540が意味する言葉を使うとよいです。 540て180*3とかそういう内容だったりしないのかな。
>>193 >>189 の文章からするとおそらく、一行に一月分のデータがあり、単一ファイルである
一月分のデータは多分単数で、実数表記と思われる レベルからするとカンマ区切りは無さそう
199 :
189 :2008/07/24(木) 23:13:30
>>193 たぶんそんな高度なことはしないかと、自分自身フォーマットが何かもわからないので^^;たぶんデータ自体もデータ数も自分で(scanfか乱数かなにか)作れってことだと^^;
「バク」→「バグ」ってことですよね?><
ほんとに素人でごめんなさい・・
200 :
デフォルトの名無しさん :2008/07/24(木) 23:15:12
>>175 bintree, newnode, deltree の内容は?
ターミネータとして負の値を入れるのはよくある手法だろうにw
>>189 #include<stdio.h>
int main(void){
FILE *fp;
double x, x_prev, diff_max, diff_max_x;
int n, diff_max_n;
char *filename="data.txt";
fp=fopen(filename, "r");
if(fp==NULL){
perror(filename);
return 1;
}
fscanf(fp, "%lf", &x_prev);
for(n=1;fscanf(fp, "%lf", &x)==1;n++){
if(x<0.0) break;
if(n==1 || diff_max<(x-x_prev)) diff_max_x=x, diff_max=x-x_prev, diff_max_n=n;
x_prev=x;
}
fclose(fp);
if(n>=2) printf("%d 月目 : 価格 %f (増分 %+f)\n", diff_max_n+1, diff_max_x, diff_max);
return 0;
}
204 :
199 :2008/07/24(木) 23:34:03
ちなみに習ったのは条件判断、繰り返し、プロトタイプ宣言、配列、乱数発生です^^; 問題の条件の付け足しの形になってすいません・・・
>>202 負の値に限らず、扱うデータにおいて出現し得ない値ね。
ただ、今回の場合のようにファイル内の全データが対象だということが分かっている場合、
EOFが明確なターミネータとなるから番兵要らないでしょって話かと。
206 :
199 :2008/07/24(木) 23:46:18
>>203 回答本当にありがとうございます!ですがforpen関数?fscanf関数?は習ってないです><
c言語を今年の六月半ばからの週1の講義でやってきたレベルなので。。。
条件判断、繰り返し、プロトタイプ宣言、配列、乱数発生だけじゃ 確かにファイル開く関数もしらんわな ほんと意地悪い教授だなw
データがファイル内にあるってどこに書いてある?
>>208 n+1 行目という表現を見てファイルだと思った
リダイレクト使うつもりかな?
>>206 #include<stdio.h>
int main(void){
double x, x_prev, diff_max, diff_max_x;
int n, diff_max_n;
scanf("%lf", &x_prev);
for(n=1;scanf("%lf", &x)==1;n++){
if(x<0.0) break;
if(n==1 || diff_max<(x-x_prev)) diff_max_x=x, diff_max=x-x_prev, diff_max_n=n;
x_prev=x;
}
if(n>=2) printf("%d 月目 : 価格 %f (増分 %+f)\n", diff_max_n+1, diff_max_x, diff_max);
return 0;
}
210 :
204 :2008/07/25(金) 00:01:29
>>207 分かってもらえて嬉しいです^^; マジで困ってます・・・
189は僕のようなレベルで解けるような問題なんですかね?
前スレのハッシュの人もう締め切りすぎた?
213 :
210 :2008/07/25(金) 00:19:06
>>211 回答、素人のお付き合い、ありがとうございます!
209の中の関数自体は全部習ってますから、なんとなくやってることはわかりそうなんですが、
プログラムをあまり見慣れていないせいか、実数や整数の変数の名前が複雑なので頭の中がゴチャゴチャになっちゃいます><
それぞれのif とforの中の条件を解説していただければたすかります。^^;
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 下記のプログラミングの実行結果を答えよという問題です (1) #include <stdio.h> void main(){ int i; for(i=0;i<3;i++){ printf("%d\n",i); } } (2) #include <stdio.h> void main (){ int i = 10; if(i > 20 ){ printf("A"); }else{ printf("B"); } } よろしくお願いします。
(1) 0 1 2 (2) B
[1]C [2]n=173とすると、n^2=29929となって、n^2には2と9しか現れない。4桁 の正整数nで、n^2には2種類の数字しか表れないものをすべて求めよ [3]LINUX C [4]今週の土曜日まで よろしくお願いします
>>213 どこまで分かったかが分からないので説明できない。
こういうフローであってる?って聞いたほうがお互いに楽よ
>>168 そこまでやったんならチェックも自分でできるだろうにと思わんでもないが
ざっと見てマズそうな箇所(コンパイルもしてないから勘違いがあるかも試練)
「メニュー読み込み」前(head==NULL時)に他の処理を行なった場合の対応が不十分。
「メニュー読み込み」が複数回選択された場合の旧リストの扱い。
ReadMenuConfig()、最初のpmenu->nextが未初期化(whileに一度も入らない可能性は?)
DeleteMenubyName()、構造体のメンバnameはmallocしたものでは?
DeleteMenubyName()、delItem == headの時の対応。
DeleteMenubyName()、一番最後のメニューは削除不可?
例えばこんなんとか(※未コンパイル未テスト)
struct MenuItem* DeleteMenubyName(struct MenuItem *head, const char *name) {
struct MenuItem *p = head, *p_prev = NULL;
while(p){
if(strcmp(p->name, name) == 0) break;
p_prev = p;
p = p->next;
}
if(p){
if(p == head) head = head->next;
if(p_prev) p_prev->next = p->next;
free(p->name);
free(p);
}
return head;
}
head = DeleteMenubyName(head, menuname);
>>216 #include <stdio.h>
int f1( int i ) { /*naiveな方法*/
int j, k = 0, num[ 10 ] = {0};
for ( j = i * i; j; j /= 10 ) num[ j % 10 ] = 1;
for ( j = 0; j < 10; ++j ) k += num[ j ];
return k == 2;
}
int f2( int i ) { /* 汎用的でない方法 */
int t, n1, n2, j = i * i, f = 1;
for ( n1 = n2 = j % 10; f && j ; j /= 10 ) {
t = j % 10;
if ( n1 == n2 ) n2 = t;
else if ( t != n1 && t != n2 ) f = 0;
}
return f;
}
int main(){
int i;
for ( i = 1000; i < 10000; ++i ) {
if ( f1( i ) ) printf( "%d => %d\n", i, i * i );
if ( f2( i ) ) printf( "%d => %d\n", i, i * i );
}
return 0;
}
>>192 粘着性のお前が一番気持ち悪いことに気づけよw
>>192 EOFは入力できませんと必死に主張してきた
日本語が理解できない馬鹿がキターーーー!
>>192 ねぇねぇ、getchar()とCtrl + Z または Ctrl + Dって知ってる?知らない?
聖徳太子(ry
>>192 意味不明な発言と反応をしたお前が一番キモイんだがw
>>192 はgetchar()の部分の動作の話の際に、EOFが入力できないだの
コードに記述されていないfgetsがどうとか言い出した、話も分からない
日本語もまともに読めないゆとり
>>192 顔真っ赤wwwww 反応したのが自分だけって気づいてないだろ?
周りを見ろよ、見事に自分がEOFに対して勘違いしちゃったお馬鹿さんですって
わざわざカミングアウトしたようなもんだってw
日本語もC言語も勉強してから出直せよ、EOFは入力できない厨w
>>192 が一人だけ反応しているってことは、こいつがEOFは入力できませんっと
必死に訴えていたキチガイか・・・わかりやすいな、すぐに反応しちゃって、
脊髄反応なんて、パブロフの犬かよ?お前の粘着ぶりの方が気持ち悪いな
>>192 なぁ、鏡を見ろよ?なんか面白い顔が映ってない?
それとも、気持ち悪い顔?誰の顔だ、それ?
まぁ、言わずと知れたことだがね・・・
麻呂ってやっぱ、根に持つタイプなんだな・・・
230 :
213 :2008/07/25(金) 10:25:30
>>217 ゆっくり見直したら、解決しました!ありがとうございましたぁ!!
190 名前:デフォルトの名無しさん 投稿日:2008/07/24(木) 22:55:37 データの終わりはEOFで判断できるんだけどね。 わざわざ負の値を入れておくなんて嫌がらせ以外の何ものでもない。
>>228 < 分かるだろ、発言内容に人間性の低さ、キチガイな性格が含まれていることを。
死ね < これを軽々しく使う奴は、まず人間として未熟者。もし大人だとしたら
将来犯罪予備軍なんで、要注意。触らぬ神に祟り無しだが、こいつは間違いなく
>>192 本人。
何か言われると、何かしら言い返さないと気がすまない一言居士。
>>229 それは勘違い。あれは麻呂が提示したソースの一部に対してのことであって
麻呂自身が議論したわけじゃない。むしろ、EOFが入力できないと
知ったか勘違いを露呈してしまった奴が、必死にgetchar()を無視して
fgetsがどうとか、最初に指摘した奴の論点を無視して話を始めたところから
いや、そうじゃなくてといわれても先走ったのが原因であって、
EOFの入力は普通にキーボードからも出来ます、ありがとうございました。
重ね重ね、本当に本当に、ありがとうございますた!必死だなw
っつか、最近麻呂なんて見かけないじゃん?まだいると思っている奴って 見えない敵と戦い続ける、妄想癖のある、薬中毒並にやばい奴? 精神科医に診てもらった方がよいぞ、その性格を。かなりやばいよ。 相手を罵倒する習性が根付いているだろ?それじゃ人間社会じゃやっていけない。 あっ、孤立したからこのスレで、今度は質問者という自分以下の人間を見て 安心しているのか。いずれ自分が社会の底辺に成り下がるぞ、下ばかり見続けて 生きていく人生じゃ。お前が見下したそいつも、お前が足踏みしている間に どんどん上にのし上がる奴もいるからな。
>>234 いや、コンパイラも通らないような糞コード貼り付けてる奴がいるじゃん
えらく被害妄想の奴がいるが
>>192 の発言は
>>189 に対してと思うのが普通じゃないか?
流れから考えて
今年の新入りはKY過ぎて笑えねぇ・・・落ち着いて、鏡を見ろよ、な? プギャーな面が映っただろ?それ誰の顔?分かる?分からない?聖徳(ry
TAがこことmixiをしっかりチェックしているのでもうダメです… 単位落とすしかないかも… 情報工学科でCができないのは恥ずべきことでしょうか
EOFが入力できないとか言っていた奴はぁ〜どこのどいつだぁ〜い? 根に持つ?お前の方が勘違いした挙句、それを論破されたことに対して 言われると必死に罵倒してくるところから、根に持っているのが自分だと気づけよ。
>>238 >情報工学科でCができないのは恥ずべきことでしょうか
うん
>>238 なんか方法あるんじゃね?
メールとか、そこまでしてくれる奇特な人がいるかは別にして
>>238 不正でなんとかなると思っていることもな
244 :
デフォルトの名無しさん :2008/07/25(金) 13:11:31
>>147 のものです
ファイルが消えているようなので改めてアップしました
お手数をおかけしますがよろしくお願いします。
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://www1.axfc.net/uploader/File/so/8812.zip [3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語:c
[4] 期限:7月28日
[5] その他の制限:
問題6−4をお願いします
正直コンパイラ名がよくわかりません。
もし的外れなことを言っているなら、ご指導いただければ幸いです。
よろしくお願いします。
>>238 ここは丸投げだからな。
自分なりに考えて、わからない部分だけを適切なスレで聞いたらいいじゃない。
>>244 コンパイラがどうしたというよりもグラフ表示に何のライブラリ使うのかとか環境周りが全然足りないと思う
>>244 グラフはともかく(1)を計算するだけなら簡単。
まあjn(n,x)を作れってことなんだろうけど。
#include <math.h>
double x;
int n;
for(n = 0; n <= 2; n++){
for(x = 0.0; x < 10.0; x += 0.1){
printf("jn(%d,%f):%f\n", n, x, jn(n, x));
}
}
>>248 カウントダウンって入力最中にも常に表示するの?
それとも1問終わるごとに後何秒です。で良いの?
> 打/分 言わずにはいられねぇ、だっふんだっ!(打っ分だっ!)
記述が曖昧で申し訳ありません。 私は一問ごとに表示で考えてます。
/* Part114
>>146 学生名簿 */
#include <stdio.h>
int main(void){
struct student {
char bangou[32], myoji[32], namae[32];
int nenrei;
} meibo[3];
struct student jibun;
int i;
char dummy[32];
for(i=0; i<3; i++){
printf(" ●学生番号入力:"); scanf("%s", meibo[i].bangou);
printf(" 苗字入力:"); scanf("%s", meibo[i].myoji);
printf(" 名前入力:"); scanf("%s", meibo[i].namae);
do {
gets(dummy); // 改行まで読み飛ばす(数字入力に失敗した時も、読み飛ばす)
printf(" 年齢入力:");
} while(scanf("%d", &meibo[i].nenrei) != 1);
}
puts("====== 入力終了 ======");
jibun = meibo[3-1];
printf("自分のデータ: 学生番号 %s 苗字 %s 名前 %s 年齢 %d\n",
jibun.bangou, jibun.myoji, jibun.namae, jibun.nenrei);
return 0;
}
256 :
146 :2008/07/25(金) 19:48:56
>>254 ありがとうございます。
マジで助かりました!<m(__)m>
>以下のC++で作ったタイピングソフトに更に機能を追加しなさい。 >#include <stdio.h> >#include <string.h> >#include <conio.h> >#include <ctype.h> >#include <time.h> この授業はきっと役に立たない^^
また発作が始まったよ、自分基準で自分が正しいと思い込む知ったか自己中
C++の授業でstdio.hとかincludeしてる教師は全員シメちゃっていいよ。
自分の役に立たないもの=全世界でそうだと思い込む視野の狭い人
>>259 その揚げ足取りみたいな発言は気持ち悪い文章だな
>>257 C++の機能を一切使ってないだけじゃないか
char配列での文字列操作を教えてから std::string の便利さを教える可能性もある
極めて低い可能性だがw
>>257 C++じゃなくてCってことか
それともMS-DOS用のヘッダ使ってること?
それなりに役に立つんじゃない
半期の講義ならともかく 通年の講義で8月にもなろうっていうのに いまだにC部分教えてるようじゃ その教師は多分C++つかえねーんじゃねーかって思っちゃうよ。
>>257 CとC++の区別がつかないのは質問者では?
講義名が本当なら、一年生の実習っぽいし、実際に習ってるのはCなんじゃね?
通年講義だからこそ半期でCをみっちり教えようという可能性も
CライクなC++プログラムでも構わないが せめて<cstdio>と書いて欲しいところだな
>>268 console input output
270 :
sage :2008/07/25(金) 22:50:17
>>270 コンパイラのバージョンとエラーの詳細をどうぞ
>>270 linux の文字コードが EUC なら
nkf -Se foo.c > bar.c
mv Book1.csv tmp.csv
nkf -Se tmp.csv > Book1.csv
>>269 これMS-DOS用なんだ。
今日まで知らなかった。
>>270 sscanf(token,"%s",temp->fname);
sscanf(token,"%s",temp->lname);
>>233 かなり多くの人がいれかわりたちかわり説明していたのですが。
もしかして、まさか、一人が文体を変えて粘着していた、と思っておられるのでしょうか?
相手にすんな
未解答(本スレ)
7478,(前
>>901 )
>>27 分数の計算 [7月30日] VC6.0 C++
,
>>62 貯蓄額とローン返済 [7月28日] VC2005 C++
7495,
>>116 UNIX通信プログラム(pdf)[7月24日12時] gcc C言語
7496-7497,
>>119 文字列中のパターンの繰返しを調べる [7月24日] gcc C言語
7499,
>>135 定積分の計算 [早く] VC6.0 C++
kadai1.pdf,
>>175 合流点(join)を持つ構造 [7月28日] gcc C言語
>>238 マイナー掲示板で聞けば?
問題はどうやって探すかだけど
>>27 イカサマぽいけど参考プログラムの
int a,b,c,d,a1,b1,r,e;を
__int64 a,b,c,d,a1,b1,r,e;にして
scanfとprintfの%dをすべて%I64dにすればいいんじゃないの?
>>275 いや、その通りだが?お前が一人で見えない敵と戦ってた方か・・・
>>276 っつか、お前か、死ねとか平気で使う奴は?さすがにそれは
精神レベルが低い、人間としておかしい。
日ごろ自分がまともに相手にされていないから、このスレで相手にされたいの?w
うわっ、まだいるのかよ、麻呂を目の敵にして EOFが入力できないといつまでも主張する奴。 ここにいる奴らにはそれで通しても、現実的に 業界や関わる機関でそんなことを言ったら、一発で 締め出されるよ。お前、適性がないよってねw
EOFって環境によって違うけどWindowsは^zじゃないの?
ナンバーサインってさ、団子だろ?自作板でしばらく見なくなったが
>>291 問題はね、EOFが何なのか?というよりも、EOFが入力できるか?
って話になっているわけ。で、その物議を醸した原因が、
>>290 にある
入力は出来ないといってしまったナンバーサイン野郎にあるわけだが
環境によっては違うけど、入力は出来ると結論が出ているのに
必死にfgetsではどうとか、無関係な話を始めたから、いやいやそういう
話じゃなくて・・・って無限ループに入ってしまったわけだよw
自分のミスは蒸し返すとファビョるくせに、しつけーなw
>>293 まあ、入力を終了するのとEOF(=-1?)を入力するのは違うと主張したいらしいけど。
ここは酷いインターネットですね。
>>297 無駄に難しいな。何で配列とポインタが必要なんだw
入力ってstd::cinからでいいの?
>>295 そういう意味では、EOFは入力できない、というほうがまともな解釈なのではないかな。
>>300 彼は、そもそも「すべてのファイルの末尾にEOFがある」とを主張していたんですよ。
EOFの議論はまだできないかと。fp と fd の違いも理解しているかどうか‥‥‥。
1] 授業単元:プログラミング [2] 問題文: ファイル:fft(高速フーリエ変換)のプログラムを作れ fft.hを使わないとできないのかもしれないけど。 [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:明日 [5] その他の制限: 特になし
そうくるとおもってた・ つくれといってもネットにあがりすぎだよなー。
まぁ、ソート、フィボナッチ、素数、リスト、カレンダー、閏年、二次方程式の解など 探せば普通に出てくるガナ (´・ω・`)
ネット上のを参考にしても要は理解してれば良いんじゃないかと
まる投げするつもりマンマンのやつらは、 問題すら読んでないからな・・・
ファイルのディレクトリを取得する関数ってある?
>>308 どういうこっちゃ?ってスレ違いだが。まぁ、指定した名前のファイルがあるか
ルートディレクトリから虱潰しに探して、そのときのディレクトリ+ファイル名で
そのファイルのパス名を取得する手段ならあるが。_findfirst やら chdir やら
opendir は必要ないかも。
>>309 あ、そうそうパスだすまんw
今Cでランチャー作ってるんだが、結構難しいなthx
ミサイルの命中精度を上昇させたいのですが いいアルゴリズムありますか?
精度の高いコンピュータを開発してくれ。どうせ0.5度でもズレたら 距離が長くなれば何百メートル、何キロかズレた場所に着弾するんだろ、 あの国は海に落として日本を威圧しているつもりなんだろうけどさw はい、次。
っつか、GPSを使った軌道、着弾点を修正するシステムがないと厳しいよ。 風に流されてあらぬ方向に、なんてのもあるもんかね?専門家じゃないから知らんが。
314 :
デフォルトの名無しさん :2008/07/26(土) 15:16:06
風の修正は当然考慮するプログラムだろう
315 :
デフォルトの名無しさん :2008/07/26(土) 15:16:58
玉の位置がわかれば小学生でも作れるだろ
ミサイルの先に>315をくくりつければ 風なんて気にしなくて良い
>>311 ミサイルに人を載せて操縦させるのが、あらゆる面で効果的かと。
別にめずらしい話ではないですよね。
そのままミサイルと心中・・・する前に、緊急脱出すりゃ良いか。 でなきゃ、特攻隊じゃんか・・・
>>318 巡航時のミサイルの速度を考えると、緊急脱出は不可能かと。
>>319 戦闘機などの緊急脱出を思い浮かべたのかもしれないが、
よくよく考えたら、操縦席と本体を切り離せる仕組みにしておけば良い。
しかし、操縦席だけ話して、操縦者を着弾点付近に残したら
そのまま拘束されて、捕虜にされんぞ?最悪、その場で・・・
そういった意味で、帰るための飛行機と燃料も必要になるわけだが。
だったら、最初から戦闘機で爆撃・・・ってことになるんでは?
そりゃもうミサイルではなくなるがw スレチ話題ですまそ。ではっ。
桜花
>>320 目標を定め最期の急発進を開始してから衝突するまでは10〜20秒だったそうです。どんな機構であれ脱出は困難かと。
>>322 だから、操縦席と本体を分離するんだよ。最後にコードを入力して、ミサイルだけ落下。
操縦席はそのまま上空を移動。しかし・・・どうやってそのまま飛び続ける?って考えたら
やはり爆撃っしょw
使い捨ての安いハンドルが捕虜や死体の山になろうとも (何も知らないし、政治的価値も無いから)痛くも痒くもない
そりゃそうだろ、特攻隊が戻ってくるための燃料を積んでなかったように。 そこまで考えるなら、最初から物体だけ飛ばして・・・っつかね、現代に於いては 衛星を使った遠隔操作も出来るでしょ?w
>>325 > そりゃそうだろ、特攻隊が戻ってくるための燃料を積んでなかったように。
都市伝説
ゼロ戦のパイロットは、機銃が通用しないアメリカ軍の戦闘機に直接爆弾を投下したそうだ。
ようするに>305がいいたいわけだよ。 こういうのはネットにあがってるから質問をするなと。
>>326 おいおい、あの時代、資源だって乏しかったわけだろ?
航空機で使われる燃料の量なんて、自動車の比じゃないだろ?
突っ込む飛行機に、往復分の燃料を入れる余裕があったとでも?
っつか、宿題スレなのに、なんか軍事の話になってるじゃん・・・ そろそろ打ち切ろう。それ専用の板へ、ゴーw
/* Part114
>>135 *//*
>>244 (2) 答えは漸近法によると1.841 */
#include <stdio.h>
#include <math.h>
double f(double x){
return cos(x-1.841*sin(x));
}
void main(){
int n, i;
double h, a, b, e = 0.0000001;
double s1, s2, yo, ye;
a = 0.0;
b = 3.1415926535897932384626433832795;
s1 = 1.0;
s2 = 0.0;
for( n = 1; (s2>s1 ? s2-s1 : s1-s2) > e; n++ )
{
n += 1;
s1 = s2;
h = (b - a) / (double)n; //hを求める式
yo = 0.0;//初期値
ye = 0.0;//初期値
for(i=0; i<n; i+=2){
yo += f(a+(i+1)*h);
}
for(i=2; i<n; i+=2){
ye += f(a+i*h);
}
s2 = h*(f(a) + 4*yo + 2*ye + f(b))/3.0;
printf("n=%d s2=%f\n",n, s2);
}
}
331 :
330 :2008/07/26(土) 18:09:46
278 ありがとうございます。なんか致命的エラーとかでちゃいましたけど。。
>>332 ほらな、やっぱり習ってんのはCだけなんだよ
馬鹿いってんじゃないわ 馬鹿いってんじゃないよ あそばれてるのがわからないなんて かわいそうだわ 1年目の講義ぐらい大目にみろよ
などと意味不明の言葉を発しており、動機は未だ不明
明日アキバに逝くのは止めた方がいいかな。
また何かあるの?kwsk
>>334 開いたままの fopen が気に入らないのよ
いや、天気悪そうだし...
341 :
123 :2008/07/26(土) 21:18:47
プログラムなんてどーでもいいから彼女でも作って海でも行けよ
夏よな・・・
MakeGirlFriend(int age);
[1]C言語 [2] 5個の要素を持つint型の配列があるとき, 1、要素の値を入力する関数input_array 2、要素の値を画面に出力する関数output_array 3、要素の値の合計を計算する関数sum_array 4、要素の値の平均を計算する関数ave_array 1〜4を呼び出すmain関数を作成。 なお1.については,キーボードからの入力でも,擬似乱数生成の標準関数を利用したものでも,どちらでも良い。 [3]OS:Windows 言語:C [4]2008/07/28 よろしくお願いします
>>347 簡単すぎて、麻呂には役不足でおじゃ、誰かやってたもう ↓
>>348 んじゃ。
#include <stdio.h>
#include <stdlib.h>
#define N 5
#define SEED 31415926
void input_array(int x[]) {
int i;
for (i = 0; i < N; i++) x[i] = rand();
}
void output_array(int x[]) {
int i;
for (i = 0; i < N; i++) printf("%d:%d, ", i + 1, x[i]);
putchar('\n');
}
void sum_array(int x[]) {
int i, s = 0;
for (i = 0; i < N; i++) s += x[i];
printf("sum:%d\n", s);
}
void ave_array(int x[]) {
int i, s = 0;
for (i = 0; i < N; i++) s += x[i];
printf("average:%.2f\n", (double)s / N);
}
int main() {
static int a[N];
srand(SEED);input_array(a); output_array(a); sum_array(a); ave_array(a); return 0;
}
麻呂はその手の課題は・・・ネットワークにアクセスするタイプはさっぱりでおじゃ 取得したデータの処理ならなんとか、HTMLに関する知識もあるでおじゃるが
[1]C++演習(入門者クラス) [2]デストラクタ以外に、継承親クラスがvirtualメソッドを持つ子クラスを作成し、 親クラスの継承メソッドの修正無しに、子クラスにおける継承において整合性が 保たれる例を作りなさい。サンプルアプリケーションとしてデモンスレートすること [3]Windows/Visual C++ 6.0/C++ [4] 7/31 23:59 メールの締め切り期限ですが 添付レポート文書を作成する必要から、7/30までにお願いしたいです。 出来れば、添付レポート文書のほうもお願いしたいです。 よろしくお願い致しますです。
>>353 #include <iostream>
using namespace std;
struct hoge {
char*a;
}h[5]={
"あきら 176.5 76.3",
"さとる 171.8 78.4",
"ゆうじ 177.2 69.2",
"だいち 165.3 65.3",
"しんのすけ 180.5 78.4"
};
int main(int argc,char**argv){
int n;
scanf("%d",&n);
if(1<=n&&n<=5){
cout <<"番号\t名前 身長 体重"<<endl;
cout <<n<<'\t'<<h[n-1].a<<endl;
}
return 0;
}
おまけ:初期値1項比1の等差数列で合計が1000になるのは何通りか(こたえ:3とおり)
公比 -- 等差 ん?
よろしくお願いします。 [1] 授業単元:C言語プログラミング [2] 問題文: 2つの整数をカンマ(,)区切りで入力し 一方の数値からもう一方の数値(小さい方から大きい方へ)までの 和を求め結果を表示する。(マイナスも扱う) 入力する文字列は'\0'を含め128文字以下とし 数字、カンマ、マイナス、スペース以外の 文字が入力された場合はエラー表示をする。 ひとつひとつの整数はshortで納まる範囲であるか チェックをし、範囲外ならエラー表示をする。 正常とする入力例: -123,45 23 , 12 エラーとしてよい入力例: 2,,123 --86,2 [3] 環境 [3.1] OS:windows xp [3.2] コンパイラ名とバージョン:VC6.0 [3.3] 言語:C [4] 期限:8/1 [5] その他の制限: 標準関数は使用せず、文字列を数値に変換すること。 入力は1回、表示も1回とする。
359 :
デフォルトの名無しさん :2008/07/27(日) 15:35:57
[1] 授業単元:プログラミング序論 [2] 問題文(含コード&リンク): 構造体classに関する以下の関数を定義せよ. 構造体classの内容を表示する関数 void printc(struct class) 配列stuの学生数num人分の名前と点数を表示する. 関数renewを,クラスにいない学生を入力するとその学生をクラスに追加するように改良した関数 void renew(struct class*, char*, int) すでにいる学生の点数を更新した場合には更新と表示する. 追加した場合は追加と表示する. クラスの学生数の上限(MAX)に達している場合は,追加失敗と表示する. [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: どちらでも可 [4] 期限: 2008年7月30日まで [5] その他の制限: for,if,配列、ポインタ等はおkです。よろしくお願いします・・・!
>>358 #include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(void){
char buf[128]="", tmp[128], *p;
short a, b;
int i, n, result;
fscanf(stdin, "%127[^\n]", buf);
for(i=0,p=buf;buf[i];i++) if(!isspace(buf[i])) *p++=buf[i];
*p='\0';
if(sscanf(buf, "%hd,%hd%n", &a, &b, &n)!=2 || buf[n]!='\0'){
printf("\nエラー:書式が異なるか数値ではありません\n");
return 1;
}
sprintf(tmp, "%d,%d", a, b);
if(strcmp(buf, tmp)){
printf("\nエラー:範囲外です\n");
return 2;
}
if(a>b) a^=b,b^=a,a^=b;
for(i=a,result=0;i<=b;i++) result+=i;
printf("%d\n", result);
return 0;
}
361 :
デフォルトの名無しさん :2008/07/27(日) 16:12:38
1] 授業単元: プログラミング [2] 問題文: 次に示す手順で、円周率πを求めるプログラミングを作成。 [手順1]:unsigned char map[1000][1000]を宣言し、 全ての配列要素を0に初期化。 [手順2]:rand()を使い、この配列map中のランダムに選んだ10000個の 要素の値を0から1に変える。 [手順3]:この配列を1辺が1000の正方形とみなし、半径500の円が内接しているとし、 正方形内には要素の値が1の点がN個プロットされている。 円の内部にあるに点の数をN1とする。 [手順4]:N1とNを使って円周率πを計算。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:2008年7月28日 お願いします。
>>361 同じ点が複数回選択された場合を考慮する?しない?
363 :
360 :2008/07/27(日) 16:16:58
364 :
デフォルトの名無しさん :2008/07/27(日) 16:22:04
[1] 授業単元: プログラミング演習U [2] 問題文(含コード&リンク): オセロの対戦ゲームを作成。(8×8マス) プレイヤーは両方とも人であるとし、順番に○または●を置く位置を x,y座標で入力してゲームを進めよ。 すなわち、盤面の管理だけをコンピュータにさせよ。 また、置けない場所に指定した場合は再入力を要求せよ すべてのコマを置き終わった段階でどちらかが勝ったかを画面に入力すること。 ゲームの現在の状態を2次元配で表して画面表示すること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 2008年7月28日
>>358 ぶっちゃけ、かなり面倒くさい。2つを別々に入力を受けつけりゃ良いものに
相当ひねくれた講師なんだな。講義に出た際に抗議しちゃえ、なんつって。
366 :
デフォルトの名無しさん :2008/07/27(日) 16:25:33
367 :
デフォルトの名無しさん :2008/07/27(日) 16:28:54
>>366 すいません。特に指定がないのでどちらでも大丈夫です。
>>340 遅くなりましたがありがとうございました。
無事コンパイルすることができたのですが、文字を入力すると1文字ごとに秒数が表示されてしまいます。
また時間が立つと自動で終了してしまいます。
あとこれはコンパイル自体に関係ないと思うのですが、警告 W8004 ex728.c 13: 'jikan' に代入した値は使われていない(関数 main )
とでます。
>>358 この感じ・・・ 久々にやるしかない 麻呂のクソースを
isspaceを最初に使ってたけど、後から !=0x20 に変えてしまったが すべて書き換えてなかったでおじゃ。その辺は適当に書き直すでおじゃる。
>>361 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
unsigned char map[1000][1000];
int x, y, N, N1, i;
memset(map, 0, sizeof(map));
for(i=0;i<10000;){
x=rand()%1000; // 乱数の偏りがあるよ
y=rand()%1000;
if(map[y][x]==0){
i++;
map[y][x]=1;
}
}
N=N1=0;
for(y=0;y<1000;y++){
for(x=0;x<1000;x++){
if(map[y][x]){
N++;
if((x-500)*(x-500)+(y-500)*(y-500)<500*500) N1++;
}
}
}
printf("(%d/%d)*4=%f\n", N1, N, 4.0*N1/N);
return 0;
}
>>359 言語指定CでないとC++の予約語と被るよ
>>62 貯蓄とローン返済は別々に計算するとして、
年利が一つでいいのかとか、
間隔の時間単位は何なのかとか・・・
>>374 見分ける方法はなんですか?シロウトですみません
>>376 A組
Tom 88
Mark 70
Tom 77 (更新)
Marie 90
という感じです
出力は
A組 Tom 88
A組 Tom 88 Mark 70 (Mark追加)
A組 Tom 77 Mark 70 (Tom更新)
A組 Tom 77 Mark 70 Marie(Marie追加)
というようになるようにしたいです。
>>378 そうなんですか!じゃあ、
>>359 はC言語オンリーに修正でおねがいしますm(_ _)m
>>358 >>363 int s2scanf(char *p, short *a, short *b){
char c;
short d, minus, comma = 0;
d = minus = 0, *a = *b = 0;
while((c = *p++) != '\0'){
if(c >= '0' && c <= '9'){
if(d == 3) return 1; // NG
d = 1;
*a = (*a)*10 + c - '0';
}else if(c == '-'){
if(d != 0) return 1; // NG
d = 2;
minus = 1;
}else if(c == ' '){
if(d == 0) continue;
if(d == 2) return 1; // NG
d = 3;
}else if(c == ','){
if(comma != 0) return 1; // NG
comma = 1;
if(minus != 0) *a = - (*a);
d = minus = 0;
a = b;
}
}
if(minus != 0) *a = - (*a);
return 0; // OK
}
>>381 うざいな。
1レス32行に収まる程度ならいいだろ
384 :
デフォルトの名無しさん :2008/07/27(日) 19:09:57
>>380 こいつわざわざここに書き込むのにスペースを必死に入れているよな?w
すんげー笑えるw そんな無駄な作業してんなら、うpロダ使えば楽勝じゃね?
>>383 いちいち反応するお前の方がウザい。スルーを知らない奴って
何か言われると脊髄反応するからバレるんだよw
あと、誰もお前に直接言ってないと思うが?w
だってそれ、
>>1 に書かれている一部だぞ???
> 気に入らない質問やその他や発言はスルーの方向で。
日本語が読めないゆとり馬鹿ってほんっとうぜーよな・・・
今年の新入りってかなりたちが悪いな。まぁ、あれだろ、刃物を振り回すとか
事件を起こした奴らとほぼ同じ世代。そしてその世代ってあの教育の世代。
まじでこいつら日本語が読めないんじゃね?かなりやばいよ。
>>381 なんか度々これ書き込んでるけど、ウンザリだわ
>>386 なんか度々反応してるけど、ウンザリだわ
いちいちムカつくレスをしないでも良いってw
だってそれ、
>>1 に書かれているものと同じだからw
それをウザがる =
>>1 が読めない馬鹿 でおk。
> 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) 長ければ(笑)長くないから直書きだよーんw
>>380 ほんとだ、こいつスペースをわざわざ入れてるよ・・・ご苦労なこった。
なんでアップローダを使うように促されたか、分かってないんだろうね・・・
別に強制はしてないよ。しかし、
>>360 にしろ汚いゴミソースを残して最悪だな
この反発キチガイ共は
>>387 宿題にたいしてはシュンとしてるのに、
役立たないレスだけは元気一杯だな。
IDが無いと自分擁護し放題すなあ
>>388 なんでお前が長いかどうかを勝手に決めてるの?
んじゃどこまでが長いかってその定義を言ってくれよ?
まぁ、いえないだろ。そう、所詮それは 自分基準 だからな。
そして、うpロダ使えって言うやつも自分基準。
だからお互いに衝突しあって、一方が勝手な主張をはじめるから荒れる。
さて、長いの定義は?所詮、この世の人間なんて十人十色だから
自分にとってこれは速いだの遅いだの、美味いだの高いだのって
主観をやたらと述べる奴ほど、現実世界では自意識過剰の自己中なんだよね。
>>1 に長ければの定義が無いのなら回答者の自分基準でおk
おまえらさっさと糞して寝ろ
長文かな?長文かな?遅いねえ
397 :
349 :2008/07/27(日) 19:38:19
>>385 > こいつわざわざここに書き込むのにスペースを必死に入れているよな?w
べつに。sed で一発変換してますが。
> いちいち反応するお前の方がウザい。スルーを知らない奴って
あなたもいちいち反応してますねぇ、 昔 か ら 。
人のこといえた義理ではないでしょう。
1レス32行に収まる程度なら、アップローダを特に使用しなくても問題ないと思いますが。
EOFをちゃんと勉強してからでなおしてきてください。
> 気に入らない質問やその他や発言はスルーの方向で。 いちいち反応する奴もどうかと。一方が悪いというよりも、これじゃ両方だろ。 荒れる発言をしている奴こそ鬱陶しいんだが、他の回答者からしてみれば。 んで、長いって言ったあんた、どのくらいまでが長くないって基準なのよ? そういう決まった規定もない、自分がそう思うからという主張は 価値観の違う相手には通じないよ。それこそ自分の方が相手に意見を 押しつけてるだろ。そりゃ人間、価値観が違う人なんて、いくらでもいるのは 現実世界で他人と接していれば分かることだろ? そのくらいじゃアップローダは不要だって思うなら、別に良いじゃん。
-----------------終了-------------------
自分の苛立ちを表す衝動が抑えられない奴って、精神的に問題ありだな・・・
相手の素性も分からないこんな場所で、必死に見えない敵と戦っている自分が
恥ずかしく思えてこない?そうやって一生、自分が気に入らない奴を見ると
誰それ構わず噛みつくの?かなりやばいよ、それ。2ちゃん慣れしてないって言われない?
まぁ、一生見えない敵と戦ってなさい。生きている人間には必ず訪れるその
死の瞬間に、あぁ、自分はなんであんなスレであんなに必死だったんだろう・・・
って過去を顧みながら余生を過ごす日が来るんだろうね・・・
こうして下らない争いをしていても、確実に来るその死の瞬間に向かって時間は
刻一刻と過ぎ去っているからね。1秒でも下らないことをしていれば、人生の積み重ねに
なっているわけで、それを継続した人は、かなりやばい人間に成り下がっているよ。
そう、その程度の、しかも
>>1 に書かれていると分かっているコピペを見て
必死に罵倒しているあんた、どこのプライドの高い講師か知らないが
頼むから人込みの中で暴れないでくれよ。スルー出来ない時点でお前も同罪。
はい次の方ー
今回はうpロダ使え、なんて書いてないじゃん?
なんで
>>1 のコピペに必死にうざいだの反応してんの?
そうやって自分の感情を抑えられないどころか、書き込んじゃう癖は
直せと命令したりすると、またファッビョーンなんでしょ?
直せとは言わないが、どっちもうざい。宿題に回答する気がないならROMってろ。
はい次の方ー
>>2では反対してるみたいだけどw [1]回答品質(ヒント/コンパイル済/テスト済/清書済) 何も書かなければ清書済みとみなされます。 [2]コード: うpローダー使う場合は、リンクだけでなく、問題内容について一言。 質問者の問題もうpローダー上で、問題内容が分からない場合がありまつ。 リンク先のコードにも、どのスレのどの問題とのリンクでそのコードが あるのかを明記(しないと流用された場合、責任取らされることになるか もよ)コード、直接記述もいいけど、長過ぎる場合で複数レスに跨がるのなら うpローダーを使いましょう [3]コンパイル/テストに使った処理系 コンパイル済み、テスト済み、清書済みの場合は書いてあげたほうが 「コンパイルできな〜い」なんてレスにいちいち反応しなくて済みます。 [4]コメント 入れてあげてね。
405 :
349 :2008/07/27(日) 20:12:08
>>398 > いちいち反応する奴もどうかと。一方が悪いというよりも、これじゃ両方だろ。
残念ながら、あなたのほうが悪いですね。
簡単なみわけかた=抗弁レスの総行数
>>1 のコピーに対して、「それはおかしいのでは」という反論を2行かいただけなのに、
あなたは何行必死になって書いているのでしょう?
>>400 > 自分の苛立ちを表す衝動が抑えられない奴って、精神的に問題ありだな・・・
ご自分のことですね。よくわかってらっしゃるじゃないですか。
まずはEOFを勉強することですね。がんばってくださいね。
だからね、自分はうpロダ使わなくて良いって判断したなら良いじゃん。 けど、ここに直接書き込むと、字下げのスペースの処理を 敢えて別にしているわけでしょ?そりゃソフトを使えばどうってことないがさ。 人それぞれだし、後は自分で決めたら?それが出来ないから、他人から 何か目の前に出されると、鬱陶しくて歯痒いその苛立ちを抑えきれず ファビョーン、お前うぜーんだよ!って、目の前の無機質なコンピュータに 当り散らしてタイピングして書き込んでいる自分がいるのにお気づきかね? 部屋に誰か他の人がいません?もしいるなら、かなり変な目で見ているでしょうね、 そんなあなたを。
>>406 > あなたは何行必死になって書いているのでしょう?
408 :
13 :2008/07/27(日) 20:20:57
>>404 >[1]回答品質(ヒント/コンパイル済/テスト済/清書済)
不要。そもそも「清書済には文句をつけるな」という輩のためのものじゃないですか?批判を恐れるようなら最初からアップしなければいいのです。
>流用された場合、責任取らされることになるかもよ)
ってどんな責任をとらされるのですか?具体的に予想される不利益をあげてください。そもそも責任をとるって、どういうことかお分かりになっているのですか?
>[3]コンパイル/テストに使った処理系
私は書いていますが、まあなくても特に問題はないでしょう。不要です。
409 :
380 :2008/07/27(日) 20:22:31
何か質問ありますか? ちなみに字下げは、ミスしましたが、隠したいところなので、『瓢箪から駒』でそのままにします。
[1]回答品質(ヒント/コンパイル済/テスト済/清書済) 仕様を満たしていて、動けばいいでしょう [2]コード: 複数レスに跨がるのならうpロダを使いましょう その場合はファイルへのリンクを張りましょう [3]コンパイル/テストに使った処理系 特になし [4]コメント 好きにしたらええ
世の中からC/C++を片付けてください お願いします
藁
416 :
デフォルトの名無しさん :2008/07/27(日) 23:22:00
[1] 授業単元: プログラミング演習 [2] 問題文: 「1」のカードが3枚、「3」のカードが3枚、「5」のカードが3枚、「7」のカードが4枚、「9」のカードが5枚ある。 この18枚のカードを並べて6桁の数字3個作り、その3個の数の総和が1234567となるカードの組み合わせを求めよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 7月30日 方向性からまったくわかりません。お願いします。
418 :
>>4 :2008/07/27(日) 23:31:46
>>127 すいません。ありがとうございます。
レスが遅くなり、申し訳ございませんでした。
もう少し頑張ってみます。
分からない所とかあったら、質問させて下さい。
本当にありがとうございます。
>>416 ..............
117393 157395 959779
117393 157399 959775
117393 157775 959399
117393 157779 959395
117393 157795 959379
117393 157799 959375
117393 159375 957799
117393 159379 957795
117393 159395 957779
117393 159399 957775
117393 159775 957399
117393 159779 957395
117393 159795 957379
117393 159799 957375
117393 177575 939599
117393 177579 939595
117393 177595 939579
117393 177599 939575
117393 179575 937599
117393 179579 937595
...........
スパムメールになりますんで、結果を出題者にメールしないほうが
いいと思いまつ
>>419 うっちゃるも、片付けるといえば片付ける
>>359 #include<stdio.h>
#include<string.h>
#define MAX 10
struct class{
char name[50], stu_num;
struct student{
char name[50];
int score;
}stu[MAX];
};
void printc(struct class x){
int i;
printf("%s", x.name);
for(i=0;i<x.stu_num;i++) printf(" %s %d", x.stu[i].name, x.stu[i].score);
}
void renew(struct class *x, char *name, int score){
char i, *fmt=" (%s追加失敗)\n";
for(i=0;i<x->stu_num;i++) if(strcmp(x->stu[i].name, name)==0) break;
if(i<x->stu_num) x->stu[i].score=score,fmt=" (%s更新)\n";
else if(i<MAX) strcpy(x->stu[i].name,name),x->stu[x->stu_num++].score=score,fmt=" (%s追加)\n";
printc(*x);
printf(fmt, name);
}
int main(void){
struct class a={"A組", 0};
char buf[50];
int score;
while(scanf("%49s%d", buf, &score)==2) renew(&a, buf, score);
return 0;
}
なんか、聖徳太子ネタも飽きてきた。次のネタ考えて↓
[1]C++言語(中級) [2]相互参照,相互生成する継承関係の無い6つのクラスを設計し、実装せよ。 (クラス定義だけでなく、デモコードも実装せよ) [3]Linux/g++/C++ [4] 7/29 17:00 (必着) 質問の意味が本当にちんぷんかんぷんです。(日本語ですか?これ) 単位取れるかどうかがかかってますんで、お頼み申し上げます。m(__)m
#include<stdio.h> #include<string.h> #define MAX 10 struct a{char b[50],c;struct d{char b[50];int e;}f[g];};void h(struct a i){int j;k("%s",i.b);for(j=0;j<i.c;j++)k(" %s %d",i.f[j].b,i.f[j].e);}void l(struct a* i,char*b,int e){char j,*m=" (%s追加失敗)¥n";for(j=0;j<i->c;j++)if(n(i->f[j ].b,b)==0)break;if(j<i->c)i->f[j].e=e,m=" (%s更新)¥n";else if(j<g)o(i->f[j]. b,b),i->f[i->c++].e=e,m=" (%s追加)¥n";h(*i);k(m,b);}int p(void){struct a q={ "A組",0};char r[50];int e;while(s("%49s%d",r,&e)==2)l(&q,r,e);return 0;}
p://xxx.s97.xrea.com/x/7amigos/7amigos.cgi
>>416 ようやく現実的な時間(C2D 2.66GHz 11秒)で解けるようになった、が、特化しすぎで訳分からんw
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(char *a, char *b){char c; c=*a;*a=*b;*b=c;}
int cmp(const signed char *a, const signed char *b){return *a-*b;}
void hoge(char *work, int index){
int i; char tmp[20];
if(index==12){
int a=0, b=0, c; char tmp2[6+1];
for(i=0;i<6;i++) a=(a*10)+work[i]-'0';
for(;i<12;i++) b=(b*10)+work[i]-'0';
if((c=1234567-a-b)<b) return;
sprintf(tmp, "%d", c); qsort(tmp, 6, 1, cmp);
qsort(strcpy(tmp2, &work[12]), 6, 1, cmp);
if(strcmp(tmp2, tmp)==0) printf("%d %d %d\n", a, b, c);
return;
}
else if(index>6) if(strncmp(&work[0], &work[6], index-6)>0) return;
qsort(strcpy(tmp, work)+index, 18-index, 1, cmp);
for(i=index;tmp[i];i++){
if(tmp[i]==tmp[i+1]) continue;
swap(&tmp[index], &tmp[i]);
hoge(tmp, index+1);
swap(&tmp[index], &tmp[i]);
}
}
int main(void){
char work[]="111333555777799999";
hoge(work, 0);
return 0;
}
429 :
127 :2008/07/28(月) 02:37:12
ね。
>>416 3番目の6桁も探してます。
#include <stdio.h>
short table[18]={1,1,1, 3,3,3, 5,5,5, 7,7,7,7, 9,9,9,9,9};
short flag[18]; // = 0
short data[18];
void f(short flag[18], short i, short data[18]){
short a1, j;
int b1, b2, b3;
if(i>=18){
if(data[6]<data[0] || data[12]<data[0] || data[12]<data[6]) return;
b1=data[ 0]*100000+data[ 1]*10000+data[ 2]*1000+data[ 3]*100+data[ 4]*10+data[ 5];
b2=data[ 6]*100000+data[ 7]*10000+data[ 8]*1000+data[ 9]*100+data[10]*10+data[11];
b3=data[12]*100000+data[13]*10000+data[14]*1000+data[15]*100+data[16]*10+data[17];
if(b2<b1 || b3<b1 || b3<b2) return;
if(b1+b2+b3 == 1234567){
for(j=0;j<6;j++) printf("%d",data[j]); printf(" ");
for(j=6;j<12;j++) printf("%d",data[j]); printf(" ");
for(j=12;j<18;j++) printf("%d",data[j]); printf("\n");
}
return;
}
data[i] = -1;
for(a1=0;a1<18;a1++){
if(flag[a1] == 1) continue; // 既に使っている
if(data[i] == table[a1]) continue; // 前回と同じ
data[i] = table[a1];
flag[a1] = 1;
f(flag, i+1, data);
flag[a1] = 0;
}
}
void main(void){f(flag, 0, data);}
434 :
デフォルトの名無しさん :2008/07/28(月) 08:39:56
416です みなさんありがとうございます
>>416 >>433 の探索方法と
>>428 の枝狩りを組み合わせたら
>>428 の所要時間が半分になったよ
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(char *a, char *b){char c; c=*a;*a=*b;*b=c;}
int cmp(const signed char *a, const signed char *b){return *a-*b;}
void hoge(const char *base, char *work, char *flag, int index){
int i, prev=-1;
if(index==12){
int a=0, b=0, c, j;
char tmp[6+1], tmp2[10+1];
for(i=0;i<6;i++) a=(a*10)+work[i]-'0';
for(;i<12;i++) b=(b*10)+work[i]-'0';
if((c=1234567-a-b)<b) return;
for(i=j=0;i<18;i++) if(!flag[i]) tmp[j++]=base[i]; tmp[j]='\0';
sprintf(tmp2, "%d", c); qsort(tmp2, 6, 1, cmp);
if(strcmp(tmp2, tmp)==0) printf("%d %d %d\n", a, b, c);
return;
}else if(index>6) if(strncmp(&work[0], &work[6], index-6)>0) return;
for(i=0;i<18;i++){
if(flag[i] || base[i]==prev) continue;
prev=work[index]=base[i];
flag[i]=1;
hoge(base, work, flag, index+1);
flag[i]=0;
}
}
int main(void){
char base[]="111333555777799999", work[18+1], flag[18]={0};
hoge(base, work, flag, 0);
return 0;
}
うpロダ使えない野郎はまともにmain関数も書けないトーシロか、道理で。 知的に問題ありと、これに関しては、然るべき場所に通報しておきます。
あっ、キチガイが釣れたか。平日の昼間っから暇人だなw キモイんだよ、いちいちエディタ使ってスペースw ウpロダ使えば余裕でそのまま相手に渡せますが?w まぁ、main関数が明らかにISO、ANSI無視。その時点で大減点。 あっ、これは俺基準じゃなくて、世界の標準が基準ですからw
>>433 くそ遅せーなぁ、そんなソースをこのスレに残すなよ
アップローダを使う使わないの個人的なスタイルは自由にしろ
書き込む以上残るぞw
>>438 > あっ、キチガイが釣れたか。平日の昼間っから暇人だなw
ここは暖かく見守ってあげるスレですんで 438みたいなキタナイ言葉で叱咤するのはいけませんね。w
スルーも出来ない奴らも同罪だろ。まぁ、とりあえず落ち着いて鏡を見ろよ。 顔真っ赤だぞ?
>>437 っつか、それとこれとは意味が違うだろ・・・
>>83 は明らかにエラーが出る。
void mainは一般的ではない。コンパイルはそれを通すものもあるが
だいたいそういうのはコンパイラが適当に処理している。
ISO、ANSI準拠ではmainはint型で、引数に関しても指定あり。
>void main(int i,int j) あり得ないな。書くとしても、2つ目はchar *argv[]のようにしないと エラーが起こるし。あるなら書く、ないならint main(void) これが Cの”標準”スタイル。別に標準ではないからといっても、 エラーが起こらなきゃ良い。void mainも本来は標準スタイルではないが 人によってはそれでも問題ない環境はあるからね。
プログラムの主体、始まりをmain関数とする条件で あの引数はないわ・・・少々痛いぞ、無知の荒れっぷりは。 きちっと勉強してから発言しろ、知ったか。 あっ、ちなみに、ISO、ANSI準拠に於いては過去ログでも 物議をか醸したが、中にはmain関数がプログラムの始まりには なっていない独自の環境の人もいるんで、そういう場合ならおk。 だが、ANSI、ISO準拠であろうとなかろうと、mainを主体としている環境なら まずその引数はありえない。エラーがでますよ、例え独自の環境の人でも。
あと、ANSI、ISO準拠では、プログラムの開始はmainと定義されてますんで、あしからず。
それでは
>>61 の模範解をよろ(賞味期限切れかも知れないが)
出来れば、ループ文を使わずにやって欲しいよな気がしないでもない
んで、コンパイラがANSI、ISO準拠を採用しているなら mainはプログラムの開始となっている。 もしプログラムの開始を定義していなければどうなるか? まぁ、変な話、一番上から記述されている関数を順に読み込み 動作不能な妙なプログラムが出来る場合もございますね・・・ そう、結局、この世の中って、何かしら基準や規定はあるんだよ。 それを知らずに、左側通行の国の道で、自分は右側通行します なんて言ったら、笑われるどころかトラブル続出涙目 ><; しかし、このスレにはうpロダを使うよう強制はしていないんで いちいち反応する必要なし。直接書きたいなら書けば良い。 ただし、間違ったり不適切、明らかに幼稚な手法だったとしても 書き込んだ以上残り続けますよ、2ちゃんねるの過去ログに そして受信してログを残してある人のPCや記憶メディアの中に 0と1のデジタルデータの塊として、そのメディアが消滅しない限り、ね?
>>452 誰に頼んでるのか指定が無かったので、横からだがmain再帰でやってみた
#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[]){
static char str[32][256], ge[8192], *p;
if(argv!=NULL){
main(0, NULL);
puts(ge);
return 0;
}
if(argc>=32 || fgets(str[argc], 256, stdin)==NULL) return 0;
if((p=strchr(str[argc], '\n'))) *p='\0';
main(argc+1, NULL);
strcat(ge, str[argc]);
return 0;
}
コンパイラは、リンカの規格まで既定してない エントリーポイントを決定する権限はリンカにある。 コンパイラはmainという名前の関数が定義された 時は、これを特別視して幾つか制限を加える。 関数名としてmainを使う場合は、 戻り値の型と 引き数の形式に制限を加えているのは、UNIXとの 歴史的関係を残す為と思われ。 あと、多分再帰もダメ。
2chログに残すためスレに直接コードを貼ってるので
訂正箇所を指摘してくれた
>>444 の内容貼っとく
114.
>>428 >>435 >>433 - 2008/07/28(Mon) 13:42 No.7520
どちらも、下の比較の前に、if(a>b) return;
の1行入れておくと、重複が10個ほど減る。
>>428 ,
>>435 へ、エール。
if((c=1234567-a-b)<b) return;
>>455 ごちゃごちゃ五月蝿い。こういった規定はANSI、ISO準拠が
世の標準的なんだよ。異質な固有の環境でgdgd言う奴って
どこ言っても自分ルールを押し切るKYだろw
だから社会非適合者って言われるんだよ
何気ない工業製品だって、ISOの標準化が取り込まれてんぞw
そうそう、車のウインカーは左レバー、というのもISOで決められてる。 日本は守ってないがな。
相手がgccコンパイラを使用していた場合、当然プログラムの開始は mainですが、そこにも目が向いていないのもどうかと。 せめて、使用したコンパイラと実行した環境くらい、答える側も述べたら 独自の環境ならw
オートマ車なら左レバーも可能だな
>>460 イギリスは右ハンドルだけどISOにしたがって左だよ、ウインカー。
>>462 それは知らなかった!イギリスはすごいな
例えばCD-ROM。これは日本でも有名なSONYが開発に関わったとは言え 世界レベルでその CD-ROM という固有の名称や製品の細かい仕様まで 定義され、その規定に則って読み込むドライブも製造されています。 仮に、ある国がCDを真似てCDよりも容量の大きい12cmの光学メディアを開発したとしよう。 まぁ、それはDVDではないってことで話を続ける。CDまがいの製品が世に出回り 混乱を生じさせてしまう。だから、もうこういった製品は標準化という その商品の商標だけでなく、基準も定められているのだよ、ワトソン君。
465 :
デフォルトの名無しさん :2008/07/28(月) 15:26:30
【質問テンプレ】 [1]プログラミング基礎 [2] 問題文:1. キーボードから10個の実数を配列 double a[10] に読み込み、合計、平均、 及び最大値、最小値を求めて表示するプログラムを作れ。 [3]Cmachineってやつ。 [4] 期限:この書き込みから30分以内 [5]その他:ヒント: for(i=0;i<10;i++){ printf("a[%d]=??";i); scanf("%lf",&a[i]);} でa[0],a[1],...,a[9] を入力!! (次に) saidai=a[0]; そのあと、計算の為にforループを作るが、 (ループの中で) if (a[i]>saidai) saidai=a[i]; は何を表わすか?きっと最大値を求めるプログラム関連だろう。 しくみがわかれば最小値も同様にわかる。 for(i = 0; i < 10 i++){ b += a[i]; printf("%5d", a[i]);}
>>465 手抜き
#include <stdio.h>
int main()
{
int i = 0;
float max = 0, min = 0, sum = 0, input = 0;
printf( "入力:" );
scanf( "%f", &input );
sum = max = min = input;
for( i = 1; i < 10; ++i ){
printf( "入力:" );
scanf( "%f", &input );
if( max < input ) max = input;
if( min > input ) min = input;
sum += input;
}
printf( "最大:%f\n", max );
printf( "最小:%f\n", min );
printf( "平均:%f\n", (sum / 10) );
}
>>467 問題は何?
実行して値を入力するだけじゃないの?
あと、\は \ でいいよ。
>>470 #include <stdio.h>
struct student_data{
int bangou;
char myouji[128];
char namae[128];
};
int main ()
{
student_data d = { 774, "にしむら", "ひろゆき" };
printf( "学籍番号:%d 氏名:%s %s\n", d.bangou, d.myouji, d.namae );
}
C/C++は低水準な事ができるがVBは無理でしょ
475 :
デフォルトの名無しさん :2008/07/28(月) 19:02:10
[1] 授業単元:プログラミング
[2] 問題文:以下のデータを用いてハッシュ表を構築するプログラムを作成し、ハッ
シュ法を用いた検索に関して考察せよ。
ファイル:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7477 .txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年7月30日(水)
[5] その他の制限: 特になし
前スレでもお願いしましたが、リンク先のサイトのプログラムがよくわからなかったので、
こちらで新しく簡単なのを作ってもらいたいです。参考にしたいので、よろしくお願いします。
476 :
475 :2008/07/28(月) 19:06:51
479 :
27 :2008/07/28(月) 19:48:22
>>283 遅くなりましたが、できました。
ありがとうございます。
>>461 準拠だから、ISOの文書にあるシグニチャしか使えないってことは無いだろ。
>>480 > GNU C コンパイラの特徴のひとつは、前述のようにANSIあるいはISO等の標準への準拠である
>>481 準拠ってのを何か勘違いしてるんじゃないか?
ISOの範囲で書いたものだって動くだろ?
>>82 > void main(int i,int j)
>>482 こんな話ふっといて、まさか手元に一つもコンパイラが無いなんて言わないよな?
>>473 #define private public
>>450 つまらん男じゃのお。
まずはあんたが言うとおりに本当にエラーがでるんか試したらどうなんじゃ?
なんならこんなコードだってコンパイルも通るし実行もできるんだが(x86なら)。
----- こっから
int main=195;
----- ここまで
じゃあの
>>487 引数が int , int でしょ?それじゃ、何を引数として受け継ぐの?
その説明を頼む。
489 :
297 :2008/07/28(月) 21:50:48
>>299 ありがとうございました。
しかし、問1は正常に実行できましたが
問2はうまくいきませんでした。
tolowwer(c); の部分を tolower(c); に修正し、
実行した結果、
ABCDEFG (←と入力)
979899100101102103 (←実行結果)
と、出力結果がアスキーコード(?)に置き換えられてしまいます。
試行錯誤してみたのですが、解決できませんでした。
ご教授お願いできませんでしょうか?
>>490 >void main(int i,int j)
これが何なのか分からないなら、脳に障害があるから
精神科医に診てもらうことを 強要 する
>>491 >>487 に対して「引数がint,intでしょ」と言っているので、それの解答としては妥当だろ?
で、お前はその
>void main(int i,int j)
が理解できないから、お前の脳には障害があり、
精神科に見てもらうことを自分自身に強要するのか。
それはとても良いことです。ただ今は夜なので明日の朝行ったほうがいいね♪
>>489 tolower(c)の戻り値がintだからよくないのでは?
(unsigned char)tolower(c) じゃだめかな・・・・・・
>>493 コード読んでないだろ
>>297 ,489
tolower(c) => char(tolower(c))
>>491 えーーー もう終わり?つまんねーーー
もうちょっと面白いこと書けよ
じゃあの。
テンプレに沿わないで申し訳ないのですが答えて頂ければ幸いです。
ttp://www2.uploda.org/uporg1573352.jpg.html 画像下を表示したいのですが、上の状態になってしまいます。
C++でコードは↓
//線の幅
redpen -> Width = 10;
beigepen -> Width = 10;brownpen -> Width = 10;
Graphics^ graph_Paint= panel1->CreateGraphics();
//書く
graph_Paint->DrawLine(redpen,50,50,90,50);
graph_Paint->DrawLine(redpen,20,60,100,60);
graph_Paint->DrawLine(beigepen,40,70,40,70);
graph_Paint->DrawLine(brownpen,50,70,50,70);
graph_Paint->DrawLine(beigepen,60,70,70,70);
graph_Paint->DrawLine(brownpen,80,70,100,70);
多分この中にミスがあるのだとは思うんですが…
一応明日までには完成させないといけないので早めの回答お願いします。
ソースも出さずに無茶な
>>498 多分、起点と終点が同じ場合に描画しないことが原因と思われ。
graph_Paint->DrawLine(redpen,50,50,90,50);
graph_Paint->DrawLine(redpen,20,60,100,60);
graph_Paint->DrawLine(beigepen,40,70,100,70);
graph_Paint->DrawLine(brownpen,50,70,100,70);
graph_Paint->DrawLine(beigepen,60,70,100,70);
graph_Paint->DrawLine(brownpen,80,70,100,70);
>>500 それ以前に下の画像はタイル状に並んでてそれぞれは1辺が同じサイズの
正方形に見えるんだが、質問主のそうなってないのも問題じゃないの?
502 :
うめ :2008/07/28(月) 22:59:09
>>61 D:\>part114_61.exe
#include <stdio.h>
#include <string.h>
#define LINE_MAX 32 /*32*/
int main(void) {
unsigned char buf[256+1], str[LINE_MAX][255+1], ge[(LINE_MAX*255)+1]="", i=0,
j, k;
while(j=0, k=0, i<LINE_MAX && fgets(buf, sizeof(buf), stdin)) {
while(buf[j] != '\n' && buf[j] != '\0') j++;
while(j>0) str[i][k++] = buf[--j];
str[i++][k] = '\0';
}
while(i>0) strcat(ge, str[--i]);
puts(ge);
}
^Z
};)eg(stup ;)]i--[rts ,eg(tacrts )0>i(elihw } ;'0\' = ]k[]++i[rts ;]j--[fu
b = ]++k[]i[rts )0>j(elihw ;++j )'0\' =! ]j[fub && 'n\' =! ]j[fub(elihw {
))nidts ,)fub(foezis ,fub(stegf && XAM_ENIL<i ,0=k ,0=j(elihw ;k ,j ,0=i ,""=]1
+)552*XAM_ENIL([eg ,]1+552[]XAM_ENIL[rts ,]1+652[fub rahc dengisnu { )diov(nia
m tni/*23*/ 23 XAM_ENIL enifed# >h.gnirts< edulcni# >h.oidts< edulcni#
D:\>
503 :
デフォルトの名無しさん :2008/07/28(月) 23:05:08
>>500 ああ、なるほど…
線に上書きしていけば良いのですね。
ありがとうございました。
>>501 画像の上のは実際に出力したやつで、下のはペイント使って理想像を切り貼りしながら作ったので…
多分解決したと思います。
ありがとうございました。
っつか、やっぱ何かのキャラになりきる奴って、気持ち悪い?
505 :
ゆず :2008/07/28(月) 23:41:32
皆さん、こんばんわ。
課題のレポートが終わらないので、どなたかご教授お願い致します。
[1] 授業単元:C言語初級
[2] 問題文(含コード&リンク):
以下に記載しておきました。
私が作成した未完成のソース等も貼ってあります。
http://m-pe.tv/u/page.php?uid=kadaikadai&id=1 [3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2008年07月29日14:00まで]
[5] その他の制限: 自作の仕様書がどこまであっているかわかりませんが、なるべく仕様書に沿って作成していただけると、うれしいです。
>>506 int main(void){
int c;
while((c=getchar())!=EOF){
push(c);
}
while((c=pop())!=-1){
putchar(c);
}
return 0;
}
けど、出題のpopとかpushはタイポってるよ。
C/¥gomi¥114.61.exe 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 ... 19 20 21 2120191817161514131211109876654321109876654321 C:¥gomi¥ 仕様をじぇんじぇん満たしてましぇーんね。 誰のとは言わないけど。
>>508 それが、本当に実行結果だとしたら、おまいさんのコンパイラかライブラリ、壊れてる。
6が66に化けたりするみたいだ。
>>454 のコードはそれなりに立派。珠玉のコードだと思うぞ。
ただ、普通のコードは書けない感じだが。(ここ向けの、技巧的なコードだけしか書けなくなってる
かも)
括弧なんてかっこう悪いことしてないで、#を使いなさい、無理しなくていいよ 可愛いよ可愛いよ、団子ちゃん
節子、それ、シャープやない、ナンバーサインや
>>512 会社で#をナンバ記号なんて呼ぼうものなら、つまはじきですよ。
イゲタ
# ←格子マークでしょ?
>>514 おさーん乙
Dはディーじゃなくてデーとか言えとかあったなあ
いや、井桁でも間違いじゃないんだけどさ。テレビ番組表でも見かけるが 第何話か表記するのに、#を使っていますよ? それを、シャープ4って読みますか?
>>517 昨今、すっかりシャープで定着してるな。
どっちでもいいよw どうせ命名規則とかそういう記号の読み方って現場の 重鎮に合わせるのがベストなんだしw おさーんがいれば井桁とかいいそうだしね。
20の俺はシャープ以外の読み方を知らないです
C# 俺今までこれ シーシャープ って読んでたわ
むしろシーナンバーサインとか呼んでる奴見たことない
>>521 が言うのもわかるんだけどさ、
今って携帯電話がシャープと言い切ってるのでほとんどがそれで
覚えてるからあれこれいっても無理なんだよな。
文句があるなら携帯電話会社に言わないと
>>525 *がコメってのは無理と思うけど、世間ではそうなんだろ。米印は※さな。
クイズ番組で「スター」って読んだらバツ貰ってたけど、
クイズライターの知識じゃ、そんなもんだよね。
>>526 コメは年配に配慮した結果だろうな。
アスタリスクって携帯の音質からすると聞き取りにくそうだし。
>>529 えーと
1x1のときはどういう形状になるの?
そのサンプルは4x2のときと思って言い訳?
なんか出題がすでにオワットルな。
出題者の頭の中ではわかってるが、出題の説明文に無い。
533 :
502 :2008/07/29(火) 02:14:32
>>502 buf[255+1] に変更、元は buf[256+1] 。
>>529 原点がどこかわからん。
535 :
530 :2008/07/29(火) 02:23:08
>>534 オワットルだろ、これだけ人によって解釈が違うんだから。
出題の説明が足らなさ杉
>>532 のだと、問題文の例と同じにするなら 3 6 で指定すればなる。
縦は行数として、横は □□□ を1つとして勝手に解釈。
>>529 if((i-1)%4==0&&(j-1)%3==0){
printf("★");
}else
if((i-1)%4==0||(j-1)%3==0){
printf("☆");
}else{
printf("□");
}
538 :
530 :2008/07/29(火) 02:41:01
>>505 81 char place[257],*place;
82 char value[257],*value;
↓
81 char place[257];
82 char value[257];
同じ変数名が被ってるからダメですね。
>>505 あと、delete関数内で配列名そのものにインクリメントしているのでダメ。
別のポインタを用意してみては?
109 char del[257],pDel = &del[0];
542 :
デフォルトの名無しさん :2008/07/29(火) 09:22:47
わからないのでおしえていただけると幸いです。 配列wの初期値が int w[7]={1,2,3,4,5,6,7}; により与えられたものとするこれをひとつづつずらして int w[7]{7,1,2,3,4,5,6,1}; にするためのCプログラムを書け (ここで最後の要素は最初の位置に移動するものとし、必要に応じて変数を宣言して使用してよい) もしよければ、お手伝いお願いします。
>>537 >>532 ありがとうございます!
問題文がそれだけだったので説明不足ですみませんでした・・・
>>528 電話のはアスタリスクじゃないよ。よーく記号みてごらん、違うから。
C#は音楽用語のCの半音上という意味から持ってきてるからシャープでいいだろ
546 :
デフォルトの名無しさん :2008/07/29(火) 10:48:45
++で#らしいよ
C+2=C++++=C#
アホと犬は前に見たような気がしたが・・・
>>548 printf("おもろ〜い!\n");
ワロタ
>>542 [テスト済み]
int main(void){
#define WEEK 7
int w[WEEK] = {1,2,3,4,5,6,7};
int i, work;
work = w[WEEK-1];
for(i=WEEK-1; i>0; i--)
w[i] = w[i-1];
w[0] = work;
}
553 :
名無しさん :2008/07/29(火) 13:27:50
>>542 (551と同じことだが...)
#include "iostream"
using namespace std;
void Disp(int *p, int N){
for(int i=0; i<N; i++) { cout << "w[" << i << "]=" << p[i] << "\t"; }
cout << endl;
}
int main()
{
int w[] = {1, 2, 3, 4, 5, 6, 7};
int N = sizeof(w) / sizeof(int);
Disp(&w[0], N);
int tmp = w[N-1];
for(int i=N-1; i>0; i--)
{
//cout << "BEFORE:" << "w[" << i << "]=" << w[i] << endl;
w[i] = w[i-1];
//cout << "AFTER:" << "w[" << i << "]=" << w[i] << endl;
Disp(&w[0], N);
}
w[0] = tmp;
Disp(&w[0], N);
return 0;
}
554 :
デフォルトの名無しさん :2008/07/29(火) 13:32:24
借金をいつ返済できるかを表示するプログラム 入力→借入額、利率、月々の返済額 最初の月 知りたい月 借入額×(1+利率)−返済額 の繰り返し if 値<0になったら「返済し終わりました」と表示させる /* lastkadai.c */ #include <stdio.h> main() { int seisu,h,n; float k,r; printf("借入額を入力して下さい\n"); scanf("%d", &k); printf("月々の返済額を入力して下さい\n"); scanf("%d", &h); printf("何ヵ月後を知りたいですか?\n"); scanf("4 %d", &n); printf("利率を入力して下さい\n"); scanf("%d", &r); for(seisu=1; seisu<=n; seisu++) { k=k*(1+r)-h; } if(k<=0) { printf("返済しおわりました\n"); }else{ printf("残り金額=%d\n", k); } return 0; }
[1] 授業単元: C++ [2] 問題文(含コード&リンク): まず二つの数の割り算の商と余りを 一度に計算する関数を作成する。 整数の場合と,実数の場合の, 2つの関数を同じ名前で定義し, オーバーロードされることを確認しなさい。 【ヒント】 int型の2つの変数a, bがあるとき, aをbで割った商はa / bで, aをbで割った余りはa % bで求めることできる。 double型の場合は, 剰余を求める演算子%は使えない。 商は整数とし,余りの絶対値は 割る数の絶対値を超えないものとする。 数値の入力と計算結果を画面に出力する main関数も作成して,テストを実行する。 [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限:
[1]授業単元:計算機プログラミングI [2]: 簡単なゲームを自由に作りなさい。但し次の仕様を含むこと。 (例:10×10マスの中のもぐらの位置を探し出すまでの回数を競う) ゲームの最大スコアを適当なファイルにセーブし、 次回ゲームを立ち上げると、そのファイルを読み込んでその最大スコアーを読み込むようにしなさい。 そして、ユーザーが読み込んだスコアを上回る成績を出した場合には、賞賛するメッセージを出すとともに、 そのスコアを先と同じファイルにセーブしなさい。 スコアをセーブするファイル名は自由に設定して良い。 [3]環境 [3.1]OS:Linux [3.2]コンパイラ名とバージョン:VC [3.3]言語:C [4]期限:木曜日 [5]その他制限:あまり煩雑としていないもの。ターミナル上で遊べるもの。 これを出せば単位が取れるかもしれません。 宜しくお願いします。
[1]C言語中級コース [2]標準入力から読み込まれた文字列を改行で区切って辞書順に比較し、長さ上位の10行について その前後周辺5行(前2行+当該+後続2行)を行番号+":"付きで表示するプログラムを作成 しなさい。(後続が無い場合は空行を表示) 当該行は先頭行番号前に*を付けて区別させること。 表示が重なり合う場合にも対応し、同じ行を二度出力しないようにすること。 制限:行取り込みにはfgets関数を用いること。1行は最大で4Kバイト以内であるとして良い。 入力された文字列は物質のように扱い、その加工(複製、部分複製、結合、部分文字削除)は 一切禁止する。fgetsで上書きするかfreeで解放するこの2つ以外認めない。 行の長期記憶は、固定変数char *(memory[50])でのみ行うことが出来るものとし、 それ以外の変数(ポインタ以外)で行を記憶してはならない。 static変数は使ってはならない。mallocで確保した領域は必ずfreeすること。 [3]Linux/Gcc/C [4]7/31 19:00:59(期限)メールサーバー送信確認時刻で測定 解説レポートも添付すること(WORD .RTF形式) 制限は厳守で、守っていない場合は評価対象から外すだけでなく、減点だそうでつ(哀) 難しすぎです。困ってます。みなさまのお力をお借りします。(一同)m(_)m
560 :
デフォルトの名無しさん :2008/07/29(火) 17:31:30
>>539 ありがとうございました。動作確認できました。
>>502 出題は逆に連結しろとは書いてあるが、
文字列を逆転しろとは書いてないな・・・
>>558 >標準入力から読み込まれた文字列を改行で区切って辞書順に比較し、長さ上位の10行について
標準入力から読み込まれた文字列を改行で区切って辞書順に比較し、上位の10行について
に訂正します。
結合しろ x連結しろ
565 :
297 :2008/07/29(火) 17:57:34
>>555 剰余を求めるのに関数使っていいのか分からないけど
#include<iostream>
#include<math.h>
using namespace std;
void cal(int,int,int*,int*);
void cal(double,double,int*,double*);
int main(){
int a,b,ans1,ans2,ans3;
double c,d,ans4;
cout << "整数を2つ入力" <<endl;
cin >> a;
cin >> b;
cal(a,b,&ans1,&ans2);
cout << ans1 << "余り" << ans2 << endl;
cout << "実数を2つ入力" << endl;
cin >> c;
cin >> d;
cal(c,d,&ans3,&ans4);
cout << ans3 << "余り" << ans4 << endl;
return 0;
}
void cal(int a,int b,int *a1,int *a2){
*a1=a/b;
*a2=a%b;
}
void cal(double c,double d,int *a3,double *a4){
*a3=c/d;
*a4=fmod(c,d);
}
>>558 Cは自由にやらせても勉強にならないって良く言われるけど、程度ってものがあるよな
気がする。制限キツ過ぎ。短期で解ける問題じゃないと思う。
明後日までの期限だとすると、ここにカキコするの遅過ぎだ。
問題の先頭だけみて、簡単だと思って後回しにしたからそういうことに
なったんじゃないかと憶測
それか、出題者のタチ悪いから、単位や良い評価あきらめたほうがいい気がする
>>562 問題文を変えたその根拠は?
一番長い単語を探すのと、Aから始まる最初の単語を探すのは全然違うよ。
>>567 そうかもしれませんね。半分諦めてます。
>>569 単に問題の写し間違いを見つけたのを訂正しただけです。
板書をノートしたものを総合したので、まだ問題に矛盾とか間違いが見つかるかも
知れません。
逐次行を読み込んで、辞書順で上位5つとその周辺の行だけ残して
それ以外の行を読み捨てて、残ったものを整頓して出力しろというのが問題の意
味なんじゃないかと思ってますが違うんでしょうか?
>>567 問題文が間違ってるのに良くそんなことを断言できるな・・・
573 :
569 :2008/07/29(火) 18:58:36
>>558 1.標準入力からの読み込みなのでシークできない
2.出力すべき行数が最大で50行
3.逐次記憶する箇所が1つ必要
50+1行記憶しないといけないが不足している
汚い手段を使う?
例)memory[0]=={'a','b','c','\0','d','e','f','\0'} // 二行記憶
>>573 ありがとうございます。次いでになってすみませんが
Linuxでそのファイルをシャフルするコマンドとか知ってたら
教えて頂ければありがたいのですが...
>>572 ごめん。理解できない。何をさせたいのかわからん。
BMIを計算する方法が4通りあるってことなのか?
578 :
568 :2008/07/29(火) 19:47:59
568ですが自己解決しました。また機会がありましたらよろしくお願いします!
>>558 辞書順が何を指してるんだろう。
比較の仕方が分からないと上位10行を導き出せないよね。
今さらですまないが、「C#」を画像でどう表現されてるか見ればいいだけ。 VisualStudio入れてるならcsファイルのアイコンとか。 #ではなく、♯が使われてることが分かると思う。 なもんで、ナンバーサインをシャープと読むのが当前なのではなく、ASCII文字に シャープがないため、代替文字としてナンバーサインを使ってるという状態では?
583 :
582 :2008/07/29(火) 21:31:35
あれ。当たり前、を削ったばかりにorz s/当前/当然/
>>581 strcmpでいいってことか?
文字コードが違うと順序が変わる気がするんだが。
>>558 は既に中級向けの問題じゃないね。
データのコピー回数とかに制限があるのは
既に上級レベルだと思う。どんな授業なのか知りたい。
ハードウェア設計とかかな?
>>586 単純に、質問者が問題を理解していないせいだろ。
講義で習ったことが分かってないので、制限がおかしくなって伝わっているだけだと思う。
>>585 >strcmpでいいってことか?
ダメ
>>589 複数回答があったが、どの問題についてどの解答を提出したのか?
>>589 複数あったんだから、別のやつを提出すればいい
[1] 授業単元: 情報 [2] 問題文: 1,入力は正の整数n。出力はn=a^2となるような正の整数aが存在するときは 上の式を満たす正の整数a値を、 存在しないときはNOを表示しなさい。 2,入力は2つの整数a≧b>0。出力はP=aPbとC=aCbの値。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 7月30日 期限迫ってるのにまったくわかりません。文学部の俺には無理です。お願いします><
Cのエキスパートになりたいのなら文学(構文学/文法学/言語学)の素養は必須かもな
安直なフラグの使用など、文系的には眉をしかめたくなるコードだな↓ #include "stdio.h" long main(void){ int n,i; dp{plintf("整数(>0)=>");skanf("%d",&n);}whlie(n<=0); for(i=0;i<n;i++) if(i*i==n){ primtf ("%d¥n",i);return -1;} plintf("NO¥n"); retrun0; }
[1] 授業単元:ソフトウェア開発法
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7540.zip [3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語:C++
[4] 期限: 7月31日
[5] その他の制限: ソース、テキスト、ワードファイルが入っています。C++が苦手なため全くわかりません、どうかよろしくお願いします
問題がpdfで出ていたのですが容量削減のためにワードに書き写しました。
そのため必要な情報が抜けてしまっているかもしれないのです。何か必要な情報を指摘していただければ探し出して再度アップいたします。
598 :
592 :2008/07/30(水) 03:35:59
599 :
デフォルトの名無しさん :2008/07/30(水) 03:39:29
>>596 無駄口叩く割には筋の通った反論にもならんな。
long mainって何?バカだろ、お前w
skanf skanf skanf skanf skanf skanf skanf skanf skanf
#include "stdio.h" < 知っているかもしれんが、これはただのバカ <>と""の違いくらい、普通に知っているよなw
自演か 夏だな・・・
603 :
599 :2008/07/30(水) 04:26:06
自演です。許して下さい。みなさま
>>598 文学部なのに大変だね、
#include<stdio.h>
int main()
{
int a,b,i,result=1;
printf("b(>0)=");
scanf("%d",&b);
printf("a(>b)=");
scanf("%d",&a);
for(i=0;i<b;i++)result*=a-i;
printf("P=%d",result);
for(;0<b;b--)result/=b;
printf("C=%d",result);
}
>>590-
>>591 それがですね、ここ一週間で時間を置いて、解いてくれた解答を全部提出しましたが、残念ながら全滅でございます……
>>607 そもそも、何を修正しろといわれたんだ?
609 :
592 :2008/07/30(水) 09:46:30
すいませんかなり簡単な問題だと思うんですけど筆記の試験問題で出そうなんです。 正直C言語ほとんどわかってません。 (1)aが実数へのポインタ変数のとき、aが実数bを指すようにするにはa=「?」と 書き、また、aが指している実数を「?」aと表す。 (2)整数mの値が3より小さいとき、mを10増やして整数yを1減らすには 次のように書く。 if(m<3)「?」m+10「?」y=「?」-1「?」 (3)関数の定義の一行目がfloat f(x,y)となっている場合、この関数fは「?」個の 引数を受け取って「?」型の値を返す。 この(1)〜(3)の「?」の部分をどうか教えて欲しいです。 ホントに単位がかかっているので出来れば今日、明日中に教えていただきたいです。 よろしくお願いします。
>>610 (1) & か * のどちらかがそれぞれに入ります。
(2) m= か ; か y か ;が入ります
(3)見たまんまです。
>>610 (1)
a = &b
*a
(2)
if (m < 3) { m = m + 10; y = y - 1; }
(3)
2
float
>>610 (2)
if(m<3)m=m+10,y=y-1;
>>608 修正と言うよりは、コンパイルしたらエラーがでるから、エラーが出ないようなプログラムを初めから作り直してくれってことみたいですよ
何処が間違ってるかは教えてくれなかったので
>>614 自分でコンパイルしてみてエラーが出るの?
少なくとも、オレの手元では出ないよ。
俺はgcc使ってないからわかんね
てか提出って3つ別々に分けて提出したのか? それとも1つのソースファイルにまとめて提出したのか?
fopen時のエラーチェックが無いってのもアレだな
619 :
デフォルトの名無しさん :2008/07/30(水) 11:37:46
[1] 数理物理 [2] 数値積分をガウス・ルジャンドル法で行え。 ルジャンドル関数のゼロ点と重みは、N=2,4,6について、次のようにあたえられている。 n Xi Wi 2 +-0.57735027 1.00000000 4 +-0.86113631 0.34785458 +-0.33998104 0.65214515 6 +-0.93246951 0.17132449 +-0.66120939 0.36076157 +-0.23861919 0.46791393 これらを用いて、V(t)=t^10,V(t)=e^tおよびV(t)=sin(t)について X(2) = 1 + ∫V(t)dt (∫の上が2、下が1) の計算を求めよ。 [3] OS:Linax コンパイラー名:たぶんコンソールでいいと思います。 言語:c言語ということしかわからないです。 [4] なるべく早くお願いします。できれば、今日中。
>>615 先生に言われたので学校のPCでやってみたんですが、一番目のプログラムはファイルの名前をつけたら終了してしまうので、多分プログラムのミスかも知れません
2番、3番はエラーがでました
>>617 まとめて出しました
説明不足ですいません……
>>620 >一番目のプログラムはファイルの名前をつけたら終了してしまうので
「つけたら」と言うのが分からない。
行数を数える対象、既存のテキストファイルの名前を入力するはずじゃないか?
>>620 >
>>617 > まとめて出しました
> 説明不足ですいません……
単純に、不正を見透かされたのでは?
>>619 コンパイラ名が分からない奴ってのは、
コードを書いて貰ったところでコンパイル出来ないんじゃないのか?
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): typedef struct{ double tall; int no; }Person; という構造体があり、main関数内でPerson data[200]と宣言されている。 tallをキーに降順にソートし、tallとnoを表示するプログラムを作れ。 qsort()を用いること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 6. [3.3] 言語: C [4] 期限: 明日 [5]
>>619 > 数値積分をガウス・ルジャンドル法で行え。
ガウス・ルジャンドル法って何だ?
> ルジャンドル関数のゼロ点と重みは、N=2,4,6について、次のようにあたえられている。
ルジャンドル関数もわからん。
> これらを用いて、V(t)=t^10,V(t)=e^tおよびV(t)=sin(t)について
関数が三つあるってこと?
> X(2) = 1 + ∫V(t)dt (∫の上が2、下が1)
X(2)の2って何?
627 :
597 :2008/07/30(水) 13:14:21
>>589 はまだ1日以上時間の余裕がある。ちゃんと説明するのだ。
その程度の問題、麻呂でも余裕でおじゃる。
>>629 int compare_int(const Person *a, const Person *b)をプロトタイプ宣言するとコンパイルできません・・・
型指定子がありません - int と仮定しました。
構文エラー : ',' が '*' の前にありません
の2つのエラーです
633 :
632 :2008/07/30(水) 17:14:21
自己解決しました。すんません
>>619 ビルドする時は普通なんですが、デバッグして、ファイルを指定すると
Debug Assertion Failed!
file:fgetc.c
line:41
ってでて、駄目になるんです
なんでもブレークポイントがあるみたいですが
>>622 行数を数えるファイルを指定しても、行数を数えずに終わってしまうんです……
>>623 それはないです
再提出だされた課題の他に、ここで解いてもらった別の問題の奴は受理されたので…
Debug Assertion Failed! は、ありえないパラメタを渡したときに教えてくれる仕組みだよ。 該当部分みればわかると思うが該当コードはどれ?
>>558 >>631 この問題は仕様と満たそうとすると、10x5行をmemoryに取り込んだ状態で
つぎの2行が取り込む物ではないが、さらに次の行では取り込む物の場合
過去の2行復元が出来ないよ。
どこからを「長期記憶」とするかなんだろうけどな
>>636 長期記憶とはグローバル変数や、ヒープのことと思っていいんじゃないかと思ったり
してる。
>>558 ではstatic使用禁止だし。
スタック割り付けのauto変数の寿命が長期記憶に較べて一概に短いとも言いきれないから
こういった変数は非長期記憶な変数と呼ぶのが妥当なのかも。
短期記憶という短絡だけはしないほうがいいかも。
[1] 授業単元:C言語によるデータ構造とアルゴリズム [2] 問題文 画像から肌色部分のみを抽出するプログラムを以下の条件で作成すること 1、肌色以外の部分は白く塗りつぶすこと 2、ユーザから画像データの入力を求める [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日のAM11:59まで [5] その他の制限 問題が抽象的ですみません ですがこれが教授が出した問題文そのままです よろしくお願いします
>>638 これ何年生の講義だよ?
肌色の定義も無しに何を判別するつもりなんだ?
扱う画像データの形式も不明。
>>640 2年生です。
肌色はRGBで判定式を勝手に作れと申してました
扱う画像データは恐らくppmです・・・
後づけすみません
642 :
デフォルトの名無しさん :2008/07/30(水) 18:46:43
>>641 >恐らくppmです
恐らくって....ちゃんと画像形式を聞いて来い
恐らく程度で、人に依頼するようじゃ話にならんぞ
出直して来い
643 :
デフォルトの名無しさん :2008/07/30(水) 18:48:31
肌色と思われる画像を集めてきて、そこから肌色である範囲を定めるんだ。 ここが隠し課題となっている。
>>641 勝手でいいなら、「全部の色は肌色です」でもいいのか?
645 :
デフォルトの名無しさん :2008/07/30(水) 18:49:23
ppmで間違いがない。 というのも入門で扱うのに最も適しているフォーマットであるため。
肌色の画像をたくさん集めたら俺にも確認させてねw
>>644 「白いところが肌色です」というのも一案
649 :
デフォルトの名無しさん :2008/07/30(水) 18:54:39
まず肌色である標本となるRGBを用意。 白人や黒人や黄人 (こんな言葉合った? ) などの標本を集める。 RGBを3次元ベクトルとしてみなして、調べたいRGBとのなす角度を計算する事により 類似度が求まり何人の肌色かを決定する。 ここで複数の人種が混じっている場合は肌色とはみなさない。
650 :
デフォルトの名無しさん :2008/07/30(水) 18:58:39
別に人物の肌ではなくて良かったので、肌色に適合したら残せば良いだけだった。
>>642 画像形式に関しては授業でppmしか扱っていないのでppmで間違いないです
>>644 肌色の定義に関しては人の肌の色としか言ってませんでした
本当に問題の定義が曖昧で申し訳ないです
いつかこの教授をぶん殴ってやりたいです
652 :
デフォルトの名無しさん :2008/07/30(水) 19:02:34
>>643 人間の肌の色って白、黒、黄、褐色等色々いるから大変だよな
判定どうするんだろな
ひょっとして、人間以外の動物も考慮してねも隠し課題じゃね
653 :
デフォルトの名無しさん :2008/07/30(水) 19:04:04
(a,b,c)を肌色とする。(x,y,z)が肌色であるかを調べるには、 (ax + by + cz) / √((a^2 + b^2 + c^2)(x^2 + x^2 + x^2)) の値が、例えば0.9以上などする。 (a,b,c)=(x,y,z)ならば1となる。色が近いほど1に近づく。
654 :
デフォルトの名無しさん :2008/07/30(水) 19:07:13
問題を簡単にするため、肌色で最もあり得ると思われる1色を固定して良いと思われ。
>>651 > いつかこの教授をぶん殴ってやりたいです
肌色の定義が必要なのに聞きに行かなかったオマエが悪い。
657 :
デフォルトの名無しさん :2008/07/30(水) 19:11:10
658 :
デフォルトの名無しさん :2008/07/30(水) 19:12:54
間違えた。 (ax + by + cz) / √((a^2 + b^2 + c^2)(x^2 + y^2 + z^2)) ね。 (a,b,c)と(x,y,z)を単位ベクトルに変換したものどおしの内積ね。
>>654 あの教授の言い方からして肌色で最もあり得る黄色人種の肌の色に固定しておkです
>>655 聞きに行った結果が日本人の肌の(ry
660 :
デフォルトの名無しさん :2008/07/30(水) 19:22:42
日本人の肌色として 16進表記 #F1BB93 RGB (241, 187, 147) CMYK (2, 23, 35, 0) HSV (26°, 39%, 95%) マンセル値 5YR 8/5
>>660 人間の認識力なんて考慮しなくても大丈夫です
あくまで3次元ベクトルとして黄色人種の肌色に近いという判定式でお願いします
>>661 wikiきたw
自分もそのRGBの値を使ってみたんですけど判定式というのがどうしても分からなくて・・
664 :
661 :2008/07/30(水) 19:31:00
この色限定だとほとんどの画像が真っ白になるはず 幅を持たせないとね
この問題を突き詰めていくと、絵とか写真扱うプロが画面のガンマとかの 調整する機械買ってきてキャリブレーションして・・・仕舞いにはプロ用のディスプレイ 買った上でVGAも最適なものを買ってきてとかしないと出題者の理想の肌色は 再現できないかもな。 と、突っ込みどころ満載であほらしい出題だよなあ〜 BMPの読み込みとかさ・・単純なようで結構あれこれ考えないといけないんだよね。 このスレ見てると出題者そのものが勉強しなおせと思うのがよくあるよね。
666 :
デフォルトの名無しさん :2008/07/30(水) 19:36:51
ppmフォーマットについて P3 1行目 フォーマットを表す 640 480 2行目 画面サイズ 255 3行目 RGBの色震度 このあと、スペース区切りでRGBの値を繰り返し書く。 あとどうやら、改行も区切り文字らしい。 例えば初めの所は、P3 640 480でもいいし P3 640 480 でもいいみたい。
667 :
デフォルトの名無しさん :2008/07/30(水) 19:42:45
改行かスペースごとに整数値を読み込むにはどうしたら簡単にできる? char *ch;に全文が入っているとする。
>>662 肌色判定基準をお前が自己責任定義したら?ただ、教授がそれを受け入れるか知らないがな
たとえば
基準となる肌色の8bitRGB値に対してのRGBの3次元ベクトル内積がxx以上を肌色と判定
ただ、基準となる肌色のRGB値と内積のxxは#define等で指定可能にしてくださいとか
670 :
デフォルトの名無しさん :2008/07/30(水) 19:47:53
>>638 一つのファイルだけいきなり作ろうとするとうまくいかないと思う
>>672 画像データって言ったってbmp状にメモリに展開しちゃえば
32bitカラーの場合int枠で1ドットの色を丸々見れるからなあ。
あとは肌色の範囲をテーブルにでも持ってて比較していけばいいだけでしょ。
>>664 そもそも、どうやって入力を与えるかも決めてない。
決めた「肌色」で塗ったところとそれ意外なら・・・
>>670 C++ならこんなん。
#include <algorithm>
#include <vector>
#include <iostream>
#include <strstream>
#include <string.h>
int main()
{
char *ch = "1 2 3 4 5\n6 7\n 8 9 10";
strstream str_stm(ch, strlen(ch), ios::in);
vector<int> num_array;
copy(istream_iterator<int>(str_stm), istream_iterator<int>(), back_inserter(num_array));
copy(num_array.begin(), num_array.end(), ostream_iterator<int>(cout, ","));
return 0;
}
>>672 力任せにやるなら、
そいつらの肌色部分のRGBデータを1ドット1ドットペイントソフト等ですべて調べ、
それらを肌色データとして保持する。
それらデータと画像のRGBが一致しない部分を白にする
677 :
330 :2008/07/30(水) 20:38:08
>>619 [講義ノートの資料]
www.mns.kyutech.ac.jp/~kamada/keisansuri.html
678 :
デフォルトの名無しさん :2008/07/30(水) 20:38:41
1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 与えられた無向グラフ(隣接行列)に対して全ての切断点を求めるプログラムを作りなさい。ただしプログラムの冒頭部で頂点数nと隣接行列を直接指定すること。 [3] 環境 [3.1] OS: (Windows/Linux/等々) windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) どちらでも可 [4] 期限: 明後日まで [5] その他の制限: 特になし よろしくお願いします
679 :
デフォルトの名無しさん :2008/07/30(水) 21:29:59
681 :
679 :2008/07/30(水) 21:37:52
ソースはあげられません なぜならばフォーマットの解析が下手くそで コメントが入っていたり、改行位置が違っていたりすると動かないからです。 これってちゃんと読み込ませる所が面倒なだけでは?
ちょいちょい出てくるおかしい教授の生徒かな 毎度の事ながら逆恨みされる教授に同情するわ
683 :
デフォルトの名無しさん :2008/07/30(水) 21:50:28
684 :
デフォルトの名無しさん :2008/07/30(水) 21:57:27
>>680 誤:void main(void){
正:int main(void){
残念ながらコメントのつけようのないほど簡単なプログラム。
f(x,y)に何か計算式の名前があるならそれをつけよう。
>>685 ありがとうございます!
簡単なプログラムなのは分かるんですがほとんど知識のないような人にでも説明できるようなコメントを入れないとダメみたいで…
目的、引数・戻り値や、〜関数の定義も自分じゃよく分からなくてつけられないんですorz
関数名をFuncにしないと要求仕様を満たせないよ。 んで、Funcの目的は ・f(x,y) = 2xのy乗(yはxにかかる)+x-3y+5と同じ処理を行う これでしょ? 引数と戻り値は見たまんまです。
関数名をFuncにするってのはどうすればいいんでしょうか? return 2*pow(x,y)+x-3*y+5; /*この関数名をFuncとする*/とかってコメントつければいいんでしょうか…? 見たまんま…先輩方なら一目で分かるような簡単なものでも自分はそれがまだよく分からないレベルなんですよね∧||∧ 7549.txtみたいにコメントつけないと教師は理解したとみなしてくれないからなぁ…
aaaa bbbb(cccc,dddd, ・・・) { } aaaa ・・・・ 関数の戻り値 bbbb ・・・・ 関数名称 cccc ・・・・ 関数の第一引数 dddd ・・・・ 関数の第二引数
>>688 関数名をfからFuncに変える必要がある。
何がまずいかというとそのプログラムを理解してないのがまずいのね。
自分が理解できていないものを、知識のない人に説明することなんて到底無理な話なんです。
最初から自分がそのプログラムを理解できていないことを明示するべき。
んで、そのプログラムを書いた人に説明を請うことが筋だと思うんだけど
それはもう済ませたの?
>>688 理解した人は/*xがyより大きい場合には*/のようなコメントを付けないよ。
if (x > y)はそのコメントの通りの意味だからね。
時間が無駄だし、なにより他の人の理解を妨げる。
もしつけるのなら
/* xとyを比べて小さい方を返す関数 */
int min (int x, int y)
>>691 double Func(double x,double y)
z = Func(x,y);
printf("Func(x,y) = %f\n",z);
fの部分をFuncに変えてみたのですがこれでいいんでしょうか?
確かに理解できてないです…
でも教師には理解しているようにコメント付けて出さないと合格くれないんで(つд`)
このプログラムも質問して教えてもらったので連絡取ったりとかはできないんです。
だからコメントつけようにも作った人とも話せない、自分は理解してないから付けれないという始末で…orz
自分で勉強しなおして理解するってのが一番いいんですが期日が明日の朝までなので
ここの先輩方に最後の望みを賭けて教えを乞おうと思ったのです。
これが終わったらもう一度じっくり勉強しようと思います。
>>692 なるほど…!確かにその通りですね。お恥ずかしい…
訂正ありがとうございます!!
「誰かコメントつけてくれ!たのむ!!」と思いつつこのスレを見続けるのと 「このプログラムは何やってるんですか教えてください><」と質問して 理解してからコメントを書くのとどちらがいいかなあ。 入門書嫁って一蹴されるかもしれないけどね。 初学者でも明日の朝までには理解できる内容だと思う。 てか、コメントに書くべきキーワードはコメント例およびこれまでのレスで 十分明らかにされてたりするです。
>>695 確かに先輩方に頼りすぎていましたね…すみません。
徹夜で教科書読んで頑張ってコメント埋めてみることにします。
色々教えてくださってありがとうございました!!
>>696 途中で分からないことがあったら聞きなよ。いろいろ回答出てくると思うし。
>>699 はい!ありがとうございます!!
頑張りますね。
706 :
680 :2008/07/31(木) 02:14:33
>>707 あー、問2の
case 2:
if (*d == 29 && !isleap(*y)) {
って所の *d == 29 && は要らなかった。削ってちょ。
709 :
708 :2008/07/31(木) 02:59:09
ごめん、やっぱりこう書き換えてほしい if (*d != 29 || !isleap(*y)) {
>>706 いくつかに指摘しておきます。
※ここまで要求されていないはずなので参考まで
・目的のコメントが横に長すぎる(80カラムを基準とする)
・doubleの変数宣言で初期化されていない(0で初期化)
・scanfの入力値に対してチェック処理を追加
・printf("実数xを入力 > "); scanf("%lf",&x); 一行に処理を二つ書かない
・return 2*pow(x,y)+x-3*y+5;
3*y は (3*y)と括弧で括る
※2*pow(x,y)も同様
pow(x.y)の関数で演算に失敗したらEDOM(エラー値です。math.hにマクロが切ってあるはず)
が返ってくるため、チェック処理を入れる。
・関数のプロトタイプ宣言を入れる
※動作するが本来なら入れないといけない
・各関数についても看板を入れる(以下は例)
/****************************************
* FUNCTION NAME: 関数名
* FUNCTION: 機能概要
* CREATE: 作成日 作成者
* UPDATE: 空白
* NOTE: 空白(メモ)
* PRAM: 引数の説明
* RETURN: 返り値の説明
****************************************/
それするなら #include <errno.h>
しないとだめだし、戻り値にEDOMが入るわけではないので 使い方調べてからやってみてね。
714 :
680 :2008/07/31(木) 03:33:48
>>710 ,711
おぉ〜!ありがとうございます(つд`)
改良して提出してきます!色々とお世話になりました!!
>>683 本当にありがとうございます!
ぜひともパラメータを教えていただきたいです
遅くなってすみません
716 :
デフォルトの名無しさん :2008/07/31(木) 07:10:05
>>715 ヘッダとデータ読み込む所は出来たのか?
717 :
デフォルトの名無しさん :2008/07/31(木) 07:15:25
基準データ (R ,G ,B) が与えられたとして、 s[0]=R/z s[1]=G/z s[2]=B/zとおく。 ただしz=sqrt(R^2+G^2+B^2) t[0]〜t[2]を比較するデータとしたとき次の様に比較して出力すればいい。 z=s[0]*t[0] + s[1]*t[1] + s[2]*t[2]; z=z*z; w=t[0]*t[0] + t[1]*t[1] + t[2]*t[2]; if(z>=0.99*w) fprintf(fq,"%d %d %d\n", t[0],t[1],t[2]); else fprintf(fq,"255 255 255\n");
ここみて他人の宿題を参考にいろいろ解いていこうと思ったんだが 如何せん難しい… 誰か適当な問題をCからC++に訳してくれないものか…
720 :
デフォルトの名無しさん :2008/07/31(木) 09:39:19
719 わけわかめ
722 :
デフォルトの名無しさん :2008/07/31(木) 11:12:37
>>704 非常に助かりました。
ありがとうございます!!
723 :
デフォルトの名無しさん :2008/07/31(木) 11:29:19
>>726 おお!ありがとうございます。
さっき試してみたんですけどgccだとコンパイルが通らないです・・・
たびたびすみません
729 :
デフォルトの名無しさん :2008/07/31(木) 18:36:59
通らないってのはどう通らないんだ? ppm.hが無いとかそんな落ち?
>>729 ソースの提出は明日までなんです
今日はプログラムの説明だけでした。
よかったらソースを頂きたいです
>>730 ppm.hは入ってます
infileにもちゃんと画像のファイル名を入れたんですけどgccで通そうとすると
ステータス1で終了しました
と出てしまいます
>>733 2chがターゲットの宿題出すDQN学校ってどこよ
ほかのスレにも応用できるけど 単にこのスレをまとめるツールが欲しいだけでしょ
>>732 collect2: Idはステータス1で終了しました
と出ています・・
>>732 手元では
gcc hoge.c -lnetpbm
とかしてるけど、そういうのが抜けてるんじゃないの?
>>738 ldだろ
リンクに失敗してるならライブラリが足りないとか
>>742 こんなショートパスをつなげない様では、五輪は無理だな。
745 :
デフォルトの名無しさん :2008/07/31(木) 19:32:34
授業単元:C言語によるデータ構造とアルゴリズム でppm.hはいかんと思う。 ソートの宿題でライブラリ使うようなもの
抽象的な問題を出した出題者を責めるべきだろ
>>745 授業でどう習ってるかまでは知らんがな。
使えないならダメ出しあるでしょ。
749 :
デフォルトの名無しさん :2008/07/31(木) 21:23:42
select name, jinko from data where jinko = (select max(jinko) from data; select name, jinko from data where jinko = (select min(jinko) from data;
>>750 最大最小を求めるところの
if(){}
if(){}
は
if(){}
else if(){}
の方がよくね?
>>750 二つ指摘しときます。
{"Fukuoka",340.60,1429828}, ←この末尾のポチは何?
min=key[i].population/key[i].area; ←キャストは?
※他のも同様
>>752 配列の初期化で、よけいなカンマは許容範囲だよ
むしろ積極的に入れるべきもの、便利だからね
あとキャスト要らないだろ、初心者が質問してるんならそれは指摘とは言わん
>>754 例えば
if(max<key[i].population){
max=key[i].population;
maxIndex=i;
}
if(key[i].population<min){
min=key[i].population;
minIndex=i;
}
より
if(max<key[i].population){
max=key[i].population;
maxIndex=i;
}
else if(key[i].population<min){
min=key[i].population;
minIndex=i;
}
のほうがよくね?
ん〜、まぁ、意味としては、maxより大きいに該当した場合 minより小さいという条件判定は不要とのことで、if else ifにした場合 elseより上の条件判定に引っかかれば、それ以下のelseは無視する という違いはあるけどね。まぁ、その辺はご自由に。
#include <stdio.h> int main(void) { int i; for(i=3; i>0; i--) { if(i>=3) printf("%d\n",i); if(i>=2) printf("%d\n",i); if(i>=1) printf("%d\n",i); }puts(""); for(i=3; i>0; i--) { if(i>=3) printf("%d\n",i); else if(i>=2) printf("%d\n",i); else if(i>=1) printf("%d\n",i); } return 0;} これでif続きとelseの使い分けが分かるでしょう。
>>756 ,757
丁寧なご説明サンクス。
ただ、個人的な意見としてif elseにすると可読性が悪い気がする
>>639 遅くなってすいません。
コンパイルなども無事に済み提出することができました。
どうもありがとうございましたm(__)m
データが1件の時は可読性なんかより、それは必要。
前者は両方のifが真になりうることがあり得るように見え、 後者はいずれかのブロックにしか入らないことが明確である。 if (...) else if (...) と、条件文のカラムがずれることによって可読性が下がるということはないよ。 それは単にケッペキなだけで、直感性が犠牲になってる。
>>762 いや、カラムの問題で可読性がどうこうっていう低次元な話ではないよ。
max<key[i].population
という条件に対して、else ifで繋ぐ条件は
maxに関する条件を指定するべき。
else if で繋がれている条件にminが出てくることが可読性を悪く
しているって話だよ。
まぁ、こんな50行程度のプログラムならすぐ分かるけど、
何千何万行というコード量を持ったプロセスをいくつも管理
するようになると上記のような変な書き方されると保守しずらいし
バグの原因になるんよね。
リアルタイム性を求められるようなシステムなら無駄な処理を
省くためにこういうやり方も必要なんだろうけど・・・。
> バグの原因になるんよね。 ならないよ。
なるよ
必死だなw そんなんでバグを出す奴が悪いだけじゃん。 条件判定をまともに出来ないのが原因であって それはif elseを使うのが原因ではない。そんなことを言うんであれば 適切にキャストしないこともバグの原因になるよ。
そもそも、ある授業を受けた人なら普通に知っている、人間が起こしてしまうバグと 機械そのものが起こすバグの違いを。前者は、人間がきちっとコードを 入力しなかったことに原因があり、後者は機械の仕組みそのものが問題。 例えば、適切に数値計算が出来ないCPUのエラッタなども例に挙げられる。 一方、人間が思う通りに結果を出すようにコードを記述したはずが間違っていて コンピュータが思った通りの結果を出さない場合、これは人間側に原因がある。 要するに条件判定をきちっとしなかったことに原因があることになる。 まぁ、言いたいことは分かるが、今回に限ってそういう話を必死に持ち出しても 個人的、主観的な可読性ばかりを強調して、その理由が客観性に欠けるということ。 だから、そういう思い込みで言われても、他人には理解されないんだよ。 で、今回は何を求めたいか?極端な話、基準とした最初のレコードと まったく同じものがほかにあったとしても、大なりイコール、小なりイコールでない場合 より先頭にあるものが選ばれる。そういった意味でも、無駄と指摘されるだろうね。 まぁ、分からないと思うよ、指摘されたことに対して、主観的な意見で可読性とか言ってるんじゃ。 客観的な基準に基づいて、効率が良いか悪いかで話をされたら、論破されるよ。
いつもの長文低脳だからスルーがいいよw
ifの条件判定で密度計算して、条件満たしたらまた計算しなおしとか無駄すぎる。 しかもelse ifじゃねーから必ず2回計算するとか無駄にもほどがあるな。
>>769 いや、夏だからだろ。
sophomoreってのはたんたる皮肉じゃないって感じる季節なんだよ。
この程度ならIO律速だから気にしない
>>723 問2は、解析の答えが分かれば解ける。1000^3回の数値計算では 0.116859
>モンテカルロ法で計算せよ
775 :
774 :2008/08/01(金) 10:11:22
>>770 int tmp; // 1回だけ計算すれば良い
tmp = key[i].population;
if(max<tmp){
max=tmp;
maxIndex=i;
}
else // この1行あまり意味ないかも
if(tmp<min){
min=tmp;
minIndex=i;
}
776 :
762 :2008/08/01(金) 12:21:37
ごめん。ずれた話をしてた。
>>763 のいわんとすることは分かるんだけど、
今回の場合、メインとなるデータがkey[i].populationであって、
それぞれの条件文に出現しているから問題ないのでは?
if (a < b)
else if (c < d)
とつなげると分かりにくいってことだよね。
>>352 >>777 継承しても親のメソッドの内容を壊さないってことじゃないかな
class Parent{
public:virtual void method(){cout << "Parent" << endl;}
};
class Child:public Parent{
public:void method(){cout << "Child is";return Parent::method();}
};
int main(){
Parent parent;
Child child;
parent.methrod();
child.method();
return 0;
}
>>776 if(max<tmp){
}
else if(tmp<min){
}
の場合、maxはminより大きい値が格納されているという、
暗黙知が必要になってくる。(maxとminだから当然なんだけどね)
暗黙知が必要なプログラム書くと、製作者ならそれが分かってるから
問題ないけど、他の人がそのプログラムを改修、変更しようとした場合
に理解しずらいし考え方が煩雑になっちゃうんだよね。
まぁ、そういう部分はコメントで明記してやればいいんだけどね。
まぁ、個人的な意見だからどう捉えるかはお好きなように。
[1] 授業単元: 数値解析 [2] 問題文(含コード&リンク): dx/dt = -x^2 x(0)=1 をオイラー法および修正オイラー法で時間刻みを0.5として計算せよ [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C お願いします><
可読性の前に、何を求めたいか?何を実行するかで そのコードがその役割をしっかりしているか?が重要だろ。 人間が読みやすいコード=効率の良いコード とは限らない
効率優先して読みにくくなるのはへたくそなだけ
>>782 パターン検索時の枝刈りなんて無いほうがコードは読みやすいが
処理速度が圧倒的に違う
その枝刈り部分を読みやすくかけないのが駄目って話じゃなくて?
枝狩りなんて、単に余分な処理をしないというだけで、やってることは 明瞭じゃん。コードが分かりにくいということは無い。 ただ、何故そうして良いのかとかを読み取るのが難しいし、コードからだけじゃ 読み取れない場合もある。特にそれが間違っている場合の理解は地獄の作業。
786 :
デフォルトの名無しさん :2008/08/01(金) 19:49:22
与えられた信号をフーリエ変換してパワースペクトルを図示するという宿題なんですが、 ソースにエラーが出て全くお手上げ状態です。どなたか教えて頂けないでしょうか? ソースとエラーは長くなるので、次スレに載せておきます。環境はLinuxです。よろしくお願いします。 ちなみにかなり初心者なんで馬鹿すぎる発言があったらすみません。
788 :
デフォルトの名無しさん :2008/08/01(金) 20:06:47
ソース本体 #include<stdio.h> #include<math.h> 関数の宣言(省略) int main(void){ FILE *fp=fopen('/kyozai/nishiura/dsp/original.vc','r'); short data[16000]; double datafft[512]; fread(data,sizeof(short),16000,fp);/fpからsizeof(short)の大きさで16000サンプル分をdataに読みこむ。/ int i,k; double Xr[k],Xi[k],power[k]; for(i=0;i<512;i++) { datafft[i]=(double)data[i+1000];/格納したデータの1001番目から512サンプルをdouble型に変換/ Xr[k]=DFT(); Xi[k]=DFT(); power[k]=Xr[k]*Xr[k]+Xi[k]*Xi[k];/パワースペクトルの計算/ } double horizon[256],dB[256];/dBは表の縦軸/ FILE *fpout; for(i=0;i<256;i++) { horizon[i]=16000.0*((double)i/512); dB[i]=10*log10(power[i]); fprintf(fpout,"%lf%lf/n",horizon[i],dB[i]); } } return 0;
コメントは / 〜〜〜 / じゃなくて /* 〜〜〜 */ だよ。
790 :
デフォルトの名無しさん :2008/08/01(金) 20:10:57
ソースの関数の中身 /* (r1 + j x1) と (r2 + j x2) の積が (r + j x) となる。 */ void Cmult( double *r, double *x, double r1, double x1, double r2, double x2 ) { *r = r1 * r2 - x1 * x2; *x = r1 * x2 + r2 * x1; } /* e^( -j * 2*pai * k * n / N ) の値が ( er + j ei ) */ void Twiddle( double *er, double *ei, int N, int k, int n ) { double w, pai=3.1415926; w = 2 * pai * k * n / N; *er = cos(w); *ei = sin(-w); } /* D[] が入力、Xr[], Xi[] が結果 */ void DFT(int N, double D[], double Xr[], double Xi[])/離散フーリエ関数/ { int n; double er, ei, for(k = 0; k < N; k++) { Xr[k] = 0.0; Xi[k] = 0.0; for(n = 0; n < N; n++) { Twiddle(&er, &ei, N, k, n); D[n]=datafft[i]; Cmult(&er, &ei, D[n], 0.0, er, ei); Xr[k] = Xr[k] + er / N; Xi[k] = Xi[k] + ei / N; }
>>788 mainの最後
}
return 0;
を
return 0;
}
に
792 :
デフォルトの名無しさん :2008/08/01(金) 20:14:19
>>789 すいませんorz
エラー内容
% report.c:12:21: 警告: character constant too long for its type
report.c: 関数 `main' 内:
report.c:12: 警告: 引数 1 個の `fopen' を渡しますにより、キャストなしで整数からポインタを作りました
report.c:12: 警告: 引数 2 個の `fopen' を渡しますにより、キャストなしで整数からポインタを作りました
report.c:24: error: too few arguments to function `DFT'
report.c:24: error: void value not ignored as it ought to be
report.c:25: error: too few arguments to function `DFT'
report.c:25: error: void value not ignored as it ought to be
report.c: トップレベル:
report.c:44: error: 文法エラー before "return"
report.c: 関数 `DFT' 内:
report.c:71: error: 文法エラー before "for"
report.c:71: error: `k' undeclared (first use in this function)
report.c:71: error: (Each undeclared identifier is reported only once
report.c:71: error: for each function it appears in.)
report.c:71: error: 文法エラー before ')' token
report.c:77: error: `datafft' undeclared (first use in this function)
report.c:77: error: `i' undeclared (first use in this function)
report.c: トップレベル:
>>790 DFT関数
- double er, ei,
+ double er, ei;
最後の } が全角になってるのでそれを半角に
- FILE *fp=fopen('/kyozai/nishiura/dsp/original.vc','r'); + FILE *fp=fopen("/kyozai/nishiura/dsp/original.vc","r");
795 :
デフォルトの名無しさん :2008/08/01(金) 20:18:41
DFT呼び出し時にパラメータがない DFT関数の定義が終了していない ロダを使っていればややこしくならなかった
797 :
デフォルトの名無しさん :2008/08/01(金) 20:24:11
`ほにゃらら' undeclared (first use in this function) これは「ほにゃらら」という変数が宣言されていないよ、というエラーです。
799 :
デフォルトの名無しさん :2008/08/01(金) 20:30:28
>>796 教えてくださってありがとうございます。
教えてもらって悪いのですが、DFT関数はこうしろと言われているので変えられないんですよ。
>>799 ・こうしろ、といわれたものを間違えて受け取った
・こんな感じで(続きは自分で)作れ、と言っていた
}が全角な時点でそれが正常なものではないよ
801 :
デフォルトの名無しさん :2008/08/01(金) 20:40:53
>>798 ありがとうございます。
>>800 確かにそうですね。もう一度しっかりした物を作ってきて、
それからまた質問にきます。答えてくださった方ありがとうございました。
>>801 ツッコミ入れてるの全部俺なワナ。。。細切れでレスしてごめんね。
ちょっと変えたらコンパイルというクセをつけておくと
構文エラーレベルのはそのたびにつぶせるので、
結果的に生産性が上がると思う。ガンガレ。
803 :
デフォルトの名無しさん :2008/08/01(金) 21:22:09
さっきの
>>786 ですが、できる限り訂正したん結果最後に一つだけエラーが無くなりませんでした。
場所は
>>788 のpower[k]の式の前の行のDFT関数の式です。DFT関数の二つの式をDFT();に変換しました。
エラー内容は
error: too few arguments to function `DFT'
です。よろしくお願いします。先程言い忘れていましたが、期限は8月6日なのでできればそれまでにお願いします。
後、
>>802 さんありがとうございます。
804 :
802 :2008/08/01(金) 21:52:05
>>803 error: too few (少ない) arguments (引数) to function `DFT'
>>805 >最後にNULL文字(\n)を付加すること
だれか、これについて解説してくれ。
Windowsの改行文字をヌル文字とな?
とりあえず付加すれば良いんだろ
エスケープシーケンスって言いたかったのをnull文字って言ってるのか \0を\nって書いたのかが分からんなたぶん前者だけど
>>806 Windowsの改行コードとして一般的に使用されているのはCRLF(\r\n)だよ。
812 :
811 :2008/08/02(土) 00:01:40
813 :
352 :2008/08/02(土) 00:04:35
>>777 .
>>778 ありがとうございました。どうやら提出出来そうです。
書いて頂いたコードを参考にさせて頂いて結局次のようなコードにさせて頂きました
整合性の意味が不明でしたが、親クラスのメソッドdemoを書き換えずに、virtualメソッド
だけ置換出来るという意味に落ち着きました。
#include <stdio.h>
class parent{
public:void demo(){virtual_methode();fixed_methode();}
virtual void virtual_methode(){printf("parent::virtual_methode()¥n");}
void fixed_methode(){printf("parent::fixed_methode()¥n");}
};
class child:public parent{
public:virtual void childdemo(){virtual_methode();fixed_methode();}
void virtual_methode(){printf("child::virtual_methode()¥n");}
void fixed_methode(){printf("child::fixed_methode()¥n");}};
int main(int argc,char **argv){
parent p;child c;
printf("parent.demoを実行します。¥n");p.demo();
printf("child.demoを実行します。¥n");c.demo();
printf("child.childdemoを実行します¥n");c.childdemo();
return 0;
}
実行結果
parent.demoを実行します。
parent::virtual_methode()
parent::fixed_methode()
child.demoを実行します。
child::virtual_methode()
parent::fixed_methode()
child.childdemoを実行します
child::virtual_methode()
child::fixed_methode()
吉田君の出した問題が解けません
>>813 確かに便利だし使うことも多いけどC++の課題でprintf使うのはどうなのさ
C/C++は派手なこともするけど、基本的にはConservativeな言語 かなりStoicな言語だと思う。
禁欲的な○○なんですね わかります
819 :
780 :2008/08/02(土) 01:08:56
見て欲しいなら、ちゃんと股を開けや、な?
>>821 お前の頭がおかしいだけ。知っている人は知っている。無知は黙ってろ
可読性可読性って必死に言っておいて、それが単なる個人的な主観であって 目的とする動作、処理、必要な条件判定などを無視したり、無駄を取り込んでいて 良しとしているなら論外。 まぁ、挿入ソートや基本選択法で不適切なコードを書いている人がいたが あれは可読性というより単なる個人の勘違いだが、必要もない スワップを入れてしまっている人もいる。そういうのは本当に無駄だが やはり自分が そう思うから それが自分にとって正しい で 客観的な筋の通ったり理論を無視して、他人に自分の脳内を理解してもらおうとしても 実際にプログラムを動作させてしまえば、それが何?だから何?で 自分が本来メリットとしたことなんて、伝わらないなんてことはいくらでもあるよ。 あと、宿題スレなんて、そういった議論は別のスレでやってくれ。
824 :
デフォルトの名無しさん :2008/08/02(土) 01:59:29
1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 こんな感じで表示するプログラムってどうやるんでしょうか?
825 :
425 :2008/08/02(土) 02:09:35
>>432 遅れましたが、どうもありがとうございます。
ほぼそのまま提出しました。
昨日研究室からメールが来て、このコードを元に
6つのクラスの2つの組からある別のクラスを生成し、
どーだらこーだらのコードに書き換えろという指令が
出ました。どーすればいいのかわからないので、
詳しいことがわかったら、またここで相談に乗って
頂くかもしれません。
一般項を求めよう 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 21 75 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 95 22 74 143 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 161 96 23 73 142 203 256 257 258 259 260 261 262 263 264 265 266 267 268 219 162 97 24 72 141 202 255 300 301 302 303 304 305 306 307 308 309 310 269 220 163 98 25 71 140 201 254 299 336 337 338 339 340 341 342 343 344 311 270 221 164 99 26 70 139 200 253 298 335 364 365 366 367 368 369 370 345 312 271 222 165 100 27 69 138 199 252 297 334 363 384 385 386 387 388 371 346 313 272 223 166 101 28 68 137 198 251 296 333 362 383 396 397 398 389 372 347 314 273 224 167 102 29 67 136 197 250 295 332 361 382 395 400 399 390 373 348 315 274 225 168 103 30 66 135 196 249 294 331 360 381 394 393 392 391 374 349 316 275 226 169 104 31 65 134 195 248 293 330 359 380 379 378 377 376 375 350 317 276 227 170 105 32 64 133 194 247 292 329 358 357 356 355 354 353 352 351 318 277 228 171 106 33 63 132 193 246 291 328 327 326 325 324 323 322 321 320 319 278 229 172 107 34 62 131 192 245 290 289 288 287 286 285 284 283 282 281 280 279 230 173 108 35 61 130 191 244 243 242 241 240 239 238 237 236 235 234 233 232 231 174 109 36 60 129 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 110 37 59 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 38 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39
とりあえずの解決なら2次元配列作って渦巻き状に埋めてから出力するかなあ?
>>828 つーかテキストの表示開始位置を制御できない
のであればそれしかないだろ
つ ncurses
いや、随時算出しながら表示できないもんかなと思案中
>>831 だからそれはBASICとかでいえばLOCATEのような表示位置をいきなり
かえる命令でも実装されてなければ計算してローカルに一旦保存
あとで一括で表示にならない?
だめだ。寝てからやろう。。
>>832 みたいに思考停止しませんように、俺。
行単位で出力できるはずだよこれ。
数学離れてだいぶたつから分からないのが悔しいが。
>>824 の問題の模範解答、持ってたんだけどみつからない・・・
俺もあの問題やったし、もしかしたら
>>824 と同じ学校かもね
ANSIエスケープシーケンスを使っていいという落ちだろ
>>824 #include <stdio.h>
#define N 5
int main(void)
{
int i, j, k = 1,a[N][N];
for(i=0; i<(N+1)/2; i++) {
for(j=i; j<=N-i-1; j++) a[i][j] = k++;
for(j=i+1; j<N-i-1; j++) a[j][N-i-1] = k++;
for(j=N-i-1; j>i; j--) a[N-i-1][j] = k++;
for(j=N-i-1; j>i; j--) a[j][i] = k++;
}
for(i=0; i<N; i++) {
for(j=0; j<N; j++) printf("%3d", a[i][j]);
putchar('\n');
}
return 0;
}
838 :
デフォルトの名無しさん :2008/08/02(土) 10:02:48
「errata」を「エラッタ」とカタカナ書きするのも気持ち悪すぎる。まあ、この読み方で定着してしまったので仕方が無いのかもしれないが、もう少し原語に似せてほしかった。
>>838 つられてみるけど、
じゃあ、どんなつづりよ
俺もエラッタと読んでいるよ
>>838 じゃないが調べてみた
発音記号は
ira(に ' ):te(を逆さにしたやつ)
イラータ?
コボラーのところに手伝いに行ったとき、 プロシージャ・ディビジョンと読んで注意された
>>170 って難しい?
俺途中迄やったけど挫折。自分的には極めて難しいと思う。
期限切れかも知れないが、是非回答してあげて欲しいと
思うな。
>>843 興味ない。
おそらく実際の宿題じゃないし、
janeのツリーで間に合ってる。
難しいってか面倒くさいな RubyかPerlだったらすぐ書ける
>>844 おいおい、ダメだよw
はっきり本音言っちゃ。学校や企業の教育活動妨害するって
ま、個人的には学校でC/C++教えるのって何だかな〜と思うけど
>>558 のような集団教育には絶対使えない悪質な問題も出されない
という保証は無いし...
やっぱし、回答が極限まで短くできる
>>824 みたいな問題と
>>836 みたいな回答がいいんだろな....
>>846 日本語でおk
このスレの主眼は教育を妨害することと、自分よりバカを見つけて嘲笑することだが何か?
残りは何言ってんだか、本当にわかんないよ。バカなんだろオマエ。
ん、計算しながら渦巻きを出力?それ出来たよ。
>>833 じゃないけど
もう答えでちゃったからいいかともったけど
>>850 >>833 じゃなきゃ、関係ないよ。
「思考停止」とかいった後、どうしたのよってことでしょ。
>>848 朝鮮語でにd
> このスレの主眼は教育を妨害することと、自分よりバカを見つけて嘲笑することだが何か?
それは単なるお前の主観、嗜好、趣味。
>>1 とスレタイも読めない奴はどこの国の人間だよ?w
>>852 おまえは「あたなのためですよ」とか言うセールスマンに乗せられちゃう人かよ。
>>837 可読性を必死に謳うだけの自演乙
変なプライドのある講師はキモイよな
なんで個人の趣味をこのスレの趣旨にしてんの?w
てめぇがどういう理由でこのスレで回答してようが
>>1 とスレタイを読めば分かるように、丸投げする奴の宿題を
任意で誰かが受け付けているだけであって、それを理由に
嘲笑うだの見下すだのしている奴がいようが、他の回答者や
答えてもらった質問者はどうでも良いこと。誰も伝わらない
その自分の思い込みを理解してもらおうと必死ですねw
あぁ、そうか、まともに大学で授業を受けたことの無い奴が 可読性可読性と、本来求めるべき結果や処理の流れを理解せず 単に自分にとって読みやすいだけのコードを押しつけようと必死なのかw しかし、題意と求める結果を理解している人には、逆にそういう態度が 理解されないだろうね。一生やってなさい、見えない相手に理解してもらおうとする 独り相撲を、こんな場所でw
>独り相撲を、 >独り相撲を、 >独り相撲を、 >独り相撲を、 >独り相撲を、 >独り相撲を、 >独り相撲を、 >独り相撲を、
夏休みだから宿題なくてさみしいね だれか宿題出して!
>>826 こいつこそ本当のカス
いつまで自分の単純な頭でしか理解できない
可読性ばかりを必死に謳うんだよ?w
おまえら、もちつけ
高脳が書くプログラムは可読性もよくすっきりしたものになるんだよ
だいたい、日本語でOKとか言っているのは自分低脳ですって自己紹介してる奴多いよな。
高脳なら低脳のかいた分りにくい文・プログラムでも何を言いたいか、したいか
が難なく理解できるよな。
>>846 の言っていることが理解できない奴は、自分低脳って自覚汁
可読性を無視して自分が読みやすいコードを採用するって どこの講師だよ?w
>>860 元気だな。
難しい課題だと食いつけないものな。
こんな場所で偉そうにしている糞講師に学ぶ生徒がかわいそうです ><;
宿題つくってみた。 [1] 授業単元:夏休み☆自由研究 [2] 問題文: HTML文章を二つ読み込み、それぞれを解析してツリーにする。 二つのツリーを比較して、差分のツリーを出力せよ。 要はHTMLに特化したdiff。サイトの更新内容チェックに使えないかね〜? [3] 環境 [3.1] OS:どこでも [3.2] コンパイラ名とバージョン:なんでも [3.3] 言語:C/C++
866 :
デフォルトの名無しさん :2008/08/02(土) 15:06:30
宿題回答者の職業何? 俺思うに、学生多いんじゃね。 学生の学生による学生のための"C/C++の宿題を片付スレ"
869 :
デフォルトの名無しさん :2008/08/02(土) 15:27:16
よけいな詮索はよせ。
俺は高卒フリーターでプログラミングは独学 ここの質問者って大学とか専門学校とか通ってても相当レベル低いよね 学費の無駄じゃん
871 :
デフォルトの名無しさん :2008/08/02(土) 15:31:13
俺は無職です、すいませんフヒヒ
>>871 これは素晴らしいな。けど言語の一覧が劇重、、なにこれ
>>870 大学の卒業率が85%というから、
ここに宿題を投げている手合いは・・・
俺は専門学校講師
>>868 とすると、なんだか格差が大きいようなきがします。
俺も高卒だ。フリーターじゃねえけど パズル的な問題は解けるけど、テイラーだのオイラーだの数学が関わったのはさっぱりだわ 数学を身に着けたい
>>856 EOFは理解できましたか?
fd と fp の違いについてレポートを提出してください。まじめにみてあげます。
>>879 EOFが入力できないと言ってたバカですね?(・∀・)ニヤニヤ
getchar()は理解できましたか?2行目意味不明。誰かと勘違いしてない?w
>>1 読める?読めない?聖徳太(ry
違うよ
はぁ?俺は大学生時代に、どのコンピュータでも共通している 電気信号、論理回路、変数の管理などについて、機材を用いて 実験の授業で体験しましたが?
>>880 cygwinでctrl+zするとプロセスが後ろに行っちまうよ。
なんとかしてくれ。
>>882 気軽に「どのコンピュータでも」なんていってしまうあたり、まじめに勉強してこなかったんだなって思わせるな。
どうでもいい所につっかかるんだな
>>885 デタラメというのは、テクニカルタームでなく、そういうところでわかる
わかってないじゃん。
EOFの入力の仕方を教えてくださいw
偶数正方も大丈夫だった。長方形はまだできてないス。
天気もいいし風もほどほど。絶好の花火日和じゃないか。 花火を見に行く準備しなくっちゃ
>>890 #define N 20
if(n>N) return 1;
nで正方2次元配列を動的に作るとかして、融通の利くプログラムに出来ないでごあすか
897 :
894 :2008/08/02(土) 16:45:31
あちゃー。横を奇数、縦を横+3以上にするとバグるなぁ もう直す気力ないわー
>>890 は
for(i=0,k=n-1,cnt=1; i<n/2; i++,k--) は i<n/2 でおk
>>896 るろうに献身 「動的確保で対処するでござるよ」
900 :
894 :2008/08/02(土) 17:14:38
>>878 そのパズル的な問題というのはどうやったら解けるようになるんですか?
自身発想がクソすぎて全くできないのですが
昨日の夜に放送されていた、阿久悠の番組でも出てきたが 歌手になるからといって、そればかりやっていたんではダメだと。 まぁ、それが何を意味するか?視野を広く持て、ということだ。
903 :
894 :2008/08/02(土) 17:36:52
>>901 高卒の俺があんまり偉そうに言えた事じゃないけど、
アルゴリズムは教えてもらうより、自分で考えるっていう一見非生産的な姿勢を持つのがいいんじゃないかな。
そうすると自然と頭を使う頻度が上がって、思考能力も磨かれるんじゃないかと
あと既存のアルゴリズムに関しては、その仕組みを理解するだけでなく、それを考えた人がそれを思いつくに至った経緯を推測すると
その人の能力の一部吸い取れると俺は信じているw
普通にコーディングしてるだけなら殆ど頭使わないしねぇ。得るものも少ない。っていうかつまらない
はいはい高卒ワロスワロス
人生ってさぁ、マジで1度しかないじゃん、誰でも。 高卒でもやれることはあるし、大卒になるために費やした 4年間(もしかすると人によってはそれ以上)は、果たして その後の人生に大きく役に立ったかな? 無駄とは言わないが、結局、専攻分野とは無関係な仕事を 続けて一生を終える人もいるのさ。 まぁ、結局さ、一人の人間の頭の中にあれこれ知識を詰めても 結局、製造するものはある規定に基づいて生産されて 誰もが同じ性能の製品を、金を出せば手に入れ使えるわけだ。 使うための知識は別として。 まぁ、なんだ、平気寿命まで生きられるとして80才辺りまでは 最低限生きられると仮定した場合、約3万日生きたことになる。 4年間というと、約1,400日。人生の21分の1をさらに延長して 学生として過ごしたわけだ。しかも、その間、確実に老化して 死ぬまでの日数は減っているからね。無駄なことを1日でも している暇は、もう俺にはない。だからといって、今すぐ結婚できるわけでもない。 子供を作れるわけでもない、生まれた子供が成長してくれるわけでもない。 それが現実さ。しかし、新しいプログラムを作り、生むことは出来る。
ハイハイ妄想お疲れ様w
妄想?何を寝言を言っているのだ?こうしている間にも 確実に訪れず己の死の瞬間に、刻一刻と近づいているんだぜ? 何をするにも時間は掛かるし、何かするために時間を使ってなきゃ それで垂れ流しで終わる人生になるぜ? 今ここで、俺らは見ず知らずの誰かとやり取りしているが、それでも 確実に今日という1日は過ぎ去って、二度と戻らないが やり取りをしたという事実は残る。少なくとも、2ちゃんねるの サーバー、過去ログには俺らが記したレスが今後も残る。 まぁ、誰が引き継ぐが知らないが、デジタルメディアは今後も残るし このレスだって1世紀以上後の子孫が見ているかもしれんよ。 100年前、こいつら何やってたんだ?ってねw
>>908 人生の無駄なこととは何だ?
高校に行くのも役に立たないんじゃなのか?
お前は高校に逝ったのか? 逝ったのなら何のために逝ったんだ?
夏って楽しいな
>>907 小卒でプログラム書いたほういいんじゃねーのw
高卒キメーなw
俺はデスマで徹夜をするハメになっているにもかかわらず ひまつぶしにコードを書くことができるマはいいマだとおもう ガンガレ。
>>909 必要も無いのに手間隙掛けること、あるいは求めるものに
時間や費用が掛かりすぎること。要するに 目的も無い人生 こそ 明らかに無駄。
例えば、極端だが、マジで貧乏で、交通費さえまともに払えない人がいたとしよう。 今は鉄道を使えば、大昔に歩いて移動したとする東海道五十三次、 1日どころか数時間で東京から京都までいけるだろ? それも、ほとんど座ってりゃ良い。ただ、そのためには稼いだ金を使うことになる。 まともに稼いでいたほうがマシだわな。10日間歩いて掛かったとしても その間、歩くだけでも老化現象は早まる、当然疲労する、10日分の 宿、食事代、そして戻らない時間を費やすわけだ。 そもそも、京都の三条大橋に何かご用で?って言われたら、目的がなきゃ変だと思われるよ。 ただ、歩いて移動することが目的だ、というのであれば、当然それに応じた 準備をしておくだろう。そういうこと。
915 :
デフォルトの名無しさん :2008/08/02(土) 19:18:47
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): ★下記の仕様を満たすプログラムをC言語で作成する。 【仕様】図形の面積学習簡易プログラム ▼「三角形の面積」「平行四辺形の面積」「台形の面積」を求める問題を ランダムに出題する。オリジナル関数を作って処理すること。 ▼例えば「三角形の面積」の場合、「底辺が4、高さが7の三角形の面積は?」 と出題する。与えるべき数値(簡単なため数値は1〜9でよい)は全てランダムに表示する。 ▼回答を入力させ、正解の場合は「よくできました」と表示し、不正解の場合は 「まちがいです」という文を表示する。 ▼「続けますか?」と表示し、「はい」なら出題する。「いいえ」ならばこれまでの正解率を計算する。 正解率に応じて80%以上ならA、70〜79%ならB、60〜69%ならC、59%以下ならDと表示する。 [3] 環境 [3.1] OS: Windows xp [3.2] コンパイラ名とバージョン:bcc32? [3.3] 言語: C言語 [4] 期限: 来週中ぐらい [5] その他の制限:if文、for文,関数プロトタイプ宣言、戻り値 引数、関数形式マクロはやりました。標準ライブラリ関数と配列はやってないです・・・ 分からないので、教えてください。 お願いします。
>>907 あなたの偏った人生観(とでもいうより他にないのですかね)はどうでもいいですから、
EOFを勉強して fp と fd の違いをレポートにしてください。真剣にチェックします。
918 :
デフォルトの名無しさん :2008/08/02(土) 19:32:06
何とかできないでしょうか? 誰かお願いしますぅ´`
919 :
デフォルトの名無しさん :2008/08/02(土) 19:38:26
>>918 出題したい問題の一覧を作って晒すのが最初の一歩だな。
つまり、
「底辺が %d 、高さが %d の三角形の面積は?」
「各辺がそれぞれ %d %d %d の三角形の面積は?」
とかいうのを
920 :
デフォルトの名無しさん :2008/08/02(土) 19:39:23
つづき
>>915 が作って晒せば、なんとかしてくれるだろう。
921 :
デフォルトの名無しさん :2008/08/02(土) 19:53:41
>>915 のものですが
正直プログラムの作り方が良く分からないんです。
できればこのプログラムを書いてほしいのですが・・・?
ダメですか?
誰か助けてぇ〜´`
調べりゃかけるじゃん こんなの何故書けない やる気がないんだろ? できないなら適正がないってことで 文学部か何かに編入したほうがいいぞ
度々沸くよな、説教厨
>>780 ちゃんがヒントだけでも欲しいって言ってた!
自己アピールのために長文書くやつキモすぎてワロタwww
>>927 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef struct tag_tc_t{char t[3+1];int c;}tc_t;
int cmp(const tc_t *a, const tc_t *b){return b->c-a->c;}
int main(void){
FILE *fp;
char *buf=NULL;
int i, j, moji, bufsize=0, tc_num=0;
tc_t *tc=NULL, t={{0},1};
if((fp=fopen("homepage.txt", "r"))==NULL) exit(1);
while((moji=fgetc(fp))!=EOF){
buf=realloc(buf, bufsize+1);
buf[bufsize++]=tolower(moji);
}
fclose(fp);
for(i=0;i<bufsize;i++) putchar(buf[i]);
for(i=0;i+2<bufsize;i++){
sprintf(t.t, "%.3s", &buf[i]);
printf("'%s' ", t.t);
for(j=0;j<tc_num;j++) if(strcmp(tc[j].t, t.t)==0 && ++(tc[j].c)) break;
if(j<tc_num) continue;
tc=realloc(tc, sizeof(*tc)*(tc_num+1));
tc[tc_num++]=t;
}
qsort(tc, tc_num, sizeof(*tc), cmp);
for(i=0;i<tc_num;i++) printf("%s %d\n", tc[i].t, tc[i].c);
free(buf); free(tc);
return 0;
}
>929 ありがとうございます。 これは1番をやっていただいたのでしょうか?
>>930 1番と2番と3番全部入りです
putchar と printf が合わせて3箇所あります
3箇所のうち2箇所を削除すればいずれかの回答になります
>>780 /* 微分方程式の数値解 */
#include <stdio.h>
#include <math.h>
double v1(double x) {
return (-x*x);
}
int main(void)
{
int j;
double x1, dt, dx, k1, k2;
/* Euler Method */
dt = 0.5;
x1 = 1.0;
for(j=0; j<=50; j++) {
dx = v1(x1);
printf("t=%-4.1f x=%f dx/dt=%f\n", dt*j, x1, dx);
x1 += dx*dt;
}
/* Modified Euler Method */
dt = 0.5;
x1 = 1.0;
for(j=0; j<=50; j++) {
k1 = v1(x1);
k2 = v1(x1 + dt*k1);
dx = (k1 + k2)*dt/2;
printf("t=%-4.1f x=%f dx/dt=%f\n", dt*j, x1, dx);
x1 += dx;
}
}
933 :
780 :2008/08/03(日) 00:21:12
>>723 モンテカルロ法で乱数を使うより、等分割のほうが精度いい。
なぁ、ぜんぜん無関係なEOFの話を持ち出す奴って何?粘着キチガイ? この流れでEOFが突然出てくる意味が分からん。ちょっと妄想入っている 頭のおかしい人?
うん。
今更何言ってんだ、何時間前の話だよ。流れを読めよ
だよな。
>>936 お前か、EOFの話を必死に持ち出す馬鹿は?頭おかしいんじゃね?w
おっと、IDも無いこの板で決め付けとは愚かなw
D・V・D!D・V・D!のように、馬鹿の一つ覚え見たく E・O・F!E・O・F!って一生言ってろよw ・V・ ・O・ が顔に見えてくるぜ?w
アホどもさっさと寝ろ
>>939 本人乙。IDがあっても日付が変わってたら言い逃れできるもんなw
白々しいよなぁ〜〜〜EOF厨w
このスレほどム板にIDが必要だと思わせるスレはねーな
どこぞの板みたいにホストでいいだろ
個人的にはホスト+IPアドレスでもいいと思っている。
自作自演できなくなるから困る
自分の回答ミスを別人の振りをしてフォローできなくなる
質問者のフリはできるから特に困らない
まぁ、とりあえずだ、おまいら、スレタイと
>>1 読め、と。
宿題に答える以外の議論は、それ専用のスレでやってくれと。
>>1 読める?読めない?聖徳太(ry
[1] 授業単元:プログラム [2] 問題文:キーボードからデータを20個入力し、平均値、最大値、最小値を求め、その値を出力せよ。 1.関数mainのみで作成せよ 2.演算部を算術型関数heikin、saidai、saishomp3つに分解し作成せよ。 3.手続き型関数shoriの1つで平均値、最大値、最小値の演算を一括に処理するプログラムを作成せよ。 [3] 環境 [3.1] OS:Linux/ [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年8月5日まで [5] その他の制限:特にありません よろしくお願いいたします。
>>950 のような簡単な問題に食いつかないくせに、
無駄口を叩くおまいらって、いったい・・・何しにこのスレに来ているんだYO!
寝る前の集い
>>951 基本的につまらないのはダメだな。
面倒くさいのも。
955 :
名無しさん :2008/08/03(日) 11:08:58
1 /* 2 950 1. 3 */ 4 #include <stdio.h> 5 #include <float.h> 6 7 int main() 8 { 9 const long N = 20L; 10 double sum = 0.0; 11 double average; 12 double max = DBL_MIN; 13 double min = DBL_MAX; 14 long i; 15 16 for(i=0L; i<N; i++) 17 { 18 double x; 19 const char *FORMAT="%lf"; 20 scanf(FORMAT, &x); 21 sum += x; 22 if(x > max) max = x; 23 if(x < min) min = x; 24 } 25 average = sum / N; 26 27 printf("average=%lf\n", average); 28 printf("max=%lf\n", max); 29 printf("min=%lf\n", min); 30 31 return 0; 32 }
956 :
名無しさん :2008/08/03(日) 11:10:19
行番号外してな
957 :
名無しさん :2008/08/03(日) 11:53:29
/* 950 2. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <float.h> typedef struct { long N; double *data; }ENV; void init(ENV *env, long _N); void input(ENV *env); double heikin(ENV *env); double saidai(ENV *env); double saisho(ENV *env); int main() { ENV env; init(&env, 20L); input(&env); printf("average=%lf\n", heikin(&env)); printf("max=%lf\n", saidai(&env)); printf("min=%lf\n", saisho(&env)); return 0; }
958 :
名無しさん :2008/08/03(日) 11:54:02
void init(ENV *env, long _N) { env->N = _N; long nBtye = sizeof(double) * env->N; env->data = malloc(nBtye); memset(env->data, '\0', nBtye); } void input(ENV *env) { long i; for(i=0L; i<env->N; i++) { puts("Enter number:"); const char *FORMAT="%lf"; scanf(FORMAT, &env->data[i]); } } double heikin(ENV *env) { double sum = 0.0; double average; long i; for(i=0L; i<env->N; i++) { sum += env->data[i]; } average = sum / env->N; return average; }
959 :
名無しさん :2008/08/03(日) 11:55:38
double saidai(ENV *env) { double max = DBL_MIN; long i; for(i=0L; i<env->N; i++) { double x = env->data[i]; if(x > max) max = x; } return max; } double saisho(ENV *env) { double min = DBL_MAX; long i; for(i=0L; i<env->N; i++) { double x = env->data[i]; if(x < min) min = x; } return min; }
960 :
名無しさん :2008/08/03(日) 12:38:16
/* 950 3. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <float.h> typedef struct { long N; double *data; }ENV; void init(ENV *env, long _N); void finish(ENV *env); void input(ENV *env); void shori(ENV *env, double *_avg, double *_max, double *_min); int main() { ENV env; double avg; double max; double min; init(&env, 20L); input(&env); shori(&env, &avg, &max, &min); finish(&env); printf("average=%lf\n", avg); printf("max=%lf\n", max); printf("min=%lf\n", min); return 0; }
961 :
名無しさん :2008/08/03(日) 12:38:49
void init(ENV *env, long _N) { env->N = _N; long nBtye = sizeof(double) * env->N; env->data = malloc(nBtye); memset(env->data, '\0', nBtye); } void finish(ENV *env) { free(env->data); } void input(ENV *env) { long i; for(i=0L; i<env->N; i++) { puts("Enter number:"); const char *FORMAT="%lf"; scanf(FORMAT, &env->data[i]); } }
962 :
名無しさん :2008/08/03(日) 12:39:50
void shori(ENV *env, double *_avg, double *_max, double *_min) { double sum = 0.0; double average; double max = DBL_MIN; double min = DBL_MAX; long i; for(i=0L; i<env->N; i++) { double x = env->data[i]; sum += x; if(x > max) max = x; if(x < min) min = x; } average = sum / env->N; *_avg = average; *_max = max; *_min = min; }
963 :
名無しさん :2008/08/03(日) 12:43:44
/* 950 2. */ でも return 0; の前にfinish(); を読んだほうがよい。
未回答または未完成
>>116 >>341 UNIX通信プログラム [7月24日の昼12時]
>>119 文字列中のパターンの繰返しを調べる [7月24日(木)]
>>175 合流点(join)を持つ構造 [7月28日]
>>364 オセロゲームの盤 [7月28日]
>>558 >>562 前後5行のテキストを表示 [7/31 19:00:59]
>>572 BMIのプログラム3とおり [7月30日15時]
>>678 無向グラフ(隣接行列) [07/30(水) 20:38:41〜明後日まで]
>>968 つ EOF、それは人生を自問すること by C
971 :
965 :2008/08/03(日) 15:55:43
972 :
デフォルトの名無しさん :2008/08/03(日) 16:32:26
>>774 ,933
助言ありがとうございます。
頑張って作ってみます。
あと、返信遅くなってすいません。
>>967 いつも乙
全部期限過ぎちゃってるんだね
エラトステネスの篩を使った素数の求め方で 2^32-1 = 4294967295 までの素数を求めろ という問題ですが、環境によっては宣言できる配列の要素数が 制限されていますが、そういった制限がある場合、どのように求めますか?
>>976 簡単の為に 2^32 とする
ひとつの数値あたり 1ビットだけ使うことにする 2^29
奇数だけチェックすることにする 2^28 = 256MB
ってことで今時のPCならなんとかなる
979 :
名無しさん :2008/08/04(月) 08:56:30
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> /*---------------------*/ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> /*---------------------*/ #define N 1024 int main() { char buf[N+1]; int ret; const char *inFile = "./tmp.txt"; FILE *fp; int fd; #define VERSION_FD #ifdef VERSION_FD fd = open(inFile, O_RDONLY); fp = fdopen(fd, "r"); #else fp = fopen(inFile, "r"); #endif if(NULL==fp) { fprintf(stderr, "Error: couldn't open %s\n", inFile); exit(-1); }
980 :
名無しさん :2008/08/04(月) 08:57:13
memset(buf, '\0', sizeof(buf)); ret = fread((void*)buf, sizeof(char), N, fp); if(N!=ret) /* EOF or error */ { int ret = feof(fp); if(ret==0) /* NOT EOF */ { ferror(fp); exit(-1); } } buf[ret] = '\0'; puts(buf); fclose(fp); return 0; }
981 :
デフォルトの名無しさん :2008/08/04(月) 12:33:47
>>803 の者です。
>>804 さんお礼を言うのがかなり遅くなってすみません。
ありがとうございます。お聞きしたい事があるのですが、
>>803 のエラーの解決方法を教えてくれないでしょうか?
お願いします。ソースは改善した物をもう一度載せておきます。
982 :
デフォルトの名無しさん :2008/08/04(月) 12:40:38
#include<stdio.h> #include<math.h> void Cmult( double *r, double *x, double r1, double x1, double r2, double x2); void Twiddle( double *er, double *ei, int N, int k, int n ); void DFT(int N, double D[], double Xr[], double Xi[]); int main(void) { FILE *fp=fopen("/kyozai/nishiura/dsp/original.vc","r"); short data[16000]; double datafft[512]; int i,k; fread(data,sizeof(short),16000,fp); /*fpからsizeof(short)の大きさで16000サンプル分をdataに読みこむ。*/ double Xr[k],Xi[k],power[k]; for(i=0;i<512;i++) { datafft[i]=(double)data[i+1000]; /*格納したデータの1001番目から512サンプルをdouble型に変換*/ DFT(); power[k]=Xr[k]*Xr[k]+Xi[k]*Xi[k];/*パワースペクトルの計算*/ } double horizon[256],dB[256];/*dBは表の縦軸*/ FILE *fpout; for(i=0;i<256;i++) { horizon[i]=16000.0*((double)i/512); dB[i]=10*log10(power[i]); fprintf(fpout,"%lf%lf/n",horizon[i],dB[i]); } return 0; }
983 :
デフォルトの名無しさん :2008/08/04(月) 12:43:22
>>982 の続き
/* (r1 + j x1) と (r2 + j x2) の積が (r + j x) となる。 */
void Cmult( double *r, double *x, double r1, double x1, double r2, double x2 )
{
*r = r1 * r2 - x1 * x2;
*x = r1 * x2 + r2 * x1;
}
/* e^( -j * 2*pai * k * n / N ) の値が ( er + j ei ) */
void Twiddle( double *er, double *ei, int N, int k, int n )
{
double w, pai=3.1415926;
w = 2 * pai * k * n / N; *er = cos(w); *ei = sin(-w);
}
/* D[] が入力、Xr[], Xi[] が結果 */
void DFT(int N, double D[], double Xr[], double Xi[])/*離散フーリエ関数*/
{ int n,k,i;
double er, ei,datafft[i];
for(k = 0; k < N; k++) {
Xr[k] = 0.0;
Xi[k] = 0.0;
for(n = 0; n < N; n++) {
Twiddle(&er, &ei, N, k, n);
D[n]=datafft[i];
Cmult(&er, &ei, D[n], 0.0, er, ei);
Xr[k] = Xr[k] + er / N;
Xi[k] = Xi[k] + ei / N;
}
}
}
>>981 関数を呼び出してるとこが DFT(); となっていて
関数の定義は void DFT(int N, double D[], double Xr[], double Xi[]) こうなってる。
引数部分が釣り合ってないから怒られてるんです。
何を引数として渡したらいいかは離散フーリエ関数に明るくないのでわからないです。
986 :
デフォルトの名無しさん :2008/08/04(月) 13:02:19
>>985 DFT関数のエラーがなくなりました。ありがとうございます。
でもまた新しいエラーが出てしまいました…
<math.h>を定義したのに、sin,cosが定義されていないと出ました。
質問ばっかですいません。期限が迫っているので今日中に終わらせたいんです。
どうかお願いします。
987 :
デフォルトの名無しさん :2008/08/04(月) 13:04:32
エラー内容を載せておきます。 /tmp/ccMiFBof.o(.text+0x189): In function `main': : undefined reference to `log10' /tmp/ccMiFBof.o(.text+0x291): In function `Twiddle': : undefined reference to `cos' /tmp/ccMiFBof.o(.text+0x2af): In function `Twiddle': : undefined reference to `sin' collect2: ld はステータス 1 で終了しました
cos sinでエラーってヘッダ忘れてるだけだろ #include <math.h>; //sin cosとか数学系関数はこれを指定しないと使えない
>>987 コンパイル(リンク)時に -lm を追記すればおk
990 :
デフォルトの名無しさん :2008/08/04(月) 13:17:42
>>988 >>989 ありがとうございます。おかげでコンパイルができました。
ただ実行した後セグメントエラーが出てしまいました…orz
どうかこの馬鹿に徹底的に教えてやってください。お願いします。
>>981 1レスにあまるようなコードを直接張るなといわれたのも、覚えてられないのか!?
992 :
デフォルトの名無しさん :2008/08/04(月) 13:23:17
>>991 本当にすいません。過去レスを読んでませんでした…
今度からは止めます。
>>986 これの最新ソースが無いよ?
main(){
DFT();
}
>>990 double Xr[k], Xi[k], power[k]; // kが初期化されていない
FILE *fpout; // fpoutが初期化されていない
double er, ei, datafft[i]; // iが初期化されていない
995 :
デフォルトの名無しさん :2008/08/04(月) 14:54:27
遅くなってすみません。
>>993 すみません。忘れていましたorz
main(){
void DFT(int N, double D[], double Xr[], double Xi[]);
}
>>994 ありがとうございます。fpoutみたいなファイルの初期化はどうしたら良いのですか?
997 :
デフォルトの名無しさん :2008/08/04(月) 15:09:26
きゅぅぅひゃくきゅぅぅじゅうはぁぁち
で次スレへ移行
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。