トップページ⇒tech
1001コメント319KB

ぼるじょあがC/C++の宿題を片づけますYO! 31代目

レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー 久しぶりに戻ってきたC++房のぼるじょあですYO!
わからない宿題を片づけますYO!

【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
 問題文などの省きはやめ、全文を書きましょう。

・使用する言語(C/C++)や環境(CUI/ANSIとか
 GUI/Windows32bitAPI など)は必ず書きましょう。

・計算問題は必ず数式自体をあげ、どのような計算をするのか
 くわしく説明してください。

・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。

・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

【歴代スレは>>2-13】
0002デフォルトの名無しさんNGNG
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
0003デフォルトの名無しさんNGNG
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0004デフォルトの名無しさんNGNG
0005デフォルトの名無しさんNGNG
>>1
ぼるじょあイラネ
0006デフォルトの名無しさんNGNG
>>5
お前がイラネ
0007デフォルトの名無しさんNGNG
>>1
ぼるじょあイラネ
0008ぼるじょあ ◆yBEncckFOU NGNG
(;3;)エェー
0009デフォルトの名無しさんNGNG
0010ぼるじょあ ◆yBEncckFOU NGNG
>>1 よくやったYO!
0011デフォルトの名無しさんNGNG
>>1
本当に解いてもらえるんでしょうか?
0012デフォルトの名無しさんNGNG
>>11
歴代スレを見ろ
0013デフォルトの名無しさんNGNG
ああんもうぼるじょあさんかわいい
0014デフォルトの名無しさんNGNG
0015デフォルトの名無しさんNGNG
とっとと宿題もってこいや
0016デフォルトの名無しさんNGNG
ネタスレだしな
0017デフォルトの名無しさんNGNG
ここは静かなインターネッツですね。
0018デフォルトの名無しさんNGNG
あーもう前スレで1000とりそこねたー
0019デフォルトの名無しさんNGNG
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int OPPAI_ERO(int b)
{

int SEX 11072;

srad(time(NULL));

while(1){
b=rand()%20000+1;
if(SEX==b){
printf("めっちゃエロス\n");
break;
}
}
return 0;
}
0020デフォルトの名無しさんNGNG
・・・ここはネタスレという事に決定?
0021デフォルトの名無しさんNGNG
本スレにしようよ。
ネタはお控え。
0022デフォルトの名無しさんNGNG
・クイックソートを高速化する場合、部分数列の長さが10から20程度以下のときは挿入方を併用するとよいことが指摘されている(テキストP205)。
そこで下のデータ系列を100個程度の乱数とし、部分数列の長さが10以下になったときに挿入方を併用するプログラムをかきなさい

なにをいってるのかサパーリ
0023デフォルトの名無しさんNGNG
>>22
何故ネタスレにしたがるかな
スレタイ気に入らなかったら自分で立てろよ
0024デフォルトの名無しさんNGNG
>>23
誤爆? >>20にレスしたんだよな?
0025デフォルトの名無しさんNGNG
>>24
ちゃんと22にレスアンカー付けただろ
0026デフォルトの名無しさんNGNG
>>22
クイックソートは配列を並べ替えてから分割し、その分割された配列を並べ替えて分割し・・・と再帰的に繰り返してソートする。
で、その分割された配列の大きさがある程度小さくなったら(ここでは10以下)クイックソートではなく挿入ソートを使う。

ということ。
0027デフォルトの名無しさんNGNG
>>25
だから誤爆か?と聞いたんだよ。
誤爆じゃないみたいだな。
>>22のどこがネタだよ。
0028デフォルトの名無しさんNGNG
ネタだな
0029デフォルトの名無しさんNGNG
>>27
オレのテキストP205にはそんな事書いてない
大体何のテキストだよ。どこがC/C++だ?無意味に上げまくるお前もネタか
0030デフォルトの名無しさんNGNG
>>29
> どこがC/C++だ?

あ、なるほど。
でもスレ違いなだけでネタかどうかわからないよ。
ちなみにsageは嫌いなんで。
003122NGNG
みなさん冷たい・・・
0032デフォルトの名無しさんNGNG
>>31
おいコラ
レスあるのに冷たいだと?この野郎
50回ほど氏んでこい
0033デフォルトの名無しさんNGNG
・・・ダメだこりゃ
0034デフォルトの名無しさんNGNG
>>22
ちょいと待ちな
0035デフォルトの名無しさんNGNG
すんませ〜ん。ちょっとお願いなんですが、
http://www1.kcn.ne.jp/~robe/cpphtml/index.html
ココのサイトのソースを読んでもらえませんか?
KMP法についてなんですけど、ちゃんと動作しなんですよ。
エラーはでなくて、問題なく動くことは動くんですけど、配列[1]目以降を検索対象にすると、
検索が出来なくなるんですよ。
で、間違っているのなら、その正しいソースを教えて頂きのです。
それが無理なら、KMPについてわかりやすく解説しているサイトを教えて頂きたいです。

ちなみに、他のスレに行ったら、宿題は取り扱っていないと言われ、ココにきました。
よろしくお願いします
0036デフォルトの名無しさんNGNG
>>35
ここのサイトの著者にメールしろ
0037デフォルトの名無しさんNGNG
C++教室とやらの尻拭いまでするのもいかがなものかと思うよな
0038デフォルトの名無しさんNGNG
>>36
それもしようかと、思ったんですが、
前にメールしたら返ってこなかったんですよね。
なので、お願いできませんか??
0039デフォルトの名無しさんNGNG
>>38
著者も相手にしたくない人を誰が相手にするの?wwww
0040デフォルトの名無しさんNGNG
<<39
プゲラ
0041デフォルトの名無しさんNGNG
宿題で無く申し訳ないですが、
良ければ教えていただけないでしょうか?

'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。

というようなメッセージがビルドを行うとデバックメッセージに表示されます。
このシンボルが読み込まれていません。という表記がいまいち掴めません。

メッセージは無視すればよいのでしょうか?
解決する方法がありましたら教えて頂ければ幸いです。

失礼します。
0042デフォルトの名無しさんNGNG
>>41
スレくらい選べ
004341NGNG
すみません。
0044デフォルトの名無しさんNGNG
>>39
あなたには人に教える事が好きでココに来てるんじゃないんですね。
なら、あなたはココにいる必要はないと思います。
それとも、あなたにはわからない事がない天才さんですか?
0045デフォルトの名無しさんNGNG
>>44
あなたにはわからない事がない天才さんですか?
0046デフォルトの名無しさんNGNG
>>44
いくら宿題スレでも開き直りの馬鹿は要りません。出て行け(゚∀゚)アヒャヒャヒャヒャ
0047デフォルトの名無しさんNGNG
>>44
ここはぼるじょあが宿題を片付けるスレだからな
ぼるじょあ以外は回答する権利無いんだよ
0048デフォルトの名無しさんNGNG
基本式
Y=((x/5)+f*x)*U/x
Uを0から10まで0.1ずつ変化させて
さらにfを0〜100000まで変化させてYの値が最高値になるfであるfmaxを見つける
結果は
U    Zの最高値   Zが最高値になったときのf
0 ********* *********
0.1 ********* *********
0.2 ********* *********
みたいなかんじで出力します


この問題をどなたかよろしくお願いします。
0049デフォルトの名無しさんNGNG
>結果は
>U    Zの最高値   Zが最高値になったときのf
>0     *********    *********
>0.1     *********    *********
>0.2     *********    *********

訂正です
半角スペースは2つならべるときえるのか。
0050デフォルトの名無しさんNGNG
>>48
手始めに、Zの計算式を教えてもらおうか。
0051デフォルトの名無しさんNGNG
ぐお

>結果は
>U    Yの最高値   Yが最高値になったときのf
>0     *********    *********
>0.1     *********    *********
>0.2     *********    *********

こうでした・・・すみません。
0052デフォルトの名無しさんNGNG
>>51
次に、xは何者か教えてもらおうか。
005334NGNG
>>22
/* 挿入法 */
void insertion_sort(int* first, int* last)
{
    ptrdiff_t length = last - first;
    for(ptrdiff_t i = 1; i < length; ++i)
    {
        int temp = *(first + i);
        int j = i - 1;
        for(; j >= 0 && temp < *(first + j); --j)
            *(first + j + 1) = *(first + j);
        *(first + j + 1) = temp;
    }
}
(続)
0054デフォルトの名無しさんNGNG
こんだけ書き間違いがあるってことは2chに投稿してるのをばれたくないのかな?
0055デフォルトの名無しさんNGNG
ぐおお
すみません。
x=2*fです。
005634NGNG
(>>53の続き)
次にinsertion_sortを使って
static const int insertion_switch = 10;
/* クイックソート */
void quick_sort(int* first, int* last)
{
    ptrdiff_t length = last - first;
    int m = *(first + length / 2);
    int* left = first, * right = last - 1;
    for (; ; )
    {
        if (length <= 1)
            return;
        if (length <= insertion_switch)
        {
            insertion_sort(first, last);
            return;
        }
        while (*left < m) ++left;
        while (*right > m) --right;
        if (right <= left) break;
        int temp = *left; *left = *right; *right = temp;
    }
    quick_sort(first, left);
    quick_sort(right, last);
}

あとはint a[100];に対してquick_sort(a, a + 100);とすればいい。
005748NGNG
最高値をだすプログラムが課題なんですが
基本式とかは自分で考えたのでちょっとまちがいおおかったです。ごめんなさい。
0058デフォルトの名無しさんNGNG
>>55
全部まとめて書き直せ馬鹿
0059デフォルトの名無しさんNGNG
>>48
あとはぼるじょあが出てくるまで待つといい
さすがにこの程度ならできるだろう
0060デフォルトの名無しさんNGNG
もうネタばっかだな
0061デフォルトの名無しさんNGNG
間違いが多かったのでので書き直しました。

基本式

x=2*f
Y=((x/5)+f*x)*U/x

Uを0から10まで0.1ずつ変化させて
さらにfを0〜100000まで変化させてYの値が最高値になるfであるfmaxを見つけます
結果は
U    Yの最高値   Yが最高値になったときのf
0     *********    *********
0.1     *********    *********
0.2     *********    *********

みたいなかんじで出力します


この問題をよろしくお願いします。

0062デフォルトの名無しさんNGNG
基本式がY = (f + 0.2) * Uとなるけれどもそれでいいのか?
0063デフォルトの名無しさんNGNG
はいよろしくお願いします。
0064デフォルトの名無しさんNGNG
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

int main(void)
{
double U,f;
double Y_max=0,tmp,Y;
double f_max;

printf("U\tYの最高値\tYが最高値になったときのf\n");
for(U=0;U<=10;U=U+0.1){
for(f=0;f<=100000;f++){
Y=(1/5+f)*U;
if(Y_max<Y){
tmp=Y;Y=Y_max;Y_max=tmp;
f_max=f;
}
}
printf("%lf\t%lf\t%lf\n",U,Y_max,f_max);
Y_max=0;f_max=0;
}
return 0;
}
0065デフォルトの名無しさんNGNG
ありがとうございました
助かりました。
006664NGNG
#include<math.h>
#include<stdlib.h>
はけずっていいよ
流用したのがばればれだなw
0067デフォルトの名無しさんNGNG
この問題は式が
Y=(1/5+f)*U;
になってるから結果がつまらなすぎ
0068デフォルトの名無しさんNGNG
了解です〜
どうもありがとう。
0069デフォルトの名無しさんNGNG
>>53>>56
同じ値が配列中にあるとハングするなこれ
0070デフォルトの名無しさんNGNG
電気回路の問題なんですが
i=虚数 i*i=-1
R=1,L=0.001,C=0.0001
PI=円周率

基本式
w=2*PI*f
s=i*w
Z1=R+s*L
Z2=1/(s*C)
Z=(Z1*Z2)/(Z1+Z2)

で周波数を0〜100000まで変化させてZの絶対値を求める。
結果は周波数(一列目)Zの絶対値(2列目)というふうに出力する。

この仕様をみたしたプログラムをCで書くという問題です。
よろしくお願いします。

007122NGNG
やっと宿題おわりました。

いろいろありがとうございました。
0072デフォルトの名無しさんNGNG
#include <iostream>
#include <complex>
#include <iomanip>

const double PI = 3.141592653589793238462643;
typedef std::complex<double> Cd;

int main()
{
 double R = 1.;
 double L = 0.001;
 double C = 0.0001;

 for (int fi = 1; fi <= 100000; fi++) {
  double f = fi;
  double w = 2. * PI * f;
  Cd s = Cd(0, 1) * w;
  Cd Z1 = R + s * L;
  Cd Z2 = 1. / (s * C);
  Cd Z = (Z1 * Z2) / (Z1 + Z2);
  std::cout << std::setw(10) << fi << " " << std::setw(16) << std::scientific << std::setprecision(10) << std::abs(Z) << std::endl;
 }
}
0073デフォルトの名無しさんNGNG
>>70
面倒くさいからC++で書いちゃった。ゴメソ。
要するに複素数の四則演算をCで書けばいいんだ罠。
0074デフォルトの名無しさんNGNG
struct Complex {
 double re, im;
};
struct Complex cmpadd(const struct Complex a, const struct Complex b);
struct Complex cmpsub(const struct Complex a, const struct Complex b);
struct Complex cmpmul(const struct Complex a, const struct Complex b);
struct Complex cmpdiv(const struct Complex a, const struct Complex b);

struct Complex cmpadd(const struct Complex a, const struct Complex b)
{
 struct Complex t;
 t.re = a.re + b.re;
 t.im = a.im + b.im;
 return t;
}

struct Complex cmpsub(const struct Complex a, const struct Complex b)
{
 struct Complex t;
 t.re = a.re - b.re;
 t.im = a.im - b.im;
 return t;
}
0075デフォルトの名無しさんNGNG
struct Complex cmpmul(const struct Complex a, const struct Complex b)
{
 struct Complex t;
 t.re = a.re * b.re - a.im * b.im;
 t.im = a.re * b.im + a.im * b.re;
 return t;
}

struct Complex cmpdiv(const struct Complex a, const struct Complex b)
{
 struct Complex t;
 t.re = (a.re * b.re + a.im * b.im) / (b.re * b.re + b.im * b.im);
 t.im = -(a.re * b.im - b.re * a.im) / (b.re * b.re + b.im * b.im);
 return t;
}

これで勘弁してくれ。後は>>72の四則演算をこれで置き換えればよいはず。
ところでf==0の時はエラーが出るので>72はf==1からにしてあるよ。
0076デフォルトの名無しさんNGNG
ありがとうございました。
とても助かりました。
0077デフォルトの名無しさんNGNG
すみません、ここで質問するべきものなのかどうかもわからずに
書き込みをしてるのですが、お相手お願いします。

今日いろいろなサイト回って調べたのですがどうしてもわからなかったので
ここで質問させてもらいます。

dllファイルの内容を変えたい(編集したい)のですが、
可能な事なのでしょうか?

知っている方にはくだらない質問だと思うのですが、
回答のほうよろしくおねがいします。
0078デフォルトの名無しさんNGNG
>>77
無理に近い。
逆アセンブラを使えば確かに中身を編集できなくもないが。

リソースだけならWin32APIの中にそんなのがあった気もする。
007977NGNG
どこぞのサイトからDLしてきたdllで、
元のファイル(dllになる前の何か?)もありません。
で、そのdllの中からいらないソース(?)を削り
他のソースをまた使用したいのです。

>>78様のおっしゃってる事がなんとなくでしか理解できてないのですが、
がんばって探してきます。

詳しいやり方がわかる方がいましたらお教えください。
よろしくお願いします。
0080デフォルトの名無しさんNGNG
78の言ってる事が分からないようじゃまず無理
ソースが公開されてないのなら、位置から互換dllを作る方が楽だと思うよ
もちろん規模によるけど
0081デフォルトの名無しさんNGNG
そもそもどんな宿題だか。

サイトで配布しているものなら配布元に問い合わせればいいじゃん。
0082デフォルトの名無しさんNGNG
なんだよ31代目は麻衣子かお姉さま復活じゃなかったのかよ!
くそうぼるじょあめ!
0083デフォルトの名無しさんNGNG
>>70
Cのバージョンほすぃ?
0084デフォルトの名無しさんNGNG
Cトランスレータ通すんだ!
0085リツコNGNG
虚数空間にシンジくんが入ってしまったんですけどどうすればいいですか?
0086デフォルトの名無しさんNGNG
愛をかければ実空間に現れますよ
0087デフォルトの名無しさんNGNG
本スレ汚すナヨ
0088デフォルトの名無しさんNGNG
本スレと認めない人が多いから仕方が無い
まあ>>1は氏ねという事だ
0089デフォルトの名無しさんNGNG
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |       >>88
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0090デフォルトの名無しさんNGNG
↑本スレってどこにあるの?
0091デフォルトの名無しさんNGNG
この!くまめ邪魔しおって!
0092デフォルトの名無しさんNGNG
たまにはこんな状態の本すれがあってもいいんじゃねー
0093デフォルトの名無しさんNGNG
>>92
しね池沼
0094デフォルトの名無しさんNGNG
こんなネタと煽りの多いスレがいいのかよ
馬鹿じゃないの?
0095デフォルトの名無しさんNGNG
>>83
ほしいです。
教えていただけませんか?
0096デフォルトの名無しさんNGNG
>>93-94
二匹も釣れるとは大漁大漁
0097リツコNGNG
シンジくんの服しか見つからなかったんですけど、どうしたらいいのでしょうか?
0098デフォルトの名無しさんNGNG
>>97
シンジくんは露出狂ですか?
0099デフォルトの名無しさんNGNG
>>94
歴代スレでも大概50〜150位までは荒れぎみになる。でその後何事もないように事が進む。
このスレもいつもどーりな感じ。

>>35
- while(pat[i] != 0 && src[i] != 0)
+ while(pat[j] != 0 && src[i] != 0)
0100デフォルトの名無しさんNGNG
質問です。
「入力端子が10個あって、それぞれの入力値(任意)に全て異なる
重みを掛けたものの総和を出力するプログラム」
をVisualC++6.0を使って作りたいのですが、うまくいかなくて困って
ます。配列を使って作りたいのですがうまくいきません。

#include <stdio.h>

void main(void)
{
static int x[10] = {2, 4, 3, 7, 9, 6, 1, 8, 5, 2};
static float w[10] = {0.2, 0.5, 0.8, 0.1, 0.6, 0.9, 0.7, 0.3, 0.4, 0.2};
int i,sum;
sum = 0;
for(i=0; i<10; i++)
sum = x[i] * w[i];
printf("合計=%d\n",sum);
}

自分で考えたプログラムですが、合計=0となって出力されてしまい
ます。訂正箇所を教えていただけないでしょうか。お願いします。
0101デフォルトの名無しさんNGNG
>>100
sum += x[i] * w[i];
sumはもっと大きい変数のほうがいいぞ
0102デフォルトの名無しさんNGNG
というか小数点から切れるので誤差なんてもんじゃなくなるよな
0103デフォルトの名無しさんNGNG
>>100
sum = sum + x[i] * w[i];
にしないと加算されないよ。
NNの勉強につながる課題かな?
0104デフォルトの名無しさんNGNG
op=と書けるときはop=と書きましょう
0105デフォルトの名無しさんNGNG
sumがint型だからってことじゃないの?
0106デフォルトの名無しさんNGNG
>>100
sum を float型にでもしないと小数部が計算されない。
また、型を変更した場合は %d ではなく %f ね。
0107デフォルトの名無しさんNGNG
>>104
何故?
0108デフォルトの名無しさんNGNG
FFTをCで書けって脅されました。
書けないと明日には頃されるかもしれません。
0109デフォルトの名無しさんNGNG
>>108
そうですか。がんばって下さい。
0110デフォルトの名無しさんNGNG
>>108
ttp://momonga.t.u-tokyo.ac.jp/~ooura/fftman/index.html
0111デフォルトの名無しさんNGNG
Aドライブのファイル名を読み取って、拡張子が.txtの
ファイルのファイル名だけ表示するプログラムお願いします。
0112デフォルトの名無しさんNGNG
>>111
system("dir A:\*.txt");
0113デフォルトの名無しさんNGNG
>>112
ダメじゃん
0114デフォルトの名無しさんNGNG
>>111
関数
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
int main()
{
  WIN32_FIND_DATA fd;
  HANDLE hFind = FindFirstFile("A:\\*.TXT", &fd);
  do
    if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
      _putts("%s\n", fd.cFileName);
  while(FindNextFile(hFind, &fd));

  FindClose(hFind);
  return 0;
}
0115デフォルトの名無しさんNGNG
テキストファイル(a.txtとします)が以下のようになっています。

アドレス:データ
200 = 23,
201 = 24,
202 = 25,
203 = 26,
以下同じような感じで続く。

このテキストファイルを読み取って、使いやすいように
配列なりに格納したいんですがどういうやり方がいいでしょうか。
0116デフォルトの名無しさんNGNG
>>115
アドレスは200〜というのは決まっているのか
アドレスは絶対に1づつ増えてゆくのか
アドレスの飛び、抜け、重複は無いのか
0117デフォルトの名無しさんNGNG
fscanf
0118デフォルトの名無しさんNGNG
>>114
書き忘れてましたが残念ながら
#include <windows.h> とか#include <tchar.h> が使えない環境です。
言語はCです
0119デフォルトの名無しさんNGNG
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
0120デフォルトの名無しさんNGNG
環境を言え、それが嫌なら総当たりでファイルが存在するか試せ
0121デフォルトの名無しさんNGNG
>>116
手元にファイルがないんで確認できませんが、
200からじゃないにしてもある固定値から始まり、
アドレスは1づつえ、とびや抜け、重複はありません。
言語はCです。
0122デフォルトの名無しさんNGNG
つえ
0123デフォルトの名無しさんNGNG
アドレスは1づつえ
アドレスは1つづつふえ
訂正します。
0124デフォルトの名無しさんNGNG
>>118
標準Cでファイル列挙はできない。
0125デフォルトの名無しさんNGNG
>>124
POSIXのこと?
0126デフォルトの名無しさんNGNG
次のプログラムを使って、test.datに書かれた
浮動小数点データを読み込もうとしたのですが、
run time errorが出てしまいます。
どこが間違いか分かりません。教えてください。。

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

main()
{
int j;
double u[10], t[10];
FILE *fp=fopen("test.dat","r");

for(j=0;j<10;j++)
fscanf(fp,"%le%le",&t[j],&u[j]);

fclose(fp);
}

test.datの中身
0.0 0.2
0.5 0.5
1.0 0.8
... と10個並んでいます。
0127デフォルトの名無しさんNGNG
>>126
test.dat がないから。
0128デフォルトの名無しさんNGNG
>>127
データ読み込み部分をはずして、
ファイルを開いて閉じるだけの作業は
実行できます。
0129デフォルトの名無しさんNGNG
ちなみにエラー内容は
runtime error R6002
- floating point not loaded

です。
0130デフォルトの名無しさんNGNG
>>128
だったら fp の戻り値を確かめたら?
0131デフォルトの名無しさんNGNG
>>128
ちゃんと出来てますよー。。

んで、検索してたら自己解決しました。
ttp://dokudamin.dyndns.org/diary/2003/2003_06.html
ここによれば、浮動小数点であることを明示しないと、
動作しない場合があるそうです。
私の場合はちゃんと宣言してるんですが、動かない。。
そんな馬鹿な?と思い、データを読み込みを
for(j=0;j<1;j++){
u[j] = 0.0; t[j] = 0.0;
fscanf(fp,"%le%le",&t[j],&u[j]);
}
のように書いてあげたら、動きました。
学校のパソコンではちゃんと動いてたのに。。
0132デフォルトの名無しさんNGNG
はぁ
0133デフォルトの名無しさんNGNG
>>131
どうでもいいけど、そのページの日記に書かれている
>マイクロソフトのバカに教えてやらなければならないそうです
というのは単なる管理者の思い込み。
DWORDがどんな型であろうとそれがfloatやdoubleでない限り明示的に
キャストしなければならないのは自明。
0134デフォルトの名無しさんNGNG
>>133
じゃあ>>131がうまくいった理由は?
0135デフォルトの名無しさんNGNG
>>134
情報不足。
0136デフォルトの名無しさんNGNG
>>135
何の?
0137デフォルトの名無しさんNGNG
>>134
偶然かと。
ソースかコンパイラに重大で厄介なメモリ・コード系のバグでもあるんじゃないの?
0138デフォルトの名無しさんNGNG
>>137
なんだ。あんたも思い込みか。
0139デフォルトの名無しさんNGNG
>>138
よくわからんが、float に対してなんで le なんだろ?
0140デフォルトの名無しさんNGNG
>>139
そのfloatは、どれの事を指しているのか、おしえてくれませんか?
0141デフォルトの名無しさんNGNG
http://dokudamin.dyndns.org/diary/2003/2003_06.html
0142デフォルトの名無しさんNGNG
>>140
すまん、まちごたです
0143デフォルトの名無しさんNGNG
>>138
思い込みって?
0144100NGNG
皆さんのお力で解決しました。ありがとう!
0145デフォルトの名無しさんNGNG
       /::^'´::::::::::::i、::::::::::::::::::::::::::::\
     ‐'7::::::::::::::::::::::::ハ:ハ::|ヽ:::;、::::::::::::丶
     /::::::::::::::/!i::/|/  ! ヾ リハ:|;!、:::::::l
    /´7::::::::::〃|!/_,,、   ''"゛_^`''`‐ly:::ト
      /|;ィ:::::N,、‐'゛_,,.\   ´''""'ヽ  !;K
        ! |ハト〈  ,r''"゛  ,       リイ)|
          `y't     ヽ'         //
         ! ぃ、     、;:==ヲ   〃  そんなのどうでもいいよ
         `'' へ、   ` ‐ '゜   .イ
              `i;、     / l
                〉 ` ‐ ´   l`ヽ
014670NGNG
こんにちわ、この前はお世話になりました。
あのあと応用問題がでてまた詰まってしまいました。
よろしければお助けください。

電気回路の問題で
i=虚数 i*i=-1
R=1,L=0.001,C=0.0001
PI=円周率

基本式
w=2*PI*f
s=i*w
Z1=R+s*L
Z2=1/(s*C)
Z=(Z1*Z2)/(Z1+Z2)

で周波数を0〜100000まで変化させてそれぞれのZの絶対値を求める。
そしてその中でZの絶対値が一番大きいfを求める。
結果はZの絶対値、そのときのfという風に出力する。

という問題です。よろしくお願いします。
0147デフォルトの名無しさんNGNG
詰まったというのなら詰まる前までのソースを提示して見てくださいね
014870NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=308&fi=no

こんなかんじで作ってみたんですが詰まりました。
インピーダンスを求めるやつは上で教えてもらったのでコピペして
その上のレスに最大値を求めるやつがあったので組み合わせてみたんですが
うまくいきません。根本的に間違っているのでしょうかそれとも
なにかミスがあるのでしょうか・・・?
エラーは
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
aaaa.cpp:
エラー E2277 aaaa.cpp 31: 左辺値が必要(関数 main() )
*** 1 errors in Compile ***
0149デフォルトの名無しさんNGNG
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=308&fi=no
直りんしちゃいました。すみません。
0150デフォルトの名無しさんNGNG
502.145とでました。
0151デフォルトの名無しさんNGNG
ごめんなさい途中で切れてました
上に
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include <iostream>
#include <complex>
ってつけたんですが2つにわければよかった
0152デフォルトの名無しさんNGNG
>>70
あのね、どうして周波数が1500刻みでしかピックアップしないの?
それだと、fが0,1500,3000,…,99000のときの|Z|しか比較できないじゃないか。
もし、0〜1500の間に最大値があったらどうする?
(まぁ実際計算したらf=502.145のところに最大値があるのだけど。)
最大値を求めるアルゴリズムをもう一度考え直して見たら?
0153デフォルトの名無しさんNGNG
>あのね、どうして周波数が1500刻みでしかピックアップしないの?
>それだと、fが0,1500,3000,…,99000のときの|Z|しか比較できないじゃないか。
>もし、0〜1500の間に最大値があったらどうする?
>(まぁ実際計算したらf=502.145のところに最大値があるのだけど。)

プログラミングの課題で最大値を求めるアルゴリズムが問題なので
正しい答えが目的ではないのでとりあえず1500きざみで最大になるのを
さがそうとしました。
でももっとこまかいほうがいいっすね・・・

>最大値を求めるアルゴリズムをもう一度考え直して見たら?
やっぱ最大値をのアルゴリズムがちがうっすか・・・
どうすればいいんでしょうか・・・?
0154デフォルトの名無しさんNGNG
>>153
|Z|の極大は0<f<100000において一つだから、
アルゴリズムの一例を挙げると、
g(f):=|Z|として、
ランダムに2つのf1,f2を用意し、その2点の中間点f3の値g(f3)を求め、
もしg(f3)がg(f3),g(f1),g(f2)の中で最大であれば、
 g(f1),g(f2),g(f3)で最も大きい2点のfで同様の操作をする。
もし、g(f3)が最大でなければ、一つのランダムなfを新たに用意し、
g(f1),g(f2),g(f3)の中で最大の値であるfと、ランダムに用意したfで同様の
操作をする。
これらを十分な回数行えば最大値が求まる。
0155デフォルトの名無しさんNGNG
むずかしいっすねがんばって理解します。
0156デフォルトの名無しさんNGNG
>>154
マジか!
だとすると俺の組んだ姿勢制御プログラムを積んだロケットが危ない!
0157デフォルトの名無しさんNGNG
またH2Aが落ちるのかw
0158デフォルトの名無しさんNGNG
>>70
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=223
0159154NGNG
申し訳ないね。
ボケたこといってしまった。
別のアルゴリズムで実装しといたよ。(>>158)
0160デフォルトの名無しさんNGNG
おおどうもです。
なんかエラーがでてしまいました。
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
kadai3333.cpp:
エラー E2268 kadai3333.cpp 40: 未定義の関数 'exit' を呼び出した(関数 main(int,char * *) )
*** 1 errors in Compile ***

0161デフォルトの名無しさんNGNG
>>160
#include <stdlib.h>
も呼び出さないと。
0162デフォルトの名無しさんNGNG
なんかコンパイルもできてコマンドプロンプトもひらいたんですが

rerere.exe アプリケーションエラー

例外unknown software exxeption(0xc000008e)がアプリケーションの 0x0040125e で発生しました。

プログラムを終了するには[OK]をクリックしてください
プログラムをデバッグするには[キャンセル]をクリックしてください
             
                   OK           キャンセル




というエラーがでてしまいました。(rerereはファイルにつけた名前です)
0163デフォルトの名無しさんNGNG
なんでだろう。
0164デフォルトの名無しさんNGNG
問題1
nの階乗を求めるプログラムを再帰関数を利用して作りなさい。

問題2
2つの整数のべき乗を求めるプログラムを作成しなさい。ただし、べき乗を求める部分を自作関数で作成しなさい。


この問題、お願いします。
0165デフォルトの名無しさんNGNG
階乗はやっぱコンパイルタイムでしょ

template <int N> struct Factorial{ enum{ value = N * Factorial<N-1>::value }; };
template <> struct Factorial<0>{ enum{ value = 1 }; };

int
main()
{
    std::cout << Factorial<6>::value << std::endl;
    return 0;
}
0166デフォルトの名無しさんNGNG
じゃ、べき乗もコンパイルタイムで。
template <int N>
struct Power {
int value;
Power(int m) : value(m * Power<N - 1>(m).value) {}
};
template <>
struct Power<0> {
int value;
Power(int m) : value(1) {}
};

int main()
{
std::cout << Power<6>(5).value << std::endl;
return 0;
}
0167デフォルトの名無しさんNGNG
No2 高速化は考慮してないから

int bekijou(int a, int x)
{
  int n, i = 1;
  n = a;
  while(i<=x){
    a = a * n;
    i++;
  }
  return a;
}
0168デフォルトの名無しさんNGNG
べき乗も再帰関数で。
unsigned Power(unsigned m, unsigned n)
{
return n ? m * Power(m, n - 1) : 1;
}

int main()
{
std::cout << Power(5, 6) << std::endl;
return 0;
}
0169デフォルトの名無しさんNGNG
べき乗忘れてた
template <int N, int POW> struct Power{ enum{ value = N * Power<N, POW - 1>::value }; };
template <int N> struct Power<N, 0>{ enum{ value = 1 }; };

int
main()
{
    std::cout << Power<2, 10>::value << std::endl;
    return 0;
}
0170デフォルトの名無しさんNGNG
すいません、お願いします。

データを入力してください(100で終了)
001=80
002=30
003=20
004=50
005=100

件数5件
最高は001で80
最低は003で20
平均は45
0171デフォルトの名無しさんNGNG
>>170
入力・出力の形式を明確に。
0172デフォルトの名無しさんNGNG
C言語です。
エラストテネスのふるいを使って1000要素の配列を使って1から999までの間にある素数を見つけて表示するプログラムを作成せよ、とのことです。

#include <stdio.h>
int main(void)
{  int i , n ;
  int kazu[1000] ;
  for ( i=1 ; i <= 1000 ; i++ ){
     kazu[i] == 1 ;
     }


この後がわかりません。教えてエロい人。
0173170NGNG
>>170のだと件数は4件ですね。

001...005ってのはでprintfの出力
=80がscanfで入力

こういう説明で宜しいでしょうか。
0174デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
int main() {
    int *pData = NULL, i = 0, LargePos = -1, SmallPos = 0, Sum = 0;
    puts("データを入力してください(100以上で終了)");
    for (;;) {
        char Buf[64];
        pData = realloc(pData, sizeof (int) * (i + 1));
        if (!pData)
            return 1;
        printf("%d=", i);
        fgets(Buf, sizeof Buf, stdin);
        pData[i] = atoi(Buf);

        if (pData[i] >= 100)
            break;
        if (LargePos == -1)
            LargePos = i;
        else if (pData[i] > pData[LargePos])
            LargePos = i;
        if (SmallPos == -1)
            SmallPos = i;
        else if (pData[i] < pData[SmallPos])
            SmallPos = i;
        Sum += pData[i];
        i++;
    }
(続く)
0175デフォルトの名無しさんNGNG
//改行制限ではみ出た部分。
    printf("件数%d件\n", i);
    printf("最高は%dで%d\n", LargePos, pData[LargePos]);
    printf("最低は%dで%d\n", SmallPos, pData[SmallPos]);
    printf("平均は%d\n", Sum / i);
//    printf("平均は%f\n", (double)Sum / i); 小数点以下も表示したいならこっち。
    free(pData);
    return 0;
}
0176170NGNG
>>174-175
stdio.h以外の宣言は初めてです。

このまま出すと、明らかにバレそうなので
このプログラムの流れを見て勉強しなおします。

本当に有難うございます、精進します。
0177デフォルトの名無しさんNGNG
>>170 回その2
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main(){
int i,indata;
int total = 0;
int min,mini,max,maxi;
max = INT_MIN;min = INT_MAX;
maxi = mini = 0;
for(i = 1; indata != 100; i++)
{printf("%03d=",i);
scanf("%d",&indata);
if(indata != 100)
{total += indata;
if(max < indata)
{max = indata;maxi = i;}
if(min > indata)
{min = indata;mini = i;}}}
i--;
printf("%s%d%s\n","件数",i,"件");
printf("%s%03d%s%d\n","最高は",maxi,"で",max);
printf("%s%03d%s%d\n","最低は",mini,"で",min);
printf("%s%.0f\n","平均は",(double)total/(i-1));
return 0;}
0178デフォルトの名無しさんNGNG
>> 172
#include <stdio.h>
#include <math.h>

#define SIZE 1000

int main(void)
{
int i, j;
int kazu[SIZE];

for (i = 2; i < SIZE; i++) { kazu[i] = 1; }
for (i = 2; i < SIZE; i++) {
if (kazu[i]) {
for (j = 2; i * j < SIZE; j++) { kazu[i * j] = 0; }
}
}
for (i = 2; i < SIZE; i++) { if (kazu[i]) { printf("%d ", i); } }
printf("\n");
return 0;
}
0179デフォルトの名無しさんNGNG
>>178
#include <math.h>
は要りません.削ってください.
0180デフォルトの名無しさんNGNG
>>178
13行目と17行目の
 if ( kazu[i] )
は if ( kazu[i] = 1 ) にしなくて良いのですか?
0181デフォルトの名無しさんNGNG
>>180
ハァ?
0182デフォルトの名無しさんNGNG
>>180
代入しちゃいやん
0183180NGNG
失礼
if ( kazu[i] = 1 ) ではなくて if ( kazu[i] == 1 ) です。
0184デフォルトの名無しさんNGNG
>>183
if(kazu[i])はif(kazu[i]!=0)と同じ。
kazu[i]の値は0か1しかないからif(kazu[i])でいい。
0185デフォルトの名無しさんNGNG
>>184
ありがとうございました
解決です
0186デフォルトの名無しさんNGNG
>>184
はあ?
0187デフォルトの名無しさんNGNG
Cを知らない>>186
0188デフォルトの名無しさんNGNG
>>185
C/C++ を修めるなら、このような記法は読めて当然でないといけない。
でも自分で書くときは(bool を除いて)比較の省略はオススメできない。
ちゃんと != 0まで書いたほうがわかりやすい。
0189デフォルトの名無しさんNGNG
つーか、そもそもbool(Cならbool的記法)で書くべきところだろ。
0190デフォルトの名無しさんNGNG
>>188
そりゃあお前のレベルが低いだけだ
0191デフォルトの名無しさんNGNG
if(kazu[i])とif(kazu[i]!=0)では
判断の数が違います。
0192デフォルトの名無しさんNGNG
>>191
しかし、多くのコンパイラでは最適化されて変わらないかもしれない
0193デフォルトの名無しさんNGNG
i=9+2とi=5+4+2では計算の回数が違います。
と言っているようなものだな。
くだらない。
0194デフォルトの名無しさんNGNG
if( x )
を
if( x != 0 )
と書くのは逆に見にくくて鬱陶しいと個人的に思うのですが、そんな漏れは少数派でしょうか?
0195デフォルトの名無しさんNGNG
whileの中とかな。
0196デフォルトの名無しさんNGNG
>>194
ノシ
0197デフォルトの名無しさんNGNG
>>194
そりゃおめぇ、括弧の内側空けるから鬱陶しいんだよ。
つーか、ifの後こそ空けろや。
0198デフォルトの名無しさんNGNG
>>197
オレはお前が鬱陶しい。
0199デフォルトの名無しさんNGNG
遅レスだけど >>126-134
こんな記事見つけてきた。
ttp://www.coara.or.jp/~tkuri/D/040.htm#D2003-08-17
結局よく分かってないんだけど、VC++かWindowsの仕様って事かね?
>>131 の学校ではどのOSでどのコンパイラを使ってたのか、興味あるな。
0200デフォルトの名無しさんNGNG
マシンAでa=4, b=5 a+bの計算をさせ、その答えをマシンBで受けc+9を計算せよ。
ここでc=1とする。また各2台のマシンは固定IPである。

よろしくおねがいします。ネットワークプログラミング分かりません。
0201デフォルトの名無しさんNGNG
ネットワークは環境依存だからOSは?
0202デフォルトの名無しさんNGNG
すいません、べき乗ですけどPower(double x,double y)です
再帰じゃ答えが違ってしまうようです
x=Power(5.0,1/2);
でxに2.2360679774997896964091736687313…が入るようにしたいんです
0203デフォルトの名無しさんNGNG
>>202=164
>問題2
>2つの整数のべき乗を求めるプログラムを作成しなさい。ただし、べき乗を求める部分を自作関数で作成しなさい。
問題の意味をちゃんと書いてくれ。「2つの整数のべき乗を求める」と書いているからこそ2整数n, mが入力されたら
nのm乗 を出力すればいい、と思うんじゃないのか?
0204デフォルトの名無しさんNGNG
質問です。
#include <stdio.h>

void main(void)
{
static float x[5][5] = {{2, 4, 3, 7, 9},
{4, 3, 7, 9, 6},
{6, 5, 9, 4, 1},
{8, 2, 6, 3, 7},
{7, 1, 3, 5, 9}};

static float w[5][5] = {{0.2, 0.5, 0.8, 0.1, 0.6},
{0.3, 0.7, 0.8, 0.1, 0.2},
{0.9, 0.3, 0.5, 0.7, 0.4},
{0.7, 0.1, 0.3, 0.5, 0.9},
{0.4, 0.2, 0.5, 0.1, 0.7}};

int i,j;
float sum;
for(i=0; i<5; i++){
sum = 0;
for(j=0; j<5; j++){
sum = sum + x[i][j] * w[i][j];
}
printf("合計=%f\n",sum);
}
printf("合計=%f\n",sum);
}

このプログラムだと、各行の計算結果のみ出力され、5行全て加算した結果
が出力されません。5行とも加算させるにはどこを訂正すればよいのか
教えてください。お願いします。
0205デフォルトの名無しさんNGNG
>>204
sumをわけろ・・・
0206デフォルトの名無しさんNGNG
>>204
float sumsum;
を宣言して、
for(sumsum=0,j=0; j<5; j++){
の部分ていうふうにして、
はじめの
sumsum+=sum;
printf("合計=%f\n",sum);
にして、
最後の
printf("合計=%f\n",sumsum);
にする。
0207204NGNG
#include <stdio.h>

void main(void)
{
static float x[5][5] = {{2, 4, 3, 7, 9},
{4, 3, 7, 9, 6},
{6, 5, 9, 4, 1},
{8, 2, 6, 3, 7},
{7, 1, 3, 5, 9}};

static float w[5][5] = {{0.2, 0.5, 0.8, 0.1, 0.6},
{0.3, 0.7, 0.8, 0.1, 0.2},
{0.9, 0.3, 0.5, 0.7, 0.4},
{0.7, 0.1, 0.3, 0.5, 0.9},
{0.4, 0.2, 0.5, 0.1, 0.7}};

int i,j;
float sum,sumsum;
for(i=0; i<5; i++){
sum = 0;
sumsum = 0;
for(j=0; j<5; j++){
sum = sum + x[i][j] * w[i][j];
sumsum += sum;
}
printf("合計=%f\n",sum);
}
printf("合計=%f\n",sumsum);
}

すいません、こういうことでしょうか?まだ不具合が…。
0208デフォルトの名無しさんNGNG
>>207
一行づつ順に追ってみろよ
0209デフォルトの名無しさんNGNG
何故 sum が j ループの外で初期化されているのか分かるか?
そしたら sumsum の初期化(と +=sum の処理)をどこで行えばいいか分かるはずだ。
0210204NGNG
>>208-209
なるほど、解決しました。ありがとう。
0211デフォルトの名無しさんNGNG
久しぶりにきたけど
まだ空白厨いるんだね。
0212デフォルトの名無しさんNGNG
昨日からVC++勉強し始めたんですが、
>>207
の出力がどうなればいいのか正解を教えていただけないでしょうか。
よろしくお願いします。
0213デフォルトの名無しさんNGNG
sumsumが毎行初期化されるのでsumsumが最初だけ初期化されるようにする
0214デフォルトの名無しさんNGNG
コピペして実行した結果が答えだよ
0215デフォルトの名無しさんNGNG
結果書くのめんどくさい書いてくれたら正解かどうか言う
0216212NGNG
#include <stdio.h>
void main(void)
{
static float x[5][5] = {{2, 4, 3, 7, 9},
{4, 3, 7, 9, 6},
{6, 5, 9, 4, 1},
{8, 2, 6, 3, 7},
{7, 1, 3, 5, 9}};

static float w[5][5] = {{0.2, 0.5, 0.8, 0.1, 0.6},
{0.3, 0.7, 0.8, 0.1, 0.2},
{0.9, 0.3, 0.5, 0.7, 0.4},
{0.7, 0.1, 0.3, 0.5, 0.9},
{0.4, 0.2, 0.5, 0.1, 0.7}};

int i,j;
float sum,sumsum;
sumsum=0;
for(i=0; i<5; i++){
sum=0;
for(j=0; j<5; j++){
sum = sum + x[i][j] * w[i][j];
}
sumsum += sum;
printf("合計=%f\n",sum);
}
printf("合計=%f\n",sumsum);
}
212です。sumsumは、合計=63.200001になりました。
合ってますでしょうか?よろしくお願いします。
0217デフォルトの名無しさんNGNG
それでもいいけどsumsumが4回もでるからprintfも出しちゃったほうがいいんじゃない?
0218デフォルトの名無しさんNGNG
sumsumは4回でないと思うよ
0219デフォルトの名無しさんNGNG
あ、ほんとだごめん正解です。
0220212NGNG
sumsumも足して、表示、足して、表示
させるんですね。
解決できました。
ありがとうございました。
0221デフォルトの名無しさんNGNG
あ、書いてるときにスレ伸びてました。
正解だったということ了解しました。
これからも、ちょっとずつ通わせていただきます。
では。
0222デフォルトの名無しさんNGNG
初期化処理(環境設定ファイル読み込み処理)
環境設定処理を読み込み、環境設定情報を環境設定情報管理テーブルに
保持するとはどーゆーことですか?
プログラムを作る実習で初期化設定のモジュール作成
の担当になったのですが、何を作ればいいのかわからず、
困っています。
0223デフォルトの名無しさんNGNG
>>222
あの説明でわからなきゃどこで聞いてもいっしょだろ
0224デフォルトの名無しさんNGNG
>>222
3ヶ所渡り歩いてきたんだね。
だんだん可哀想になってきたよ
0225デフォルトの名無しさんNGNG
みなさんよくご存知で…

どーもすいません。
0226デフォルトの名無しさんNGNG
環境設定ファイルってiniファイルのことその辺のやつみれ
管理テーブルってのはその情報を瞬時に利用できるようなもの
あとえばwidthっていう値がほしいときに簡単に取得できる仕組みを作れってこった
まあがんがれ
0227デフォルトの名無しさんNGNG
二週間C言語の勉強を講義で習って、
実習で実際のプログラムを作るってそんなの
まったくの未経験のやつができるもんなのですか?
0228デフォルトの名無しさんNGNG
>>226
Linuxだっていう話だよ
0229デフォルトの名無しさんNGNG
まぁやる気しだいでできるやつはできますよね…
0230デフォルトの名無しさんNGNG
>>227
できると思う。
学生が大学の講義で普通は半年でする内容だけど、
せいぜい週に1回の講義しかないわけでしょ?
15回*1〜2時間ほどしかしないわけだね。
2週間は長いねぇ。
0231デフォルトの名無しさんNGNG
実際はCは10日なんですが、変わらないですよね

何回読んでも仕様の意味が理解できないし、、、
0232デフォルトの名無しさんNGNG
何かこのスレ寒いな
0233デフォルトの名無しさんNGNG
少なくとも,仕様を理解できないお前さんが要約した内容では,誰も作成不可能。

>・問題はしっかりと解いてもらう方にわかりやすいように
> 問題文などの省きはやめ、全文を書きましょう。
0234デフォルトの名無しさんNGNG
ファイルから文字列(複数行ありマルチバイト文字含み)を読み込んで
それを1行づつ出力するプログラムを作りたいです
1行づつと言うのは 1行をひとくくりにして出力していくと言う意味です
それは もちろんその1行づつをループなどでまわして 全体行を出力します

環境は CUIでコンパイラはgccを使います
すいませんが よろしくお願いします
0235デフォルトの名無しさんNGNG
ちょっといきなりでは時間的に高度な内容ですね、実際の現場だったら
できないと大変なさわぎなのでOJTを意識してるんでしょうね
まぁ実際新卒はなんもできないですけどね
0236デフォルトの名無しさんNGNG
C言語って、簡単なの?
0237デフォルトの名無しさんNGNG
頑張れる人にとっては簡単だよ
0238234NGNG
ちなみに 私はプログラムをやり始めたばかりで良く分からないで
以下のように書いたのですが コンパイルはとおったのに
実行して ファイル名をいれてみるとセグメンテーションフォルトといわれてしまいました
セグメンテーションフォルトと言う意味も良く分からないです
以下のプログラムが なぜ動かないか指摘などもして頂けるとありがたいです すいませんがよろしくお願いします

#include<stdio.h>
#include<stdlib.h>
#define STRING_SIZE 450
int main(void)
{
        int val; int sum = 0; int cnt = 0; char FileName[30]; char string[STRING_SIZE]; FILE *fp;
        printf("Inpu Open FIle Name  >>>");
        scanf("%s", FileName);
        if( (fp = fopen( FileName, "r" ) ) == NULL) {
                printf( "%s Is  Not Open File ", FileName);
                exit( EXIT_FAILURE);
        }
        while( fgets( string, STRING_SIZE, fp) ) {
                sscanf( string, "%s", &val);
                printf("%s",val);
        }

        fclose( fp);
        return EXIT_SUCCESS;
}
0239234NGNG
長いと言われたので 複数行をくっつけて 読みにくくなってしまいました
すいませんが よろしくお願いします
0240デフォルトの名無しさんNGNG
sscanf( string, "%s", &val);
printf("%s",val);
0241デフォルトの名無しさんNGNG
>>239
sscanf( string, "%s", &val);
いらない
printf("%s", string);
一行でいいでしょ。
0242デフォルトの名無しさんNGNG
セグメンテーションフォルトってのは
windowsでいうアプリケーションエラー
誠に申し訳ありませんっていってるやつw
0243ぼるじょあん ◆Md0vtgg3GE NGNG
|
|3 ・ ) エェー ・・・ボルスレナノニ ボルジョアガイナイノハナゼダロウ・・・・・
|⊂
0244デフォルトの名無しさんNGNG
ぶるじょあの中の人も大変だな
0245234NGNG
>>240,241さん
どうも ありがとうございました
ちゃんと 動きました!!

良く考えてみると intにいれるのがおかしいですね
これは 始めリストから計算をするのを前に書いたので それを単にprintfするようにしただけだったので
良く考えなかったのが悪いようです  すいません ありがとうございました

もう一度質問してしまうのですが
では 上記のようにstringからsscanfでとってprintfするようにするには どのようにかえたらいいんですかね?
始めの質問とは意図違いになってしまいますが 教えて頂けるとありがたいです
すいませんが よろしくお願いします
0246234NGNG
>>242さ
ありがとうございます
アプリケーションエラー・・
あんまり Windowsは使ってませんし Windowsでプログラム書いたことが無いのでわかんないです・・
ようするに プログラムがおかしいので止めました みたいな感じでいいのですかねw
どうも ありがとうございました
0247デフォルトの名無しさんNGNG
マカー臭がする
0248デフォルトの名無しさんNGNG
正確には許可してないメモリにアクセスしようとして
抹殺されたってことです
0249デフォルトの名無しさんNGNG
>>245
あんたがやりたいことの場合,
sscanfじゃなく,strcpy, strncpy,もしかしたらstrdupも?,が模範解答。
0250デフォルトの名無しさんNGNG
>>234
#include <string>
#include <fstream>
#include <iostream>

int main()
{
    std::cout << "input file name:" << std::flush;
    std::string filename;
    std::cin >> filename;
    
    std::ifstream dat(filename.c_str());
    if (dat)
    {
        std::string str;
        while(getline(dat, str)) std::cout << str << std::endl;
        return 0;
    }
    else
    {
        std::cout << "file open error!" << std::flush;
        return 1;
    }
}
0251234NGNG
レス遅くなってしまい申し訳ありません
私はMacユーザでもないですねw 触ったこと無いですしww
>>248
許可していないメモリ・・・  よくわからないです・・
>>249
そうですね strcpyなら そのままでいけますねぇw
後の2つは知らない関数です・・
>>250
・・・
全く持って分かんないです…
インクルードファイルさえ何か分かんないですし 中身は全く分かんないし…

みなさん 本当にどうもありがとうございました
0252デフォルトの名無しさんNGNG
>>251
Cしか知らないのに何も書かなかった喪前も悪い
0253デフォルトの名無しさんNGNG
>>251
>許可していないメモリ・・・ よくわからないです・・
どこでも読み書きできたらセキュリティがなりたたんだろうが

>後の2つは知らない関数です・・
調べろ

>全く持って分かんないです…
>インクルードファイルさえ何か分かんないですし 中身は全く分かんないし
C++について調べろ
0254デフォルトの名無しさんNGNG
あれ? 久しぶりにこのスレに来たんだけど,
どうやってぼるじょあになればいいんだっけ?
0255デフォルトの名無しさんNGNG
>>251
http://www.linux.or.jp/JM/ の 『man on WWW』 のセクション 2,3 で検索すると、
大概の C の関数は載っているので、調べてみる事をおすすめする。
0256ぼるじょあ ◆yBEncckFOU NGNG
ぼるじょあ#ぶるじょあ
で変身できるYO!
0257ぼるじょあん ◆Md0vtgg3GE NGNG
|
|3 ・ ) コソーリ・・・
|⊂
0258ぼるじょあ ◆H6wikgcXIU NGNG
(・3・)
0259ぼるじょあ ◆yBEncckFOU NGNG
ヘンシンテスツ.それにしても宿題が少ない.
0260ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー
0261ぼるじょあん ◆Md0vtgg3GE NGNG
|
|3 ・ ) < エェー ヴィジュアルスタジオ入れたら沢山質問しに来るYO
|⊂
0262ぼるじょあ ◆yBEncckFOU NGNG
ぼるじょあ#ぶるじょあ#ぶるじょあ#ぶるじょあ#ぶるじょあ#ぶるじょあ
のように何回続けても良いYO!
0263デフォルトの名無しさんNGNG
#include<iostream>
#include<iomanip>
using namespace std;

void PromptRead(int&,int&,float&);
void CalcTotal(int,int,float&);
void Display(int,int,float,float);
const char SIGN = '$';
const char SPACE = ' ';
int main ()
{
int invNum,
qNum;
float uPri,
tPri;

PromptRead(invNum,qNum,uPri);
CalcTotal(qNum,uPri,tPri);
Display(invNum,qNum,uPri,tPri);

return 0;
}
0264デフォルトの名無しさんNGNG
void PromptRead(int& invNum,int& qNum,float& uPri)
{
cout << "Enter invoice number ==>";
cin >> invNum;
cout << "Enter quantity ordered ==>";
cin >> qNum;
cout << "Enter unitprice ==>";
cin >> uPri;
}

void CalcTotal(int qNum,int uPri,float& tPri)
{
tPri = qNum * uPri;
}

void Display(int invNum,int qNum,float uPri,float tPri)
{
system("cls");
cout<< "Invoice Number:" <<invNum<<endl;
cout<< "Quantity Number:" <<qNum<<endl;
cout<< "Unit Price:" << SIGN << setprecision(2) << fixed << uPri <<endl;
cout<< "Your Total Price is"<<SPACE<<SIGN<< setprecision(2) << fixed <<tPri<<endl;
}
上の続きです。
えーっと、個数と個数値を計算する単純なプログラムなのですが
自分でやってみてわからないところができたので質問させてください。
uPriかqNumに小数点入れても整数として計算されちゃいます。
どうすればいいでしょうか?
0265デフォルトの名無しさんNGNG
>>264
intに小数を入れてるからだろ
0266デフォルトの名無しさんNGNG
すげぇなぁ、関数じゃなくてサブルーチンだね。
CalcTotal()の引き数がintだから実数には成り得ない。
0267デフォルトの名無しさんNGNG
あ、簡単なところ見落としてました・・・。すいません><
0268デフォルトの名無しさんNGNG
薬学実験のデータ処理をお願いします。ヒル係数を求めてください。
添付ファイルの「Aの変化」の最後の値の0.1倍と0.9倍の値があればその値
に対応する「入力濃度」の値をそれぞれ(0.1倍の時E10,0.9倍の時E90)用い、
y=log(E90/E10)/log81を計算せよ。yがヒル係数です。

また、該当する値が無ければ前後の値(0.1倍の場合は0.062430、0.091759となります)
とそれに対応する入力濃度の値(0.000010、0.000014)を取得します。
x,y平面で表現すると(E10x1.E10y1)=(0.000010,0.062430),
(E10x2,E10y2)=(0.000014,0.091759)です。ここでE10x1,E10x2=入力濃度、
E10y1,E10y2=Aの変化とします。この2点を通る直線と「Aの変化」の最後の値の0.1倍
(0.0735590=y座標になります)の直線との交点の値をE10とし、同様に0.9倍に該当する
値が無い場合も前後の値とそれに対応する入力濃度の値との2点を通る直線と0.9倍の値
(0.662031)との交点をE90とし、y=log(E90/E10)/log81を計算せよ。

テキストファイル(result.txt)を読み込むプログラムだとありがたいです。
よろしくお願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1095649550_1/result.txt


http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1095649550
0269デフォルトの名無しさんNGNG
宿題っていうか仕事依頼だな。
0270デフォルトの名無しさんNGNG
>>268
エクセルで作れよ
エクセルがなければopen officeとか
0271デフォルトの名無しさんNGNG
あれ? 仕事でいいんぢゃね? >宿題
勉強するのが仕事って言うであろう?
0272デフォルトの名無しさんNGNG
いいわけねえだよ
0273デフォルトの名無しさんNGNG
宿題に飢えてるので仕事でもなんでもいいだよ
0274デフォルトの名無しさんNGNG
いくら?
0275デフォルトの名無しさんNGNG
>>274
ハーイ!
0276デフォルトの名無しさんNGNG
酢飯食え。ばかいくら。
0277デフォルトの名無しさんNGNG
>>276
ハーイ?
0278デフォルトの名無しさんNGNG
反応がないのでもう一度お願いします。
テキストファイル(a:\\a.txtとします)が以下のようになっています。

;アドレス:データ
009=0023
00a=00ff
00b=0e25
00c=3260
以下同じような感じで続く。

アドレスは16進表記で3桁です。データは16進表記で4桁です。
これを読み込んで、アドレスの示す配列の番地にデータを格納する
(たとえばアドレス00cなら配列buf[12]に0x3260と格納)プログラム
なんですが、お願いします。言語はCです。
0279デフォルトの名無しさんNGNG
>>278
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
    FILE *fp;
    char s[100];
    char adr[4] = {0}, data[5] = {0};
    int buf[1000], ia, id;
    if((fp = fopen("a.txt", "r")) == NULL) exit(1);
    while(fgets(s, 100, fp) != NULL){
        strncpy(adr, s, 3);
        strncpy(data, s + 4, 4);
        sscanf(adr, "%x", &ia);
        sscanf(data, "%x", &id);
        buf[ia] = id;
    }
    return 0;
}
0280デフォルトの名無しさんNGNG
sscanf(s, "%x=%x", &ia, &ib);
でいいだろうに。

つーか、桁数を制限するならちゃんと'='の位置を確認するべき。
それをサボるなら一旦adrやdataにコピーする必要はない。

それから、fgets()の第2パラメータはsizeof bufにしておく方が無難。
#あとでsのサイズを100以外にするときに修正漏れが起きる可能性があるから。
0281279NGNG
>>280
sscanf(s, "%x=%x", &ia, &ib);
目からうろこです。
精進いたします。
0282デフォルトの名無しさんNGNG
馬鹿でも回答者に回れるのが2chの神髄だしな
0283ぼるじょあ ◆yBEncckFOU NGNG
0284デフォルトの名無しさんNGNG
テトリスを作れ
0285デフォルトの名無しさんNGNG
>>284
だまれ基地外
0286デフォルトの名無しさんNGNG
M-x tetris
0287デフォルトの名無しさんNGNG
大学の課題でわからないので、代わりにお願いします。
課題の内容は、fstream.hのファイルの書き込み読み込みをするっていうのと、
双方向リスト構造で、クラスを使用して作れ、というだけで、特にコレを作れっていうのはありません。

で、自分としては初めにファイルが有無の判定をして、あれば、データをリストに代入していき、
なければ、そのまま次に進む。で、次はデータを入力で、char型とint型をデータを入力をするっていうのがいいです。
そのデータをファイルから代入して作ったリストの後ろに繋ぎます。次は、それらのデータをファイルに書き込みます。
これらの作業をひとつひとつ別々の関数でさせたいです。並び替えも出来たらお願いします。

自分の課題なんですが、お願いします!!
0288デフォルトの名無しさんNGNG
>>287
> fstream.hのファイルの書き込み読み込みをする
ヘッダファイルに書き込みするの?

> ファイルが有無の判定
ファイル「が」有無って何?

> データをリストに代入していき、
そのファイルがどういう構造をしているのか分からないと代入も
何もないんだけど?

質問は日本語で書こうね。
0289デフォルトの名無しさんNGNG
失礼しましたー
えっと、ヘッダに書き込みではなく、fstream.hをインクルードしたときに使える、ファイルの書き込み
読み込みが出来る関数を使って、書き読み込みして欲しいっていう事です。

ファイル”が”ではなく、ファイルの有無の判定です。ファイルがあれば、ファイルの中身のデータをリストの代入。

例えば、Business_workというクラスで、
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1095716344&res=1
てな感じです。

という風にリストに代入して欲しいです。ですが、↑にソースがあってるかは自分もわかりません。
こんな風に書いて欲しいっていう事なので、他に書き方があれば、それでお願いします。

かなり読みにくい文で申し訳ありませんでした。
お願いします。
0290デフォルトの名無しさんNGNG
なんだか知らないけどここにウィルス置いときますね
ttp://pukapuka.s1.x-beat.com/img-box/img20040920215205.lzh
0291デフォルトの名無しさんNGNG
>>289
ファイルの中身はどういう風になっている?
0292289NGNG
{
int n;
ifstream Jin;
ofstream Jout;
Business_work* pFirst = this->pNext;
Jin.open(FILE_NAME, ios::nocreate);
if(Jin.is_open() == 0)
n = 0;
else
{
Jin >> n;
Jin.close();
}
Jout.open(FILE_NAME, ios::ate);
Jout.seekp(0);
Jout << n + 1 << endl;
Jout.seekp(0, ios::end);
for(; pFirst != this; pFirst = pFirst->pNext)
{
cout << "No.2" << endl;
Jout << pFirst->pName << endl;
Jout << pFirst->Monthly_salary << endl;
Jout << pFirst->Time_salary << endl;
Jout << pFirst->Service_days << endl;
Jout << pFirst->Holiday_days << endl;
Jout << pFirst->Time_Service << endl;
}
Jout.close();
return;
}
こんな感じで書き込みをします。pNameはchar型で、それ以外はint型でお願いします。
0293289NGNG
すみません。訂正です。char型とint型のデータ全てを一つの1人と考えて、
ファイルの最初には必ず人数を入れます。で、ファイルの読み込みのときに、その人数分のデータを読み込むっていうやつです。
他に良い方法があれば、その方法でお願いします。
0294デフォルトの名無しさんNGNG
じゃ、ここに最新版ウィルス置いときますね
ttp://pukapuka.s1.x-beat.com/img-box/img20040921084521.lzh
0295デフォルトの名無しさんNGNG
>>294
どう使うの?
% ./dotmaster255.exe
zsh: 実行形式エラー: ./dotmaster255.exe
0296デフォルトの名無しさんNGNG
>>295
あーあ、やっちまった
0297デフォルトの名無しさんNGNG
>>295
wine入れろ
0298デフォルトの名無しさんNGNG
大学の課題なんですが、vector<string>の指定された要素の後に
新しいstringを挿入する、というのをやるのはどうすればいいのでしょか?
0299デフォルトの名無しさんNGNG
>>298
insert
0300デフォルトの名無しさんNGNG
大学の課題で、深さが増すにつれてノードから出る線が一本ずつ減っていくようなツリー構造のプログラムを作っているのですがうまくいきません。
深さは0からSまでの範囲で、深さ0から出る線の数はS本、深さSのときは0本です。
どなたか手伝っていただけないでしょうか。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=309
0301デフォルトの名無しさんNGNG
>>300
イメージとしてはこんな感じ
実際にはエラー処理とかもしてね
void make_tree(Node* node,int n)
{
 for(i=0;i<n;i++){
  add_node(node,make_tree(make_node(),n-1));
 }
}
0302デフォルトの名無しさんNGNG
t=6、s=-0.6、x=0.1*tでa=x+sを求めたいんだけど、
double t=6;
double s=-0.6;
double x=0.1*t;
double a=x+s;
だと、aが0にならないのは何故ですか?
ちゃんとした計算結果が求まるように教えてください。
0303デフォルトの名無しさんNGNG
>>302
まず0.1や0.6を2進数で表現できるか紙に書いて確かめてみるといいです
0304デフォルトの名無しさんNGNG
>>300
start は NULLポインタ なので
mk_tree(start,S);
の前に
start = (NET*) malloc(sizeof(NET));
とか
0305302NGNG
>>303
2進数で表現できないとどうなるんですか?
0306デフォルトの名無しさんNGNG
っゆーか0になるy
0307デフォルトの名無しさんNGNG
>>302
0.1と0.6は2進表現にすると循環小数になってるから
コンピュータ内部では0.1、0.6ではなくそれらに近い数値であらわされている
だから掛けても0.6と0.1*6は一致しない
0308デフォルトの名無しさんNGNG
おれも0.000000になる
2進数で表現しきれない部分は、誤差となってあらわれます。
0309302NGNG
ということは、0にはできないんですね。
0310デフォルトの名無しさんNGNG
.00011001100110011001100110011001 : 0.1
  110  110
   110  110
-------------------------
.10011001 : 0.6
どこで桁を切り捨てるかによって値は変わる
0になったりならなかったり
0311デフォルトの名無しさんNGNG
クイックソートより早い検索ロジックを
C++で考えなければならないのですが、
私には思いつきません。
教えていただけませんか?
0312デフォルトの名無しさんNGNG
クイックソートは検索ロジックではありません
0313デフォルトの名無しさんNGNG
>>311
ソートする数によってアルゴリズム換えりゃいいじゃん
0314デフォルトの名無しさんNGNG
>>311
ソート対象がそんな広くない整数だったら分布数えソートとか逆写像ソートとかがO(n)で済む
0315デフォルトの名無しさんNGNG
ソートでいいのか?
3分割クイックソートとかもよいぞ
0316デフォルトの名無しさんNGNG
>>315
つくってつくってーだでぃー
0317デフォルトの名無しさんNGNG
>>311
入力に条件がなければ クイックソートが最も速いソートの一つ.
0318311NGNG
ちなみに、クイックソートより早いソートなんて
世の中に存在するんですか?
私にはあるとは思えません。
0319デフォルトの名無しさんNGNG
>>318
クイックソートなんて遅い方です
0320デフォルトの名無しさんNGNG
>>318
問題文はどうなってるの?

O(nlogn) より良いソートなら必ず条件が必要.
0321311NGNG
ランダムな整数型のデータが特定個集まった配列があります。
これを降順にした配列にする場合のプログラムを書きなさい。
但し、クイックソートよりも高速でなければいけません。

授業で↑の関数を作って来いと言ってましたが、
ありえないでしょう(w
クイックソートは最速です。
0322デフォルトの名無しさんNGNG
>>314さんが言ってる分布数えソートなら一瞬だな
0323311NGNG
分布数えソートって知らなくて調べたんですが、
maxとminが必要なんじゃないですか?
それ調べてる間に、最強クイックに負けませんか?
0324デフォルトの名無しさんNGNG
調べてる間にっていうかそれでおわるんだけどソートが
あとえば上位8ビット部分で分布数えしてあとクイックにしちゃうとかって手もある
もっと複雑にしてもっと高速にすることもできる
0325デフォルトの名無しさんNGNG
radix sort
基数ソート
で検索してみな
0326デフォルトの名無しさんNGNG
>>321
クイック君は早い時もあるけど、逆に遅い時もあるよ。
データの並び次第
0327デフォルトの名無しさんNGNG
クイックソートを並列化したら速くなりませんか?
0328デフォルトの名無しさんNGNG
radixソートは分布数えソートを各桁に拡張しただけじゃなかったか?
0329デフォルトの名無しさんNGNG
3分割クイックソートっていうのはマイナーだけどけっこう有効らしい
普通のクイックソートは大小にソートを再起的に分割していくんだけ
ど、これを大小と同じ部分の3区画にするだけで比較回数が激減す
るらしい
0330311NGNG
例.
12, 34, 45, 36, 64, 32
1の位に着目してソート
12, 32, 34, 64, 45, 36
10の位に着目してソート
12, 32, 34, 36, 45, 64
(3* のパターンの数は3つあるが,
1の位についてはすでにソートしてある)

↑ってのをネットで見つけたんですが、
本当に早いの?って疑問です。
ソートの比較を行う場合に
10000回ぐらい回して
timeで計測するのはありですか?
実際にやってみたいんですが。
0331311NGNG
すんません。
ラディックスソートです。
0332デフォルトの名無しさんNGNG
数十程度だとシェルソートが早いです。
数千程度だとクイックソートが早いです。
数万程度だとラディックスが早いです。
0333デフォルトの名無しさんNGNG
十分な記憶容量があれば分布数えソートが最強です
0334デフォルトの名無しさんNGNG
ソートならこれってどうですか
http://www.futamura.info.waseda.ac.jp/~futamura/PapersToRead/Go-AL2000.pdf
0335デフォルトの名無しさんNGNG
ここに完全版ウィルス置いときますから好きに使って下さいね^^
http://pukapuka.s1.x-beat.com/img-box/img20040922204002.lzh
0336デフォルトの名無しさんNGNG
ビンソートが良いであろう
0337デフォルトの名無しさんNGNG
こちらに移動して質問します

宿題に困っています。
お分かりの方、いらっしゃいましたら、よろしくお願いします。

1.iniファイルで指定されたフォルダにあるファイル名(例:abbccc)を取得
2.ファイル名を分解(例:a bb ccc)
3.msdeの行にadoを使ってインサートする(例:a bb cccとフィールドを分けて)
0338デフォルトの名無しさんNGNG
>>337
前回までの課題や授業内容に課題が依存してる。
その上,ファイル名分割のデリミタもわけわからん。
無理。
0339デフォルトの名無しさんNGNG
>>338
病欠していて、授業に出れませんでした。
ノート借りれる友達もいません・・・

ファイル名分割のデリミタは
iniファイル等で設定した文字数ごとに分割するです。

大変お手数ですが、よろしくお願いします。
0340デフォルトの名無しさんNGNG
そのまま落第しろ
以上。
0341デフォルトの名無しさんNGNG
うわぁ…もうなんか本当にどうしようもないって感じだな……
落としたくなかったら教授に土下座する覚悟で突撃してみたらどうだ
0342デフォルトの名無しさんNGNG
>>339
もう一度落ち着いて、自分が書いた文で、どういうことをしたいのかが正確に
伝わるかどうかを客観的に見直してみてください。
0343デフォルトの名無しさんNGNG
Cの課題です。
1.xyz実数空間で与えられた4つの頂点で構成される三角錐の体積を求めるプログラムを作成。

2.xyz実数空間で与えられた複数の頂点の重心を求めるプログラムを線形リストを用いて作成。

お願いします。
0344デフォルトの名無しさんNGNG
そりは普通に数学の問題だろ
0345デフォルトの名無しさんNGNG
>>332
STLのsortとかは、基本的にはクイックソートなんだけど、
1. ピボットの選び方は配列の先頭・真ん中・末尾の3つの値の中央値
2. 再帰が深くなりすぎたときに挿入ソートに切り替える
3. 配列の長さが短くなったら(だいたい32〜64くらい)挿入ソートに切り替える
というロジックでやってる。

これで要素数が数十程度の場合でもシェルソートに負けることはほぼなくなるし、
最悪の場合でもO(n^2)になることはほとんどない。
0346デフォルトの名無しさんNGNG
>>343
三角錐の4つ頂点のベクトルをそれぞれ a, b, c, d として、
p = b - a, q = c - a, r = d - a とすると、
体積= (1/6)|p q r| ← p, q, r を並べた行列の行列式ね

N 個のベクトル a_i (i = 1, 2, .... , N) があったとして、
重心= (1/N) 農{i=1}^N (a_i)
0347デフォルトの名無しさんNGNG
>>346
ありがとうございます。それでなんとかやってみます。
0348339NGNG
ファイル分割は
20040923_aaa
であれば、2004 09 23 aaaに分割します。

それをデータベースの1行に登録します。
(フォルダに幾つかファイルがあって、1ファイルでデータベースの1行に登録します)

わかりにくい文章で、すみません。
0349デフォルトの名無しさんNGNG
>>339
ファイル名分割の根拠が不明。「4文字・2文字・2文字・_・残り」で分割すんの?
フィールドって何?
MSDEに登録する手段は?そもそもadoって何よ?

…仮にプログラムを作ってくれる人がいるとして、その手元にMSDEがあることを前提にするなよ。
0350デフォルトの名無しさんNGNG
ファイルを読み込んで、文字とキーワード(unit 30)
のような文字列をfgetsで読み込んで返した文字列の中からスペースの
後のキーワードを見つける方法を教えてください。
0351デフォルトの名無しさんNGNG
>>350
FILE * fp = fopen("theFile", "r");
char buf[EnoughSize];
fgets(buf, sizeof(buf), fp);
char keyWord[EnoughSize];
sscanf(buf, "%*s%s", keyWord);
0352デフォルトの名無しさんNGNG
sscanfですか!

ありがとうございます!
0353デフォルトの名無しさんNGNG
nを入力し,フィボナッチ数列の値 F(n)を計算し表示する再帰プログラムfib.cを作成せよ.
フィボナッチ数列
F(n)=F(n-1)+F(n-2)
F(0)=2, F(1)=3
0354デフォルトの名無しさんNGNG
↑おねがいします。
0355デフォルトの名無しさんNGNG
ぐぐれ
0356デフォルトの名無しさんNGNG
int fib(int n){
if(n<3) return 1;
else return fib(n-1)+fib(n-2);
}
0357デフォルトの名無しさんNGNG
#include <iostream>
int fib( int n ){
    if( n <= 0 )
    return 2;
    if( n == 1 )
        return 3;
    return fib( n - 1 ) + fib( n - 2 );
}
int main(){
    int n;
    while( std::cout << "n=", std::cin >> n )
        std::cout << "fib(" << n << ")=" << fib( n ) << std::endl;
    return 0;
}
0358デフォルトの名無しさんNGNG
↑f(2) = 5
0359デフォルトの名無しさんNGNG
int fib(int n)
{
return n==0 ? 2 : ( n==1 ? 3 : fib(n-1)+fib(n-2) );
}
0360デフォルトの名無しさんNGNG
再帰を使う悪しき例だな
n=50でもう重たい
0361デフォルトの名無しさんNGNG
ループ展開きぼんぬ
0362デフォルトの名無しさんNGNG
>>353 をテンプレートでやってみたんだけど、ちょっと不思議なことが。

template<int N> struct Fib { enum { value = Fib<N-1>::value + Fib<N-2>::value }; };
template<> struct Fib<0> { enum { value = 2 }; };
template<> struct Fib<1> { enum { value = 3 }; };

int fibfunc(int n) { return n<=0 ? 2 : ( n==1 ? 3 : fibfunc(n-1)+fibfunc(n-2) ); }

int main(int argc, char* argv[]) {
const intn = 40;
printf("%d\n", Fib<n>().value);
printf("%d\n", fibfunc(n));
return 0;
}

VC++6.0SP6 Win2k
これをビルド(Releaseモードでリビルド)するのは1秒もかからないのに、fibfunc関数の結果が表示されるは3〜4秒かかりました。
結果は両方とも同じ値でした。
計算をコンパイルタイムにやる方が速いのは何故ですか?
0363デフォルトの名無しさんNGNG
>>353の問題ですが。
scanfを使いたいのですが。
0364デフォルトの名無しさんNGNG
>>363
お前は考える頭がないのか?
0365デフォルトの名無しさんNGNG
夏休み明けで全然頭が働きません。
どうか助けてください。
0366デフォルトの名無しさんNGNG
>>362
当たり前だろ。実行時に計算量が多い方が遅いに決まってる。
頼むからネタと言ってくれ・・・・・
0367デフォルトの名無しさんNGNG
>>366
おいおい。よく読め。
0368デフォルトの名無しさんNGNG
>>367
あーそういう意味か。失礼した。
要するにコンパイル時の方が評価が速いって事ね。
Fib<40>()、Fib<39>()・・・・Fib<2>()の一時オブジェクトがコンパイル時に
内部で生成され、一度生成されたら次回の使用時に再計算せずにその
一時オブジェクトの値をそのまま使ってるからだろ。

fibfunc()でも内部にstaticの配列を持っておき、一度でも評価されたnについ
ての関数の値をストアして行き、次回から同じnで呼ばれたら配列から値を
返せば当然速くなる。
0369デフォルトの名無しさんNGNG
>>362
テンプレートの方は最適化によってコンパイル時に即値に展開されている可能性がある。
0370デフォルトの名無しさんNGNG
>>369
おいおい。よく読め。
0371デフォルトの名無しさんNGNG
ワロツァw
0372362NGNG
>>368
ああなるほど。

std::map<int, int>m;
int fib(int n) {
std::map<int, int>::const_iteratorit = m.find(n);
return it != m.end() ? it->second : m.insert(std::pair<int, int>(n, fib(n-1) + fib(n-2))).first->second;
}

int main(int argc, char* argv[]) {
const int n = 40;
m.insert(std::pair<int, int>(0, 2));
m.insert(std::pair<int, int>(1, 3));
printf("%d\n", fib(n));
return 0;
}

としたら劇的に速くなりました。
0373デフォルトの名無しさんNGNG
>>372
しかしこの方法でもアッカーマン関数は重いんだよねえ・・・・・
果てしない再帰関数ですよあれは。
0374デフォルトの名無しさんNGNG
入力された整数を16進表記に変換し、それをASCIIコードで出力しなさい

(例)
入力←123
出力→37 42
0375 ◆FIcNi4f8js NGNG
int a = 123;
char h = a >> 4;
char l = a & 0x0f;
printf("%d %d\n", h, l);
0376374NGNG
>>375
出力が 7 11
になってしまいます・・・
0377デフォルトの名無しさんNGNG
#include <stdio.h>
#include <string.h>
int main()
{
    unsigned int num;
    unsigned char s[sizeof(unsigned int)*2 + 1];
    int i;

    scanf("%u", &num);
    sprintf(s, "%X", num);
    for(i = 0; s[i] != '\0'; i++) printf("%2X ", s[i]);
    printf("\n");
    return 0;
}
0378374NGNG
>>377
ありがとうございました m(_  _)m
0379デフォルトの名無しさんNGNG
合計を求めるところの関数を再帰関数にしろという問題です。
お願いします。ペコリ
#include <stdio.h>
int main(void)
{
int m,n,s;
scanf("%d",&m);
scanf("%d",&n);
s=gou(m,n);
printf("合計は%d\n",s);

return 0;
}

int gou(int m,int n)
{
int i,s=0;
for(i=m;i<=n;i++){
s=s+i;}
return s;
}
0380379NGNG
どうも、お世話になります。
もう1問あったのでお願いします。ペコリ
九九の表を2次元配列を利用して表示させなさい。(だそうです。
0381デフォルトの名無しさんNGNG
int gou(int m,int n)
{
return m <= n ? m + gou(m+1, n) : 0;
}

テストしてないから微妙
0382379NGNG
>>381様ありがとうございます。
380の問題もやっていただければ光栄なのですが。。。
お願いします。ペコリ
0383デフォルトの名無しさんNGNG
for(i=0; i<9; i++){
for(j=0; j<9; j++)
printf("%d ",i*j);
printf("\n");
}
0384379NGNG
たびたび申し訳ありません。
381のreturn m <= n ? m + gou(m+1, n)  : 0;の
         ↑のあたりの「?」と↑の「:」の意味が分かりません。
できれば私、初心者向きな作り方でお願いできませんか?
基本の基本でお願いします。たびたび申し訳ありません。ペコリ
0385デフォルトの名無しさんNGNG
>>384
意味を調べて自分で書き換えてみようとか思わん?
人に頼ってばっかだと脳が腐っちゃうよ。
0386デフォルトの名無しさんNGNG
どんどん馬鹿が増えとるな。自覚のない馬鹿が。
日本の教育が衰退していくのがわかる。
0387デフォルトの名無しさんNGNG
>九九の表を2次元配列を利用して表示

383はちがうよね(w
0388マイク ◆yrBrqfF1Ew NGNG
>?:

三項演算子って結城本にあっただろ。
0389デフォルトの名無しさんNGNG
return A ? B : C;

=

if(A) return B;
else return C;



>>386
学生なめんなYO!
0390デフォルトの名無しさんNGNG
>>389
おうおう粋がっちゃって・・・・
(´-`).。oO(社会に出てから苦労するタイプだな)
0391379NGNG
すみません。
言い分けみたいですが、本当に時間が無くて。。
本当に自分でも「自分で調べてやれよっ」って感じです。
その調べる時間がなくて、、、こうやってカキコしている時間もアセアセで・・・
スミマセン。。。。
0392デフォルトの名無しさんNGNG
>>390
真面目に取られると非常に困る…
0393379NGNG
>>392(ップ
もういい加減さっさと答え晒して終わろぉぜw
0394デフォルトの名無しさんNGNG
int kuku[9][9];
for(i=0;i<9;i++) {
for(j=0;j<9;j++) {
kuku[i][j] = (i + 1) * (j + 1);
}
}
0395デフォルトの名無しさんNGNG
>>380
#include <iostream>
#include <iomanip>

int main()
{
  int result[9][9];
  for (int i = 0; i < 9; ++i)
    for (int j = 0; j < 9; ++j)
      result[i][j] = (i + 1) * (j + 1);
  
  std::cout << "\ 1 2 3 4 5 6 7 8 9\n";
  for (int i = 0; i < 9; ++i)
  {
    std::cout << " " << i + 1;
    for (int j = 0; j < 9; ++j)
      std::cout << std::setw(3) << result[i][j];
    std::cout << '\n';
  }
  std::cout << std::flush;
}
0396379NGNG
>>395難し杉る・・です、はい。
#include <stdio.h>
くらいじゃないと分らないし、、
std::cout << "\ 1 2 3 4 5 6 7 8 9\n";
for (int i = 0; i < 9; ++i)
{
std::cout << " " << i + 1;
for (int j = 0; j < 9; ++j)
std::cout << std::setw(3) << result[i][j];
std::cout << '\n';
}
std::cout << std::flush;
}
のあたりがまったく分りません。。。
理解できないのは意味が無いのでこの私(糞、アフォ、カス、禿げ、なんとでもお言いください)
が分る程度のレベルでお願いします。超超低いレベルでお願いします。ペコリ
0397デフォルトの名無しさんNGNG
>>396
CならCと先に言えよ。
普通C++だがな。
0398379NGNG
>>397様、はい、スミマセンでした。
環境はCです。お願いします。ペコリ
0399デフォルトの名無しさんNGNG
>>349
うお,大文字のみて初めて気がついたが,ゲイツ君家のMSDEか(w
0400デフォルトの名無しさんNGNG
int result[9][9];
for (int i = 0; i < 9; ++i)
for (int j = 0; j < 9; ++j)
result[i][j] = (i + 1) * (j + 1);

↓

int result[10][10];
for (int i = 1; i <= 9; ++i)
for (int j = 1; j <= 9; ++j)
result[i][j] = i * j;
0401デフォルトの名無しさんNGNG
>>393はスルーなのカ。

#include "stdio.h"
int main()
{
int result[9][9];
for (int i = 1; i <= 9; ++i)
for(int j = 1; i <= 9; ++j)
result[i-1][j-1] = i * j;

printf (" 1 2 3 4 5 6 7 8 9\n");
for(int i = 0; i < 9; ++i)
{
for (int j = 0; j < 9; ++j)
printf("%d", result[i][j]);
printf("\n");
}
}
0402ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー 学生サン ドンドンオイデー

みんな答えるの早いな.なんだかんだ言って飢えてらっしゃる...
0403デフォルトの名無しさんNGNG
VC6でコンパイルが通らないとか言いそうだ…。

>>396
>超超低いレベルでお願いします

int result[9][9];
result[0][0] = 1*1;
result[0][1] = 1*2;
...
printf("%d", result[0][0]);

とでもすればできるんじゃないか。
0404400NGNG
>401
>403

だから
result[1][1],result[1][2],...,result[1][9]
result[2][1],result[2][2],...,result[2][9]
 :
result[9][1],result[9][2],...,result[9][9]

ぢゃねーと難しすぎるって(w
0405デフォルトの名無しさんNGNG
>>389
return A ? B : C;

=

if(A) return B;
return C;

ぢゃねの?
関数の最後returnで終わらせないと
0406デフォルトの名無しさんNGNG
どっちでもいっしょだろ
0407デフォルトの名無しさんNGNG
Cで○×ゲームってどうやって作るの?
0408デフォルトの名無しさんNGNG
> 九九の表を2次元配列を利用して表示させなさい。(だそうです。

#include <stdio.h>

int main()
{
    int temp[1][1];
    int i, j;
    for(i = 1; i <= 9; i++){
        for(j = 1; j <= 9; j++){
            temp[0][0] = i * j;
            printf("%2d ", temp[0][0]);
        }
        printf("\n");
    }
    return 0;
}
0409デフォルトの名無しさんNGNG
puts("一意の感情?誘拐?参加します。それは何か!!?? (◎か×か!!!) (間違いはだめ!!!!)");
scanf("%s",kotaeru_hensu);
if( strcmp( "●",kotaeru_hensu ) == 0)
{

puts("正解!!!!!!!!");

}else if(memcmp("◎",mannaka_no_kotae,2))
{ puts("おそかった");

}else{
puts("まちがえ、ました!!!!!!!!!!!!!!!!!!!");
}
0410デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void)
{
double d[10] = {67.2, 43.6, 78.9, 50.1, 0.0, 32.9, 44.4, 100.9, 62.5, 0.0};
int i, j, max, min;
max=d[0];
for (i=0;i<10;i++){
if(max<=d[i]){
max=d[i];
}
}
min=d[0];
for (j=0;j<10;j++){
if(min>=d[j]){
min=d[j];
}
}
printf("体重の最大値は%.1f、最小値は%.1fです。\n",max, min);
return 0;
}
答えが変なんですが・・・。
0411デフォルトの名無しさんNGNG
・int max, min; をdoubleにする
・%.1fを%dにする
・printfのmax, minを(double)max, (double)minにする
好きなのを選べ
0412410NGNG
>>411
一番最初の方法でやったらうまくできました。
有難うございました
0413379NGNG
そんな簡単な問題聞いてんじゃねぇよ
この糞粘着チビ禿げめ!!!
なぁ?OONO??
0414デフォルトの名無しさんNGNG
#include<iostream>
#include<string>
using namespace std;

void PromptRead(string);
void FindName(string,string,string);
void Display(string,string,string);

int main ()
{
string first,
middle,
last,
init,
fullName;

PromptRead(fullName);
FindName(first,middle,last,init);
Display(first,middle,last,init);

return 0;
}

void PromptRead(string& fullName)
{
cout << "Enter your full name. First, Middle, Last ==>";
cin >> fullName;
}
0415デフォルトの名無しさんNGNG
void FindName(string first, string middle, string last, string init, string& fullName)
{
first = fullName.substr(0, fullName.find(' '));
middle = fullName.substr(fullName.find(' ')+1, fullName.size())
last = fullName.
init = fullName.
}

void Display(string first, string middle, string last, string init)
{
system("cls");
cout<< "First Name:" <<first<<endl;
cout<< "Middle Name:" <<middle<<endl;
cout<< "Last Name:" <<last<<endl;
cout<< "Initials:"<<init<<endl;
}
どうも〜まったくわからないので助けてください><
cinでGeorge W. Bushみたいな感じでファーストネーム、ミドルネーム、ラストネームを読み込み
coutでファーストネーム、ミドルネーム、ラストネームとイニシャルを出すといった感じの宿題なのですが
ラストネームとイニシャルをどうやって求めればいいかわかりません
getlineという物を使えば良いらしいのですが頭が悪いためさっぱり本を読んでもわからないです。
ちなみにこういった感じにしたいです。
First:George
Middle:W.
Last:Bush
Initials:GWB
0416デフォルトの名無しさんNGNG
#include<stdio.h>
int main(void)
{
int manth;
int nichisu;
printf("何月の日数を調べますか?\n");
scanf("%d",&manth);
if(manth==1||manth==3||manth==5||manth==8||manth==10||manth==12)
{
nichisu=31;
}
else if(manth==4||manth==6||manth==9||manth==11)
{
nichisu=30;
}
else
nichisu=29;
printf("%d月の日数は%dです。\n",manth,nichisu);
return 0;
}
Cの問題ですが
コレを条件分岐のif文使わずに二次元配列でやってみいろ、というんですが
さっぱりわかりません。
0417416NGNG
「配列のアドレスを利用しろ」、ということなのですが。
実行入力された月数と三通りの日数をどう関連づけた
二次元配列の表を組み立てるかどうかで
頭がモヤッとなってしまいました。
0418416NGNG
一応、最初に416の文で書いたが
二次元配列の方が短い?簡潔?と言われた。
実行結果は同じなのに過程をこうしてやれ、
と言われてモヤモヤ。
0419たけしNGNG
CでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
Cの基礎からすべてを叩き込んでくれませんか??
お願いします。
0420デフォルトの名無しさんNGNG
>416

月毎の日数を配列にして保持しろ
0421デフォルトの名無しさんNGNG
そもそも条件分岐を使わないなんてことが考えられない。
実行入力されるときの値はプログラミング中では不確定要素であり
「〜であれば」という文がなければ成り立たないように思えたのですが。
0422デフォルトの名無しさんNGNG
配列の n 番目の要素に
n 月の日数が入っていれば
if 文は無くてもいけるかと。
0423デフォルトの名無しさんNGNG
>421
は 416 か?
月毎の配列が2つあれば、条件分岐がいらない

※もっとも入力した月が1〜12かどうかの判断はさすがにifが必要だが
0424デフォルトの名無しさんNGNG
なるほど、たぶん出題者の指摘はそこではないかと思います。
>422
0425デフォルトの名無しさんNGNG
>424
は 416 か?
うるう年の判定もあるが、2つ用意した配列の添え字にするのだよ
0426422NGNG
>>414
あまり綺麗じゃないけど。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=225

>>423
年は入れないみたいだから配列は一つだけでもいいのでは?
#閏年以外の意図だったら…どうしよう。
0427416NGNG
配列の添え字を使う。なるほど。
最初から
manth[1]=30
manth[2]=29
manth[3]=31
を用意しておく
とこんな感じだろうか。
添え字で指定させて中身で出すみたいな感じかな。
0428デフォルトの名無しさんNGNG
>>427
配列の初期化は
int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
みたいにできる。
(最初の0は参照するときに
days[month - 1]
とかすればいらない)

…って>>416に
二次元配列と書いてあるね。
一次元でいけそうだけどなあ。
0429416NGNG
#include<stdio.h>

int main(void)

{
int manth[10];
int i;

printf("何月の日数を調べますか?\n");
scanf("%d",&i);

manth[1]=31;
manth[2]=29;
manth[3]=30;


printf("%d月の日数は%dです。\n",i,manth[i]);

return 0;
}

いや、できた。できた。
まだ中途半端だがif文使わずにできましたよ。
ありがとう。
0430416NGNG
しかしこれでは二次元ではないのだが・・・。
二次元にすることによってもっとコンパクトにできるんでしょうか?
そもそも日数は三通りしかないのですが、ポイントはここらへんなんだろうか。
0431デフォルトの名無しさんNGNG
416よ
2月は29日と限定しているが、そうなのか?
0432416NGNG
いや、とりあえずそこまで難しく捉える問題ではなく
課題の要点理解のため参照例としての数なので、閏年とかは
考えなくていいかと。
12通りの数と3通りの数の組み合わせ算出が問題です。
0433デフォルトの名無しさんNGNG
偉そうだな
0434414NGNG
>>426さん
ありがとうございます。
ただ、フルネームを一つの物としてgetline()をかならず使って
last,initialを求めないと駄目みたいなのでその場合のやり方を教えていただけません><
説明不足でした。本当ごめんなさい
0435デフォルトの名無しさんNGNG
>>432
なんで12通りと3通りを組み合わせる必要があるのか?
0436デフォルトの名無しさんNGNG
int getday( int &manth );
int main(void)
{
...
nichisu = getday( manth );
...
}

int getday( int &manth )
{
int day[] = { 29, 30, 31 };
int *db[][1] = { &2[day], &0[day], &2[day], &1[day], &2[day], &1[day], &0[day], &2[day], &1[day], &2[day], &1[day], &2[day] };
return **(manth-1)[db];
}

できた。
0437416NGNG
だめだ。この問題の二次元配列が頭に浮かばない。
int kaz[][]の宣言から始まるわけだし。
[]*[]の変数が用意されるわけだから
余計ややこしくなる。
422と425のレスは参考になった。
どうもありがとう。
そんじゃ。
0438デフォルトの名無しさんNGNG
>>434
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=226

ただこれだと 414 にあるような
空白交じりのものは処理できない。
(coutで取り出す自体で空白までしか入らない)

cout << first << middle << last;
とかすればいいのだけど、こうすると
分割する必要が……。

とりあえず今はカンマ区切りでやってる。
0439デフォルトの名無しさんNGNG
>>437
素直に閏年入れて2次元にしとけって

#include <stdio.h>
int main(void){
   int year, month;
   int days[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
                          {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
   printf("年入力\n");
   scanf("%d", &year);
   printf("月入力\n");
   scanf("%d", &month);
   printf("日数=%d\n",days[(!(year % 4)) && (year % 100) || (!(year % 400))][month - 1]);
   return 0;
}
0440dotkansaiNGNG
宿題で以下のようなものが出題されましたが、何を書いたらいいのか
さっぱり思いつきません。
頭の良い方、いらっしゃいましたら教えてください。
「プログラミング言語Cの仕様の中には、今では不適切と思われるもの
がある。エラーの発見を困難にしていたり、妙に不自然な書き方を強制
していたりするものである。不適切と思われるCの言語仕様を挙げ、そ
れがどのように不都合であるか、またどう変えれば改善となるかを述べ
よ」
というものです。
誰でもいいのでHELPです。
0441デフォルトの名無しさんNGNG
javaと比べて悪い点を挙げればいいんでない?
0442デフォルトの名無しさんNGNG
>440
う〜ん、さっぱりわからん
強いて挙げればgotoってとこかなぁ
「エラーの発見を困難にしていたり」は
下手な書き方すればgotoに限ったことでもないし
「妙に不自然な書き方を強制していたり」は
それだったらgoto使わなきゃいいだけだし
0443デフォルトの名無しさんNGNG
ポインタの宣言と初期化の書き方ぢゃね?

int *n = NULL;

*n ってアドレス? って勘違いしそう、とか。
0444デフォルトの名無しさんNGNG
>>440
宣言の複雑さとか。

int型へのポインタの要素数[5]の配列へのポインタを返す関数へのポインタの
要素数[3]の配列を返す関数を宣言あるいは定義しなさい、って言われても
すぐにはピンと来ないし、見てもわかりにくいし。
0445デフォルトの名無しさんNGNG
あ、改善策は当然typedefで分解。
0446デフォルトの名無しさんNGNG
C99で改善された点でも取り上げて良いのかな??
0447デフォルトの名無しさんNGNG
>>444
それはちょっと特殊すぎないか
0448デフォルトの名無しさんNGNG
○×ゲームってどうやって作るの?
0449デフォルトの名無しさんNGNG
>>448
まず○×ゲームのルールを作る。
0450デフォルトの名無しさんNGNG
>441
javaに限らず他言語との違いを挙げていけば見えてくるものがあるんじゃないかと。
配列(特に多次元)関数に渡すときとか文字列とか結局ポインタまわりか。
0451デフォルトの名無しさんNGNG
再帰関数を利用してx、yのべき乗を求める関数(pow)を作ってみたつもりなんですが
できません。ご指導お願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
#include <stdio.h>
int main(void)
{
int x,y,t;
scanf("%d",&x);
scanf("%d",&y);
t=pow(x,y);
printf("%d",t);
return 0;
}
int pow(int x,int y)
{
if(x!=1)return x*y*pow(x,y-1);
else return 1;
}
0452デフォルトの名無しさんNGNG
int pow(int x)
{
if(x!=1)return x*pow(x-1);
else return 1;
}
0453デフォルトの名無しさんNGNG
>>451
int pow(int x,int y)
{
return y <= 0 ? 1 : x*pow(x,y-1);
}
0454デフォルトの名無しさんNGNG
>451
先ず、適当なサンプルを考える
x=2,y=3辺りかな
pow(2,3)のとき、計算式は2*2*2となる
再帰的な考え方をするとyを順次減らしていき
pow(2,3)は2*pow(2,2)を返す
pow(2,2)は2*pow(2,1)を返す
pow(2,1)は2を返す

int pow(int x,int y)
{
  if(y<=1) {
    return x;
  }
  return x*pow(x,y-1);
}
0455448NGNG
#include <stdio.h>

void display(void);
int set(int ,int ,int );
int check(void);

void main(void){
while(1){
display(); /*盤表示*/
scanf("%d", &row); /*入力した行列を読み取る*/
set(row,column,koma) /*入力された場所にコマを置く*/
check(); /*勝利判定*/
}
}

void display(void)
{
   int board[3][3] = {0,0,0,
0,0,0,
0,0,0,} /*0:空き 1:○ 2:×*/

printf("%d %d %d\n", board[0][0], board[0][1], board[0][2]);
printf("%d %d %d\n", board[1][0], board[1][1], board[1][2]);
printf("%d %d %d\n", board[2][0], board[2][1], board[2][2]);
}


コマを置く位置の入力を読み取って、盤表示の更新する方法
勝利の判定が分かりません
0456デフォルトの名無しさんNGNG
>>455
過去レス探せ。一式あったはずだ。
0457448NGNG
html化されてる過去スレ見たけど見つからなかった。
0458デフォルトの名無しさんNGNG
>>457
bord[][]はグローバル変数にするか、引数で渡すようにしなきゃだめだろ。
今のままじゃdisplay()でしか参照できない。
勝利の判定方法は、縦がすべて同じ値かどうかチェックして、同様に横と斜めに
ついてチェックすりゃいいでしょ。
0459414NGNG
>>438さん
getline(cin, fullname)に変えてコンマの部分をスペースに変えたら出来ました。
ありがとうございます。
0460デフォルトの名無しさんNGNG
0461デフォルトの名無しさんNGNG
任意の正の整数を5つ入れて2分木を表示させる
プログラムを教えてください。お願いします。
0462デフォルトの名無しさんNGNG
http://www005.upp.so-net.ne.jp/h-masuda/ProText/CAlgo/btree01.html
0463デフォルトの名無しさんNGNG
ぐぐったら一番上に出てきた
0464デフォルトの名無しさんNGNG
>>461
視覚化はどうしてほしいの?
0465デフォルトの名無しさんNGNG
ツリーの視覚化といえばgraphbizのdot
0466デフォルトの名無しさんNGNG
>>440
* がプレフィックス演算子だとか。
これをPascalの様にポストフィックス演算子にしてさえおけば、、、
0467デフォルトの名無しさんNGNG
>>465 graphviz

>>440
構造体のフィールド参照に「.」、
構造体のポインタからのフィールド参照に「->」演算子を割り当てているが
統合できる。

八進数に0-8を割り当てている(K&R初版)→8が不要

文字列中に\xという16進数エスケープがあるが、不定桁なので、わかりずらい。
"\xabcdefg" →規格では"\xabcdef" "g" と同義。
2桁固定にしたほうがわかりやすい。

最上位宣言もしくは、複文の先頭でしか変数を定義できない。(C90)

・・・C90と、C99の比較をすれば、結構でてくるんでは?
0468デフォルトの名無しさんNGNG
>>467
> 最上位宣言もしくは、複文の先頭でしか変数を定義できない。(C90)

これは好き.

{
  int i = foo();

  {
    int j = bar();

...

関数型言語の let みたいでヨロシイ.
0469デフォルトの名無しさんNGNG
>>467
>2桁固定にしたほうがわかりやすい。
それだと255までしか表現できないが、charの長さは処理系定義じゃなかったっけ?
0470デフォルトの名無しさんNGNG
sizeof (char) == 1は決められているが、CHAR_BITは処理系定義
0471デフォルトの名無しさんNGNG
sizeof( char ) != 1 な処理系も…
0472デフォルトの名無しさんNGNG
>>440
たとえば,
typedef unsigned int u_int;
を
unsigned int typedef u_int;
と書くことができる
0473デフォルトの名無しさんNGNG
>>471
それってANSIじゃないね。
0474デフォルトの名無しさんNGNG
strcasecmpが使えないので、同様の動作の関数が作りたいんですが、
どうすればいいかわかんないです。
どなたかお願いします。
0475デフォルトの名無しさんNGNG
>>474
入力された2つの文字列を両方とも小文字に変換(tolower)してstrcmpにかければよい。
0476デフォルトの名無しさんNGNG
数列の要素の比較に基づくソート法である単純選択法を使って
与えられた数列を小さい順に並べるにはどうしたらいいんでしょうか?
どなたか助けてください。よろしくお願いいたします。
0477476NGNG
あ、どのようなプログラムを作ればいいんでしょうか?という事です。
言葉足らずですみません。
0478デフォルトの名無しさんNGNG
#include <stdio.h>
#define N 10 /* データ数 */
int main(void) {
int data[] = {0,2,6,4,3,7,5,1,9,8}, i, max, tmp;
for(i=0;i<N;i++) printf("%2d ",data[i]); printf("\n");
for(max = N; max > 0; max--) {
for(i = 1; i < max; i++) {
if(data[i-1]>data[i]) {
tmp = data[i-1];
data[i-1] = data[i];
data[i] = tmp;
}
}
}
for(i=0;i<N;i++) printf("%2d ",data[i]); printf("\n");
return 0;
}
コンパイルしてないから上手く行くか試してない。
0479デフォルトの名無しさんNGNG
>>478
バブルソート != たんずん選択法
0480デフォルトの名無しさんNGNG
>>476
「単純選択法」でググると一発目にソース付きのページが
出てくるんだが?
0481478NGNG
>>479で学んだ。>>480が言ったことをとりあえず無視して再挑戦
#include <stdio.h>
#define N 10 /* データ数 */
int main(void) {
int data[] = {0,2,6,4,3,7,5,1,9,8}, i, j, min, tmp;
for(i=0;i<N;i++) printf("%2d ",data[i]); printf("\n");
for(j = 0; j < N; j++) {
min = j;
for(i = j; i < N; i++) {
if(data[i]<data[min]) min = i;
}
tmp = data[min];
data[min] = data[j];
data[j] = tmp;
}
for(i=0;i<N;i++) printf("%2d ",data[i]); printf("\n");
return 0;
}
またも試してないんで上手く行くかは知らん。
0482デフォルトの名無しさんNGNG
すみません、あまり具体的でなくて申し訳ないのですが、
C++で作ったアプリケーションの起動時に、毎回勝手にテンポラリファイルが
出来るという現象についてご存じの方いらっしゃいますか?

調査した者の話によると、「ステップ実行してみたが、どの部分で
作られているかわからない。C++が勝手にやっているんじゃないか」
ということでした。

現在手元にソースがないので何とも言えませんが、意識して
テンポラリファイルを作るようなコーディングをしていないのに、
勝手に出来るなどということがあるのでしょうか。

ご存じの方いらっしゃいましたら教えて下さい。
0483デフォルトの名無しさんNGNG
具体的でなさ過ぎるわ
標準ライブラリだけ使っててそんな事になるとは、あまり思えない
妙なライブラリ使ってたら知らん、C++に原因求めるんじゃなくライブラリ調べろ
そして妙なコードを書いてる可能性の方がはるかに高い
0484デフォルトの名無しさんNGNG
>>482
環境ぐらい書け。
0485デフォルトの名無しさんNGNG
調査した者が主犯で、バレないように>>482にはそういっただけのこと
0486デフォルトの名無しさんNGNG
・OSは?(Windows, Macintosh, Linux, FreeBSD, etc) or 組込系など
・処理系は?(VisualC++, BCC(BCB), gcc, etc)
・ライブラリ(dllやMFCなども含む)を使っているか
・APIは使っているか(Win32API, etc)
・ファイル操作をしている所は有るか

最低限これぐらい書け
0487デフォルトの名無しさんNGNG
他のスレに書いたらここで聞けと言われたんでここで聞かせていただきます。

プログラミング講義C++
という本に演習とありますが答えが載ってないのでやり方が分かりません。
なのでここに演習の文を書くんでその答えを書いてくださらないでしょうか?

>>2つのオブジェクトa,bが、
>>(1)いずれもint型である場合
>>(2)いずれもdouble型である場合
>>(3)一方がint型で他方がdouble型である場合
>>の3つの場合に対して、sizeof(a+b)を表示するプログラムを作成し、その実行結果を考察せよ。

0488デフォルトの名無しさんNGNG
で、その移動しろって言った人間だが。
#include <iostream>

int main()
{
 {
  int a = 1, b = 1;
  std::cout << "sizeof(int + int) = " << sizeof(a + b) << std::endl;
 }
 {
  double a = 1.0, b = 1.0;
  std::cout << "sizeof(double + double) = " << sizeof(a + b) << std::endl;
 }
 {
  int a = 1; double b = 1.0;
  std::cout << "sizeof(int + double) = " << sizeof(a + b) << std::endl;
 }
 return 0;
}
結果の考察は自分でしな。
0489デフォルトの名無しさんNGNG
>>488
ここに質問するの待っててくれたんですか?
ありがとうございます。
0490デフォルトの名無しさんNGNG
全角うぜぇ

int+int->int
double+double->double
int+double->double+double(暗黙の型変換)->double
0491デフォルトの名無しさんNGNG
お願いします。
↓

以下のようなint型配列がある。配列の要素と、配列中の最大値と最小値を表示するプログラムを、ポインタを使用して作成せよ。

『配列定義』
int data[10] = {10,9,1,20,45,21,38,45,88};
『実行結果』

配列の内容
data[ ] = 10,9,1,20,45,21,38,45,88
最大値 = 88
最小値 = 1
0492デフォルトの名無しさんNGNG
>>491
int data[10] = {10,9,1,20,45,21,38,45,88};
int min = INT_MAX, max = INT_MIN;

for(int* p = data; p != &data[10]; ++p)
{
if( *p < min )
min = *p;
if( *p > max )
max = *p;
}

printf("min=%d max=%d\n", min, max);
0493デフォルトの名無しさんNGNG
良く見かけるなぁ
0494デフォルトの名無しさんNGNG
>>492
配列の数値、9個しかないお?
0495デフォルトの名無しさんNGNG
>>494
0なんだろ。
残りの要素は0で初期化されるから省略してるんだよ、多分。
0496デフォルトの名無しさんNGNG
じゃあなんで最小値=1??
data[9]={10,....の間違いなんじゃ?
0497デフォルトの名無しさんNGNG
無理矢理C++

#include <iostream>
#include <algorithm>

template <typename T>
inline int
numof( const T& t ){
    return sizeof( t ) / sizeof( t[ 0 ] );
}

template <typename T>
void print( const T& t ){
    for( int i = 0; i < numof( t ); ++i ) std::cout << t[ i ] << ',';
    std::cout << "\b \b";
}

int
main()
{
    int data[ 9 ] = { 10, 9, 1, 20, 45, 21, 38, 45, 88 };

    std::cout << "配列の内容" << std::endl << "data[] = ";
    print( data );
    std::cout << std::endl;

    std::cout << "最大値 = " << *std::max_element( data, data + numof( data ) ) << std::endl;
    std::cout << "最小値 = " << *std::min_element( data, data + numof( data ) ) << std::endl;

    return 0;
}
0498デフォルトの名無しさんNGNG
2003/05/27 10:08:41
2003/05/27 10:09:02
2003/05/27 10:09:23
2003/05/27 10:09:41

という形のデータがひたすら書かれたテキストファイルを読み込み、上下隣り合う行の時間差(秒数) を出し、その差が
1秒 = 200件
2秒 = 100件
・
・
100秒 = 20件

というように表示させるプログラムを作成せよ。

-------------------------------------


上記データで言うと、21秒差が2件、21秒差が1件なので、

21 = 2
22 = 1

といった感じに表示させるプログラムです。
お願いします。
0499498NGNG
書き忘れですが、C言語です。
OS環境はRedhat9です.
0500デフォルトの名無しさんNGNG
500get
0501ぼるじょあ ◆yBEncckFOU NGNG
>>498
やってみる
0502デフォルトの名無しさんNGNG
>>498
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=227

かなり適当
0503502NGNG
補足だけど、パラメータからファイル名を取ってくるのを忘れてたり、
エラーチェックをしてなかったり、ループに無駄があったり、
そもそもソースが汚かったりするから、参考程度に(´・ω・`)
0504デフォルトの名無しさんNGNG
sscanf(data, "%d/%d/%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec);
これは通らん
0505デフォルトの名無しさんNGNG
>>498
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=228
0506476NGNG
>>478
わざわざ改良までしてくれてホント有難いです。
感謝します。

>>480
ホントですね…。ご指摘ありがとうございました。
0507dotkansaiNGNG
質問です。以下のような問題が出たので、誰か分かる人がいたら教えてください。
Cの初期指定の文法をBNFで書け。次のような書き方が許されるものとする。
1
{1,2,3}
{{1,2},{3,4}}
{1,{2,3},{4,5,6},7}
これらが許されるような一般的な言語を想定して、その文法を書くこと。
終端記号は、「左波括弧」、「右波括弧」、「コンマ」、「数」の四つである。
非終端記号には自分で選んだ適当な名前をつけてよい。
0508デフォルトの名無しさんNGNG
数字の後には,か}、あるいは即終了。
{のあとには{か数字
とかいくつか規則を作って後はパズル的に組み合わせれば良いんじゃないの?
0509デフォルトの名無しさんNGNG
課題なんですが・・・。

コマンドライン入力で座標を入力して直線を描画したあと自動でまたコマンドライン
入力画面に戻り、再び座標を入力して同じ画面に直線を描画・・・ってな感じで
繰り返していくプログラムなんですが・・。
一回描画させたあと入力画面へ戻るところがよく分かりません。
教えていただければ幸いです<(_ _)>
0510デフォルトの名無しさんNGNG
>>509
もっと詳しく書かないと解からない
0511超初心者NGNG
はじめまして、VC++でエクセルを使いグラフを書きたいのですが
サンプルを持ってきたんですがうまく改良できません。
ファイルから読み込んでそのデータを細かい折れ線グラフ(心電図のような)
ものにしたいのですが教えていただきたいのですが
 
//グラフに使用するデータの出力
for(i = 1; i < 10; i++){
//軸の出力
data = (short)i;
data1 = (short)1;
RangePtr pCells = pSheet->Cells->Item[data][data1];
itoa(i*10,buffer,10);
pCells->Value2 = buffer;
//Dataの出力
data = (short)i;
data1 = (short)2;
pCells = pSheet->Cells->Item[data][data1];
itoa(i*100,buffer,10);
pCells->Value2 = buffer;
    //グラフの出力
ChartObjectsPtr pChartObjects = pSheet->ChartObjects();
ChartObjectPtr pChartObject = pChartObjects->Add(200,10,300,300);
pChartObject->Chart->ChartType = xlColumnClustered;
//データの設定
pChartObject->Chart->SetSourceData(pRange);
0512寝ボケてるので、間違えたらゴメンNGNG
>>507
初期指定 ::= 数 | リスト ;
リスト ::= 左波括弧 リスト内部 右波括弧 ;
リスト内部 ::= 初期指定 コンマ 初期指定 | 初期指定 ;

このまま下降パーサ書いたら、無限ループに陥いりそーだが。
BNFで書けという要求には合っているだろう。
0513デフォルトの名無しさんNGNG
JVMの簡単なコンパイラをC言語でおねがいします。
キーポイント
Aコードの生成速度が速いコンパイラ
B速いコードを生成するコンパイラ(最適化)

人に優しいシステムの開発-誤入力への対処、表示の工夫など
0514デフォルトの名無しさんNGNG
ネタは他所でやれー
0515デフォルトの名無しさんNGNG
>>513
宿題じゃないだろ?
もしかしたら宿題なのかもしれないけどさ、ちょっと時間がかかり過ぎる。
0516デフォルトの名無しさんNGNG
>>512
それで
{1,2,3}はいけないような。。
0517デフォルトの名無しさんNGNG
>>515
それが宿題なんですよ
なんとかなりませんかねえ
0518デフォルトの名無しさんNGNG
>>515
JVMじゃなくても、CASLでも可です
0519デフォルトの名無しさんNGNG
>>518
CASLの方が簡単かもしれんが
どちらにせよ時間がかかりすぎて誰もやりたがらないと思う。
0520デフォルトの名無しさんNGNG
>>507
漏れも考えてみた。
ターゲット ::= 左ブレース 引数 右ブレース ;
引数 ::= |リスト ;
リスト ::= 数
      |ターゲット
      |リスト コンマ 数
      |リスト コンマ ターゲット
0521デフォルトの名無しさんNGNG
そういえばやねうらおが作る予定だな
もしかして関係者か
0522デフォルトの名無しさんNGNG
>>519
できればお願いします。
まじわからなくて困ってるんです。
本当に無理ならいいですけど
0523デフォルトの名無しさんNGNG
>>522
無理じゃない。
だが、タダの範囲を超えてるし、趣味で作ろうと思わん。
0524デフォルトの名無しさんNGNG
>>522
ttp://www.amazon.co.jp/exec/obidos/ASIN/489471356X/qid%3D1023643550/sr%3D1-1/ref%3Dsr%5F1%5F2%5F1/249-2136127-2340341
がんがって嫁。
0525デフォルトの名無しさんNGNG
>>522
30万くらいで作ってあげてもいいけど
0526デフォルトの名無しさんNGNG
2分木のプログラムを作れという宿題を誰かお願いします。
説明もできるようにしないといけないのでできる限りシンプルなプログラムでお願いします。
C++
0527デフォルトの名無しさんNGNG
>>525
かわいそうだろ30万なんて、ていうかひどいな
マジ困ってるようだから、作ってあげたら?
俺は無理だが
0528デフォルトの名無しさんNGNG
30万は安すぎるだろ
0529デフォルトの名無しさんNGNG
513==527
安すぎだろ
0530デフォルトの名無しさんNGNG
513です
訂正
数式のコンパイラでいい。制御構造や入出力文はなくてもよい
ターゲットマシン、CASLまたはJVM
・取り扱える数値は整数値のみでよい(実数なら最高)
・演算は加減乗除のみでよい(それ以外あってもいい)
・演算子の優先順位を考慮し、括弧も扱えること
0531デフォルトの名無しさんNGNG
>>530
数式を入力すると、その数式を解くCASLコードが吐ければいいわけ?
0532デフォルトの名無しさんNGNG
>>530
それでOK
たのんます
0533デフォルトの名無しさんNGNG
>>532
良くわからんのだが、入力する数式はどんな感じなんだ?
ただ 10+5*20 とか入れるだけなのか、
x = 5; y = 10 + x;
みたいなことが出来なければいけないのか。
書き出すコードはCASLのオブジェクトコードなのか、CASLのソースコードなのか。
0534デフォルトの名無しさんNGNG
実は「ぬるぽ」と入れると・・・
0535デフォルトの名無しさんNGNG
ぬるぽ
0536デフォルトの名無しさんNGNG
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Null ... Pointer! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number! Not a number!
0537デフォルトの名無しさんNGNG
  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>534
            / ←>>535
0538512NGNG
>>507
初期指定 ::= 数 | リスト ;
リスト ::= 左波括弧 リスト内部 右波括弧 ;
リスト内部 ::= 初期指定 コンマ リスト内部 | 初期指定 ;

かな。EBNFのほーが慣れてるんで、BNFで書くのはつらい。
いちおう、左再帰はないんで、下向きパーサは書けるはず。
0539デフォルトの名無しさんNGNG
>>530
C/C++摺れだけど、yacc は使っていい?
0540デフォルトの名無しさんNGNG
>>539
質問主が消えた悪寒
0541デフォルトの名無しさんNGNG
>>538
> リスト内部 ::= 初期指定 コンマ リスト内部 | 初期指定 ;

{ 1, 2, 3, { 4, 5, 6} } の
3, { の部分が解釈できないみたいです...?

リスト内部 ::= 初期指定 コンマ リスト | 初期指定 ;

ではないでしょうか.
こういうのを検証するソフトってあるのですか? 名前だけでもキボンヌ.
0542デフォルトの名無しさんNGNG
for(i=0;i<3000;i++){
y=5*i+A
}で、
0<i<1000の時 A=5
1001<i<2000の時 A=4
2001<i<3000の時 A=3
とするにはどうすればいいのですか?
0543デフォルトの名無しさんNGNG
>>542
i=0,1000,2000のときはそれぞれAはどうすればよいのですか?
0544デフォルトの名無しさんNGNG
A=5;
for(i=0;i<3000;i++){
if(i==1000||i==2000) A--;
y=5*i+A
}

for(i=0;i<3000;i++){
switch(i) {
case 0: A=5; break;
case 1000:A=4; break;
case 2000: A=3; break;
}
y=5*i+A
}

好きな方を選びな。
0545デフォルトの名無しさんNGNG
>>543
1001, 2001の時のAの値も不明だね。
0546デフォルトの名無しさんNGNG
C言語初心者です。
すいませんどうか助けてください。

一つのファイルを条件により複数のファイルにするファイル分割を
しています。、
条件がありまして、
�@fgetc(fp)で順次読み込んだ文字がリターンキーなら次に文字を見る。
�Aその文字が 0 〜 9 か 'ー' 〜 '九' ならリターンキーまでを一つのファイル
として閉じる。
�B�Aの条件にかかった文字から新たなファイルを生成し�@に戻る。

という仕様なんですが文字列操作がうまくいきません。
かな文字や関数字など2バイトなので判定ができません。
イメージとしては

while ((ch = fgetc(fp)) != EOF)
{
fputc(ch,fwp);

if (ch == 13) ← リターンキーのasciicode
{
ここまでしかできてない・・・

以下不明・・
}
}

すいませんが文字をすすめたり漢数字の'一'判定のために
どのようなコードを書けばよいかわからないので(ポインタの進め方戻り方など)
どなたか教えてください・・
0547デフォルトの名無しさんNGNG
忍法たらい回しの術
0548デフォルトの名無しさんNGNG
>>507
初期化子::=
    数
    |「左波括弧」初期化子リスト「右波括弧」
    |「左波括弧」初期化子リスト「コンマ」「右波括弧」
初期化子リスト::=
    初期化子
    | 初期化子リスト「コンマ」初期化子
ではだめかい?ISO/IEC 9899:1999(C規格)見ながら作ったんだけれども。
BNFの規格を厳密に知らないからな…
0549デフォルトの名無しさんNGNG
>>546
シフトJISならば2バイト読んで
switch(〜)
{
case 0x88EA://'一'
case 0x93F1://'二'
case 0x8E4F://'三'
case 0x8E6C://'四'
case 0x8CDC://'五'
case 0x985A://'六'
case 0x8EB5://'七'
case 0x94AA://'八'
case 0x8BE3://'九'
}
とでもするしかないんでは?
0550デフォルトの名無しさんNGNG
>>549
だから、そういうことするなって。
文字コード直書きするな。
0551デフォルトの名無しさんNGNG
2バイトとか言ってる時点でどうせバイトごとに
分けて考えることになるだろうと思ったしさ。
0552デフォルトの名無しさんNGNG
>>550
じゃあ聞くけど、>>549見たいな処理をしたかったらどう書けば良いの?
'九' は処理系定義だけど、 0x8BE3 は対象が Shift_JIS でなおかつ自分
で 2 バイト読むんだから、その場合に限るけど、処理系を変えても
想定通り動く(2バイト読んで h<<8&0xff00|l&0xffとしてから比較するからね)。
したがって、こちらの方が可搬性が高いと思う。そして、これとくらべて
明らかに優れている方法ってある?
0553デフォルトの名無しさんNGNG
>546
コンパイルもしてないからわかんないけどこんな感じ?
int CheckWordByte( unsigned int c ){
    if( c < 0x21 )return 0;
    if( c < 0x81 )return 1;
    if( c < 0xa0 )return 2;
    if( c < 0xe0 )return 1;
    if( c < 0xfd )return 2;
    return 0;
}
↑こんなのを作っとくといい
0554553NGNG
で、こんな感じかな?寝ぼけて書いてるんで自信なし。シフトJISの仕組み調べれ。
    while ((ch = fgetc(fp)) != EOF) {
        if( ch >= '0' && ch <= '9'){// 0 〜 9の処理
            continue;
        }
        if( CheckWordByte(ch) == 2 ){// 2byte文字のチェック
            char ch_low = fgetc(fp);
            if( ch_low == EOF )break;
            char wd[3];
            wd[0] = ch;
            wd[1] = ch_low;
            wd[2] = '\0';
            char* check_word[] = {"一","二","三","四","五","六","七","八","九"};
            for( int i = 0 ; i < 9 ; i++ ){
                if( strcmp( wd, check_word ) == 0 ){// 一 〜 九の処理
                    break;
                }
            }
            continue;
        }
    }
0555デフォルトの名無しさんNGNG
>>548
それだと{1,}が許されてしまう罠。
0556548NGNG
>>555
やってみると面白い。俺もおかしいと思ったんだが、
実は許されている。
0557デフォルトの名無しさんNGNG
>>554
>>505
0558デフォルトの名無しさんNGNG
>>554
ちなみに、C言語で書いてくれとのことだけど、char*の宣言は先頭にしないとダメだよ。
それともC99?
0559デフォルトの名無しさんNGNG
そのくらい、訊いた人間が対応すりゃいいだけだろ
ダメ出し好きなんだな
0560デフォルトの名無しさんNGNG
そういう突っ込み見ると、今どきlegacy(ancient?) Cかよ、って感じなんだが。
0561デフォルトの名無しさんNGNG
C99はまだ一般的ではない。
Cの全て処理系でC99をサポートしているとは限らない。
GCCですらサポートしていないバージョンのものを使っているケースが結構ある。
C99で書くときは、そうであることを明記しておくべきだ。
0562デフォルトの名無しさんNGNG
C++
0563デフォルトの名無しさんNGNG
理屈こねてないで、自分が理想の回答書けばええやん
0564デフォルトの名無しさんNGNG
>>563
動くように直しといた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=231
0565デフォルトの名無しさんNGNG

                          ( 私は特別。  )
─────                   ( 一般の猫とは )
 オーイ                     ( 違うのよ   )
 エサだよ〜! ∧∧                O
\        (・ω・ )∧∧             o      
  \        U U(・ω・ )⌒∧∧        ゚ ∧∧
       ゾロ    ∧∧Uー-(・ω・ )      + (*~ー)
             (・ω・ )⌒ヽ〜Uー-         |  ヽ
              U Jー-し'            ( u u )〜
            ゾロ
0566デフォルトの名無しさんNGNG
http://www.aapn.org/images2/catfood4.jpg
http://www.aapn.org/images2/catfood5.jpg
http://www.aapn.org/images2/catfood6.jpg
http://www.aapn.org/images2/catfood7.jpg
http://www.aapn.org/images2/catfood10.jpg
http://www.aapn.org/images2/catfood11.jpg
http://www.aapn.org/images2/catfood9.jpg
0567デフォルトの名無しさんNGNG
中国人ってなんでも食べるよね〜
0568デフォルトの名無しさんNGNG
これをお願いします↓
まず,ファイルにデータの個数nと,その個数分のデータ(整数データ(key)と最大100文字までの文字列の組(string))を保存する.
プログラムindexbubble.cは,まずファイルからnを読み込み,その数だけデータを読み込む.セルにはstringを保存し,索引用配列
INDEXにはデータのkeyとセルへのポインタをそれぞれ保存する.次に,索引用配列INDEXをkeyについてバブルソートを実行する.
そして,INDEXの順にセルに保存されたstringを表示する.
データ例↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html#1
C++です
0569デフォルトの名無しさんNGNG
↑URL失敗しました。
こちらの2です↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1090324499
0570デフォルトの名無しさんNGNG
質問スレに書いたのですが、スレ違いの為こちらへ再投稿させて頂きます。

private:
char m_str[512][512];
があり
public:
read_str()と言う関数を作って
引数に文字列のポインタを渡して、m_strの内容をstrcpy()でコピーするようなのを作りたいのですが
どのようにすればいいのでしょうか?

inline int read_str(char *str[512]) {strcpy(str, m_str);}
とかいう感じのを想定してるのですが、どうやっても型をあわせられません。
0571デフォルトの名無しさんNGNG
お願いします。
クラスのメンバ関数のポインタ配列なのですが、
継承先クラスの関数を、継承元クラスの配列に登録する方法があったら教えてください。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1096604899&res=1
0572デフォルトの名無しさんNGNG
フシアナトラップに大量に引っかかっているスレがあります。

1級土木施工実地試験パート2
http://science3.2ch.net/test/read.cgi/doboku/1072272597/l50

だれか、解析してくだされ。ぞいつらを。
0573デフォルトの名無しさんNGNG
>>572
消えろあふぉ
0574デフォルトの名無しさんNGNG
>>568
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1090324499&res=3
0575デフォルトの名無しさんNGNG
>>571
virtual
0576デフォルトの名無しさんNGNG
>>570
class CAnswer
{
private:
char m_str[ 512 ][ 512 ];
public:
int read_str( char str[ 512 ] );
}

int CAnswer::read_str( char str[ 512 ], int index )
{
strcpy( str, this->m_str[ index ] );
return 0;
}

こんな感じ?
0577デフォルトの名無しさんNGNG
>>575
どもです。出来ました。
こういう意味ですよね?

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1096604899&rm=100
0578デフォルトの名無しさんNGNG
>>577
テンプレート版
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=232
0579577NGNG
>>578
おぉ、なるほど!
僕にはとても思いつきそうもなかったです。

ありがとうございました。
0580デフォルトの名無しさんNGNG
char *str[]=
{
"hoge 10000",
"hoge2 1000",
NULL
}

とあって、空白までの文字列を別の変数(temp[512][512])へコピーしたい時はどうすれば良いのでしょうか?

char temp[512][512];

for(int i=0; str[i]!=NULL; i++)
{
for(int j=0; str[i][j]!=' ';j++)
temp[j][i]=str[i][j];
}
これで上手く行きません。
tempへ、数字を除いた空白までの文字列が入ることを望むのですが・・・
0581デフォルトの名無しさんNGNG
temp[j][i]ってわざと?
0582579NGNG
>>581
jとiが逆でしたね。
でもそれを直しても結果は同じでした。
ちなみに自作のアプリケーションに組み込んでるのですが、この処理を行ってる時点で突然アプリが落ちます。

char temp[512][512];

for(int i=0; str[i]!=NULL; i++)
{
for(int j=0; str[j][i]!=' ';j++)
temp[j][i]=str[j][i];
}
0583デフォルトの名無しさんNGNG
>>582
その処理を自作のアプリケーションから切り離して単独で実行してみ?
そうやって問題の発生箇所を絞り込んでいくのがデバッグのコツ。
0584デフォルトの名無しさんNGNG
>temp[j][i]=str[j][i];
これを抜いてみるとか、
これの代わりにiとjを毎回出力して何回目で落ちるか見てみたら
0585デフォルトの名無しさんNGNG
>>582
まだ逆。
2次元配列について勉強してくると良い

char temp[512][512];

for(int i=0; str[i]!=NULL; i++)
{
for(int j=0; str[i][j]!=' ';j++)
temp[i][j]=str[i][j];
}
0586デフォルトの名無しさんNGNG
4つの数字1,2,3,4の並び順を全て表示しなさい

例)
1 2 3 4
1 2 4 3
1 4 2 3
    :
0587デフォルトの名無しさんNGNG
4次元配列について有効な説明を誰かしうわなにをすr(ry
0588デフォルトの名無しさんNGNG
>>586
#include <algorithm>
#include <iostream>

int factorial(int x){return x == 1 ? 1 : x * factorial(x - 1);}
int main()
{
  int a[4] = {1, 2, 3, 4},
      count = 0,
      num_a = sizeof(a) / sizeof(a[0]),
      end = factorial(num_a);
  while(count++ < end)
  {
    for(int iter = 0; iter < num_a; ++iter)
      std::cout << a[iter];
    std::cout << std::endl;
    std::next_permutation(a, a + num_a);
  }
  return 0;
}
0589デフォルトの名無しさんNGNG
1回のSEX(挿入時間)が、まぁ平均15分としよう。
1分間でのピストンがおよそ120回(2/sec.)と仮定すれば、
1回のSEXで15×120=1800回はチンポを出し入れされる事になる。

平均的なカップルが週2回、一晩2回SEXすると仮定するならば、
一月に2×2×5×1800=36000、およそ36000回チンポを
マンコにピストンされていると概算されるわけだ。

これを、交際している年月に置き換えてみると、3ヶ月男と付き合っている女の子は10万8千回、
一年間付き合っている子は129万6千回、 3年間付き合っている子など驚べき事に
なんと388万8千回もチンコを出し入れされている計算になる。

この事実、全く持って驚愕するほか無いといえよう。
0590デフォルトの名無しさんNGNG
>>589
速すぎだし早すぎ。
0591デフォルトの名無しさんNGNG
2つの関数hogeとageを掛けたり割ったりするにはどうすればいいのですか?
double hoge(double a1, double a2){
 return(5a1, a2);
}
と
double moge(double a1, double b2){
 return(-b1, 8b2);
}
0592デフォルトの名無しさんNGNG
???
ちゃんと喋れ
0593デフォルトの名無しさんNGNG
>>588
ありがとうございました
0594デフォルトの名無しさんNGNG
これで十分だと思うが

#include <iostream>
#include <algorithm>

template <typename T>
void print_array( const T& t ){
    for( int i = 0; i < sizeof( t ) / sizeof( t[ 0 ] ); ++i ) std::cout << t[ i ] << ' ';
    std::cout << std::endl;
}

int main(){
    int n[] = { 1, 2, 3, 4 };

    do{
        print_array( n );
    }while( std::next_permutation( n, n + sizeof( n ) / sizeof( n[ 0 ] ) ) );

    return 0;
}
0595591NGNG
hogeとmogeのパラメータを掛けたり割ったりするにはどうすればいいのですか?
double hoge(double a1, double a2){
 return(5a1, a2);
}
と
double moge(double a1, double b2){
 return(-b1, 8b2);
}
0596デフォルトの名無しさんNGNG
>>595
*
/
0597デフォルトの名無しさんNGNG
>>595
意味ワカラネ
具体的にどれと、どれを掛けたり割ったりしたいんだ?
だいたい、b1ってどっから湧いてきたんだよ?

もしかして、こういう事?

void hoge(double *a1, double *a2){
 *a1 = *a1 * 5.0;
}

void moge(double *b1, double *b2){
   *b1 = -(*b1);
   *b2 = *b2 * 8.0;
}  

int main(void){
   double age = 4.0, sage = 3.0;
   moge(&age, &sage);
   printf("age=%f sage=%f", age, sage);
   return 0;
}
0598デフォルトの名無しさんNGNG
double hoge(double a1, double a2){
 return 5*a1 + a2;
}
と
double moge(double b1, double b2){
 return -b1 + 8*b2;
}
とかじゃねぇの?


んなわけねぇか。
0599 ◆FIcNi4f8js NGNG
a2ってどこで使うの?
0600デフォルトの名無しさんNGNG
>>589
サンクス!
0601591NGNG
598が正しい題意でした。すみませんでした。
0602デフォルトの名無しさんNGNG
釣りにしか見えない辺りがすげぇなぁ。
0603デフォルトの名無しさんNGNG
#include <stdio.h>
main(){
printf("素数");
return 0;
}
0604デフォルトの名無しさんNGNG
素数を求めるプログ(ry
0605デフォルトの名無しさんNGNG
#include <stdio.h>
main(){
int i;
for(;;){
printf("素数をください。お願いします。\n");
}
0606デフォルトの名無しさんNGNG
#include <stdio.h>
main(){
printf("お断りだ");
}
0607デフォルトの名無しさんNGNG
#include <stdio.h>
#include "smtp.h"
/* TODO
  smtp.h, smtp.c(pp)を作って
  SendMail 関数を作っておくこと
    void SendMail(
      char *addr, // 宛先のメールアドレス
      char *subject, // 題名
      char *body // 本文
    );
*/


int main()
{
  char *addr = "[email protected]"; /* 信頼できる人のアドレス */
  SendMail(addr, "助けて下さい!!!", "素数を教えて下さい。お願いします。\nメール待ってます。");
  return 0;
}
0608デフォルトの名無しさんNGNG
実在のアドレス使うな!!!
0609 ◆FIcNi4f8js NGNG
#include <stdlib.h>
main(){
system("shutdown -h now");
return 0;
}
0610デフォルトの名無しさんNGNG
そのアドレス実在するのか・・・w
それは持ってる人自身もサンプルにされるのを覚悟の上だろうw
0611デフォルトの名無しさんNGNG
>>608(とアドレスの所有者)
す、スマン(;´Д`)
0612デフォルトの名無しさんNGNG
Aクラス、Bクラス、Cクラスの各クラスのデータがそれぞれ
A.txt、B.txt、C.txtに保存してある。
形式は各クラス共通で

名前,生年月日,点数
斎藤,19230720,1200
伊集院,19500505,555
田中,19721121,987
田中,19430303,783
田中,19761214,654
三輪,19960616,0
石川,19730823,489
〜
阿部,19800204,500
加藤,19590412,890
高田,19921223,0
井上,19780420,390
井上,19790304,400
井上,19570405,756
井上,19671028,932
中島,19990922,0
西,19400321,564
飯田,19671111,643
0613デフォルトの名無しさんNGNG
といった形にしてある。
各クラスの井上さんを取り出し以下のような形のテキストファイルを作成しなさい。

名前,生年月日,点数
井上,19570405,756
井上,19580618,690
井上,19600509,789
〜
井上,19671028,932
井上,19780420,390
井上,19790304,400

*生年月日順にすること
*生年月日が同じ場合は点数の低い方が上にくるようにしなさい
*なお各クラスのデータは姓ごとに固まっているこのことを利用すると加点します

お願いします。
0614デフォルトの名無しさんNGNG
>>612
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=233&fi=no
"井上.txt"に出力する。
各クラスのデータは姓ごとに固まっていることは利用していない。
0615デフォルトの名無しさんNGNG
>>612
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=235&fi=no
Cのみで、姓ごとに固まっていることを利用してます。
0616デフォルトの名無しさんNGNG
>>613
>  *なお各クラスのデータは姓ごとに固まっているこのことを利用すると加点します
本当なら原点対象にしたい仕様だな
0617デフォルトの名無しさんNGNG
>>616
採点のセンスがCOBOL チックだね。
0618デフォルトの名無しさんNGNG
工夫を見たいんでしょ
0619デフォルトの名無しさんNGNG
>>618
依存する項目が多くなればなるほど、糞コードとなるのは
自明の理。

こんな下らない事に依存するようなコードを書かせていると、
将来DBを学ぶときの妨げになる。
0620ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー 「仮定します」の typo じゃないの
0621デフォルトの名無しさんNGNG
利用することを仮定しちゃうの?
0622デフォルトの名無しさんNGNG
姓ごとに固まっていることをチェックして、
そうでなければ警告をだす様にしとけばよいのでは
0623デフォルトの名無しさんNGNG
>>622
そうやって、どんどん泥沼にはまっていく訳だ。

いつか辿った道だな。
0624デフォルトの名無しさんNGNG
そして泥沼になった先にあるものは…
0625デフォルトの名無しさんNGNG
>>624
池沼になる未来
0626デフォルトの名無しさんNGNG
>>624-625
おもろい
0627デフォルトの名無しさん NGNG
>>533
パソコンがダウソして困っておりました。数値と演算子の区切り文字は特に設けず、トークンは
4桁固定とする。
_は空白一文字を意味する
簡単化のためにトークンの文字数を4桁に固定する。

例
入力A =(2+8)/(2+3)
   B =A+3

出力 AAA STRAT
               LD      GR3,=2
               LD      GR1,=8
           ・ 
           ・
           ・
みたいになればいいんです。
よろしくおねがいします。遅れてすいませぬ 
0628デフォルトの名無しさんNGNG
double func(double A, double B){
 return 5A+2B;
}
のBを配列(40個の要素)にして、forで回すにはどうすればいいのですか?
for(i=0;i<40;i++){
 funcの書き方が分かりません
}
0629デフォルトの名無しさんNGNG
>>628
あなたの言っていることがよく分かりません。 >1 にもあるように

>・問題はしっかりと解いてもらう方にわかりやすいように
> 問題文などの省きはやめ、全文を書きましょう。
0630628NGNG
double func(double A, double B){
 return 5A+2B;
}
があり、Bの値を0<i<=5のとき0.2,6<i<40のとき0.925としたい。
main(){
 for(i=0;i<=5;i++){
 B[i]=0.2;
 } 
 for(;i<40;i++){
 B[i]=0.925;
 } 
 for(i=0;i<40;i++){
 //ここの書き方が分かりません。switchまたはif文でBの値を変化させると
 //遅くなるのでforの外で配列を用いてiに対応するBの値をあらかじめ求めて
 //おきたいんです。お願いします。
 }
}
0631デフォルトの名無しさんNGNG
>>630
funcにコンパイルエラーがあるのですが・・・。
つーか、速くしたつもりで遅いコードかいてる君に乾杯。
0632デフォルトの名無しさんNGNG
そもそも5A+2Bって何だ。5*A+2*Bのつもりか?
0633628NGNG
5*A+2*Bのつもりか?
その通りです
0634デフォルトの名無しさんNGNG
>>630
Bが配列じゃないときの書き方はわかってんのか?


マジレスしてしまった・・・。
ネタ確率90%以上・・・。
0635デフォルトの名無しさんNGNG
>>631
配列を用意するコストを無視しても遅くなったっけ?
0636デフォルトの名無しさんNGNG
>>630
error : >>630 line 0 : 5A+2B : 識別子5Aは宣言されていません。
error : >>630 line 0 : 5A+2B : 識別子2Bは宣言されていません。
error : >>630 line 4,6,7,9,10,12 : i : 識別子iは宣言されていません。
error : >>630 line 5 : main(){ : 関数mainに戻り値の型intが指定されていません。
error : >>630 line 7,10 : B[i] : 識別子Bは宣言されていません。
error : >>630 line 13-15 : comment : funcにAとして何を渡すのか指定されていません。
error : >>630 line 13-15 : comment : funcの戻り値の使用方法が指定されていません。
致命的なエラーが複数発生しました。
回答者はこのコードをコンパイルすることが出来ませんでした。
0637デフォルトの名無しさんNGNG
> error : >>630 line 4,6,7,9,10,12 : i : 識別子iは宣言されていません。
> error : >>630 line 5 : main(){ : 関数mainに戻り値の型intが指定されていません。
> error : >>630 line 7,10 : B[i] : 識別子Bは宣言されていません。
これはサンプル程度だろうし、この辺は別に良いんじゃない。
warningぐらいにしとくとか。
0638デフォルトの名無しさんNGNG
>>632-633
このやり取りにデジャヴュを感じる
0639デフォルトの名無しさんNGNG
それは一種の精神疾患だ。治し方は俺が知っている。俺に任せろ
0640デフォルトの名無しさんNGNG
>>627
最終的に出力するトークンの指定は?
その例だとAを出力すればいいのかBを出力すればいいのかわからん
0641デフォルトの名無しさんNGNG
>>638
俺も。

>>635
VC.NET 2003で計測しました。
最適化で消えちゃ困るので関数はインライン化なし。
変数はカウンタを除いて volatile。

配列を使用しない場合(ループ毎に if で振り分け、Bに定数使用)= 133
〃(Bに変数使用)= 178
〃(if じゃなくて?:、定数使用)= 221
〃 (if じゃ無くて?:、変数使用)= 218

配列を使用した場合(配列への代入は済ませておく)= 190

100回繰り返してはじめと終わりの高分解能パフォーマンスカウンタの差。
それぞれ何回か行ったが誤差は±1程度。
(大きくずれることもあるが別プロセスの影響と判断して無視)
実際の何秒に相当するかは調べてません。

ループは展開してくれるかと期待したのですがしてくれませんでした。
?: は遅いらしい。
0642デフォルトの名無しさんNGNG
ハードウェアの動作を熟知した上でアセンブリで書くのが一番速い



はず。

そして、俺は無理。
0643デフォルトの名無しさんNGNG
>>627

yacc使っていいの?
0644デフォルトの名無しさんNGNG
こんにちはー
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=119
このソースファイルを宿題で書いてみたのですけどうまくいきません
100.21とcinで入れたら100ドルが一枚、10セントが2枚、1セントが一枚といった感じにするプログラムなんですが
まったくうまくいかないのでまたここに書き込ませてもらいました。
ちなみに添付ファイルの方が学校の先生の作ったサンプルファイルになります。
ご教授よろしくお願いします。
0645デフォルトの名無しさんNGNG
CalcTotalの/と%を入れ替えてみたら?
0646デフォルトの名無しさんNGNG
>>640
とりあえず書いてあった出力を全部かきます
AAA  START
        LD        GR3,=2             
        LD        GR1,=8         
        ADDA   GR3,GR1        
        LD        GR4,=2            
        LD        GR1,=3             
        ADDA   GR4,GR1            
        LD        GR1,GR3                
        LD        GR2,GR4     
        CALL    DIV        
        LD        GR5,GR1           
        ST        GR5,A
        LD        GR3,A
        LD        GR1,=3
0647デフォルトの名無しさんNGNG
           ADDA   GR3,GR1
           ST        GR3,B
           LD        GR0,A
           CALL    NUMOUT
           LD        GR0,B
           CALL    NUMOUT
           RET
A         DS       1
B         DS       1
           END

>>643
おそらくだめとおもわれ
0648デフォルトの名無しさんNGNG
>>645さん
入れ替えても意味なかったす。
0649デフォルトの名無しさんNGNG
>>648
>645の指摘は、全部の'/'と'%'の入れ替えだ(と思う)よ。
それから、.exeなんて添付しても誰も見てくれないと思われ。
0650デフォルトの名無しさんNGNG
>>649さん
なるほど、できました。ありがとうございました。
添付ファイルの件は了解です。
0651612NGNG
>>614-615
ありがとうございます。

error C2664: 'qsort' : 4 番目の引数を 'int (const struct tagData *,const struct tagData *)' から
'int (__cdecl *)(const void *,const void *)' に変換できません。 (新しい機能 ; ヘルプを参照)
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。

とエラーが出て動きません。
0652デフォルトの名無しさんNGNG
>>651=612

関数cmp()の引き数を構造体へのポインタからvoid*に変更して、
関数内部でキャストすればよろしい。
つーか、>615が詰めが甘いのだね。
0653デフォルトの名無しさんNGNG
c++でコンパイルしてるからだろ。
0654デフォルトの名無しさんNGNG
年月日を2回入力して,1回目に入力された年月日から2回目に入力さ れた年月日までの日数を数えるプログラムを作りなさい.
Cです。よろしくお願いします。
0655デフォルトの名無しさんNGNG
オレに命令するな!
0656デフォルトの名無しさんNGNG
>>654
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=238&fi=no
0657656NGNG
追記
入力形式は 年/月/日
0658デフォルトの名無しさんNGNG
リスト構造の問題がわからなくて困ってます。問題がとても長くて恐縮ですが
どなたか教えてください。どうかお願いします。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=120
0659デフォルトの名無しさんNGNG
>>658
入力はどんなの?
HOGE 3
FUGA
2
FOO 12 BAR

0
とかもあるの?
0660651=612NGNG
すいませんC++でコンパイルしてました。
ご迷惑をおかけしました。
0661デフォルトの名無しさんNGNG
>658
void InputMJ_list( MJ_list* ptr )
{
    printf( "Name:" );
    scanf( "%s", ptr->name );
    printf( "Houmuran:" );
    scanf( "%d", &ptr->homerun );
}
という関数を作って
    /* リストのトップデータ */
    hd=(struct MJ_list*)malloc(sizeof(struct MJ_list));
    InputMJ_list( hd );
    hd->pointer = NULL;
    /* 第二リストデータ */
    p1=(struct MJ_list*)malloc(sizeof(struct MJ_list));
    InputMJ_list( p1 );
    p1->pointer = NULL;
    hd->pointer=p1;
    /* 第三リストデータ */
    p2=(struct MJ_list*)malloc(sizeof(struct MJ_list));
    InputMJ_list( p2 );
    p2->pointer = NULL;
    p1->pointer=p2;
これでおk
あと printf("5d\n",sum); じゃなくて printf("%5d\n",sum); な
0662658NGNG
>>659
HOGEとかって何ですか?ごめんなさい〜わかりません。
入力は ICHIRO 10  みたいな感じです…。
JIRO 20
0663デフォルトの名無しさんNGNG
627のものですが
作ってもらえませんかね?
本当に困ってるんですが
0664デフォルトの名無しさんNGNG
マンドクセ('A`) のでオレはパス。↓宜しく
0665デフォルトの名無しさんNGNG
>>663
100万くれたら作ってやるよ。
0666 ◆FIcNi4f8js NGNG
>>665
100万ルピーくらいですか?
0667デフォルトの名無しさんNGNG
俺は作るほど暇じゃないがこれぐらいなら、作ってあげれよ
そのためのスレだろ?
0668デフォルトの名無しさんNGNG
>>663-667
この流れにデジャヴをk(ry
0669デフォルトの名無しさんNGNG
>>663
作った。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=310

仕様がわからないところは適当。CASLもよくは知らないので適当。
疲れた。もう寝る。
0670デフォルトの名無しさんNGNG
>>663
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=239&fi=no

適当に再帰下降型パーサで書いてみた。

・gccとVC7.1でコンパイル確認
・生成されたコードは一通り目で追ってみたけど、正しいかわからん(多分あってるはず)
・生成するコードに無駄が多い
・変数名は4文字固定
・MUL,DIVはGR1 op GR2 → GR1のサブルーチンと仮定
・1語のサイズは16bitと仮定
・再帰型にしたら演算子が右結合になっちまった
・試行錯誤したゴミが残ってたりする

あと多分不具合色々・・・1時間ちょいで書いたので勘弁してけれ

hoge.exeとしてコンパイルしたら、
hoge ソースファイル
でコンパイル。out.casファイルが生成される

てかCASLほとんど忘れてるから、コードそのものが間違ってるかも・・・
0671670NGNG
うお、かぶっちまった(;´Д`)
こっちのはダメダメぽいから放置でヨロ(´・ω・`)ノシ
0672デフォルトの名無しさんNGNG
>>669
>>670
ほんとうにありがとうございます。
助かりました!!
感謝!!
0673デフォルトの名無しさんNGNG
お願いします。
C++の問題でVisualStudioを使っております。CUI環境で結果はDOS窓に表示するものです。

問1
整数を記憶するスタックを表すクラスを作り、それを利用したプログラムを作りなさい。
 ・スタックは、データをLIFOで記憶取り出しを行う。
 ・スタックの機能として、Push(記憶)、pop(取り出し)をもとせること。

問2
整数を記憶するリストを作り、それを利用したプログラムを作りなさい。
 ・リストは、線形の片方向リストでよい。
 ・リストへの要素の追加は、先頭に追加するのみでよい。
 ・リストの要素は、データ部とポインタ部を持つノードとして作る。
 ・ノードは、構造体でもクラスでも可。


御手数おかけしますが、何卒よろしくお願いいたします。
0674デフォルトの名無しさんNGNG
STLをコピペしる!Q
0675674NGNG
俺宛じゃなかったか。命拾いしたな。
0676デフォルトの名無しさんNGNG
問1
class int_stack : public std::stack< int >{};

問2
class int_list : public std::list< int >{};
0677デフォルトの名無しさんNGNG
>>676
コンストラクタを書け。
0678673NGNG
すみません、説明が不足していました。
テンプレートなどは使わずに実際に作れという宿題なのです。
また、学校ではVisualStudioをを使用していますが、
今現在はBorlandC++コンパイラーを使用しております。

御手数おかけしますが、何卒よろしくお願い致します。
0679デフォルトの名無しさんNGNG
車輪の再発明はつまらないからなかなか答えてもらえない。
0680デフォルトの名無しさんNGNG
車輪って何?
0681デフォルトの名無しさんNGNG
しゃりん 0 【車輪】
(1)車のわ。
(2)〔もと役者が熱演することの意〕一生懸命に事を行うこと。大車輪。
「自分が―に働くことを以て其不幸を慰めた/続俳諧師(虚子)」

車輪の再発明
http://www.google.co.jp/search?q=%BC%D6%CE%D8%A4%CE%BA%C6%C8%AF%CC%C0&lr=lang_ja&hl=ja&ie=EUC-JP&oe=UTF-8
0682デフォルトの名無しさんNGNG
テンプレートも使っちゃいけないって意味分かんね。
template機能が禁止ってこと?それともSTL禁止のつもりだったん?
0683デフォルトの名無しさんNGNG
課題で行列の演算をするプログラムを書いています。
乗算の部分を書き換えて加算をするようにしたいのですがうまくいきません。
行列の加算とコメントが書いてあるところが乗算のままなのでそこを加算に直すには
どのようにすればいいのでしょうか?
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1096972927
0684デフォルトの名無しさんNGNG
>>673
0685デフォルトの名無しさんNGNG
#include <stdlib.h>
class MyStack {
    int *stk;
    int pt;
    int max;
public:
    MyStack()
    {
        stk = NULL;
        pt = 0;
        max = 0;
    }
    ~MyStack()
    {
        free(stk);
    }
    bool push(int num)
    {
        if(pt >= max){
            max += 128;
            stk = (int *)realloc(stk, sizeof(int) * max);
            if(stk == NULL) return false;
        }
        stk[pt++] = num;
        return true;
    }
    int pop()
    {
        if(pt <= 0) return -1;
        return stk[--pt];
    }
};
0686デフォルトの名無しさんNGNG
stackは例外安全、例外中立にしてください
0687デフォルトの名無しさんNGNG
例外出る場所ねーぞ?
0688デフォルトの名無しさんNGNG
stk = (int *)realloc(stk, sizeof(int) * max);
realloc に失敗すると stk 消えます。
0689デフォルトの名無しさんNGNG
そこでリソースの獲得とは初期化イディオムですよ
0690デフォルトの名無しさんNGNG
C++でreallocかよプッ
0691デフォルトの名無しさんNGNG
>>689って何?
0692デフォルトの名無しさんNGNG
>>673
例外安全・例外中立のstackにするために、pop()は取出しでは
ない。top()で取得した後にpop()で消去せよ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=240
0693デフォルトの名無しさんNGNG
>>678 でテンプレート使うなって書いてあるけどいいのか?
0694デフォルトの名無しさんNGNG
ちょっと書き換えれば大丈夫じゃん
0695デフォルトの名無しさんNGNG
どうも>>673は根本的にわかってなさそうな気がする。
0696デフォルトの名無しさんNGNG
どうかこの問題をお願いします↓
まず,ファイルにデータの個数nと,その個数分のデータ(整数データ)を保存する.
プログラムinsert.cは,まずファイルからnを読み込み,その数だけデータを読み込み,挿入ソートを実行する.そして最後にソート結果を表示する.
データ例↓
10
6
4
1
2
7
5
0
9
8
3
C++です
0697デフォルトの名無しさんNGNG
>>696
int main(int argc, char* argv[])
{
// TODO: この位置にファイルを開く処理を書く

// TODO: この位置にnを読み込む処理を書く

// TODO: この位置にデータを読み込む処理を書く

// TODO: この位置に挿入ソートの処理を書く

// TODO: この位置に結果を表示する処理を書く
}
0698デフォルトの名無しさんNGNG
>>697
これで何とかなりそうです
どうもありがとうございます
0699デフォルトの名無しさんNGNG
>>698
いやいやなんともならないので教えてください。
>>696
0700デフォルトの名無しさんNGNG
>699
特定しますた!
あとで食堂の裏にプリンもってきたら教えてやるよ
0701从*・ 。.・从 ◆SayuminPM. NGNG
>>696
引数でファイル指定. エラー処理無し
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
vector<int> Data;
ifstream fin(argv[1]);
int loop;
fin >> loop;
while (loop--) {
int hoge;
fin >> hoge;
Data.push_back(hoge);
}
for (int j = 1; j < Data.size(); j++) {
int key = Data[j];
int i;
for (i = j - 1; i >= 0 && Data[i] > key; i--) { Data[i + 1] = Data[i]; }
Data[i + 1] = key;
}
for (vector<int>::iterator i = Data.begin(); i != Data.end(); i++) { cout << *i << endl; }
return 0;
}
0702デフォルトの名無しさんNGNG
>>697
#include <fstream>
#include <vector>
#include <ostream>
int main(int argc, char* argv[]) {
  if (argc <= 1)
    return 0;
// ファイルを開く処理
  std::ifstream ifs(argv[1]);
//nを読み込む処理
  int n;
  ifs >> n;
//データを読み込む処理
  std::vector<int> Data;
  for (int i = 0; i < n; i++) {
    int x;
    ifs >> x;
    Data.push_back(x);
  }
//挿入ソートの処理
  for (int i = 1; i < n; i++)
    for (int j = i; j > 0 && Data[j - 1] > Data[j]; j--) {
      int x = Data[j - 1];
      Data[j - 1] = Data[j];
      Data[j] = x;
    }
//結果を表示する処理
  for (int i = 1; i < n; i++)
    std::cout << Data[i] << std::endl;
}
0703デフォルトの名無しさんNGNG
>//挿入ソートの処理
> for (int i = 1; i < n; i++)
> for (int j = i; j > 0 && Data[j - 1] > Data[j]; j--) {
> int x = Data[j - 1];
> Data[j - 1] = Data[j];
> Data[j] = x;
> }
バブルソートに見えるのは気のせい?

fuga.cc: In function `int main(int, char**)':
fuga.cc:28: error: `cout' undeclared in namespace `std'
0704デフォルトの名無しさんNGNG
こんな感じか挿入エロソートって

for(i=0;i<n;i++){
ifs >> x;
for(j=0;j<i;j++){
if(x<Data[j]){
for(k=i;k>j;k++){
Data[k]=Data[k-1];
}
Data[j]=x;
break;
}
}
}
0705デフォルトの名無しさんNGNG
>>704
k--だろう
0706デフォルトの名無しさんNGNG
お願いします。
2以上の整数Nをキーボードから入力すると、Nを偶数部と奇数部に分解しそれを表示するプログラムを記述せよ。(例えば、Nとして1800を入力すると1800=2^3x225と表示したい。)
C言語です。
0707デフォルトの名無しさんNGNG
整数値の上限は?
0708デフォルトの名無しさんNGNG
上限は特にないみたいです。
0709デフォルトの名無しさんNGNG
>>706
#include <stdio.h>
int main(void)
{
int n;
int count = 0;
scanf("%d", &n);
while (n % 2 == 0) {
n /= 2;
count++;
}
printf("2^%d * %d\n", count, n);
return 0;
}
0710706NGNG
ありがとうございます。
助かりました。
0711デフォルトの名無しさんNGNG
  |123456789
ーー+−−−−−−−−−
 1|123456789
 2|24681012141618
 3|369121518212427
4|4812162024283236
 5|51015202530354045
 6|61218243036424854
 7|71421283542495663
 8|81624324048566472
 9|91827364554637281
と表示されるプログラムを教えてください。
C++は初心者なのでかなり悩んでます
誰か助けてください



0712デフォルトの名無しさんNGNG
  |123456789
ーー+−−−−−−−−−
 1|123456789
 2|24681012141618
 3|369121518212427
4|4812162024283236
 5|51015202530354045
 6|61218243036424854
 7|71421283542495663
 8|81624324048566472
 9|91827364554637281
と表示されるプログラムを教えてください。
C++は初心者なのでかなり悩んでます
誰か助けてください



0713初心者NGNG
  |123456789
ーー+−−−−−−−−−
 1|123456789
 2|24681012141618
 3|369121518212427
4|4812162024283236
 5|51015202530354045
 6|61218243036424854
 7|71421283542495663
 8|81624324048566472
 9|91827364554637281
と表示されるプログラムを教えてください。
C++は初心者なのでかなり悩んでます
誰か助けてください



0714デフォルトの名無しさんNGNG
#include <iostream>
using namespace std;
int main()
{
    cout << "  |123456789 " << endl;
    cout << "ーー+−−−−−−−−− " << endl;
    cout << " 1|123456789 " << endl;
    cout << " 2|24681012141618 " << endl;
    cout << " 3|369121518212427 " << endl;
    cout << "4|4812162024283236 " << endl;
    cout << " 5|51015202530354045 " << endl;
    cout << " 6|61218243036424854 " << endl;
    cout << " 7|71421283542495663 " << endl;
    cout << " 8|81624324048566472 " << endl;
    cout << " 9|91827364554637281" << endl;
    return 0;
}
0715デフォルトの名無しさんNGNG
日記
10月6日 雨
姫野ベンチがしたくて、ifc(ifort)入れた。
おもしろかった。

C ふぉとらん
implicit none
integer i, j, tmp
do i = 1, 9
do j = 1, 9
tmp = i * j
write(*,*) i, ' * ', j, ' = ', tmp
enddo
enddo
pause
do i = 1, 10
write(*,*) 'ふぉーーーー', i
enddo
end
0716デフォルトの名無しさんNGNG
#include<stdio.h>

int main(void){

int i,j,z[9][9];

for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
z[i][j]=i*j;
printf("%2d ",z[i][j]);}
printf("\n");}

return 0;
}
0717デフォルトの名無しさんNGNG
#include<stdio.h>

int main(void){

int i,j;
char wnum[][] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};

for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
printf((i*j>9?"%d":"%s"),(i*j>9?i*j:wnum[i*j]));}
printf("\n");}

return 0;
}

0718マイク ◆yrBrqfF1Ew NGNG
2つ以上の[]が許されるようになったのかC99は?
0719デフォルトの名無しさんNGNG
C99でも無理だろ。
char *wnum[] = 〜;にしないと。
0720ぼるじょあ ◆BORUJOARaA NGNG
(・3・) エェー こっちのトリップも良いNE
0721デフォルトの名無しさんNGNG
>>718-719
ホントだ。気づかなかった。
すまそ
0722デフォルトの名無しさんNGNG
Cです。

標準入力から現れた大文字は小文字に、小文字は大文字に、
そのほかはそのままに変換するプログラムをつくれ。

#include <stdio.h>
int main(void)
{ int ch,count=0;
while((=getchar()) != EOF )
if( { } ) ch+= { } ;
eise if( { } ) ch-= { } ;
putchar(ch);
}
return(0);
}

{ } の中身が分かりません。
お願いします。
0723デフォルトの名無しさんNGNG
>>722
せめて正しく問題文を写して来い
0724デフォルトの名無しさんNGNG
ウホッw LISP?
0725デフォルトの名無しさんNGNG
if (isupper(ch)) ch = toupper(ch);
else if (islower(ch)) ch = tolower(ch);
0726デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void)
{ int ch,count=0;
while((ch=getchar()) != EOF )
{
if( ch >= 'a' && ch <= 'z' )ch+= 'A' - 'a' ;
elseif( ch >= 'A' && ch <= 'Z' )ch-= 'A' - 'a' ;
putchar(ch);
}
return(0);
}
0727デフォルトの名無しさんNGNG
>726
EBCDICならアウツw
0728デフォルトの名無しさんNGNG
>>725
問題文から外れてるのでアウツw
0729725NGNG
なんかムシャクシャしていたのであえて無視してみた。
0730初心紗NGNG
授業の課題で、ファイルの16進数ダンプをするプログラム(DOS )を作成しなければいけません。おねがいだれかつくって。
も〜う、憂鬱で夜も眠れません。
0731デフォルトの名無しさんNGNG
>>730
マルチしたので0点
0732デフォルトの名無しさんNGNG
とりあえず問題文を全部書き写せ
0733初心紗NGNG
マルチって何?

【補習課題】
ファイルダンプ(バイナリファイルの入力)
    
コントロールブレイクの課題が完了した方は、バイナリファイルの入力を習得しましょう。
機能仕様:指定されたファイルの内容を16進数でダンプ表示する。
インターフェイス:
C:\> FILDMP.EXE 入力ファイル名
0734デフォルトの名無しさんNGNG
なんだマルチかよ
0735初心紗NGNG
別の板で、質問したら、もうバカかアホかとののしられ・・・
0736デフォルトの名無しさんNGNG
別の板で、質問したら、もうバカかアホかとののしられ・・・
~~~~~~~~~~
これがマルチ。2chの人達は複数のスレで訊かれると「信用されてないな」
と考え、答えることを拒否します。
早く答えが欲しいと複数のスレに書き込むことは逆効果。
0737デフォルトの名無しさんNGNG
ポワソンの右辺の関数g(x,y)が
g(x,y)=exp((x-1/2)^2+(y-1/2)^2)
のとき、Gaussの消去法を用いてポワソン方程式を解くプログラムを作成する。
内点は10×10として境界上ではz=0とする。
------------------------------------------------------
この課題の考察を考えよ。

ダレカお願いします、、
0738デフォルトの名無しさんNGNG
考察を考えよって面白い問題だな。
0739デフォルトの名無しさんNGNG
>>733
ダンプって、やっぱり書式が必要?
0740デフォルトの名無しさんNGNG
>>733
まあ雛型だけ書いてやるよ。このまま提出しても5点くらいしかやらないだろうな。俺なら。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
FILE *fp;
int in;
if ((fp = fopen(argv[1], "r")) == NULL) {
printf("file open error!!\n");
exit(1);
}
while ((in = fgetc(fp)) != EOF) {
printf("%02X ", in);
}
fclose(fp);
return 0;
}
0741初心紗NGNG
サンプルのEXEでは、以下のようにでます。

HEXDMP(bookq.htm)
[00000001] 3C48544D 4C3E0A3C 48454144 3E0A3C6D * <HTML>.<HEAD>.<m *
[00000017] 65746120 68747470 2D657175 69763D22 * eta http-equiv=" *
[00000033] 436F6E74 656E742D 54797065 2220636F * Content-Type" co *
[00000049] 6E74656E 743D2274 6578742F 68746D6C * ntent="text/html *
[00000065] 3B206368 61727365 743D782D 736A6973 * ; charset=x-sjis *
[00000081] 223E0A3C 5449544C 453E8341 83938350 * ">.<TITLE>アンケ *
[00000097] 815B8367 3C2F5449 544C453E 0A3C5354 * ート</TITLE>.<ST *
[00000113] 594C4520 54595045 3D227465 78742F63 * YLE TYPE="text/c *
[00000129] 7373223E 0A41207B 74657874 2D646563 * ss">.A {text-dec *
0742デフォルトの名無しさんNGNG
>>741
この野郎、後になって問題につけたししやがって!!!ふざけるな!!!
0743初心紗NGNG
5点ではなあ〜はああ 落第じゃん。
0744デフォルトの名無しさんNGNG
>>741
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=241&fi=no
0745744NGNG
>>741 よりは一般的な出力になっていると思われ。
0746デフォルトの名無しさんNGNG
ダンプ松本?
0747初心紗NGNG
std::cout って習ってないというか・・・  ::って何でしょうか? 
0748デフォルトの名無しさんNGNG
>>747
調べなさい。
0749デフォルトの名無しさんNGNG
>>747
文句ばっかりだな。礼のカケラもないし。
0750デフォルトの名無しさんNGNG
>>747
習ってないからって即座に音を上げるな。
「using namespace std」とかでぐぐったら出てこない?
とりあえず、名前空間について調べろ。
0751744NGNG
もしかしてC++は蚊帳の外なのか…せっかく今頑張って作ったのに(ToT)
0752初心紗NGNG
ごみん・・・ 礼を言う暇もなかったですが・・・ C++は前人未踏の世界です。 
0753デフォルトの名無しさんNGNG
>>752
馬鹿は素直に落第しろよ
0754デフォルトの名無しさんNGNG
無礼にも程がある
0755デフォルトの名無しさんNGNG
前人未踏って(w
「君が」未踏なんだろ?
0756デフォルトの名無しさんNGNG
ところでさ、宿題スレって要らなくない?
こんなバカが増えるだけじゃないの?
0757デフォルトの名無しさんNGNG
>>756
宿題スレは必要だ。
CやC++スレに持ってこられたらそれこそ迷惑だからな。
0758デフォルトの名無しさんNGNG
要するに昔微妙に流行った広告ホイホイみたいなもんか
0759デフォルトの名無しさんNGNG
初心者ですからスレの違いなんてわかりませんよキモヲタども

みたいな態度でどこの関連スレにも現れるのが現状ですが・・・
0760デフォルトの名無しさんNGNG
>733
#include <stdio.h>
#include <ctype.h>
int main(int argc, char* argv[])
{
  FILE* pFile;
  char acBuf[16];
  char acLine[79+1];
  char acTmp[8+1];
  unsigned char uc;
  int iCount;
  int iRead;
  int i;

  if(argc != 2) {
    fprintf(stderr, "Usage: fildmp filename\n");
    return 1;
  }
0761デフォルトの名無しさんNGNG
  pFile = fopen(argv[1], "rb");
  if(pFile == NULL) {
    fprintf(stderr, "ファイルのオープンに失敗しました。\n");
    return 1;
  }

  for(iCount = 0; ; iCount += 16) {
    memset(acLine, ' ', 79);
    sprintf(acTmp, "%08X", iCount);
    memcpy(acLine, acTmp, 8);

    iRead = fread(acBuf, 1, 16, pFile);
    for(i = 0; i < iRead; i++) {
      uc = (unsigned char)acBuf[i];
      sprintf(acTmp, "%02X", uc);
      memcpy(acLine + 9 + i * 3, acTmp, 2);
      acLine[57 + i] = isgraph(uc) ? (char)uc : '・';
    }
    acLine[79] = 0x00;
    printf("%s\n", acLine);
    if(iRead != 16) {
      break;
    }
  }

  fclose(pFile);
  return 0;
}
0762 ◆FIcNi4f8js NGNG
そう言えば宿題の採点結果がどうだったかを書き込むやつは見たこと無いな。
0763デフォルトの名無しさんNGNG
そんなもん学期末になるまで,誰も気にしねぇだろ。

A取らなきゃ気がすまない,絶対あのゼミ行くぜ!,
って奴なら別かもしれんが,そんな奴ぁはここに来ない。
0764デフォルトの名無しさんNGNG
2ちゃんのdat形式のファイルID取り出しがうまくいかないorz
名前や本文にに <>とか空白とか含めることできるから、なかなかいい方法が見つからないorz
なんかいい方法教えてくださいorz
0765デフォルトの名無しさんNGNG
>>764
どこの学校の宿題ですか?
0766デフォルトの名無しさんNGNG
人生の宿題でつよ。
0767デフォルトの名無しさんNGNG
>>764
datをよく見よ。
<は<>は>で区切り以外で<>は出てこない。
例外でトリップがあると名前</b>トリップ<b>という風になっている。

他にも♥など詳しくは html 特殊文字 でぐぐれ。
0768デフォルトの名無しさんNGNG
すまん

datをよく見よ。
<は&lt; >は&gt;で区切り以外で<>は出てこない。
例外でトリップがあると名前</b>トリップ<b>という風になっている。

他にも&hearts;など詳しくは html 特殊文字 でぐぐれ。
0769デフォルトの名無しさんNGNG
ネコミミモードです♥
0770764NGNG
>>768
あ、そっかなるほど。わかったよ(`∇´*)ノオウ!!
ありがと�d(*´`)
0771デフォルトの名無しさんNGNG
&amp;くらい使えよ
0772デフォルトの名無しさんNGNG
任意の動画ファイルを読み込んで輝度値を2〜5倍して出力しなさいと言う問題があるのですが
動画ファイルの読み込みがうまくいかずになんともなりません。
誰か教えていただけませんか?
0773デフォルトの名無しさんNGNG
>>772
どううまくいかないのか具体的に述べよ。
0774772NGNG
>>773
えーと、元のファイル「test.avi」っていうのがあったとして
それの輝度値を変えたのが「test2.avi」としますよね
このtest2.avi自体は生成されるんですけど、開こうとしたりプロパティ見ようとすると
アプリケーションの強制終了が起こるんです。
んで、動画の各フレームを読み込む部分が悪いのかなと思ってそこをいじってたら
ワケが分からなくなってしまったので質問したんです。もう丸々一から作り直そうかと思ってます。
0775772NGNG
で、その際にまたファイルの読み込み部でエラー起こったらイヤなので
その辺りを教えていただければと。ちなみにCです。
0776デフォルトの名無しさんNGNG
ファイルフォーマットを詳しく書かないと無理
APIで読むならスレ違い
0777772NGNG
ヘッダなしで1ドットあたりに8bitの信号が並んでいるものです。
720*480でYUV信号がTOPとBOTTOMで半分ずつになっているようなものです。
0778デフォルトの名無しさんNGNG
CIAから送られた座標データをCプログラムで判断して
仮に[x,y]=[1,0]なら "そこは日本です。"とCIAagentに返すプログラムを教えてくだない。
0779デフォルトの名無しさんNGNG
>>778
氏ね
0780デフォルトの名無しさんNGNG
>>779
死ねってなんだよこのやろう。
お前、俺が死んだら責任とれんのか?
人にはいっていいことと悪いことがあんだよ。
そんなこともわかんねえのか?プログラムなんかやってないで
もっと人間としてのマナーを学んだほうがいいんじゃない?
だいたい君、たいした実力もないのに、下を見て悦になるタイプでしょ。
いややわあそんなの。向上心持とうぜうんこちゃんw
0781780NGNG
いや、まだ怒りがおさまりません。
こっちが必死になって聞いているのに
無下に投げ捨てるその態度もさることながら
死ねなどという私の尊厳を無視した対応には
大変遺憾である。
>>779さんにはぜひとも謝罪を要求したく思います。
わかったな、たかし。
0782デフォルトの名無しさんNGNG
コピペ?
ま、どっちにしろ面白くも何とも無いが
0783デフォルトの名無しさんNGNG
┌───────────────────
│あ、どうもスイマセン、>>780がお騒がせしました・・・
└───v───────────────
     /⌒\ っ   /\
    /'⌒'ヽ \ っ/\  |
    (●.●) )/   |: | すぐ連れて逝きますんで・・・
     >冊/  ./     |: /
   /⌒   ミミ \   〆
   /   / |::|λ|    |
   |√7ミ   |::|  ト、   |
   |:/    V_ハ   |
  /| i         | ∧|∧
   и .i      N /⌒ ヽ) >>780
    λヘ、| i .NV  |   | |
      V\W   ( 、 ∪
              || |
              ∪∪
0784デフォルトの名無しさんNGNG
(((((;゚д゚)))))ガクガクブルブル
↑
>>779

WWW
0785デフォルトの名無しさんNGNG
何だ。釣りかキチガイか。
0786デフォルトの名無しさんNGNG
この俺の願いを叶えてくれる優しいプログラマーいない?
0787デフォルトの名無しさんNGNG
とりあえず書いてみろ
0788デフォルトの名無しさんNGNG
>>787
あまりにも図々しい願いだからちょっと気が引けてるの(;´Д`)

とりあえずプログラムかじったこともない自分だけどあと6時間ぐらい
自分で考えてやってみる
0789デフォルトの名無しさんNGNG
じゃあ書くなよカスが
0790デフォルトの名無しさんNGNG
ドラゴンボールを集めてきたら
願いを叶えてやらんでもない。
0791デフォルトの名無しさんNGNG
くそここは厨の掃き溜めかよ。
0792デフォルトの名無しさんNGNG
>>791
例えばお前とかな。
0793791NGNG
本当に嫌なスレだよ。
単に状況を嘆くスレしただけでいちいち>>792のような
煽りがつく。もうこのスレの汚さに吐き気さえ催すよ。
>>792 もういいかげんそういうの止めろよ。みんな迷惑してるぞw
0794791NGNG
2行目 スレ→レスな。
どうせ修正しないと、ねちっこく叩いてくるんだろ?
もうあきあきしてるんだよ、そういうの。
もっと寛大な心でいられないものかねえ。
0795デフォルトの名無しさんNGNG
またアンチぼるじょあが暴れているのか。
0796デフォルトの名無しさんNGNG
【ネタ投入】
標準入力から入力を読み取って標準出力に出力する電卓プログラムを書け。
ただし、次の演算子、関数をサポートすること。変数に対応する必要はない。
(単項演算子)+, -
(2項演算子)+, -, *, /, %
(関数)sin, cos, tan, arcsin, arccos, arctan, sec, cosec, cot, sinh, cosh, tanh,
arcsinh, arccosh, arctanh, log10(底が10の意), log2(底が2の意), log(底がe),
exp, pow
0797ぼるじょあ ◆yBEncckFOU NGNG
>>795 呼んだ?
0798デフォルトの名無しさんNGNG
課題が出たのですが分からないので教えてください

この間に、英文テキストファイル(単語数100語程度)を用意し、
これを処理するプログラムをつくります。

プログラムは、
(1)テキストファイルを単語ごとに区切る
(2)単語をソートして並べ替える
(3)ファイルに保存する
という流れで作ってください

↑という問題です
初心者にも分かりやすくお願いします
0799デフォルトの名無しさんNGNG
awk,sortを使ってはダメか?
0800799NGNG
system()等を使って
0801デフォルトの名無しさんNGNG
>>798
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <boost/tokenizer.hpp>

int main(){
    std::string filename, line;
    std::vector<std::string> words;
    std::getline( std::cin, filename );
    std::ifstream ifs( filename.c_str() );

    while( std::getline( ifs, line ) )
    {
        typedef boost::char_separator<char> myseparator;
        typedef boost::tokenizer<myseparator> mytokenizer;
        typedef mytokenizer::iterator iter;
        myseparator sep( " \t" );
        mytokenizer tokens( line, sep );
        for( iter it = tokens.begin(); it != tokens.end(); ++it )
            words.push_back( *it );
    }

    std::sort( words.begin(), words.end() );
    ifs.close();
    std::ofstream ofs( "out.txt" );
    for( std::vector<std::string>::iterator it = words.begin(); it != words.end(); ++it )
        ofs << *it << std::endl;
    ofs.close();
    return 0;
}
0802798NGNG
>>801
ありがとうございます!!
これからやってみます!!
0803デフォルトの名無しさんNGNG
>>802
ちゃんと読んで返事してるか?
0804デフォルトの名無しさんNGNG
void sortAndOut(const char * inFileName, const char * outFileName)
{
char * p = new char[strlen(inFileName) + strlen(outFileName) + 30];
sprintf(p, "xargs -n1 echo < %s | sort > %s", inFileName, outFileName);
system(p);
}
0805804NGNG
あー、deleteするの忘れたよ。
0806デフォルトの名無しさんNGNG
>>801
宿題なんだから標準以外のライブラリを使うなってw
0807デフォルトの名無しさんNGNG
行数制限に合わせるために激しく醜いが、一応標準だけ。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
#include <vector>
int operation(const char* input_name, const char* output_name) {
  std::ifstream input(input_name);
  if (!input) return -1;
  const char delimiters[] = " \t,.;:\"?!";
  std::vector<std::string> words;
  std::string line;
  while (getline(input, line)) {
    std::string::size_type start_index = line.find_first_not_of(delimiters);
    while (start_index != std::string::npos) {
      std::string::size_type end_index = line.find_first_of(delimiters, start_index);
      if (end_index == std::string::npos) end_index = line.length();
      if (end_index - start_index != 0) words.push_back(line.substr(start_index, end_index - start_index));
      start_index = line.find_first_not_of(delimiters, end_index);
    }
  }
  std::sort(words.begin(), words.end());
  std::ofstream output(output_name);
  if (!output) return -1;
  for (std::vector<std::string>::iterator first = words.begin(), last = words.end(); first != last; ++first) output << *first << std::endl;
  return 0;
}
int main(int argc, char* argv[]) {
  if (argc != 3) {std::cout << "invalid arguments!" << std::endl;return 1;}
  else return operation(argv[1], argv[2]);
}
0808デフォルトの名無しさんNGNG
open InFile, "Input.txt"; # 入力用ファイルを開く
my $FileInputContents = join '', <InFile>; # 文章を1文字列として変数に読み込み
close InFile;

my (@Words) = $FileInputContents =~ /(\w+)/g; #文章から単語を抽出し、配列に入れる
@Words = sort { $a cmp $b } @Words; # 配列に入っている単語をソート

open OutFile; # 出力用ファイルを開く
print OutFile join ' ', @Words;
close OutFile;
-----------------------------------------
まぁ、これはPerlだわな。
だが一旦中間的に落としているものとしてはわかりやすい(目的と合致しとるし)

C++でも上の入力と出力は簡単にできる。
真ん中の部分をいかにC++で書くかが問題だが、「課題」であれば、ソートを
使用してはなんの意味もないだろう。

課題の目的は
・「トークンへと分解するのを自作のアルゴリズムでできるか」
・「単語同士を比較してソートするのを自作のアルゴリズムでできるか」
ってことだ。よってここは標準関数(クラスメソッド含め)使用すべきではないと思う。
(そうでなければ、何の思考の鍛錬にもつながらないので意味を成してない。)
あとは自分でやりなされ。
0809デフォルトの名無しさんNGNG
798がC++を使ってプログラム手法を学んでいるのか
単にC++を学んでいるのかによるな。
0810デフォルトの名無しさんNGNG
単にCを学んでいるという可能性もあるな。
0811デフォルトの名無しさんNGNG
Cだとコールバック書くのがウザイからなあ
0812デフォルトの名無しさんNGNG
>>807
std::set に突っ込めよと思うのは気のせい?
0813デフォルトの名無しさんNGNG
確かに宿題でboostはやりすぎだなw
0814807NGNG
>>812
std::multiset(おそらく複数の同一要素を格納する必要があるから)は
俺も考えたんだが、ただvectorを後で一気にソートしたほうが早い
のではないかと思ったから。実験してないけど。
0815デフォルトの名無しさんNGNG
#include <iostream.h>
#include <fstream.h>
class coord{
private:
int x, y;
public:
coord(int a = 0, int b = 0){x = a; y = b;}
friend ostream& operator<<(ostream& stream, coord ob);
friend istream& operator>>(istream& stream, coord& ob);
};
ostream& operator<<(ostream& stream, coord ob){
stream << " x: " << ob.x << " y: " << ob.y << endl; return stream;}
istream& operator>>(istream& stream, coord& ob){stream >> ob.x >> ob.y; return stream;}
int main(){
coord a(10, 20), b(30, 40), c, d;
ofstream out("test");
out << a << b;
out.close();
ifstream in("test");
in >> c >> d; cout << c << d;
in.close();
return 0;
}
using namespace std;にしてないのは、VC++6.0を使ってて、operator<<でエラーが出るからです。
で、お聞きしたい事は、結果が10 20 30 40と得られると思ったのですが、実際は0だけにしかなりません。
どうすれば、望んだ結果を得ることができるのでしょうか?
お願いします。
0816デフォルトの名無しさんNGNG
>>815
失敗したのは c, d の出力だけ?
ストリームに数値と別に "x:" や "y:" が挿入されてるせいで int にちゃんと変換できていないと思われ。
0817デフォルトの名無しさんNGNG
>>816
失敗したのはc、dだけです。
どこを変えたいいんでしょうか?
0818デフォルトの名無しさんNGNG
>>817
とりあえず " x: " や " y: " を消して、ob.x と ob.y を ' ' で区切って出力するだけにしてみ
0819デフォルトの名無しさんNGNG
>>818
あっ できました・・・。
これってどういう事なんでしょうか?
なぜ文字を消して、' 'を書くことでうまくいったんでしょうか?
0820デフォルトの名無しさんNGNG
良く嫁やボケ
0821デフォルトの名無しさんNGNG
もしかして、釣りだったとか?
0822デフォルトの名無しさんNGNG
>>815
> stream << " x: " << ob.x << " y: " << ob.y << endl;
で出力が「 x: 10 y: 20(改行)」になるよな。んで
> stream >> ob.x >> ob.y;
「x:」とか「y:」はどこで読み込むんだい?
0823ぼるじょあ ◆yBEncckFOU NGNG
(・3・)エェー
チミ の宿題どんどん片づけちゃうよー.オイデオイデー.
0824デフォルトの名無しさんNGNG
>>823
代わりに試験勉強してください
0825デフォルトの名無しさんNGNG
>>824
試験結果に慄く君を見られるなら喜んでさせて頂く
0826デフォルトの名無しさんNGNG
>>823
>>796
0827デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=121
1a
2b
3c
3d
5e
12335
abcde
上のように表示するプログラムですが、Before[i]を表示した後に必ず不正な処理などと出て結果が出てきません。
どうもTurnStrがおかしいと思うのですがどうすればいいのでしょうか?
0828从*・ 。.・从 ◆SayuminPM. NGNG
>>827
7c7
< for (int j = 0; i < ToNum; j++)
---
> for (int j = 0; j < ToNum; j++)
0829デフォルトの名無しさんNGNG
>>828
直りました。
ありがとうございます。
0830デフォルトの名無しさんNGNG
CASLアセンブラを設計し、プログラムを作成しなさいという課題なんですが教えてください。Cでおねがいします。

(1)アセンブラは、例1に示すようなソースファイルを読み込み、例2の形式で結果をファイルに出力する。
(2)変換処理は2パス形式とし、1パス目にラベルの登録を行い2パス目に各コード変換を行って出力する。
(3)内部で処理される主となるデータの構造体をきちんと定義する。
(4)入力ファイルは、大文字、小文字、タブなどの文字を想定して認識できるようにする。
0831830NGNG
(例1) 入力ファイル例
push 0,gr1 ;レジスタの退避
push 0,gr2 ;
push 0,gr3 ;
ld gr2,2,gr4 ;翻訳アドレスを初期化する
dis_10 cpl gr2,1,gr4 ;逆アセンブルの終了条件を調べる
jmi dia_20 ;逆アセンブルの実行
jmp dia_90 ;逆アセンブルの終了
dis_20 lea gr3,dbuff ;編集バッファアドレスを初期化する
lea gr0,0 ;
st gr0,esize ;編集データサイズを初期化する
ld gr0,ebufs ;GR0=編集バッファサイズ
lea gr1,0,gr3 ;GR1=編集バッファアドレス
call clrbuf ;編集バッファをクリアする
lea gr0,gr2 ;GR0=翻訳アドレス、GR3=編集バッファアドレス

0832830NGNG
(例1) 入力ファイル例
push 0,gr1 ;レジスタの退避
push 0,gr2 ;
push 0,gr3 ;
ld gr2,2,gr4 ;翻訳アドレスを初期化する
dis_10 cpl gr2,1,gr4 ;逆アセンブルの終了条件を調べる
jmi dia_20 ;逆アセンブルの実行
jmp dia_90 ;逆アセンブルの終了
dis_20 lea gr3,dbuff ;編集バッファアドレスを初期化する
lea gr0,0 ;
st gr0,esize ;編集データサイズを初期化する
ld gr0,ebufs ;GR0=編集バッファサイズ
lea gr1,0,gr3 ;GR1=編集バッファアドレス
call clrbuf ;編集バッファをクリアする
lea gr0,gr2 ;GR0=翻訳アドレス、GR3=編集バッファアドレス

0833830NGNG
(例2) 出力ファイル例
LINE ADDR OBJECT SOURCE
1 0000 7001 0000 push 0,gr1 ;レジスタの退避
2 0002 7002 0000 push 0,gr2 ;
3 0004 7003 0000 push 0,gr3 ;
4 0006 1023 0002 ld gr2,2,gr4 ;翻訳アドレスを初期化する
5 0008 4124 0001 dis_10 cpl gr2,1,gr4 ;逆アセンブルの終了条件を調べる
6 000A 6100 000E jmi dia_20 ;逆アセンブルの実行
7 000C 6400 004E jmp dis_90 ;逆アセンブルの終了
8 000E 1230 0056 dis_20 lea gr3,ebuff ;編集バッファアドレスを初期化する
9 0010 1200 0000 lea gr0,0 ;
10 0012 1100 00A7 st gr0,0 ;編集データサイズを初期化する
11 0014 1000 00A6 ld gr0,esize ;GR0=編集バッファサイズ
12 0016 1213 0000 lea gr1,0,gr3 ;GR1=編集バッファアドレス
13 0018 8000 00AD call clrbuf ;編集バッファをクリアする
14 001A 1202 0000 lea gr0,0,gr2 ;GR0=翻訳アドレス、GR3=編集バッファアドレス
0834830NGNG
すいません。例1を間違えて2回やってしまいました・・・
0835デフォルトの名無しさんNGNG
>830
レベル高杉。ボソッ
0836デフォルトの名無しさんNGNG
ちょっと時間掛かりそうだな
0837デフォルトの名無しさんNGNG
こんなのできねーよ。
熟練プログラマじゃないと。
0838デフォルトの名無しさんNGNG
じゃあ、熟練じゃない(アマ)プログラマの俺が挑戦してやるよ
0839830NGNG
すいません、ありがとうございます。
しかしそんなに難しいものを出してくるオレの学校っていったい・・・
できている人いるのだろうか・・・
0840デフォルトの名無しさんNGNG
余因子行列を展開するプログラムを教えて下さい。
0841デフォルトの名無しさんNGNG
>>839
宿題としては大掛かりすぎるけど、期末課題としてなら妥当では。
本気で取り組めば出来ない問題ではないかと。
ただ掲示板で手軽に答えられるほど簡単じゃないな。
0842デフォルトの名無しさんNGNG
オレも卒業課題でCASLコンパイラの作成したなぁ
実際に作ろうとすると、仕様をもっと深く決めないといけない
0843デフォルトの名無しさんNGNG
俺は授業でCコンパイラ作らされた罠
0844デフォルトの名無しさんNGNG
漏れもCコンパイラつくったけど、教科書どおりにやってただけで
自分で1からは無理ぽね。
0845デフォルトの名無しさんNGNG
命令に対応するコードって自由に作っていいんだよな。。。
0846830NGNG
特に指定がないので多分いいと思います。
0847デフォルトの名無しさんNGNG
時間かかりそ〜。マクロ命令なんてのもあるんだ
0848デフォルトの名無しさんNGNG
お願いします。

問:
正の整数aとbを入力し、aのb乗を求めるプログラム。
反復処理を用いよ。
0849デフォルトの名無しさんNGNG
/* int a = ?, b = ?; */
int i, n;

n = 1;
for(i = 0; i<b; i++) n *= a;

printf("%dの%d乗は%dです。", a, b, n);
0850デフォルトの名無しさんNGNG
すぐオーバーフローしそう
0851848NGNG
本当にすみません!!
c++でお願いします。書き忘れましたすみません。
0852デフォルトの名無しさんNGNG
849はC++だろうが
0853デフォルトの名無しさんNGNG
CはC++に部分集合として含まれる。よってCのコードはすなわち
C++のコードでもある。
0854デフォルトの名無しさんNGNG
>>848
cout使えつうことか?
0855デフォルトの名無しさんNGNG
じゃあ、C++風に・・・

// #include <iostream>
// int a = ?, b = ?;

// ... int main()とか
int n = 1;
for(int i = 0; i < b; i++) n *= a;

std::cout << a << "の" << b << "乗は" << n << "です。" << std::endl;

//... returnとか
0856デフォルトの名無しさんNGNG
cout使うとマヌケなプログラムに見えてしまうな・・・
0857デフォルトの名無しさんNGNG
http://www.geocities.jp/i035192/server2.c
上のソースを変更してクライアントから入力した文字をそのまま返す(エコーバック)ことを実現するサーバプログラムを作成したいのですが、
どこを変更したらいいのかわかりません。
ちなみにクライアント側は
http://www.geocities.jp/i035192/client3.c
を使用します。
エコーバックの実現方法についての説明文も必要なので教えてください
0858デフォルトの名無しさんNGNG
>>856
char str[256];
sprintf(str, "%dの%d乗は%dです。", a, b, n);

std::cout << str << std::endl;
0859デフォルトの名無しさんNGNG
>>858
統一感のないコードだな
0860デフォルトの名無しさんNGNG
>>857
ひどいな、コメントが「サバープログラム」だったり
機種依存文字が入ってたり…
0861デフォルトの名無しさんNGNG
>>857
一度に全てのデータを送受信できると決めつけて
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=242
0862857NGNG
>>860
サバープログラムは私の打ち間違えです(恥
機種依存文字入ってました?
文字化けした部分を直したりしたのですが気づかなかったです・・・

>>861
ありがとうございます。
これで何とか実験が出来ます。
0863デフォルトの名無しさんNGNG
再帰を使って(for while使用禁止)x^nをO(log(n))で計算するアルゴリズムが分かりません
ご教授お願い致します
0864デフォルトの名無しさんNGNG
>>863
n が2の冪でいいなら簡単なんだけど。
0865デフォルトの名無しさんNGNG
>>864
すべての自然数nです
0866デフォルトの名無しさんNGNG
>>863
xは整数でいいの?
0867デフォルトの名無しさんNGNG
>>866
はい
0868デフォルトの名無しさんNGNG
#include <stdio.h>

#define BUF_SIZE 256

int npow(int x, int n)
{
if(!n){
return 1;
}else{
int p = npow(x, (n >> 1));
if(n & 1){
return p * p * x;
}else{
return p * p;
}
}
}

0869デフォルトの名無しさんNGNG
int main(void)
{
char buf[BUF_SIZE];
int x, n;

do{
x = n = 0;
printf("x, n = ");
fgets(buf, BUF_SIZE, stdin);
sscanf(buf, "%d,%d", &x, &n);
printf("%d ^ %d = %d\n", x, n, npow(x, n));

printf("repeat?(y/n)");
fgets(buf, BUF_SIZE, stdin);
}while(buf[0] != 'n')

return 0;
}
0870デフォルトの名無しさんNGNG
>>863
int pow(int x, int n)
{
    return n == 1 ? x : x * pow(x, n - 1);
}
0871870NGNG
あ、nは正数の方向で。
0872デフォルトの名無しさんNGNG
スマソ
誤
}while(buf[0] != 'n')
正
}while(buf[0] != 'n');
だった orz
0873デフォルトの名無しさんNGNG
>>870
それはO(n)じゃないか?
0874デフォルトの名無しさんNGNG
>>870
それO(n)だよ
0875デフォルトの名無しさんNGNG
ケコーン
0876870NGNG
普通に問題読んでなかった…スマン(_ _;
0877デフォルトの名無しさんNGNG
>>868

0 ^ 0 = 1 でよかったっけ?
n は自然数だから考えなくていいのかな?
0878デフォルトの名無しさんNGNG
0^0は不定じゃなかろか
0879デフォルトの名無しさんNGNG
要するに
pow(3,10)=pow(3^2,10/2)=pow(9,5)=9*pow(9, 4)=9*pow(9^2,4/2)=9*pow(81,2)=9*pow(81^2,2/2)=9*pow(81^2,1)
で半分ずつになっていくから O(logN) ってこと?
0880デフォルトの名無しさんNGNG
0^0
http://science3.2ch.net/test/read.cgi/math/1093253262/
0881デフォルトの名無しさんNGNG
>>879
pow(3,10) の場合 (log(2)10) 回(約3〜4)の計算量で終わる
0882デフォルトの名無しさんNGNG
すぐオーバーフローしそう
0883デフォルトの名無しさんNGNG
int
power( int n, int pow )
{
    if( pow <= 0 )
        return 1;
    if( pow & 0x1 )
        return n * power( n * n, --pow >> 1 );

    return power( n * n, pow >> 1 );
}
0884デフォルトの名無しさんNGNG
普通にforループで掛け合わせていくのと、>>883ってどっちのが早いの?
0885デフォルトの名無しさんNGNG
>>884
オーバーフローしないとして、
Nが大きくなった場合は
>>883 や >>868 の方が明らかに速い

ところで、
--pow >> 1 のところの -- って必要ないような
0886デフォルトの名無しさんNGNG
>>884
n=400にしても10回しか呼び出されない
0887デフォルトの名無しさんNGNG
2^100 = 1267650600228229401496703205376
にしても100回くらいしか呼び出されない.
0888デフォルトの名無しさんNGNG
2^100 は再帰7回だろ?
0889デフォルトの名無しさんNGNG
n次の正方行列Aから第i行と第j列を取り去って得られるn-1次の正方行列を
求めるプログラムを教えてください。
0890889NGNG
Cでお願いします
0891デフォルトの名無しさんNGNG
>>889
いきなりそういう宿題が出されたのではなく、恐らくその前提となるn次行列を取り扱うロジックが
講義で使われるか以前の宿題として出ていたのではないかな?
そうであれば、その前提を提示することなく出題者の意図するような回答は得られないと思うのだが。
0892デフォルトの名無しさんNGNG
宿題スレって先生が見てて、2chで聞いたの誰だって
怒られないのかね。
0893デフォルトの名無しさん NGNG
>>669
この実行の仕方がまじでわからん、だれか詳しくおしえてくれ
ちなみに初心者でCpad for LSI使ってる
コンパイラは通ったが実行方法まるで不明
0894デフォルトの名無しさんNGNG
宿題自分でやるやつと人に聞くやつの割合ってどれくらいだろう?
さすがに2chで聞くようなのは下から0.1%未満だろうと思うけど。
0895デフォルトの名無しさんNGNG
>>893
そのくらいソースから読み取れ
0896デフォルトの名無しさんNGNG
>>892
以前は宿題が載せてあるURLかいたお馬鹿ちゃんがいたから
先生にちくったりしてましたよwww

0897デフォルトの名無しさんNGNG
893ですが
まじで初心者なんで誰かおしえてください
0898デフォルトの名無しさんNGNG
ヤクザですがと言われてもな
0899デフォルトの名無しさんNGNG
数式書いたファイルをコマンドライン上から指定すれば標準出力にでてくる
Cpad使ってるなら実行時引数っていうのがあるからそこにファイル名
0900デフォルトの名無しさんNGNG
893でつ
コンパイラわかりました!!
つーかこのプログラム>>669を作った方、つーかプログラムわかる方だれでもよいので
・アルゴリズム・データ構造の説明(少なくていいです)
・スピードやメモリの効率向上のためなど工夫した点
を聞きたいのですが、おねがいします
0901デフォルトの名無しさんNGNG
宿題を他のスレにマルチポストするバカ>>900は放置モードで♥
0902デフォルトの名無しさんNGNG
>>900
どこにでも貼り付け杉
0903デフォルトの名無しさんNGNG
>>901,>>902
つーかあんたらなんなの?
探すなんてよほどの暇人ですね

親切な人がいないんだな、2ちゃんって
0904デフォルトの名無しさんNGNG
逆ギレキター
なんで親切にしなきゃならんのだ
0905デフォルトの名無しさんNGNG
さすが893
0906デフォルトの名無しさんNGNG
>>903
バカの書き込みをわざわざ探す奴はいない。
巡回先で見つけただけ。
0907デフォルトの名無しさんNGNG
>>903
つーかお前は何様?
つーかお前の態度が悪いんだろ?2ch全体を勝手に貶めない様に。
0908デフォルトの名無しさんNGNG
>>907
つーかマルチはそんなに悪いこととは知らず
すいません
ただ早急に答えが欲しくて、すいません。
二度としませんから誰かおねがいします。本当に困ってます
0909デフォルトの名無しさんNGNG
LR(1)再帰下降パーサ
0910デフォルトの名無しさんNGNG
んなもんソース読んで適当にでっちあげろよ
宿題としてそれが出たのなら、そのための知識は持ってるはず
どこまでも人に頼りすぎだ
0911デフォルトの名無しさんNGNG
>>909
で実行速度向上のために再帰しないって書くのか
0912デフォルトの名無しさんNGNG
>>908
自分でソース読んだ方が速いと思う。
結局質問するにも限りは有ると、私は思う。
Cの関数しか使ってなさげだから、Cの標準関数の載ってる
本とか買ってみたらどう?サイト探してみるとか。
0913デフォルトの名無しさんNGNG
>>912
つーかはやく答え教えろ
893なんだぜwww
0914デフォルトの名無しさんNGNG
>>912
本当に時間がないんですよ。
おねがいできませんか?
0915デフォルトの名無しさんNGNG
>>900
・ソース読め
・ソース読め
これで回答すればいいじゃん
0916デフォルトの名無しさんNGNG
> ・アルゴリズム・データ構造の説明(少なくていいです)
むしゃくしゃしてやった。
> ・スピードやメモリの効率向上のためなど工夫した点
速ければなんでも良かった。
今は2chでマルポしている。
0917デフォルトの名無しさんNGNG
>>914
>>669から1週間
お前は何をやってたんだ?
手前のケツぐらい手前で拭けよ
>>669がちゃんと便所紙渡してくれただろ
0918デフォルトの名無しさんNGNG
>>916
さすがにそれだけでは・・・
工夫した点はプログラムのここをこうしたとか書いて欲しいです

無理はいいませんが
0919デフォルトの名無しさんNGNG
というか基本過ぎて解説できない罠。
解説してもらうより読んだ方が速いと思ってる人の方が多そう。
というかプログラムで何がしたいんだ〜〜。
というかマジレスする自分に鬱。。。
0920デフォルトの名無しさんNGNG
>>919
基本すぎの単純な解説でいいんでおねがいできませぬか?
0921デフォルトの名無しさんNGNG
確かに。ソース読んでみたが、コメントついていない以外は普通に読めるコードだな
CASLのコードがわかってて、Cの基本構文わかってれば全然問題ない

けど、for(;;)は宿題としては嫌がられるかもしれない
そのあたりから「なぜfor(;;)なのか」とかを適当にでっち上げればいいかもしれない

少なくとも、この程度のものが読めないということは、読む気がないんだろう
手助けするような相手じゃないな
0922デフォルトの名無しさんNGNG
>>921
自分はまったくプログラムわかってないんで、お願いします!

まじ初めてプログラムの授業でて、初めてCを見たレベルなんです
0923デフォルトの名無しさんNGNG
事後処理はスレ違い。
0924デフォルトの名無しさんNGNG
・ハフマン法を利用した逐次検索を行い、その結果を標準出力からランダムアクセスで出力する
・動的なハフマンツリーを構築するには処理速度が不安だったため、
 静的にツリーを保持し、データの入力をランダムアクセスにすることによってループを減らした
 また、論理演算にインラインアセンブラを使用するというアイディアをアドバイスされたので、
 出力ルーチンをアセンブラ化することによって高速化を図った


こんなもんでどうだ?
0925デフォルトの名無しさんNGNG
>>924
ワロタ
どこから突っ込めばいい?
0926デフォルトの名無しさんNGNG
>>924
すげーこれ
でもこんな説明しかないんですか?
確かに面くらいそう
0927デフォルトの名無しさんNGNG
>>924
おいおい、こんなに詳しく書いちゃうと>>893は「この説明の解説をお願いします!!」
なんて言いかねんぞ
0928デフォルトの名無しさんNGNG
>>924
まあ単純に1から10行目に「これをやった」
11から16行目は「これをやった」みたいな感じでいいんですが、それは無理?
0929デフォルトの名無しさんNGNG
なんかスゲー鬱陶しいやっちゃな
こんな説明しかとかいいんですがとか。
0930デフォルトの名無しさんNGNG
>>929
ごめんとしかいえません。
無理ならかまいませんが、暇ならお願いしたいです
0931デフォルトの名無しさんNGNG
・単純に1〜231行目でコンパイルを行う
・1〜231行目で単純に速くなるように頑張った。
0932デフォルトの名無しさんNGNG
>>931
部分ごとの解説はC言語じゃきびしいんすか?
しょうがないっすね
0933デフォルトの名無しさんNGNG
>>932
>>924を暗記しておいて、「なんで解説がないのかね?」といわれたら大声で>>924を暗唱しろ
クラスの全員にお前をアピールするチャンスだ
みんながお前を見る目が変わること請け合い
0934デフォルトの名無しさんNGNG
>>933
レポだけなんだが、924を書けば先生はマニアックだからわかってくれるかいな?
0935889NGNG
4次以上の行列式の計算をするプログラムを教えてください。
0936デフォルトの名無しさんNGNG
誰も突っ込まないな
そのまま提出させたらどうせ「先生に怒られました!どうしてくれますか!」とか
来てウザくなるのがわかってるんだから、止めとけよ

>>893よ
>>924はネタだ
突っ込みを入れなくてもすむところがないぐらいネタだらけだ
あれを提出したら怒られるか笑いものにされるかのどっちかだ
0937デフォルトの名無しさんNGNG
class Matrix
{
int* m_pMat;
int m_n;
public:
Matrix(int n) {
m_pMat=(int*)malloc(sizeof(int)*n*n);
for(int i=0; i<=n; i++){
for(int j=0; j<=n; j++) {
if(i==j) m_pMat[i]=0; else m_pMat[i]=1;
}
}
m_n=n;
}
~Matrix() {free(m_pMat);}
void DeleteLineRow(int i, int j) {
i--,j--;
for(int y=i; y<m_n-1; y++){
for(int x=0; x<m_n; x++){
m_pMat[n*y+x]=m_pMat[n*(y+1)+x];
}
}
for(int y=0; y<m_n; y++){
for(int x=j; x<m_n-1; x++){
m_pMat[n*y+x]=m_pMat[n*y+(x+1)];
}
}
m_n--;
m_pMat=(int*)realloc( m_pMat, sizeof(m_n*m_n) );
}
}
Cではどう書けばいいのか。。。Cで書けなくなっちゃったよ。最近。
0938デフォルトの名無しさんNGNG
>>935=889
>891を読め。
それから突然問題を変えるな。
0939937NGNG
質問者じゃないですよ。私は。
0940デフォルトの名無しさんNGNG
>>939
誰もあんたに何かを言っているわけではないだろ?
0941937NGNG
ごめん。勘違いした。。。
0942デフォルトの名無しさんNGNG
ほのぼのした('-'*
0943デフォルトの名無しさんNGNG
934なんだけど
結局何分割にして説明はきびしいんですね

このスレは利用価値のあるスレなだけに残念
0944デフォルトの名無しさんNGNG
>>943
正直に
ちっ使えないスレだな
と言え。
0945デフォルトの名無しさんNGNG
>>944
いちいちそんなこと書くあんたもよっぽど暇人だな
俺も人のことはいえんが
0946デフォルトの名無しさんNGNG
893です
C言語にサブルーチンなんぞあるかは知らんけど
>>669
には何かサブルーチンがあるのか
だれか親切な人おしえてください
0947デフォルトの名無しさんNGNG
しつけえええええええええええええええ
0948デフォルトの名無しさんNGNG
まあええやん
ケチらずに教えてくだされ、頼む
そのためのスレじゃないの?
0949デフォルトの名無しさんNGNG
>>948
頼むからここじゃなくて友達かなんかに聞いてくれ。
0950デフォルトの名無しさんNGNG
幼稚園製に九九を教えたほうが有意義だ
0951デフォルトの名無しさんNGNG
>>946
育たぬ苗木に水や肥料与えるのは勿体無い
0952デフォルトの名無しさんNGNG
>>951
竹の開花を待つぐらい気長に待てば花が咲くかもよ
0953デフォルトの名無しさんNGNG
俺からも頼みますよー!!
0954デフォルトの名無しさんNGNG
次スレおながいします
0955デフォルトの名無しさんNGNG
OK。任せとけ。
0956デフォルトの名無しさんNGNG
本スレはなかなかの名スレだった
0957デフォルトの名無しさんNGNG
スマソ、新このホストでは〜 にやられた。
俺立ててないのに...

他の人、スレ立て頼む。
0958ぼるじょあ ◆yBEncckFOU NGNG
ダディクールの新スレ
http://pc5.2ch.net/test/read.cgi/tech/1097592876/
0959デフォルトの名無しさんNGNG
ダディクールかよ…
0960デフォルトの名無しさんNGNG
>>951-952
なにげにうまいこといいますねぇ
0961デフォルトの名無しさんNGNG


学生データーを入力し、学籍版g法順にソートしてファイルに出力しなさい。

構造体タグ名 Gakusei
メンバー命 Namber[10] 文字型(学籍番号)
         Name「20] 文字型(氏名)
         *next 次ポインタ

-----------実行画面-------------
学籍番号 ==>2ch003
氏名 ==>モナー
学籍番号 ==>2ch001
氏名===>ギコネコ
学籍番号 ==>2ch002
氏名==>ゾヌ
学籍番号==>999999
氏名==>999999(これで入力終了)

------------出力------------------
2ch001 ギコネコ
2ch002 ゾヌ
2ch003 モナー

なんだか入力した後にソートするのではなく、入力時点でソートをしていくとか?

ア、smdfヵsdmヵfべか3へ:ふぁえf

お願いしますです。


0962デフォルトの名無しさんNGNG
> 学籍版g法順
番号順じゃなくて「版g法順」か。先に定義しろ。

> メンバー命
新手の愛好家か?

> Namber[10]
Numberだろ。


下らない揚げ足取りはさておき。
入力時点で適切な位置に挿入していけばよし。
0963デフォルトの名無しさんNGNG
稲垣メンバー命
0964デフォルトの名無しさんNGNG
>>938
代因子行列知らないんですか?
0965デフォルトの名無しさんNGNG
知識のひけらかしでしか
0966デフォルトの名無しさんNGNG
>>964
俺は「余因子行列」と習ったが。そんな訳もあるんだ。
0967デフォルトの名無しさんNGNG
そんな訳ない
0968デフォルトの名無しさんNGNG
次スレが…
0969デフォルトの名無しさんNGNG
おまいらに宿題です。

あ と 3 年 以 内 に 外 に で よ う な。
0970デフォルトの名無しさんNGNG
>>969
宿題は家でやるから宿題なのです
0971デフォルトの名無しさんNGNG
>>969
つまり3年間はひきこもってもいいってことか
0972勉強中NGNG
>>961
昨日構造体勉強したばかりなので
961の問題興味あるのですが、nextって
何に使うのでしょうか?
0973デフォルトの名無しさんNGNG
「連結リスト」とか「リンクドリスト」で調べてみ
0974勉強中NGNG
早速の返事ありがとうございます。
がんばります。
0975デフォルトの名無しさんNGNG
next = this;
0976デフォルトの名無しさんNGNG
#include <stdio.h>

int main(void)
{
int n, m, s, sum = 0;

printf("n >>"); scanf("%d", &n);
printf("m >>"); scanf("%d", &m);
printf("s >>"); scanf("%d", &s);

for (; n <= m; n++)
if (n % s == 0) sum += n;

printf("sum = %d", sum);

return 0;
}
0977デフォルトの名無しさんNGNG
電気回路の問題なんですが
i=虚数 i*i=-1
R=1,L=0.001,C=0.0001
PI=円周率

基本式
w=2*PI*f
s=i*w
Z1=R+s*L
Z2=1/(s*C)
Z=(Z1*Z2)/(Z1+Z2)

で周波数を0〜100000まで変化させてZの絶対値を求める。
結果は周波数(一列目)Zの絶対値(2列目)というふうに出力する。

この仕様をみたしたプログラムをCで書くという問題です。
よろしくお願いします。
0978デフォルトの名無しさんNGNG
Cなのか。C++ではなく。


とりあえず

初期化
for(freq=0;f<=100000;f+=df){
z=f(freq);
freqとzを出力して改行;
}

で、
f(double freq);を別に用意して実際の計算をやらせるって感じで
0979デフォルトの名無しさんNGNG
3回目か…。
0980デフォルトの名無しさんNGNG
>>978
だから、これも3回目だけど、周波数1Hzきざみで評価するのはやめてくれ。
0981デフォルトの名無しさんNGNG
UDPを使用し、TCPと同等のエラー訂正等の機能を実装し、確実にデータを転送出来るプログラムを書きなさい。

言語はC++でお願いします。
md5でデータをチェックとかするんでしょうか?
そのチェック自体が正しく相手に伝わるかどうかとかで考え込んでしまっています。
0982デフォルトの名無しさんNGNG
CRC
0983デフォルトの名無しさんNGNG
彼女は以外に下付きダタw
暖かくて、入れた瞬間「ンハ!」とか訳の解らない声を出してしまい、爆笑された・・・
これでやっと童貞終了。21歳の秋ですた・・・・は〜・・・・・
0984デフォルトの名無しさんNGNG
すごい単純な処理なんですけどうまくいきません。何が違うのか
はずかしながら教えて頂けませんでしょうか。。。
単にファイルに値を書き込んでそれを読み取るだけです。

#include<stdlib.h>
int main()
{
FILE *f;
unsigned int l, m, n;
f = fopen("file.out","w");

unsigned int a = 1;
unsigned int b = 2;
unsigned int c = 3;
fprintf(f,"%x %x %x", a, b, c);

fseek(f, 0L, SEEK_SET);

fscanf(f,"%x %x %x", &l, &m, &n);

fclose(f);

if(r != rr || g != rg || b != rb)
fprintf(stderr,"error"),exit(1);
}
0985デフォルトの名無しさんNGNG
間違いました。最期の行は
if(a != l || b != m || c != n)
fprintf(stderr,"error"),exit(1);
です。宜しくお願いします。。。
0986デフォルトの名無しさんNGNG
WriteOpenしたストリームからは読み込めません。
fopen()の第二パラメータの違いについてマニュアルをよく読みましょう。
0987デフォルトの名無しさんNGNG
って、よく見たら突っ込みどころ満載だなぁ。
・保守性を考えたらカンマ演算子なんぞ使わずに普通に複文化したほうがいいぞ。
・main()には戻り値が必要。
・stdio.hもインクルードすべし。
0988986=987NGNG
未だあったw
・ここは宿題スレ。
・「最期」じゃ死んでしまう。
0989デフォルトの名無しさんNGNG
いろいろすいません。とりあえずw+でopenしてみたんですが
やはりうまくいきません。。。あと最初に#include<stdio.h>
最期にreturn 0;を足して置きました。
0990デフォルトの名無しさんNGNG
fseek()の前にfflush()してみ。
#普段読み書きは開きなおすから必要だったかどうか忘れたよ。
0991デフォルトの名無しさんNGNG
fprintf()は改行コードを出力してくれないから出力しておいた方がいいね。
・"%x %x %x\n"
・"error.\n"

どうでもいいけどfscanf()は"%x%x%x"でいいし、実際の運用にはエラーチェックが必要。
0992デフォルトの名無しさんNGNG
すいません。きちんと更新されてませんでした(;´Д`)。fflush無しで正常に
動きました。ありがとうございました!
0993デフォルトの名無しさんNGNG
さてと、あの32代目に引き継ぐのは気が退けるけどこっちはこのまま埋め立てるしかないかな?
0994デフォルトの名無しさんNGNG
やたらスレタイ絡んで煽ってるのはお前か
0995デフォルトの名無しさんNGNG
あれは一人では無いだろな
0996デフォルトの名無しさんNGNG
>980
増分をf++じゃなくてdfにしてるけど?
0997デフォルトの名無しさんNGNG
997 埋め立て中
0998デフォルトの名無しさんNGNG
998
0999デフォルトの名無しさんNGNG
999
1000デフォルトの名無しさんNGNG
OK
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。