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


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

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



1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ]
あなたが解けない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++の宿題を片付けます 103代目
pc11.2ch.net/test/read.cgi/tech/1200318925/

28 名前:9 [2008/02/05(火) 23:58:15 ]
今あぷろだ何故かつながらないんです。

29 名前:9 [2008/02/06(水) 00:01:55 ]
>>27

なるほど。
ありがとうございます。
考え方はわかった気がします。

30 名前:9 [2008/02/06(水) 00:25:28 ]
>>21

ほとんど何も出来ていませんが。

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


31 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:27:43 ]
>>7
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6005.txt

32 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:55:19 ]
>>31
ありがとうございました。
助かりました。

33 名前:デフォルトの名無しさん [2008/02/06(水) 02:32:38 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
問題文全文
 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6006.txt
用いるデータ
 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6008.txt 
解答例
 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6007.txt 
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C
[4] 期限:[2008年2月6日19:00まで]
[5] その他の制限:特になし
  丸投げで申し訳ないです。よろしくお願いします。  
  


34 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 03:35:15 ]
>>33
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6009.txt

>>7よりもこっちが先だと思うんだけど。

35 名前:デフォルトの名無しさん [2008/02/06(水) 04:27:35 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6010.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年2月7日午前10時まで
[5] その他の制限:特にありません

よろしくお願いします。


36 名前:9 [2008/02/06(水) 10:16:56 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6011.txt

一応テトリス課題です。



37 名前:デフォルトの名無しさん [2008/02/06(水) 11:05:28 ]
[1] 授業単元:情報処理演習
[2] 問題文(含コード&リンク):複素数の時粒、虚部の値をファイルから入力し、複素数の四則演算をファイルに出力するプログラムを作成せよ。
ただし演算部分は関数にして実装せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc
 [3.3] 言語: C++
[4] 期限:2月6日以内
[5] その他の制限: プログラムの構成は ファイルから読み込み、複素数の四則演算、別のファイルに書き込み

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

38 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:23:43 ]
>>37
時粒って何?

std::complexを使っていいの?

39 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:26:05 ]
>>36
APIなのか.Netなのかどっちなのかとw

40 名前:9 [2008/02/06(水) 17:54:24 ]
>>39

APIだと思うんですが、教師の言ってる意味が日本語でおk状態です。

41 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:28:50 ]
>>34
遅くなってすみません。
本当にありがとうございました。

42 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:11:27 ]
[1] 授業単元:計算機入門
[2] 問題文:下記のプログラムの空白部分(□)を記入し,「ポインタを利用したプログラム」(report12.c)
を作りなさい
3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: CPad for Borland
 [3.3] 言語:C
[4] 期限:2008年2月12日午後18時まで
[5] その他の制限:string.h は使えない。

プログラム
#include <stdio.h>

int main(void)
{
int i;
char str[] = "Japan";
int str_length;
int data[] = {1, 2, 3, 4, 5, 0};
int *p;

/* 文字列の長さ */
str_length = □

/* 文字配列の各要素のアドレスを表示する */
for(i=0; i<str_length; i++)
{
printf("%p : str[%d] = %c\n", &str[i], i, str[i]);
}
printf("\n");



43 名前:42の続き [2008/02/06(水) 22:12:07 ]
/* 配列の各要素のアドレスをfor文で表示する */
for(i=0; i<5; i++)
{
printf("%p : data[%d] = %d\n", &data[i], i, data[i]);
}
printf("\n");

/* 配列の各要素のアドレスをポインタを利用して表示する */
p = &data[0];
while(*p)
{
printf("%p : %d\n", &data[*p], data[*p]);
p++;
}

return 0;
}

string.hを使わずに文字列の長さを出す方法がわかりません。
あと、最後のwhile文で表示するところがうまくいきません。
どなたかよろしくお願いします。

44 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:23:10 ]
>>42
/* 文字列の長さ */
for(str_length=0; str[str_length]; str_length++) {}

/* 配列の各要素のアドレスをポインタを利用して表示する */
p = &data[0];
while(*p)
{
printf("%p : %d\n", p, *p);
p++;
}

45 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:39:19 ]
>>44
助かりました。
本当にありがとうございました。

46 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 07:59:52 ]
前スレ埋めようよ



47 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:13:20 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6015.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年2月8日午前10時まで
[5] その他の制限:特にありません

非常に困っております。よろしくお願いします。

48 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:20:36 ]
>>47
何が問題なんだ?
そのコードはちゃんと動くけど。

49 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:21:38 ]
>>48
え?プログラムが完成されてるってことですか?ごめんなさい、もう少しよく考えてから出直します

50 名前:前スレ798 mailto:sage [2008/02/07(木) 15:15:32 ]
[1] プログラミング論
[2] @ % ./a.out n
       の時、nまでの順列を生成するプログラムを作る。
      1. n = atoi( argv[1] ); で引数を整数に変換
      2. for( i = 0; i < n; i++ ) a[i] = i+1; としてa[]を初期化
      3. perm()を完成させる。
  A % ./a.out x n
    の時(x,nは整数),x^{n}を計算するプログラムを作る。
     x^{n} = x^{m} * x^{m} (n = 2m)
     x^{n} = x * x^{m} * x^{m} (n = 2m+1)
     x^{n} = 1 (n=0)
    を利用して乗算回数の最小化を行うこと。
    x^{n}の値と、乗算回数を出力する。
  B Ackermann関数
     A(0,n) = n+1
     A(m,0) = A(m-1,1) (m>0)
     A(m,n) = A(m-1,A(m,n-1)) (n>0)
    をするプログラムを作る。
    % ./a.out m n
    ただし、% ./a.out 3 12
    での実行時間が0.05sec未満。
         →%time ./a.out 3 12
    %time ./a.out 4 x
    は多分動かないのでm<=3で試すこと。
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 2008年2/12(火)
[5] 制限は特にないです

先週はありがとうございました!今週も・・・・よろしくお願いしますm(__)m

51 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 20:49:34 ]
[1] 授業単元:論文の途中で値を出す為に使います
[2] 問題文:f(x) = ax^2 + bx +c
g(x) = αx^2 + βx + γ
      h(x) = Ax^2 + Bx + C

としたとき、合成関数 f(g(h(x)))=8次式 において、x^8〜x までの係数をそれぞれ求める
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: できるだけ早いと嬉しいです。並行して自力でもやっていますが、計算ミスが怖いです。
[5] その他の制限:特にありません


52 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 20:58:08 ]
>>6
この rnd() はなんという乱数発生法ですか?

あと、どんな乱数でも多数加えると正規分布に近づくことは確かですが、12 回たして6引くというのは(よく知られてはいますが)あまり精度はよくありません。

53 名前:デフォルトの名無しさん [2008/02/07(木) 22:59:29 ]
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6016.txt
[3] 環境
 [3.1] OS: Win XP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C
[4] 期限: 2008年2月8日午前7時30分 (できればこの時間までにお願いしたいですが、午前中でもかまいません)
[5] その他の制限:急ぎで申し訳ありませんが、困っているのでよろしくおねがいします。

54 名前:デフォルトの名無しさん [2008/02/07(木) 23:32:08 ]
[1] 授業単元:プログラミング
[2] 問題文 4問です。
       kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6017.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C
[4] 期限: 2月10日 午前0時まで
[5] その他の制限:特になし

55 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:11:59 ]
>>53
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6018.c

56 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:17:17 ]
>>55
39行目くらいの
fprintf(outfp, "%s", pstart); を fputs(pstart, outfp);
に変えてください
(別にどっちでもいいんだけど、統一させないと気持ち悪いから
どうも、fprintfを使うのが癖になってるな)



57 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:24:30 ]
>>53 便乗でゴミソース。 一度置換した文字列をバッファに確保すべきだろうか?
#include <stdio.h>
#include <string.h>
#define BSIZE 1024
int ismatch(char *str1, char *str2){
    while(*str1 == *str2){
        if(*str1 == '\0') return 0;
        if(*str2 == '\0') break;
        str1++, str2++;
    }
    return *str2 == '\0';
}
int main(int argc, char *argv[]){
    FILE *in, *out;
    int cnt = 0, len;
    char buf[BSIZE], *p;
    if(argc < 4) return fprintf(stderr, "Usage: <FILENAME> <STRING> <STRING> [FILENAME]\n"), 1;
    if((in = fopen(argv[1], "r")) == NULL) return perror(argv[1]), 1;
    if(argc < 5) out = stdout;
    else out = fopen(argv[4], "w");
    len = strlen(argv[2]);
    while(fgets(buf, sizeof(buf), in))
        for(p = buf; *p != '\0'; p++)
            if(ismatch(p, argv[2]))
                fputs(argv[3], out), p += len - 1, cnt++;
            else
                fputc(*p, out);
    fclose(in);
    if(argc >= 5) fclose(out);
    printf("\"%s\"-> \"%s\",(%d)\n", argv[2], argv[3], cnt);
    return 0;
}

58 名前: ◆TQgM1tAAxo [2008/02/08(金) 04:30:06 ]
【質問】
[1] 授業単元:プログラミング
[2] 問題文: ウインドウ中でマウスクリックしたときにビットマップキャラクターが
クリック場所に動いていくようなアニメーションを作成せよ。このときの
OnLButtonUp(UINT nFlags, CPoint point)とOnTimer(UINT nIDEvent) に書くべき記述は?

*ちなみにタイマー識別IDはID1とする

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VC++2006
 [3.3] 言語: C++
[4] 期限: 2008年2月10日11:59まで] または [無期限] のいずれか)
[5] その他の制限: とくになし

59 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 05:32:50 ]
const CSize CLIENT_SIZE = {320, 240};
const int DELAY      = 3;
const int TIMER_ID    = 1;
CPoint         g_tp = {CLIENT_SIZE.x / 2, CLIENT_SIZE.y / 2};
CPoint         g_cp = g_tp;

int OnButtonUp(UINT nFlags, CPoint point)
{
//nFlagsって何だっけ?
g_tp = point;
}

int OnTimer(UINT nIDEvent)
{
if (nIDEvent == TIMER_ID)
{
 g_cp.x += (g_tp.x - g_cp.x) / DELAY;
 g_cp.y += (g_tp.y - g_cp.y) / DELAY;
}
}

こんな漢字か?

60 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:10:23 ]
>>55-57
ありがとうございます。助かります。

61 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:59:33 ]
>>54
課題1だけど、そのアルゴリズムがバグっているという事実はどうしてくれようか。
#include <stdio.h>
static void print(int * a, int num)
{
int ic;
for (ic = 0; ic < num; ++ic) {
printf("%d%s", a[ic], ic < num - 1 ? ", " : "\n");
}
}

static void shift(int * a, int n)
{
int t = a[n - 1];
int i;
for (i = n - 1; i >= 1; --i) { // ←アルゴリズムどおりならint i = n - 2になる
a[i] = a[i - 1];
}
a[0] = t;
}

int main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

print(a, sizeof(a) / sizeof(*a));
shift(a, sizeof(a) / sizeof(*a));
print(a, sizeof(a) / sizeof(*a));
return 0;
}

62 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:55:53 ]
>>54
課題2は、n=5のときの値が違うけど気にしない方向で(ぉぃ
つーか、これも漸化式が読み間違いを引き起こしやすいんだけど。

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

int main()
{
double p = 2 * sqrt(3);
double q = 3;
for (int n = 1; n <= 20; ++n) {
printf("n = %d: %.15g, %.15g, %.15g\n", n, p, q, (p + q) / 2);
double r = 1 / p + 1 / q;
p = 2 / r;
q = sqrt(p * q); // p(n+1) * q(n) と解釈。p(n) + q(n)に見えなくもない
}
return 0;
}


63 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:19:27 ]
>>54
// 課題3-1
#include <stdio.h>
int main(void){
int i,a[41] = {0, 1,};
printf("%d:%d\n",0,a[0]);
printf("%d:%d\n",1,a[1]);
for(i=2;i<=40;i++){
a[i] = a[i-1] + a[i-2];
printf("%d:%d\n",i,a[i]);
}
return 0;
}
// 課題3-2 修正版
#include<stdio.h>
int fib(int *a, int n){
if(n == 0) return 0;
else if (n==1) return 1;
else if (a[n]!=-1) return a[n];
else return fib(a, n-1)+fib(a, n-2);
}
int main(){
int i, a[41] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,};
for(i=0;i<=40;i++){
a[i] = fib(a, i);
printf("%d:%d\n",i,a[i]);
}
return 0;
}

64 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:51:08 ]
>>54
// 課題3-2を、関数内で完結させるように修正してみた。
#include <stdio.h>

static int fib(int n)
{
static int a[] = {
0, 1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
if (n >= sizeof(a) / sizeof(* a) || a[n] == -1) {
a[n] = fib(n - 1) + fib(n - 2);
}
return a[n];
}

int main()
{
for (int n = 0; n <= 40; ++n) {
printf("%d:%d\n", n, fib(n));
}
return 0;
}


65 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:54:00 ]
>>50
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6020.cpp
アッカーマン関数0.05secは無理だった

66 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:24:10 ]
>>65
アッカーマン関数は、ack(3, 12)の段階で呼び出し回数が7億を越えるからシンプルな実装じゃその所要時間は無理でしょ。
>54に書かれている、キャッシュする配列を用意する方法でも呼び出し回数は大して減らないから(ハンドリングコストの所為で)遅くなるし。
# フィボナッチ数の場合は、キャッシュすると爆速だけど。

ということで、手元の所要時間を。
./ackCache 3 7
ack(3, 7):1021
0.01sec
./ackCache 3 8
ack(3, 8):2045
0.04sec
./ackSimple 3 12
ack(3, 12):32765
2.29sec
./ackCache 3 12
ack(3, 12):32765
10.52sec
# あー気にいらね



67 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:42:10 ]
>>66
呼び出し回数は大して減らないって?
Ack(3, 12)なら、81923回の呼び出しで求まるし、一瞬だけど。

68 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:45:17 ]
これでかなり高速化できる
あまりやりすぎると数式で求めろといわれそうだがwww
int ackermann(int m, int n)
{
if(m==0) return n+1;
if(m==1) return n+2;
if(m==2) return n*2+3;
if(n==0) return ackermann(m-1, 1);
return ackermann(m-1, ackermann(m, n-1));
}

69 名前:66 mailto:sage [2008/02/08(金) 16:59:11 ]
やっと納得。
         m=4, n=1  m=3, n=12
シンプル版     9.9sec   2.4sec
キャッシュ版   41.4sec   10.3sec
ショートカット版  0.00sec   0.00sec

ショートカット版は、mが1のときのアッカーマン関数を解いた結果を導入したもの。
# 解く過程はこれ。
ack(1, 0) ⇒ ack(0, 1) ⇒ 2
ack(1, 1) ⇒ ack(0, ack(1, 0)) ⇒ ack(1, 0) + 1 ⇒ 3
ack(1, 2) ⇒ ack(0, ack(1, 1)) ⇒ ack(1, 1) + 1 ⇒ 4
ack(1, 3) ⇒ ack(0, ack(1, 2)) ⇒ ack(1, 2) + 1 ⇒ 5


以下同様に。

ソースは後で。

70 名前:66 mailto:sage [2008/02/08(金) 17:02:37 ]
がーん、ソース貼られてたw しかも、m=2についても解いてあるし。

>>67
>呼び出し回数は大して減らないって?
だから、>54の問題にあるようなキャッシュについてですがな。
m=1について解いてしまえば早くなりましたがな。

癪だから以下に。
--
#include <stdio.h>
#include <stdlib.h>
// #include <stdbool.h>

static int ack(unsigned m, unsigned n)
{
// static int a[4][16];
// bool inRange = m < sizeof(a) / sizeof(* a) && n < sizeof(* a) / sizeof(** a);
int val;
// if (inRange && a[m][n] != 0) return a[m][n];
if (m == 0) {
val = n + 1;
} else if (m == 1) { // short cut for ack(1, n)
val = n + 2; // ack(1, n) -> ack(0, ack(1, n-1)) -> ack(1, n-1) + 1
} else if (n == 0) {
val = ack(m - 1, 1);
} else {
val = ack(m - 1, ack(m, n - 1));
}
// if (inRange) a[m][n] = val;
return val;
}
コメント部分を生かせばキャッシュされるけど、最早どうでもいいなぁw

71 名前:66 mailto:sage [2008/02/08(金) 17:16:12 ]
>>68
それがアリなら、これも追加しとこうぜ。
if(m==3) return (1 << (n + 3)) - 3;

>>70
いやだから、m = 1やm = 2について解いたりせずキャッシュのみで、
Ack(3, 12)は81923回で導き出せるんだって。



72 名前:66 mailto:sage [2008/02/08(金) 18:10:54 ]
やっと合点が。

>>71
アッカーマン関数は、その引き数に自身の結果が使われるからm * n 程度のキャッシュじゃダメだったのね。
取り敢えず、4x40000にしたら無事すんなり終わりましたわさ。

それにしても、mが0、1のときは一次式で2のときは2次式なのに、3でいきなり2の冪か。
m=4について解いたらとんでもない式になりそうですな。

73 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:34:01 ]
元々そういう関数だしな。

74 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:23:16 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6015.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年2月11日午前10時まで
[5] その他の制限:特にありません

今の状態では、3008年2月のカレンダーしか表示されません。
これを何年何月を入力すれば、その年月のカレンダーが表示されるようにしたいです。
よろしくお願いします。

75 名前: ◆TQgM1tAAxo [2008/02/08(金) 22:24:28 ]
>>59
[エラー報告]
58で質問した者です!
即対応していただきありがとうございます。
しかし、その記述をいれてみたところエラーが生じてしまい、またいきづまってしまいました。
そのエラー内容を載せます。
「error C2018:文字'0x81'は認識できません。
error C2018:文字'0x40'は認識できません。
error C2552:'g_tp':初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2039:'x':7CSize'のメンバではありません。」
主に1,2番目と同様のエラーが20個くらい出ています(´・ω・`)なんだかよく分かりません。
一応また質問テンプレ載せておきます。
【質問】
[1] 授業単元:プログラミング
[2] 問題文: ウインドウ中でマウスクリックしたときにビットマップキャラクターが
クリック場所に動いていくようなアニメーションを作成せよ。このときの
OnLButtonUp(UINT nFlags, CPoint point)とOnTimer(UINT nIDEvent) に書くべき記述は?

*ちなみにタイマー識別IDはID1とする

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:VC++6.0 .NET
 [3.3] 言語: C++
[4] 期限: 2008年2月10日11:59まで
[5] その他の制限: とくになし

なんどもすいません。
 

76 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:36:21 ]
>>75
全角スペースを使うな



77 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:37:13 ]
THEバカス

78 名前: ◆TQgM1tAAxo [2008/02/08(金) 23:00:19 ]
>>76
どうもすいません。
全角を消した結果でたエラーを載せます!

「error C2552: 'g_tp' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2065: 'CLIENT_SIZE' : 定義されていない識別子です。
error C2228: '.x' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.y' : 左側がクラス、構造体、共用体ではありません。
error C3861: 'CLIENT_SIZE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2552: 'g_tp' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2065: 'CLIENT_SIZE' : 定義されていない識別子です。
error C2228: '.x' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.y' : 左側がクラス、構造体、共用体ではありません。
error C3861: 'CLIENT_SIZE': 識別子は、引数依存の照合を使用しても見つかりません。」

ちなみに、すべてCPoint g_tp = {CLIENT_SIZE.x / 2, CLIENT_SIZE.y / 2};
の文でエラーがでています!












79 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:28:18 ]
>>78
>>59 はコードの一部だから、あれだけでは動かないよ。
そもそも問題は、「〜アニメーションを作成せよ」なのか
「〜に書くべき記述を答えよ」なのか、どちらだ?

80 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:34:51 ]
>>78
まさかとは思うが、>59の一行目をコピーしていないって落ちじゃないよな?

81 名前: ◆TQgM1tAAxo [2008/02/08(金) 23:53:28 ]
>>80
1行目を記述してもエラーがでてしまいます(´・ω・`)

ちょっとエラー内容がかわったのでまた載せます!

「error C2552: 'CLIENT_SIZE' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2552: 'g_tp' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
'CPoint' : ベースを含む型はアグリゲートではありません。
error C2039: 'x' : 'CSize' のメンバではありません。
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atltypes.h(26) : 'CSize' の宣言を確認してください。
error C2039: 'y' : 'CSize' のメンバではありません。
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atltypes.h(26) : 'CSize' の宣言を確認してください。
error C2552: 'CLIENT_SIZE' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2552: 'g_tp' : 初期化子リストによる個別の識別子の初期化に誤りがあります。
error C2039: 'x' : 'CSize' のメンバではありません。
error C2039: 'y' : 'CSize' のメンバではありません。」

ちなみに、課題は授業で作ったMFCアニメーションデータを改変し、マウスクリックで
キャラクターを自由に移動させるようにしろというものです。
なので、onDrawなどの関数やその他のものはそろっています。
キャラクターを上下左右に動かす方法は分かるのですが、
クリックされた場所に動かすという記述方法が分からなくて困っています(´・ω・`)


82 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:56:29 ]
まさかとは思うが、お前馬鹿だろw

83 名前: ◆TQgM1tAAxo [2008/02/09(土) 00:04:35 ]
>>82
下にキャラクターが進むときはOnTimerに
y+=10;(yはキャラクターのいるy座標値)
と記述すればうごくのですが、クリックしたとこにうごかすのがどうしてもできなくて・・(´・ω・`)
スムーズに動かず、いっきにクリックした位置に移動してしまったりの失敗の繰り返しです(´・ω・`)

どうしたら良いでしょうか?
ほんと頭悪くてすいません(´・ω・`)

84 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:04:57 ]
>>81
キャラクターをクリックされた場所に動かすという記述方法は分かるのですが、
onDrawなどの関数やその他のものが分からなくて困っています(´・ω・`)

85 名前: ◆TQgM1tAAxo [2008/02/09(土) 00:09:43 ]
>>84
どういうことですか?(´・ω・`)
どうしたら良いのでしょうか?(´・ω・`)

86 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:13:45 ]
一挙手一投足、全て教わらないとできないなら、最早他人から教えてもらう必要なんてないだろ。



87 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:18:33 ]
>>50
BAckermann関数
キャッシュのやつを作ってみたので一応添付
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6022.txt

ショートカットを加えると確保領域が少なくすむのは何故なんだろ・・・・

88 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:28:13 ]
昨日59を書いたものだが、まさかこんな事になってるとは…
OnLButtonUpとOnTimerに書くべき記述を答えれば良いだけじゃなかったのか
DELAYの値をもっと大きくしてみろ
もしくは
int OnTimer(UINT nIDEvent)
{
if (TIMER_ID == nIDEvent)
{
//X軸方向の移動
if (g_cp.x < g_tp.x) {g_cp.x++;}
else if (g_cp.x > g_tp.x) {g_cp.x--;}

//Y軸方向の移動
if (g_cp.y < g_tp.y) {g_cp.y++;}
else if (g_cp.y > g_tp.y) {g_cp.y++;}
}
}
で代替。コピペじゃなくて自分で打つように
あと、タイマーイベントの間隔を遅めにしてくれ
ちなみに、cp=キャラクターポジション、tp=ターゲットポジションの略ね

OnTimerとかってMFCのパーツだよな?使ってないからサッパリ思い出せんw

89 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:46:43 ]
>>88
それを>>58が理解できると思うか?
またエラーが出るって言ってくるのがオチだろ。

90 名前: ◆TQgM1tAAxo [2008/02/09(土) 05:43:14 ]
>>88
丁寧にありがとうございます!でも、もう一回考えて、ちょっと違う方法ですが自分で解決しました。
どうもありがとうございます

>>89
考えたらできたわ

91 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:38:03 ]
最初から考えろ馬鹿。

92 名前:デフォルトの名無しさん [2008/02/09(土) 12:29:51 ]
すいません。 教えて下さい。

0x1234を0x123fにするには (28) と (29) を行う。その演算子の
記号は (30) である。 また、上位1バイトを0にし、下位1バイトをそのままに
するには、 (31) と (32) を行う。その演算子の記号は (33) である。
ビットを反転するには、 (34) と排他的論理和を行うか、ビット演算子の反転
を使用する。そのビット演算子(反転)の記号は (35) である。

(28)の解答群
ア 0x0000 イ 0x000F ウ 0x1230 エ 0xfff0 オ 0xffff

(29)、(32)の解答群
ア 論理和 イ 論理積 ウ 排他的論理和 エ 否定論理和 オ 否定論理積

(30)、(33)、(35)の解答群
ア & イ | ウ ^ エ ~ オ !

(31)の解答群
ア 0x0001 イ 0x000f ウ 0x00ff エ 0xf000 オ 0xff00

(34)の解答群
ア 0x0000 イ 0x0001 ウ 0x1111 エ 0x1010 オ 0xffff



93 名前:デフォルトの名無しさん [2008/02/09(土) 12:30:33 ]
キャスト演算子は、式の結果を一時的に指定したデータ型に変更するものである。例
えば、double型の変数aの小数点以下を切り捨てるには、 (36) と記述する。
キャスト演算子は (37) であり、算術演算子より優先順位が (38)
ため、int型の変数a、bの除算を実数の精度で計算し、その結果をdouble型の変数c
に格納する記述は (39) である。
また、キャスト変換はポインタにも有効であり、int型の配列の内容を1バイトずつ
参照することができる。
なお、次のプログラムの出力結果は処理系によって異なる場合があるが、本問では考
慮しないものとする。

#include <stdio.h>
main()
{
int a[] = {0x01020304, 0x05060708};
int i;
char *p;

p = (40) ;
for (i = 1;i <= 8; i++)
printf(゙%x゙,*p++);
}


94 名前:デフォルトの名無しさん [2008/02/09(土) 12:31:51 ]

(36)の解答群
ア int a イ int (a) ウ (int a) エ (int) a オ a(int)
(37)の解答群
ア 単項演算子 イ 関係演算子 ウ 比較演算子 エ 論理演算子 オ 条件演算子
(38)の解答群
ア 高い イ 低い
(39)の解答群
ア c = a / b イ (double)c = a / b ウ c = (double)a / b エ c = (double)(a / b)
(40)の解答群
ア char a イ char *a ウ (char) a エ (char) *a オ (char *) a


95 名前:デフォルトの名無しさん [2008/02/09(土) 12:32:22 ]
文が見づらくてすいません。m(_ _)m

どなたか解答をお願いいたします。


96 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:35:15 ]
>>95
ttp://pc11.2ch.net/test/read.cgi/tech/1201083176/808



97 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:58:33 ]
すいませんが、>>74に答えていただけませんか?

98 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:17:07 ]
>>97
・yearとmonthを入力できるようにする。
・1日の曜日を求める。

99 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:29:41 ]
>>98
ありがとうございます。えっと、つまり…どの部分をどう変えればいいんでしょうか…orz

100 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:35:24 ]
>>99
int year = 2008;
int month = 2;
int first_dow = 5; /* 1日は金曜日 */
を変えればいい。
year, monthはそれぞれscanf()か何かで入力すればいいし、first_dowは問題に書いてある通り。
>(課題では,前回のプログラムを使って1日の曜日を計算する)
つまり、「前回のプログラム」がないと作れない。

101 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:37:59 ]
>>100の優しさに発情した

102 名前:デフォルトの名無しさん [2008/02/09(土) 13:55:43 ]
ありがとうございます。
すいません これもできれば...

問?
関数定義に関する次の記述中の()に入れる適切な字句を解答群の中か
ら選べ。なお、同じ解答を複数回使用してもよい。

関数の基本構成は次のようになっている。

記憶クラス 型 関数名(引数の型と名前)
{
宣言と文
}

関数の記憶クラスには、その関数をほかのモジュールから参照できる (1) 、
その関数をほかのモジュールから参照できない (2) があり、特に指定しない場
合は (3) になる。
関数の型は、その関数が (4) 文で戻すデータの型である。また、特殊な型と
して (5) があり、戻り値をもたないことを示す。型が (6) の戻り値
を使用する場合には、省略することができる。
関数でデータのやりとりをするには引数を用いる。関数の定義側の変数を
(7) と呼び、この関数を呼びだす側の引数を (8) と呼ぶ。

(1)〜(3)、(5) (6)の解答群
ア char イ extern ウ int エ static オ void
(4)の解答群
ア break イ continue ウ exit エ goto オ return
(7) (8)の解答群
ア 定数 イ 仮引数 ウ 元引数 エ 実引数 オ ポインタ変数


103 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:04:51 ]
>>102
(1)extern
(2)static
(3)extern
(4)return
(5)void
(6)int
(7)仮引数
(8)実引数

104 名前:デフォルトの名無しさん [2008/02/09(土) 14:06:27 ]
問?
ファイル入出力に関する次の記述の正誤を、解答群の中から選べ。

(9) fopen関数のエラー時の戻り値は NULL である。
(10) ファイルのオープンモードを ゙a゙ (追加書き込み)と指定した場合、ファイルが存
在しない場合はエラーとなる。
(11) プログラム中に fopen関数を使用した場合、 fclose関数を記述していないとコ
ンパイルエラーが発生する。
(12) fscanf関数のエラー時の戻り値は NULL である。
(13) fgets関数のファイル終了時の戻り値は EOF である。
(14) fgets関数は読み込んだ文字列の最後に ゙\0゙ を付加する。
(15) fgetc関数及びgetc関数は、ファイルから1文字ずつ読み込む。
(16) ungetc関数はファイルから読み込んだ文字を、まだ読んでいなかったものとし
て扱う。

解答群
ア 正しい イ 誤り



105 名前:デフォルトの名無しさん [2008/02/09(土) 14:08:55 ]
どなたか 問7 問8の解答を教えていただけると ありがたいのですが..



106 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:11:01 ]
>>104
(9) ○ (10) (多分)× (11) × (12) (0がNULLと同等に扱えるから)○
(13) × (14) ○ (15) ○ (16) (なんか表現が微妙だが)○



107 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:15:39 ]
>>106
(12) について
fscanf は入力エラーのとき EOF を返す

108 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:15:48 ]
ungetcはストリームに戻すというイメージがある

109 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:36:44 ]
>>100
ありがとうございます!!本当に助かりました!

110 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:40:35 ]
{
*buffer = '0' + ((char)(data >> 8) & 0x0F);
if(((data >> 8) & 0x0F) > 9)
*buffer += 7;
buffer++;
*buffer = '0' + ((char)(data>>4) & 0x0F);
if(((data>>4) & 0x0F) > 9)
*buffer += 7;
*buffer++;
*buffer = '0' + ((char)data & 0x0F);
if((data & 0x0F) > 9)
*buffer += 7;
}
これは、10ビットバイナリ値を3桁の16進数へ変換するらしいのですが
これを4桁の10進数にするには、どのように書けば良いのでしょうか。
cは全くの初心者で、本来はで基礎から勉強すれば良いのですが、すぐに
この部分だけのソースが欲しいのです。だれか、お助けください。

111 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:46:49 ]
>>110
sprintf(buffer, "%04d", data);

112 名前:110 mailto:sage [2008/02/09(土) 14:55:51 ]
>>111
ありがとうございます。こんな早く対応して頂けるなんて感謝です。
おかげさまで4桁の数字が表示されました。

ただ、プログラム全体としては、桁が増えた分動かなくなってしまいました。
もう少し、頑張ってみます。
今後とも、どうぞよろしくお願いします。

113 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:55:58 ]
>>110
{
int i;
for (i = 12; i >= 0; i -= 4)
*buffer++ = "0123456789ABCDEF"[(data >> i) & 15];
}

114 名前:デフォルトの名無しさん [2008/02/09(土) 14:56:41 ]
問7

プログラムの説明

このプログラムの目的は、コマンドラインより入力されたビット列を15ビットごとに
パリティビットを付加し、16進数で表示することである。
コマンドラインから渡される引数には、ビット列のほかに偶数パリティ、奇数パリティ
を選択するパラメータがある。
ビット列は255ビット以内の任意の長さであり、15ビットの倍数に満たない場合は、
足りないビットには0を挿入する。
なお、コマンドラインの入力に間違いはないものとする。

コマンドラインの書式

プログラム△ビット列(任意の長さ)△パリティの指定



115 名前:デフォルトの名無しさん [2008/02/09(土) 14:59:55 ]
パリティの指定
0 偶数パリティ
1 奇数パリティ

※「△」は1文字以上の空白文字を示す。

コマンドラインの例 (プログラム名が「toi7」の場合)
toi7 0101001100101010001010010010101011010 0

処理手順
@ コマンドラインより渡されたビット列を配列にコピーする。
A 配列に格納された文字列を、先頭から1文字ずつ取り出し以下の処理を行う。
・取り出した文字(ビット)の1の個数をカウントする。
・15ビットの数値に変換するために、変換後の数値を左に1ビットシフトし、数値
に変換した文字(ビット)とのビット演算を行う。
B15文字ごとに以下の処理を行う。
・変換後の数値を左に1ビットシフトする。なお、ビット列が15文字に満たない場合は、足りない分左にシフトする。
・カウントした1の個数から、パリティビットを付加する。偶数パリティであれば
1の個数が偶数になるように、奇数パリティであれば奇数になるようにパリティ
ビットを付加する。
・パリティビットを付加した変換後の数値を16進数で表示する。


116 名前:110 mailto:sage [2008/02/09(土) 15:08:17 ]
>>113
ありがとうございます。 4桁の数字が、ちゃんと表示されました。
ただ、10進数の表示をしたいのですが英字まで表示されてしまいます。
引き続き、アドバイス頂けた助かります。
ほんと、すみません。



117 名前:デフォルトの名無しさん [2008/02/09(土) 15:18:50 ]
実行結果 (プログラム名が「toi7」の場合)
C:\>toi7 0101001100101010001010010010101010010 0
532B
1495
A401
※「C:\>」はコマンドプロンプトを示す。



118 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:22:36 ]
>>117
#include <stdio.h>

int str2bit(char *str, char *pal, int , int);

int main(int argc, char **argv)
{
int i = 0;
int cnt = 0;
int hyoji = 0;
int res = 0;
char array[256];

memset(array, 0, sizeof(array));
memcpy(array, argv[1], strlen(argv[1]));

for ( i = 0 ; i < strlen(array); i++ ) {
if ( i && !(i % 15) ) { /* 区切り */
/* bit化 */
res = str2bit(array, argv[2]
, hyoji * 15, strlen(array));
fprintf(stdout, "0x%4x\n", res);
hyoji++;
}
}
res = str2bit(array, argv[2], hyoji * 15, strlen(array));
fprintf(stdout, "0x%4x\n", res);

return 0;
}


119 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:24:15 ]
>>118の続き
int str2bit(char *str, char *pal, int cur, int max)
{
int res = 0;
int i = 0;
int cnt =0;
char t_byte[16+1];

memset(t_byte, 0, sizeof(t_byte));

for ( i = 0; i < 15; i++ ) {
t_byte[i] = ( cur + i >= max ) ? '0' : str[cur + i];
if ( t_byte[i] == '1' ) {
cnt++;
res += 1;
}
res <<= 1;
}

if ( *pal == '0' ) { /* 偶数パリティ */
if ( cnt % 2 )
res++;
} else { /* 奇数パリティ */
if ( !(cnt % 2 ) )
res++;
}
return res;
}
できたから載せただけ。

120 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:29:45 ]
>>119
特定しましたよ。

121 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:34:26 ]
>>120
何を特定できた??

122 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:36:01 ]
>>115 入力チェックは一切していない
#include<stdio.h>

void encode(char *bits, int parity)
{
unsigned short value=0;
int i, bitnum=0;

for(i=0;bits[i];i++)
{
value=(value<<1)+bits[i]-'0';
bitnum+=value&1;
if((i+1)%15==0)
{
printf("%04X\n", (value<<1)+((bitnum+parity)&1));
value=0;
bitnum=0;
}
}
if((i%15))
{
value<<=(15-(i%15));
printf("%04X\n", (value<<1)+((bitnum+parity)&1));
}
}

int main(int argc, char *argv[])
{
if(argc==3) encode(argv[1], atoi(argv[2]));

return 0;
}

123 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:43:15 ]
[1] 授業単元:プログラミング入門演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6023.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: (2月12日まで)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

プログラムの一部 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6024.txt

コンパイルできてもセグメントエラーorz どなたかお願いします。



124 名前:110 mailto:sage [2008/02/09(土) 17:59:53 ]
{
int i;
for (i = 12; i >= 0; i -= 4)
*buffer++ = "0123456789"[(data >> i) & 9];
}

アドバイスいただいた、プログラムを10進数表示させようと上のように書き換えたのですが
このように書くと0189しか表示されません。
こんな簡単な奴ふざけるなと思わせてしまって申し訳ないのですが
どうか、教えていただけないのでしょうか。
初心者のスレかくのが本来ですが、マルチぽくなるのでこのまますみません。

125 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:14:58 ]
>>124
data>>iで済むのは16進数だからであって、
10進数で同じ方法は考えないほうがいい。

126 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:20:09 ]
>>124
{
unsigned tmp;
for(tmp=1000;tmp>0;tmp/=10)
{
*buffer++=((data/tmp)%10)+'0';
}
}



127 名前:110 mailto:sage [2008/02/09(土) 18:37:44 ]
>>125>>126

アドバイスありがとうございます。無事に動作するようになりました。
ASMを勉強していてASMでの書式など有る程度把握出来てきたのですが
c言語は、書式がまるっきり分からず困っていました。
c言語は生活に十分必要な物だと思いますのでこれを機に勉強をしようとおもいます。

とても困っていたので、ほんと感謝の気持ちでいっぱいです。
ありがとうございました。

128 名前:デフォルトの名無しさん [2008/02/09(土) 19:32:03 ]
>>117の続き

プログラム

/*パリティビットの生成*/
#include <stdio.h>
#include <string.h>

main(int argc,char *argv[])
{
char dum[256];
int num,cnt;
int i = 0,j;

(41) ;
while(dum[i] != `\0`){
num = cnt = 0; for(j=0;j<15 && dum[i] != `\0`;j++){
(42) ;
num <<= 1;
(43);
}
for (;j < 16; j++)
num <<= 1;
if ( (44) == (1 ー ( (45) ー '0')))
num |= 1;
printf("%x\n",num);
}
}







[ 続きを読む ] / [ 携帯版 ]

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

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