[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 01/02 08:08 / Filesize : 214 KB / Number-of Response : 711
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 01:08:18 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 130代目
pc12.2ch.net/test/read.cgi/tech/1250204272/

449 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 11:51:37 ]
[1] 授業単元:C++実習2
[2] 問題文(含コード&リンク):
-関数テンプレート-
配列へのポインタと要素数を渡すと昇順にソートする関数を作成せよ。
但し,関数テンプレートにより作成すること。想定する配列の型は文字列以外とする。
ソートのアルゴリズムはバブルソート(単純交換法)とする。また,関数をテストする適切なmain関数も作成し提出すること。
関数名前名は b_sort とし,第1引数は配列へのポインタ, 第2引数はint型で配列の要素数, 戻値は無しとする。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:[2009年11月1日23:00(日)まで]
よろしくお願いします。

450 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 14:51:32 ]
>>449
#include <iostream>
using namespace std;
template <typename T> void b_sort(T a[], int n)
{
for (int i = 0; i < n - 1; ++i) {
for (int j = n - 1; j > i; --j) {
if (a[j - 1] > a[j]) {
T temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp;
}
}
}
}

int main()
{
int a[] = { 3, 8, 1, -1, 9, 8, 7 };
double b[] = { 3.09, 2.1, -9.27, 8.0, 3.11, -6.5 };
b_sort(a, 7);
for (int i = 0; i < 7; ++i) cout << a[i] << ' '; cout << endl;
b_sort(b, 6);
for (int i = 0; i < 6; ++i) cout << b[i] << ' '; cout << endl;
return 0;
}

451 名前:デフォルトの名無しさん [2009/10/29(木) 15:55:37 ]
www.dotup.org/uploda/www.dotup.org315213.docx.html

【質問テンプレ】
[1] 授業単元:計算機実習応用
[2] 問題文(含コード&リンク):
   www.dotup.org/uploda/www.dotup.org315213.docx.html
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョンVC++
 [3.3] 言語: (C
[4] 期限: ([2009年10月30日10:00まで]
[5] その他の制限:

明日の1限の授業中に出される課題です。
授業時間内に提出すれば評価が高くなるのでお願いします。


452 名前:デフォルトの名無しさん [2009/10/29(木) 16:28:33 ]
>>451
お断りします。

453 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 16:41:00 ]
>>442
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10028.txt

454 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 19:46:40 ]
>>451
どうやって問題文を読めばいいのかわかりません。

455 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 20:06:26 ]
新井さん?

456 名前:378 mailto:sage [2009/10/29(木) 21:23:19 ]
>>371
ちょっとみなおしてみました。
問題は x1, y1 を整数で宣言したことでしょうね。

457 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 22:05:13 ]
>>451
問1
return x*x+y*y
c = function1(a, b);
printf("%d\n", c);

問2
#include<stdio.h>
#include<math.h>

void wasasekisho(double x, double y, double* pwa, double* psa, double* pseki, double* psho);

int main(){
double a, b;
double lpwa, lpsa, lpseki, lpsho;
printf("a...");
scanf("%lf", &a);
printf("b...");
scanf("%lf", &b);
wasasekisho(a, b, &lpwa ,&lpsa, &lpseki, &lpsho);
printf("wa...%.0lf, sa...%.0lf, seki...%.0lf, sho...%.0lf",lpwa ,lpsa, lpseki, floor(lpsho));
}

void wasasekisho(double x, double y, double* pwa, double* psa, double* pseki, double* psho)
{
*pwa = x+ y;
*psa = x - y;
*pseki = x * y;
*psho = x / y;
}




458 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 22:37:17 ]
問3
どういう確率分布にしたがっているのかがわからん。本来解けないはず?。
たぶんそれぞれ独立な事象で確率1/5だとして、期待値==平均(kekka)になるのかなとおもったが、

#include <stdio.h>
#include <math.h>
double heikin(int n, double x[]){
int i;
double sum;
sum=0.0;
for(i=1;i<=n;i++){
sum += x[i-1];
};
return sum/n;
}
int main(){
static double data[]={3.1, 5.8, 4.1, 1.0, 8.3};
double kekka=0.0, bunsan = 0.0;
kekka=heikin(5,data);
bunsan= pow(0.2, 2) *(kekka * 5.0) - pow(kekka, 2);

printf("データの平均は %lf\n",kekka);
printf("データの分散は %lf\n",bunsan);
return 0;
}
と書くと分散が負になってしまいましたとさw
問4
関数の中身を定義する前に,先に関数の引数の型および返り値の型だけをあらかじめ宣言しておくこと。

459 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 22:58:10 ]
>>444->>448
どうもありがとうございました!!!

460 名前:458 mailto:sage [2009/10/29(木) 23:11:24 ]
>>451

#include <stdio.h>
#include <math.h>
double heikin(int n, double x[]){
int i;
double sum;
sum=0.0;
for(i=1;i<=n;i++){
sum += x[i-1];
};
return sum/n;
}
int main(){
static double data[]={3.1, 5.8, 4.1, 1.0, 8.3};
double kekka=0.0, bunsan = 0.0;
double vx=0.0;
kekka=heikin(5,data);
for(int i = 0; i < 5; i++)
vx += pow(data[i], 2)*0.2;
bunsan = vx - pow(kekka, 2);

printf("データの平均は %lf\n",kekka);
printf("データの分散は %lf\n",bunsan);
return 0;
}

なんか例と値違うけど…さっきとちがって式はあってるはず

461 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 22:15:43 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10031.txt

問題1:整数表記を <integer>::= <digit> {<digit>|'_'}*に書き換える。
正の整数をdigitだけではなく、'_'もトークンの一部として判別させてやるようにプログラムを書きかえる
例えば、10_23と仮に有った場合は10=整数値、_=識別子、23=整数値という風に判別されるのではなく10_23=1023=整数値となるようにしなさい。

問題2:以下のようなトークンも判別できるようにしてみる。
句切り文字:'(',
句切り文字:'(',
句切り文字:';',
演算子:'='

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C言語
[4] 期限: 2009年11月5日
[5] その他の制限: とくにないです。よろしくお願いします。

462 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 18:45:36 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):キューをC言語で作成する
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 2009/11/2
[5] その他の制限:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10032.txt

463 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 18:49:04 ]
>>462ですが@とAの部分を改変してください。よろしくお願いします。

464 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 21:34:41 ]
>462

境界条件が曖昧なので適当にやらせてもらった。
dequeueできないときは0が返るようにしたけど、よかったのか?

標準Cにあわないところは修正しておいた。VSにしたって、void main()はどうかと思ったので。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10033.txt

465 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 21:50:06 ]
>461
問題1:整数表記を <integer>::= <digit> {<digit>|'_'}*に書き換える。
問題の意味が全くわからない。問題文はこれで全部なの?

#例えば、10_23と仮に有った場合は10=整数値、_=識別子、23=整数値という風に判別されるのではなく10_23=1023=整数値となるようにしなさい。
というの10_23を引数に与えたらどうなればよい?

リンク先のコードに食わせると下みたいになった。

$ ./main 10_23
整数定数: 10 (2文字)
識別子: _23 (3文字)
トークン数は2個!


466 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 22:18:04 ]
>>465
それBNF表記っていって

たとえば
10_23_23=102323
10_______23=1023
になるようにしろってことだよ。


467 名前:466 mailto:sage [2009/10/31(土) 22:24:07 ]
BNF記法だった.
<変数>…<変数>で変数を表す。
{変数}…{変数}の変数を省略するか、一回以上繰り返し用いることを表す。
|…または を表す
::=…左辺の変数が、右辺で定義されることを表す。


あ、おれ解けないんでw




468 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 01:30:56 ]
>461

問1だけ

ほとんどテストしていないのであしからず
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10035.txt

469 名前:464 mailto:sage [2009/11/01(日) 01:33:21 ]
>462

ごめ。違うのあげてた。

ファイル消えているのですぐにはできない。
思い出しながら書いてみる。

470 名前:464 mailto:sage [2009/11/01(日) 01:43:01 ]
>462

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10036.txt

471 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 20:56:25 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):メニューを表示し選択された処理を行なう。各機能ごとに関数にし,各関数へのポインタは配列に格納しておきメニュー選択に応じて動的に呼び出す。
実行例:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10037.txt


472 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 20:58:45 ]
[3] 環境
[3.1] OS:Windows
[3.3] 言語:C++
[4] 期限: 2009年11月3日

どなたか出来る方がいましたらお願い致します。

473 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:06:48 ]
>>450
遅れましたが回答ありがとうございました

474 名前: ◆DfRWmhgSjg [2009/11/01(日) 21:28:36 ]
[1] 授業単元:OS入門
[2] 問題文(含コード&リンク):
マルチプロセスを利用しfork(),セマフォ,メッセージをすべて使用したシステムの開発,結果を以下の項目にまとめ報告
1. システムの要求仕様
3. 上記プログラムの簡単な解説,特に fork(),メッセージ,セマフォの周辺について
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月5日08:00まで]
[5] その他の制限:

よろしくお願いします

475 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:30:13 ]
>>474
設計と要求仕様までこっちで定義しろって馬鹿だろw

476 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:48:32 ]
>>471>>472
VS2008環境で作った
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10039.txt
#include <String>は消しといてね

477 名前:474 [2009/11/01(日) 21:54:55 ]
>>475
私もそう思いましたが、
「本当に簡単なものでいいから作ってください。こういうにはあなたたちのインスピレーションしだいですので」
といわれてしまい・・・。



478 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:55:48 ]
>>477
いや、教授とか講師とかがじゃなくってお前がねーよwww

479 名前:474 [2009/11/01(日) 22:01:25 ]
すみません。
要求仕様など考えてから出直してきます。

480 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 22:58:19 ]
>>471-472
「関数へのポインタを配列に」いれろとのことですので、そのようにしました。
codepad.org/pe70YBZf

481 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:16:02 ]
[1]C言語初級
[2] 次のプログラムから仕様書を起こして、全く異なるアルゴリズム
で同じ処理をするものに書き換えよ
codepad.org/FjM5LBs9
[3] Windows XP/Visual studio 2005/C
[4] 11/10迄

482 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:23:47 ]
ああwww
関数のポインタとか見逃してた。
ごめん

483 名前:471 mailto:sage [2009/11/02(月) 00:36:52 ]
>>480
ありがとうございます
しかしVS2008でエラーが出るのですがどうしたらよいでしょうか?

484 名前:474 [2009/11/02(月) 01:07:11 ]
<<474
<<479
入力されたメッセージ1文字をキューにいれるプログラム
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10041.txt
キューからメッセージを取り出し表示をするプログラム
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10042.txt
を参考にして送信用プログラムにfork()を付け加え文字を重複送信するようにするプログラム。
またセマフォを用いてアクセスを制限する。
理解が浅いため本当にこれでいいの不安なのですがよろしくお願いします。

485 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 03:03:19 ]
>>481
codepad.org/Ooo9fZ4r

3の倍数と3の付く数字を
10000*10000までの範囲で列挙する。

文字列型で10を出力すると
アスキーコードでは改行の意味に。
同等の処理は\nで行った。

各位の和が3の倍数であれば
その数は3の倍数であることを使い求めた。

486 名前:satoshi [2009/11/02(月) 03:04:56 ]
double型の引数を2つ持ち、aつの引数の積の絶対値を返す、
double型の戻値を持つ関数 absmul() を作成した上で、動作の
確認の出来るプログラムとして作成せよ。という問題と

標準入力からの入力に対して、アルファベットを全て空白文字
に変更して出力するプログラムを作成せよ。という問題がわかりません。

どなたかお願いします

487 名前:satoshi [2009/11/02(月) 03:06:50 ]
aつ が 2つの間違いです。



488 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 07:13:30 ]
>>483
エラーを全部貼ってください。

489 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 07:15:11 ]
>>486
>>1

490 名前:satoshi [2009/11/02(月) 11:45:59 ]
[1] プログラミング
[2] double型の引数を2つ持ち、2つの引数の積の絶対値を返す、
double型の戻値を持つ関数 absmul() を作成した上で、動作の
確認の出来るプログラムとして作成せよ。という問題と

標準入力からの入力に対して、アルファベットを全て空白文字
に変更して出力するプログラムを作成せよ
[3] 環境
 [3.1] OS: (Windowsxp)
 [3.2] コンパイラ名とバージョン:UNIX 2.1.4
 [3.3] 言語: (C言語)
[4] 期限: (11月3日 13時
[5] その他の制限: (特になし)

491 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 12:07:11 ]
>>490
#include<stdio.h>

double absmul(double a, double b){
short x=0x1234;
double c;
unsigned char *p, *q;

c=a*b;
p=(unsigned char*)&x;
q=(unsigned char*)&c;
if(*p==0x12) q[0]&=0x7f;
else q[sizeof(double)-1]&=(~0)^0x80;

return c;
}


int main(void){
double a=2.0, b=-3.0;

printf("%f\n", absmul(a, b));

return 0;
}

492 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 12:31:03 ]
>>490
#include<stdio.h>

int main(void)
{
int c, map[256];
unsigned char *p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

for(c=0;c<256;c++) map[c]=c;
for(;*p;p++) map[*p]=' ';

while((c=getchar())!=EOF)
{
putchar(map[c]);
}

return 0;
}

493 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 12:38:10 ]
アルゴリズムにsortというのがりますが、配列をsortするときにもとの配列番号が
何番に変わったか知る方法はありますか?ソートした配列を参考に別の配列も並び替えたいです。

494 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 12:44:27 ]
ソートする配列と同じ長さの配列用意して、ソートする前にそこへコピーしとけば良いじゃん
あとはその二つを比較するだけ

495 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:06:44 ]
>>493
構造体で例えば

sruct abc {
double a;
int n;
};

としといて、aにバラバラの値を入れ、nに連番を入れて置きます
その後構造体でqsort(比較基準はabc.a)を掛ければ、nに
どのようにバラバラになったか順列が入ります

496 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:20:40 ]
こんな感じ

struct abc {
double a;
int n;
};
int comp(const void *a, const void *b)
{
struct abc x = *(struct abc *)a, y = *(struct abc *)b;

return (x.a < y.a) ? -1 : (x.a > y.a) ? 1 : 0;
}
int main(void)
{
struct abc aa[10];
int i;

srand((unsigned)time(NULL));

for (i = 0; i < 10; i++) {
aa[i].a = rand();
aa[i].n = i;
}

qsort(aa, 10, sizeof(aa[0]), comp);

for (i = 0; i < 10; i++)
printf("%d ", aa[i].n);
putchar('\n');

return 0;
}

497 名前:デフォルトの名無しさん [2009/11/02(月) 13:38:02 ]
【問題】0から40までの数字で3のつく数字と3の倍数を表示するプログラムを作成せよ

お願いいたします。



498 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:39:43 ]
>>497
>>1

499 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:47:20 ]
>>497
#include <stdio.h>
int main(void)
{
printf("0 3 6 9 12 13 15 18 21 23 24 27 30 31 32 33 34 35 36 37 38 39");
return 0;
}

500 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:47:39 ]
もうネタとしか思えなくなってきた

501 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:50:08 ]
>>499
わろたw

502 名前:デフォルトの名無しさん [2009/11/02(月) 13:53:31 ]
>>497
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char buf[32];
for(i = 0; i <= 40; i++) {
sprintf(buf, "%d", i);
if (i % 3 == 0 || strchr(buf, '3') != NULL) printf("%d ", i);
}
return 0;
}


503 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 15:10:59 ]
>>490
アルファベットとは何ぞやということになるな。

504 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 17:50:16 ]
ハングルはアルファベットなのか(字母と方塊字で扱いは違うのか?)なんてのは
さすがに考えないとして、ウムラウトやセディーユのついた文字はどうするのかね。

505 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 18:00:43 ]
isalphaで判定できるものでいいだろ、常識的に考えて

506 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 19:11:19 ]
>>483
VC++2008EE をインストールして確かめました。なるほどねえ、VC は構造体タグの name space は独立していないんですね。
codepad.org/nMou5Xbk

507 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 20:01:57 ]
[1] 授業単元: C++
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10044.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10045.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VS2008
 [3.3] 言語: C++
[4] 期限: 2009/11/07

問題が2つあります。それぞれ違うファイルにしてもらえたならば幸いです。
宜しくお願い致します。



508 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 23:25:57 ]
>508

コードは書いてやるから、仕様は自分でだせ。

509 名前:sage [2009/11/03(火) 01:38:41 ]
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10047.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C++
[4] 期限: [2009年11月5日23:59まで]
[5] その他の制限:途中までのソースコードがありますので、そちらに追記お願いします。


510 名前:デフォルトの名無しさん [2009/11/03(火) 01:57:30 ]
[1] プログラミング入門
[2] 文字列sを逆に並べる関数reverse(s) を書け。
さらにこの関数を使って、入力を行ごとに反転させるプログラムを作成せよ。という問題です。
[3] 
[3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月3日12:00まで]
[5]if文 while文などを勉強中です。
初心者用のプログラムでお願いします。

511 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 06:49:25 ]
>>510
EUCに対応しているはず
codepad.org/zGzKjJfu

512 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 10:30:46 ]
>510

こんな感じでよいか?
ワイド文字は考慮していません。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10049.txt

513 名前:デフォルトの名無しさん [2009/11/03(火) 12:03:20 ]
あ」

514 名前:デフォルトの名無しさん [2009/11/03(火) 12:30:32 ]
[1] 授業単元: c言語プログラミング実習
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10051.txt

[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)

わかりにくい質問で申し訳ありませんがよろしくお願いします。

515 名前:デフォルトの名無しさん [2009/11/03(火) 12:42:05 ]
[1] 授業単元: c言語プログラミング実習
[2] 問題文 

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10052.txt
[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)

どうぞよろしくお願いいたします。

516 名前:デフォルトの名無しさん [2009/11/03(火) 12:47:24 ]
1] 授業単元: c言語プログラミング実習
[2] 問題文 
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10053.txt
[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)


こちらもよろしくお願いいたします。

517 名前:デフォルトの名無しさん [2009/11/03(火) 12:50:55 ]
上の514,515,516はmewを使用して作成します。



518 名前:デフォルトの名無しさん [2009/11/03(火) 12:52:05 ]
間違えました、Emacsです

519 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 13:06:21 ]
Emacsってコンパイラついてたっけ・・・


520 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:29:18 ]
>>515
(1) (A)に同じ文を入れて考える
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while(i<100){
while(j<100){
while(k<100){
  n++;
(A)
k++;
}
(A)
j++;
}
(A)
i++;
}
printf("n=%d",n);
}

521 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:30:13 ]
>>515 (B)に同じ式を入れて考える
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while( (B) && (i<100){
while((B) &&(j<100)){
while((B) &&(k<100)){
  n++;
k++;
}
j++;
}
i++;
}
printf("n=%d",n);
}

522 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:31:11 ]
>>515
(3) (C)、(D)に適当な文を入れる
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while(i<100){
while(j<100){
while(k<100){
  n++;
(C)
k++;
}
j++;
}
i++;
}
(D)
printf("n=%d",n);
}

523 名前:510 [2009/11/03(火) 15:04:23 ]
>>511・511さん
遅れましたが回答ありがとうございました。

524 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:19:44 ]
>>516
#include <stdio.h>

int main(void)
{
int i, j, n;

scanf("%d", &n);

for(i=1; i<n; i++) {
for(j=n-i; j>=0; j--) putchar(' ');
for(j=2*i-1; j>0; j--) putchar('*');
putchar('\n');
}
for(i=2*n+1; i>0; i--) putchar('*');
putchar('\n');

return 0 ;
}

525 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:36:15 ]
逆数を求めるプログラミングなんですが、どうしてもコンパイルできません。
間違いがあったらエロい人、、指摘してください。

#include <stdio.h>

main(){
int i;
float j = 1/i;
for(i = 1; ;i++){
printf("%f\n" , j);
}
return 0;
}

526 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:42:08 ]
509です。
sageをミスって申し訳ございませんでした。
どなたか、お願いできませんでしょうか?
よろしくお願いします。


527 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:47:03 ]
>>525
正常に動作しないだけで、コンパイルは通ると思うが。



528 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:48:56 ]
>>527
float j = 1/i; で未初期化の変数を参照がエラーか警告になるかも

529 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:51:46 ]
>>525
jを計算する場所が違う。
コンパイルができない、というのはエラーが出るのか警告が出るのか、
あるいは実行時エラーなのか、はっきりしてくれ。

530 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:52:23 ]
初期化に変数は使えないとか。

531 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:56:50 ]
>525

gccに食わせたけど、警告は出るけどコンパイルはできるよ。

たぶんやりたいことはこうじゃない?
#include <stdio.h>

int main(void)
{
int i;

for (i = 1; i < 10; i++) {
printf("%f\n" , 1.0 / i);
}

return 0;
}


532 名前:デフォルトの名無しさん [2009/11/03(火) 15:57:42 ]
[2]問題: 標準入力からの入力に対して、アルファベットを全て空白文字に変更して
出力するプログラムを作成せよ。という問題です。
[3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月4日9:00まで]
かなりの初心者です
codepad.org/nrbnRlD3
自分で作ってみたのですが、エラーが出ました。
何が足りないか、何が間違っているか改良をお願いします。




533 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:00:51 ]
>509

元のコードがでかいので、デバッガでコードを追いたかったのだが、
gcc + insightでは開こうとしたとたんに落ちてしまう。
実行自体はできるのだけれど。

#conio.hがあるとコンパイルできないのだが、使っているところがないので
削った。
もう少しおってみるかな。


534 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:05:16 ]
>>532
大文字

535 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:08:56 ]
大文字を小文字に修正しても希望の動作にはならないけどなw

536 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:09:53 ]
最初の while で標準入力食いつぶすしねw

537 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:17:35 ]
#include <stdio.h>
#include <ctype.h>
int main(){
int c;
while((c=getchar())!=EOF)putchar(isalpha(c)?' ':c);
return 0;}



538 名前:509 mailto:sage [2009/11/03(火) 16:21:37 ]
>533
すいません。
よろしくお願いします。



539 名前:533 mailto:sage [2009/11/03(火) 17:41:45 ]
>509

デバッガが使えないのでコードリーディングに手こずっている。
出題主、以下の情報ください。

1)BCalculationの仕様
コメント、mainでの使い方からして
入力"+ 6 3 " 戻り値9みたいな
ものを想定していた。でも動かしてみたらそうじゃないし、
どう動いて欲しいのかわからない。

どんな入力に対してどういう戻り値を期待している?

2)MtoBの仕様
以下のようなものを想像しているが、あっているか?
入力 "6 + 3 * 3"
戻り値 "+ 6 * 3 3" (BCalculationのinputになれるもの)


540 名前:506 mailto:sage [2009/11/03(火) 18:27:31 ]
>>539
つ「逆ポーランド記法」
6 3 +
6 3 3 * +

デバッガは無料で手に入る VC++2008EE IDE はいかが?

541 名前:509 mailto:sage [2009/11/03(火) 18:29:38 ]
>533
返答が遅くなり、すいません。
ご迷惑をおかけします。

1)BCalculationの仕様
回答の所で使用していますので、お考えであっていると思います。
ただ、"63+" の "9"と思っていました。
的外れな回答でしたら申し訳ありません。

2)MtoBの仕様
その通りです。
こちらも、"633*+"と思っていました。

実は、最初は”回答”の上に
printf("変換:%s\n",str.str);
を入れていました。
しかし、課題内容にはないため外しました。
変換後の結果が出るものです。


542 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 18:30:12 ]
>>514
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10054.txt

543 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 18:52:20 ]
一回目はちゃんと漢字じゃないとw

544 名前:533 = 539 mailto:sage [2009/11/03(火) 19:35:51 ]
>509 >541, >540

逆ポとLispを勘違いしてたみたい。
だけど6 3 +も + 6 3両方試したけど
元のコードでは期待通り動いていないみたいだよ。

とりあえず逆ポの関数書いてみた。命名則は自分流なので
reversePolishNotationが元のBCalculationと思ってください。

エラーは適当にアボートしちゃっていますが、動作は期待通りでしょうか?

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10055.txt

545 名前:509 mailto:sage [2009/11/03(火) 20:30:17 ]
>533=539=544
返事が遅くなり申し訳ございません。

残念ながら動作しませんでした。
コンパイルは出来たでですが、実行すると
何も入力する前に、
「問題が発生したため、muda.exe を終了します。 ご不便をおかけして申し訳ありません。」
と出て終了してしまいました。

新しくコードを書いて頂いたようで、申し訳ございません。
しかし、一度前のものを提出し追加課題として「エラーを検知させよ」
だった為、条件として
[5] その他の制限:途中までのソースコードがありますので、そちらに追記お願いします。
と記載しておりました。
できましたら、追記でお願いしたいのですが無理でしょうか?

宿題を解いて頂いているのに、文句言って本当にすいません。


546 名前:540 mailto:sage [2009/11/03(火) 20:56:58 ]
>>545
ソースをみる限り第一引数に逆ポーランド式を指定しないとダメです。
たとえば、
foo.exe "1 1 +"
とします。

>>544
おかしいですね。私のところでは、BCalculation はうまく動いていますが。(bcc32/gcc/VC++2008)


547 名前:509 mailto:sage [2009/11/03(火) 21:30:57 ]
>540
逆ポーランド部分は出来ていると、自分の中では信じきっていました・・・
そうでしたか、もう一度考えてみます。




548 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:54:18 ]
>>547
代数式(中置式)→逆ポーランド式(後置式)の変換は、定番の方法がありまして、
コンパイラ(とか数理言語)の教科書をみればたいてい説明されています。
ソースを得たいのであれば、
www.amazon.co.jp/dp/4874084141
にそのものがあります。ダウンロードは
oku.edu.mie-u.ac.jp/~okumura/algo/archive/
からできます。これを気に書き直されるのも一興かと思います。

549 名前:548 mailto:sage [2009/11/03(火) 21:57:12 ]
×気に
○機に


550 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:58:19 ]
>546 >547
mainを下記のように書き直して試してみた。

int main(void)
{
struct NewStr str;
printf("式を入力\n");

gets(str.str);
printf("\n");

// str = MtoB(str.str);

printf("回答:%4.2lf\n\n",BCalculation(str.str));



return 0;
}

例えば"6 3 +"を入力していて解答6となっておかしい、と思っていた。
コードを追っかけてみて"6 3 + "(最後にスペースが入っている)と入力すると上手く行くことがわかった。

これは仕様制限ということでよいのですよね?

そういう前提でもう一度見てみる。
確認するけど、基本的に正常系の動作はしていて、
>演算不可能な場合は、エラー表示させること。
>例:6+3**  9//  9-5)  8+(  
という部分の実装が漏れている、ということなのかな。

551 名前:546=548 mailto:sage [2009/11/03(火) 22:12:06 ]
>>550
>>509 の代数式→逆ポ変換 (MtoB()) は力作でして、(多分)うまく動いているのですが、
括弧の処理をとくにリカーシブに書いているところもあり、私もなかなか把握しきれないでいます。異常系の切り分けも難しい。
いずれ、どうあがいても、リカーシブに書かざるを得ないとは思いますが、ここで、心機一転、定石をお勧めしたしだいです。
MtoB() を自力でここまで書いたのであれば、尊敬に値します。少なくとも私にはできません。

552 名前:509 mailto:sage [2009/11/03(火) 22:34:48 ]
>550
はい、その通りです。
>演算不可能な場合は、エラー表示させること。
>例:6+3**  9//  9-5)  8+( 
の部分が抜けています。

>551
しかし、一度提出してる手前、再度初めからとなると
このエラーを表示させる課題ごと意味が無くなってしいます。

この課題に取り掛かって、1ヶ月ほど助言を受けたり、書いては
書き直ししているうちに段々訳がが分からなくなってきて気が付くと
この形でした。


553 名前:551 mailto:sage [2009/11/03(火) 22:44:07 ]
>>552
なるほど。
定石をお勧めしたい気持ちはやまやまなのですけれども。
ちょっと説明していただけますか?たとえば、
char stack[STR_MAX], str[STR_MAX], tempstr[STR_MAX*2];
int newstr_pos=0, i, flg=0, parentheses_flg=0, str_pos=0, minus_flg=0, tempstr_pos=0, stack_pos=-1;
の各バッファ、各 pos の意味合いとか、どうしてこういう仕掛けを作ったかとか。

554 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 00:51:43 ]
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10056.txt
[3] 環境
 [3.1] OS:Windows/vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2009年11月6日
[5] その他の制限: 問題を乗せているテキストに進め方があるのでそれに沿ってもらえれば。

よろしくお願いします。


555 名前:509, 553 mailto:sage [2009/11/04(水) 01:21:51 ]
こっちで持っている解答を示しておきます。
codepad.org/ziaFqKsi
定石の代数式→逆ポーランド変換を行いつつ、同時に各項の値を計算させています。

556 名前:509 mailto:sage [2009/11/04(水) 02:12:30 ]
>551
申し訳ありません。逆ポーランドの所が出来ていなかったので
自分で考えると言った手前考えていましたらいつの間にか
こんな時間になっており、質問が来ているのに気が付きませんでした。
533さんに書いて頂いたコードと548さんに紹介して頂いたサイトのコードを
参考に逆ポーランドの部分も間違いが直す事ができ、課題も完了する事が
出来ました。

皆様本当にありがとうございました。


557 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 02:23:14 ]
処理時間を計る関数の中で、最も最小単位まで計れる関数は何でしょうか?
教えてください



558 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 02:47:09 ]
QueryPerformanceCounter

559 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 11:42:51 ]
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):ユークリッド互除法を使って二つの数字の最大公約数を求める。ただし、マイナスの数も求められるようにする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: Gcc3.4(MinGW)
 [3.3] 言語: C言語
[4] 期限: 今日中
[5] その他の制限: 特になし

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


560 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 13:06:15 ]
>>559
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10058.txt

561 名前:デフォルトの名無しさん [2009/11/04(水) 20:08:57 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10060.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 11/13 16:00まで
[5] その他の制限: 特になし

よろしくお願いします。

562 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:30:08 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10061.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 11/6 12:00まで
[5] その他の制限: 特になし
おねがいします

563 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:32:32 ]
[1] 授業単元:ソフトウェア工学
[2] 問題文(含コード&リンク):
(π/4) = tan^-1(1) = 1 - (1/3) + (1/5) - … + (-1)^k * (1/(2k+1)) + …
の公式を用いて、第n項までの多項式近似により円周率を求め、その誤差と計算時間を測定するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:オールインワンエクリプス
 [3.3] 言語:C
[4] 期限:できれば明日までに
[5] その他の制限:特になし

564 名前:デフォルトの名無しさん [2009/11/05(木) 00:29:07 ]
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文
問題文1
整数 n を入力すると 'a' から n個目までのアルファベットを全て表示するプログラムを作成せよ。 (例:n=6 の時 abcdefを表示)

問題文2
整数 n を入力すると1からn までの間で 3の倍数か、
5の倍数のどちらかであるような数の和を表示するプログラムを作れ。
(例:n=10 の時 3+5+6+9+10=33)

問題文3
次のプログラムの (a)-(j)の部分をfor 文を使って書き直せ。 #include<stdio.h> int main() { int a[10]; double sum,ave; sum=0; a[0]=1; a[1]=5; a[2]=7; a[3]=2; a[4]=4; a[5]=1; a[6]=9; a[7]=4; a[8]=20; a[9]=5; sum=sum+a[0];
/* (a) ここ */ sum=sum+a[1]; /* (b) ここ */ sum=sum+a[2]; /* (c) ここ */ sum=sum+a[3]; /* (d) ここ */ sum=sum+a[4]; /* (e) ここ */ sum=sum+a[5]; /* (f) ここ */ sum=sum+a[6]; /* (g) ここ */ sum=sum+a[7];
/* (h) ここ */ sum=sum+a[8]; /* (i) ここ */ sum=sum+a[9]; /* (j) ここ */ ave=sum/10; printf("総和は %d です。平均は %d です。\n",sum, ave); }

問題文4
整数を5個入力すると、まずそのまま表示し、次に逆順で表示するプログラムを作れ。
実行例: 数を入力して下さい: 3 数を入力して下さい: 7 数を入力して下さい: 1 数を入力して下さい: 2 数を入力して下さい: 5
そのまま表示 3 7 1 2 5 逆順に表示 5 2 1 7 3 プログラムのテキストをコピーして下のテキスト入力フィールドへ出力結果と共に貼り付けて提出すること。

[3] 環境
 [3.1] OS: XP
 [3.3] 言語: C++
[4] 期限: 明日まで
[5] その他の制限
#include <stdio.h>
int main()
スタートでお願いします。

565 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:48:10 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10062.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月05日18:00まで
[5] その他の制限: 問題文どおりです

566 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:53:39 ]
[1]授業単元 C言語実習
[2]コマンドラインで指定された英数字と空白、タブ、改行記号
のみから構成されるテキストファイルに含まれる単語の頻度を
アルファベット順に出力するプログラム。
単語とは英数字のみで構成されているものを指す。
一つの単語が1回現れた時は部分単語すべてが現れたものとする。
部分単語とは、その単語の連続する部分文字列のことである。
授業で述べた多重ハッシュテーブルを利用すること。
行の長さ、行の総数、単語の長さに制限は無いが、頻度は
32bit整数(符号付き)で正の範囲に表せるものとする。
[3] Linux/gcc 4.0/C言語
[4] 今週の金曜日夕方18:00迄



567 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 01:03:37 ]
先ず答える前に問題の水準を誰かが大まかに分類しそれぞれの
水準別に解答貼付け専用スレを立ててそこに誘導したほうが
良くね?高校生レベルの問題と大学院修士課程レベルの問題とかが
混在したら回答者の精神衛生に問題が生じる可能性があるから



568 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 01:05:55 ]
>>563
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10063.txt

569 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 01:33:33 ]
[1] 授業単元:ソフトウェア工学
[2] 問題文(含コード&リンク):
台数近似を用いて、分割数nに対する I = ∫[1,2]ln(x)dx の値を求めるプログラムを作成し、誤差を求めよ。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:オールインワンエクリプス
 [3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:特になし

570 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 01:42:04 ]
やれるやつがやる
分類の必要なし
各人のスキルは違う
高校生が大学院生よりプログラムできることはある

571 名前:566 mailto:sage [2009/11/05(木) 02:02:07 ]
条件が一つ抜けてました。
《追加条件》
ファイルを読み込んでいる間に、記憶している単語別頻度の順位に変更が発生したら、その時点でアルファベット順に都度出力すること

572 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 02:04:18 ]
授業で述べた多重ハッシュテーブル

これわからん

573 名前:566 mailto:sage [2009/11/05(木) 02:16:21 ]
>>572
お答え下さいましてとりあえずありがとうございます。

わたしも良くわからないんですが、ハッシュテーブルが
衝突だったら別のハッシュ関数でその下にテーブルを
作るとかかなんとかだったと記憶してますけど...
ノートには次のように写してます。(板書写しなんで
間違ってるかもです)
if( array[ hash1(string) ] = NIL )
array[ hash1(string) ] := string;
else if array[hash1(string)][ hash2(strin) ]=NIL
array[hash1(string)][hash2(string)]:=string;
else ........

574 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 05:28:40 ]
ch[n]がcharとしてpを素数として

ch[0] + p * ch[1] + p^2 * ch[2]  +  ・・・ + の上か下の何ビットかをハッシュにしたらいいのでは。

異なるハッシュがいくらでも作れる。

575 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:57:24 ]
>>565
ひでーやり方だなw

576 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:03:31 ]
なぜかヴァニラアイスのスタンド思い出した

577 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:34:47 ]
>>565
for(i=p; i<=q; i++) a[i] = b[j] < c[k] ? b[j++] : c[k++];



578 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:50:27 ]
>>564
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1132363616
配列は使わなくて良いのでしょうか。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10064.c

579 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:42:21 ]
>>564
問題文1が間違っている。
'f' は 'a' から 5 個目だろ。


580 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:43:06 ]
'a'を1個目として数えてるんだろ

581 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 12:35:48 ]
>>562
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10065.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10066.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10067.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10068.c

582 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:34:01 ]
アルファベットって順序があるんだ・・

583 名前:デフォルトの名無しさん [2009/11/05(木) 16:43:05 ]
[1] 授業単元:ネットワークプログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10069.zip
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] c
[4] 期限: 11月6日まで

問題はreadme.txtの中に書いておきました
よろしくお願いします

584 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:58:20 ]
>>565
その埋めるところ以外ってまさかもとから問題として書かれてるわけじゃないよな?
565が自分で書いてみただけだよな?

585 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:52:41 ]
>>577
SENTINELは全く出てこないが...

586 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:59:20 ]
SENTINELは不要?
for(i=p,j=k=0;i<=q;i++)
if( j>m-p) a[i]=c[k++];
else if( k>=q-m) a[i]=b[j++];
else if(c[k]<b[k]) a[i]=c[k++];
else a[i]=b[j++];
}

587 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:59:38 ]
SENTINELの意味わかってねーだろw



588 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:00:30 ]
565のマージソートは致命的な欠陥があるw

589 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:04:58 ]
>>586
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];

else if(c[k]<b[j]) a[i]=c[k++];
じゃね?

590 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:06:45 ]
わずかなミスでそんなに嬉しそうに揚げ足とらなくてもw

591 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:11:17 ]
>>588
どこ?おしえて

592 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:29:20 ]
>>567
水準は兎も角、意外に奥の深い問題と学習確認クイズは
区別されたほうが良いかもな

593 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:33:25 ]
>>590
プログラミングではわずかなミスが致命的なバグとなる事がよくある

594 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:35:00 ]
嬉しかったのは否定しないんだw

595 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 18:55:30 ]
>>593
589の問題は嬉しそうに挙げ足をとっていることなんだけど
改行厨みたいで迷惑

596 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:19:55 ]
[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
下のアドレスのプログラムに追加して、ダイクストラ法のプログラムを完成させてください
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10070.txt
プログラムに使用するデータファイル↓
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10071.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
11月10日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません

よろしくお願いします。

597 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:59:34 ]
>>569
台形公式のことですよね。
codepad.org/XRuQqaF0



598 名前:初心者 ◆.6Hqkk7dyk [2009/11/05(木) 21:06:28 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 2つの整数値と1つの文字を、例えば「4+2」のように入力し、
                   入力に応じた四則演算を行って結果を出力するプログラムを作成しなさい。
                   ただし、中央の文字に四則演算の記号以外の文字が入力された時のことも考慮しなさい。
[3] 環境
 [3.1] OS: UNIXのemacs
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2009年11月7日17時まで

まだまだ初心者でよくわかりませんorz
よろしくお願いします。

599 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 21:51:19 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10073.txt

[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月13日まで
[5]無し

構造体とポインタの問題です、よろしくお願いします。

600 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 03:11:52 ]
>>507
誰もやらないから最初の問題だけやってみた
提出あさってじゃんね

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10074.txt

601 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:26:53 ]
>>599
1問目
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10075.txt

2問目
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10076.txt


602 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:20:08 ]
>>565
N*2が並び替える配列のサイズであるとしたら、
最初に呼び出したときにSENTINELがb[N]、c[N]の範囲外に代入されてしまう。

再帰関数を呼び出すごとにb[N],c[N]を確保するのは領域の無駄以外の何者でもない。

603 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 15:43:27 ]
>>602
codepad.org/JEJ72Jb5

604 名前:デフォルトの名無しさん [2009/11/06(金) 22:56:50 ]
#include <iostream>
using namespace std;

int main() {

int i,goukei=0;
int kokugo[5];
float heikin;

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
cin >> kokugo[i];
goukei = goukei + kokugo[i];
}

heikin = (float)goukei/5.0;
cout << "平均点は" << heikin << "点です\n";

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n";
}

return 0;

}

これを
数学の点数も入力する
数学の平均も出力する
国語と数学の総合的な平均点も出力する
ようにするにはどうすればいいんですか?

605 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:01:32 ]
>>1を読む

606 名前:604 [2009/11/06(金) 23:21:34 ]
ごめんなさい
C++です

607 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:45:10 ]
じゃなくてちゃんとテンプレに従った形で書けって事
プログラムはろだにうpしろ



608 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 00:08:45 ]
>>604
小学生でも出来るレベルだぞ・・・それ

609 名前:609 mailto:sage [2009/11/07(土) 02:02:45 ]
#include <iostream>
using namespace std;
int main() {
  int goukei_k = 0, goukei_s = 0;
  int kokugo[5], suugaku[5];
  float heikin_k, heikin_s, heikin;

  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
    cin >> kokugo[i];
    goukei_k += kokugo[i];
    cout << "同じく数学の成績を入力してください\n";
    cin >> suugaku[i];
    goukei_s += suugaku[i];
  }
  heikin_k = (float)goukei_k/5.0;
  cout << "国語の平均点は" << heikin_k << "点です\n";
  heikin_s = (float)goukei_s/5.0;
  cout << "数学の平均点は" << heikin_s << "点です\n";
  heikin = (float)(goukei_k + goukei_s)/5.0;
  cout << "合計の平均点は" << heikin << "点です\n";
  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
    cout << "点で、平均との差は" << heikin_k - kokugo[i] << "です\n";
    cout << "同じく数学の成績は" << suugaku[i];
    cout << "点で、平均との差は" << heikin_s - suugaku[i] << "です\n";
    cout << "同じく合計の成績は" << kokugo[i] + suugaku[i];
    cout << "点で、平均との差は" << heikin - (kokugo[i]+suugaku[i]) << "です\n";
  }
  return 0;
}

610 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 10:36:26 ]
[1] 授業単元:オペレーティングシステム実習
[2] 問題文
マルチプロセスを利用したシステムの開発を行い,結果を以下の項目にまとめ報告せよ. fork(),セマフォ,メッセージをすべて使用すること.
・システムの要求仕様
・プログラムのソースファイル
・上記プログラムの簡単な解説,特に fork(),メッセージ,セマフォの周辺について
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: Gcc
 [3.3] 言語: C言語
[4] 期限: 11/9いっぱい
[5] その他の制限:なし

フォーク、セマフォの作り方がよくわからないのでよろしくおねがいします。

611 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:48:39 ]
>>610
>>474-479

612 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:31:27 ]
>>598
なにか異常な状況になると、なにもせずに終わります。
codepad.org/kU1vQSYE

613 名前:デフォルトの名無しさん [2009/11/07(土) 21:44:16 ]
>>609
ありがとうございました

614 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 22:13:11 ]
>>598
↓空白が入った場合は考慮していない(1 + 2など)。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10077.c

615 名前:デフォルトの名無しさん [2009/11/07(土) 23:42:13 ]
C++で10進数を2進数に変換するプログラムを配列使って
順番通りに表示できるようにするのってどうするんですか
#include <iostream>
using namespace std;

int main() {
で始まる感じで(もしかしたらcmathとか使うかもしれないですが)
最後は
return 0;
}です

616 名前:デフォルトの名無しさん [2009/11/08(日) 00:52:50 ]
>>608
へぇ〜ほぉ〜小学校でC言語やプログラミングって習うんだぁ。どこ?

617 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:56:18 ]
冥途市立地獄小学校



618 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:34:55 ]
>>616
小学校は難しいとしても、勘のいい人なら普通の人でもできる内容かもね。
国語を算数に変えたら算数になることは分かるだろうし。

619 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:39:12 ]
出来ようが出来まいがプログラミング言語を小学生がやるのは愚の骨頂

620 名前:620 mailto:sage [2009/11/08(日) 01:42:22 ]
#include <iostream>
using namespace std;
int main() {
  int i, n, bin[32];

  cout << "Number:"; cin >> n;
  cout << "Binary:";
  for(i=0; i<32; i++) {
    bin[i] = n & 1;
    n >>= 1;
  }
  for(i=31; i>=0; i--)
    cout << bin[i];
  return 0;
}

621 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:47:24 ]
>>619
小学生がやるのは個人の好き勝手だと思うし、愚かだとは思わない。
よしんば愚かだと思ってもそれが骨頂の愚かな行為とまでは思えない。

622 名前:デフォルトの名無しさん [2009/11/08(日) 01:52:07 ]
>>620
19を2進数にすると10011だと思うんですが
その前に0が沢山並ぶのはOKなんでしょうか?

623 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:04:07 ]
>>621
プログラミングというのは本来、プログラミング言語自体を
作りながらやるもの。これは到底小学生に出来る世界じゃない。

出来合のプログラミング言語解釈疑似実行プログラム(=コンパイラ)
を使って遊ぶことは、実はプログラミングとは言うのはかなり
恥ずかしい。

有害無益とまでは言わないが、商業的には兎も角、教育的な意味で
有益にするのはかなり難しい。
相当に優秀な教師でも居ない限りね。

624 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:14:49 ]
>>623
たとえば何の言語作ったの?

625 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:20:48 ]
Cはそれなりに安定した多方面に応用されている信頼できる言語の
ひとつだが万能な言語じゃない。万能な言語など無い。

626 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:22:36 ]
Cが万能じゃないことなどプログラマなら誰でも知ってる。
それはそうと、俺は言語作ったこと無いけどみんなはあるの?

627 名前:デフォルトの名無しさん [2009/11/08(日) 02:26:47 ]
>>623
プログラム言語だってコンパイラだって出来合いのをコンパイルしたもんだろ
機械語に直接翻訳するようなのを自分で作るなら話は別だが



628 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:28:20 ]
>>623

>プログラミングというのは本来、プログラミング言語自体を
>作りながらやるもの。

そもそもこの定義はどこから来たのw?

629 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:30:18 ]
比喩が理解出来なくなってる段階で、すっかりプログラム
されちゃってるなw

630 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:01:49 ]
比喩なんてもんじゃない、ただのバカだろw

631 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:03:10 ]
俺にはどれが何の比喩表現なのかが分からない

632 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:05:38 ]
バカなプログラマは、コードにバグが無いと信じ、言語にバグがあると信じ込む。だから言語を作れるんだみたいな傲慢なことを言う。

優秀なプログラマは、天賦な言語にバグなどないと敬虔に信じ
救われる。

633 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:23:30 ]
彼は言語を作れるんだなんて言ってない。
プログラミングとは言語を作ることだと言っている。
つまり、プログラマと名乗る以上、優秀であろうとそうでなかろうと言語を作っているはずなんだよ

だから俺はプログラマじゃないの。

634 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:25:48 ]
プログラムをされている方なんですね...わかります

635 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:27:24 ]
行ってることが意味不明
C言語でおk

636 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:27:26 ]
文法とかの理解も妖しいのに言語なんか作れるのか?

637 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 04:23:01 ]
文法など理解出来るしろものじゃないからこそ言語を天賦の
ものじゃないと考えるわけだ。



638 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 05:23:26 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):ソケット通信を用いたチャットの作成
(mikilab.doshisha.ac.jp/dia/research/report/2003/0714/006/report20030714006.html)
にある2.1、2.2のクライアント、サーバのプログラム(出来れば簡単な解説もお願いします)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2009年11月08日23:00まで
[5] その他の制限: なし


639 名前:620 mailto:sage [2009/11/08(日) 07:55:58 ]
 >>620
 19を2進数にすると10011だと思うんですが
 その前に0が沢山並ぶのはOKなんでしょうか?
620は○△先生じゃないから、質問されても答えられない。
-9を2進数にすると幾つだと思うか?!

640 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:03:53 ]
>>616
東京にIQ130以上の子供だけを入園させることが出来る幼稚園(だっけな?)とかなかったかな
確かそこでプログラミングしてたはず

それに近頃の、ませた小学生がプログラミングに興味を持ってるのもいるしなぁ。

641 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:34:41 ]
>>596お願いします><

642 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:47:03 ]
俺、小学生の時、パソコン買って、プログラミングしてたよ。
簡単なお絵描きプログラムなんですが、
BASICの本のサンプルみたいなのを、機能拡張しながら使ってた。
そのときはテープも使えず、フロッピーディスクなんてのもないから、
覚えてしまったコードを毎回入力してたけど、毎回すこしずつ違ったコードでした。


643 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 13:49:24 ]
>>639
負の数を2進数にする時のためにも、最初に全体のビット数は
何ビットなのかはっきりさせておかなければ

2進数では大抵負の数は2の補数という表現を取り、最上位
ビットは1になる

644 名前:デフォルトの名無しさん [2009/11/08(日) 20:09:22 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10079.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11/13まで
[5] その他の制限: 特になし

645 名前:デフォルトの名無しさん [2009/11/08(日) 20:35:07 ]
[1] 授業単元: 画像情報工学
[2] 問題文:ブレゼンハムのアルゴリズムを用いて、ウィンドウ内に線分を描画するプログラムを
      作成しなさい。(以下の仕様で作成せよ)

      ■仕様(マウスの右と左のボタンを使用する。候補線の表示なし。)
       マウスの左ボタンクリック      線分の始点座標の指定
       マウスの右ボタンクリック      線分の終点座標の指定及び線分の描画

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2009年11月17日まで
[5] その他の制限:特になし

646 名前:デフォルトの名無しさん [2009/11/08(日) 21:52:25 ]
>>639
○△先生ってなんですか?

647 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:55:28 ]
丸さんかっけー



648 名前:デフォルトの名無しさん [2009/11/08(日) 23:32:22 ]
>>647
意味わからないですよね?
普通に読むとそうですが

649 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 23:45:32 ]
>>639
#include <iostream>
#define TRUE (1==1)
using namespace std;
int main() {
  int i = 0, n, bin[sizeof(int) * 8];
  
  cout << "Number:"; cin >> n;
  cout << "Binary:";
  while(TRUE){
    bin[i] = n & 1;
    if ((n >>= 1) == 0){break;}
    i++;
  }
  while(i >= 0){
    cout << bin[i--];
  }
  cout << '\n';
  return 0;
}

650 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:05:27 ]
つーか直書きやめてcodepad使おうぜ

651 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:27:39 ]
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):
正の整数nの2乗の数に、2種類の数字しか現れない
4桁の正の整数 n をすべて挙げなさい
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年11月13日13:00まで
[5] その他の制限:なるべく簡単にお願いします
よろしくお願いします

652 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:40:56 ]
>>651
#include<stdio.h>
int main(void){
puts("1000 2000 3000 3114");
return 0;
}

653 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:44:06 ]
>>652
求めるプログラムお願いします

654 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:09:50 ]
>>596
ダイクストラ法の部分だけ実装しています。シミュレーション部分は、そもそもなんのシミュレーションなのかわからないので
放っています。
codepad.org/bxTi0dpv
何をシミュレートしているのか詳しくおしえていただければ、あるいは続きを書けるかもしれません。

655 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:41:35 ]
>>651
()を適当に埋めて整数の桁に現れる数を数え上げる関数
count(int n)を作ってこれを使って完成させな

int count( int n ){
int i,c[10],d;
for(i=0;i<(?);i++) c[i]=( );
while(?){ c[(?)]++;n/=10; }
for(i=d=0;i<10;i++) d+=(c[i]==0)?(?):(?);
return (?);
}

656 名前:656 mailto:sage [2009/11/09(月) 01:42:47 ]
#include <stdio.h>
int main(void){
  int i, j, ii, count, digit[10];
  for(i=1000; i<10000; i++){ // sqrt(1000) = 31.6227
    for(j=0;j<10;j++) digit[j]=0;
    ii = i*i;
    for(j=0;j<8;j++) { // 10,000*10,000 = 100,000,000
      digit[ii%10] = 1;
      ii /= 10;
      if(ii==0) break;
    }
    count = 0;
    for(j=0;j<10;j++)
      if(digit[j] == 1) count++;
    if(count==2) {//printf("-->");
      printf("%d %d %d\n", i, count, i*i);
    }
  }
}

657 名前:デフォルトの名無しさん [2009/11/09(月) 03:47:58 ]
[1] 授業単元: C言語のポインタ、配列、ファイルの問題です
[2] 問題文(含コード&リンク):
n件のデータを配列に入力しその平均値を出力するプログラムをつくり、
実行部において添字演算子は用いず、*(p+i)と*p++それぞれを用いるパターンを作る
ただし、入出力処理をファイル処理に、入出力ファイル名はコマンドラインで指定する
[3] 環境
 [3.1] OS: とくになし
 [3.2] コンパイラ名とバージョン: とくになし
[3.3] 言語: c言語
[4] 期限: 2009/11/09日中
[5] その他の制限:途中まで出来ている部分を使ってください。
#include<stdio.h>
int main(void)
{
int A[100];
int a,b,i,n,*p;

*p=A[0];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",*(p+i));
}
for(i=0;i<n;i++){
b+=*(p+i);
}
a=b/n;
printf("%d",a);
return(0);
}
です。よろしくお願いします。



658 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 05:50:29 ]
>>655-656
ありがとうございます.コンパイルしてみます

659 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:20:08 ]
>>651
#include <stdio.h>

int check(int n)
{
int i, a[2], temp, c = 0;

while(n) {
temp = n % 10;
for(i=0; i<c; i++) if(a[i]==temp) break;
if(i==2) return 0;
if(i == c) a[c++] = temp;
label:
n /= 10;
}
return 1;
}

int main(void)
{
int i;

for(i=1000; i<10000; i++) if(check(i*i)) printf("%d\n", i);

return 0;
}

660 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:21:02 ]
ゴミが残った
label:は消しといて

661 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:29:06 ]
>>659
バグってるぞ

実行結果

1000
2000
3000
3114


662 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:33:09 ]
お前は何を言ってるんだ?

663 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:36:33 ]
>>652>>656も答えはその4つなんだが、どこがバグってるんだろ
表示するのは4桁の整数の方だし

664 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:34:07 ]
正の整数 nの2乗の数に、「10の倍数でなく、
10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いものをすべて挙げなさい

665 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:35:27 ]
正の整数 nで、その2乗が10の倍数でなく、
「「10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いもの」をすべて挙げなさい

666 名前:656 mailto:sage [2009/11/09(月) 10:37:30 ]
4桁までの数。
int main(void)
{
  int i;
  for(i=1; i<10000; i++) if(check(i*i)) printf("%04d\n", i);
  return 0;
}

667 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:52:35 ]
で、勝手に問題書き換えてバグがないものをバグって言い張るつもり?



668 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:56:46 ]
>>665>>661とは無関係
>>652への追加課題

669 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:59:29 ]
問題出したきゃ、大学でも専門学校でもどこでもいいから講師になってからにしろよw

670 名前:656 mailto:sage [2009/11/09(月) 11:01:05 ]
書き換えてないぞ。柿加えた。10の倍数を含まない。
int main(void) {
  int i;
  for(i=1; i<10000; i++) if(i%10) if(check(i*i)) printf("%4d %d\n", i, i*i);
  return 0;
}

671 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:02:37 ]
恥ずかしい突込みをした661が話を逸らそうとして必死にしか見えないんだがw

672 名前:656 mailto:sage [2009/11/09(月) 11:07:19 ]
1回だけのは除く。
for(i=4; ......


673 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:08:21 ]
講師は問題を解いて説明する
生徒はそれを写す
んだろ?

674 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:12:54 ]
656なら他人の関数使ってないで、自分が書いたやり方でやれよw

675 名前:656 mailto:sage [2009/11/09(月) 11:34:26 ]
>>670 で、数字が1種類でも動くようにcheck()を改良せよ。

676 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:39:58 ]
>>661
で、どこがバグってるの?

677 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:40:22 ]
>>656
出来ないの?



678 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:50:08 ]
>>675
お前はなんで自分にレスしてんだよw

679 名前:613 mailto:sage [2009/11/09(月) 14:32:26 ]
関数ポインタをconstで宣言したいんですがー

const int(*func)(void*) = ...
のように宣言すると、funcの挙動としてconstが定義されて(戻り値がconst int型となり)
変数func自体はconst化されず、プログラム中でポインタの書き換えが行えてしまいます。

関数の挙動としては戻り値にconstをつけず、ポインタ自体にconstを当てはめたいのですがー
どなたかいい手法をご存知ないでしょうか?

680 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:35:30 ]
多分 int(* const func)(void*)

681 名前:679 mailto:sage [2009/11/09(月) 14:42:37 ]
>>680
早レスありがとうございます。が、だめでしたora

682 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:42:39 ]
やってみた

#include <stdio.h>

int func(void)
{
return 1;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

return 0;
}

出力結果
1

683 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:44:50 ]
ちなみに

#include <stdio.h>

int func(void)
{
return 1;
}

int func2(void)
{
return 2;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

fun = func2;

return 0;
}

const_func2.c: In function 'main':
const_func2.c:19: error: assignment of read-only variable 'fun'

684 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:44:59 ]
そもそも なぜそのようなことをするのか
という疑問のほうが...

685 名前:679 mailto:sage [2009/11/09(月) 14:47:55 ]
>>680
早レスありがとうございます。が、だめでしたora

686 名前:679 mailto:sage [2009/11/09(月) 14:49:30 ]
>>680
と思ったら右辺のほうも書き換えないといけないんですね。
両方(*const func)で解決致しました。ありがとうございます。

687 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:49:56 ]
コンパイラ何?ってかそろそろスレ違いなんで

【初心者歓迎】C/C++室 Ver.69【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1256022655/

ここあたりに行こうぜ



688 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:19:21 ]
funcに一度値を設定したら書き換えることが出来ないんだろ?
どういう状況でfuncという変数を使うのか知ってみたい

689 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:27:38 ]
int Stage1( void );
int Stage2( void );
int Stage3( void );

int (* const func[])(void) = { Stage1, Stage2, Stage3 };

{
 while(1) func[now_stage];
}

690 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:45:19 ]
趣味の問題ね()

691 名前:656 mailto:sage [2009/11/09(月) 16:37:19 ]
>>659 待った?
int check(int n) {
  int i, a[2], temp, c = 0;

  while(n) {
    temp = n % 10;
    for(i = 0; i < c; i++)
      if(a[i] == temp) break;
    if(i == 2) return 0; // check NG
    if(i == c) a[c++] = temp;
    n /= 10;
  }
  if(c == 2) return 1; // check OK
  return 0;
}

692 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:45:16 ]
659は関係ないだろw

693 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:49:14 ]
おいおい、>>675の名前欄は656、つまりお前自身じゃねーかよw
自演で何やってんだよw

694 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:05:46 ]
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
  ブレゼンハムのアルゴリズムを用いて、ウインドウ内に線分を描画するプログラムを作成しなさい。
  動作の仕様は2通りの中から選びなさい。(どちらでもよい)

  仕様1(マウスの左ボタンと右ボタンを使用する。候補線を表示はなし。)
  マウスの左ボタンクリック   線分の始点座標の指定
  マウスの右ボタンクリック   線分の終点座標の指定及び線分の描画

  仕様2(マウスの左ボタンだけで操作する。候補線を表示する。)
  マウスの左ボタンクリック   線分の始点座標の指定、及び線分の描画開始
  マウスの移動         始点から線分を絶えず候補として描画。(古い線分は消す)
  マウスの左ボタンクリック   線分の終点座標の確定。線分を描画。

ただし、ライブラリの点を描画するAPI関数を使って線分を引くこと。直線を引くAPI関数を使ってはならない。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ: Microsoft Visual C++ 2008 Express Edition
 [3.3] 言語: C++
[4] 期限: 09年11月11日(水)
[5] その他の制限: 特になし

仕様は1と2どちらでもOKなので、簡単なほうで構いません。
よろしくお願いします。


695 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:36:14 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):不定方程式が解を持つか判断して、持つ場合には解を求めるプログラムを作れ
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語:C++
[4] 期限: 明日まで
[5] その他の制限: 特になし

もしどなたかやっていただけるならばお願いしますm(_)m




696 名前:デフォルトの名無しさん [2009/11/09(月) 19:30:06 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10081.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2003
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限: 特になし

697 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:58:10 ]
>>654
ありがとうございます!
シミュレーション内容について詳しく書いたファイルを↓に上げました。
よければよろしくお願いします。

[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10082.txt
プログラムに使用するデータファイル↓
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10071.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
11月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません



698 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:59:12 ]
>>696
buf[4] = '\0';

699 名前:デフォルトの名無しさん [2009/11/09(月) 20:37:11 ]
#include <iostream>
using namespace std;

int main() {
int a[100],b=-9999;
int i=0,j;

do {
cout << "整数値を入力してください\n";
cin >> a[i];
b += a[i];
i++;
}while( a[i-1] != 9999);

cout << b << '\n';

for(j=0;j<i-1;j=j+1)
cout << a[j] * 3 << '\n';

return 0;
}

このプログラムってループを抜ける条件は9999と入れた時だけですか?

700 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:02:19 ]
>>699
いえ、他にも、100回を超えても何度も何度も操作を続けて
書き込み禁止のメモリに到達したときにも抜けます(異常終了という形で)。

701 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:27:03 ]
>>694
仕様2で
ttp://codepad.org/IeQFbfNo

702 名前:デフォルトの名無しさん [2009/11/09(月) 21:29:26 ]
>>700
ありがとうございます

703 名前:604 [2009/11/09(月) 21:37:51 ]
国語と数学の総合的な平均点も出力する
っていう言葉の意味が分からないんですが、これは、合計を5で割ればいいんですかね?
10で割ればいいんですかね?

704 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:41:36 ]
国語の合計と数学の合計の合計を10で割るのが一番正確だが
国語の平均と数学の平均の合計を2で割ってもまぁ良い

705 名前:デフォルトの名無しさん [2009/11/09(月) 21:44:31 ]
[1] 授業単元:データ構造とアルゴリズム設計
[2] 問題文(含コード&リンク):
入力された小文字のアルファベットを,リストを用いて順次格納する.
’−’が入力された時に文字の入力を終了し,それまでに格納された全ての文字を表示するプログラムを作成
せよ.
ただし,リストに格納する際,リストの最後に追加するようにせよ.
例(a, b, c, - と順に入力したときa,b,cと出力される)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:特に無し
[5] その他の制限:双方向リストは使わない。
ヘッダは#include <stdio.h>以外は使わない

706 名前:604 [2009/11/09(月) 21:45:16 ]
>>704
つまり、これは総合的平均っていうのは100を越すことはないという事ですか?


707 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:07:35 ]
>705
制限付きで面白そうなのでやってみようかな



708 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:22:25 ]
>>706
そういうことになるな。

709 名前:デフォルトの名無しさん [2009/11/09(月) 23:24:36 ]
>>708
ありがとうございました

710 名前:デフォルトの名無しさん [2009/11/09(月) 23:35:40 ]
10進数を2進数に変換するプログラムを 順番通りに表示できるようにするプログラムを配列を使って作るんですが

#include <iostream>
using namespace std;
int main() {
int i,n,bin[32];

cout << "10進数:";
cin >> n;
cout << "2進数:";
for(i=0; i<32; i++) {
bin[i] = n & 1;
n >>= 1;
}
for(i=31; i>=0; i--)
cout << bin[i];
return 0;
}
結局これは、0がいっぱい出てくるから、ダメですかね?
それとも負の数も考慮に入れたから、こういう事になったんですか?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef