ぼるじょあがC/C++の宿題を片づけますYO! 66代目
1 :
ぼるじょあ ◆yBEncckFOU :
2006/06/04(日) 00:37:15
2
3 :
デフォルトの名無しさん :2006/06/04(日) 00:46:47
2
4 :
デフォルトの名無しさん :2006/06/04(日) 01:14:03
[1] 授業単元: プログラミング [2] rand()を使い、モンテカルロ法により円周率を求めるプログラムを作る。 具体的な手順として ・0から1の乱数2つをペアにし、片方をx座標、もう1方をyとする。 ・乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える ・1:π/4 = n:r から π = 4*r/n この式に従いπを計算する。 参考として ・rand()でx座標とy座標を求める x=(double)rand()/RAND_MAX; y=(double)rand()/RAND_MAX; ・その点の原点からの距離rを計算する r=x*x+y*y ・For分で点の発生を繰り返す ・点が円の内側か外側かを判定し、内側ならカウンタの変数を1増やす (演算子++を使う) っていうのが問題です。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: emacs [3.3] 言語: C [4] 期限: 2006年6月8日まで [5] ホントにかじりしか習ってません。 情報が不十分かも知れませんが、できる限り、晒しますので、よろしくお願いします。
ぼるじょあが一向に宿題を片付けないのが問題
>>4 #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int n,r=0;
srand(time(NULL));
for(n=0;n<1000;++n){
double x = rand()/(double)RAND_MAX;
double y = rand()/(double)RAND_MAX;
if(x*x+y*y<=1)++r;
}
printf("%f\n",4.0*r/n);
}
7 :
4 :2006/06/04(日) 11:53:27
8 :
デフォルトの名無しさん :2006/06/04(日) 18:31:18
10 :
デフォルトの名無しさん :2006/06/04(日) 22:31:30
11 :
デフォルトの名無しさん :2006/06/05(月) 05:31:00
12 :
デフォルトの名無しさん :2006/06/05(月) 09:52:51
3.Which of the following is the best definition or example of the "principle of least privilege?" a. Always separate classes into .h definition files and .cpp implementation files. b. Use global variables to avoid access problems. c. Grant access to only those clients who have a legitimate need for access. d. Whenever possible, prefer composition over inheritance. 4.A StatusLabel a. inherits from class StatusStrip b. is a control with a StatusStrip control. c. is a type of flair. d. none of the above 5.When the code in a try block does not throw an exception, which of the following is false? a. all the catch handlers immediately following the try block are skipped b. execution resumes with the first line of code after the catch handlers c. a default exception is thrown d. none of the function calls within the try block threw an exception 誰かお願いします。
13 :
デフォルトの名無しさん :2006/06/05(月) 09:53:36
続きです。 6. Int16, Int32, Double, and String a. are executable C++ statements. b. are examples of data types. c. are compile error categories. d. none of the above 7. To disable a menu item, a. just delete the item. b. set the Enabled property to false. c. set the Enabled property to disabled. d. remove the Enabled property. 8. With Visual C++ Forms Programming, the easiest way to present a dialog window to the user is to use a. a MessageBox. b. the cout object. c. a data file. d. inheritance. 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above
14 :
デフォルトの名無しさん :2006/06/05(月) 09:54:31
もう1つ続きです。 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above 10. String::SubString a. extracts a portion of a string. b. specifies an inheritance relationship. c. is not supported by Visual C++. d. is an iostream operation. よろしくお願いします。
15 :
デフォルトの名無しさん :2006/06/05(月) 09:55:56
>>12-14 [1] 授業単元: Introduction to C/C++ Programming
忘れてました。すいません。
,;r''"~ ̄^'ヽ, ./ ;ヽ l _,,,,,,,,_,;;;;i <いいぞ ベイべー! l l''|~___;;、_y__ lミ;l マルチポストする奴はクズだ! ゙l;| | `'",;_,i`'"|;i | マルチポストしない奴はよく訓練されたクズだ! ,r''i ヽ, '~rーj`c=/ ,/ ヽ ヽ`ー"/:: `ヽ / ゙ヽ  ̄、::::: ゙l, ホント このスレは地獄だぜ! フゥハハハーハァー |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | |
17 :
12-15 :2006/06/05(月) 10:37:40
どなたかお願いします。
,;r''"~ ̄^'ヽ, ./ ;ヽ l _,,,,,,,,_,;;;;i <いいぞ ベイべー! l l''|~___;;、_y__ lミ;l 催促する奴はクズだ! ゙l;| | `'",;_,i`'"|;i | 催促しない奴はよく訓練されたクズだ! ,r''i ヽ, '~rーj`c=/ ,/ ヽ ヽ`ー"/:: `ヽ / ゙ヽ  ̄、::::: ゙l, ホント このスレは地獄だぜ! フゥハハハーハァー |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | |
前から思ってたが、依頼者がスルーされた場合のアドバイスを
>>1 あたりに書いておくべきだと思う。
・満足のゆく解答がないまま依頼が埋もれてしまったときは、そのレスを示して注意を喚起しても構いません。
それでもだめならあきらめましょう。
とかどうだろう。
スルーされたらあきらめろよ。
まあ、それでもいいんだが、とにかく何か書いておくべきだと思うな
何か入れるとしたら、 ・ここに来る前にググりましょう ・自分がクズであることを自覚しましょう くらいか。
>・ここに来る前にググりましょう そこまで面倒見てやる必要があるのか? たしかにつまらん問題は減るかもしれないが。 >・自分がクズであることを自覚しましょう わけわからん。自覚させてなんになる?
書いても読まないんだから何書いても良かろう。
書いても読まれないなら何も書かない方が美しいと思うが。
26 :
デフォルトの名無しさん :2006/06/05(月) 17:25:28
なるほど
最低、前スレぐらいは検索かけてほしいけどね…
28 :
デフォルトの名無しさん :2006/06/06(火) 00:03:55
[1] 授業単元:計算機演習 [2] 問題文(含コード&リンク): 20から120までの整数の中で17で割り切れる値をすべて表示し、 その総個数を求めるプログラムを作成しなさい。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++ .NET2003 [3.3] 言語: C++ [4] 期限: 2006年6月9日まで よろしくお願いします。
>>28 こんな電卓演習ができねえくらいなら単位落として退学しろ。
#include<stdio.h>
int main(){int a[]={34,51,68,85,102,119,};int n;
for(n=0;n<sizeof(a)/sizeof(int);n++)printf("%d\n",a[n]);
printf("%d個\n",sizeof(a)/sizeof(int));return 0;}
30 :
デフォルトの名無しさん :2006/06/06(火) 00:14:57
>>28 #include <stdio.h>
int main(void)
{
int count=0,i;
for (i=20;i<121;i++){
if (i%17==0){
printf("%d\n",i);
count++;
}
}
printf("count [%d]\n",count);
}
>>31 惜しい。もう少し。
int i;for(i=2;i*17<120;i++)printf("%d\n",i*17);printf("%d個\n",i-1);
34 :
デフォルトの名無しさん :2006/06/06(火) 00:51:54
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 1個以上10個以内の整数を大きさ10の整数配列に入力するプログラムで、入力する整数の個数は最初に宣言する。 例えば3と4からなる2個の整数を入力するには”2 3 4” 次にvoid recorder(int*data,int num);を作成し*dataから始まるアドレスに、順におかれたnum個の整数を小さい順に並び替える機能を与える。 recoder()の中ではswapsmall()を有効に活用する。配列宣言以外はポインタを用いなさい。 recoder()を適用した後,配列の内容をスペース1つで区切って出力し、入力された数字を大きい順に表示するプログラムを作成しなさい。最後の数字の後ろに空白はおかない [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語:C [4] 期限: 今日の午前6時まで お願いします。
35 :
デフォルトの名無しさん :2006/06/06(火) 00:57:52
36 :
34 :2006/06/06(火) 01:04:31
void swapsmallってぃぅ関数です。 使うなら有効に活用しろって書いてあったので、使わなくてもいいと思います。 わかりにくい説明ですみません
関数ならプロトタイプを(ry
>>34 #include <stdio.h>
#include <stdlib.h>
int recorder_comp(const int* p1, const int* p2) {
return *p1 - *p2;
}
void recorder(int* data, int num) {
qsort(data, num, sizeof(int), recorder_comp);
}
int main() {
int vValues[10];
int cValues;
int iValue;
scanf("%d", &cValues);
for(iValue = 0 ; iValue < cValues ; iValue++) scanf("%d", &vValues[iValue]);
recorder(vValues, cValues);
for(iValue = cValues-1 ; 0 <= iValue ; iValue--) printf(0<iValue?"%d ":"%d\n", vValues[iValue]);
return 0;
}
39 :
& ◆QWv3R1XL8M :2006/06/06(火) 01:45:49
>>38 さん
実行してみたのですが、数字をうちこむと
「セグメンテーション違反です」
って出てきました。
41 :
227 :2006/06/06(火) 02:43:36
>>40さん はい、そうなんです。
44 :
39、41 :2006/06/06(火) 03:19:26
>>43さん 39=41です reodr.c: In function ‘recoder’: reodr.c:12: warning: passing argument 4 of ‘qsort’ makes pointer from integer without a cast ってぃうエラーメッセージが出てきて、それで実行しようとしたらセグメントエラーになってしまいました。
>>44 原因がわからんので、別の方法を。
#include <stdio.h>
#include <stdlib.h>
void recorder(int* data, int num) {
int i;
int tmp;
for( ; 0 < num ; num--) {
for(i = 0 ; i < num-1 ; i++) {
if(data[i] > data[i+1]) { tmp = data[i]; data[i] = data[i+1]; data[i+1] = tmp; }
}
}
}
int main() {
int vValues[10];
int cValues;
int iValue;
scanf("%d", &cValues);
for(iValue = 0 ; iValue < cValues ; iValue++) scanf("%d", &vValues[iValue]);
recorder(vValues, cValues);
for(iValue = cValues-1 ; 0 <= iValue ; iValue--) printf(0<iValue?"%d ":"%d\n", vValues[iValue]);
return 0;
}
46 :
44 :2006/06/06(火) 04:01:00
>>45さん 今回はエラー出ずに実行できました。 本当にありがとうございました!!
>>38 qsort()の使い方がダメすぎ。勉強しなおしておいた方がよさそうだ。
48 :
34 :2006/06/06(火) 04:58:36
先ほどの問題と似ているのですが、よくわからないので教えてください。 [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 1個以上、10個以内の整数を大きさ10の整数配列に入力するプログラムを作成する. 入力する整数の個数は最初に宣言するものとする.たとえば3と4からなる2個の整数を入力する場合には"2 3 4"と入力する. つぎに,void swapsmall(int *data, int num);という関数を作成し, *dataから始まるアドレスに,順におかれたnum個の 整数のうち最小のものを先頭のものと入れ替える機能を与えなさい.ただし,同一の値をもつ最小の整数が複数ある場合には, 一番後方にあるデータと入れ替えるようにすること.プログラミングにあたっては,配列宣言を除き,すべてポインタを用いて処理すること. 順序をswapsmall()を一回適用したあと,配列の内容をスペース(空文字)一つで区切って出力しなさい. 最後の数字の後ろに空白を置かないこと. 課題実行においては以下の点に注意すること. * 入力されるデータは与えられた条件を満たしているものとしてよい.(エラー処理は不要) [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 今日の朝7時頃 お願いします。
49 :
デフォルトの名無しさん :2006/06/06(火) 16:37:34
[1] 授業単元: C言語プログラミング [2] 問題文(含コード&リンク): キーボードから数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。 素数‥2以上の整数について、1とその数以外で割り切れない数 【ヒント】 しらみつぶしに割り切れるかどうか調べる 調べる範囲に注意する [3] 環境 [3.1] OS: Windows [3.2] Microsoft Visual C++ .NET [3.3] 言語: C [4] 期限: ([2006年6月7日12:00まで] [5] forなどループ、配列を習っている最中です
>>50 ほんとにしらみつぶし法だが…
#include <stdio.h>
int isPrime(int n) ;
int main(void) {
int n ;
printf("数を入力してください:") ;
scanf("%d",&n) ;
if(isPrime(n)) {
printf("素数\n") ;
} else {
printf("非素数\n") ;
}
return(0) ;
}
int isPrime(int n) {
int i ;
for(i=2;i < n;i++) {
if(0==(n%i)) return(0) ;
}
return(1) ;
}
55 :
デフォルトの名無しさん :2006/06/07(水) 02:47:44
[1] 授業単元:ポインタ [2] 問題文(含コード&リンク): 現存ファイルに任意の数の数値が入っている。 そのファイルを呼び出し、データ最大値・最小値・平均値・標準偏差値を 取り出すプログラムを関数へのポインタ変数の受け渡しを利用して作成せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ(バージョン): [3.3] 言語:C [4] 期限:6月9日 [5] その他の制限: 「任意の数の」なんでwhileを使え、ということらしいです。 現存ファイルの名前はseiseki.txtです。 内容は↓ 列ごとに別の教科の点数、ってことみたいです。 70 56 66 45 88 66 85 68 55 73 55 65 53 67 55 85 72 76 58 65 92 70 45 73 55 56 57 52 62 82 72 62 33 85 95 46 95 48 72 34 83 42 88 92 56 68 65 91 82 66
>>55 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
double average(int* a,size_t len){int s=0;size_t i;for(i=0;i<len;i++)s+=a[i];return (double)(s/len);}
double deviation(int* a,size_t len){size_t i;double var=0.0,avg=average(a,len);
for(i=0;i<len;i++)var+=pow(a[i]-avg,2);var/=len;return sqrt(var);}
int min_arr(int* a,size_t len){int t=INT_MAX;size_t i;for(i=0;i<len;i++)if(t>a[i])t=a[i];return t;}
int max_arr(int* a,size_t len){int t=-INT_MAX;size_t i;for(i=0;i<len;i++)if(t<a[i])t=a[i];return t;}
int main(int argc,char* argv[]){char tmp[100];size_t i,n=0;FILE* fp;int *a,*b,*c,*d,*e;
if(argc>1){if((fp=fopen(argv[1],"r"))!=NULL){while(fgets(tmp,sizeof(tmp),stdin))n++;
fclose(fp);a=(int*)malloc(sizeof(int)*n);b=(int*)malloc(sizeof(int)*n);c=(int*)malloc(sizeof(int)*n);
d=(int*)malloc(sizeof(int)*n);e=(int*)malloc(sizeof(int)*n);fp=fopen(argv[1],"r");for(i=0;i<n;i++){
fgets(tmp,sizeof(tmp),stdin);sscanf(tmp,"%d %d %d %d %d",&a[i],&b[i],&c[i],&d[i],&e[i]);}
printf("教科A 最大:%i 最小:%i 平均:%2.2f 標準偏差:%2.2f\n",max_arr(a,n),min_arr(a,n),
average(a,n),deviation(a,n));
printf("教科B 最大:%i 最小:%i 平均:%2.2f 標準偏差:%2.2f\n",max_arr(b,n),min_arr(b,n),
average(b,n),deviation(b,n));
printf("教科C 最大:%i 最小:%i 平均:%2.2f 標準偏差:%2.2f\n",max_arr(c,n),min_arr(c,n),
average(c,n),deviation(c,n));
printf("教科D 最大:%i 最小:%i 平均:%2.2f 標準偏差:%2.2f\n",max_arr(d,n),min_arr(d,n),
average(d,n),deviation(d,n));
printf("教科E 最大:%i 最小:%i 平均:%2.2f 標準偏差:%2.2f\n",max_arr(e,n),min_arr(e,n),
average(e,n),deviation(e,n));}}return 0;}
[1] 授業単元: C言語プログラミング [2] 問題文 次の処理を行うプログラムを作成せよ。 まず、キーボードから整数を50個入力し、配列に格納する。 次に、格納されたデータについて以下の情報を画面に出力する。 最大の要素の値と、その要素番号 最小の要素の値と、その要素番号 全要素の平均値 配列の大きさは以下のマクロを使って定義し、プログラム中で適宜利用すること。 #define SIZE 50 【ヒント】 使用する変数は‥ 配列 a[SIZE] 最大値 max 最大値の要素番号(添字)i_max 最小値 min 最小値の要素番号(添字)i_min 全要素の合計 sum 全要素の平均 ave 反復の制御変数 i ‥などが考えられる [3] 環境 [3.1] OS: Windows [3.2] Microsoft Visual C++ .NET [3.3] 言語: C [4] 期限: ([2006年6月7日12:00まで] [5] forなどループ、配列を習っている最中です
>>57 すみません、期限の方が6月7日+一週間です
キーボードから50個入力するって
>>57 #include<stdio.h>
#include<stdlib.h>
#define SIZE 50
int main(void){char tmp[100];size_t i,i_max,i_min;int sum=0,max=-INT_MAX,min=INT_MAX;
int a[SIZE];double ave;
for(i=0;i<SIZE;i++){fgets(tmp,sizeof(tmp),stdin);a[i]=atoi(tmp);sum+=a[i];
if(a[i]<min){min=a[i];i_min=i;}else if(a[i]>max){max=a[i];i_max=i;}}ave=sum/SIZE;
printf("最大値:%i(%u番目)\n最小値:%i(%u番目)\n平均値:%f\n",max,i_max,min,i_min,ave);
return 0;}
63 :
38 :2006/06/07(水) 12:15:32
>>47 比較関数の引数をconst void*にしろってことか?
学校のLinux端末でコンパイルしたらこんな警告出てきた。
警告: 互換性のないポインタ型からの引数 4 個の `qsort' を渡しますです
引数がconst void* で、比較の時に(int*)でいいんじゃない
65 :
デフォルトの名無しさん :2006/06/07(水) 15:51:25
>>64 なんでint *なんだよ。const int *だろ。
67 :
デフォルトの名無しさん :2006/06/07(水) 17:24:14
(・3・)エェー ぼるじょあは全然書き込んでないじゃないかYO
int * でもconst int*でもどっちでもできるけどな
だからと言ってむやみにconstを外すのはどうかと思う。
70 :
デフォルトの名無しさん :2006/06/08(木) 02:17:28
[1] 授業単元:プログラミング演習I [2] 問題文: 1.正の整数xを引数としてあたえた時にxが素数であるかを判断する関数IsPrimenumber()を 作成しなさい。ただしIsPrimenumber()の返り値は整数で0か1を取るものとし、 ・0の時は素数でない。 ・1の時は素数である。 とする。 2.正の整数y1とy2を引数として与えた時にy1〜y2までの数値のうちで素数のみを表示する関数 PrintPrimenumber()を作成しなさい。ただし前問のIsPrimenumber()を用いて記述すること。 3.main()関数で正の整数値nを取り込み(scanf()関数を用いる)、PrintPrimenumber()を 用いることで2からnまでのうちで素数であるものを表示せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ(バージョン):gcc [3.3] 言語:C [4] 期限:6/9まで [5] その他の制限:無し どなたかご教授お願いします。
[1] 授業単元: オペレーティングシステム [2] 問題文(含コード&リンク): C言語を用いて、子プロセスを生成して何らかの処理を行い、 @親プロセスがビジーウェイトを用いて子プロセスの終了を待つプログラム Aビジーウェイトをしないプログラム を書け。 [3] 環境 [3.1] OS: VineLinux3.2 [3.2] コンパイラ名とバージョン: gcc 3.3.2 [3.3] 言語: C [4] 期限: 2006年6月8日17時 [5] その他の制限: forkを少し習いましたが、それ以外は習っておりません。 よろしくお願いします。
72 :
デフォルトの名無しさん :2006/06/08(木) 08:44:40
[1] 授業単元: 基本プログラミング [2] 問題文(含コード&リンク):入力された複数の0以上の整数値の平均値、最大値、最小値を求めるプログラムを2種類作成せよ。(1をwhile文、2をdoーwhile文を使う) 1、入力する数値の個数がわかってない場合(入力が終わると負の値を入れて対応) 実行例 Input date:5 Input date:6 Input date:7 Input date:5 Input date:-1 ave=5.75 max=7 min=5 2、入力する数値の個数がわかっている場合(初めに、その個数をnに入力してから、その後にその個数分だけ数値を入力) 実行例 n=5 Input date:4 Input date:6 Input date:9 Input date:3 Input date:8 ave=6 max=9 min=3 [3] 環境 [3.1] OS:UNIX [3.3] 言語:C++ [4] 期限:明日 [5] while,do-whileまで習いました 最初が#includ<iostream>のやつでお願いします 注文多くてすみません‥
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 1個以上、10個以内の整数を大きさ10の整数配列に入力するプログラムを作成する. 入力する整数の個数は最初に宣言するものとする.たとえば3と4からなる2個の整数を入力する場合には"2 3 4"と入力する. つぎに,void swapsmall(int *data, int num);という関数を作成し, *dataから始まるアドレスに,順におかれたnum個の 整数のうち最小のものを先頭のものと入れ替える機能を与えなさい.ただし,同一の値をもつ最小の整数が複数ある場合には, 一番後方にあるデータと入れ替えるようにすること.プログラミングにあたっては,配列宣言を除き,すべてポインタを用いて処理すること. 順序をswapsmall()を一回適用したあと,配列の内容をスペース(空文字)一つで区切って出力しなさい. 最後の数字の後ろに空白を置かないこと. 課題実行においては以下の点に注意すること. * 入力されるデータは与えられた条件を満たしているものとしてよい.(エラー処理は不要) [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:無期限 お願いします。
みらい おつ
>>74 #include <stdio.h>
void swapsmall(int *data, int num){
int *p, *p_min=data, tmp;
for(p=data; p<data+num; p++) if(*p<=*p_min) p_min=p;
tmp=*data; *data=*p_min; *p_min=tmp;
}
int main(){
int a[10], *p, size;
scanf("%d", &size);
for(p=a; p<a+size; p++) scanf("%d", p);
swapsmall(a, size);
for(p=a; p<a+size; p++) printf("%d ", *p);
return 0;
}
[授業単元]プログラミング [言語]C言語 [提出日]6月17日 [環境]Visual Stdio.NET2003 [OS]Windows XP [問題]5名分3教科のテスト結果が5×3の配列にはいってるとき 各教科毎に点数の高い順に並び替えた配列を入力する関数と main関数を作成せよ 英語77,75,65,50,30 数学92,80,69,65,40 国語90,90,80,50,45 よろしくお願いします
81 :
デフォルトの名無しさん :2006/06/14(水) 23:56:48
[1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): Yr年Mo月Dy日がその年の最初から何日目かを求める 関数Days(y、m、d)とmain関数を作りなさい。 [ヒント]うるう年か、そうでないかによって三月以降の日数が変わってくる。 [実行例]INPUT:Yr=1987 Mo=3 Dy=5 結果:Days of the year = 64 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: boland [3.3] 言語: C [4] 期限: 2006年06月16日 [5] その他の制限: scanfは使わずにgetsで、さらにatoiを使ってお願いします。
>>80 不明な点が一つ。5x3の中身は?
そこに書かれているものは、既に高い順に並び替えられた出力結果みたいだが?
>>81 不明な点をいくつか。
getsを使うってことは、まさか入力において自分で INPUT: 以降の
Yr=1987 Mo=3 Dy=5 を Yr= とか Mo= とか、数字以外の部分も入力するわけ?
87 :
デフォルトの名無しさん :2006/06/15(木) 03:43:52
[1] 授業単元: プログラミング [2] 凸包を求めるプログラムを分割統治法を用いて作成せよ。 入力:2次元平面上のn個の点の集合A 出力:集合Aに含まれる点集合を全て含む最小の凸多角形 入出力の詳細: n個の点の座標が、構造体 struct point{ int x; int y; }; の配列AのA[0]〜A[n-1]に格納されているものとする。printf文で凸多角形の頂点の座標を時計回りに すべて出力する。 出力例 convex polygon = { (-10, 10), (20, 0), (30, 100), (20, 150), (15, 30) } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: emacs [3.3] 言語:C [4] 期限: 今週金曜18時まで お願いします。
88 :
デフォルトの名無しさん :2006/06/15(木) 20:50:24
89 :
デフォルトの名無しさん :2006/06/15(木) 21:07:49
[1] 授業単元: 情報処理演習 [2] 問題文(含コード&リンク): 1. 3を4で割った答えと余りを整数で答えなさい. 2. 3a=(3/2)b+c の等式を bについての等式に変形しなさい. 3. 数字だけを組み合わせて作る4桁の暗証番号は全部で何通りできますか? キーボードから正の数を次々と入力し, 0が来たら,それまで入力した数の最大値,最小値,平均値を出力するプログラムを書きなさい. [3] 環境 [3.1] OS: (Windowsxp [3.2] コンパイラ名とバージョン: ez-HTML ver6.686.1 [3.3] 言語:ジャバスクリプト [4] 期限: 6月22日 [5] その他の制限: 計算、値の書き換え、更新、入力、条件分岐、繰り返し を習ったそうです。何もわかりません、、 ジャバスクリプトを使ってます。 お願いします。 バージョンや言語がよくわからないので違っていたらすみません。。
そうですか よかったですね
emacsって、UNIX、Linux系で使われているエディタでしょ。 俺はUNIXでmuleを使っていたんでemacsの使い方はさっぱり分からんちん。 けど、文字を入力して使う分には変わりはないな。
空気が読めない人ね
空気なんて透明で普通の人なら読めるもんじゃない もし読める人がいたら・・・仙人かエスパー。 そして空気嫁は独身男性が夜に愛用している空気を入れて膨らます(ry
96 :
デフォルトの名無しさん :2006/06/16(金) 15:48:49
ちょっとageますよ
97 :
デフォルトの名無しさん :2006/06/16(金) 16:36:42
[1]プログラミング演習[2] 問題文は下に表記[3] 環境 Linux言語:C++[4] 期限:明日の正午 指示に従って完成させなさい #include <ccc_win.cpp> void draw_neko( double x,double y ){ cwin << Message( Point(x,y), " /\\ /\\"); cwin << Message( Point(x,y-1),"( . . )"); cwin << Message( Point(x,y-2),"( )~" ); return;} void run_neko( int n,Point p[] ) { /* 配列 p の各要素をすべて右に10平行移動 */ for( int i=0;i<n;i++ ) p[ i ].move( 10.0,0.0 ); for( int t=0;t<300;t++ ){ cwin.clear(); /* * 配列 p の各要素の x 座標と y 座標を draw_neko に渡し、描画 * 各要素を左に 0.1 平行移動 */ usleep(1);} exit(0);} int main() { Point p[] = { Point(0,0),Point(3,3),Point(3,-3), Point(6,6),Point(6,0),Point(6,-6) }; run_neko( 6,p ); return 0; }
ちょっとスレと関係ないんですが、なんで宿題スレって乱立してるんでしょうか?
重複ったスレは放置して捨てればいいものを トーマスという方の「出されたものは全部食べるのが2ちゃんねるの常識」 という理屈でもって保守されているらしい
>>99 「出されたものは残さず食べる」というのが守れないなら2chに来ない方がいいよ。
ということだそうです 混乱の原因は
原因は、質問している人とその質問している人が出した問題を考えた教員を バカじゃね?っと煽りに来るトーマスのせい。コンパイルもできない 見づらく汚いソースを貼り付けても「何か問題でも?」と自分の落ち度を 指摘されても開き直って、さも修正してやったと恩を着せる態度。 そして修正したソースをコンパイルすると・・・質問したものが求めた目的の 結果が出せないプログラム。出題者をバカにする以前に自分が出題内容を 理解していないというのを露呈してまで書き込むわけのわからないトーマス。 あぁ、トーマス、あなたはなぜトーマスなの?
>>103 バカをバカにすると何か問題でも?
俺のコードの誤りは指摘があれば修正している。何か問題でも?
なんで宿題スレの住人はこんな奴らばっかりなんだ
宿題スレはクズの隔離スレだからさ。 何をいまさら。
なるほど、要するにトーマスも隔離されたクズの一員か 俺はクズにはなりたくねぇ、もうこねぇ〜よウワァ〜〜ン
108 :
デフォルトの名無しさん :2006/06/16(金) 23:03:29
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): bcd abcと入力しabcbcdとなるプログラムを書け void renketu(char *a, char *b); 連結先はaにすること [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語 [4] 期限:2006/06/21 [5] その他の制限:ポインタを使用すること
>>108 #include<stdio.h>
#include<stdlib.h>
void renketu(char* a,char* b){size_t i,la,lb;la=strlen(a);lb=strlen(b);
for(i=0;i<lb;i++)a[la+i]=b[i];a[la+i]='\0';}
int main(void){size_t len;char tmp[100];char* a;char* b;fgets(tmp,sizeof(tmp),stdin);
len=strlen(tmp);a=(char*)malloc(len);b=(char*)malloc(len);sscanf(tmp,"%s %s",a,b);
renketu(a,b);printf("%s\n",a);return 0;}
110 :
デフォルトの名無しさん :2006/06/16(金) 23:23:52
【質問テンプレ】 [1] 授業単元: オペレーティングシステム [2] 問題文(含コード&リンク): fork,exec*システムコールを用いて簡単なコマンドインタープリタ (mysh)を作成せよ。但し、作成するコマンドインタープリタは以下の 昨日をサポートすること。 ・設定ファイル(.path)にコマンドサーチパスを指定することが出来る。 なお、ファイル内のパスの指定方法は、各自が考え定義すること。 (パスにないコマンドを入力した場合には、見つからない旨のエラー メッセージを出力すること。) ・パイプを利用して複数(可変個)のコマンドの入出力を結合する ことができる。 ・コマンド実行中にCtrl-Cを入力すると、現在のコマンドの実行を 中断する ・exitを入力すると、myshを終了する。 [3] 環境 [3.1] OS: windowsXP,cygwin [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C言語 [4] 期限: ([2006年06月20日23:59まで] [5] その他の制限: ファイル入出力、プロセス制御、パイプ生成に 関してはシステムコールを用いること。 よろしくお願いいたします。
>>109 ありがとうございます
ただmalloc関数は習っていません・・・
言うの忘れて申し訳ございませんでした・・・
>>111 aとbをポインタじゃなくて、char a[10]
みたいに配列にすればいい。
ただしそれをやると柔軟性がなくなる
(文字入力制限がかかったり、プログラムが飛んだりする)
から
>>109 は親切のつもりでmallocを使っているのだろう。
まあ、char temp[100]でも同じ問題は残るんだけどね。
>>111 あとは知らん。
>>112 >まあ、char temp[100]でも同じ問題は残るんだけどね。
いや、fgetsでsizeof(tmp)を指定してるから、100文字以上の入力はされない。
おおっとfgetsを見落としてた。すまん。 たしかにそれならバッファオーバーランは起こらないね。
>void renketu(char *a, char *b); >連結先はaにすること こういう、バッファオーバーランを起こしてくれと言わんばかりの課題を平気で出す教官は マジでクビになって欲しい。
116 :
デフォルトの名無しさん :2006/06/17(土) 00:56:45
bにconstをつけろって言いたい。
>>110 マジすか、その課題。
1Kくらいいくんじゃね?俺だったら10時間くらいかかるかもしれん。
はたして解答者は出るのだろうか。
execとかforkの縛りさえなければ char tmp[1024]; while(1){ printf("% "); fgets(tmp,sizeof(tmp),stdin); system(tmp); } で要求のほとんどが満たせそうな気が。
>>118 いや、縛りがあるから難しいしめんどくさい。
あとパイプの制御も全部自分でやんなきゃならんし、
複数のプロセスをexecしてるときにシグナル入ったら
どうすればいいかっつー問題もある。
コマンドサーチパスも、親シェルのパスを引き継がない
っつーことだしな。
まぁリダイレクトが無い分単純だけど。
120 :
デフォルトの名無しさん :2006/06/17(土) 15:49:06
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 0〜5までを順に入力した時に,5〜0の順で表示するプログラムを作ってください。 char moji[ ] を用いること。 [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: c [4] 期限: なぜか今日 [5] その他の制限: 問題文の通りです。
>>120 なしてcharを使うのか分からんけど、要するに入力したものを
逆から表示しろってこと?まぁ、勝手にそう解釈して書いてみるけどw
122 :
デフォルトの名無しさん :2006/06/17(土) 16:10:50
そうです。おながいします。
>>120 #include <stdio.h>
struct data{
char moji[100];
};
int main(void)
{
struct data str[5];
int i;
for (i=0;i<5;i++){
scanf("%s",str[i].moji);
}puts("------------------");
for (i=4;i>=0;i--){
printf("%s\n",str[i].moji);
}
return 0;
}
>>120 ほい、自分でも幼稚だって思えるソースだが・・・w
#include <stdio.h>
#include <string.h>
int main() {
char moji[6];
int i;
printf("Input some charactors\n");
for(i=0; i<6; i++) {
printf("%d > ",i+1);
scanf("%s",&moji[i]);
}
for(i=5; i>=0; i--)
printf("%c ",moji[i]);
return 0;
}
ちなみにコレ
>>124 各要素は1文字しか入らないからw
>>123 よく見たら5じゃなくて6だった。orz
5→6
4→5に変更して。
012345って入力したときに543210って表示するのなら #include <stdio.h> #include <string.h> int main(){char moji[256];int i;printf(">>>");scanf("%s", moji);for(i=strlen(moji);i--;)printf("%c",moji[i]);return 0;}
129 :
デフォルトの名無しさん :2006/06/19(月) 14:31:00
[1] 授業単元:プログラミングU [2] 問題文(含コード&リンク): 目的は、コンピュータとプレイヤーでじゃんけんをするプログラムを作成することである。 その際、コンピュータの手は、乱数によって決め、プレイヤーには知らせない。 プレイヤーの手は、「じゃんけんぽん」のメッセージに対して、プレイヤーがキーボードから入力する。 プレイヤーの手が入力されたら、それとコンピュータの手を比較して、勝敗を表示する。 第一段階 1 「じゃんけんぽん」と表示し、その直後、プレイヤー「グー」か「チョキ」か「パー」を入力させる。 入力方法をどうするかは、プログラマの自由であるが、そのルール説明を、実行時の最初に一回だけ表示する。 2コンピュータの手は乱数により決める。 3プレイヤーとコンピュータの手をそれぞれ表示する。 4プレイヤーの「勝ち」「負け」「あいこ」を表示し、終了する 第二段階 4あいこの場合は「あいこでしょ」と表示して勝負を繰り返すようにする。 5勝負がついたら、プレイヤーの勝ちか負けかを表示して終了する。 第三段階 5勝ち、負けの表示後、プレイヤーが勝った場合はじゃんけんを継続する。 6プレイヤーが負けたら、勝った回数を表示し、終了する。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:OS付属コンパイラ [3.3] 言語:C [4] 期限:2006年6月23日17:00まで [5] その他の制限:特にないです。皆様が標準だと思われる環境で動作するものであれば大丈夫だと思います。 おそらくscanf switch if〜elseくらいまで習った気が・・・。 第一段階の最後4番と 第二段階最後5番と 第三段階最後7番が提出するものです。 お手数ですがお願いします。
CPUに絶対勝てないじゃんけんぽん作ったなあ
#include <stdio.h> #include <stdlib.h> #include <time.h> int show(int p){ switch(p){ case 0:printf("グー\n");break; case 1:printf("チョキ\n");break; case 2:printf("パー\n");break; default:break;}} int judge(int p, int e){ printf("あなたの手:");show(p); printf("COMの手:");show(e); if(e == p)return 0; if(e == ((p+1)%3))return 1; return -1;} int main(int argc, char *argv[]){ int win=0,p,e; char buf[1024]; srand((unsigned)time(NULL)); printf("じゃんけんゲーム\n0:グー 1:チョキ 2:パー\n"); while(1){ printf("\nじゃんけんぽん:"); while(1){ fgets(buf,1024,stdin); sscanf(buf,"%d",&p); p = p%3; e = rand()%3; if(judge(p,e) != 0)break; printf("\nあいこでしょ:");} if(judge(p,e) < 0)break; printf("勝ち!\n");win++;} printf("負け!勝った回数は%dだよ\n",win);}
char te[3][7] = {"グー","チョキ","パー"}; int show(int p){printf("%s\n",te[p]);} こっちのほうがいいかな
133 :
129 :2006/06/19(月) 22:52:51
把握しました。dクス。助かったわ。
>>130 こんなの?
#include <stdio.h>
int main(void)
{
int user,i;
char *te[]={"グー","チョキ","パー"};
printf("0-グー 1-チョキ 2-パー\n");
for (i=0;i<5;i++){
printf("Input > ");
scanf("%d",&user);
printf("あなた > %s\nCPU > %s\n",te[user],te[(user+2)%3]);
puts("あなたの負け");
}
printf("%d回やっても勝てないなんて・・・テラヨワスwww",i);
return 0;
}
135 :
デフォルトの名無しさん :2006/06/25(日) 22:38:35
【質問テンプレ】 [1] 授業単元: オペレーティングシステム [2] 問題文(含コード&リンク): fork,exec*システムコールを用いて簡単なコマンドインタープリタ (mysh)を作成せよ。但し、作成するコマンドインタープリタは以下の 機能をサポートすること。 ・設定ファイル(.path)にコマンドサーチパスを指定することが出来る。 なお、ファイル内のパスの指定方法は、各自が考え定義すること。 (パスにないコマンドを入力した場合には、見つからない旨のエラー メッセージを出力すること。) ・パイプを利用して複数(可変個)のコマンドの入出力を結合する ことができる。 ・コマンド実行中にCtrl-Cを入力すると、現在のコマンドの実行を 中断する ・exitを入力すると、myshを終了する。 [3] 環境 [3.1] OS: windowsXP,cygwin [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C言語 [4] 期限: ([2006年06月26日23:59まで] [5] その他の制限: ファイル入出力、プロセス制御、パイプ生成に 関してはシステムコールを用いること。 よろしくお願いいたします。
>>135 オメーいつから溜め込んでやがんだアフォ
>>97 ずいぶんな亀レスだが、ccc_win.cpp って結構一般的に使われてるの?
俺の学校でも ccc_win.cppインクルードして cwin << Point(0,0) とか
やったけど、その学校特有の関数だと思ってた
それとも同じ学校・・・
>>138 どこの学校なのかは知らないが、*.cppをインクルードするというのは
全くの異端だから気をつけとけよ。
140 :
デフォルトの名無しさん :2006/06/26(月) 14:47:33
141 :
デフォルトの名無しさん :2006/06/26(月) 16:38:41
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 関数sin(2x) と関数cos(x) の和 を求めるプログラムを作ってください。 ただし,xの値を0〜2πの間で100等分。 [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: (gcc [3.3] 言語: (C [4] 期限: 明日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
>>141 #include<stdio.h>
#include<math.h>
int main(void){double x;for(x=0.0;x<2.0;x+=0.02)printf("x=%f,sin(2x)+cos(x)=%f\n",
x,sin(2.0*x)+cos(x));return 0;}
>>142 問題読め。C言語より先に日本語ちゃんと学べ。
#include<stdio.h>
#include<math.h>
int main(void){
double x, pi = acos(-1.0);
for( x = 0.0 ; x < 2.0 ; x += 0.02 )
printf("x=%f,sin(2x)+cos(x)=%f\n", x, sin(2.0*x*pi) + cos(x*pi));
return 0;
}
#include<stdio.h> #include<math.h> #define PI 3.141592 #define N 100.0 int main(void) {int i;double x,dt;dt= 2/N;for(i=0;i<=N;i++) {x = i * dt * PI;printf("x=%f sin(2x)+cos(x)=%f\n",x,sin(2*x)+cos(x));} return 0;}
ゆとり教育にならって #define PI 3 でw
146 :
デフォルトの名無しさん :2006/06/26(月) 23:50:55
ありがとうございます。 すごいですね。
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 入力ファイル中の改行文字('\n')を全て文字列"<RETURN>\n"へ置き換えて ファイルを出力するプログラムを作成せよ。 入力ファイル、出力ファイル名はキーボードから入力するものとする。 ●入力ファイル例 abcd 12345 ●出力ファイル例 abcd<RETURN> 12345<RETURN> [3] 環境 [3.1] OS:UNIX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:本日17時 [5] その他の制限: 特にないです 一応自分でやったのですが、うまく動作がしません
/* return.c : \n → <RETURN>\n */ #include <stdio.h> #include <stdlib.h> main(){ FILE *fpa,*fpb; char ch,filea[100],fileb[100]; printf("入力ファイル名:"); scanf("%s",filea); printf("出力ファイル名:"); scanf("%s",fileb); if ((fpa=fopen(filea,"r" ))==NULL){ fprintf(stderr,"エラーです。\n"); exit(1); } if ((fpb=fopen(filea,"w" ))==NULL){ fprintf(stderr,"ファイルがopen出来ません。\n"); exit(1); } while((ch=fgetc(fpa))!=EOF){ if (ch=='\n'){ fprintf(fpb,"%s<RETURN>\n",ch); }else{ fputc(ch,fpb); } } fclose(fpa); fclose(fpb); }
これでできるはず int a; while (fscanf(fpa,"%c",a)!=EOF){ if (a=='\n'){ fprintf(fpb,"<RETURN>\n"); }else{ fprintf(fpb,"%c",a); } }
150 :
147 :2006/06/27(火) 14:20:22
上ので試してみましたが、コンパイラは通ったのですが、 うまくファイルが作成されなかったです。 しかも入力ファイルの中身が消えてしまいます…‥
151 :
149 :2006/06/27(火) 14:39:21
× while (fscanf(fpa,"%c",a)!=EOF) ○ while (fscanf(fpa,"%c",&a)!=EOF) 初歩的なミスをしてしまったorz
152 :
147 :2006/06/27(火) 15:09:32
ありがとうございます!おかげさまで出来ました。 あと初歩がわからなかったので勉強しなおします。
>>152 お前いいやつだな
ここにくるやつの大半は丸投げのやる気なしなのに
[1] 授業単元: プログラミング [2] 問題 名前と点数を格納するデータ部を持つ自己参照型構造体を定義し、 線形リストを実装しなさい。 構造体の名前は struct grade とし、新たに glist 型として定義する。 構造体のメンバは、char name[40]、int score、及びポインタnext。 ノードは3つ作成し、それぞれキーボードからデータを入力する。 ポインタに値を代入し、ヘッダhdと3つのノードの間を繋ぐ。 読み出し用のポインタpを使って、リストのデータを順に画面に出力する。 【ヒント】 実習時間中にスライドの指示に沿って作成したコードを提出しても良い。 余力のある人は、ノードを作成する際に動的にメモリを確保するコードを作成すること (より効率的なコーディングが可能となる)。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:visual studio.2003 [3.3] 言語: C [4] 期限: 今日中 [5] その他の制限:なるべく早くお願いします
156 :
デフォルトの名無しさん :2006/06/28(水) 15:26:16
全角が入ってるか 改行箇所間違えてるか ていうかそこまで面倒見切れん 訂正じゃなくて一から作ればいいじゃん
158 :
144 :2006/06/28(水) 20:01:56
>>156 はじめてlinux使ったとき全角受け付けてくれなくて
コンパイルエラーがでた。
他にも制限あるかもしれないけど
linuxつかってないんで分かりません。
159 :
143 :2006/06/28(水) 20:23:47
>>156 #include<stdio.h>
#include<math.h>
int main(void){
double x, pi = acos(-1.0);
for( x = 0 ; x < 2 ; x += 0.02 )
printf("x=%f,sin(2x)+cos(x)=%f\n", x*pi, sin(2*x*pi) + cos(x*pi));
return 0;
}
ちょっとxに関する表示が変だったので訂正。
元のままでは↑を除いて正常に動作したけど、コンパイル時に
mathライブラリリンクし忘れとかいうオチは無いよね?「実行できません」ではなく、
もっと具体的に何をしたら何が起きたかを書いてくれないと対処しようがない。
>>156 Linux とか UNIX 系のコマンドって正常終了したら一切メッセージが出ないんだよ。
だから、コンパイルして全くメッセージが出ないのは
正常にコンパイルが終ってるんだよ。
あと、コンパイルって実行じゃないよ。
コンパイルしたら、
.\a.out
って打たないと実行できないよ。
161 :
デフォルトの名無しさん :2006/07/03(月) 12:51:21
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):2つの配列a[i][j]とb[i][j]に数値を入力し,各要素の和を求めるプログラムを作ってください。 [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: c [4] 期限: 明日 [5] その他の制限:ナシ
162 :
デフォルトの名無しさん :2006/07/03(月) 14:21:39
[1] 授業単元: プログラミング [2] 問題文:階乗を計算するdoubleがたの関数を使い、1から10までの階乗を表示するプログラムを作成して ください。因数を使わないで、外部変数を使って、main関数からユーザー関数に、1から10までの値を送ってください [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 今日3時 [5] その他の制限:お願いします。私にはできません;;
>>162 が「引数」を「いんすう」とまちがっておぼえていて、そのまま打ち
込んで変換した結果「因数」となったのかも。
そういうオチかぁ?wwww
168 :
デフォルトの名無しさん :2006/07/03(月) 23:51:36
169 :
デフォルトの名無しさん :2006/07/04(火) 00:12:05
[1] 授業単元: プログラミング [2] 問題文:テスト結果を保存したファイルをwebページからダウンロードします。 ファイルにはテスト結果の点数を表す数値が140個格納されています。テスト結果のうちを 秀、優、良、可、不可それぞれの個数を集計して、以下のように棒グラフにより 表示するプログラムshukei.cを作成しなさい。 ただし、秀、優、良、可、不可は次のように判定すること。 ・秀:90〜100点 ・優:80〜89点 ・良:70〜79点 ・可:60〜69点 ・不可:0〜59点 また棒グラフは記号「*」の数が該当する生徒の人数を表すものとする。 実行例:(ただし、test.datの集計結果が正確に下の棒グラフのようになるとは限らない。) ./shukei<test.dat 集計結果は次のとうりです。 秀:********* 優:************ 良:************************ 可:******************************* 不可:**************** [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: [2006年7月4日まで] [5] その他の制限: whileを習ったので使わないといけないみたいです。 よろしくお願いします。
>>164 >3の階乗までの結果の6と4を掛けて求めろってことじゃね?
6も4も因数なわけだが。アホか?
>>165 どうやらそうらしい。
>>169 #include <stdio.h>
int
main()
{
int i, j, n;
int score[] = { 0, 0, 0, 0, 0 };
const char* label[] = { "秀", "優", "良", "可", "不可" };
while (scanf("%d", &n) > 0) {
if (90 <= n && n <= 100) { score[0]++; }
else if (80 <= n && n <= 89) { score[1]++; }
else if (70 <= n && n <= 79) { score[2]++; }
else if (60 <= n && n <= 69) { score[3]++; }
else if (0 <= n && n <= 59) { score[4]++; }
}
for (i = 0; i < 5; i++) {
printf("%s: ", label[i]);
for (j = 0; j < score[i]; j++) { printf("*"); }
printf("\n");
}
return 0;
}
172 :
デフォルトの名無しさん :2006/07/04(火) 00:43:11
>>170 6が何の因数?結果の因数ってなら論外ね。俺はそれは言ってないから。
6をさらに2・3にするとか、4を2・2にしたら各々の数値が因数だと思うが?
とりあえず意味が分からないなら突っ込まない方が良いみたいだな
少なくともお前にアホって言われたくないんですけどぉ〜〜?市ねよカス
C/C++の宿題を片付けます 67代目
http://pc8.2ch.net/test/read.cgi/tech/1150273052/ 39 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 09:52:58 ?#
>>11 しまった。
-printf("%lf\n",abs(pt[1].x-pt[0].x)*abs(pt[1].y-pt[0].y));return 0;}
+printf("%lf\n",pow(pt[1].x-pt[0].x,2)*pow(pt[1].y-pt[0].y,2));return 0;}
41 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 12:50:36
>>39 三平方の定理って知ってる?
44 名前:デフォルトの名無しさん 投稿日:2006/06/15(木) 13:12:16 ?#
>>41 >2点間の距離の2乗を計算する
175 :
デフォルトの名無しさん :2006/07/04(火) 00:59:14
>>171 ありがとうございます!
ですが…俺がちゃんと制限しなかったせいなんですが…
score,const,char,label,for,return
というのは習ってないんです。
while,if,scanf,printfと変数だけで出来ないでしょうか?
>>174 引数のことなんてどーでも良いんだよ、因数がどうかが次の言い争いの論点になっただけ。
6単体では因数とは言いません。6を2・3であらわしたとき、その各々の要素が因数になる。
日本語も数学も理解していないバカ共は中学校からやり直した方が良いんじゃね?
数学も知らずに数値計算のプログラムをしててもつまんねーだろ?な?
>>172 >俺はそれは言ってないから。
だから何?
誤謬によって元の題意自体が存在しないんだから、「意味ワカンネ」が正解であって、お前が脳内で
でっちあげた題意なんか知ったことではないんだが。
179 :
デフォルトの名無しさん :2006/07/04(火) 01:11:03
>>177 >>178 お前の頭が弱くて必死なのは分かるが、頭が弱いがために
適切な説明も理解もできなくてますます自分を窮地に追いやっているな
お前、在日だろ?素性までバレバレとは・・・
>>179 じゃあ6と4は因数ではないのかね?
4は4の因数だし6は6の因数なんだが。
万が一「因数を使うな」が正解だったとしても「何の因数か」が指定されてないんだから
やっぱり「意味ワカンネ」が正解なわけだ。
>>180 6と4がではなく6そのもの、4そのものは因数ではない。
6の因数は2・3、4には2・2と因数分解できるが?
因数分解についても理解していなかったか?やれやれ・・・
どうでも良いが、俺は計算結果に対しての因数とは言っていない。
計算結果は掛け算して出すのはわかってんだし
まぁ、これ以上は無駄な議論になるんで、あとはお前の弱い頭でとことん理解しろ
明らかにトーマスの勝ちが見えてるのになんで勝利宣言してるんだろう…
>>182 明らかにトーマスが因数の意味を理解していないことに気づくまでに
あんたも時間が掛かるだろうね
>>181 >6と4がではなく6そのもの、4そのものは因数ではない。
だから何の?
>6の因数は2・3、4には2・2と因数分解できるが?
因数分解と素因数分解の違いはわかってまちゅか?
素数でなくても「因数」と言うんでちゅよ〜
>>185 >幾つかの整式の積の形で表されているとき、その各構成要素
6は6であっていくつかの整式であらわせるとしても、
6という数字単体ではいくつかの整式の積であらわされていないため
因数とは言わない。因数になり得る数値であるというならまだしもw
>>183 ここまで堂々と自爆する奴久しぶりに見た。
>要するに、4の階乗(24)だったら1・2・3・4とそのときに因数の掛け算をせず の「因数」は何の因数のつもりだったんだろう。
>各構成要素をいう 各要素に対して因数と言って下さいね♥ > トーマス
192 :
デフォルトの名無しさん :2006/07/04(火) 01:41:28
プログラミングについてほとんどわかってません…。どうか助けてくださいorz 【質問テンプレ】 [1] 授業:プログラミング入門 [2] 問題文:while文を使って任意個のデータ(0〜100)の平均と標準偏差を求めよ。 [3] 環境 [Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語 [4] 期限: 今週中に [5] その他の制限:文系大学なので初歩の初歩です。if,for,whileまでは習いました。 999の入力を処理終了の合図にしたいのですがどうやればいいかわかりませんm(_ _)m
193 :
192 :2006/07/04(火) 01:42:13
192の続きです。自分で作ってみたソースは以下です。 #include<stdio.h> #include<math.h> int main(void) { int n,x; double sum,sum2,ave,sd; sum=0;sum2=0; puts("データを入力して下さい。0〜100以外の数を入力すると結果を表示します。"); n=1;x=0; while(0<=x&&x<=100){ printf("%d番目のデータ=",n); scanf("%d",&x); sum=sum+x;sum2=sum2+x*x; n++;} ave=sum/n;/*aveは単純平均*/ sd=sqrt(sum2/n-ave*ave);/*sdは標準偏差*/ printf("平均は%lfです\n",ave); printf("標準偏差は%lfです\n",sd); } return(0); }
>>191 何の構成要素?
>1・2・3・4
の事だったら、
>結果の因数ってなら論外ね。俺はそれは言ってないから。
と矛盾するしなぁw
>>192 #include <stdio.h>
#include <math.h>
int main(void)
{
int n;
double sum = 0.0, sqsum = 0.0, data = 0.0;
n = 0;
while( 1 ) {
scanf("%lf", &data);
if( data == 999.0 ) break;
sum += data;
sqsum += data * data;
n++;
}
sum /= n;
sqsum = sqrt(sum * sum - (sqsum / n)); // -の前後は逆かも知れない。
printf("平均=%f\n標準偏差=%lf\n", sum, sqsum);
return 0;
}
あと、トーマスの肩を持つわけじゃないが、因数はつまり約数と同義なわけだから
6が6の因数というのは間違いない。構成要素云々の解釈でも6=1×6で見ればおk。
だからこそ「素因数」なんて言うことで素数に限定する必要があるわけだ。
197 :
デフォルトの名無しさん :2006/07/04(火) 09:50:28
情報系のクセにプログラミングが全然わかりませんorz お願いします。 【質問テンプレ】 [1] 授業: プログラミング演習 [2] 問題文: ・10個の変数を生成 ・変数に数を入れる(乱数で数の範囲は1〜100) ← ここまで配列でつくりますた ・任意の変数を2つ選び、その数の和を計算、100以上ならお互いの変数にカウントする ・それぞれの変数におけるカウント数を計算する ・カウントした数の分布を出力 で、結果をグラフにするわけです(グラフはエクセルでしますので) [3] 環境 [Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語 [4] 期限: とくにありませんが、できるだけ早目がうれしいです [5] その他の制限: 上に書いたとおりこれでも情報系なので、しっかり理解したいです。 ソースだけでも充分ですが、補足説明があるとうれしいです。 よろしくおねがいします。
問題文そのまま載せろ。
199 :
デフォルトの名無しさん :2006/07/04(火) 10:18:49
構造体とポインタがちょっと危うい程度の香具師にc++を教えなきゃいかんのだが何か適当な課題ある?一日2時間一ヶ月ぐらいで。
実数か。漏れがほとんど実数触らんからなぁ。考えてみる。d
202 :
197 :2006/07/04(火) 17:55:09
>>198 はい
100個のノードを生成する
ノードに重みを適当に点ける(1〜100)
任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
それぞれのノードの持つリンクの数を計算する
リンクの数の分布
(リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
擬似的にWEBページの繋がりを出すプログラムです。
>>197 #include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100
int
main()
{
int i, j, link[SIZE], w[SIZE], count[SIZE];
memset(link, 0, sizeof(link));
memset(count, 0, sizeof(count));
srand(time(NULL));
for (i = 0; i < SIZE; i++) { w[i] = rand() % 100 + 1; }
for (i = 0; i < SIZE; i++) {
for (j = 0; j < i; j++) {
if (w[i] + w[j] >= 100) { link[i]++; link[j]++; }
}
}
for (i = 0; i < SIZE; i++) { count[link[i]]++; }
for (i = 0; i < SIZE; i++) { printf("link %d: %d\n", i, count[i]); }
return 0;
}
204 :
192です :2006/07/05(水) 22:17:58
お礼がおくれてすみませんm(__)m今回はどうもありがとうございました。
205 :
デフォルトの名無しさん :2006/07/06(木) 00:29:41
[1]C言語初級プログラミング [2]キーボードから任意の西暦年と月を入力し、その年月のカレンダーを表示するプログラムを作成せよ。尚、紀元前は考慮せず、閏年の判別にはグリゴリオ暦を用いる事。 (西暦の年月日から曜日を求める公式) w=[c/4]-2c+[y/4]+y+[26(m+1)/10]+d ここでcとyはそれぞれ西暦年数の上2桁と下2桁、mは月数(ただし、1月は前年の13月、2月は14月として計算)、dは日数である。また上記式の角ばった方の括弧はガウス記号を表している。wを7で割った余りより、以下のように判別する。ただしwが負の場合は7を付け足す事。 1(日),2(月),3(火),4(水),5(木),6(金),0(土) [3]OS:Linux コンパイラ名:gcc 言語:C言語 [4] 期限:今週末まで [5] その他の制限:c言語の授業を受け始めてまだ間もない状況です(授業2回分程度)。なので私自身あまり難易度の高いプログラミングはまだまったく出来ません。
206 :
c++ :2006/07/07(金) 16:10:01
[1] 授業単元: プログラミング言語 [2] 問題文(含コード&リンク): 線形リストを用いて、素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成せよ。ただし、Nはプログラム実行中で外部から入力できるようにすること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: 6.0 [3.3] 言語: C++ [4] 期限: 2006年7月10日まで [5] その他の制限:たぶんなし この問題がわかりません。 基礎なことかもしれませんが、どうかお願いします
>>206 メモリ開放まんどくせ
#include<iostream>
using namespace std;
struct Cell{int car;Cell*cdr;Cell(int car,Cell*cdr):car(car),cdr(cdr){}};
Cell*enumFromTo(int from,int to,Cell*cdr=NULL){return from>to?cdr:enumFromTo(from,to-1,new Cell(to,cdr));}
Cell*erase(Cell*p,int n){return!p?NULL:p->car%n?new Cell(p->car,erase(p->cdr,n)):erase(p->cdr,n);}
Cell*solve(Cell*p){return p?new Cell(p->car,solve(erase(p->cdr,p->car))):NULL;}
int main(){
int n;cout<<"n <- ";cin>>n;
for(Cell*p = solve(enumFromTo(2,n));p;p=p->cdr)cout<<p->car<<' ';
}
208 :
デフォルトの名無しさん :2006/07/09(日) 03:42:53
>>205 まったくの答えでないけど、下でできるはず。
エラー処理、get_youbi()とget_nissu()は自分で考えましょう。
intmain(void)
{
chartmp[256];
intyear, month,st,ni,ii ;
printf("年をいれろ->");
year = atoi(gets(tmp));
printf("月をいれろ->");
month = atoi(gets(tmp));
st = get_youbi(year,month,1)-1 ; /* 土曜は7を返す */
ni = get_nissu(year,month); /* 年月の月日数を返す */
printf(" 日 月 火 水 木 金 土\n");
printf("%*c",st*3,' ');
for (ii = 0 ; ii < ni ; ii ++ ){
printf("%3d",ii+1);
st++;
if (( st % 7 ) == 0 )
printf("\n");
}
return 0 ;
}
210 :
デフォルトの名無しさん :2006/07/09(日) 12:43:06
>>209 有難う御座います。後は自力で頑張ってみます。
211 :
デフォルトの名無しさん :2006/07/09(日) 12:52:48
c++builderで 点を左から右へ移動させる簡単なプログラムを教えてください。
点って? GUI?
213 :
デフォルトの名無しさん :2006/07/09(日) 13:04:06
はい、GUIです
214 :
デフォルトの名無しさん :2006/07/09(日) 21:44:23
[1] 授業単元:演習1 [2] 問題文(含コード&リンク): 1からNまでの自然数の中から,素数のみを取り出すプログラムを書きなさい 素数とは,1と自分自身以外では割り切れない数のことを言う.この性質を利用し,1からN までの数の中から,2の倍数(ただし1倍は除く) を取り除き,次に3の倍数を取り除き,... 最後にNの倍数を取り除く.最後に残るのが素数である. 以下の点に注意すること. * Nが最大で254まで対応できるようにすること. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 10日中 よろしくお願いします。
>>214 メモリ開放まんどくせ
#include<stdio.h>
#include<stdlib.h>
typedef struct Cell Cell;
struct Cell{int car;Cell*cdr;};
Cell*cons(int car,Cell*cdr){Cell*p=malloc(sizeof(Cell));p->car=car;p->cdr=cdr;return p;}
Cell*enumFromTo(int from,int to){return from>to?NULL:cons(from,enumFromTo(from+1,to));}
Cell*erase(Cell*p,int n){return!p?NULL:p->car%n?cons(p->car,erase(p->cdr,n)):erase(p->cdr,n);}
Cell*solve(Cell*p){return p?cons(p->car,solve(erase(p->cdr,p->car))):NULL;}
int main(){
Cell*p;
int n;printf("n <- ");scanf("%d",&n);
for(p = solve(enumFromTo(2,n));p;p=p->cdr)printf("%d ",p->car);
return 0;
}
216 :
214 :2006/07/09(日) 22:26:47
>>215 ありがとうございます。
実行した時に必ず1も表示させるにはどうしたらいいのですか?
>>216 1は素数じゃないから間違いのような気もするけど、一応表示するならこう
- for(p = solve(enumFromTo(2,n));p;p=p->cdr)printf("%d ",p->car);
+ for(p = cons(1,solve(enumFromTo(2,n)));p;p=p->cdr)printf("%d ",p->car);
[1] C言語プログラミング [2] 問題文(含コード&リンク): 要素数5の配列key[5]に、適当な初期値を用意し、単純交換法でソートするプログラムを作成せよ 要素が1つ決定されるたびに(前ページの流れ図のループ1の中で)、確認の為配列を画面に出力しなさい 初期値として、スライド・教科書の例を使い確認すること。 {58, 27, 6, 32, 13} 比較回数を数えて、最後に画面に出力しなさい 計算量の説明を参照して、確認すること 教科書・スライドの流れ図とプログラムで、要素番号の違いに注意する [3] 環境 [3.1] OS: XP [3.2] visual studio.2003 [3.3] 言語: C [4] 期限: 来週の火曜日まで [5] 配列、ループ、線形探索、二部探索、構造体
>>218 これでおk?
#include <stdio.h>
int bubbleSort(int *data,int size){
int i,j,cnt=0,temp;
for (i=0;i < size;i++){
for (j=0;j < size;j++){
cnt++;
if (data[i] < data[j]){
printf(" %d = %d\n",data[i],data[j]);
temp=data[i];
data[i]=data[j];
data[j]=temp;
}}}
return cnt;
}
int main(void){
int data[]={58,27,6,32,13},cnt,i;
cnt=bubbleSort(data,(sizeof(data)/sizeof(int)));
puts("----------------------------");
for (i=0;i < (sizeof(data)/sizeof(int));i++){
printf("%d\t%d\n",i+1,data[i]);
}
printf("\n%d回比較\n",cnt);
return 0;
}
ごるごるもあ?
221 :
デフォルトの名無しさん :2006/07/16(日) 16:16:03
>>218 これってスライドや教科書がどーなっているかで
答えが微妙に変わるような希ガス
223 :
デフォルトの名無しさん :2006/07/20(木) 23:24:28
[1] 授業単元:cプログラミング [2] 問題文(含コード&リンク): 大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純挿入法で昇順にソートするプログラムを作成せよ。 ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。 【ヒント】 配列の大きさの指定 ‥ ただし最初の要素は番兵用。よって入力は SIZE - 1 回。 単純挿入法‥未ソートの部分の先頭の要素を、ソート済みの部分に挿入する 途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。 比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。 [3] 環境 [3.1] OS: xp [3.2] visual studio2003 [3.3] 言語: c [4] 期限: 25日まで [5] その他の制限: ループ、探索、ソート、配列、構造体など
225 :
デフォルトの名無しさん :2006/07/25(火) 12:19:56
別のスレですれ違いと指摘されここにたどり着きました。よろしくお願いします。 以下は作ってもらったプログラムですが、できれば以下の修正をお願いします。 @double a, s;を使わない。time(NULL)・double y, w = 0.0;も使わない。 A実行時にy[ ] =を表示しないで、数値のみを表示する。 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> void main(void) { int i, j; double a, s; srand((unsigned)time(NULL)); printf("a s = "); scanf("%lf %lf", &a, &s); printf("a = %lf\n", a); printf("s = %lf\n", s); for(i = 0; i < 100; i++){ double y, w = 0.0; for(j = 0; j < 12; j++) w += (double)rand() / (double)RAND_MAX; y = s * (w - 6) + a; printf("y[%2d] = %lf\n", i, y); } getchar(); }
227 :
225 :2006/07/25(火) 15:25:27
>>226 すみませんでした。
自己解決しましたのでOKです。ご迷惑おかけしました。
(・3・) エェー ぼるじょあはどこだYO
>>228 そのトリップを見るたびに"fuck you"を連想する。
>>224 (・3・) エェー その配列の型は何だYO
番兵やた挿入やらなんかリストっぽいけど本当に配列かYO
231 :
ぼるじょあ ◆yBEncckFOU :2006/07/30(日) 02:31:37
(・3・) アルェ〜 このスレは使われてないのかYO!
232 :
デフォルトの名無しさん :2006/07/30(日) 04:19:58
プログラムの質問としては少し違うのかもしれませんが、 平方cmと立方cmなど右上に小さな数字を打ち込みたいのですがどうやったらできますか?^^;
printf("%g$cm^2$\n", area); printf("%g$cm^3$\n", volume);
cuってこと?
235 :
デフォルトの名無しさん :2006/07/30(日) 04:50:45
それもですが普通に10の23乗とかとかを打ち込みたいんですけど どうしたらいいのかわからなくて^^;
printf("%g\n", 1e23);
237 :
デフォルトの名無しさん :2006/07/30(日) 05:00:14
普通にテキストの段階で教科書に書いてるような小さな数字をそのまんま表示させたいのですが^^;
238 :
デフォルトの名無しさん :2006/07/30(日) 05:02:14
cuですめばいいときもあるのですが、この2の部分が3の時とかきごうで変換させても候補ないのでどうしたらいいのか考えてるのです^^;
プレインテキストでそれをやろうと思ってるのなら無理
240 :
デフォルトの名無しさん :2006/07/30(日) 05:05:19
なるほど なら基本的には先程教えていただいたようにcm^3とい風でいいのですかね?
cm^3はUnicodeだとあるみたいだ U+33A4 まあ4乗ならどうするのかとか一般性を考えれば 累乗を^で表すとか当事者間で規約を決めてそれに従うのが普通だと思う
242 :
デフォルトの名無しさん :2006/07/30(日) 05:14:26
なるほど、参考になりました^^ ありがとう^^
(・3・) エェー 腹減って来たYO!
244 :
赤鼻 ◆uh1FQt4ihg :2006/08/02(水) 19:15:15
>>243 ボルジョア様こんばんわ
早速ですが、質問です。
C++のコンパイラをインストールしようと試みたのですが、
容量が足りないとエラーが出てしまいます。
50MBあけて再試行してしてくださいと。表示されますが、
ちゃんと、C:¥ドライブには、76GBの容量があるんです。
困りました。どうすればよいのでしょうか?初心者ですみませぬ。
246 :
ぼるじょあ ◆yBEncckFOU :2006/08/06(日) 02:07:07
(・3・) エェー 良い子の簡単な質問待ってるYO
ここは授業オンリーなんですか? 授業以外で同じ趣旨のスレって有るんですかね?
授業以外でも宿題ならばOKだろ でも授業以外の宿題って・・・?
>248 あぁーそっか、「宿題」か。 なるほど。サンクス!
250 :
ぼるじょあ ◆yBEncckFOU :2006/08/30(水) 00:04:04
_, ._ (・3・) エェー 宿題まだぁ?
(・3・) エェー 無いC
ぼるじょあ先生! 彼女いない暦生まれたときからの俺に良い彼女を作る方法を教えてください。
>>252 必要な材料は石鹸1個、釘1本、マッチ100本、鉛筆450本、石灰コップ1杯、硫黄一つまみ、マグネシウム一つまみ、水1.8リットル。
国連軍が出動するほどの大騒ぎになるからな。
ミルク持って来い
257 :
デフォルトの名無しさん :2006/10/04(水) 12:53:49
[1]授業単位 C言語実習 [2]仕様書 整数の四則演算の入力を受け付け、計算結果を整数で出力します。 1.ユーザーの入力を受け付ける 2.入力結果を解析し、計算結果を表示する。 (例:1+2+3*4 という入力をすると、15という数値を表示する) 3.括弧にも対応すること。 (例:1+(2+3)*4 という入力をすると、21という数値を表示する) (例:(1+(2+3))*4 という入力をすると、24という数値を表示する) 4.入力される数値は、大きい桁にも対応する。 (例:(100+(200+300))*400 という入力をすると、240000という数値を表示する) 5.16進にも対応する(出力は10進で) (例:(0x10+(0x20+0x30))*0x40 という入力をすると、6044という数値を表示する) 6.(オプション)2進にも対応する(出力は10進で) (例:(0b1+(0b10+0b11))*0b100 という入力をすると、24という数値を表示する) ※6.はオプションなので、時間があれば作る。急ぐなら組み込まなくてもよい。 ※/はCの/と同じ動き。つまり 1+2*3/4は、2*3=6を/4したもの、つまり1となり上記計算結果は2となる。 [3] 環境 [3.1] OS: XP [3.2] Visual Studio2003 [3.3] 言語: c [4] 期限: 6日まで 困り果てた挙句ここに書き込みました
>>257 6は未対応だけど
#include<stdio.h>
#include<stdlib.h>
int expr(char*&p);
int mul(char*&p,int v){return *p=='*'?++p,mul(p,v*expr(p)):*p=='/'?++p,mul(p,v/expr(p)):v;}
int add(char*&p,int v){return *p=='+'?++p,add(p,v+mul(p,expr(p))):*p=='-'?++p,add(p,v-mul(p,expr(p))):v;}
int expr(char*&p){int v;return *p=='('?++p,v=add(p,mul(p,expr(p))),++p,v:strtol(p,&p,0);}
int main(){char*p,tmp[100];while(gets(p=tmp))printf("%d\n",add(p,mul(p,expr(p))));}
259 :
253 :2006/10/04(水) 22:45:33
>>254-256 このネタにフツーに反応してくれるとは思わなかった。
なんかウレシイぞ。
260 :
258 :2006/10/04(水) 22:46:02
わりいC++の参照使ってた書いてた。 Cに直したのはこっち。 #include<stdio.h> #include<stdlib.h> int expr(char**p); int mul(char**p,int v){return **p=='*'?++*p,mul(p,v*expr(p)):**p=='/'?++*p,mul(p,v/expr(p)):v;} int add(char**p,int v){return **p=='+'?++*p,add(p,v+mul(p,expr(p))):**p=='-'?++*p,add(p,v-mul(p,expr(p))):v;} int expr(char**p){int v;return **p=='('?++*p,v=add(p,mul(p,expr(p))),++*p,v:strtol(*p,p,0);} int main(){char*p,tmp[100];while(gets(p=tmp))printf("%d\n",add(&p,mul(&p,expr(&p))));}
会社の先輩にC++でコールバックできる仕組みを調べて来いと言われました。 boost::functionとか便利そうですが、標準C++ライブラリのみでできないでしょうか。 また、どんな戻り値&引数の関数も区別無く渡して保存できる方法というものはないのでしょうか。
CallBackって実装上の仕組みじゃなくて、仕様上の仕組みなんだけどその辺区別してる?
264 :
デフォルトの名無しさん :2006/10/05(木) 17:18:19
【質問テンプレ】 [1] 授業単元: 応用プログラミング [2] 問題文(含コード&リンク): 2つの整数をさすポインタを引数とし、 それらのポインタがさす整数のうちが大きいほうの値をさす ポインタを返す関数 max_pointer を作成し、 プログラム (Sep27.c)を完成しなさい。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Borland Compiler [3.3] 言語:C++ [4] 期限: 今日の日付が変わるまで [5] その他の制限:
265 :
264 :2006/10/05(木) 17:19:24
#include <stdio.h> #include <stdlib.h> int max_value(int *a,int *b); main() { int i, j, k; for (k = 1; k <= 10; k++){ i = rand(); j = rand(); printf(" %5d と %5d のうち大きいほう = %5d \n",i, j, max_value(&i,&j)); } } int max_value(int *a,int *b) { if(*a>*b){ return *a; } return *b; } これではダメだと言われました。 助けてください お願いします
int* max_value(int *a,int *b) { if(*a>*b){ return a; } return b; } とか
>>263 意味が良くわかりません。何の実装上の仕組みと何の仕様上の仕組みの区別を問うておられるのですか?
268 :
264 :2006/10/05(木) 17:48:35
270 :
264 :2006/10/05(木) 19:18:58
#include <stdio.h> #include <stdlib.h> /* プロトタイプ宣言 */ main() { int i, j, k; for (k = 1; k <= 10; k++){ i = rand();/**/ j = rand(); /* 次の printf 文に注意 */ printf(" %5d と %5d のうち大きいほう = %5d \n", i, j, /* 呼び出し部分*/); } }
271 :
264 :2006/10/05(木) 19:28:20
/*
>>270 は誤爆です。*/
/* ただしい変更前のSep27.c です。どうかお願いします*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int* max_pointer (int *a,int *b);
int main()
{
int i, j, k;
srand((unsigned) time(NULL));
for (k = 1; k <= 10; k++)
{
i = rand();
j = rand();
printf("ぴろこ: %5d と %5d のうち大きいほう = %5d \n",i, j, *max_pointer ( &i,&j) );
}
return 0;
}
int* max_pointer(int *a,int *b)
{
if(*a > *b) return a;
return b;
}
ぴろこって誰やねん。 でも、コードはこれでOKだろうから、264は参考にしる。
>>262 引数は、boost::bindを使ってからboost::function<void ()>に入れればいいと思う。
boost::functionのようなものは、引数・戻り値さえ固定なら自分で作るのもそう難しくはない。
#include <iostream>
typedef int intptr_t;
class my_function { //int (double)
public:
template <typename T>
my_function(T fn) : func(call_function<T>), obj(reinterpret_cast<intptr_t>(&fn)) {}
template <typename Ret, typename Arg1>
my_function(Ret (*pfn)(Arg1)) : func(call_function<Ret (Arg1)>), obj(reinterpret_cast<intptr_t>(pfn)) {}
int operator ()(double x) {return func(obj, x);}
private:
int (*func)(intptr_t, double);
intptr_t obj;
template <typename T>
static int call_function(intptr_t p, double x) {return (*reinterpret_cast<T*>(p))(x);}
};
int foo(double) {std::cout << "foo" << std::endl; return 0;}
struct hoge {
short operator ()(long double) const {std::cout << "hoge::operator ()" << std::endl; return 0;}
};
int main() {
my_function f = foo; f(0.);
hoge obj;
my_function g = obj; g(0.);
}
[1] 授業単元: C言語 [2] 指定されたデータからデータを読み込み、データ件数が何件あるか、最大データ長は何文字か 最大値および最小値を調べて出力するプログラムを作成せよ、ただしfscanf関数を使用してはならない データ長を数えるときに空白はカウントしない データにアルファベットおよび数値の中に記号等などを含んでいるデータは データ件数にカウントしない [3] 環境 [3.1] UNIX [3.2] [3.3] C [4] 来週の火曜日まで [5] fscanfはダメだが他はOK データ(例) 512.1 ↑17S4.Z 1183.5 631.8 959.4 678.6 483.3 620.1 1226.7 lOOS.3 1473.3 1591.2 -251.1 -1342.8 おねがいします。
278 :
275 :2006/10/06(金) 16:42:52
sscanfはOKです
279 :
デフォルトの名無しさん :2006/10/06(金) 17:10:18
>指定されたデータからデータを読み込み 意味がわからん。 これはデータをファイルから読み込むのか、それとも標準入力を使うのか。
>>275 C/C++の宿題を片付けます 74代目
http://pc8.2ch.net/test/read.cgi/tech/1158844912/l50 412 :デフォルトの名無しさん :2006/10/04(水) 13:56:16
[1] 授業単元:応用C
[2] 問題文(含コード&リンク)
fscanfを使わないで指定されたデータファイルから
データを読み込みデータ件数、最大データ長、最大値、最小値
を出力するプログラム:
[3.1] UNIX
3.3]C
[4] 来週の火曜日
[5] break文continue文fscanf
です。お願いします
281 :
215 :2006/10/06(金) 18:10:51
215に書いてあるように例のデータをテキストファイで作り 作ったデータをプログラムで読み込みデータ件数等を調べることです
282 :
275 :2006/10/06(金) 22:25:57
↑すみません275でした
入力例に対する出力例を。
284 :
ぼるじょあ ◆yBEncckFOU :2006/10/07(土) 16:57:42
(・3・) エェー ぼるじょあは永遠に不滅ですYO
285 :
デフォルトの名無しさん :2006/10/07(土) 17:18:39
286 :
ぼるじょあ ◆yBEncckFOU :2006/10/07(土) 17:18:55
(・3・) エェー ぼるじょあは永遠に滅亡ですYO
[1] プログラミング [2] エンゲル係数(食費/収入*100、小数点以下切捨て)チェックプログラムを作る、5人の1ヶ月の収入と食費を入力すると各人のエンゲル係数、エンゲル係数の平均値、エンゲル係数が平均値以上なのは何人目で食費とエンゲル係数はいくつかを表示する。 [3] 環境 [3.1] Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] c [4]10月10日 [5] ・すべての配列はメイン関数で宣言。 ・5人分の1ヶ月の収入と食費を配列に入力する関数、 各人のエンゲル係数を計算し、結果を別の配列に代入する関数、 エンゲル係数の平均値を計算し、その値を戻り値とする関数、 エンゲル係数が平均以上の人を調べ、何番目に入力した人であるかとそのエンゲル係数と食費を計算する関数、 をそれぞれ作る。 ・2次元配列を使用する よろしくお願いします
288 :
ぼるじょあ ◆yBEncckFOU :2006/10/08(日) 23:42:17
(・3・) エェー 把握したお
(・3・) エェー エンゲル係数が平均以上の人を調べ、何番目に入力した人であるかとそのエンゲル係数と食費を計算する関数、 これが良く分からなかったけど一応作ったお 2次元配列に入力する関数って僕の無い知識だと汚くなっちゃったお いい方法あるかお
#include<stdio.h> #include<stdlib.h> void inLife(long *life); void calcEngel(long life[5][2], long *engel); double average(long engel[5]); void checkOver(long life[5][2], long engel[5], double average); int main(void){ long life[5][2], engel[5], i; inLife(&life[0][0]); calcEngel(life, engel); for(i=0; i<5; i++)printf("%d人目のエンゲル係数:%d\n", i+1, engel[i]); printf("エンゲル係数の平均値:%f\n", average(engel)); checkOver(life, engel, average(engel)); return EXIT_SUCCESS; } void inLife(long *life){ int i; for(i=0; i<5; i++){ printf("%d人目の収入:", i+1); scanf("%d", life); printf("%d人目の食費:", i+1); scanf("%d", life+1); life += 2; } }
void calcEngel(long life[5][2], long *engel){ int i; for(i=0; i<5; i++){ *(engel+i) = (long)(life[i][1]*100.0/life[i][0]); } } double average(long engel[5]){ double sum= 0; int i; for(i=0; i<5; i++)sum += (double)engel[i]; return sum/5; } void checkOver(long life[5][2], long engel[5], double average){ int i; puts("エンゲル係数が平均値以上なのは・・・"); for(i=0; i<5; i++){ if(engel[i] >average){ printf("%d人目 食費:%d エンゲル係数:%d\n", i+1, life[i][1], engel[i]); } } }
[1] 授業単元:C言語実習 [2] 問題文: インクルードファイルstdlib.hにて定義されているrand()は 擬似乱数を生成する関数であり,この関数が呼ばれるたびに 0〜RAND_MAXまでの範囲の一様擬似整数乱数を生成する。 (1)この関数を利用して,0〜1.0区間のdouble型擬似乱数を生成せよ。 (2)(1)で生成した[0, 1]区間の一様乱数を10個生成して,その和を取ったものを新たな乱数として考える。 その乱数は[0, 10]区間の乱数になっているはずである。その乱数を100個程度作成して,平均値を求めよ。 (3)その乱数が一様乱数かどうかを確かめよ(どのような分布になっているか表示するプログラムを考える)。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名:Borland C++ Builder [3.3] 言語:C [4] 期限:10/9(今日中) [5] その他の制限:基本的なことしか習ってません お願いできますでしょうか
(・3・) エェー 今起きたお 今日中かお・・飯食ってから着手するお
(・3・) アルェー 全然一様にならんお でもしったこっちゃないお #include<stdio.h> #include<stdlib.h> #include<time.h> double rand2(void); double rand3(void); void showgraph(int cnt); int main(void){ int i; double sum= 0.0; srand(time(NULL)); for(i=0; i<100; i++)sum+= rand3(); printf("平均値は:%f\n", sum/100.0); showgraph(100); return EXIT_SUCCESS; } double rand2(void){ return (double)rand()/RAND_MAX; } double rand3(void){ double sum= 0.0; int i; for(i=0; i<10; i++)sum+= rand2(); return sum; }
void showgraph(int cnt){ int i, k, once, count[10]; for(i=0; i<10; i++)count[i]= 0; for(i=0; i<cnt; i++){ once = (int)rand3(); if(once <10)count[once]++; else count[9]++; } for(i=0; i<10; i++){ printf("%2d〜%2d:", i, i+1); for(k=0; k<count[i]; k++)printf("*"); puts(""); } }
一様にならんので正しいよ.中心極限定理から正規分布に近い形になるはず.
(・3・) エェー そうなんですかYO よかったYO
298 :
292 :2006/10/09(月) 21:20:47
>>ぼるじょあ ありがとう。 でも知識が足りなさ過ぎて全然プログラム理解できないや。 参考にしてやってみますm(_ _)m
>287だけどサンクス なんか見たことない関数使われてるけどそのまま提出してしまった・・・
(;・3・) エェー それでいいのかYO
301 :
◆HYwgg5QUFo :2006/10/13(金) 01:46:37
【質問テンプレ】 [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 始点と終点、およびその間に複数個の頂点と、2つの頂点間に正の重み(コスト) がつけられた辺からなる有向グラフにおいて、始点から終点に至る経路の中で 以下の処理を実行するプログラムを作成する。 (1)最大コストになる経路を深さ優先探索法で求める。 (2)最小コストになる経路を深さ優先探索法で求める。 (3)最小コストになる経路をダイクストラ法で求める。 なお、グラフの作成の際には、画面の適当な位置をマウスで順次クリックして ゆくと頂点とその間の枝が登録でき、結果の経路をその上に表示できるような GUIを作成する。グラフ作成時には有向グラフであるから枝の終端には 矢印をつけて枝の向きがわかるようにする。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: borland C++Builder 5 bcc32 [3.3] 言語: C言語 [4] 期限: ([2006年10月18日] [5] その他の制限: 特になし グラフがわからず、とても困ってます。どうかおねがいします。
>>301 > 結果の経路をその上に表示できるような
> GUIを作成する。グラフ作成時には有向グラフであるから枝の終端には
> 矢印をつけて枝の向きがわかるようにする。
> 言語: C言語
気合入ってるな
俺にはむり
(;・3・) エェー BCBなんかないんですけどYO
【質問テンプレ】 [1] 授業単元: C言語 [2] 問題文(含コード&リンク): scanf関数を用いて計算方法(+ − * /)と2個の整数を入力し 計算方法によって、2個の整数の計算を行え ただし、除算を指定した場合は、0で割り算しないこと [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: borland C++Builder 5 bcc32 [3.3] 言語: C言語 [4] 期限: ([2006年10月15日] [5] その他の制限: 特になし 丸投げして悪いと思うのですが、用事があって手がつけられそうにありません 宜しくお願いします
(・3・) エェー 把握したお
(・3・) エェー 例によってエラーチェックなんぞないYO #include<stdio.h> #include<stdlib.h> int main(void){ long x, y, ans; char str; printf("演算子 数値1 数値2の順に入力だお:"); scanf("%c%ld%ld", &str, &x, &y); if(str == '+')ans = x+ y; else if(str == '-')ans = x- y; else if(str == '*')ans = x* y; else if(str == '/'){ if(y == 0){ printf("0での除算は不可だYO\n"); return EXIT_FAILURE; } ans = x/ y; } else{ printf("そんな演算子認めませんYO\n"); return EXIT_FAILURE; } printf("%d %c %d = %d\n", x, str, y, ans); return EXIT_SUCCESS; }
308 :
デフォルトの名無しさん :2006/10/16(月) 10:14:40
[1] 授業単元: C言語 [2] 問題文 アナログ時計 1.使用する予定のライブラリ又はWindowsAPIを使用して、アナログ時計を作る。 2.文字盤・短針・長針は画像を使用する。秒針は、画像でもAPI等で直に書いてもよい。 3.システムから現在時刻を取得し、アナログ時計で表示する。 オプション)目覚まし機能 [3] 環境 [3.1] OS: XP [3.2] Visual Studio2003 [3.3] 言語: c [4] 期限:10月23日 よろしくお願いします!
309 :
デフォルトの名無しさん :2006/10/16(月) 13:20:21
助けてください… (1) 0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最 後の0 を含めず) を出力するプログラムを作りなさい。 (2) 正整数を入力し、それをローマ数字で表示するプログラムを作りなさい。 例: 1 I 3 III 4 IIII (またはIV) 5 V 12 XII 46 XXXXVI 73 LXXIII 111 CXI 378 CCCLXXVIII 521 DXXI 1001 MI xpのgccです
(・3・) エェー 僕以外のぼるじょあが来たYO
うれしいYO
>>308 (・3・) エェー VSはもちろんVCもBCBもないんだけどYO
全部APIでもいいのかYO?
ぼるじょあ ◆yBEncckFOU、喪前頑張らないと、ぼるじょあ ◆yEbBEcuFOU がスレ主になるぞ
313 :
ぼるじょあ ◆yBEncckFOU :2006/11/04(土) 22:26:30
(・3・) エェー 質問こないですNE
【質問テンプレ】 [1] 授業単元: C言語 [2] 問題文(含コード&リンク): sinx は x - x**3/3! + x**5/5! -x**7/7! + ---- (1) と級数展開される. 式(1)と組み込み関数で求めたsinxの値の差を,0度から360度まで,プログラムを作成して求め,エクセルを用いてグラフに描け.また,両者の差を0度から360度の範囲で1/10**4 (0.0001) 以下とするには(1)の項数を第何項まで取ればよいか?[3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: borland C++Builder 5 bcc32 [3.3] 言語: C言語 [4] 期限: ([2006年11月5日] ためしに作ってみたのですが、エラーがでてしまってどこがエラーしているのかわかりませんでした・・・orz よろしくお願いします。 一応プログラム貼っておきます。 --------------------------------------------------------------- #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<math.h> int kaijo(int a){ int f,kai=1; for(f=1;f<=a;f++){ kai*=f;} return kai;} int jo(int a,int b){ int d,s,y=1; for(d=1;d<=b;d++){ y=y*a;} return y;} 長かったので、↓に続きを書きます。
main() {float g=0,ans,m,w[361],sa[361]; int a,x,k,r,p; scanf("%d",&k); printf("第%d項(xの%d乗)のときの\n sinx=x - x**3/3! + x**5/5! -x**7/7! + ---- (1)\nと\n組み込み関数sinx\nとの差を下記に記す。",k,k*2-1); for(x=0;x<=360;x++){ for(a=1;a<=k;a++){ r=a*2-1; if(r%2=0){ ans=(jo(x,r))/(kaijo(r));} else{ ans=-(jo(x,r))/(kaijo(r));} g=g+ans;} w[x]=g: m=sin(x); sa[x]=fabs((w[x])-(m)); printf("角度%d度のとき 差は%f\n",x,sa[x]);} for(a=0;a<360;a++){ if(sa[a]>sa[a+1]){ k=sa[a]; sa[a]=sa[a+1]; sa[a+1]=k;}} printf("0度から360度の範囲で最大の差は%dです。",sa[360]); getch(); return(0);}
>>314-315 if(r%2=0){
⇒ if(r%2==0){
w[x]=g:
⇒ w[x]=g;
>>316 どうもありがとうございます。
これでエラーがあとひとつになりました。
エラー E2206 C: 30: 不正な文字 ' ' (0x8140)(関数 main() )
ってでるんですが、30行目は
printf("第%d項(xの%d乗)のときの\n sinx=x - x**3/3! + x**5/5! -x**7/7! + ---- (1)\nと\n組み込み関数sinx\nとの差を下記に記す。",k,k*2-1);
の場所なんですがなにが悪いのでしょうか?
よろしくお願いします。
318 :
ぼるじょあ ◆yBEncckFOU :2006/11/04(土) 23:39:54
>>317 (・3・) エェー 全角の空白でも入ってるんじゃないNO?
全角の空白が1つ紛れ込んでました・・・orz で、実行した結果・・・・・・ソフトが固まり強制終了・・・。 ん〜これは、プログラム自体がダメってことなのですかね? どなたか、できれば「ここをこうすればもっといいよ」みたいな感じに教えてもらえないでしょうか? よろしくお願いします。
320 :
ぼるじょあ ◆yBEncckFOU :2006/11/04(土) 23:45:24
(・3・) エェー 酒飲んでるからじかんかかるお
321 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 00:15:06
(・3・) エェー 入力する数字がある程度大きいとゼロ除算してるお そこで止まってるお 階乗は数値が大きくなると簡単にオーバーフロー起こすお で、最後は0になっちゃうんだお
kaiとyの型をdoubleにしてみましたが、入力する前に止まってしまいますね・・・
323 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 00:33:44
(・3・) エェー そうゆう問題じゃないお 今の処理の流れだとダメだお 階乗計算を一気にやらないで順次割っていくとかお
おぉ、そういうことですか。 上のプログラムを変えてみたのですが残念なことに相変わらず止まってしまいますね。 for(a=1;a<=k;a++){ r=a*2-1; if(a%2==0){ ans=-(jo(x,r)); } else{ ans=jo(x,r); } for(h=r;h>0;h--){ ans=ans/h; } g=g+ans; } w[x]=g;
325 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 01:37:22
(・3・) エェー 止まんないけどお
マジですか!?多分、似たようなプログラムのはずなんでしょうけど・・・。 それとも自分のと全然違うんでしょうかね?参考にしたい限りです。
327 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 01:51:30
(・3・) エェー おかしいお 同じハズだけどお for(x=1; x<=360; x++){ for(a=1; a<=k; a++){ r = a*2-1; if(r%2 == 0){ //ans=(jo(x, r))/(kaijo(r)); ans = jo(x, r); } else{ //ans=-(jo(x, r))/(kaijo(r)); ans = jo(x, r); } for(cnt=r; cnt>0; cnt--){ ans = ans/cnt; } //for(cnt=r ; cnt>1; cnt--)ans /= cnt; g = g+ans; }
同じですね;; ちょっとこのプログラム試してもらえないですかね? #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<math.h> int jo(int a,int b){ double y=1; int d,s; for(d=1;d<=b;d++){ y=y*a;} return y;} main() { float g=0,ans,m,w[361],sa[361]; int a,x,k,r,p,h; scanf("%d",&k); printf("第%d項(xの%d乗)のときの\nsinx=x - x**3/3! + x**5/5! -x**7/7! + ---- (1)\nと\n組み込み関数sinx\nとの差を下記に記す。",k,(k*2-1)); for(x=0;x<=360;x++){ for(a=1;a<=k;a++){ r=a*2-1;
if(a%2==0){ ans=-(jo(x,r));} else{ ans=jo(x,r);} for(h=r;h>0;h--){ ans=ans/h;} g=g+ans;} w[x]=g; m=sin(x); sa[x]=fabs((w[x])-(m)); printf("角度%d度のとき 差は%f\n",x,sa[x]);} for(a=0;a<360;a++){ if(sa[a]>sa[a+1]){ k=sa[a]; sa[a]=sa[a+1]; sa[a+1]=k;}} printf("0度から360度の範囲で最大の差は%dです。",sa[360]); getch(); return(0); }
多分、動かないと思いますが。 これで動いたらうちのPC環境のせいだと思うので、諦めますね・・・orz
331 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 02:18:46
(・3・) エェー たしかに動かないお ちょ〜酔っ払いながら調査するお
332 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 02:50:31
(・3・) エェー くわしいことわかんないけどなんかこれはjoが悪い感じするお 結局のところ数値が一時的にでかくなりすぎて暴走してる感じがするお
今日は付き合ってもらってどうもありがとうございました。 また明日やってみますね。一番の問題は自分が級数展開を理解していないと言う点ですなw
334 :
ぼるじょあ ◆yBEncckFOU :2006/11/05(日) 03:13:18
(・3・) エェー わかるように説明してくれたら明日作るYO もう酔っ払ってわかわかめだから僕も寝るお ノシ
問題文はこんな感じです。 sinx は x - x**3/3! + x**5/5! -x**7/7! + ---- (1) と級数展開される. 式(1)と組み込み関数で求めたsinxの値の差を,0度から360度まで, プログラムを作成して求め,エクセルを用いてグラフに描け. また,両者の差を0度から360度の範囲で1/10**4 (0.0001) 以下と するには(1)の項数を第何項まで取ればよいか? 注意1:式(1)をプログラム化する際に,mainと別の関数を利用し,項数と角度を渡すと値を返すような関数 を作成のこと. 注意2:xの型(整数,実数,倍精度実数)に注意すること. 注意3:xの単位(ラジアン,デグリー)に注意すること. これでわかりますかね?
(・3・) エェー 今起きたお 飯食べるからちょっこす待ってお
(・3・) アルェー ちょっとまった・・・もしかして暴走の原因って角度をラジアンに直してないからじゃ・・・
(・3・) エェー タイムリミット出かけるYO なんかあったらまた後でNE
おかげさまで、プログラムを完成させることができました。 どうもありがとうございました。 また、聞くことがあるかもしれませんがそのときもよろしくお願いします。
(・3・) エェー そりはよかったお
343 :
デフォルトの名無しさん :2006/11/12(日) 14:05:22
1] 授業単元: プログラミング [2] 問題文: 入力した文字列から指定した文字を検索するプログラムをポインタ変数を用いて作成せよ. [実行例] 文字列を入力してください:Exercise 検索文字を入力してください:e 文字列"Exercise"に"e"は 3番目 8番目 にあります. 文字列を入力してください:Exercise 検索文字を入力してください:a そんな文字は入っていない! [3] 環境 [3.1] OS:Windowsxp [3.3] 言語:C [4] 期限:11月15日 よろしくお願いします。
#include <stdio.h> #include <stdlib.h> int main(void) { char *buf,c; int i,x=0; if ((buf=(char*)malloc(sizeof(char)*100)) == NULL){ return 1; } gets(buf); scanf("%c",&c); for (i=0;buf[i] != '\0';i++){ if (buf[i] == c){ printf("%d番目\n",i+1); x=1; } } if (!x){ printf("プゲラ\n"); } free(buf); return 0; }
(・3・) エェー なんかその問題違うスレで見た気がするお
【質問テンプレ】 [1] 授業単元:情報処理 [2] 問題文(含コード&リンク):以下のそれぞれの数値を配列方変数に入力し、 数値の合計、平均を求め、さらに入力した数値を大きい順に並び替えて出力せよ [3] 環境 [3.1] OS: レッドハットリナックス [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2006/11/13 [5] その他の制限: 標準ライブラリは使ってはいけないっぽいです。 授業始まったばっかなんですが早くもさっぱりです>< よろしくおねがいします。
>標準ライブラリは使ってはいけない 無理
>>347 入出力をread, writeにすればいいだけだろ
(・3・) エェー qsortとか使っちゃいけないとかじゃないNO?
>>356 >その他の制限: 標準ライブラリは使ってはいけないっぽいです。
すまん、もう一度よく聞いて来てくれ。「っぽい」では信用しにくい。
さすがにprintf()とかfrptinf()を使うなとはいきなり言わないと思うが。
(・3・) エェー じゃあこんなんで #include<stdio.h> #include<stdlib.h> #define N 5 int main(void){ int num[N], i, k, swap, sum=0; for(i=0; i<N; i++){ scanf("%d", &num[i]); sum = sum + num[i]; } printf("合計:%d\n", sum); printf("平均:%f\n", (double)sum/N); for(i=0; i<N; i++){ for(k=0; k<N-i-1; k++){ if(num[k] < num[k+1]){ swap = num[k]; num[k] = num[k+1]; num[k+1] = swap; } } } for(i=0; i<N; i++)printf("%d\n", num[i]); return EXIT_SUCCESS; }
353 :
デフォルトの名無しさん :2006/11/15(水) 02:06:40
354 :
デフォルトの名無しさん :2006/11/15(水) 13:43:11
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク):2つの自然数 a, b に対し, その公約数をすべて表示する関数を作成せよ 。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 2006年11月15日14:30まで [5] その他の制限: なし
356 :
デフォルトの名無しさん :2006/11/15(水) 14:22:52
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): 最大8桁の整数を2つ入力し、int型配列に格納。 入力後2つの数の和を求める。負の数、整数以外、スペースのみが入力された場合 エラーメッセージを表示 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11/18まで [5] その他の制限:scanfは使えない
(・3・;) アルェ〜 名前欄忘れちゃったYO
360 :
◆bUnakS8vvE :2006/11/16(木) 23:11:44
[1] 授業単元:プログラム [2] 問題文(含コード&リンク): ローマ数字から算用数字への変換をC言語でつくりなさい。 例 1 = I 2 = II 3 = III 4 = IV 5 = V 6 = VI 7 = VII 8 = VIII 9 = IX 10 = X 50 = L 100 = C 500 = D 1000 = M 1058 = MLVIII [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: ([2006年11月18日まで] ) [5] その他の制限: 特にありません
# include <stdio.h> const char *parse_char(const char *src, char c) { return src && c && *src == c ? src + 1 : NULL; } const char *parse_unit(const char *src, char one, char five, char ten, int *out) { const char *ret = NULL; if(ret = parse_char(parse_char(src, one), ten)) *out = 9; else if(ret = parse_char(parse_char(parse_char(parse_char(src, five), one), one), one)) *out = 8; else if(ret = parse_char(parse_char(parse_char(src, five), one), one)) *out = 7; else if(ret = parse_char(parse_char(src, five), one)) *out = 6; else if(ret = parse_char(src, five)) *out = 5; else if(ret = parse_char(parse_char(src, one), five)) *out = 4; else if(ret = parse_char(parse_char(parse_char(src, one), one), one)) *out = 3; else if(ret = parse_char(parse_char(src, one), one)) *out = 2; else if(ret = parse_char(src, one)) *out = 1; else if(ret = src) *out = 0; return ret; } int main(void) { const char *ones = "\0MCXI", *fives = "\0DLV"; char input[0x100]; const char *p; int i, j, n = 0; if(!(p = fgets(input, sizeof input, stdin))) return 1; for(i = 1; ones[i]; i++) { p = parse_unit(p, ones[i], fives[i-1], ones[i-1], &j); n = n * 10 + j; } if(!p || *p != '\n' || !*p || p == input) printf("parse error\n"); else printf("%d\n", n); return 0; }
362 :
◆bUnakS8vvE :2006/11/16(木) 23:57:53
>>361 すいません。windowsでも同じですか?自宅ではwindowsで
やっています。
コンパイルしたら、
エラー E2206 ファイル名:不正な文字` `(0x0)
というのが、たくさん出てきたのですが。
>>362 同じ。
>エラー E2206 ファイル名:不正な文字` `(0x0)
2chブラウザの問題かもしれない。
webブラウザでこのスレを開いてコピペしてみてくれ。
364 :
◆bUnakS8vvE :2006/11/17(金) 00:13:13
>>363 できました。ありがとうございます。
後、繰り返すには、どうすればよいですか?
別に構造体を使うこともできますか?
366 :
デフォルトの名無しさん :2006/11/17(金) 00:26:24
>>365 かるくこのプログラムについて教えていただいていいですか?
うまく理解できないんで・・・
すいません、勉強が足りなくて。
>>366 parse_charとparse_unitは文字列の一部を解析する関数で、
解析を開始する位置の文字へのポインタを第一引数として受け取って、
解析し終わった位置の次の文字へのポインタ、または
解析に失敗したときはNULLを返す。
parse_charは決まった文字cを解析する。だから、*str==cのときのみ成功し、
次の文字へのポインタを返す。!strや!cのとき無条件に失敗するのは、後で役に立つ。
parse_unitはアラビア数字の一桁に相当するものを解析し、結果を*outに入れる。
例えば、MMMXXIXなら「MMM」(3), 「」(0), 「XX」(2), 「IX」(9)の4桁からなっていると考える。
この関数は、注目している桁の基本となるローマ数字(one)と、その5倍(five)、10倍(ten)を表す
ローマ数字(適切な文字がないときは'\0')を引数としてとる。
例えば、10の位に注目しているなら、one='X', five='L', ten='C'で呼び出される。
ところで、parse_charを入れ子にして呼び出すと、特定の文字の並びを解析できる。例えば
parse_char(parse_char(str, 'a'), 'b')と呼び出すと、strが"ab"ではじまるときのみ解析が成功し、
さらに次の文字(strの三文字め)を指すポインタを返す(なぜこうなるか考えてみよ)。途中で解析が
失敗すると、parse_charからNULLが返り、それを受け取った次のparse_charも即座に失敗し、これが繰り返されるので、
全体が失敗してNULLが返ることに注意。さて、これを利用して、例えば
ret = parse_char(parse_char(src, one), ten)とすれば「one, ten」というローマ数字の並びを解析でき、
これはつまり注目している桁が「9」だということを意味する。同様に8から1までもテストして、結果に応じて
*outに値を代入して返る。全てのテストが失敗したときは、この桁には数字がなかったと考えて、*outに0を代入して返る。
mainでは、大きい桁から順にparse_unitを呼び、それぞれの桁を10倍しながら足し合わせて、結果を得る。
最終的に文字列が全て消費されていないときは、どこかで失敗しているのでエラーメッセージを表示。
そうでなければ成功しているはずなので結果を表示して終了。
368 :
デフォルトの名無しさん :2006/11/17(金) 01:18:40
>>367 ありがとうございます。理解できるよう考えながら読んでみます。
369 :
◆DG40hZpqdg :2006/11/17(金) 01:37:01
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 次の数値の表を反復構造とタブ文字\tを使って プリントするCプログラムを書け。 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 N 10*N 100*N 1000*N 1 10 100 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 [3] 環境 [3.1] OS: Windows/XP [3.2] コンパイラ名とバージョン: emacs [3.3] 言語: (C/C++/どちらでも可 のいずれか) Cのみでお願いします。 [4] 期限:[2006年11月22日まで [5] その他の制限: ぜんぜんかじり程度しか習ってません。 今までの課題は教科書に載ってる練習問題に少し応用が利いたもので 理解できたのですが、今回はまったくわからないです(´・ω・`) C言語を理解する上で大切な事とか教えてもらえたら幸いです。 大変お忙しいとは思いますが、よろしくお願いいたします。
>>369 (・3・) エェー とりあえずヒント書いてみるYO
int n;
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf(" N\t10*N\t100*N\t1000*N\n");
for ( n = 1 ; n <= 5 ; n++ ) { /* 反復処理は(・3・)ここ */ }
>>369 (・3・) エェー 1日中サンプルコードを打ち込むとすぐにできるようになるYO
372 :
デフォルトの名無しさん :2006/11/19(日) 09:29:31
[1] 授業単元:成績処理プログラミング [2] 問題文・キーボードから n (1 <= n <= 50) 人分の得点(整数)を入力する. ・得点は0点以上100点以下とし,範囲外なら再入力させる. ・全員分入力が完了したら,平均点を求め,小数点以下1桁で表示する. ・各個人について,得点,平均点との差,および判定を表示する. ・判定は,80点以上を優,80点未満70点以上を良, 70点未満60点以上を可,60点未満を不可とする. : [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc 3.4 ) [3.3] 言語: C言語 [4] 期限: (2006年11月21日まで) [5] その他の制限: 論理演算子・配列
ぼるじょあイイやつだな、、
>>373 (・3・) エェー
悪いぼるじょあもいるYo
[1] 授業単元: プログラム [2] 問題文 二次元配列の理解: srand関数と二次元配列を使用してランダムな1〜9の数字を10×10マスで埋めること。 例: 5 3 2 2 8 1 8 8 5 5 6 8 2 7 2 4 1 9 1 3 5 9 9 3 6 4 4 2 8 1 5 5 5 9 9 2 9 1 1 4 3 9 7 7 4 6 1 9 2 7 2 2 2 7 4 9 8 2 8 1 5 1 7 8 4 3 7 9 5 9 2 9 2 9 6 9 3 8 6 7 7 3 1 4 5 6 4 5 5 6 2 5 9 3 5 9 7 8 7 3 次にこれらの配列を小さい順に並べるプログラムを完成させよ 例: 1 2 2 2 2 3 3 3 4 4 5 5 5 6 7 7 8 8 8 ...... [3] 環境 [3.1] OS: XP [3.2] borland bcc32 [3.3] 言語: c [4] 期限:10月20日 [5] その他の制限: マージソートというのを習ったのですが理解ができませんでした orz よろしくお願いします。
ぐぐってみたんですか? この一言に集約されます。
377 :
ぼるじょあ ◆H6wikgcXIU :2006/11/19(日) 21:27:20
(・3・)エェー
>>375 #include <stdio.h>
#include <stdlib.h>
void rand_array(int array[10][10]) {
for(int* p=array; p!=&array[10][0]; p++) *p=rand()%9+1;
}
void rand_disp(int array[10][10]) {
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++)
printf("%1d ", array[i][j]);
printf("\n");
}
}
int comp(const void* a, const void* b) {
return *(int*)a-*(int*)b;
}
int main(void) {
int array[10][10];
srand(rand());
rand_array(array);
rand_disp(array);
qsort(array, 10*10, sizeof(int), comp);
printf("\n");
rand_disp(array);
return 0;
}
379 :
デフォルトの名無しさん :2006/11/19(日) 21:55:59
[1] 授業単元: 卒研 [2] 問題文: 三次元self-aboidingウォークのプログラム self-aboidingウォークとはランダムウォークしてるときに 一度通った道を通らないもの。 格子状でお願いします(上下左右の運動) [3] 環境 [3.1] OS: WindowsXP [3.3] 言語: C言語 [4] 期限: なるべく早めでお願いします [5] その他の制限: cygwinを使います。gnuplotで表示させます どなたかお願いします。。
[3] 環境 言語: C言語
>>379 卒研ってお前・・・
研究する気あるのかよ
382 :
デフォルトの名無しさん :2006/11/20(月) 00:21:57
>>381 全然理解できないのです
どうかよろしくお願いします。
384 :
デフォルトの名無しさん :2006/11/20(月) 00:31:21
勘弁してください↓
>>382 卒論の謝辞のところにちゃんと「ぼるじょあスレの皆さん」と書いてくれるかな?
386 :
デフォルトの名無しさん :2006/11/20(月) 00:44:12
>>382 うう・・・
言われると思ったwwww
さすがに厳しいっすよ(;;)
なら、(・3・)エェー って時々書いておけ
>>372 (・3・) エェー 明日までかYO
コーシー淹れたらやるYO
>>379 (・3・) エェー gnuplotがよくわからんYO
>>379 ランダムウォークの移動方向の確率は?
空間の広さは?
袋小路にはまったときは?
空間は端っこが行き止まり?それともどこかに繋がってる?
終了条件は?
格子のすべての辺および点は通行可能?
aboid?avoid?
ついでに開始条件も
904 名前:デフォルトの名無しさん[] 投稿日:2006/11/20(月) 14:03:05 [1] 授業単元: 卒研の授業の課題 [2] 問題文: 三次元self-aboidingウォークのプログラム self-aboidingウォークとはランダムウォークしてるときに 一度通った道を通らないもの。 格子状でお願いします(上下左右の運動) [3] 環境 [3.1] OS: WindowsXP [3.3] 言語: C言語 [4] 期限: なるべく早めでお願いします [5] その他の制限: cygwinを使います。gnuplotで表示させます どなたかお願いします。。
↑ 典型的な自分が何をしたら良いのかすらわからない 若しくは伝えられない逝っちゃってる人乙。 研究室の人から見放されたか?w ちっとくらい整理してから説明しろ。
>卒研の授業の課題 どういうこと?
397 :
デフォルトの名無しさん :2006/11/20(月) 22:59:21
>>392 ランダムウォークの移動方向の確率は?
>1〜6までの乱数でx+1,x-1,y+1,y-1,z+1,z-1と動かすのでお願いします。
空間の広さは?
>空間はとりあえず10*10*10で取り合えずお願いします
袋小路にはまったときは?
>もう一回やり直します
空間は端っこが行き止まり?それともどこかに繋がってる?
行き止まりでお願いします。
終了条件は?
>10*10*10の中で取り合えず20回歩かせれば良いです。
格子のすべての辺および点は通行可能?
10*10*10の範囲だったらOKです。
aboid?avoid?
>すいません。avoidです。
卒研の授業の課題
どういうこと?
>単位上は卒業研究として扱われます。
とりあえず二次元上でもよいので誰かよろしくお願いします。
できれば原点からの距離を求めれたら尚更良です。
私はプログラミングが全然理解できません
すみません。。
マルチポストは意地でも謝らないんだなw
距離とかどうでもいんだけど、どっから始めんの (x,y,z)=(0.0.0)とかそれとも・・・適当?w
>>397 みたいなボケが、まるで「自分はプログラムを組める」かのような顔をしてPGとかSEになるんだろうな…
こんなクソ簡単なプログラムが卒業研究ってどんなバカ大学だよ
402 :
デフォルトの名無しさん :2006/11/20(月) 23:31:59
(X、Y、Z)=(0、0、0)でお願いします。
>>397 でけた!卒業研究の論文の内容が面白ければうpする。
どんな論文なのかうpしる!まあ、オレはぼるじょわではないけどな
>私はプログラミングが全然理解できません
心理学系の学科だとすると三次元というのは考えにくいので、情報系の学科だろう。
そうだとすると、こんな奴が卒業してもいいのか疑問。後輩が苦労するからな。
404 :
デフォルトの名無しさん :2006/11/21(火) 01:08:35
>>403 ほんとですか? 一応内容は3次元self-avoidingウォークの臨界指数を求めること。 ランダムウォークは原点からNステップ回移動した距離は回数Nの1/2乗に 比例します。(臨界指数とはこの場合1/2のことを指す) self-avoidingウォークの場合は2次元上ではNの3/4乗 4次元の場合は1/2乗に比例するが3次元の場合は数値計算に よるしか方法がないためそのシミュレーションを行いたいのです。 ここのみなさんではこんなの簡単だろうと思うと思いますが 私にはそんなことすらできないのです。 自分が情けないです。 ちなみに情報系の学科です。 なぜみなさんはプログラミングができるのでしょうか?
>>404 で書いていることと
>>397 の条件が食い違っている
プログラミング以外にも問題があるようだな
>>404 >なぜみなさんはプログラミングができるのでしょうか?
逆にお前に聞きたい。
情報系の学科にいて、なぜこの程度のプログラムも書けない?
大学に入ってからプログラミングを始めた奴でも、今の時期なら書けるぞ。
407 :
406 :2006/11/21(火) 01:31:21
× 大学に入ってからプログラミングを始めた奴 ○ 大学に入ってからプログラミングを始めた一回生 でお願いします。
408 :
デフォルトの名無しさん :2006/11/21(火) 01:37:46
プログラムの授業をとらなくていいことと自分の理解力の低さが原因です。
情報系の学科でプログラムの授業を取らなくいい? 可能ならば大学名さらしてくれ。興味がある。
410 :
デフォルトの名無しさん :2006/11/21(火) 01:47:22
以下のような3つのペアの実数をファイルに書き、 それらのペアを配列を使って読んで、 それぞれの四則演算を別のファイルに書き出しなさい。 5.0 3.0 2.5 1.0 4.0 1.5 って課題が授業で出てサッパリわかんなくて困ってるんですが、 どなたか助けていただけないでしょうか?
411 :
デフォルトの名無しさん :2006/11/21(火) 01:49:38
必修がひとつあるのだけど用語などの暗記で単位が習得できるのです 大学名は勘弁してください
機械科卒だがプログラミング演習は必修だった俺が来ましたよ。 まあ、プログラミングってもFORTRANで数値計算やっただけだがな。
>>394 一歩だけ動くプログラムを作った。
・20歩動けば終了
・一度通ったところに行くと終了
・範囲外に出たら終了
とりあえず、この3つの条件を自分で追加すべし。
#include <cstdlib>
#include <ctime>
#define SIZE (10)
void init(bool space[SIZE][SIZE][SIZE], int *x, int *y, int *z)
{
*x = 0;
*y = 0;
*z = 0;
for (unsigned int i = 0; i < SIZE; ++i) {
for (unsigned int j = 0; j < SIZE; ++j) {
for (unsigned int k = 0; k < SIZE; ++k) {
space[i][j][k] = false;
}
}
}
return;
}
bool move(bool space[SIZE][SIZE][SIZE], int *x, int *y, int *z) { int param = rand()%6 + 1; switch(param) { case 1: ++(*x); break; case 2: --(*x); break;
case 3: ++(*y); break; case 4: --(*y); break; case 5: ++(*z); break; case 6: --(*z); break; default: break; } space[*z][*y][*x] = true; return true; }
int main() { bool space[SIZE][SIZE][SIZE]; int x, y, z; srand(time(NULL)); init(space, &x, &y, &z); move(space, &x, &y, &z); return 0; }
417 :
デフォルトの名無しさん :2006/11/21(火) 02:44:28
ありがとうございます。 しかし失礼ですがエラーのほとんど理解できません。 1、2行目は stdio,h stdlib.h のことですよね?
>>417 おお、すまん。
これはC++のコードだ。
g++とかc++あたりでコンパイルしてくれ。
419 :
デフォルトの名無しさん :2006/11/21(火) 02:53:32
Cすら全然分からないのにC++だと頭パンクしそうです。 C++でコンパイルと言われましても‥
もうほっとけ
>>419 cygwin入れてるんだろ?
g++ xxx.cpp -o xxx.exe
422 :
デフォルトの名無しさん :2006/11/21(火) 03:00:14
すいません。 gccしか使えません。
>>422 じゃあg++を入れる。
もしくはソースを書き換える。
cstdlib -> stdlib.h
ctime -> time.h
あとはCにはboolがないので、
bool -> int
false -> 0
true -> 1
にでも書き換える。
もう一つ for (unsigned int i = 0; i < SIZE; ++i) { for (unsigned int j = 0; j < SIZE; ++j) { for (unsigned int k = 0; k < SIZE; ++k) { を unsigned int i, j , k; for (i = 0; i < SIZE; ++i) { for (j = 0; j < SIZE; ++j) { for (k = 0; k < SIZE; ++k) {
425 :
デフォルトの名無しさん :2006/11/21(火) 03:17:00
わざわざすいません。 理解ができるようにソースを書き換えたとこれエラーがでなくなりました。 しかしお恥ずかしいのですがこの先どうすればよいのですか?
・20歩動けば終了 ・一度通ったところに行くと終了 ・範囲外に出たら終了 とりあえず、この3つの条件を自分で追加すべし。
427 :
デフォルトの名無しさん :2006/11/21(火) 03:22:18
それが条件の入れ方などが全く分からないのです。 すいません。
>>427 じゃあ、ヒント(なにもかも人任せなのはいただけないので)
for
while
if
return
あたりの使い方を調べるべし。
あと、move関数は
・移動ができれば1を返す
・移動ができなければ0を返す
という関数として書きました。
429 :
デフォルトの名無しさん :2006/11/21(火) 03:28:25
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { FILE *fp; int a,t,x=0,y=0,z=0; fp = fopen("ozi3.txt","w"); srand(time(NULL)); for(t=1;t<1000;t++) { a=rand()%6; if (a==0) y=y+1; else if (a==1)y=y-1; else if (a==2)x=x+1; else if (a==3)x=x-1; else if (a==4)z=z-1; else if (a==5)z=z+1; fprintf(fp,"%d %d %d\n", x, y,z); printf("%d %d %d\n", x, y,z); } fclose(fp); return 0; } この程度のランダムウォークのプログラムが私の限界です
430 :
デフォルトの名無しさん :2006/11/21(火) 03:33:16
あ
>>429 とりあえず、whileをつかって1から20までの整数を出力するプログラムを書いてみましょう。
それができれば、
>>426 で書いた一つ目の条件がクリアできるようになるはず。
432 :
デフォルトの名無しさん :2006/11/21(火) 04:04:49
#include <stdio.h> main() { int i; for(i = 1; i <=20; i++){ printf("%3d", i); } return 0; } おきてますか? forを使いました 時間かかってすいません
おきてますかじゃねーだろ
まあ、forでもいいか。
で、俺が書いたプログラムに戻る。
>>432 の要領で、move関数を20回呼び出せば、20歩動くことになるってのはわかるかい?
435 :
デフォルトの名無しさん :2006/11/21(火) 04:10:29
すいません
436 :
デフォルトの名無しさん :2006/11/21(火) 04:16:16
意味はわかるのですがどういれてやるのかわかりません。
>>436 俺が書いたプログラムで、1回だけmove関数を呼び出してるってのはわかるかい?
438 :
デフォルトの名無しさん :2006/11/21(火) 04:21:05
すいません それがよくわかりません。
もうネタとしか思えない
441 :
デフォルトの名無しさん :2006/11/21(火) 04:35:11
いやmoveだけじゃなく95%わかんないです。
じゃあ、とりあえずわかってる5%がどこなのか教えてくれ。
443 :
デフォルトの名無しさん :2006/11/21(火) 04:43:03
わかるのは まず10×10×10の配列をつくっているとこ そこの値が0であること その道を通ると1になることくらいです まちがってたらすいません
>>443 それであってますよ。(「そこ」とか「その」って表現は微妙ですが)
じゃあ、
init(space, &x, &y, &z);
move(space, &x, &y, &z);
で何をしているかはわかるかい?
445 :
◆i5dB9vhrMo :2006/11/21(火) 04:50:27
そこは全くわかりません
すまん。眠たさの限界だ。 とりあえず、改良したソースを張っておく。 どこでどんなことをしているプログラムなのかは、 Cの入門書片手にソースを読むか、プログラミングができる友達にでも見せて教えてもらってくれ。 #include <stdlib.h> #include <time.h> #define SIZE (10) void init(int space[SIZE][SIZE][SIZE], int *x, int *y, int *z) { unsigned int i, j, k; *x = 0; *y = 0; *z = 0; for (i = 0; i < SIZE; ++i) { for (j = 0; j < SIZE; ++j) { for (k = 0; k < SIZE; ++k) { space[i][j][k] = 0; } } } return; }
int move(int space[SIZE][SIZE][SIZE], int *x, int *y, int *z) { int param = rand()%6 + 1; switch(param) { case 1: ++(*x); break; case 2: --(*x); break; case 3: ++(*y); break; case 4: --(*y); break;
case 5: ++(*z); break; case 6: --(*z); break; default: break; } if ((space[*z][*y][*x] == 1) || (*x < 0) || (*x > 10) || (*y < 0) || (*y > 10) || (*z < 0) || (*z > 10)) { return 0; } space[*z][*y][*x] = 1; return 1; }
449 :
◆i5dB9vhrMo :2006/11/21(火) 05:10:44
遅くまですいませんでした。 エラーが出ました 最後の || はなんでしょうか? またよろしくお願いします
450 :
446 :2006/11/21(火) 06:17:35
連続書き込み制限に引っかかって、最後までソースを張れなかったぜorz int main() { int space[SIZE][SIZE][SIZE]; int x, y, z; unsigned int counter; srand(time(NULL)); init(space, &x, &y, &z); counter = 0; while (counter < 20) { if (move(space, &x, &y, &z) == 1) { ++counter; } else { init(space, &x, &y, &z); counter = 0; } } return 0; }
つーか、この程度がわからないのは致命的だって。 指導教官と相談してなんか対策とらないと不幸になるぞ。
452 :
403 :2006/11/21(火) 08:25:08
オレが書いたソースの一部。今教えてくれてる人と書き方が違うので注意。 int random_walk(position *cur){ const position pos_diff[]={ { 1, 0, 0}, {-1, 0, 0}, { 0, 1, 0}, { 0,-1, 0}, { 0, 0, 1}, { 0, 0,-1}, }; int index_list[NITEM(pos_diff)]; int index, index_num=0; int i; position pos_temp; for(i=0;i<NITEM(pos_diff);i++){ /* 行き先候補の列挙 */ pos_temp=position_add(cur, &pos_diff[i]); if(field_get_pos(&pos_temp)==FIELD_ZERO) index_list[index_num++]=i; } if(index_num==0)/* 次の行き先候補が 0 個 -> 袋小路に入った */ return 0; index=index_list[rand()%index_num]; /* 行き先候補の中から一つ選択 */ *cur=position_add(cur, &pos_diff[index]); field_set_pos(cur, FIELD_PASSED); return 1; }
453 :
デフォルトの名無しさん :2006/11/21(火) 09:23:11
↓どうか助けてください。 以下のような3つのペアの実数をファイルに書き、 それらのペアを配列を使って読んで、 それぞれの四則演算を別のファイルに書き出しなさい。 5.0 3.0 2.5 1.0 4.0 1.5
454 :
453 :2006/11/21(火) 09:31:26
[1] 授業単元: プログラミング [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: emacs [3.3] 言語: C [4] 期限: 2006年11月21日14時まで
456 :
453 :2006/11/21(火) 09:42:48
>>455 ごめんなさい。それだけ焦っちゃってるんで・・・・
Emacs Lispは強力だな。 最近はCコンパイラまで実装してたのか。
>>453 半年振りにC触ったよ
コンパイルないから、構文エラー等は自分で何とかしてくれ。
#include<stdio.h>
#include<math.h>
int main(int argc,char **argv){
float value[3][2]={{5.0, 3.0}, {2.5, 1.0 },{4.0, 1.5 }}
int i=0;
FILE *fp=NULL
if(NULL==(fp=fopen("test.dat","w")){
printf("file open error! %s\n","test.dat");
exit(1);
}
for (i=0;i<3;i++){
fprintf("%f + %f = %5.3f\n",value[i][0],value[i][1],value[i][0]+value[i][1]);
fprintf("%f - %f = %5.3f\n",value[i][0],value[i][1],value[i][0]-value[i][1]);
fprintf("%f * %f = %5.3f\n",value[i][0],value[i][1],value[i][0]*value[i][1]);
fprintf("%f / %f = %5.3f\n",value[i][0],value[i][1],value[i][0]/value[i][1]);
}
fclose(fp);
return 0;
}
それだと、fprintfのところでコンパイルエラーが出るはず。
>>456 つまりお前は今後も焦ったらマルチポストを繰り返すわけか
もうね、死んで
461 :
458 :2006/11/21(火) 12:22:12
>>459 それ以外にも、valueやfpの宣言でもエラーがでるよ。
でも、95%答えは出ているのだから、
コンパイル通すくらいはマルチ君でもできるだろう。。
463 :
デフォルトの名無しさん :2006/11/21(火) 16:10:00
>>446 エラー出ませんでした
この先どーすればいいでしょうか?
464 :
デフォルトの名無しさん :2006/11/21(火) 16:46:05
マルチ君のなにが悪いんだって気がするけど。 それだけ困ってるって人を助けてあげるってのが我々の仕事だとオモワレ
だから助けてあげてるYO
466 :
デフォルトの名無しさん :2006/11/21(火) 17:05:11
>>465 助けてください
446のあとどーすればgnuplotに20歩歩かせたのを出力できますか?
>>464 意味が分からん。課題ができなくて困ってる奴の代わりに課題をやってやっても
別に困ってる奴は助からないぞ。必要な能力が身に付かないんだから。
468 :
464 :2006/11/21(火) 17:08:58
>>467 今回は時間に終われてたみたいだし、
これ以降はきっと自分で理解するように頑張るんじゃない?
そもそも卒研なのに時間に追われてる時点で救いがたい。 つーか「これ以降」って何よw そんなもんあるの?w
くだらん議論はスレ違い
471 :
デフォルトの名無しさん :2006/11/21(火) 18:30:45
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { FILE *fp; int t,x=0,y=0,z=0,a; fp = fopen("1.txt","w"); srand(time( NULL ) ); for(t=1;t<2;t++) { a = rand()%6; if (a==0) y=y+1; else if (a==1)y=y-1; else if (a==2)x=x+1; else if (a==3)x=x-1; else if (a==4)z=z+1; else if (a==5)z=z-1; fprintf(fp,"%d %d %d\n", x, y,z); printf("%d%d%d\n",x,y,z); } fclose(fp); return 0; } ここからself-avoidingウォークできませんか?
「自分で考える」ってことをしてるか?
473 :
デフォルトの名無しさん :2006/11/21(火) 18:53:59
考えてもできないんです 10*10の5回移動する二次元上のプログラムでよいので 模範解答作っていただけませんか? 明日発表しなければいけないのですがなんも進みません。。
475 :
デフォルトの名無しさん :2006/11/21(火) 19:11:46
だれか救いの手を。。
考えてもできないなら卒業する能力がないんだからおとなしく留年しれ。
最終日まで何もしないで居るんだから、
その程度のものなんだよ。
だから、例えできないまま発表を迎えても
>>473 には特に影響はないのだろう。
進捗状況として、「標準出力は出来るようになりました。これからgnuplotで出力できるように改良していきます。」とでも言っておけ。
479 :
478 :2006/11/21(火) 19:43:07
まさか、
>>446 にあそこまで作ってもらって、コンソールに出力が出来ないわけないよな?
480 :
デフォルトの名無しさん :2006/11/21(火) 19:45:28
実行してもなにもおこらないんです
留年するか退学しれ。もう手の施しようがない。
お前プログラムをちゃんと読んだか?
あのプログラムは、ランダムウォークを実装してるだけだ。
出力はしていない。
出力部分は自分で作れ(spaceの値を出力するだけでいいだろう?)。
そして
>>478 のように言っておけ。
483 :
デフォルトの名無しさん :2006/11/21(火) 19:56:22
printf("%d%d%d",x,y,z); をどこに入れればいいのでしょうか?
>>482 をちゃんと読んだか?
人に聞いてばかりじゃなくて、それくらい自分でやれ。
485 :
デフォルトの名無しさん :2006/11/21(火) 20:00:57
それが本当にわからないんです。
>>485 それすら分からないならもうあきらめろ。
どう見ても卒業に値する能力がない。
マルチなんだろ? そのうち別のところで答えもらえるんじゃね?
489 :
デフォルトの名無しさん :2006/11/21(火) 20:06:54
すみません質問です。 byte[79999]をdouble[9999]に変換したいのですがCだといとも簡単に 変換できたりするものでしょうか?
int main() { int space[SIZE][SIZE][SIZE]; int x, y, z; unsigned int counter; srand(time(NULL)); init(space, &x, &y, &z); counter = 0; printf("%2d:(%d,%d,%d)\n", counter, x, y, z); while (counter < 20) { if (move(space, &x, &y, &z) == 1) { ++counter; } else { init(space, &x, &y, &z); counter = 0; } printf("%2d:(%d,%d,%d)\n", counter, x, y, z); } return 0; }
491 :
sage :2006/11/21(火) 20:45:23
実行してみるとわかると思うんですけど 同じ道通ってんジャンww
同じ道通ると、最初からやり直してるよ。
>同じ道通ってんジャンww >同じ道通ってんジャンww >同じ道通ってんジャンww >同じ道通ってんジャンww >同じ道通ってんジャンww >同じ道通ってんジャンww >同じ道通ってんジャンww
init関数の最後にに space[*x][*y][*z] = 1; を追加すべし。
495 :
デフォルトの名無しさん :2006/11/21(火) 21:00:03
ありがとうございます ちなみに邪魔なもの省いて1から20だけを 出力させることできますか?
できる。 自分でやれ。
497 :
デフォルトの名無しさん :2006/11/21(火) 21:16:59
ポインタを使わないでもできますか?
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE (10) #define MAX_STEP (20) typedef struct Point{int x;int y;int z;}Point; void init(int space[SIZE][SIZE][SIZE],int *x,int *y,int *z) {unsigned int i,j,k;*x=0;*y=0;*z=0;for(i=0;i<SIZE;++i){for(j=0;j<SIZE;++j){for(k=0;k<SIZE;++k){space[i][j][k]=0;}}}space[*x][*y][*z]=1;return;} int move(int space[SIZE][SIZE][SIZE],int *x,int *y,int *z) {int param=rand()%6+1;switch(param){case 1:++(*x);break;case 2:--(*x);break;case 3:++(*y);break;case 4:--(*y);break;case 5:++(*z);break;case 6:--(*z);break;default:break;} if((space[*z][*y][*x]==1)||(*x<0)||(*x>10)||(*y<0)||(*y>10)||(*z<0)||(*z>10)){return 0;}space[*z][*y][*x] = 1;return 1;} int main() {int space[SIZE][SIZE][SIZE];int x,y,z;unsigned int i;unsigned int counter;Point route[MAX_STEP+1];srand(time(NULL));init(space,&x,&y,&z);counter=0;route[counter].x=x;route[counter].y=y;route[counter].z=z; while(counter<MAX_STEP){if(move(space,&x,&y,&z)==1){++counter;}else{init(space,&x,&y,&z);counter=0;}route[counter].x=x;route[counter].y=y;route[counter].z=z;} for(i=0;i<=MAX_STEP;++i){printf("%2d:(%d,%d,%d)\n",i,route[i].x,route[i].y,route[i].z);}return 0;}
499 :
デフォルトの名無しさん :2006/11/21(火) 21:39:05
てかおまいら学生でつか? なんでこんなに親切なの?
簡単な宿題も自分一人じゃ解けないダメ人間をつくってるところだお。 決して親切でやってるわけじゃないお。
そのうち [1] 授業単元: 仕事 とか出てきそうで怖い
[1] 授業単元: 辞表の書き方 も出てくるとみたねw
>>498 がプログラムを張ってくれたらそれっきりかよw
教えてクン養成マニュアル 明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。 日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。 1. 努力を放棄すること いやしくも「教えてクン」たるもの、努力をしてはならない。 過去ログを読んだり、検索してはいけない。 「英語は苦手なので、分かりません。」は、高く評価できる。 辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。 他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、正しい「教えてクン」である。 また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。 「サッパリ」という単語が「やる気の無さ」を効果的に表現している。 「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。 2. 情報を開示しないこと 使用OSや、機器構成などの必須の情報を知らせてはならない。 マザーボード名やBIOSのバージョンも同様だ。 具体的なアプリ名やバージョンも隠蔽すべきだ。 「DVD再生ソフト」のように曖昧に表記しておけばよい。 反対に「前から欲しいと思っていた○○」とか「安売りされていた ○○」等の「どうでもいい情報」は、どんどん書いてやれ。 トラブルの場合は、状況を正確に記述してはならない。 「なんだかうまく動きません。」とか「エラーが出ます。」等と具体的なことは何も書かないことが重要である。 また、自分の試してみた事も具体的に書いてはいけない。 考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。 最悪の場合、それだけで問題が解決してしまうこともあるのだ。 「いろいろやってみたけど、動きません。」が理想的だ。
>>503 安心しろ 卒論まるまるやらせるつもりだろうから
しばらくしたら「あの時はありがとうございました」って出てくる
3. 答える人間のことを考えないこと 「教えてクン」は、孤高の戦士である。 相手のことを考えるようでは教えてクン失格というものだ。 以下のような行動が、望ましい。 初心者であることを高らかに宣言し、初心者向けの丁寧で分かりやすい説明を強要する。 専門用語の使用を禁じておくとさらに効果的である。 簡潔な説明を禁じられたヲタクどもは、同じ内容を説明するのに、何倍もの労力を強いられる。 自分は努力せず、相手には多大な努力をさせることこそが「教えてクン」の真骨頂である。マルチポストも有効である。 そのBBSを信用していないことを明確に示せる。 「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。 もちろんマルチポストの非礼をあらかじめ詫びてはならない。 それでは、単なる「急いでいる人」になってしまう。 それは、教えてクンではない。質問のタイトルは、「教えてください。」で良い。 タイトルを読んだだけでは「何に関する質問」か全く分からない。 そういう努力は、答える人間にさせれば良いのだ。 とにかく、答える人間が答えやすいように気を使って質問してはならない。 傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、プロの仕事であろう。 最後に、言うまでも無いことだとは思うが、答えてくれた人達に礼の言葉を返すなど言語道断である。 せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っているようでは、画竜点睛を欠いていると言わざるを得ない。 質問だけしておいて、後はシカトが基本である。 上級テクニックとして、「そんなことはもう試しました。」とか、「そこまで初心者じゃありません。」などと言って、回答者の神経を逆なでしておけば完璧である。 以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。 ビバ!教えてクン! 教えてクンに栄光あれ!!
[1] 授業単元: ウィルスの作り方
[1] 授業単元: 今携わってるシステムの改修
510 :
◆i5dB9vhrMo :2006/11/22(水) 04:12:05
すいません返事遅れました。。 今帰宅しました! ほんとみな様には感謝しています。 私みたいなものに丁寧に教えてくださって世の中まだ捨てたもんじゃないですね。 プログラム出来る人は尊敬しています ひとつ思うんですがみなさんはプログラムは好きなのですか?
プログラム出来る人なんていない。
[1] 授業単元: 新入社員研修 とかが普通に出てきそうだな。 その場合は会社名晒し必須で。料金は会社に請求。
515 :
デフォルトの名無しさん :2006/11/23(木) 00:33:36
>>498 このプログラムに新しいプログラムを付け加えて距離を求めること
ができるようになりました
また質問です。。
このプログラムから空間を広くして
ランダムウォークの歩かせる回数のNを100とか1000にしたいんですけど
どうすればよいですか?
よろしくお願いします。
SIZEとMAX_STEPを書き換えろ。それだけで出来る。
>>516 できました〜〜〜。
本当にありがとうございます!!
518 :
デフォルトの名無しさん :2006/11/23(木) 00:44:04
515です。
>>516 また、質問です。すみません。
SIZEとMAX_STEP の( )は意味があるのでしょうか?
意図がよくわかりませんでした。
>>517 ??
>>518 一つの数字だけの時は意味はない。
ただ、例えば
#define X 2+3
と
#define X (2+3)
とでは、
X*3の値が違ってくる。
520 :
◆i5dB9vhrMo :2006/11/23(木) 00:49:50
SIZEとMAX_STEPを書き換えてみてエラーでなかったんですが うまく実行できませんでした。 MAX_STEPは40以上だとうまくいきませんでした。 おそらくSIZEだけ増やすだけではspeceSIZEが広げられないと思います
522 :
◆i5dB9vhrMo :2006/11/23(木) 00:59:58
>>521 SIZEは100とかにしたのですがおそらく10*10*10のままなのだと
おもいます。。
if ((space[*z][*y][*x] == 1) || (*x < 0) || (*x >= SIZE) || (*y < 0) || (*y >= SIZE) || (*z < 0) || (*z >= SIZE)) { return 0; }
524 :
◆i5dB9vhrMo :2006/11/23(木) 01:03:37
sizeの値をずらすと $ ./a Segmentation fault(core dumed) と表示されます
spaceをグローバル変数にすれば幸せになれるかもよ?
526 :
◆i5dB9vhrMo :2006/11/23(木) 01:06:40
教えてくださいじゃなくて、グローバル変数にしろよ。
528 :
デフォルトの名無しさん :2006/11/23(木) 01:08:57
グローバル変数にするにはどーすればよいのですか?
お前さぁ。調べるって言葉知ってる?
(・3・)エェー グローバル変態?
532 :
デフォルトの名無しさん :2006/11/23(木) 01:36:29
なるほど! 納得!
>>530 そういや、ぼるじょあは宿題片づけてないじゃないか!w
(・3・) 宿題くらい自分でやれよ
ちょw
>>534 (・3・) エェー 平日は仕事だし休日も1日中暇なわけでもないから難しいYO
>>538 にもかかわらず、こんなスレを立てるぼるじょあが大好きだぁ〜!
(・3・) エェー 立てたの僕じゃないC
ぼるじょあは一体ではない。 他のぼるじょあを確認しあうことでオリジナルの存在を確信しているが、 未だオリジナルに到達したものはいない…
【質問テンプレ】 [1] 授業単元: 一般教養 [2] 問題文(含コード&リンク): ぼるじょあとブルジョアの関係を述べよ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: notepad ver.5.1 (Service Pack 2) [3.3] 言語: 日本語 [4] 期限: (なるべく早めに)
(・3・)エェー それは難問だYO!
>>544 (・3・) エェー ぼるじょあ==ブルジョア は偽を返すYO
547 :
◆i5dB9vhrMo :2006/11/24(金) 16:33:39
グローバル変数のいれ方どなたか教えてください。 勉強しましたがわかりませんでした。
>勉強しましたがわかりませんでした。 そんなわけない。 ググれば一発で出てくる。 いいかげんこのスレから出て行け。
>>547 ローカルじゃない変数を宣言すればいいと思うよ!
>>547 >勉強しましたがわかりませんでした。
じゃああきらめろ。お前の能力じゃ誰が教えても無理だ。
40時間経過してもなおグローバル変数が分からないってのがすごいな
552 :
◆i5dB9vhrMo :2006/11/24(金) 19:09:59
だからおねがいしたんですよ。
そうですか。
555 :
◆i5dB9vhrMo :2006/11/24(金) 19:36:33
自分でも不思議っすね
>>547 (・3・) エェー もいらに言わせるとまずはアナ○に入れるといいお
アッー!
>>558 (・3・) エェー どうしたんだお?
C++やjavaみたいな厨な言語はよくわからんけど
C、C#、pascal、basic(N88-basicとX-basicに限る)に関してはもいらが
ばりばり答えてやるお
アナ○についてもおすすめビデオなど聞かれたら答えられるお
あなじょあさんありがとう あなたのおかげでこのスレも滅びそうです 本家がそうであるように
_, ._ (・3・) エェー このやろうはこっちまで滅ぼす気なのかYO
>>547 (・3・) エェー とりあえずmain関数の外ででも宣言しとけYO
流れは知らないけどYO
それはグローバル変数とは呼ばない
>>556 つまり学校にいようが社会に出ようがどこでも
バカあつかいされるということですね^^
main関数の中だろうが自作関数の中だろうが
通用するバカなんですね^^
これでわからなかったらもうキングオブバカ
うむ
namespaceを無視した変数:グローバル変数 namespaceの外からも見える変数:パブリック変数 なの。
学生にグローバル変数とは
>>567 とかいきなり説明する講師はいない。
ていうかリアルで
>>567 はキチガイじゃないの?
>>568 ('A`) そういうことは先ずは自分で説明してから言えよホゲ
>>567 C++を使わない、Cだけの人にもわかるように説明してください><
_, ,_ (・3・) エェー こうやってすぐスレのムードを険悪にするしったかぶりの名無しは嫌だYO
>>571 ナナシの問題じゃなく、言葉だけ投げるのが問題
('A`)
ゴメン
(・3・) エェー ケンカすんな馬鹿
ゴメン
(・3・) エェー 謝るくらいならやめろYO 死んで詫びRO
ゴメン・・・
ぼるじょあ、お前普通にキモイから書きこむな
580 :
ぼるじょあ ◆yBEncckFOU :2006/11/25(土) 19:25:38
(・3・) エェー
581 :
ぼるじょあ ◆yEbBEcuFOU :2006/11/25(土) 19:32:05
(・3・) アルェー
(・3・) エェー ここはぼくたちのスレだからしきっても無問題だYO ルール守れない煽りの名無しは出て行けYO
586 :
デフォルトの名無しさん :2006/11/26(日) 00:55:42
キモイぼるじょあが二匹もいるよ、ガクブル 警報age
ヽ(`3´)ノ
名無しが新たなぼるじょあになるには資格が必要ですか?>ぼるじょあの皆さん
(・3・) エェー 煽らない、ネタ質にも答える、マルチOK これを守ればみんなぼるじょあだYO!
漏れは駄目だな
変身ぼるじょあ、とやー
やめた、元にもどるぽ 巣に戻るにょろ
593 :
◆i5dB9vhrMo :2006/11/27(月) 00:27:23
498にグローバル変数いれたプログラム誰か作ってください
>>593 (・3・) エェー やって欲しかったらインデント付けてわかりやすく整形しろYO
見づらくてかなわんY
596 :
ぐあ :2006/11/27(月) 01:18:19
マイクロソフトのVisualStudioのアカデミックパックでウィンドウズプログラミングの課題をやっているんですけど、 OnDraw()関数にいくらコードを書き込んでも実行するファイルに反映されません。 誰かわかる方いませんか?
>>596 (・3・) エェー 大将ウィンドウをUpdate()しないと繁栄されないYO
598 :
ぐあ :2006/11/27(月) 01:20:09
597>ビルドのことですか?
600 :
ぐあ :2006/11/27(月) 01:23:40
599>>ビルドはしてるんですけど反映されないんですか・・・。
>>593 いい加減死ね。
お前に大学の卒業するだけの能力も資格もない。
あと2年くらい留年して勉強しろ。
>>596 (・3・) エェー ソースupしろYO
>>593 ちょっと書いてみたら面白いな。
size を200くらいまで100回ずつ試行したところ1400〜2000ステップで安定する。
空間が広くなっても歩ける距離は収束するって事を論じたいんだろうな。
604 :
603 :2006/11/27(月) 10:49:40
さらに止まった位置での x + y + z で論じると平均値で100もいかないんだな。 酔っ払いが帰れなくなるのが実感できるわ。
>>603 そのソース下さい!
と奴が言ってくると見たねw
606 :
ぼるじょあ ◆yBEncckFOU :2006/11/27(月) 13:06:05
>>603 (・3・) エェー ソースupしろYO
(・3・)つ[gpg]
608 :
603 :2006/11/27(月) 13:50:20
#include <stdio.h> #include <stdlib.h> #include <string.h> struct Pos3D { int x; int y; int z; }; static bool checkSp( bool* pSp, int iSize, int iX, int iY, int iZ ) { return *( pSp + iZ * iSize * iSize + iY * iSize + iX ); } static void setSp( bool* pSp, int iSize, int iX, int iY, int iZ ) { *( pSp + iZ * iSize * iSize + iY * iSize + iX ) = true; } // To be continue
609 :
603 :2006/11/27(月) 13:50:58
static int setMove( Pos3D* pPos, bool* pSp, int iSize, Pos3D aMove[6] ) { int iRet = 0; memset( (void*)aMove, 0x00, sizeof( Pos3D ) * 6 ); if( pPos->x > 0 && ! checkSp( pSp, iSize, pPos->x - 1, pPos->y, pPos->z ) ) { aMove[iRet].x = -1; iRet++; } if( pPos->x < iSize - 1 && ! checkSp( pSp, iSize, pPos->x + 1, pPos->y, pPos->z ) ) { aMove[iRet].x = 1; iRet++; } if( pPos->y > 0 && ! checkSp( pSp, iSize, pPos->x, pPos->y - 1, pPos->z ) ) { aMove[iRet].y = -1; iRet++; } if( pPos->y < iSize - 1 && ! checkSp( pSp, iSize, pPos->x, pPos->y + 1, pPos->z ) ) { aMove[iRet].y = 1; iRet++; } if( pPos->z > 0 && ! checkSp( pSp, iSize, pPos->x, pPos->y, pPos->z - 1 ) ) { aMove[iRet].z = -1; iRet++; } if( pPos->z < iSize - 1 && ! checkSp( pSp, iSize, pPos->x, pPos->y, pPos->z + 1 ) ) { aMove[iRet].z = 1; iRet++; } return iRet; } // To be continue
610 :
603 :2006/11/27(月) 13:51:59
static bool move( Pos3D* pPos, bool* pSp, int iSize ) { int iMove, iRand; Pos3D aMove[6]; iMove = setMove( pPos, pSp, iSize, aMove ); if( ! iMove ) return false; iRand = rand() % iMove; pPos->x += aMove[iRand].x; pPos->y += aMove[iRand].y; pPos->z += aMove[iRand].z; setSp( pSp, iSize, pPos->x, pPos->y, pPos->z ); return true; } // To be continue
611 :
603 :2006/11/27(月) 13:52:59
static int walk( int iSize ) { bool *pSp; Pos3D stNow; int iStep = 1; size_t tSize; tSize = sizeof( bool ) * iSize * iSize * iSize; pSp = (bool*)malloc( tSize ); memset( (void*)pSp, 0x00, tSize ); *pSp = true; stNow.x = stNow.y = stNow.z = 0; while( move( &stNow, pSp, iSize ) ) { iStep++; } free( (void*)pSp ); // return iStep; return stNow.x + stNow.y + stNow.z; } // To be continue
612 :
603 :2006/11/27(月) 13:54:09
int main( void ) { int i, j, iRet, iTotal; for( i = 1; i < 200; i++ ) { iTotal = 0; for( j = 0; j < 100; j++ ) { iRet = walk( i ); iTotal += iRet; } printf( "%d: %d / %d\n", i, iTotal / 100, i * i * i ); } return 0; }
613 :
デフォルトの名無しさん :2006/11/27(月) 18:31:45
>>613 (・3・) エェー もまいもぬけさくだなあ
拡張子を cpp にしてるかお?
もしくは c++ モードでちゃんとコンパイルしてるかお?
615 :
デフォルトの名無しさん :2006/11/27(月) 18:39:33
C言語でお願いしたんですけど・・・
(・3・) エェー
>>560 >>561 そんなつもりはないお
まあC専用スレと言うことでアナ○の話は控えめにするつもりだお
一応もいらのプロフィールは
>>559 となってるお、
指名してくれたら喜んで回答してやるお
>>615 (・3・) エェー bool を独自で定義してコンパイルしてみろお
typedef enum {
int false,
int false
} bool;
(*・3・*) エェー 訂正 typedef enum { false, false } bool;
(*>3<*) エェー さらに訂正 typedef enum { false, true } bool; あとstruct を次のように変更 typedef struct _pos3d { int x; int y; int z; } Pos3D;
(・3・) エェー まあ
>>614 と書いたけど一番悪いのは
>>613 だよな
cとc++のスタイルを混同して使うやつは頭が悪い
コードも汚いしなあ
もう少し美しいスタイルでコーディングするように心がけるべし
(*>3<*) エェー めんごめんご、今日は見吸ってばっかりだお
↓
>>620 の訂正
(・3・) エェー まあ
>>614 と書いたけど一番悪いのは
>>603 だよな
cとc++のスタイルを混同して使うやつは頭が悪い
コードも汚いしなあ
もう少し美しいスタイルでコーディングするように心がけるべし
コーディングせずにケチだけつけるなよw
(・3・) エェー コーディングせずにとはどうやって知り得た情報だ? もまいは超能力者かw 理論的に考えられない奴は鳶でもやってろw
(・3・) アルェー、ぼるじょあ同士でケンカすんなYO!
625 :
デフォルトの名無しさん :2006/11/27(月) 19:19:07
だれかC言語で書いてください
>>625 if(borujoa.joutai==kenka){
borujowa.joutai=dead
}
(・3・) エェー あなじょあが居るお
(・3・) エェー homoもここに来ることあるのかお?
>>624 (・3・) エェー 別にぼるじょあ同士じゃないお
童貞の名無しが煽ってきたから煽り返してやっただけだし
(*・3・) エェー いつもぼるじょあだから名前間違えたお
(・3・) エェー そうなのかお!
>>631 お前はぼるじょあ名乗るなお、まぎらわしいから
>>632 (・3・) エェー 本スレではしてないから安心汁お
(・3・) エェー C++とjava以外の気持ち悪い言語以外ならどんどん回答してやるお もいらの専門はCとC#、basic(N88-basicとx-basicに限る)だお
>>633 (・3・) エェー それは分かってるけどここでもトリ付けるんだお
(・3・) エェー 期限切れ間近の5分でゆであがるパスタを半額で買ってきたけど これまずいお 全部捨てて晩飯はカップラーメンだ
638 :
603 :2006/11/27(月) 20:22:45
最近 C++ しか書いてないからなぁ...C の書き方忘れとる。
なんか部分的に直してくれてたみたいだけど
>>608 の差し替え。
関数定義でエラーが出るような古いコンパイラは知らん。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char bool;
#define true (0x01)
#define false (0x00)
typedef struct _Pos3D { int x; int y; int z; } Pos3D;
static bool checkSp( bool* pSp, int iSize, int iX, int iY, int iZ )
{
return *( pSp + iZ * iSize * iSize + iY * iSize + iX );
}
static void setSp( bool* pSp, int iSize, int iX, int iY, int iZ )
{
*( pSp + iZ * iSize * iSize + iY * iSize + iX ) = true;
}
639 :
603 :2006/11/27(月) 20:35:44
>>620 c のスタイルと混同だぁ?俺は c++ で書いたんじゃ。
c 独自のスタイルと言えば old-fushion の関数定義くらいだろが。(もう忘れて書けないけど)
インデントが汚い理由は知らん。(行頭スペースが削られてる)
せめて#include の.hは省略して 引数のvoidは省略してクラス化ないとC++らしくないですよ
C++のバイブルに従うならnamespaceも必要かな
(・3・) エェー
>>639 インデントのことをいってるわけではないお
>>640 #include <iostream>一行で済むお
(・3・) エェー
>>640 まあテスト的なプログラムでわざわざクラスにする必要もないと思うけど
ただこの人はちょっとcとc++を混同して使ってる印象は受けるね
>>640 .h は普段でも省略しないな。
自前のヘッダーをインクルードするからそっちだけ .h 付いてるの何か嫌。
VC++ 使う事が多いしね。
『void は省略してクラス化ないと』の意味が解らん。
C++風って蔑称だよね
誰かウィンドウを管理するアルゴリズムを教えてください 例えばウィンドウズOSでウィンドウをたくさん出して 1つのウィンドウを閉じたときその閉じたウィンドウに消されていた矩形領域を 計算するようなプログラムです 言語はCがいいです 期日は12月3日まででお願いします
647です。トリップ付けます
>>647 自分で実装したいってこと?
もしそうじゃないなら、それはウインドウマネージャーの仕事なので、
関数を使って調べることができるよ
自分で実装したいです C言語の授業でDirectXを使ったグラフィックの実験があるんですけど 大小様々な矩形を画面にたくさん出して(最大32枚まで) 適当な矩形を消したときに重なっていたウィンドウがちゃんと表示されるように しなければならないんです。むつかしいです。。。
矩形を消したときに画面を全部クリアして 矩形を再描画という方法はだめ(5点満点中2点しかもらえません)だそうです。。。
DirectXで描画するルーチンは必要ないんですけど、 塗りつぶさなきゃならない領域を計算する方法とか分かればいいです 熱が出てきたので今日はお休みさせていただきますね また明日来ます .oO(誰かすごい人がソースコードうpしてくれるとうれしいなー。なんて)
説明がちっとも具体的でないから話にならん。
>>652 要するに二つの矩形を引数で受け取って、重なっている領域を返す関数を作れって事?
(・3・) エェー 多少効率が落ちても良いなら、 削除矩形とウィンドウの重なった部分を再描画領域にして 奥から手前に向かって描画するのが楽だYO Win32のリージョン無しで真面目にやると面倒そうだNE……(-3-)
656 :
◆i5dB9vhrMo :2006/11/28(火) 15:03:51
「卒論を丸投げするバカがいるスレ」としてコピペブログに宣伝してきて良いですか
658 :
ぼるじょあ ◆yBEncckFOU :2006/11/28(火) 15:07:49
(・3・) エェー 卒論なんて3日前からBlogコピペすれば完成するYO!
661 :
608 :2006/11/28(火) 18:06:23
>>656 どうでもいいけどお前はソフト業界に来るな。
663 :
608 :2006/11/28(火) 18:33:02
>>662 デジドカじゃなくてマジドカならいけるんじゃねぇ?
>>652 KDEあたりのウインドウマネージャーのソースコードならすごい人が書いてると思うぞ。
該当部分を探すと吉。
一般人のオレがうpしてもうれしくなさそうなので悲しいけどな。
>>654 ちょっと違うけどそんな感じです!実際には
2つとは限らないです。
struct Rect { int x; int y; int width; int height };みたいな
構造体で再描画しなきゃならない領域を計算したいんです
>>655 >>664 すばらしい(・∀・)b!!
>>664 さんの方法でソースコードを見たいと思います
師匠と呼ばせてください!
666 :
デフォルトの名無しさん :2006/11/28(火) 20:35:51
>>608 の実行結果の
1 :x/y
2 :x/y
:
200:x/y
と出ますがこのx/yは何をあらわしているんでしょうか?
xをyで割ったものをあらわしています。
668 :
デフォルトの名無しさん :2006/11/28(火) 20:47:13
うそつけww i, iTotal / 100, i * i * i なんで回数かけてるんだ? iTotalってなに?
iTotalもシラネエのか?だっせ
だっせ
671 :
デフォルトの名無しさん :2006/11/28(火) 21:16:40
>>498 のx、y、zの空間をもっと広くしてステップ数を1000くらいに
してもらいたいのですがどなたかできませんか?
672 :
608 :2006/11/28(火) 21:22:07
>>666 たくサルだな。
N: x / y
N: 領域のサイズ(1辺の長さ)
x: 動けなくなった時の位置での x + y + z 値を100回の試行で平均したもの
y: 領域の点数 = N^3
ちなみに
>>611 walk() の戻り値を iStep (コメントアウトしてある行)とすれば、
x:動けなくなるまでに動いたステップ数を100回の試行で平均したもの
となる。
>>612 の i は領域のサイズを表し、j は試行回数なので適宜ループ条件を修正すべし。
ただし、サイズ = 1000 とかにすると 1GByte のヒープを必要とするので普通の環境では動かないと思う。
673 :
デフォルトの名無しさん :2006/11/28(火) 21:29:12
>>◆i5dB9vhrMo ハッシュテーブルを使って一度通過した点を記録するようにすれば、 ランダムウォークの長さを 100000 でも 1000000 にでもできる。 (遅くてもよければ一方向リストでもいいが) いいたいのは条件の後付けをすると全面的に作り直しになることが多いってこと。 空間の広さを聞かれたときに、広くなる予定なので無限扱いにできるようにとでも書いておけば そのように実装したのにって事なんだ。 規模が代わるとアルゴリズム変える必要があるとか何も分かってないみたいだから 情報系学科を卒業しないでほしいな。
(・3・) エェー もちっと高度な質問こないのかお もいらの出番が全然無いし
(・3・) エェー まじぷーたんをアナ○調教したいお ここだったら彼女もくることないしどうどうと言えるお
アナ○調教にかかるコスト・リスクを教えてください。(ネタで) 1.金銭 2.物 3.時間 4.人員 5.場所 6.情報(自分の風評) 成功率を上げる&リスクを減らす方法についてもお願いします。
678 :
デフォルトの名無しさん :2006/11/28(火) 22:13:09
もしかして件の人は
>>394 からずっと張り付いているの?
こいつは実は情報学科の学生ではなく心理学・あるいは人文系の学科の学生で、 その卒論の内容は「インターネットを通じてアカの他人に卒論レベルの問題を解かせる研究」 なんじゃないかという気がしてきた
ってか、この課題の発表ってもう終わったんじゃねぇの? どうせそこで留年が決定しただろうし、もうやる必要なくね?
>>684 留年確定かどうかは知らんが、やる必要はないってところは同意。
元々ぼるじょあじゃないし、単にデータの精度が悪くなるだけで
今のソースコードのままでも卒論は書けるだろうからな。
>>405 にもあるけど前提条件間違ってるし、精度なんて必要無いっしょ
686 :
◆i5dB9vhrMo :2006/11/28(火) 23:13:10
卒研の中間報告なんでまだ終わってないですよ。 どなたかお願いします
お前が自分でやれ
688 :
608 :2006/11/29(水) 06:22:00
>>671 ,
>>673 1000ステップくらい動いてるだろ。
N=50くらいから平均値で1000~2000くらいに収束してるんだから。
それとも x + y + z を1000にしたいって事か?
お前すでに何をしたいか自分でも解ってないんじゃねぇ?
>>682 が正しいかも知れない。
689 :
◆i5dB9vhrMo :2006/11/29(水) 10:08:07
1000ステップってX+Y+Zを1000にしたいんですよ。
691 :
◆i5dB9vhrMo :2006/11/29(水) 10:32:51
>>689 の訂正
X+Y+Zを1000というより3次元上で1000歩動かしたいんですよ
心理学ではありません
692 :
608 :2006/11/29(水) 10:42:34
>>689 最後のサービスだ。
N=500で1000回試行した結果、x + y + z の最大値は472だった。
もっとも walk() が返す x + y + z は最終停止位置なので最大到達位置ならもう少し大きいだろうし、
空間の端にぶち当たったケースも存在すると思われる。
>>674 が書いた様に通った点のリストを持つ処理系につくり直せばN=INT_MAXで処理できる
だろうが、x + y + z > 1000 を満たすには天文的試行回数が必要とされると思われる。
...今後のサポートは有償となります。
>>691 >X+Y+Zを1000というより3次元上で1000歩動かしたいんですよ
ならば、そういうプログラムを書けばいい。
お前がな!
694 :
◆i5dB9vhrMo :2006/11/29(水) 11:11:27
だからX+Y+Zを1000にしるんじゃなくて歩く回数を1000にするのはむりなんですか?
>>694 お前に一つ言っておこう。
このスレで何人かプログラムを書いてくれてる人がいるが、
その人たちも最初からプログラムを書ける人間だったわけじゃない。
「できません」「作ってください」なんて言っていないで、自分で勉強してプログラムを組め。
696 :
608 :2006/11/29(水) 11:22:34
>>694 お前馬鹿?
>>688 で1000ステップくらい動いてると書いただろ。
1000ステップちょうどで止めたいなら walk() にループの停止条件を追加するだけだろ。
while( move( &stNow, pSp, iSize ) ) {
↓
while( iStep < 1000 && move( &stNow, pSp, iSize ) ) {
そもそもどんな結果を得ようとしてるんだ。釣りか?
697 :
◆i5dB9vhrMo :2006/11/29(水) 11:33:28
説明不足でしたね。 私が出したいのは歩かせる回数Nを10回〜1000回にし原点からの距離の平均を求め歩いた回数Nと移動した距離が比例するか検証したいのです。
>>697 >説明不足でしたね。
ボケか?
お前に不足しているのはそれ以前のモノだ。
>>697 さすが心理学専攻。煽るのもお手の物ですね
>>◆i5dB9vhrMo
もう一度よく考えてから、プログラムの条件を整理しろ。
いくつか根本的に勘違いしてるだろ。
勘違いしてる部分を改めて、かつ誤解の無いように実装ができるような表現で書きなおせ。
ちなみに
>>608 とオレでは問題に対する認識が全然違う。
両方もしくはどちらかが誤解したのは、おまえの書き方に問題があるからだぞ。
701 :
◆i5dB9vhrMo :2006/11/29(水) 11:59:05
>>608 のような難しいことは必要としてないんですよ。
ただ
>>498 のプログラムの空間を広くして歩く歩数MAXSTEPNを20から1000にしたいだけですが後付け条件ではプログラムの書き直しが必要らしいのですが私にはでき兼ねるのでみなさんにお願いしたいんです
>>701 もう十分に後付けしまくってるくせに!
正しい条件を整理して書きなおせ。
箇条書きがどんなものかくらいは分かるだろうな。
>>701 有償ならやるぞ。
金でも情報でもいいから出せるものを出せ。
情報は分野問わずだが、オレが面白いと思うものに限り有効だ。
雑文でも、論文でも、新製品の情報でも、新技術でもおk。あとエロ画像もw
あと、条件が間違ってると思われる部分も報酬によっては指摘するぞ。
(心理学専攻ならこの釣りは大成功だなぁ)
[1] 授業単元:構造論 [2] 問題文(含コード&リンク):リストを用いて多項式の演算ができるようにせよ。 [3] 環境 [3.1] OS: (Windows/bcc32) [3.2] Borland [3.3] [4] 期限: 金曜日 [5] その他の制限: 線形リストまでならってます… 問題文からして自由度が高すぎて何をすればよいか… orz 考えでは線形リストを2つ用意して足し算引き算を行えるプログラムを 作成してからがんばろうと思ったのですがそれさえ組むことができませんでした。 ですので次のプログラムを教えていただければ幸いです… 線形リストを2つ用意してそれぞれ順番ごとに数値を足していくプログラム。
>線形リストまでならってます あほ?
(・3・) アルェー 名無しばっかりでぼるの出る幕が無いYO
>>701 学校名と学籍番号と支払可能な金額を書け。
>>705 線形リストをどこにどうやって使うのかが分からん。
a+3b+4a-b
を
5a+2b
にしろってことか?
>>705 こうか?
#include <stdio.h>
#include <stdlib.h>
struct hoge{
double a;
struct hoge *p;
};
void puthogelist(struct hoge *list){
int i;struct hoge *tmp,*tmp2=0;
for(;tmp2!=list;tmp2=tmp){
for(i=0,tmp=list;tmp->p!=tmp2;tmp=tmp->p) ++i;
printf("%+lfx^%d ",tmp->a,i);
}
printf("\n");
}
int main(){ int i;double a;char buff[64];struct hoge *tmp,*tmp2,*list[2+1]={0},**result; for(i=1;i<sizeof(list)/sizeof(list[0]);++i){ printf("%dつめの多項式の係数を入力\n",i); while(1){ fgets(buff,sizeof(buff),stdin); if(1!=sscanf(buff,"%lf",&a)) break; tmp=(struct hoge*)calloc(sizeof(struct hoge),1); tmp->a=a; tmp->p=list[i]; list[i]=tmp; } puthogelist(list[i]); } for(i=1;i<sizeof(list)/sizeof(list[0]);++i){ for(result=&list[0],tmp=list[i];tmp;result=&((*result)->p),tmp=tmp->p){ if(*result){ (*result)->a += tmp->a; }else{ *result=(struct hoge*)calloc(sizeof(struct hoge),1); (*result)->a = tmp->a; } } } puthogelist(list[0]); for(i=0;i<sizeof(list)/sizeof(list[0]);++i){ for(tmp=list[i];tmp;tmp=tmp2){ tmp2=tmp->p; free(tmp); } } return 0; }
712 :
◆i5dB9vhrMo :2006/11/30(木) 01:05:41
惨事はいらね
715 :
704 :2006/11/30(木) 01:18:40
>>712 努力する方向が違うと思うんだが…
・間違っていると思われる条件
空間は端っこが行き止まり
↓
空間の広さは制限無し(座標は負数も取り得る)
オレが協力できるのはここまでだ
717 :
704 :2006/11/30(木) 01:36:10
何を出してくるか興味があっただけなんだ。 あと、前提条件を見なおせって書いたのに 1000歩動かしたいとかあまりに不憫で… 早めに間違ってるのを教えてあげないと 卒論発表の時に突っ込まれるからな。
718 :
608 :2006/11/30(木) 03:37:26
>>701 の要求仕様は以下と考えられる。
1)ランダム移動によりNステップ移動した時の移動距離(x^2 + y^2 + z^2)^0.5を複数回試行した平均で求めたい。
2)Nを1〜1000として演算した結果をプロットしたい。
3)ただしランダム移動において移動空間による制約があってはいけない。
曖昧な点は以下。
A)1)における移動距離とは最大値なのか?それともNステップ移動した位置での距離か?
B)Nステップ移動できなかった(自ら作った袋小路に入った)場合の結果は破棄して良いか?
A)B)に回答が有れば書いてやっても良いぞ。
ただし有償な。
岡田りなの裏動画をアップしろ。
岡田りなかわいいのにしゃべり方が頭悪そうで萎える
↑そこが良いんじゃん。
(・3・) アルェー もいらが来ないとあまり盛り上がらないね とりあえず鶏肉の香草焼き作って晩ご飯を食べ終わった後に お相手するお
722 :
◆i5dB9vhrMo :2006/12/01(金) 16:15:21
>>718 A)Nステップ移動した位置での距離です
B)袋小路になったときは破棄してよいです
岡田りなの裏画像探したのですがまだ見付かりません。
裏動画と裏画像の間にはかなりの隔たりがある
配列入力で10文字以外なら再入力にしたいんだけど条件は どうすればいいかな? 教えてエロイ人!!
ここは宿題スレ スレタイも読めないバカですか?
727 :
デフォルトの名無しさん :2006/12/01(金) 20:30:49
intにポインタの値が格納されています。 値の場所を先頭とみなしてdoubleの配列を 作りたいんですがどうしたらいいでしょう? double *test[] = ポインタの値の入ったint; とかするとコンパイルしてくれません。
>>727 double** test = (double**)ポインタの値のは行ったint
>>727 ,
>>728 何故にダブルポインタ?
double* test = (double*)iPtr;
でいいんじゃまいか。
int にポインタ値を入れるのは良くないよ。
64Bit コンパイラとかだと int = 4Byte, pointer = 8Byte なんて環境もある。
ありがとうございます。 .netクラスライブラリで作ったC++DLLに値を値を渡す場合 ByRefが使えないんで困っていたんです。 参照渡しする方法があるとスマートなんですが見つからないので 仕方なくintで受けようかと・・・
>>730 > ByRefが使えないんで困っていたんです。
> ByRefが使えないんで困っていたんです。
> ByRefが使えないんで困っていたんです。
ううーん・・・VB?
732 :
◆i5dB9vhrMo :2006/12/02(土) 03:24:04
もう留年確定なんだからプログラム必要ないでしょ?
>>733 っていって、どうせ俺にいやらしいことしたいんだろ?
ウホッ
>>664 師匠のおかげです!間隙です!今度掘らせてください!
おっす!
>>730 > ByRefが使えないんで困っていたんです。
んなあほな。できるに決まっている。
>>722 で、結局どんな条件になったの?
>>715 の指摘している部分は妥当?
全部の条件書き出しなよ
これじゃ入力、出力もさっぱり分からん
↑負の座標も許す方が簡単だし、題意にも合ってる気がする。
しかし、仕様もまとめられない
>>722 が論文を書くのか?
論文の前提として使用したプログラムの外部仕様を書く必要があるんだから、一度まとめたら?
741 :
デフォルトの名無しさん :2006/12/03(日) 00:02:55
整数型変数a,bの初期値がそれぞれa=2,b=3のとき、以下の式を計算して実数型 変数dを求める(実数となる場合は小数点以下4桁まで記述する)問題なのですが、 d= a += b /= 2; の答えが3.000 となるようです、 まずb=b/2を計算して a=a+b/2 となって d=a で答えを3.500 となってしまうのですが、どういう順番ですればいいのでしょうか。 教えてください。
>>741 (・3・) エェー 整数同士の割り算は商を返すYO
演 算|.a| b| d -----+-+-+------ 開始 |.2| 3| ?? b /= 2|.2| 1| ?? a += b|.3| 1| ?? d = a .|.3| 1| 3.0000 で、何の問題も無し。 a, bは int だから 1.5 とか出てこない。
744 :
デフォルトの名無しさん :2006/12/03(日) 07:59:35
あ…ホントだ(^_^;)。ありがとうございます!
745 :
◆i5dB9vhrMo :2006/12/03(日) 19:35:52
岡田りなの裏動画みつかりませんでした
746 :
608 :2006/12/03(日) 20:10:56
↑残念だったね。2〜3年くらい前に一瞬だけ出回ったんだけどもう入手不可かもね。 ....ちゅことで論文は自力で頑張ってね。
747 :
◆i5dB9vhrMo :2006/12/03(日) 23:02:50
なんとかお願いしますよ
だが断る!
749 :
◆i5dB9vhrMo :2006/12/03(日) 23:07:10
この状態でも平気なんですけどなんか納得いかないんですよ
>>749 自分で何もしていない奴にその言葉を言う資格はない
751 :
◆i5dB9vhrMo :2006/12/03(日) 23:12:16
確かにおっしゃるとおりです でもできないんですよ↓
いきなりプログラムを組た奴なんかいない。 このスレの住人も例外ではない。 俺が何が言いたいかわかるか?
>>749 セリフだけ抜き出すとすごく立派に見えてワロタ
◆i5dB9vhrMoは妥協を許さない漢
>>755 自分への妥協はするくせに
他人への妥協は許さないあたり
上司にしたくない人間ナンバーワンだな
部下でもやだ
throw i5dB9vhrMo::works(NULL);
759 :
◆i5dB9vhrMo :2006/12/04(月) 03:11:56
お先真っ暗な私を救ってください〜
死ねば助かるのに…
>>759 >お先真っ暗
よくわかってるじゃないか
本当にかわいかったらちゃんと研究室の先輩が助けている
あんなクズがちゃんと研究室に行ってるわけがない
>>759 留年するか退学するのが一番楽だと何度も言われてるだろ。
といいつつ高学歴ということもあるんだぜ?そんな俺は旧帝大だけが取り柄の大学。
>>764 「研究室の先輩も同レベルなんじゃないのか?」と思ってきた
749 名前: ◆i5dB9vhrMo [] 投稿日:2006/12/03(日) 23:07:10 この状態でも平気なんですけどなんか納得いかないんですよ ^^^^^
772 :
デフォルトの名無しさん :2006/12/04(月) 16:17:28
[1]プログラム演習 [2] いろいろな整数地a,bに対して、tを媒介変数として、座標が x=cos(2πat) y=sin(2πbt) で表される曲線(リサージュ)を描くlisajous関数を作成しなさい [3]C言語(emacs) [4]12/6 [5]for,while,if文 ポインター 文字列 1,2次配列 関数 いまならってる範囲でグラフの描き方がわかりません。すいませんが力を貸してください
>>749 この状態ってどんな状態?
>>772 その出題ではグラフの描き方が解りません。
1) x, y の座標列を出力する?
2) '*'等で標準出力にグラフもどきを描画する?だとすればサイズ/縮尺は?
3) なんらかのGUIが指定されている?
774 :
デフォルトの名無しさん :2006/12/04(月) 17:26:46
1)はx-y座標です 2)は適当でいいと思います 3)はなにも指定されていません
>2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います >2)は適当でいいと思います
776 :
デフォルトの名無しさん :2006/12/04(月) 17:38:01
正直、縮尺やらならってないのでわかりません
777 :
デフォルトの名無しさん :2006/12/04(月) 18:02:51
[1] 授業単元:高度情報演習 [2] 問題文(含コード&リンク): ディレクトリ内にあるテキストファイル(拡張子.txt)を読み込み、 半角英数106キーボードにある記号を 全て全角文字にして(*.h.txt)のファイル名で出力せよ。 文字コードはEUC-JP改行コードはLFとする。 [3] 環境 [3.1] OS:Linux (Fedora Core 5) [3.2] コンパイラ名とバージョン: gcc4.1.1 [3.3] 言語: C [4] 期限: 2006年12月9日9:00まで [5] その他の制限: gcc4.1.1でコンパイルできること。システムコール可
>>776 微妙にずれてるような気もする。
#include <stdio.h>
#include <math.h>
int round( double x ){
int i; i = (int)x; if( x - (double)i > 0.5 ) i++; return i;
}
int main( void ){
char mat[21][42];
int i, j;
double a,b, t = 0.0, x, y, pai;
for( i = 0; i < 21; i++ ) {
for( j = 0; j < 41; j++ ) {
mat[i][j] = ' '; if( i == 10 ) mat[i][j] = '-'; if( j == 20 ) mat[i][j] = '|';
if( i == 10 && j == 20 ) mat[i][j] = '+';
}
mat[i][41] = 0x00;
}
pai = atan( 1.0 ) * 4.0; printf( "a: " ); scanf( "%lf", &a ); printf( "b: " ); scanf( "%lf", &b );
while( t < 1.0 ) {
x = sin( a * t * 2.0 * pai ); y = cos( b * t * 2.0 * pai );
mat[ 10 - round( y * 10.0 ) ][ 20 + round( x * 20.0 ) ] = '*'; t += 0.01;
}
for( i = 0; i < 21; i++ ) printf( "%s\n", mat[i] );
return 0;
}
ありがとうございます・
なんでボクにはプログラムくれないの〜?
>>780 #include <stdio.elf>
#include <manko.H>
>>780 ※一回書いた物の仕様変更は詰まらないから。
※
>>740 に返事が無いから。
※りなタンを見つけてくれないから。
784 :
◆i5dB9vhrMo :2006/12/05(火) 01:26:36
ほんとお願いします!!!
>>784 お前は勘違いをしている。
お前以外の人間にはお前のプログラムを組む義務はない。
お願いするのは勝手だが、断られたらあきらめろ。
786 :
◆i5dB9vhrMo :2006/12/05(火) 01:52:27
義務はないけど情はまだみなさんにもあると思います
>>786 その「情」を当たり前のように求めるな。
788 :
◆i5dB9vhrMo :2006/12/05(火) 01:58:28
弱者にも親切に それが民主主義だと思いませんか?
こいつから追い詰められた人間の必死さを感じないのが 一番不思議
>>791 あと、一年ちょいの猶予があるからじゃない?
793 :
◆i5dB9vhrMo :2006/12/05(火) 02:30:13
みなさんが書いてくれなくてめちゃ焦ってますよ このままじゃまとまりません。。
>>793 今のままでも平気だと言ってただろうが。
いい加減、お前に力を貸す人間はここにはいないということに気づけ。
>みなさんが書いてくれなくて 自分の無能を棚に上げて、人のせいにするなボケ。
指導教官に頼れよ 何のために高い税金(or授業料)払って奴らを養ってるんだよ
797 :
◆i5dB9vhrMo :2006/12/05(火) 03:03:30
肝心のぼるじょあさんはどこいったんだ?
(・3・)エェー 食事中だYOー
799 :
◆i5dB9vhrMo :2006/12/05(火) 05:11:14
(・3・) お願いですので作って下さい
800 :
デフォルトの名無しさん :2006/12/05(火) 06:42:41
>>800 なら◆i5dB9vhrMoにはプログラムを書いてあげない
>>802 なら◆i5dB9vhrMoは俺より低学歴
お前らヒドスwww
>>805 なら◆i5dB9vhrMoは実は既に自分でプログラムを完成させている。
ところで「i5dB9vhrMo」でググると君はじつにエッチな子だな。
単なる暇人じゃないかwww 誰かいますかなんて聞いてるうちにプログラムの一つでも書けるじゃないか
808 :
デフォルトの名無しさん :2006/12/05(火) 07:48:29
[1]授業単元:プログラミング演習 [2]問題文:文字列str[ ]に整数表記(負の場合もある)が入っているとする。 それを整数に変換して返す関数を記述せよ。 ただし、atoi関数は使用することはできない。 [3]環境 [3-1]OS:Windows XP [3-2]gcc [3-3]言語:C [4]期限:12月5日
strtol sscanf atof strtod
>>808 #include <ctype.h>
int atoippoi(const char *str)
{
int n = 0;
int sign = 1;
if (*str == '-') { sign = -1; str++; }
else if (*str == '+') str++;
while (isdigit(*str)) n = n * 10 + (*str++ - '0');
return sign * n;
}
まあ、お願いしますの一言も書けんやつへの 回答はこんなもんだろ
813 :
デフォルトの名無しさん :2006/12/05(火) 14:58:43
申し訳ないです。お願いします。 標準ライブラリで回答お願いします。
>>813 <ctype.h>も標準に含まれているわけだが。
815 :
デフォルトの名無しさん :2006/12/05(火) 15:30:52
<stdio.h>ってこと?
>>812 俺の回答のどこに不満があるんだYO
自分が書いたような言い方するなYO
>>808 (・3・) エェー もいらがとっておきのとんちをきかせてあげよう
#include <stdlib.h>
i = atol( str );
(・3・) エェー atoi()ではないし全然無問題だお ところで大沢あかねたんとぷータンとアナ○3Pのハードプレイをしたいお
(・3・) エェー 大沢あかねたんのアナ○に入れたぽこたんを引き抜き少し茶色いものがついたそれを つんでれぷータンの口に思いっきりねじ込んでそのまま放尿してやりたいお そしてぷータンに女としての本当の悦びを教えたあげたいね
(・3・) エェー ぷータンのシリアナを泣き叫ぶくらい激しくつきたいなあ 括約筋が潰れるほどがんがん犯しまくってもいらに依存させたいお
(・3・) エェー まあもいらの妄想だから軽く受け流してくれお
(・3・) エェー それにしても
>>808 が本当に問題文通りだったとすると
アホな先生もいたもんだね、
せめて標準ライブラリは使用しないこと、くらいは書けばいいのに
これでもまだまだもいらのとんちにかかっちゃ抜け道はいくらでもあるけどねw
ぼるじょあは「とんち」と「揚げ足取り」の違いがわからないキチガイ
825 :
デフォルトの名無しさん :2006/12/05(火) 23:36:02
[1]授業単元:C言語 [2]問題文:整数配列data[0]〜data[9]に、0以上の整数が格納されている。それぞれの 配列要素ごとに、一行に*を印刷し、グラフを作りたい。最も大きな数字を* が50個となるように、スケーリングして表示すること。 [3]環境 [3-1]OS:Windows XP [3-2]gcc [3-3]言語:C [4]期限:2006/12/7 [5]if,forは分かります。ポインタ無しでお願いします。
826 :
揚げ物2号 :2006/12/05(火) 23:54:19
1] 授業単元: C言語基礎演習 [2] 問題文: 1から3までの3種類の商品について、1月から12月までの売り上げ個数 を入力すると、商品ごとの合計売り上げ個数と月ごとの合計売り上げ個数を 表示するプログラム。 [3] 環境 [3.1] OS:windows xp [3.2] コンパイラ名とバージョン:わかりません [3.3] 言語: C [4] 期限: 12月6日1:00まで [5] その他の制限: defineは使わずに。二次配列(hyo[i][j])を使って 作る。
827 :
◆GJenck4cmw :2006/12/06(水) 00:43:36
[1] 授業単元: 情報処理T [2] 問題文(含コード&リンク): 1万円以上の金額を入力し、必要となる金種別の 枚数計算を行い、結果を配列Aに設定するプログラム をつくれ。ただし、使用する金種は、1万円・千円 百円・十円・一円も5種類のみとし、配列Bに予め 値が格納されているとする。結果は配列Aと配列Bの 内容を印刷せよ。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Borland C++Compiler 5.5 [3.3] 言語: C++ [4] 期限:2006年12月6日午前8:00 まで [5] その他の制限:C言語を習い始めて3ヶ月と6日です。 1次元配列を習っているところなので1次元配列を 使用した形でよろしくお願いします。
>>826 なんで解答もらっとるのにマルチポストすんねん
>>829 概ね同意。
>>828 とは若干問題が違うみたいだけど。
書こうかと思ったけどマルチしてるからやーめた。
>825 int i, j, max; max = data[0]; for(i=1; i<50; i++) if(data[i]>max) max = data[i]; for(i=0; i<50; i++) { for(j=0; j<50*data[i]/max; j++) putchar('*'); putchar('\n'); }
>>828 >int res=0;
>res = *money % res;
>*money -= res * par;
>return res;
正気か?
>827 #include <stdio.h> int main(void) { int i, n; int a[5], b[5] = {10000, 1000, 100, 10, 1}; scanf("%d", &n); for(i=0; i<5; i++) { a[i] = n / b[i]; n %= b[i]; } for(i=0; i<5; i++) printf("%5d円:%5d枚\n", b[i], a[i]); return 0; }
[1] 授業単元:プログラミングT [2] 問題文(含コード&リンク):キーボードから数値を5個入力して、それらの合計、平均値、最大値、最小値と標準偏差で求める プログラムを配列とforループを用いて作りなさい [3] 環境 [3.1] OS: WindowsXP [3.2] Microsoft Visual C++ 6.0 [3.3] C++ [4] 期限: 2006年12月10日午後2時まで] [5] まだかじってる程度です
835 :
デフォルトの名無しさん :2006/12/06(水) 20:42:01
>831 ありがとうございます。
>>831 >>835 2個目のfor文はfor(i=0; i<10; i++)
あとmaxがゼロ(dataの中身が全部ゼロ)だったらゼロ除算
>836 1個目のforも10までだな。 0除算は >0以上の整数が格納されている だから考える必要はない
ん?0以上ってゼロを含まないの?
以上は0も含む
データが全て0で最大0だったら、全部*50個表示しなきゃなんないのか。 0なのに*50個って相当おかしいな。
ほんとぼるじょあは役に立たないな 活躍してるのは名無しだけじゃん
>>834 #include<iostream>
#include<cmath>
using namespace std;
int main()
{
double data[5];
double max, min, average=0, sum=0, std_dev=0;
double s=0 , variance=0;
for(int i=0 ; i < 5 ; ++i) {
cout << i << "個目のデータを入力してください: ";
cin >> data[i];
}
max = min = data[0];
for(int j=0 ; j < 5 ; ++j) {
sum += data[j]; //合計
s += ( data[j] * data[j] );
if( max < data[j] ) { //最大値
max = data[j];
}
if( min > data[j] ) { //最小値
min = data[j];
}
}
average = sum / 5; variance = ( 1.0/4.0 )*( s - ( (1.0/5.0)*(sum*sum) ) ); std_dev = sqrt( variance ); cout << "max :" << max << endl; cout << "min :" << min << endl; cout << "average :" << average << endl; cout << "std_deviation :" << std_dev << endl; return 0; } こんな感じ?わかんね
844 :
842 :2006/12/06(水) 22:33:31
あ・・・ variance = うんぬんの後の行に if( variance < 0.0 ) variance = 0.0; 入れないとまずいな
無駄な要望だとは思うんだが次スレは立てないで本スレと一本化してくれないだろうか>スレ立てたぼるじょあ 本スレとこっち両方見るのめんどいんだ (マルチポストするバカを判別しやすいというメリットはあるが)
ぼるじょあ全然活躍してないしこのスレが最後ということで決定
>>846 >>841 はぼるじょあを奮い立たせるための方便だよ。
ほんとはみんな応援してるんだから。
848 :
デフォルトの名無しさん :2006/12/07(木) 13:09:33
挿入ソートの課題で、数字がちゃんと小さい順に並ばないんですが、どこが悪いのかプログラムを見てもらえませんか? それと、このプログラムはステップ1-5 を実行した時点で、ソート済み位置より前の要素 は小さい順に並ぶらしいんですけど、その説明はどういう風にしたらいいでしょうか? #define N 30 // 配列要素の個数 #include <iostream> using namespace std; void main() { int hairetsu[N] = {636, 80, 246, 766, 881, 383, 244, 671, 503, 331,444, 723, 916,287, 492, 719, 476, 187, 704, 115,774, 334, 618, 625, 582, 938, 427, 831, 899, 909}; //ソート対象の配列 int sortedPos,pos,insert,insertPos; //ソート済み位置,現在位置,挿入要素,挿入位置 //(1)ソート済み位置を、配列先頭の要素番号-1から1ずつ増やしながら、 // 配列末 尾の要素番号-1になるまで以下の処理を繰り返す。 for ( sortedPos = 0; sortedPos < N; sortedPos++ ) { //(1-1)ソート済み位置+1の位置に格納されている要素を挿入要素とする。 insert = hairetsu[sortedPos + 1]; insertPos = sortedPos + 1;//(1-2)挿入位置←ソート済み位置+1 pos = sortedPos;//(1-3)現在位置←ソート済み位置 //(1-4)現在位置が配列先頭の要素番号以上であり、 // かつ現在位置の要素が 挿入要素よりも大きい限り以下の処理を繰り返す。 while ( pos >= 0 && insert < hairetsu[pos] ) { //(1-4-1)現在位置の要素を1つ後ろの位置に格納する。 hairetsu[pos] = hairetsu[pos - 1]; insertPos = pos;//(1-4-2)挿入位置←現在位置 pos = pos + 1;}// (1-4-3) 現在位置を配列の先頭方向に1つ戻す。 insert = hairetsu[insertPos];}// (1-5) 挿入要素を挿入位置に格納する。 // (2) 配列の各要素を表示する。 for ( int i = 0; i < N; i++ ) { cout << hairetsu[i] << " ";}} すいません、お願いします。
if文の中に記号をごちゃごちゃ入れられると見づらいので よっぽどな事が無い限りは、適当な変数に値を入れ それで比較してくれると可読性が良いので助かる。
何を言ってるんだお前は。
>>848 >insert = hairetsu[insertPos];}// (1-5) 挿入要素を挿入位置に格納する。
ここを
hairetsu[insertPos]=insert;
にしてくれ
しかし、無駄なコメントが多くて読みにくかった・・・
文の中に//をごちゃごちゃ入れられると見づらいので よっぽどな事が無い限りは、適当な変数に値を入れ それで比較してくれると可読性が良いので助かる。
854 :
ぼるじょあ ◆yBEncckFOU :2006/12/07(木) 14:08:45
(・3・) おまえらバカにいちいち付き合ってるほどヒマヒマじゃないんですYO!!!
>>829 >>830 すいません、見落としていました。
スルーされていたと思ってこちらにも立てていました。
本当に申し訳ありませんでした。
857 :
デフォルトの名無しさん :2006/12/07(木) 20:09:43
[1] 授業単元:C言語処理 [2] 問題文(含コード&リンク): ライブラリ関数strcmpと同じ処理をする関数を記述せよ。 ポインタは使ってはならない。 [3] 環境 [3.1] OS: WindowsXP [3.2] gcc [3.3] C [4] 期限: 2006年12月8日] [5] 関数、if,for文でお願いします。ポインタはなし。です。
>>857 > ポインタはなし。
> ポインタはなし。
> ポインタはなし。
全てを否定された気がする
>>857 ポインタなしでどうやって比較する文字列を受け取るんだ?
普通にできるじゃん
不可能な課題だなw
862 :
デフォルトの名無しさん :2006/12/07(木) 20:19:27
>>860 strcmpの型はわかってるか?
int strcmp(const char *s1, const char *s2);
”同じ処理をする関数”とは書いてあるが ”同じインタフェースの関数”とは書いてない お前大丈V?
>>865 C言語において1次配列とポインタが等価って事は知ってるよね。
ポインタも配列も使わないIFで strcmp を実装できたらすげぇと思う。
単に出題者が池沼。
>>866 得意気になってないで
それくらい(呼び方の違いくらい)認知してやれw
だから配列で記述してやればよいだけだ
>>857 int strcmp(const char s1[], const char s2[]) {
int i;
for(i=0; s1[i] && s2[i] && s1[i]==s2[i]; i++);
return s1[i] != s2[i] ? s1[i] - s2[i]
: !s1[i]&&!s2[i] ? 0 : s1[i] ? 1 : -1;
}
>>866 http://www.kouno.jp/home/c_faq/c6.html 配列はポインターと違う。配列の宣言「char a[6]」 は6文字分の領域を確保して、
それを「a」という名前で識別すること を要求する。
すなわち「a」という名前の場所があって、そこには6文 字を収めることができる。
一方、ポインターの宣言「char *p」はポ インターを収める場所を要求する。
ポインターはpという名前で識別 され、ほとんどどんなものでも指すことができる。
どんなchar、ある いは連続したcharの列を指すこともできるし、どこも指さなくても
構わない。
というわけでCのポインタ変数と配列名の相互互換性が余りにも高すぎるのが悪いことになりました
配列とポインタが同じものだと思い込んで ここまでgdgd言ってたのかw
素で解ってないやつが混じってそうなんで書くが 配列とポインタを明確に区別して話すなら 関数に配列を渡すことは出来ない 配列を渡そうとしたとたんポインタに成り下がる 関数の仮引数に char *a と書こうが char a[] と書こうがどちらも同じポインタ変数だ ちなみに char a[10]; は、確かに配列の宣言だが a[0]='s'; とかの a は既にポインタに成り下がっている
「等価」といったら明確もクソも関係ないだろwww
874 :
866 :2006/12/08(金) 04:28:53
>>872 が言いたいことを代弁してくれた。
『ポインタを使わずに』と言った出題者は
>>872 より解ってないと思う。
『ポインタと配列は等価』っていうのはK&Rに書いていたと記憶するんだけど...
『ポインタ変数と配列変数は等価』だったっけ?
以下、独り言なので賢い人は読み飛ばして /* Cだとただの識別子名の評価される値が 識別子の型で違うことが混乱の元なんだよね 便利だけど。 int a[1], b, *c; a 自体はintの配列だが、aが評価されると先頭のintへのポインタになる だから、c=a; ができる。 ある意味c=&a[0]; の手抜きの表現なんだよね。 ここのみんなは違うと思うけど これをcとごっちゃになりやすい人もいる。 でも、Cを作った人たちは自分たちが使いやすいように作ったんだね */
877 :
デフォルトの名無しさん :2006/12/08(金) 20:00:44
あ
878 :
デフォルトの名無しさん :2006/12/08(金) 20:04:11
k
879 :
デフォルトの名無しさん :2006/12/08(金) 21:27:31
]
880 :
デフォルトの名無しさん :2006/12/08(金) 21:31:55
マルチ
881 :
デフォルトの名無しさん :2006/12/08(金) 21:36:13
o
882 :
デフォルトの名無しさん :2006/12/08(金) 21:38:09
[1] 授業単元: プログラミング応用 [2] 問題文:以下の整列済み配列を分割せずに統合(マージ)を繰り返せば、 ソートされる。このプログラムを作成し、結果を出力せよ。 [11.34.58.62][20.61][100][250.300][400] [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:gcc? [3.3] 言語:C言語 [4] 期限:06年12月09日PM12:00まで [5] その他の制限:ポインタを使用しろと指示されていますが、よくわかりません 配列それぞれに割り振るということなのでしょうか・・・
883 :
デフォルトの名無しさん :2006/12/08(金) 21:39:01
vはじめまして
突然すみません
すでに登録していたら大変失礼致しましたm(__)m
こちらの前略プロフィール同様、このサイトも無料です
すでに100万人が登録し日々楽しんでいます
サイトの内容としてゎいろいろな方との交流
無料で遊べるゲーム等が魅力です
是非登録してみて下さい
パケット定額制の方にお勧めです
http://mbga.jp/AFmbb.hs5w132b18
884 :
デフォルトの名無しさん :2006/12/08(金) 21:40:16
d
885 :
デフォルトの名無しさん :2006/12/08(金) 21:41:55
d
886 :
デフォルトの名無しさん :2006/12/08(金) 22:02:59
f
887 :
デフォルトの名無しさん :2006/12/08(金) 22:05:00
d
888 :
デフォルトの名無しさん :2006/12/08(金) 22:05:55
d
889 :
デフォルトの名無しさん :2006/12/08(金) 22:23:02
fg
890 :
デフォルトの名無しさん :2006/12/08(金) 22:32:37
なんだこれ
891 :
デフォルトの名無しさん :2006/12/08(金) 22:33:10
s
892 :
デフォルトの名無しさん :2006/12/08(金) 22:35:03
s
893 :
デフォルトの名無しさん :2006/12/08(金) 22:49:08
m
894 :
デフォルトの名無しさん :2006/12/08(金) 22:50:52
l
895 :
デフォルトの名無しさん :2006/12/08(金) 22:52:15
k
896 :
デフォルトの名無しさん :2006/12/08(金) 22:54:37
s
897 :
デフォルトの名無しさん :2006/12/08(金) 22:58:26
k
898 :
デフォルトの名無しさん :2006/12/08(金) 22:59:46
k
899 :
デフォルトの名無しさん :2006/12/08(金) 23:00:13
k
900 :
デフォルトの名無しさん :2006/12/08(金) 23:04:05
rとぇr
901 :
デフォルトの名無しさん :2006/12/08(金) 23:27:06
;
902 :
デフォルトの名無しさん :2006/12/08(金) 23:29:11
f
903 :
デフォルトの名無しさん :2006/12/08(金) 23:32:32
あ
904 :
デフォルトの名無しさん :2006/12/08(金) 23:35:04
症状:main関数に引数を渡すプログラムでエラーが出てしまう。 int main(int argc, char *argv[]) { int i; double d; long l; i=atoi(argv[1]); l=atol(argv[2]); d=atof(argv[3]); printf("%d %ld %f",i,l,d); return 0; } 上記がソースです。使用ソフト:VisualC++6.0、OS:windowsMe。
905 :
デフォルトの名無しさん :2006/12/08(金) 23:37:44
マルチ自分で考えろや
906 :
デフォルトの名無しさん :2006/12/08(金) 23:47:47
>>905 自分で考えて見ました。プロンプトで引数を加えたら実行できました。
ところで、VisualC++では実行できないんでしょうか?
907 :
デフォルトの名無しさん :2006/12/08(金) 23:48:30
s
908 :
デフォルトの名無しさん :2006/12/08(金) 23:49:49
知るかボケ!俺はDOSしか使わん
909 :
デフォルトの名無しさん :2006/12/08(金) 23:58:26
よう
(・3・) エェー まともな質問が来ないね、もいらの出る幕じゃなさそうだお というかぷータン消えたんだけど・・・もいらってばれて警戒してるのかなw
911 :
デフォルトの名無しさん :2006/12/09(土) 00:11:53
ノシ
912 :
デフォルトの名無しさん :2006/12/09(土) 00:12:38
トリップ解析のプログラムキボンヌ
(;3;) エェー ぷータンが消えたお、黙って消えないで一言寝るとか残せお
>>911 よぐわからんけど ノシ
914 :
デフォルトの名無しさん :2006/12/09(土) 00:16:23
トリップ解析のプログラムはやくしろ
誰のトリップを解析したいんだよ 俺がやってやるから言えよ
916 :
デフォルトの名無しさん :2006/12/09(土) 00:19:28
トリップ解析のプログラムハラショー
917 :
デフォルトの名無しさん :2006/12/09(土) 00:24:44
◆LLLLLLLLL.
918 :
デフォルトの名無しさん :2006/12/09(土) 00:25:51
んなもん公開トリップだろ ググれボケ
(・3・) エェー 何々、ぼるじょあのとっぷりが知りたかったのかお? 「ぼるじょあ#もっきんぐ」でキミも今日からぼるじょあだお!
920 :
デフォルトの名無しさん :2006/12/09(土) 00:27:35
できないんだろ?笑
921 :
デフォルトの名無しさん :2006/12/09(土) 00:28:18
だっせー
(・3・) エェー 明日(というか今日か)用事があるから寝るお じゃーなおまいら
923 :
デフォルトの名無しさん :2006/12/09(土) 00:29:19
f
(・3・) エェー 今日こそは彼女のアナ○に小指の第1関節の半分は入れたいお 今日の目標: 先々週はアナ○の周囲は舐めたので今日はア○ルの中心を舐めるお 願わくばアナ○に小指の第1関節の半分は入れるお じゃーおやしみだお
925 :
デフォルトの名無しさん :2006/12/09(土) 00:30:23
今日中にこのスレ終わらせようぜ
926 :
デフォルトの名無しさん :2006/12/09(土) 00:34:34
いいぜ
927 :
デフォルトの名無しさん :2006/12/09(土) 00:36:37
l
928 :
デフォルトの名無しさん :2006/12/09(土) 00:37:53
ちょっとプラプラしてくるノシ
929 :
デフォルトの名無しさん :2006/12/09(土) 00:44:30
l
930 :
デフォルトの名無しさん :2006/12/09(土) 00:54:59
l
931 :
デフォルトの名無しさん :2006/12/09(土) 00:56:25
932 :
デフォルトの名無しさん :2006/12/09(土) 01:30:06
西村ひろゆきだけどなんか質問アル_?
933 :
デフォルトの名無しさん :2006/12/09(土) 01:32:37
ない
934 :
デフォルトの名無しさん :2006/12/09(土) 01:33:48
n
935 :
デフォルトの名無しさん :2006/12/09(土) 01:36:17
「
936 :
デフォルトの名無しさん :2006/12/09(土) 01:37:02
う
937 :
デフォルトの名無しさん :2006/12/09(土) 01:40:28
h
938 :
デフォルトの名無しさん :2006/12/09(土) 02:05:08
そろそろ次スレの季節?
いやいや、次スレいらんだろ。
そだな。肝心のぼるじょあがいないか来ても アナルとか運国際話しをするやつらばかりで このスレの存在意義がない
(・3・) エェー 少しはがんばるYO!!
942 :
◆i5dB9vhrMo :2006/12/09(土) 18:11:50
か
943 :
デフォルトの名無しさん :2006/12/09(土) 18:31:06
>>941 エェー アナルの話を頑張ってしてくれYo
C言語よりはるかに詳しいいんだろ(・3・)
944 :
デフォルトの名無しさん :2006/12/09(土) 18:47:38
f
945 :
デフォルトの名無しさん :2006/12/09(土) 18:48:21
アナル臭いからきらい
946 :
デフォルトの名無しさん :2006/12/09(土) 19:01:34
d
947 :
デフォルトの名無しさん :2006/12/09(土) 19:05:40
r
948 :
デフォルトの名無しさん :2006/12/09(土) 19:09:49
s
949 :
デフォルトの名無しさん :2006/12/09(土) 19:10:27
杯は灰は位牌亜ヒアヒアヒアヒアヒア母ヒアはいあひあはいはいあひあひあはいあひあっはあひ
950 :
デフォルトの名無しさん :2006/12/09(土) 19:11:44
y
951 :
デフォルトの名無しさん :2006/12/09(土) 19:12:40
い
952 :
デフォルトの名無しさん :2006/12/09(土) 19:13:50
h
953 :
デフォルトの名無しさん :2006/12/09(土) 19:25:05
s
954 :
デフォルトの名無しさん :2006/12/09(土) 19:28:42
お前らなんかかけや
955 :
デフォルトの名無しさん :2006/12/09(土) 21:21:07
k
956 :
デフォルトの名無しさん :2006/12/09(土) 21:22:19
s
957 :
デフォルトの名無しさん :2006/12/09(土) 21:23:26
958 :
デフォルトの名無しさん :2006/12/09(土) 21:25:18
959 :
デフォルトの名無しさん :2006/12/09(土) 21:26:27
これからも酔え惜しくこれsからもよろしいくこれからもよろkしく
960 :
デフォルトの名無しさん :2006/12/09(土) 21:50:36
;
961 :
デフォルトの名無しさん :2006/12/09(土) 21:54:02
俺のチン子なめてよ
962 :
デフォルトの名無しさん :2006/12/09(土) 21:55:14
チンシュばっかやんなよ
963 :
◆fNzDaWbaps :2006/12/09(土) 21:57:15
d
964 :
デフォルトの名無しさん :2006/12/09(土) 21:59:46
;p
965 :
デフォルトの名無しさん :2006/12/09(土) 22:00:47
961 名前:デフォルトの名無しさん :2006/12/09(土) 21:54:02 俺のチン子なめてよ 962 名前:デフォルトの名無しさん :2006/12/09(土) 21:55:14 チンシュばっかやんなよ 963 名前: ◆fNzDaWbaps :2006/12/09(土) 21:57:15 d
966 :
デフォルトの名無しさん :2006/12/09(土) 22:07:11
d
967 :
デフォルトの名無しさん :2006/12/09(土) 22:27:00
d
968 :
デフォルトの名無しさん :2006/12/09(土) 23:08:09
a
969 :
デフォルトの名無しさん :2006/12/09(土) 23:19:39
d
970 :
デフォルトの名無しさん :2006/12/09(土) 23:31:18
k
971 :
デフォルトの名無しさん :2006/12/09(土) 23:32:10
d
972 :
デフォルトの名無しさん :2006/12/09(土) 23:33:02
973 :
デフォルトの名無しさん :2006/12/09(土) 23:36:35
y
974 :
デフォルトの名無しさん :2006/12/09(土) 23:37:31
そろそろ次スレ立てます
こんなしょうもない書き込みが続くようじゃ次スレいらなくね?
そうか、がんばれよ
978 :
デフォルトの名無しさん :2006/12/10(日) 00:10:48
お
979 :
デフォルトの名無しさん :2006/12/10(日) 00:12:31
;
980 :
デフォルトの名無しさん :2006/12/10(日) 00:13:05
1000は俺がいただくぜ!!!
981 :
デフォルトの名無しさん :2006/12/10(日) 00:13:54
いや俺がいただくわ!!
982 :
デフォルトの名無しさん :2006/12/10(日) 00:14:26
いやいやおれがいただく
983 :
デフォルトの名無しさん :2006/12/10(日) 00:20:23
どうぞどうぞ
984 :
デフォルトの名無しさん :2006/12/10(日) 00:49:20
j
985 :
デフォルトの名無しさん :2006/12/10(日) 00:51:04
おれのちんちんなめてる?
986 :
デフォルトの名無しさん :2006/12/10(日) 00:54:26
l
987 :
デフォルトの名無しさん :2006/12/10(日) 00:56:19
l;
988 :
デフォルトの名無しさん :2006/12/10(日) 00:59:00
¥
989 :
デフォルトの名無しさん :2006/12/10(日) 00:59:44
いしやきーいも おいしいよ
990 :
デフォルトの名無しさん :2006/12/10(日) 01:02:21
11
991 :
デフォルトの名無しさん :2006/12/10(日) 01:03:13
1000はもらった お前らには絶対渡さん 覚悟しておけ ちんちんちん
992 :
デフォルトの名無しさん :2006/12/10(日) 01:05:30
sa
993 :
デフォルトの名無しさん :2006/12/10(日) 01:06:40
#include <iostream>
using namespace std;
const int n = 1000000;
const int m = 4*n; // margin を4倍くらい取る
int num[m];
int main() {
for (int i = 1; i < m; ++i)
for (int j = i+i; j < m; j+=i)
num[j] += i;
for (int i = 1; i < n; ++i)
if (i < num[i] && i == num[num[i]])
cout << i << "," << num[i] << endl;
}
530 :デフォルトの名無しさん :2006/12/09(土) 13:06:42
http://ja.wikipedia.org/wiki/%E5%8F%8B%E6%84%9B%E6%95%B0 どうもこれをみる限り完全数は友愛数から除くっぽいけど
その処理は?
994 :
デフォルトの名無しさん :2006/12/10(日) 01:08:59
あ
995 :
デフォルトの名無しさん :2006/12/10(日) 01:09:50
995
996 :
デフォルトの名無しさん :2006/12/10(日) 01:11:36
1000
(・3・) エェー 1000取り合戦なんて不毛だC
(・3・) エェー そんなこと言いつつ1000狙うYo
次スレは67代目でOKですか?
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。