1 :
デフォルトの名無しさん :
2010/07/16(金) 22:22:55 BE:302947384-S★(526363)
/: : / /: : : : : : : : : : : : : : : : : : : ヽ : : : / /: : : : : /: : : : : : : : : : : : : : : : \ 7 : { / : : : : /: : : : : : : : : : : ノ: :/: : : : : : ヽ : : : Y :{: : : : : :/: : : : : : : :/| : /|i: : : : : : \ : : ハ{: :ハ : :/ :/ : : : : : /⌒ l / |:ト、 : : : ヽ:ト\ : ||V: : V: :/ : : : :/ 、 〃 ‖`'; :ヽ : ':! ヘ U : : :/ィ" : : /、アΤ}ヽ/ | : : l : :| ヽ ハ/ { : /{ ん ィ/ ィぅ、 | : |: : | { ∨ ゞ‐'′ んハ} 〉 l : ハ: :| ヽ._ "" ゞ '′ / :/ V 人 ' "" イ/ , -_jヽ. {⌒ン / 宿題ですよ __.ノ: . ヾ \ `´ ,. ′ ィ<: . . : . . : ヽ ` ーr< // `丶、 ´- 、 ヽ\. : . . : ヽ /| : . \// `丶、 \\\: . . : ヽ-ー┤. : .}// `丶、 \\\: . . ヽ二l . : // / \\\. : .', l_:_// / i \\\ / -、`Y / \ l } \ヽ/´-‐ 、 }J /)、 l / / ⌒ヽ )′ (´.ィ′
3 :
デフォルトの名無しさん :2010/07/17(土) 11:08:46
早くカレンダー出力の課題、こいやー!
夏休みの宿題ってのもあるのかな
だからおまいは新参かってw 毎年のことだろw
言っておくがこのスレ、ほとんどのプログラミング授業TAがチェックしてるからな
8 :
デフォルトの名無しさん :2010/07/17(土) 20:00:04
#include <stdio.h> int tanka,suuryou,kingaku,kingaku2; int main(void) { printf("単価を入力してください\n"); scanf("%d",tanka); printf("数量を入力してください\n"); scanf("%d",suuryou); kingaku = tanka * suuryou; kingaku2 = tanka * 1.05 + suuryou; printf("金額は%d円,消費税込み金額は%d円です\n",kingaku,kingaku2); } 単価と数量打ち込んで 金額と消費税込み金額表示させるプログラムなんだけど 毎回単価入力したあと動作停止する どうして?教えて偉い人
ああ、良くある間違えだな
10 :
デフォルトの名無しさん :2010/07/17(土) 20:02:47
11 :
デフォルトの名無しさん :2010/07/17(土) 20:12:20
>>8 だけど自己解決した
scanfの変数の前に&付けるの忘れてた
あとkingaku2の式は tanka * 1.05 *suuryouだった
>>10 うん、おにいちゃんの頭がおかしいよ
小学生でもkingaku2 = tanka * 1.05 + suuryou
こんなことすると低脳って馬鹿にされるのに
おにいちゃんは幼稚園児ですか?
13 :
デフォルトの名無しさん :2010/07/17(土) 20:20:35
リーマンがなぜこんな勉強してるんだ? 単に趣味で始めただけかな。
15 :
デフォルトの名無しさん :2010/07/17(土) 20:24:52
>>14 仕事で使えたら便利だった。
まだ全然趣味レベルにもなってないww
>>15 kingaku = tanka * suuryou;
kingaku2 = tanka * 1.05 + suuryou;
これじゃ周りからあの人、仕事の効率悪くて駄目ねって言われているな
17 :
デフォルトの名無しさん :2010/07/17(土) 20:32:31
プログラマは頭が腐ってるから煽りを真に受けないほうがいいよ
kingaku2 = kingaku * 1.05; 答えのわかってる tanka * suuryou をkingaku2でも計算するのは無駄。
20 :
デフォルトの名無しさん :2010/07/17(土) 21:11:57
w
22 :
デフォルトの名無しさん :2010/07/17(土) 21:13:51
値引き区分、単価、数量を入力する。値引き区分が1のとき5%引き、2のとき10%引き、3のとき15%引き、それ以外は値引きなしとし、金額を算出し表示する。 っていうプログラムなんだけどわかんない(´;ω;`) なんか合計が絶対0円になっちゃう #include <stdio.h> int tanka,kubun,suuryou,nebiki,goukei; main() { printf("単価を入力してください\n"); scanf("%d",&tanka); printf("数量を入力してください\n"); scanf("%d",&suuryou); printf("区分を入力してください 1/5% 2/10% 3/15% それ以外の数字/なし\n"); scanf("%d",&kubun); switch(kubun) { case 1 :nebiki = 0.95;break; case 2 :nebiki = 0.9;break; case 3 :nebiki = 0.85;break; default :nebiki = 0; } goukei=tanka*nebiki*suuryou; printf("%d円です\n",goukei); return 0; }
int nebiki; nebiki = 0.95; goukei=tanka*nebiki*suuryou; そりゃまー0になるな
24 :
デフォルトの名無しさん :2010/07/17(土) 21:16:01
>>23 なして・・?
バカだからわかんない(´;ω;`)
>>24 型を int から double にしてみよう。
26 :
デフォルトの名無しさん :2010/07/17(土) 21:18:36
>>25 あっ、、、
少数はdoubleか!
あざーす
あとdefaultの場合それでいいのかもういっかい考えろ
[1] 授業単元:情報処理演習 [2] 問題文(含コード&リンク):元金a円、利率r円で、何年預けると目標金額b円を超えるか。ただし金利は複利計算によって求めるものとする。 [3] 環境 [3.1] OS: Windows 7 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008 Express Edition [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: 2010年07月19日12:00まで [5] その他の制限: forやwhileでの繰り返しまで習いました。 よろしくお願いいたします。
オラオラー、完全数、カレンダー、ニュートン法、素数、何でもこいやー 微積分だけは勘弁なw
>>30 駄目だ、俺の管轄はグレゴリオ暦からだw
>>31 32bitの範囲内で頼む ・ω・
オーバーフローして終了
>>36 #include<stdio.h>
int main(void)
{
printf("7652413\n");
return 0;
}
>>39 なら、これはどうだ?
#include<stdio.h>
int main(void)
{
puts("7652413");
return 0;
}
×=< ○<=
>>43 早速のレスありがとうございます
凡ミスでしたね・・・今後気をつけて取り組んでいきます!
ありがとうございました。
>>42 「 < 」 と 「 = 」の順番が逆になってる。
while(i=<10);
ではなくて
while(i<=10);
46 :
デフォルトの名無しさん :2010/07/18(日) 12:15:26
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
@下に示したスタックプログラムのpush()関数とpop()関数を実装し、プログラムが適切に動くようにしなさい。
このプログラムはint型の変数をキーボードから入力し、それをスタックにpushまたはpopするプログラムである。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10862.txt A@と同じように、キューのプログラムを作成しなさい。
ただし、配列をずらすことなくキューの操作ができるように実装しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月21日まで
[5] その他の制限:なし
メモリマネージャーの作り方を教えてください
>>47 頑張って勉強する
↓
頑張って設計する
↓
頑張って実装する
↓
(゚Д゚)ウマー
49 :
デフォルトの名無しさん :2010/07/18(日) 13:20:20
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):県から国、及び国から県に換算する関数を作成し、 main関数でキーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、 国ならば県に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。 値を引数とする関数で計算させ(関数名は nation とする)、出力は main関数で行うこと。 関係は以下の通り 県(A):(B+2)*5 国(B):A/3+25 <例> 数値を入力してください: 75 75 が「県」なら "A" を「国」なら "B" を入力してください: B 県 14.4 = 国 75 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual Studio2008 #include <stdio.h> int main(void) { [3.3] 言語: C++ [4] 期限:7/21まで [5] その他の制限:if文かfor文を用いること。 何度も投稿してすいませんでした。 でも助けてください!ピンチなんです。
>>50 数式の意味が分からん
> #include <stdio.h> int main(void) {
> [3.3] 言語: C++
この時期って中間或いは最終課題だよね わからないなら素直に単位落とせよって思う
53 :
デフォルトの名無しさん :2010/07/18(日) 16:23:23
>>49 ですが、
アドレスが8byteずつ変化することを表したいんです。お願いします。
>50 途中まで作ってみたんだが、そもそも例がおかしくないか……? 入力値75に対して、どんな計算をした結果が14.4なんだ? (B+2)*5 も A/3+25 も、どちらをあてはめても14.4という結果にならないと思うんだが…… それがわからんことにはプログラム書けないぞ
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): nを読み込み,n個のint型配列を動的に確保,n個の配列はn人の勇者とする.以下仕様に従ったプログラムを作成せよ. ?それぞれの勇者にヒットポイントを与える. ?敵のヒットポイントを与える. ?乱数を発生し,誰の攻撃かを決定する. ?攻撃をする際に,会心の一撃,普通の攻撃,ミスを乱数で決定する. ?相手に与えるダメージを乱数で決定する. ?敵の攻撃の場合,何人にどれだけ攻撃をするかを乱数で決定する. ?敵のヒットポイントが無くなるか,勇者が全滅したら終了とする. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21まで [5] その他の制限:とくにありません よろしくお願いします。
n 個のものの中から r 個のものを取り出すときの組合せの数 nCr を求める関数 CCO(int n, int r) を再帰型で作成しなさい. ただし, x, y の入力と結果の出力は main関数で行わせること. #include <stdio.h> int CCO(int x,int y) { if((x < 0) || (x < y)){ return -1; }else if(x <= 1){ return 1; }else{ (return x * CCO(x-1))/(return y * CCO(y-1)); } } int main(void) { int a,b; printf("値を入力してください: "); scanf("%d", &a); printf("値を入力してください: "); scanf("%d", &b); printf("%dC%d = %d\n", input1,input2, CCO(a,b)); return 0; }
どなたか
>>56 を完成させてください。
よろしくお願いします。
メモリマネージャーの最初に確保した領域からメモリを割り当てるっていうのがよく分かりません・・・ 教えていただけませんか?
>>59 問題に記載漏れがありました。申し訳ありません。
[1] 授業単元: 解析入門
[2] 問題文(含コード&リンク):
オイラー法、2次のルンゲクッタ法をそれぞれ用いて、以下の1階常微分方程式の初期値問題を解き、
解析解と同じグラフに表示せよ。
(横軸x/縦軸y)
dy(x) / dx = y (0 <= x <= 3) 初期条件:y(0)=1
(1)Delta x = 0.1
(2)Delta x = 0.3
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 本日中にお願いします。
>>58 オイラー法 2次のルンゲ・クッタ法 1階常微分方程式 初期値
最終学歴尋常小学卒にはさっぱりわからないことだらけ
1階常微分方程式ってなんて読むの?
>>58 オイラー法は初期値が必要だった気がするが、気のせいか?
gnuplotはわからんので他の人に任せた
>>56 変数や引数が意味不明なものばかりなんで却下
>>56 #include <stdio.h>
int CCO(int n, int r) {
if (n < 0 || n < r){
return -1;
} else if (r == 0 || n == r){
return 1;
} else{
return CCO(n - 1, r - 1) + CCO(n - 1, r);
}
}
int main(void) {
int n, r;
printf("値を入力してください: ");
scanf("%d", &n);
printf("値を入力してください: ");
scanf("%d", &r);
printf("%dC%d = %d\n", n,r, CCO(n, r));
return 0;
}
71 :
54 :2010/07/18(日) 18:43:58
>70 国→県と県→国が逆になってるぞ。 で、俺もそんなかんじのソース書いてみたんだけど、 それだと>50が処理例として書いている 『国の値として50を入力すると県の値として14.4を出力する』って結果にならないんだよ。 >50の処理例がどういう計算式の結果なのか、もしくは処理例がそもそも間違ってるのか、がわからないとソース書けね。
× 50を入力すると ○ 75を入力すると 急いで書いてミスったスマソ。
【質問テンプレ】 [1] 授業単元:情報処理課題 [2] 問題文(含コード&リンク):英語の文章で構成されるテキストファイルに対して、その中に含まれる総文字数と異なる文字ごとの出現回数とを数え上げよ。 [3.3] 言語:C [4] 期限:2010年07月19日00:00まで [5] その他の制限:Xcodeを使用しています。読み込むファイルは"/Users/user/Desktop/data.txt"で。 似たようなプログラムを作った時は「数列を入力し総文字数と数字ごとに出現回数とを数え上げグラフで表示」というような課題で 数字だったので0〜9までを表示することが簡単に出来ましたがアルファベットなのでa-zをどう表示したものか またstrlenだと半角空白も数えてしまうので総"文字"数とずれてくるのではないかと悩んでいます。 よろしくお願いします。
#include <stdio.h> #include <string.h> int main(){ int i; int alphabet[26]; const char FILENAME[] = "/Users/user/Desktop/data.txt"; const int LEN; memset( alphabet, 0, sizeof( alphabet ) ); len = strlen(FILENAME[]); printf( "総文字数は%d (但し半角空白を含む)\n", len ); for (i = 0; i < len; i++) { alphabet[ FILENAME[i] - '0' ]++; } for (i = 0; i < 26; i++) { printf("%d / %d個", i, alphabet[i] ); return 0; } 一応自分で書いてみたソースです。 たぶん間違いだらけ。
>>75 ファイルの中身を知るには、まず、ファイルをオープンして、配列なりなんなりに読み込まなければいけません。
#include <stdio.h> #include <string.h> void main(){ int i, LEN; int alphabet[26]; char buf{}; FILE *fp = fopen("/Users/user/Desktop/data.txt","r"); if (fp == NULL){ printf("%sが存在しません。\n→プログラム終了\n", fp); exit(1); } while(fgets(buf, sizeof buf, fp)) LEN = strlen( buf ); printf( "総文字数は%dです。\n", LEN ); for (i = 0; i < LEN; i++) { alphabet[ buf[i] - '0' ]++; } for (i = 0; i < 26; i++) { printf("%d / %d個\n", i, alphabet[i] ); return 0; } 弄ってて??になってしまいましたが…。 bufに読み込むってこういうことですか?
78 :
デフォルトの名無しさん :2010/07/18(日) 21:30:44
>>56 ですが、
>>69 だと答えが変なんですが
6C3=120のはずなのに↓
正整値を入力してください: 6
正整値を入力してください: 3
6C3 = 20
あと、公式をはり忘れていました
nCr = n-1Cr-1 * n / r = n! / {(n-r)! * r!} = n * (n-1) * ・・・ * (n-r+1) / {r * (r-1) * ・・・ * 2 * 1}
>>78 6C3 は (6*5*4)/(3*2*1) じゃないの?
81 :
デフォルトの名無しさん :2010/07/18(日) 21:40:12
>>78 ゆとりテラワロスwwwwwwwwwwwwwwwwwwwwwww
>>77 考え方はそうですが、
c では配列の大きさ(char buf[])
はプログラムの最初に決定しておかなければなりません。
(char buf[256] など)
>>77 は行単位で処理されているようですので
それを考慮すれば、正解までもうすぐです。
>>78 小学校の算数もできん奴にプログラムなんてできるわけないwwwww
腹いてーwww
俺ならパスカルの△で解くなぁ。時間も求められる値の上限もかなり差が出るし。
86 :
デフォルトの名無しさん :2010/07/18(日) 22:13:47
>>82 #difine MAX 1000
を最初に追加し
buf[]→buf[MAX]
fgets→fgetc
という記述で大丈夫でしょうか?
>>87 個々の strlen() の結果を集めて合計する、ということは必要かと。
fgets() のままでいいのでは?
>>85 分かっているけど
>>56 の書き方からして
階乗を再帰で計算したものを使おうとしたのかな?と思ったもんで
90 :
デフォルトの名無しさん :2010/07/18(日) 23:07:18
#include <stdio.h> #include <string.h> void main(){ int i, sum; int alphabet[26]; char buf[MAX],LEN[MAX]; FILE *fp = fopen("/Users/user/Desktop/data.txt","r"); if (fp == NULL){ printf("%sが存在しません。\n→プログラム終了\n", fp); exit(1); } while(fgets(buf, sizeof buf, fp)) LEN[] = strlen( buf ); for(i=0;i<=4;i++){ sum += LEN[j]; printf( "総文字数は%dです。\n", LEN ); for (i = 0; i < LEN; i++) { alphabet[ buf[i] - '0' ]++; } for (i = 0; i < 26; i++) { printf("%d / %d個\n", i, alphabet[i] ); return 0; }
投稿ミスです;;申し訳ない。。 #include <stdio.h> #include <string.h> #difine MAX 1000 void main(){ int i, j; int alphabet[25]; char buf[], LEN[]; FILE *fp = fopen("/Users/user/Desktop/data.txt","r"); if (fp == NULL){ printf("%sが存在しません。\n→プログラム終了\n", fp); exit(1); } while(fgets(buf, sizeof buf, fp)) LEN[] = strlen( buf ); for(j=0; j<=MAX; j++) sum += LEN[j] printf( "総文字数は%dです。\n", sum ); for (i = 0; i < sum; i++) { alphabet[ buf[i] - '0' ]++; } for (i = 0; i < 26; i++) { printf("%d / %d個\n", i, alphabet[i] ); return 0; } LENも配列にして?新しくsumという変数を宣言してみましたが…。
(・∀・) ニヤニヤ
そりゃ void main なんて書かれたら吹くわw
99 :
デフォルトの名無しさん :2010/07/19(月) 01:50:24
どなたか前スレの
>>869 をやっていただけないでしょうか…
>>98 #include <stdio.h>
#include <stdlib.h>
#include <time.h>
h#define SEL 4
int main(void)
{
char s[] = "ABCDEF", tmp;
int i, j, lth = 0;
srand(time(NULL));
while (s[lth])
lth++;
for (i = 0; i < SEL; i++) {
j = rand() % (lth - i) + i;
tmp = s[j];
s[j] = s[i];
s[i] = tmp;
}
s[i] = '\0';
printf("%s\n", s);
return 0;
}
>>100 ありがとうございます
申し訳ないですがHit&Blowのプログラムの正解が数字でなくアルファベットである場合書き方がわからない為引き続き
>>98 のお手伝いをお願いします。
>>103 数字、アルファベットのどちらでも同じコードが使えると思うが。
コードを晒してみたら?
十分に答える気もなく、まともに動作しないどころかコンパイルさえ通らない クソースを投稿するなよw
>>107 制限ないならそのまま配列宣言すれば終了。
よろしくお願いします。 文字列sと文字列tの中の文字の並びが完全に一致するかどうかを調べて、完全に一致すれば整数値1を、そうでない場合は整数値0を返す c言語関数compare_strings(s,t)を書け。ただし、文字列sとtは\0で終端されていると仮定してよい。
>>108 すみません。書き忘れました。その方法ではだめみたいです。
>>109 int compare_string(const char *s, const char *t) { return strcmp(s, t) == 0 ? 1 : 0; }
114 :
デフォルトの名無しさん :2010/07/19(月) 18:49:51
115 :
98 :2010/07/19(月) 19:01:27
>>109 int compare_string(char *a, char *b){
char *p = a, *q = b;
while ((*p == *q) && (*p && *q)) {
p++;
q++;
}
return *p == *q;
}
>>86 #include <stdio.h>
int main(void) {
char buffer[100], c, *buffer_pos;
int i;
buffer_pos = buffer;
printf("文字列を入力:\n");
scanf("%s", buffer);
while (c = *buffer_pos++) {
if (c == 'n') {
printf("\n");
} else if (*buffer_pos) {
for (i = 0; i < *buffer_pos - '0'; i++) {
printf("%c", c);
}
buffer_pos++;
}
}
return 0;
}
>>115 入力文字と答えのチェック部分で
ans[k] == guess[k] - '0'
てのを
s[k] == guess[k]
てな感じに変えてみたらどう?
printf("正解は[%d%d%d%d]でした\n", ans[0], ans[1], ans[2], ans[3]);
ってところも
printf("正解は[%s]でした\n", s);
こんな風に
>>115 それと
char guess[ANSWER_SIZE];
って宣言してるところは
char guess[ANSWER_SIZE+1];
という風に1つサイズ増やしたほうがいいかも
VS2008で実行すると答え合わせて終了したときに、この配列でエラーが出るよ
scanfでguessに文字列入れたときにエンター入力分がないってことなのかね
>>115 X if (ans[l] == guess[l] - '0') {
○ if ((s[k] == guess[l]) && (k != l)) {
#include <stdio.h> int main(void) { FILE *fp;/* ファイル用ポインタ */ char kadai[49][63];/*文字列用 */ int x,y; fp = fopen("課題2ビットマップデータ.txt", "r"); for(x=0;x<49;x++) { for(y=0;y<63;y++) { printf("%c", kadai[x][y]); } } } テキストに入った縦50、横64の文字列を表示させたいんですが出来ない、 だれか教えてくれると助かります
123 :
デフォルトの名無しさん :2010/07/19(月) 20:34:15
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 与えられた負でない整数nに対して、 を求める関数を関数の再帰呼び出しを使って作成せよ。 一般的なアルゴリズムは以下のようになる。 % ./factorial 負でない整数を入力して下さい: 4 24 % ./factorial 負でない整数を入力して下さい: 0 1 % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
126 :
デフォルトの名無しさん :2010/07/19(月) 20:47:21
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 2つのchar型配列x[],y[]に格納された文字列を入れ替えるプログラムを,関数swap_stringWithPointer(char *, char *)を用いて実装せよ.下記の例では,2つの文字列xとyをキーボードから入力し,入れ替えた後に表示している. % ./stringSwap 文字列x (20字まで)? Ritsumeikan 文字列y (20字まで)? BKC 入替後の x: "BKC" 入替後の y: "Ritsumeikan" % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
>>123 #include <stdio.h>
#define FACT(n) factrial(n,1)
int factrial(int n, int r)
{
if(n!=0){
r*=n;
return factrial(--n,r);
}
return r;
}
int main()
{
int n;
printf("負数でない整数を入力してください: ");
scanf("%d",&n);
printf("%d\n",FACT(n));
}
128 :
デフォルトの名無しさん :2010/07/19(月) 20:49:27
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 文字列xに文字列yが含まれるかどうかを判定する関数str_compWithPointer(char *, char *)を作成せよ.この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。 % ./compare 文字列x (64字まで)? Ritsumeikan-University 文字列y (64字まで)? Univ "Ritsumeikan-University"に"Univ"は含まれます. % ./compare 文字列x (64字まで)? Ritsumeikan-University 文字列y (64字まで)? city "Ritsumeikan-University"に"city"は含まれません. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
129 :
デフォルトの名無しさん :2010/07/19(月) 20:52:21
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 標準入力から正の整数値を読み込み,0が入力されたらそれらの整数を小さい順に表示するプログラムを作成せよ. 以下のような処理の流れでプログラムを作成すること。 数字を読み込むごとに, それまでに入力された数値が格納された配列の最後の要素から, 先頭に向かって順に大小の比較を行う. これにより、読み込んだ数字の方が入るべき位置がわかる. 読み込んだ数字が入るべき箇所を空けるために、 既に記憶されている配列の要素のうち、 この数字よりも大きな数字をひとつ後ろにずらす。 空いた箇所に読み込んだ数字を代入する. 次に入力される数字の処理へ移る. % ./ordering 正整数: 17 正整数: 3 正整数: 9 正整数: 4 正整数: 0 入力された整数は小さい順に 0, 3, 4, 9, 17 です. % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
130 :
デフォルトの名無しさん :2010/07/19(月) 20:53:41
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char [], char [])を作成せよ.この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。 % ./compare 文字列x (64字まで)? Ritsumeikan-University 文字列y (64字まで)? Univ "Ritsumeikan-University"に"Univ"は含まれます. % ./compare 文字列x (64字まで)? Ritsumeikan-University 文字列y (64字まで)? city "Ritsumeikan-University"に"city"は含まれません. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
131 :
デフォルトの名無しさん :2010/07/19(月) 20:55:08
複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ. 【実行例】 何個の文字列を入力しますか?:4 入力文字列[1]:AAA 入力文字列[2]:BBB 入力文字列[3]:CCC 入力文字列[4]:DDD 繋ぎ合わせる順番: 2 4 3 1 結果:BBBDDDCCCAAA 申し訳ありませんがませんが、よろしくお願いします。
132 :
デフォルトの名無しさん :2010/07/19(月) 20:55:36
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): char型配列xに格納された文字列を1文字ごとに空白を空けて逆順に出力する関数reverse_array(char [])を作成せよ.変換後の文字列の長さがもとの文字列よりも長くなっているので、長さの検査が必要であることに注意せよ。 この関数を用いて、入力された文字列を並び替え、その結果を印字するプログラムを作成せよ。 % ./reverse 処理前の文字列 (64字まで)? Ritsumeikan 関数reverse_array()を呼び出しました 処理後の文字列 "n a k i e m u s t i R" [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
[1] 授業単元:C++プログラミング [2] 問題文(含コード&リンク): 航空会社が持っている小型航空機(座席数:24)のフライトに座席を割り当てるシステムをプログラミングせよ。 この航空機の座席は中央に通路を挟み左右にそれぞれ2座席ずつの列が計6列ある。 座席は 1A, 1B, 1C, 1D, ..., 6A, 6B, 6C, 6D で表示され、 1, 2列目が喫煙区画で、 A, D が窓側、 B, C が通路側を示している。 プログラムはまず最初に次の選択メニューを表示する。 喫煙席を希望する方は 1 をタイプしてください。 禁煙席を希望する方は 2 をタイプしてください。 喫煙/禁煙の選択が終わると、 窓側か通路側かの選択を求める。 窓側を希望する方は 1 をタイプしてくださ。 通路側を希望する方は 2 をタイプしてください。 希望に沿える席がすべて予約済みで割り当てられない場合には、窓側又は通路側の希望については無視して割り当てる。 ただし, 「窓側(あるいは通路側)はすでに満席のため通路側(窓側)で予約します」というメッセージを出力し、 以下のように座席番号と喫煙席/禁煙席の区分が書かれた搭乗券を(この課題では画面上に)出力する。 -------- 2A 禁煙 --------
134 :
デフォルトの名無しさん :2010/07/19(月) 20:56:26
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): char型配列xに格納された英単語からなる文字列が回文(逆から読んでも同じ)であるかをチェックする関数anagram(char [])を作成せよ.ただし,チェック対象の文字列はソースコードのmain()関数内で記述するものとする(キーボードから入力しない). % ./checkAnagaram 文字列 "Ritsumeikan" は回文ではありません. % ./checkAnagaram 文字列 "Was it a cat I saw?" は回文です. ヒント: 回文のルールは以下の通り. (i) 前から読んでも後ろから読んでも同じアルファベットの並びとな る, (ii) 記号「?」,「.」,「,」,「-」,「 」(空白)は無視する, (iii) 大文字と小文字は区別をしない. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
135 :
デフォルトの名無しさん :2010/07/19(月) 20:57:24
入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ. 【実行例】 % ./a.out tataatccg ← 入力し,リターンを押して ^D Thymine (t) : 3 Cytosine (c) : 2 Adenine (a) : 3 Guanine (g) : 1 %
それから、禁煙区画(あるいは喫煙区画)が窓側又は通路側ともに満席のときには喫煙区画(禁煙区画)でも良いかどうか乗客に尋ねなければならない。 乗客がOKすれば(窓側/通路側の希望はできるだけ尊重した上で)空いている座席を割り当て搭乗券を出力し、しなければ「3時間後に次のフライトがあります。」というメッセージを出力して終了する。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual Studio2008 [3.3] 言語:C++ [4] 期限:2010/07/26まで [5] その他の制限:なし よろしくお願いします。
139 :
デフォルトの名無しさん :2010/07/19(月) 21:00:32
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 発展課題 13..1 ATM(Automated Teller Machine; 現金自動預け払い機)システムを実現するプログラムを考える。 氏名,口座番号,暗証番号,預金残高を要素とする構造体を宣言し, 512人分の口座が作成可能なようにせよ.また,初期値として次のように構造体の内容を設定せよ. 立命太郎の口座番号は1234で,預金残高を1,234,560円に設定する. 野路花子の口座番号は5678で,預金残高を987,600円に設定する. 衣笠一郎の口座番号は9012で,預金残高を538,600円に設定する. 暗証番号は口座番号に1111を足して10000で割った余りに設定する. ここで暗証番号は、口座番号を引数としてとり、それに1111を足して10000で割った余りを計算する関数を作成して設定すること. 上記の方法で初期値を設定し、設定された3人の預金残高を画面へ出力するプログラムを作成せよ.ただし、ひとり分の預金残高を表示する関数を作成して、これを繰り返し使って3人の預金残高を出力すること. % ./initAccount 預金残高は次のとおりです. 立命太郎 (1234) 1234560 円 野路花子 (5678) 987600 円 衣笠一郎 (9012) 538600 円 % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
140 :
デフォルトの名無しさん :2010/07/19(月) 21:02:10
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): [3] 環発展課題 13..2 発展課題13.1を基に「引出し」の機能を追加せよ.具体的には,口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をするプログラムを追加すればよい.機能の選択は,起動時できるようにすること. % ./withdraw [0]終了 [1]残高表示 [2]引出し: 2 口座番号を入力してください: 5000 ← 存在しない 暗証番号を入力してください: 0123 口座番号または暗証番号が間違っています. 口座番号を入力してください: 9012 暗証番号を入力してください: 5555 ← 間違っている 口座番号または暗証番号が間違っています. 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 引出し額を入力してください: 1000000 ← 預金額より多い 預金額が不足しています. 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 引出し額を入力してください: 20000 ありがとうございました.残高は 518600 円です. [0]終了 [1]残高表示 [2]引出し: 2 ← 始めに戻る [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
141 :
デフォルトの名無しさん :2010/07/19(月) 21:04:06
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 発展課題 13..3 発展課題13.2を基に,「振込み」の機能を実現せよ.具体的には,利用者の口座番号・暗証番号・振込額の指定と確認,振込先の口座番号の指定と確認,両者の預金残高の更新をするプログラムを作成せよ. なお,以下の例では省略するが,口座番号や暗証番号を間違った場合のチェックや,預金額が不足する場合のチェックもすること. % ./transfer [0]終了 [1]残高表示 [2]引出し [3]振込み: 3 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 振込先の口座番号を入力してください: 1000 口座番号をご確認ください. ← 存在しない 口座番号を入力してください: 9012 暗証番号を入力してください: 0123 振込先の口座番号を入力してください: 5678 振込み額を入力してください: 30000 野路花子 様に 30000 円振り込みました. ありがとうございました.残高は 508600 円です. [0]終了 [1]残高表示 [2]引出し [3]振込み: ← 始めに戻る 振り込まれた先の口座の金額が増えていることを、デバッガで確認せよ。この例では、「野路花子」の残高は 1017600 円のはずである。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
142 :
デフォルトの名無しさん :2010/07/19(月) 21:05:44
143 :
98 :2010/07/19(月) 21:06:45
>>131 197 名前:デフォルトの名無しさん[sage] 投稿日:2010/06/24(木) 15:07:11
>>196 演習6-1
#include <stdio.h>
int main(void)
{
char buff[32], str[1024], *p, *q;
int i, n;
printf("何個の文字列を入力しますか?:");
scanf("%d", &n);
for(i = 1, p = str; i <= n; i++) {
printf("入力文字列[%d]:", i);
scanf("%s", buff);
for(q = buff; *q; q++, *p++) *p = *q; *p++ = ' '; }
*(p - 1) = '\0';
printf("\n結果:%s\n", str);
return 0;
}
>>132 923 名前:デフォルトの名無しさん[sage] 投稿日:2010/07/16(金) 04:59:50
>>918 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10840.c >>919 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10841.c
147 :
デフォルトの名無しさん :2010/07/19(月) 21:10:25
入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること. 【実行例】 % ./a.out 1gattatgtga 11tgccgatatc 21gatatgattc (ここで ^D を押す) #ATG is 3 % すいません、お手上げです。お願いします。
148 :
デフォルトの名無しさん :2010/07/19(月) 21:10:33
[1] 授業単元:プログラミング基礎I
[2] 問題文(含コード&リンク):
>>139 の問題を基に
口座を表現した構造体をstruct accountとする。初期値を設定された3人の預金残高を画面へ出力するプログラムを、構造体のアドレスを引数とする関数void print_account(struct account *)を用いて作成せよ.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:7/20まで
[5] その他の制限:とくにありません
149 :
デフォルトの名無しさん :2010/07/19(月) 21:12:03
[1] 授業単元:プログラミング基礎I
[2] 問題文(含コード&リンク):
>>141 を基に 口座を表現した構造体を struct accountとする。以下の関数を作成し、発展課題 13.3と同じ機能をもつプログラムを作成せよ。
指定された口座番号に対応する口座情報を探索する関数
struct account *search_account(int id)
指定された口座番号に相当する講座がないとき、この関数は NULL を返すものとする。
口座内容を印字する関数
void print_account(struct account *account)
振込み元の講座から振込先の口座へ指定された金額だけ振り込む関数
int transfer(struct account *from, struct account *to, int amount)
この関数は成功した場合1を、失敗した場合は負の整数を返すものとする.
これらの関数の中では printf() や fgets() などの入出力関数は用いないようにせよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:7/20まで
[5] その他の制限:とくにありません
>>124 参考になりました
ありがとうございます。
152 :
デフォルトの名無しさん :2010/07/19(月) 21:14:24
配列a[n],配列b[n]と配列の大きさnを渡すと配列の要素を入れ換えるプログラムをポインタを用いて作成せよ. 例えば,a[3]={1,2,3},b[3]={101,102,103}とするとき,結果として,a[3]={101,102,103},b[3]={1,2,3}となるようにせよ.
153 :
デフォルトの名無しさん :2010/07/19(月) 21:15:55
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): name(名前: char型配列), height(身長: float型変数), bloodType(血液型: char型変数)をメンバに持つ構造体を宣言し, 128名分が記憶可能になるようその構造体の配列を定義せよ.また,その配列に対して値を入力し, さらに表示できるようにせよ.構造体のメンバ値を表示するには、ひとつの構造体の各メンバの値を表示する関数を作成すること。 % ./bodyData 1人目のデータ: 立命太郎 175.5 A 2人目のデータ: 野路花子 169.0 B 3人目のデータ: 衣笠一郎 180.4 O 4人目のデータ: 0 0 0 ← 0 0 0 と入力すると終わる. 名前 身長 血液型 立命太郎 175.5 A 野路花子 169.0 B 衣笠一郎 180.4 O % ヒント: 各人の名前、身長、血液型のデータを1行で入力するためには、参考12.1に示されたfgets()関数で、これらを1度に取り込み、最初の空白までを名前とみなし、次の空白までを身長とみなし、次に改行までを血液型をみなせばよい。これらを別々の文字列として、 必要に応じて整数や浮動小数点数に変換し、構造体のメンバに設定すること。 ヒント: ひとつの構造体の各メンバの値を表示する関数に構造体を引渡すことを繰り返えせばよい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/20まで [5] その他の制限:とくにありません
154 :
デフォルトの名無しさん :2010/07/19(月) 21:17:12
[1] 授業単元:プログラミング基礎I
[2] 問題文(含コード&リンク):
>>153 を基にデータを身長の高い順に出力するよう変更せよ.
% ./orderByHeight
… ← 入力は前課題と同じなので省略.
名前 身長 血液型
衣笠一郎 180.4 O
立命太郎 175.5 A
野路花子 169.0 B
%
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:7/20まで
[5] その他の制限:とくにありません
1題ずつろだに上げる→まとめてURLをここに書く、とかしてくれるとありがたい
156 :
デフォルトの名無しさん :2010/07/19(月) 21:20:27
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること. 【実行例】 % ./a.out 1gattatgtga 11tgccgatatc 21gatatgattc (ここで ^D を押す) #ATG is 3 % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
157 :
デフォルトの名無しさん :2010/07/19(月) 21:23:44
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ. 【実行例】 % ./a.out tataatccg ← 入力し,リターンを押して ^D Thymine (t) : 3 Cytosine (c) : 2 Adenine (a) : 3 Guanine (g) : 1 % [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
158 :
デフォルトの名無しさん :2010/07/19(月) 21:47:02
159 :
デフォルトの名無しさん :2010/07/19(月) 21:49:10
>>159 解いてやりたいが、低脳で問題が全く理解できない
>>147 >>156 http://pc12.2ch.net/test/read.cgi/tech/1276810079/943, http://pc12.2ch.net/test/read.cgi/tech/1276810079/954 954 名前:デフォルトの名無しさん[sage] 投稿日:2010/07/16(金) 18:19:08
#include <stdio.h>
#include <string.h>
#define N 100
int main(void)
{
int cnt = 0;
char s[] = "atg", s2[] = "tcag", buf[N], *p1, *p2;
p1 = buf;
while (scanf("%99s", p1) != EOF)
while (*p1)
p1++;
p1 = p2 = buf;
while (*p1) {
while (strchr(s2, *p1) == 0)
p1++;
*p2++ = *p1++;
}
*p2 = *p1;
p1 = buf;
while (strstr(p1, s)) {
cnt++;
p1 = (strstr(p1, s));
p1++;
}
printf("#ATG is %d\n", cnt);
return 0;
}
ほんと重複がおおいな。夏休み前ってこんなもんだっけ? ATM回答書いたものだが、前スレの出題者が条件を全部書かなかったばかりに ちょっと不完全な部分があるので改造して提出ドゾー。
166 :
デフォルトの名無しさん :2010/07/19(月) 22:26:12
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 配列a[n],配列b[n]と配列の大きさnを渡すと配列の要素を入れ換えるプログラムをポインタを用いて作成せよ. 例えば,a[3]={1,2,3},b[3]={101,102,103}とするとき,結果として,a[3]={101,102,103},b[3]={1,2,3}となるようにせよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
>>49 問題の意味がよくわからんが、こんなんでいいのか?
#include <stdio.h>
int main(void) {
char src[32];
int *ptr_i;
double *ptr_d;
int i;
for(i = 0; i < 32; i++) {
src[i] = i;
}
ptr_i = (int *)src;
ptr_d = (double *)src;
for(i = 0; i < 8; i++) {
if ((char *)ptr_i == (char *)ptr_d) {
printf("ptr_d:");
ptr_d++;
} else {
printf(" ");
}
printf("%p) = 0x%x\n", ptr_i, *ptr_i);
ptr_i++;
}
return 0;
}
172 :
デフォルトの名無しさん :2010/07/19(月) 23:34:22
174 :
デフォルトの名無しさん :2010/07/19(月) 23:50:13
[1] 授業単元:C++基礎 [2] 問題文(含コード&リンク): 基底クラスとして Shape、その派生クラスとして Rectangle (正方形)を定義し、 正四角形の辺の長さの合計と面積を計算する。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VisualStudio2005 コマンドプロンプト [3.3] 言語: C++ [4] 期限: 2010/7/20 8:50 [5] その他の制限: 基底クラスとMainは変更不可。加筆は、ソースコメント「問題箇所」で示します。 派生クラスを加筆しましたが、以下のエラーが出ます。 どう直せばいいか分かりません。お願いします。 enshu6_3.cpp(32) : error C2512: 'Shape' : クラス、構造体、共用体に既定のコンストラクタがありません。 課題はこの後投稿します。
175 :
デフォルトの名無しさん :2010/07/19(月) 23:52:05
#include <stdio.h> #include <math.h> // クラス Shape class Shape { protected: int n; // 辺の数 double l; // 辺の長さ public: Shape(int, double); // コンストラクタ double hen(); // 辺の長さの合計 virtual double menseki() = 0; // 面積の計算(純粋仮想関数) }; //問題箇所start class Rectangle : public Shape { public: Rectangle(){} Rectangle(int n, double l ){} //: Shape(int, double) {} // コンストラクタ double hen(){ return n * l; } virtual double menseki(){ return l * l; } }; //問題箇所end int main() { double x; scanf("%lf", &x); Rectangle r(4, x); printf("%.3f %.3f\n", r.hen(), r.menseki()); }
>>143 hit計算部
X if ((s[k] == guess[l]) && (k != l)) {
○ if (s[k] == guess[k]) {
blow計算部
○ //break;
void swap(int *a, int *b, int n){ while (--n >= 0) { *a ^= *b; *b ^= *a; *a ^= *b; a++; b++; } }
>>177 swap (a, a, sizeof(a)/sizeof(int));
とやると、破綻しないか?
void swap(int *a, int *b, int n){ int *aa=a; int *bb=b; while (--n >= 0) { *aa ^= *bb; *bb ^= *aa; *aa ^= *bb; aa++; bb++; } }
いや、そういうことじゃなくて0になるってことか
始めにif(a==b) return;を入れればいいな
>>180 どこでききかじったかしらないが、
swap(a, a, sizeof(a)/sizeof(int));
と書いてしまうと、a が 0 になってしまわないか?
184 :
デフォルトの名無しさん :2010/07/20(火) 00:33:25
>>178 ありがとうございます!できました!
ちょっと気になるのは、派生クラスの加筆が問題だったのですが、
基底クラスにも加筆しているところです。
派生クラスだけの加筆では解決できないのでしょうか。
ローカル変数tmpを使って入れ替えるのがそんなにイヤか?
よろしくお願いします。 文字列sの中の文字の順番を逆にコピーした文字列dを作るc言語の関数str_revcopy(d,s)を書け。 関数の返す値はコピーをした先のdとする。 ただし文字列sを逆順にコピーするのに十分な記憶領域があらかじめ確保されていて、その先頭がdで指されていると仮定する。 さらに、dとsの記憶領域には重なりがないとする。例えば str_revcopy(d,"ABCDE")は文字列"EDCBA"を返し、 str_revcopy(d,"This is a pen")は文字列".nep a si sihT"を返し、 str_revcopy(d,"")は文字列""を返す。
>>184 派生クラスを public に継承させている状態なので、
基底クラスのメンバ変数 n, l を基底クラス、派生クラスのどちらのコンストラクタで初期化するべきか、
という判断になります。派生クラス側で全部初期化するのであれば、次のようになるかと思います。
http://codepad.org/3LbwV44M
188 :
デフォルトの名無しさん :2010/07/20(火) 00:50:53
1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): n個の実数(double型)を配列に読み込んだ後,配列を指すポインタを用いて,最大値と最小値を探索するプログラムを作成せよ.また,入力した値の平均値もポインタ変数を用いて計算せよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
190 :
デフォルトの名無しさん :2010/07/20(火) 01:17:10
>>187 ありがとうございます。基底クラスで初期化するのが一般的みたいですね。
助かりました!
191 :
デフォルトの名無しさん :2010/07/20(火) 01:30:49
192 :
デフォルトの名無しさん :2010/07/20(火) 01:45:56
193 :
186 :2010/07/20(火) 01:49:33
[1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): 文字列sの中の文字の順番を逆にコピーした文字列dを作るc言語の関数str_revcopy(d,s)を書け。 関数の返す値はコピーをした先のdとする。 ただし文字列sを逆順にコピーするのに十分な記憶領域があらかじめ確保されていて、その先頭がdで指されていると仮定する。 さらに、dとsの記憶領域には重なりがないとする。例えば str_revcopy(d,"ABCDE")は文字列"EDCBA"を返し、 str_revcopy(d,"This is a pen")は文字列".nep a si sihT"を返し、 str_revcopy(d,"")は文字列""を返す。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VisualStudio コマンドプロンプト 2010 [3.3] 言語:C [4] 期限:7月20日16時 [5] その他の制限:特になし
↓ >関数の返す値はコピーをした先のdとする。 あいかわらず問題文ちゃんと読めてないなw >d[++j] = '\0'; ひどすぎるw
◆QZaw55cn4c って確実に引きこもりニートだろ?こんなの相手にしていられる 暇があるなんて。稼ぎについては聞かないが、こんなことしてリア充な訳無いだろうしw
>>196 横レスだが、個人的にはこの方が好き。
char *str_revcopy(char *d, char *s)
{
int len, i = 0;
len = strlen(s);
while (len)
d[--len] = s[i++];
d[i] = '\0';
return d;
}
199 :
デフォルトの名無しさん :2010/07/20(火) 11:14:36
[1] 授業単元:C++基礎 [2] 問題文(含コード&リンク): n個の実数(double型)を配列に読み込んだ後,配列を指すポインタを用いて,最大値と最小値を探索するプログラムを作成せよ.また,入力した値の平均値もポインタ変数を用いて計算せよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありませ
200 :
デフォルトの名無しさん :2010/07/20(火) 11:15:57
[1] 授業単元:プログラミング基礎I [2] 問題文(含コード&リンク): 配列a[n],配列b[n]と配列の大きさnを渡すと配列の要素を入れ換えるプログラムをポインタを用いて作成せよ. 例えば,a[3]={1,2,3},b[3]={101,102,103}とするとき,結果として,a[3]={101,102,103},b[3]={1,2,3}となるようにせよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
201 :
デフォルトの名無しさん :2010/07/20(火) 11:55:45
[1] 授業単元:C++ [2] 問題文(含コード&リンク): 複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ. 【実行例】 何個の文字列を入力しますか?:4 入力文字列[1]:AAA 入力文字列[2]:BBB 入力文字列[3]:CCC 入力文字列[4]:DDD 繋ぎ合わせる順番: 2 4 3 1 結果: BBBDDDCCCAAA [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:途中までやったのですがうまくいきません。文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムというのが難しいです。
202 :
デフォルトの名無しさん :2010/07/20(火) 11:57:30
>>201 の途中までやったプログラムです。申し訳ありませんが、どなたかよろしくお願いします。
int
main(void)
{
int i, j, p,q,seq[4], n;
char s[NN][100];
loop(i, NN) {
printf("何個の文字列を入力しますか?[%d]=", i);
scanf("%s", s[i]);
}
printf("繋ぎ合わせる順番を入力してください\n");
loop(i, NN) {
scanf("%d", &n);
seq[i] = n;
}
printf("結果 -> ");
loop(i, NN) {
loop(j, NN) {
loop(p,NN){
if (seq[j] == i + 1)
printf("%s", s[j,p]);
}
}
}
return 0;
}
205 :
◆xIIUupxBXw :2010/07/20(火) 12:19:14
1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク): 一行ごとにテキストファイル名が無限に書いてあるテキストファイルがある。 このファイルを読みだして書いてあるファイル名のファイル内容をすべて表示するプログラムを作れ 一行ごとに書いてあるファイルの最後は改行で終わっているものとする。 [3] 環境 [3.1] OS: Windows [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日午前中 [5] その他の制限: とくにありません
>>205 (1/2)
#include <stdio.h>
#include <stdlib.h>
void chomp(char *cs) {
int i = strlen(cs) - 1;
for (;0 <= i && (cs[i] == '\r' || cs[i] == '\n'); i--) cs[i] = '\0';
}
void print(char *filename) {
#define SIZE 1024
static char buff[SIZE];
FILE *f = fopen(filename, "r");
if (!f) return;
for (;fgets(buff, SIZE, f);) printf("%s", buff);
fclose(f);
#undef SIZE
}
>>205 (2/2)
>>204 の続き
int main(int argc, char **argv) {
FILE *f;
#define MAX_PATH 256
char filename[MAX_PATH + 1];
if (argc < 2) {
printf("%s: no input files\n", argv[0]);
exit(EXIT_FAILURE);
}
if (!(f = fopen(argv[1], "r"))) {
printf("%s: cannot read %s\n", argv[0], argv[1]);
exit(EXIT_FAILURE);
}
for (;fgets(filename, MAX_PATH, f);) {
chomp(filename);
print(filename);
}
#undef MAX_PATH
fclose(f);
return 0;
}
209 :
◆xIIUupxBXw :2010/07/20(火) 13:42:42
いえいえ
>>204 え?トリップ付けてないけど、あんたの自己紹介で間違いないの?
リア充ではない引きこもり乙
212 :
デフォルトの名無しさん :2010/07/20(火) 15:30:20
[1] 授業単元:C++基礎 [2] 問題文(含コード&リンク): n個の実数(double型)を配列に読み込んだ後,配列を指すポインタを用いて,最大値と最小値を探索するプログラムを作成せよ.また,入力した値の平均値もポインタ変数を用いて計算せよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7/21 [5] その他の制限:とくにありません
213 :
デフォルトの名無しさん :2010/07/20(火) 15:33:01
配列を読み込み,平均値と総和を計算するプログラムを作成する.但し,以下の仕様を満足せよ. # main関数では以下の関数だけを呼ぶだけにする. # 整数nを読み込み,n個の配列に実数を読み込む関数.input(int *, double *) # 整数nとn個の配列を渡すと,総和,平均を計算する関数.calcu(int, double *, double *, double *) # 総和と平均を印字する関数output(double, double) 【プログラム(q8-0.c)】 #include <stdio.h> void input(int *, double *); void calcu(int, double *, double *, double *); void output(double, double); int main(void) { int n; double a[10]; double xsum, ave; input(&n, a); calcu(n, a, &xsum, &ave); output(xsum, ave); return 0; }
平均値とか総和とかさ… それ作れないで授業受ける意味あるの? まあ自分のことだからいいけどさ
>>107 ...
#define N 10
#define min(a,b) ((a<b)?a:b)
#define max(a,b) ((a>b)?a:b)
int main(void){
int i, j, a[N][N];
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
a[i][j] = min(min(i, j), 9 - max(i, j));
/*...
*/
return 0;
}
>>107 //kadai6
for(int i = 0; i < 5; ++i) {
for(int j = i; j < 10 - i; ++j) {
a[i][j] = a[j][i] = a[9-i][j] = a[j][9-i] = i;
}}
//kadai8
for(int i = 0, k = 0; i < 5; ++i) {
for(int j = i; j < 10 - i; ++j) a[i][j] = k++;
for(int j = i + 1; j < 9 - i; ++j) a[j][9 - i] = k++;
for(int j = 9 - i; j > i; --j) a[9 - i][j] = k++;
for(int j = 9 - i; j > i; --j) a[j][i] = k++;
}
>>218 お前の自己紹介で間違ってなかったのかw
221 :
デフォルトの名無しさん :2010/07/20(火) 19:17:28
1] 授業単元: C言語プログラミング [2] 問題コード 秒数を与えると,それが何時間何分何秒にあたるかを計算する関数 void calctime(int sec, int *hp, int *mp, int *sp); を作れ.たとえば calctime(3725, &h, &m, &s); として呼び出すと h = 1, m = 2, s = 5 となる.但し,1時間2分5秒は3725秒である. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
>>221 #include <stdio.h>
void calctime(int sec, int *hp, int *mp, int *sp){
*sp=sec%60; *mp=sec/60; *hp=*mp/60; *mp%=60;
}
int main(){
int sec, h, m, s;
h=m=s=0;
sec = 3725;
calctime(sec, &h, &m, &s);
printf("%d時%d分%d秒\n",h,m,s);
}
223 :
デフォルトの名無しさん :2010/07/20(火) 19:42:22
[1] 授業単元:C++プログラミング [2] 問題文(含コード&リンク): 航空会社が持っている小型航空機(座席数:24)のフライトに座席を割り当てるシステムをプログラミングせよ。 この航空機の座席は中央に通路を挟み左右にそれぞれ2座席ずつの列が計6列ある。 座席は 1A, 1B, 1C, 1D, ..., 6A, 6B, 6C, 6D で表示され、 1, 2列目が喫煙区画で、 A, D が窓側、 B, C が通路側を示している。 プログラムはまず最初に次の選択メニューを表示する。 喫煙席を希望する方は 1 をタイプしてください。 禁煙席を希望する方は 2 をタイプしてください。 喫煙/禁煙の選択が終わると、 窓側か通路側かの選択を求める。 窓側を希望する方は 1 をタイプしてくださ。 通路側を希望する方は 2 をタイプしてください。 希望に沿える席がすべて予約済みで割り当てられない場合には、窓側又は通路側の希望については無視して割り当てる。 ただし, 「窓側(あるいは通路側)はすでに満席のため通路側(窓側)で予約します」というメッセージを出力し、 以下のように座席番号と喫煙席/禁煙席の区分が書かれた搭乗券を(この課題では画面上に)出力する。 -------- 2A 禁煙 --------
225 :
デフォルトの名無しさん :2010/07/20(火) 20:03:21
1] 授業単元: C言語プログラミング [2] 問題コード 三角形の3頂点の座標,(x1,y1),(x2,y2),(x3,y3)を読み込んで 3つの内角の角度θ1,θ2,θ3をdeg単位(°)で計算し,印字するプログラムを作成せよ. 但し,double型変数 θ1,θ2,θ3へのポインタ変数とdouble型変数 x1,y1,x2,y2,x3,y3を引数とする関数を作成し,main関数では同関数を呼び出すようにせよ[3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
それから、禁煙区画(あるいは喫煙区画)が窓側又は通路側ともに満席のときには喫煙区画(禁煙区画)でも良いかどうか乗客に尋ねなければならない。 乗客がOKすれば(窓側/通路側の希望はできるだけ尊重した上で)空いている座席を割り当て搭乗券を出力し、しなければ「3時間後に次のフライトがあります。」というメッセージを出力して終了する。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual Studio2008 [3.3] 言語:C++ [4] 期限:2010/07/26まで [5] その他の制限:なし どなたか親切な方…よろしくお願いします。
228 :
デフォルトの名無しさん :2010/07/20(火) 21:28:19
>>192 ですが、
勝つとモンスターのヒットポイント、アタックポイント、ガードポイントを
それぞれアップするという機能を追加して作っていただきたいのですが。
よろしくお願いします。
231 :
デフォルトの名無しさん :2010/07/20(火) 21:58:09
1] 授業単元: C言語プログラミング [2] 問題コード 人数nを読み込んだ後,n個のfloat型配列を動的に確保し,配列に身長のデータを読み込んでいき, 入力された身長を10cmごとにわけたヒストグラムを生成するプログラムを作成せよ. 但し,nの読み込みとn個の動的メモリ確保はmain関数内で行い,身長の読み込み及び,印字する部分は関数として作成せよ. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
いつの間に自己紹介スレになったんだ、ここは
234 :
デフォルトの名無しさん :2010/07/20(火) 22:17:08
何度も失礼します。
どなたか
>>46 おねがいします。
236 :
デフォルトの名無しさん :2010/07/20(火) 22:34:50
1] 授業単元: C言語プログラミング [2] 問題コード nを読み込み,n個のint型配列を動的に確保,n個の配列はn人の勇者とする.以下仕様に従ったプログラムを作成せよ. •それぞれの勇者にヒットポイントを与える. •敵のヒットポイントを与える. •乱数を発生し,誰の攻撃かを決定する. •攻撃をする際に,会心の一撃,普通の攻撃,ミスを乱数で決定する. •相手に与えるダメージを乱数で決定する. •敵の攻撃の場合,何人にどれだけ攻撃をするかを乱数で決定する. •敵のヒットポイントが無くなるか,勇者が全滅したら終了とする [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
239 :
デフォルトの名無しさん :2010/07/20(火) 22:52:39
>>239 >>228 の付加条件では、
> 2.構造体のメンバ変数を1つ以上増やすこと。
を満たせないと思うが。
>>239 「勝つと」という条件だけではなぁ。
そもそもゲームの中身が分からない件。
>>241 いや、多分関数が用意できれば良くて、
それを呼び出す(戦闘を行って勝つ)必要はないような気がする。
>>239 http://codepad.org/XhStFj1R 1.関数を新たに1つ作成すること
IsRunAway()を追加。
逃走可能かどうかを調べる関数。
モンスターのスピードポイントが、プレイヤーのスピードポイントを上回れば、逃走可能。
2.構造体のメンバ変数を1つ以上増やすこと。
int sp; //スピードポイント(※追加)
素早さを表すスピードポイントを追加。
>>228 とは違うけど、こんな感じ?
244 :
デフォルトの名無しさん :2010/07/20(火) 23:21:30
>>243 さん、ありがとうございます。
条件はなんでも良かったので助かりました。
他の方も返答いただきありがとうございました。
それにしても、皆さん作るのが速くてうらやましいです。
245 :
デフォルトの名無しさん :2010/07/21(水) 00:03:22
246 :
107 :2010/07/21(水) 00:05:27
249 :
248 :2010/07/21(水) 09:15:52
すいません正しくは d^2x/dt^2=-x/√(x^2+y^2)^3 d^2y/dt^2=-y/√(x^2+y^2)^3 です。訂正しなくてもわかると思いマスが・・・
250 :
デフォルトの名無しさん :2010/07/21(水) 10:47:19
208のをfgetcを使ったプログラムをお願いします。
251 :
デフォルトの名無しさん :2010/07/21(水) 10:57:16
1] 授業単元: C言語プログラミング [2] 問題コード nを読み込み,n個のint型配列を動的に確保し, n回サイコロを振った結果をその配列に格納せよ. その後,偶数が出た回数と奇数が出た回数,1から6までの出た目の確率を表示せよ.但し,nの読み込みとn個の動的メモリ確保はmain関数内で行い,サイコロの配列読み込み部分と計算の部分,表示の部分はそれぞれ関数として作成せよ. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
>>250 >>207-208 のfgetsを_fgetsに置き換えたりするのは…駄目?
char *_fgets(char *cs, int n, FILE *f){
int c;
char *p;
for (p = cs; --n > 0 && (c = getc(f)) != EOF; ) if ((*p++ = c) == '\n') break;
*p = '\0';
return (c == EOF && p == cs) ? NULL : cs;
}
上記_fgetsはK&Rのものをパクりました。あと、エラー処理も、
if (argc < 2) {
fprintf(stderr, "%s: no input files\n", argv[0]);
exit(EXIT_FAILURE);
}
if (!(f = fopen(argv[1], "r"))) {
fprintf(stderr, "%s: cannot read %s\n", argv[0], argv[1]);
exit(EXIT_FAILURE);
}
こうしたほうがちょとだけマシ。
253 :
デフォルトの名無しさん :2010/07/21(水) 11:59:44
>>46 です。
>>237 ありがとうございます。
Aの課題の、キュー(先入れ先出し方式のデータ構造)のプログラムもお願いします。
255 :
デフォルトの名無しさん :2010/07/21(水) 12:33:19
1] 授業単元: C言語プログラミング [2] 問題コード この問題が良く分かりません。すいませんがよろしくお願いします。 問題 以下のプログラムは正しくない.どのように正しくないか.このプログラムをコンパイルするとエラーメッセージは表示されるか.実行するとどのようになるか結果を考察せよ. 【プログラム(bad2.c)】 #include <stdio.h> void func(double *p) { *p = 13; } int main(void) { int d = 12; func(&d); printf("%d\n", d); return 0; } [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
256 :
デフォルトの名無しさん :2010/07/21(水) 12:56:28
1] 授業単元: C言語プログラミング [2] 問題コード n個の実数(double型)を配列に読み込んだ後,配列を指すポインタを用いて,最大値と最小値を探索するプログラムを作成せよ.また,入力した値の平均値もポインタ変数を用いて計算せよ. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
>>255 絞殺してみた。
問題点
void func(double *p) < 引数はdouble型のポインタ
main 関数の中
int d = 12; < dはint型の変数
func(&d); < アドレスを渡しているのは問題ないが、dの変数がint型なので不適切
変数の型が一致しない点が問題。
結果はコンパイル、実行して確認すれば分かる。
258 :
デフォルトの名無しさん :2010/07/21(水) 15:45:05
[1] 授業単元: 情報処理(C言語) [2] 問題文:1+2+3+4+5+6…というように足していき、 その累計がはじめて一万を超える時の値を求めるプログラムを作成せよ。 [3] 環境 [3.1] OS:Windows xp 32bit [3.2] コンパイラ名:visual studio 学校のパソコンなのでバージョンはわかりません。 [3.3] 言語:C言語 [4] 期限: 2010年7月26日(月)まで 条件は特にありません ちなみに 「ヒント:for文、あるいはwhile文を使うと簡単」と書いてありました。 回答、よろしくお願いします。
> 「ヒント:for文、あるいはwhile文を使うと簡単」と書いてありました。 エェ〜〜等差数列の和の公式を用いる方が効率が良いYO!
260 :
258 :2010/07/21(水) 16:03:21
すみません、等差数列とは何ですか?
#include <stdio.h> int main() { int i, s=0; for(i=1;s<=10000;i++) s+=i; printf("%d", s); return 0; }
262 :
260 :2010/07/21(水) 16:24:59
ありがとうございます。 明日学校で早速コンパイルしようと思います。
>>260 ちょっwwww 高校の数学レベルwwww
265 :
261 :2010/07/21(水) 16:36:42
>>264 (s>10000)の逆が真である限り足し続けるのではないでしょうか
266 :
デフォルトの名無しさん :2010/07/21(水) 17:03:02
1] 授業単元: C言語プログラミング [2] 問題コード n個の実数(double型)を配列に読み込んだ後,配列を指すポインタを用いて,最大値と最小値を探索するプログラムを作成せよ.また,入力した値の平均値もポインタ変数を用いて計算せよ. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月21日 [5] その他の制限: とくにありません
267 :
デフォルトの名無しさん :2010/07/21(水) 17:07:52
>>259 乗算使う和の公式が、単純に加算してくやり方より効率よくなるなんてことはないと思うが。
ためしにちょっとコード書いてみてくれ。
期限7月21日ってもう間に合わなくね
なんか質問者と回答の半分くらいのホストが一緒なんだけど自作自演ってことでよろしいか?
>>269 よろしいよ。
つうかこのスレは質問をするか回答をするかのどっちかなのに
一人で両方するとか意味のわからん人だな
>>187 Shape::Shape(int n, double l) : n(n), l(l) {}
double Shape::hen() { return n * l; }
class Rectangle : public Shape
{
public:
Rectangle(int n, double l ) : Shape(n, l) {}
virtual double menseki(){ return l * l; }
};
亀だが、こうしろってことじゃなかったのかなぁ。
>>269 やけに活気があると思ったら、そういうことか。
[1] 授業単元:プログラミングT [2] 問題文(含コード&リンク):以下に示す2つのプログラムを作成せよ 1)文字配列の文字列の順序を逆にする関数toReverseを作成せよ。 また、関数toReverseを用いて入力した文字列の順序を逆にした 文字列を表示するプログラムを作成せよ。 void toReverse(char[]); とする 実行例:abcde edcba 2)文字配列の文字列に含まれる小文字を大文字にする関数toUpperを作成し、 入力した文字列の小文字を大文字に変換して表示するプログラムを作成せよ。 実行例:This is a pen. THIS IS A PEN. [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限:[2010年07月22日18:00まで] [5] その他の制限:問題文中に指定されている関数を使用してください。 よろしくお願いします。
276 :
273 :2010/07/21(水) 19:38:47
277 :
デフォルトの名無しさん :2010/07/21(水) 19:43:59
[1] 授業単元:画像処理 [2] 問題文(含コード&リンク):画像から画素値を読み込み2値化してコマンドライン上に0or1のみで出力 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Borland C++ [4] 期限:[明日AM9時] [5] その他の制限:画素の抽出手順がイマイチ分からないので、そこを分かりやすくお願いします 私が考えた手順 1.画像ファイルを開ける 2.fgetc(file名)!= EOFの間、2次元配列にfgetc(file名)を代入 3.適当な基準(閾値)で0と1に分けて出力 例えば、左上から斜め下に直線を引いた5x5pixの画像なら、 10000 01000 00100 00010 00001 と出力させたいのですが、私の作ったものだと直線になってくれません。よろしくお願いします。
278 :
277 :2010/07/21(水) 19:45:11
追記すみません。使用言語はCです。
>>269 前にも同じようなことがありましたねえ‥‥‥。
難度が高くて未回答の問題が繰り返しポストされていたんです。
なんだかおんなじような反応ですね。
>>267 #include <math.h>
#include <stdio.h>
int main(void)
{
int a = 10000;
int n = (int)((-1 + sqrt(1+8*a)) / 2 + 1);
printf("%d", n);
return 0;
}
>>271 ん、私も基底クラス側で基底クラスのメンバ変数を初期化するもの、と最初は思っていたのですが、
要望としては、派生クラス側でメンバ変数を初期化したかったみたいです。
だから、派生クラスのコンストラクタで基底クラスのメンバ変数を初期化するしかない、と考えました。
いや、まあ、あの、なんというか、public な基底クラスを public で継承すれば、そういうことも可能ではあるのですけれども。
>>281 派生クラスでメンバ変数を初期化したいという要望なんてないよ。
あるのは、
>>175 での「問題箇所」以外の部分を変更して欲しくないという要望だけ。
それで、題意を満たすためには、
もともと実装されていないShapeクラスのメソッドを実装することと、
派生クラスの記述をすれば十分でしょう、ということなんだけど。
>>283 なるほど、そういうことですか。
でも、最初は
>>178 で基底クラスのコンストラクタをあらためて記述したんですが、
>>184 で基底クラスに加筆するな、ていわれてしまったので、
コンストラクタを含む基底クラスの一切を変更せずに
>>187 で派生クラスにのみ手を加えることにしました。
必然的に、派生クラスのコンストラクタで基底クラスのメンバ変数を初期化することになったんです。
C言語で以下の機能をもつプログラムを作りなさい @12ヶ月分の平均気温が入力できる A入力された月ごとの気温の小数点以下は四捨五入し、その数だけ横に*を並べていくことで気温の推移を視覚化できる B年間平均気温、最高気温、最低気温を計算し、出力できる C言語自体さっぱりわかりません どなたかよろしくお願いします。
さっぱり分らんなら、単位はすっぱりあきらめろ。
とすればいいのでは?と言っているよ。
>>187 は「コンストラクタを含む基底クラスの一切を変更せず」を満たしていないよ。
既存のコンストラクタを削除した上でデフォルトコンストラクタを追加しているよね。
それに対し、
>>271 は加筆を行う場所以外のコードを一切変更していないよ。
というかそこが本題なんだけど。。
>>286 そうもいかないのでどうかひとつ;;
#include <stdio.h>
int main(void)
{
double t[12]; /*12ヶ月間の月平均気温*/
double max,min; /*最高気温、最低気温*/
double kei=0; /*12ヶ月気温合計*/
double te; /*月平均気温*/
int tz; /*月平均気温+0.5後切り捨て*/
int a,b,c; /*記号*/
/*入力*/
for(a=0;a<12;a++){
printf("%2d月の平均気温は(℃)",a+1);
scanf ("%lf",t[a]);
}
/*計算:最高、最低気温*/
max = t[0];
min = t[0];
if (t[a]<t[0])
max = t[0]
if (t[a]>t[0]
min = t[0]
for(i=0;i<12;i++){
te = t[a];
tz = (int)(te+0.5); /*四捨五入*/
printf("%2d月 %2d度 |",a+1,tz);
for(b=0;b<tz;b++){ /* *グラフ出力*/
printf("*");
289 :
287 :2010/07/21(水) 20:48:48
ごめん、下書きが残ってた。1行目は無視してくだされ。
安価もつけ忘れてた。
>>284 宛てです。
} printf("\n"); kei = kei + t[a] /*12ヶ月の気温合計*/ } /*年間平均気温、最高気温、最低気温出力*/ printf("年間平均気温:%3.2f\n",kei/12); printf("年間最高気温:%3.2f\n",max); printf("年間最低気温:%3.2f\n",min); return 0; } 見よう見まねで作っては見たのですがさっぱりです とうかコンパイルの仕方もわかりません!助けてください!
カレンダー算出の課題はないの?
CodePadが重い・・・。回答できないぽ。
>>291 失礼いたしました。改めてお願いします。
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):C言語で以下の機能をもつプログラムを作りなさい
@12ヶ月分の平均気温が入力できる
A入力された月ごとの気温の小数点以下は四捨五入し、その数だけ横に*を並べていくことで気温の推移を視覚化できる
B年間平均気温、最高気温、最低気温を計算し、出力できる
[3] 環境
[3.1] OS: Window
[3.2] コンパイラ名とバージョン: gcc ver不明
[3.3] 言語: C
[4] 期限: ([2010年07月22日16:00まで]
[5] その他の制限: 初修のクラスです。制限は特になないとは思います。
どうかよろしくお願いします。
>>295 structはノーパディングになるのか?
素直にwindows.hをインクルードしたほうが良いんじゃないか
>>287 あらためて問題をみなおしてみると、私のコード
>>187 は基底クラスに空っぽのコンストラクタを書きくわえているので、
ご指摘のとおり、一切変更しない、という課題は満たしていませんでした。
>>175 は、基底クラス
Shape(double, int);
とコンストラクタを書いていないので、派生クラス側でどのように記述しようとも、
派生クラスのコンストラクタが基底クラスのコンストラクタをよびだせないですね。
Shape(double, int) {};
と基底クラスのコンストラクタを(どんなものであれ)書かなくてはいけないようですね。
その上で、派生クラスのコンストラクタを
Rectangle(int n, double l ) : Shape(n, l) { this->n = n; this->l = l; }
などと書き、派生クラスのコンストラクタで基底クラスのメンバ変数を初期化することは問題ないですよね。
最低限の変更ですますのなら、
・Shape::Shape(int, double) に、からっぽにせよコンストラクタを陽に記述する。
・Rectangle::Rectangle() は削除する。
・Rectangle::Rectangle(int, double) に必要なコンストラクタ(n, l で初期化する)を書き、かつ、Shape::Shape(int, double) を呼び出すように陽に記述する。
でいいようですね。
http://codepad.org/Ow5igEu3 >>271 も基底クラスのコンストラクタに空っぽのコードにせよ、かいていますよね。
299 :
デフォルトの名無しさん :2010/07/21(水) 22:02:00
どなたか
>>46 のAの問題を解いていただけないでしょうか。
>>297 パディングめっさ入ってる。
だからデータを塊で読むんじゃなくて、個別に読み込んじゃった。
まー確かに、Windows.h使った方が断然いいと思う。申し訳ない。
わからんひとだなぁ。
それだと、
class Shape {
};
の中を変更してるでしょ。
ここを変えてくれるな、と出題者は言ってるわけで。
だから外に定義を書こうと言ってるんだよ。
>
>>271 も基底クラスのコンストラクタに空っぽのコードにせよ、かいていますよね。
空っぽじゃないよ。
純粋仮想関数が含まれるクラスに、非仮想関数があって、
それを派生クラスで再定義していることについて違和感はないの?
提供されているクラスにツッコミどころはたくさんあるけど、
そのコードが持っている意図をくみ取ってあげようよ。
学生向けにわざとずれた回答を用意してるわけじゃないよね?
C++に慣れてないとか?
>>301 いやたしかにc++1には慣れていないと思います。失礼いたしました。
305 :
303 :2010/07/21(水) 22:43:54
typoです。s/c++1/c++/g
>>306 >>303 =
>>305 = >◆QZaw55cn4c です。
あらためて。
C++ には慣れておらず、頓珍漢なことを言っていたと思います。お付き合いくださり、またソース提供も、ありがとうございます。
♠ ♦ ♥ ♣
トリ付けたり外したりするのはなんか理由があるの?
>>309 基本的には、トリップはいらないのですが、宿題の回答に対してはトリップをつけます。
宿題出題者とのコミュニケーションを円滑にするためです。
宿題回答以外でもトリップをつけているときがあれば、それは単にはずし忘れです。
あとトリップをつけていると、ありがたい指摘をいただきやすい、ということもあります。
なりすましと勘違いされないようにずっと酉つけておいた方がよいような。 せっかく回答してんのにもったいないねー 酉の付け外し(ID無し板での自演用?)がクセになってるのかと思っちゃうよ。
そうかそうか、そんなに麻呂のクソミソースを見たいでおじゃるか? お尻を出して準備しているでおじゃるから、早く課題を出すでおじゃる
[1] 授業単元: 情報処理(C言語) [2] 問題文:幅wと高さhを入力し、次のような長方形を 表示するプログラムを作成せよ。 w=7 h=5 ******* *_____* *_____* *_____* ******* _はスペースです。この掲示板だとずれるのでこのように表記しました。 条件として、この処理には繰り返し処理を用いてつくること。 [3] 環境 [3.1] OS:Windows xp 32bit [3.2] コンパイラ名:visual studio 学校のパソコンなのでバージョンはわかりません。 [3.3] 言語:C言語 [4] 期限: 2010年7月26日(月)まで 条件は上に書いたとおり、繰り返し処理を用いてつくるのが条件だそうです。 回答、よろしくお願いします。
>>314 #include <stdio.h>
int main(void) {
int i, j, w, h;
printf("w=");
if (scanf("%d", &w) != 1) {
return 0;
}
printf("h=");
if (scanf("%d", &h) != 1) {
return 0;
}
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
if (i == 0 || i == h - 1 || j == 0 || j == w - 1) {
putchar('*');
} else {
putchar('_');
}
}
putchar('\n');
}
return 0;
}
316 :
314 :2010/07/22(木) 05:07:28
>>315 ありがとうございます!!
それにしても作るの早いですね。
318 :
デフォルトの名無しさん :2010/07/22(木) 13:14:10
1] 授業単元: C言語プログラミング [2] 問題コード キーボードから入力した文字列をファイルに書き出すプログラムを作成せよ. 【実行例】 % ./a.out Ikuno Soichiro Hello World! ^D % cat hoge.txt Ikuno Soichiro Hello World! [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語: C [4] 期限: 7月23日 [5] その他の制限: とくにありません
C++の多態性ってなんのこと? 教えてエロイ人
>>318 #include <stdio.h>
int main(int argc, char* argv[])
{
char input[128];
FILE* fp;
if ((fp = fopen("hoge.txt", "w")) == NULL) return 0;
while (fgets(input, sizeof (input), stdin) != NULL)
fputs(input, fp);
fclose(fp);
return 0;
}
>>317 数年も前にも出た似たような課題を今更解く気になれんし。
お前が回答しているから偉そうにしているんだろうけど、あまりにも
お前のソースが酷くて、クソース未満で話にならん。
>>318 #include <stdio.h>
int main(void) {
char ch; FILE* fp;
if ( (fp = fopen("hoge.txt", "w")) == NULL ) return 1;
while ( (ch=getchar()) != EOF ) fputc(ch, fp);
fclose(fp);
return 0;
}
[1] 授業単元: 情報処理(C言語) [2] 問題文:入力した整数を因数分解してその値を全て表示するプログラムを作成せよ。 ただし、入力した整数が2未満の場合は「2以上の整数を入力してください。」と表示させること。 例:整数値42を入力→表示2 3 7 整数値340を入力→表示2 2 5 17 [3] 環境 [3.1] OS:Windows xp 32bit [3.2] コンパイラ名:visual studio バージョン:不明 [3.3] 言語:C言語 [4] 期限: 明日(2010年7月23日(金))まで [5]条件:特にありません。 よろしくお願いします。
>>321 書かないくせに他人のソースと比べることができるのでしょうかね。
なんだったらひとつ書いて御覧なさい?書けるのかな?書けないでしょうけど。
328 :
324 :2010/07/22(木) 18:40:40
329 :
デフォルトの名無しさん :2010/07/22(木) 19:09:44
>>325 しつけぇ、きめぇんだ、他人とじゃれ合う場所じゃねぇ、答える気がないなら失せろ
331 :
デフォルトの名無しさん :2010/07/22(木) 19:12:38
よっぽど麻呂に実力負けして悔しかったんだなw こんな2ちゃんなんて便所の落書きに煩悩するって 日ごろ、現実世界で惨めな生活をしているんだろうねw
332 :
デフォルトの名無しさん :2010/07/22(木) 19:21:54
◆QZaw55cn4c もそうだが、このスレの上から目線の回答者って ものすごく陰険だよな。思想が閉鎖的。お前らが知っていることを 知っている人なんて、この世に何人もいるんだが?お前らは自分未満の 人間を相手にしているから、自分が偉いと思い込んでいるだけだろ? いつか死ぬ人間だから、せいぜい狭い世界でお山の大将でもやってなさい。 この世は金を稼いだ者勝ちですよw 分かりきった答えのコードを書いても、収入なんて上がりましぇ〜ん どこの専門学校、大学の講師か知らんがw
333 :
デフォルトの名無しさん :2010/07/22(木) 19:22:04
[1] 授業単元: 情報基礎
[2] 問題文(含コード&リンク):
http://codepad.org/FIMXj8NN 文字列中の文字の出現数を数えて表示するプログラム(count-char.c)*上のリンク*を完成しなさい
ただしすべての文字の出現回数を表示すること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7月26日13:00まで
[5] その他の制限:
char型の配列 text を定義し,二重引用符を使った文字列で初期化しています.
また使用する関数は make_histogram となっていますが、お好みで変えていただいて
かまいません。
お手数ですが、どなたかよろしくお願いします。
334 :
デフォルトの名無しさん :2010/07/22(木) 20:22:58
[1] 授業単元: 情報(C++) [2] 問題文:2つの値 x と y の差を(非負の整数として)返す関数形式マクロ diff(x, y) を定義し, main関数で 4つの整数 a, b, c, d をキーボードから読み込み, diff(a, b) * diff(c, d) を出力するようなプログラムを作成せよ。 また, 出力結果が正しいことを確認するため, 関数として diff2(x, y) も作成し, 結果が同じになることを同じソースコード内で確認できるようにしなさい。 ここまで作りました↓ #define diff(x, y) (diff((a), (b)) * diff((c), (d)) #include <stdio.h> int main(void) { int a,b,c,d=0; printf("整数aを入力してください:"); scanf("%d",&a); printf("整数bを入力してください:"); scanf("%d",&b); printf("整数cを入力してください:"); scanf("%d",&c); printf("整数dを入力してください:"); scanf("%d",&d); printf("%d",diff(x,y)); return 0; } [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名:visual studio 2008 [3.3] 言語:C++ [4] 期限: 明日(2010年7月23日(金))まで [5]条件:特にありません。 よろしくお願いします。
>>331 書かない人に買ったか負けたかなんて、分かりっこないのですが。
そもそも勝った負けたの話じゃないと思うのですが?
>>332 お、でましたでました、とりあえず 3 行にまとめてください。
>>338 #define diff(x, y) (((x)<(y))?(y)-(x):(x)-(y))
では?
>>339 /* 大文字と小文字は区別しない */ の処理が必要では?
342 :
デフォルトの名無しさん :2010/07/22(木) 21:16:14
>>335 さん
>>339 さん
どちらも素早い回答ありがとうございました。
それぞれの長所を取り入れてつくっていきたいと思います。
質問者も回答者も一緒に成長していけばエエやん。
回答してもらうだけで成長できたら苦労ないわw
347 :
デフォルトの名無しさん :2010/07/23(金) 02:36:13
確かにバグ確認しました。(Vine Linux5.0) 再レスありがとうございます。 参考にさせていただきます。
[1] 授業単元: 情報処理(C言語) [2] 問題文:関数y=-X二乗+2X+5におけるXとYの対応表を出力するプログラムを作成せよ。 ただし(-2<= X <=4)の範囲でXの値が整数の出力すること。 縦方向、横方向2パターン作成せよ。 縦方向の表示結果の例 X | Y ---+--- -2 |-3 -1 | 2 0 | 5 1 | 6 2 | 5 3 | 2 4 |-3 横方向の表示結果の例 X| -2 -1 0 1 2 3 4 --+--------------------- Y| -3 2 5 6 5 2 -3 [3] 環境 [3.1] OS:Windows xp 32bit [3.2] コンパイラ名:visual studio バージョン:不明 [3.3] 言語:C言語 [4] 期限: 7月26日(金)まで [5]条件:%3dなどを使って数字のピッチをそろえること。
349 :
348 :2010/07/23(金) 07:38:30
間違えました。 >[4] 期限: 7月26日(金)まで ではなくて 7月26日(月)まで です。
かぶったサーセン\(^o^)/
353 :
デフォルトの名無しさん :2010/07/23(金) 11:16:03
intの二乗にpow()使うなよw
いやまあなんとなく気分でw
358 :
デフォルトの名無しさん :2010/07/23(金) 17:17:17
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):入力ファイルと出力ファイル名をコマンドラインから入力してコピーするプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows(学校ではlinux) [3.2] コンパイラ名とバージョン:Visual Studio2008(学校ではemacs) [3.3] 言語: C++ [4] 期限: 2010/07/25 [5] その他の制限: コマンドライン引数の引き渡しとかその辺りの単元です。あと出力はcout、入力はcinでお願いします
>>358 >入力ファイルと出力ファイル名をコマンドラインから入力してコピーするプログラムを作成せよ。
入力ファイルの内容を複製したものを出力ファイル名でファイルセーブしろってこと?
>>332 書けない人にいわれても説得力がないですよ。
あと現在の大学には講師はなかったはず。
>>357 >//クラスで関数が違うので注意
f(x)を教えてください。
>>361 28日の授業内演習なのでまだわからないです…、すいません。
363 :
デフォルトの名無しさん :2010/07/23(金) 18:46:59
>>360 雑魚うぜぇ。口よりコードで勝負しろ、ボケ
364 :
デフォルトの名無しさん :2010/07/23(金) 18:47:01
365 :
デフォルトの名無しさん :2010/07/23(金) 18:47:42
◆QZaw55cn4c を擁護している奴は本人くらいだろ。自作自演うぜぇ。 ここはお前のオナニースレじゃねーんだよ
宿題スレで煽りあってんじゃねぇよ・・・それこそチラシの裏にしろよ・・・
>>366 基地外に
>それこそチラシの裏にしろよ・・・
は不可能。だから基地外
>>357 http://codepad.org/9SSx5X9j シンプソンのなんちゃらをよく知らんケドやってみた。
(4)はようわからん。とりあえずそのまま値を返したケドきっと違う。
学生番号と、名前のdefineを入れるのを忘れずに。
(1)が今のままだと0除算になるけど、いいのかわからん。
正直、何でこんな不安な状態で回答してんの俺?
って感じ。
他に頭いい人、頼んだ。
369 :
デフォルトの名無しさん :2010/07/23(金) 19:43:24
分かりきった答えのある課題のコードを書いたくらいで ホルホルしているようじゃたかが知れてる
>>358 #include <iostream>
#include <fstream>
int main(int argc, char *argv[])
{
std::ifstream ifs( argv[1] ); // 第一引数を入力ファイルストリームでOpen
std::ofstream ofs( argv[2] ); // 第二引数を出力ファイルストリームでOpen
char buf[512]={0};
while( ifs.getline(buf, sizeof(buf)) )
{
ofs << buf << std::endl;
std::cout << buf << std::endl; // 確認用
}
ifs.close();
ofs.close();
return 0;
}
全角スペース使ったから、そのままコピペしたらダメじゃんOre
>>369 ごめん。
間違ってたら指摘してくれ。
ゼロ除算はやっぱりおかしい?
373 :
デフォルトの名無しさん :2010/07/23(金) 20:19:59
毎年似たような課題が出て、それに答えて ホルホルホルホル・・・
375 :
374 :2010/07/23(金) 20:23:29
ファイルサイズ大きくてもって意味おかしいがスルーたのむ
376 :
358 :2010/07/23(金) 20:58:40
ごめんなさい。いい忘れてしまいました using namespace std;というのをどこかに入れてもらえませんか
378 :
358 :2010/07/23(金) 21:18:34
ほんとうにごめんなさい。何度もごめんなさい。 なるべく簡単にしてください。お願いします
>>378 #include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char cmd[512];
sprintf(cmd, "cp -p %s %s", argv[1], argv[2]);
system(cmd);
}
こんな方法あるのかw驚いた
>>379 逆に高度杉だろwwwおいwww
でも勉強になった。確かに、そういうのもアリか。
> [3.1] OS: Windows(学校ではlinux) 仕様を満たしていないから落第。
383 :
デフォルトの名無しさん :2010/07/23(金) 22:25:40
>>382 じゃあ、学校で出たもの何でlinuxという事でおねがいします
家で確認できないだけで、提出先の環境では動くからおkだろw
385 :
デフォルトの名無しさん :2010/07/23(金) 22:35:27
>>384 ありがとうございました。では、今度学校で確認しますが、どれを使っても動くという事でしょうか?
386 :
デフォルトの名無しさん :2010/07/23(金) 22:43:43
団子必死だなw
課題の趣旨からすれば「不可」。良くて「可」。 OSの判別を工夫するとかひねってあって、ユーモアの通じる教官なら「良」くらいつけてくれるかも。
388 :
デフォルトの名無しさん :2010/07/23(金) 23:05:46
>>387 では、どの方のが一番課題の趣旨的に一番いいんでしょうか?
389 :
デフォルトの名無しさん :2010/07/23(金) 23:10:34
>>1 > 気に入らない質問やその他の発言はスルーの方向で。
これすら読めない、守れないバカが何かほざいてますね?
391 :
デフォルトの名無しさん :2010/07/23(金) 23:27:03
>>390 そうなんですか。ありがとうございました。
392 :
デフォルトの名無しさん :2010/07/23(金) 23:28:09
>>390 あ、これって、そのままコンパイルしてできますか?
もしかして、なんか用意するファイルとかって必要ですか?
393 :
デフォルトの名無しさん :2010/07/23(金) 23:32:43
[2] 問題文(含コード&リンク): ある差分方程式を、初期値から順々に予測していくプログラムを作ったのですが、 それぞれの本当の値と予測した値の差を誤差としたとき、その誤差をフーリエ変換することによって、 発生する誤差に周期が存在するかを確認するプログラムを作りたいです。 条件としては、もともとファイル(ex. log.data)に誤差の値を入れておいて、それをプログラム内で 参照するようなものが望ましいです。 簡単にたとえるなら誤差データ(log.data)が以下のような場合に 2.0 0.0 1.0 -2.0 2.0 0.0 1.0 -2.0 2.0 0.0 1.0 -2.0 フーリエ変換した結果をgnuplotなどで表示した際に周期が4のところにスペクトルが出るようなものを 作りたいです。 [3] 環境 [3.1] OS:Mac OS 10.6.4 [3.2] gcc [3.3] 言語:C [4] 期限:[2010年07月27日23:00まで] [5] その他の制限:標準ライブラリは使わないでいただけるとありがたいです
>>393 標準ライブラリをなるべく使わないようにって。。
・他のライブラリを使うことで、標準ライブラリを直接使うことを避ける
・むしろ他のライブラリもなし
どっちの方向に進めばよいんだ?
>>393 できる限りシステムコールで実装しろ、って事?
397 :
393 :2010/07/23(金) 23:57:51
>>395 ,396
すみません。標準ライブラリの意味を勘違いしていました。
なるべく簡単な方法でという意味で書かせていただきました。
なので標準ライブラリは使用して大丈夫です。
[1] 授業単元:OS [2] 問題文(含コード&リンク):サーバクライアント通信をFIFOで作る – 一つのサーバプロセスが, • FIFOを作る. • データを待つ. • SIGINTを受信したら,FIFOを削除してから終了する. – 複数のクライアントプロセスが,サーバにリクエストを送る. – 文字列を送るクライアントプロセスが複数(forkすればおk). – サーバプロセスは単に表示する [3] 環境 [3.1] OS:UNIX [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:2010年7月24日18:00まで [5] その他の制限:FIFOとシグナルを利用 0からですがよろしくお願いします・・・
399 :
デフォルトの名無しさん :2010/07/24(土) 00:53:22
だってまだカレンダー出力の課題が出てないじゃーーん
400 :
デフォルトの名無しさん :2010/07/24(土) 01:20:51
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):モンテカルロシミュレータにより円周率の計算をするプログラムを作成せよ [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン:emacs [3.3] 言語: C++ [4] 期限: 2010/07/26 [5] その他の制限: randというのを使ってました。乱数とかその辺りの単元です。あと出力はcout、入力はcinでお願いします。あとなるべく簡単にしてください。
401 :
400 :2010/07/24(土) 01:27:55
書き忘れてしまいました #include <ctime> #include <cstdlib> srand(time(NULL)); という風に始まるっぽいんです。
>>400 #include <iostream>
#include <ctime>
#include <cstdlib>
int main()
{
double x, y, pai;
int i, n, in = 0;
std::srand(std::time(0));
std::cout << "繰り返し回数 N = ";
std::cin >> n;
for (i = 0; i < n; i++) {
x = std::rand() / (RAND_MAX + 0.1);
y = std::rand() / (RAND_MAX + 0.1);
if (x * x + y * y <= 1.0)
in++;
}
pai = 4.0 * in / n;
std::cout << "繰り返し回数 N = " << n << '\n';
std::cout << "モンテカルロ法によるπ = " << pai << std::endl;
}
403 :
400 :2010/07/24(土) 02:02:09
using namespace std; っていうのも最初に入れられたら入れてもらえますか?
>>403 #include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
double x, y, pai;
int i, n, in = 0;
srand(time(NULL));
cout << "繰り返し回数 N = ";
cin >> n;
for (i = 0; i < n; i++) {
x = rand() / (RAND_MAX + 0.1);
y = rand() / (RAND_MAX + 0.1);
if (x * x + y * y <= 1.0)
in++;
}
pai = 4.0 * in / n;
cout << "繰り返し回数 N = " << n << '\n';
cout << "モンテカルロ法によるπ = " << pai << endl;
}
>>404 > x = rand() / (RAND_MAX + 0.1);
> y = rand() / (RAND_MAX + 0.1);
x = (double) rand() / RAND_MAX;
y = (double) rand() / RAND_MAX;
の方がお勧め。
407 :
デフォルトの名無しさん :2010/07/24(土) 14:54:24
[1] 授業単元:プログラミング [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual Studio2008 [3.3] 言語: C++ [4] 期限: 2010/07/27 [5] その他の制限:なし
408 :
デフォルトの名無しさん :2010/07/24(土) 14:57:34
[2] 問題文(含コード&リンク):自動座席予約システムの作成せよ。 その航空会社が持っている小型航空機(座席数:24)のフライトに座席を割り当てるシステムをプログラミングしなければならない。 この航空機の座席は中央に通路を挟み左右にそれぞれ2座席ずつの列が計6列ある。 座席は 1A, 1B, 1C, 1D, ..., 6A, 6B, 6C, 6D で表示され, 1, 2列目が喫煙区画で, A, D が窓側, B, C が通路側を示している。 このプログラムはまず最初に次の選択メニューを表示する。 喫煙席を希望する方は ● をタイプしてください. 禁煙席を希望する方は × をタイプしてください. 喫煙/禁煙の選択が終わると, 窓側か通路側かの選択を求める。 窓側を希望する方は ! をタイプしてください. 通路側を希望する方は # をタイプしてください. もし希望に沿える席がすべて予約済みで割り当てられないときには, 窓側/通路側の希望については無視して割り当てる。 ただし, 「窓側(あるいは通路側)はすでに満席のため通路側(窓側)で予約します」というメッセージを出力し, 以下の ように座席番号と喫煙席/禁煙席の区分が書かれた搭乗券を(この課題では画面上に)出力する。 -------- 4A 禁煙 -------- また, 禁煙区画(あるいは喫煙区画)が窓側/通路側ともに満席のときには喫煙区画(禁煙区画)でも良いかどうか乗客に尋ねなければならない。 乗客がOKすれば(窓側/通路側の希望はできるだけ尊重した上で)空いている座席を割り当て搭乗券を出力し, OKしなければ 「3時間後に次のフライトがあります.」というメッセージを出力して終了する。
双方向リストとカレンダー、こいやー!
[1] 授業単元:演習W [2] 問題文(含コード&リンク): 次の構造体をつかった線形リストを使用して以下に述べる仕様のプログラムを作成しなさい。 struct data { char *s struct data *next; }; @ データの線形リストへの追加 int add(struct data *l, char *s); 返り値:正常に追加できれば 0, malloc() が失敗したら 1. 引数 l: データを追加する線形リストへのポインタ. 引数 s: 追加するデータ ※l で指定した線形リストの末尾にひとつ struct data を追加し、それにデータ s をセットする。 data も data->s も malloc() で領域確保すること。 A データの線形リストからの取り出し int get(struct data *l, char *s); 返り値:正常にデータを取り出すことができれば 0, 線形リストが空であれば 1. 引数 l: データを取り出す線形リストへのポインタ. 引数 s: 線形リストの先頭のデータ(文字列へのポインタ) ※l で指定した線形リストの先頭にある struct data にある data->s を引数 s に取り出す。 線形リスト l の先頭の struct data は領域解放する。 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc4 [3.3] 言語:C [4] 期限: 7/26 23:00 [5] その他の制限:構造体と構造体のポインタまで習いました。 よろしくお願いいたします。
[1]プログラミング言語演習U
[2] データファイルから読みこんだデータを
年齢順にリストに格納するプログラムを作成しなさい
ttp://codepad.org/QWi25aKl [3] 環境
[3.1]Windows
[3.2] gcc
[3.3] C
[4]7月26日
お願いします
狙った様にしかも単方向、オマケに出題者と回答者のリモホが同じという報告で 自作自演がバレたあいつが麻呂を揺さぶろうと必死だなw
414 :
デフォルトの名無しさん :2010/07/24(土) 21:42:58
>>410 ありがとうございます。何度も投稿してすいません。。。
気がついてなかったんです。すいません!
416 :
400 :2010/07/25(日) 00:02:56
return 0; って }の前に入れた方がいいですか?
417 :
デフォルトの名無しさん :2010/07/25(日) 00:05:57
>>377 int main(int argc, char *argv[])ってint main(int argc, char* argv[])
でも同じですか?この2つは、charの右の部分の*の位置が少し違います。
int main : main 関数はint型の変数を返す return 0; といった感じで何かしら値を返すコードを入れること。 入れた場所でreturnしてしまうので、基本的に一番最後の行 main 関数の閉じ括弧の前で良いでしょう。
>>417 まったく一緒です。
信じられないならば、
int main(int argc, char * argv[])
と書いてみるといいでしょう。
「*」の前後どちらにも空白が入っています。
しかし、動作はそのどれもが同じでしょう。
>>417 書き方は昔の名残のこともあるが、意味は同じ。ただ、ISO、ANSI準拠の
標準スタイルでは int argc, char *argv[] とのこと。
麻呂の乗っているバイクは麻呂ーダー250でおじゃる。メーカーはスズキだが マイナーなモデルのため市場にもほとんど出回ってないでおじゃる。
C++規格に出てくるのは char* argv[] か char** argv みたいだけど その標準スタイルってどこで見れるの
ISO公式サイト
424 :
デフォルトの名無しさん :2010/07/25(日) 01:02:59
>>424 C++にはmain()のみreturn 0; は不要です
書かなければ自動的にmain()の最後に return 0; が挿入されます
Cはこうは行かないのでreturn 0; を明記する必要があります
コンパイラが自動的に解釈する : ○省略可 ×不要 必要に応じて自分が返したい値を指定しても良い。
っつか、何も一番最後にreturn 0;でなくても、例えば ある条件下で終了するような場合 if() return 1; といった場所でも return を使うことがある。あくまでも int main とした場合 その戻り値はint型であることも条件として含まれる。
だからそんな事は誰でも知ってるっつーの
430 :
デフォルトの名無しさん :2010/07/25(日) 02:25:31
アホです
>>425 それは MS のコンパイラだけの話では?
432 :
424 :2010/07/25(日) 02:54:12
じゃあ、return 0;は、とりあえず、省略可能って事ですか。入れるなら、cout << "モンテカルロ法によるπ = " << pai << endl; の下に書けばいいって事ですよね
[1] 授業単元:ビジュアルプログラミング [2] 問題文: -0.0001<x<10.0000、0.0<y<10.0000の範囲で ランダムに(x,y)の値を1000個発生させ. 散布図のグラフで表示するプログラムを作成せよ ヒント:WIN32API関数群についてよく調べること [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio2008 [3.3] 言語:C++ [4] 期限: 8月1日 よろしくお願いします
434 :
393 :2010/07/25(日) 09:26:45
>>431 言語仕様に明記されてるよ
CでもC99なら同じになる
438 :
デフォルトの名無しさん :2010/07/25(日) 11:52:33
>>427 しつけぇ、アホは屁理屈言っているお前だろ、うぜぇなぁ・・・ネット弁慶。
何か間違ったこと言ってる?ちゃんと言語の使用と
もう一度 int main から見直して理解しろ、ボケ
>>429 お前みたいな無知には言ってねーし、お前は理解してないだろ
二度と知ったかレスするな!
439 :
デフォルトの名無しさん :2010/07/25(日) 11:57:26
>>425 =
>>427 =
>>429 直接自分に対してのレスでもないのに、説明不足の自分の書き込みを無視されたせいか
突然話に割って入って自分は知ってる、当たり前だ!とか言い出す意味不明な基地外
お前の説明は全然なってない、自分の思い込み。原文を読んでからレスしろ。
不要となんて一言も書かれてませんが?
int mainでmain関数はint型の変数を返す関数であり、何も一番最後に
return 0;と書くことについての言及でもないんだが?
ある条件でプログラムを終了させる時にも、例えば
if() return 1; といった書き方もあり、return int型; が必ずしもプログラムの最後にしか
記述されないとは限らない。また return 0; を書いても問題ないどころか
書かなかった場合コンパイラが自動的に処理することについて説明されても
こっちも知ってるし当たり前だろ アホか ってなるわw
この手の話は数年前に既出なんだよ、最近の新参は今さら過ぎて馬鹿馬鹿しい。
何上から目線で顔真っ赤にして必死になってんの?w
440 :
デフォルトの名無しさん :2010/07/25(日) 11:59:23
>>427 =
>>429 間違ったこと書いてないなら良いだろ。
それについて理解していない奴に対して説明しているのに
何で知っているお前に対してしたレスでもないのに、ムキになってんの????
しかも、お前の説明は明らかにコンパイラが自動的に解釈することであって
警告文などを無視した勝手な振る舞いw
そんなんでプログラミングをやっていると、いつか致命的なミスを見落とすよ。
まぁお前みたいなのは、自動車の運転ではいつもやっている、通行している道で
事故は起こっていないから、合図や安全確認は不要と言っちゃっているおバカさんだと
気づいて下さいねw それがいつもと違った道では、事故に繋がるとw
なんでこのスレ早速夏休みモードになっちゃってんの?w
>>427 =
>>429 そろそろ自分の無知、知ったかをお詫びしたら?勉強不足の癖して
基本原則(日常生活で言うならその国の法律)すら見ずに、勝手に
その場で判断しちゃうのは危険ですよ?日本に生活していても
まだまだ自分が知らない法律、ルールってあるでしょ?
年を取ると、今まで生きてきたことが変な自身になっているのか
知らなくても勝手に思い込んで、間違っていても押し通すようになるからな・・・
確かに微妙な部分もあるが、省略可と不要は別物。今回はint mainでの引数など
ISO、ANSI準拠の話もあったが、そもそも0であろうと return int型; がどうして用いられるか?
mainがプログラムの開始という前提で話をしているんであれば、戻り値について特に
言及する事もないでしょうけど、人によってはOSへ返す値を確認する人もいるし
人によっては必ずしも 0 とは限りませんよ?
>>427 >>426 が間違っていないどころか、自分もそう思う、当たり前とか言われてもねぇ・・・
アホって何?アホはお前だろ。
>>425 が勝手にC++だの不要だの言い出してる方がアホじゃねーのか?
ねぇ、IDが出ないからって自作自演している新入りのお子ちゃま?
この手の話は数年前に散々既出。周りは知っているとか、知らない奴が
質問してんじゃん。口を慎めよ、青二才。お前の生活に余裕が無いのは
言動から滲み出てますから、もう少し先入観や思い込みを無くして生活してみ?
この世に、お前が知らないことは数多いし、知ったことなんてこの世のごく一部だって
早く気づいて下さいね、井の中の蛙さん?最近、質問と回答を自作自演している
講師の方ですか?大学院生ですか?そんなんじゃ貴方を慕って付いてくる人も
いなくなり、孤立して干されますよ?性格の悪さがたった1行で露呈しているし。
return 0; は ×不要 ○省略可 書きたく無ければ書かなければ良いだろ?お前がそう思うんなら。 俺はもうソースを書く際に自動的に枠組みが生成されているから 特に気にしないが。1文字でもコードの文字数を減らしたいなら良いんじゃね? そういう奴に限って、効率の良いアルゴリズムが書けないんだぜw 変なところを省略しようとするから。
return 0になんでこんなに必死なの? 普通に宿題してればいいやんこのスレ
>>435 了解。C99についてはちょっと調べてみる。
>>444 さらっとすませればいいものを、どうしてそうなってしまうのですか?
>>444 釣られやすい人だこと。自演なんかしているからそうなっちまうんですよ。
return int型; は ×不要 ○省略可 省略した際は return 0; としてコンパイラが自動的に処理する。 勝手に解釈、事実を捻じ曲げないで下さい。
田舎コンパイラの特殊機能なんてどうでもいいよ。
省略された場合でも最後にそれが挿入されているように解釈し それに応じた実行をするか、下位プロセッサ向けコードを生成する ことが処理系製造者に要請される。それを怠った処理系がC/C++処理系 を名乗ると製造者、もしくは使用者が苛められるかもです ↑ 多分これが正解 他の解釈は正統を装ってても、既にねじ曲げられてたりしてるw
省略できるのはmainがint型の時だけ。
>>452 以前はこれに言及していないので全員落第。
VC++やgccなんかはvoid main()でもreturn 0;と同等のコードを吐くけどな
お前の目は節穴か? gcc (GCC) 4.2.1 ★voin main {} .globl main .type main, @function main: .LFB2: pushq %rbp .LCFI0: movq %rsp, %rbp .LCFI1: leave ret ★int main {} .globl main .type main, @function main: .LFB2: pushq %rbp .LCFI0: movq %rsp, %rbp .LCFI1: movl $0, %eax leave ret
return 0; は ×不要 ○省略可 コンパイラが自動的に処理するから記入しなくても良いとは言え 不要なら敢えてコンパイラもそんな処理はしないでしょう。 とにかく不要と省略可は別物。勝手に必要が無いと思わないで下さいね♥
必要が無いから省略可なんだろ?
余程悔しかったみたいですね 自分が余計な事を言って突っ込まれたのがw
>>456 の俺用語の「不要」「必要」「省略可」は通常の日本語のそれとは異なるから常人には理解不能。
もしかしたら「別物」も俺用語かもしれない。
これ以上掘り下げても意味は無いよ。
>>444 C++の出題って書いてあるじゃん
ファビョりすぎて目が見えませんか?
もしかして朝鮮人ですか?
C99には、単にmainで } に達したら0を返す、としか書いていないから、その時どうするかは、個々のコンパイラが決めること。 「return 0;」を挿入するなんていうのは単なる実装の1手段であって、規格上の要請でも何でも無い。 あえて言うなら、「不要」「省略可」ではなく、「有ってもいい」だ。 「int penis_penis;」とか「double oh_sex_sex;」が有ってもいいのと同じこと。
462 :
デフォルトの名無しさん :2010/07/25(日) 16:10:48
>>460 > 朝鮮人
自己紹介乙。いい加減きめぇ。このスレに何しにきてんですか?
スレタイ読めますか?
>>1 の1行目が見えませんか?
464 :
デフォルトの名無しさん :2010/07/25(日) 16:12:22
>>461 > あえて言うなら、「不要」「省略可」ではなく、「有ってもいい」だ。
意味不明。そもそもそれがなぜ記述されるか?int mainとした時点で
main関数はint型の値を返すから。return 0;でなければいけない訳でも無いが
省略したらコンパイラが自動的に処理するのを、勝手に 不要 と判断されても困ります。
465 :
デフォルトの名無しさん :2010/07/25(日) 16:12:53
>>460 相手の素性も知らずに朝鮮人呼ばわりか、実に気持ち悪いねらーだ
つ鏡
466 :
デフォルトの名無しさん :2010/07/25(日) 16:14:07
>>460 間違っていないことに対して、自分が間違って解釈していたことを用いて
反論にもならん意見をするなら失せろ。ねぇ、「不要」と主張しちゃったおバカさんw
>>464 「省略」も何も、そもそも「int penis_penis;」とか「double oh_sex_sex;」と同様に「return 0;」は有っても無くてもよい文。
コンパイラが処理しているのは } に達したときに0を返すことであって、「return 0;」とは何ら関係がない。
return 0; が ×不要 ○省略可(記述されていない場合コンパイラが自動的に処理する) 実行プログラムは終了時にOSへ0を返している訳だから、コードとしてはむしろ ユーザが指定したいなら何かしらreturn int型;として記述するのが望ましい。
469 :
デフォルトの名無しさん :2010/07/25(日) 16:27:33
この火病っぷりは朝鮮人以外にあり得ない
自分の間違いに突っ込まれて滅茶苦茶にファビョりまくってる馬鹿ワロスww
§3.6.1 Main function 5 A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing return 0; これが目に入らぬか?
何でこんな糞仕様を規格に含めたかな
今度は規格に噛みつき出しました 自分の非を絶対に認めようとしない自己愛性人格障害者は 精神科に行ってくださいな
自己愛性人格障害の特長 1. あからさまな傲慢さ 尊大で横柄な、また大げさで相手に軽蔑的な態度をとります。 社会生活での慣習や規則をバカにし、自分には愚かで的はずれな規則だとあざ笑います。 自分の高潔さを他人が見のがすことには怒り出しますが、他人のそういうことに対しては全くの無関心です。 2. 対人関係での搾取 当然の権利だと考えています。常に相手に対して自分を特別扱いするよう求めます。 はずかしげもなく、自分が目立つためや願いを叶えるために他人を利用するのは当然のことと考えています。 3. 誇大性 えっ?と思うようなの空想をしたり、成功や美、愛に関する未熟で自己満足的な想像に浸りがちです。 客観的事実はどうでもよく、事実を勝手に曲げ、自分に対する錯覚を必要とあらばうそをつくこともかまわない。 4. 自己像の賞賛 自分は価値があり、特別で(ユニークでなくても)大いなる称賛を受けるに 値する人間だと信じていて、誇大的で自信に満ちた行動をとります。 しかし、それに見合うような成果を収めることは少ないです。 他人にはわがままで、軽率で、おおちゃくな人間だとみられているにもかかわらず、自分の価値を信じています。 5. 他人へのわざとらしさ 過去の対人関係はいいように記憶が変えられています。 受け入れることができない過去の出来事や苦しみは簡単に作り直されます。 6. 合理化のメカニズム 自己中心的で周囲に対して思いやりに欠けた行動を正当化するために、 もっともらしい理由を付けようとする。それらは欺瞞的で浅はかなものです。 7. 偽り みえみえのうそをつきます。失敗をしてもすぐに埋め合わされ、プライドはすぐに復活します。 8. 無頓着 いっけん冷徹で無感動な自分を演じます。 逆に、軽快で楽天的であるが、自己愛的な自信が揺さぶられるといかりや恥の感情や空虚感が表に出てきます。
476 :
デフォルトの名無しさん :2010/07/25(日) 17:14:24
>>473 多分、このサンプルコードを記述したかっただけだと思う。
#include <iostream>
int main()
{
std::cout << "Hello, world!";
}
>>476 規格書の抜粋だろ
478 :
デフォルトの名無しさん :2010/07/25(日) 17:22:52
>>478 文章を適当にコピペしてググったらヒットするよ
都合の悪い時はググレと言っておけばいいよね^^
>>478 ISO/IEC 14882 だろ常識的に考えて
はじめからそういえばいいのに
>>480 一体誰の都合がどのように悪かったと言いたいわけ?
ISO/IEC 14882:2003(E) 3.6.1 Main function 5 A return statement in main has the effect of leaving the main function (destroying any objects with auto- matic storage duration) and calling exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing return 0; --> C++ ISO/IEC 9899:1999 (E) 5.1.2.2.3 Program termination 1 If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument;10) reaching the } that terminates the main function returns a value of 0. If the return type is not compatible with int, the termination status returned to the host environment is unspecified. 10) In accordance with 6.2.4, the lifetimes of objects with automatic storage duration declared in main will have ended in the former case, even where they would not have in the latter. --> C99
まとめると、 C99では、mainの } に達したら、0を返して終了する。 C++では、mainの最後に達したら、return 0; を実行する。 return 0;を省略するとかしないとかの話ではないみたいだね。 単にmainの最後に達したらどうするかという話。
>>482 教えてもらって礼も言えず、あまつさえ教える側に不備があると言わんばかりの
その傲慢な態度はいかがなものかとは思わないのか?
何かを教えたつもりになってるヤツが居るw
2.1.2.2 Hosted environment Programming Language C, X3.???-1988. "Program termination" A return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument. If the main function executes a return that specifies no value, the termination status returned to the host environment is undefined. --> C89, C90
ISO14882:2003も知らずにグダグタ言ってる奴は失せろ 時間の無駄だ
No, thank u.
いや、
>>489 には、return無しでmainが終了した時の振る舞いは書いていないだろって。
496 :
デフォルトの名無しさん :2010/07/25(日) 17:48:05
return 0; は ×不要 ○省略可
Fummmmmmmm.
498 :
デフォルトの名無しさん :2010/07/25(日) 17:49:41
return 0; は ○不要 △省略可
499 :
デフォルトの名無しさん :2010/07/25(日) 17:50:41
>>498 ちゃんとログを読みましたか?省略してもコンパイラが自動的に処理してくれると?
だから省略は可能なんですよ。ただ、不要ならなぜコンパイラが自動的に
int mainの戻り値を0にしたんですか?説明を願います。
(キリッ
502 :
デフォルトの名無しさん :2010/07/25(日) 17:53:45
503 :
デフォルトの名無しさん :2010/07/25(日) 17:54:36
まだ自己愛性人格障害者の
>>427 >>425 がファビョってんのか
顔真っ赤にして書き込んでるんだろうな
姿が目に浮かぶようだぜ
504 :
デフォルトの名無しさん :2010/07/25(日) 17:56:17
>>501 不要とする根拠を客観性のある説明が出来ないお前の人格が破綻してんだよ
お前の思い込み、基準、閉鎖的な思想での説明こそ不要。
聖徳太子知らない?
>>503 悔しそうですねー
精神科に行ったら?そんなんじゃ生きてても面白い事ないだろうに
あ、ヒッキーでしたか こりゃ失礼 君みたいなクズはタヒんだ方がいいですね
しかも怒りすぎて自分の言葉で返せないものだからオウム返しモードになってるしw
頭まで悪いのか 燃えないゴミの日にでも出すか
506 :
デフォルトの名無しさん :2010/07/25(日) 17:58:43
>>501 いや、顔を真っ赤にしているのはお前だろ。
説明という説明が無いどころか、丁寧にISO、ANSI準拠で説明している人の
人格攻撃とか、頭イカれてるわ。あと、俺は省略可とは言ったが
お前は見えない敵を相手にしているのか、俺以外にも説明している人を
俺と同一人物と勘違いしているようだな。そろそろここもID制にしてもらうか?
自作自演はキモイ。最近見られる出題者と回答者のリモホが一致するって話は
お前の存在で信憑性が濃厚になったな。
この流れ何人でやってるの? 一人?二人?
省略できるから何だとかとかどうでもいいけど、 可読性や処理の明確化の観点からすると、 明示的にreturn 0;を記入する方が良いと俺は思うな。 一行ifやforだって、中括弧省略する事は可能だけど、 多くの場合でちゃんと中括弧書きなさいって言われてない? そんな感じでいいんじゃない。
509 :
デフォルトの名無しさん :2010/07/25(日) 18:01:32
return 0; は ×不要 ○記述の省略は可 コンパイラが自動的に処理してくれている内容を無視して 勝手にそのコード(実行)を不要としないで下さいねw int main、関数の戻り値から勉強をし直せ。 プログラムがOSへ返している値はあまり重要では無いんだろうけど そんなんじゃ、標準ライブラリだけでなく独自で定義した関数でさえ まともに戻り値を指定できているとは思えん。
510 :
デフォルトの名無しさん :2010/07/25(日) 18:04:34
>>499 コンパイラが処理するのは、return 0;の有無とは全く関係なく、mainが終わった時に 0 を返すということだけ。
省略と言うのは、元々存在するものを省くこと。
だから、return 0; を「省略可」というのはおかしい。
長文多すぎだろwww
>>506 これはひどい
完全に狂ってますね
被害妄想まで入ってる
514 :
デフォルトの名無しさん :2010/07/25(日) 18:07:05
return 0; は ○不要 △記述の省略は可 ○有ってもいい
いいからいい加減にageて書くのやめてくれ
516 :
デフォルトの名無しさん :2010/07/25(日) 18:09:44
ついに、sage厨登場
>>510 あんたもしかして
>>472 の英語読めないの?
> mainが終わった時に 0 を返す
そんな事どこにも書いて無いよ?
519 :
デフォルトの名無しさん :2010/07/25(日) 18:10:59
return 0; は ○省略可 ×不要 さっ、このスレの本来の流れに戻しましょう。これ以上は荒らしと看做し 然るべき場所に通報しますよ。
520 :
デフォルトの名無しさん :2010/07/25(日) 18:12:48
>>518 return 0;は省略可とも書いていないね。
521 :
デフォルトの名無しさん :2010/07/25(日) 18:13:46
結論 return 0; は ○不要 ○有ってもいい △記述の省略は可 C99では、mainの } に達したら、0を返して終了する。 C++では、mainの最後に達したら、return 0; を実行する。
522 :
デフォルトの名無しさん :2010/07/25(日) 18:15:43
return 0; は ×不要 ○省略可 これ以上の議論は必要はありません。荒らすつもりなら出るところに出ますよ? あなた、こんな場所を荒らして職場を解雇されたらお笑い種だw プログラマーとして失格。return 0; 程度のことも間違って解釈してたと。
おまえらこの話題に決着をつけろよ? 二度と繰り返さなくていいようにな。 それと、本気でレスつけてるつもりならトリップ付けれ。
>>520 省略された場合の動作を定めているんだから、省略可と受け取って齟齬無いだろう。
一方不要かどうかは、省略された時にわざわざ自動で付加するぐらいなのだから、
必要である(不要ではない)と受け取って齟齬無いだろう。
齟齬って言いたいだけでした。
527 :
ぼるじょあ ◆yBEncckFOU :2010/07/25(日) 18:30:46
(・3・)エエー return 0; は不要または省略可だよ
>>520 省略可じゃないなら、コンパイラは通らん!
一人でフレームを自作自演しているように見えるのですが、気のせいですか?
多分、○省略可君は、C/C++の規格を知らないというより、「省略」の意味を知らないのだと思う。
532 :
デフォルトの名無しさん :2010/07/25(日) 18:39:56
例えばC89でreturn 0; を書かなくてもコンパイルは出来る 警告は出るかもしれないが void main()にしておくと警告すら出ない
533 :
デフォルトの名無しさん :2010/07/25(日) 18:42:51
return 0; は ○省略可 ×不要 これ以上の議論は ○不要
>>532 その警告ってただ単に関数に戻り値があれば、
全ての制御パスにreturnが書かれているか調べているだけじゃないの?
535 :
デフォルトの名無しさん :2010/07/25(日) 18:45:26
mainの戻り値の話題は、
>>521 で結論が出てる。
538 :
デフォルトの名無しさん :2010/07/25(日) 18:52:16
いま一番ホットなスレはここ!! / ̄\ │34nm | \_/ インテル! _|_|_ n: / \ n: || / ヽ || f「| |^ト | :::\::/::: | 「| |^|`| エーーックス |: :: ! } | <(゚)>::::<(゚)> | | ! : ::} ニジュウゴ ヽ ,イ ヽ (__人__) / ヽ ,イ エーーーッムッッ! \ `⌒´ /
542 :
デフォルトの名無しさん :2010/07/25(日) 19:04:19
return 0; は ○省略可 ×不要 本当に不要ならmainはOSへint型の値を返しませんよ?w
CとC++にわたる話題なのにCスレに誘導ってどうなの
545 :
デフォルトの名無しさん :2010/07/25(日) 19:06:33
いやに宿題スレが伸びてると思ったらお前ら・・・・
では宿題をどうぞ ↓
return 0;は省くな。 省くと課題なら不可、仕事なら次から案件来なくなる
では宿題をどうぞ ↓
>>537 お前もしつこいなぁ
C++とC99はいいっつーに
551 :
デフォルトの名無しさん :2010/07/25(日) 19:40:48
>>1 > 気に入らない質問やその他の発言はスルーの方向で。
return 0; は ○省略可能 ×不要
【結論】 mainのreturn 0; は ○不要 ○有ってもいい △記述の省略は可 C99では、mainの } に達したら、0を返して終了する。 C++では、mainの最後に達したら、return 0; を実行する。
553 :
デフォルトの名無しさん :2010/07/25(日) 20:02:21
return 0; は ×不要 ○省略可 ○各自で適切に記述 勝手に不要としないで下さい ><; お前の存在こそ、このスレにとっては不要です ><;
[1] 授業単元: 情報処理(C言語) [2] 問題文:整数を入力し、1から入力された数値までの数値と、 1から入力された数値までの累計の対応表を出力するプログラムを作成せよ。 例 8を入力したとき 1 1 2 3 3 6 4 10 5 15 6 21 7 28 8 36 [3] 環境 [3.1] OS:Windows xp 32bit [3.2] コンパイラ名:visual studio バージョン:不明 [3.3] 言語:C言語 [4] 期限: 7月30日(金)まで [5]条件:%6dを両方とも使い、数字のピッチをそろえること。
556 :
393 :2010/07/25(日) 20:48:48
>>528 ありがとうございます!
試しに読み込ませるデータを
1.0
2.0
3.0
4.0
5.0
1.0
2.0
3.0
4.0
5.0
1.0
2.0
3.0
4.0
5.0
・
・
・
としてやってみたのですが,
出力結果のそれぞれの行は何に対応しているのか教えていただけるとありがたいです.
とりあえず出力結果の1行目と2行目,1行目と3行目,1行目と4行目をgnuplotで表示してみたのですが,スペクトルがずれてしまっているような気がします,
これは何が原因なんでしょうか?
int n; int s = 0; scanf("%d", &n); for(int i = 1; i <= n; i++){ s+=i; printf("%d %d", i, s); }
【教訓】 省略できるものを省略すると不幸が訪れる 省略できるものでもいつでもちゃんと書くと幸福が訪れる -人生絶対教訓集より
559 :
555 :2010/07/25(日) 20:57:09
>>558 別に省略しても構わんが、それを不要と解釈した奴が
根本、原理を理解していないから話がこじれている。
本当に不要というなら、ヘッダとかも記述しないで
コンパイラに自動的に入れてもらえば良いのにね。
仕様の話と省略の良し悪し 二つの話をいっしょにするからめんどくさい事になってんだよ
省略 : 一部分をはぶくこと。 省く : 必要がないとして取り除く。 不要 : いらないこと。必要がないこと。
565 :
555 :2010/07/25(日) 21:18:32
>>562 何がだめなの?
見た感じそれっぽいけどなー
>>565 >>↓557の実行結果
1 12 33 64 105 156 217 288 36
↓修正後
#include <stdio.h>
int main(void)
{
int n, s = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
s += i;
printf("%d %d\n", i, s);
}
return 0;
}
568 :
565 :2010/07/25(日) 21:29:13
>>567 そうか。改行が足りなかったのか。
訂正サンクス
>>568 [5]条件:%6dを両方とも使い、数字のピッチをそろえること。
>>556 私は数学的な話はできませんが、フーリエ級数展開をイメージしています。
512 個のデータをフーリエ変換して出てきた結果ですが、
0: 0.000000 0.000000 0.000000
1: 0.000000 0.000000 0.000000
2: 0.500000 0.000000 -0.500000
3: 0.000000 0.000000 0.000000
4: 0.000000 0.000000 0.000000
5: 0.000000 0.000000 0.000000
6: 0.000000 -0.000000 0.000000
7: 0.000000 0.000000 0.000000
8: 0.000000 0.000000 0.000000
9: 0.000000 0.000000 0.000000
10: 0.000000 -0.000000 0.000000
(以下 511 までつづきます)
という結果では、二列目は cosのスペクトル、三列目は sin のスペクトル、そして一列目は cos と sin を総合したスペクトルをあらわしています。
(正確な内容はソースを参考にしてください。)
この例では、No. 2 にスペクトルがあらわれています。これは、512個のデータ列いっぱいいっぱいを一波長としたときに、
2分の1波長(すなわち 256 個分で一波長となる)の成分が沢山あることを示しています。
n 番目の数字は、n 分の1 波長の波の成分のスペクトルをあらわしている、といってよいでしょうか。
一度に全部を説明するのは、私の知識では無理ですので、対話しながらいきませんか?
>>566 文章から受ける印象を考えると、いつものアイツの仕業でしょうね。単数だといいのですけれども。
私も自演とやらのせいで無駄な宿題をしてしまったようです。まあ、解くのは好きだから、どんな問題であれ、かってに解きますけれども。
それにしても age まくるくらいなら、私のようにコテをつけてくれるとありがたいのですが。
>>573 いつものお前の意味が分からんが、トリップを付けずに自作自演している
いつものお前は変わらないんでしょうねw 見えない敵と戦うキモイ戦士乙。
出題者と回答者のリモホが同じなんすけど〜?どこの学校の講師ですか?
通報しておくから、教えてくれ。
>>574 ほう、どうやってリモートホスト名を知ることができたのですか?
私は解答一辺倒で、あなたのいう自作自演はしてませんがね。
それよりも一度病院でみてもらってはいかがでしょうか?
576 :
デフォルトの名無しさん :2010/07/25(日) 22:52:01
病気だな。
さすがに出題者と回答者のリモホネタを出すと、ビビって黙り込むな、こいつw 自作自演でこのスレを盛り上げているんだろうけど、このスレが一部の人間の間で 有名になって、学校側も監視しているって話じゃんw そう、講師が答えてそれを丸写しした生徒を落とす魂胆さw
>>578 学校関係者じゃないので、別に。
リモートホスト名がわかるのなら、このスレの質問者分と回答者分だけでも、そのリモートホスト名とやらをさらしてみてはいかがでしょうか?
580 :
393 :2010/07/25(日) 23:44:46
>>572 お付き合いありがとうございます.大変感謝しています.
なるほど,そういうことでしたか.
つまり,プログラムに読み込ませるある膨大な周期的なデータ(簡単な例:sin波がいつまでも続くようなデータ)
があったとしても,その読み込み範囲(その周期的なデータをはじめからどこまで読み込ませるか)によって
スペクトルが最大になる場所が変わるということですね.
自分はスペクトルが最大になるところの値がそのまま,読み込ませたデータの中に,最も多く含まれている
波長(周期)成分の値ということだと思っていたので,1万個程度のデータを読み込ませた際に,
スペクトルが一番はっきり出てくるポイントが大きくなってしまい,そのために先ほどは
スペクトルにずれがあるといっていました.
>>572 に書いてくださったことは,スペクトルがはっきり出る部分のNo.分の1が,データ全体が
最も多く持っている波長成分という解釈でいいのでしょうか?
581 :
393 :2010/07/25(日) 23:55:42
>>580 追記
最後の二行の部分を訂正です.
誤
>>572 に書いてくださったことは,スペクトルがはっきり出る部分のNo.分の1が,データ全体が
最も多く持っている波長成分という解釈でいいのでしょうか?
正
>>572 に書いてくださったことは,スペクトルがはっきり出る部分のNo.分の1に読み込ませたデータ数を
かけたものが,データ全体が最も多く持っている波長成分という解釈でいいのでしょうか?
>>580 そうそう、fft にかけるデータ数(512 個とか 1024個とか 2 のべき乗になります)を基準として、その 512 個で一周期となる波長を基準にして、
それより 1/2, 1/3, 1/4 ... 1/n の波長のスペクトルを調べるのが fft 、というイメージを持っています。
同じ波形のデータの繰り返しでもそれが 512 個のデータのなかの場合と、1024 個のデータのなかの繰り返しとでは、
スペクトルの位置が異なると思います。すなわち
(123412341234....) 512個 と (1234123412341234 ....) 1024 個とでは、同じデータ4個分の繰り返しであっても、スペクトル位置は、
それぞれ、4/512 と 4/1024 になり異なります。
※おもいっきりイメージで文章を書いています。はずしていたらすみません。
>
>>572 に書いてくださったことは,スペクトルがはっきり出る部分のNo.分の1が,データ全体が
>最も多く持っている波長成分という解釈でいいのでしょうか?
そうです。そして、 なんの n/1 かというと、入力データ個数分いっぱいいっぱいで表現できる一波長ということになります。
繰り返しになりますが確認として書いておきました。
>>581 入れ違いになりました。
>
>>572 に書いてくださったことは,スペクトルがはっきり出る部分のNo.分の1に読み込ませたデータ数を
>かけたものが,データ全体が最も多く持っている波長成分という解釈でいいのでしょうか?
んー、よくわかりません。
>>582 が参考になりますでしょうか。
584 :
393 :2010/07/26(月) 00:11:12
>>583 返信ありがとうございます.
追記部分を言い直せば,
つまり,もし1012個分のデータの中に周期が4のデータ(今回は1,2,3,4の繰り返しとする)がなんども繰り返し入っているとした場合,
1012/4 = 253 番目に目立ったスペクトルが出るはずということでよいでしょうか?ということです.
ちなみに繰り返してない系列長253のデータをDFTにかけて 間に3サブキャリアづつ挿入して系列長を1012にした場合とスペクトルは等しくなる
586 :
デフォルトの名無しさん :2010/07/26(月) 00:26:14
今後は何度でも書いてやりますよ。 return 0; は ×不要 ○省略可 勝手に「不要」としないで下さいね ♥
>>584 >>528 のプログラムはデータ数が 2 のべき乗になるように 0 を追加してしまいます(この場合は1024 個にします)が、
かりに 1012 個 で dft にかけることができれば、4 個の繰り返しは、おっしゃるとおり 253 個のところに現れます。
>>528 のプログラムは、データ数を 1024 にするので、1024 / 4 = 256 番目にスペクトルがあらわれるでしょう。
>>585 私は専門じゃないので差し支えなければ。
588 :
393 :2010/07/26(月) 00:42:52
>>587 すみません1024でした.書き間違えです.
おかげさまで,
>>528 のプログラムから,データの周期をどのように見いだせばよいのか分かりました.
もしもよろしければで良いのですが,一発でデータ内の周期成分そのものを
スペクトル表示するような方法は実現できないのでしょうか?
>>588 gnuplot とか excel とか
590 :
393 :2010/07/26(月) 00:48:12
>>589 データ4個分で1周期のデータが1024個分ある場合に4の部分にピークのスペクトルが
でるようなプログラムという意味で書かせていただきました.
データの表示にはgnuplotを使用しています.
592 :
デフォルトの名無しさん :2010/07/26(月) 01:00:44
>>586 「省略可」なんて規格書に書いてねー事、捏造すんな。
>>591 「鬼の首でもとったように」は用法をよく読み正しくお使い下さい。
>>591 >>472 の一文から導き出される結論は?
省略された場合の挙動について定義してるんだから、省略できると考えて何か問題が?
595 :
594 :2010/07/26(月) 01:04:35
丸一日不要だ省略だって話してたのか さすが日曜日
>>594 >
>>472 の一文から導き出される結論は?
書いてある通り。int mainの時は0を返す。
> 省略された場合の挙動について定義してるんだから、省略できると考えて何か問題が?
省略とは、元から合ったものを省く/あるべき物を省く事だが、文法的にはreturn文は
必須では無いので、
>>472 は「書かれていない場合の挙動」についての定義であって、
省略されているわけではない。
面倒臭いから引用しといてやる。
6.9.1 Function definitions
……
If the } that terminates a function is reached, and the value of the function call
is used by the caller, the behavior is undefined.
main関数は例外な
599 :
デフォルトの名無しさん :2010/07/26(月) 03:33:35
return 0; は ×不要 ○省略可 不要は言い過ぎ。コンパイラが自動的に処理してくれているのを 勝手に不要と判断するユーザは、ヘッダも不要と言ってごらん?
600 :
デフォルトの名無しさん :2010/07/26(月) 05:27:12
[1] 授業単元: コンピュータ工学 [2] 問題文(含コード&リンク): つぎのCプログラムを人手でコンパイルし、出力となるVCのアセンブリプログラムを示せ。 #include <stdio.h> char str1[10]; /* global variable */ char str2[10]="abcdefghi"; /* global variable */ void strcopy(char *s1,char *s2) { while(*s1++=*s2++) ; } int main(void) { strcopy(str1,str2); return 0; } 今日の昼の1時まで出来る天才な方がいたらお願いします。。。
601 :
デフォルトの名無しさん :2010/07/26(月) 05:33:36
お願いします。 プログラミングの授業です。 問題→次の設定のゲーム{MOONCAR} <_■ を作る。 ○=○ MOONCARは、月面探索車で、画面の左に重ねてあるブロック(□3X5)を削りながら、先に進んでいく。 ブロックを削るドリルは一度使うと10秒待たなければ 次を削ることができない。 5列のブロックをすべて削って画面の左端に到着するとステージクリア。 月面には隕石(●)が絶えず降り注いでいる。(一個ずつランダムに現れる) これに当たるとMOONCARは破壊される。MOONCARは三台までしかなく、すべて破壊されるとゲームオーバーとなる。 ブロックを削る、ステージをクリアするなどのイベントにより、スコアが加算される。 そしてステージがあがるにつれて難易度が増すようにする。(隕石の数が増える) (応用)ゲームタイトルを表示する。「S」キーを押すとゲームスタートし、「Q」キーを押すと終了する。 ゲームオーバー時はプログラムを終了せずに、ゲームタイトル画面に戻る。 windowsでCです。 プログラムを習い始めて半年なので 難しいことがよくわかりません。 最初は #include<stdio.h> #include<conio.h> #include<windows.h> #include<time.h> こんなかんじです。 できれば今日中にお願いしたいのですが大丈夫ですか? 100行は軽く超えると思いますが・・・><
602 :
デフォルトの名無しさん :2010/07/26(月) 05:34:57
<_■ ○=○
603 :
デフォルトの名無しさん :2010/07/26(月) 05:57:30
int main(void) { printf("return 0; は ×不要 ○省略可\n"); } ↑さぁ、このコードをコンパイラしてみよう。恐らく2つ 警告が出るとは思いますが、コンパイルは出来ますよ v(^ω^)v お前が不要というなら不要なんだろう、お前ん中ではな
[1] 授業単元:C言語プログラミング基礎 [2] 問題文:1以上の正の整数を二つ入力、 その二つの数の最大公約数を求めるプログラムを作成せよ。 ただし以下の条件のような動きをするプログラムを作成すること。 「aをbで割ったときの余りをmとする。 mが0ならばbが最大公約数である。 mが0でなければaとbの最大公約数はbとmの最大公約数に等しい。 したがって、bをaとし、mをbとして同じ処理を繰り返す。 例 312と120を入力したとき 312 % 120 = 72 120 % 72 = 48 72 % 48 = 24 48 % 24 = 0 よってこの場合は24が最大公約数となる。 [3] 環境 [3.1] OS:Windows Vista Business [3.2] コンパイラ名:visual studio [3.3] 言語:C言語 [4] 期限: 7月26日(金)まで [5]条件:上に書いたとおりです。 よろしくお願いします。
cat -n foo.c 1 int main(void) {} cc -Wall -pedantic-errors -std=c89 -S foo.c -o foo_c89.s foo.c: In function ‘main’: foo.c:1: 警告: control reaches end of non-void function cc -Wall -pedantic-errors -std=c99 -S foo.c -o foo_c99.s diff foo_c89.s foo_c99.s 11a12 > movl $0, %eax c++ -Wall -pedantic-errors -S foo.c -o foo_cxx.s grep \$0 foo_cxx.s movl $0, %eax cc --version cc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
>>599 わかってて省略して良い物と悪いものを混同するなカス
>>598 どこに例外って書いてあるんだよ。捏造すんな。カス。
>>599 「省略可」なんて規格書に書いてねー事、捏造すんな。カス。
>>604 #include <stdio.h>
int main (void)
{
int a,b,c;
printf("数を2つ入力してください。\n1つ目:");
scanf("%d",&a);
printf("2つ目:");
scanf("%d",&b);
if (a<b){c=a;a=b;b=c;}
while (1){
printf("%d %% %d = %d\n",a,b,c=a%b);
if (c) {a=b;b=c;}else break;}
printf("最大公約数は%dです。\n",b);
return 0;
}
610 :
604 :2010/07/26(月) 12:26:13
611 :
609 :2010/07/26(月) 12:52:31
>>610 いえいえ。
少し訂正で、cはmに、scanf("%d",&b);の下に
if (a<1||b<1){printf("1以上の整数を入力して下さい。最初からやり直しです。\n"); return 0;}
を追加して下さい。
612 :
デフォルトの名無しさん :2010/07/26(月) 13:00:18
すごいなー 私も理解したい。
613 :
デフォルトの名無しさん :2010/07/26(月) 14:40:36
同じ学校の生徒、講師に聞けよw
614 :
デフォルトの名無しさん :2010/07/26(月) 15:17:56
あ〜〜〜早くカレンダー、双方向リストこねーかなぁ〜 自作自演の講師の方、やっちゃって下さいよ?
return 0; は ◎省略可 ○必要 ×不要
コンパイラが自動的に処理してくれる未熟者ユーザなら return 0; は ○不要 ◎省略可 ○必要
617 :
デフォルトの名無しさん :2010/07/26(月) 15:50:30
聞けないから書いてるのに。
【質問テンプレ】 [1] 授業単元:C演習 [2] 問題文(含コード&リンク): 乱数で生成されたノンインタラクティブなノベルの自動生成プログラムを 書け [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows Vista [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc3 CygWin [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 8/31(新学期は9月だけど余裕をみてます) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 出来るだけ少ないコードで、出来るだけ沢山の展開のストーリーが 生成されると評価が高いそうです。夏休みの宿題です。 よろしくお願いします。
return 0; は ◎絶対必要 ×××省略可 ×××不要
return 0; は ○省略可 ××不要
return 0;は文法的に不要。
[1] 授業単元:C演習 [2] 問題文(含コード&リンク): 半楕円の描画 [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン:visualStudio2010 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語 [4] 期限:2010/07/26/24:59
>>622 半楕円とはなにか教えてください。いろいろ調べましたがよくわかりませんでした。
625 :
デフォルトの名無しさん :2010/07/26(月) 19:46:39
[1] 授業単元: C言語演習 [2] 問題文(含コード&リンク): 0〜255諧調の画像があり、 この中から約100〜150の輝度値を持った部分だけを切りだしたい。 また画像にはノイズも含まれていると仮定し、 できるだけきれいにその部分だけを切りだす方法を考えなさい。 [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン:visual Studio 2008 [3.3] 言語: C言語 [4] 期限:2010/07/27/18:00 まで
>>625 入力画像のフォーマットを教えてください。256色 bmp ファイルかつ白黒でいいですか?
629 :
393 :2010/07/26(月) 23:12:18
[1] 授業単元:一般情報処理 [2] 問題文(含コード&リンク):剰余を用いた乗算表とその応用。 p=6の場合とp=7の場合について kuku[x][y]=( x × y ) mod p (プログラムの中ではkuku[x][y]=( x * y ) % p と表される) を中身にもつ掛け算表を表示するプログラムを作成せよ。 その際、表の行と列は0からp-1までの値を表示すること。 <p=3の時の出力例> 0 0 0 0 1 2 0 2 1 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名:gcc [3.3] 言語:C [4] 期限:2010年07月27日17:00まで [5] その他の制限:問題文の指示以外に、とくに制限はありません。 どうぞよろしくお願いします
>>630 新しいWord は勘弁してください。pdf など皆が読めるものにしていただけないでしょうか。
635 :
631 :2010/07/27(火) 00:24:03
>>634 これどっかで第一列の数字が小さくなり過ぎてるかもしれんね
ピボット選択をしたらいいかも
カレンダー、リストの課題が出なきゃ麻呂のクソミソースが発動できません ><;
そういえば、xについての二次方程式の解の公式で ax^2 + bx + c = 0 (a≠0) なのに、a=0 の時の事も考えてとか 言っちゃったあなた、まだここを見てますか?
そういえば、 char c; c = fgetchar(); とかいたあなた、見てますか?
コンパイルもせずに答えを貼る奴が信じられない 自分の能力を過信し過ぎ
642 :
デフォルトの名無しさん :2010/07/27(火) 15:56:11
>>639 誰に向かって言っているのか知らんが、そんな奴おらんやろぉ〜w
勝手にそんなアホなコードを書いた奴を作り出すなよw
まぁお前のことなんだろうけどw
645 :
デフォルトの名無しさん :2010/07/27(火) 17:46:33
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ttp://www1.axfc.net/uploader/Sc/so/138099 [3] 環境
[3.1] OS: WindowsVista
[3.2] コンパイラ名とバージョン: visualstdio2010
[3.3] 言語: C
[4] 期限: 7月27日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
リストの更新追加ソートの課題です。
辞書順のソートは関数strcmpを使って行うことです、よろしくお願いします、
>>640 以前、性帝トーマスとか名乗っていたゴミクズコテハンね。
あいつ、コンパイルなんてせずにこのスレに投稿してたし。
[1] 授業単元:コンピュータアーキテクチャー [2] 問題文(含コード&リンク): コンピュータの処理においては、様々な数学的アルゴリズムを駆使して 計算や検索を加速させる技法が用いられる。 しかし、メモリアクセス速度など、計算処理以外の部分においても処理速度 に大きな影響を及ぼすものがある。 ディスクドライブ上に同じサイズのデータを書き込んだり参照したりする 場合とメモリに同じサイズのデータを書き込んだり参照したりする 際のハードウェア特性の差に着目し、 それが処理速度に大きな影響を及ぼしていることが明確に示せるような 対照実験プログラムを作りなさい。 注意:昨今のコンピュータでは、ディスクドライブに直接アクセスする とは限らず、バッファと呼ばれるメモリを介してアクセスするケースも 多いので、工夫しなければその差を検出することは出来ない [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc(多分) [3.3] 言語: C++ [4] 期限:2010/09/10 [5] その他の制限:全文です 意外にムズかしいそうです。よろしくお願いします。
<注意:昨今のコンピュータでは、ディスクドライブに直接アクセスする <とは限らず、バッファと呼ばれるメモリを介してアクセスするケースも <多いので、工夫しなければその差を検出することは出来ない ここがウザイな。 OSによって違うだろうから、Windowsしかインストールしてない俺は実証できないや。
>>625 http://codepad.org/i6XH6wiR 第一引数は 入力ファイル(256色ビットマップか24bitビットマップ)
第二引数は出力ファイル(24bitビットマップ)
です。
なおノイズ云々の処理はしておらず、100〜150 階調の部分を白、その他を黒にしているだけになっています。m(_ _)m
652 :
デフォルトの名無しさん :2010/07/27(火) 22:02:08
>>649 Windowsのファイルシステムにもバッファー(キャッシュ)はあるだろ。
工夫の内容がOSによって違うだろうってことじゃ? 最近のLinuxなら system("sync; echo 3 > /proc/sys/vm/drop_caches"); でメモリキャッシュを解放するとか
キャッシュサイズが既知の場合、参照距離が常にキャッシュ空間を突破するような順番で アクセスすればよさそうだが キャッシュサイズが不明かつ低レベル制御で強制的にキャッシュを殺すのは不可な場合 以下の方針ぐらいしか思い浮かばないな… A) OS起動直後にそのプログラムで時間を計る (対象ファイルがキャッシュされないことを期待して) B) さらに続けてそのプログラムで時間を計る (対象ファイルがキャッシュされていることを期待して) A,B 差がキャッシュ有無にまつわりそうな要素?
656 :
デフォルトの名無しさん :2010/07/27(火) 22:39:48
open("filename", O_DIRECT|O_SYNC);
657 :
デフォルトの名無しさん :2010/07/27(火) 22:46:29
OSが「工夫しなければその差を検出することは出来ない」くらいにしているのに、
わざわざそれを回避して「それが処理速度に大きな影響を及ぼしていることが明確に示せ」って意味不明だろ。
処理速度に大きな影響を及ぼしていないんだろ。
>>649 そこがウザイのではなく、問題文がウザイんだよ。
下記のように素直に書けばいいのにな。
◆素直な問題文
昨今のコンピュータでは、ディスクドライブに直接アクセスする
とは限らず、バッファと呼ばれるメモリを介してアクセスするケースも
多いので、工夫しなければその差を検出することは出来ない。
そこで、工夫してその差を検出する対照実験プログラムを作りなさい。
要するにLinux上でRAMディスクに相当するキャラクタデバイスを 作成して、それと対照実験しろとしか解釈できないな、これって デバドラは処理系依存環境依存だが環境も明示されてるが カーネル再構築が必要?だったらここで扱える宿題のレベル 超えてるかもな。
open("filename", O_DIRECT|O_SYNC); open("filename", O_BUFFERED|O_NOSYNC);←架空のマクロ この2つを比べなきゃ対照実験にはならないよな気が酢
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): (1)3つの整数値を読み込み、数値の大きい順に並べて出力するプログラムを作成せよ。 (2)等比数列の初項から第10項までを表示させなさい。 (3)自然数nを入力し、n!(nの階乗)を計算しなさい。 (4)要素数5個の配列に適当な初期値を入れておき、その最大値および最小値を表示するプログラムを作成せよ。 [3] 環境 [3.1] OS: WindowsVista [3.2] コンパイラ名とバージョン: visualstdio2010 [3.3] 言語: C [4] 期限: 7月28日 9:00 [5] その他の制限: 特になし 自分の頭ではわかりません・・よろしくお願いします
>>661 もちろん、比較するプログラムは作成すべきだけど、
バッファうんぬんの話は
>>656 で解決だと思う。
で、比較する対象が
・ディスクドライブへのread/write
・メモリへのread/write
だから、
>>656 で書き込んだのと同じバイト数だけ、
memcpyなりでもして両方の時間を計るプログラムを書けばオッケーだと思う。
うちの環境がLinuxじゃなくて動作確認できないから、俺は無理。
>>664 解答ありがとうございます。しかし
#include <stdlib.h>
これはまだ授業にでていないので・・・><
stdio.h math.h しか使った経験がありません。
>>664 ヒントとは違う解き方だがヒントだから無視してもいいのか
>>647 >>665 #include <stdlib.b> を使用しないということですから、
N をプログラム内で入力せず、コンパイル時に与えておく形に変更しました。
このプログラムでは N = 1000 に設定しています。
#define N 1000
の行をかえれば、他の N にも対応することができます。
http://codepad.org/1lgZWpSR >>666 ヒントの記述にあわせるべく、
>>664 から一行追加しました。
しかし、基本的には
>>664 もこれもヒントの指定どおり、エラトステネスのふるいです。
668 :
デフォルトの名無しさん :2010/07/28(水) 12:53:55
次の宿題をお願いします! [1] アルゴリズムとデータ構造 [2] 問題 1.英語の文書を読み込み、2.その後指定した長さを入力すると、その長さの単語 の中で、出現頻度で上位3位までの単語を、出現回数とともに出力する。 3.他にその英文に対して新しい機能を追加して実装。 3.の新しい機能はなんでもいいです!ただし、2.と3.は同じコードで同時に実装 できるようにしてください。 [3] WindowsXP、C言語
>>647 なるべくヒントに近く書いてみた。
#include <stdio.h>
int main(void)
{
int sieve[10000];
int i, j, cnt, n;
scanf("%d", &n);
if(n > 10000) return 0;
for(i = 0, j = 2; j <= n; i++, j++) sieve[i] = j;
cnt = i;
while(cnt) {
int temp = sieve[0];
printf("%d\n", temp);
for(i = 1, j = 0; i < cnt; i++) if(sieve[i] % temp) sieve[j++] = sieve[i];
cnt = j;}
return 0;}
670 :
デフォルトの名無しさん :2010/07/28(水) 15:55:32
で、お前ら、怠け者学生の手助けをする暇のある奴はどんな人生を送ってんの? 2ちゃんにへばりついていられるくらい、暇人なんでしょうね。 年金暮らしのおじいちゃん?
その暇人の集まりであるはずの2ちゃんねらから全スルーされたのが枕をしとどに濡らしたほどに悔しかったの? 臍を噬む思いに歯噛みしたの? かみまみた〜って?? ぷくくっ
675 :
デフォルトの名無しさん :2010/07/28(水) 22:29:01
676 :
デフォルトの名無しさん :2010/07/28(水) 22:31:09
>>673 お前に言ってねーよ?あっ、図星を指されたご隠居さんでしたかw
ご自分が育てたご自慢の 優秀な学生 がこのスレで必死に
答えてやっているんですか、是非とも 自分の為に時間を使え と言っておけ。
他人を甘えやかしている間に、時間は過ぎ去り無駄なことにしかならないと
早く気づいて下さいね ♥
677 :
デフォルトの名無しさん :2010/07/28(水) 22:33:32
>>673 なんで”多いんだ”って思うの?カス?意味不明なんすけど?
IDも見えず、書き込む人の素性も分からないこんな場所で
何妄想して(自分の素性、自称優秀な学生)を気取ってんの?w
こんな場所でウダウダしていられる時間があるくらい、暇人なんでしょうね。
稼ぐ奴はこんな場所に常駐してねーよ、もっと現実を直視しましょうねw
頼むから荒れるからスルーしてけろ・・・ケロケロ
>>673 あぁ、自作自演している講師の方でしたか。貴方の優秀な生徒が
このスレを支配していると?優秀ねぇ・・・この程度の課題でw
さぞかし、ランクの高い大学の授業の課題を答えているんでしょうねぇ・・・
このスレでw
ソースをcodepad にすらあげられないくせに意味もなくアげる馬鹿になにを言っても‥‥スルー力が足りませんでした、ごめんなさい。
自分で自分を優秀な学生だと思い込んでいるバカはぁ〜 どこのどいつだぁ〜い?優秀ならこんな場所に来ないわw 答えてやってんだよ?てめぇが過去に解いてもらったのを 丸写しして答えてやっただと?バカかw 点数評価で済む学生はそれで済むが、社会は分かりきった答えの 案件だけじゃないんだよ。優秀な人間は臨機応変に対処できる人のことを言うんであって 自分が知った範囲内で完璧を求めても無駄だってことだ。 まぁこんなスレじゃ話にならん
夏休みですねえ( ´ー`)y-~~
>>683 優秀な学生の条件を満たしていれば優秀な学生だろ。アホ。
なんで、「社会は分かりきった答えの〜」とか言い出してるんだよ。加齢臭臭いんだよ。おっさん。
ぃょぅ、自称優秀な生徒w こんな場所で優越感を感じているようじゃ 将来、社会に出てから営業成績トップが維持できなくなって ファッビョーンしそうで怖いわw お前が思っているほど社会は甘くねーぞ? 所詮、金を稼いだ者勝ちなんだよ。どこに目をつけるか?が重要。 利権についても勉強しようや?お前がいくら自己満足で満足のいく ソースコードが記述できても、金にならないんだよw そう、必要とする人を満足させなきゃ意味ねーの。そんな市販の 教科書に載っているようなコードじゃ金儲けにもならんわw
ん〜〜、優秀な学生さんがいっぱーい♪ 初歩的な課題ばっかり解いて、自分は出来る!(キリッ)なんでしょうねw 優秀な学生さんは、いつか教授になるんですよね? まさか、こんなことが出来たくらいで、霞ヶ関で省庁で働く 官僚になるわけじゃないよね?
人生に失敗したクズのオッサンがいっぱいですね(;・∀・)
分かりきった答えの課題を解いて自分は優秀な生徒です(キリッ) だっておー(バンバン)
690 :
デフォルトの名無しさん :2010/07/29(木) 05:31:13
優秀な学生がこのスレで回答しているんだって なんで分かるんだろうね?性帝トーマスみたいな とっくに学業を終えたオッサンもいるのにw
[1] 授業単元:C言語プログラミング基礎 [2] 問題文:直角三角形の斜辺の長さをcとするとき、 a二乗+b二乗=cの二乗という公式が成り立つ。 1<=c<=30の範囲でa,b,cがすべて整数となるときの値を 求めるプログラムを作成せよ。 ただし、値が入れ替わっただけのものは同じとみなす。 例としてa=3,b=4,c=5とa=4,b=3,c=5など。 この場合はaの値が小さいほうのみ出力する。 [3] 環境 [3.1] OS:Windows Vista Business [3.2] コンパイラ名:visual studio [3.3] 言語:C言語 [4] 期限:明日 (7月30日(金))まで [5]条件:上に書いたとおりです。 よろしくお願いします。
692 :
デフォルトの名無しさん :2010/07/29(木) 09:41:52
>>668 hashtableかなんらかのツリーでやったほうがいいんだろうけど、
素朴な双方向リストで。出現カウントを数えつつ、リスト中の位置を変える。
最終的に出現カウントの多い順に並んだ重複の無いリストを得る。
「出現頻度で上位3位までの単語を」には不完全に対応。新しい機能も無し。
ttp://codepad.org/lR4VrVSx
696 :
デフォルトの名無しさん :2010/07/29(木) 11:24:49
697 :
デフォルトの名無しさん :2010/07/29(木) 11:35:47
>>697 1、unsigned の最大値が 4294967295 (0xffffffff)なので
10億を5回足すと、オーバーフローにより40億より
小さな数字になるから。
2、加算する値を4294967296(4294967295 + 1)にすれば、足しつづけても延々と0のまま
なので無限ループになる
2^31 を加算のほうがよくないかい
そのほうがスマートかもしれないな
そのほうがスマートかもしれないな
連投ミス
>>691 #include<stdio.h>
int main()
{
int i,j,k,l;
for(i=1;i<30;i++)
for(j=i;j<=30;j++) {
if(30*30<(k=i*i+j*j))
break;
for(l=1;l<=30;l++) {
if(l*l<k)
continue;
if(l*l==k)
printf("a=%d,b=%d,c=%d\n",i,j,l);
break;
}
}
return 0;
}
705 :
デフォルトの名無しさん :2010/07/29(木) 16:16:31
707 :
デフォルトの名無しさん :2010/07/29(木) 17:01:18
さすが優秀な学生が記述したソースコードは素晴らしい 是非、その能力を怠惰な生徒が将来、役に立たない人材として 学校を卒業する手助けで使って下さい♪
問題はろくなコードも書けないくせに教える側に回ってる教員が多いこと。 学生は無意味な課題ばかりやらされている。育たないのは当然。 こんなことに時間使わず、他のこと回した方が遥かに有益だね。
709 :
691 :2010/07/29(木) 17:42:29
710 :
デフォルトの名無しさん :2010/07/29(木) 18:04:56
優秀な学生がCでint main()笑
>>710 http://pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
714 :
デフォルトの名無しさん :2010/07/29(木) 18:55:09
いやぁ〜、やっぱ優秀な生徒には敵わないわw 俺なんて大学生時代に2単位しか貰えない週1の プログラム言語(C言語でプログラミング)の授業しか受けてないから さすが高ランク大の生徒のコードは素晴らしい!
学生な
716 :
デフォルトの名無しさん :2010/07/29(木) 19:08:58
あっ、あなたが優秀な学生さんでしたか、素晴らしいですねぇ〜 是非、人格から見習いたいと思います!
717 :
619 :2010/07/29(木) 19:15:38
>>718 GL/glut.h とはどういうものですか?
721 :
デフォルトの名無しさん :2010/07/29(木) 21:17:21
#include <stdio.h> float CelsiusFahrenheit (float x,char op) { float ans=0; if(op=='C'){ ans=9/5 * x+ 32; }else if(op=='F'){ ans=((x - 32)*5/9); } return ans; } int main(void) { float r; char op; printf("数値を代入してください: "); scanf("%f", &r); printf("%.0f 度が「摂氏」なら'C'を、「華氏」なら'F'を入力してください: ", r); scanf("%s", &op); putchar('\n'); if (op == 'C') { printf("摂氏 %.1f = 華氏 %.1f\n", r, CelsiusFahrenheit (r,op)); } else if (op == 'F') { printf("華氏 %.1f = 摂氏 %.1f\n", r, CelsiusFahrenheit (r,op)); } return 0; }
722 :
デフォルトの名無しさん :2010/07/29(木) 21:19:36
>>721 のプログラムなんですが、最後まで出力されるのに英字でDebug Error!と表示されます。
なぜなのでしょうか?
>>722 &op のアドレスに二文字以上代入したから\0
[1] プログラミング宿題 [2] XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点を 格子と呼ぶ。両方が非負整数の点を格子点と呼ぶ。 N>=1としコマンドラインでN個の格子点が与えられるものとする。 (同じ点が与えられた場合はその指定は無視する) (0,0)から出発し格子上だけを通りすべての指定された格子点を1回ずつ通り(0,0)に戻り、なおかつ 同じ点は2度とおらないような経路で最短なものを一つ抽出するプログラムを作成 但し経路において右折が出来ないものとする。 解が無い場合は「不能」と表示すること。(最短経路解が複数あっても、抽出は一つのみで良い) [3] Linux/GCC/ C/C++どちらでも可能 [4]9/16
725 :
デフォルトの名無しさん :2010/07/29(木) 21:24:55
>>722 char op;
なのに、scanf("%s", &op);
として、1文字でも入力すれば、
*op に入力された文字
*(op + 1) に '\0' が入るのでオーバーフローする。
>>721 は根本的に間違っている。
char op[2];
scanf("%s", &op[0]);
が、まだましだが、これでも 2 文字以上入力してしまうと、オーバーフローする。
ちゃんと対応するには、fgets() などを使うしかない。
727 :
724 :2010/07/29(木) 21:40:23
問題文に不備がありました。訂正します。 ×但し経路において右折が出来ないものとする ○但し経路において特定の格子点(x,yのいずれかが5の倍数である場合) 上では右折できないものとする
729 :
726 :2010/07/29(木) 21:53:43
[1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
[1] 授業単元:プログラミング言語(C)
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10894.txt 最小値と最大値を求めるプログラムを作りました。このプログラムの
最小値を求める部分と最大値を求める部分を関数化しようと思うのですが
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
>>132 すいません、途中送信してしまいました。
[1] 授業単元:プログラミング言語(C)
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10894.txt 最小値と最大値を求めるプログラムを作りました。このプログラムの
最小値を求める部分と最大値を求める部分を関数化しようと思うのですが
思うようにできません。
[3] 環境
[3.1] OS:LinuxVine5.1
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
なし
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
なし
こんな時間に、こんな所にも優秀な学生現る!
余程の学歴コンプレックスの持ち主が粘着してるな
優秀な学生 ≠ 高ランク大学の学生 低ランクで優秀とか言われても困るんだよw
>>738 あれぇ〜、お前が言ったんじゃないのか?優秀な”学生”が”沢山”いるって?
自分が優秀な学生の中の一人なんじゃねーの?素性がバレないからって
口からでまかせを言ったつもりが、今、このスレにどんな連中が集まって来ているか
バラしちゃったんだろ?講師に通報して、ここで答えてもらったソースを
丸写しした生徒を落とすんだろ?
どうやって個人特定してるんだろうな
つまり丸写ししたのがばれて単位を落とされた過去がある人物が憂さ晴らししてるってことでおk?
さすが優秀な学生だ、こんな時間まで研究室から書き込んで下さるとは いや、参ったよ。自分も大学院生時代はやったもんだw
頑固爺って長年、自分がそう信じて来たから今さらスタイルを変えるなんて ことはしたくないせいか、自分のスタイルを否定するような意見に噛みついてくるし そうでなくても、自分に意見する、口答えする奴を目の敵にするよな。マジうぜぇ。 時代遅れの役立たずカスはとっとと年金生活に入って、若手に譲れよ。 自民が爺が支配して衰退したのが良い例だw 日本の科学技術の分野に於いて 引き際を間違えた連中のせいで衰退するような事態だけは避けたいよね。
即レス乙
低学歴ジジイ発狂ワwwロwwスww
おいおい、優秀な学生なんだから、当然、単位は優以上、秀ばかりなんだろうな? 可なんて1つもないよね?あったらブゲラッチョだよ?w
749 :
デフォルトの名無しさん :2010/07/30(金) 18:34:31
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): カードゲームのブラックジャックの点数を計算するプログラムを作りなさい。ルールは以下のとおりである。 ブラックジャックは、1〜13の数が書かれたカードを使い、各カードには以下のような点数が割り当てられている。 ・1は、1点あるいは11点 ・2から9は、書かれている数の通りの点数 ・10から13は、10点 このように決められた点数のカードを複数枚持つことで、各プレイヤーの手が決まる。 基本的にプレイヤーの手の点数はっくカードの合計点で表すが、以下のような計算ルールがある。 ・カードの合計点が21より大きくなるときは、手の点数は0点とする。 ・1は1点と計算しても11点と計算しても良いが、手の点数が最大となる方を選ぶとする。 ただし、1つの手に含まれるカードの枚数nは1以上12以下とし、同じ数を何枚でも含むことができるものとする。 手の入力はファイルから行うこと。 入力ファイルの形式は各行に一つの手が書かれているものとし、カード間の区切りはスペースとする。 結果は標準出力(ターミナルの画面)に表示すればよい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年8月2日まで よろしくお願いいたします。
>>743 前から思っているのだが、使う言葉が実体験とはずれているような気がする。
娑婆心ながら付言すれば、大学院生時代とは普通いわない。言ったとしても「院にいたとき」。
オイルインファイヤー
>>742 「単位」という言葉も実感がないのでは?
>>750 回答してる人を学生だと決めつけてる時点で相当にアレだと思う。
とりあえずこういう人とは関わりたくないね。
>>749 手が 1 13 のとき、
結果は単に
21
って出せばいい?
それとも
1 13 : 21
みたいにするの?
>>750 頭おかしいんじゃね?妄想癖のある人?
>>754 優秀な学生が多いといった奴がアホなだけだろw
>>754 >>673 673 名前:デフォルトの名無しさん 投稿日:2010/07/28(水) 18:41:06
>>670 中には優秀な学生も多いんだカス
過去ログはしっかり読みましょうね。お前とも関わりたくないね。
自作自演厨
ブラックジャックを略すとなぁ、ブラジャになるんだよ、覚えておけ
おい、童貞ども。喧嘩はやめるんだ!!
>>673 が言ったんだろ、優秀な学生が多いってな。
だから回答者に「優秀」な「学生」が多いんだろ?
同じ学校の授業で、別の生徒が質問したのを答えて
そいつがここのを丸写ししたのを講師にチクって落とさせてんだろ?w
そっちの方がキモイわ。それから、性帝トーマスは口を慎め。
キモイぞオッサン
761 :
デフォルトの名無しさん :2010/07/30(金) 20:37:21
そりゃ、さぞかし優秀なんでしょうね、答えられたくらいで 天狗の鼻を伸ばしているようじゃ、社会じゃ通用しませんよ? 学業で優秀=有終の美を飾れる人生を送れる とは限らない。 学生時代、平凡だった俺が大金持ちになっているから むしろ運命を重視するよ。もちろん、必要最低限の知識は必要だが。
762 :
デフォルトの名無しさん :2010/07/30(金) 20:41:16
あっ、1つ言っておく。年商1億円は下らない、年収1000万円は下らない 政治家や官僚、その他、大儲けしている人から見ればまだまだ 雑魚レベルですが、生活には困ってません。金が有り余って 使い道に困っているのは事実ですが。そんな俺でも趣味程度で C言語はやるが、プログラミングで稼ごうとしていないんで それほどでもありませんがね。一応、大学生時代のプログラミングの授業の成績は 「秀」で最高でしたよ。
採点してやるよ。お前が答えたのどれだ?
大金持ちって自分で言う場合、たいしたことないことが多いよね 都会に住んでて趣味で船持ってるレベルならすごいとおもうけど
765 :
デフォルトの名無しさん :2010/07/30(金) 20:45:38
優秀な学生なんでしょ?あんたが?自分がそうでもないのに 書き込みだけで相手の素性なんて分からないのに、勝手に そうだと思い込んじゃった訳?本当は学校の講師が、生徒が このスレに投稿する前に書き込んで、模範解答を自作自演で 自己レスして、それを真似た生徒を落としているんでしょ?w リモホで学校もバレバレw
>>764 第一、金持ちと言っても親の代からある利権、財産を引き継いだ
ペーペーが社会勉強もせずに、のうのうと生きていると
いずれその子孫はだらけて一族が消滅するか、利権の争いで
殺人事件まで発展するのがオチさw
あと、金持ちとは言ってないから。年商1億円は”下らない”
年収1000万円は”下らない”(実際は平均それ以上)ってだけで
今後も続けば我が一族は余裕で金持ち、億万長者w
次は何をすると思う?そう、資産運用。金が金を生む運用に切り替えるんだよ。
遊んでても金が舞い込んで来るぜ!汗水垂らして働くのは従業員で経営者じゃないの。
ねっ、世の中って不平等でしょ?法の下に平等、利権、経済力の下に不平等と
しっかり義務教育で指導すべきですよw
言えば言うほど…w
図星を指されたのか、静まり返ったな。自作自演講師乙。 お前は優秀な学生だったのかもしれないが、お前の生徒は 優秀にはなれんな。
>>766 >あと、金持ちとは言ってないから。
>>761 >学生時代、平凡だった俺が大金持ちになっているから
成金ってやつだよね
実際はそこまで儲けてないみたいだけど
770 :
デフォルトの名無しさん :2010/07/30(金) 21:14:32
スレ違い
自分がどこまで知識を身につけたかなんて、自己満足だろ? いずれ己の肉体もこの世から消滅するんだよ。 それよりも金だよ金。カネな。本物の金(きん)でも良いけどさw 自分一人が出来ることってちっぽけだろ?金持ちだからって 万能、優秀じゃないんだぜ?病気、怪我、老化、時間の流れにしろ 条件は違えと基本、条件は同じなんだよ。分かったか? 脳みそバーンしちゃえば終わり。自動車に轢かれたらただじゃ済まない。 そうならないように、賢く生きるんですよ。 で、コードをいくら書いても、収入や人徳が上がる訳でもなかろう?それが現実。
一人何役やってるんだよw
何か変だな。状況は違えど基本や条件は同じ。 ただ自分が優劣でどちらに属するか?遺伝子でも優劣について学んだよな? 劣勢でも何とかなるもんだよ。カネと権力がありゃな。
本当に遺伝子の優劣について学んだのかな? まぁ学んだのは中学生とかだろうから忘れただけだよねきっと
噛みつく相手を間違えると、返り討ちにあいますよ? 己の技量を見誤って驕り高ぶった、消えていった人もいます。 謙虚さが無い人は、弱いくせに粋がっている癖に 失敗するから笑われるんですよw
おいおい、スレが伸びていると思ったらこんなとこで言い争いか? ここはC言語の宿題をするためのスレだぞ。日本語わかります? 醜い言い争いなんざ見たくねえや。 他でやってくれ。
>>775 >謙虚さが無い人は、弱いくせに粋がっている癖に
>失敗するから笑われるんですよw
金持ち発言のことですよね
私もああならないように気を付けます
ぷっ、フェラーリ、ランボ相手に軽自動車が赤信号でレースを挑むようなもんだろw やめとけやめとけ。まぁ、バイクでもリッターなら3000ccレベルの四輪には 勝てるだろうけど、速度からして危険だしな。キモイ奴には関わらないのが一番。
>>735 http://codepad.org/4lwC9a1p c++ には慣れていなくて、c 臭さが抜けていなくてごめんなさい。
std::string を使おうとして挫折しました。(strtok() を忘れることができませんでした。)
try - catch を使おうとして挫折しました。(goto を忘れることができませんでした。)
>>773 主観的な表現ですが、社会生活の上で劣勢とみなされる形質と劣勢形質とに相関はあまりないと思うのですが。
>>779 std::stringにはboost::stringtokしかないからそれでいいよ
>>778 自分自身が、あなたのいうところの「キモい奴」だったらどうすればいいのでしょうか?
>>772 前はずっとあげていたんですが、最近になって sage を勉強したようですね。
>>772 自分のレスが複数の人間から集中砲火をあびているという事実を直視できず、特定の一人が沢山のレスを量産しているとしか考えられないようですね。いやいいんですけどね。
>>786 pgm を題材にする、という時点で、pbm や ppm をも視野にいれたコードにしたかったし、
ファイルを読み込んで、その内容に従ってオブジェクトを再設定するときに、自分自身をコンストラクタに渡したかったし、(そんなことできるんですかね?)
ちゃんと例外を使いたかったし、
いろいろ妄想はわいたのですが、何一つ実現できませんでした。
789 :
デフォルトの名無しさん :2010/07/30(金) 23:17:17
>>787 それ、お前のことだろ?w
優秀な学生さん?
790 :
デフォルトの名無しさん :2010/07/30(金) 23:19:14
>>787 IDも無くこのスレを見ている人数も把握できないのに
何勝手に妄想してんの?優秀な学生さん?
791 :
デフォルトの名無しさん :2010/07/30(金) 23:26:26
>>787 さすが優秀な生徒。言うことが一味も二味も違うぜ。いや、そこまで妄想できるなんて。
要するにお前が複数を装って集中攻撃しているってゲロって自白してんだろ?
なぁ、自作自演で課題を出して答えている暇人。
自演うぜえ。 一人でどんだけ書くんだよ
793 :
デフォルトの名無しさん :2010/07/30(金) 23:30:51
そもそも、業務がどうとか言うが、業務でやっている人っているの? ソフトウェア会社だって、必ずしも効率の良いアルゴリズムが 使われているとは限らないし、完璧ではないというのは リリース後に何かしら不具合や修正があって、パッチで処理することもあるくらい この世に完璧はない。それどころか、ここで出されるようなものが そのままそっくり使える訳じゃない。独自で仕様を考え、それを具体的にコードにする。 作業分担で各パートごとに求められたルーチン、モジュールを開発する。 そういうもんだよ。各々は本当に単純な作業。
あんまり回答しないけど業務でやってるよ
>>724 俺には難しすぎるので、数学板でアルゴリズムを聞いた方がいいと思う
右折禁止ルールのおかげで、可解か非可解を決定するだけでも難しい
797 :
デフォルトの名無しさん :2010/07/30(金) 23:52:55
ほほぅ、それで?優秀な学生は多数いるんだろ? その優秀な学生で特定できない誰かを集中攻撃したと? なるほどなるほど、同じ学校の優秀な学生は陰険で悪質ですね。 是非、学校にそういう愉快犯がいると通報しておかねば。 リモホ、アクセスログがバレバレだから、通報も簡単ですね。
>>796 右折禁止ということから
指定の格子点全てが長方形の辺上にあるかどうかを調べればよい
と思うよ
>リモホ、アクセスログがバレバレ 是非さらしてください
800 :
デフォルトの名無しさん :2010/07/30(金) 23:55:49
801 :
デフォルトの名無しさん :2010/07/30(金) 23:56:09
>>755 単に
21
と出して頂ければいいです。
自作自演とか優秀とか関係ない。 人の回答についていけず将来的にも無理だと思うからそう思うんだよ。 煽り方も夏厨レベルだし粘着せずにプログラムの勉強したら?
803 :
デフォルトの名無しさん :2010/07/31(土) 00:04:01
良い線言っているんだけどいまいち、もう一歩ってのがあるのは 学生向けにレベルを落としているからなのかもしれんが 素人の俺でもそのコードは効率が悪いって気づくことはあるぜ?
>>798 単純な右折禁止ならそうなるな。
でもこの場合はnの倍数の時だけ右折禁止だからめんどい。
そもそも右折禁止ルールが無いシンプルな問題なら、
ブラウン管テレビの走査みたいにすれば絶対に経路はある。
そこに、倍数での右折禁止ルールが加わると、
可解かどうかを決定するだけで俺はお手上げ。
807 :
デフォルトの名無しさん :2010/07/31(土) 00:40:46
>>724 >>727 が無ければ、
前回の点P1(x1, y1), 現在の点P2(x2, y2)、次の点P3(x3, y3)として、
ベクトルP1→P2から、ベクトルP2→P3の角度(0<=θ<180)が最小となるP3を次々選べばいい。
答えは(0, 0)から始まる左回りの渦巻になる。
>>727 があるなら、基本的に巡回セールスマン問題なんじゃないの?
全組み合わせを求めて最小値を求めるしかないのでは。NP完全だけど。
>>807 >>727 がない場合は、格子点しか通れないという条件と
(0, 0)に戻る条件に違反してるから間違ってる。
その場合は、
>>798 にすでに正解が出てるよ。
>>727 がある場合も、単純な巡回セールスマン問題ではないよ。
経路が交差してはいけないし、2点取り出したときに結ぶ経路も1つではない。
809 :
デフォルトの名無しさん :2010/07/31(土) 01:18:20
>>808 > 格子点しか通れないという条件と
格子点しか通っていないよ?
> (0, 0)に戻る条件に違反してるから間違ってる。
これは見落としていた。
> その場合は、
>>798 にすでに正解が出てるよ。
長方形の辺上に限定する必要ないよね?
>
>>727 がある場合も、単純な巡回セールスマン問題ではないよ。
> 経路が交差してはいけないし、2点取り出したときに結ぶ経路も1つではない。
確かに経路は一つではないかもしれないが、すくなくとも直線か、左曲がりの曲線だよね。
あと、経路が交差してはいけないなんて条件書いていないのでは。
810 :
デフォルトの名無しさん :2010/07/31(土) 01:19:12
で?お前はブラジャの課題が出来たの?
811 :
デフォルトの名無しさん :2010/07/31(土) 01:20:12
813 :
デフォルトの名無しさん :2010/07/31(土) 01:25:27
>>812 何を?具体的に言わないと分からないよ。反論があるならハッキリと。
814 :
デフォルトの名無しさん :2010/07/31(土) 01:27:03
>>802 意味不明。日本語でおk。それから自己紹介乙。
粘着や罵倒はお前の方がやっていることだろ?
何自分は悪くありませんみたいな、白々しい自作自演をしているんですか?
お前こそ勉強しろよw
>>809 格子点しか通れないの意味は、
θ=0かθ=90しかないって意味だよ。
2点間を一直線に進んだら、格子点以外を通っているかもしれないじゃない。
上の条件と、(0, 0)以外2回通れないということから、交差が許されない。
816 :
デフォルトの名無しさん :2010/07/31(土) 01:29:21
>>802 何言ってんだ?こんな個人を特定できないスレで
粘着されたとか、ストーカーされているとか妄想しちゃうタイプ?
大丈夫、お前が誰かなんて第三者には分からないから。
まあ被害妄想なんてしちゃうくらい、お前は自分で自分を
優秀な学生と自称しちゃったお痛いちゃん?w
誰もお前みたいなゴミクズなんて相手にしている暇はねーから
せいぜいこんなスレで自分は一生懸命ソースを書いて
堕落した生徒をますます堕落させて単位を取らせて
駄目な人材を作ってしまっています!宣言してろよw
お前のオナニーレスなんていらねーよ
>>813 分からないなら分からないでいいから
首を突っ込まないで
818 :
デフォルトの名無しさん :2010/07/31(土) 01:31:31
>>802 ぃょぅ、自称”優秀”な”学生”さん?本当はどっかの低レベルな学校の講師なんだろ?
お前が育てたゴミクズ生徒が下手なプログラムで世を混乱させないように
しっかり面倒見ぃ〜やぁ。こんなスレででけぇ口叩いて偉そうにしていられるのは
このスレが低レベルだからだろ?と同時にお前も低レベルだがなw
精神レベルも技術面でも。まともな人間ならこんなゴミクズスレで偉そうにしてないよ。
それなりの場所で金儲けのために高度なコードを書いているからw
プッ、ププッ、高度なコード、ちょっと自分でもウケたw
820 :
デフォルトの名無しさん :2010/07/31(土) 01:34:25
まぁこのスレの流れをここ数年間見てきたけど、相変わらず常駐している住人は 精神レベルも低いようだなw 同じ課題を何度も解いている内に、自分が出来る人間だと 勘違いし始めたようだ。複数に攻撃されているって、誰のことだよ? あっ、お前のことかw だから自分は自作自演である一人を叩いてムキになっちゃたと 自己紹介しちゃって、恥ずかしいねw こんなスレで大きな顔をしていられるけど、現実世界では虐められっ子のチビなんだろ? 高収入、金持ちがこんな場所で偉そうにはしないもんなw 俺みたいにw
821 :
デフォルトの名無しさん :2010/07/31(土) 01:34:32
>>815 > 格子点しか通れないの意味は、
> θ=0かθ=90しかないって意味だよ。
そんな意味
>>724 のどこにも書いていないよ。
> 2点間を一直線に進んだら、格子点以外を通っているかもしれないじゃない。
格子点以外選ばなければいいのでは。何故、格子点以外をわざわざ通るの?
> 上の条件と、(0, 0)以外2回通れないということから、交差が許されない。
同じ点を通れないだけで、交差が許されないなんて問題文にない。
824 :
デフォルトの名無しさん :2010/07/31(土) 01:40:34
ここで偉そうにしている奴は、自分が多数回答しているからって事で 驕り高ぶっているだけだろ。レスを見る限りじゃ、かなり低レベルなコードだぞ。 本当にまともにアルゴリズムを学んだか、怪しいものも少なくない。 俺が答えないのは、数年前にとっくにいくつも答えたからだよ。 今さら答える気もないが、低レベルなコードを指摘して後だしすると 後だししたことを妙に噛みついてきた基地外がいるからやらないんだよ。 バカの相手なんてしている暇ねーし。参考までにどんな課題があるか見るが それも講師の自作自演と来た。最低だな。そんな詰まらない人生を歩んでいて 楽しい?
825 :
デフォルトの名無しさん :2010/07/31(土) 01:44:42
かなり前に、ある値まで加算した剰余を求めるコードを 麻呂が書き換えて出したら、妙に噛みついてきた基地外もいたしな。 ああいうのがまだこのスレを支配した気になってんだろ? 2ちゃんもこのスレも誰か個人の所有物でもテリトリーでも 管轄、管理下にあるものでもないんですけど?ちったぁ黙ってろよ 自称優秀な学生さんw
>>724 格子は
>x,yのどちらか一方は少なくとも非負整数
であり、最終的に原点(0, 0) にもどってこなければならないことから、
x >= 0 かつ y >=0
と考えていいでしょうか?
まっ、麻呂の肛門、封鎖できません ><; クソースが放出されそうです ><;
>>827 格子は
x >= 0 または y >= 0
の点
格子点は
x >= 0 かつ y >= 0
の点
>>821 問題文よく読んでください。
> (0,0)から出発し格子上だけを通り…
与えられた点は、すべて格子上にありますから、
あなたの論理で正解ならば、上記条件は不要です。
例えば、(2, 3)の1点が入力だとして、
(0, 0) → (2, 3)と一直線に進むような移動はダメなのですよ。
例えば、(0, 0) → (0, 1) → (0, 2) → (0, 3) → (1, 3) → (2, 3)
のように進むということが求められているのでは?
クルクルパー、暇人じゃないから自称「優秀」な「学生」になんて 付き合ってられましぇ〜ん。誰が優秀な学生かもこちらからは 見分けがつきませ〜ん。粘着しているのはむしろお前の方だろw こんな時間に起きて、怠け者の相手をしていられるご身分の方には 敵いませんよ。なんせ、毎日忙しいけど年商1億円は下らない 年収1千万円は下らない、まだまだ貧乏人ですからw
833 :
デフォルトの名無しさん :2010/07/31(土) 01:55:37
>>831 > 例えば、(2, 3)の1点が入力だとして、
> (0, 0) → (2, 3)と一直線に進むような移動はダメなのですよ。
何故?
その移動を禁止する条件は
>>724 には書いていないけど。
> 例えば、(0, 0) → (0, 1) → (0, 2) → (0, 3) → (1, 3) → (2, 3)
> のように進むということが求められているのでは?
いいえ。問題文ではそのようなことは求めていないよ。
>>833 肝心なところを読み飛ばしてるって。
じゃあ、わざわざ「格子上だけ通り」と、出題者が書いた理由を説明してごらんよ。
>>807 > 格子上だけを通り
を無視して、自由に移動できるとした場合でも、
星型の各頂点を格子点としたとき、2重の渦巻きと星型を描くのはどっちが短いと思うの?
838 :
デフォルトの名無しさん :2010/07/31(土) 02:02:13
>>807 の続き
最短かどうかは分からないけど、
左回りの渦巻の中心から最後の点から(0, 0)に戻るときに、
右折しない、つまり左曲がりの曲線で既に通った格子点を避けながら(0, 0)に戻れば
一応一つの経路は求まるね。
ゴメンねゴメンねぇ〜、年収1000万円程度の貧乏人の雑魚で。 自動車も200万もしない安物で、2〜3千万円程度の住居が2つしかなくて ほんと貧乏でゴメンねゴメンねぇ〜、プログラミングも10年以上やっているけど こんなスレが幼稚に見えて、ゴメンねゴメンねぇ〜
>>839 よく分からないけど熟練のプログラマ、しかもお金持ちさんにスレをみていただいてうれしい限りです。
もっといいプログラムが書けるように努力しますので、過去数年と同じように今後も何年も居続けてくださいね^^
842 :
デフォルトの名無しさん :2010/07/31(土) 02:06:47
>>837 >
>>807 >> 格子上だけを通り
>を無視して、自由に移動できるとした場合でも、
その条件を無視したらダメだろ。
>星型の各頂点を格子点としたとき、2重の渦巻きと星型を描くのはどっちが短いと思うの?
なるほど、星の凹んだ部分の格子点でも、左曲りの曲線で180度以上回転すれば、右側にある点に行けるのか。
それなら、星型を描いてもいいね。
でも、その場合は、完全に巡回セールスマン問題だろう。
>>842 >>807 ではそれを無視しているよね。
その上で、渦巻きを描くのが常に最短だといっているから、
それはおかしいよと指摘をしただけだよ。
なにも無視して回答しようなんていってない。
お金持ちが居るから緊張してんの?
麻呂のクソースにも劣るゲリソースw 高度なコードでも書いてみろよ〜w
846 :
デフォルトの名無しさん :2010/07/31(土) 02:13:55
>>843 >>807 では無視してないよ。格子上しか通っていない。
何を以て無視していると言っているのか分からない。具体的に示してほしい。
格子点を通る ==格子点上を通る 格子点を通る != 格子上を通る この違いが分かってないんじゃないの
848 :
デフォルトの名無しさん :2010/07/31(土) 02:21:31
>>847 >>830 なのだから、格子⊃格子点だよね。
だから、
「格子点上を通る⇒格子上を通る」は真
「格子上を通る⇒格子点上を通る」は偽
だよ。
ああ、
>>830 を鵜呑みにして、ここで言う格子は一般的な格子じゃないと思ってる?
なら、右折はどこまでが右折なの?
優秀な学生さんの高度なコードには敵いませんよw
さ あ 、 も り あ が っ て ま い り ま し た
>>848 「格子上だけを通り」が何の意味もなさない言葉になるな。
みなさんのおかげで ログを消す行動に移る決心が出来ました 本当にありがとうございました
854 :
デフォルトの名無しさん :2010/07/31(土) 02:28:46
>>849 ここで言う格子は、
>>724 で定義している通り、
「XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点」だよ。
>>850 ただでさえオヤジギャクな上に、なんども繰り返すなんて、加齢臭満載ですね。
>>852 私もそれは指摘したのですが、スルーされました。
素直に
>>848 を説得するのは諦めて、
>>848 だけ単なる巡回セールスマン問題を解いてもらいましょう。
857 :
デフォルトの名無しさん :2010/07/31(土) 02:32:24
>>856 俺としては
>>848 に格子上のみを通り、別の格子点へ
どうやって移動するのかを聞くまでは諦めないよ。
>>848 の知恵をもってすれば、
格子(=点)から格子(=点)へ、格子点(=点)の上のみを使って移動できる
というのだから。
859 :
デフォルトの名無しさん :2010/07/31(土) 02:34:10
860 :
735 :2010/07/31(土) 02:34:26
>>779 書いてくださったのはありがたいんですが、実際のところメインはLanczosの実装なんです。
クラスと関数はある前提で使っていいので…
>>859 格子点が格子に含まれるって自分で言ってたじゃないか。
いい加減、わざわざ言う必要のない条件になると気づいてよ。
金持ちどこいった
せめてID表示されればいいんだが
>>858 点と点を直線で結ばなければならない条件はない、といわれるのを待っておくといい
866 :
デフォルトの名無しさん :2010/07/31(土) 02:44:16
>>861 格子点(x >= 0 かつ y >= 0)を渡り歩くのに、格子(x >= 0 または y >= 0)上だけを通っていいんだよね。
(ただし、x,yは非負整数)
言ってるのは
>>724 だからその真意はわからないけど、わざわざ書いているのだから「格子上だけを通り」に何らかの意図があるんでしょ?
868 :
デフォルトの名無しさん :2010/07/31(土) 02:48:36
>>867 了解。じゃあ引っ張らずに率直に言う。
>>831 (0, 0) → (2, 3)
がダメなら、
(0, 0) → (0, 1)
もダメだよね。
「→」の部分は格子(XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点)ではないから。
(3.2,4.1)格子ではない (3,4.1)格子 (4.5 2)格子 (-2.1,6)格子 (-1.3,-2.1)格子ではない (-1,-1)格子ではない (1,1) 格子かつ格子点 (0,-1) 格子かつ格子点 格子に属する点のみを通れる。 目的点は第四象限には置けないことになる。(格子点が無いから)
>>854 ああ、今改めて理解した。
やっぱり普通の格子なんだな。
871 :
デフォルトの名無しさん :2010/07/31(土) 02:54:32
>>869 了解した。
なるほど。他方は何でもいいんだ。
第四象限じゃなく第三象限だたw
>>868 XYのいずれかが非負整数であるような点の集まりがどういう形状になるかが理解できなかったのか
>>817
>>868 (0, 0) → (0, 1) の矢印は格子だろ。ちゃんと頭使え。
(0, 0.1) 格子
(0, 0,11) 格子
…
(0, 1) 格子かつ格子点
>>869 格子の交点 -> 格子点
格子点 -> 目的点
と言い換えたならそう書いてくれないと。
で、目的点は第一象限にしか置けないよ。
第二象限、第四象限を通るルートはこの問題において合法だよ。
>>871 次からは「正しく曲解」できる場合のみ偉そうに、かつ情報を小出しにしような。
じゃないとただの頭悪い子にしか見えないから。
兎も角この種の探索問題は、ガベジコレクタ付きの処理系を前提とした 言語(C#/Java/etc)で下書きしてから書き直したほうがいいかも メモリ管理とアルゴリズム考案は同時にやるのはよしたほうがいい いきなりC/C++で書かせる講師はちょっと教師として問題あるか、 自分じゃあんまりコーディングしたことが無い人じゃね?
879 :
デフォルトの名無しさん :2010/07/31(土) 03:10:27
>>876 曲解している間は、正しいと思っているから、『「正しく曲解」できる場合のみ』というのは難しいよ。
>>877 たいしてメモリ管理すべきところないような?
総当りでいいと思うよ。
総当りがいやなら各格子点間の最短距離を別途マッピングしておいて枝刈りに使うぐらいで。
C/C++に慣れると得てして本能的にメモリ管理が面倒いアルゴリズムを回避しようとする癖が付きやすいって話聞いたことがある それで意外にうまくいってしまうところがとてつもない落とし穴だったりする って奴
>>879 「曖昧な定義で複数の解釈ができ、どちらも正しい場合のみ」
って書かないと頭悪いからわからないか?
彼あちこちのスレにいるようだな。ある意味すごいわ。
格子と格子点の意味がわかってないアホが暴れただけか。 日本語としての格子の意味もわかってなさそうだな。
すげぇレスが溜まってると思ったら、これかよヽ(゚∀゚)ノ
格子と格子点が分かっていない、というよりは マンハッタン距離・ユークリッド距離という単語が一つも出てこないところに泣いた
格子の問題だってわかりきってるのに、そんな単語を持ち出す理由がない
>>888 わざわざこういう解説しなきゃいけないってことは
持ちだして説明した方が手っ取り早いよ
>例えば、(2, 3)の1点が入力だとして、
>(0, 0) → (2, 3)と一直線に進むような移動はダメなのですよ。
>例えば、(0, 0) → (0, 1) → (0, 2) → (0, 3) → (1, 3) → (2, 3)
>のように進むということが求められているのでは?
そういう解説が必要な相手にマンハッタン距離とかユークリッド距離とか 通じるわけねーだろw
891 :
デフォルトの名無しさん :2010/07/31(土) 09:29:27
>>887 いや
「XY平面において座標値(x,y)のうちx,yのどちらか一方は少なくとも非負整数であるような点」
を
「XY平面において座標値(x,y)のうち整数x,yのどちらか一方は少なくとも非負整数であるような点」
と読み違えたのが敗因
893 :
デフォルトの名無しさん :2010/07/31(土) 10:31:41
>>892 そうじゃなくて、
「問題文を厳密に読まずに勝手に方眼の問題と勘違いしている連中を、
問題文を厳密に読み取ればドット方眼の問題であると読み取れたこの俺様が釣ってやろう。
(多分問題文の誤記だけどな。)」ということ。
結果は俺が読み間違えていた。
>>853 もうこなくてもいいよお。
あと、こっちではこのスレのログは消さないようにしておきますからね。
>>893 問題文を厳密読み取ろうとしたら、みんなと同じ解釈にしかならんだろ。
単に、釣ろうと思って曲解して、正しく条件文を読み取れなかった頭の悪い人だってこと。
釣りしてるつもりの人が、逆に釣られたことに気づいてなかったんだよ。
宿題スレって問題文正しく読み取れないヤツ多いよな。
897 :
デフォルトの名無しさん :2010/07/31(土) 12:22:28
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
下の写真のようなバス路線があるとする。
停留所は10か所で、それぞれ0〜9までの番号が付いている。
バスは停留所0で折り返し運転をする。
反対側は循環路線になっており、写真のように5→6→7→8→9→5のように循環する。
このバスの路線について、乗車する停留所と降車する停留所の番号を入力とし、乗車から降車までに通る停留所の番号を出力して終了するプログラムを実装しなさい。
0〜5の停留所では、より短い経路で降車停留所に到着する方向のバスに乗ることとする(例えば、停留所4から停留所2に行くには、左方向に進むバスに乗る)。
一度乗車したら途中下車はしないものとする。
また、同じ停留所を乗車停留所と降車停留所に指定することはしないものとする。
写真は、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm のこのスレのタイトルのNo.10898です。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年8月2日まで
よろしくお願いいたします。
898 :
デフォルトの名無しさん :2010/07/31(土) 12:30:28
>>897 できた(値の範囲チェックはしていない)
#include <stdio.h>
int main(void)
{
int busstop[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 4, 3, 2, 1};
int start_array_index=-1, end_array_index=-1, start=0, end=0, i;
scanf("%d", &start);
scanf("%d", &end);
for(i=0;;i++)
{
if(busstop[i]==start) start_array_index=i;
if(busstop[i]==end && start_array_index>=0)
{
end_array_index=i;
break;
}
}
for(i=start_array_index;i<=end_array_index;i++)
{
printf("%d\n", busstop[i]);
}
return 0;
}
901 :
900 :2010/07/31(土) 12:58:41
>>899 と
>>900 のソースの長さの差は
一体どこに起因するんだろう
データテーブルとアルゴリズムを工夫すれば
より短くて把握しやすいプログラミングができるのな。
ロータリー部分が直列で5,6個付いた時は
>>900 のデータテーブルは殆ど破棄かな
マのレベルがみれて楽しいヨ。
>>897 単純に
#include <stdio.h>
int main(void)
{
int start, stop, i;
scanf("%d%d", &start, &stop);
if(start > stop) {
if(start <= 5) {
for(i = start; i >= stop; i--) printf("%d ", i);
}
else {
for(i = start; i <= 9; i++) printf("%d ", i);
for(i = 5; i >= stop; i--) printf("%d ", i);
}}
else {
for(i = start; i <= stop; i++) printf("%d ", i);
}
putchar('\n');
return 0;
}
ちょっと条件抜けてた #include <stdio.h> int main(void) { int start, stop, i; scanf("%d%d", &start, &stop, i); if(start < stop) for(i = start; i <= stop; i++) printf("%d ", i); else { if(start <= 5) for(i = start; i >= stop; i--) printf("%d ", i); else { for(i = start; i <= 9; i++) printf("%d ", i); if(stop <= 5) for(i = 5; i >= stop; i--) printf("%d ", i); else { printf("5 4 3 2 1 0 1 2 3 4 5 "); for(i = 6; i <= stop; i++) printf("%d ", i); }}} putchar('\n'); return 0; }
905 :
デフォルトの名無しさん :2010/07/31(土) 14:05:54
やっぱり、経路の構造は、ロジックよりもデータに入れたいな。
906 :
デフォルトの名無しさん :2010/07/31(土) 15:02:27
いやぁ年収1千万円は下らない俺でも、その問題は解けないわぁ さすが優秀な学生には敵いませんよw
[1] 授業単元:プログラミング [2] 問題文: ・入力された数値(少数を含める)の平方根を求める。 ・プログラムの終了はctrl+z ・平方根を算出するアルゴリズムはニュートン法とする。 ・求める平方根の精度は小数点以下8桁 ・虚数解はエラーと表示する [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ:VC6.0だったと思います [3.3] 言語: C [4] 期限: 明日中 [5] その他の制限:特になし 自分ではできませんでした。どうかお願いします。
909 :
デフォルトの名無しさん :2010/07/31(土) 16:44:29
年収1000万円は下らない俺はもうプログラミングすらする必要ないんだわ。 下っ端に今まで俺がやってきた功績を見せつけ、教え、指導して 俺は扇動するだけ。ついでに片手で扇を仰いでリラックスリラックス♪ ぼけぇ〜っとしていても金が入ってくる♪
俺も大体そんな感じだけど、一応いざとなったら いつでも部下の尻拭えるように身構えてはいるよ。
911 :
デフォルトの名無しさん :2010/07/31(土) 16:59:40
>>855 いや、だって、高度なコードってwwwww
こんなバカに人を指導なんてできるわけねーだろw 妄想は脳内だけにしとけよ
>>909 年収1千万って立派な低脳ってことだな
世界基準の高脳の年収は100万ドル以上
負の数が入力された場合だろ
>>908 念のため確認
>求める平方根の精度は小数点以下8桁
これは有効数字8桁って意味でいいのん?
918 :
908 :2010/07/31(土) 20:10:58
>>918 求めた平方根の実数部分がすでに8桁に達している場合、
・それでも小数点以下8桁を求めるのか、
・それとももうすでに8個の数字があるから(有効数字8桁だから)、小数点以下は求めないか
の違い
XnとXn+1の差が0.00000001未満になりゃいいんじゃねーの
921 :
908 :2010/07/31(土) 20:42:46
は?
>>918 #include<stdio.h>
#define EP 0.00000001
int main()
{
double x,x1,x2;
int i=0;
printf("input number: ");
if(1!=scanf("%lf",&x))
return 0;
if(x<0)
printf("ERROR\n");
else if(x==0)
printf("0\n");
else {
x1=x;
for(i=0;i<20;i++) {
x2=x1;
x1-=(x1*x1-x)/(2.0*x1);
if(((x2>x1)?(x2-x1):(x1-x2))<x1*EP)
break;
}
if(i<20)
printf("%.7e\n",x1);
else
printf("failed\n",x1);
}
return 0;
}
923 :
908 :2010/07/31(土) 20:49:10
説明不足ですみません。
>>920 さんが言っているのが正しいです
925 :
908 :2010/07/31(土) 21:22:31
へ?
926 :
デフォルトの名無しさん :2010/07/31(土) 21:29:34
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 任意のnに対して、正則なn次正方行列の固有値を求めるプログラムを作成しなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年8月2日まで [5] その他の制限:特にありません。よろしくお願いします。
>>927 Image_pgmクラスってのはC++に標準に入ってるモンなの?
ついでに、サンプル画像とそれを見れるビューワも無いと
いろいろと確かめようがない
932 :
908 :2010/07/31(土) 23:15:04
>>922 ありがとうございます。
課題の仕様通りに動きました。
は?とかのレスは私ではありません。
本当にありがとうございました。
C言語でint main()笑
カレンダー、素数、双方向リスト、はよ来いやー!
>>933 >>721 http://pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
>>938 ISO/IEC 9899TC2
5.1.2.2.1 Program startup
1 The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
(中略)
or equivalent;
or in some other implementation-defined manner
とある。この "or equivalent" の記述を根拠に、int main(void) に ISO/IEC9899 6.7.5.3 14 の項目を適用してもいいかどうか、が問題となっている。
私見では、main() も function の一種であることが 5.1.2.2.1 で明言されている以上、6.7.5.3 14 も適用できるはずであるが、いかがだろうか?.
毎度思うんだけど、TC2って何?
941 :
デフォルトの名無しさん :2010/08/01(日) 04:11:09
うぜぇからトリップつけろよ、構ってちゃん。
942 :
デフォルトの名無しさん :2010/08/01(日) 04:12:07
>>940 たぶんドラフトである、ということだろうが、TC2 が何の略かはわからなかった。
私とて、ドラフトではなく、規格そのものを引用したかったのだが、すぐに手に入る状況ではないのが残念。
お持ちの方で、もしよければ、該当部分を教えてくださいな。
結局、C言語の int main() って正しいの? それとも間違ってるの?
int main() は int main(void) と同じって、ほんと? 空のリストは0個以上の引数、void は明示的に引数が無い(0個) って理解してるんだけど、間違い?
>>946 >>935 を参照してください。関数定義のときは int func() は int func(void) と同じです。
こういう不毛な論争でスレが流れるのがバカらしいから、 int main(void)とreturn 0;にしてる。
>>947 英語がよく分からないけど、そう理解しました。ありがとう><;
ISO/IEC 9899:1999 (E) 5.1.2.2.1 Program startup 1 The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters: int main(void) { /* ... */ } or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared): int main(int argc, char *argv[]) { /* ... */ } or equivalent;9) or in some other implementation-defined manner. 9) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as char ** argv, and so on. 6.7.5.3 Function declarators (including prototypes) 14 An identifier list declares only the identifiers of the parameters of the function. An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied.124) 124) See ‘‘future language directions’’ (6.11.6). 6.11.6 Function declarators 1 The use of function declarators with empty parentheses (not prototype-format parameter type declarators) is an obsolescent feature. 6.11.7 Function definitions 1 The use of function definitions with separate parameter identifier and declaration lists (not prototype-format parameter type and identifier declarators) is an obsolescent feature.
C99の時はint main()はint main(void)だろうが、ここで書かれているCは 全部C89じゃん?だからint main() は int main(任意)だろうが
C89 と C99 で解釈が違うってこと?
955 :
デフォルトの名無しさん :2010/08/01(日) 10:08:18
めっちゃループしよるやんw
>>954 C89は旧Cとの互換性を重視したから関数の空カッコの中に与えられた引数はは検査しない
>>953 >ここで書かれているCは
>全部C89じゃん?
kwsk
>>958 void sub()
{
}
int main(void)
{
sub(1); /* C89では通る、C99ではエラー */
>>959 たしかに bcc32, gcc-3/4 とも、
>>959 をとおしますね。
でも、
>>959 のようなコードを書く人はいない。
ただ、議論の発端は
>>933 で、
>>933 を否定しようとして話が長くなっているわけです。
C89 は int main() { } をとおすというのであるならば、
>>933 のいうことは C89 でも C99 でも間違いですね。
>>953 違うよ、違うんだってば
ここのCはC++のC部分のことを言っているのがほとんどだよ
C89/C99というならならC++コンパラ(VC)を指定する課題は基地外課題で
出した奴の首を学校に要求したほうが良い
>>960 確かに
>>933 は間違っているな
int main(int argc, char *argv[])の中身を省いても通すんだから
C99の場合はint main()をしても通るがそれは特別な場合で、argcもargvも
使わないよという意志表示になる
963 :
デフォルトの名無しさん :2010/08/01(日) 16:43:17
>>962 勝手に間違いにするなよ。間違っているという説明をしっかりしてから
反論しろよ。それも、相手が言っても思ってもいないことを否定するって
頭おかしくね?普遍的な基本原則に対してお前が反発しただけだぞw
964 :
デフォルトの名無しさん :2010/08/01(日) 16:47:10
そもそもC++ではプログラムの開始をmianとし、その戻り値をint型とし 引数は必要がなければint main() とvoidは書かない(ISO、ANSI準拠の”標準”スタイル) Cの場合はC99だの話しに出てくるが、基本は共通している。 細かい説明は面倒なので、まとめサイトを引用。 これ以上の議論は無用。自分こそは絶対に間違っていないという 奢り高ぶった態度の奴は、時代の変化についてこれなかった人間だろう 路上でもそういう年寄りは普通に見かける。免許返上なんてプログラミングには無いが 引退を決した方が良いですよw 反論にもなってない、時代遅れのスタイルを 押し付けるだけの無知。 tp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html
>>963 >相手が言っても思ってもいないことを否定するって
>頭おかしくね?
>>933 のことなら、「int main() (笑)」といって、 main() の引数を空リストにすることを批判していますが。
そこで関数 main の引数を空リストにしてもよい、という論調を延々とやっています。
それが問題ありますかね?
966 :
デフォルトの名無しさん :2010/08/01(日) 16:49:43
1つ注意しておくが、根拠とする該当のセクション(英文)も読んで下さいね。 意味も無く、各個人が勝手に想像、想定して決めたことじゃないから。 HTMLにしろW3Cといった団体が標準化を提唱しているが、あくまでも そういった取り決めをしている団体、組織が提示している基本原則ですから。 それに従わなくても出来たから自分は自分スタイルを貫くなら構わない。 独自の環境を使用している人は、何もその限りではないからな。 ただし、それは 標準スタイル に非ず。自分が世界の基準だと思ったら大間違いだよ。 ■ 根拠 ■ 標準C §5.1.2.2.1 Program startup 標準C99 §5.1.2.2.1 Program startup 標準C++ §3.6.1 Main function
967 :
デフォルトの名無しさん :2010/08/01(日) 16:54:37
これだから閉鎖的な思想しか持っていないジャポネーゼは話にならん。 いつまでも世界でトップになれない理由が分かる。せいぜい小型化が関の山か? お前らじゃ小型化、より洗練することすら無理だろう。 このスレのコードを見ても分かるが、無駄が多い。 それで出来た気になっているお山の大将、お猿さんが痛すぎw あんたは人生の大半をプログラミングで過ごしたのかもしれないが 間違ったスタイル、修正を身につけていたことに気づいて焦ってんだろ? アルゴリズムだって、せいぜい分かりきった公式くらいしか使えないないんだろ? そういうのはあくまでも型に嵌ったものであって、世の企業は独自で仕様を提唱し 開発、製品化してんだよ。日本じゃソニーが有名だが、まぁソニーもBlu-rayだの メモリースティックだの、頑固だねぇ。HD DVDを追い込めて良かったねぇ。 まぁそういうことだ。一応光学ディスクも ISO準拠 の仕様ですが、製品はソニー独自のもの。
>>964 もうしわけないが、今は、とある個人の Web ページを鵜呑みにせず、公開されている、ISO/IEC 9899 をもとにして、
「int main() もISO/ANSI 準拠の標準スタイルである」ということを議論しているわけです。
演題が正しいか違うのかはともかく、
>これ以上の議論は無用。
ということ自体が、あなたのいう
>自分こそは絶対に間違っていないという奢り高ぶった態度
ではないでしょうか?
いつでもなんどでも振り返って、一次資料をもとにして、考え直すことは大切だと思いますよ。
>>966 足りない。今回の話では、
C99 ならば、5.1.2.2.1 のほかにいろいろと見ないといけないと思いますよ。
今話にあがっているのは
ISO/IEC 9899(1999) 5.1.2.2.1 と 6.7.5.3 14, それに、6.1.16, 6.1.17 も候補になっていますね。
>>951 を参照してください。
>>951 の()の中が空って、古いタイプの宣言形式の話で省略したらどうとかの話じゃなくね?
971 :
デフォルトの名無しさん :2010/08/01(日) 17:01:55
HTMLにもな、団体が提唱している「標準スタイル」や「推奨」ってのがあるんだよw そんなことも知らずに今までお前はコードを書いてたのか?w 間違っていないんだから正しい?あっそ。それで何かより高精度なものが作れる? 標準ライブラリの1つや2つでも覚えろよw 団体が出している情報を自分は従いませんとか他人に言われても あっそ、だから何?くらいしか思われねーよw あと、C言語は何も学校の課題でしか使われていない訳じゃないからw 何の為のISOか、そして標準化、共通して使えるものに仕立てたか? 歴史を知らん奴はどうせOSもWindowsくらいしか使わず、せいぜい学校で UNIXやLinux、Solarisを触った程度なんだろ?それらも基本はこういった 規格が採用され、そしてもう少し追及すると電子機器そのものがある共通した規格が 採用されているから、ハードを選ばずOSレベルで共有できるプログラムがあるんだよ。
972 :
デフォルトの名無しさん :2010/08/01(日) 17:08:05
おいっ、時代遅れの爺、ったく、日本は少子高齢化になって良いことが無いねぇ。 頑固爺、お前が長年使用してきた規格はもう寂れてんだよw いつまで古いC言語の本を使ってんだ?w 最新のに買い換えろよ、ライブラリのもな。そんな本を学校の授業で勧めるなよw 間違っていないものを間違っている()笑ってアホの極み。 現代についていけてないよ、時代遅れのオッサン。
>>970 >>951 を抜粋した
>>935 をみていただければわかりますが、
int func(void) と int func() は同等であることが C99 では明記されています。
976 :
訳せない、意味が理解できないならC言語なんて語るなよ :2010/08/01(日) 17:14:30
5.1.2.2.1 Program startup [#1] The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with no parameters: int main(void) { /* ... */ } or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared): int main(int argc, char *argv[]) { /* ... */ } or equivalent,9 or in some other implementation-defined manner.
夏休みは夏厨が増えて不要な議論ばかり増えるな
int main()笑なんて言いだすやつが一番頭おかしい コミュ障ってレベルじゃない
>>976 >or equivalent
これが目にはいりませんか?
>>939 を参照してください。
>>977 もうしわけない。
>>933 を否定的に論証するのがこんなに難しいこととは思いませんでした。
981 :
デフォルトの名無しさん :2010/08/01(日) 17:21:27
個人の人格攻撃、主張を否定すれば国際標準化機構が提唱している 標準スタイルを否定できるんですか?それに従っている人が間違っている ことになるんですか?さすが島国日本人ですね。驕り高ぶった知能の低さが 垣間見えますよw まぁ日本人はお前一人じゃなく、約1億3千万人もいますから 老い先短い思考が固まった時代遅れの爺なんて日本の代表にはしないから 安心してどこぞの低レベルな学校の講師でもやってなw お前は世界には通用しない、所詮日本でしか通用しない人材。 そこまで偉そうに口を叩くなら、日本の代表として政府で働いてみろよ?
世界標準化機構にこんなことで物申すような奴は 何もかもが自分基準で、自分が思った通りでないと気が済まない 自己中どころか自分が世界の中心だと思っている思い上がり 驕り高ぶったおバカちんですか?世の中はお前中心に動いても 成り立ってもいないから。他人があるルールに従っていたら それが気に入らないとその個人を攻撃するんですか? 道路交通法(例えば制限速度)を守っている人間がいたら 自分はそれ以上だと、他者を邪魔者扱いする身勝手な人間ですか?
ひたすらmain()を叩くことに執念を燃やす、自称年収1000万の男w
>>960 >>959 のようなコードを書く人がいないというのはおかしい。
書いたつもりがなくとも、そう書いてしまった場合にコンパイルエラーになるかならないかが重要だろ。
逆に、どこまでがequivalentといえるんだろう。 long main(long argc, char **argv)は十分equivalentなのかな。
とりあえずスレチ消えろ
987 :
960 :2010/08/01(日) 17:51:53
この世は自分が中心、絶対権力者だと思って生きているんですか? お前以外のその他大勢からしてみれば、お前なんて他人の中の一人に過ぎねーんだよw 分かったか?ネット弁慶になって視野が狭くなった引きこもり? お前はこの世の小さな集団の中で目立っている、中心人物かもしれないが 世界から見たらちっぽけなんだよ!アメリカ大統領や国連の事務総長にでも なってみろや?w こんな低レベルな課題を解いて得意気になっている、小さな人物で ちっぽけな人生を送ってやがんなぁw 収入も精神レベルも人徳も高まらない理由を理解した方が良いですよ?
>>985 それは equivalent ではないですよ。たしかに処理系によっては sizeof(long) == sizeof(int) ですけれども、そうじゃない処理系もありますし。
ただ、 int main(int argc, char *argv[]) と int main(int argc, char **argv) は equivalent であることは、ISO/IEC 9899:1999 5.1.2.2.1 に書いてありますね。
>>951 を参照してください。
おっしゃるとおり、どこまでが equivalent か、という問題はありますね。
990 :
デフォルトの名無しさん :2010/08/01(日) 17:59:17
はぁ?お前なんて2ちゃんのこんなスレでネット弁慶やっている雑魚だろw お前一人なんて世界レベルで見たら約70億人いる中の一人なの もちろん俺も。小物の雑魚は引き下がってろよ。お前じゃ C言語の腕、技術面でも俺に劣るよ。あと収入面でもなw
頼むからコテ付けてくれ
ぎゃはははっはははは、ぶははははははははははははっは 自分はこのスレでトップだと思っている奴が何か必死になってやがるよw 宿題スレがかなり前からあって、毎年似たようなパターンで とっくに回答が出ているのにw 細かい議論はとっくに済んでいるのに、今さら掘り返して 間違った主張をするとか、終わってるw お前の人生、本当に詰まらないよ。そこうしている内に 生きられる時間が限られている人間の人生はいつかは終わる。 それは俺もお前も例外ではない。その日がいつ、何年何月何日に 来るかは分からないが、病気で、事故で、運良く老衰で死ぬかもしれないが いつかははっきりとは分からない。自殺すればその日が人生の終わりだが。 まぁそういうことで、少し気楽に生きろや?お前が未熟なコードで満足しようが 社会に与える影響力はほとんど無いから。
C89で()内を空にするのは、あまりお行儀のいい行為ではない。 コンパイルは通るがvoidと変換されて通ってるわけではない。
995 :
デフォルトの名無しさん :2010/08/01(日) 18:26:02
>>939 > 私見では、main() も function の一種であることが
君は↓の部分も標準スタイルという言葉の意味も分かってないようだな。
> 5.1.2.2.1 Program startup
> 1 The function called at program startup is named main. The implementation declares no
> prototype for this function.
プログラムの開始、その関数名、そして引数。まったく話になりません。
何度も言うが 標準スタイル だぞ。独自の環境の場合はその限りではない。
これ以上の議論は無駄。理解力が無い奴は自分の不手際を理解してもらおうと
相手の粗探しや墓穴を掘ってつついて、論点を外した話をするから困る。
補足も理解出来ないとは。
997 :
デフォルトの名無しさん :2010/08/01(日) 18:45:10
ISO、ANSI ”準拠”の”標準スタイル”では プログラムの”開始”の関数名をmainとし、引数が無ければint main(void) 引数がある場合は int argc, char *argv[]) 。argc , argv は他の関数で それらの名前が使われて宣言されていたとしても、それらは宣言された 各々の関数の中で使われる(独立した、共有しない)変数。(スコープに関する) プログラムの開始をmainとしないような、例えば独自に宣言したような扱いで 宣言した関数名mainとした場合は、それは標準スタイルから外れ 提唱しているスタイルに従う必要はない。ただ、そんなことを態々 独自の環境だからってmainをサブ扱いするような使い方をするだろうか? あくまでも独自の環境でも、プログラムの開始をmainとするスタイルを 使っても問題はなかろう。mainもルーチン、モジュールの1つだと言うなら もうそんな人間に逐一物申しませんよ。好きにやって下さい。 別におかしくともなんともないから。
998 :
デフォルトの名無しさん :2010/08/01(日) 18:49:20
国際標準化機構が提唱する標準スタイルに物申すなら 世の中は何を基準にして工業関連の製品を作れば良いのか? 独自でPCの仕様、ディスク、データ、もっと範囲を広げれば ネジ、ボルト、ナットといった規格を各企業で独自に決めて使うと? 別に、ISO準拠の規格のものをモジュールとして使っても良いだろ。 そこまで言うなら、標準ライブラリも使わず、標準ライブラリと同じ 処理をする関数を自分でコードを記述して使えば? 別にその点、個人で使用する分にはどうでも良いよ、そんなの。 しかし、もう標準ライブラリで事が済むなら俺は使うね。 他者とコードを共有する際にも、何をどうしているか分かりやすく示せるし。 まぁ、コードなんて必要が無ければオープンにしないものだからね。 変な名前の変数宣言をして、ウヒウヒやってれば良いんじゃね?w
↓お前は1000を取り損ねた駄目な子、あと一歩、惜しいぃ〜
,. -──- 、 ミ r‐、 / _ -v-- 、 \ ノ) } / / rv、 、`ヾヽ /ハ l ! / )) l/ // | l l lヾヘマヽ / \/ / /ー '^′`ー:: ┼l_」ヘ/| / / H'´ ≡/////≡ | / | j / / l{ ::::: ┌─ ┐ :::::: 冂ヽ lく / / 八 | | l´レj / / / /\ | | | |/ / また次スレでね〜! 〈_/ rく ` ー--‐ 7´:! {:{ / /\ / l/Ll:|:. .:/| / / ー-/ :|: l:l:/ l / / i :|: //:. ヽ /ヽ ヽ、 __::人 __:ノ:/'´|:. l: __ノ \ \_ { ,,,):::::l(,,.;;} .:|:.__冫´ / `ー/ー┤:::l .:|
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。