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

このエントリーをはてなブックマークに追加
952947:2010/05/24(月) 23:19:13
>>950
thx しかし専門書は高いな
953デフォルトの名無しさん:2010/05/25(火) 02:54:06
しかし、お疲れ様。
954デフォルトの名無しさん:2010/05/25(火) 09:41:31
プログラミングじゃないんですが、どこに書けばいいのかわからなかったので、スレチならすみません。

(1)4Byte machineでDouble PrecisionのReal Numberは何桁まであらわされるのかMemoryのStructureから計算せよ。
(2)4Byte machineでDouble PrecisionのReal Numberの計算でOverflow,Underflowのエラーが出た時,それぞれどのような大きさの計算でエラーが起こったのかMemoryのStructureから理論的に説明せよ。

お願いします。
955デフォルトの名無しさん:2010/05/25(火) 12:31:04
"4Byte machine" から意味がわからん。 "MemoryのStructureから" っていうのも謎。
956デフォルトの名無しさん:2010/05/25(火) 12:45:25
倍精度は 64 ビットでいいですかね。(IEEE754)
仮数部は 52ビット + 1 = 53 ビット相当で表現されるから
2^53 = 10^15.95すなわち 少なくとも10進16桁まで表現できる。
957デフォルトの名無しさん:2010/05/25(火) 13:13:33
最大数を10進数表示したときの桁数を聞かれてるんじゃないのかなあ
958デフォルトの名無しさん:2010/05/25(火) 13:17:27
>>861全部のコードを書いていただけませんか?
959デフォルトの名無しさん:2010/05/25(火) 14:54:03
>>958
関数を作れって問題なんだから>>861だけでいいだろ
960デフォルトの名無しさん:2010/05/25(火) 15:48:07
#include <stdio.h>
14
15 unsigned DtoB(int a)
16 {
17 unsigned x=1,ans=0,k=1;
18 while(a>0)
19 {
20 if(x & a) ans += k;
21 a = a >> 1;
22 k*=10;
23 }
24 return ans;
25 }
26
27 int main()
28 {
29 int a;
30
31 do{
32 scanf("%d",&a);
33 printf("Input a: (%d) \n",a);
34 }while(a < 0);
35
36 printf("a(decimal)=%d\n",a);
37 printf("a(binary)=%u\n",DtoB(a));
38
39 return 0;
40 }
このプログラムに注釈つけてください
961デフォルトの名無しさん:2010/05/25(火) 16:14:46
958 :デフォルトの名無しさん :2010/05/25(火) 13:17:27
>>861全部のコードを書いていただけませんか?
>>958
>>858 をお忘れなく
962 ◆dHgBvcqH3c :2010/05/25(火) 16:39:34
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):キューを用いて木の幅優先探索を行うプログラムを作成する
ttp://water.eit.hirosaki-u.ac.jp/~slmizu/pa2010/queue_tree.png
ttp://water.eit.hirosaki-u.ac.jp/~slmizu/pa2010/kadai05.html
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:2010年5月31日まで


よろしくおねがいします
963デフォルトの名無しさん:2010/05/25(火) 17:12:47
>>962
http://codepad.org/o7Y8nJj2

水田先生にチクっちゃうぞ☆
964「水田です」:2010/05/25(火) 17:23:50
#include <stdio.h>

/* a を1/2する毎に、k を10倍の値にする      */
/* a の最下位ビットが 1 の場合、ans に k を足す */
unsigned DtoB(int a) // 関数の入力仮引数は、整数の a である。
{
  unsigned x=1,ans=0,k=1;
  while(a>0) // a が正の数の間繰り返す
  {
    if(x & a) // a の最下位ビットが 1 の場合
      ans += k; // ans に k を足す
    a = a >> 1; // a を2で割る
    k *= 10; // k を10倍する
  }
  return ans; // DtoB() の戻り値は ans
}

int main()
{
  int a; // 整数型の変数 a を定義

  do{
    scanf("%d",&a); // a の入力
    printf("Input a: (%d) \n",a); // 入力した a の出力
  }while(a < 0); // a が負の数の間は繰り返す

  printf("a(decimal)=%d\n",a); // 10進数での a の表示
  printf("a(binary)=%u\n",DtoB(a)); // 2進数での a の表示

  return 0; // main() の戻り値
}
965デフォルトの名無しさん:2010/05/25(火) 18:12:15
>>961
要件満たしてないからどうでもいい
966「水田です」:2010/05/25(火) 18:59:44
条件
printf("行列AとベクトルBの積は次の通りです\n");
linear_trans(a, b, c);
for ( i = 0 ; i < COLUMN ; i++)
  printf("%8.3f\n", c[i]);
967デフォルトの名無しさん:2010/05/25(火) 19:03:38
>>966
なんで質問者を刺戟する様な名前をわざわざ使うの?
質問しづらくなるだろ。
968デフォルトの名無しさん:2010/05/25(火) 21:11:29
>>962が無防備すぎてつい
それに回答する側としては質問しづらくなっても関係ないしなあ
969デフォルトの名無しさん:2010/05/25(火) 21:14:37
なんという自分勝手

でも質問者ももう少しひねって出して…
970デフォルトの名無しさん:2010/05/25(火) 21:48:34
>>967
質問スレじゃないから。
971954:2010/05/25(火) 22:31:54
>>956>>957
ありがとうございます。
いろいろな人に聞いたのですが,>>956がどうもあってるみたいです。
>>957はその10進法であらわした数字を超えたらoverflowってことですかね?
972デフォルトの名無しさん:2010/05/25(火) 22:58:19
>>959
すみません、全部のコードを知りたいのです。もちろん、>>855の条件を使って…
973デフォルトの名無しさん:2010/05/25(火) 23:15:54
スレを最初から最後まで読めば全部だと思う。
974デフォルトの名無しさん:2010/05/25(火) 23:44:19
>>972
この関数を使って正しく動作するものを作ってみなさい、とでも先生に言われたの?
975デフォルトの名無しさん:2010/05/26(水) 00:06:01
976デフォルトの名無しさん:2010/05/26(水) 00:09:54
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10619.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10620.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:cpad for borland c++compiler
 [3.3] 言語:C

よろしくお願いします。
977975 ◆QZaw55cn4c :2010/05/26(水) 00:26:36
>>921
http://codepad.org/OVk5XcXl
便乗で質問なんですが、
コピーコンストラクタを
Matrix &Matrix::operator=(const Matrix &a) { }
とするとコンパイルできるのですが、教科書のとおりに
Matrix &Matrix::operator=(Matrix &a) { }
とすると、
Matrix::operator=(Matrix) に一致するものがみつからない(BCC32)
というエラーがでてコンパイルできません。
どうしてなのでしょうか
978デフォルトの名無しさん:2010/05/26(水) 01:19:22
>>977
それ、コピーコンストラクタじゃなくてコピー代入演算子。
で、エラーになるのはテンポラリで非 const 参照を初期化できないという規則があるから。
979デフォルトの名無しさん:2010/05/26(水) 04:13:40
>>974
はい、そうです…。よろしくお願いしますm(__)m
980デフォルトの名無しさん:2010/05/26(水) 06:41:10
こんなんで、いいのかひ?

#include<stdio.h>
void linear_trans(double matA [2][2], double vecx[2], double vecy[2])
{
  vecy[0] = matA[0][0] * vecx[0] + matA[0][1] * vecx[1];
  vecy[1] = matA[1][0] * vecx[0] + matA[1][1] * vecx[1];
}
int main()
{
  double matA [2][2], vecx[2], vecy[2];
  printf("input matA [0][0]:");
  scanf("%lf",&matA[0][0]);
  printf("input matA [0][1]:");
  scanf("%lf",&matA[0][1]);
  printf("input matA [1][0]:");
  scanf("%lf",&matA[1][0]);
  printf("input matA [1][1]:");
  scanf("%lf",&matA[1][1]);
  printf("input vecx [0]:");
  scanf("%lf",&vecx[0]);
  printf("input vecx [1]:");
  scanf("%lf",&vecx[1]);
  linear_trans(matA, vecx, vecy);
  printf("vecy[0]=%lf\n",vecy[0]);
  printf("vecy[1]=%lf\n",vecy[1]);
  return 0;
}
981デフォルトの名無しさん:2010/05/26(水) 07:44:36
次スレ立てます
982デフォルトの名無しさん:2010/05/26(水) 07:45:46 BE:340816166-S★(522522)
次スレ立てました
C/C++の宿題片付けます 136代目
http://pc12.2ch.net/test/read.cgi/tech/1274827528/
983デフォルトの名無しさん:2010/05/26(水) 07:50:27
■■■■■■■■
 ■■■■■■■■
■■■■■■■■
984デフォルトの名無しさん:2010/05/26(水) 09:31:30
[1] 授業単元:
[2] 問題文 キーボードから読み込んだ整数のうちの偶数の和の計算を続け、もし2回連続して奇数が読み込まれたら、それ以降は奇数のみの和の計算に切り替える。
そして、次に偶数もしくは奇数が2回連続して読み込まれたら、読み込みを中止して偶数の和と奇数の和を表示させる。


[3] 環境
 [3.1] OS: Mac
 [3.2] コンパイラ名とバージョン: cc
 [3.3] 言語: C
[4] 期限: 5月27日 
985デフォルトの名無しさん:2010/05/26(水) 09:34:31
984の者です。 間違えて送信してしまったので追記します。
その他の制限: do whileまでしか教えてもらってないのでそれでお願いできますか
986デフォルトの名無しさん:2010/05/26(水) 11:21:08
987デフォルトの名無しさん:2010/05/26(水) 12:48:52
From: [758] デフォルトの名無しさん <sage> Date: 2010/05/26(水) 09:29:56
[1] 授業単元:プログラミング基礎
[2] 問題文 キーボードから読み込んだ整数のうちの偶数の和の計算を続け、もし2回連続して奇数が読み込まれたら、それ以降は奇数のみの和の計算に切り替える。
そして、次に偶数もしくは奇数が2回連続して読み込まれたら、読み込みを中止して偶数の和と奇数の和を表示させる。

From: [759] デフォルトの名無しさん <sage> Date: 2010/05/26(水) 09:31:06
>>758
宿題スレでやれ

From: [760] デフォルトの名無しさん <sage> Date: 2010/05/26(水) 09:59:31
宿題はスルーでお願いします

From: [761] デフォルトの名無しさん <sage>Date: 2010/05/26(水) 11:32:25
>>759
>>760
あ、わからないんだったら、無理して答えなくていいから

From: [762] デフォルトの名無しさん <sage>Date: 2010/05/26(水) 12:11:23

誰か答えられる賢い人いない?
>>759>>760は引き続き黙ってていいから
988デフォルトの名無しさん:2010/05/26(水) 13:28:27
あらあら。向こうで時間みてびっくりしたの俺だけど、転載乙
989デフォルトの名無しさん:2010/05/26(水) 22:52:08
[1] 授業単元:プログラミング演習
[2] 問題文 :
1.テキストファイル(file,txt)を読み込み、 goodという単語すべてをbadに置換し、filea.txtに出力せよ
2.テキストファイル(file,txt)を読み込み、文字数の多い行から順に並べかえてfileb.txtに出力せよ
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: 5月27日 

お願いします
990デフォルトの名無しさん:2010/05/26(水) 23:39:28
失礼します。 行列の積を計算するプログラムのコードを提出という課題が学校で出たのですが
自分は以下のように書いたのですが、何度実行しても出力されてくる数字が間違っているのですが
どこがおかしいのでしょうか????
#include<stdio.h>
int main (void)
{ int i,j,k,n;
int a[10][10],b[10][10],c[10][10];
printf("n (n<=10) の値を入力して下さい。\n");
scanf("%d",&n);
for(i=1;i<=n;i++) { for(j=1;j<=n;j++) {
printf("行列aの%d行%d列の値を入力して下さい。\n",i,j);scanf("%d",&a[i-1][j-1]);}}
for(i=1;i<=n;i++) { for(j=1;j<=n;j++) {
printf("行列bの%d行%d列の値を入力して下さい。\n",i,j);scanf("%d",&b[i-1][j-1]);} }
for(i=0;i<=n;i++) { for(j=0;j<=n;j++) { for(k=0;k<=n;k++){
c[i][j] += a[i][k] * b[k][j];}}}
for(i=0;i<=n;i++){for(j=0;j<=n;j++){
printf("c[%d][%d] = %d\n",i,j,c[i][j]);}}
return 0;
}
991デフォルトの名無しさん:2010/05/26(水) 23:51:52
>>979
へぇ。大変だね。
回答に加えていくつかツッコミ入れたけどそれに対してノーリアクションだったなぁ、と思うのと、
多分そのツッコミ部分を理解しているかどうかを確認する為にその出題されたんだろうね。

スルーせずに先生に突っ込みを先に入れていれば勝てた勝負なのにな。
992デフォルトの名無しさん:2010/05/27(木) 00:01:15
>>990
初期化してないのと添え字がオーバーしてた
http://codepad.org/ZsuxxDc6
993デフォルトの名無しさん:2010/05/27(木) 01:00:47
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク):
・文字列 computer を、ポインタを用いて大文字で表示するプログラムを作成せよ
・文字列 ABCD を変数に代入し、ポインタを用いて次のように表示するプログラムを作れ
ABCD
BCD
CD
D
[3] 環境
[3.1] OS:win vista
[3.2] コンパイラ名とバージョン:VB 2008
[3.3] 言語:C
[4] 期限: [2010年5月28日まで]
[5] その他の制限:なし

よろしくお願いします
994デフォルトの名無しさん:2010/05/27(木) 01:13:12
995デフォルトの名無しさん:2010/05/27(木) 01:17:17
996 ◆QZaw55cn4c :2010/05/27(木) 02:08:50
997デフォルトの名無しさん:2010/05/27(木) 02:59:24
>>978
ありがとうございます。
998 ◆QZaw55cn4c :2010/05/27(木) 04:03:07
>>921
http://codepad.org/UubGjRqS
引数なしのコンストラクタを使えるようにしました。
999デフォルトの名無しさん:2010/05/27(木) 10:15:28
行列の積 最近はやってるのか。
>>855
>>921
>>990
1000デフォルトの名無しさん:2010/05/27(木) 11:22:39
続く

C/C++の宿題片付けます 136代目
http://pc12.2ch.net/test/read.cgi/tech/1274926862/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。