C/C++の宿題片付けます 137代目at TECH
C/C++の宿題片付けます 137代目 - 暇つぶし2ch524:デフォルトの名無しさん
10/07/05 22:14:53
>>523
gccでの確認になりますが。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

525:デフォルトの名無しさん
10/07/05 22:23:17
x(1)、 x(2)、・・・とaは2000次元ベクトルとします。

N
Σ || x(n)-a || / N   || ・|| はノルム。

を高速に計算する方法わかりますか。

526: ◆QZaw55cn4c
10/07/05 22:30:05
>>523
URLリンク(codepad.org)
URLリンク(codepad.org)
URLリンク(codepad.org)

527:デフォルトの名無しさん
10/07/05 22:32:14
X=(x, y) Y=(z, w) A=(a ,b) とすると、

||X-A|| + ||Y-A|| = SQRT( (x-a)^2 + (y-b)^2 ) + SQRT( (z-a)^2 + (w-b)^2 )

を高速で計算したいという訳なんです。

2000次元だと、かけ算とSQRTが相当あって時間掛かりますが。
短縮する方法ありますか。

528:527
10/07/05 22:35:42
面倒なので、

||X-A||  = |x-a| + |y-b| と定義してしまうか。

すると、 |x-a| + |y-b| + |z-a| + |w-b| を求めるだけで簡単。

529: ◆QZaw55cn4c
10/07/05 23:23:14
>>519
URLリンク(codepad.org)
キー入力の具合はこれでいいですか?

530:デフォルトの名無しさん
10/07/05 23:24:23
◆QZaw55cn4c はもりもりがんばってるなぁ。
定期的に叩かれるみたいだけどがんばれ。

531:デフォルトの名無しさん
10/07/05 23:29:13
やってることは怠け者の成績を上げてやることだけどなw

532:デフォルトの名無しさん
10/07/05 23:31:38
>>530
叩いてもらえる、というのは、コードをみてくださっている、というありがたい反応ですから、ウェルカムです。
ちょっと前の、あいかわらず頭の変な奴にかかわってしまったのは失敗ですが、スルーすることにしました。
でも今日はおやすみなさいです。

533:デフォルトの名無しさん
10/07/05 23:51:43
>>532
じゃあたまにのぞいて気になるとこあったらレスすることにするよ。
っても地力ぼちぼちありそうに見えるんで、重箱の隅ぐらいしか突っ込めないかも。

534:デフォルトの名無しさん
10/07/05 23:53:45
[1] 授業単元: Visual Studio 入門
[2] 問題 半乱順列の関数作成
[3] 環境 指定なし
[3.1] OS:Windowsvista 
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
半乱順列の関数を作ってください!お願いします!!

535:デフォルトの名無しさん
10/07/05 23:54:08
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):data.txtに書かれている氏名と成績を読み込み、氏名を2次元配列、成績を1次元配列に格納せよ。
[3] 環境
 [3.1] OS:Ubuntu 10.4
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:7/7まで
[5] その他の制限:
data.txtの中身は
aoyama 36
oomura 42
sugiyama 50
morita 14

となっております。

536:デフォルトの名無しさん
10/07/06 00:06:46
>>535
>>476 は読み込んだあとソートしていますが、そのソート部分を削ればご所望のコードになるかと。

537:535
10/07/06 00:18:01
>>536
似た問題があったのですね。ありがとうございました。

538:デフォルトの名無しさん
10/07/06 16:11:53
>>529
お答え頂きありがとうございます。
動作は申し分無いのですがこのプログラムだとstdio.h以外にmath.h等の関数ライブラリが見られます。
すみませんがstdio .h のみで動作することを前提でお願いしたいと思います。
また、授業では本当に基礎的な内容のみしか扱っておらず、ネットや本を見て勉強している段階ですので、なるべく基本的な分かりやすい形でプログラムを組んでいただけたら幸いです。

539:デフォルトの名無しさん
10/07/06 16:15:25
このとき、穏やかな表情の>>529の脳裏に、
慇懃無礼、という言葉が頭をよぎったという。

540:デフォルトの名無しさん
10/07/06 16:17:37
>>538
せっかく答えてくれた人に喧嘩売るのはやめようね

541:デフォルトの名無しさん
10/07/06 16:48:46
>>538
ソースよく読めよ

542:デフォルトの名無しさん
10/07/06 16:53:32
はいはい、もう答えなくて結構です

543:デフォルトの名無しさん
10/07/06 17:44:44
int main() 笑 なんて使う奴はスルーしてヨシ!

544:デフォルトの名無しさん
10/07/06 18:04:56
538です。

せっかく解答をして下さったにも関わらず、不快感を与える表現をしてしまいすみませんでした。
if 0とend ifの意味を理解していませんでした。
こちらの理解不足で本当に失礼しました。



545:デフォルトの名無しさん
10/07/06 18:17:15
◆QZaw55cn4c は古い人間でしょ?コードの書き方でバレバレ

546:デフォルトの名無しさん
10/07/06 18:26:10
>>545
どの辺が古いの?

547:デフォルトの名無しさん
10/07/06 18:54:59
>>546
無理しないで良いよ、爺ちゃん。

548:デフォルトの名無しさん
10/07/06 19:01:50
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):

#include <stdio.h>typedef struct { char *fname, *mname, *lname; int byear, dyear;
} writer_t;

writer_t writers[] = { {"Edward", "Elmer", "Smith", 1890, 1965},
{"Robert", "Anson", "Heinlein", 1907, 1988},
{"Arthur", "Charles", "Clarke", 1917, 2008},
{"Isaac", " ", "Asimov", 1920, 1992},
{"Raymond", "Douglas", "Bradbury", 1920, 0}};
int main(void){ int i; char s[10];
for (i = 0 ; i < sizeof(writers)/sizeof(writer_t) ; i++){
printf("%c. ", writers[i].fname);
if (writers[i].mname[0] != "\0") {
printf("%c. %-10s", writers[i].mname[0], writers[i].lname); }
else { printf("%-13s", writers[i].lname); }
printf("%4s - ", writers[i].byear);
if (dyear > 0){ printf("%4s", writers[i].dyear); } printf("\n"); } return 0;}
上記のエラープログラムを正しく直す。
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2010年7月28日20:00まで
[5] その他の制限: なるべく簡潔に(新しい変数を定義したり)お願いします。見づらいですが改行が多いと怒られるので・・

549:デフォルトの名無しさん
10/07/06 19:09:55
お・に・い・ちゃ・ん、じゃなくて、お・じ・い・ちゃ・ん ♥

550: ◆QZaw55cn4c
10/07/06 19:11:24
>>538
#if 0
から
#endif
までの間を削除してください。
わかりやすさについては、これが限界です。

551:デフォルトの名無しさん
10/07/06 19:12:43
>>543
スレリンク(tech板:101番) で述べられ済み。

ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。

552:デフォルトの名無しさん
10/07/06 19:15:17
>>545
確かに古いといわれたらそうかもしれません。
func(a, b)
int a;
char *b;
{
...
return 0;
}
と書いていたころもありました。
setq とか car とか cdr とかを乱発していたこともあります。

553:デフォルトの名無しさん
10/07/06 19:17:21
>>494
お前がコテハンかトリップつけろ塵

554: ◆QZaw55cn4c
10/07/06 19:18:17
>>544
いえいえ、全然。

555:デフォルトの名無しさん
10/07/06 19:22:15
>>553-554
コテハン付けたり、外したり大変だなw

556:デフォルトの名無しさん
10/07/06 19:24:57
>>555
専用ブラウザを使っていますから、簡単ですよ。

557:デフォルトの名無しさん
10/07/06 19:31:06
>>547
>setq とか car とか cdr とかを乱発していたこともあります。
横レスだけど、そのネタはww
[H|T] -> とか言い出さないようにw>>552

まあ、コード書けない煽りは無視で行きましょう。

558: ◆GmgU93SCyE
10/07/06 19:34:15
>>548
URLリンク(codepad.org)

559:デフォルトの名無しさん
10/07/06 19:35:47
>>552
その頃は
return (0);
と書いてたりしないか?

560:デフォルトの名無しさん
10/07/06 19:37:06
>>557
処理系をCで書く、という解説本を集めているんです。でも、いまんところ2冊しかみつかっていません。
やっぱり、そんな本は売れないんですかね。おもしろいんですけれどね。

561:デフォルトの名無しさん
10/07/06 19:38:44
>>559
しまった!

562:デフォルトの名無しさん
10/07/06 19:39:30
>>560
訳されてない本が沢山あるよ

563:デフォルトの名無しさん
10/07/06 19:51:18
>>560,562
Cに限らず、技術資料とかサンプルは英語の方が多いよね。
Google codeもよく使ったなあ。

564:デフォルトの名無しさん
10/07/06 19:51:18
お爺ちゃんお口くちゃ~い、クソースなんて書くなよw

565:デフォルトの名無しさん
10/07/06 19:53:06
>>562
洋書まではあさる実力がない‥‥‥。でもながめてみたいもの。
著者名でよければ教えてください。

566:デフォルトの名無しさん
10/07/06 20:06:48
>>558
ありがとうございました~

567:523
10/07/06 20:42:03
>>526
>>524
回答ありがとうございます。
 まさか一日かからずに終わらせてくれるとは思いませんでした。


568:デフォルトの名無しさん
10/07/06 21:09:00
C言語と関係無いじゃん。
OSやコンパイラを作るって事だろ。

569:デフォルトの名無しさん
10/07/06 22:11:38
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラム。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
入力された金額が負の場合は、「Error」を出力するようにします。
そこで、下のようなプログラムを書いたのですが、うまく起動しません。
このプログラムを、上の出力例のように出力してくれるように書きなおしてくれませんか??
下のプログラムでは合計枚数を出力する部分しか書いてません。
ちなみに、再帰を使ってプログラミングお願いします。

570:デフォルトの名無しさん
10/07/06 22:14:36
569質問者のプログラム(続き)
#include<stdio.h>
int coinfunc(int *C, int k, int M){

/* *C・・・コインの種類の配列(小さい順にソートされているとする)
M・・・支払う金額/
k・・・コインの種類の数 */

if(M == 0){ return(0); }
else if(M < 0){ return(Error); }
else{
int min = 100000;
int i;
for(i = 0; i <= k - 1; i++){
int tmp = coinfunc(C, k, M - C[i]);
if(tmp < min){ min = tmp; }
}
return(min + 1);
}
}
int main(){
int C[5] = {1,5,8,10,15};
int k = 5;
int M;
printf("支払う金額M=");
scanf("%d",&M);
printf("%d\n",coinfunc(C, k, M));
}


571: ◆QZaw55cn4c
10/07/06 22:36:25
>>506
URLリンク(codepad.org)
許容範囲云々は考えていません。

572:デフォルトの名無しさん
10/07/06 22:38:55
明日までにある宿題あるんですけど頼めますかね?
すぐ貼ります

573:デフォルトの名無しさん
10/07/06 22:40:44
頼めます

574:デフォルトの名無しさん
10/07/06 22:42:55
>>572
ここまでは作った
#include<stdio.h>

int main(void)
{
return 0;
}

575:デフォルトの名無しさん
10/07/06 22:54:22
[1] 授業単元:プログラミング演習
[2] 問題文:このプログラムを拡張して、個人ごと平均点と科目ごとの平均点を小数点以下1桁まで
表示できるプログラムを作成せよ。

#include <stdio.h>
main()
{
int score[4][3]:
int total[4]:
int i , j ;
for (i = 0; i < 4; i++) {
total[i] = 0 ;
printf("No . %d\n" , i + 1);
for( j = 0 ; j < 3; j++) {
printf("score %d : " , j + 1) ;
scanf("%d", &score[i][j]);
total[i] += score[i][j];
}
}
printf("\n");
printf("No . | s1 s2 s3 | total\n");
printf("---+----------+------\n");
for ( i = 0; i < 4; i++) {
printf("%2d | " , i + 1) ;
for( j = 0; j < 3; j++) {
printf("%3d " , score[i][j]);
}
printf("| %4d\n" , total[i]) ;
}
}

576:デフォルトの名無しさん
10/07/06 22:56:36
連投すみません
[3]環境
 Windows、VC6.0、C
[4]期限
 7月7日
[5]配列まで

よろしくお願いします。

577:デフォルトの名無しさん
10/07/06 23:36:32
>>570 再帰は駄目だな、100円でいっぱいいっぱいだw
#include<stdio.h>
#include <limits.h>

int coinfunc(int *c, int k, int m)
{
    int i, tmp, min = INT_MAX;
    if (m == 0)
        return 0;
    else if (m < 0)
        return -1;
    for (i = 0; i < k; i++) {
        tmp = coinfunc(c, k, m - c[i]);
        if (tmp < 0)
            continue;
        else if (tmp < min)
            min = tmp;
    }
    return min + 1;
}

int main(void)
{
    int m, c[] = {1, 5, 8, 10, 15};
    while (scanf("%d", &m) != 1)
        scanf("%*[^\n]");
    printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
    return 0;
}

578:デフォルトの名無しさん
10/07/06 23:38:48
低額は計算済みにしておいて、再帰使えば。

579:デフォルトの名無しさん
10/07/06 23:45:42
結局イタチごっこだろ
じゃあ非再帰ならいいのかと思って試したら、100000000円くらいが限界だった(メモリ確保できず)
割り算で出来る貨幣制度にしろってこった

580:デフォルトの名無しさん
10/07/06 23:50:38
コインに関する問題への解答ありがとうございます。
>>577さんありがとうございます。
>>579さん、非再帰の場合のプログラムをのせてください。お願いします。

581:デフォルトの名無しさん
10/07/06 23:53:49
>>580
URLリンク(kansai2channeler.hp.infoseek.co.jp)

582:デフォルトの名無しさん
10/07/06 23:56:49
最終的には、低額の計算だけにできるだろ。
基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。

583:デフォルトの名無しさん
10/07/06 23:59:29
予想では、コインの最小公倍数になるまでは最大値のコインで支払って
最小公倍数を下回る所になったら、組み合わせを考慮する。

584:デフォルトの名無しさん
10/07/07 00:01:27
<<579さん、ありがとうございます。
ここで、第2問↓↓
今も上で議論されていますが、このプログラム(<<577)の効率の解析をしてください。
「ある重要な演算1つに注目し、その実行回数(最悪の入力時における)を、入力
サイズを表すパラメータの関数として表す。最終的にはT(n,...)=O(n^2×・・・)
のような評価式を求めてください。」できれば、その式を求める過程をお願いします。

585:デフォルトの名無しさん
10/07/07 00:06:30
>>568
ええ、lisp 用として。

586:デフォルトの名無しさん
10/07/07 00:07:51
O(1)だろ。

587:デフォルトの名無しさん
10/07/07 00:08:29
>>582
確かにそれで大分削れそうだな

588:デフォルトの名無しさん
10/07/07 00:08:29
>>575
分かる人これも頼みます

589:デフォルトの名無しさん
10/07/07 00:26:32
>>583
#include<stdio.h>
#include<stdlib.h>
int gcd(int a, int b){ int c; while((c=a%b)) a=b, b=c; return b; }
int lcm(int a, int b){ return a/gcd(a, b)*b; }
void coin_func_r(int *result, int c[], int m, int n){
int i;
if(m<0 || c[0]<0 || (*result>0 && n>=*result)) return;
if(m==0){
if(*result<0 || *result>n) *result=n;
return;
}
for(i=0;c[i]>0;i++) coin_func_r(result, c+i, m-c[i], n+1);
}
int coin_func(int c[], int amount){
int i, lcm_all=1, result=-1, rest, c_max=1;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
rest=amount%lcm_all;
coin_func_r(&result, c, rest, 0);
return result+(amount-rest)/c_max;
}
int main(int argc, char *argv[]){
int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
if(argc==2) x=atoi(argv[1]);
result=coin_func(c, x);
printf("%d\n", result);
return 0;
}

590:デフォルトの名無しさん
10/07/07 00:36:26
>>589
とてもいい感じだが、コインの最小公倍数の大きさに極めて依存

- int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
+ int c[]={777, 128, 100, 15, 10, 8, 5, 1, -1}, x=100, result=-1; // tekitou
として 100000をコマンドライン引数で与えると帰ってこねえ

最小公倍数よりも範囲を狭くする方法はありそうだけどなぁ

591: ◆QZaw55cn4c
10/07/07 00:37:41
>>575
URLリンク(codepad.org)
表示具合の微調整はお願いいたします。

592:デフォルトの名無しさん
10/07/07 00:40:32
>>591
ありがとうございます!
本当に助かりました。

593:デフォルトの名無しさん
10/07/07 01:07:22
>>503
ありがとうございました!

594:デフォルトの名無しさん
10/07/07 01:58:42
>>551
そこでも述べられているがそれTC2

595:デフォルトの名無しさん
10/07/07 02:06:02
[1] 授業単元:プログラミング演習
[2]Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような
形式で表示するプログラムを作成せよ。

例 100 20 30 40と入力すれば
  | 100 20 | =3400
| 30 40 | と表示される

Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で
4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを
作成せよ。

[3]環境
 Windows、VC6.0、C
[4]期限
 7月8日
[5]配列よりちょっと前

Q.1に関してはできそうだったのですが、バーが表示されないために却下となってまいました。
皆さんにとっては大変簡単だと思いますがよろしくお願いします。
初心者ですみません。

596:デフォルトの名無しさん
10/07/07 02:10:06
>>551
ちがう。そういうことじゃない。ISO、ANSI準拠はプログラムの開始、主体となる関数を
mainとし、引数がある時と無い時でどう記述するか、標準スタイルを提唱している。
ただし、それはあくまでも 標準スタイル であり、各自の環境によって準拠しなくても構わない。

597:デフォルトの名無しさん
10/07/07 02:12:37
また、main関数の戻り値はint型とする。これは散々既出だから議論する必要なし。
自分はどうこうすると、根拠も無く意味も分からないスタイルを用いると
他者とコードをやり取りする場合は、弊害が起こるかもしれないが。
そもそも、ここでは個人的なやり取り、スタイルが通用するが
C言語は何も個人が私用で使うだけでなく、世界に通じて商業用としても
普通に用いられている。それは工業規格も同じ事。だから少しでも
幅広く通用するスタイル、規格というのが必要になる。
ちなみに、CDやDVDなどもISO準拠で世界で通用する方式、規格が使われている。

598:デフォルトの名無しさん
10/07/07 02:25:18
さらに、C++では引数が無い場合は int main() としている。
あくまでも ANSI、ISO準拠の標準スタイルの話。個人的なスタイルには言及せず。

599:デフォルトの名無しさん
10/07/07 05:44:31
>>590
最大のコインを選ぶか選ばないかのときだけやればいい。
777円が最大なら 777*2-1以上までは777円を選んでおいてokのはず。
一枚選べる最大価格は777*2-1円だからこの辺から調べる。

600:デフォルトの名無しさん
10/07/07 06:08:18
コインが100円と99円としたとき。
297円 = 99*3円で100円を選ぶと失敗するから
599は間違えだな。
やっぱどのコインの倍数でもある最小公倍数がよさげか。

601:デフォルトの名無しさん
10/07/07 12:20:52
>>582
>最終的には、低額の計算だけにできるだろ。
>基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。

>>11を改造させてもらいました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

602:デフォルトの名無しさん
10/07/07 13:24:29
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: ([2010年07月10日22:00まで]
[5] その他の制限: よろしくおねがいします!


603:デフォルトの名無しさん
10/07/07 15:23:20
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
10人の成績を入力し、その順位を成績と共に表示したい。以下の考えに基づいたプログラムを作成せよ。

1. 2次元配列s[10][2]を用意する。
2. i=0~9のfor文を用いて、s[i][0]に成績入力する。
3. s[0][0]とs[j][0], j=0~9を比較し、s[0][0]より大きい数値の個数nを考える。
  その個数+1が成績順位になるので、s[0][1]にn+1を代入する。
4. 同様の操作をs[i][0]にi=0~9に対して行えば、その成績順位がs[i][1]として求められるので、
  あとは成績と共に表示すればいい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (VC 6.0)
 [3.3] 言語: C
[4] 期限: ([2010年07月9日15:00まで]
[5] その他の制限: 初心者で申し訳ないですが頼みます。

604:デフォルトの名無しさん
10/07/07 15:25:25
>>603
>>421,427

605:デフォルトの名無しさん
10/07/07 15:28:54
>>604
おお同じ人がいたとはw
ありがとうございます!

606:デフォルトの名無しさん
10/07/07 17:49:16
>>604
これC++用だからできなかったorz

607:デフォルトの名無しさん
10/07/07 18:00:51
>>606
URLリンク(codepad.org)

608:デフォルトの名無しさん
10/07/07 18:15:29
>>607
ありがとうございます。
感謝感謝です。

609:デフォルトの名無しさん
10/07/07 18:20:35
>>595
暇ならでいいんでこれも頼みます

610:デフォルトの名無しさん
10/07/07 18:35:12
>>609
Q2.
URLリンク(codepad.org)

611:デフォルトの名無しさん
10/07/07 18:42:57
>>610
ありがとうございます。

612:デフォルトの名無しさん
10/07/07 19:14:20
>>609
Q1
URLリンク(codepad.org)

613:デフォルトの名無しさん
10/07/07 19:26:52
>>550
ありがとうございました。
プログラムをしっかり理解出来るようもっと知識を深めたいと思います!

614:デフォルトの名無しさん
10/07/07 19:29:25
>>612
ありがとうございます!
助かりました。

615:デフォルトの名無しさん
10/07/07 20:57:40
>>612
重くて開かないですね

616:デフォルトの名無しさん
10/07/07 21:24:39
見れました!

617:デフォルトの名無しさん
10/07/07 21:58:05
独自のライブラリも悪くは無いが 標準ライブラリ で済むならそれでおk

618:デフォルトの名無しさん
10/07/07 22:39:34
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
円形テンプレートマッチングのプログラムを作成せよ。

白い楕円が複数書いてあるBMP画像を読み込み(適当にペイントで作成)画像左下からラスタ走査し、円形テンプレートマッチングをするプログラムを作成せよ。
円形テンプレートはサイズA~Bまで変化させ、一致率(円形テンプレートの円周上に一致する白画素と一致している数/円形テンプレート円周のプロット数、円形テンプレート内の黒画素に一致している黒画素数/円形テンプレート内の黒画素数)
上位5つを色を変えて描画せよ。

また、一致率上位5つの半径、一致率、座標(画像の左下をx=0、y=0とする)をdos窓上に標示せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C++
[4] 期限:2010年7月10日まで
[5] その他の制限:

よろしくお願いします

619:デフォルトの名無しさん
10/07/07 23:37:51
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク):
問題1. 10進数1234を2進数で表示するプログラムを作成せよ。
問題2. 変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x) を作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Stduio 2008
 [3.3] 言語:C
[4] 期限:2010年7月9日まで
[5] その他の制限:無

よろしくお願いします


620:デフォルトの名無しさん
10/07/07 23:53:18
#include <stdio.h>

int main()
{
int a, b, c, d;

scanf( "%d", &a );
scanf( "%d", &b );
scanf( "%d", &c );
scanf( "%d", &d );

int value= a*d - b*c;


printf( "| %d %d | =%d\n", a, b);
printf( "| %d %d |\n", c, d );

return 0;
}

エラー
z:\プログラミング演習\sample\sample\sample01c.c(12) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
cl.exe の実行エラー

どこを直せば良いのですか?

621:デフォルトの名無しさん
10/07/07 23:54:42
#include <stdio.h>

int main()
{
int unit_price; // 単価
int num; // 個数

printf( "買う商品の単価: " );
scanf( "%d", &unit_price );

printf( "個数: " );
scanf( "%d", &num );

int total_price = unit_price * num;

// 小数を使うと誤差がでるので使わない
if ( num >= 20 )
total_price = total_price*6/10;
else if ( num >= 10 )
total_price = total_price*8/10;
else if ( num >= 5 )
total_price = total_price*9/10;

printf( "合計金額: %d", total_price );
}

エラー
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(14) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(18) : error C2065: 'total_price' : 定義されていない識別子です。
cl.exe の実行エラー

これもお願いします。

622:デフォルトの名無しさん
10/07/07 23:58:40
>>621
変数の宣言場所をブロックの先頭に移動

623:デフォルトの名無しさん
10/07/07 23:59:05
#include <stdio.h>
const int n = 10;
int main()
{
int i, j;
int s[n][2];
for (i = 0; i < n; i++) {
printf( "%d: ", i );
scanf( "%d", &s[i][0] );
}

for (i = 0; i < n; i++) {
s[i][1] = 0;
for (j = 0; j < n; j++) {
if (s[i][0] < s[j][0])
s[i][1]++;
}
s[i][1]++;
}
for (i = 0; i < n; i++)
printf( "s[%d]: %d\n", i, s[i][1] );
return 0;
}
/* end */

Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2057: 定数式が必要です。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2133: 's' : サイズが不明です。
cl.exe の実行エラー

すみませんこれも駄目でした。
お願いします。

624:デフォルトの名無しさん
10/07/08 00:01:53
>>622
ありがとうございます。
しかし警告が出てしまいました。

Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'unit_price' に対して参照が行われました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'num' に対して参照が行われました。

625:デフォルトの名無しさん
10/07/08 00:18:06
もしかして↓みたいな感じにしてない?

int unit_price; // 単価
int num; // 個数
int total_price = unit_price * num;


626:デフォルトの名無しさん
10/07/08 00:19:39
>>625
なってます。
初心者ですみません。
正しいやり方教えてください。

627:デフォルトの名無しさん
10/07/08 00:27:29
int unit_price; // 単価
int num; // 個数
int total_price;

printf( "買う商品の単価: " );
scanf( "%d", &unit_price );

printf( "個数: " );
scanf( "%d", &num );

total_price = unit_price * num;


628:デフォルトの名無しさん
10/07/08 00:30:08
>>627
できました!
どうもありがとうございました。

629:デフォルトの名無しさん
10/07/08 00:34:44
>>620
自己解決できました。

630:デフォルトの名無しさん
10/07/08 02:22:04
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (visual stadio 2008)
 [3.3] 言語: (C)
[4] 期限: [2010年07月08日13:00まで]
[5] その他の制限:ほんの入門級なので、if,for,whileぐらいしか使えません
あと配列は禁止

概要:数値を1つ(2~9の数字)入力し、その個数分の"*"を1辺とする
完成図(*=★、空白=☆):

3を入力した場合
★★★
☆☆★
★★★

9を入力した場合
★★★★★★★★★
☆☆☆☆☆☆☆☆★
★★★★★★★☆★
★☆☆☆☆☆★☆★
★☆★★★☆★☆★
★☆★☆☆☆★☆★
★☆★★★★★☆★
★☆☆☆☆☆☆☆★
★★★★★★★★★

ーーーーーーーーーーーーーーーー
自分の考え方で進んでみましたが、ifの条件式の部分が分からなくて
助力を求めます

631:デフォルトの名無しさん
10/07/08 07:27:39
>>630
URLリンク(kansai2channeler.hp.infoseek.co.jp)
奇数のみ出力できるモノで良ければ

632:デフォルトの名無しさん
10/07/08 10:01:13
[1] 授業単元:C・プログラミング
[2] 問題文(含コード&リンク):
下記のGPA計算のプログラムを読み込んだ数値を入れる配列を指すポインタを用いて書き換えよ.ただし,配列は1次元配列を用い,また関数を使う必要はない.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] Windows 7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2010年7月10日迄
よろしくお願いします。

633:デフォルトの名無しさん
10/07/08 10:51:09
>>632
void input(int sei[][N2], int n);
↓↓↓↓
void input(int (*sei)[N2], int n);

for(i=0; i<n; i++){
↓↓↓↓
int (*p)[N2];
for (p = sei; p < sei + n; p++) {

sei[i][2]= 0;
↓↓↓↓
(*p)[2]= 0;

634:デフォルトの名無しさん
10/07/08 11:18:09
C言語プログラミング(再帰)について質問です。
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる

プログラムを書こうと思っています。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
そこで、下のようなプログラムを書いたのですが、合計枚数を出すまでしかできませんでした。
これを、それぞれのコインが何枚必要か出力するように書き換えてください!お願いします。

ソースコードは次の書き込みで。

635:デフォルトの名無しさん
10/07/08 11:19:16
#include<stdio.h>
#include<limits.h>

int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}

int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
printf("m=?\n");
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}

636:デフォルトの名無しさん
10/07/08 11:21:49
23円は15と8じゃダメですか? ><;

637:デフォルトの名無しさん
10/07/08 11:28:10
>>636
すいません!!23円のときは15と8が最小ですね。。

638:デフォルトの名無しさん
10/07/08 11:57:17
>>634
URLリンク(codepad.org)

639:デフォルトの名無しさん
10/07/08 12:01:39
性帝トーマス△

640:デフォルトの名無しさん
10/07/08 12:17:43
>>638
33円 -> 15円1枚、10円1枚、8円1枚 が最小。

641:デフォルトの名無しさん
10/07/08 12:26:46
1 #include<stdio.h>
2 #include<string.h>
3 typedef struct K{
4 char* name;
5 int tensuu;
6 }K;
7 int main(void)
8 {
9 FILE *fp;
10 char str[256];
11 char *p1,*p2;
12 int i,j,n;
13 double d,e,f;
14 int a[250];
15 char b[250][250];
16 int x;
17
18 if((fp=fopen("seiseki.txt","r"))==NULL){
19 printf("ファイルがありません\n");
20 return -1;
21 }else{
22 /*while(fgets(str,256,fp)!=NULL){
23 p1=strtok(str," ");
24 p2=strtok(NULL," ");
25 a.name=p1;
26 a.tensuu=atoi(p2);*/
27 i=0;
28 while(fscanf(fp,"%s %d",&b[i],&a[i])!=EOF){
29 i=i+1;



642:デフォルトの名無しさん
10/07/08 12:28:08
30 }
31 n=i;
32 printf("----------入力データ------------\n");
33 for(i=0;i<n;i++){
34 printf("%s %d\n",b[i],a[i]);
35 }
36 for( j=0; j<n; j++){ /* 未処理データの先頭 */
37 for( i=1; i < n-j; i++){
38 if( a[i-1] < a[i] ){ /* 隣り合うデータの交換*/
39 x = a[i-1];
40 a[i-1] = a[i];
41 a[i] = x;
42
43 strcpy(str,b[i-1]);
44 strcpy(b[i-1],b[i]);
45 strcpy(b[i],str);
49 }
50 }
51 }
52
53 }
54 printf("----------出力データ------------\n");
55 for(i=0;i<n;i++){
56 printf("%s %d\n",b[i],a[i]);
57 }
58 fclose(fp);
59 return 1;
60 }
61


643:デフォルトの名無しさん
10/07/08 12:29:05
ファイル処理の応用
switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
 ファイル名はキーボードから入力する。
 1~4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
 1~4以外の数値が入力されたら再入力させること。
 switch 文については教科書 56 ページを参照すること。



644:デフォルトの名無しさん
10/07/08 12:31:22
1. 新規作成の実行例

********** 成績処理 ********* ← メニューの表示
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
← データ入力の誤り
処理番号を入力して下さい(1~4):9
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):1
← ファイル名の入力
Input file name= abc.txt
name=?oota
tensuu=?10
oota 10
name=?yamada
tensuu=?50
yamada 50
name=? ← 入力の終了 Ctrl + D





645:デフォルトの名無しさん
10/07/08 12:33:27
2. 追加作成の実行例

********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):2

name=?isida
tensuu=?90
isida 90
name=?torii
tensuu=?70
torii 70
name=? ← 入力の終了 Ctrl + D

3. 読み込みと表示の実行例

********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):3
Input file name= abc.txt
oota 10
yamada 50
isida 90
torii 70



646:デフォルトの名無しさん
10/07/08 18:25:35
>>633
ありがとうございます。助かりました。


647:デフォルトの名無しさん
10/07/08 18:25:53
>>641-645
>>1

648:デフォルトの名無しさん
10/07/08 18:29:13
[1] 授業単元:
[2] 問題文(含コード&リンク):
2~9の数字を入力その数字に応じて図形を表示させる関数を作る
正方形 三角形 六角形 菱形 星 渦巻き
星と渦巻き以外できたからこの2つについて知りたい
例 7を入力したとき 左:渦 右:星

*******  *   *   *
         *    * *  *
*****  *     ***
*    *  *  *******
* ***  *     ***
*       *   *  *  *
*******  *   *   *
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: よくわからない 申し訳ないVS2008使ってる
 [3.3] 言語: C
[4] 期限: 2010年7月13日
[5] その他の制限: 配列は禁止

649:デフォルトの名無しさん
10/07/08 18:44:06
>>648
ほー。配列は禁止。

printf("*******  *   *   * \n");
printf("         *    * *  * \n");
printf("*****  *     *** \n");
printf("*    *  *  ******* \n");
printf("* ***  *     *** \n");
printf("*       *   *  *  * \n");
printf("*******  *   *   * \n");
は禁止?

650:デフォルトの名無しさん
10/07/08 18:51:34
面白いと思ってやってんの?

651:デフォルトの名無しさん
10/07/08 19:11:07
>>648
渦巻きの偶数パターンが分かればコードが書けるんだが

652:デフォルトの名無しさん
10/07/08 22:56:04
>634
ってさ、たとえば 36 のときみたいに解が複数あるときはどうすんの?
15,15,5,1 の4枚と、10,10,8,8 の4枚。

653:デフォルトの名無しさん
10/07/08 23:06:15
>>630
ありがとうございます
助かりました

654:デフォルトの名無しさん
10/07/08 23:20:25
>>653
いえいえ

655:デフォルトの名無しさん
10/07/08 23:32:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

以下の仕様に従って,分数の四則演算を行うプログラムを作成せよ。
[仕様1] 以下のような構造体を定義し,分数のデータ構造に利用すること。
struct fraction{
int parent; /* 分母(denominator) */
int child; /* 分子(numerator) */
};
[仕様2] 以下の実行結果となるようなプログラムを作成せよ。
プログラムの実行結果↓
1つ目の分数を入力して下さい。
3/4 ←キーボードより入力
2つ目の分数を入力して下さい。
1/4 ←キーボードより入力
演算方法(1.加算,2.減算,3.乗算,4.除算)を入力して下さい。
2 ←キーボードより入力
3/4 - 1/4 = 1/2
計算結果は約分をして表示

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 7月9日
[5] その他の制限:ポインタ変数、データ構造まで習いました
よろしくお願いします

656:デフォルトの名無しさん
10/07/08 23:41:48
>>651
特に指示はないからこっちに任せただと思う
だから左上からスタートで

********
          *
****** *
*      * *
* *    * *
* ****  *
*         *
********

>>649
ifかswitchでそれをつくろうかと思ったがさすがにふざけてると思われそうなのでやめた

657:デフォルトの名無しさん
10/07/08 23:51:27
>>656
日本語でおk。偶数パターンを出力してからものを言え

658:デフォルトの名無しさん
10/07/09 00:02:35
>>657
すまなかった 6 4 2の順で

******
       *
**** *
*   * *
*      *
******

****
    *
*   *
****

2は正方形でも右の形でもどっちでもいい

** **
**   *

659:デフォルトの名無しさん
10/07/09 00:34:07
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(yonex1.cis.ibaraki.ac.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 4.3.4
 [3.3] 言語:C
[4] 期限:2010年7月11日
[5] その他の制限:
よろしくお願いします。

660:デフォルトの名無しさん
10/07/09 01:28:45
次のプログラムを、分かりやすく疑似コードに直してください!!
分かり易ければOKです!
static int coin[] = {1, 5, 8, 10, 15};
int main(void){
int *nr, *hist, money, c, n, new;
printf("input money : ");
while (scanf("%d", &money) != 1) {
scanf("%*[^\n]");
printf("input money again : "); }
scanf("%*[^\n]");
nr = (int *)malloc((money + 1)*sizeof(*nr));
if (nr == 0) {
perror("calloc");
return 1; }
hist = (int *)calloc(money + 1, sizeof(*hist));
if (hist == NULL) {
perror("calloc");
goto err; }
for (n = 0; n <= money; n++)
nr[n] = n;
for (c = 0; c < sizeof(coin)/sizeof(*coin); c++)
for (n = coin[c]; n <= money; n++) {
new = nr[n - coin[c]] + 1;
if (new < nr[n]) { nr[n] = new; hist[n] = c;}
}
printf("total number : %d\n", nr[money]);
printf("coins : ");
for (n = money; n > 0; n -= coin[hist[n]])
printf("%d ", coin[hist[n]]); printf("\n");
free(nr); free(hist); return 0; err:
free(nr); return 1; }

661:デフォルトの名無しさん
10/07/09 02:34:47
>>648
> 2~9の数字を入力
2はどうなのよ、2の時は?

662:デフォルトの名無しさん
10/07/09 04:46:59
>>602お願いします!!

663:デフォルトの名無しさん
10/07/09 07:59:57
>>655
URLリンク(kansai2channeler.hp.infoseek.co.jp)

664:デフォルトの名無しさん
10/07/09 16:09:48
>>661
星は正方形で
渦巻きは>>658でおねがいします

665:デフォルトの名無しさん
10/07/09 20:03:15
URLリンク(codepad.org)

666:デフォルトの名無しさん
10/07/09 20:21:22
> URLリンク(codepad.org)
↑便利だ。
コンパイルまでしてくれる必要は無いんだけど、
もっと色々な言語(Pascalとかverilogとか)貼り付けて、
整形して表示してくれるアプローダ無いかな?

667:デフォルトの名無しさん
10/07/09 20:26:18
ideone.comは?整形して表示の意味がよく分からないけど

668:デフォルトの名無しさん
10/07/09 20:40:12
>>667
ありがとう。これでいいです。
こんなんとかPascal似の言語とか貼り付けたかったのです。
URLリンク(ideone.com)

669: ◆QZaw55cn4c
10/07/09 22:04:40
ideone.com は対応している言語が多いけれども、コンパイルエラーの表示に難があるからなあ。
URLリンク(ideone.com)
正解は、
transform(radians.begin(), radians.end(), sines.begin(), (double (*)(double))sin);

670:デフォルトの名無しさん
10/07/09 22:41:13
整数を入力:18
1
2
3!?
(中略)
13!?
14
15!?
16
17
18!?

こんなプログラムはどうやって書くんですか?

671:デフォルトの名無しさん
10/07/09 22:48:40
さぁ、世界のナベアツ先生に聞いてちょっ

672:デフォルトの名無しさん
10/07/09 22:49:53
誘導されてきたんだなぁ。ってか宿題だったのか。
次は>>1を読もう。

673:デフォルトの名無しさん
10/07/09 22:57:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):3の付く数字と3の倍数の時にアホになりなさい。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)Borland C++ 5.5.1
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 20日(火)


674:デフォルトの名無しさん
10/07/09 23:19:04
>>673
URLリンク(kansai2channeler.hp.infoseek.co.jp)

675:デフォルトの名無しさん
10/07/09 23:27:09
>>674
こうすれば文字列操作が不要になるんでは。
int isAho(int n)
{
if (n % 3 == 0) return 1;
while (n)
{
if (n % 10 == 3) return 1;
n /= 10;
}
}

676:デフォルトの名無しさん
10/07/09 23:28:12
>>675
最後にreturn 0;するの忘れてた。

677:デフォルトの名無しさん
10/07/09 23:45:55
30台もどうかとは思うが300、3000台にもなるとアホばかりで疲れるわ・・・

678:デフォルトの名無しさん
10/07/10 00:17:05
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下の機能を持つプログラムを作ること。

-1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不
可)
-抽出した素数を大きい順(降順)にソートする
-ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)

但し、以下の4つの機能を使ったプログラムにすること。
-サブ関数
-配列
-if文
-for文

以下の点に関して工夫をした場合は加点の対象とする

-素数の計算時間の低減
-見つけた素数の数のカウント
-ソートのアルゴリズム高速化
-実行時間の表示

作成したプログラムの特徴を提出時のコメントに記入すること
(素数の見つけ方、ソートの仕方、表示方法での工夫など)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010/07/23

初心者ですがよろしくお願いします。

679:デフォルトの名無しさん
10/07/10 02:06:24
>>678
URLリンク(kansai2channeler.hp.infoseek.co.jp)

680:名無しさん@そうだ選挙に行こう
10/07/10 09:13:45
ソートはなんならクイッ クソート があるでおじゃる

681:618
10/07/10 09:33:45
その他制限はありません。一通り学びましたが初心者です。
よろしくおねがいします

682:名無しさん@そうだ選挙に行こう
10/07/10 10:10:43
>>589
該当する関数をこれに置き換えると早くなる

int coin_func_r(int result[], int c[], int m, int n){
int i, num;
if(m<0 || result[m]==0) return -1;
if(result[m]>0) return result[m];
for(i=0;c[i]>0;i++){
num=coin_func_r(result, c, m-c[i], n+1);
if(num>0 && (result[m]<0 || result[m]>num+1)) result[m]=num+1;
}
if(result[m]<0) result[m]=0;
return result[m];
}

int coin_func(int c[], int amount){
int i, lcm_all=1, rest, c_max=1, *result, ret;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
result=calloc(lcm_all, sizeof(int));
for(i=0;i<lcm_all;i++) result[i]=-1;
for(i=0;c[i]>0;i++) result[c[i]]=1;
rest=amount%lcm_all;
coin_func_r(result, c, rest, 0);
ret=result[rest]+(amount-rest)/c_max;
free(result);
return ret;
}

683:名無しさん@そうだ選挙に行こう
10/07/10 10:24:32
>>511
ありがとうございます!

684:名無しさん@そうだ選挙に行こう
10/07/10 10:28:20
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
 int i_minof(int x, int y){ /* ... */}
を作成せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。


685:名無しさん@そうだ選挙に行こう
10/07/10 10:40:05
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
下に示すように、整数値を読み込んで、その値を0までカウントダウン
しながら表示するプログラムを作成せよ。なお、負の値を読み込んだ時は
何も表示しない(改行も表示せず終了する)ようにせよ。
=====
整数を入力してください:9
9 8 7 6 5 4 3 2 1 0
=====
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。

686:名無しさん@そうだ選挙に行こう
10/07/10 10:41:38
>>684
int i_minof(int x, int y){ return rand()&1?x:y; }

687:名無しさん@そうだ選挙に行こう
10/07/10 11:41:06
>>684の訂正です。

[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
 int i_minof(int x, int y){ /* ... */}
を作成せよ。
=====
二つの整数を入力してください。
整数1:49
整数2:92
小さい方の値は17です。
=====
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日まで

よろしくお願いします。


688:名無しさん@そうだ選挙に行こう
10/07/10 11:42:32
>>687
×小さい方の値は17です。
○小さいほうの値は49です。

何度も訂正すいません。

689:名無しさん@そうだ選挙に行こう
10/07/10 12:21:49
>>687
int i_minof(int x, int y){
if(x<y){
return x;
}
else{
return y;
}
}

690:689
10/07/10 12:24:03
補足すると
条件演算子を使えばもっと簡単になる

参考
URLリンク(www5c.biglobe.ne.jp)

691:名無しさん@そうだ選挙に行こう
10/07/10 14:55:54
>>685
URLリンク(kansai2channeler.hp.infoseek.co.jp)

692:名無しさん@そうだ選挙に行こう
10/07/10 17:55:41
>>691
ありがとうございます。

693:名無しさん@そうだ選挙に行こう
10/07/10 18:01:33
【質問テンプレ】
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:[無期限]

お願いします。

694:名無しさん@そうだ選挙に行こう
10/07/10 23:01:52
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、3つの色成分(Blue, Green, Red)に分離し、
それぞれを異なるファイルに保存するプログラムを実装しなさい。
プログラム中でやることは以下のことである。
1.ヘッダ部分を適切に読み込む
2.読み込んだヘッダ部分(ファイルヘッダ、情報ヘッダ)を用いて、適切なバイト数(画素数×1画素あたりのバイト数)を読んでくる。
3.分離したい色成分以外を0に書き換え、ヘッダ部分と色情報をファイルに書き込む。
ただし、以下のような構造体を使用する。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月12日
[5] その他の制限:特にありません。よろしくお願いします。


695:名無しさん@そうだ選挙に行こう
10/07/11 02:36:18
クイックソートのソースをとりわけ、クイックソースと言うでおじゃる

696:名無しさん@そうだ選挙に行こう
10/07/11 10:40:06
【質問テンプレ】
[1] 授業単元:Visual C++ でのプログラミング演習
[2] 問題文(含コード&リンク):課題4.3.bをお願いします。URLリンク(www.dotup.org)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 200
 [3.3] 言語:C++
[4] 期限:[無期限]

697:名無しさん@そうだ選挙に行こう
10/07/11 11:07:13
>>696
URLリンク(kansai2channeler.hp.infoseek.co.jp)

動作例から推測するに、恐らく最小の整数ではなく最小の自然数を出力するのだろう。
(1+1/n)^n は n>0 で単調減少だから、二分探索で解を求める。

698:697
10/07/11 11:12:36
単調減少ではなく、単調増加でした

699:名無しさん@そうだ選挙に行こう
10/07/11 11:14:30
> while 型繰り返し
> #include <stdio.h>
ん~~~

700:名無しさん@そうだ選挙に行こう
10/07/11 11:26:33
>>696
C言語でかいた
#include<stdio.h>
#include<math.h>

int main(void){
int n = 0;
double fn;

while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
printf("n = %d\n", n);

return (0);
}

701:名無しさん@そうだ選挙に行こう
10/07/11 11:41:33
math.hを使うことを宣言し マス! って言ってみたかった

702:名無しさん@そうだ選挙に行こう
10/07/11 11:53:54
>>697 さま
>>700 さま

有難うございました。無事解決できました。
また質問で申し訳ないのですが
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;

while((fn=pow((double)(1+1/n), n))<=2.71 || 2.72<=fn) n++;
のようにdouble型にキャストをすると実行中にエラーが出るのですが何故でしょうか?

703:700
10/07/11 11:56:42
>>702
ごめん
0 除算エラーだね

n の初期値を 0 から 1 に変更してちょ

704:名無しさん@そうだ選挙に行こう
10/07/11 11:59:42
>>702
n>=2 のとき
(double)(1+1/n)
は常に 1.0 になってしまうぞ

705:名無しさん@そうだ選挙に行こう
10/07/11 12:11:50
>>703
n=0→1でエラーはでなくなりました!
>>704
Googleさんで調べても分からなかったのですが
キャストするとなぜだめ(1.0になる)なのでしょうか・・・?

706:名無しさん@そうだ選挙に行こう
10/07/11 12:13:47
除数をキャストしてごらん。あるいはnをdouble型にする

707:名無しさん@そうだ選挙に行こう
10/07/11 12:33:26
>>706
割り算は整数だけではだめなのですね・・・。
最初から最後までご教授いただきありがとうございました。

#include <stdio.h>
double a = (double)1/2;
double b = 1/(double)3;
double c = 1/4;
printf("%f\n%f\n%f\n",a,b,c);

実行結果
0.500000
0.333333
0.000000

708:名無しさん@そうだ選挙に行こう
10/07/11 16:02:06
インチをセンチに変換するプログラムを作れという課題が出たのですが、わかりません!
明日の1限までに仕上げなければならないので、大至急お願いします!
下のところまでは書けたのですが、???のところがわかりません。
定数を掛けるというところまでは想像出来るのですが、何を掛けたらいいのか全然想像付きません。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

double to_cm(double in)
{
    return in * ???;
}

int main(int argc, char *argv[])
{
    double in;
    char str[32];

    if (argc > 1)
    {
        strncpy(str, argv[1], 31);
    }
    else
    {
        printf("input inch: ");
        fgets(str, 31, stdin);
    }
    in = atof(str);
    printf("%f [in] = %f [cm].\n", in, to_cm(in));
    return 0;
}

709: ◆QZaw55cn4c
10/07/11 16:05:01
>>708
return in * 2.56

あと、
fgets(str, 31, stdin);

fgets(str, 32, stdin);
でいい。

710:名無しさん@そうだ選挙に行こう
10/07/11 16:07:24
>>709
出来ましたああああ!!!!!!!!111
先週出た課題でずっと悩んでたんですがこれで提出できそうです!
あとプログラムの問題点まで指摘してくださってありがとうございました。

それから、次からはちゃんとテンプレを守ります。すみませんでした。

711:709
10/07/11 16:08:05
>>708
失礼、
return in * 2.54;
だった。1 inch = 2.54 cm。

712:名無しさん@そうだ選挙に行こう
10/07/11 16:43:25
ちなみに、12インチ=1フィート=30.48cm、3フィート=1ヤード=91.44cm
これ豆知識な。マイルの計算もしっかり出来ないと、参るぜ?

713:名無しさん@そうだ選挙に行こう
10/07/11 16:45:13
∧_∧∩))
( ・∀・)彡   パーン!
  ((⊂彡☆∩  _, ,_
   ⊂(⌒⌒(;`Д´)
      `ヽ_つ ⊂ノ ←>>712

714:名無しさん@そうだ選挙に行こう
10/07/11 16:50:16
>>713
まぁそうフィートアップするなよ

715:名無しさん@そうだ選挙に行こう
10/07/11 17:11:59
パンパンパーン
  ∧_∧ ∩
 ( ・∀・)彡☆
   ⊂彡☆))Д´) >>714
       ☆

716:名無しさん@そうだ選挙に行こう
10/07/11 18:26:12
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): URLリンク(imepita.jp)
画像のプログラムを下のEOFを探して処理を行う方法に書き換えてプログラムを実行せよ
また、input.dataの中身を10行未満にしても正常に動く事を確かめてみよ。

int counter=0;
while (!input_file.eof()){
input_file>>data[counter];
counter++
}

for(i=0;i<counter;i++)
output_file << data[i]*2 << '\n';

[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。


717:名無しさん@そうだ選挙に行こう
10/07/11 18:29:40
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): URLリンク(imepita.jp)
画像のプログラムの九九表を以下の様に書き換えよ
1 画面に表示してた部分(coutの部分)をファイルに書き出す様にする
2 一番目のcoutにある''を','に変更する
3 出力ファイル名を"output.csv"とする。
この九九表が入っているファイルをExcelで読み込んで、九九表を見ることができるか確かめてみよ

[3] 環境
 [3.1] OS: linux
 [3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。


718:名無しさん@そうだ選挙に行こう
10/07/11 19:19:51
>>693
URLリンク(kansai2channeler.hp.infoseek.co.jp)

719:名無しさん@そうだ選挙に行こう
10/07/11 22:01:05
>>717
URLリンク(kansai2channeler.hp.infoseek.co.jp)

720:名無しさん@そうだ選挙に行こう
10/07/11 22:46:43
[1]授業単元:プログラミング基礎
[2] 課題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境:指定無し 言語C(なるべく)
[4] 9/1迄(夏期課題)
[5]意味がよくわからないので丸投げします

721:名無しさん@そうだ選挙に行こう
10/07/11 23:08:44
>>719
ありがとうございます。でも、このプログラムをコンパイルしても、
続行するには何かキーを押してください
で終わってしまいます

722:名無しさん@そうだ選挙に行こう
10/07/11 23:13:01
>>721
実行ファイルと同じところに、なにか新しいcsv ファイルが作成されていませんか?

723:名無しさん@そうだ選挙に行こう
10/07/11 23:15:40
>>20 といい >>720 といい、変な傾向の宿題が出るようになったものですね。

724:名無しさん@そうだ選挙に行こう
10/07/11 23:20:59
別に変でもないよ。処理の内面的な部分を知る課題だろ。

725:名無しさん@そうだ選挙に行こう
10/07/11 23:25:41
仕様をもとにプログラムを作成する、というのがまっとうだと思うんですが。
判じ物の問題は、「プログラム基礎」とか「暗号理論」という単元名とは全然違うのでは。

726:デフォルトの名無しさん
10/07/11 23:37:13
>>722
プログラムのコンパイルした時にExcelを開いておけばいいって事ですか

727:名無しさん@もう選挙は終わってるんで
10/07/11 23:37:20
>>725
それいうなら結局誰も答えなかったみたいだけど
>>234とかがある意味最もC言語の宿題っぽいw(けど学校の宿題としては
やはり不適なんだろなw)

728:デフォルトの名無しさん
10/07/12 00:04:27
>>722
実行ファイルと同じところに、Excelで保存したものがはいっているんですが、もしかしてそれですか

729:デフォルトの名無しさん
10/07/12 00:14:16
誰か716の問を助けてください

730:デフォルトの名無しさん
10/07/12 01:27:34
>>679
亀レスですみません
ありがとうございました

731: ◆QZaw55cn4c
10/07/12 02:39:35
>>716
単に指示通りにプログラムを入力しただけです。
URLリンク(codepad.org)

732:デフォルトの名無しさん
10/07/12 02:58:38
>>725
何が言いたいのかさっぱり分からんが、プログラムを動かしている電子機器の
基本的な仕組みも知らないでコードを書くとか・・・どれも基本は同じだし。
IFや数値を扱うにしても、もう既に実装されているコンピュータの仕組みが
大きく関与しているし。

733:デフォルトの名無しさん
10/07/12 03:01:15
>>732
>>20 >>720 のような出題を批判しているだけです。

734:デフォルトの名無しさん
10/07/12 03:02:17
>>720
っつか、学んだ内容が分かればヒントが得られるかもしれないが・・・
法則が分からん。511までで何か数字を弄れば気づくかもしれんが。

735:デフォルトの名無しさん
10/07/12 06:29:39
2進数にしたときに1の数が順番に増えていくのだけはわかった。
ソートの条件はさっぱりだが。

736:デフォルトの名無しさん
10/07/12 07:07:43
>>694お願いします。。。

737:デフォルトの名無しさん
10/07/12 08:16:55
順応性を高めなさい!そしてあるがままを受け止めなさい。

738:デフォルトの名無しさん
10/07/12 10:12:44
実験(数値実験、確認、解析)
システムプログラミング(アプリケーション実装)
マネジメント(ネットワーク構築 etc)
開発(OS,言語、処理系、ライブラリの整備)
教育(カルチャーの紹介)
....まだあるかも

ことコンピュータの世界(実世界に非ず)の教育を
単一言語で行うことには相当無理があるよな

739:デフォルトの名無しさん
10/07/12 10:34:43
そんなのだいたいCでやってるという現実。

740:デフォルトの名無しさん
10/07/12 11:02:57
まアセンブラを言語と考えるのならこれ以上に万能な
言語は無いな

741:デフォルトの名無しさん
10/07/12 11:03:01
だからCみたいな面倒な言語を経験しておけば他のスクリプト言語も
簡単に使えるという意図なんだろう

742:デフォルトの名無しさん
10/07/12 11:05:00
お前らのCに対する意見、気持ちはよーく分かった。だから早く
初めてのCもしてこい、なっ!

743:デフォルトの名無しさん
10/07/12 11:21:10
>>735
当たり前だろwww

744:デフォルトの名無しさん
10/07/12 11:34:36
>>738
Cが他の言語に対して圧倒的に強いのは
開発
だろな
教育できるような世界じゃないだろうけど

745:デフォルトの名無しさん
10/07/12 11:37:42
はい、Cなら色々と開発できます!

746:デフォルトの名無しさん
10/07/12 11:40:07
Cは非プログラミング言語で言うと英語みたいなもんだよ。
言語設計が優れてるか否かというよりも(まぁ優れてはいるんだろうが)、
みんなが使って、長い間使ったから、デカイ顔できるし信頼も置ける。

747:デフォルトの名無しさん
10/07/12 12:54:06
>>720
1 になっている bit の数を x とすると
x に対して昇順にするのが大前提

x%3==0 のとき数値で昇順
x%3==1 のとき数値で降順

x%3==2 のときが分からない
数値を昇順にソートし大きい方から使う

x=2 の場合だと逆順に見て
8 ? 7 ? 6 ? 5 ? 4 ? 3 ? 2 ? 1
こんな感じ

x=5 の場合だと逆順に見て
5 ? 4 ? 3 ? 2 ? 1 ? ? ? 4 ? 3 ? 2 ? 1 ? ? ? 3 ? 2 ? 1 ? ? ? 2 ? 1 ? ? ? 1 ? ? ?
こんな感じ

748:デフォルトの名無しさん
10/07/12 13:18:12
>>720 >>747 の条件分岐 x%3==0 と x%3==1 のときだけ実装
#include<stdio.h>
#include<stdlib.h>
int bit_count(int value){
int ret=0;
while(value>0){
ret+=value&1;
value>>=1;
}
return ret;
}
int num_cmp(const int *a, const int *b){
int a_bits, b_bits, ret=0;
a_bits=bit_count(*a);
b_bits=bit_count(*b);
if(a_bits<b_bits) return -1;
if(a_bits>b_bits) return 1;
if(*a<*b) ret=-1;
if(*a>*b) ret=1;
if(a_bits%3==1) ret=-ret;
return ret;
}
int main(void){
int num[4096], i;
for(i=0;i<4096;i++) num[i]=i;
qsort(num, 4096, sizeof(int), num_cmp);
for(i=0;i<4096;i++){
if(bit_count(num[i])%3!=2) printf("%d:%d\n", i, num[i]);
else printf("%d:???\n", i); // よく分からないので数値を出力しない
}
return 0;
}

749:デフォルトの名無しさん
10/07/12 13:40:45
1
乱数を使って計算機とじゃんけんをするゲームを作成せよ。
人間の入力はグーは0、チョ基は1、パーは2とし、勝ち、負け、引き分けの判定をすること。
乱数の初期設定のために srand((unsigned int)time(NULL)); を使うこと。

2
1を改良して0,1,2以外の値が入力されるまで繰り返し勝負を続けるものを作成せよ。

よろしくお願いします。

750:デフォルトの名無しさん
10/07/12 17:20:04
>>749
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

751:デフォルトの名無しさん
10/07/12 18:47:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:7月14日まで
[5] その他の制限:
お手数をおかけしますが、よろしくお願いします。

752:デフォルトの名無しさん
10/07/12 18:53:30
>>751(1)

i = left - 1; //(1)________
j = right + 1; //(2)________

753:デフォルトの名無しさん
10/07/12 18:57:22
>>751(2)
return a->height - b->height; // (1)______ /*高さで比較*/

qsort(a, N, sizeof(person_t), (int (*)(const void *, const void *))compare); // (2)___________________________);

754:デフォルトの名無しさん
10/07/12 19:29:58

内容:
[1] 授業単元: プログラミング開発基礎
[2] 問題文 複数あるのでこちらで
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] OS:(Windows 
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:なし
毎週毎週申し訳ありませんがよろしくお願いします

755:デフォルトの名無しさん
10/07/12 19:50:19
[1] 授業単元: 応用プログラミング
[2] 問題文(含コード&リンク): 任意のサンプル値(2のべき乗)を入力し、計算結果を出力する2次元FFTのプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語: どちらでも可
[4] 期限: 7月17日まで

URLリンク(www.kurims.kyoto-u.ac.jp)
FFT、二次元FFTに関しては、上記のサイトの1.2、3.1を参考にしていたのですが、
入出力表示の仕方などが良く分からなかったので、よろしくお願いします。

756:デフォルトの名無しさん
10/07/12 19:53:35
[1] 授業単元: ソフトウェア信頼性
[2] 問題文(含コード&リンク):
問題文+自分で作った部分は以下のファイルに
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 2010年7月12日 24時

757:デフォルトの名無しさん
10/07/12 21:14:47
>>754
URLリンク(kansai2channeler.hp.infoseek.co.jp)

758:デフォルトの名無しさん
10/07/12 21:35:17
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。ここでは1桁
分の数を記憶するオブジェクトを多数作りそれらの協調で計算を進めること。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 7月13日

よろしくおねがいします 


759:デフォルトの名無しさん
10/07/12 21:37:27
>>758
ちょっと何を言っているのかわからない

760:デフォルトの名無しさん
10/07/12 21:53:46
[1] 授業単元:プログラミングⅠ
[2] 問題文(含コード&リンク):3+6+9+12+・・・+n≧100の成立する最小のnの値と
               nがその値をとる場合の左辺の値(3~nまでの和)を
               求めて表示するプログラムをdo-while文を使って作成せよ。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ:gcc
 [3.3] 言語:C言語
[4] 期限:2010年07月13日17:00まで
[5] その他の制限:問題文中にある制限以外に制限はありません。

どうかよろしくお願いします

761:デフォルトの名無しさん
10/07/12 22:00:27
>>756
URLリンク(kansai2channeler.hp.infoseek.co.jp)

762:デフォルトの名無しさん
10/07/12 22:02:40
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。1桁
分の数を記憶するオブジェクトを多数作り計算するプログラムにすること。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 7月13日

よろしくおねがいします

763:デフォルトの名無しさん
10/07/12 22:05:40
うぜえな

764:デフォルトの名無しさん
10/07/12 22:08:49
>>761
ありがとうございます
助かりました

765:デフォルトの名無しさん
10/07/12 22:11:12
>>762が理解できないんだけど

766:デフォルトの名無しさん
10/07/12 22:14:10
>>760
URLリンク(kansai2channeler.hp.infoseek.co.jp)

767:デフォルトの名無しさん
10/07/12 22:14:16
>>758
>>762
C なのか JAVA なのか?

768:デフォルトの名無しさん
10/07/12 22:19:49
>>767
問題文だけ読むとjava

環境だけを見るとcっぽい

あくまで推測ですが・・・

769:760
10/07/12 23:02:37
>>766
ありがとうございました

770:デフォルトの名無しさん
10/07/12 23:18:18
すみません、どなたか>>694お願いいたします。

771:デフォルトの名無しさん
10/07/12 23:52:39
>>762
URLリンク(codepad.org)

772: ◆QZaw55cn4c
10/07/13 01:05:09
>>694
URLリンク(codepad.org)
コマンドライン第一引数に対象となる bmp ファイルを指定すると、r.bmp, g.bmp, b.bmp を出力します。
24bit bmp ファイルにしか対応していません。そのほかのタイプの bmp ファイルに対応する必要があれば、ご連絡ください。

773:デフォルトの名無しさん
10/07/13 02:02:59
そういえば、より汎用的なソースコードに書き換えた麻呂に負けた悔しさなのか
素人麻呂相手に必死にに噛み付いていたあいつはどこへ行ったんだろうか?

774:デフォルトの名無しさん
10/07/13 02:19:51
>>773
そのより汎用的なソースとやらを教えてくださいな。

775:デフォルトの名無しさん
10/07/13 02:24:58
こんな時間に釣れるとは思わなかったよ、麻呂と勘違いして意味不明な
戻り値の話をしちゃったおバカさんw

776: ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
10/07/13 02:35:36
   /二__,--、r'"___、 ヾト、.ヽ
レ'"~,-,、 !  ! ' '" ̄ .ノ\ヾ:、
K/ー'~^~_/  ヽミ:ー‐‐'"  ヽ i
!〉ー―'"( o ⊂! ' ヽ  ∪ Y」_  
i ∪  ,.:::二二ニ:::.、.      l 、...
!    :r'エ┴┴'ーダ ∪   ! !l
.i、  .  ヾ=、__./      ト=. 
ヽ 、∪   ― .ノ     .,!  

777:デフォルトの名無しさん
10/07/13 02:36:43
またおまえかよ。。。
コテつけろよ>>775

778:デフォルトの名無しさん
10/07/13 02:45:16
【質問テンプレ】
[1] 授業単元:画像処理プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
画像を8×8 画素のブロックに分割します。各ブロック毎に平均値を求めます。
※average という関数を作ってブロック内の平均値を求めても良いでしょう。
ブロック内の画素すべての輝度値を平均値で置き換えます。どのような画像が得られますか?
8×8画素のブロックサイズでモザイク処理を行うプログラムと、モザイク処理後の画像を提出しなさい。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/13 13時がリミット
[5] その他の制限: getPixelは使わない方法で現状のコードを変更した程度で完成できればベストです。

779:デフォルトの名無しさん
10/07/13 04:14:26
lennaたん、かわいいよ、lennaたん

780:デフォルトの名無しさん
10/07/13 05:39:44
>>750
ありがとうございます。

781:デフォルトの名無しさん
10/07/13 08:53:35
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
いっぱいあります。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/20
お願いします。

782:デフォルトの名無しさん
10/07/13 09:08:53
1*3*5*7*9*・・・*111を11で割った剰余を求めよ

783:デフォルトの名無しさん
10/07/13 09:51:05
 A=1*3*5*7*9
 B=13*・・・*111
とおくと、
与式は
 A*11*B
と書ける。
これは 11 で割り切れる。
つまり、題意の剰余は 0 。

784:デフォルトの名無しさん
10/07/13 11:32:47
[1] 授業単元:プログラミング演習III
[2] 問題文(含コード&リンク):
以下の機能を含む整数版秀丸エディタ用のDLLを作成せよ。
・返り値がint型で、パラメータ(整数)を渡すと、「整数*5」の結果を返す。
・返り値がchar型で、パラメータ(文字列)を渡すと、文字列の先頭にHello!!を付けた「Hello!!+文字列」の結果を返す。
以下のサイトも参考にする事。
URLリンク(homepage3.nifty.com)
[3] 環境
 [3.1] OS:Windows 32bit
 [3.2] コンパイラ名とバージョン: Visual C++ 2010 Express
 [3.3] 言語:C++
[4] 期限: 2010/07/14 10:40
[5] その他の制限: なし

785:デフォルトの名無しさん
10/07/13 12:28:53
>>762は環境はcですが、問題はjavaです。

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

786:デフォルトの名無しさん
10/07/13 13:57:12
コンピュータ基礎1
OS windows7 32bit
gcc2.9.5
言語 c
期限 なし
課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
よろしければ教えていただきたいです。

①キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい

②キーボードからテストの得点m(0以上100以下)を入力し
(1) m<60 の場合は「不合格」
(2) 60≦m<80 の場合は「普通」
(3) 80≦m の場合は「優秀」
と表示するプログラムを作りなさい。

787:デフォルトの名無しさん
10/07/13 14:09:43
>>786

48 名前:デフォルトの名無しさん[sage] 投稿日:2010/07/13(火) 14:00:23
>>46
int main() {
double x;
scanf("%lf", &x);
printf("%f\n", fabs(x));
}

int main() {
int m;
scanf("%d", &m);
printf("%s\n", m < 60 ? "不合格" : m < 80 ? "普通" : "優秀");
}

転載

788:デフォルトの名無しさん
10/07/13 15:12:30
[1] 授業単元:プログラミング演習I
[2] 問題文(含コード&リンク):
課題
(1000以下の完全数)正整数kが等式
   k=(kの約数の内、k以外のものの総和)
を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
[3] 環境
 [3.1] OS:unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2010/07/14
[5] その他の制限: 環境はcですがjavaの問題です。

お願いします。

789:デフォルトの名無しさん
10/07/13 15:44:30
それ自身を含まない約数を足してイークォールか比較すりゃええがな
俺はメルセんヌ素数を使うけど

790:デフォルトの名無しさん
10/07/13 16:28:51
以下の入力をして、これを二次元配列に代入していく方法がわかりません。
当方scanf+Enterによる単純な入力しかしたことがありません。
空白を認識して代入先を変える方法?と考えて手が止まりました。

/*以下入力*/
3 /*変数int nへ代入する。今から3*3行列を入力するという意味*/
3 5 7
2 5 8
6 8 1
/*入力ここまで*/

for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ", a[i][j]);
}printf("\n");
}printf("\n");
の結果は上記の
3 5 7
2 5 8
6 8 1
を表示するように二次元配列aに代入する。

791:790
10/07/13 16:31:19
テンプレ忘れ
[1] 授業単元:プログラミング
[2] 問題は>>790
[3] 環境
 [3.1] OS: Windows
 [3.2] Visual C++ 2008
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 入力はscanfにこだわらなくても良いですが、なるべく単純にお願いします。

792:デフォルトの名無しさん
10/07/13 18:13:07
>>790
#include <stdio.h>
#define loop(i,n) for (i = 0; i < n; i++)

int main(void)
{
    int i, n, j, a[10][10];

    printf("n=");
    scanf("%d", &n);
    for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
    scanf("%d", &a[i][j]);
    for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
    printf("%d ", a[i][j]);
printf("\n");
    }
    printf("\n");

    return 0;
}


793: ◆QZaw55cn4c
10/07/13 18:38:51
>>694
バグがありましたので修正いたします。
URLリンク(codepad.org)

794: ◆QZaw55cn4c
10/07/13 18:46:36
>>778
>>694 と並行して作成しておりました。とりあえずできているものをあげておきます。
>>778 に示されているソースコードに沿って書き直す作業は、余裕があれば行います。

第一引数にターゲットとなる bmp ファイル名、第二引数に平均化した bmp ファイル名を指定します。
入力ファイルとしては、256色 bmp と 24ビット bmp に対応しています。出力ファイルは 24ビット bmp です。
URLリンク(codepad.org)

795:デフォルトの名無しさん
10/07/13 18:47:54
>>775
汎用的なソースとやらは、実は無いんですね。

796:デフォルトの名無しさん
10/07/13 19:07:59
>>792
どうもありがとうございました。

797:デフォルトの名無しさん
10/07/13 19:46:44
>>788
>>785 も同一人物だとしたら頭の中身がどこかから漏れてないか?

798:デフォルトの名無しさん
10/07/13 20:14:14
>>785
> >>762は環境はcですが、問題はjavaです。
完成ソースをコンパイルする時のコマンドは、gcc、javacのどっち?

799:デフォルトの名無しさん
10/07/13 21:48:50
>>788
>>506, >>571

800:デフォルトの名無しさん
10/07/13 22:18:55
>>784
URLリンク(kansai2channeler.hp.infoseek.co.jp)

801:デフォルトの名無しさん
10/07/13 22:52:55
【質問テンプレ】
[1] 授業単元: 計算機プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語: C
[4] 期限:7/24
[5] その他の制限: なし
電気電子系の問題です。
よろしくお願いします

802:デフォルトの名無しさん
10/07/13 23:10:48
[1] 授業単元:オペレーティングシステムプログラミング演習
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2010年7月15日17:00まで
[5] その他の制限:特にありません

よろしくお願いします

803:デフォルトの名無しさん
10/07/13 23:27:12
>>800
ありがとうございます

804:デフォルトの名無しさん
10/07/13 23:28:45

             / ̄\
            │34nm |
             \_/    インテル!
             _|_|_
       n:     /      \    n: 
       ||   /         ヽ    ||   
      f「| |^ト  |   :::\::/:::   |  「| |^|`|  エーーックス
      |: ::  ! }  | <(゚)>::::<(゚)> |  | !  : ::}   ニジュウゴ
      ヽ  ,イ  ヽ  (__人__) /  ヽ  ,イ     エーーーッムッッ!
            \ `⌒´ /

805:デフォルトの名無しさん
10/07/13 23:37:07
>>798 javacです。
よろしくお願いします。

806:デフォルトの名無しさん
10/07/14 00:13:03
>802 778lenna-tan10815.c
URLリンク(kansai2channeler.hp.infoseek.co.jp)

807:デフォルトの名無しさん
10/07/14 00:30:21
>>806
ファイルが消えてるみたいで
あつかましいのですが、もう一度あげていただくことは出来ないでしょうか

808:デフォルトの名無しさん
10/07/14 00:35:30
>>795
単にマクロで求める数値を適当に変えられる仕様にしただけであって
大して改変はしていなかったしw

809:デフォルトの名無しさん
10/07/14 00:55:05
>807
URLリンク(kansai2channeler.hp.infoseek.co.jp)
だった

810:デフォルトの名無しさん
10/07/14 00:58:36
>>809
すいません、ありがとうございます

811:デフォルトの名無しさん
10/07/14 01:00:16
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(www.dotup.org)
[3] 環境
 [3.1] OS: (Windows vista
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 特になしです。

よろしくお願いします。

812:デフォルトの名無しさん
10/07/14 01:02:15
AKB48の篠田と板野が好きです、けど
モー娘。の石川梨華はもっと好きです。

813:デフォルトの名無しさん
10/07/14 01:18:57
>>752>>753ありがとうございました!

814:デフォルトの名無しさん
10/07/14 01:59:24
>>811
URLリンク(codepad.org)

815:デフォルトの名無しさん
10/07/14 03:28:55
[1] C言語プログラミング演習
[2] 問題文

name(名前: char型配列), height(身長: float型変数), bloodType(血液型: char型変数)をメンバに持つ構造体を宣言し, 128名分が記憶可能になるようその構造体の配列を定義せよ.また,その配列に対して値を入力し,
さらに表示できるようにせよ.構造体のメンバ値を表示するには、ひとつの構造体の各メンバの値を表示する関数を作成すること。


% ./bodyData
1人目のデータ: 立命太郎 175.5 A
2人目のデータ: 野路花子 169.0 B
3人目のデータ: 衣笠一郎 180.4 O
4人目のデータ: 0 0 0 ← 0 0 0 と入力すると終わる.
名前 身長 血液型
立命太郎 175.5 A
野路花子 169.0 B
衣笠一郎 180.4 O
%

ヒント: 各人の名前、身長、血液型のデータを1行で入力するためには、参考12.1に示されたfgets()関数で、これらを1度に取り込み、最初の空白までを名前とみなし、次の空白までを身長とみなし、
次に改行までを血液型をみなせばよい。これらを別々の文字列として、必要に応じて整数や浮動小数点数に変換し、構造体のメンバに設定すること。

ヒント: ひとつの構造体の各メンバの値を表示する関数に構造体を引渡すことを繰り返えせばよい。


[3] 環境
 [3.1] OS: (Windows vista
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 実行結果までできれば表示してほしいです

816:デフォルトの名無しさん
10/07/14 03:48:45
>>806
ん、例の出したり引っ込めたりか‥‥‥。

817:デフォルトの名無しさん
10/07/14 03:49:02
くせぇくせぇ、麻呂のクソースの臭いがぷんぷんすんぜっ

818:816
10/07/14 03:50:48
失礼。

819:デフォルトの名無しさん
10/07/14 03:58:00

[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
整数を各要素の値とする、2つの2次元ベクトルが与えられたときに、それらの内積を計算する関数innerProduct()を使って、この2つのベクトルが直行しているかどうかを判定するプログラムを作成せよ。

2つの2次元ベクトル U(ux,uy)とv(vx,vy) の内積は,
ux × uy + vx + vy
で計算でき、2つのベクトルが作る角度は、
内積が正なら90°より小さく 内積が0なら 90° 内積が負なら90°より大きい
この考え方は3次元のベクトルでも同じである。上記のプログラムを、3次元のベクトルにも対応したものにすぐに修正できるようにするには、マクロを使うことが有効である。
どのようにすればよいかを考えよ。
2次元の場合
% ./innerProduct
input u[0]: 2 input u[1]: 6 input v[0]: 9input v[1]: -1
u=[ 2 6 ], v=[ 9 -1 ]
inner product is 12
The angle of the vectors is less than 90 degree.
%
3次元の場合
% ./innerProduct
input u[0]:input u[1]: 1input u[2]: 2input v[0]: 6input v[1]: 3input v[2]: -2
u=[ 0 1 2 ], v=[ 6 3 -2 ]
inner product is -1
The angle of the vectors is greater than 90 degree.
%
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし

820:デフォルトの名無しさん
10/07/14 04:00:27
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
標準入力から正の整数値を読み込み,0が入力されたらそれらの整数を小さい順に表示するプログラムを作成せよ.

以下のような処理の流れでプログラムを作成すること。

数字を読み込むごとに, それまでに入力された数値が格納された配列の最後の要素から, 先頭に向かって順に大小の比較を行う. これにより、読み込んだ数字の方が入るべき位置がわかる.
読み込んだ数字が入るべき箇所を空けるために、 既に記憶されている配列の要素のうち、 この数字よりも大きな数字をひとつ後ろにずらす。 空いた箇所に読み込んだ数字を代入する.
次に入力される数字の処理へ移る.

% ./ordering
正整数: 17
正整数: 3
正整数: 9
正整数: 4
正整数: 0
入力された整数は小さい順に 0, 3, 4, 9, 17 です.
%
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし

821:デフォルトの名無しさん
10/07/14 04:08:05
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
文字列yを文字列xの最後に連結する関数stringcat(char [], char [])を作成せよ.この関数を用いて、入力された2つの文字列を連結するプログラムを作成せよ。

注意: stringcat()を呼び出すときは,連結後の文字列がxの配列長を超えないように注意すること.


% ./catenate
文字列x (20字まで)? linux
文字列y (20字まで)? kadai
連結後のx: linuxkadai ←全部で20字以内なので連結可能
20字を超える場合は連結不可能とする
[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし




822:デフォルトの名無しさん
10/07/14 04:13:00
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char [], char [])を作成せよ.この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。


% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? dai
"kadaigakitui"に"dai"は含まれます.

% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? ycx
"kadaigakitui"に"ycx"は含まれません.

[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし



823: ◆QZaw55cn4c
10/07/14 04:34:26
>>815
URLリンク(codepad.org)

824:デフォルトの名無しさん
10/07/14 05:16:06
fgets△~

825:デフォルトの名無しさん
10/07/14 07:15:41
>>820
URLリンク(kansai2channeler.hp.infoseek.co.jp)

826:デフォルトの名無しさん
10/07/14 08:02:12
>>821
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>822
URLリンク(kansai2channeler.hp.infoseek.co.jp)

827:デフォルトの名無しさん
10/07/14 08:33:18
>>814
ありがとうございました
助かりましたっ!

828:デフォルトの名無しさん
10/07/14 09:01:59
>>820 漏れもやってみた
URLリンク(kansai2channeler.hp.infoseek.co.jp)


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