C/C++の宿題を片付け ..
[2ch|▼Menu]
175:デフォルトの名無しさん
07/07/17 21:23:47
[1] 授業単元: CG入門
[2] 問題文
縦横400ピクセルのスクリーン上に3次元空間の3角形が複数個、投影される。
この3角形についてそれぞれ
@スクリーン上の頂点:(x1,y1)(x2,y2)(x3,y3)
A頂点のZ値(視点から3次元空間までの距離):Z1,Z2,Z3
B三角形の色:(r,g,b)-均一色
が標準入力から与えられるとき、Z−バッファ法に基づいてスクリーン上に三角形を描き
最終結果をppm画像として出力するプログラムを作成せよ。

*必要なデータは標準入力から入力するものとし、かつ複数のB角形に対応させる事
(B角形個数は予め与えてもよい)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual studio.
 [3.3] 言語: C
[4] 期限: 2007年7月19日 11:00まで

この手のプログラムはスレ違いかもしれないと思いつつも、C言語で書いて来いとのことなので
書き込ませて頂きました。何卒、よろしくお願いします。

176:デフォルトの名無しさん
07/07/17 21:25:47
>>170
できた。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

177:デフォルトの名無しさん
07/07/17 21:28:47
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 線形探索
次の表は、平成19年のお年玉付き年賀葉書の当選番号である。
1等 157788、457190
2等 5161、7093、7485、9614
3等 64、79
手元に届いた年賀状の抽選番号をキーボードから入力し、
当選したかどうかチェックして結果を表示するプログラムを作成する。

当選番号(の下2桁)は、キーの配列に初期値として格納する
キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。
探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。
【発展】
余力のある人は、下2桁に限らず、全桁を初期値として格納し、当選のチェックを実行するプログラムを作成してみること。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VB
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 習ったのは 配列 if-else文 繰り返し ポインタ 線形探索と基礎知識
です。[発展]の方でお願いします。

178:デフォルトの名無しさん
07/07/17 21:37:38
>>174

>>170と同じ人か?

%演算子の分追加、変数名微修正と
コマンドライン引数を指定するとそのファイルから、
指定しないと標準入力から読み取るようにした。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

179: ◆y43pIoOHKo
07/07/17 21:39:12
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
自分の名前をローマ字でキーボードで入力し、文字数を表示させる関数、名前を逆順にする関数を
各自それぞれ定義しプログラムを組みなさい。結果の表示はmainで行い、姓と名の間は1文字
空白を入れること。ただし、変数が文字型、ポインタ型のみの場合の2つに分けてプログラムを組みなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語:C++
[4] 期限: 2007年07月18日10:00まで]
[5] その他の制限:できれば、do-while文及びfor文を使用してお願いします。

180:デフォルトの名無しさん
07/07/17 21:41:12
>>176さん、ありがとうございます。
けどまた説明不足でした…。小数の場合も含みます…。
>>170追加例
ファイル内
1.5+1.5=
3*5=
1.5+2=
出力
1.5+1.5=3
3*5=15
1.5+2=3
何度も説明不足ですいません…。この小数と整数を区別して出力するのが
むずかしいです。よかったらお願いします。

181:デフォルトの名無しさん
07/07/17 21:45:15
>>180
説明し忘れが無いか一度確認したほうがいいと思うよ
小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う

182:デフォルトの名無しさん
07/07/17 21:45:22
>>180
aとbの型をdoubleにして、
fscanfの%dを%lfに、
printfの%dを%gにすればおk

183:デフォルトの名無しさん
07/07/17 21:50:56
170です。
>>182さんありがとうございます!!これで完成しました!!
みなさんありがとうございました。%gとは便利な…。

184:デフォルトの名無しさん
07/07/17 21:52:10
そんな事より、今日うちに犬が死んだ。老衰だった

185:デフォルトの名無しさん
07/07/17 21:53:27
>>34>>37
遅くなりましたがありがとうございました。


186:デフォルトの名無しさん
07/07/17 22:01:04
[1] 授業単元: ソフトウェアシステム
[2] 問題文(含コード&リンク):
以下の円周率を2000桁もとめるプログラムを
できるだけ高速に計算できるように改良せよ。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語: C
[4] 期限: 2007年7月18日12:00まで
[5] その他の制限:
マイコン。配布プロラムはマチンの公式を使っている。

若干スレ違いかもしれないですが、よろしくお願いします。

187:デフォルトの名無しさん
07/07/17 22:05:38
>>186
マイコンかWindowsかどっちなんだ。つかマイコンだろうな。
どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴
いないんじゃないか。

188:デフォルトの名無しさん
07/07/17 22:07:21
>>175
よくわからんが、おもむろにCreateWindow()で窓を開く
コンソールアプリをつくれということだろうか。

189:デフォルトの名無しさん
07/07/17 22:09:28
>>187
Windows上で開発してるってことだろ、多分
せめてどんなマイコンを使ってるかわからないと難しいな・・・

190:デフォルトの名無しさん
07/07/17 22:17:30
○×ゲーム
Linuxのプロンプト上でplay
com/man対戦、先攻/後攻を選べる

191:デフォルトの名無しさん
07/07/17 22:20:53
最近三目並べはやってんのかyo

192:175
07/07/17 22:37:33
>>188
アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと
それを適当なソフトで忠実に再現したppm画像に出してくれるものです。
同じ事言ってたらすいませんorz

できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m

193:デフォルトの名無しさん
07/07/17 22:40:26
>>186です

>>187
>>189
説明不足ですいません。

答えになってないかいもしれないですが、この付属のV850基板を使っています。
URLリンク(www.cqpub.co.jp)

194:デフォルトの名無しさん
07/07/17 22:42:40
V850基板なら手元にあるぜ
でもまだソフトインスコしてない・・・

195:デフォルトの名無しさん
07/07/17 22:43:16
>>192
いや、スクリーンに描画しろとか書いてあるからさ。
それを見なかったことにして、PPM画像ファイルを出力するだけなら、
標準Cの範囲のプログラムで出来る話だが、400*400の画面に
描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。

196:190 ◆Oa0JSQvro2
07/07/17 23:14:27
追記です。
期限は木曜夜でお願いします。

よろしくおねがいしますm(__)m

197:175
07/07/17 23:14:34
>>195
なるほどそういう事でしたか…
特に制限などは言われていないので(Cのみとは言われてません)
このスレの趣旨に沿っていないかもと思ったのです。

できれば400X400は後に考えますので、ファイル出力の部分をお願いします。

198:デフォルトの名無しさん
07/07/17 23:36:49
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 練習13-2(気象情報)
インターネットを利用して出身地の観測開始から現在までの
気象情報を入手し,各年の月別平均気温データを作成する.
作成したファイルから気象データを読み込んで,
  (1)平均気温が最も低い年月と最も高い年月を探索して
    両者の年月と気温をディスプレイに出力する
  (2)年間平均気温を計算し,高い年から順に
    年と年間平均気温をファイルに出力する
プログラムを作成しなさい.

気象庁HP(URLリンク(www.jma.go.jp))参照
[3] 環境
 [3.1] OS: Windows
 [3.2]
 [3.3] 言語:C言語
[4] 期限: 2007年 7月18日の朝
[5] その他の制限: 出身地は神戸でお願いします

199:デフォルトの名無しさん
07/07/17 23:38:00
>>196

>>1のテンプレを漏れなく書け。

200:デフォルトの名無しさん
07/07/17 23:45:39
× 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?

201:デフォルトの名無しさん
07/07/18 02:31:07
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
longが定義されている数の最大値LONGMAXをもとめろ。
例えば、i=1 を2倍していき、LONGMAXの最大値を求める。
別にこの方法でなくてもいい。各自にまかせる。
ちなみに LONGMAXはおよそ2147483647である。
余裕があるものはdouble などもやることが望ましい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc2.95-3)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: (2007年07月25日23:59まで)
[5] その他の制限:無制限
さぐりで下のようなところまでは書きました。
#include <stdio.h>
#define LONGMAX 2147483647
int main(void)
{
long int i,i2;
/*これは0 ... の無限ループ
for(i=1;i<LONGMAX;i*=2)
printf("%d ",i);
*/
for(i=1;;i2=i,i*=2){
printf("%d ",i);
if(i<i2){
printf("%d is LONGMAX\n",i);
break;
}}}
までできましたが、値が少し違い微妙です。
それと、コメントカットしたらなぜ無限ループになるのでしょうか?
これにかなり悩みました。

202:デフォルトの名無しさん
07/07/18 03:17:08
>>201
無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。
で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。

後半での出力は…少しの違いなのか?

---
#include <stdio.h>
int main(void)
{
unsigned long max = -1;
printf("Unsigned MAX:%ud\n", max);
printf("Signed MAX:%d\n", max >> 1);
return 0;
}
----

203:デフォルトの名無しさん
07/07/18 03:37:53
>>201
2倍していき・・・verで書いてみた

#include <stdio.h>
#include <math.h>
int main(void)
{
int i=0;
long n, tmp;
while( (tmp = pow(2, i)-1) >= 0 ){
n = tmp;
i++;
}
printf("LONG MAX : %d\n", n);
return(0);
}

204:デフォルトの名無しさん
07/07/18 03:54:03
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C
[4] 期限:7/19まで
[5] その他の制限:課題@はwhile文、Aは両方とも構造体、Bは全てポインタと構造体の単元です
@とAは自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです
どうかご教授の程お願いします

205:デフォルトの名無しさん
07/07/18 07:36:23
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#

問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
削除文字列(m2)==>ABC
結果文字列(m1):DEFAD

注意:配列の使用はm1,m2のみとする


206:デフォルトの名無しさん
07/07/18 07:56:14
>>204
よく見てないけど
@
=< じゃなくて <=
isdigit() -> isdigit(moji)
printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ)

A
× while(buff = getchar()!="0 0 0"){
whileのなかのsscanfのbufferなんてない
× printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}


207:206
07/07/18 07:57:21
あー
printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ)
に訂正です

208:デフォルトの名無しさん
07/07/18 08:10:29
>>186

URLリンク(www.sra.co.jp)

たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。

209:デフォルトの名無しさん
07/07/18 08:34:24
>>177
奮闘中ですが、できませんorz
お願いします!

210:190 ◆Oa0JSQvro2
07/07/18 09:12:44
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜夜
[5] その他の制限: 特になし

211:デフォルトの名無しさん
07/07/18 10:09:46
[1] プログラミング基礎
[2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上)
および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。

詳しいことは次のアドレスに書いてあります。
URLリンク(itohws03.ee.noda.tus.ac.jp)

[3.1] Unix
[3.2] gcc
[3.3] c
[4] 7月27日(金)
[5] 私の学籍番号の下三桁は080です。

212:デフォルトの名無しさん
07/07/18 10:14:23
どうせその学籍番号は他人のものだろ?

213:デフォルトの名無しさん
07/07/18 10:41:19
>>177
VBではなくVSです

214:c言語初心者
07/07/18 10:56:39
講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします
問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int a[ (1)? ];

void RandomPermutation(int n)



215:c言語初心者
07/07/18 10:57:29
『続き』

{
例題2と同じ


int main(void)
{
int i;

RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
      printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。

216:デフォルトの名無しさん
07/07/18 11:07:22
>>209
URLリンク(kansai2channeler.hp.infoseek.co.jp)


217:デフォルトの名無しさん
07/07/18 11:19:47
>>215
四の五の言わないで全部書き出しな

218:デフォルトの名無しさん
07/07/18 11:21:57
>>175
ですがどうにもうまく三角形が描けませんorz
ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m

219:c言語初心者
07/07/18 11:39:59
>>215
0,1,2, … 、99をランダムに並べる

#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1))

int a[100]



220:c言語初心者
07/07/18 11:40:29
続き
void RandomPermutaion(int n)
{
int i, j, z;
for (i = 0; i < n; i++) {
a[i] = i;
}
for(j = n - 1; j > 0; j--) {
i = (int)(j * uniformrend());
z = a[i]; a[i] = a[j]; a[j] =z;
}
}

int main()
{
int n, i;

n = 100;
RandmPermutation(n);
for (i = 0; i < n; i++){
printf("%4d", a[i]);
}
printf("/n");

return 0;
}
が例題2です。よろしくお願いします

221:デフォルトの名無しさん
07/07/18 11:56:24
>>220
できたぞ
つか
 printf("ハート% 4d \n", n (3)? );
とか
 printf("ダイア% 4d \n", n (5)? );
って、問題間違ってないか?

222:c言語初心者
07/07/18 12:00:14
間違ってました。申し訳ありません。
printf("ハート% 4d \n", (3)? );
printf("ダイア% 4d \n", (5)? );

です。
よろしくお願いします。

223:デフォルトの名無しさん
07/07/18 12:07:51
[1] 授業単元: C
[2] 問題文(含コード&リンク):単純選択法
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。

ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。

【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
発展
以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。

配列要素の入力を行う input_array
配列要素の出力を行う output_array
単純選択法によるソート select_sort
[3] 環境
 [3.1] OS: WindowXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期限: いつでも
[5] その他の制限:なし

224:デフォルトの名無しさん
07/07/18 12:09:04
>>223
発展までは書いてみました

#include<stdio.h>
#define SIZE 20
void kadai28()
{ int key[SIZE];
int i, j, p, cnt = 0, w;
for(i = 0; i < SIZE; i++)
scanf("%d", &key[i]);
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
for(i = 0; i < SIZE; i++){
p = i;
for(j = i+1;j < SIZE;j++){
if(key[j] < key[p])
p = j;
cnt++;
}
w = key[p];
key[p] = key[i];
key[i] = w;
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
}
printf("cnt = %d\n", cnt);
return;
}
発展の方お願いしますー

225:デフォルトの名無しさん
07/07/18 12:10:49
[1] プログラム基礎復習
[2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度)
[3] 環境
 [3.1] Windows2000プロ
 [3.2] gcc
 [3.3] C
[4]7/20
[5]main以外の関数を作ってはいけない

お願いします。さっぱりなので・・・

226:デフォルトの名無しさん
07/07/18 12:13:08
>>225
「+」「-」「*」「/」「√」位かな?


227:デフォルトの名無しさん
07/07/18 12:15:15
>>222
じゃ、パーツだけ教えるよ


a[i]/13==0
a[i]/13==1
a[i]/13==2
a[i]%13
a[i]%13
a[i]%13
a[i]%13

または

n
a[i]&3==0
a[i]&3==1
a[i]&3==2
a[i]/4
a[i]/4
a[i]/4
a[i]/4

好きなほうを使ってくれ

228:デフォルトの名無しさん
07/07/18 12:15:26
>>226
お願いできますか?
charだと256までしか出来ないので積や商がさっぱりで・・・


229:c言語初心者
07/07/18 12:20:22
>>221さん。
頼んでおいて申し訳ないのですが、>>214の回答をよろしくお願いします。

230:デフォルトの名無しさん
07/07/18 12:20:25
>>225
小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?

231:デフォルトの名無しさん
07/07/18 12:24:54
>>229
>>227にヒントを書いたんだけど、不服?

232:225です
07/07/18 12:28:13
>>214さん
問題文の意味がよく分からないんですけど
ジョーカーは1枚ですよね?
それでランダムで5枚引くと・・・・




233:デフォルトの名無しさん
07/07/18 12:29:21
>>225
小数点以上は無限大?

234:225です
07/07/18 12:32:02
>>233
指定されていないので 多分無限だと思います

235:c言語初心者
07/07/18 12:33:46
>>231さん
不服なんてとんでもないです。ただ、ヒントもらっても自分が解けないだけです。申し訳ないです。

>>232さん
たぶんジョーカー2枚を抜いた52枚でのことだとおもいます。よろしくお願いします。


236:225です
07/07/18 12:33:59
足し引きはifで100で固めれば簡単に出来ることはわかったんですけど


237:デフォルトの名無しさん
07/07/18 12:34:33
多倍長の実数計算を実装させて
>[5]main以外の関数を作ってはいけない

冗談きつすぎ

238:デフォルトの名無しさん
07/07/18 12:37:24
>>225
100^256 までしかできなくね? 無限じゃネージャン

239:デフォルトの名無しさん
07/07/18 12:38:15
再帰下降も不可、と

240:デフォルトの名無しさん
07/07/18 12:39:19
>>238
勿論char[]で多倍長を実装するんでしょ
そうじゃなきゃそもそも実数すら扱えん

241:256です
07/07/18 12:39:40
ごめんなさい頼る所はココしかないので・・・・orz 


242:デフォルトの名無しさん
07/07/18 12:40:08
未来からの使者か?

243:149
07/07/18 12:58:59
>>153さんのテキストをコンパイルしてみたのですが、

/tmp/ccY67IGB.o(.text+0x163): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x177): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x197): In function `angle':
: undefined reference to `acos'
collect2: ld はステータス 1 で終了しました

と表示されて、./a/out のファイルが作成されなかったのですが
これは何でしょうか・・

244:デフォルトの名無しさん
07/07/18 13:00:17
何方か205お願いします

245:デフォルトの名無しさん
07/07/18 13:01:49
エラーメッセージじゃないかな??

246:デフォルトの名無しさん
07/07/18 13:05:23
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
特定の単語にgoogle 検索のリンクをはるプログラムをつくれ。
例えば、下は「テスト」という単語をgoogle検索したリンク である。
q= 以降は「テスト」という単語がURLエンコード(unicode)された文字列となっている。
URLリンク(www.google.co.jp)
1. htmlファイルを受け取る
2. 検索リンクにしたいいくつかの指定した単語を受け取る
3. すでにリンク済みの単語に注意しながら、指定した単語をgoogle 検索のリンクにする。
(例)「宿題」をgoogle 検索されたリンクにする。
この宿題ができなかったら単位はあげません。
->
この<a href="URLリンク(www.google.co.jp)
宿題</a>ができなかったら単位はあげません。
なお、目的を果たせるプログラムだったらこの形式でなくてもかまわない。
余裕がないものは
・検索ワードはURLエンコードの必要のない半角英数等だけでいい。
・受け取った検索ワードはすでにリンクされていないと仮定してもいい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc2.95-3
 [3.3] 言語: C
[4] 期限: (2007年07月31日17:00まで)
[5] その他の制限: 何を使っても構わない

247:デフォルトの名無しさん
07/07/18 13:07:40
>>243
-lmつけると幸せになれる

248:デフォルトの名無しさん
07/07/18 13:08:14

>>225
組むのめんどいからヒントだけあげるよ

現在のCPU能力では「+」と「-」しか演算が出来ない。
「*」「/」はただの演算方法でしかない
例 a*bの場合   int i; for(i=0;i=b;i){a++}




249:デフォルトの名無しさん
07/07/18 13:09:34
>>248
ちょw

250:デフォルトの名無しさん
07/07/18 13:12:39
>>205
何が分からないか分からないんだが・・・・・・・
まんまじゃん




251:デフォルトの名無しさん
07/07/18 13:15:31
>>250
それを言うなwそれ言っちゃこのスレの存在価値がw

252:149
07/07/18 13:37:55
>>247さん
幸せになれましたが、どういう原理なのでしょう?
質問ばっかですいません

書き忘れましたが、153さん・247さんありがとうです

253:デフォルトの名無しさん
07/07/18 13:41:52
>>252
mという数学ライブラリをリンクしたのです。

254:デフォルトの名無しさん
07/07/18 13:42:09
>>248
兄さんそれ掛け算になってません。
forの条件式もアレです。意図は伝わるけど。

255:デフォルトの名無しさん
07/07/18 13:46:27
a*bの場合 int i,n; for(i=0;i<b;i++){n+=a;}
暇ですね。

256:デフォルトの名無しさん
07/07/18 13:47:11
a*bの場合 int i,n=0; for(i=0;i<b;i++){n+=a;}

257:デフォルトの名無しさん
07/07/18 13:48:03
>>252
243のエラーメッセージはソースの中に存在しない関数(sqrtとacos)があって
プログラムを作れないというリンカのエラー。
>>253の言うとおり数学ライブラリをリンク指定すれば
その中に関数sqrtとacosという関数があるからリンクが通る。

258:デフォルトの名無しさん
07/07/18 13:52:06
>>248

259:デフォルトの名無しさん
07/07/18 14:02:41
馬鹿は彫っとけ

260:デフォルトの名無しさん
07/07/18 14:04:45
やらないか

261:デフォルトの名無しさん
07/07/18 14:16:34
>>175
URLリンク(kansai2channeler.hp.infoseek.co.jp)

入力は各行に(別に各行でなくてもいいけど)
x1 y1 Z1 x2 y2 Z2 x3 y3 Z3 r g b
の順で数値を並べたファイル.
(例)
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255

出力先もコンソールにしてるが,変更したければmain冒頭の
FILE *out = stdout;
を書き換えればいい.

画像はLinuxのxvで確認した.ppm形式はいくつか種類があるようなので問題あるかも.
(注:CGは昔かじった程度なのでzバッファについて根本的な勘違いをしてるかもしれない)

262:デフォルトの名無しさん
07/07/18 14:30:47
>>205
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2でstrcpy()(文字列のコピー)の替わりにstrcat(文字列の連結)を使った。
strcpy()を使えと言われても俺の能力じゃムリポ

263:デフォルトの名無しさん
07/07/18 14:33:09
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)

264:262
07/07/18 14:37:06
262の駄文は忘れてくれ
問題2の修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

265:デフォルトの名無しさん
07/07/18 15:08:56
>>246
色々穴だらけだが
URLリンク(kansai2channeler.hp.infoseek.co.jp)


266:デフォルトの名無しさん
07/07/18 15:18:43
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。

267:デフォルトの名無しさん
07/07/18 15:19:45
サイズの方が重要かも。

268:265
07/07/18 15:24:25
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ

269:ヒープ
07/07/18 15:36:58
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。

270:デフォルトの名無しさん
07/07/18 17:26:12
>>177
#include <stdio.h>

int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}


271:デフォルトの名無しさん
07/07/18 18:07:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。

272:175
07/07/18 19:53:23
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!



273:デフォルトの名無しさん
07/07/18 20:09:44
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

ギリギリまで頑張ったのですができませんでした。わかる方お願いします

274:デフォルトの名無しさん
07/07/18 20:12:21
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし

275:デフォルトの名無しさん
07/07/18 20:13:01
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。

276:スモーク
07/07/18 20:17:27
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。

277:デフォルトの名無しさん
07/07/18 20:20:53
釣りか?

278:デフォルトの名無しさん
07/07/18 20:21:21
除算の結果の小数点以下は?

279:デフォルトの名無しさん
07/07/18 20:25:19
>>271
URLリンク(kansai2channeler.hp.infoseek.co.jp)

280:デフォルトの名無しさん
07/07/18 20:27:06
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません

よろしくおねがいします

281:22
07/07/18 20:37:28
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
ソース:URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし

どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。

282:スモーク
07/07/18 20:41:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。


283:デフォルトの名無しさん
07/07/18 20:42:52
ここまでくると、嫌がらせとしか思えないな

284:デフォルトの名無しさん
07/07/18 20:43:30
なんか追記の書き方がムカツクのは俺の心が狭いからかな

285:デフォルトの名無しさん
07/07/18 21:07:30
>>280
汚くて&間違ってたらスマソ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

286:285
07/07/18 21:11:36
あー、a=0の時の処理書いてないわ
適当に追加してね

287:デフォルトの名無しさん
07/07/18 21:26:20
>>284
俺も。>>285はキリストかあるいはMだと思う。

288:デフォルトの名無しさん
07/07/18 21:39:00
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}


289:alsk
07/07/18 21:56:33
健康についての英語のエッセイを500〜600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!

290:デフォルトの名無しさん
07/07/18 21:57:11
>>289
スレ違いすぎ。

291:デフォルトの名無しさん
07/07/18 22:00:17
(´-`).。oO(英語で500〜600"字"ってかなり少なくないか?)

292:デフォルトの名無しさん
07/07/18 22:03:32
(´-`).。oO("語"の間違いだろ・・・常考)

293:デフォルトの名無しさん
07/07/18 22:04:01
釣りか単なるマルチだろ…

294:デフォルトの名無しさん
07/07/18 22:40:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる

+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高


#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;

if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}


295:デフォルトの名無しさん
07/07/18 22:42:19
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし


296:デフォルトの名無しさん
07/07/18 23:13:01
>>223
お願いします

297:デフォルトの名無しさん
07/07/18 23:16:30
>>279
回答ありがとうございます。
とてもみやすかったです^^

298:デフォルトの名無しさん
07/07/18 23:24:06
>>297
readfile関数内の int j はいらないから消しといて><

299:デフォルトの名無しさん
07/07/19 00:12:58
>>273

#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}

300:デフォルトの名無しさん
07/07/19 00:33:57
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26

どなたかご教授お願いしますorz




301:273
07/07/19 00:47:41
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。

302:デフォルトの名無しさん
07/07/19 00:51:41
>>296
URLリンク(kansai2channeler.hp.infoseek.co.jp)

303:デフォルトの名無しさん
07/07/19 00:58:09
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?

304:デフォルトの名無しさん
07/07/19 00:58:15
>300
char x;
scanf("%s", &x);
ってなんだ?

305:デフォルトの名無しさん
07/07/19 01:02:05
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。


306:デフォルトの名無しさん
07/07/19 01:11:28
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです


307:デフォルトの名無しさん
07/07/19 01:16:07
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け

308:デフォルトの名無しさん
07/07/19 01:19:00
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):URLリンク(sakuratan.ddo.jp)
                  return ????部分が分かりません。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)WinXP
 [3.2] コンパイラ名とバージョン:VC6
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし

よろしくおねがいしますorz

309:デフォルトの名無しさん
07/07/19 01:24:12
なんでいちいち外部に上げるかね

310:デフォルトの名無しさん
07/07/19 01:24:47
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ


311:デフォルトの名無しさん
07/07/19 01:27:19
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?

問題文がないしわけがわからんよ


312:308
07/07/19 01:28:11
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。

313:デフォルトの名無しさん
07/07/19 01:29:36
は?
問題文がないなら宿題じゃねえじゃん

314:デフォルトの名無しさん
07/07/19 01:30:00
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}


315:デフォルトの名無しさん
07/07/19 01:31:47
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し

もうさっぱりです。お願いします。

316:308
07/07/19 01:32:04
>>313
「ここ埋めてきて」と…

317:デフォルトの名無しさん
07/07/19 01:33:24
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・

もうだめぽ

318:デフォルトの名無しさん
07/07/19 01:46:04
>>315
> 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210

この例だったら、1 〜 n じゃなくて 0 〜 n-1 じゃないのか?


319:300
07/07/19 01:46:55
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・


320:デフォルトの名無しさん
07/07/19 01:47:47
>>315
n桁ってのは上限はないのか?

321:デフォルトの名無しさん
07/07/19 01:48:52
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句

322: ◆Kt53Ir50Qk
07/07/19 01:50:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん

323:デフォルトの名無しさん
07/07/19 01:53:41
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。

>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。

324:デフォルトの名無しさん
07/07/19 01:58:48
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
 sp--;
 printf("%c", Stack[sp]);
}
printf("\n");
break;



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5373日前に更新/328 KB
担当:undef