トップページ⇒tech
1001コメント368KB

C/C++の宿題片付けます 167代目

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/02/14(金) 23:26:43.67
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
気に入らない質問やその他の発言はスルーの方向で。
「著作」「違法」「Qz」はNGワード推奨。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を
 入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0002デフォルトの名無しさん2014/02/14(金) 23:27:31.76
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【wiki】               http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
0003デフォルトの名無しさん2014/02/14(金) 23:28:24.24
テンプレここまで

【C 関数検索 man on WWW】【過去ログ検索】
の2つは使えなくなってたから外した
必要なら適当に補足して
0004デフォルトの名無しさん2014/02/15(土) 13:49:22.52
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
struct node {int elem;struct node *next;};
struct node *list;
問1、中央のセルのポインタを返す関数list midcell(list L)を定義してください。
条件は単方向リストで。また中央のセルとは末尾のセルを除いて考えセルの個数が
2N個の場合N番目のセルのことをいいます。
問2、連結リストLとその途中のセルのポインタMが与えられたとき
先頭LからMの直前のセルまでを切り離し順序を逆転させリストを返す関数
list revfR(list L,list M)を再帰関数で定義してください。
リストLは空でないと仮定します。また本問も単方向リストでお願いします。
問3、問2の機能を持つ関数list revf(list L,list M)を再帰関数を用いず定義してください
よろしくお願いします。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2/16(日)
[5] その他の制限:
0005デフォルトの名無しさん2014/02/15(土) 15:48:02.91
>>4
ttp://ideone.com/3Q4Zdr
0006デフォルトの名無しさん2014/02/15(土) 17:39:58.46
>>5
問題文読み直せ
0007デフォルトの名無しさん2014/02/15(土) 20:32:23.24
重複してしまいました。
こちらを使ってください。
http://toro.2ch.net/test/read.cgi/tech/1392388003/
0008デフォルトの名無しさん2014/02/16(日) 03:57:07.98
>>4
マルチポストは氏にましょう

http://toro.2ch.net/test/read.cgi/tech/1390954735/417-426

あと、>>4は list midcell(list L) の list は変数名だろ
根本的に解決は無理だぞ
0009デフォルトの名無しさん2014/02/16(日) 06:59:59.64
>4
http://ideone.com/mSe58A
0010デフォルトの名無しさん2014/02/17(月) 04:26:00.18
[1] 授業単元:統計分析
[2] 問題文(含コード&リンク):
確率分布が
if(x < c) f(x) = ax + b else f(x) = ac + b (定数)
という形であることが分かってる場合にサンプルデータから c を推定せよ

[3] 環境
 [3.1] OS: Linux
 [3.2] gcc 3.4?
 [3.3] 言語: どちらでも可
[4] 期限: 2/19(水) 24:00
[5] その他の制限:

サンプルデータはこのタイプのデータはアップロードできませんっていわれたんですけど
200 18 255
230 18 402
250 18 269
210 14 189
150 54 723
:
っていう感じで
x 該当数 総数
が int型で改行で並んでるテキストファイルが与えられてます

単調増加の f(x) = ax + b の場合の推定方法は習ったんですが
途中で折れ曲がるグラフの場合にどうしたらいいのか分からなくて
よろしくお願いします
0011デフォルトの名無しさん2014/02/17(月) 11:10:11.35
>>10
最小2乗法のように{ f(x[k]) - y(x[k]) }^2 を求めろってこと?
それとも最良近似のように max | f(x[k]) - y(x[k]) | ってこと?
0012デフォルトの名無しさん2014/02/17(月) 18:20:13.61
>>11
リプありがとうございます

問題文に指定はなかったんですけど
直線グラフの場合に最小2乗法を習ったので最小二乗近似だと思います
0013デフォルトの名無しさん2014/02/17(月) 21:46:09.73
[2] http://wktcoder.blogspot.jp/2012/07/cstrcat.html
の問題をaとbの文字列を受け取れるようにし、連結前と後を表示。
また、連結後の結果も表示する。
void my_strcat(char* str_a,char* str_b)を使用。

[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン: Visual Stdio 2013
 [3.3] 言語: C
[4] 期限: 2/17

よろしくお願いします。
0014デフォルトの名無しさん2014/02/18(火) 10:03:24.34
どなたか>>13お願いします
0015デフォルトの名無しさん2014/02/18(火) 10:40:30.73
期限きれてますやん
0016デフォルトの名無しさん2014/02/18(火) 13:24:58.95
なんで2年前の問題をひっぱってくるのか
宿題じゃないのか
0017デフォルトの名無しさん2014/02/18(火) 17:35:52.94
>>15
期限は誤りです
今日までです

>>16
たまたま同じ問題なので
よろしくお願いします
0018112014/02/18(火) 19:59:00.97
>>10
typedef struct tagPoint{
int x; int y;
}POINT;
typedef struct tagPointList{
POINT* pDataAry;
//メンバ変数 pDataAry の長さ
int size;
}POINTLIST;
typedef struct tagLsmInfo{
//想定関数 f(x)=ax+b の係数 a 。
double dCoefA;
//想定関数 f(x)=ax+b の係数 b 。
double dCoefB;
/**
想定関数とデータの誤差の √ 平方和 => √ ( { y(x[k]) - f(x[k]) }^2 )。
即ち √ { σ(y) ( 1 - 相関係数^2 ) } と同じ値
*/
double dSumError;
}LSMINFO;
/**
入力データから最小2乗法により想定関数 f(x)=ax+b の各係数と
想定関数と入力データの誤差の平方和の0.5乗の値を算出します。<br>
つまり、引数 pRcv のすべてのメンバ変数に適切な値を設定します。<br>

<b>未実装!大して難しくないから、自分で実装してね</b>

@param pData : 入力データ
@param pRcv : 計算結果の受け取りバッファ
*/
void calcLsmInfo(POINTLIST* pData, LSMINFO* pRcv);
0019112014/02/18(火) 20:02:12.76
/**
入力データをXの値が、指定値より大きいか、小さいかで2つに分けます。
@param pData : 入力データ
@param borderX : 入力データを2分する境界値
@param pSmaller : 計算結果の受け取りバッファ
@param pBigger : 計算結果の受け取りバッファ
*/
void splitData(POINTLIST* pData, int borderX, POINTLIST* pSmaller, POINTLIST* pBigger){
int i;
pSmaller->size = pBigger->size = 0;
for(i = 0; i < pData->size; i++){
if( pData->pDataAry[ i ] < borderX ){
pSmaller->pDataAry[ pSmaller->size++ ] = pData->pDataAry[ i ];
}else{
pBigger->pDataAry[ pBigger->size++ ] = pData->pDataAry[ i ];
}
}
}
0020112014/02/18(火) 20:03:10.71
/**
f(x)=ac+b と入力データの誤差の平方和の0.5乗の値の総和を計算します。

@param pData : 入力データ
@param iTheC : f(x)=ac+b の c の値
@param pFuncInof : 想定関数の情報
@return double : 計算結果。
*/
double calcErrOnHL(POINTLIST* pData, int iTheC, LSMINFO* pFuncInfo){
double dBuffer, dTmp;
int i;
dBuffer = 0.0;
for(i = 0; i < pData->size; i++){
//ac + b
dTmp = iTheC * pFuncInfo.dCoefA + pFuncInfo.dCoefB;
//y(x[k]) - f(x[k]) = y(x[k]) - { ac + b }
dTmp -= pData->pDataAry[ i ]->y;
dTmp *=dTmp;
dBuffer += dTmp;
}
return sqrt( dBuffer );
}
0021112014/02/18(火) 20:08:29.27
長過ぎてエラーが出るから2回に分けるよ。

/**
設問を解決する関数。
再急降下法で iCMax から iCMin に近づく方向で iTheC を推定する

@param pInputData : 入力データ
@param iCMax : データを分ける f(x)=ac+b の c の値の取り得る最大値
@param iCMin : データを分ける f(x)=ac+b の c の値の取り得る最小値
@param iSeepestDecentValue : 再急降下法で使用する最大傾斜の値。0 より大きくなければいけません。

@return int : 答えとなるデータを分ける f(x)=ac+b の c の値。
算出不可能なときは iCMin より小さい値を返します。
*/
int solveHomework(POINTLIST* pInputData, int iCMax, int iCMin, int iSeepestDecentValue){
double dPrevErr, dCurErr;
POINTLIST vSmallerList, vBiggerList;
LSMINFO lsmInfo;
int iTheC, iDiggingVal;

iTheC = iCMax; iDiggingVal = iSeepestDecentValue;

vSmallerList.pDataAry = (POINTLIST*)malloc( sizeof(POINTLIST)* pInputData->size );
vBiggerList.pDataAry = (POINTLIST*)malloc( sizeof(POINTLIST)* pInputData->size );

splitData( pInputData, iTheC, &vSmallerList, &vBiggerList );
calcLsmInfo( &vSmallerList, &lsmInfo );

//小さい方の想定関数 ax+b とデータの誤差の√平方和
dPrevErr = lsmInfo->dSumError;
//大きいの想定関数 ac+b とデータの誤差の√平方和
dPrevErr += calcErrOnHL( &vBiggerList, iTheC, &lsmInfo );
0022112014/02/18(火) 20:10:45.93
//前とのツナギ目 //大きいの想定関数 ac+b とデータの誤差の√平方和
////ツナギ目ツナギ目 //dPrevErr += calcErrOnHL( &vBiggerList, iTheC, &lsmInfo );

//想定関数とデータの誤差の√平方和 が最も小さくする iTheC を再急降下法で探す
while( 0 < iDiggingVal ){
iTheC -= iDiggingVal;
//入力データをXの値が iTheC より大きいか、小さいかで2つに分けます。
splitData( pInputData, iTheC, &vSmallerList, &vBiggerList );
//小さい方で最小2乗法
calcLsmInfo( &vSmallerList, &lsmInfo );
//小さい方の想定関数 ax+b とデータの誤差の√平方和
dCurErr = lsmInfo->dSumError;
//大きいの想定関数 ac+b とデータの誤差の√平方和
dCurErr += calcErrOnHL( &vBiggerList, iTheC, &lsmInfo );

if( dPrevErr <= dCurErr ){ iTheC += iDiggingVal; iDiggingVal /= 2;
}else{ dPrevErr = dCurErr; }
if( iTheC < iCMin ){ break; }
}

free( vSmallerList.pDataAry );
free( vBiggerList.pDataAry );

return iTheC;
}
0023102014/02/19(水) 00:51:01.38
>>18-22
ありがとうございます
まだ読んでないんですけどとりあえずお礼だけ
明日じっくりよませていただいて再度書き込みしにきます!
0024デフォルトの名無しさん2014/02/20(木) 09:41:49.48
>>13
0025112014/02/20(木) 15:57:23.95
>>10
読み返したら結構単純なミスが多いな
アルゴリズムはOKだと思うけど実際にレポートに使用できた?
0026デフォルトの名無しさん2014/02/21(金) 01:55:16.09
>>25
結局昨日時点ではよくわからなかったので提出起源あきらめました><
せっかくといていただいたのにすいません
いずれにしても遅れてもださないと単位こないので今考えてるところなんですけど

入力データの y 座標を何にすべきなのか分からなくて
該当したかどうかなので y 座標は 0 と 1 とみるべきなんですよね…

あと C++ は基本的なことはならったんですけどプリミティブな関数しか使えなくて
ファイル読み込みの時の文字列のパーズが面倒だったので
solver の関数だけかりて Java でかきなおしてしまいました

とりあえず自分で calcLsmInfo を実装して
メイン関数でデータの読み込みと solver の呼び出しをしてるだけなんですが
なぜか実行結果が -3850 っていう負の値になってしまいました…
solver を呼び出すときの初期値がまずいんでしょうか…

http://codepad.org/fBWf1Hp5
0027デフォルトの名無しさん2014/02/21(金) 01:56:46.67
C/C++のスレなのにスレチになってしまって申し訳ありません
課題に言語指定がとくになくて Perl や Java でもかまわないみたいで…
0028デフォルトの名無しさん2014/02/21(金) 04:20:01.59
>45行目 if(data.data[i].x < border_x)
//ここは間違えてて、ゴメンなさい。m(_ _)m
>100, 115行目 × //大きい の想定関数 ac+b とデータの誤差の√平方和
>100, 115行目 ○ //大きい方の想定関数 ac+b とデータの誤差の√平方和
//ここも間違えてて、ゴメンなさい。m(_ _)m
//159行目より修正
int max_x = Integer.MIN_VALUE;
int min_x = Integer.MAX_VALUE;
int iSeepestDecentValue;
while((line = br.readLine()) != null) {
 StringTokenizer st = new StringTokenizer(line);
 int x = Integer.parseInt(st.nextToken());
 int n = Integer.parseInt(st.nextToken());
 int sum = Integer.parseInt(st.nextToken());
 for(int i = 0; i < n; i++)
  data.add(new Point((double)x, 1.0));
 for(int i = 0; i < sum - n; i++)
  data.add(new Point((double)x, 0.0));
 if(x > max_x)
  max_x = x;
 //修正
 if(x < min_x)
  min_x = x;
 }
 PointList input_data = new PointList(data);
 //修正
 //再急降下法で使用する最大傾斜の値。0 より大きくなければいけません。
 iSeepestDecentValue = ( max_x - min_x ) / 100;
 iSeepestDecentValue = ( 0 >= iSeepestDecentValue ) ? 1 : iSeepestDecentValue;
 System.out.println(solve(input_data, max_x, min_x, iSeepestDecentValue));
0029112014/02/21(金) 04:27:24.98
>>27
>>28は俺ね。
取り敢えず見つけてバグを修正してみたけど。

ところで if(x<c)...略 の c って int型でいいのかい?
再急降下法はまだ習ってなかった?そうだったら使用してしまってゴメンなさい。
0030112014/02/21(金) 05:01:29.98
追記

//前とのツナギ目 //大きいの想定関数 ac+b とデータの誤差の√平方和
////ツナギ目ツナギ目 //dPrevErr += calcErrOnHL( &vBiggerList, ithe_c, &lsmInfo );
103,104のコメントは不要。俺の書き方が悪かった。
2回に分けたから、繋ぎ目が分かるようにしたつもりだったんだが…。

>106 × //想定関数とデータの誤差の√平方和 が最も小さくする ithe_c を再急降下法で探す
>106 ○ //想定関数とデータの誤差の√平方和 を最も小さくする ithe_c を再急降下法で探す

データファイルのフォーマットが分からないから何ともいえないが
Pointとして捉えるデータ方式が間違っているような悪寒が俺はするんだが
>該当したかどうかなので y 座標は 0 と 1 と
ではなく、通常は、この手の問題は、入力は
X値,Y値 [改行]
ってのがN行あるCSVファイルだと思うんだが。
>200 18 255
>230 18 402
>250 18 269
>210 14 189
>150 54 723
>:
>っていう感じで
>x 該当数 総数
と、言うのならば
200 0.0705882(=18/255)
230 0.0447761(=18/402)
250 0.0520446(=14/189)
150 0.0746888(=54/723)
:
じゃないだろうか?
0031デフォルトの名無しさん2014/02/21(金) 06:32:11.11
[1] プログラミング言語 入門
[2] 変数を入力して、入力された値と以下の条件を満たした値を表示する

1 : 6の倍数なら2で割った値
2 : 3の倍数なら二乗した値
3: 2の倍数なら2で割った値
4: 上記以外の倍数は、二乗した値から元の値を引いた値
☆ 複数の条件が合致した場合は大きい倍数の条件のみとする
☆ 自作で関数を1つは作成する

なにとぞよろしくお願いします。

[3] 環境
 [3.1] OS: Windows 7
 [3.2] コンパイラ名とバージョン: Visual Stdio 2010
 [3.3] 言語: C
[4] 期限: 2/22
0032デフォルトの名無しさん2014/02/21(金) 06:37:30.54
>>31
1の条件を訂正させてください。

正 1 : 6の倍数なら2で割った値を二乗した値

です。
0033112014/02/21(金) 17:07:22.83
>>27
まだ修正箇所があった。スマンm(_ _)m

-- 152行目 --
lsm_info.sum_error = buf;
lsm_info.sum_error = java.Math.sqrt( buf );

×再急降下法
○最急降下法
0034112014/02/21(金) 17:22:26.78
>>32 改行が多すぎでエラーが出たから体裁が無茶苦茶なのは勘弁な
int solve(int inputValue){ int iBuffer;
//1 : 6の倍数なら2で割った値を二乗した値
iBuffer = inputValue % 6;
if( 0 == iBuffer ){ iBuffer = inputValue / 2; return ( iBuffer * iBuffer );
}else{ //2 : 3の倍数なら二乗した値
iBuffer = inputValue % 3;
if( 0 == iBuffer ){ return ( inputValue * inputValue );
}else{ //3: 2の倍数なら2で割った値
iBuffer = inputValue % 2;
if( 0 == iBuffer ){ return ( inputValue / 2; ); }
} }
//4: 上記以外の倍数は、二乗した値から元の値を引いた値
iBuffer = inputValue * inputValue - inputValue; return iBuffer;}
int main(int argc, char* argv[]){ int iBuffer;
printf( "Input Number : " ); scanf( "%d", &iBuffer );
solve( iBuffer ); return 0;}
0035112014/02/21(金) 17:27:27.90
>>32
最後の行が間違ってた
×: solve( iBuffer ); return 0;}
○: printf( "Anser %d\n", solve( iBuffer )); return 0;}
0036デフォルトの名無しさん2014/02/21(金) 20:35:58.88
>>35
訂正後もスペル間違ってる
×Anser
○Answer
0037デフォルトの名無しさん2014/02/22(土) 08:32:55.51
>>34-36

ありがとうございます。
特にコンパイラでエラーは出ないんですが、実際Visual Stidioで起動しCmdに入力すると表示されませn。
よかったら見ていただいてもいいですか?

http://ideone.com/uoAvzm
0038112014/02/22(土) 12:22:49.56
>>37
36!=11な
Linux+gccでは問題無く動作した。

ここ数年は Visual Studio は触ってないから確かなことは言えないけど
ビルドして「実行」とかいうボタンを押すと、DOSプロンプトが立ち上がって
”Input Number : ”ってコードで書いてあるとおりに入力を催促表示すると思うけど。
違っていたら Visual Studio スレで聞いてみて
0039デフォルトの名無しさん2014/02/23(日) 02:02:52.36
>>37
エスパーするとCtrl+F5
0040132014/02/24(月) 09:56:37.62
自分なりにやってみたのですが、どうもうまくいきません。
修正していもらってもいいでしょうか?

http://ideone.com/jAceXa
0041デフォルトの名無しさん2014/02/24(月) 10:26:11.23
>>38
アドバイスありがとうございます

>>39
cmd自体は出ますが、入力して結果が表示される前に消えてしまいます
0042デフォルトの名無しさん2014/02/24(月) 12:53:30.92
>>40
3箇所誤り見つけた。

19行目の返り値
28行目、30行目の変数の渡し方

>>41
正常終了して画面が消えただけ。
main関数のreturn直前にsystem("pause");入れてみ。
0043デフォルトの名無しさん2014/02/24(月) 19:26:19.56
>>41
6行目の空白行に
char* pHead = str_a;
とおいて、19行目の戻り値を pHead に変えてみる

>>42
>main関数のreturn直前にsystem("pause");入れてみ。
これよりはreturn直前にprinf("Input any key to quit. "); scanf("%s",&a);で
ダミーの入力受付の方が初心者向けじゃね。
まあ、どっちでもいいけどさ
0044デフォルトの名無しさん2014/02/24(月) 19:40:08.91
>>43
人にコメントできないくらい色々ミスってるぞ
0045デフォルトの名無しさん2014/02/24(月) 20:44:34.51
>>44
だっていちいちコンパイルするのが面倒いだもん(/ω\)ハズカシーィ
0046デフォルトの名無しさん2014/02/24(月) 21:39:40.32
>>45
安価ミスは気づいてないのかな?

また、以下3点の理由で、42の勝ち
�W準入力にゴミデータがあったら停止しない
�charの配列が必須
�oッファオーバーフローの可能性
0047デフォルトの名無しさん2014/02/25(火) 02:13:38.46
>>41
おまえ>>39試してないだろ
0048デフォルトの名無しさん2014/02/25(火) 09:05:21.57
>>47
VC2010では効かないみたいだが?
0049デフォルトの名無しさん2014/02/26(水) 23:20:13.15
またできない人が偉そうに回答してるのか
0050デフォルトの名無しさん2014/02/27(木) 09:44:24.68
このスレは全大学の教授に監視されています
0051デフォルトの名無しさん2014/02/27(木) 10:15:49.27
>>50
しっかりした答えを書く責任があるということですね。
0052112014/02/27(木) 13:49:06.50
>>50
vimの練習のために、お題に答えていた俺は逝ってよしなんですか?
0053デフォルトの名無しさん2014/02/27(木) 15:39:54.56
vim script, elisp入門の講義にしたら良いのに
0054デフォルトの名無しさん2014/02/27(木) 17:42:07.54
このスレは全大学の情報学科出身の派遣社員が生暖かい目で見守っています
0055デフォルトの名無しさん2014/02/27(木) 18:04:29.58
田舎大学のアホ教授なんて全員、クビにして然るべき
0056デフォルトの名無しさん2014/02/27(木) 18:37:03.61
と奴隷が申しております。
0057デフォルトの名無しさん2014/02/27(木) 18:39:07.28
派遣先輩の忠告は聞くべき。
卒業式の日に、お礼参りに角材で殴ったりしちゃダメだぞ☆
0058デフォルトの名無しさん2014/02/28(金) 00:59:43.82
こいつには単位あげない
0059112014/02/28(金) 01:02:03.01
情報学科出身ではない、
派遣社員ではない、
そんな俺は逝ってよし!なんですか
0060デフォルトの名無しさん2014/02/28(金) 05:19:23.69
>>59
誰だよお前
0061112014/02/28(金) 05:30:23.48
>>59
このスレで11を獲った人
そういうお前こそ誰なのよ?
0062デフォルトの名無しさん2014/02/28(金) 17:01:34.27
ニートです
0063デフォルトの名無しさん2014/02/28(金) 17:27:31.44
>>31 fizzbuzzだな。
#include <stdio.h>

static int sqr(int n) { return n * n; }
static int div(int n) { return n / 2; }

int main(void)
{
&nbsp; int n, t;
&nbsp; scanf("%d", &n);
&nbsp; t = n;
&nbsp; if (n % 2 == 0)
&nbsp; &nbsp; n = div(n);
&nbsp; if (n % 3 == 0)
&nbsp; &nbsp; n = sqr(n);
&nbsp; if (t == n)
&nbsp; &nbsp; n = sqr(n) - t;
&nbsp; printf("%d\n", n);
&nbsp; return 0;
}
0064デフォルトの名無しさん2014/02/28(金) 19:32:57.19
QZがまた糞回答をした
0065デフォルトの名無しさん2014/02/28(金) 23:02:55.60
>>34よりはいいんじゃないの?
0066デフォルトの名無しさん2014/02/28(金) 23:20:58.87
>>65
お前>>63だろ
仕様に適合してないことに気が付いてるか?
0067デフォルトの名無しさん2014/02/28(金) 23:30:57.53
今流行のラムダ式でおね
0068デフォルトの名無しさん2014/02/28(金) 23:37:29.74
今でしょ
0069デフォルトの名無しさん2014/03/01(土) 02:06:27.01
>>66
適合しない入力を教えて。
0070デフォルトの名無しさん2014/03/01(土) 05:46:08.96
>>64
末尾に /* end */ がない
0071デフォルトの名無しさん2014/03/01(土) 12:59:38.44
>>69
全ての入力
0072デフォルトの名無しさん2014/03/01(土) 13:42:51.65
>>69
入力値が6のとき、答えはいくつになればいいと思う?
0073692014/03/01(土) 16:38:35.00
ママーみんながボクをいじめるよ〜(´Д⊂ヽ
>>34のドキュソよりも、いいコードを貼り付けてやったのに
間違ってるって、言いがかりを付けてくるんだ〜
0074デフォルトの名無しさん2014/03/02(日) 21:42:17.10
#include <iostream>
int main() {
int n; std::cin >> n;
std::cout << ([&](){ return !(n % 2) ? n / 2 : !(n % 3) ? n * n : n * n - n; })() << std::endl;
return 0;
}
0075デフォルトの名無しさん2014/03/02(日) 21:44:02.95
あ、違った。
0076デフォルトの名無しさん2014/03/02(日) 21:45:29.90
QZ渾身の糞コード
0077デフォルトの名無しさん2014/03/02(日) 22:00:01.85
>>76

main;
/* end */
0078デフォルトの名無しさん2014/03/04(火) 17:45:25.55
誰か助けて
0079デフォルトの名無しさん2014/03/04(火) 17:51:14.19
誰か助けてください。お願いします。
来週に似たような問題の試験があるので解説付きだと嬉しいです。

now.ameba.jp/x12xxxy24x

出力しろってやつは無視しておkでっす。
0080デフォルトの名無しさん2014/03/04(火) 22:26:50.67
>>79
URLをちゃんと記述してくれ、クリックして出ない URL なんか誰も見ない
0081デフォルトの名無しさん2014/03/04(火) 22:31:45.84
>>80
俺見たよ。レベル低くてリンク張れないんだろ、察しろよ雑魚。
0082デフォルトの名無しさん2014/03/05(水) 06:25:33.74
>>81
俺見ないよ。レベル低くて見る気が起きないんだよ、察しろよ雑魚。
0083デフォルトの名無しさん2014/03/05(水) 06:28:11.60
>>82
だったら出てけよ
0084デフォルトの名無しさん2014/03/05(水) 06:34:23.08
忍法帖も知らないにわかが偉そうにURLがどうとかw マジ糞だなこいつ>>80
0085デフォルトの名無しさん2014/03/05(水) 07:42:31.67
>>79
見れるけど
Nexus7で見てるから
画像の文字が読み取れん
0086デフォルトの名無しさん2014/03/05(水) 11:43:25.52
>>79
問2
(1)(a)2 出力の第2項がyの初期値
(b)x+y (a)の答えと出力の3項から
(2)BとD
問3
(1) (a)int cnt=0; 初期値0必要
(b)cnt
(c)"%sは%d文字です。\n",str,strcnt(str)
(2)for(;s[cnt]!='\0';cnt++){/*何もしない*/};
0087デフォルトの名無しさん2014/03/05(水) 11:45:29.08
>>79 続き
問4(1)
#include <stdio.h>
typedef struct{ int x, y; } Pt;
Pt swap(Pt p){
Pt ret; /* 戻り値 */
ret.x=p.y; ret.y=p.x;
return ret;
}
(2)
int main(void){
unsigned int i;
Pt p;
Pt array[]={{-1,1},{1,0},{0,-1}};
for(i=0;i<sizeof(array)/sizeof(Pt);i++){
printf("入替前:(%d, %d)\n", array[i].x, array[i].y);
p = swap(array[i]);
printf("入替後:(%d, %d)\n", p.x, p.y);
}
return 0;
}
0088デフォルトの名無しさん2014/03/05(水) 11:47:33.89
>>79 続き
問5 自信無い、誰か教えて。
#include <stdio.h>
int main(){
int *x = /*空欄*/
x += 5;
printf("%X\n", x);
return;
/* 出力:19 の時 空欄を埋めよ */
}
intが2byteなら,int *x=15;
intが4byteなら,int *x=5; で、一意には決まらない?
あと、ポインタ型を数値で初期化していいの?
0089デフォルトの名無しさん2014/03/05(水) 11:49:38.79
>>79 続き
問6(2)
#include <stdio.h>
#include <string.h>
void freverse(char* c){
int n = strlen(c); /* 'H','e','l','l','o','\0' で n=6*/
while(n>0){
printf("%c", c[--n]);
/* [--n]:変数の値を使う前に-1するので n[5]からn[0]まで出力 */
}
printf("\n");
}
int main(){
char* c = "Hello";
/* c[0]='H',c[1]='e',c[2]=l,c[3]=l,c[4]=o,c[5]=w,c[6]='\0' */
freverse(c);
return 0;
}
問7
最後が見えないのでよく分からん。
0090862014/03/05(水) 14:01:17.39
>>79 ごめん、訂正。strlenの戻り値間違えた。
問6(2)
#include <stdio.h>
#include <string.h>
void rev_1(char* c){
int n = strlen(c); /* 'H','e','l','l','o' で n=5*/
while(n>0){
printf("%c", c[--n]);
/* [--n]:変数の値を使う前に-1するので n[4]からn[0]まで出力 */
}
printf("\n");
} /* 出力: olleH */
int main(){
char* c = "Hello";
/* c[0]='H',c[1]='e',c[2]=l,c[3]=l,c[4]=o,c[5]=w,c[6]='\0' */
rev_1(c);
return 0;
}
0091862014/03/05(水) 14:09:55.83
>>79
又間違えた。>>90 mainの中のコメント
/* c[0]='H',c[1]='e',c[2]=l,c[3]=l,c[4]=o,c[5]=w,c[6]='\0' */
じゃなく、
/* c[0]='H',c[1]='e',c[2]=l,c[3]=l,c[4]=o,c[5]='\0' */ だわ。
0092デフォルトの名無しさん2014/03/05(水) 19:22:58.10
>>79
int main(){
  Pinfo ps[] = {{"taro",M},{"hanako",F},{"saburo"←この行が切れてて解答できません
  printPerson(ps);
  return 0;
}

これで合ってる?
  Pinfo ps[] = {{"taro",M},{"hanako",F},{"saburo",M},{"",E}};
0093デフォルトの名無しさん2014/03/07(金) 03:35:58.03
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&amp;amp;リンク):
10×10のグラフにおいて、直接接続されたノード間のエッジの距離を1から10までの整数から無作為に選択した値、接続のないノード間の距離を無限大(実際には99999など)としてそれぞれ与え、配列などのデータ構造に記憶させる。
上記で作成したネットワークの任意のノードから、それ以外のすべてのノードまでの距離と経路をDijkstra法を用いて求め、表示する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland c++ 5.5.1
 [3.3] 言語: c++
[4] 3/8(土)
0094デフォルトの名無しさん2014/03/07(金) 07:59:32.77
すみません、93の言語を修正させてください。

[3.3]言語c++ → c でお願いします。
0095932014/03/07(金) 11:44:08.01
>>94
勝手になりすますのは止めてください
0096デフォルトの名無しさん2014/03/07(金) 19:28:49.68
>>93
糞レベルなこのスレで回答がつくとでも思っているのか?
0097932014/03/07(金) 19:36:20.18
お前ら、これくらいしか能が無いんだから、さっさと答えろ
0098862014/03/07(金) 20:51:32.26
>>93
初心者だけど練習で書いてみた。(リンク禁止なのでコピペで)
 ideone.com/PUYFar
隣接行列の作成はかなりええかげんに書いたのでそこらはもっといいのに書き換えて。
俺には出来んかった。
0099デフォルトの名無しさん2014/03/08(土) 05:55:58.24
>>93
用語適当すぎ
10×10のグラフって何や、完全二部グラフか?
0100デフォルトの名無しさん2014/03/08(土) 10:58:25.67
知らないんならレスしないでください
0101デフォルトの名無しさん2014/03/08(土) 20:22:58.33
ここでお願いをする人間は、これらが必要だよな
a. トリップを付ける。
b. 回答を受け取ったら感謝と報告を含んだ返答を書き込む。
c. E-mail欄は sage ではなく age 。
0102デフォルトの名無しさん2014/03/08(土) 20:27:51.06
>>101
勝手にやってろよバーカ
0103デフォルトの名無しさん2014/03/08(土) 20:29:53.38
ろくに答えられない分際でルール作りにばかり力入れるやついるよなw
まずお前が出て行けとw
0104デフォルトの名無しさん2014/03/08(土) 20:45:52.87
こういう宿題は解いても載せない
0105デフォルトの名無しさん2014/03/08(土) 20:52:30.65
カス大生の問題は解いても掲載しない
0106デフォルトの名無しさん2014/03/08(土) 21:05:29.08
>>105
解けないバカが妄想語ってんじゃねえよカスw
0107デフォルトの名無しさん2014/03/08(土) 21:12:57.85
やったー!
煽るしか人間として能がないDQN(=暇潰し玩具)が降臨したぞー!

>>105さん、自分ここで回答してしまったバカです。
何かコメントくださいw
0108デフォルトの名無しさん2014/03/08(土) 21:41:19.18
謎の勝利宣言
0109デフォルトの名無しさん2014/03/08(土) 21:45:00.41
団塊世代のジジイ共をのさばらせないためにも、
ゆとりのクズ大生は甘やかしてはいけない
0110デフォルトの名無しさん2014/03/08(土) 21:46:22.94
だね
自分で調べる力を身に着けさせよう
0111デフォルトの名無しさん2014/03/08(土) 21:47:14.41
>>106
同様の問題をPrologで出されたわ
c++とか1,2時間も掛からないだろ
0112デフォルトの名無しさん2014/03/08(土) 22:47:23.40
>>103
そうそう、wikipedia や wikisource をちょこちょこ書いているが、やたらとルール作りが好きな連中が多いね、あそこは
01131012014/03/08(土) 23:03:39.68
>>112
そうそう、このスレでちょこちょこ回答しているが、やたらと煽る以外脳がない低脳と同類の連中が多いね、ここは
0114デフォルトの名無しさん2014/03/09(日) 14:55:55.26
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
0115デフォルトの名無しさん2014/03/11(火) 23:51:43.13ID:CqsIcYOw
IDが表示されるようになりました。
ありがとうございました。
0116デフォルトの名無しさん2014/03/12(水) 22:55:36.30ID:IkRDHIrE
[1] プログラミング言語 C
[2]
・ 指定したファイルに文字列を行数を指定して挿入するプログラム(ファイル名と位置,挿入する文字列を入力できるようにする)
・ また、上記のプログラムを直して文字列を挿入する場所を行だけでなく列も指定できるようにせよ。(まずは半角だけでよい)

[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Visual C++
 [3.3] 言語: C
[4] 期限: 3月14日

最近勉強を始めたんですが、ファイルの取り扱いでかなり苦戦しています。
どなたかよろしくお願いします。
上の方が使っていたWebのコンパイラも置いておきます。
ttp://ideone.com/
0117デフォルトの名無しさん2014/03/12(水) 23:12:56.68ID:AZrAiCEG
自分で調べろゴミ
0118デフォルトの名無しさん2014/03/13(木) 03:17:23.49ID:9GIXFBoB
>>117
何でこのスレくるのかわからんw
0119デフォルトの名無しさん2014/03/13(木) 03:18:17.41ID:9GIXFBoB
>>116
2つ作れば良いのかな?
0120デフォルトの名無しさん2014/03/13(木) 07:15:19.11ID:vtBqfgev
>>118
春休みだもん
煽り目的の馬鹿が涌くいて出てくる時期だろ
0121デフォルトの名無しさん2014/03/13(木) 10:12:57.55ID:u5puOzBI
uyじゃないか?
IDが出てさぞ荒らしにくくなってるだろうなあザマアww
0122デフォルトの名無しさん2014/03/13(木) 11:23:25.78ID:ZLHpPjTL
最近勉強を始めたんですが、ファイルの取り扱いでかなり苦戦しています。
どなたかよろしくお願いします。
上の方が使っていたWebのコンパイラも置いておきます。

こいつ馬鹿だろ。この程度で苦戦とか本の読みこみが足りなすぎ
0123デフォルトの名無しさん2014/03/13(木) 12:37:29.72ID:ZSiSFjs+
>>116
> ファイルの取り扱いでかなり苦戦しています。

どこまでできてるんだよ?
0124デフォルトの名無しさん2014/03/13(木) 12:46:21.85ID:ZLHpPjTL
自分の能力も明示せず問題丸投げで回答を求める
これ質問できない馬鹿の見本
0125デフォルトの名無しさん2014/03/13(木) 13:06:01.24ID:8C61XcI9
>>116
何か変なのが一匹居るけど、無視で良いよ。
初心者スレでしか暴れられない可哀想な人だから。
0126デフォルトの名無しさん2014/03/13(木) 13:11:59.33ID:ZLHpPjTL
>>125
自己顕示欲で糞回答しろよ
糞コードを見せろQZ
0127デフォルトの名無しさん2014/03/13(木) 14:45:54.07ID:Lb6ZNCgf
IDが表示されるのと、この宿題スレをやめる問題は全く無関係な話
このスレはこのまま続ければいい
ただ質問する奴は大学側にバレバレなんで、それで単位を落としてもこのスレを逆恨みすんな
そんな大事な単位なら安易に問題を晒すな
0128デフォルトの名無しさん2014/03/13(木) 17:42:43.90ID:ZLHpPjTL
素タップ細胞のコピペ事件知ってるならここで質問するのやめとけ
0129デフォルトの名無しさん2014/03/13(木) 18:06:13.94ID:jln8hkaw
質問者でもないのに必死になっている奴いて、ワロタ
0130デフォルトの名無しさん2014/03/13(木) 18:34:58.05ID:qaG+7LaQ
ファイルやストリームもろくに調べることのできないクズが居ると聞いて
0131デフォルトの名無しさん2014/03/13(木) 18:56:25.95ID:6bFdP97U
春休み真っ盛りだな
煽り目的のDQNがバカ丸出し♪

うーん、この低脳っぷりが芳ばすい〜(゜∇^d)!!
0132デフォルトの名無しさん2014/03/13(木) 19:29:50.99ID:ZLHpPjTL
この質問者クズすぎだろ
0133デフォルトの名無しさん2014/03/13(木) 19:32:39.03ID:eWE/omsK
ID:ZLHpPjTLの必死さにワロタ
0134デフォルトの名無しさん2014/03/13(木) 19:59:13.76ID:ZLHpPjTL
>>131
じゃあお前が>>116の能無し馬鹿にお手本となるコードを書いてやれよ
0135131 ◆GccdMSkjmA 2014/03/13(木) 20:29:33.60ID:6bFdP97U
本日22:00までに>>116からお願いのカキコが
あったらやったるわ
0136デフォルトの名無しさん2014/03/13(木) 21:30:42.10ID:1FOo5v5s
C言語なんですけど
void swap(int *x int *y)
int temp;
temp = *x;
*x = *y
*y = temp
一時変数tempを使わないで、swapを実行するにはどうすればいいですか?
0137デフォルトの名無しさん2014/03/13(木) 21:32:20.90ID:ZLHpPjTL
もう馬鹿すぎて何も言えねえ
0138デフォルトの名無しさん2014/03/13(木) 21:35:10.13ID:ci5j+wiG
>>116
http://ideone.com/zpaN5a
ゴリ押しプログラムができたぞ!!ふはははは!
ははは・・・
0139デフォルトの名無しさん2014/03/13(木) 21:35:22.78ID:AgM9wxep
>>116
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void doit(char*fname,int lineno,char*str) {
FILE*fin,*fout;int i,line=0;
char buf[1024];char**lines=NULL;fin=fopen(fname,"r");
while(fgets(buf,1024,fin)) {lines=realloc(lines,(line+1)*sizeof(char*));
lines[line++]=strdup(buf);
}
fclose(fin);fout=fopen(fname,"w");
for(i=0;i<line;i++){
if(i+1==lineno)fprintf(fout,"%s",str);
fprintf(fout,"%s",lines[i]);
}if(i+1==lineno)fprintf(fout,"%s",str);fclose(fout);
for(i=0;i<line;i++)free(lines[i]);free(lines);}
0140デフォルトの名無しさん2014/03/13(木) 21:38:29.32ID:ZLHpPjTL
QZやっとの糞コード排出
0141片山博文MZジェバンニ ◆T6xkBnTXz7B0 2014/03/13(木) 21:42:08.30ID:AgM9wxep
>>136
XOR swap
0142デフォルトの名無しさん2014/03/13(木) 21:47:30.75ID:ZLHpPjTL
>>116は単位を落とすこと確定
0143131 ◆GccdMSkjmA 2014/03/13(木) 21:51:01.80ID:tz2xhzYu
>>138氏が先に片付けてしもうたか
ご苦労様ですm(_ _)m

あとは>>116がお礼をするだけだな
0144デフォルトの名無しさん2014/03/13(木) 23:40:25.92ID:ZLHpPjTL
>>116はとんずらした
0145デフォルトの名無しさん2014/03/14(金) 00:14:18.45ID:CN82R/hG
アホ大学生ネット回答でコピペし教授にバレる
0146デフォルトの名無しさん2014/03/14(金) 00:24:37.78ID:JlWgyJEe
ID付きだとあぼーんが捗っていいな
0147デフォルトの名無しさん2014/03/14(金) 00:56:42.84ID:CN82R/hG
友達いないからここで質問するんだろ
0148デフォルトの名無しさん2014/03/14(金) 03:20:22.81ID:6a31vfjQ
>>116
なるべく易しく書いてみた。
範囲外などのエラーチェックはまったくしていない。

http://ideone.com/xOpfUA
0149デフォルトの名無しさん2014/03/14(金) 11:57:48.43ID:CN82R/hG
ほらまた自己顕示欲キチガイが必死になってる
0150デフォルトの名無しさん2014/03/14(金) 12:58:13.50ID:2dNSUwpy
145 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
147 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
149 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

素晴らしい

ID導入のおかげだ
0151デフォルトの名無しさん2014/03/14(金) 13:15:21.64ID:CN82R/hG
ID:2dNSUwpyをNGIDにしよう
0152デフォルトの名無しさん2014/03/14(金) 14:53:11.12ID:KtWzfVn0
IDが役に立ってるw
0153デフォルトの名無しさん2014/03/14(金) 15:04:07.53ID:Mb2J0ktV
>>150
ワロタ。おれも同じ所があぼーんになってるwww

ID良いな。自動的に雑音排除して普通にスレを読めるようになった。
0154デフォルトの名無しさん2014/03/14(金) 15:11:09.11ID:THJ4r5An
俺もw
( ;∀;)イイハナシダナー
0155デフォルトの名無しさん2014/03/14(金) 19:32:37.42ID:CN82R/hG
宿題を投稿するな
0156デフォルトの名無しさん2014/03/14(金) 19:34:19.16ID:CN82R/hG
>>152-154
全部あぼーんなんだが
0157デフォルトの名無しさん2014/03/14(金) 20:25:51.38ID:CN82R/hG
一つの糞質問に群がるゴミどもきもすぎる
0158デフォルトの名無しさん2014/03/14(金) 22:43:51.11ID:CN82R/hG
結局こいつらがしたいのは自分の力の誇示ってやつなんだよな
まあどいつもヘボだらけなんだが
0159デフォルトの名無しさん2014/03/14(金) 22:55:55.03ID:CN82R/hG
オタクってさ、使いどころのない知識を自慢して優越感に浸る傾向にあるよね
こいつらも同じキモオタ
0160デフォルトの名無しさん2014/03/14(金) 22:59:08.73ID:zw+41NN1
>>155-159
ID導入は正解だった
0161デフォルトの名無しさん2014/03/14(金) 23:10:51.98ID:mqmIxcJs
>>160
っていうかなんでID導入されたのに悪化するのかね?
あぼーんできるからID導入は正解だった思うけれども
0162デフォルトの名無しさん2014/03/14(金) 23:38:19.22ID:CN82R/hG
本物のオタクってさ、自分のために生きた知識を生かすんだけど
キモイオタクってのはくだらない知識を自慢するだめだけに使うんだよね
0163デフォルトの名無しさん2014/03/14(金) 23:46:16.36ID:2tWZV7kK
悪化してないでしょ
赤いIDによる印象操作だ!陰謀だ!
0164デフォルトの名無しさん2014/03/14(金) 23:59:03.30ID:S9zwpGGD
遅れてすいません。
インフルエンザB型に感染してしまったもので。

>>119
そうです。
ひとつは全角文字も読み、行数のみです

>>138
これでは入力した文字を挿入できないので問題とは違うようです。
ありがとうございます。参考にさせていただきます。

>>139
error C2598: リンケージ指定子がグローバル スコープで宣言されていません。
と出てしまいます。
doiit っていうのは初めて見ました。

>>148
string.hを追加したら動きました。
ありがとうございます。
0165デフォルトの名無しさん2014/03/15(土) 01:26:29.99ID:AJr6U08J
>>164
>error C2598: リンケージ指定子が、
>グローバル スコープで宣言されていません
ttp://msdn.microsoft.com/ja-jp/library/w3kzs7x0.aspx

エラーは、エラー番号で検索すれば、たいてい説明が見つかる
error C2598
0166デフォルトの名無しさん2014/03/15(土) 01:56:14.99ID:AJr6U08J
>>93
10*10の隣接行列だね
でも隣接行列は、ほとんどが隣接しない99999となり、
メモリの無駄だから、一般的には隣接リストを使う

セル番号を、1-100とすると、
1->2,3,4
2->1,3,5

漏れは今、6マスタイプの大戦略のAIを考えている
首都からすべてのセルへの、最小移動コストと、
その経路をたどるパス

すべてのセルへ、ランダムな移動コストを与えて、
シミュレートしようと思っている
優先度キューを使うか?
0167デフォルトの名無しさん2014/03/15(土) 22:18:05.01ID:Pv8JcOyk
文字列(string型)の先頭から数字として有効な文字数を返す関数ってどうやって作れば良いですか?
例
"126AB"→3
"-(1+2)"→0
"-9.25ABC"→5
0168デフォルトの名無しさん2014/03/15(土) 22:32:58.92ID:2R7Cli6M
strspn(s, "0123456789")
0169デフォルトの名無しさん2014/03/15(土) 23:13:57.17ID:/jvxmNA2
>>176
10進数でない文字列の場合はどういう扱いをすればいいの?
0170デフォルトの名無しさん2014/03/15(土) 23:19:38.21ID:71cS5Xff
あぼーんじゃないからレス番ずれたな
01711162014/03/15(土) 23:43:49.16ID:nqywdHbD
>>148
非常にわかり易かったです。
これを少し変えて

・指定したファイルに文字列を行数を指定して挿入するプログラム(ファイル名と位置)、挿入する文字列(全角)を入力できるようにする

にしたいんですが、どこをどのように変えたらいいでしょうか?
0172デフォルトの名無しさん2014/03/16(日) 08:48:02.12ID:nQOiLa8y
>>176
> 文字列(string型)の先頭から数字として有効な

数字?
なら、"-9.25ABC" は 0 じゃね?
数値なら、1.2e-3、0x1234、.123、1,234.56 等を数値として見なすかを決めてもらわないと
0173デフォルトの名無しさん2014/03/16(日) 10:19:40.42ID:wmlsbQd6
>>170
公開質問状でコードを見せろ、というつもりだったのに残念
0174デフォルトの名無しさん2014/03/16(日) 11:16:13.40ID:u4clKyZZ
>>171
>文字列を行数を指定して挿入

という事は、「最初に改行してから、指定行数挿入」という事ですか?

>32. fprintf(fp2,"%s",str);

この部分に改行を追加し、指定行数ループするのではだめでしょうか?
0175デフォルトの名無しさん2014/03/16(日) 11:57:23.40ID:+0w7Q/Uu
プログラマ=奴隷は事実だからしょうがないね

隠そうとしてもムダ
0176デフォルトの名無しさん2014/03/16(日) 13:18:00.57ID:NcMQ7vHT
てか、会社次第では貴族待遇。
もっとも君らみたいなゴミには、そんな専門知識もスキルも期待できないからね
派遣ITの奴隷街道へまっしぐらだよ!
01771162014/03/16(日) 21:10:46.65ID:JTOubL74
>>175
おそらく>>172に対するレスですよね?
>>148の問題を変えて
挿入したい行数のみ指定し、(挿入したい)文字列(全角)を入力できるようにしたいのです
0178デフォルトの名無しさん2014/03/16(日) 21:11:42.66ID:+0w7Q/Uu
なにこれよくわかんない
0179デフォルトの名無しさん2014/03/16(日) 21:30:14.05ID:+0w7Q/Uu
ここで質問しても教授にバレバレだから
楽で出来ると持ったら大間違いで、結局は単位落とすだけなんだよなー
0180デフォルトの名無しさん2014/03/16(日) 21:57:22.91ID:wmlsbQd6
単位落とすだけならいいけれども‥‥
ネイチャーに出す人がいるとはさすがに‥‥
0181デフォルトの名無しさん2014/03/17(月) 02:16:04.45ID:q5oUANu3
>>177
行数と文字列を引数でもらって、処理をする
行数を引数でもらって、文字列は入力させて、処理をする

処理をするところは変更する必要ないのが分かればあとは簡単でしょ。
文字列の入力を読み取ることもできないレベルなら素直に単位を落としましょう。
0182デフォルトの名無しさん2014/03/17(月) 07:59:18.86ID:K/DZRQsK
>>177
一応このスレのルールなんで、
>>1のテンプレに従って依頼内容をもう一度書き直して
0183デフォルトの名無しさん2014/03/17(月) 08:06:26.25ID:HQUUHLVF
このスレのルールより社会のルールが優先
0184デフォルトの名無しさん2014/03/17(月) 08:56:25.05ID:VXhVqDC5
>>182
>>183

[1] プログラミング言語 C
[2] 指定したファイルに文字列を行数を指定して挿入するプログラム(ファイル名と行数、挿入する全角文字列を入力できるようにする)
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: Visual C++
 [3.3] 言語: C
[4] 期限: 3月18日
自分なりにやってみたのですが、うまくいきません。
もしよければ修正お願いします。
http://ideone.com/GuocSg
0185デフォルトの名無しさん2014/03/17(月) 12:01:18.21ID:K/DZRQsK
>>184
>行数を指定
というのは、
挿入する行番号を指定という意味か、
入力された文字列を挿入する回数という意味か、
どちらでしょうか?

それから、
>挿入する全角文字列を入力できるようにする
というのは、入力時に漢字を入力すればいいだけに思います。
もしかして、IMEのON/OFFをするという事ですか?
0186デフォルトの名無しさん2014/03/17(月) 16:03:35.24ID:q5oUANu3
>>184
>>148は非常に分かりやすかったんでしょ?
それを改造するに当たって、どこで困っているのかを書いたほうがはやいと思うよ。

必要な要素は>>148に含まれているように思うし。
一点問題を挙げるとすると、「指定したファイルに」挿入していないというところだけど、
そこは気にしてなさそうだし。
0187デフォルトの名無しさん2014/03/17(月) 16:27:48.56ID:qNLDgXjv
そんなことするよりさっさと単位諦めて退学届出したほうがいいと思うけど
0188デフォルトの名無しさん2014/03/17(月) 16:45:58.35ID:VXhVqDC5
>>186
>挿入する行番号を指定という意味か
そうです。頭から数えていって〜という意味です。

>挿入する全角文字列を入力できるようにする
なるほど。マルチバイト文字でも気にしなくて良いのですね。

>>187
おそらくこの問題で指定したファイルというのは
「a.txt」といういファイルをあらかじめつくっておき、そのファイル名を入力したら挿入できていればいいと思います。
0189デフォルトの名無しさん2014/03/17(月) 16:49:03.20ID:q5oUANu3
>>188
だからさ、>>148、、もういいや。ごめん
0190デフォルトの名無しさん2014/03/17(月) 17:06:21.32ID:qNLDgXjv
日本語の理解も不十分だったのか
ほんとに大学いってるのかな
0191デフォルトの名無しさん2014/03/17(月) 17:18:19.98ID:omlKKA03
>>188
28行目をcolに1を代入する文に直す。
32行目の出力フォーマットを%sから%s\nに代える。
これで意図する動作しないかな?
0192デフォルトの名無しさん2014/03/17(月) 17:20:49.26ID:qNLDgXjv
単位落とすの確定なのに答えてあげる優しい人がいるね
ダメ人間を育ててしまう人たちだ
0193デフォルトの名無しさん2014/03/17(月) 17:30:34.31ID:VXhVqDC5
>>190
すいません、なにをどうしたらいいのかよくわからないです

>>192
http://ideone.com/NjbLBb
変えてみました。
0194デフォルトの名無しさん2014/03/17(月) 17:36:52.16ID:qNLDgXjv
君、次の課題もそんな調子でここに質問する気?
奇跡的にここで得られた回答でコピペして単位もらえても
そのうち大きな課題出てまったく太刀打ちできなくなってコピペ論文で退学になる運命だから
ほんと諦めたほうがいい
0195デフォルトの名無しさん2014/03/17(月) 17:46:24.05ID:VXhVqDC5
なるほど

http://hissi.org/read.php/tech/20140317/cU5MRGdYanY.html
0196デフォルトの名無しさん2014/03/17(月) 17:50:38.20ID:qNLDgXjv
問題を解くにあたっての必要となるベースの知識が欠けているから丸投げするんでしょ
だったら反省して自分で基礎の勉強をまず始めなきゃ、
いつまでもここで解決できると想ったら大間違い
0197デフォルトの名無しさん2014/03/17(月) 17:51:22.29ID:wAxdNR9N
>>195
>>196はコピペを提出して退学になったクズらしいです
0198デフォルトの名無しさん2014/03/17(月) 17:54:42.64ID:feM2kHU8
退学になるわけないだろ
せいぜい半期の単位を全部取り消されるくらいだ
0199デフォルトの名無しさん2014/03/17(月) 18:13:38.30ID:qNLDgXjv
退学同然だと思うけどね
0200デフォルトの名無しさん2014/03/17(月) 18:14:37.58ID:PETpdFuR
と大口たたいて出て行った男性が10分後に血まみれになって帰ってきた
0201デフォルトの名無しさん2014/03/17(月) 18:33:48.39ID:GEI0z5hj
東大以外は行くだけ無駄らしいからさっさと退学した方がいいらしいよ。
0202デフォルトの名無しさん2014/03/17(月) 21:01:58.77ID:K/DZRQsK
>>184
http://ideone.com/UMpTXd

// と ### にはさまれているところを、その下のように直す
0203デフォルトの名無しさん2014/03/17(月) 21:12:27.01ID:q5oUANu3
いまさらだけどコードを最後まで読んでなかった恥ずかしい。
0204デフォルトの名無しさん2014/03/17(月) 21:28:01.12ID:848rfsax
大学もなにも個人勉強でないの?
なんにせよガンバレ
0205デフォルトの名無しさん2014/03/17(月) 21:38:15.19ID:qNLDgXjv
人に頼ってる時点でプログラマとしては3流
0206デフォルトの名無しさん2014/03/18(火) 13:31:43.10ID:JEryyi3Z
>>203
これだと行と列の両方になってないか?
0207デフォルトの名無しさん2014/03/18(火) 14:01:55.78ID:G12u9CCe
>>206
馬鹿が頑張って解決しようとしてもムダ
お前の知識は何も役にも立たん
かえって質問者を惑わせ迷惑させようとしているのかね
0208デフォルトの名無しさん2014/03/19(水) 00:02:02.64ID:+A6hJBSy
本当にまる2日以上寝てるとき以外はPCに向かってるんだな
やっぱりここで宿題やってもらったのがばれて留年した人か
0209デフォルトの名無しさん2014/03/19(水) 01:14:22.14ID:pgTJKr0l
マジでここでのコピペがばれて単位落として泡吹いた奴は多いと思うよ
それをこのスレで報告していないだけで
これだとまだまだ自滅していく学生は多いのかな
0210デフォルトの名無しさん2014/03/19(水) 03:31:39.66ID:K3WonBla
一泡吹かせた人なのか、はたまた泡を食った人なのか。というのはさておき。

そもそもコピペに対する罰が単位を落とす程度で済ませる学校が悪いよ。
半期単位失効というところもあるが、それでもやはりぬるいといわざるを得ない。
基本的に退学、譲歩して全期単位失効が妥当。

それでも俺は回答し続けるけどね。
0211デフォルトの名無しさん2014/03/19(水) 08:24:15.10ID:jJsViii8
プログラムの課題をちゃんと書き換えるからと一人に渡したら
5人ぐらいが丸々コピーして提出してた。
うち一人はソース内の名前+学生番号も書き換えてなかった。
0212デフォルトの名無しさん2014/03/19(水) 08:32:00.35ID:pgTJKr0l
ドカタになろうとしている奴らの精神的レベルはこの程度
このスレは削除したほうがいい
0213デフォルトの名無しさん2014/03/19(水) 22:52:55.01ID:uuz1UwWR
彼らは学士や修士号を獲て、SIerやコンサルに成ろうとしているんだから、
課題の丸投げや不都合な事実の隠蔽は社会へ出る前の適切な訓練。
技術者になろうとするアホは課題を自力で解こうとするし、
人生の春を失うどころかキャリアさえ失う。バレなければ問題はないし、
社会的に優秀だし輝かしい名誉まで手に入る。
0214デフォルトの名無しさん2014/03/19(水) 22:58:29.28ID:uuz1UwWR
このスレに出るレベルの課題如きでプログラマになれると考えているのは、
かなり頭が悪い大学生だろうし、恐らく行くだけの価値がない大学に通っている。
この程度の課題で十分だと考える教授陣営も、常春の人生を満喫して、
全身にダニが湧いていることは確実。
0215デフォルトの名無しさん2014/03/20(木) 00:57:34.00ID:bcMe3eGT
>>214
しかしながら、学生のときに学んでいるはずであろう素養を備えていないプログラマが多いのも事実。
つまり、この程度の課題すらこなせない学生相手にする教授陣営も大変だということだ。
ま、単位あげなきゃいいだけなんだけどね。
0216デフォルトの名無しさん2014/03/20(木) 07:53:22.37ID:S8YTEebr
>>172
カンマの妥当性判定が面倒だな
123,0000 は3になるんだろ、書きたくねぇw
0217デフォルトの名無しさん2014/03/20(木) 09:14:13.18ID:noBkfRX0
>>216
こういう嘘回答する奴は回答者にもなれない
低学歴野郎です
0218デフォルトの名無しさん2014/03/20(木) 14:03:23.20ID:VJY+yRA6
カンマはデータの区切りにもなるから、
数値の一部として見るのはやめた方がいいかも
0219デフォルトの名無しさん2014/03/20(木) 14:05:42.76ID:noBkfRX0
スレ違い誤爆だろageるなクズ
0220デフォルトの名無しさん2014/03/20(木) 15:41:50.02ID:VJY+yRA6
perlだとこんな感じか?
if ($str =~/(^\-{0,1}[0-9]+(\.[0-9]+|))/) {
 printf("%d %s\n", length($1), $1);
}
0221デフォルトの名無しさん2014/03/20(木) 16:22:16.70ID:bcMe3eGT
>>220
突っ込みどころ
-{0,1}
[0-9]
(\.[0-9]+|)
0222デフォルトの名無しさん2014/03/20(木) 16:24:49.80ID:bcMe3eGT
と思ったけど、最後のやつは意図を読み間違えていた。けどなんか気持ち悪いね。
0223デフォルトの名無しさん2014/03/20(木) 19:41:16.53ID:noBkfRX0
気持ち悪いのはお前の人生
スレ違いなのに勝手にPerlの話しだす迷惑野郎です
消えろ糞ニートが、ドカタにもなれないだろそんな協調性のない人間じゃ
0224デフォルトの名無しさん2014/03/20(木) 21:40:15.79ID:ANBdGt0P
こんな場所で宿題を解きたいって、どんな神経しているんだろう?
0225デフォルトの名無しさん2014/03/20(木) 21:47:58.23ID:cjvdZq4D
>>224
暇潰し以上の意味があるわけないだろ
0226デフォルトの名無しさん2014/03/20(木) 21:55:17.41ID:Hz3eyzKl
>>225
いや、あるよ。学生潰し。
0227デフォルトの名無しさん2014/03/20(木) 23:16:30.53ID:132ZA9Bu
公開オナニーを趣味にしている変態
0228デフォルトの名無しさん2014/03/21(金) 02:34:14.51ID:SpeQMCN6
>>223
そういうレスばかりするのはどういう気持ちから?
出題する側、出題される側、回答する側、およびそれぞれの過去を持ついずれか、はたまた無関係。
このどれなんだろう。
少なくとも朝昼夜の3回レスをしているわけだから、無関係ってことはないと思うんだよね。
0229デフォルトの名無しさん2014/03/21(金) 12:46:06.78ID:Z82+z0lX
公開オナニーする馬鹿がこの板から出ていけばこのスレは必要なくなる
0230 ◆QZaw55cn4c 2014/03/22(土) 23:22:48.72ID:p0VQZyPj
正直どうでもいい
0231デフォルトの名無しさん2014/03/23(日) 00:23:46.40ID:LwVxNWuC
公開オナニーをしてきた本人がこの一言
0232デフォルトの名無しさん2014/03/23(日) 01:08:12.22ID:xE/ua0sY
http://hissi.org/read.php/tech/20140316/KzB3N1EvVXU.html
http://hissi.org/read.php/tech/20140317/cU5MRGdYanY.html
http://hissi.org/read.php/tech/20140318/RzEydTlDQ2U.html
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html
これだけ常に2chに張り付ける余裕のある生活はある意味うらやましい
というかまじで16〜21日は寝る以外常に2chだな
0233デフォルトの名無しさん2014/03/23(日) 01:13:14.52ID:SSYwKPLD
春休みかあ、と思ったけど16日はさすがにまだ春休みではないか?
0234デフォルトの名無しさん2014/03/23(日) 02:02:35.42ID:MnyK3jKs
UFC 139 - マウリシオ・ショーグンvsダン・ヘンダーソン
https://www.youtube.com/watch?v=Rrzc6CXb_KY


UFC Fight Night 33 - マウリシオ・ショーグンvsジェームス・テフナ
https://www.youtube.com/user/UFC/feed?filter=2
0235デフォルトの名無しさん2014/03/23(日) 04:10:41.57ID:1sIXiNOp
>>230
本物のQZ?酉割れてるから本人かどうかわからないけど、
強制IDになっても自演しまくりの日々は続いてんの?
0236デフォルトの名無しさん2014/03/23(日) 04:11:20.10ID:BoG2P7C1
結果は人がいてもいなくても同じだ。
0237デフォルトの名無しさん2014/03/23(日) 10:52:33.39ID:SXKh7u/F
自己顕示欲さん仕事探せよ。
2ちゃんに引きこもっていても道は開けないぞ。
0238デフォルトの名無しさん2014/03/23(日) 12:38:14.86ID:wYZODv5U
このスレに職業プログラマの人ってどれくらいいるんだろうか

ちなみに俺はプログラマです
0239デフォルトの名無しさん2014/03/23(日) 12:50:39.71ID:YZGI/DRg
>>238
どこから職業プログラマなんだ?
社外には売らないけど、社内のシステム構築してる俺は対象か?
0240デフォルトの名無しさん2014/03/23(日) 13:04:04.97ID:TTHi9wBa
「勤務時間に業務としてプログラム開発をしている人」
じゃないかな?
0241デフォルトの名無しさん2014/03/23(日) 13:09:04.37ID:xE/ua0sY
社内システム開発にC使うの?
それとも趣味でCやるの?
どっちにしても謎だ
0242デフォルトの名無しさん2014/03/23(日) 13:12:39.07ID:TTHi9wBa
うちはCを使っている
もちろんそれ以外も使ってるけど
cronで動かしているものはほとんどがC
0243デフォルトの名無しさん2014/03/23(日) 13:44:31.07ID:GFwabcra
>>241
>社内システム開発にC使うの?

大量データを扱う技術系パッチ処理では、今でもCが使われているよ
いまだに勘定系でCOBOLが使われているのと同じ理由
0244デフォルトの名無しさん2014/03/23(日) 14:44:58.46ID:YZGI/DRg
>>241
C++ 使ってるが、何か?
C# の方が楽だけど、.NetFramework のインストールかいる環境とかあるとか色々面倒だったりするから。
あと、Linux 絡みは C だし。
0245デフォルトの名無しさん2014/03/23(日) 15:23:08.28ID:8jLtLR5A
社内利用ならスクリプトで十分。
C/C++は開発効率が悪い。
0246デフォルトの名無しさん2014/03/23(日) 15:58:19.92ID:qQgnZ21H
>>235
自演の定義はなんだい?
そのときの感性でトリップをつけたりつけなかったり適当にやっているだけだが、それでも自演というの?
トリップつきでもトリップなしでも問わず語りを紡いでいるだけで対話篇は意図していないんだが
それでも自演っていうの?

それなら違うよ、
0247デフォルトの名無しさん2014/03/23(日) 18:50:29.62ID:YZGI/DRg
>>245
お前んとこではそうなんだろうな
0248デフォルトの名無しさん2014/03/24(月) 07:51:01.01ID:30azwQW6
3/19 ID:pgTJKr0l 86レス1位
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.htm
3/23 ID:LwVxNWuC 51レス1位
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html

完 全 に 病 気

3/24: ID:iN+OyuMJ
http://hissi.org/read.php/tech/20140324/aU4rT3l1TUo.html
0249デフォルトの名無しさん2014/03/24(月) 10:07:51.73ID:iN+OyuMJ
病気なのはQZ
宿題がないと生きていけない
0250 ◆QZaw55cn4c 2014/03/24(月) 18:53:38.58ID:t653hGnB
>>249
最近はこっち方面で生きていますよー
http://toro.2ch.net/test/read.cgi/tech/1354393458/
http://toro.2ch.net/test/read.cgi/tech/1357191974/
http://toro.2ch.net/test/read.cgi/tech/1390525149/

http://toro.2ch.net/test/read.cgi/tech/1357191974/304 以来ご無沙汰しているけれども
0251デフォルトの名無しさん2014/03/25(火) 15:14:39.11ID:bvFcvrs8
QZのバ回答を当てにしてる奴は間違いなく無能プログラマ
0252デフォルトの名無しさん2014/03/25(火) 16:43:57.34ID:i+51dnCa
自分が生きていると貼ったスレの2/3がdat落ち。タイムマシンか何か?
0253デフォルトの名無しさん2014/03/25(火) 21:30:34.03ID:HPBQlIXi
>>251
誰もあてにしていないと思うよ体臭が強すぎて人目でQZってわかりやすすぎだし
0254デフォルトの名無しさん2014/03/26(水) 00:34:31.34ID:7XkCn4fS
https://pbs.twimg.com/media/BjjLKdhCAAESoyB.jpg
剽窃で停学&留年@スーフリ大学
0255デフォルトの名無しさん2014/03/26(水) 04:34:02.81ID:6J9B4gLY
いいね。回答者側は気楽なもんだ
0256デフォルトの名無しさん2014/03/26(水) 10:53:28.33ID:EsehAkFD
宿題投げる奴が何故学生続けるか理解できない
0257デフォルトの名無しさん2014/03/26(水) 15:57:41.60ID:8jubPs5x
暇つぶしのネタを提供してくれてる
0258デフォルトの名無しさん2014/03/28(金) 03:15:42.72ID:zzqObK8g
>>254
法学部ですら退学にはならんということにビックリ
0259デフォルトの名無しさん2014/03/28(金) 21:10:37.31ID:QdKQU949
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&amp;リンク):
10000以下の自然数のうち素因数分解を行ったときにその因子の数が最多となる数を求め,その数,因子の数,素因数分解の結果を表示するプログラムを作成して下さい.

出力形
8192 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
因子数:13

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 3月30日まで
[5] その他の制限:
ヒントを教授に聞きに行ったら自分で考えろと一蹴されました
よろしくお願いします
0260デフォルトの名無しさん2014/03/28(金) 21:32:30.39ID:fFnbRaxR
>>259
それが正解だろ。小さい数(2か3)が有利。
ほぼ2で良いが、3もあり得る。
MAX次第。
0261デフォルトの名無しさん2014/03/28(金) 22:07:28.79ID:iffS8S5F
エラトステネスの篩みたくやってけば良いんじゃない?
0262デフォルトの名無しさん2014/03/28(金) 22:12:20.11ID:fFnbRaxR
Nに対し、N >= 2^nとなる最大のnを見つける。
N >= 2^(n-1) * 3 であれば、2解。
0263デフォルトの名無しさん2014/03/28(金) 22:45:22.88ID:yytRCpay
10000ぐらいならテーブル化しちゃえ。
0264デフォルトの名無しさん2014/03/28(金) 22:50:49.51ID:ETOIpidC
QZ糞コード連発
学生は泡吹くレベル
0265デフォルトの名無しさん2014/03/28(金) 22:54:27.99ID:zWFnNM9i
>264 は留年&退学
0266デフォルトの名無しさん2014/03/28(金) 23:04:34.85ID:QdKQU949
>>259ですが
8192 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
因子数:13
をもとめるソースコードが知りたいです
0267デフォルトの名無しさん2014/03/28(金) 23:21:48.83ID:fFnbRaxR
ギジコード

fnc(N) {
for(n=1;;n++) if( N < pow(2,n) ) break;
n--;
prt(n,0);
n--;
if( N < pow(2,n)*3 ) prt(n,1);
}


prt(a,b){
2をa個、3をb個出力
}
0268デフォルトの名無しさん2014/03/29(土) 14:19:08.81ID:Utjmo3gz
>>259
お前俺と同じ大学かよww
教授にチクっとくわ
0269 ◆QZaw55cn4c 2014/03/29(土) 15:13:19.22ID:T0jzXlJE
>>273
Hi!
0270デフォルトの名無しさん2014/03/29(土) 23:47:47.72ID:3XiSwePB
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):入力した1桁の整数を行数と解釈し、その後、その行数分だけキーボードから入力された
文字をディスプレイに出力する。
[条件1]整数(行数)入力にはgetchar関数を使用する。
[条件2]行数入力後の文字入出力にはgetchar関数とputchar関数を使用する。
[条件3]入力された整数(行数)が、不正(整数でないまたは2桁以上の整数)の場合は、"Input error"と表示する。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限:2014/03/30
0271デフォルトの名無しさん2014/03/30(日) 09:28:12.90ID:xXpv5PSO
#include <ctype.h>
main()
{
    int   first, next, i;

    first = getchar();
    next = getchar();
    if(! isdigit(first) || isdigit(next)) {
        printf("Input Error\n");
        exit(1);
    }
    for(i = 0; i < first - '0'; i++) {
        putchar(next); putchar('\n');
    }
}
0272デフォルトの名無しさん2014/03/30(日) 10:31:02.30ID:6grQiit6
>>217
7と答えるべきなのか?
仕様が曖昧だなぁ・・・
0273デフォルトの名無しさん2014/03/30(日) 13:06:59.67ID:6RO/tmV/
>>272
単位落として留年する馬鹿
教授は観てるぞー
0274デフォルトの名無しさん2014/03/30(日) 15:35:22.26ID:o9ag65ui
期末になってこのレベルだったら単位を落としてやり直すべき
0275デフォルトの名無しさん2014/03/30(日) 17:46:51.19ID:4OPeePmh
>>259

あまりきれいではないけど、誰もやらないので一応参考に

http://ideone.com/LWro3R
0276デフォルトの名無しさん2014/03/30(日) 18:09:16.83ID:6RO/tmV/
単位落とし記念カキコ
0277デフォルトの名無しさん2014/03/31(月) 13:11:48.78ID:qra824CY
期限に間に合ったのか?
0278デフォルトの名無しさん2014/03/31(月) 19:20:39.49ID:aH5oPSHV
何この小保方スレッドw
0279デフォルトの名無しさん2014/03/31(月) 21:37:21.57ID:YuwcCGee
博士論文が2chのコピペ
0280デフォルトの名無しさん2014/04/03(木) 01:54:55.16ID:GyJlUgSJ
まじできちがいじみてる
0281デフォルトの名無しさん2014/04/03(木) 04:46:38.64ID:3kW14kq3
>>267
よくわからんが、10のとき何が出るの?
0282デフォルトの名無しさん2014/04/03(木) 13:56:38.91ID:GyJlUgSJ
10以外出ると不可
0283デフォルトの名無しさん2014/04/10(木) 19:49:16.30ID:o2rx8JxT
[1] 授業単元:プログラミング基礎II
[2] 問題文(含コード&リンク):
課題:
 double値を10進数表示せよ。
対象:
 C言語
制約:
 ・出力にはfputc()またはputc()またはputchar()を使うこと。
 ・printf系の書式変換を一切使ってはならない。
 ・C標準ライブラリ以外のライブラリの使用は禁止する。
 ・system()による外部プロセスの利用も禁止する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2010
 [3.3] 言語: C
[4] 期限: 2014年05月31日まで
[5] その他の制限: プログラミング基礎I で基本的なところ(入門書1冊丸々程度)は終了してます
0284 ◆QZaw55cn4c 2014/04/10(木) 21:27:04.03ID:MkZSgWPI
>>283
http://codepad.org/1LJBwoSZ
02852832014/04/10(木) 21:39:20.95ID:o2rx8JxT
>>284
ありがとうございます
0286デフォルトの名無しさん2014/04/10(木) 21:44:54.82ID:MSa8YAKk
それ
f(0.00031415926, 0);
はどんな結果を返すかな?
0287デフォルトの名無しさん2014/04/10(木) 22:03:04.12ID:4bNYm9hY
>>286
痛いところを‥‥
EPSILON をてきとーにいじらないといけないですね、まあ小ネタってことで
続きはお題スレにて
0288デフォルトの名無しさん2014/04/10(木) 22:05:31.19ID:fuOgayzR
>>286
\n しか出さないな。
float.h を include して、EPSILON を DBL_EPSILON に変えればまぁいいんじゃない?

しかし、
if (x >= 10.0) {
 f(x / 10.0, n + 1);
 return;
}
これは流石に駄目だと思う。

問題の処理系においての double のフォーマットを明示しなかった出題側も手落ちなんだけど…。まぁ難しいか。
IEEE 754 と仮定して、何 bit かは sizeof で勝手に判断する分には問題は無いと思うんだが。
0289デフォルトの名無しさん2014/04/10(木) 23:13:09.44ID:YVcrTM8f
10の割り算で制約かけるなんて無理じゃないの?

http://ideone.com/KrJX4u
0290デフォルトの名無しさん2014/04/10(木) 23:14:53.98ID:d5XuDKUS
そもそも小数2進数を小数十進数でスパッと表せるわけがないしな……
桁数指定しないと無理ゲーだろ
0291デフォルトの名無しさん2014/04/10(木) 23:57:30.77ID:fuOgayzR
dtoa(非標準ライブラリ)の実装を読んでみる方がいいじゃない。
netlib は良く出来ているらしいし。

>>289
お題は printf 禁止なんだが…。
0292デフォルトの名無しさん2014/04/11(金) 00:27:35.68ID:Vf1XqNZR
これアリ?ナシ?
ttp://ideone.com/Ir8Wdl
VCとGCCで挙動違うでやんの。
0293デフォルトの名無しさん2014/04/11(金) 00:30:18.09ID:nkEZv0su
>char Z[L] = "\0";
>char B[L] = "\0";
配列の限界越えているぞ
0294デフォルトの名無しさん2014/04/11(金) 00:32:09.99ID:nkEZv0su
いや、超えてないか
0295デフォルトの名無しさん2014/04/11(金) 00:35:03.86ID:GvHlzSSy
期限まで1か月以上あるんだし焦る必要はない
0296デフォルトの名無しさん2014/04/11(金) 00:38:54.83ID:Vf1XqNZR
>>293-294
配列の頭がポインタなら超えてる。ちゃんと領域を確保してそれにコピーしてるなら超えてない。
俺もそれ見てあれ?って思ったんだけど、配列だから大丈夫だと思うんだけど。どうだろう?????
普段からこういう書き方してるが、普段はC++ライクなんだよな〜〜。
0297デフォルトの名無しさん2014/04/11(金) 01:46:09.36ID:nkEZv0su
領域確保とか面倒いし文字列とか string クラス使っちゃうしな
0298デフォルトの名無しさん2014/04/11(金) 02:23:18.29ID:Vf1XqNZR
そうそう。今回もどうやってMallocしないで書こうか苦心したんだよ・・・。Orz
0299デフォルトの名無しさん2014/04/11(金) 03:40:24.49ID:QXXBVWPw
IEEE754だっけ
指数部とか仮数部とか眺めるだけじゃ全然わけわからんなこれw
http://ideone.com/huYQ8d
0300デフォルトの名無しさん2014/04/11(金) 04:14:05.22ID:Vf1XqNZR
基本的に少数以下は1/nの足し算なので簡単に誤差が出る。
10進数の少数表現と言うのも規格化されてるんだけど、新しすぎて対応してないはず。
C++は暫定的に組み込み可能なクラスで対応するようだ。そのうち。
0301デフォルトの名無しさん2014/04/11(金) 04:15:10.10ID:Vf1XqNZR
1/(2^N)だったかもしれん。
0302デフォルトの名無しさん2014/04/11(金) 04:59:03.30ID:Vf1XqNZR
あぁ、この問題って消費税関係か。1.08倍ってすごいきりが悪いからな。
金融の話だったら、ハードに頼るな。ってとこだろう。
文字列の数字の四則演算を実装するのが結果的に早い気がする。
0303デフォルトの名無しさん2014/04/11(金) 06:19:44.07ID:5I17xPmm
>>286
>>288
改良版だhttp://codepad.org/DuNxC4mA

>>288
>これは流石に駄目だと思う。
完了版では処理系の double -> int 切捨てルーチンに丸投げした double x; (int)x
0304デフォルトの名無しさん2014/04/11(金) 13:00:39.99ID:wnV3IcE/
>>303
前の版もそうだけど出力が1/10になってない?
0305デフォルトの名無しさん2014/04/11(金) 14:53:37.64ID:5leeoZfo
http://ideone.com/jWOJDC
昨日作ってたけど先越されてたのでほっといたけどレス伸びてたのでせっかくだから貼る
小数点以下6桁表示決め打ちのウンコです
0306 ◆QZaw55cn4c 2014/04/12(土) 12:46:01.37ID:86gOYBKT
>>304
ご指摘感謝
今回はアイディア倒れに終わっちまった‥‥

>>283
訂正します
http://codepad.org/5zbOAPWc
0307デフォルトの名無しさん2014/04/15(火) 01:46:58.12ID:S0P14nXJ
>>266
http://ideone.com/80gDLu
0308デフォルトの名無しさん2014/04/15(火) 16:19:28.76ID:+gsaL0ih
[1] 授業単元:基礎プログラミング
[2] 問題文(含コード&amp;amp;リンク):入力した数が奇数の場合表示する。入力した奇数の和が20を超えるまで繰り返すプログラム。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 2010
 [3.3] 言語:C++
[4] 期限:4月18日
0309デフォルトの名無しさん2014/04/15(火) 18:09:39.29ID:+gsaL0ih
↑自己解決しました
0310デフォルトの名無しさん2014/04/19(土) 02:38:29.25ID:JqCVcRIk
>>283
ttp://ideone.com/pcIxc3
0311デフォルトの名無しさん2014/04/20(日) 15:44:01.96ID:5MmzIGIw
shitumo
0312デフォルトの名無しさん2014/04/20(日) 16:19:00.77ID:4j91Sc/0
test
0313 ◆QZschizo.ptH 2014/04/20(日) 16:19:52.37ID:4j91Sc/0
test
0314デフォルトの名無しさん2014/04/23(水) 21:05:40.39ID:I5h19qdV
わからんちん
http://gyazo.com/88c216f64dbaebe801e4f519c0d2dcc2
0315デフォルトの名無しさん2014/04/23(水) 21:39:45.87ID:bWoLrxMT
>>314
static intを使うと
http://ideone.com/vn92Ur
グローバル変数を使うと
http://ideone.com/GNdex3

staticとグローバル変数くらいは使えるようにならないと後で辛くなると思う。
0316デフォルトの名無しさん2014/04/24(木) 02:07:15.99ID:JIk666B7
それ見てクワイン思い出した

http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AF%E3%82%A4%E3%83%B3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

要するに自分自身を出力するプログラムだけど、そうではなくて中でプログラムをジェネレート
してからコンパイルするっていうアイディアがSTLだったんだよな
0317デフォルトの名無しさん2014/04/28(月) 15:52:23.27ID:k1ZU+eWD
[1] 授業単元:プログラミングII
[2] 問題文(含コード&amp;リンク):
課題:
  #include < stdio.h >
int main (void){
int i;
float taiju[10]={58.6,65.2,74.4,46.0,52.8,62.4,55.0,51.2,54.8,48.4};
float total,average;
total=0;

for(i=0;i<10;i++){
total+=taiju[i];
}
average=total/10;
printf("Total=%.1f\n",total);
printf("Average=%.1f\n",average);
return 0;
このプログラムを関数にするにはどこをどうしたらいいですか?
}


 
0318デフォルトの名無しさん2014/04/28(月) 16:09:36.15ID:PJcE9AjA
for(i=0;i<10;i++){
total+=taiju[i];
}
average=total/10;
0319デフォルトの名無しさん2014/04/28(月) 16:28:41.96ID:tez0BZs4
>>317
http://ideone.com/EYr66x

題意は参照渡しが出来るかを試していると予想。
取り敢えず、参照渡しを覚える事を推奨する。
0320デフォルトの名無しさん2014/04/28(月) 16:35:48.86ID:k1ZU+eWD
>>319
回答ありがとうございます。
渡しの部分が分からなかったのでしっかり覚えたいと思います。
アドバイスありがとうございます。
0321デフォルトの名無しさん2014/04/28(月) 17:23:22.28ID:vBB1ZBuL
>>317
俺ならこう書き直すな……
コメントはしっかり付けたから、
頑張って意味を読み取ってくれ
http://codepad.org/Lk4gO1qY
0322デフォルトの名無しさん2014/04/28(月) 17:54:09.16ID:k1ZU+eWD
>>321さん
sizeof関数まだ習ってないんですが、sizeof使わない場合はどうなるんですか?
なんども聞いてすいません。
0323デフォルトの名無しさん2014/04/28(月) 18:06:47.35ID:vBB1ZBuL
>>322
別に配列サイズを別途与えてもいいけど、
sizeofを使って割り算で出すやり方がC言語では定番だということ
(学習用だからまだ習ってないsizeofは使えないんです><ってことなら「10」と決めうちしてもOK)

そもそも、計算させる際に配列サイズをベタ書きする方がおかしいわけで
(C言語なら#defineで定数宣言するといった分かりやすい手段があるのに)
0324デフォルトの名無しさん2014/04/28(月) 18:31:47.37ID:2XbObvdB
[1] 授業単元:プログラミング基礎
[2] 問題文
text.txtというファイルに以下のような個人情報が保存されているとする。これを読み込み、
実行例のように画面に出力するプログラムを作成しなさい。
ヒント: 氏名の読み込みでは"name: %s\n"のような変換仕様を用いると良い。
▼text.txtの内容
name: Ichiro
age: 20
weight: 65.5
e-mail: [email protected]
▼実行例
氏名: Ichiro
年齢: 20
体重: 65.5
Eメール: [email protected]

ご教示願います
0325デフォルトの名無しさん2014/04/28(月) 18:47:13.71ID:vBB1ZBuL
>>324
え、ヒントの通りじゃね?
要するにfscanf関数使えってことでしょ?

fscanf関数の使用例:
http://hitorilife.com/fscanf.php
http://www.c-tipsref.com/reference/stdio/fscanf.html
0326デフォルトの名無しさん2014/04/28(月) 19:11:16.56ID:vBB1ZBuL
とりあえず模範解答。fscanfの書式指定が奇妙に見えるだろうが、
こうしないと名前に半角空白が入っていた場合途中で切れるからしゃーない
(例:「name: Taro Yamada」にしてた場合、「name: %255[^\n]\n」だと「Taro」までしか読まれない)
http://codepad.org/VbsaV5Qs
0327デフォルトの名無しさん2014/04/28(月) 19:12:47.85ID:vBB1ZBuL
3行目ミスったw
× (例:「name: Taro Yamada」にしてた場合、「name: %255[^\n]\n」だと「Taro」までしか読まれない)
○ (例:「name: Taro Yamada」にしてた場合、「name: %255s\n」だと「Taro」までしか読まれない)
0328デフォルトの名無しさん2014/04/28(月) 19:45:01.50ID:CAFKzRDO
>325
>326
ありがとうございます。
おかげさまで解決できました。
0329 ◆0qAv26otVI 2014/04/30(水) 01:36:50.87ID:IeCzK9WS
100000000000000 16384
10000000000000 8192
1000000000000 4096
100000000000 2048
10000000000 1024
1000000000 512
100000000 256
10000000 128
1000000 64
100000 32
10000 16
1000 8
100 4
10 2
1 1
0.1 0.5
0.01 0.025
0.001 0.0125
0.0001 0.00625
0.00001 0.003125
0.000001 0.0015625
0.0000001 0.00078125
0.00000001 0.000390625
0.000000001 0.0001953125
0.0000000001 0.00009765625
0.00000000001 0.000048828125
0.000000000001 0.0000244140625
0.0000000000001 0.00001220703125
0330デフォルトの名無しさん2014/04/30(水) 09:28:52.34ID:f1RvcKlk
>>329
URRで良いやん。
0331 ◆0qAv26otVI 2014/04/30(水) 12:18:34.26ID:IeCzK9WS
2048個の配列に初期値入れておけば、あとは10進の足し算でやって下さい。
>>言葉足らずでした。
0332デフォルトの名無しさん2014/04/30(水) 13:15:50.11ID:BnmcVkVe
>>331
で、何の意味があるの?
それが10進数の電卓作るときに役だつの?
0333 ◆0qAv26otVI 2014/05/01(木) 01:49:32.67ID:kg1PsNpN
>>283
#include <stdio.h>
#include <math.h>
struct str_aa {double a; int b; };
struct str_aa aa[2][1024] = {
1.0000000000000000,+0,
5.0000000000000000,-1,

4.4501477170144028,-308,
2.2250738585072014,-308,
1.1125369292536007,-308,
1.0000000000000000,+0,
2.0000000000000000,+0,

4.4942328371557898,+307,
8.9884656743115795,+307};

int main()
{
union bb_str {double a; int b[2];};
union bb_str bb;
int j;

bb.a = 1.4272476927059599e+45;
j = ((bb.b[1] >> 20) & 0x7FF) - 1024;
printf("%08X %08X %d\n", bb.b[1], bb.b[0], j );
printf("%.16fe%+04d", aa[1][j+1].a, aa[1][j+1].b );

return 0;
}
0334デフォルトの名無しさん2014/05/01(木) 04:03:47.77ID:QEsY+r5w
お、なんか魔法使い来たぞ
0335>>3332014/05/01(木) 07:35:46.70ID:kg1PsNpN
これは完成版ですか? 少数以下を16桁に変更させて頂いてOK? >>305
後、ほめられたのでおまけ:
#include <stdio.h>
#include <math.h>
void putdouble(double d); // >>305
int main(void){
int i;
double a = 123.4e+20;

putdouble(a);
a = 1.0;
for(i=0; i<1024; i++){
printf("%.16e\n", a);
a /= 2.0;
}
a = 1.0;
for(i=0; i<1024; i++){
printf("%.16e\n", a);
a *= 2.0;
}

return 0;
}
03363332014/05/04(日) 21:58:51.85ID:T5QjrG4C
http://codepad.org/
TixBAUrj
誰か見て、感想お願いします。
0337デフォルトの名無しさん2014/05/04(日) 22:49:18.30ID:Ryn/of2a
補完
http://codepad.org/TixBAUrj
0338デフォルトの名無しさん2014/05/05(月) 20:17:58.66ID:KB14phN5
俺ならこうするぜ。(負数は未対応なんだぜ)

#include <math.h>
void disp(double);
main()
{
 double d = 123.456;
 disp(d);
}

void disp(double d)
{
  int i,n;
  double x = pow(10, ((int)log10(d)));

  for(i=0; i<10; i++) {
    n = d / x;
    putchar('0' + n);
    if(x == 1.0) putchar('.'); /* この比較はよくないぜ */
    d = fmod(d, x);
    x /= 10.0;
  }
}
0339デフォルトの名無しさん2014/05/07(水) 20:30:29.82ID:5dQlzvFd
>>283
http://codepad.org/fnwI0ZPh
0340デフォルトの名無しさん2014/05/07(水) 22:15:57.26ID:ZBYNUAwB
>>283 C++
http://codepad.org/XALjtgEa
>>339
03413392014/05/07(水) 23:01:40.00ID:5dQlzvFd
結果が大きすぎた。10倍する前にキャリーを足すのではなく10倍してから足してくれ。すまんかった
03423402014/05/11(日) 19:30:57.09ID:aKdUIV9w
// wk &= 0x7ff0 0000 0000 0000;
wk &= 0x7ff0000000000000LL;

// longlong.ull += carry; //
// longlong.ull *= 10; //
longlong.ull *= 10; //
longlong.ull += carry; //

/* 指数が 0 〜 52 なら表示する */
// if(data_sisue >= 0 && data_sisue < 53){
/* 指数が 0 〜 48 なら表示する 48 + 1023 = 0x42F */
if(data_sisue >= 0 && data_sisue < 49){
&nbsp;&nbsp;&nbsp;&nbsp;case_seisueWithSyousue();
&nbsp;&nbsp;}
03433392014/05/12(月) 02:37:45.75ID:MKmfYHpq
>>340
153: if(flg == 0){
154: //if(longlong.ul2[1] == 10){ //下から1.0が上がってきた
155: // printf("kuriagattaze ");
156: // ++(data_seisue[0]);
157: // longlong.ul2[1] = 0;
158: //}
159: //disp_seisue();
160: printf(".");
161: flg = -1;
162: }

190: }
191: }
new disp_seisue();
192:}
0344デフォルトの名無しさん2014/05/14(水) 01:32:28.65ID:Qd/1lT4o
http://gyazo.com/d95028bdea8af92bad1729ad221b1130
これわからん・・。
0345デフォルトの名無しさん2014/05/14(水) 01:36:59.56ID:mdmP4rsg
>>344
マルチポストはいけないよ


プログラミングのお題スレ Part3
http://toro.2ch.net/test/read.cgi/tech/1390525149/682-683

682 名前:デフォルトの名無しさん[] 投稿日:2014/05/14(水) 01:31:14.84 ID:Qd/1lT4o
http://gyazo.com/d95028bdea8af92bad1729ad221b1130

683 名前:デフォルトの名無しさん[] 投稿日:2014/05/14(水) 01:33:37.97 ID:Qd/1lT4o
>>682

わからん
0346デフォルトの名無しさん2014/05/14(水) 01:38:48.44ID:Jr7baMzo
{}
03473402014/05/15(木) 00:10:50.74ID:4j/hvYC8
//void compute(){
 /* 指数が 0 〜 52 なら表示する 52 + 1023 = 0x433 */
// if(data_sisue >= 0 && data_sisue < 53){
 if(data_sisue >= -52 && data_sisue <= 52){
  case_seisueWithSyousue();
}

//void case_seisueWithSyousueSisueLE11(){
 if(data_sisue >= 0)
  longlong.ull <<= data_sisue;/* 指数分(0 〜 11)だけ左シフト */
 else
  longlong.ull >>= -data_sisue;/* 指数分(-52 〜 -1)だけ右シフト */

//void disp_seisue(){
 if(!data_keta)
  printf("%d", 0);
 for(int i = data_keta - 1; i >= 0 ; i--)
  printf("%d", data_seisue[i]);
>>いじょ Good bye.
0348デフォルトの名無しさん2014/05/16(金) 18:10:02.95ID:LyHYCBhP
[1] 授業単元:基礎プログラミング
[2] 問題文(含コード&amp;amp;リンク):
wavファイルを読み込みテキストデータに変換、そのデータをフーリエ変換したものを画面に出力
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語:C
[4] 期限:5月19日
0349デフォルトの名無しさん2014/05/16(金) 18:13:43.46ID:mI+a74mQ
スペクトラムアナライザのフーリエ部分だけでいいのか?
全体記述するとかなり巨大になるぞ
0350デフォルトの名無しさん2014/05/16(金) 19:30:32.75ID:a2G3KqVr
そのフーリエ変換はライブラリ使ってもいいのか?
「基礎プログラミング」という名前から察するに
WAV読み込みすら課題として難しすぎる気がする……
0351340 ◆0qAv26otVI 2014/05/17(土) 22:37:14.10ID:MpfkVryu
>>283
http://codepad.org/THT9olE7
0352デフォルトの名無しさん2014/05/18(日) 06:03:30.65ID:UqGH8+5G
>>348
ライブラリ使用可じゃないと時間的に難しいぞ
>>350氏がいうようにwavの読み込み、解析でも結構な手間だぞ
0353デフォルトの名無しさん2014/05/18(日) 06:38:29.37ID:7v87Hd7x
先生が口頭や板書でヒントとか出してることもあるだろうけど
だいたいこのスレで質問する質問者どもはそういうのを聞いてなかったり見逃してたりするんだろうね
0354デフォルトの名無しさん2014/05/18(日) 06:50:32.25ID:7v87Hd7x
wav抽出だけならノウハウがネット上にいくらでもあるし
http://marupeke296.com/DS_No2_GetSoundDataFromWav.html

フーリエ変換もFFTのコード適当に拾ってくりゃいいんじゃないの
0355デフォルトの名無しさん2014/05/18(日) 08:36:41.49ID:OmC98YTB
OSとコンパイラが指定されているからdoubleの内部表現決め打ちでいいわけか
03563402014/05/18(日) 10:19:53.72ID:BFkwxb50
3.14 x 1/2048 でも10進表現OKか
0357デフォルトの名無しさん2014/05/18(日) 11:03:53.27ID:ICbJFvwM
動かしてないけど内容的には

http://www.geocities.jp/horie_ryu/page01.html

とかでええんでねぇの
0358デフォルトの名無しさん2014/05/18(日) 11:11:40.83ID:untGUeAU
>>357
まあそうなんだろうけど、FFTじゃなくてDFTって時点で……
>>353無視するならそもそもFFTを自分で書かないけどな
0359デフォルトの名無しさん2014/05/18(日) 14:26:18.43ID:T4xlj6Hv
1] 授業単元:プログラミングII
[2] 問題文(含コード&amp;amp;リンク):
3つの整数型一次配列vec1,2,3の先頭アドレスに要素数nを与えると、2つの配列vec1とvec2のそれぞれの和を計算し、vec3に代入する関数getarraysumを作成する。main関数では、5つの要素をもつ変数型配列vec1,2,3を定義する。
vec1は1,2,3,4,5で初期化し、vec2は10,20,30,40,50で初期化する。そして、作成した関数を呼び出し計算を行い、その結果で得られたvec3の値を表示する。
表示例
vec3[0]=11
vec3[1]=22
.
.
.
これをポインタにするとどうなりますか?
ご教授お願いします。
0360デフォルトの名無しさん2014/05/18(日) 14:45:33.15ID:H/JD4vj2
どこをポインタにしたいんだ
0361デフォルトの名無しさん2014/05/18(日) 14:59:18.40ID:T4xlj6Hv
>>360
vec3です。
0362デフォルトの名無しさん2014/05/18(日) 15:26:21.75ID:lWjJVkd2
>>359
C/C++は知らないので馬鹿な質問なのかも知れませんが、
「3つの整数型一次配列vec1,2,3の先頭アドレスに要素数nを与えると」
これって普通の表現ですか。
0363デフォルトの名無しさん2014/05/18(日) 15:29:02.99ID:mmOjks5D
>>362
ナイス突っ込み
0364デフォルトの名無しさん2014/05/18(日) 15:33:00.30ID:DIHfwpMS
メモリポインタにしたいのか
0365デフォルトの名無しさん2014/05/18(日) 15:38:31.73ID:P2EXL/Ge
コピペミスか出題者の日本語能力不足か分からないけど
三つの整数型の一次元配列vec1,vec2,vec3と、その要素数nを与えると
だろうね言いたいのは
0366デフォルトの名無しさん2014/05/18(日) 15:45:28.06ID:P2EXL/Ge
表示例が配列になってるのをポインタにしたいってことですかね
例
*(vec3+0)=11
0367デフォルトの名無しさん2014/05/18(日) 17:32:32.13ID:d9R6JRvl
>>350>>352-354
WAVの読み込みは手間だけど、離散フーリエ変換はFFTじゃないDFTなら問題なくね?
サンプル数(ウィンドウサイズ)分のforループを二重に回せば演算時間はともかく変換はできる。
0368デフォルトの名無しさん2014/05/18(日) 19:32:38.23ID:untGUeAU
>>359
とりあえず「ご教示」な

解答としてはこんな感じ?
http://codepad.org/jfTHHfCc
0369デフォルトの名無しさん2014/05/18(日) 22:48:38.01ID:T4xlj6Hv
>>368
回答ありがとうございます。
自分で考えてもう一度解いてみます。
0370デフォルトの名無しさん2014/05/19(月) 00:56:39.26ID:UDyOnYKb
>>367
いずれにせよスレのレベル超える難易度の宿題だよな
0371デフォルトの名無しさん2014/05/19(月) 12:29:53.17ID:ozr2de0w
[1] 授業単元:プログラミング演習2
[2] 問題文:
malloc とrealloc を用いて、繰り返し入力された文字列を連結していく。文字列
quit が入力されたとき繰り返しを終了してできあがった文字列を表示するプログ
ラムを作成
[3] 環境
 [3.1] OS:Windows 8
 [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
 [3.3] 言語:C
[4] 期限:5月20日
http://pastebin.com/0BLX3vfH
上記のように作ってみたのですが、正常に動作していないようです。
30文字程度入力するとデータが飛ぶのでreallocあたりかと思うのですが、どこをどうすればいいのかわかりません。
よろしくお願いします。
0372デフォルトの名無しさん2014/05/19(月) 12:34:26.86ID:ozr2de0w
後付けで申し訳ありません。
getchar()にて一文字ずつ付け足す方式の回答はできているのですがfgetsが大好きなのでできる限り改変なしで手直しかアドバイスをいただければ幸いです。
0373デフォルトの名無しさん2014/05/19(月) 12:41:47.58ID:mxK7K6eG
>>372
「好き」って一体何なんだよ……
だいたいソースコード中に「30」って数字が入ってるじゃねーかw
0374デフォルトの名無しさん2014/05/19(月) 12:53:35.16ID:ozr2de0w
途中で気付いて入力制限を無くしたバージョンを作ったのですが、上のコードが動かないことが気持ち悪くて質問させていただきました。
また、"30文字程度"というのは一度にではなく合計でです。
0375デフォルトの名無しさん2014/05/19(月) 13:15:42.07ID:wBsls3I6
>>371
ざっと見ただけだけど
reallocが返すアドレスをmainまで返してないからじゃない?
0376デフォルトの名無しさん2014/05/19(月) 13:29:15.87ID:yPaRcm/E
そうね。ポインタの使い方を間違ってる
str をポインタで渡すか
reallocで確保された ptr 値を返却して main 関数内で str に代入するかしないと
0377デフォルトの名無しさん2014/05/19(月) 16:32:02.51ID:8OgLlmDp
>>371
my_strcat();みたいな処理をmainのwhile内に書いたほうが悩まずに済むと思う
0378デフォルトの名無しさん2014/05/19(月) 17:35:06.77ID:8OgLlmDp
>>371
> 上記のように作ってみたのですが、正常に動作していないようです。
> 30文字程度入力するとデータが飛ぶのでreallocあたりかと思うのですが、どこをどうすればいいのかわかりません。

これは、
 1. 28行目のfgetsで30bytesからあふれた分が次回のfgetsで拾われる
 2. 8行目で強引に終端文字を\0 にしているから文字欠けが生じている
の2つが重なったのが原因だと思います。

http://ideone.com/Ff4R0x
みたいにすれば良いかも。
0379デフォルトの名無しさん2014/05/19(月) 17:58:07.75ID:8OgLlmDp
ちなみに、realloc();が失敗した場合元のブロックは解放されたり移動されたり
しないそうなので、strのために確保したメモリは注意が必要。
0380デフォルトの名無しさん2014/05/19(月) 18:16:14.08ID:ozr2de0w
>>375
>>376
関数とポインタについての理解が不十分だったようです。ご指摘ありがとうございました。
>>378
整ったコードをありがとうございます。参考にさせていただきます。
また、起きた事象の解説までしていただき恐れ多い限りです。
今夜はぐっすり眠れそうです。重ねてお礼申し上げます。
0381デフォルトの名無しさん2014/05/19(月) 19:14:04.33ID:8OgLlmDp
>>378
は *str = '\0'; をしていなかった。
整っていないし…。
修正を入れた版 → http://ideone.com/X4p9LL
0382デフォルトの名無しさん2014/05/21(水) 01:52:36.45ID:P13qVQqw
[1] 授業単元: Cプログラム
[2] 問題文: 国際ダイヤル通話料金システムは次のようになっている
�@昼間料金(月曜日〜金曜日の午前8時から午後7時まで)
最初の1分まで300円
1分経過後6秒ごと15円
�A夜間・休日割引料金(月曜日〜金曜日の午後7時から午後11時まで、および休日(土曜日、日曜日、祝日、正月三が日、振替休日)の午前8時から午後11時まで)
最初の1分まで240円
1分経過後6秒ごと12円
�B深夜割引料金(日曜日〜土曜日の午後11時〜翌朝の午前8時まで)
最初の1分まで180円
1分経過後6秒ごと9円

通話時間と料金システムの区分(1~3)を入力して、それに該当する通話料金を計算して、出力するプログラムを作成せよ

例
通話時間を入力せよ(分 秒)- - - - >11 12
区分を入力せよ- - - - >2

あなたの通話料金は\1464です
[3] 環境
 [3.1] OS: Windows)
 [3.2] コンパイラ名とバージョン: 覚えてません
 [3.3] 言語: C
[4] 期限: 5月21日か22日
[5] その他の制限: 特になし
よろしくお願いします
0383デフォルトの名無しさん2014/05/21(水) 09:42:11.50ID:zcLf8qzD
>>382
ttp://ideone.com/9GzhfN
0384デフォルトの名無しさん2014/05/21(水) 15:55:03.02ID:zcLf8qzD
>>382,383
バグ修正
ttp://ideone.com/yV03T1
0385デフォルトの名無しさん2014/05/24(土) 06:30:53.05ID:GtRtgzPJ
>>382
ここでの問題は区間入力だから、単純だが、それでも区間を跨る場合の定義が書いていない。
本来は通話開始時刻と通話時間の二入力で出題されるところだろうが、その場合、
国民の祝日、休日の確定が必要で結構やっかい。春分の日、秋分の日は前年の二月一日の
官報に掲載されるまで決定できない。
0386デフォルトの名無しさん2014/05/24(土) 15:39:12.12ID:pI+dKANJ
http://codepad.org/iSvhZg26
http://codepad.org/qjHj79OK
ここであってるのかわかりませんが、RPCサーバの課題についてです。
double型の値(x)を受け取り、その値から2.4*x*(1-x)を計算した結果をdouble型で返す
RPCサーバとクライアント(データ(x)送信範囲は0<x<1)の作成なんですが、プログラミングについて理解があまりないので
教えていただけませんか?

RPCサーバをコンパイルするも
警告: 暗黙的な関数宣言: registerrpc
と表示されたり
RPCクライアントをコンパイルするも
警告: 暗黙的な関数宣言: callrpc
と表示され何が問題なのかさえわかりません。
0387デフォルトの名無しさん2014/05/24(土) 18:16:25.56ID:imaRiqLQ
>>386

>>警告: 暗黙的な関数宣言: registerrpc

その警告は「関数宣言がないから、暗黙的な関数宣言があったものとするよ」という意味。
#include <rpc/rpc.h>を入れれば消えるのでは?
0388デフォルトの名無しさん2014/05/24(土) 20:27:35.18ID:Sb4iXA5P
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
プレイヤーvsモンスターの戦闘ゲーム
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2010
 [3.3] 言語:C++
[4] 期限:5月26日
[5] その他の制限: 1対1のターン制で宜しくお願いします
0389デフォルトの名無しさん2014/05/24(土) 20:44:15.43ID:5k74nlaX
>>388
http://codepad.org/F8YUTiSQ
0390デフォルトの名無しさん2014/05/24(土) 20:47:42.79ID:BoH7rvjb
>>388
せめてパラメータとか攻撃方法とかぐらい書けよ!
0391デフォルトの名無しさん2014/05/24(土) 20:50:41.21ID:BoH7rvjb
と思ったら>>389で出てた。Magic連打してたらすぐ勝てそうなのはきっと気のせい
0392デフォルトの名無しさん2014/05/24(土) 22:46:47.83ID:Sb4iXA5P
>>389
サクセス!
どちらかのHPが0になった時に戦闘を終了するようにはできないのでしょうか……?
0393デフォルトの名無しさん2014/05/24(土) 22:52:44.98ID:5k74nlaX
ああ、条件式間違ってたな
while (PlayerHP > 0 || MonserHP > 0)
じゃなくて
while (PlayerHP > 0 && MonserHP > 0)
だた
0394デフォルトの名無しさん2014/05/24(土) 22:58:59.51ID:znGmyzXe
>>392
>サクセス
成功(Success)?

……この実装だと0キッカリというのは難しいな(負数になり得るので)
PlayerHPとMonsterHPをunsignedにするとかすれば大丈夫だろう
0395デフォルトの名無しさん2014/05/24(土) 23:04:46.09ID:znGmyzXe
>>393
なんだ、一度も走らせたことないのか……
「MonserHP」ってtypoしてるし、この書き方だと
Magic4回→Attack1回→Magic1回ってやるとバグるぞ?
http://codepad.org/xzCoDYRw
理由は言わずもがな
0396デフォルトの名無しさん2014/05/24(土) 23:06:15.64ID:eVT80dAs
この状況でunsignedにしたら無限ループじゃないか
0397デフォルトの名無しさん2014/05/24(土) 23:08:38.64ID:imaRiqLQ
>>394
逆
0398デフォルトの名無しさん2014/05/24(土) 23:09:25.33ID:znGmyzXe
>>396
その場合は条件式をいじって……
いやまあ>>395の時までは真面目にソース読んでなかったのよw
0399デフォルトの名無しさん2014/05/26(月) 09:36:06.44ID:Cxl0XcJF
>>386 何ですが
double型で送信して、値の返却もdouble型でするには、どこをいじればいいのでしょうか?
0400デフォルトの名無しさん2014/05/26(月) 18:37:13.95ID:l2nsfm+B
2ch.netへ再送。
>>388
ubuntuとかのlinuxディストリならAnswer 1を参照。solarisなら-lrpcでいけるのかな?
http://stackoverflow.com/questions/13145930/undefined-reference-to-registerrpc

>>401
extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]),
xdrproc_t, xdrproc_t);

registerrpcの第4引数と第5引数を、xdr_intからxdr_doubleにすることで、
doubleを考慮したネットワークバイトに変換してくれるみたい。

funcの戻り値と引数はchar *func(char *udpmsg)にするのと、
xdr_doubleはxdrproc_tでキャストした方が良い。

static char *func(char *input)
{
static double output;
double *ptr = (double *) input; /** 第4引数のxdr_doubleで読み込み側のネットワークバイトオーダを、第5引数で書き込み側をケア */
output = *ptr + *ptr;
return (char *) &amp;output;
}
04014002014/05/26(月) 18:41:14.32ID:l2nsfm+B
ファック。レス番号までずれてやがる!もういいっす。
0402デフォルトの名無しさん2014/05/26(月) 22:52:16.16ID:A1ad6/Mw
>>399
通信は基本的にビットを送信していると思ってください。ビットそのものには意味がありません。
ビットの塊にフォーマットを与えることでその仕事を成します。
基本的にはお約束にしたがってdoubleっぽいビット列をキャストしてやればいいんじゃないでしょうか。
0403デフォルトの名無しさん2014/05/27(火) 07:07:22.16ID:b3eX0olM
わかってねえなら黙れよ。
0404デフォルトの名無しさん2014/05/27(火) 20:44:35.69ID:5Qu+jOxY
シーン。
0405デフォルトの名無しさん2014/05/28(水) 06:55:00.23ID:ZyYrP6pw
描き込まずにチンコ弄くります
0406デフォルトの名無しさん2014/06/10(火) 01:27:04.86ID:bRopYhGX
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク): http://codepad.org/Tdb29gRf
以下の制約の下で、プログラムを改修し、処理にかかる時間を短縮しなさい。

1.グレースケール画像、エッジ画像、合成画像、それぞれ3つの作成は別の関数で行う。
2.画像のためのメモリは動的に確保する 
3.画像のサイズ、リピート回数は変えない
4.改修する前にこのプログラムをそのまま実行した時に生成される画像と、改修後の結果画像が変わらない

よろしくお願いします。
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2014年6月11日17:00まで
[5] その他の制限:
0407デフォルトの名無しさん2014/06/10(火) 07:42:12.24ID:9RO//ztd
わっしょい
0408デフォルトの名無しさん2014/06/10(火) 08:54:06.64ID:AtWi4EDz
>>406
J( 'ー`)し タケシのコードをスクラッチで書き直してみたよ。http://codepad.org/cQiOfJY8
(`Д)   うるさい死ね 1割くらい遅えじゃねえか!
J( 'ー`)し ごめんね。お母さん1次元配列派だから、インデックス値の計算に時間が少し掛かるみたい。
(`Д)   うるさいくたばれ、返信すんな
J( 'ー`)し ヘッダ処理も少し真面目にやってみました。たいせつにつかってね 食事はしていますか?
(`Д)   死ねくそ女
0409デフォルトの名無しさん2014/06/10(火) 09:18:50.70ID:FVnE5use
>>406
とりあえず
× irregal
〇 illegal

あとこっちでコンパイルしてみたらちゃんと(かどうか知らんが)
変な色の画像に変換された
0410デフォルトの名無しさん2014/06/10(火) 11:43:36.28ID:GmSg9gy+
>>408
ありがとうございます
環境の違いなのかこっちで計測したら処理時間が元の8倍くらいかかりました
結果画像も違ってますね...

>>409
わかりました

そうです!変な色の画像になりますね
0411デフォルトの名無しさん2014/06/10(火) 11:46:42.70ID:GmSg9gy+
>>406ですが、環境が Oracle VM VirtualBoxの仮想マシンで動かしてるLinuxなのが原因ですかね
その辺よくわからないんです
0412デフォルトの名無しさん2014/06/10(火) 12:00:22.30ID:xGEOixPR
[1] 授業単元:プログラミング技術β
[2] 問題文(含コード&amp;リンク):
ディスプレイに「何時(0〜23)」と表示し、キーボードから整数を入力すると入力値によって、以下のように表示し、この操作を-1を入力するまで繰り返す。
0〜3 Goodnight
4〜11 Goodmorning
12〜17 Goodafternonn
18〜20 Goodevening
21〜23 Goodnight
上記以外の数値 再入力
よろしくお願いします。
[3] 環境
 [3.1] OS: Windwos
 [3.2] visualstdio 2013
 [3.3] 言語: C++
[4] 期限: 2014年6月9日まで
[5] その他の制限:
0413デフォルトの名無しさん2014/06/10(火) 13:08:07.48ID:FVnE5use
>>411
わかんないけど念のため、
出力は別ファイル。もしかして同じファイルを上書きすると思ってない?
全面単色の画像を使ってたりしない?画像によっては変化ないかもしれない
0414デフォルトの名無しさん2014/06/10(火) 13:16:56.65ID:FVnE5use
>>412
タイムマシン探さないと
0415デフォルトの名無しさん2014/06/10(火) 13:38:14.58ID:ItrQsGd1
>>413
そこは大丈夫です、出力は別だと理解してます。

元画像はカラー画像を使ってます
全面単色ではないです

グレースケールに変換する部分のループを改変すれば早くはなるんですけど結果画像が変わっちゃうんですよね
0416デフォルトの名無しさん2014/06/10(火) 14:44:06.94ID:IE+cVxVO
>>414
そこは大丈夫です、既に利用申請は通っています
0417デフォルトの名無しさん2014/06/10(火) 16:23:12.10ID:NFkRDJAj
>>415
ごめん課題を理解してなかった。409と413は無視して。
で改善の方法だけど、全く思い付かない
基礎の授業なんだよね・・
グレースケールのとこは小数点演算を整数演算にしたら
自分の環境では微妙に速くなったけど、こういうのは
期待値じゃないよね

//ans[g][r]=(UCHAR)((data[g][r][0]+data[g][r][1]+data[g][r][2])/3.0+0.5);
ans[g][r]=((data[g][r][0]+data[g][r][1]+data[g][r][2])*2/3+1)/2;
0418デフォルトの名無しさん2014/06/10(火) 16:50:44.67ID:AtWi4EDz
>>410
すんません。コメントのスキップがバグってて結果画像が変わってるかもしれません。
diff --git a/ppm/ppm.c b/ppm/ppm.c
index f31a799..6c72ede 100644
--- a/ppm/ppm.c
+++ b/ppm/ppm.c
@@ -120,9 +120,9 @@ static struct ppm *ppm_alloc_header_from_stream(FILE *text_stream)
{
struct ppm *ppm;
int width, height, color;
- char magic[4];
+ char magic[3];

- if (fscanf(text_stream, "%2s", magic) != 1 ||
+ if (fscanf(text_stream, "%2s\n", magic) != 1 ||
magic[0] != 'P' || magic[1] != '6') {
ppm_pr_err("Invalid magic number");
return NULL;

画像データが欲しいな・・・チラッ
0419デフォルトの名無しさん2014/06/10(火) 17:06:56.99ID:EOz1UYwi
>>412
ttp://ideone.com/47VWwF
0420デフォルトの名無しさん2014/06/10(火) 20:18:19.01ID:aONg9Rvp
>>406
小手先のポインタラッチで多少早くなる(ただし最初から最適化ありでコンパイルするなら変わらんかも)
ttp://codepad.org/fD0rji3C

画像のサイズを完全に固定していいのなら早くできそう
04214202014/06/10(火) 20:19:41.98ID:aONg9Rvp
あ、すまん、手元の画像サイズに変更しちゃったままだから注意

#同じく画像データが欲しいな・・・チラッ
04224202014/06/10(火) 21:08:07.09ID:aONg9Rvp
>>406
以下2点の対応による高速化
・ループ内で固定のポインタは必ずループの最初に保持するように変更
・多次元配列の実現方法として、ポインタのポインタをやめ、1次元配列でメモリ確保するように変更
ttp://codepad.org/h7frFJ2g

画像サイズは手元に合わせちゃったので注意
手元(cygwin gcc4.8.2)では25%位高速化した
0423デフォルトの名無しさん2014/06/10(火) 22:49:16.28ID:nQmGr7gQ
>>417
いえいえ、わかりました
整数にしてしまうと、double型からint型に変わってしまって結果画像もかなり変わってきてしまうんです。
なので、*(1.0/3.0)にしてみたんですが、これでも少し変わってしまうんですよね...


>>418
ありがとうございます
読み方がよく分からないのでちゃんと書き換えられるか心配ですが...

画像なんですが、ppmファイルなので上手くアップ出来ないですすいません...
dropboxのリンクも貼れないですし何か方法ありますかね
0424デフォルトの名無しさん2014/06/10(火) 23:00:13.67ID:CF7cNgR4
>>423
とりあえずPNGにしてアップしてみよう。
変換はこっちでやる前提で。
0425デフォルトの名無しさん2014/06/10(火) 23:25:39.83ID:JSaVvobs
>>419
Windows cmdで開かせるように出来ないか。
論理演算子使用して。
どうも、ループと-1もしくはctrl D入れて終了が出来んのだ。
if (0 && 23)

else if (a<0 && 3>a)
的な
0426デフォルトの名無しさん2014/06/11(水) 00:33:08.82ID:Lpj6uie1
そんなへんてこなグレースケールでいいのかい
0427デフォルトの名無しさん2014/06/11(水) 02:36:34.93ID:eXkj4KPK
>>420
ありがとうございます
申し訳ないんですがポインタラッチを知らないので全然わからないです。
呼び出した値によって判定して置き換える?感じでしょうか
把握できなくてすいません

画像のサイズは元画像のまま固定で大丈夫です

>>422
変更点のわかりやすい記述ありがとうございます
ポインタを使ったほうが処理が早い認識でしたが、1次元配列だとなぜ早くなるのでしょうか
まだこちらで実行確認が出来ていないのがすごく申し訳ないです

>>418>>421>>423
遅くなってすみません
これが元画像です
http://imgur.com/xn0p92M

これを元のプログラムで処理するとこうなります
http://imgur.com/zgkYExK
0428デフォルトの名無しさん2014/06/11(水) 02:39:37.52ID:eXkj4KPK
ごめんなさいこの方がいいですね

元画像
http://imgur.com/xn0p92M.png

処理後
http://imgur.com/zgkYExK.png
0429デフォルトの名無しさん2014/06/11(水) 07:15:26.20ID:BC77khn/
[1] 授業単元:配列
[2] 問題文:文字列txtを"abcdefg"、
文字列ptnを"ef"で初期化し、力任せ法を用いてtxt内でptnが最初に出現する位置を求め、
途中経過、最初に出現する位置(txtの添え字)、比較回数を以下のように出力せよ。
(※txtとptnの値が変わっても正常動作するようにし、ptnが出現しない場合はそのことを出力せよ。)
[3]
 [3.2]linux
 [3.1] gcc
 [3.3] C言語
[4] 期限:14/6/12
[5] その他の制限:ポインタはまだ習っとりません。
先日for、whileによる繰り返し処理を習いました。
0430デフォルトの名無しさん2014/06/11(水) 07:23:51.87ID:BC77khn/
連投すいません。よろしく願いします

出力例:
txt:abcdefg
ptn:ef

1回目の比較
abcdefg
e
失敗
2回目の比較
abcdefg
e
失敗
(省略)
N回目の比較
abcdefg
e
成功
N+1回目の比較
abcdefg
ef
成功
-----結果-----
添字: 4
比較回数: N+1回
0431デフォルトの名無しさん2014/06/11(水) 08:40:53.74ID:gc0u05WB
>>423
417だけど417の変更では出力は変わらなかった。一応
0432デフォルトの名無しさん2014/06/11(水) 08:55:13.52ID:mGD11vxw
>>429
入力がただのリターンだった時は出現しない?
0433デフォルトの名無しさん2014/06/11(水) 09:35:04.79ID:mGD11vxw
> N回目の比較
> abcdefg
> e
> 成功
成功になってるのに途中経過がeなのはこれでいいのか

txt:1234
ptn:23
の時の全出力例も載せて
04344182014/06/11(水) 10:36:37.89ID:oyooQxgj
>>428
画像の提供ありがとう。>>418の修正で結果画像が同じになるのを確認しました。しかし、重い。クソースでサーセン。

>>422
x86_64版gcc 4.4.7とかだと最適化オプションなしでも、
UCHAR (*tmpgyou)[][DIM3]の領域はスタックコピーが発生せず、
&(*data)[g]のアドレスの先頭アドレスのみをスタックに入れるコードになるみたいですね。
不思議。おしえてgccに詳しい人。

最適化オプションつけた場合、make_grayはほぼ同じになりますが、
上記の影響なのか、他2つの関数はfor文がまとめられ(jump命令が減る)、
パイプラインフラッシュの回数現象で相当速くなりますね。
0435デフォルトの名無しさん2014/06/11(水) 12:37:51.24ID:XYJSlMo0
>>427
420=422です 勝手なオレオレ用語使ってしまってごめんなさい
ポインタラッチ=ポインタをラッチ(保持)する=>>422の変更点1つ目 です(ラッチというとハードウェアの言葉だからソフトでは使わないかも)

1次元配列のほうが速いのは、時間を測った結果そっちのほうが速かったから
・・・というのは半分冗談半分ホントだけども

ポインタのポインタだと、一つ目のポインタの中身を知るためにメモリアクセスし、その値が指す先に再度メモリアクセスして値を取得する
(インデックス計算→メモリアクセス→インデックス計算→メモリアクセス)

1次元配列だと、インデックスの計算を複数回やった後に1度だけメモリアクセスする
(インデックス計算→インデックス計算→メモリアクセス)

この違いが後者のほうが速かったということ
基本的にはパイプライン処理してるプロセッサだとメモリアクセスはストールの原因になるので少ないほうが速い
(x86ってCISC?だけどパイプライン処理してる?よね?あまり詳しくないです)

実際にはほかの要因もいろいろあるはずで、処理時間は最終的には計測してみるのが確実

>>434
UCHAR (*tmpgyou)[][DIM3]は宣言がややこしいですが、配列を指すただのポインタ変数です
なので配列分の領域を持っているわけではないです
先頭アドレスを保持するためのポインタ変数として使ってるので意図通りですね
0436デフォルトの名無しさん2014/06/11(水) 12:41:13.61ID:QAZZuHs2
>>427
>ポインタを使ったほうが処理が早い認識でしたが、
>1次元配列だとなぜ早くなるのでしょうか

arr[i][j]で、1次元の要素数をA、
1ポインタのバイト数をBとして、アドレスを求めると、
(i * A + j) * B
この、i * A の掛算が余分なのかな?

ポインタは、p++ インクリメントで、Bバイトずつ進むが、
この時は掛算ではなく、Bずつ加算するので、
シーケンシャルアクセスした方が、キャッシュ乗りもよく速そう
0437デフォルトの名無しさん2014/06/11(水) 13:19:49.82ID:gc0u05WB
>>436
最適化すればその掛け算は隠蔽されると思う
一次元配列にする方法の場合、踏み台の配列分のメモリアクセスが減るので
メモリアクセスのコストだけ早くなるんだろうね
cache hit してもそれなりのレイテンシはあるし。
ただ元のコードの柔軟性(callee側はサイズ依存しない)が
無くなるので、微妙な気もする
0438デフォルトの名無しさん2014/06/11(水) 13:37:07.36ID:IQSYsiwa
>>433
2重ループ内のprintfデバッグメッセージで
内と外の語彙が同一ってだけかと
成功
大成功
とかすりゃ分かりやすいかもねw
04394362014/06/11(水) 14:48:31.92ID:QAZZuHs2
>>437
for(〜i++){
for(〜j++){
arr[i][j]
}}

こういう2重ループの場合、(i * A + j) * B の、
i * A の部分は、掛算が必要なのでは?
iが、0,1,2〜と変わるから
0440デフォルトの名無しさん2014/06/11(水) 15:10:11.51ID:CtrbFu71
>>439
コンパイラによっては(gccなど)、アセンブラ用ソース出力可だから、最適化オプションを変えて出して見ればいい。
0441デフォルトの名無しさん2014/06/11(水) 15:12:18.16ID:mGD11vxw
>>438
どこで2重使うのかわからないがなんとなくわかったありがと
0442デフォルトの名無しさん2014/06/11(水) 15:31:55.21ID:IQSYsiwa
>>441
機能的にはstrstrの劣化版でしょ
http://www.opensource.apple.com/source/xnu/xnu-792.13.8/libsa/strstr.c
を改悪したものだと思えばいい
04434292014/06/11(水) 16:27:13.24ID:BC77khn/
>>432-433
コピペしたんですがスペースがうまくコピー出来てませんでした
正しい表示例は、
最終的にabcdefのefの真下にefが表示される、と言ったかんじで、失敗したらptnの文字列が1文字分ずつずれるようにしたいです。
0444デフォルトの名無しさん2014/06/11(水) 16:44:15.61ID:BC77khn/
>>433
出力例貼り忘れてました
http://www.dotup.org/uploda/www.dotup.org5120326.png
0445デフォルトの名無しさん2014/06/11(水) 16:46:59.02ID:XYJSlMo0
>>429,443
ttp://codepad.org/kjLe88XM
0446デフォルトの名無しさん2014/06/11(水) 16:51:59.87ID:mGD11vxw
>>442
str系の仕様を認められてるのかわからないから使わずに1重でやってたわ
結果ありきだから速度とかは度外視
04474292014/06/11(水) 17:24:34.58ID:BC77khn/
>>445
ありがとうございます
0448デフォルトの名無しさん2014/06/12(木) 05:33:24.07ID:Abgsr/RV
http://viper.2ch.net/test/read.cgi/news4vip/1402516548/27n-
C++er…出て来いや!
0449デフォルトの名無しさん2014/06/12(木) 13:06:28.39ID:u0MLAqu6
>>448
http://codepad.org/3u1bGzGY
http://codepad.org/vNJ5qzdj
0450デフォルトの名無しさん2014/06/12(木) 16:02:13.86ID:6KI3I0Lz
>>435>>436
説明ありがとうございます
よくわかりました

昨日ぎっくり腰になったりして色々もたつきましたが、>>422の変更で問題なく出力されましたし、間に合いました
ちょっと整数演算に直しても上手く行ったので、最初に直した時は私の不手際があったのだと思います

最終的に最初の1/5以上高速化出来ました
本当にありがとうございました!
04511/22014/06/12(木) 17:45:43.36ID:25HL/Rbg
入力したのが、素数かどうか判定するプログラム。

自分で考えた。
#include <stdio.h>
int main(void)
{
int a,b,c=0;
scanf("%d",&a);
for(b=1;b<=a;b++)
{
if(a%b==0)c++;
}
if(c==2)printf("素数です\n");
else printf("素数ではありません\n");
return 0;
}

解答。
#include <stdio.h>
int main(void)
{
int a,b,c=1;
scanf("%d", &b);
for(a=2; a<=b/2; a++)
if((b%a)==0) c = 0;
if(c==1) printf("素数です");
else printf("素数ではありません");
return 0;
}
04522/22014/06/12(木) 17:46:17.06ID:25HL/Rbg
自分で考えたのは、整数を入力して、1からその数まで1ずつ増やし、割り切れたらcに1を足す。
for文から抜けて、cが2なら、1とその数でのみで割り切れるということなので素数。
1はc=1になるので含まれない。

って作ったのですが、解答の場合でも代入していって考えました。
代入していってだいたい分かりましたが、考え方は、公約数で1の次に大きな数が2で、
1と入力した数以外に約数がある場合、1番小さい数が2。だから、入力した数の半分まで
ループさせれば、足りる、みたいな感じでしょうか。

解答のほうがforループの回数が半分なので、これが莫大な量になったとき
処理は早くなると思います。やはり、自分の考えでプログラムを書いて正しい答えを出すより、
分かりづらかったり考える必要があっても、最小限の手数で
正しい答えが出せるプログラムも理解していくべきでしょうか?

仕事などをされてる方は、このようにパッと見で少し理解が難しくても、
少しでも速くなるプログラムを書いてる方は多いですか?
0453デフォルトの名無しさん2014/06/12(木) 18:34:50.13ID:P9Wf1hbp
素数を知らない人(小学生とか)向けなら前者もいいけど
素数の計算で探索空間を半分にするのは常識というか
ほぼ100%そうするコードしかないから、深く考えるようなことじゃない
0454デフォルトの名無しさん2014/06/12(木) 20:09:35.46ID:TIE2YHiq
>>452
ゲーム作ることを考える。
たまにゲームでなんでこんな簡素な描画なのにこんなにくそ重たいねん。っていうゲームがあると思う。
そういうストレスを削減する意味でも計算オーダーを下げるのは重要。
そのうえで読めるコードを書くのも技術ですよ。
それと、逆算も技術。
0455デフォルトの名無しさん2014/06/12(木) 20:23:38.21ID:25HL/Rbg
>>453,454
なるほどですね。
ありがとうございました。
0456デフォルトの名無しさん2014/06/13(金) 10:04:52.54ID:eljxZ1z3
[1] 授業単元:グラフ理論
[2] 問題文(含コード&リンク): http://codepad.org/zOQeEjA6
完全列挙法を用いてTSPを解くプログラムを作成しなさい

グラフの点を全て通って始点に帰ってくる経路の内、距離が最短なものを完全列挙法で導くプログラムです。
このプログラム内では点を都市としています

途中まで作った物がリンクのコードですが、最短の距離を算出するところが上手くかけません

そして順列の書き方がわからなかったのでコピペしたのですが、どう動いているのかがよくわかりません

また、こういう書き方の方が良いというのがありましたら教えていただきたいです

よろしくお願いします
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2014年6月16日17:00まで
[5] その他の制限:
0457デフォルトの名無しさん2014/06/13(金) 16:22:01.41ID:M4x6Kn4S
>>456
ttp://codepad.org/Yu5KMoPW
とりあえず計算できるようにはなってると思います

set関数の引数i(編集後pos_cnt)は、i番目に通る都市を決める関数です。
その中で通る都市を仮定して、次のi+1番目の都市を決めるために再度setを呼び出しています。(元34行目)
その際に、通る都市番号をposに保持し(元29行目)、通ったことを示すflagを1にしてます。(元33行目)
通る都市を決める際に、flagが1になっている都市を避けることで、同じ都市に何度も行かないようにしています。(元28行目)
iが都市数まで増えると全都市を回ったことになるので、結果をprintで出力してその経路は終わり。(元31行目)

編集後のコードでは、set関数に引数distを追加して、経路をたどっている際にその距離も一緒に計測するようにしました。
全都市を回った際に、これまでの最大距離よりも大きければ保持するようにしてます。

書き方のアドバイスとして
自分の書いたコードが半年後もすぐ意味が分かるように読みやすいようにしたほうがいいですよ
最低限以下に気を付けるくらいですね
・インデントをつけましょう
・変数名は意味のある単語もしくはその省略形にしましょう(1〜2文字で許されるのはループ用の変数iとかjぐらいと思ったほうがいい)
・意味が分かりにくい箇所には適宜コメントを入れましょう
0458デフォルトの名無しさん2014/06/13(金) 18:40:15.90ID:/N84HNYW
[1] 授業単元:プログラミン演習
[2] 問題文(含コード&リンク):
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
問題文が長いので上記URLに投稿します
投稿者名は#458です
[3] 環境
 [3.1] OS: Windows8
 [3.2] コンパイラ名とバージョン: Visual Stdio 2010
 [3.3] 言語: C
[4] 期限: 2014/06/18
[5] その他の制限:

自分でも考えてみましたがわかりません。
よろしくお願いします。
0459デフォルトの名無しさん2014/06/13(金) 22:25:12.70ID:M4x6Kn4S
>>458
ttp://codepad.org/AYNHHZ3P

アルゴリズムはほぼ参考ページの丸写しです
参考ページ:ttp://fussy.web.fc2.com/algo/algo3-2.htm
0460デフォルトの名無しさん2014/06/13(金) 22:35:52.71ID:M4x6Kn4S
しまった仕様1が未達ですね
すみませんが上記は破棄で
0461デフォルトの名無しさん2014/06/13(金) 22:37:06.35ID:mWNJp1eR
>>458
ルックアップテーブルというのを使ってみた。
http://codepad.org/qbkPBAE5
0462デフォルトの名無しさん2014/06/13(金) 22:43:41.47ID:mWNJp1eR
>>460 もったいない。
type __array[] = {...}
type *array = __arrayで目をつむろうぜ。
04634592014/06/13(金) 23:07:16.98ID:M4x6Kn4S
>>458
ttp://codepad.org/BXC0miZY
無理やりポインタを使うようにしてみた(imageにはかならずpoint経由でアクセス)

>>462
似たような感じで変えてみましたw
0464 ◆E39m/9K3xY 2014/06/14(土) 08:41:42.15ID:MYxhMzGN
>>461
>>463
回答ありがとうございます
0465デフォルトの名無しさん2014/06/14(土) 11:29:20.51ID:hFdfnZbt
>>458
思いつくまま書いてもなんとかなった
ポインタを使えってところが微妙に難しいところか

http://codepad.org/Ky7wUZqB
0466デフォルトの名無しさん2014/06/14(土) 13:11:25.49ID:IGGRlfrQ
>>458
ttp://codepad.org/iMJsA8Iz
がんぱって削ってみた
0467 ◆E39m/9K3xY 2014/06/14(土) 18:00:04.42ID:MYxhMzGN
>>465-466
回答ありがとうございます
解決できました
0468デフォルトの名無しさん2014/06/17(火) 20:25:40.64ID:waqSsQEe
[1] 授業単元:画層処理演習
[2] 問題文(含コード&amp;リンク):
長いのでこちらにまとめました。
http://codepad.org/WZx26C7D

[3] 環境
 [3.1] OS:Windows7
 [3.2] Visual Stdio 2010
 [3.3] 言語:C++
[4] 期限: ([2014年6月18日12時00まで])
[5] その他の制限:
自分でギリギリまで考えましたが分かりませんでした。
よろしくお願いします。
0469デフォルトの名無しさん2014/06/17(火) 21:51:23.95ID:uAYqPugm
>>468
何が分からなかったの?
0470デフォルトの名無しさん2014/06/17(火) 22:58:58.00ID:waqSsQEe
>>469
一度最後まで作ったのですが
この課題を出した人にこれでは間違っていると言われてしまいました。
とりあえずソース上げます
0471デフォルトの名無しさん2014/06/17(火) 23:16:06.68ID:waqSsQEe
>>469
http://codepad.org/kSfZ5tUZ
↑これが自分で作ったソースです。
上から課題1.2.3.4になります。
配布された資料とにらめっこしながら作ったのですが
理解が及ばず詰まっているのが現状です。
最終的には処理を全てまとめたいと思っているのですが・・・
0472デフォルトの名無しさん2014/06/17(火) 23:22:24.15ID:JQ3yohPe
まずインデントを何とかしろや。
バグがあっても自力で見つけられんぞ。
0473デフォルトの名無しさん2014/06/17(火) 23:25:36.53ID:JQ3yohPe
例えば1番、9箇所全部の濃度値が8でも、8/9は0だから、9回足しても0になるぞ。
0474 ◆rVDRt1VsVI 2014/06/17(火) 23:33:44.49ID:waqSsQEe
>>472
イン、デント?
>>473
成程
0にななった場合1にすれば良いのでしょうか
0475デフォルトの名無しさん2014/06/17(火) 23:41:51.72ID:JQ3yohPe
ググれ「インデント」

> 0にななった場合1にすれば良いのでしょうか
だめ。8/9 がちゃんと 0.8888... になるようにする。

3と4は見た目問題なさそうに見える。何か不具合あるの?
0476デフォルトの名無しさん2014/06/17(火) 23:55:46.98ID:waqSsQEe
ググりました。
上手く割る為にはどうすれば良いのでしょう。

プログラムを提出する時に画像を見せるのですが
これではダメだと言われたんです。
一応画像を貼ります。
上から1.2.3.4
http://www.dotup.org/uploda/www.dotup.org5132663.png
http://www.dotup.org/uploda/www.dotup.org5132664.png
http://www.dotup.org/uploda/www.dotup.org5132667.png
http://www.dotup.org/uploda/www.dotup.org5132669.png
0477デフォルトの名無しさん2014/06/18(水) 00:10:22.85ID:a3+GeDDB
1と2は割り算問題の影響が出てる感じ。
int/int は int になってしまうから、
double/int か int/double の形にすればいい。

3と4はバブルソートがだめだな。
jの初期値がj=i+jって何だよ。
0478デフォルトの名無しさん2014/06/18(水) 00:11:18.99ID:FyKrT/+C
・なにはともあれ原画像(入力する画像)を貼りなさい
・「これではダメ」←「メディアンフィルタがかかってないのが一目瞭然だから」だろうね
・ぱっと見だが:3,4,でソートしてるとこの for(j=i+j; はすごく変
0479デフォルトの名無しさん2014/06/18(水) 00:12:31.18ID:FyKrT/+C
カブったw
0480デフォルトの名無しさん2014/06/18(水) 00:16:40.15ID:dQXq5s2V
>>477
>>478
すいません。
図々しいとは思うのですが解決方法を教えてくれませんか?
かれこれ一週間試行錯誤してたのですが期限に達してしまいました・・・
0481デフォルトの名無しさん2014/06/18(水) 00:17:38.88ID:AXoUiaON
#include <stdio.h>
#include <string.h>

void display1(int a);
void display2(struct syouhin_data syouhin);

struct syouhin_data{
char name[20];
int tanka;
};

int main(void){
int a = 10;
struct syouhin_data syouhin = {"消しゴム",50};
display1(a);
display2(syouhin);
return 0;
}
void display1(int a){
printf("%d\n",a);
return;
}

void display2(struct syouhin_data syouhin)
{
printf("%s %d\n",syouhin.name, syouhin.tanka);
return;
}


教科書通りに打って関数display2がエラーになるのです
0482デフォルトの名無しさん2014/06/18(水) 00:27:58.71ID:FyKrT/+C
>>481
惜しいな。
void display2(struct syouhin_data syouhin);
(は、struct syouhin_data を使っているから)
その構造体の宣言よりも下の行に持っていけば動くよ。

>>480
スマン俺は寝る。
たぶん for(j=i; だと思うが未確認だし責任は取れん。
他の間違いは探してないし。悪しからず。
0483デフォルトの名無しさん2014/06/18(水) 00:31:44.82ID:dQXq5s2V
>>482
ありがとうございますありがとうございます。
もう12時間を切ってしまったあ
0484デフォルトの名無しさん2014/06/18(水) 00:34:53.37ID:AXoUiaON
動きました。ありがとう御座います。
動かなかった理由も理解出来ました。

教科書が間違っていました。クレーム入れます。
0485デフォルトの名無しさん2014/06/18(水) 00:45:13.06ID:a3+GeDDB
>>484
> 動かなかった理由も理解出来ました。

動かないのと、コンパイルできないのとは、区別した方がいいぞ。
0486デフォルトの名無しさん2014/06/18(水) 00:46:40.10ID:mKlf65Kz
間違い探しさせる目的とかじゃないの
何て教科書の何ページ
0487デフォルトの名無しさん2014/06/18(水) 00:47:07.21ID:dQXq5s2V
>>485
やはり上手く割り算できないです
0488デフォルトの名無しさん2014/06/18(水) 00:54:18.03ID:a3+GeDDB
>>487
方法1: 9で割るんじゃなく9.0で割る
方法2: (double)をin_imageの前に付ける
方法3: 全部足してから9で割る
0489デフォルトの名無しさん2014/06/18(水) 01:04:15.09ID:dQXq5s2V
>>488
上手くできました!
これで1はもう大丈夫でしょうか
0490デフォルトの名無しさん2014/06/18(水) 01:17:51.17ID:dQXq5s2V
>>488
凄い今更なのですけど
自分の作ったプログラムは簡単に言うとどういった動作をしてるのでしょう
0491デフォルトの名無しさん2014/06/18(水) 01:30:35.94ID:a3+GeDDB
>>490
……ォィォィ……
自分のわかる範囲を説明してみな
俺は寝るけど
0492デフォルトの名無しさん2014/06/18(水) 01:31:39.06ID:d0o5Ribt
>>490 インデントは4タブのようなので。
tp://codepad.org/4elO5klx
tp://www1.cts.ne.jp/~clab/hsample/Sort/Sort1.html
0493デフォルトの名無しさん2014/06/18(水) 01:42:41.71ID:dQXq5s2V
>>491
ゴメンなさい。
C言語苦手なんです・・・
とりあえず計算しているんだろうな・・・としか
0494デフォルトの名無しさん2014/06/18(水) 02:36:44.35ID:dQXq5s2V
ダメだぁ
どんな処理が行われているのかわからない
誰か助けてください
0495デフォルトの名無しさん2014/06/18(水) 02:54:24.76ID:8AGe2LGW
どこぞの馬鹿が書いた教科書よりK&R読んだ方がいいだろ
0496デフォルトの名無しさん2014/06/18(水) 06:37:26.20ID:9i8t8Hfq
>>492で問題ない。
1. 元画像(x, y)を中心にした9x9の複数画素の平均値を新規画像の(x, y)に設定。
3. 元画像(x, y)を中心にした9x9の複数画素の中央値(hairetu[4])を新規画像の(x, y)に設定。
その際、元画像の複数画素をコピーしたhairetuにソートを実行。
2, 4についても同様。

処理の共通化と簡易化、コーディングの作法とかも教育現場で担当して欲しいね。
bitmapも画像処理の教材としては疑問。
0497デフォルトの名無しさん2014/06/18(水) 11:17:27.12ID:9qLbuGjN
>>493
教師に言いなよそれ。
何も理解できてないのに課題だけ通っても意味がない
0498デフォルトの名無しさん2014/06/18(水) 12:10:04.78ID:LGYjzaR6
>>496
オートマトンか?
Life Game、シムシティにも似ているような
0499デフォルトの名無しさん2014/06/18(水) 23:10:52.83ID:Ls9SsycK
>>451
http://peace.2ch.net/test/read.cgi/tech/1313183984/600
0500デフォルトの名無しさん2014/06/19(木) 00:51:22.83ID:bX6gAL+1
>>498
メディアンフィルタって画像処理で使われてるフィルタが有りまして。
0501デフォルトの名無しさん2014/06/19(木) 07:38:56.43ID:wVtUqKS0
[1] 授業単元:プログラミング序論I
[2] 問題文(含コード&リンク):
1. 1から10までの階乗の値を計算して出力するプログラミングを作ってみなさい。
2, ∫[0→2]x^3dxを計算するプログラミングを作ってみなさい。
3.. 不定積分∫f(x)dxを求めるプログラミングを作ってみなさい。
4. ∫[0→1]f(x)dxを求めるプログラミングを作ってみなさい。
5. 与えられた2x2正方行列の固有値を計算するプログラミングを作ってみなさい。
6. 与えられた3x3正方行列の固有値を計算するプログラミングを作って見なさい。
  さらに、正方行列の係数がいくつでもようようにするためにはどうしたらいいか?

f(x)は整式です。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2014年06月20日10:30まで

よろしくお願いします。。。
0502デフォルトの名無しさん2014/06/19(木) 08:41:47.19ID:TPlHeEcS
1だけ妙に簡単だな
あと「プログラミングを作る」などという変な言い回しは普通なの?
0503デフォルトの名無しさん2014/06/19(木) 09:06:19.02ID:T3v2xG5Y
本題以外に着目するあすぺは消えろ
0504デフォルトの名無しさん2014/06/19(木) 13:36:52.62ID:u/NoNxMT
本題以外で妙な勘違いが発覚することもあるから一概には…
0505デフォルトの名無しさん2014/06/19(木) 13:55:54.90ID:T3v2xG5Y
>>502の指摘で発覚する事は無いな
0506デフォルトの名無しさん2014/06/19(木) 14:01:10.22ID:Di0jt70X
>>505
でもこれで、問題文を正確に写したのかという疑問が得られた
0507デフォルトの名無しさん2014/06/19(木) 14:48:47.19ID:8jNSzAvz
ボクは書かれているとおりに正確に入力できないので
コピペですぐ動くように一文字も間違いなく正確に書いてください
おながいします
0508デフォルトの名無しさん2014/06/19(木) 18:38:09.37ID:nGqFEu9y
>>503
侮蔑の為に病名を使うのはアッチ系脳。
0509デフォルトの名無しさん2014/06/19(木) 18:50:49.30ID:BRW9+QBS
>>501
固有値固有ベクトルは永遠の課題だと思う‥
0510デフォルトの名無しさん2014/06/19(木) 23:54:47.53ID:NPcUWdPP
で、「プログラミングを作ってみなさい」ってどこ学校だよ
0511デフォルトの名無しさん2014/06/20(金) 04:50:17.43ID:4RPq8AiU
【質問テンプレ】
[1] 授業単元:画像処理
[2] 問題文:
http://codepad.org/NGyKGC2c
 [3.1] OS:Windows7
 [3.2] Visual Stdio 2010
 [3.3] 言語:C++
[4] 期限: ([2014年6月17日00時00まで])
[5] その他の制限: bmpファイルを用いる予定です。
          よろしくお願いします。
0512デフォルトの名無しさん2014/06/20(金) 07:24:04.04ID:kSpxa/vA
また君か壊れるなあ
授業でアルゴリズムの説明あったんだろ?
それ書かないと分からんよ
0513デフォルトの名無しさん2014/06/20(金) 07:30:43.80ID:4RPq8AiU
>>512
原理は習ったのですがそれをプログラムで組めません・・・
0514デフォルトの名無しさん2014/06/20(金) 07:34:04.18ID:4RPq8AiU
>>512
配布された資料はこれなのですが
正直何を言っているのかわかりません。
http://www.dotup.org/uploda/www.dotup.org5137649.jpg
http://www.dotup.org/uploda/www.dotup.org5137650.jpg
0515デフォルトの名無しさん2014/06/20(金) 07:46:47.48ID:xom+JU/q
正直お前はその講義とるの諦めた方が良い
0516デフォルトの名無しさん2014/06/20(金) 07:50:40.57ID:kSpxa/vA
>>514
基本的には、前の課題と同様のプログラムでいいのでは?
各ドットに対し、for(i=-1; i<=1; i++) for(j=-1; j<=1; j++) の
二重ループでフィルタを適用すればいい
時間ないのでとりあえず。
0517デフォルトの名無しさん2014/06/20(金) 08:07:00.48ID:eK7ekkfG
こんなスレが167まで続いてるのか
0518デフォルトの名無しさん2014/06/20(金) 08:20:21.70ID:4RPq8AiU
>>515
頑張ってC言語覚えたいです。
>>516
前のプログラムを少しずつ改造すればいいのですか
0519デフォルトの名無しさん2014/06/20(金) 08:33:29.16ID:xom+JU/q
>>518
C言語の問題じゃねえ画像処理の基礎の問題
0520デフォルトの名無しさん2014/06/20(金) 09:44:23.40ID:eK7ekkfG
覚えたい奴は人に課題放り投げない
0521デフォルトの名無しさん2014/06/20(金) 11:48:42.00ID:XgEVX42F
[1] 授業単元:数値計算法
[2] 問題文(含コード&amp;リンク):
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)

I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)

ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。
[3] 環境
 [3.1] OS:win8
[4] 期限: 無期限
  過去スレにも同じ問題が挙がっていたみたいですが、解答が消えていたのでどなたかお願いします。
0522デフォルトの名無しさん2014/06/20(金) 16:48:42.20ID:KiSHxBDS
>>521
推定回数ってのがよくわからん
nもkもmも問題文中に出てきてないから問題転記してない部分があるんじゃないか

ttp://codepad.org/nZeQHLoV
0523デフォルトの名無しさん2014/06/21(土) 22:50:55.31ID:0zVEVEqa
基本的に「○○言語を覚えたい」って言う奴は(プログラミングに)向いてない。
0524デフォルトの名無しさん2014/06/22(日) 00:03:07.93ID:dnAV7ml7
>>523
急にどうした?ダイジョブか?
0525デフォルトの名無しさん2014/06/22(日) 01:11:44.02ID:QvJqsMa7
いや、>>523は自己紹介してるだけだから気にせず、次の方どうぞ
0526デフォルトの名無しさん2014/06/22(日) 13:35:33.05ID:xdfzAQll
[1] 授業単元: プログラミング�T
[2] 問題文(含コード&リンク): テキストファイルの読みこみ、行頭文字が小文字の場合
http://pastebin.com/RKHNpMwy
大文字に置き換え、変換してファイル出力
[3] 環境: Xcode 5.1.1
 [3.1] OS: OSX 10.9
 [3.2] コンパイラ名とバージョン: gcc49
 [3.3] 言語: C++
[4] 期限: 無期限
[5] その他の制限:
よろしくお願いします。
0527デフォルトの名無しさん2014/06/22(日) 14:29:26.31ID:LcnID58r
>>526
今読んだ文字が行末かどうかは判断のしかたわかる?
0528デフォルトの名無しさん2014/06/22(日) 14:33:51.96ID:xdfzAQll
>>527
改行文字である\nになったらとかそんな感じでしょうか
0529デフォルトの名無しさん2014/06/22(日) 14:35:38.95ID:XJXpenaP
gets使っちゃえ
0530デフォルトの名無しさん2014/06/22(日) 15:18:59.75ID:R6m2qV6z
>>511
0以下なら0
255以上なら255ってすればおk?
0531デフォルトの名無しさん2014/06/22(日) 15:40:08.57ID:LcnID58r
>>528
うん。その次の文字が行頭だ。
0532デフォルトの名無しさん2014/06/22(日) 20:31:35.77ID:2aKTDaZk
ゲッツはdeprecatedになったんじゃなかった?
0533デフォルトの名無しさん2014/06/22(日) 21:25:57.66ID:xdfzAQll
>>531
while(文字全部読み取るまで) {
if(c==\n) {
行頭をなんかに格納
}
}
各行頭文字を変数として取得するのはこんなんでしょうか。
0534デフォルトの名無しさん2014/06/22(日) 22:07:51.20ID:l/vaCLkN
>>533
while(文字全部読み取るまで) {
if(c==\n) {
行頭をなんかに格納
この時点で行頭は読み込まれていない
}
}
0535デフォルトの名無しさん2014/06/22(日) 22:16:55.65ID:xdfzAQll
2次元配列化して最初の文字を[0][0]として格納
それを大文字/小文字という処理というのは無理でしょうか
0536デフォルトの名無しさん2014/06/22(日) 22:34:12.27ID:l/vaCLkN
[行数][文字数]って事ならできるけど
最大行数、最大文字数を指定するかしないかでまた変わってくる
0537デフォルトの名無しさん2014/06/22(日) 22:53:05.24ID:LRekzGzB
>>535
簡単に出来るよ。
ただ、この要件でキャッシュする必要ないから
無理ではないけど無意味。

元ソースを尊重しベッタベタに書くとこんな感じ
int flg=1;
while( (c = fgetc( fp )) != EOF ){
if(flg) {
if(c>='a' && c<='z') {
printf("%c", c+'A'-'a');
} else {
printf("%c", c);
}
flg = 0;
} else {
printf("%c", c);
if(c=='\n') {
flg=1;
}
}
}

toupperを使えばすっきりするしgets系なら概ね速くなる

sed 's/^\(.\)/\U\1/'
0538デフォルトの名無しさん2014/06/22(日) 22:56:38.63ID:LRekzGzB
>>536
可変でいいじゃん
> [行数][文字数]って事ならできるけど
文字数、つまり可変長となり得る文字数の対策が出来てるなら
最大行数、最大文字数なんてちょろいでしょ
0539デフォルトの名無しさん2014/06/22(日) 23:05:51.49ID:XJXpenaP
>>535
問題文には「一旦どっかに保管しろ」って条件はないようだけどね。
来た順に出して行って、変換の対象になる奴をいじれば良かんべえ。
http://ideone.com/KtDgz5
0540デフォルトの名無しさん2014/06/22(日) 23:05:59.59ID:l/vaCLkN
>>538
[0][0]としか無かったから想像で書いただけだよ
動的確保が出来るのなら可変でいいし、出来ないのなら最大を決めないといけない
出来るかどうか現時点でわからないからな

勝手に出来ると決め付けて可変で答えても出来なかったら無駄だしな
0541デフォルトの名無しさん2014/06/23(月) 00:04:33.76ID:apnOLU2t
>>539
細かいコメントありがとうございます。言葉としては
whileでEOFにならない間は
行頭に来たらc(行頭文字)が小文字か判断
大文字に変換、行末に来たら次の行の読み取りを開始
処理をし続けて、という解釈で大丈夫でしょうか。
それと最後にファイル出力なのですが

fp = fopen("output.txt", "w");
fprintf(fp,"%c" ,c);
printf("text export to output.txt\n");
printf("---\n");
fclose(fp);
printf("file close\n");
return 0;

と書くとoutput.txtの中身が[...]となってしまいます。この場合fprintfがおかしいのでしょうか
0542デフォルトの名無しさん2014/06/23(月) 00:18:38.22ID:apnOLU2t
追記: newLineComesからtoupperのところは
islower(c)で一文字目を判定、toupper(c)が通ったら
すぐnewLineComes=false;で頭文字だけ処理を終わらせて
次のnewLineを読み取っているということで大丈夫でしょうか
0543 ◆0qAv26otVI 2014/06/23(月) 02:09:05.13ID:KutcWFSB
>>514
// 先鋭化フィルタ
for(y=1;y<YSIZE-1;y++)
for(x=1;x<XSIZE-1;x++)
  if(x<2 || x>253 || y<2 || y>253)
    out_image[y][x]=in_image[y][x];
  else{
    wa = in_image[y][x] * 5;
    wa-= in_image[y][x-1] + in_image[y][x+1] + in_image[y-1][x] + in_image[y+1][x];
    out_image[y][x] = wa;
  }
// ラプラシアンフィルタ
for(y=1;y<YSIZE-1;y++)
for(x=1;x<XSIZE-1;x++)
  if(x<2 || x>253 || y<2 || y>253)
    out_image[y][x]=in_image[y][x];
  else{
    wa = in_image[y][x-1] + in_image[y][x+1] + in_image[y-1][x] + in_image[y+1][x];
    wa-= in_image[y][x] * 4;
    out_image[y][x] = wa;
  }
0544 ◆QZaw55cn4c 2014/06/23(月) 02:16:11.58ID:0A44UZin
>>543
それは擬似コードか?
bmp を与えると動作するように記述してくれ
0545デフォルトの名無しさん2014/06/23(月) 02:27:51.35ID:vG/6kdE8
>>544
x>253とかXSIZE何処行ったみたいなツッコミならまだしも、
出題文読まずに他人の回答にケチつけてるのか君は…
0546デフォルトの名無しさん2014/06/23(月) 03:05:00.43ID:0A44UZin
>>545
>>511
>bmpファイルを用いる予定です。
0547デフォルトの名無しさん2014/06/23(月) 03:42:09.94ID:vG/6kdE8
>>546
URL
0548デフォルトの名無しさん2014/06/23(月) 12:34:10.90ID:HIGf9m9i
>>537
これは初心者にありがちなバグだね。ベタすぎ
0549デフォルトの名無しさん2014/06/23(月) 12:40:01.69ID:0A44UZin
>>547
理解した、ごめんね
0550デフォルトの名無しさん2014/06/23(月) 19:56:29.92ID:BmnMrvs4
>>511ですが
自分で作ってみたのですが
どうでしょう

for(y=0;y<YSIZE;y++){
for(x=0;x<XSIZE;x++){

if(x<1 || x>254 || y<1 || y>254){
out_image[y][x]=in_image[y][x];
}else{

a=in_image[y][x+1]+in_image[y][x-1]+in_image[y+1][x]+in_image[y-1][x]-4*in_image[y][x];/*ラプラシアンフィルタ計算式をaに格納*/

}
if(a<=0){
a=0;
}
else if(a>=256){
a=255;}
out_image[y][x]=a;/*aに格納した値をout_image[y][x]にもどす。*/

}
}
0551デフォルトの名無しさん2014/06/23(月) 19:57:18.95ID:BmnMrvs4
二個目

for(y=0;y<YSIZE;y++){
for(x=0;x<XSIZE;x++){

if(x<1 || x>254 || y<1 || y>254){
out_image[y][x]=in_image[y][x];
}else{

a=-in_image[y][x+1]-in_image[y][x-1]-in_image[y+1][x]-in_image[y-1][x]+5*in_image[y][x];/*ラプラシアンフィルタ計算式をaに格納*/

}
if(a<=0){
a=0;
}
else if(a>=256){
a=255;}
out_image[y][x]=a;/*aに格納した値をout_image[y][x]にもどす。*/

}
}

会心の出来だとは思うのですが
0552デフォルトの名無しさん2014/06/23(月) 20:48:51.69ID:gCMZG5du
かいしんのいちげき!
0553デフォルトの名無しさん2014/06/23(月) 21:14:19.55ID:BmnMrvs4
>>543
今気がつきました!
思ったのですがout_imageに戻すときの処理ですが、0と256を忘れてませんか?
0554 ◆0qAv26otVI 2014/06/24(火) 00:21:39.40ID:x7MmALRG
>>551-552 条件を括弧の中に入れた。コメントも気を付けるように。
for(y=0;y<YSIZE;y++)
   for(x=0;x<XSIZE;x++)
    if(x<1 || x>254 || y<1 || y>254)
       out_image[y][x]=in_image[y][x];
    else{
      a = in_image[y][x+1]+in_image[y][x-1]+in_image[y+1][x]+in_image[y-1][x];
      a -= 4*in_image[y][x];
      if(a < 0)
        a = 0;
      else if(a > 255)
        a = 255;
      out_image[y][x] = a;
    }
0555デフォルトの名無しさん2014/06/24(火) 00:30:29.52ID:gKXrKGrX
>>554
コメントとは?
0556 ◆0qAv26otVI 2014/06/24(火) 09:21:40.73ID:x7MmALRG
コメントも付けるように。
0557デフォルトの名無しさん2014/06/24(火) 20:10:16.97ID:4MR8qoMd
【質問テンプレ】
[1] 授業単元:工学情報実習II
[2] 問題文(含コード&リンク):http://i.imgur.com/2IHDmSs.jpgのコースをライントレースカーで最短で走るプログラムを考えなさい。
センサーは5センサーとしセンサー部分の反応プログラムはSwitch文で作成すること

[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (MPLAB ide 最新ver)
 [3.3] 言語: (C++ ,PIC)
[4] 期限: ([2014年06月25日9:00まで] )
[5] その他の制限: (C++ <pic.h>で走行プログラムを書く)

最短で走る案とそれに伴うプログラムが思いつきません。
よろしくお願いします。
0558デフォルトの名無しさん2014/06/24(火) 20:12:00.80ID:nNYqUb+/
>>557
実物の基盤なしでどうやって開発する気だよ。
0559デフォルトの名無しさん2014/06/24(火) 20:37:57.79ID:4MR8qoMd
>>558
実機ってこと?
0560デフォルトの名無しさん2014/06/24(火) 20:40:02.62ID:nNYqUb+/
>>559
そう。
0561デフォルトの名無しさん2014/06/24(火) 20:51:01.29ID:4MR8qoMd
>>560
実機ならあるんだが、今手元にないんだ
0562デフォルトの名無しさん2014/06/24(火) 20:52:42.96ID:nNYqUb+/
>>561
いや、他人がその仕様わからないのにどうやって開発するんだ?
0563デフォルトの名無しさん2014/06/24(火) 21:01:56.98ID:cZTSbkSS
>>562
仕様書があるんでしょ
0564デフォルトの名無しさん2014/06/24(火) 21:04:51.94ID:4MR8qoMd
>>563
手作りだから仕様書なんてないんすよ
とりあえず実機外観のっけとくhttp://i.imgur.com/q0AdXdk.jpg
0565デフォルトの名無しさん2014/06/24(火) 21:07:52.50ID:nNYqUb+/
うん。俺無理。
だいたい俺VCしか触ったことないもん。LOL。
0566デフォルトの名無しさん2014/06/24(火) 21:08:19.47ID:81HQyHHG
外観じゃなくてさw
センサーの位置とか取得できる情報の種類とか値の範囲とかは
0567デフォルトの名無しさん2014/06/24(火) 21:10:06.55ID:81HQyHHG
あとどうやって車体を制御できるのか
速度・旋回量みたいに制御できるようになってるのかモーターへの出力を直接制御するのかとか
その辺おそらくサンプルプログラムか何かあるんでしょ
0568デフォルトの名無しさん2014/06/24(火) 21:11:31.19ID:cZTSbkSS
>>564
各パーツごとの仕様書はあるでしょ?
市販のパーツを組み立てたのではなく
パーツレベルで手作りなの?
0569デフォルトの名無しさん2014/06/24(火) 21:11:59.66ID:4MR8qoMd
>>566
センサーは前面配置だけど取得できる情報って何?

一つ言えるのはデジタル出力ってことぐらいしか手元の資料では分からんな。
0570デフォルトの名無しさん2014/06/24(火) 21:16:45.51ID:MKS7z3Yf
先生に、「2chで聞くのに必要な資料一式ください」とお願いしなさい
0571デフォルトの名無しさん2014/06/24(火) 21:21:06.02ID:CuwkEz2Q
明日の朝までって、今すぐ先生に電話するしかないね
そもそもどんだけ課題放置してたんだよ
0572デフォルトの名無しさん2014/06/24(火) 21:24:20.85ID:4MR8qoMd
>>567
デフォルトプログラム載っけといたよ
http://codepad.org/seEefNUd
0573デフォルトの名無しさん2014/06/24(火) 21:26:05.50ID:4MR8qoMd
>>570
>>571
んー。
他の奴で手が回らなかった
0574デフォルトの名無しさん2014/06/24(火) 21:31:23.36ID:nNYqUb+/
タートルグラフィックか。懐かしー。
0575デフォルトの名無しさん2014/06/24(火) 21:33:26.36ID:4MR8qoMd
>>574
タートルグラフィック?
そんなの習ってないんだが
0576デフォルトの名無しさん2014/06/24(火) 21:34:26.27ID:nNYqUb+/
>>575
教養だと思ってくれ。
0577デフォルトの名無しさん2014/06/24(火) 21:36:46.76ID:4MR8qoMd
>>576
へーい
0578デフォルトの名無しさん2014/06/24(火) 21:41:29.68ID:81HQyHHG
デフォルトプログラムだとどんな動きするの?ふらふらしながらライントレースする?
ふらふらするならPID制御でも入れる
ふらふらしないならもうそれが最速じゃね
0579デフォルトの名無しさん2014/06/24(火) 21:44:30.33ID:4MR8qoMd
>>578
センサーの感度調整してスムーズに走る
でも、コースショートカットしてもいいから最短を考えろとのことでして
0580デフォルトの名無しさん2014/06/24(火) 21:52:35.41ID:nNYqUb+/
マップデータを突っ込まないと無理じゃね?
0581デフォルトの名無しさん2014/06/24(火) 21:52:36.09ID:81HQyHHG
>>579
デフォルトプログラムにしろショートカットOKにしろ最初から全部仕様や前提や条件を書かなきゃ誰も回答できない
ショートカットってどこまで許されてるの?
どこからスタートなの?赤ラインの上?手前?
何をもってゴールとなるの?赤ラインをタイヤが通過したら?
条件なく最速なんて言ったらライントレースなんてせずその場で小さく旋回してゴールしたら終わり
0582デフォルトの名無しさん2014/06/24(火) 22:00:51.88ID:4MR8qoMd
まず、何をもってゴールとなるか
スタート地点から一旦離脱して元の位置に戻ってきた時点でゴールとする

スタート地点は自由
どこに置いても可

ショートカットは基本センサーが反応して最短距離を走行するのが理想だけどセンサー無視してもおk

仕様に至ってはなんて書けばいいか分からない。
0583デフォルトの名無しさん2014/06/24(火) 22:01:17.33ID:PCFwbuYg
制御工学の範囲だろ?
こういうのはトライアンドエラーでなんとかするもの
実物ないと無理
0584デフォルトの名無しさん2014/06/24(火) 22:07:01.59ID:81HQyHHG
>>582
581で言ったとおりその場で小さく旋回して1周したら終わりでよくない?
ゴールで止まる必要もないのであれば↓でいいんじゃね

switch(sensors){
// センサ入力からラインの外れ具合により
// 曲がり具合と直進具合を判断する
default:
move_left(); // 左へ1ステップ
break;
}
0585デフォルトの名無しさん2014/06/24(火) 22:07:37.01ID:4MR8qoMd
>>583
トライアンドエラーの前にどこをショートカットできるかそれすら思い浮かばない
0586デフォルトの名無しさん2014/06/24(火) 22:07:46.60ID:949Uh9AG
>>582
>スタート地点から一旦離脱して元の位置に戻ってきた時点でゴールとする
すげー簡単じゃん
1cmバックして、1cm前進する
0587デフォルトの名無しさん2014/06/24(火) 22:07:55.55ID:nNYqUb+/
自己認識からプログラムしないと無理ゲーのような気がする。つまりむりげー。
0588デフォルトの名無しさん2014/06/24(火) 22:10:10.26ID:nNYqUb+/
本体改造してカメラつけて画像認識するとかそういうレベルのような気がする俺素人。
0589デフォルトの名無しさん2014/06/24(火) 22:12:21.78ID:4MR8qoMd
>>588
画像認識までできない。
というか、あんな小さいひょうたん型コースで画像認識させる意味なくね?
0590デフォルトの名無しさん2014/06/24(火) 22:13:35.27ID:nNYqUb+/
ん?マシンはそのひょうたんを認識してませんよ。
認識してるのは君自身だ。
0591デフォルトの名無しさん2014/06/24(火) 22:16:11.56ID:81HQyHHG
>>589
究極のショートカットだけど>>584や>>586じゃダメなの?
その辺の条件は指定されてなくて曖昧なの?
0592デフォルトの名無しさん2014/06/24(火) 22:18:36.87ID:nNYqUb+/
まぁ、プレゼンの時に、一発ネタでーす。とか言ってお茶濁すとかが最善手のような気がしないでもない。
0593デフォルトの名無しさん2014/06/24(火) 22:19:18.49ID:4MR8qoMd
>>591
極論はそれでもいいかもしれないですが流石に...

何をもってゴールとするのかが担当から何も言われてないので曖昧です
0594デフォルトの名無しさん2014/06/24(火) 22:29:31.10ID:nNYqUb+/
イニシャライザの作れないようなものをどうしろと・・・。
0595デフォルトの名無しさん2014/06/24(火) 22:30:15.69ID:81HQyHHG
最低限センサー使ってますよアピールしながら短くするなら以下くらいか

ひょうたんのくびれ部分をスタート・ゴール地点として
スタート直後に90度旋回(ステッピングモータどれだけ回したら90度になるかは実測して試す)
ライン(ひょうたんのくびれの逆側)を検出するまで直進
検出したら180度旋回(旋回しすぎるとゴールしなくなるので170度くらいでもいいかも)
ラインを検出するまで直進
90度旋回しつつライントレースすればきれいにゴール
0596デフォルトの名無しさん2014/06/24(火) 22:35:53.95ID:4MR8qoMd
>>595
くびれからくびれまで往復すれば確かにゴールになるかと

言ってることは分かるけどプログラムが分からん
0597デフォルトの名無しさん2014/06/24(火) 22:37:48.23ID:ymkxFoq5
ショートカット可って事は、ラインが真っ直ぐになっている点(4箇所)を通る真円でも良いんでは?
まあそのためには最低1周してからショートカットを計算することになるが。
0598デフォルトの名無しさん2014/06/24(火) 22:52:57.04ID:cZTSbkSS
日本語不自由な課題ってアカハラだよな
0599デフォルトの名無しさん2014/06/24(火) 22:54:23.03ID:PCFwbuYg
まずきちんとフィードバック制御してライントレースできるものを目指せよ
0600デフォルトの名無しさん2014/06/24(火) 22:55:00.27ID:4MR8qoMd
>>598
手作りで仕様なんか分かるかよ
特に制御プログラ不得意なのに...
0601デフォルトの名無しさん2014/06/24(火) 22:59:49.79ID:5U6yDrEO
>>572
すでにライントレースするロジックになってる気がするが。
光センサは5つもあるの?
0602デフォルトの名無しさん2014/06/24(火) 23:00:07.24ID:PCFwbuYg
>>598
演習なら質問すりゃ良いだけだしそれ前提だろ
あと多分日本語が不自由なのは課題出題者じゃない
0603デフォルトの名無しさん2014/06/24(火) 23:01:49.40ID:4MR8qoMd
>>572
前は3センサーだったんだけどより検出率を高くしようとしたら5センサーになった
0604デフォルトの名無しさん2014/06/24(火) 23:01:53.29ID:5U6yDrEO
あとタイマが何時動くのか全然分からん。
int_subってシンボル名をフレームワーク側で定期的に呼ぶのだろうか。
0605デフォルトの名無しさん2014/06/24(火) 23:08:43.34ID:5U6yDrEO
>>603
(1) (2) (3) (4) (5)という光センサの配置だとして、
(2)から(4)の距離が黒線の幅よりも大きいなら、(1)と(5)が役立つケースは少ない。
CPUパワーが低くかったり、急カーブがあった場合に、(2)と(3)がON、あるは(3)と(4)がONのケースを見逃す可能性を見越してるってこと?
正直モータの加減でその辺はどうにかなるんじゃないかなぁ。

そもそもライントレースプログラミングは光センサが1つでどうにかするものが多い。
0606デフォルトの名無しさん2014/06/24(火) 23:11:37.24ID:4MR8qoMd
>>604
プログラムの端から端まで理解してるわけじゃないんで、答えれんわ...

すまん
0607デフォルトの名無しさん2014/06/24(火) 23:17:30.65ID:4MR8qoMd
>>605
5センサーにしたのはどっかのセンサーが見逃してもサブつまり奥のセンサーが対応して曲がるように5センサーにしてるわけでして。

例
(1)(2)(3)(4)(5)のうち、(2)(3)が反応するはずが反応しなかった場合(1)で対処するみたいな
0608デフォルトの名無しさん2014/06/24(火) 23:27:46.40ID:WxM8Xv0V
if(conf !='y') printf("y/nのいずれかを入力して下さい");

ある本の問題で、この文を「y,Y,n,N」以外の場合にするにはどうしたらよいでしょうか?
「y」だけなら動くのですが、複数の条件が上手く扱えず常に真になっちゃって…
0609デフォルトの名無しさん2014/06/24(火) 23:32:26.03ID:dXh+GD5r
>>608
if((conf != 'y') && (conf != 'Y') && (conf != 'n') && (conf != 'N')) printf("y/n or Y/Nのいずれかを入力してください。\n");
0610デフォルトの名無しさん2014/06/24(火) 23:35:41.84ID:5U6yDrEO
>>607
ショートカットをせずに、愚直にライントレースするなら、
(1) move_forwardとmove_right/leftの回数を調整する(move_forward多め)。
(2) ハード仕様上できるのかしらんが、wait_msの時間を短くする。
(3) ハーry)、モータの駆動量を4ステップより多いステップにする。
くらいしかないっぽい。
0611デフォルトの名無しさん2014/06/24(火) 23:35:51.46ID:WxM8Xv0V
>>609
ありがとうございます!

ずっと論理和に固執してました…
06126102014/06/24(火) 23:48:13.70ID:5U6yDrEO
俺、大嘘ついてるな。
>>578が言うように、PID制御を実装して係数を調整するのがロジック改善として最適だね。
センサー5つだと実装例ないだろうけど。
0613デフォルトの名無しさん2014/06/24(火) 23:54:16.83ID:4MR8qoMd
>>612
そのPID制御を実装すると具体的にどうなるん?
調べて見たけど理解してるできん。
0614デフォルトの名無しさん2014/06/25(水) 00:00:11.04ID:ISX3vtdj
>>613
PID制御を入れると、カーブの入口付近はギザギザ走行になるが、そのうちカーブに沿ったモータ制御になっていく。
極端な話、円だとそのうちギザギザ走行じゃなくなる。
>>572のプログラムだとカーブでは常にギザギザ走行になる。
左右のモータの回転数を変えられることが必須。
0615デフォルトの名無しさん2014/06/25(水) 00:06:34.53ID:Jzh1k5/v
>>614
んー。
あまり入れる価値がなさそうな気がしてならないんだが

用は滑らかさを増すということかな...
0616デフォルトの名無しさん2014/06/25(水) 00:23:18.50ID:ISX3vtdj
滑らかさというか、ラインに沿った動きが実現できる。
ライントレースのロジックとしては最強だよ。
カーブが多いと5割くらい時間が変わってくるんじゃないか。
ttps://www.youtube.com/watch?v=n5nk0yMJOT8
0617デフォルトの名無しさん2014/06/25(水) 00:31:15.34ID:Jzh1k5/v
>>616
0618デフォルトの名無しさん2014/06/25(水) 00:32:22.68ID:Jzh1k5/v
じゃあ、今回のコースは比較的カーブが多いから入れた方がいいのかな。
0619デフォルトの名無しさん2014/06/25(水) 00:32:25.33ID:AAoe56mb
>>578に対して>>579の返答をしてる時点でもしやとは思っていたが案の定何の理解もしてなかったな
0620デフォルトの名無しさん2014/06/25(水) 00:41:03.68ID:ISX3vtdj
余力があれば。
ただし、プログラムの改変、サンプリング回数の調整、係数の調整が工数として掛かる(係数調整だけでも結構だるい)。
ハード開発込みの講義だとしたら、コスト単価も意識できると将来役に立つかもな。
0621デフォルトの名無しさん2014/06/25(水) 08:32:07.43ID:KznGqNfn
pid制御
0622デフォルトの名無しさん2014/06/25(水) 08:36:14.29ID:KznGqNfn
誤送信
0623デフォルトの名無しさん2014/06/25(水) 19:25:19.80ID:wig5YSH+
[1] 授業単元:グラフ理論
[2] 問題文(含コード&リンク):
貪欲法を用いてグラフの全ての点を通る最短閉路長を求めるプログラムを作りなさい。

グラフの点の数、点間の距離は最初に入力させること。

貪欲法の手順は

�@全ての点間の距離を長さ順に並べる
�A空の閉路から始め、点間の距離を短い順に調べ、それが以下の条件を満たすなら閉路に加える

・点の次数が3を超えない
・全ての点を回らない様な閉路を作らない

よろしくお願いします。
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2014年6月28日17:00まで
[5] その他の制限:
0624デフォルトの名無しさん2014/06/25(水) 21:13:42.85ID:DxJgguqg
TSPを貪欲法で解いたら最短の保証が無いじゃないか
0625デフォルトの名無しさん2014/06/25(水) 23:23:57.10ID:uuSVt8Cj
>>624
他にもNearest neighbor法やNearest addition法でプログラムを組んでいる最中で、それらとの比較なので大丈夫です
0626デフォルトの名無しさん2014/06/26(木) 00:02:26.05ID:ipx8s2Bd
>>625
じゃあそいつらを改良すれば貪欲法にできるよね
0627デフォルトの名無しさん2014/06/26(木) 19:48:45.06ID:hIqK/FJL
>>626
そうなんですけどいまいちやり方が思いつかなくて

まず点間の距離を配列に格納して、それを長さが短い順に判定するのかなと思ったんですけど、例えば同じ長さがあった時どっちを選ばせるのかとか
そもそも配列の中身を長さ順に並べ替えるべきなのかとか

教えていただけませんか
0628デフォルトの名無しさん2014/06/26(木) 20:49:52.95ID:Cm5OpuPA
>>623 の
>>・点の次数が3を超えない
って次数3はありってことだよね?
それって閉路にならなくない?

なんか勘違いしてるかな
0629デフォルトの名無しさん2014/06/26(木) 21:49:06.06ID:svCBA0Nl
>>628
すいません、次数は3未満ですね
3は無しでした
0630デフォルトの名無しさん2014/06/27(金) 01:17:38.49ID:mIIoYUoS
>>623
意外と難しい。合ってるのか分からんけど
http://codepad.org/KxHiIC71

なお点の数は固定で、点間の距離は乱数で決めてる
題意を満たすには、構造体などをmallocで動的に確保すればいい
0631デフォルトの名無しさん2014/06/28(土) 12:18:19.76ID:UdsgUvF6
【質問テンプレ】
[1] 授業単元:画像処理
[2] 問題文:ソースコード
http://codepad.org/5RLy9iUt
 [3.1] OS:Windows7
 [3.2] Visual Stdio 2010
 [3.3] 言語:C++
[4] 期限: ([2014年7月1日15時00まで])
[5] その他の制限:ヒストグラムを作りそれをExcelでグラフ化するのが目的です。
         一応値は求められているとは思うのですが
         それを出力できません。使用する画像はLAX.bmpやgirl.bmpといった有名どころの画像です
0632デフォルトの名無しさん2014/06/28(土) 17:36:39.28ID:9IkoF3d8
>>630
なるほど、構造体を使って配列に格納してクイックソートすれば良かったんですね

コメントも多くてすごくわかりやすいです

大変参考になりました
このコード見ながらですけどなんとか作れました
ありがとうございました
06336302014/06/29(日) 18:41:25.14ID:s1CDyW9K
>>632
あー・・。qsortの比較関数は、(たまたま結果は変わらないけど)、よくなかったね
構造体の比較してるんだからこうでないと。

int comp(struct line *a, struct line *b) {
  if(a->dist == b->dist) return 0;
  if(a->dist > b->dist) return 1;
  return -1;
}
0634デフォルトの名無しさん2014/06/29(日) 19:02:37.66ID:gs1K0ves
>>633
return a->dist - b->dist;
でいいんじゃない?
0635デフォルトの名無しさん2014/06/29(日) 19:22:15.85ID:s1CDyW9K
>>634
あー、確かにそれでいいですね。なるほど
0636デフォルトの名無しさん2014/06/29(日) 19:34:18.71ID:gs1K0ves
>>635
と思ったけど
オーバーフローするな
0637デフォルトの名無しさん2014/06/29(日) 19:43:35.72ID:tPOi50qg
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク) : マップ上でのシンボルエンカウントシステムを作成
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2010
 [3.3] 言語: C
[4] 期限: 2014/06/30 午前10:00
マップを書けてプレイヤーと敵と重なった時に「モンスターが現れた!」と表示されればOKです
期限が明日までなのは本当申し訳ございません、よろしくお願い致します
0638デフォルトの名無しさん2014/06/29(日) 21:25:40.82ID:g7QOhf2W
マップとは?マップが書けるとはマップエディタがいるということ?
ローグみたいな文字だけのUIでよいの?それともGUIが必要?
0639デフォルトの名無しさん2014/06/29(日) 21:31:25.94ID:tPOi50qg
>>638
コンソールアプリケーション上で動作するだけでいいので文字だけでダイジョブです
0640デフォルトの名無しさん2014/06/30(月) 08:04:40.79ID:43q2q8K9
それ宿題じゃないだろ
個人的に欲しいコードをここで他人に書かせようとしてるんだろ
誰がボランティアするかよばーか
0641デフォルトの名無しさん2014/06/30(月) 09:58:57.89ID:AfjkCyjj
ふぇぇ……ごめんね
ガチで宿題だったんだけどもう期限きちゃったから消えます
0642デフォルトの名無しさん2014/06/30(月) 15:05:01.48ID:OY6iMqoP
[1] 授業単元:プログラミング技術β
[2] 問題文(含コード&リンク) : 16進数で入力されたふたつの整数の和と差を計算して、16進数と10進数で出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: windows8.1
 [3.2] コンパイラ名とバージョン: Visual Studio 2013
 [3.3] 言語: C++
[4] 期限: 2014/07/01 午前8:00まで

10進数同士の計算方法は分かりますが16進数同士での計算方法及び計算結果の16進数を10進数に変換するところが分かりません。
0643デフォルトの名無しさん2014/06/30(月) 16:30:10.45ID:sPLHYeev
>>642 https://ideone.com/5dmOqK
0644デフォルトの名無しさん2014/06/30(月) 18:35:57.15ID:OY6iMqoP
>>643
%xっていうのが16進数?

あと、16進から10進に変換されてる部分教えてもらってもいいすか?
0645デフォルトの名無しさん2014/06/30(月) 19:46:04.52ID:w9GeHa8v
>>637
出来た。
http://codepad.org/Q9g1ayjs

ハラハラの大冒険なんだぜ
0646デフォルトの名無しさん2014/06/30(月) 21:24:30.05ID:sPLHYeev
>>644
16進から10進に変換なんてしてない、CPUは10進で計算しない(しいていうなら出力printfの%d)
16進入力(scanf %x)→CPUで計算(2進とかいわれる)→16進出力(printf %x)、10進出力(printf %d)
0647デフォルトの名無しさん2014/06/30(月) 23:02:42.37ID:OoeeUvmn
>>644
strtolで調べたらいいんでね
0648デフォルトの名無しさん2014/06/30(月) 23:34:43.68ID:OY6iMqoP
>>646
>>647
ありがと。
頑張ってみるわw。
0649デフォルトの名無しさん2014/07/01(火) 19:23:17.82ID:rsNQNidm
>>631
画像でヒストグラムを初めから求めてはダメなのかい?
0650デフォルトの名無しさん2014/07/01(火) 22:45:12.56ID:ZD0/KFYR
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
問題文が長いので上の掲示板に投稿します。
投稿者は650です
[3] 環境
 [3.1] OS: Windows8
 [3.2] コンパイラ名とバージョン: Visual Stdio 2010
 [3.3] 言語: C
[4] 期限: 2014/07/03 13時まで
[5] その他の制限:
自分でも考えてみましたが、よくわかりません.
よろしくお願いします.
0651デフォルトの名無しさん2014/07/02(水) 02:34:38.96ID:n8Tbw93l
>>650
nameフィールドが1つだと、アルファベット順ソートが面倒。
nameフィールドを2つ(name1,name2 など)にしても良いのかな。
0652デフォルトの名無しさん2014/07/02(水) 03:24:16.31ID:t1pcmsUt
[1] 授業単元:プログラミング技術β
[2] 問題文(含コード&リンク) : 次のようなデータを扱う4個の変数を宣言して、キーボードから整数値を入力して、入力結果を出力するようなプログラムを作りなさい。
ただし、入力はそれぞれ、「身長=」などと表示した後に続けて入力させるものとする。また、出力もそれぞれ「身長=」などに続けて表示し、改行するものとする。

身長のデータ sintyou
各クラスの人数 ninzuu
各教科の平均点 heikin
都市の人口 zinkou

[3] 環境
 [3.1] OS: windows8.1
 [3.2] コンパイラ名とバージョン: Visual Studio 2013
 [3.3] 言語: C++
[4] 期限: 2014/07/03 午前7:00
授業時間一杯考えたのですがさっぱり分かりません。
よろしくお願いします。
0653デフォルトの名無しさん2014/07/02(水) 09:03:24.45ID:3cCDtBQQ
>>651
構造体のメンバは変えないでほしいです
0654デフォルトの名無しさん2014/07/02(水) 09:26:32.66ID:Zc6Wfmex
>>651
まあそうだけど、2つの構造体の前後関係を名前で判定する関数を作っておけば、qsortに渡すだけだな。
qsort禁止なら自分でバブルソートなり組んで比較時にその関数呼ぶだけ。
0655デフォルトの名無しさん2014/07/02(水) 09:29:18.01ID:Zc6Wfmex
>>652
printfとscanfの組を4回実行して
scanfを4回実行するだけ
0656デフォルトの名無しさん2014/07/02(水) 16:43:09.23ID:yz5g0sWi
>652
#include<stdio.h>
int main(void){
int sintyou,ninzuu,heikin,zinkou;
printf("入力\n");
printf("身長=");
scanf("%d",&sintyou);
printf("人数=");
scanf("%d",&ninzuu);
printf("平均=");
scanf("%d",&heikin);
printf("人口=");
scanf("%d",&zinkou);
printf("\n結果\n");
printf("身長=%d\n",sintyou);
printf("人数=%d\n",ninzuu);
printf("平均=%d\n",heikin);
printf("人口=%d\n",zinkou);
return 0;
}
0657デフォルトの名無しさん2014/07/02(水) 16:58:28.35ID:z63CcN3Z
>>650
ttp://ideone.com/lTbY3z
0658デフォルトの名無しさん2014/07/02(水) 18:28:52.62ID:DNTNWI96
>>652
ひどい変数名だ。出題者は中学生だな(名推理)
0659デフォルトの名無しさん2014/07/03(木) 01:35:11.81ID:G4K8x6+j
#include <stdio.h>
void sort(int h[],int i,int n,int *max,int *min){
int j,t;
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(h[i]<h[j]){
t=h[i];
h[i]=h[j];
h[j]=t;
}
}
}
*max=h[0];
*min=h[n-1];
}
main(){
int i,num=5,max_h,min_h;
int height[]={178,165,182,123,300};
sort(height,i,num,&max_h,&min_h);
printf("max=%d min=%d\n",max_h,min_h);
}
をcodepadでコンパイルしたら
max=300 min=123
Exited: ExitFailure 16と表示されました。
間違ってる部分が分からないので教えてください。
06606592014/07/03(木) 01:41:11.31ID:G4K8x6+j
分かりにくかったので付け足させていただきます。
Exited: ExitFailure 16と表示される原因を教えてください
0661デフォルトの名無しさん2014/07/03(木) 01:49:59.32ID:fSGuHXOL
mainの戻り値を明示しないからコンパイラが補完して、
printfの戻り値がmainの戻り値に使われてるんだろ。激しく処理系依存。
0662デフォルトの名無しさん2014/07/03(木) 01:59:07.90ID:SrSeBeNJ
>>657
ありがとうございます
解決できました
06636592014/07/03(木) 02:30:14.68ID:G4K8x6+j
>>661
なんと!?戻り値明示してないじゃないか私の馬鹿
ありがとうございます助かりました
0664デフォルトの名無しさん2014/07/03(木) 04:51:56.11ID:mpJLProE
sortのiが激しく謎
0665デフォルトの名無しさん2014/07/04(金) 13:10:24.68ID:MiP+bQJe
30代後半で漫画家になろうとしている童貞ひきこもりなバカを発見
足立区に住んでいるそうだ。
http://inumenken.blog.jp/archives/7002197.html
0666デフォルトの名無しさん2014/07/04(金) 15:12:23.23ID:UPjF9R78
3. 名無し 2014年06月19日 03:07
普通の人なら童貞の書いた漫画なんか読みたく無いと思いますよ。
童貞の触った物には触れたく無いですよね。気持ち悪い。
0667 ◆QZaw55cn4c 2014/07/05(土) 09:52:35.01ID:NUdHoME9
        ,'   ヽ ',                  ,/    ',
       ,'.    ヽヽ              //      ヽ
      ,'        ヽ、         ,._='ヘ.!       ',
.      i  、      ヽ ヽ      ''"    !!         ',
     i  ヽ      `ヽ、 ` 、      ハ /´     i
     i   ヽ、       二ー 、ヽ     |! i _,,,,,,,,_  ノ
.    i.ヽ! ヽ   ヽ、     ,. ,.-=、、ヽヽ.   / !'""ー-   ,'
   i.!ヽ.ヽ、ヽ、 ヽ、ー-/ !::O:.i ヽ  -=/-/ 'T:::エヽ ,'
    !  ヽヽ  ヽ  ヽ、. `` ' ー ' '"/  /'  i 、    /',
.    !  , 〉 、 ヽ   ` 、 _  _ /_, ィ´   ! ` ー ´  !
   i  i  ノ ヽ  ヽ、       /´     i      !
.    ', ヽ !、 ヽ   ヽ、       ' .,. 、     !、     /
    ヽ  ヽ.'  ', ヽ、、 ヽ、      ,'         ',   ,イ
     ヽ  i  ', ヽ` 、 ` 、    '-‐‐、  ,.-〈   / i
       ',  ノ 、ヽ  ヽ 、`ー 、`ヽ      ̄  ',  ! i
       ".! ! ヽヽ  ヽ` ー 、`__ ' " `  -‐ 、  / .! i   かく言う私も童貞でね・・・
        i .!   ヽヽ、 `ヽ、 `` ー-`二ニ二>',   !
          ! i   ヽ、    ``ー- 、 _   _ ... '   /
         ! ヽ、   ヽ      ,.   ̄  、   /
0668桃白白 ◆9Jro6YFwm650 2014/07/07(月) 05:59:34.59ID:XhjfpKh1
>>667
知ってるそれw 攻殻機動隊でしょ。
いい話だったよね。
0669デフォルトの名無しさん2014/07/07(月) 06:36:25.92ID:96jMQzaX
>>668
神山健二の予言的なコンセプトは3作とも秀逸、昨今の国際情勢はなんか神山予言があたりそうな雰囲気じゃん
あと音楽は菅野よう子じゃないとね、最近のやつはどっちもだめだね
0670デフォルトの名無しさん2014/07/07(月) 10:22:29.72ID:7jUzeIOQ
http://pastebin.com/1LK8FWab
これの正しくない、理由ってなんですか?
0671デフォルトの名無しさん2014/07/07(月) 10:30:09.35ID:quzxXJFx
static がない変数なので、
呼び出される毎に不定な初期値となってる
= 再代入したところで、保持はしない
0672デフォルトの名無しさん2014/07/07(月) 21:23:07.57ID:JT9yWl9Z
何がしたいのか、いまいち不明だが
1,2,3・・・って表示したいんだろか?

正しくない理由は671さんの言う通りです
staticとすべき(?ところがstaticではない
スタック上に確保した変数(total)が不定

ただ、staticにして初期値を与えれば良い
ってもんでもないかも
それだとスレッドセーフではないし、あまり良い
コードだとは思えない
0673デフォルトの名無しさん2014/07/08(火) 00:00:03.63ID:xtKDNVE8
このスレもついに診療所になってしまったか・・・
0674デフォルトの名無しさん2014/07/08(火) 20:00:17.56ID:hLIaJWwe
http://codepad.org/qicJuoxd

余り大げさな質問ではないのでテンプレ使いません。
スケーリングを仕様してコントラストの改善するプログラムが課題で
作ったのですが
何処かまだ簡略化出来る所が有る気がしてそわそわしてます・・・
どうにかできないでしょうか
0675デフォルトの名無しさん2014/07/08(火) 20:17:11.48ID:2XtqBTEe
>>673
いままで違うと思ってたの!?
0676デフォルトの名無しさん2014/07/08(火) 20:18:55.73ID:qu8l/hUZ
>>674
>>468,511,631
0677デフォルトの名無しさん2014/07/08(火) 20:57:35.27ID:hLIaJWwe
>>676
過去の私とは違う!
課題は終わらせたんだ!
0678デフォルトの名無しさん2014/07/08(火) 21:20:36.93ID:gmA7CUbf
解答見せてくれる友達ができたのか。良かったな
0679デフォルトの名無しさん2014/07/08(火) 21:43:50.54ID:hLIaJWwe
>>678
違う違う
0680デフォルトの名無しさん2014/07/10(木) 01:30:37.84ID:7fc4wVJQ
#include <stdio.h>
typedef struct{
char name[20];
int height;
int weight;
}student;

student swap(student sato,student tanaka, student max){
if(sato.height>tanaka.height)max=sato;
if(tanaka.height>sato.height)max=tanaka;
return max;
}

main(){
student sato={"Sato",178,64};
student tanaka={"Tanaka",165,69};
student max;
swap(sato,tanaka,max);
printf("%s: height=%d weight=%d\n",max.name,max.height,max.weight);
return 0;
}
戻り値を用いてheightの大きいほうのデータを出力したいのですが表示されません。
初心者以下の自分にはさっぱりなので間違っている部分を教えてください。
0681デフォルトの名無しさん2014/07/10(木) 01:33:36.79ID:IRdIl+yS
>>680
戻り値を使ってない点
0682デフォルトの名無しさん2014/07/10(木) 01:40:59.22ID:7fc4wVJQ
>>681
ありがとうございます
戻り値使ってなかったですね^^;
0683デフォルトの名無しさん2014/07/10(木) 16:23:31.15ID:gPPo7GSh
[1] 授業単元: 基礎プログラミング
[2] 問題文(含コード&amp;リンク):
�@・キーワードを入力するようにユーザーに促し、キーワードを入力させる(キーワードは「character string」)
・正しく入力されたときは「A」と画面に表示させる
・入力が正しくないときは「B」と画面に表示させる
�A�@を完成させたうえで、入力が正しくないときは、「登録に失敗しました。もう一度正しいキーワードを入力してください。」と表示させ
正しいキーワードが入力されるまで繰り返し入力を促すように拡張する(whileループもしくはdo whileループを使う)

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C++
[4] 期限:2014年7月16日20:00
講義の内容は文字列処理関数です。
授業中考えてもさっぱりわかりませんでした。
�@と�Aの2つです。よろしくお願いします
0684デフォルトの名無しさん2014/07/11(金) 02:37:43.18ID:mTredRn+
こんなもんかな
http://codepad.org/jkWNMwGI
0685デフォルトの名無しさん2014/07/11(金) 09:25:20.02ID:RkLUNntM
>>684
Bと表示してないので不合格
0686デフォルトの名無しさん2014/07/11(金) 14:00:20.47ID:umYaOgi4
>>684
使ってるコードをまだ習ってません…
char、print、if、elseなどを使ってやると思うんですが…
0687デフォルトの名無しさん2014/07/11(金) 14:30:51.48ID:Rhi8lu02
684のコードの中でどれを習ってないのか具体的に書こうよ
0688デフォルトの名無しさん2014/07/11(金) 14:31:13.09ID:B2z/pv99
>>686
C++ じゃなくて C言語なんだよね?
0689デフォルトの名無しさん2014/07/11(金) 15:27:25.38ID:NpwKC5U+
>>683
こうかな。
// �@ http://ideone.com/zJtRAh
// �A http://ideone.com/zdqilV
0690デフォルトの名無しさん2014/07/11(金) 16:09:16.43ID:qaVTv6bd
この手の宿題系での入力は scanf("%s", 変数) だろう
って決めうちすると、ちょーめんどくさいな
0691デフォルトの名無しさん2014/07/11(金) 16:47:51.18ID:9lEqN05L
>>690
しかしなんで宿題出す奴ってscanf教えたがるの?
0692デフォルトの名無しさん2014/07/11(金) 17:26:09.45ID:Rhi8lu02
http://ideone.com/Y4m0bh
scanf使ってできたよー
0693デフォルトの名無しさん2014/07/11(金) 17:34:37.82ID:Txz9qfxA
>>689 の (2) が正解だね。
0694デフォルトの名無しさん2014/07/11(金) 23:35:05.40ID:Rhi8lu02
>>693
なんでそれだけ正解だって言い直すのか
>>692も合ってるじゃないか!
0695デフォルトの名無しさん2014/07/11(金) 23:41:54.76ID:HlACSYaK
>>691
scanf教えたがることよりも、scanf教える癖にscanfの戻り値の使い方を適当に流す事のほうが気になる。
0696デフォルトの名無しさん2014/07/12(土) 01:04:53.38ID:/U4E4eER
scanf( ) について詳しくなっても、にちゃんで >>695 みたいなくそレス返すだけだし
0697デフォルトの名無しさん2014/07/12(土) 16:07:54.87ID:lIxtjWqv
[1] 授業単元: プログラミング基礎
[2] 問題文
�@以下のプログラムを作成しなさい.
文字列を入力して、
その文字列が数字であるかどうか調べる
(符号も対応すること)
(数字は、intの範囲内で)
(0023は、数字として扱う)
実行例)
1234 入力
number 出力
1234abncdef 入力
string 出力
ab^d34x 入力
string 出力
-92837 入力
number 出力
+37 入力
number 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月14日0:00

丸投げですがよろしくおねがいします。
0698デフォルトの名無しさん2014/07/12(土) 16:08:58.76ID:lIxtjWqv
[1] 授業単元: プログラミング基礎
[2] 問題文
�A以下のプログラムを作成しなさい.
5件の数字を入力し、上位3位までの
数字を順に表示する
(数字の大きい順)

実行例)
22 入力1
30 入力2
10 入力3
40 入力4
2 入力5
40 30 22 出力
123 入力1
25 入力2
294 入力3
-100 入力4
80 入力5
294 123 80 出力
-20 入力1
-25 入力2
-394 入力3
-50 入力4
-80 入力5
-20 -25 -50 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月14日0:00
0699デフォルトの名無しさん2014/07/12(土) 17:30:17.32ID:/m0mM/Do
>>697
flex使わないと頭が悪いコードになるね。
http://ideone.com/5C5Yf8
0700デフォルトの名無しさん2014/07/12(土) 17:31:21.46ID:veA4ls8K
>>697
ttp://ideone.com/X81qVA
0701デフォルトの名無しさん2014/07/12(土) 17:35:18.53ID:/m0mM/Do
atoi便利でワロタ
0702デフォルトの名無しさん2014/07/12(土) 17:40:23.01ID:unKWHDeN
>>697 http://ideone.com/FevxYG
>>698 http://ideone.com/tcJ983
0703デフォルトの名無しさん2014/07/12(土) 17:48:36.18ID:unKWHDeN
>>699
fgetsだからと言って最後に改行がある前提にはしないほうがよいよ
>>700
「00」がstringになるね
(0023は、数字として扱う)と言ってるから数字にしたほうがよさげではないか
実行例にないから何とも言えないけど
0704デフォルトの名無しさん2014/07/12(土) 17:56:37.69ID:/m0mM/Do
1234[EOF]の場合にまずいのか。>>697はクソコードだ。
intの範囲でって記述があるからatoiとscanf系が出題者の意図なんだろうね。
0705デフォルトの名無しさん2014/07/12(土) 17:59:49.80ID:veA4ls8K
>>700
>>697
手抜き。
< strcat(buf, "0");
---
> strcat(buf, "1");
0706デフォルトの名無しさん2014/07/12(土) 18:05:15.27ID:unKWHDeN
なるほど思いつかなかった
0707デフォルトの名無しさん2014/07/13(日) 18:16:45.76ID:IpWwiGPd
[1] 授業単元: プログラミング基礎
[2] 問題文
3 と 5 または両方を調べるプログラムを作る。
�@数を1からカウントしていく
�Aカウントする上限を尋ねる
�B3の倍数の時、「アホになる」と表示
�C5の倍数の時、「バカになる」と表示
�D3と5の倍数の時、「ボケカス」と表示
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2008
 [3.3] C
0708デフォルトの名無しさん2014/07/13(日) 18:32:52.52ID:/A7mwUNZ
>>707
ネタお断り
0709デフォルトの名無しさん2014/07/13(日) 20:14:19.30ID:881ltTtV
順番通り実装すると�Aが実行されない
0710デフォルトの名無しさん2014/07/13(日) 20:21:27.56ID:7mpUtnIe
>>707
おまえのアタマのなかでやってろ
持ちこんでくるなボケカス
0711デフォルトの名無しさん2014/07/13(日) 20:44:04.27ID:5l7F/jSZ
大学でFizzBuzz問題って言われたんだが・・・
0712デフォルトの名無しさん2014/07/13(日) 21:18:53.94ID:/A7mwUNZ
>>711
それでググれば山ほど解答例が出てくるから好きなのコピペして出しとけ
ここで回答してもらってもコピペするだけだろ
0713デフォルトの名無しさん2014/07/13(日) 23:48:47.36ID:6cgxdczx
FizzBuzzって何?
0714デフォルトの名無しさん2014/07/14(月) 06:39:28.09ID:7GRxvXCW
FizzBuzzとは大分違うけどね。
0715デフォルトの名無しさん2014/07/17(木) 19:27:11.74ID:GZBYDlnm
[1] 授業単元: プログラミング基礎
[2] 問題文:英語、理科の点数を整数として入力し、高い方の点数を表示しなさい。
(同じ点数の時はどちらの点数が表示されてもよい。)
[3] 環境
  OS: Windows7
  言語: C
[4] 期限:急ですが明日中までにお願いします
何卒ご教示お願いします。
0716デフォルトの名無しさん2014/07/17(木) 19:31:56.41ID:GZBYDlnm
[1] 授業単元: プログラミング基礎
[2] 問題文:整数を1つ入力し、その数の倍数を1倍から5倍まで表示させなさい。
(例:入力を2とすると「2 4 6 8 10」と表示)
[3] 環境
  OS: Windows7
  言語: C
[4] 期限:明日中までにお願いします
0717デフォルトの名無しさん2014/07/17(木) 20:40:18.50ID:+37EBU2h
>>715
その課題出されるまでに教わったサンプル全部見せてみろ
0718デフォルトの名無しさん2014/07/17(木) 20:43:19.91ID:70T+J4W5
#include <stdio.h>

main()
{
  char buf[100];
  int eigo,rika;

  printf("英語の点数 :");
  fgets(buf,100,stdin);
  sscanf(buf,"%d",&eigo);
  printf("理科の点数 :");
  fgets(buf,100,stdin);
  sscanf(buf,"%d",&rika);

  if( eigo > rika )
    printf("\n英語の点数は %d です。\n",eigo);
  else
    printf("\n理科の点数は %d です。\n",rika);
}
0719デフォルトの名無しさん2014/07/17(木) 20:46:52.46ID:70T+J4W5
#include <stdio.h>

main()
{
  char buf[100];
  int eigo;

  printf("整数を入力 :");
  fgets(buf,100,stdin);
  sscanf(buf,"%d",&eigo);

  printf("\n%d %d %d %d %d\n",eigo,eigo*2,eigo*3,eigo*4,eigo*5);
}
0720デフォルトの名無しさん2014/07/17(木) 20:53:15.60ID:Kqtj7lna
fgetsの使い方わかりません・・・orz
stdinはわかるんですが・・・
0721デフォルトの名無しさん2014/07/17(木) 20:55:58.08ID:GZBYDlnm
>>718
>>719
さっそくのご回答ありがとうございます。
fgets関数などの関数を使わずに出来る方法はないのでしょうか
0722デフォルトの名無しさん2014/07/17(木) 21:00:06.01ID:oG7QfsM9
>>720
stdinの使い方にfgetsは含まれる
>>720-721
fgets以外にも使えない関数があるあろうから使える関数を提示したほうが
0723デフォルトの名無しさん2014/07/17(木) 21:31:08.18ID:+37EBU2h
>>722
だから何を習ったかの確認が先なんだよ
0724デフォルトの名無しさん2014/07/17(木) 21:37:02.55ID:wKNmXy3y
fgetsは文字列として入力だから
整数として入力って前提が破綻してる
0725デフォルトの名無しさん2014/07/17(木) 23:23:02.79ID:GZBYDlnm
c言語
0726デフォルトの名無しさん2014/07/17(木) 23:24:04.83ID:GZBYDlnm
[1] 授業単元: プログラミング基礎
[2] 問題文:10個の整数を入力し配列に保存した後、入力された数字の中に
5の倍数が含まれているかを調べ、含まれていた時には「5の倍数が含まれています」
含まれていない時に「5の倍数が含まれていません」と表示するプログラムを作りなさい。

よろしくお願いいたします。
0727デフォルトの名無しさん2014/07/18(金) 07:35:39.20ID:RMNUzhlR
>>726
array[i] % 5 == 0で5の倍数
後は自分でやれば
0728デフォルトの名無しさん2014/07/18(金) 09:10:27.24ID:+Avqvx3X
ヒントを参考に考えて作ったのですが、以下の通りでよろしいでしょうか
#include <stdio.h>
main()
{
int i;
double c[10];
for (i = 0; i < 10; i++)
{
printf("整数を10個入力してください.(%d つ目) : ", i+1);
scanf("%lf", &amp;c[i]);
}
if(c[i] % 5 == 0){
printf("5の倍数が含まれています\n");
}
else{
printf("5の倍数が含まれていません\n");
}
return 0;
}
0729デフォルトの名無しさん2014/07/18(金) 09:38:07.05ID:zESUzG0I
>>728
結果表示がおかしい
0730デフォルトの名無しさん2014/07/18(金) 17:00:13.36ID:Q3IJCalo
printf("います"); のあとで break;
else 消してprintf("ません"); をメイン内直書きでいい

と思ったらこの書き方だと入力途中に終わるな
forもう一個分けておk
0731デフォルトの名無しさん2014/07/18(金) 17:22:49.34ID:Q3IJCalo
一回走らせてみて気づいたが
if に for かかってないじゃん

以下に出来る限り再利用したコード
自分で見ても少し気持ち悪いが・・・
あとちゃんとコード見て理解してから出せよ(重要)

//////////////////////////
#include <stdio.h>
int main() {
long long c[10];
for (int i = 0; i < 10; i++) {
printf("整数を10個入力してください.(%d つ目) : ", i+1);
scanf("%li", &c[i]);
}
for (int i = 0; i < 10; ++i) {
if (c[i] % 5 == 0) {
printf("5の倍数が含まれています\n");
return 0;
}
}
printf("5の倍数が含まれていません\n");
return 0;
}
0732デフォルトの名無しさん2014/07/18(金) 17:34:15.51ID:p8SV1SW4
scanfの修飾子おかしいでしょ
longlongならLもしくはllにしなきゃ
てかなぜわざわざlonglongに変えてバグ入れてんだよ
0733デフォルトの名無しさん2014/07/18(金) 17:43:54.64ID:Q3IJCalo
5行目
0734デフォルトの名無しさん2014/07/18(金) 19:46:29.14ID:RMNUzhlR
2つ目のforはi=0しか処理しない

まぁ予防線の5行目なんだろうが
0735デフォルトの名無しさん2014/07/18(金) 20:12:29.63ID:DvrVIJUi
>>726
#include <stdio.h>
#define N 10
#define N2 5
int main()
{
int a[N], i;
for (i = 0; i < N; ++i)
printf("input(%d)=", i),scanf("%d", a + i);
for (i = 0; i < N && a[i] % N2; ++i);
printf("%dの倍数が含まれていま", N2);
printf((i != N) ? "す¥n" : "せん¥n");
return 0;
}
0736デフォルトの名無しさん2014/07/19(土) 13:18:19.94ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成しなさい.
文字列を5つ入力し、その中の
一番小さい文字列を表示
(英数字のみ)
(文字列は、50文字以内)
(英字の大文字と小文字は、
 特に考慮しないで、そのまま比較
 して良いこととする)

実行例)
abc 入力1
aaaa 入力2
wsdd 入力3
gfd 入力4
xxxd 入力5
aaaa 出力
19dfc 入力1
xuw29 入力2
12k2 入力3
mnnn 入力4
bccd1 入力5
12k2 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
前回丸投げした者です。非常に助かりました。解答例を教えてくれた人ありがとうございます。
今回も何問か出題されたのでおねがいします。
0737デフォルトの名無しさん2014/07/19(土) 13:20:32.71ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成しなさい.
ソートされた2つの数字列を入力
*0より大きい整数
*1行に5つの数字(固定)
それらを合わせて、ソートし、
大きい数から3つを表示すること
実行例)
11 21 23 33 35 入力1
24 25 27 32 85 入力2
85 35 33 出力
5 14 33 302 990 入力1
25 31 200 210 500 入力2
990 500 302 出力
21 43 99 100 902 入力1
10 20 30 275 320 入力2
902 320 275 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
0738デフォルトの名無しさん2014/07/19(土) 13:21:48.03ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成しなさい.
時間の足し算、引き算の文字列が入力されるので、
その計算結果を表示すること

足し算の場合
HH:MM:SS+HH:MM:SS
引き算の場合
HH:MM:SS-HH:MM:SS

HH:時/MM:分/SS:秒
(各桁は、必ず2桁で、足らない場合は
 0で埋める)
(計算結果は、マイナス値を考慮
 しなくて良い)
(HH:時は、計算結果でも、99を
 超えないと考えて良い)

10:23:30+00:00:53 入力
10:24:23     結果
10:23:30-01:10:40 入力
09:12:50 結果
00:13:20-00:09:55 入力
00:03:25 結果
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
0739デフォルトの名無しさん2014/07/19(土) 13:22:31.73ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成しなさい.
1個から10個までの数字列を入力
次に検索する数字を入力
見つかった位置を表示(0始まり)
見つからない場合は、−1を表示
数字は、int型

実行例)
11 22 21 33 15 23 38 入力1
33 入力2
3 出力
5 302 14 33 12 3 入力1
2 入力2
-1 出力
100 入力1
100 入力2
0 出力

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
0740デフォルトの名無しさん2014/07/19(土) 13:23:39.79ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文、ブラックジャックの判定処理を行う
1人目の数字列を入力(1個〜10個まで)
2人目の数字列を入力(1個〜10個まで)
数字は、1から13。
合計が21を超えたら点数は、0点。
1は、1点または、11点として使える。
11以上は10点として数える。
それ以外は、数字がそのまま点数。
勝った方を番号で表示(1 or 2)
引き分けは、2の勝ちとする
実行例)
1 5 8 入力1(14)
5 7 4 入力2(16)
2 出力
13 1 入力1(21)
12 10 入力2(20)
1 出力
13 8 入力1(18)
1 9 入力2(20)
2 出力
1 1 8 入力1(20)
3 4 7 入力2(14)
1 出力
10 8 7 入力1(25)
3 5 8 入力2(16)
2 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
0741デフォルトの名無しさん2014/07/19(土) 14:52:40.95ID:YxMGBI1k
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成すること
英文の回文判定
回文とは、どちらから読んでも
同じ並びになる文章。
1つの英文字列(100文字以内)が入力されるので、
回文であれば、GOODと表示
回文でなければ、NGと表示
*大文字小文字を区別しない
*「?!,. 」を無視する

実行例)
apple 入力
NG 出力
Borrow or rob? 入力
GOOD 出力
Kodak ad? OK! 入力
GOOD 出力
What time is it? 入力
NG 出力
Was it a bar or a bat I saw? 入力
GOOD 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年7月21日0:00
0742デフォルトの名無しさん2014/07/19(土) 14:53:38.13ID:YxMGBI1k
[2] 問題文:入力データとして迷路が与えられる
スタートからゴールへ到達可能の場合は
OKを表示、不可能な場合は、NGを表示
1行目の入力:幅と高さの数値
最小は、2x2
最大は、10x10
範囲外は、NGを表示
2行目以降 :迷路データ
       *:壁(通行不可)
       スペース:道(通行可)
       Sスタート位置
       Gゴール位置

実行例)
10 8 入力:幅と高さの数値
********** 入力:迷路データ
*S * *
*** ******
* * *
* *** *
* *
* ** G*
**********
OK 出力
10 5 入力:幅と高さの数値
********** 入力:迷路データ
*S *
**********
* G *
**********
NG 出力
[4] 期限:2014年7月21日0:00
0743デフォルトの名無しさん2014/07/19(土) 15:42:00.02ID:JOHBlJNT
>>740
http://ideone.com/OC6c2c
0744デフォルトの名無しさん2014/07/19(土) 16:10:30.26ID:YxMGBI1k
>>743
ありがとうございます。
実行は1回だけでいいのですが、どこを直せば1回のみの実行になりますか?
0745デフォルトの名無しさん2014/07/19(土) 16:43:58.85ID:evtkaklt
[1] 授業単元: プログラミング基礎
[2] 問題文
�@変数名 kokugo,shakai,rika を整数型で宣言する。(国語、社会、理科)
変数名 goukei,heikinを整数型で宣言する。(合計、平均)
�A「国語の点数=」のように表示し、キーボードよりそれぞれの科目の点数を入力する。
�B3科目の合計を求める。
�Cenumを使うこと
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2008
 [3.3] C
0746デフォルトの名無しさん2014/07/19(土) 17:11:01.34ID:JOHBlJNT
>>742
http://ideone.com/Do0VgP
0747デフォルトの名無しさん2014/07/19(土) 17:32:40.69ID:JOHBlJNT
>>741
http://ideone.com/Yv9zzn
0748デフォルトの名無しさん2014/07/19(土) 22:42:29.15ID:UduJbIYF
>>736 http://ideone.com/8X72ur
>>737 http://ideone.com/p0qzUI
>>738 http://ideone.com/IMWYc4
>>739 http://ideone.com/nbsKGQ
>>740 http://ideone.com/hIGLVL
繰り返して入力待ちになるので、終了はCtrl+dやCtrl+cで
0749デフォルトの名無しさん2014/07/20(日) 00:19:49.75ID:1LacJUJj
>>742
http://ideone.com/0Azfgu
0750デフォルトの名無しさん2014/07/20(日) 00:45:50.39ID:1LacJUJj
>>749
ちょっと簡略化。
http://ideone.com/vqj7sg
0751デフォルトの名無しさん2014/07/20(日) 00:56:47.60ID:NeEFmqc9
>>748
繰り返し入力はせずに実行は1回だけにする場合ってどこを書き換えたらいいんですか?
自分の知識じゃ!=EOFを消せばいいと思ってたのですが、それが見当たらないです。
>>740と>>741の問題でいただいた回答で繰り返し処理を消したいです。
0752デフォルトの名無しさん2014/07/20(日) 00:58:06.88ID:NeEFmqc9
>>743,>>746,>>747,>>748,>>749,>>750
皆さんありがとうございます。
0753デフォルトの名無しさん2014/07/20(日) 01:01:57.36ID:NeEFmqc9
連レスすみません、>>751の問題は自己解決しました。
0754デフォルトの名無しさん2014/07/20(日) 15:59:10.43ID:dm5MQitE
[1] 授業単元: プログラミング基礎
[2] 問題文
点数が999になる迄、点数を入力し、合計、平均、最高点数、最低点数を表示する。
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2008
 [3.3] C
0755デフォルトの名無しさん2014/07/20(日) 19:36:07.07ID:GLyw7TqT
>>754
http://ideone.com/LA1flU
0756デフォルトの名無しさん2014/07/20(日) 20:57:34.13ID:1Nspqi4B
>>755
ありがとうございます
0757デフォルトの名無しさん2014/07/20(日) 21:58:42.18ID:ipHozrgg
[1] 授業単元: プログラミング基礎
[2] 問題文
担当者名が"end"になるまで、担当者名と売上を入力する。
売上合計、平均、最も売上が多い担当者名とその売上、
最も売上が低い担当者名とその売上を表示する。
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
0758デフォルトの名無しさん2014/07/20(日) 23:38:36.90ID:cZMWJOUo
えんどコイチ「わたしは担当できないのですか」
0759デフォルトの名無しさん2014/07/20(日) 23:39:55.55ID:GLyw7TqT
>>757
http://ideone.com/ZmvYjI
0760デフォルトの名無しさん2014/07/20(日) 23:48:17.16ID:KA/DmBuJ
昔、出口という名前の人がいて、アカウントをexitにしてた。
それで誤動作する処理がいくつかあったな。
0761デフォルトの名無しさん2014/07/20(日) 23:51:00.94ID:zVE4QkZ9
>>760
exitで誤動作するのもどうかと思うけど、アカウントをdeguchiとかにしなかったんかい
0762デフォルトの名無しさん2014/07/21(月) 00:30:37.45ID:qJ38LHhu
使っているPC名をそれにしたから、
nslookup で
exit
ってやると終了してしまうw
0763デフォルトの名無しさん2014/07/21(月) 00:39:53.32ID:W3c/qJsI
deguchiさんよりexitさんの方がカッコイイ。そういやNULLさん問題とかもあったな。
0764デフォルトの名無しさん2014/07/21(月) 07:13:32.85ID:n7o+wpYJ
>>759
ありがとうございました
0765デフォルトの名無しさん2014/07/21(月) 09:56:42.62ID:01/h6WGS
[1] 授業単元:プログラミング1
[2] 問題文:n人分の試験の得点の和と平均を求めるプログラムを作成せよ。
始めに処理するデータの人数nを読み込み、次にn人分の得点を読み込む。
そして、和と平均を求め出力する。
次に、s(90以上)、a(80〜89)、b(70〜79)、c(60〜69)、f(それ以外)
の人数を求めるプログラムを、if else文を使い作成せよ。

ここからが本題なのですが

上記問題のs、a、b、c、fの人数を
関数を使用して*で表すヒストグラムにせよ。

[3] 環境
 [3.1] OS: Windows7
 [3.3] 言語: C
[4] 期限: 2014年7月17日11:30
[5] その他の制限: 特に無し

よろしくお願いします。
0766デフォルトの名無しさん2014/07/21(月) 11:02:37.08ID:C8nVEdjt
↑どなたか、お願いします
12:00まで延長します。
0767デフォルトの名無しさん2014/07/21(月) 11:38:49.42ID:ast8VTmN
>>765
#include <stdio.h>
#define N 128
#define S 5
void p(int *h, int *u, int *l, int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("%3d - %3d| ", l[i], u[i] - 1);
for (j = 0; j < h[i]; j++) printf("*");
printf("\n");
}
}
int main() {
int i, j, n, a[N], h[S] = {0}, s = 0;
int u[S] = { 101, 90, 80, 70, 60 }, l[S] = { 90, 80, 70, 60, 0 };
if (scanf("%d", &n) != 1)
return fprintf(stderr, "invalid input\n"), 1;
if (n >= N || n <= 0)
return fprintf(stderr, "n must be lesser than %d\n", N), 1;
for (i = 0; i < n; i++) {
if (scanf("%d", &a[i]) != 1)
return fprintf(stderr, "invalid input (i = %d)\n", i), 1;
s += a[i];
for (j = 0; j < S; j++) if (a[i] >= l[j] && a[i] < u[j]) break;
if (j == S) return fprintf(stderr, "invalid input (i = %d)\n", i), 1;
h[j]++;
}
printf("sum = %d, ave = %g\n", s, (double) s / n);
p(h, u, l, S);
return 0;
}
0768デフォルトの名無しさん2014/07/21(月) 14:00:27.19ID:uT1EgMxJ
>>767
ありがとうございます。助かりました。
0769デフォルトの名無しさん2014/07/22(火) 09:25:52.33ID:qPId/3Vu
[1] 授業単元:プログラミング
[2] 問題文
6人の学生の点数を読み込み、最高点を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows8
 [3.3] 言語: C
よろしくお願いします。
0770デフォルトの名無しさん2014/07/22(火) 10:59:27.31ID:zl2bJoub
[1] 授業単元:プログラム演習
[2]問題文
キーボードから整数 0 か 1 、及び任意の長さの文字列を読み込み、それをもとに回文(palindrome)を作って表示するプログラムを作れ。
たとえば、
「0 AB」と入力したら、「ABBA」と表示する。(偶数文字列となる)
「1 mad」と入力したら、「madam」と表示する。(奇数文字列となる)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: 覚えてません
 [3.3] 言語: C++
[4] 期限: 7/29
よろしくお願いします
0771デフォルトの名無しさん2014/07/22(火) 11:27:13.57ID:3nvfBhCd
[1] 授業単元:プログラミング
[2] 問題文
10人の学生の点数を読み込み、配布を図のように表示するプログラムを作成せよ

    100: *
90 - 99: **
80 - 89: ***
   (中略)
0 -  9: *

点数は100点満点とし、人数分だけ * を出力すること
 [3.1] OS: Windows8
 [3.3] 言語: C
よろしくお願いします。
0772デフォルトの名無しさん2014/07/22(火) 12:00:39.52ID:XmTqIxPz
>>770
死ね
0773デフォルトの名無しさん2014/07/22(火) 12:00:47.16ID:wB6E2V1B
>>769
http://ideone.com/pPCJty
0774デフォルトの名無しさん2014/07/22(火) 12:18:54.24ID:5Z4WYQgC
>>771
http://ideone.com/ZOaa3I
0775デフォルトの名無しさん2014/07/22(火) 12:30:03.54ID:5Z4WYQgC
>>770
http://ideone.com/5jheni
0776デフォルトの名無しさん2014/07/23(水) 11:49:01.49ID:CcfFZsxV
1] 授業単元:プログラミング
[2] 問題文
構造体を使って、下記のようになるようプログラムしてください
本のタイトルは、自由につけていいです。貸出OK、貸出中、返却日も自由です

図書名、返却予定年月日を入力しなさい。(終了条件:Ctrl+Z)
C言語読本 2000 8 22
貸し出しOKです。

図書名、返却予定年月日を入力しなさい。(終了条件:Ctrl+Z)
風とともに去りぬ 2000 7 26
貸し出し中です。
[3.1] OS: Windows8
 [3.3] 言語: C
よろしくお願いします。
0777デフォルトの名無しさん2014/07/23(水) 12:08:25.42ID:PLNCXQ+I
C/C++の宿題片付けます 167代目 2014 07 23
貸し出し中です。
0778デフォルトの名無しさん2014/07/23(水) 18:59:55.60ID:Dp+cPJIj
>>770
1 abcb はaを末尾に加えるとabcbaと回文の奇数文字列となるけれど、こういうのもOKかな。
0779デフォルトの名無しさん2014/07/23(水) 21:16:17.43ID:fnU24YQn
>>776
図書の登録・削除は不要?
図書名の部分一致は不要?
貸出処理は不要?
0780デフォルトの名無しさん2014/07/24(木) 11:06:52.35ID:XgRT2wBp
[1] 授業単元:プログラミング
[2] 問題文
目標貯金額と月々の貯金額を入力する。何年何ヶ月で達成するかを表示する。

目標金額が合計金額より多くなるまで次の処理を繰り返す。
月々の貯金額を合計に加える。
.期間に1を加える。
 [3.1] OS: Windows8
 [3.3] 言語: C
よろしくお願いします。
0781デフォルトの名無しさん2014/07/24(木) 11:12:21.00ID:SzCSi9rr
わり算じゃ駄目なんだ…?
0782デフォルトの名無しさん2014/07/24(木) 11:37:28.22ID:Koqju6d+
>>781
3年生になるまで習わないから
0783デフォルトの名無しさん2014/07/24(木) 12:02:16.05ID:nK+P1D6K
アルゴリズムの大切さを教える宿題?
0784デフォルトの名無しさん2014/07/24(木) 12:22:23.39ID:dgV+vw+i
繰り返し処理と条件分岐のためだろ
0785デフォルトの名無しさん2014/07/24(木) 19:30:02.98ID:KpPifszG
>>780
#include<stdio.h>
int main(void){
int mChokin,tChokin,goukei=0,kikan;
printf("目標貯金金額は?:");
scanf("%d",&mChokin);
printf("毎月いくらづつ貯金する?");
scanf("%d",&tChokin);
for(kikan=0 ;goukei < mChokin; kikan++){
goukei += tChokin;
}
if(kikan < 12){
printf("%dヶ月くらいかかります",kikan);
}else{
if(kikan%12 == 0){
printf("%d年くらいかかります",kikan / 12);
}else{
printf("%d年と%dヶ月くらいかかります",kikan / 12,kikan % 12);
}
}
return 0;
}
0786デフォルトの名無しさん2014/07/24(木) 20:56:27.83ID:IgucEqQ0
でも半分超えた辺りで買い物しちゃうんだよな
0787デフォルトの名無しさん2014/07/25(金) 06:35:21.76ID:N9DVIwI0
>>780
誰も指摘しない・・・。
「目標金額が合計金額より多くなるまで次の処理を繰り返す。」 は
「合計金額が目標金額より多くなるまで次の処理を繰り返す。」 ですね。
0788デフォルトの名無しさん2014/07/25(金) 13:34:09.94ID:iw+KWWGd
[1] 授業単元:プログラミング1
[2] 問題文
正の整数を読み込み、その整数より小さい3の倍数を
全て表示するプログラムを作る

[3] 環境
[3.1] OS: Windows7
[3.3] 言語: C
よろしくお願いします。
0789デフォルトの名無しさん2014/07/25(金) 13:41:37.22ID:9civv23G
n 読み込み
for(1<n)
if(i % 3 == 0)
0790デフォルトの名無しさん2014/07/25(金) 13:49:27.06ID:nF2+mOeo
main(i){scanf("%d",&i);i/=3;while(i)printf("%d\n",(i--*3));}
0791デフォルトの名無しさん2014/07/25(金) 13:50:11.62ID:nF2+mOeo
>>788
http://ideone.com/xFQZnv
0792デフォルトの名無しさん2014/07/25(金) 14:49:31.47ID:STzzxRvA
>>791
ありがとうございます
俺はバカか?、死んでしまえ・・・orz
0793デフォルトの名無しさん2014/07/25(金) 15:48:00.84ID:dIN09tG2
>>790
i--*3って、どういう意味?
0794デフォルトの名無しさん2014/07/25(金) 16:23:43.28ID:PJ3o0+4o
i*3したあとi--される。
0795デフォルトの名無しさん2014/07/25(金) 16:58:21.33ID:+sFZhLrJ
> 正の整数を読み込み、その整数より小さい3の倍数を全て表示

読み込んだ正の整数が3の倍数の場合、その値は表示しちゃいけないように読める
("以下" ではなく "より小さい") が、どっちだろう
0796デフォルトの名無しさん2014/07/25(金) 17:39:35.28ID:N9DVIwI0
>>795
「より小さい」だろう。そう書いてあるのだから。
0797デフォルトの名無しさん2014/07/25(金) 18:11:39.30ID:rZVrt2Gw
> i/=3;
を
> --i;i/=3;
にすればいいのか
0798デフォルトの名無しさん2014/07/26(土) 10:32:47.08ID:eTCbs3CQ
>>789
詳しく・・・
0799デフォルトの名無しさん2014/07/26(土) 14:35:01.23ID:Xdk7ISQK
>>798
>>792で解決したん違うんか
0800デフォルトの名無しさん2014/07/26(土) 17:09:15.63ID:As5DovMc
int main(){
int i;
scanf("%d", &i);
for( ; i != 0; i--)
if(i % 3 == 0)
printf("%d\n", i);
return 0;
}
0801デフォルトの名無しさん2014/07/26(土) 17:34:34.99ID:lNocvsEQ
>>800
負数を入力されたときどうする?
まあ課題だからいいか。。。
0802デフォルトの名無しさん2014/07/26(土) 21:51:18.29ID:VW1duq5T
課題文に考慮不要なことが明記されてるから余計なことはしない
0803デフォルトの名無しさん2014/07/26(土) 23:25:40.54ID:7ysg84QD
>>801
まあ問題がもともと不備だし。
倍数だから、入力が正でも結果は負も含む。
0804デフォルトの名無しさん2014/07/26(土) 23:33:34.50ID:44Fg1yWq
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成すること

足し算の式が入力され、数字の部分に一部に、Xが含まれる。
「数字列 + 数字列 = 数字列」の形
「数字列」は、数字 0 から 9 と文字 X の並び
数式が成り立つ X の値で 0-9のどれか1つを表示すること
答えがない場合は、NAを表示すること
2つ以上の答えはないものとする
X は、数式全体の中で必ず1つ以上含まれる

実行例
123+4X6=X79 入力
5 出力
12X+4X6=X79 入力
NA 出力
XX22+89=X2XX 入力
1 出力

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4]期限 2014年7月28日0時
0805デフォルトの名無しさん2014/07/27(日) 04:22:22.73ID:6u3fkz2T
>>804

#include<stdio.h>
int&nbsp;main(void){
&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,q,w,e;
&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;b[99],*s,*d;
&nbsp;&nbsp;&nbsp;&nbsp;gets(b);
&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i<=9;++i){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(s=b,d=b+50;*s;s++)*d++=*s=='X'?'0'+i:*s;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sscanf(b+50,"%d+%d=%d",&q,&w,&e);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(q+w==e)break;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if(9<i)puts("NA\n");else&nbsp;printf("%d\n",i);
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;
}
0806デフォルトの名無しさん2014/07/27(日) 04:23:37.87ID:6u3fkz2T
やり直し
>>804
#include<stdio.h>
int main(void){
int i,q,w,e;
char b[99],*s,*d;
gets(b);
for(i=0;i<=9;++i){
for(s=b,d=b+50;*s;s++)*d++=*s=='X'?'0'+i:*s;
sscanf(b+50,"%d+%d=%d",&q,&w,&e);
if(q+w==e)break;
}
if(9<i)puts("NA\n");else printf("%d\n",i);
return 0;
}
0807デフォルトの名無しさん2014/07/27(日) 08:41:28.58ID:KvVEK7dm
>>806
変態改造しました。
http://ideone.com/207jqK
0808デフォルトの名無しさん2014/07/28(月) 15:10:24.85ID:vFOPYpLF
[1] 授業単元: プログラミング基礎
[2] 問題文
担当者はなん人でも構わない、担当者名と売上を入力する。売上合計を求める。各担当の売
上が売上合計の何%になるかの比率の計算を行い、担当者名、売上、比率を表示する。
________________________________
担当者  売上  比率
---------------------
山田  12000  30.0%
鈴木   8000  20.0%
井上  20000  50.0%
合計  40000  100.0%
=====================
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
0809デフォルトの名無しさん2014/07/28(月) 23:00:10.38ID:5V3K7C2F
>>808
ttp://ideone.com/vlfbdt
0810デフォルトの名無しさん2014/07/28(月) 23:15:08.54ID:G21RvJ34
”%”は引数にしなくても
char format[] = "%s\t%6d\t%10.1f%%\n";
にすれば(書式文字列中に”%%”で”%”を出力で)良かんべえ
0811デフォルトの名無しさん2014/07/29(火) 06:44:27.87ID:9MYEl5R9
[1] 授業単元: プログラミング基礎
[2] 問題文
:午前:午後:夜間
月曜:診療:診療:診療
火曜:休診:診療:診療
水曜:休診:診療:休診
木曜:診療:診療:診療
金曜:診療:診療:診療
土曜:診療:休診:休診
日曜:休診:休診:休診
*表の時間外も休診とする
上記のような病院の診療スケジュールがある
その表をもとに、曜日と時間が入力されるので、
診療時間(診療)であれば、Practiceと表示、
診療時間外(休診)であれば、is closedと表示すること
午前:09:00-12:00
午後:14:00-17:00
夜間:18:00-20:00
曜日の入力値
月曜:0 火曜:1 水曜:2
木曜:3 金曜:4 土曜:5
日曜:6
実行例)
0 10:00 入力
Practice 出力
2 18:30 入力
is closed 出力
5 10:30 入力
Practice 出力
[3] 環境 .
 [3.1] Windows 8.1
 [3.3] C
0812デフォルトの名無しさん2014/07/29(火) 06:47:29.42ID:8drM/oKD
>>811
Cだと面倒でいま話題のProlog向きの問題。
0813デフォルトの名無しさん2014/07/29(火) 09:22:53.82ID:SrETeLhy
>>809
ありがとうございました
0814デフォルトの名無しさん2014/07/29(火) 12:17:21.58ID:u3aDyX/b
>811
http://ideone.com/7eNU6t
0815デフォルトの名無しさん2014/07/29(火) 13:11:01.84ID:H8EUDzLQ
>>814
ほほう…
0816デフォルトの名無しさん2014/07/29(火) 14:53:58.16ID:cLIIU22T
>>811
ttp://ideone.com/B0NBJc
0817デフォルトの名無しさん2014/07/29(火) 14:57:53.96ID:eAxIC1+6
[1] 授業単元: プログラミング基礎
[2] 問題文

最大20桁の整数同士の加算ができるプログラムを記述しなさい。
(例)
>./プログラム名 12345678901234567890 + 12345678901234567890 >12345678901234567890 + 12345678901234567890 = 24691357802469135780

[3] 環境 .
 [3.1] Mac OSX
 [3.2] GCC
 [3.3] C

[4]期限 2014年7月29日

http://7ujm.net/play/pCalc/pCalc.html
おそらくこのページのように区切って格納していく必要があるとは思うのですが、、、
お助けください。

お願い致します。
0818デフォルトの名無しさん2014/07/29(火) 16:12:18.34ID:cLIIU22T
>>817
http://ideone.com/z5dBpO
0819デフォルトの名無しさん2014/07/29(火) 17:59:15.06ID:eAxIC1+6
>>818
ありがとうございます。

16: error: 'for' loop initial declarations are only allowed in C99 mode
16: note: use option -std=c99 or -std=gnu99 to compile your code

というエラーを吐かれるのですがこれはどういうことでしょうか?
0820デフォルトの名無しさん2014/07/29(火) 18:20:45.90ID:+2235k/1
for の中で初期化・宣言できるのは C99 モードだけやから
-std=c99 か -std=gnu99 のコンパイラオプションつけて、C99 でコンパイルしろや

13 行目 for (int k= ... ←これ

こうすりゃ良かろう
7: int ans[N] = {0}, i, j, k;
13: for (k = 0; j--; ++k)
0821デフォルトの名無しさん2014/07/29(火) 18:32:42.92ID:eAxIC1+6
>>820
ありがとうございます!
0822デフォルトの名無しさん2014/07/29(火) 20:38:59.20ID:hvmaQCDP
>>817
引数で指定
http://codepad.org/uvkBSDc6
0823デフォルトの名無しさん2014/07/29(火) 20:43:41.03ID:UXe0DLIJ
[1] 授業単元:C言語(1)
[2] 問題文(含コード&リンク):
キーボードから入力された英文字を全て大文字に変換するプログラム
(原文ままです)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc -o
 [3.3] 言語:C
[4] 期限: 2014/07/30の08:30まで
[5] その他の制限: ポインタは習ってないです。あとgets()を使ってほしいとのことです
08248232014/07/29(火) 20:47:57.69ID:UXe0DLIJ
>>823
追記で出来るだけ簡単に書いてもらえると助かります・・・
初心者なもんなんで・・・
0825デフォルトの名無しさん2014/07/29(火) 21:35:31.86ID:s+4NszZe
>>823
http://ideone.com/qkEhJE
「while(fgets(buffer,sizeof(buffer),stdin))」を「while(gets(buffer))」
に置き換えればgetsで書けるけど、危険なのでやってはいけない。
1行の長さがbufferのサイズを超えた時、鼻から悪魔が飛び出しても文句を言えない。

http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/gets.3.html
>この関数は使用しないこと。
>gets() は絶対に使用してはならない。
>gets() を使うのは極めて危険である。
>代わりに fgets() を使うこと。
ボロクソ
0826デフォルトの名無しさん2014/07/29(火) 22:43:27.99ID:IK963Bq+
>>825
言いたいことはわかるがポインタ学習前に文字列入力をちゃんとやれっていうのは酷だろ
むしろ、getchar() 使えばいいのにとは思うが
0827デフォルトの名無しさん2014/07/30(水) 00:30:46.94ID:YaF3atah
>>825
訂正。本当は「char buffer[9999];」を「unsigned char buffer[9999];」とするか、
「putchar(toupper(buffer[i]));」を「putchar(toupper((unsigned char)buffer[i]));」
としないと間違いだった…けど、これ忘れる奴は(俺含め)多いんだろうなぁ…
charのデフォルトがunsignedな場合(少数派だけど)はやらなくていいし、
toupperとかの説明でunsigned教えられてないならやらなくてもいい。

>>826
ISO C11ではgetsなんて存在しないって事だし、ポインタ学習前なら、
「fgets(文字列用配列変数名,sizeof(文字列用配列変数名),stdin)」
っていう定型文として教えてそのまま使わせとけばいいんでないかな。
意味の説明はポインタを教えてから(関数を教える前)でもいいと思う。

forで回させたかったからgetsなんだろうけど、getchar使えばいいのには同感。
目的からはそっちの方が適してるし、↑みたいなミスも減らせるし。
0828デフォルトの名無しさん2014/07/30(水) 00:46:51.88ID:4/mNfK2S
ctypeも多分学習前だろうな
で単純にif文使って、ASCII前提なので不正解とか食らう……わけないか
0829デフォルトの名無しさん2014/07/30(水) 01:18:54.60ID:AZuFzxiw
[1] 授業単元: プログラミング演習
[2] 問題文
2回のの点数(それぞれ0〜100点)を
入力し、次の条件に従って合格(Pass)、
不合格(Failure)を判定すること

両方とも60点以上の場合、Pass
合計が130点以上の場合、Pass
合計が100点以上で、どちらかの試験が
90点以上であればPass
上記以外は、Failure

例)
70 60 入力
Pass 出力
82 11 入力
Failure 出力
[3] 環境 .
 [3.1] Windows 7
 [3.3] C
0830デフォルトの名無しさん2014/07/30(水) 01:35:34.20ID:E3eKawnj
>>829
http://ideone.com/LYxx7M
0831デフォルトの名無しさん2014/07/30(水) 15:45:02.88ID:9Cw8yzhm
[1] 授業単元:プログラミング基礎
[2] 問題文
文字配列buffを100バイト確保して、キーボードから繰り返し入力して
その文字列を空白を作り、連結していくプログラムを作ります
キーボードから入力できる文字は30バイトまでです
byeと入力で、終了
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
0832デフォルトの名無しさん2014/07/30(水) 16:45:49.40ID:qwpIAm/n
aaa
bbb
ccc
bye

aaa bbb ccc
って事か
0833デフォルトの名無しさん2014/07/30(水) 16:46:56.80ID:AZuFzxiw
[1] 授業単元: プログラミング1
[2] 問題文
文字列が入力され,
次に表示したい文字の番号が入力されるので、
その番号の文字を表示すること
範囲を超えた場合は、NAと表示する
(番号は、1から始まる)
(文字列は50文字以内)

実行例
abcdfge 入力1
3 入力2

[3] 環境 .
 [3.1] Windows 7
 [3.3] C
0834デフォルトの名無しさん2014/07/30(水) 17:10:26.11ID:qwpIAm/n
出力はcでいいのか
0835デフォルトの名無しさん2014/07/30(水) 17:26:46.66ID:E3eKawnj
>>831 http://ideone.com/zcB3uW
0836デフォルトの名無しさん2014/07/30(水) 17:36:36.66ID:E3eKawnj
>>833
http://ideone.com/ZWL5Nx
0837デフォルトの名無しさん2014/07/30(水) 17:51:19.51ID:E3eKawnj
>>835
いきなりbyeってされると領域外アクセスするのでダメコード
デバッグしにくいバグの原因
修正 http://ideone.com/Glm4TK
0838デフォルトの名無しさん2014/07/30(水) 21:48:12.10ID:m/m5wL1/
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
1.以下のデータのアドレスを表示するプログラムを作成しなさい
main関数、argc/argv、外部変数/static変数、オート変数、別関数、別関数のパラメータ
・表示するデータ(変数の型は任意)


2.コマンド引数で指定したファイル(テキストファイル)をコピーするプログラムを作成しなさい
・コマンドイメージ xcp ファイルA ファイルB ※ファイルBがコピー先
・読み込みはfgets()

3.コマンド引数で文字列パターン、検察ファイルを指定し、
文字列パターンが含まれる行の行数数と行全体を表示するプログラムを作成しなさい
・コマンドイメージ xgrep 文字列パターン 検索ファイル
・表示イメージ line = xx、該当行
・読み込みはfgets()
・パターン検索処理は別関数にする
(パラメータ1:ファイル内のレコード、パラメータ2:文字列パターン、返却値はパターン有無)

よろしくお願いします。
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2014年7月30日09:00まで
[5] その他の制限:
0839デフォルトの名無しさん2014/07/30(水) 23:02:53.34ID:E3eKawnj
>>838
1 http://ideone.com/Chax6u
2 http://ideone.com/p4Thlq
3 http://ideone.com/p5OUhY

1はideoneではエラーだが通常は警告のみでコンパイルは通る
関数のアドレスってISO Cで正式にはどうやって表示するんだ・・・
0840デフォルトの名無しさん2014/07/30(水) 23:08:11.99ID:E3eKawnj
メモリモデルによっては関数ポインタは変数のポインタやポインタ変数とサイズが違う可能性があると
だから void* にキャストできないと
なるほどつまりどうしようもないのね
0841デフォルトの名無しさん2014/07/30(水) 23:12:45.00ID:YaF3atah
>>839-840
ポインタへのポインタ取ってバイト列として表示、かな?
0842デフォルトの名無しさん2014/07/30(水) 23:22:31.16ID:E3eKawnj
>>841
ありがとう エラー・警告なくなんかそれっぽくは表示できたがどうなんだろう
http://ideone.com/ePoGpC
0843デフォルトの名無しさん2014/07/31(木) 00:18:35.16ID:Yhu/r2TQ
[1] 授業単元: プログラミング1
[2] 問題文
2つの英文字列が入力されるので、
同じ場合は、equal
異なる場合は、different
と表示すること
(但し、大文字小文字の区別しない)
(小テストにアップロードするときは、
stricmp()はエラーになるので、
代わりにstrcasecmp()を使うこと)
(英文字(半角)列の長さは、50文字以内)

実行例
apple 入力1
APPLE 入力2
equal 出力
[3] 環境 .
 [3.1] Windows 7
 [3.3] C
0844デフォルトの名無しさん2014/07/31(木) 00:31:19.81ID:RAmyBjAf
>>842
いや、その方法だと使った整数型の大きさ超えた時に哀しいことになる。
http://ideone.com/p2P4mQ のprintBytesみたいな事をすれば良い、筈。
0845 ◆QZaw55cn4c 2014/07/31(木) 01:47:07.18ID:QIEzwx33
>>839 >>842
http://ideone.com/0r39cn
(vid (*)()) でキャストすればいい
0846デフォルトの名無しさん2014/07/31(木) 17:43:30.14ID:Imss7LOy
>>843
wだけちょっと不満が残ったな
http://ideone.com/t0mtSZ
0847デフォルトの名無しさん2014/07/31(木) 17:48:20.85ID:Imss7LOy
>>845
http://ideone.com/ckaVzs
0848デフォルトの名無しさん2014/07/31(木) 18:08:02.36ID:RAmyBjAf
>>847
なにが違うのか一瞬気づかなかった。
>>845のバカは関数ポインタを関数ポインタにキャストしただけで、
本命はこっそりC99指定外してエラー避けすることの方だったのかww
0849 ◆QZaw55cn4c 2014/07/31(木) 19:21:04.01ID:XPS+ftrb
>>848
け,やられたね‥
0850デフォルトの名無しさん2014/08/02(土) 13:46:13.29ID:8Nv3GFp4
[1] 授業単元: プログラミング基礎
[2] 問題文
2つの入力された数字を使って
割り算をした結果を表示すること
(整数)
(割る数が0の場合は、NGと表示)

実行例
5 3 入力
1 出力
120 60 入力
2 出力
33 0 入力
NG 出力

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2010
 [3.3] C
[4] 期限:2014年8月04日0:00
0851デフォルトの名無しさん2014/08/02(土) 13:46:47.32ID:8Nv3GFp4
[1] 授業単元: プログラミング基礎
[2] 問題文
入力された数字まで、1から順に
表示すること
(入力される数字の最小は、1)
(入力される数字の最大は、20)

実行例
5 入力
1 2 3 4 5 出力
11 入力
1 2 3 4 5 6 7 8 9 10 11 出力
1 入力
1 出力

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2010
 [3.3] C
[4] 期限:2014年8月04日0:00
0852デフォルトの名無しさん2014/08/02(土) 13:47:14.12ID:8Nv3GFp4
[1] 授業単元: プログラミング基礎
[2] 問題文
2つの数字を入力されるので、
左側の数字が大きい場合は、left
右側の数字が大きい場合は、right
同じ数字の場合は、equal
と表示すること

実行例
1 12
right
10 19
left
5 5
equal

[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2010
 [3.3] C
[4] 期限:2014年8月04日0:00
0853デフォルトの名無しさん2014/08/02(土) 14:49:10.40ID:iPJXtkq3
>>850 http://ideone.com/1G5Sn7
>>851 http://ideone.com/J1KmHK
>>852 http://ideone.com/qgM3Dl 実行例間違ってるよね?
0854デフォルトの名無しさん2014/08/02(土) 14:52:06.78ID:8Nv3GFp4
>>853
ありがとうございます!
0855デフォルトの名無しさん2014/08/05(火) 10:40:34.17ID:2ysLqjEE
[1] 授業単元: プログラミング基礎
[2] 問題文
値引率、単価、数量の金額を算出し表示する
1のケース  5%
 2のケース 10%
 3のケース 15%
 それ以外   0%
switch caseを使用すること
金額=単価×数量×(100−値引率)÷100
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2008
 [3.3] C
0856デフォルトの名無しさん2014/08/05(火) 10:43:31.18ID:blG+JkAY
>>855
入力と出力の具体例を書いてくれると回答が捗るよ
0857デフォルトの名無しさん2014/08/05(火) 13:07:27.45ID:+y74ON+B
つーか正しい日本語使うか正しくコピペしろ
0858デフォルトの名無しさん2014/08/07(木) 09:08:36.15ID:wRwVGT2H
[1] 授業単元: プログラミング基礎
[2] 問題文
整数を読み込み、逆から表示するプログラムを作成しなさい
10桁までとします
この時、非負の整数が出てきた場合 「負の数です」 と表示すること
[3] 環境 .
 [3.1] Windows 8.1
 [3.2] Visual studio 2008
 [3.3] C++
0859デフォルトの名無しさん2014/08/07(木) 11:25:52.64ID:KMZ/LFV4
[1] 授業単元: プログラミング基礎
[2] 問題文
スケジューラ
A.B.Cの3つの部屋があって
そのスケジュールを管理するプログラムを作成
予約件数は、10件まで。
予約可能時間は、9:00〜21:00まで

R 予約入力
(例)
R 2014/08/09 10:00 00:30 A
2014/08/09 10:00から10:29までA室を予約

Q 問い合わせ
(例)
Q 2014/08/09 10:00 02:00 A 入力(問い合わせ)
2014/08/09 10:00から11:59までA室は、空いているか?
(実行例)
R 2014/08/09 10:00 00:30 A 入力(予約)
R 2014/08/09 10:00 00:30 B 入力(予約)
Q 2014/08/09 10:00 02:00 A 入力(問い合わせ)
Not empty 出力(先約あり)
R 2014/08/10 10:00 00:30 B 入力(予約)
R 2014/08/10 10:00 00:30 B 入力(予約)
Q 2014/08/12 10:30 01:30 A 入力(問い合わせ)
Free 出力(空き有り)
[3] 環境
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年8月9日0:00
0860デフォルトの名無しさん2014/08/07(木) 11:26:30.19ID:KMZ/LFV4
[1] 授業単元: プログラミング基礎
[2] 問題文
n個の整数を含む集合Sと、
q個の異なる整数を含む集合Tを入力とし、
Tに含まれる整数の中でSに含まれるものの数Cを
出力するプログラムを作成せよ。

入力
1行目にSを表すn個の整数、
2行目にTを表すq個の整数が与えられる。
出力
Tに含まれる整数の中でSに含まれるものの数Cを出力せよ。
条件
n : 10以下
q : 5以下
集合に含まれる整数の値 以上、6未満

実行例)
3 8 4 1 9 2 5 7 6 入力(集合S:n個(9))
1 3 5 10 入力(集合T:q個(4))
3 出力(C)
21 30 5 21 10 39 14 入力(集合S:n個(7))
1 21 10 入力(集合T:q個(3))
2 出力(C)
[3] 環境
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年8月9日0:00
0861デフォルトの名無しさん2014/08/07(木) 11:28:27.89ID:KMZ/LFV4
[1] 授業単元: プログラミング基礎
[2] 問題文
(Run Length圧縮)
文字列が連続した場合、ある規則で文字を置き換え、
文字列を短くすることができます。
例えば、AAAAという文字列の場合、@4Aと表現すれば
1文字分圧縮されます。
この規則で圧縮された文字列を入力して
もとの文字列に復元して終了するプログラムを
作成してください。
ただし、復元した文字列に@文字は出現しないものとします。

原文の文字列は半角の英大文字、英小文字、数字、記号であり100文字以内、連続する文字は9文字以内です。

実行例)
ab@5C1@8050 入力
abCCCCC10000000050 出力
@99+1=1@90 入力
999999999+1=1000000000 出力
[3] 環境
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年8月9日0:00
0862デフォルトの名無しさん2014/08/07(木) 11:31:50.32ID:KMZ/LFV4
[1] 授業単元: プログラミング基礎
[2] 問題文
以下のプログラムを作成しなさい.

○?ゲーム(3目並べ)の勝敗判定を行

○?のどちらかが3つ並んだ方が勝ち
引き分けの場合は、「even」と表示
oが勝った場合は、「winner->o」と表示
xが勝った場合は、「winner->x」と表示

実行例)
oxx 入力
ox 入力
o 入力
winner->o 出力
xxx 入力
oox 入力
oo 入力
winner->x 出力
xxo 入力
oox 入力
xoo 入力
even 出力
[3] 環境
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年8月9日0:00
0863デフォルトの名無しさん2014/08/07(木) 11:32:22.95ID:KMZ/LFV4
[1] 授業単元: プログラミング基礎
[2] 問題文
じゃんけん判定
入力文字列をじゃんけんの手とし、
勝敗を判定すること
入力文字列
goo : グー
choki: チョキ
par : ャpー
ルーャ求F
グーb謔閭pーが強い
パーよりチョキが強い
チョキよりグーが強い
判定表示:
1番めが勝った場合は、「winner-1」と表示
2番めが勝った場合は、「winner-2」と表示
引き分けの場合は、「even」と表示

実行例)
goo choki 入力
winner-1 出力
par choki 入力
winner-2 出力
par goo 入力
winner-1 出力
par par 入力
even 出力
[3] 環境
 [3.1] Windows 8.1
 [3.2] Visual studio 2013
 [3.3] C
[4] 期限:2014年8月9日0:00
0864デフォルトの名無しさん2014/08/07(木) 12:21:32.24ID:7UtLjkdT
>>863
あなたの単位無しにしておきますね
0865デフォルトの名無しさん2014/08/07(木) 14:12:24.51ID:xo/Vmey3
>>858
非負整数なのに負の数って表示するんだ
0866デフォルトの名無しさん2014/08/07(木) 14:49:57.94ID:kzu1GcF/
>>863
ttp://ideone.com/Yi5E4m
0867デフォルトの名無しさん2014/08/07(木) 18:05:14.53ID:kzu1GcF/
>>860
ttp://ideone.com/4epplA
0868デフォルトの名無しさん2014/08/07(木) 23:17:10.26ID:kzu1GcF/
>>858
http://ideone.com/qp9IiA
0869デフォルトの名無しさん2014/08/08(金) 10:20:19.78ID:7U8bgHZp
>>862
http://ideone.com/cRk8VG
0870デフォルトの名無しさん2014/08/08(金) 10:22:40.51ID:7U8bgHZp
>>869
17行目訂正
for (i = 0; i < 8; ++i)
0871デフォルトの名無しさん2014/08/08(金) 10:49:09.79ID:7U8bgHZp
>>861
http://ideone.com/yec3yc
0872デフォルトの名無しさん2014/08/08(金) 13:04:15.44ID:PZxjFlZM
>>859
http://ideone.com/pLo9Zq
0873デフォルトの名無しさん2014/08/11(月) 00:32:24.96ID:TP2ds61a
西アフリカで、アウトブレイクした潜伏期間延長型エボラの死者・罹患者の数を散布図にし近似曲線を出してみたら
片対数グラフで直線だから既に指数関数的増加だった

2014年に、西アフリカでアウトブレイクした潜伏期間延長型エボラの死者は、2014年8月半ばで1000人。
2014年12月上旬で1万人。
この時点で世界規模で空路シャットダウン開始、世界経済大混乱

2015年5月で10万人。
2015年9月で100万人。
この時点で、第二次世界大恐慌発生

2015年大晦日で1000万人。
0874デフォルトの名無しさん2014/08/13(水) 10:46:03.96ID:YdrUmIgN
なにこの犯罪スレ
この程度の問題も解けないとか
卒業できる見込みなしだな
0875片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/16(土) 17:52:01.71ID:jECCpoje
【質問テンプレ】
[1] 授業単元:コンピューター整数論
[2] 問題文:
Zを整数全体の集合とする。
Nを0以上の整数全体の集合とする。
a,b,c,d∈Nについて0≦b<aかつ0≦d<cとする。
A={ax+b | x∈Z}、
B={cx+d | x∈Z} であるとき、A∩Bは何か。
トリップつきで連絡が取れれば報酬はWebMoney2000円。
[3] 環境
 [3.1] OS:指定なし。
 [3.2] コンパイラ名とバージョン:指定なし。
 [3.3] 言語:C/C++どちらでも可。
[4] 期限:2014年08月22日23:59まで。
[5] その他の制限:証明や解説を要する。
0876片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/16(土) 18:22:10.42ID:jECCpoje
報酬は早い者勝ち
0877 ◆QZaw55cn4c 2014/08/16(土) 18:48:10.72ID:ctV6qD9Q
>>875
中国の剰余定理だねえ
https://ja.wikisource.org/wiki/%E5%88%9D%E7%AD%89%E6%95%B4%E6%95%B0%E8%AB%96%E8%AC%9B%E7%BE%A9/%E7%AC%AC1%E7%AB%A0/%E4%B8%80%E6%AC%A1%E5%90%88%E5%90%8C%E5%BC%8F
今週は忙しいから来週まで期限を延長してくれない?
0878片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/16(土) 19:05:03.04ID:jECCpoje
>>877
互いに素でないものも含むので、ちょっと変則だろう。
これができないと「ひらがな電卓」の開発が遅れてしまう。
QZさんならできるかな? 延長を許可する。
0879デフォルトの名無しさん2014/08/16(土) 19:49:43.03ID:Kbu3F/Gd
>>877
×忙しい
○無職で頭が足りないので時間をくれ
0880デフォルトの名無しさん2014/08/16(土) 21:04:15.30ID:ee4Clawm
>875
面白そうだから、集合論も整数論も何を求めればいいかも分からない俺が泥臭いクソ解答。報酬いらず。
a == cの場合、b != d で x の解なし。
a == cの場合、b == d で x は ax + b (あるいは cx + d)上の整数全て。
a != cの場合、b != d で x はそれぞれ (d - b) / M の整数全て。
a != cの場合、b == d で x はそれぞれ xは0。
ただし、Mは0以外の整数。
例) a != cの場合、b != d で、a = c + Mとし、
ax + b = cx + d
(c + M)x + b = cx + d
x = (d - b) / M

集合論とかで解くとスカッと公式化できるのかな?
0881デフォルトの名無しさん2014/08/16(土) 21:26:52.25ID:nQiWsyll
犯罪者スレ消えろ
0882片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/16(土) 22:22:39.84ID:jECCpoje
>>880
a != cの場合が間違い。
AのxとBのxは別のものなのでそのままでは連立できない。
求めるのはA∩B。
0883デフォルトの名無しさん2014/08/16(土) 22:38:04.02ID:nQiWsyll
うわぁキチガイコテだけの犯罪スレになったな
完全に削除対象スレ
0884デフォルトの名無しさん2014/08/16(土) 23:16:04.47ID:ee4Clawm
>>882
完全に自分の理解不足だったのね。サーセン。
0885デフォルトの名無しさん2014/08/16(土) 23:23:10.97ID:nQiWsyll
ゴミコテの自演うっざ
0886デフォルトの名無しさん2014/08/17(日) 01:06:55.48ID:sI1u/7Zz
http://peace.2ch.net/test/read.cgi/tech/1408204995/
QZが自演でスレを立ててるぞw
0887 ◆QZaw55cn4c 2014/08/17(日) 01:14:12.08ID:s3726XPY
>>875
http://peace.2ch.net/test/read.cgi/tech/1313183984/769
>互いに素でないものも含む
確かにこれはいやらしいねえ‥

証明とか解説は >>877 で許してもらえませんか?
>>877 の教科書でいうところのDisquisitionesのやりかたをベースにしています。
0888デフォルトの名無しさん2014/08/17(日) 01:29:03.50ID:s3726XPY
>>884
don't mind!
楽しんでください
0889デフォルトの名無しさん2014/08/17(日) 01:58:04.49ID:s3726XPY
>>886
もう専用隔離スレを自分で作りましたってば‥
0890デフォルトの名無しさん2014/08/17(日) 02:15:17.96ID:sI1u/7Zz
怒りのスレ削除wwww
0891デフォルトの名無しさん2014/08/17(日) 02:18:44.35ID:ukhq3+mT
uyってまだいたのか
0892デフォルトの名無しさん2014/08/17(日) 03:23:59.23ID:s3726XPY
>>891
あの情熱的な支離滅裂はもう一度読みたいなあ‥
0893デフォルトの名無しさん2014/08/17(日) 15:32:19.46ID:sI1u/7Zz
QZはゆるゆる系のイケヌマだからな
0894デフォルトの名無しさん2014/08/17(日) 15:47:36.55ID:wIqNJfGW
Qはお触り禁止
ホンモノの精神障害者だから
0895デフォルトの名無しさん2014/08/17(日) 18:55:53.84ID:cohciSyw
Q
0896デフォルトの名無しさん2014/08/17(日) 19:18:35.08ID:sI1u/7Zz
Z
0897デフォルトの名無しさん2014/08/17(日) 19:53:54.41ID:IlwmWS75
[1] 授業単元:プログラム概論
[2] 問題文
四則演算を実行する電卓の作成。
 * 被演算子はint型の整数値のみを取り扱う。
  - 整数値のオーバフローは考慮しなくて良い。
  - 被演算子に(-1)等の負数は考慮しなくて良い。ただし、実行結果は負数となり得る。
 * 演算子は+-*/とし、それぞれ加算、減算、乗算、除算とする。除算の結果は商となる。
  - 演算子の優先度は*/を高く、+-が低いものとする。同じ優先度の演算子は左から実行すること。
 * 括弧()で囲まれた項は先に実行する。例えば、(1 + 2) * 3の結果は9となる。
 * 入力と出力は以下に従う。
  - スペースはスキップする。1 + 2と1+2は等価である。
  - 式の区切りは改行文字とする。
  - ctrl-dが入力された場合はプログラムを終了する。
 * 以下のエラー処理を検出し、syntax errorと出力する。
  - [0-9]()+-/*以外の文字が使われている。
  - 括弧()の対応が取れていない。
  - 演算子と被演算子の対応が取れていない。例えば、1 + 等。
以下、実行例。
$ ./a.out    # 開始
1 + 2      # 入力
3        # 出力
(1 + 2) * 3   # 入力
9        # 出力
1 + 2 * (3 + 4) # 入力
15        # 出力
1 +       # 入力
syntax error   # 出力
ctrl-d      # 入力
$        # 終了
[3] 環境 [3.1] linux [3.2] gcc [3.3] C
[4] 2014/08/22(金)正午まで
[5] その他 C言語標準ライブラリ以外は使用しないこと。文法については制限なし。
0898デフォルトの名無しさん2014/08/17(日) 20:01:20.72ID:sI1u/7Zz
QZさん出番です↓
0899デフォルトの名無しさん2014/08/17(日) 20:02:35.39ID:IqZYxMHD
lex/yaccを使うといい
0900デフォルトの名無しさん2014/08/17(日) 20:08:31.21ID:sI1u/7Zz
QZさんそれでは回答になってませんよ
0901デフォルトの名無しさん2014/08/17(日) 20:31:44.92ID:/7QE8ZuN
http://hissi.org/read.php/tech/20140817/c0kxdS83Wno.html
0902デフォルトの名無しさん2014/08/17(日) 21:13:11.94ID:sI1u/7Zz
QZまたID変えてるの
コテつけたり自演したり忙しいね
0903デフォルトの名無しさん2014/08/17(日) 21:14:59.11ID:LRz7xi0T
peg/legのサンプルcalc.legをそのまま使ってみた
http://ideone.com/JB7vPP
0904デフォルトの名無しさん2014/08/17(日) 21:15:43.97ID:sI1u/7Zz
コテつけてないぞ?
QZ破れたり〜
0905デフォルトの名無しさん2014/08/17(日) 21:58:46.26ID:IlwmWS75
>>903
申し訳ありませんが、flex/bisonあるいはlex/yaccの生成するコードではちょっと・・・。
ちなみにそちらは[a-z]までの識別子を変数として使用できるやつですよね?
0906デフォルトの名無しさん2014/08/17(日) 22:00:37.99ID:sI1u/7Zz
QZさん後出しは禁止ですよ
0907デフォルトの名無しさん2014/08/17(日) 22:23:18.82ID:CXG97/EH
uyって以前は「Qz」って表記してたよね
0908デフォルトの名無しさん2014/08/17(日) 22:27:33.25ID:sI1u/7Zz
まさかの同一人物
0909デフォルトの名無しさん2014/08/17(日) 22:34:39.72ID:LRz7xi0T
>>905
> [a-z]まで
どう扱われるのかを踏まえて
どう定義づけるかってのが役割だから
常識的に考えてそんな制限があったら使い物にならないでしょ?
他と同じで[0x00-0xff]+だよ
0910デフォルトの名無しさん2014/08/17(日) 22:38:22.23ID:s5s5QylS
逆ポーランドと操車場アルゴリズムで、解決できそうだけど
0911デフォルトの名無しさん2014/08/17(日) 22:56:10.68ID:sI1u/7Zz
QZまだか
0912デフォルトの名無しさん2014/08/18(月) 00:12:09.58ID:DSQRQPi5
>>897
昔作りかけたものをちょっとだけ手直ししたものだから
中途半端だし関係ない制約もある
http://ideone.com/Cs7Q4k
制約
・整数はshort範囲のみ対応でそれを超えるとオーバーフロー(syntax errorって出力しちゃう)
中途半端
・16進数も限定的に対応(0xXXXX という4桁のみ対応)
・エラーを分類しようとして番号を振って行っているが作成途中だったため使っていない
・pCrrを見えなくしようとしてしきれていない
0913デフォルトの名無しさん2014/08/18(月) 00:15:26.58ID:DSQRQPi5
関係ない制約まだあった
・入力文字数80文字まで(まあこれは定義次第で変えれる)
・Ctrl+D以外に、終了用文字列を決めてあり、それと一致しても終了する
 (つまり終了文字列の場合はsyntax errorにならない)
0914デフォルトの名無しさん2014/08/18(月) 00:24:50.77ID:OdlWZdI3
おいQZコテつけろこそこそするな
0915デフォルトの名無しさん2014/08/18(月) 09:04:22.69ID:lhKU6rNH
>>897
手抜き
http://ideone.com/Ov8dep

>cat b.c
#include <stdio.h>
int main()
{
printf("%d¥n", @
);
return 0;
}
0916デフォルトの名無しさん2014/08/18(月) 09:18:50.28ID:aTnCZFOc
IDが出るようになってからQはコテをあまり付けなくなったよな
本当はID嫌なんじゃないの?
0917デフォルトの名無しさん2014/08/18(月) 12:23:45.28ID:DSQRQPi5
QZもこんなキモいハンガリアンにしてるの?
自分の昔のソースを開いてキモさに衝撃を受けた
szとかaszってなんだよ
0918デフォルトの名無しさん2014/08/18(月) 12:43:41.81ID:hOGPcHcB
型は違うけど同じ名前付けたい時どうするん
0919デフォルトの名無しさん2014/08/18(月) 12:47:50.99ID:uVMztZXb
同じ名前をつけるなよ
0920デフォルトの名無しさん2014/08/18(月) 13:17:34.80ID:hOGPcHcB
HWND hwndMain
HDC hdcMain
PAINTSTRUCT psMain

こういう時どうしてるん
0921デフォルトの名無しさん2014/08/18(月) 13:20:24.78ID:VT7Okk3T
(C言語なら)
wndMain, dcMain, psMain
Main さんの window, device context, paint struct 型じゃなく用途でぐらいの意識
0922デフォルトの名無しさん2014/08/18(月) 13:21:53.81ID:OdlWZdI3
QZはよコテつけろ
0923デフォルトの名無しさん2014/08/18(月) 13:25:48.65ID:hOGPcHcB
アプリケーション版画利案みたいなもんか
0924デフォルトの名無しさん2014/08/18(月) 21:55:44.77ID:5cvBvh4z
[1] 授業単元:卒業研究
(卒業研究であるアプリケーションを作っていて、実装方法がわからない部分を質問します。)

[2] 問題文:
点A,Bの2つの点があり、これらを原点を中心に回転させます。
A,Bのy座標が同じになるためには何度回転させればよいでしょうか?
http://s1.gazo.cc/up/96613.png

[3] 環境
[3.1] OS:MacOSX
[3.2] コンパイラ名とバージョン:Apple LLVM5.1
[3.3] 言語:C/C++
[4] 期限:12月
[5] 無し
[6] 数学がどうも苦手なので質問させていただきました。
アイディアだけでももらえると嬉しいです。
0925デフォルトの名無しさん2014/08/18(月) 22:07:55.63ID:9zqJA8S0
余弦定理を使った計算問題を一緒に解いてみましょう。

△ABCにおいて、a=8、b=5、c=7のとき、∠Cの角度を求めなさい。



http://manapedia.jp/images/files/a/5/a541fde6fbb7491093ea2028c542cfa6b8b6d65e1877e50c817809315979031a.jpg

余弦定理より
http://chart.googleapis.com/chart?chf=bg,s,FFFFFF&;cht=tx&chl= c ^{2} =a ^{2} %2Bb ^{2} -2ab \cos C
でまずcosCを求めて、その値がキレイであればCの角度がわかりそうですね。
http://manapedia.jp/text/index?text_id=578
0926デフォルトの名無しさん2014/08/18(月) 22:10:55.64ID:9zqJA8S0
2つのベクトルのなす角度を求める(2次元 3次元)
http://www.sousakuba.com/Programming/gs_two_vector_angle_1.png
2つのベクトルのなす角度 プログラミング例 (2次元)
http://www.sousakuba.com/Programming/gs_two_vector_angle.html


C言語Tips集 - 2 つのベクトルのなす角を計算する
http://www.c-tipsref.com/tips/math/o_included_angle.html


グラフィックス プログラミング > 2つのベクトルの成す角
http://www.hiramine.com/files/2d_vectorangle_01.gif
http://www.hiramine.com/programming/graphics/2d_vectorangle.html
0927デフォルトの名無しさん2014/08/18(月) 22:19:08.77ID:DSQRQPi5
極座標(Ar,Aθ)(Br,Bθ)で考えて
θ回転後A',B'の直交座標のyが同じになるようにする

つまり以下の式を解く
A'y=B'y
Ar*sin(Aθ+θ)=Br*sin(Bθ+θ)

式の解き方?わかりません
0928デフォルトの名無しさん2014/08/18(月) 22:46:58.87ID:ywvyTFFJ
単純な回転写像だから
θだけ回した結果 A->B の原点からの角度(線分ABとX軸とのなす角)もθだけ回る

A->B の原点からの角度を求めて: θo
 θo = atan( (By-Ay) / (Bx-Ax) )

θo + θ = 0 or 180 になるθが回転角度じゃなイカ
0929デフォルトの名無しさん2014/08/18(月) 23:21:30.68ID:OdlWZdI3
QZ怒涛の糞回答
0930デフォルトの名無しさん2014/08/19(火) 00:08:48.75ID:5mas1aYf
http://hissi.org/read.php/tech/20140818/T2RsV1pkSTM.html
0931デフォルトの名無しさん2014/08/19(火) 00:29:35.44ID:MNYlxzwL
おいQZいい加減コテつけろ
回答に自信がないのか?
0932デフォルトの名無しさん2014/08/19(火) 00:51:13.07ID:Sv8fjR13
DB "yuyukosama kawayui"
0933デフォルトの名無しさん2014/08/19(火) 14:23:59.70ID:Og8zC6Rj
[1] 授業単元:プログラミング基礎
[2] 問題文:
氏名が"end"になるまで、氏名と点数を入力する。データがなくなったら点数の平均を算出
する。平均と各人の点数を比較し、平均より20点以上下回っていたら"***"、10点以上
下回っていたら"**"、1点以上下回っていたら"*"を備考欄に表示する。
_____________________________
  氏名   点数  備考 
---------------------
  井上    70  
  田口    65  *
  佐藤    100  
  田中    30  ***  
=====================
[3.1] Windows 8
 [3.2] Visual studio 2008
 [3.3] C
0934デフォルトの名無しさん2014/08/19(火) 14:53:43.93ID:MNYlxzwL
これならQZでも簡単に解けそう
0935デフォルトの名無しさん2014/08/19(火) 18:02:03.30ID:5mas1aYf
>>893
ゆるキャラですか‥そろそろ新しい芸を探さないと‥三項演算子&リカーシブのコラボねたもこの前シクってしまったからなあ‥末尾再帰への無理解を指摘されて数年経つがいまだによくわかってないみたいだし‥
今はこれもまだよくわかっていないテンプレート様にすがってみるか‥マルチスレッドもまだ書きなれてないし‥
差分方程式(漸化式)と連続関数の世界とのつながりもまだよくわからないし‥そうそう,この前久しぶりにやったけど,数論オタクとかも結構いいなあ‥
C# は死んでもやらない‥どっとねっとライブラリ群とか,どうして classpash に準拠しなかったのかとか‥ライブラリこそ全世界統一標準化されるべきだよね‥
C#ネイティブコンパイラを作れ,と強要されたら,ヘルスバーグの後追いは光栄の極み,まだやる気がでるかもしれないが‥だいたいVMの存在価値ってなんだったの?‥
いずれにせよ精神分裂症の特効薬は未だに開発されていないし‥北極と南極の磁極が反転するくらいの天変地異が無い限り無理だろう‥

比較的メジャーな病気なのに,どうして未だに特効薬がないのだろう?
0936片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/19(火) 19:35:28.56ID:uNMWASio
差分方程式はマグロウヒル本で勉強すれば?

差分がΔf(n)=f(n+1)−f(n)ならば
ΣΔf(n)=(f(1)−f(0))+(f(2)−f(1))+
(f(3)−f(2))+…+(f(n+1)−f(n))
=f(n+1)−f(0)
となる。これが差分と和の関係だ。
差分を区間の幅で割れば傾きになる。それの和の極限をとれば積分になる。
0937デフォルトの名無しさん2014/08/19(火) 20:08:01.18ID:uNMWASio
それの面積の和の極限をとれば積分になる。
0938デフォルトの名無しさん2014/08/19(火) 20:36:51.94ID:QRfFbRrl
>>933
ttp://ideone.com/QNNagY
0939デフォルトの名無しさん2014/08/19(火) 21:00:49.34ID:MNYlxzwL
ゴミスレ
0940デフォルトの名無しさん2014/08/19(火) 21:03:05.77ID:MNYlxzwL
QZ]消えろ
0941デフォルトの名無しさん2014/08/19(火) 21:16:57.09ID:uNMWASio
精神が分裂していることを自覚してるなら、その人格に名前をつけてみよう
0942デフォルトの名無しさん2014/08/19(火) 21:22:10.25ID:dlh50twD
ヒント:トリップキー
0943デフォルトの名無しさん2014/08/19(火) 21:31:12.03ID:MNYlxzwL
おいQZいい加減コテつけろ
誰もお前の成りすまししたりする輩はいないから
0944デフォルトの名無しさん2014/08/20(水) 08:25:23.08ID:hY37C+OW
>>936
ただのリーマン積分の解析ごくろう
0945デフォルトの名無しさん2014/08/20(水) 08:28:11.51ID:hY37C+OW
>>943
http://hissi.org/read.php/tech/20140819/TU5ZbHh6d0w.html
お前のQZ愛は入院レベル
0946デフォルトの名無しさん2014/08/20(水) 09:50:23.55ID:4vpwnDwX
>>938
エラーばっかりじゃねーか
0947デフォルトの名無しさん2014/08/20(水) 17:33:23.26ID:ekRS8u1z
おちぶれQZエラーも駆除できない
0948片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/20(水) 19:51:38.06ID:pkgKe/2n
解決しました。
0949デフォルトの名無しさん2014/08/20(水) 20:04:46.41ID:ekRS8u1z
糞コテの妄言
0950デフォルトの名無しさん2014/08/21(木) 09:44:12.64ID:MNO53ERI
ID消してるから、意味分かんねー
透明にする方法ないかなぁ・・・
0951デフォルトの名無しさん2014/08/21(木) 14:10:02.74ID:JsL1zQzE
QZ名無し潜伏中
0952デフォルトの名無しさん2014/08/21(木) 17:02:44.55ID:SpHuFzyW
IDが無かった頃は自分でコテ付け外し自由だったけど、ID強制になったから
コテを付ける付けないに関わらずバレちゃうもんなwww
0953デフォルトの名無しさん2014/08/21(木) 19:01:39.82ID:SiLTEdjO
つまらないことにスレを消費するなよ。
0954デフォルトの名無しさん2014/08/21(木) 19:06:58.63ID:JsL1zQzE
それQZに言って
0955デフォルトの名無しさん2014/08/21(木) 20:26:05.76ID:ImdJ7Vgv
>>952
MACアドレスを変えるとIPアドレスも変わるプロバイダならお手軽にIDを変えることができるよ,QZが自治スレ炎上中に実演してたよ
0956デフォルトの名無しさん2014/08/21(木) 20:27:13.73ID:JsL1zQzE
3回線のQZ自演
0957デフォルトの名無しさん2014/08/22(金) 04:48:20.11ID:VxDg5NY4
http://hissi.org/read.php/tech/20140820/ZWtSUzh1MXo.html
http://hissi.org/read.php/tech/20140821/SnNMMXpRekU.html
09588972014/08/22(金) 17:07:20.01ID:zooXvV4g
>>912
ありがとうございます。
0959デフォルトの名無しさん2014/08/22(金) 17:13:31.14ID:kIg4HjrR
QZの糞コードに感謝感謝笑
0960デフォルトの名無しさん2014/08/22(金) 17:33:53.78ID:Vf5GJ9qp
uyって無職なんだよね?
0961デフォルトの名無しさん2014/08/22(金) 19:23:23.20ID:VxDg5NY4
QZにしては綺麗過ぎる末尾に /* end */ がない QZ はそんなところはあくまでもバカたくな
0962 ◆QZaw55cn4c 2014/08/23(土) 06:02:04.67ID:8Rw7aMNb
>>875
期限がきましたが >>887 のみしかつきませんでしたね
メール欄のアドレスでご連絡いただけないでしょうか?
0963デフォルトの名無しさん2014/08/23(土) 12:45:16.46ID:q/+BPTqG
糞コードでオナニーし金までとる正真正銘の基地
0964デフォルトの名無しさん2014/08/23(土) 15:59:42.57ID:lZGcDzWA
朝鮮人だからな
0965デフォルトの名無しさん2014/08/23(土) 19:41:03.41ID:q/+BPTqG
このスレはQZのべどべど精液で汚された
0966デフォルトの名無しさん2014/08/23(土) 19:46:20.64ID:q/+BPTqG
きもいおっさんの精液を無理やり頑者されることを想像してほしい
0967デフォルトの名無しさん2014/08/23(土) 21:04:18.28ID:vo8Kg5N8
>>966
[email protected]
0968デフォルトの名無しさん2014/08/24(日) 01:46:15.34ID:pcDH3u1P
>>875
y∈A∩B
⇔y=ax1+b=cx2+d (x1,x2∈Z)
⇔ax1-cx2=d-b (x1,x2∈Z)
⇔
gcd(a,c)はd-bの約数
かつ
az-cw=d-b
かつ
x1=z+{LCM(a,c)/a}t
x2=w+{LCM(a,c)/c}t
かつ
t∈Z
∴
0<a,cなので
i)gcd(a,c)がd-bの約数ならば
A∩B={az+b+LCM(a,c)t|t∈Z}={cw+d+LCM(a,c)t|t∈Z}
ここでz,wはaz-cw=d-bを満たす任意の数
LCM(a,b)はa,bの最小公倍数
ii)gcd(a,c)がd-bの約数でないならばA∩B=φ
0969デフォルトの名無しさん2014/08/24(日) 02:04:22.41ID:jlCuRdJh
QZのエラーまじりコードキター
まじでくっせえなあ
0970デフォルトの名無しさん2014/08/24(日) 03:33:19.65ID:pcDH3u1P
a=9876 b=1234 c=7654 d=5678
A∩B={20996+37795452| z∈Z}
正のものから小さい順に10個
20986,37816438,75611890,113407342,151202794,
188998246,226793698,264589150,302384602,340180054
検証PG
#include <stdio.h>
int main(void){
int a=9876,b=1234,c=7654,d=5678,n,count=0;
___for(n=0;n>=0 && count<10;n++){
______if( ((n-b)%a)==0 && ((n-d) % c)==0 ){
_________count++;
_________printf("%d\n",n);
______}
___}
___return 0;
}
0971デフォルトの名無しさん2014/08/24(日) 03:34:41.31ID:pcDH3u1P
A∩B={20986+37795452| z∈Z}
の間違いだった
0972デフォルトの名無しさん2014/08/24(日) 04:04:32.42ID:jlCuRdJh
他にもまだありますよQZさん
0973 ◆QZaw55cn4c 2014/08/24(日) 07:25:35.26ID:VXlyhoMG
>>968
>gcd(a,c)はd-bの約数
いいかえると「 b - d は gcd(a, c) の倍数」、というのは、この問題が解を持つ必要十分条件だ。
これを導きだしたのは評価してここまでで10点中の3点

しかしその後がなってない、
解を持つとき、それは必ず次の形になる、
LCM(a, c) × t + α
t は任意の整数
ここでこのαをどうやって定めるかについてはぜんぜん回答がなされていないのでは?

総得点:3/10
0974デフォルトの名無しさん2014/08/24(日) 11:42:01.65ID:EYMdVqe7
西アフリカで、アウトブレイクした潜伏期間延長型エボラの死者・罹患者の数を散布図にし近似曲線を出してみたら
片対数グラフで直線だから既に指数関数的増加だった

2014年に、西アフリカでアウトブレイクした潜伏期間延長型エボラの死者は、2014年8月半ばで1000人。←今ココ
2014年12月上旬で1万人。
この時点で世界規模で空路シャットダウン開始、世界経済大混乱

2015年5月で10万人。
2015年9月で100万人。
この時点で、第二次世界大恐慌発生

2015年大晦日で1000万人。

ちなみに
http://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%81%AE%E8%A5%BF%E3%82%A2%E3%83%95%E3%83%AA%E3%82%AB%E3%82%A8%E3%83%9C%E3%83%A9%E5%A4%A7%E6%B5%81%E8%A1%8C
:「この地域には内戦、政府による搾取、テロが長い間続いており、それによって生まれた恐怖、貧困、猜疑心などがある。エボラは耐え難い騒音に付け加えられた一つのざわめきに過ぎない」
現地では

や る 気 は 皆 無
0975デフォルトの名無しさん2014/08/24(日) 14:04:31.82ID:gaQQwBox
コピペマン参上!まで読んだ。
0976お断り2014/08/24(日) 14:22:02.39ID:pcDH3u1P
>>968
のロジックは省略だらけです。
⇔も適当に式を補わないと
つながりません
0977デフォルトの名無しさん2014/08/24(日) 14:42:54.30ID:jlCuRdJh
QZゴミコードをようやく排出
0978デフォルトの名無しさん2014/08/24(日) 14:59:41.09ID:jlCuRdJh
このスレQZの糞だらけだな
くっさいスレ、早く閉鎖したほうがいい
自演はするわゴミコードは平気で出すし滅茶苦茶
0979片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/24(日) 15:10:20.65ID:CCdy5Qgj
>>875は、すでに解決しています。
http://katahiromz.web.fc2.com/mathai/mathnote.pdf
0980デフォルトの名無しさん2014/08/24(日) 15:20:10.80ID:jlCuRdJh
ゴミコテででしゃばり寄るな
もうこのスレ臭いだけだからたたもう
0981片山博文MZ次期CEO ◆T6xkBnTXz7B0 2014/08/24(日) 15:27:26.02ID:CCdy5Qgj
>>980
うるせー市ね
0982デフォルトの名無しさん2014/08/24(日) 15:29:37.13ID:ZJV6C+Ys
ネストされたforで宣言したら遅くならない?
0983デフォルトの名無しさん2014/08/24(日) 15:38:37.59ID:jlCuRdJh
QZより糞なコード出したら人間をやめよう
0984デフォルトの名無しさん2014/08/24(日) 17:13:43.05ID:aTNt9hlE
>>980
お前はまっすぐ焼却炉まで歩いていって、ふた開けて中で座ってろ。
0985デフォルトの名無しさん2014/08/24(日) 19:08:44.58ID:jlCuRdJh
土日平日関係なしに糞コードオナニーしてるんだからねぇまったく
0986 ◆QZaw55cn4c 2014/08/25(月) 01:12:40.79ID:5aaZ0ZHF
>>875
>>887 にバグがありましたので修正しました.主要にゼロ割の手当てです.
http://peace.2ch.net/test/read.cgi/tech/1313183984/770

>>979
>すでに解決しています。
>>887 は 8/17 のものですが,少なくとも零割一つとっても致命的,まだ他にもあるかもしれませんし‥
懸賞金の受け取りは辞退します.

pdf できちんとした証明をいただき感謝しています.ぱっと見ですけど,感想を書いてもいいですか?

・定理4 は素因数分解の一意性を前提としているのですが,これは「あたりまえではない」ので証明しておきたいと思うのはマニアックでしょうか?
・定理7 は個人的には,二変数のみで拡張ユークリッドの互除法を経由したいとおもっています.正直なところ,ここが一番難しくて苦しんでいるのです‥‥
・式34 と 式 35 の間の n_i = M / m_i と,いきなり剰余類の割り算を導入していますが,これは m_i が互いに素であることが前提なので,初見では飛躍を感じるだろうと思います.なお私も >>887 でこちらを採用しました.
・定理17 までは例えば >>877 にもあるのですが,それ以降は今回のお題のきちんとした証明ですね.とても参考になります.
0987デフォルトの名無しさん2014/08/25(月) 01:18:19.12ID:FJ9UQc5Q
QZの超絶オナニーレス来た・・・
0988 ◆QZaw55cn4c 2014/08/25(月) 01:59:01.53ID:5aaZ0ZHF
>>979

おっと,よくみると >>986 にも間違いがありました.
× 式34 と 式 35 の間の n_i = M / m_i と,いきなり剰余類の割り算を導入していますが,
普通の割り算でしたね‥

式40, 式41 が肝なんですが‥こう眺めてみると‥やっぱりよくわからないな‥
n_i は m_i をの除く残りのn_1〜n_r のすべての積の最小公倍数なんですが,こんな表現もありなんですね‥
0989 ◆QZaw55cn4c 2014/08/25(月) 02:00:39.18ID:5aaZ0ZHF
×n_i は m_i をの除く残りのn_1〜n_r のすべての積の最小公倍数
○n_i は m_i をの除く残りのm_1〜m_r すべての最小公倍数

もう寝よう‥
0990デフォルトの名無しさん2014/08/25(月) 02:11:10.62ID:FJ9UQc5Q
うおおおおお
QZ渾身の大射精キター
このスレ臭すぎ
0991デフォルトの名無しさん2014/08/25(月) 02:21:10.88ID:famPiloD
純粋数学ともいえる証明をC言語でやろうというのは
その時点でかなり無謀だと思うのだが....
0992デフォルトの名無しさん2014/08/25(月) 02:24:11.73ID:FJ9UQc5Q
QZはなんでもかんでもCでオナニーしたがるからなあ
0993デフォルトの名無しさん2014/08/25(月) 02:34:00.51ID:5aaZ0ZHF
>>991
主題は問題を解くことなんですが、今回は自明でないことが多く、証明をつけないといけない(あるいは証明も楽しもう)という趣旨だと思うのです
0994デフォルトの名無しさん2014/08/25(月) 03:18:16.62ID:FJ9UQc5Q
ほらコテ外した
いつもこんな感じで潜伏してるんだろ?
0995デフォルトの名無しさん2014/08/25(月) 08:00:28.38ID:5aaZ0ZHF
>>994
http://hissi.org/read.php/tech/20140824/amxDdVJkSmg.html
http://hissi.org/read.php/tech/20140825/Rko5VVFjNVE.html
>>980
0996デフォルトの名無しさん2014/08/25(月) 08:02:14.00ID:5aaZ0ZHF
>>984
0997デフォルトの名無しさん2014/08/25(月) 12:07:56.89ID:AbgNdg4z
>>994
お前QZと友達かよ
0998オナヌ2014/08/25(月) 12:20:35.37ID:famPiloD
7x-14y=1 に整数解が無い理由→左辺は7の倍数だが右辺はそうではない
7x-4y=1 に整数解がある理由→7x(x=0,1,2,3)を4で割った時の余りが
すべて異なるので4で割って1あまるものがある→7x0=1+4y0となるx0,y0
がある→整数解を持つ
7x(x=0,1,2,3)を4で割った時の余りが異なる理由→余りが同じ0<=x0,x1<=3
(x0≠x1)で7(x0-x1)は4の倍数だが7と4の互いに素なのでx0-x1が
4の倍数だがこれはありえない
7x-14y=2に整数解がある理由→7x-14y=1に整数解があるから2x,2yという
整数解がある
7x-14y=28に整数解がある理由→7,14の最大公約数7で右辺が割れるから
両辺が割れてx-2y=4.最大公約数で割った数同士は互いに素だから

7x-4y=1,7x'-4y'=1を満たす4つの整数x,x',y,y'の関係
7(x-x')=4(y-y')=z
zは7,4の倍数だから7,4の公倍数で、7,4の最小公倍数の倍数
(公倍数は最小公倍数の倍数だから)
z=LCM(7,4)t (tは整数)
∴x'=x+(LCM(7,4)/7)t
0999デフォルトの名無しさん2014/08/25(月) 12:34:19.07ID:5aaZ0ZHF
>>998
「7 と 4」とか特定の数ではなくて,もっと一般的な話ができないかな?
a, b, とか文字を使ってさ‥
1000デフォルトの名無しさん2014/08/25(月) 12:35:20.36ID:Mg2fQQvs
次スレよろ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。