トップページ⇒tech
1005コメント347KB

あなたの宿題、お姉さんが答えます

レス数が1000を超えています。これ以上書き込みはできません。
0001お姉さん NGNG
プログラミングの宿題で行き詰まったら私が相談に乗りましょう。
ただし、お姉さんを5分以上考え込ませる難解なものは受け付けません。
初心者のみお姉さんは歓迎します。
0002名無しさん@お腹いっぱい。 NGNG
ハァハァ… (*´Д`)
0003名無しさん@お腹いっぱい。 NGNG
初心者です、教えてください。
今日のプログラミングの課題で「おまんこをプログラミングせよ」
というのがありました。しかし僕は厨房なのでおまんこを見たこと
もありません。おまんこを見せてくれませんか?
また発展問題として「セクースをプログラミングせよ」というのも
出ました。発展問題を解くと成績が上がるのでぜひ協力してもらい
たいのですが。セクースの相手になってくれますか?
0004名無しさん@お腹いっぱい。 NGNG
>>3 ええ、いいわよ♥
http://www.sikosiko.com/
0005名無しさん@お腹いっぱい。 NGNG
>>4 ドメイン、いやすぎ (;´Д`)
0006名無しさん@お腹いっぱい。 NGNG
内容もすげー
0007名無しさん@お腹いっぱい。 NGNG
(゚Д゚)!!!!!!! http://www.sikosiko.com/image/oman.jpg
0008名無しさん@お腹いっぱい。 NGNG
ヨガー
0009名無しさん@お腹いっぱい。 NGNG
ブラスト
0010>7 NGNG
すげー
0011名無しさん@お腹いっぱい。 NGNG
32ビットアプリ32ビットOSと
16びっと以下同じ
64ビット
ってどうちがうんですか?
0012名無しさん@お腹いっぱい。 NGNG
ビットの数が>>11
0013名無しさん@お腹いっぱい。 NGNG
名前が>>11
0014名無しさん@お腹いっぱい。 NGNG
アドレス空間が>>11
0015名無しさん@お腹いっぱい。 NGNG
全角と半角が>>11
0016お姉さん NGNG
>11
知りません。ごめんね。
0017名無しさん@お腹いっぱい。 NGNG
サポートしてる命令の種類が>>11
0018名無しさん@お腹いっぱい。 NGNG
ハノイの塔ってどうやってとくんですか?
0019名無しさん@お腹いっぱい。 NGNG
マトリクス並みのAIの作り方教えてください。
0020名無しさん@お腹いっぱい。 NGNG
マジレス希望です。
C言語の関数に"strncpy"ってありますが、
この関数を自分で作れという問題がでました。
教えてください。
0021名無しさん@お腹いっぱい。 NGNG
>>20
ネタだろ?
0022名無しさん@お腹いっぱい。 NGNG
>>20
char* strncpy(char* dest , char* src , LONG length)
{
   int i;

   for(i=0 ; i<length ; i++) dest[i]=src[i];
   return dest;
}

char* strncpy(char* dest , char* src , LONG length)
{
   memcpy(dest , src , length);
   return dest;
}
0023名無しさん@お腹いっぱい。 NGNG
char* strncpy(char* d,char* s,int c)
{
for(;c!=0 && *s!='\0';c--) *d++=*s++;
}

もっと短くならんかなぁ...
0024名無しさん@お腹いっぱい。 NGNG
char* いらねぇ void(;_;
0025お姉さん NGNG
みんな、協力ありがと!
20のような初心者歓迎です。
0026お姉さん NGNG
>18
ネット上にソースのってるでしょ?
自分で探そう。見つからなかったら
また来てね
0027お姉さん NGNG
>19
AIについてはlispを少し知ってるくらいなので
知りません。ごめんね。
0028名無しさん@お腹いっぱい。 NGNG
ヤクニタタネー
0029名無しさん@お腹いっぱい。 NGNG
>27 ぴか虫なみの低脳。
0030名無しさん@お腹いっぱい。 NGNG
同意>28&29
0031名無しさん@お腹いっぱい。 NGNG
lisp も知らん。
0032Visual 名無しさん NGNG
char* strncpy(char* d,char* s,int c){
while( (c--) && (*d++=*s++) );
}
0033名無しさん@お腹いっぱい。 NGNG
char *strncpy(char * dst, const char * src, size_t count)
{
 char *start = dst;

 while (count && (*dst++ = *src++))
  count--;

 if (count)
  while (--count)
   *dst++ = '\0';

 return(start);
}
003418 NGNG
みつかんないですー。
0035お姉さん NGNG
>18
yahoo.comでhanoi.cで検索してください。

>31
LISP知らないなら私の勝ちじゃん。
0036名無しさん@お腹いっぱい。 NGNG
4人も書いていながら正しいのは33だけってのもすげえな。
もっとも33はVC++のcrtのソースあたりからの抜粋に見えるが。

以下はFreeBSDのSTRCPY(3)からの抜粋

The strncpy() copies not more than len characters into dst, appending
`\0' characters if src is less than len characters long, and not termi-
nating dst if src is more than len characters long.
0037お姉さん NGNG
なんで32と33はchar型なのかなあ?
voidでいいんじゃない?
003832 NGNG
いや、strncpyなんだからcharの方が自然でしょ。
0039名無しさん@お腹いっぱい。 NGNG
残ったバイトを0フィルする必要ってあるの?
004020 NGNG
みなさん真面目に答えてくれてありがとうです。
本当にネタではないです。

みなさんはプログラムを簡単にされてますが、

strncpyはn個の文字だけ複写します。文字列s2がnより短い場合は、
s1の後ろをn文字までNULLで埋めます。s2の長さがn以上であればNULLで終了する
結果は出ません。s1を返します。

という条件で

char *strncpy(char *,char *,int n);
main()
{ char a[512];

strncpy(a,"itteyosi",4);
printf("%s",a);
}
char *strncpy(char *s1,char *s2,int n)
{ int x;
char *p;
p = s1;


}

肝心な関数の部分が分かりません。
2ちゃんの頭脳よHELP!!!
0041名無しさん@お腹いっぱい。 NGNG
こんだけたくさんヒントやサンプルが出てるのにまだわからないの?
キミはぜんぜんやる気ないのかな?
0042名無しさん@お腹いっぱい。 NGNG
>>37
「voidでいい」もなにも、strncpyは「ANSI/ISO C標準ライブラリ関数」
なんだよ。

>>40
目が悪いのか?
それと、strncpyの仕様を良くみれば分かることだが、通常は
strncpyの後で、文字列をNULターミネートしてやる必要がある。
strncpy(a, "itteyosi", 4);
の後では、a[0]からa[3]には'i', 't', 't', 'e'が入り、a[4]以降は全く
変更されない。この場合はaは自動変数だから、この部分の内容は不定。
従って、これを次の行でprintfに渡した結果も同様に不定だ。
0043名無しさん@お腹いっぱい。 NGNG
VC++です
読み込んだファイルのバイナリデータをメッセージボックスかなにかで表示する
ようはバイナリエディタの表示だけできるようなものが作りたいのですが
アドバイスお願いします。できればサンプルのようなモノがあれば紹介してほしいです。
ファイルを読み込む部分まではできました。表示する部分とユウのが見当もつかない状態です。
0044名無しさん@お腹いっぱい。 NGNG
ファイル読み出しのような処理ができるのに
バイナリ⇒16進文字の変換ができないのか?
近頃の初心者はホント謎だな‥
sprintfのヘルプ読め!
0045名無しさん@お腹いっぱい。 NGNG
>43
コンソールアプリにするなら44と同意見。
ウィンドウに表示したいならとりあえずMFCかSDKか教えてくれ。
004643 NGNG
バイナリ⇒16進はできます。sprintfのヘルプも何回も見ました。
MFCです。何か部分部分はわかるのだけれどいざ組んでみると
つまずいてしまうのです。
具体例をあげてもらえると嬉しいです。
0047名無しさん@お腹いっぱい。 NGNG
16進数に変換できないんじゃなくて
ウィンドウに表示する事が出来ないのネ・・


質問は状況をわかりやすく!
0048名無しさん@お腹いっぱい。 NGNG
bzのソースでも見れば?
http://www.zob.ne.jp/~c.mos/soft/bz.html
0049名無しさん@お腹いっぱい。 NGNG
1.バイナリ⇒16進とsprintfを使って表示したい
  1行分の内容をひとつの文字列に作れますか?
3.文字列を、画面(ウィンドウ)に表示できますか?
2.その方法を繰り返しファイル全体に適用できますか?

というふうにステップごとに解決しないと
自分がどこでつまづいてるのかがわからないの
ではないかな?
0050名無しさん@お腹いっぱい。 NGNG
Win32で、ある特定のプロセスだけGetVersionExの
値を本来のOSバージョンとは違う値を返すようにしたいんですができますか?
ちなみに、その対象となるプロセスのソースコードはありません。

たとえば
osver 4.0 foobar.exe
みたいにして、foobar.exeで呼ばれる GetVersionExとGetVersionのmajorとminorを
それぞれ、4と0に指定したいってことなんだけど…。

kernel32.dllにはいっちゃってるしやっぱり無理?
0051名無しさん@お腹いっぱい。 NGNG
バイブとハイブって親戚かなにかですか?
教えてください。
0052名無しさん@お腹いっぱい。 NGNG
バブーも合わせて三兄弟です。
0053MSDNでdebugで調べてみればーーー NGNG
簡単に・・・
CStirng TempStr ;
TempStr.Format("変数A:%08X\n変数B:%08X",a,b) ;
AfxMessageBox(TempStr) ;
0054名無しさん@お腹いっぱい。 NGNG
ハブも合わせてななかんおうです
0055お姉さん NGNG
>40
これで出来ると思うけど。。解決しちゃってたらごめんね。#include<stdio.h>

void strncpy(char *,char *,int n);
main()
{ char a[512];

strncpy(a,"itteyosi",4);
printf("%s",a);
}
void strncpy(char *s1,char *s2,int n)
{
int i;
for(i=0;i<n;i++)
s1[i]= s2[i];
s1[i]='\0';

}

0056名無しさん@お腹いっぱい。 NGNG
>55のお姉さん
ネタだろ?頼むから、ネタだといってくれ。お願いだ〜。
0057名無しさん@お腹いっぱい。 NGNG
これが本物の実装に最も近いのでは?

void strncpy(char *s1, const char *s2, const size_t n)
{
size_t count = n;
while (n--)
*s1++ = *s2++;
}
0058名無しさん@お腹いっぱい。 NGNG
違う違う。こうだ。

char *strncpy(char *s1, const char *s2, const size_t n)
{
char *r = s1;
size_t count = n;
while (count--) {
if (*s2) {
*s1++ = *s2++;
} else {
*s1++ = '\0';
}
}
return r;
}
0059ブチ NGNG
>>40,55
42 で言われてますが、変数 a は512バイトのメモリを確保はしたものの内容が不定です。
文字列としてデータを扱うためには文字列の最後に NULL ('\0')を
置くことでプログラムはそこが最後だと認識します。
内容が空の場合は 先頭が NULL なわけですね。

それを踏まえると a は配列の先頭にまず NULL を置くことが義務になります。
そうしないとNULL が 512 バイトの中になければ
実装されている strncpy であっても確保していないメモリ領域への上書き(メモリ破壊ももありえます。
0060揚げ足だが NGNG
一般的には、'\0'をNULLと呼ぶのは誤り
0061名無しさん@お腹いっぱい。 NGNG
本当はこうだったりして。

char *strncpy(char *s1, const char *s2, size_t n)
{
memcpy(s1, s2, n);
return s1;
}
0062お姉さん NGNG
>56
ネタじゃないよ。マジだよ。

0063お姉さん NGNG
なにがいけないのよう。
0064名無しさん@お腹いっぱい NGNG
>>63
itteyosi の部分じゃないの?
プログラムはあってんじゃない?
0065お姉さん NGNG
mainの部分は私が書いたんじゃないもん。
0066名無しさん@お腹いっぱい。 NGNG
>>65 お姉さん、可愛いヽ(*´ー`*)ノ
0067いちろうくん NGNG
>>55
おねいさん、ちがうよ。
n=1で呼ばれたときに、S1に何文字書き込まれるか考えてみ。
0068名無しさん@お腹いっぱい。 NGNG
strcpy
を定義して、ヘッダとして呼び出すのにはどうしたらいいんでしょうか?
つまり、他のファイルからの(オリジナル)関数呼び出し参照方法
はどうすればいいのでしょう?

hoge.c
aaa.h <これ?
でhoge.cの中身のヘッダに
#include<aaa.h>
とかいて、呼び出せばいいという認識でよろしいいのでしょうか?


0069お姉さん NGNG
>>68
#include"aaa.h"です。

>>いちろうくん
一文字プラス\0で二文字。だめ?
0070お姉さん NGNG
ところで質問した人は解決したの?
どの案を採用したの?
007120=40 NGNG
みなさんありがとうございまます。

2ちゃんでまで説教されるとは思わなかったですが、
41さん42さんに言われた通り、ちょっと教えて君(死語)になってました。
申し訳ない・・・。

55さん,57さん,58さん方のソースは自分でも出来ました。
自分が出したいプログラムは基礎の丁寧なものなので、
皆さんにとってはバカらしいものかもしれませんが、

”文字列s2がnより短い場合は、 s1の後ろをn文字までNULLで埋めます。
s2の長さがn以上であればNULLで終了する 結果は出ません。”

の部分が解決していません。

プログラムは人それぞれなので、一概に正解とかはないと思いますが、
もう少し自分で考えてみます。
大変参考になりました。
時間ある人がいたら、別ソースも見せてください。

0072さらしあげ NGNG
>お姉さん@ぴか虫レヴェル

>>55
void strncpy(char *s1,char *s2,int n)
{
int i;
for(i=0;i<n;i++)
s1[i]= s2[i];

/* おいおいせっかくコピーしたものを '\0' で上書きかい */
s1[i]='\0';
}

/* n = 3 のとき、 s1[0]=='\0' , s1[1]=='\0' , s1[2]=='\0' */
0073お姉さん NGNG
>>72
n=3のとき
for(i=0;<n;i++)
s1[i]=s2[i];
このループを抜ける時点でs1[0]=i s1[1]=t s1[2]=t
s[i]='\0'
ここでiは一インクリメントされているので4,
s[4]='\0'
結果s1=itt\0
何がいけないのよ。
s[i]='\0'の部分はループに入ってないかんね?
0074お姉さん NGNG
間違った、iは一つインクリメントされてるので3.
s[3]=\0のまちがいね。
007572>お姉さま NGNG
失礼。インデントが無いんで見間違えた。自虐あげ。
0076お姉さん NGNG
>>75
ダサダサ・・・
0077あなたのうしろに名無しさんが・・・ NGNG
>お姉さん@ぴか虫レヴェル>>>>>>72>みじんこ

0078名無しさん@お腹いっぱい。 NGNG
ここまできて33以外正解がないとは…。なんだかなぁ。
33以上の簡潔さには、なかなかなりようがないからしょうがないが。
0079お姉さん NGNG
>>77
あはは。
私の前に何が来るのかが問題だけど。
>>78
出されたものほとんどが動くようですが、質問者のいう条件をすべて満たしてないよう
です。
0080名無しさん@お腹いっぱい。 NGNG
>お姉さん
あなたのもね。

これじゃ駄目?

#include<stdio.h>
void strncpy(char *s1,char *s2,int n)
{
int i;
for(i=0;i<n,s2[i]!='\0';i++){
s1[i]=s2[i];
}
for(;i<n;i++){
s1[i]='\0';
}
return;
}

int main(void){
int i;
char s1[] = "abcdef";
char s2[] = "xyz";

strncpy(s1,s2,5);
for(i=0;i<7;i++){
printf("%d : %c : %d\n",i,s1[i],s1[i]);
}
return 0;
}
0081名無しさん@お腹いっぱい。 NGNG
まんこ見せてください
0082お姉さん NGNG
>>80
これならばnがs2よりも大きかった場合に対応しますね。
あと空白の部分を\0で埋めますね。
これで質問者の意図にはあってるんでしょうか。
0083名無しさん@お腹いっぱい。 NGNG
>>81 ええ、いいわよ♥
http://www.omanko.com/
0084名無しさん@お腹いっぱい。 NGNG
>>71
「NULLで終了する 結果は出ません」←これ意味不明だが…

char *strncpy ( char *s1, char *s2, size_t n )
{
char *r = s1;
while( n-- && (*s1++ = ((*s2)?(*s2++):('\0'))) );
return r;
}
008536=42 NGNG
>>78
予想通りだが、33はVC++のstrncpy実装そのものだった。
しいて言えば、手書きのコードならば0埋めにはmemsetを使うのが普通だろう。

>>82
良く見ろ。戻り値がvoidだ。仮引数もANSI C的には正しくないがな。
それにしても、33という正解が既に出ていながらなぜここまで引っ張る?
008684訂正 NGNG
char *strncpy ( char *s1, char *s2, size_t n )
{
char *r = s1;
while( n-- ) *s1++ = ((*s2)?(*s2++):('\0')));
return r;
}
0087お姉さん NGNG
>>85
何で戻り値がvoidじゃいけないのか教えてください。

多分他に質問が無いからじゃないですか・・・?<なぜ引っ張る
0088名無しさん@お腹いっぱい。 NGNG
>>85(=36=42)
あんたこそ要求されている仕様を良く見てくれ。
33のプログラムは、string.hのstrncpyとは働きが同じだけど、
いま要求されてる仕様(40や71)は満たしてない。
仕様変更には迅速に対応しませう。

ついでにいえば、宿題の答としては返り値のchar *やら
引数のconstやらsize_tやら使わない方が
いかにも自分で考えて作ったみたいでいいでしょ?(<中途半端に親切)

>>86
括弧多いよ。
008980 NGNG
ゴメン、89=80ね。
009080 NGNG
又間違った。
80=88=89=90です。
欝だ氏能。
0091名無しさん@お腹いっぱい。 NGNG
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

class CardPanel extends Panel {
ActionListener listener;

Panel create(LayoutManager layout) {
Button b = null;
Panel p = new Panel();

p.setLayout(layout);

b = new Button("one");
b.addActionListener(listener);
p.add("North", b);

b = new Button("two");
b.addActionListener(listener);
p.add("West", b);

b = new Button("three");
b.addActionListener(listener);
p.add("South", b);

b = new Button("four");
b.addActionListener(listener);
p.add("East", b);

b = new Button("five");
b.addActionListener(listener);
p.add("Center", b);

b = new Button("six");
b.addActionListener(listener);
p.add("Center", b);

return p;
}

CardPanel(ActionListener actionListener) {
listener = actionListener;
setLayout(new CardLayout());
add("one", create(new FlowLayout()));
add("two", create(new BorderLayout()));
add("three", create(new GridLayout(2, 2)));
add("four", create(new BorderLayout(10, 10)));
add("five", create(new FlowLayout(FlowLayout.LEFT, 10, 10)));
add("six", create(new GridLayout(2, 2, 10, 10)));
}

public Dimension getPreferredSize() {
return new Dimension(200, 100);
}
}

public class CardTest extends Applet
implements ActionListener,
ItemListener {
CardPanel cards;

public CardTest() {
setLayout(new BorderLayout());
add("Center", cards = new CardPanel(this));
Panel p = new Panel();
p.setLayout(new FlowLayout());
add("South", p);

Button b = new Button("first");
b.addActionListener(this);
p.add(b);

b = new Button("next");
b.addActionListener(this);
p.add(b);

b = new Button("previous");
b.addActionListener(this);
p.add(b);

b = new Button("last");
b.addActionListener(this);
p.add(b);

Choice c = new Choice();
c.addItem("one");
c.addItem("two");
c.addItem("three");
c.addItem("four");
c.addItem("five");
c.addItem("six");
c.addItemListener(this);
p.add(c);
}

public void itemStateChanged(ItemEvent e) {
((CardLayout)cards.getLayout()).show(cards,
(String)(e.getItem()));
}

public void actionPerformed(ActionEvent e) {
String arg = e.getActionCommand();

if ("first".equals(arg)) {
((CardLayout)cards.getLayout()).first(cards);
} else if ("next".equals(arg)) {
((CardLayout)cards.getLayout()).next(cards);
} else if ("previous".equals(arg)) {
((CardLayout)cards.getLayout()).previous(cards);
} else if ("last".equals(arg)) {
((CardLayout)cards.getLayout()).last(cards);
} else {
((CardLayout)cards.getLayout()).show(cards,(String)arg);
}
}

public static void main(String args[]) {
Frame f = new Frame("CardTest");
CardTest cardTest = new CardTest();
cardTest.init();
cardTest.start();

f.add("Center", cardTest);
f.setSize(300, 300);
f.show();
}

public String getAppletInfo() {
return "Demonstrates the different types of layout managers.";
}
}
009285 NGNG
>> 88
で?

> strncpyはn個の文字だけ複写します。文字列s2がnより短い場合は、
> s1の後ろをn文字までNULLで埋めます。s2の長さがn以上であればNULLで終了する
> 結果は出ません。s1を返します。

「NULLで終了する結果は出ません」が意味不明だが、これは善意に解釈して
「NULターミネートされません」という意味だろう。
だとすればこれはANSI/ISO標準のstrncpyの仕様そのものだ。

最後の「s1を返します」をあんたはちゃんと見たのか?
0093名無しさん@お腹いっぱい。 NGNG
なんか車輪の再発明(改悪版)を一生懸命やってるやつがいるなぁ。
仕様の理解のために、自分で実装してみるのは、学習過程で有効なことだが、
未熟なくせに偉そうにしてる、脳味噌空っぽ君が一人二人まざってるよ。
こういう害虫が、世の中悪くするんだよねえ。
009420=40 NGNG
すいません。
>「NULLで終了する結果は出ません」
というのは、文字列の最後にNULLを入れないとゆう意味です。
0095お姉さん NGNG
あたらしい質問待ち。
0096あなたのうしろに名無しさんが・・・ NGNG
あたらしいひつもん…
尾根遺産はおいくつですか。
彼氏いますか。
0097名無しさん@お腹いっぱい。 NGNG
お姉さん教えてください

SQLを使ってある表中の行をコピーしたいのですが
INSERT INTO 表 VALUES((SELECT * FROM 表 WHERE 列=値));
でできますか?

そもそも行のコピーってSQLでできるんでしょうか?

0098お姉さん NGNG
>>97
なんでいきなりSQL。。(^_^;)
この形式だとSELECT以下の条件を満たす値を含む行を複数行
他の表からコピーできると思います。
行のコピーはSQLのオペレーションの中でも最重要だと思いますが。
0099お姉さん NGNG
最重要ってわけでもないか。訂正。割と大切。
0100お姉さん NGNG
SELECT以下で特定のコラムを指定することもできます。
joinを使って二つ以上の表から値を持ってくることも出来ます。
今日はここまで。
0101おやじ NGNG
>>97
SQLでVALUES() 内に副問い合わせってかけたっけ?
コピーするときってVALUESつかったっけ?
あれれ?
忘れた
0102名無しさん@お腹いっぱい。 NGNG
Insert into Table1 select * from Table2 where...
俺はValues使わないでこうやってるよ。
97の場合に動くかどうかは知らない。
0103名無しさん@お腹いっぱい。 NGNG
A表の行の値をA表にInsertするときは、

Insert into Table1 select * form Table1 where 列=値;
でOK?

010480 NGNG
>>85
なんか今更ですが
今、ここを見てちょっと考えたら
貴方の言ってることが全面的に正しいとわかりました。
なんで標準のstrncpyで確かめなかったんだろう?>自分
人にちゃんと読めとか言う資格ないです。

高圧的な態度になったのも何か頭が壊れていたようです。
気を害された85の人申し訳ありませんでした。
とにかく謝っておきたくて。
0105名無しさん@お腹いっぱい。 NGNG
>ANSI/ISO標準のstrncpyの仕様
には
>s1の後ろをn文字までNULLで埋めます
は、ないと思うんだけども‥

0106>80 NGNG
> for(i=0;i<n,s2[i]!='\0';i++){
カンマ演算子じゃダメだろ
for(i=0;i<n&&s2[i]!='\0';i++){
こうしたかったのか?
0107いちろうくん NGNG
ああ、流れがはやいや‥
おねいさんごめんなさい、おへんじおそくなっちゃいました。
strncpyに1文字コピーしてねって頼んだのに
2文字分書き込まれちゃうのはいけないとおもいます。
いまさらな気もするけども‥
0108お姉さん NGNG
>103
>Insert into Table1 select * form Table1 where 列=値;
>でOK?
最初のtable1がコピーされる方で次のがコピーする方ですね。
form じゃなくてfrom です。列じゃなくて行=値じゃないですか?

>いちろうくん
nullターミネーターを入れて二文字です。
0109名無しさん@お腹いっぱい。 NGNG
>>105
MSDNから引用
> string2 の最初の count 文字数を string1 にコピーしてから string1 を返し
> ます。count がstring2 の長さ以下の場合は、コピーした文字列に自動的に
> NULL 文字 (\0) を付けません。count が string2 より長い場合は、string1
> には count の長さまで NULL 文字が埋め込まれます。コピー元の文字列とコピー
> 先の文字列が重なり合っている場合の strncpy 関数の動作は未定義です。
これが、ANSI/ISO標準に完全に準拠してるかどうかはわからないが、
> s1の後ろをn文字までNULLで埋めます
に相当する記述は少なくともここにはある。
0110いちろうくん NGNG
だからおねいさん、2文字かきこんじゃいけないんだよぉ
0111お姉さん NGNG
うーん。
そこら辺は上に何個か出ているstrncpyの仕様を見て判断してくだ
さいな。。(脱落)
0112じろうくん NGNG
逃げちゃダメだよぅ、おねいさん。
‥‥‥と思ったけど、5分以上考え込む問題みたいだから、
おねいさん的には逃げてもいいんだね。
0113お姉さん NGNG
...超初心者のみ歓迎。
0114じろうくん NGNG
弱いよ。弱すぎるよ、おねいさん。
あと、超初心者と言っても、低レベルな質問をするとは
限らないんだけどそれでもいいのかい、おねいさん?
0115初心者 NGNG
Cでのプログラミングをはじめて1ヶ月なんですが、
逆行列を計算するプログラムを作るという宿題が出ました。
手始めに4×4行列の逆行列を作ることが宿題です。
おねいさんお願いします。
0116名無しさん@お腹いっぱい。 NGNG
>>115
逆行列ってなんだっけ?
何となく、高校の時に習ったと思うけど、記憶が曖昧なんでよくわからん。

あとは、行列をどのように表現するかによって実現方法が変わりそうな気がする。
まあ、普通は2次元配列を使うんだろう、この場合。
0117お姉さん NGNG
線形代数で出てくるあれかな?
表を対角線上にひっくり返すやつ?
0118名無しさん@お腹いっぱい。 NGNG
逆行列の定義と、計算方法は↓

http://www.cybernet.co.jp/products/matlab/information/webcourse/linear/linear5.html

0119いちろうくん NGNG
おねいさんたら、もう。こまったなぁ‥
どうしようか? じろうくん。
0120お姉さん NGNG
>118
思っていたのと全然違った(汗)
二行二列なら簡単だけどそれ以上だと
拡大して面倒くさい操作をするんだったね。
・・・・今日はこれにて退散。
0121名無しさん@お腹いっぱい。 NGNG
スパース行列だったら鬱になりそう(-_-;
0122じろうくん NGNG
>>115
ダメだよおにいさん。
おねいさん、あんまり頭良くないから、そんな難しい
問題訊いたら頭が爆発しちゃうよ。
0123お助け君。 NGNG
奥村のアルゴリム辞典に詳しく載ってるよ。

ちなみに逆行列
2393|1000
3432|0100
3322|0010
2344|0001
↓
1000|
0100| ここが
0010| 解答
0001|
確か大学1年くらいの問題。

0124名無しさん@お腹いっぱい。 NGNG
108>お姉さんありがとう!

>>Insert into Table1 select * form Table1 where 列=値; ?
>>でOK?
>最初のtable1がコピーされる方で次のがコピーする方ですね。
>form じゃなくてfrom です。列じゃなくて行=値じゃないですか?

行=値でした
ごめんでしゅ

ORACLEで実際に打ってためしてみましゅ
0125名無しさん@お腹いっぱい。 NGNG
C言語を習い初めて少しなのですが、
三角形の辺の長さabcをキーボードから入力し、
入力された値で三角形が作れるかどうかを判断する
プログラムを作れ。
という宿題が出ました。
どうか教えてください。
0126名無しさん@お腹いっぱい。 NGNG
>125
それの
どの部分がわからないのかおしえてください。
0127名無しさんi486 NGNG
ぶはははは!
確かにその通り。>126
0128名無しさん@お腹いっぱい NGNG
三角形の三辺の条件公式?ってどんなのだっけ?
125じゃないよ!
0129125 NGNG
128さんのいうとおり三角形の公式がどうも・・・
ifを使うようなのですがいまいち・・・
0130名無しさん@お腹いっぱい。 NGNG
abs(a-b) < c < a+b
こうかな?
0131Visual 名無しさん NGNG
if( a+b>c && b+c>a && c+a>b )
0132名無しさん@お腹いっぱい NGNG
>>129
公式って教科書に載ってないのか?
C^2=A^2+B^2 みたいなやつ。(これは直角三角形だけど)
三角比を使用して求める公式(数式)あるだろ?
それを教えたらプログラムしてやる。
0133マジレス>125 NGNG
そんなもん小学生でもわかるぞ
0134名無しさん@お腹いっぱい。 NGNG
>125
A1「三角形の任意の2辺の長さの合計は他の一辺の長さより大きい」
A2「if(条件)文; //条件が非0ならば文が実行される」
これでバッチリだよね。
0135steal@proxyi.isc.osakac.ac.jp[andv05.anken.osakac.ac.jp] NGNG
125
0136名無しさん@お腹いっぱい。 NGNG
お姉さんへ。
ボクは元ネタを知らないので、教えてください。
125の人が大阪電気通信大学なのですか?
それとも、
125の学校を調べようとした人が大阪電気通信大学なのですか?
0137136 NGNG
後者だとは思うけど。
0138名無しさん@お腹いっぱい。 NGNG
「IPを抜く」なんて厨房言葉使ってる・・・
http://teri.2ch.net/test/read.cgi?bbs=saku&key=972327405&st=3&nofirst=true
0139名無しさん@お腹いっぱい。 NGNG
http://www.yozemi.ac.jp/bunpu/shiritsu/kinki/osakadenkitsushin1.html
0140名無しさん@お腹いっぱい。 NGNG
OZAKIが尾崎であるかぎり、勝ちつづけなきゃならない
正しいものは何なのか それがこの胸に解るまで
僕は街にのまれて 少し心許しながら
この冷たい街の風に歌い続けてる
0141名無しさん@お腹いっぱい。 NGNG
ハァ・・・
http://www.osakac.ac.jp/labs/an/member00/index.html
0142ひよこ名無しに逝け NGNG
削除依頼にでてるよ。
問題出した本人だってさ。

実名UPきぼんぬ。
0143名無しさん@お腹いっぱい。 NGNG
一応ここプログラム技術板
なんだからほっといてやれよ
0144135@伝痛大関係者 NGNG

管理人さんの方にも削除願い出しました。
スイマセンでした。こちらの問題はすべて解決しました。
みなさんご迷惑おかけしてスイマセンでした。
0145おねえさーん! NGNG
プログラムが一発で動いた〜!!
わーい!わーい!
0146名無しさん@お腹いっぱい。 NGNG
まんこ見せてください
0147名無しさん@お腹いっぱい。 NGNG
時かっ串tろ言えk>お姉さん
0148どうしましょう??NGNG
陰線処理の方法としてmax-min法が主流だとは思いますが
その他のやり方って何かあるんでしょうか?
ご存じの方、ぜひ教えていただきたいのですが??
0149名無しさん@お腹いっぱい。NGNG
>>146
ええ、いいわよ。&hearts
http://www.chinpo.com/
0150名無しさん@お腹いっぱい。NGNG
い、陰線……ハァハァ… (*´Д`)
0151名無しさん@お腹いっぱい。NGNG
>150
病気だ!
医者逝け!
0152名無しさんNGNG
削除依頼?
0153VisualNGNG
>148
Zバッファとか?
0154天才ちゃんNGNG
>150
激しく同意!
0155148NGNG
>153
>Zバッファとか?

ってもう少し詳しく教えていただけないでしょうか?
私なりにも、少し調べてみたいと思いますが・・・
お手数かけて申しわけないです。とほほ・・
0156お姉さんNGNG
>
145
よかったですね。どのプログラムですか?
0157名無しさん@お腹いっぱい。NGNG
min-max法が主流っていつの時代よ
0158名無しさん@お腹いっぱい。NGNG
>157
アルゴリズムの本などを見るとmin-max法しか
載っていなかったのですが…
0159名無しさん@お腹いっぱい。NGNG
似たような話題がありましたが
getpixel この関数を自分で作るとどうなるのでしょう?


0160名無しさん@お腹いっぱい。NGNG
>>159
作れないことも無いが作る理由がない。
0161159NGNG
宿題ですといったら…
0162名無しさん@お腹いっぱい。NGNG
宿題なら自分でやんな。
人に聞かずに自分で調べるのも宿題のうちだ。
0163名無しさん@お腹いっぱい。NGNG
>>162
お姉さんが宿題を教えてくれるスレッドらしいから別にいいのではないかな。
それじゃあ勉強にならないという点は激しく同意だが。
0164名無しさんNGNG
お姉さん逝ってよし
0165162NGNG
>>163 TPOをわきまえぬ発言でした。逝ってきます。
0166名無しさん@お腹いっぱい。NGNG
イカセテあげよう
0167159NGNG
宿題ではないです。
この関数に似た関数をつくりたかったので
色々と意見を伺おうと思ったのです。
お願いします。
0168名無しさん@お腹いっぱい。NGNG
郵政省系のサイトから郵便番号と住所の対応ファイルをダウンロードしてきました
これを使って、Webブラウザのフォームから入力された住所から郵便番号(7桁)
をサーチするCGIプログラムを作れと言われました。PostgreSQLを使っても
いいそうですがドキュソでチュ〜な僕にはなにがなんだかわからないよ!
たすけて!おねいさん、クラスのみんな!
0169いちろうくんNGNG
名前もわからない人にクラスのみんな呼ばわりされてもなぁ‥
0170名無しさん@お腹いっぱい。NGNG
grep実行するshell scriptで十分じゃねーの?>>168
0171名無しさん || dieNGNG
>>168
http://www.softagency.co.jp/mysql/mysearch/
0172お姉さんNGNG
>168
わかりません!
0173名無しさん@お腹いっぱい。NGNG
同じネタをPerl板で見たぞ >>168
0174名無しさん@お腹いっぱい。NGNG
>>167(159)

何に対してgetpixelするのか判らないとね…。

基本的には座標をx,yで指定してgetpixelする
グラフィックイメージの幅がwなら

w * y + x

だよね。

あとは、pixelフォーマットによって多少変形
する事になる。

8bbp,16bpp,32bppだったら、char,short,long
配列に対して上記の式でいいけど1bppや4bpp
だとシフトやマスクの必要もでてくる。

1bppで配列がchar(8bit)の場合、

(((w+(8-1))/8) * y + (x / 8)) & (0x80 >> (x % 8))

とかかな?検証はしてない。
0175クラブTNGNG
void Normalize(LPTSTR szFimeName)
{
  static char ProhibitChara[] = "\\/:,;*?\"<>|";
  char trBuffer[MAX_PATH];
  DWORD nCount = sizeof(ProhibitChara) - 1;
  char *pSrcCurrent = trBuffer;
  char *pDesCurrent = trBuffer;
  BOOL Found;

  wcstombs( trBuffer, szFimeName, MAX_PATH);

  for (;*pSrcCurrent != '\0'; pSrcCurrent++)
  {
    Found = FALSE;
    for (DWORD n = 0; n < nCount; n++)
    {
      if (*pSrcCurrent == ProhibitChara[n])
      {
        Found = TRUE;
        break;
      }
    }
    if (Found != TRUE)
    {
      *pDesCurrent = *pSrcCurrent;
      pDesCurrent++;
    }
  }
  *pDesCurrent = '\0';
  mbstowcs( szFimeName, trBuffer, MAX_PATH);
}
0176クラブTNGNG
>>175
ファイル名に使えない文字を取り去る関数ですが、
これで出来てるでしょうか?
0177名無しさん@お腹いっぱい。NGNG
新しい関数作ったらASSERT使ったテスティングコードを書いてみな。

void assertNormalize(char *s1, const char *s2)
{
 char buf[765];
 strcpy(buf, s1);
 ASSERT(strcmp(buf, s2)==0);
}

void testNormalize(void)
{
 assertNormalize("test.txt", "test.txt");
 assertNormalize("test\\.txt", "test.txt");
  ...
 assertNormalize("\\/:,;*?\"<>|", "");
}

あとProhibitCharaはやめれ
      ~~~~~
0178177NGNG
void assertNormalize(char *s1, const char *s2)
{
 char buf[765];
 strcpy(buf, s1);
 Normalize(buf); /* 肝心なのを入れ忘れた */
 ASSERT(strcmp(buf, s2)==0);
}

あと変換前・変換後のバッファをわけた方がいいかも。
同じバッファを指定したときのみ上書きするとかね。
0179名無しさん@お腹いっぱい。NGNG
>>176
ざっと見た感じで言うと、
ファイル名に日本語コードが含まれてる時の処理が入ってないッス。
あと、wcstombs()に LPTSTR の引数を渡すのは、気持ち悪い感じがします。
0180名無しさん@お腹いっぱい。NGNG
>>175

1)
こういう特殊な目的にしか使えない関数ではなく、
指定した文字群 szCharSet に含まれる文字を szSrc から削除する関数
void Squeeze(LPTSTR szSrc, LPCTSTR szCharSet);
のようなものを書いた方が設計としては良い。

2)
wcstombsを使うのは#define UNICODEされていることを確認してからでも
遅くはない、というかそうすべき。とはいうものの、このケースに限っては
そもそもWCS <-> MBCSのコンバートは不要である。TCHARの配列を
保持しておき、TCHARのまま判定すれば良い。
TCHARポインタのインクリメントにはtcsincを使え。

3)
このような検索処理にはtcschrが使える。使えるものは使え。
0181クラブTNGNG
うわぁー、みなさんすごいですー!
私なんかがぜんぜん考えてないことを指摘して下さいますね。
でも、ちょっと難しいですー

じっくり考えてみます!
0182ななしNGNG
質問です。
文字列たとえばx[10]="nanashi"が
あったとします。これを右寄せにする、プリントしたときに
" nanashi"となるような関数はありますか?
こないだの質問答えてくれた人ありがとう。
0183名無しさん@お腹いっぱい。NGNG
>>182
printf("%10s", x);
でどう?
0184名無しさん@お腹いっぱい。NGNG
>>182

printf
0185>182NGNG
printf("%-10s",x);
printf("%10s",x);
どっちか。。。
0186185NGNG
3人、かぶったか。。。
しかも、俺が1番、馬鹿。。。
0187182NGNG
c++ですのでprintfは使えません。
他の方法ありますか?
0188名無しさん@お腹いっぱい。NGNG
>>187
C++でも使えるよ。
0189名無しさん@お腹いっぱい。NGNG
C++でもprintfは使えるわよ。

標準C++ライブラリでやるなら
std::cout << std::setw(10) << std::setiosflags( std::ios_base::right )
<< std::setfill(' ') << x;
かしら。メンドウだから試してないの。調べてみてちょうだい。
0190名無しさん@お腹いっぱい。NGNG
>187
sprintfでメモリ上に出した後で
あんたが好きなやりかたで表示しろや

それともwinでtextoutで表示したいのか?
0191182NGNG
んー
ファイルに書き出すのでprintfじゃないです。
今はoutfile<<record1<<record2<<.....って感じで
やってるのですが、recordの何個かが(全部ではない)右寄せ
にしなくてはいけないんです。こういう場合はどうするんでしょう?
0192180NGNG
適当なコトを書いたが、良く考えたら175のケースでは
単純に汎用テキストマッピングを利用するのはまずいな。
以下は普通にWCS用に書いたコードだが、これと全く同じアルゴリズムを
MBCSに適用することは出来ない(SBCSではOK)。インクリメント
部分にwcsincを使用するとしてもダメだ。

void Normalize(wchar_t *s)
{
  static const wchar_t *set = L"\\/:,;?\"<>|";
  wchar_t *t = s;

  for (; *s; ++s)
    if (!wcschr(set, *s))
      *t++ = *s;
  *t = 0;
}

どうしてもLPTSTRを使いたいのなら、UNICODE, MBCSといったシンボルが
定義されているかどうかで処理を分けるしかないだろう。
0193182NGNG
でも、実際、coutとprintfを混在させるって、
いいプログラミングって言えるんですかねえ。
0194名無しさん@お腹いっぱい。NGNG
なんか、いろいろわかってなさそうな事だけはわかった
0195名無しさん@お腹いっぱい。NGNG
printfでsprintfやfprintfを思いつかなかったり(つーか190で)。
0196182NGNG
>>189
標準C++ライブラリでやるなら
std::cout << std::setw(10) << std::setiosflags( std::ios_base::right )
<< std::setfill(' ') << x;
かしら。メンドウだから試してないの。調べてみてちょうだい。

ファイルに書き出すのでstd::coutではないですよね、このばあいは
ここの部分はどうなるのでしょう?std::ofstreamオブジェクト名で
いいのかな?
0197182NGNG
>>195
思いつきました
でもすでにoutfile<<rec1<<rec2.....の形式でやってるので
一貫した方法を採りたいんです。
0198名無しさん@お腹いっぱい。NGNG
sprintf(),fprintf(),CString.Format() どれでもできるよ・・・>182
MSDNで、調べてみ。
それから、C++はとりあえず、Cの関数は全部準拠だよ。
0199名無しさん@お腹いっぱい。NGNG
outfile << sprintf()で作った文字列
じゃダメなのかね
0200182NGNG
>>198
MSDNって何ですか?
0201名無しさん@お腹いっぱい。NGNG
>>196
自分で調べろよ。
0202名無しさん@お腹いっぱい。NGNG
教わったやり方が嫌、或いは調べるのが嫌なら
自分で考えるか自分で作るかすれば〜
0203168NGNG
>171
ありがとうございます!
0204182NGNG
みなさんありがとうございました。
何とかやってみます。
0205>質問する方々へNGNG
もちろん、Give & Take ってコトバはご存じよね?
初心者のころ、こうやって身も知らぬ他人にいろいろ教えて
もらったことは、よーく覚えておいてちょうだいね。
つまりアナタも近い将来人に教えられるくらいの知識を身につけて、
ちゃんと後輩の質問に応えてあげないってことよ?

「人に教えられるくらいの知識が身に付く自信がない」っていうなら、
こういうところで質問しないでちょうだいね。
カネ払って講習会に行ってちょうだい。

アタシたちもヒマじゃないんだから。って仕事中に2chに書き込み
しながら言っても説得力ないわね。
0206名無しさん@お腹いっぱい。NGNG
どうでもいいが、189はお姉さんなのか?なのか?
0207名無しさん@お腹いっぱい。NGNG
それよりも、205はお姉さんなのか?なのか?
0208竜崎麗香NGNG
ひろみ。この頃すこしお生意気ではなくて?
0209名無しさん@お腹いっぱい。NGNG
お姉さんが答えますスレなんだから
答える人はみんなおねいさんになるべきだと思う
おねいさんじゃない答え禁止。
0210名無しさん@お腹いっぱい。NGNG
やっぱり成りきったほうがいいんだろうなあ
0211名無しさん@お腹いっぱい。NGNG
>209
オマエモネー

# これでいいのかしら?
0212名無しさん@お腹いっぱい。NGNG
500〜1000行位で高度な数学は使わなくてC言語の入門は
そろそろ卒業ってレベルの課題を誰かだしてくれない?
0213>212NGNG
c2htmを作るのだ!
下の方に強調構文表示されたソースを、
上の方にそのソース内の変数・関数のプロトタイプのリストと
ソースへのリンクを張る。

でもあんまりCの機能は使わないか
0214名無しさん@お腹いっぱい。NGNG
>>211
違う!! もっとおねいさんみたく喋ってよ!!

>>212
500行以上なんて見るきもせんよ。
0215名無しさん@お腹いっぱい。NGNG
>>212 ファイルの中で、階層的に使えるファイルシステムみたいなの、
作ってみ。ある程度つかえるヤツができれば、多分、入門は卒業。
0216名無しさん@お腹いっぱい。NGNG
>215
どうやってコーディングするか以前にどーゆー物かが分かりません。
索引編成ファイルみたいなのを作るんですか?
>214
全部見てもらおうとは思ってません。勉強中なんだけど書きたいコードが
思いつかないくて。。。
>213
とりあえずそれを作ってみます。

ありがとうございました。
0217名無しさん@お腹いっぱい。NGNG
アナタモネー >211

今日は宿題もないみたいなんで、もう寝ます。
みんな、おやすみ!
0218名無しさん@PG見習いNGNG

------------- Help Me ---------------

教えてください!!
半径が5ドットの筆先でA−B間を描画する最も効率の良い方法は?
WindowsAPIは無しです。

( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
A          B

両隅が丸くなる感じの線です。
ABの位置は自由です。斜めだったりもします。
またCDなどの制御点を含む曲線(ベジエ曲線)だったりもします。

0219名無しさん@お腹いっぱい。NGNG
>>218
APIは無しって事は、
なにか、グラフィック系のコントロールとかライブラリを使うって事?
0220名無しさん@お腹いっぱい。NGNG
>> 212
UNIX つかってんだったら web サーバ書いてみ.
inetd から起動する奴だったら手頃でしょ.
0221名無しさん@PG見習いNGNG
>>219
BYTE Image[800*600*3] みたいにメモリを確保しておいてそのメモリ上に描画する。
Image[800*600*3] は 「横800ドット・縦600ドット・RGB」 って意味。
座標(200,100)に赤を塗る場合、
Image[ (200+100*600)*3 ] = 255;
Image[ (200+100*600)*3+1 ] = 0;
Image[ (200+100*600)*3+2 ] = 0;
表示する時はメモリをDCにコピーする。
表示部分はAPI使う。(完成してる。)
0222名無しさん@PG見習いNGNG
>>221
補足:要するに描画部分はすべて自分で書く。
0223名無しさん@お腹いっぱい。NGNG
>>222
まず自分はどう考えたか、どこまでやってるのか書いてみ。
自分でもある程度はやってるんだろ?
0224ウンコランナーNGNG
ここにhoge.exeというソフトがあり、ソースもあります。
言語はCです。
1.VB側のテキストボックスに入力した値Aを、hoge.exe(hoge.c)に渡し
  計算させたい。
2.このソフトで解析した結果の値BをVB側に渡して、テキストボックス
  に表示したい。
どうやってやるんですか?
教えてください。
http://216.218.192.139/test/read.cgi?bbs=prog&key=972678022

0225名無しさん@PG見習いNGNG
>>223
ブラシパターンみたいなのを BYTE Pen[10*10*3] に作っておいて、
線分の経路?を1ピクセルずつ計算し、そこにペイントしていく。
この方法だと遅い!同じピクセルに何度も書きこむので無駄だらけ。
一応ある程度のスピードは確保したい。
もっとスムーズにやる方法ないですか?
輪郭線を計算して輪郭線から内部判定して一気にペイントとか。
そういうアルゴリズムで書かれてるソースが見たい。
ライブラリ(バイナリ変換済み)などはダメ。自分でソース書かないといけないから。
0226おねいさんNGNG
> PG見習いさん
同じピクセルに何度も描かないようにすれば速くなるわよ。
ブラシの移動のあいだを間引くのもいいわね。

> ウンコランナーさん
となりに行って、アタマのいいお兄さんにきいてちょうだい!
‥って、これじゃあんまりね。
DLLにはしたくないみたいだし‥
どうして全部VBでやるわけにはいかないの?
0227名無しさん@お腹いっぱい。NGNG
たらい回しjapan(笑)
0228ウンコランナー NGNG
>>226
(1)
>DLLにはしたくないみたいだし‥
いえ、DLLじゃしたくないとはいってませんよ。
DLLの作成の仕方を教えてくださいませんか?
(VCでしかできないのか?、その他のコンパイラでも可能か?)
も分かっていない状態なので、かなり面倒だとお思いますが。(笑)

(2)
>どうして全部VBでやるわけにはいかないの?
全部VBでやると、
1.わざわざCで作ったのをVBに直さないといけない→面倒
2.高速だと思うから。60!くらいの処理を行う予定だから。

(3)
VBに*.exeから値を得る、渡す、という行為自体そもそも可能なのか?
不安になってきた。
0229お姉さんNGNG
ただいま引き篭もり中。
話しかけないでね。
0230名無しさん@お腹いっぱい。NGNG
218は線幅のある直線描画機能ぐらい作りこんでるでしょ
それなら幅5ドットの直線を引いて、円を両端に描画すればおわりだよ
計算量も軽くて速いぞ。ちなみに結構有名な方法なので特許は無理だ
0231名無しさん@お腹いっぱい。NGNG
>>224

コマンドラインで起動できるプログラムなら、Shell関数で
起動すればおっけー。

結果はどう出力されるのかわからないけど、GetExitCodeProcess()
で取得するか、リダイレクトしてファイルから読みこむか。

まあ。DLLにした方がいいと思うけどね。
0232おねいさんNGNG
>ウンコランナーさん
(1)
VC以外でもDLLができるかどうかを気にしてるようだけど
いったいどこのコンパイラを使ってるの?ヘルプでDLLを調べてね。
(2)
じゃ、いっそのこと全部Cで書いてみればどう?
(3)
VBとCのプログラム間での値のやり取りはいろんな方法があるけれど
DLLでなければ、ファイルでやり取りするのが一番簡単かしら?
0233いちろうくんNGNG
きくだけきいてお礼も言わないやつがいるな‥
ぼくらのおねぇさんをなんだとおもってるんだ!
0234初心者NGNG
JIS の文字列をシフトJISに変換するにはどうしたらいいですか?

char *jis2sjis(char *JISstring, char *SJISstring)
みたいな関数を作りたいんですけど。
教えて、お姉さん。
0235名無しさん@お腹いっぱい。NGNG
お姉さんは留守のようなのでオレがかわりに
ホレ>234
http://www.sakuranet.or.jp/~mrp/vbhtmls.html
0236初心者NGNG
235さんありがとお。
でもぼくはCでどうするのか知りたいんです。
教えてください235さん。
0237名無しさん || dieNGNG
>>236
言語が何だろうとアルゴリズムはいっしょだろうに。
http://www.mirai.ne.jp/~cow/soft/nkf.c (c)
http://www.imasy.or.jp/%7Ei16/soft/convsjis.htm (asm)
http://www.webinter.net/pbd/unkanj.htm (c++)
0238名無しさん@お腹いっぱい。NGNG
自分で考えたり努力するつもりのないやつは死んでください
0239初心者NGNG
ごめんなさい。
でもぼくは235さんの書いたコードが見てみたいんです。
なんとなく面白そうで。

0240お姉さんNGNG
私の代わりに回答してくれてるみんな、ありがとうー。

>>初心者くん
んー。アルゴリズムをもらったんだからそこからcのコードに
発展させるくらいのことはやらなくちゃ、勉強にならないぞん。

>>いちろうくん
ありがとー。・・って私お礼言われるほどの回答をほとんど
してない気もするけど・・あは。
0241235>239NGNG
BASICが読めないとは思わなかったんだ。スマン。
とりあえずさっきのページからほぼベタ移植。
改行コードの変更は本質的な問題でないんで省略しといた。
char* Jis2Sjis(char* JISstring,char* SJISstring)
{
unsigned char uByte,lByte;
unsigned char* Sjis = (unsigned char*) SJISstring;
unsigned char* Jis = (unsigned char*) JISstring;
int JisFlg=0;
while(*Jis){
if(*Jis=='\x1b'){
if( Jis[1] == '\x24' && (Jis[2] == '\x42' || Jis[2] == '\x40')){
JisFlg = !0;
Jis += 3;
}else if( Jis[1] == '\x28' && (Jis[2] == '\x42' || Jis[2] == '\x4A')){
JisFlg = 0;
Jis += 3;
}
}
if(JisFlg){
uByte = *Jis++;
lByte = *Jis++;
lByte += uByte & 1 ? 0x1F : 0x7D;
if( lByte >= 0x7F) lByte++;
uByte = (uByte - 0x21) / 2 + 0x81;
if( uByte > 0x9F) uByte += 0x40;
*Sjis++ = uByte;
*Sjis++ = lByte;
}else{
*Sjis++ = *Jis++;
}
}
*Sjis = '\0';
return SJISstring;
}
0242名無しさん@お腹いっぱい。NGNG
239の注文の多さは、もはやワガママというよりは確信犯と思うが
241の親切さは泣けるな。
0243241NGNG
だいじょぶ
親切を装って239を貶めている確信犯なので
気にしないでくれたまい
他にも参項にする人がいるかもしれないしさ‥
0244真241NGNG
これこれ、他人の番号を騙るでない‥まあいいか
ところで、241では、元のページのBasicのプログラムからある
小さな(しかし場合によっては致命的な)問題を解決していません。
何がその問題なのかはあえて書かないでおくので
がんばって直してくれたまい。
初心者向けにはおもしろい問題かもね。
0245名無しさん@お腹いっぱい。NGNG
さては234、Basciのページなんか紹介されたもんだから
235はCが書けないもんだと思い込んで一転して煽りに入ったな‥
0246245NGNG
s/Basci/Basic/
0247初心者NGNG
ありがとうございます、どうしてもわかりませんでした。
実はもう一つわからないことがあって教えて欲しいんです。
COBOLのパック10進形式の文字列をASCIIキャラクタ形式に
変換したいんですが、どうすればいいでしょう?

言語はCで関数プロトタイプは
char *Pack2Ascii(char *AsciiDec, char *PackDec, size_t n)
nバイトのPackDecにはパック10進形式の数値が右詰で入っており、
余った桁は0パディングされている。
これをAsciiDecに左詰で変換したキャラクタを格納する。
符号はマイナスの時のみつける。

これがどーしても解りません。
教えて下さい235さん。
0248お胸おっぱいNGNG
>>235 じゃないけどね。

char *Pack2Ascii(
 char *AsciiDec,
 char *PackDec,
 size_t n
)
{
 int p, a;

 for (p=0; p<n && ! PackDec[p]; p++)
  ; /* Skip leading zero */
 for (a=0; p<n; p++)
  a = a + sprintf(AsciiDec + a, a? "%02x": "%x", (unsigned char)PackDec[p]);
 AsciiDec[a] = '\0';
}

符号は考慮してない&動くかどうかは試してないけど。
0249お胸おっぱいNGNG
だ、だせぇ…

> a = a + sprintf( …

は

> a += sprintf( …

ね。
最近ちょっと BASIC やってて…ああ言い訳にしか聞こえんよ…
0250>248NGNG
sprintfやってるなら最後の
 AsciiDec[a] = '\0';
って無駄じゃないの?
0251>248NGNG
そもそもsprintfなんか使うなよ…
0252>247NGNG
・Pack2Asciiは何を返す?
・nバイトのPack10進数とは
 数値までの値なのか、符号までを含めた値なのか?

ここらへんが明確でないとコードは書けません。

0253名無しさん@お腹いっぱい。NGNG
>>252
まあ何だ、初心者は235を

愛して

しまったようだから、そっとしといてやってくれ。
0254トライAPINGNG
WindowsでAPIを使ってプログラムをしています。
ファイルを列挙しているのですが、時間でソートして列挙するには
どうすればいいのでしょうか?
VCを使っています。
0255名無しさん@お腹いっぱい。NGNG
>>254
system( "COMMAND /C DIR /OD" );
0256名無しさんNGNG
>>255
お、UNIX使いがここにいる・・・。
ナゼ、Windowsアプリのソースって、こう言ったシェル呼び出しが少ないんだろうね。

あ、DOS呼び出すからか・・・。
0257名無しさん@お腹いっぱい。NGNG
>>256
DOSのコマンドは、プログラムから呼び出すには使いにくい仕様の
物が多いし、外部コマンドはシステムに入ってるって保証がないし。
0258お姉さんNGNG
さっどんどん盛り上がってこ!
0259名無しさん@お腹いっぱい。NGNG
>>254
FindFirstFile FindNextFile WIN32_FIND_DATA qsort
0260名無しさん@お腹いっぱい。NGNG
実はDOS使いじゃねーの
0261名無しさん@お腹いっぱい。NGNG
>>256
そう? UNIX使えるなら opendir() 使いそうなもんだが。
(それから並べておいて qsort())

それが面倒な場合は glob() を使う(しかしこれはファイルが
多すぎてメモリが足りない場合にできない)。
0262名無しさん@お腹いっぱい。NGNG
ls の出力を popen() で受け取るという方法もあるね。
DOSも dir でこの手法が使えるんじゃないか? 実際には
内部でファイルにリダイレクトしてそれをオープンするの
かも知れないが。
0263名無しさん@お腹いっぱい。NGNG
お姉さんは美人?
美人だったら教えてほしいことがあるんだけど・・・
0264おねいさんだけど‥NGNG
なにかしら?
0265名無しさん@お腹いっぱい。NGNG
ばかもの 俺は国津慎吾だ
おまえは、ねかまだろう
天才 国津慎吾のめはふしあなではないぞ
ばかもの
0266いちろうくんNGNG
ぼくらのおねいさんをばかにするな!たたかうぞ!
0267名無しさん@お腹いっぱい。NGNG
>>262
俺も性能が非常に問題になる場合以外は popen("ls -t") を使うと思う。

Win32には本物のパイプがあるから、popenは32bit版のVC++にはある。
しかし、fd 0, 1をopenしていなければ使えない
(むろんコンソールアプリケーションならこの条件は満たされるが)。
Windows Applicationの場合は、いっそNamedPipeを使う方が良いかも。
0268名無しさん@お腹いっぱい。NGNG
どうでもいいがスレ立て逃げはヤメレ>国津慎吾
0269名無しさん@お腹いっぱい。NGNG
まんこみせてください
0270トライAPINGNG
一発で解決してくれる関数はないみたいですし、
パイプは未経験で難しそうなので、
リストに1つ1つ挿入することにしました。

どうもありがとうございます。
0271名無しさん@お腹いっぱい。NGNG
バイブは未経験なので試させて下さい
0272teteteNGNG
教えてください。

void func(引数,引数)
{
  struct AAA *p;

  if(( p = malloc(sizeof(struct AAA))) == NULL){
    エラー処理;
  }
  p->メンバ = なんか;
  .
  .
  .
}
この関数は、問題ないのでしょうか?
つまり、関数の中で宣言したstruct AAAのポインタを
この関数の外で使うことは文法的にOKなのですか?
もちろん、どこかでfree()してやるとして。
0273名無しさん@お腹いっぱい。NGNG
>>272
外で使ってみたら?と言いたいけど、おねいさんにまかせよう。
0274>272NGNG
>関数の中で宣言したstruct AAAのポインタを
>この関数の外で使うことは文法的にOKなのですか?
OKです。

戻り値がvoidなので、引数でpを返そうとしていると推察しますが
C言語ですと引数は全て値渡しなので取り扱いに気をつけてください。
0275274NGNG
ごめん、言葉が変だ。後半は無視してくれ。
ある関数内で確保したエリアのポインタを
他の関数へ引き渡すことは可能です。
0276teteteNGNG
>274
この関数を出たあとで、struct AAA *pにアクセスして問題ないのですね?
そうですか。
有り難うございます。
malloc()してようがしてまいが、
関数内で宣言したものは、関数を出たらそれっきりなのかと思ってました。
戻り値で返すか、
引数としてstruct AAA *pを受け取って処理すべきなのだと思っていました。
0277お姉さんNGNG
>272なんか意味が分からないけど、使えるんじゃない?使って
みようとしたが出来なかったとか具体例をあげてもらわないと。。

嵐のみんな、おうちに帰ってカレーの王子様でも食べてなさいね。
0278sageNGNG
>>272
は、なまえ :---> もの(object)
の関係を理解しているのかな?この両者を一緒にしちゃいけないよ。

なまえのスコープ(有効範囲)と、ものの有効範囲は違うよ。
このばあい、pという名前自体は、ブロックスコープを持つので、
この関数から出ると無効になるんだけど、
pで指されているところの「もの」は、mallocでヒープ上に確保した
以上、freeするまでは存在するんだ。274が言っているのは、
このことさ。
じゃあね。
0279278NGNG
↑
ああ、ぼくは
なまえ :----> E-mail(省略可)
をまちがえてしまったよ。
じゃあね。
0280teteteNGNG
なーるほど。
何がわかっていなくてわからなかったかがわかった気がする。
どーもでした。
0281278NGNG
一見もっともらしいけれども、すごくいい加減なうそっぱちを
書いたのに誰も突っ込んでいないな。
まあいいか。
0282初心者NGNG
あるファイルの中にある全角英数字を、半角に置き換えるプログラムを作りたいんですが、
どういう風に作ればいいんでしょうか?
使える言語はCかPerlです。Perlで作ろうとしましたが、
文字列の置換がうまくいきません。全部を「$a[i]=~/A/A/;」とやっていくんでしょうか?
詳しい方よろしくお願いします。
0283*名無しさん++NGNG
>>282
日本語対応sedを使いましょう。
0284nanasiiNGNG
それいっちまったらnkfいれろ→。
0285名無しさん@お腹いっぱい。NGNG
また他人のふんどし探しか。>>283,>>284
中身のない馬鹿丸出しの書き込みするなよ…

0286鏝半NGNG
Perlにyとかtrちゅうのがないけ?>282
Scopeとextentを混同してるちゅうことかいな?>281(278)
0287nanasiiNGNG
>>285
「また」? なんだそりゃ?

せつめーすんのがめんどくせーんだよ。猿。
てめーの乏しい知力で人をはかんじゃねー。

http://tako.2ch.net/test/read.cgi?bbs=perl&key=971627428
の17? くらいをみてカイゾー白。
0288名無しさん@お腹いっぱい。NGNG
最大最小を求めるプログラムを教えてください。
0289名無しさん@お腹いっぱい。NGNG
#include <stdio.h>
#include <math.h>
main()
{
int n,i,a,b,c,d,p,x,y;
double data[100],sum,mean,bunsan,hensa[100],stddev;


printf("Input Number!\n");
scanf("%d",&n);
printf("Input Data!\n");
for(i=0;i<n;i++){
scanf("%lf",&data[i]);
}
sum=0;
for(i=0;i<n;i++){
sum=sum+data[i];
}
mean=sum/n;
printf("mean=%f\n",mean);

sum=0;
for(i=0;i<n;i++){
sum=sum+pow(data[i],2);
}
bunsan=sum/n-pow(mean,2);
stddev=sqrt(bunsan);
printf("stddev=%f\n",stddev);

for(i=0;i<n;i++){
hensa[i]=((data[i]-mean)/(stddev))*10+50;
}
printf("no data mean+- hensachi rank\n");
printf("----------------------------------------------------------\n");


a=b=c=d=0;


for(i=0;i<n;i++){
printf("%2d %10.5f %+10.5f %4.2f ",i+1,data[i],data[i]-mean,hensa[i]);




if(hensa[i]>=70){printf("A\n");a++;}
else if(hensa[i]>=60){printf("B\n");b++;}
else if(hensa[i]>=50){printf("C\n");c++;}
else{printf("D\n");d++;}
}
printf("A=%d,B=%d,C=%d,D=%d",a,b,c,d);

printf("\nハミコケテヘハフソヘソス\n");
printf("A|");
for(p=0;p<a;p++){printf("*");}
printf("\nB|");
for(p=0;p<b;p++){printf("*");}
printf("\nC|");
for(p=0;p<c;p++){printf("*");}
printf("\nD|");
for(p=0;p<d;p++){printf("*");}
printf("\n");

}
0290ぎこるびNGNG
>>282
ここをブックマークしときませう
http://www.din.or.jp/%7Eohzaki/perl.htm

ちなみにRubyだと
% ruby -Ks -n -r jcode -e 'print $_.tr("A-Za-z0-9", "A-Za-z0-9")' foo.txt
でSJISテキストファイルを変換できます(EUCなら-Ke 、UTF-8なら-Kuを指定)
0291初心者@282NGNG
>>290
ぎこるびさん、ありがとうございます。
さっそくやってみます。
0292初心者@282NGNG
>>290のリンクをブックマークしようとしたんですが、
403forbiddenと出てしまいます。時間をずらしてまたいってみます。
0293名無しさん@お腹いっぱい。NGNG
begin 644 bk.jpg.zip
M4$L#!!0 $,>82FL91_UX $ . ! & ! 8FLN:G!G!2<, %I0251*
M4$5'1TM/3O_8_^ $$I&248 0$! $@ 2 _]L 0P (!@8'!@4(!P<'"0D(
M"@P4#0P+"PP9$A,/%!T:'QX=&AP<("0N)R B+",<'"@W*2PP,30T-!\G.3TX
M,CPN,S0R_\ "P@ #P / 0$1 /_$ !\ $% 0$! 0$! ! @,$
M!08'" D*"__$ +40 (! P,"! ,%!00$ !?0$" P $$042(3%!!A-180<B
M<10R@9&A""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#[email protected]$149'
M2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JB
MHZ2EIJ>HJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ
M\?+S]/7V]_CY^O_: @! 0 /P#T.;0?%=]JD=S+K%W:07&IW(FBM7"FVMEV
M?9W3<S*23:IN4J01=2C:O-=1X?2TBTGR;*]N[R"*XN(_-NY7DD#+,ZLA9_F(
M5@4!.>%')ZFQJNE6.N:7<:9J=M'<V=PFR6)^C#^8(."".00",$5Q_@GPIJ7A
MPZ(TT^I2&33)VU476H-,OVR22&3A"Q7.3/\ ,HYYR23D_P#_V5!+ 0(4!Q0
M $,>82FL91_UX $ . ! & ! !B:RYJ<&<%
E)PP 6E!)5$I014='2T].4$L%!@ ! $ 1 !0" !B

end

すいません、こういうカキコがあったのですが
これってなんですか?
0294nanasiiNGNG
uuencode death.
0295ぎこるびNGNG
>>292
本当ですね。メンテ中なのかも。
リンク先には、
ソースファイルのエンコードはEUCにして、jcode.plのtrを使いましょう
てなことが書いてあります。つまりこんな感じ。

require 'jcode.pl';
$str = "012ABC";
jcode::tr(\$str, "a-zA-Z0-9", "a-zA-Z0-9");
0296ああっ名無しさまっNGNG
>293
懐かしいな・・・。
でも詳しくは教えない。
乱用されかねないから・・・。
0297名無しさん@お腹いっぱい。NGNG
a
0298名無しさん@お腹いっぱい。NGNG
本文がありません!
0299名無しさん@お腹いっぱい。NGNG
begin 644 bk.jpg.zip
M4$L#!!0 $,>82FL91_UX $ . ! & ! 8FLN:G!G!2<, %I0251*
M4$5'1TM/3O_8_^ $$I&248 0$! $@ 2 _]L 0P (!@8'!@4(!P<'"0D(
M"@P4#0P+"PP9$A,/%!T:'QX=&AP<("0N)R B+",<'"@W*2PP,30T-!\G.3TX
M,CPN,S0R_\ "P@ #P / 0$1 /_$ !\ $% 0$! 0$! ! @,$
M!08'" D*"__$ +40 (! P,"! ,%!00$ !?0$" P $$042(3%!!A-180<B
M<10R@9&A""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#[email protected]$149'
M2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JB
MHZ2EIJ>HJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ
M\?+S]/7V]_CY^O_: @! 0 /P#T.;0?%=]JD=S+K%W:07&IW(FBM7"FVMEV
M?9W3<S*23:IN4J01=2C:O-=1X?2TBTGR;*]N[R"*XN(_-NY7DD#+,ZLA9_F(
M5@4!.>%')ZFQJNE6.N:7<:9J=M'<V=PFR6)^C#^8(."".00",$5Q_@GPIJ7A
MPZ(TT^I2&33)VU476H-,OVR22&3A"Q7.3/\ ,HYYR23D_P#_V5!+ 0(4!Q0
M $,>82FL91_UX $ . ! & ! !B:RYJ<&<%
E)PP 6E!)5$I014='2T].4$L%!@ ! $ 1 !0" !B

end

0300お姉さんNGNG
さー盛り上がってこー
0301名無しさん@お腹いっぱい。NGNG
もりsage
0302いちろうくんNGNG
おねいさんのいうこときけないやつは
バカですうんこです逝っちゃえです。
0303たけしNGNG
288=289 早く教えてお姉さん!
0304名無しさん@お腹いっぱい。NGNG
アナタモネー(素振り)
0305お姉さんNGNG
>>303
288=289だったのか。289で解決してるのかと思ってた。
ちょっと待ってて。
0306おにいさんNGNG
お兄さんに質問はないかな?
0307名無しさん@お腹いっぱい。NGNG
> おにいさん
おねいさんのほうがいいです。
0308>お姉さんNGNG
偏差値が一番たかいひとと低いひとキボン。
0309名無しさん@お腹いっぱい。NGNG
血のつながっていない妹は?
0310お姉さんNGNG
>308
偏差値一番高いのは私ですけど、何か?

おにいさんも協力してくれるの?わーい。
289は頼んだよー。
0311名無しさん@お腹いっぱい。NGNG
こんにちは。 質問なんですけど、Javaかなんかで使われてる
ADT (Abstract Data Type)ってなんですか?
後、ADT (Abstract Data Type)って日本語でなんて言うんですか?
0312ウンコランナーNGNG
>>232
おねいさまありがとう、まんせ〜・・
0313名無しさん@優しい人NGNG
>>311
ADT
日本語でいうと総称型だよ。
C++での実装はtemplate、
Javaでいうとinterfaceか?
Cでも(void*)使えば一応書ける。
わかりやすく言うと、型を意識しないで書くデータ構造やアルゴリズムだな。
あ、おねいさまじゃなくてごめんな。(藁
0314名無しさん@お腹いっぱい。NGNG
>>311
こういうのじゃないの?

C++:
class X
{
virtual void hello( void ) = 0;
};

Java:
interface X
{
public void hello();
}

Objective-C:
@protocol X
- (void)hello;
@end
0315314NGNG
Abstract *Data* Typeだから違うかも。。。ごめん。
誰か教えて。
0316名無しさん@お腹いっぱい。NGNG
>>311
そのまま直訳で「抽象データ型」だよ。
例えば、中身は配列で実装されてるんだけど、init,push,popの手続き
でアクセスするようになっていれば、抽象データ型「スタック」という
わけだ。
0317名無しさん@優しい人NGNG
1のおねいさん、教えてください。
(おにいさんや騙りは返答不可です。無視します。)
2chパフォーマンスの技術についてです。
ギコ猫も数パターン書きました。
モナーも数パターン書きました。
「オマエモナー」のタイミングもばっちりでした。
質問系スレに対する解説も完璧でした。
2chなのに誉められました。
スレ違い/板違いも実行しました。
厨房に対する反撃も完璧でした。
痛い固定ハンも演じてみました。
むかつくスレへの荒らし強行(否コピペ)にも成功しました。
1日でスレを壊滅まで追い込みました。
理論攻め荒らしも成功しました。
多重人格レスもばらまきました。
煽動もひっそりと完了しました。
粘着系荒らしも最低限のレスで食い止めました。
「放置プレイ、開始」も皆の協力で成功しました。(かにみえたが、邪魔が入った…。)
エロ画像収集厨房に何時の間にかナニーを手伝わされてました。
あとなにか楽しいことありますか?
もしかしてわたしは2ch卒業ですか?
プライドが許さないのでいままで避けてきましたが、
あと残ってるのは2chの華、コピペorAA荒らしぐらいですか…?
5,4,3,2,1,
0318名無しさん@優しい人NGNG
くあ、いま飼い猫(三毛猫@メス@風邪気味)が体に上ってきて身動きが取れません。
背中でゴロゴロいってかわいいやつです。
やっぱりコピペ荒らしは面白くないので止めときます。
他に、これぞ2ch、っていうパフォーマンスを教えてください。
0319名無しさん@お腹いっぱい。NGNG
>318
>他に、これぞ2ch、っていうパフォーマンスを教えてください。

 コテハンで暴れた後、バスジャック。
0320311NGNG
>313、314、316 ご返信ありがとうございます♪
0321おにいさんNGNG
トホホお兄さんじゃダメか
0322307NGNG
ごめんなさい、おにいさん。

でもおねえたんの方が好きだから…。ごめんね☆
0323名無しさん@優しい人NGNG
おねいさんへ
来ないみたいなので、今日はあきらめます。
また明日、待ってます。
0324aNGNG
a
0325お姉さんNGNG
>307
プログラミング以外の質問はお断りですよ。
エサやりなさい、エサ。<猫
0326おねいさんNGNG
お姉さんとおねいさんは別人です。
1に応えてほしいなら「お姉さん」にきいて下さい。>317
0327>317NGNG
自ら煽りや乱暴な言葉遣いを禁じ手としてみると
新たな2chの楽しみ方が見えてきます。
お悟りが降りるまでは辛抱が大事です。
0328初心者NGNG
#include stdio.h
ってどーゆー意味ですか?

.hって形で別ファイルを参照するの?
.hって、ヘッダファイルって聞いたけど、ヘッダファイルって何?
グローバル関数と、変数、と#defineの宣言のリストのこと?

コンパイル時にリンクさせた、別の.cファイル(モジュール?)
の関数って、どうやって使うの?
〜.c/関数名 ?
それとも、external 関数名 で最初に宣言?
これを.hで宣言するの?
不要?
0329名無しさん@お腹いっぱい。NGNG
あと、int data[2000][2000]って作れますか?
大きすぎるとダメなんでしょうか?
問題なし?

全体のデータをシンプルにまとめたいけど、メモリを食うなら
躊躇うんですが………。
データ自体を保存する方法と、必要に応じた部分だけ読み込んでおく
方法ってありますか?
0330235>328NGNG
ヘッダファイルには通常同名の.cファイルに含まれている
グローバル変数や関数(C++ならクラスも)の宣言を書いておきます。

コンパイル時にリンクする別の.cに含まれている関数や変数を
参照するときにはそのヘッダファイルをインクルードします。

これはあくまでも一般的な使い方であって、Cの文法的には
ヘッダファイルに何を書くかは全くの自由で特に定義はされていません。
0331名無しさん@お腹いっぱい。NGNG
>328
イヤミで言ってるんじゃないけど
一度C言語入門みたいな本を読んだ方がいいぞ。
やすーい奴でいいから。
0332235>329NGNG
int data[2000][2000]が作れるかどうかは処理系によります。
16ビットのコンパイラだとできないこともあるでしょう。
32ビットの処理系ならたぶん問題なく作れると思います。
0333名無しさん@お腹いっぱい。NGNG
>>329
int data[2000][2000] グローバル、スタティックなら可能。
スタックはヤバイのでは?(よくわからん)
int *data;
data=(int*)malloc(2000*2000*4);
free(data);
なら良い。
0334235NGNG
ああ!そうか、ローカルに作っちゃう可能性もあるね!
0335328NGNG
>みなさん
ありがとうございます♪
この辺の関連がごちゃごちゃになってて困ってたんです。
すごく助かります。

intについてはよく分からなかったのですが、大きすぎるのは
やはり不向きでしょうか?

あと、やっぱり僕は基礎力不足ですね。
ご指導の通り、基礎から読み直してきます。
0336名無しさん@お腹いっぱい。NGNG
>data=(int*)malloc(2000*2000*4);
は
data=(int*)malloc(2000*2000*sizeof(int));
の方が良いとおもう、 またヘッダファイルに対応するのは
どっちかとゆーと.libファイルだと思う。
揚げ足取りでみたいでごめん。
0337おねいさんNGNG
(おにいさんがこたえてくれないので)
配列から最大値を取り出す関数
最小値もこの応用で作ってね。

#include <limit.h>
int getmax(int data[],int count)
{
  int i,max;
  max=INT_MIN;
  for(i=0;i<count;i++){
    if(data[i]>max)max=data[i];
  }
  return max;
}
0338>336NGNG
>data=(int*)malloc(2000*2000*sizeof(int));
には賛成。
> ヘッダファイルに対応するのはどっちかとゆーと.libファイル
だとすると.objの立場は?
ヘッダファイルに対応するのは外部関数や外部変数全てだと思う‥
0339名無しさん@お腹いっぱい。NGNG
Win32だとスタックは通常1MBまで。MSの処理系だとリンカオプションで
増やせるけど、あんまりそれに頼らない方がいい。
0340超初心者NGNG

if(flag){

}
elseif(flag){

}
else{

}
0341超初心者NGNG
で文法あってましたか
0342名無しさん@お腹いっぱい。NGNG
「elseif」じゃなくて「else if」では?
0343超初心者 NGNG
コンパイル成功しました。
どうもです。
0344名無しさん@お腹いっぱい。NGNG
>338
.libファイルは複数の.objをマージして作ることが出来るの。

 実行ファイルを作るときリンカーは.libの中から使う関数の
 ある.objを選び出してくれるので、
 関数毎に.cを作ってコンパイルして各.objを作って.libにまとめて
 ヘッダーは.lib単位にまとめたのを作って提供するの。
0345名無しさん@優しい人NGNG
おーい、
>>325
>>307
>プログラミング以外の質問はお断りですよ。
>エサやりなさい、エサ。<猫
307とおれは違うよ。

>>326
>お姉さんとおねいさんは別人です。
>1に応えてほしいなら「お姉さん」にきいて下さい。>317
もはやどっちでもいいです。

>>327
そうだねー、うん一度試してみるよ。
0346>337NGNG
なるべくポインタを使いましょうね。

int getmax(int *data,int count)
{
  int i,max;
  max = *data++;
  for(i=1; i < count; i++){
    if(*data > max)
     max = *data;
    data++;
  }
  return max;
}
0347>346NGNG
そんなのオプティマイザにまかせなって
0348名無しさん@お腹いっぱい。NGNG
/*
32bitのlongに変数を格納
それを8つの4bit値に分割し、8つのchar変数の配列の
それぞれ下位4bitに格納していくプログラム.
*/


int count;
long int i;

unsigned long bit; /* bit検査 */

unsigned char a[8] = {0,0,0,0,0,0,0,0}; /* これらの下位4bitに格納していく */

i = I;

for(bit = 1,count = 0;bit != 0;bit = (bit << 1),++count){

if(i & bit != 0)
a[count / 4] |= (1 << (count % 4));
else
continue;

}

やろうとしてもchar配列が皆同じ値になっているみたいです。
どこが間違っているのでしょうか?
お願いします。
0349名無しさん@お腹いっぱい。NGNG
>>348
日本語もプログラムもよくわかんない(;´Д`)
32bitsのlong値を4bitsずつに分割してcharの配列に代入するってことでいいの?
で、元の32bitslongの値ってどれ?
i = I; ってなに?
/4と%4はなに?
0350名無しさん@優しい人NGNG
>>347
>そんなのオプティマイザにまかせなって
可読性が落ちない範囲なら良い心がけだと思うぞ?
必ずしも良い環境で動かせるとは限らないからな。
0351名無しさん@お腹いっぱい。NGNG
何をやりたいかは知らんが、
原因はここだろ。

if(i & bit != 0)
0352名無しさん@お腹いっぱい。NGNG
>>348

unsigned long bit;
int i;
char a[8];
for( i = 0; i < 8; ++i ) a[i] = (bit >> (i*4)) & 0xf;

bit を 4ビットに分解して a[] に入れるならこう。
0353347ではないNGNG
>>350
いまどきいちいち注意するほどのことじゃないよ。
0354>346NGNG
ポインタ使うならカウンタも削った方がよいのでは?
さすがにdata+countは最適化してくれるでしょ

int getmax(int *data, int count){
 int *p = data;
 int ret = *p++;
 for(; p < data+count; p++){
  if(ret > *p) ret = *p;
 }
 return ret;
}
0355名無しさん@優しい人NGNG
>>348
なにがやりたいのかいまいちわからん。
が、一応想像してみた。
こういう事じゃないのか?

void bitset(unsigned char *bits, size_t i, int on) {
  if (on)
    bits[i >> 3] |= 1 << (i & 7);
  else
    bits[i >> 3] &= ~(1 << (i & 7));
}
0356348NGNG
>351
if((i & bit) != 0)

でうまくいきました。どうもです。

>352
そういうやり方もあるのですね。
勉強になります。
0357わかりやすくしようぜNGNG
352は分割の仕方が違うんじゃないか?
0,8,16,24bitと
1,9,17,25bitの形にするんじゃない?

int i, j;
for (i = 0; i < 4; i++) {
  for (j = 0; j < 8; j++) {
    if (number & 1)
      a[j] |= 1 << i;
    number >>= 1;
  }
}
0358おじいさんNGNG

bits[i >> 3] って何ですか?使ったことないなあ。
0359346NGNG
>>350
ありがとん。組み込み系はつらいのよん

>>354
なるへそ。でも今使ってるコンパイラは「data+count」を最適化してくれないの。
0360354>359NGNG
>「data+count」を最適化してくれないの。
マジデスカ?
組み込み系は安定性最重視って事なのかな

一応改訂版(こっそりバグ修正版)。
心もち可読性が落ちてきたような...

int getmax(int *data, int count){
 int *p = data, *last=data+count;
 int ret = *p++;
 for(; p < last; p++){
  if(ret < *p) ret = *p;
 }
 return ret;
}
0361名無しさん@お腹いっぱい。NGNG
関数プログラミングのHaskellについての質問なんですけど、
例えば下のようなテーブルがある場合、  

tm = [" X \n"] ++
[" X \n"] ++
["X "]

>Main putStr tm
X
X
X

このテーブルを(Int,Int,Int)のような型に変えて表示したい場合、
((x,y,z) x=列 y=行 z=もし'X'があるなら1、ないなら0)

(0,0,0),(0,1,1),(0,2,0),(0,3,0)
(1,0,0),(1,1,0),(1,2,1),(1,3,0)
(2,0,1),(2,1,0),(2,2,0),(2,3,0)

いったいどのようなファンクションを作ったらいいのでしょうか?
とりあえず頑張ってこんな↓アウトプットが出るファンクションを作ったんですが、
[[" X "],[" X "],["X "]]

後はこれをどうやってこんな↓風なアウトプットを出すのか知りたいのですが、
[[(0,0,0),(0,1,1),(0,2,0),(0,3,0)],[(1,0,0),(1,1,0),(1,2,1),(1,3,0)],[(2,0,1),(2,1,0),(2,2,0),(2,3,0)]]

どなたかご存知でしたら教えて下さい。アルゴリズムでも結構です。
0362361NGNG
スペースが消えてますね。ごめんなさい。'.'がスペースだとすると、
tm =
[".X..\n"] ++
["..X.\n"] ++
["X... "]

>Main putStr tm
.X..
..X.
X...
0363名無しさん@優しい人NGNG
>>358
おじいさんへ
void bitset(unsigned char *bits, size_t i, int on) {
  if (on)
    bits[i / 8] |= 1 << (i % 8);
  else
    bits[i / 8] &= ~(1 << (i % 8));
}
0364名無しさん@優しい人NGNG
ついで。
int bitget(unsigned char *bits, size_t i) {
  return (bits && (bits[i >> 3] & (1<<(i & 7)))) ? 1 : 0;
}
0365名無しさん@優しい人NGNG
ついで。
int bitget(unsigned char *bits, size_t i) {
  return (bits[i >> 3] & (1<<(i & 7))) ? 1 : 0;
}
0366名無しさん@優しい人NGNG
>>364
お、何故か失敗したと思ったやつが書込まれてる。
鬱だ…
0367名無しさん@優しい人NGNG
365で書き直した理由は、先のbitsetでbitsの正当性チェックしてなかったから。
0368名無しさん@お腹いっぱい。NGNG
あぷりけーしょんがつくりたいなー
あぷりけーしょんがつくりたいなー
あぷりけーしょんがつくりたいなー
あぷりけーしょんがつくりたいなー
あぷりけーしょんがつくりたいなー
0369名無しさん@優しい人NGNG
>>368
5回唱えることに意味はあるのか?
0370名無しさん@お腹いっぱい。NGNG
>>369
修行
0371名無しさん@お腹いっぱい。NGNG
  
0372名無しさん@お腹いっぱい。NGNG
   
    
0373おじいさん@早起きNGNG
優しい若者よ、ありがとう。
bits[i / 8] |= 1 << (i % 8);
 <<の使い方が未だにわからんのじゃが、、、
大小を比べているわけでもないしのお。
ま、きにせんでくれ。ありがたや。
0374名無しさん@お腹いっぱい。NGNG
>>373
ビットシフト
0375お姉さんNGNG
さっ、今週も張り切っていこ!
0376名無しさん@お腹いっぱい。NGNG
ハラキリ
0377VC++スレの優しい人NGNG
VC++スレの優しい人です。
このスレの優しい人とは、別人です。
まぁそれだけ・・・
0378名無しさん@お腹いっぱい。NGNG
おねえさん僕の悩みを聞いてください

僕はいま学生で、プログラマ目指してます。

ちょと大き目のプログラムを書いてると、
あとで「この機能を追加したい」とか、
思ったときとても苦労します。

最近しりあいになったプログラマに聞いたら、
UMLを勉強してみたら?っていわれたんですけど
やっぱりお姉さんも設計とか勉強すべきだと思いますか?

どうもUMLで絵を書いてると、頭が痛くなってコードを
さっさと書いてしまいたくなります

ちなみに知り合いのプログラマは年上(24)の女性で、
年上なのにかわいらしくて、好きになってしまいました

ところが最近知ったのですが、なんと彼女はすでに結婚していて、
子供がいるそうです
(ばつ一だそうですが)
告白するべきかどうか悩んでます
0379ミトコンドリ子NGNG
お姉さんじゃないけど、オカマだから口調はおねぇさんなので大目にみてね。

アタシはUMLとか使うべきだと思うわ。使ってるしね。
何度か苦労しているみたいだから、プログラムの規模が大きく
なるとすぐに手に負えなくなることはよくわかるでしょう?
図形的に構造を表現してゆくと、コーディングを始める前に
多くの問題に気付くわよ。
新しい言語を覚えたつもりで書いてみることね。

それから職場での不倫はオススメしないわ。オンナなんて
腐るほどいるんだからさっさと次の恋を探しなさいよ。
不倫はもうちょっと経験を積んでから、オトナのたしなみよ。
ほほほ
0380熱血!名無し先生NGNG
>378
うおおおお!燃えているな若者!
愛とは!愛とは!愛とは奪い取るものじゃあ!
わかったか?わかったかあ!?わかったら逝け!
0381名無しさん@お腹いっぱい。NGNG
>380
ふんどし先生みたいだな(笑
このキャラで若人の深〜い悩みを
解決してやってくれ(感涙
0382名無しさん@優しい人NGNG
>>377
確かにおれとあんたは別人だが、
VC++スレ、って何処の事だ?
まあいいけど…
0383>378NGNG
UMLで告白すれ
え?どうやって?
自分で考えよう
0384名無しさん@お腹いっぱい。NGNG
愛のコンパイル
0385名無しさん@お腹いっぱい。NGNG
コンストラクタで構造体メンバの初期化は
どうやってやればいいんですか?
0386お姉さんNGNG
プログラミングの質問以外はどっか行ってね!!
0387お姉さんNGNG
>>385
普通に初期化するのと同じ要領ですが・・
0388名無しさん@お腹いっぱい。NGNG
>>385

hoge というクラスに i, j というメンバがあったとして、
それぞれ 10, 20 という値をセットしたいとき、

(1) class hoge::hoge() : i(10), j(20){}
(2) class hoge::hoge(){ i=10; j=20; }

(1)は「初期化」
(2)は「代入」 と言う。

メンバ変数に const な変数があったら「代入」が使えない。
そういった場合は「初期化」を用いて値をセットすべし。
詳しくは『Effective C++』第2版の12項を参照。
0389おねーさんNGNG
プログラミングの質問以外は私がお相手するわよー!!
0390名無しさん@お腹いっぱい。NGNG
>>384
コンパイルしたら、以下のエラーが発生しました
Unsatisfied symbols:彼女(data)
*** error 1
どうやったら、正しくコンパイルできるのでしょう?
0391お姉さんNGNG
>>388
この二つ、そういう違いがあったんだ。同じかと思ってたよ。
勉強になりました。
0392385NGNG
もしわけないです、ありがとうございます。
class hoge::hoge() : i.a(10), i.b(20){}
ってやればいいんですね。
0393名無しさん@お腹いっぱい。NGNG
>ミトコンドリ子さん、380さんありがとうございました。
UMLを新しい言語を覚えるつもりで真面目に取り組んでみます。

彼女のことはもうちょっと冷静に考えてみます。
(ここで書くべき内容ではなかったです。すいませんでした)
アドバイス嬉しかったです。
すこし落ち着けました。


>お姉さん
どうもすいませんでした。
変なことを書いてしまいました。
昨日はいろいろあって思い詰めてしまって、
ちょっと冷静さを欠いていたみたいです。
反省しています。
0394初心者NGNG
二次方程式の解を求めるプログラムをCで書けといわれました。
「ax^2+bx+c=0」で、a,b,cの値を入力し、判別式を利用して、解の存在を確かめるんですが、
判別式を0より小さいか大きいかで分けなければなりません。
Cのプログラムでは、絶対値がどれくらい小さな値で0に近似されるのでしょうか?

また、ルートの出し方がわかりません。
√(b^2-4ac)の答えを出すにはどうすればいいでしょうか?
0395388NGNG
>>385
あ、ごめん、タイプミス。分かってると思うけど、
>class hoge::hoge() : i.a(10), i.b(20){}
は
>hoge::hoge() : i.a(10), i.b(20){}
だね。class はいりません。スソマンソ。

あと、構造体のメンバでポインタ関連の問題が無ければ、

typedef struct S{
int a;
int b;
}tagS;

class hoge {
public:
tagS i;
hoge(tagS argI) : i(argI){}
};

int main()
{
tagS s = {10, 20};
hoge h(s);
cout << h.i.a << " " << h.i.b << endl;
return 0;
}
としたほうが、わかりやすかもね。
あと構造体ではなくクラスを用いて、
コピーコンストラクタを作ってやるのもいいかもしれませんよ。
0396ハノイの塔NGNG
仕組みが未だに良くわかりません
再帰関数使ってるみたいですが
どういう順番で処理してるんでしょう?
0397ミトコンドリ子NGNG
>>392 え、そのコードでコンパイル通る? こっちで試したけど通らないわよ。
コンストラクタの初期化部分で、メンバ変数のメンバの初期化はできないんじゃ
ないかしら?
0398ミトコンドリ子NGNG
>>396 再帰を理解してらっしゃらない方に文章で説明するのは至難の技ね。
動くコードを探してきて、途中経過をプリントアウトしまくって、ながめて
ちょうだい。
それでわかんなかったら、いくら説明されてもわかんないんじゃないかしら。
がんばってね。
0399ミトコンドリ子NGNG
>>394 sqrt って関数を調べてごらんなさい。
0400名無しさん@お腹いっぱい。NGNG
http://luna.spaceports.com/~duke999/winduke.lzh
0401名無しさん@お腹いっぱい。NGNG
errno.h 見てみたが under-flow というのはなかった。
394の言うように0に切捨てになるのかな?

数値表現の範囲は俺の環境だと
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/float.h
に書いてる。
0402ミトコンドリ子NGNG
>>394
0への丸めは浮動小数点の規約でいろいろ決まっていて結構メンドウだったと思うわ。

ただ、浮動小数を使って計算する限り必ず演算誤差が入るので、
floatで表現できる最小値だけを考えても見積もりとしては甘くなる
場合が多いことを覚えておいてね。
とくに引き算は有効桁数が大幅に減ることがあるので(桁落ち)、
b^2-4ac > 0 じゃなくて b^2 > 4ac で判定したほうが精度は高いわよ。
(数値計算の常識,伊理正夫著,共立出版,1985,ISBN4-320-0134-3)

各組込型の表現できる最大値や計算時の丸め方法などの情報にプログラム的に
アクセスするなら 401さんの仰るfloat.hや、C++ならstd::numelic_limits<T>
を使うといいわよ。
0403名無しさん@お腹いっぱい。NGNG
>>394
>402
を見てて思ったんだが...

a, b, cは整数なのか?
整数ならばb^2-4acも整数なので浮動小数点の丸め誤差はなくなる

>floatで表現できる最小値
普通は浮動小数点を使うならdoubleじゃないか?
0404ミトコンドリ子NGNG
>>403
>普通は浮動小数点を使うならdoubleじゃないか?
仰るとおり。いまdoubleを使いたくない環境で作業しているので、ついクセで...
鬱ね氏ぬわ。

#係数を整数にするなら、オーバーフローに気を付けてね。
0405名無しさん@お腹いっぱい。NGNG
exeとかの実行ファイルどうやったらプログラムをみれますか?
0406にょだNGNG
FreeBSDなんですけど
プログラムをずっとじっこうしてると実行がおそくなるんですよね
アイドルがあるのに。
スケジューリングってどういうふうになってるのかなぁ〜
めっちゃお馬鹿なしつもんでごめんちゃい
0407>406NGNG
man nice
0408名無しさん@お腹いっぱい。NGNG
>>405
見るって?
0409名無しさん@お腹いっぱい。NGNG
リバースエンジニアリング?
0410>405NGNG
あなたのいっている意味がよく分かりません。

もう少し分かりやすく話してくれないと誰も答えられないと思います。
0411お姉さんNGNG
お姉さんから質問があるんですが
lisp詳しい人いますか?
0412>お姉さんNGNG
# 私は詳しくないのですが...

プログラマ板:lisp
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=963134110

common lispのお勧め参考書を教えてください
http://piza.2ch.net/test/read.cgi?bbs=tech&key=965879532
0413405NGNG
exeファイルはあるのですが、そのexeのソースファイルは
どうすれば見ることが出来るのでしょうか?
0414名無しさん@お腹いっぱい。NGNG
>>413
無理です。
逆アセンブラ使えばアセンブラレベルでは見ることが可能。
Visual C++で読み込めば同様にアセンブラでステップ実行などが出来る。
0415385NGNG
>>388
遅くなりました、
タイプミスは気づきませんでした(^^;;;;;;;ホソマ スソマンソ。

hogeクラスメンバの初期化ですが、その方法はよさそーです!
ありがとうございました!
0416にょだNGNG
>407
man niceって優先度をかえたいんじゃなくて
スケジューリングのアルゴリズムをしりたかったんです
言い方がたりませんでしたね。
なんか古い実装のままの奴だとユーザの入力がないと
実行優先度がCPU時間に反比例しておちていくってのを
聞いたんで〜〜ほんとかな?って
0417にょだNGNG
バイナリエディタでみれるでしょ?
それがいやならディスアセンブラ
0418優しい名無しさんNGNG
ALL FUCK YOU !!!!!!!

GYAHAHHAHA!!

http://www.geocities.co.jp/WallStreet/9044/sakurakai.html
BBS
http://sakurakai.virtualave.net/gunjin3/yybbs.cgi
l
0419名無しさん@お腹いっぱい。NGNG
>>417
バイナリファイルではソースは見れない。
0420名無しちゃん@背中おっぱい。NGNG
WIN32API tte?
0421名無しさん@お腹いっぱい。NGNG
>>413
そのexeを作ったとこの開発チームに入れば見れる
0422名無しさん@お腹いっぱい。NGNG
>>420
検索しなさい。
0423お姉さんNGNG
>>412
ありがとうございました。lispのスレッドがあったんですね。
早速行ってみます!
0424初心者@394NGNG
>>394で二次方程式の質問をしたものです。
暖かい回答ありがとうございました。
誤差やルートなど、大変勉強になりました。
また、お礼が遅れて申し訳ありません。
0425名無しさん@お腹いっぱい。NGNG

さいころの出た目を数えるプログラムです。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>

int saikoro();
int main()
{
int s1,i,no;
int kaisu[6];

for(i = 0; i <= 5; i++){
kaisu[i] = 0;
}
printf("何回振る?\n");
scanf("%d",&no);

srand(time(NULL));
for(i = 1; i <= no; i++){
s1 = saikoro();
kaisu[s1-1] += 1;
}

for(i = 1; i <= 6; i++){
printf("%2d= %5d\n",i,kaisu[i-1]);
}
(void) getch();
return 0;
}
int saikoro()
{
return rand() % 6 + 1;
}

僕はs1 = saikoro();の
s1を使って、a,b,c,の初期化0でswitch(s1)
case 1:a++
case 2:b++
case 3:c++・・・
最後にprintf("%d = %d\n",i,a);・・・というふうにしたんですが、
これのkaisu[s1-1] += 1の意味がわかりません。kaisu[s1-1]の
[s1-1]ってなぜ1引くんですか?それと+=1はkaisu[s1-1] =kaisu[s1-1] + 1;ということは
わかるんですが、どうして1足すんですか。教えておね〜さ〜ん。マジで。
0426名無しさん@お腹いっぱい。NGNG
>kaisu[s1-1]の[s1-1]ってなぜ1引くんですか?
さいころの出目が1〜6でkaisuは0〜5までだから

>どうして1足すんですか
さいころの出た目を数えるプログラムだから

>kaisu[s1-1] += 1;
のかわりに
switch(s1) {
case 1:kaisu[0]++;break;
case 2:kaisu[1]++;break;
case 3:kaisu[2]++;break;
case 4:kaisu[3]++;break;
case 5:kaisu[4]++;break;
case 6:kaisu[5]++;break;
}
でも間違ってはいないが冗長だ
0427名無しさん@お腹いっぱい。NGNG
お姉さんだーーーーーーいすき♪\(○w○)))))))

0428お姉さんNGNG
>>425

> kaisu[s1-1]の[s1-1]ってなぜ1引くんですか?
> それと+=1はkaisu[s1-1] =kaisu[s1-1] + 1;
> ということは わかるんですが、どうして1足すんですか。

それはね、コーディングした人が素人だからだわ。

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

#define saikoro() (rand() % 6)

int main()
{
 int i, count;
 int hindo[] = {0, 0, 0, 0, 0, 0};

 printf("何回振る?\n");
 scanf("%d", &count); /*あまり勧められないわ*/

 srand(time(NULL));
 for(i = 0; i < count; i++)
  hindo[saikoro()]++;

 for (i = 0; i < 6; i++)
  printf("%2d = %5d\n", i + 1, hindo[i]);

 return 0;
}

0429JSDK2.0〜NGNG
あのぉ、つかぬことをお聞きしますが、、、
JSDK2.0〜はどこでDL出来るんでしょうか?
SUNのページに行っても無いのですが。。。
どうかこの3日間探し回っている厨房にお教えください。
0430JSDK2.0〜NGNG
↑すんません、すれ違いでした。。。
0431お姉さんNGNG
んんん?(・・;)
まあいっか。
0432425NGNG
どうもありがとうございました。425です。
scanfって、あまり使われないという話を聞くんですが何でですか。
ところで、今ポインタをやってるんですが、これってよく使いますか?
関数へ配列渡す時とか、戻り値が1つじゃない時くらいしか使い道がないんじゃないか
って思いますし、非常に難しいです。出来ればつかいたくないっす。
**ptr ポインタのポインタなんてまるで解からないよ〜。

int *ptrの読み方は「int ポインタptr」って読むんですか。*は何て読むの?

0433初心者ですいませんNGNG
2次元配列で12x12の迷路を作り、それを通り抜けるっているプログラムを書けって言われました。
壁は*、床は・、通った跡にXを表示し、一歩進むたびに迷路を再表示するプログラムなんですけど、
どうしたらいいのかさっぱりなんです。
ひとつ隣に移動したり、通った跡にXを表示させるにはどうしたらいいでしょうか。
どなたか教えてください。よろしくお願いします。
0434>433NGNG
その2次元配列そのものに *・Xを書き込めばよか
0435オネーサンNGNG
>>432

>scanfって、あまり使われないという話を聞くんですが何でですか。
前回作成したプログラムの「何回振る?」の後に
0〜9以外の文字を入力してみてください。
# scanfの後に取得した回数を表示して見ると良いかもしれません。

>ところで、今ポインタをやってるんですが、これってよく使いますか?
>関数へ配列渡す時とか、戻り値が1つじゃない時くらいしか使い道がないんじゃないか
>って思いますし、
代表的な使われ方は上記の通りです。
Cでは上記のような場合、ポインタを使用しないと実現しにくいです
グローバル変数を使えば可能ですが、それは
不必要にgoto文を使用することと同じくらい好ましくありません。

>非常に難しいです。出来ればつかいたくないっす。
確かにC言語でポインタが理解できなくて挫折する人が多いという話は聞きます。
しかし、Cはポインタをよく使う言語でありポインタからは逃れられません。

また、Javaなどの言語もポインタは隠蔽されているだけであり、
ポインタを知ることにより、Javaなどの言語も深く理解できると信じています。

逃れられない以上積極的に学ぶのが上達の早道ではないでしょうか?
私もできる限り応援したいと思います

>int *ptrの読み方は「int ポインタptr」って読むんですか。*は何て読むの?
「ポインタ」、「アスター」、「スター」ですね
私は「アスター」と呼びます
0436名無しさん@お腹いっぱい。NGNG
「*」を「ほげ」とよんでるオレは逝ってよしですか?
例: int * = いんとほげ
0437どっかにあった気がするけどNGNG
* は「アス」がえっちでええのお
0438名無し様@ハァハァNGNG
C++で出来ること教えてチョソマゲ。Borland C++ Compiler。
勉強(リファレソス?)ぺぇじとか。

イッテヨシ?(´Д`;)
0439姐さんNGNG
>438
それ以前にアンタ何作りたいのさ?
0440おじいさんNGNG
API SendMessage使ってF1キーを押させるとこうなるのじゃ。
SendMessage( hWndTarget,WM_KEYDOWN,VK_F1,0);
しかし、CtrlキーShiftキーAltキーができないのじゃよ・・

keybd_event(VK_CONTROL,0,0,0);
keybd_event(inputkey,0,0,0);
keybd_event(inputkey,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
みたくできる方法はdoするの?
0441小学3年生NGNG
おねえさん、マムコ見せて下さい。
0442名無しさん@お腹いっぱい。NGNG
>441 既出
>>83
0443425NGNG
お返事どうもありがとうございます。425です。
やっぱりポインタは大事ですか。非常にとっても難しいけれどがんばります。
恐らく今度は構造体で質問する予定です。これも難しいですね。
ところで、windowsのプログラムって覚えるのに時間掛かりますか。
もうすぐCが一通り終わるし、ゲーム作ると覚えが早いと言っていたので、
テトリスとかオセロとか作ってみたいんですが。
0444hashNGNG
ハッシュ値と名前が順番に表示されるようにしたいのですが、上手く行きません。
どうしたらいいですか?おねえさん、お願い!

/*オープンアドレス法*/

#include <stdio.h>
#include <string.h>
#define Tablesize 50
#define MEIBO "namefile"
FILE *fp;
int hash(char *);
int rehash(int);

struct Mtable{
char name[20];
int fulg;
}dat[Tablesize];

void main(void)
{
int h,i,last;
char a[20];
fp=fopen(MEIBO,"r");
while(fscanf(fp,"%s",a)!=EOF){
h=hash(a);
i=h;

last=(i+(Tablesize-1))%Tablesize;
while(dat[i].fulg==1&&i!=last)
i=rehash;
if(i!=last){
strcpy(dat[i].name,a);
dat[i].fulg=1;
}
else
printf("%s \n",a);
}

for(i=0;i<Tablesize;i++){
printf("%d %d\n",i,dat[i].name);
}

for(;;){
scanf("%d",a);
if(a[0]=='0')break;
h=hash(a);
i=h;
last=(i+(Tablesize-1))%Tablesize;
while(strcmp(a,dat[i].name)!=0&&i!=last)

i=rehash(i);
if(i!=last)
printf("%d%20s\n",i,dat[i].name);
else
printf("%20s\n",a);
}
}

int hash(char *s)
{
int n,i,sum=0;
n=strlen(s);
for(i=0;i<0;i++){
sum+=s[i];
}
return (sum%Tablesize);
}

int rehash(int h)
{
return (h+1)%Tablesize;
}
0445お姉さんNGNG
私はアスタリスクと読みます。英語風に
最初のアはエとアの中間で発音します。
0446お姉さんNGNG
外人プログラマの間ではスターと読んでいるようです
0447お姉さんNGNG
>>433
char meiro[12][12]
一つ右に移動 meiro[i][j++]='X';/*現在地meiro[i][j]とする*/
  左    meiro[i][j--]='X';
上    meiro[i--][j]='X';
下    meiro[i++][j]='X';
一つ移動する度に更新された迷路全体をプリントするのですか?
だったら普通にループで出来ますよお
0448名無しさん@お腹いっぱい。NGNG
具体的に書くと
SCANという関数を用意する。調査位置をX,Yとする
1)4方向を調べて、空白が4の数を調べ SPC_COUNTに代入
2)SPC_COUNT==1なら空白の方向にX,Yを更新
3)SPC_COUNT>1ならすべての空白の位置に移動してみてはSCAN(つまり自分)を呼び出す
4)SPC_COUNT==0ならRETURNする(行き止まりまたは到着)
0449名無しさん@お腹いっぱい。NGNG
>>436
ほげ、最高!
俺もほげと呼びます。
すばらしい名称ですね。
0450** ほげほげNGNG
WindowsSDKの質問です。
複数のウィンドウプロシージャがあるにもかかわらず
WinMainではメインのウィンドウプロシージャにしかメッセージを
ディスパッチしていません。子ウィンドウにはどのようにして
メッセージが渡されるのですか?
またメッセージキューには子ウィンドウとメインのウィンドウのメッセージ
がごちゃまぜになっているのですか?
0451名無しさん@お腹いっぱい。NGNG
ドキュンな質問で申し訳ないのですが
VBやExcelで
1.5 - 1.0 - 0.5 = 0 は ture
なのですが、
1.6 - 1.0 - 0.6 = 0 は false
になるのはなぜですか?

本当に初心者の質問で申し訳ありませんが
どうかご教授願えればと思います。
正直困っていますので、どうかよろしくお願いします。
0452>451NGNG
float(double) だから?
0453名無しさん@お腹いっぱい。NGNG
INT() を使って整数化して判定すればー
0454451NGNG
452さん、453さん
早速のレスありがとうございます。

453さんのおっしゃるとおり、int()をつかったり
型の宣言をすれば問題無いと、解決策は見つかったのですが
なぜ、バリアント型だと上手くいかないかの理由がわかりません。

しかも、1.5 - 1.0 - 0.5 = 0 は ture になるのに・・・・。

どうか理由がお分かりでしたら、教えてください。
お願いします。
0455名無しさん@お腹いっぱい。NGNG
>>454
http://www.alpha-net.ad.jp/users2/ei9711/vbkouza/kouza04.html
0456>454NGNG
ヒントとして

0.5000は2進数で書けば0.10000000...
0.6000は2進数で書けば0.10011001...
つまり無限少数になりますね
0457名無しさん@お腹いっぱい。NGNG
こいつのエラ−が取れません誰か助けてください
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;

class strtype
{
char *p;
int len;
public:
strtype( char *ptr );
~strtype() { delete [] p; }
friend ostream &operator << ( ostream &stream, strtype ob );
};

strtype::strtype( char *ptr )
{
len = strlen( ptr ) + 1;
p = new char [ len ];
if( !p ) exit( 1 );
strcpy( p, ptr );
}

ostream &operator << ( ostream &stream, strtype &ob )
{
stream << ob.p;
return stream;
}

int main()
{
strtype ob_1( "hello!!" ), ob_2( "good morning!!" );

cout << ob_1 << endl << ob_2 << endl;

return 0;
}
0458名無しさん@お腹いっぱい。NGNG
すんません
フレンドの宣言の2つ目の因数の参照の&はついてる物として下さい
0459名無しさん@お腹いっぱい。NGNG
こんなえら−がでます
:\Windows\デスクトップ\プログラム\新しいフォルダ\K2.cpp(26) : error C2248: 'p' : private メンバ (クラス 'strtype' で宣言されている)にアクセスできません。
C:\Windows\デスクトップ\プログラム\新しいフォルダ\K2.cpp(8) : 'p' の宣言を確認してください。
C:\Windows\デスクトップ\プログラム\新しいフォルダ\K2.cpp(34) : error C2593: 'operator <<' があいまいです。
cl.exe の実行エラー
0460名無しさん様NGNG
true
0461名無しさん@お腹いっぱい。NGNG
まずフレンドにしているのになぜ非公開めんばにアクセスできないのですか?
0462じろうくんNGNG
なんか、むずかしそうなしつもんがふえてきたきがするな。
お姉さんもこれじゃちょっとこまるかも。
0463名無しさん@お腹いっぱい。NGNG
friendなんて使ったこと無いなー
演算子のオーバーライドも使ったこと無いなー

はい次の人
0464迷路の質問をしたものですNGNG
一応書いてみました。壁とかは今のところ無視しています。
どこが違うのかまったくわからないのですが、移動ができないんです。(T_T)
添削お願いします。
#include <stdio.h>

main()
{
int a;
int i, j;
char *p;
char maze[12][12] = {
{'*','*','*','*','*','*','*','*','*','*','*','*'},
{'S','.','.','.','.','.','.','*','.','.','.','*'},
{'*','*','.','*','.','*','.','.','.','*','.','*'},
{'*','*','.','*','.','*','*','*','*','*','.','*'},
{'*','*','.','*','*','.','.','.','.','*','.','*'},
{'*','.','.','.','*','.','*','*','.','*','.','*'},
{'*','*','*','.','*','.','*','*','.','*','*','*'},
{'*','.','*','.','.','.','*','.','.','*','.','E'},
{'*','.','.','.','*','.','*','.','*','*','.','*'},
{'*','*','*','*','*','.','*','.','*','*','.','*'},
{'*','.','.','.','.','.','*','.','.','.','.','*'},
{'*','*','*','*','*','*','*','*','*','*','*','*'}
};

for(i=0; i<12; i++)
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
p = &maze[1][0];
*p = 'X';

while(1) {
printf("Which direction do you want to go?\n");
printf("up :1\ndown :2\nleft :3\nright:4\n");
scanf("%d",&a);
switch(a) {
case 1: /*up*/
p = &maze[i--][j];
*p ='X';
for(i=0; i<12; i++) {
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
}
break;
case 2: /*down*/
p = &maze[i++][j];
*p = 'X';
for(i=0; i<12; i++) {
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
}
break;
case 3: /*left*/
p = &maze[i][j--];
*p = 'X';
for(i=0; i<12; i++) {
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
}
break;
case 4: /*right*/
p = &maze[i][j++];
*p = 'X';
for(i=0; i<12; i++) {
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
}
break;
default:
printf("Input again\n");
break;
}
}
}
0465451NGNG
455さん、456さん
レスどうもありがとうございました。

おかげさまで、どうにか理解することができました。
本当にこんなくだらない質問に答えていただいて
感謝しております。

また、何かあったときはどうかよろしくお願いします。

452さん、453さん、455さん、456さん、
ありがとうございました。
0466464ですNGNG
見難くてすいません。
0467お姉さんNGNG
あああ
質問がたくさんで対応しきれないよう
みんな出てきて、いちろうくん、じろうくん、おじいさん、おねいさん、
おにいさん、姐さん、家族のみんな。
0468赤ちゃんNGNG
>>457

コンパイラ通って実行できたでちゅ。

L:\src\CPP_SOURCE\temp>bcc32 friend.cpp
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
friend.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

L:\src\CPP_SOURCE\temp>friend
hello!!
good morning!!

使ってるコンパイラとバージョンを教えて欲しいでちゅ。
0469>464NGNG
case 1: /*up*/
p = &maze[i--][j]; ここのi, jがループ毎に初期化されてまってます。
別の名前の変数を宣言して、ループで初期化されへんようにしてね。
他のcaseも同様に。

*p ='X';
for(i=0; i<12; i++) {
for(j=0; j<12; j++) {
printf("%c ",maze[i][j]);
if(j==11)
printf("\n");
}
}
0470>>464NGNG
ソ−ス書いてみました一応動きます
壁チェックもしてます
#include <stdio.h>

#define SIZE 12

char maze[SIZE][SIZE] = {
{'*','*','*','*','*','*','*','*','*','*','*','*'},
{'S','.','.','.','.','.','.','*','.','.','.','*'},
{'*','*','.','*','.','*','.','.','.','*','.','*'},
{'*','*','.','*','.','*','*','*','*','*','.','*'},
{'*','*','.','*','*','.','.','.','.','*','.','*'},
{'*','.','.','.','*','.','*','*','.','*','.','*'},
{'*','*','*','.','*','.','*','*','.','*','*','*'},
{'*','.','*','.','.','.','*','.','.','*','.','E'},
{'*','.','.','.','*','.','*','.','*','*','.','*'},
{'*','*','*','*','*','.','*','.','*','*','.','*'},
{'*','.','.','.','.','.','*','.','.','.','.','*'},
{'*','*','*','*','*','*','*','*','*','*','*','*'}
};
int a;
int i, j;
char *p, *p_ch;

void show()
{
for( i = 0; i < SIZE; i++ ) {
for( j = 0; j < SIZE; j++ ) {
if( &maze[ i ][ j ] == p ) printf( "X " );
else printf( "%c ", maze[ i ][ j ] );
}printf( "\n" );
}
}

void main()
{
p = p_ch = &maze[ 1 ][ 0 ];
while( 1 ) {
show();
printf("Which direction do you want to go?\n");
printf("up :1\ndown :2\nleft :3\nright:4\n");

scanf("%d",&a);
switch( a ) {
case 1: p_ch -= SIZE;
break;
case 2: p_ch += SIZE;
break;
case 3: p_ch--;
break;
case 4: p_ch++;
break;
}

if( *p_ch == '*' ) {
p_ch = p;
puts( "input ererr!!" );
continue;
}
p = p_ch;

if( &maze[ 7 ][ 11 ] == p ) {
puts( "END" );
break;
}
}
}
0471名無しさん@お腹いっぱい。NGNG
おねえさん>>457の質問答えて下さいお願いします
_(._.)_  _(._.)_  _(._.)_  _(._.)_  _(._.)_  _(._.)_  _(._.)_ 
0472名無しさん@お腹いっぱい。NGNG
>>467
コンパイラはVC++6.0のすたんだ−とです
0473472NGNG
>>468でした荒らしてしまってすんまそん
0474赤ちゃんNGNG
>>472
http://support.microsoft.com/support/kb/articles/Q192/5/39.asp
コンパイラのバグのようでちゅ。
サービスパックをあてればいいみたいっちゅ。

vcpp-ML の 11/16 [vcpp 00048499] から、苦肉の策を引用っちゅ。

>解決策は2つあります。
>1.<iostream>を<iostream.h>にする。
>2.using namespace std;を削除して、std内にあるもの(ostream&や
>  cout、endl等)に個別にstd::をつけていく。

ところで vcpp に投稿したのはもしかしてキミでちゅか?
0475472NGNG
>>474
いいえ僕じゃないです
それにしても457のそ−すはみごとにそのバグにはまってますね
奇遇です
0476名無しさん@お腹いっぱい。NGNG
x^50=(x^2)^25
y^25=y*y^24=y*(((y^2)^2)^2)^3
こんなふーに冪乗の計算回数をなるべく節約して
冪乗の計算をして来いと言われました。
このプログラムを改造してください。再帰呼出を使ってくださっても
結構です。やる暇が無いので宜しくお願いします。
メアドにくださっても結構です。
#include <stdio.h>
main()
{
double x;
int n;
double beki(double x,int n);

while(1){
scanf("%lf %d",&x,&n);
if(x==0 && n==0){
break;
}

printf("%g^%d=%.15g\n",x,n,beki(x,n) );
}
}
double beki(double x,int n)
{
int i;
double s,t;
s=x;
t=1;
if(n>0){
for(i=1;i<n;i++){
s=s*x;
}
return s;
}else if(n==0){
return 1;
}else {
for(i=1;i<-n+1;i++){
t=t/x;
}
return t;
}

}
0477名無しさん@お腹いっぱい。NGNG

x^50=(x^2)^25
y^25=y*y^24=y*(((y^2)^2)^2)^3
こんなふーに冪乗の計算回数をなるべく節約して
冪乗の計算をして来いと言われました。
このプログラムを改造してください。再帰呼出を使ってくださっても
結構です。やる暇が無いので宜しくお願いします。
メアドにくださっても結構です。
#include <stdio.h>
main()
{
double x;
int n;
double beki(double x,int n);

while(1){
scanf("%lf %d",&x,&n);
if(x==0 && n==0){
break;
}

printf("%g^%d=%.15g\n",x,n,beki(x,n) );
}
}
double beki(double x,int n)
{
int i;
double s,t;
s=x;
t=1;
if(n>0){
for(i=1;i<n;i++){
s=s*x;
}
return s;
}else if(n==0){
return 1;
}else {
for(i=1;i<-n+1;i++){
t=t/x;
}
return t;
}

}
0478名無しのエリーNGNG
>>477
ひとつツッコミいれると、そんなの展開するのダルイよ。
基本的に意味無いし。
素因数分解しないと最適化できないけど素因数分解なんてするくらいなら
素直に pow 関数でも使った方が速いよ!
0479名無しさん@お腹いっぱい。NGNG
どーしてべき乗を表現するのに^使うの?
^はビット演算子ざんしょ?
0480名無しさん@お腹いっぱい。NGNG
<479
>>477のソースがCだからそういうツッコミもアリだと思うけど・・・(ニコッ
0481名無しさん@お腹いっぱい。NGNG
ん〜、たしかに^やら~やら知らないCプログラマっているよね。
0482迷路の質問をした者ですNGNG
434さん,448さん,469さん,470さん、
教えてくれてどうもありがとうございました。
なんとか完成させることができました。
やっぱりポインターって難しいですね。
頭がパンクするかと思いました。
また質問することがあると思いますが、
そのときもまたよろしくお願いします。
おやすみなさい。m(_ _)mzzzzz
0483名無しさん@お腹いっぱい。NGNG
>>477

つーか、この技法はセオリー。宿題はきれいに解こう。
この技法が単純に n 回乗算するよりも計算量以外に優れている点を
考察してレポートに書くと評価があがるかも。
学生時代を思い出すよ。

double ipow(double x, int n)
{
 int n2;
 double r;
 for( n2 = abs(n), r = 1; n2; n2 >>= 1 ) {
  if( n2 & 1 ) r *= x;
  x *= x;
 }
 if( n >= 0 ) return r; else return 1 / r;
}
0484悩めるプログラマNGNG
スプライン補間のソースありませんか?
0485名無しさん@お腹いっぱい。NGNG
powは使っちゃ逝けねえからきいてんだぼけえ
0486名無しさん@お腹いっぱい。NGNG
age
0487山有り谷ありNGNG
お姉さんへ、Javaのメリット、デメリットを教えてください。
あとスリーサイズと、初体験の年齢
0488岡あり谷ありNGNG
おねーさん、ぼくにCを教えてください。それとおねーさんは、
プロですか?アマチュアですか?ぼくも、プロ・グラマーになりたい
0489おねいさんNGNG
C初体験は19の春でした。
たしかBSD-Cだったわ‥♪
0490おねいさん、改め、オバサン?NGNG
40近くないかえ?
0491おねいさんNGNG
だってぇ、学校にはそれしかなかったんだもん。
0492>483NGNG
ありがとうございます。がんばります。
0493厨房アマチュアグラマNGNG
LINUXをつかってプログラミングの勉強をしてるんですが、
LINUXでのプログラミングの解説サイトあったらおしえてください。
0494名無しさん@お腹いっぱい。NGNG
∧ ∧ ──────
 (゚Д゚ ) < >> 一発殺ラセロー
 ⊂⊂\──────
   \ 〜 ────
<- し し ─────
0495おじいさんNGNG
BDS-C か、懐かしいのう。
Optimizing C-86 とか HiTech-C とか Power-C というのも
あったのう。
わしは Lattice C 2.11 が C 初体験じゃった。
0496名無しさん@お腹いっぱい。NGNG
セクースしてぇ、でへでへ。(よだれだらだら)
0497おじさんNGNG
初体験はα-Cだったなぁ‥Z用。
0498名無しさん@お腹いっぱい。NGNG
for(n2=abs(n),r=1;n2;n2>>=1){
if(n2&1)
477です。調べてみたのですが483さんの
abs(n)というのがよくわかりません。
n2&1というのは論理積というものでしょうか
n2が1なら真になるということでしょうか
0499498NGNG
>n2が1なら

n2が0以外なら
0500SAGENGNG
> n2が0以外なら

n2が奇数なら
0501お姉さんNGNG
私の年齢?
花も恥じらう45歳。
0502名無しさん@お腹いっぱい。NGNG
>501
そりゃ花じゃなくても恥ずかしい年だな。
妄想してる奴が可哀相だから、そんな数字書くな。
0503名無しさん@お腹いっぱい。NGNG
C++でC言語の free ptr に対応するのは delete [] ptr らしいの
ですが、delete abc に対応する C言語の命令はなんなのでしょうか。
0504>498NGNG
Cの&はビット演算子です。ビットごとの論理積をとります。
論理演算子の論理積は&&ですのでお間違えなきよう。
0505名無しさん@お腹いっぱい。NGNG
>>502
45なんてうそにきまってるでしょ.本当は20歳!(hexで)
0506お姉さんNGNG
何なんでしょう?私も知りません。

>>502
冗談です。本当はそれマイナス20歳です。
0507お姉さんNGNG
>>505
32なんて行ってませんよお!
0508おねいさんNGNG
>503の名無しさん
CのfreeとC++のdeleteは同等のものではないの。
C++でもmallocなんかで確保したメモリはfreeで開放します。
deleteはnewで確保したメモリに使います。
new〜[]で確保したメモリはdelete[]で開放。そゆこと。
0509お姉さんNGNG
なあああるほどね。
0510名無しさんNGNG
>>502
6進数で45歳なら10進数で29歳。まだまだ。
0511名無しさん@お腹いっぱい。NGNG
>503
new==malloc+コンストラクタ起動
delete==デストラクタ起動+free
です。

deleteとdelete[]の違いは、そのオブジェクトをnewしたのが
単体か配列かによって。
0512お姉さんNGNG
お姉さん待機中。質問待ってます
0513511NGNG
あ、あくまでイメージね。
実装はどうなってるのか知らんよ。
0514511NGNG
あ、誤解しないでくださいませ。
イメージがそうであるってことで、
細かい事はもうちょっと違うかも。

そのへんよう知らんので、突っ込み勘弁。
0515おねいさんNGNG
newがmallocを間接的に呼び出すかどうかは実装によります。
freeとデストラクタを明示的によんでも、正常にdeleteできる
保証はぜんぜんありません。
特にnewは演算子オーバーロードされて期待とは全く違う動作に
なっていることもあるのでご用心あれ。
0516498NGNG
C習って1ヵ月くらいなのですがまったく??です。
どなたか完璧に説明してくれませんか。
ちなみに配列と関数の書き方しかしりません。
だれかおせーて
0517名無しさん@お腹いっぱい。NGNG
あしたまでなんだよー
あしたまでなんだよー
あしたまでなんだよー
あしたまでなんだよー
0518名無しさん@お腹いっぱい。NGNG
∧ ∧ ──────
 (゚Д゚ ) < >> 一発殺ラセロー
 ⊂⊂\──────
 \ 〜 ────
<= し し ─────
0519おねいさんNGNG
>516
504の回答じゃ、わからなかったのかな?
abs(n)は、nの絶対値。
if(n2&1)は、n2の最下位ビットが1なら真です。
0520おねいさんNGNG
させたげません。おあずけ。 > ズレギコちゃん
0521483NGNG
数の表現の理解は大丈夫かの?簡単におさらい。

まず x の10乗と−10乗を求めることを考えよう。
−10乗の場合 は乗数の性質から 1 / (x の10乗)で求められる。
これから、負の乗数の場合も正の乗数を求めることに置きかえることができる。->abs

で 10 は二進数であらわすと 1010 。 1*8 + 0*4 + 1*2 + 0*1 = 10
これはべき乗を最短の形で表しているよね。
それぞれのビットが求める答えになっているでしょう。

n の10乗 = 8乗×2乗

これから1、2、4、8乗を求めていき、n2 のビットが立っているところの
乗算値を答えの値にかけていけば良い。

for の条件式が n2 なのは乗数がオール0のとき終了することを意味し、
ループの中では n2 の最下位ビットを & 演算で調べ、1なら答えに掛ける。
次の演算のために x = x * x で x の2乗を求めて、
次のビットに着目するため n2 を1ビットシフトする。

最後に n の正負を調べ、負なら 1 / r を返す。
0522名無しさん@お腹いっぱい。NGNG
おねいさま、503の名無しです。お答えありがとうございますです。

VisualC++のソースコードデバッガでトレースすると
 int* ptr = new int[100];
に対して
 delete ptr; も delete [] ptr;
も同じ関数を(中身はfreeだけ)呼んでるので、
本当に違いがあるのかなと疑問に思ったのでした。
それともこれはオブジェクトが単純型だからなのかな?
0523名無しさん@お腹いっぱい。NGNG
デストラクタ呼んでる回数が違うんじゃない?

delete[]だと、配列に入ってるオブジェクト全部にデストラクタ
起動していて、deleteだと先頭だけになっちゃうとか。
0524名無しさん@お腹いっぱい。NGNG
つまり、intやcharみたいに最初からデストラクタがない型の場合は
どちらを使っても同じと考えていいということでしょうか。
0525名無しさん@お腹いっぱい。NGNG
同じと考えては逝けません。
あなたの使っているコンパイラのあなたの使っているバージョンの
あなたが使っている現在のそのライブラリなどを含めた環境だけで
たまたまそうなっていたと考えるのが安全です。
0526名無しさん@お腹いっぱい。NGNG
intやcharにはデストラクタが無いというのは
C++の言語仕様に入っているの?
0527>483さまNGNG
こんな厨房に何度も詳しく教えてくださってありがとうございます。
プログラマめざしてがんばります。感謝です。
0528>483NGNG
理解できました!
0529名無しさん@お腹いっぱい。NGNG
WindowsのSDK(Win32API)のプログラムなんだけど
複数のWindowを作成するにはどうすれば良いかな?

複数のWindowというのは、親Window内に子ウィンドウを作ったり
ダイアログボックス(モーダル・モードレス)を作ったりという
意味じゃなくて、親Windowと同等のWindowを複数作りたいんだけど。

子ウィンドウだと、親ウィンドウ内でしか表示できないし、ダイアログだと
制限あるし、困ってます。
0530名無しさん@お腹いっぱい。NGNG
親ウィンドウと同じクラス名でCreateWindowしろや、ボケ
SDKで組むんだったらエキストラバイトの使い方くらい
しっとるんやろな?ドアホ
0531529NGNG
>530
エキストラバイトって、初めて聞きました。(w
このスレの1には初心者って書いてあったので
この程度なら良いかなと思ったんだけど、初心者過ぎたかな。
インスタンスハンドルに何を設定すれば良いのか、分からないのです。
ウィンドウハンドルは、親とは別のものを定義していますが
インスタンスハンドルは、どのように取得すれば良いですか?
現在は
HINSTANCE hInstance;
hInstance = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
のようにしてますが、これじゃ親と同じですな。(w;
+1とかしてみても駄目だし。
インスタンスハンドルは、どのように取得したら良いですかね?
0532名無しさん@お腹いっぱい。NGNG
>>531
CreateWindowに呉れてやるhInstanceのことを云っているのなら、
これはApplicationやDLLなどのモジュールのインスタンスハンドル
なのだから、親と同じなのは当然ぢゃないか。
面倒ならグローバル変数にでも保存しておき給え。
0533529NGNG
>親と同じなのは当然ぢゃないか。
あら、そうなのですか。
親と同じインスタンスハンドルを渡してるんですが。
では、ウインドウが作成できない理由は他にあるのか・・・。
とりあえず、がんばってみます。
ありがとう。
0534りょうNGNG
text/plainの送受信ができる、iモードのようなメーラーをCで作ってみたいんですが、
ヒントを下さい。お願いします。
0535名無しさん@お腹いっぱい。NGNG
>534
とりあえずTCP/IPの情報調べて、SMTPとPOPだけ覚えなされ。
ソケットつかってアプリ層だけ作るならたいしたことじゃない。
0536名無しさん@お腹いっぱい。NGNG
>>534
SMTPのテスト送信は気をつけてね。
0537お姉さんNGNG
盛り上がってるな、よしよし。
なんか初心者向けの質問が少ないねえ・・こたえらんないよ。
0538名無しさん@お腹いっぱい。NGNG
>>537
という事は、みんなが努力しているうちにお姉さんよりレベルが上がって、
『お姉さんが、この板のレベルよりも低いレベル』になったの?
0539529NGNG
えと、一応ご報告。
複数Windowの表示出来ました。
532さんの言う通り、インスタンスハンドルは同じもので出来ました。
530、532の両氏、ご助言ありがとう。
ただ、未だに「エキストラバイト」ってわからないんですが。(w
複数の検索エンジンにかけても、それらしき結果が見当たらないのですが。
マジで、「エキストラバイト」ってなんですか?
0540名無しさんi486NGNG
>>538
ギコ猫 > お姉さん
わかったか?
0541名無しさん@お腹いっぱい。NGNG
>>538
このスレッドの最初の方を見ましょう。
元々、お姉さんはレベルが低いのです。
0542538NGNG
プッ
0543名無しさん@お腹いっぱい。NGNG
>>539
もっとよく調べんかボケ!おまえのように一つのクラス名から
たくさんのウインドウを開くときに必要な技術だアホ!

  CMyWindow *object = new CMyWindow;
  ::SetWindowLong(hWnd, GWL_USERDATA, (LONG) object);

hWndにobjectを結び付けておけば、必要なときに

  object = (CMyWindow *) ::GetWindowLong(hWnd, GWL_USERDATA);

でhWndに関連する情報がとってこれるだろアホ。。。え?まだわからん
ってか!おまえどうかしてるぞ!!

  char window_data[1024];

  long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg, WPARAM wPrm, LPARAM lPrm)
  {
    if (uMsg == WM_KEY)
      window_data[count++] = wPrm;
    ....


とかやって、同じウインドウを何枚も開くとwindow_dataがどうなるかわ
かるだろアホ!だから、

  long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg, WPARAM wPrm, LPARAM lPrm)
  {
    CMyWindow *object;

    object = (CMyWindow *) ::GetWindowLong(hWnd, GWL_USERDATA);

    if (uMsg == WM_KEY)
      object->window_data[object->count++] = wPrm;
    ....


こうやって、エキストラバイトを使うんだろが!ボケナス!こんだけ教えてやりゃー
ウインドウ・クラスライブラリーがスクラッチできるからやってみろやオオボケ野朗!
(素直にMFCでも使いやがれボケ!じゃナイト新しい機能が使えないぞドアホ!)
0544名無しさん@お腹いっぱい。NGNG
それとWM_KEYは、WM_CHARの勘違いだ大ボケ野朗!わかったか。
もう5年くらいWinDo$は、やってねぇーんだよ!
0545名無しさん@お腹いっぱい。NGNG
543は乱暴だけども、すごい親切だよな、ぜひコテハン化きぼん。
0546名無しさん@お腹いっぱい。NGNG
>545
コテハンは「おとうさん」あたりがしっくりきそう

0547名無しさん@お腹いっぱい。NGNG
カミナリオヤジってのはどだ?
0548529NGNG
>543
ああ、何か分かったような、分からないような…。
勉強します。
Windowを沢山作れたけど、マルチスレッドとかよく分からないから
それぞれのWindowでの処理が上手くいかなくて、結局また悩んでます。
ダメジャン>俺。
っていうか、詳しいResありがとう。感謝します。

しかし、お姉さんからは難しいって言われるし、一方では
ボケって言われるし、板ばさみだな。(w;
この板のレベルが掴めない。
0549名無しさん@お腹いっぱい。NGNG
別に複数ウインドウとマルチスレッドは直接関係ないんでは?
0550名無しさん@お腹いっぱい。NGNG
>>545
短気そうだからHNは『カルシウム不足』で十分だろう、彼には。
0551名無しさん@お腹いっぱい。NGNG
C覚えたら次は何をすべきでしょうか。
アプリケーションとかゲームとか作りたいんですが、
visual C++とか覚えないと作れないんでしょうか。
0552名無しさん@お腹いっぱい。NGNG
どうもピントがあわない質問だな‥
ホントにC覚えた?
0553>552NGNG
入門書読破したぜ!
完璧だ!
失礼な事聞くんじゃねえ!
0554<553NGNG
芸風がビル・ジョブズみたいだぞ
0555名無しさん@お腹いっぱい。NGNG
551は今日大人になったってことだろ?
0556お姉さんNGNG
>>538
そういえばこのごろ努力を怠っている気がするなあ。
>>540
うん、ギコ猫のがよく知ってるよ。
>>541
だからあここはあ初心者の館なの。わかった?よって私もそれほどレベルは
高くありません!
0557りょうNGNG
>>535,536
アドバイスありがとうございます。早速、SMTPとPOPについて勉強はじめたいと思います。
どこか参考になるような、サイトとかありますか??
私の理想??っていうのも変ですが、老人や子供(小学生)が簡単に扱えるような
構成のメーラーを作るっていうのが目標なんです。
頑張ってみます。
0558じろうくんNGNG
>>467
もう、しょうがないなあ、お姉さん。

>>557
SMTPなら、こことか参考にしてみるといいと思うよ。
http://www.asahi-net.or.jp/~bd9y-ktu/dtd_f/rfc_f/rfc821j.html
0559お姉さんNGNG
じろうくんだ。登場ありがとう!
これからも頼むよ!
0560いちろうくんNGNG
じろうくんずるいや。ぼくがいないあいだにお姉さんにとりいって!
0561名無しさん@お腹いっぱい。NGNG
メーラーは日本語の扱いとかが非常に面倒だから
やめたほうがいいぞ。
0562名無しさん@お腹いっぱい。NGNG
なんか変なキャラクターがどんどん増えていくな・・・
0563名無しさん@お腹いっぱい。NGNG
それより
単発の初心者質問に答えてやってくれ(;´Д`)
0564お姉さんNGNG
初心者質問ってどれかしら。。見あたらないのだけど。。
0565初心者NGNG
あさんぶらをやってみたいんだけど、今のアセンブラってもう人間が理解できない
世界にいっちゃてるみたいで。。。。。
なんかいい方法ありませんか?
0566初心者NGNG
おねーさんは幾つですか?根釜ですか?
0567初心者NGNG
LINUXのディストリビューションはなにがいいですか?
0568初心者NGNG
C#っていけてるの?
0569初心者NGNG
これから一番稼げる言語はなんですか?
0570名無しさん@お腹いっぱい。NGNG
英語。
0571名無しさん@お腹いっぱい。NGNG
567>Vine
568>5年後に分かります
599>英語です
0572名無しさん@お腹いっぱい。NGNG
中国語も強そうだゾ。
0573名無しさん@お腹いっぱい。NGNG
>565
あせんぶらの何を勉強したいのかは知らないが
86系はとりあえずそこまでとんでもないことにはなっていないぞ。
「勉強したい」というレベルならとりあえず困らないだろう。

パイプラインとかキャッシュや予測分岐など、最初の86に比べると
ややこしいことにはなっているけども、ゴリゴリの最適化とかを
考えない限りそういうことは当分気にする必要ナシ。
0574名無しさん@お腹いっぱい。NGNG
>>572 中国語はあまりおすすめしない。理由は
・「中国語」は文字でしか存在しない。
 (会話は地方によって全く別言語。選ぶとしたら広東語か?)
・コンピュータを使う階層は大抵エリートだから英語ぐらいできる。
・こすっからい中国人と交渉するのに相手のネイティブ言語を使うのは不利。
0575名無しさん@お腹いっぱい。NGNG
2shutorebapuroguramatositeyatottekuremasuka?
0576名無しさん@お腹いっぱい。NGNG
//main.c

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


struct buf {
int number;
struct buf *prebuf;
};

struct *buf input();   //ここがいけないみたいですけど・・
void change();
void display();void main(){

input();
change();
display();

}
0577名無しさん@お腹いっぱい。NGNG
UNIXのコマンドラインのカーソル表示/非表示を切り替える一般的な方法ってあるんでしょうか?

全てのUNIXマシンで稼動することと標準的なLIBしか使っていないGCCでコンパイルできることが条件です。よろしく。
0578名無しさん@お腹いっぱい。NGNG
ネタなのかマジなのか 空気が読めないっ
0579名無しさん@お腹いっぱい。NGNG
>578'

577です。
まじで知りたいです。僕が調べた限りではどうやらないような・・・気がしないでもないんですが
0580576NGNG
です。あれはちょっとだけ融通の利くsortプログラムの一部です。かなり基本的な間違いなのでしょうけど、基本的だからこそ分からないとまったく先に進めません。なにとぞよろしく・・・・
0581名無しさん@お腹いっぱい。NGNG
576>

こうしたらどうでしょうか?

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


typedef struct{
int number;
void* prebuf;
} buf;

*buf input();   //ここがいけないみたいですけど・・
void change();
void display();

void main(){

input();
change();
display();

}

んで、bufのなかのprebufはして使うとか・・・
0582名無しさん@お腹いっぱい。NGNG
↑ んで、bufのなかのprebufはtypecastして使うとか・・・
0583>575NGNG
kannjiganyuuryokudekinaiuchihamuridesu.
0584>NGNG
> struct *buf input();
struct buf *input();   でないの?

あと
> struct buf {
> int number;
> struct buf *prebuf;
> };
これは通ったか?

struct buf;
struct buf {
int number;
struct buf *prebuf;
};
でないと、通らない処理系もあるぞ。
0585576NGNG
>581,584さん

ありがとうございました!無事コンパイルできました。深く感謝します。
0586名無しさん@お腹いっぱい。NGNG
>>577
Use tcgetaddr/tcsetaddr. See termios(4).
0587初しむ者NGNG
http://piza.2ch.net/test/read.cgi?bbs=mog2&key=974977804&ls=50
どうしたらこんな風に出来ますか?
0588名無しさん@お腹いっぱい。NGNG
バイナリって何でしょう?
0589名無しさん@お腹いっぱい。NGNG
>>587
えらー、そんな板orスレッドないです。
0590名無しさん@お腹いっぱい。NGNG
>>588
binary
0591>588NGNG
あなたが会員になる。そして会員を2人紹介するだけ。
それだけで半年後、あなたは大金持ち。・・・・という夢のようなシステムですよ
0592名無しさん@お腹いっぱい。NGNG
>>588
テキスト以外のファイル
0593名無しさん@お腹いっぱい。NGNG
>>テキスト以外のファイル

『でもテキストファイルをバイナリで読み込めば、バイナリファイル』
なんつったりしてぇ


0594名無しさん@お腹いっぱい。NGNG
>>588
バイナリ
http://www5.airnet.ne.jp/tomy/info-dic/e-b1.htm#binary

> 一般には、全て2進数で表現したデータのこと。
> 但し、可読文字(や一部の制御コード)以外を含みテキスト形式で
> 表示できないデータの意味で、あるいは単に「バイナリファイル」
> の意味で使われることも多い。

バイナリファイル
http://www5.airnet.ne.jp/tomy/info-dic/j-ha1.htm#binaryfile

> binary file。 2進数が収められたファイル。
> プログラムやアーカイブされたデータ、アプリケーションが作成する
> 各種データなどのファイルがこれに当たる。
> 通常の文字コードだけで構成されるテキストファイル以外は、
> 全てバイナリファイルに分類されると言ってよい。
0595名無しさん@お腹いっぱい。NGNG
割り算を他の単純な演算に変換する手段がありましたら教えてください。
すぐ思い付くのは、割る値を2の乗数に限定すれば、
それを -1 して立ったビットを数えて、それを右シフトすれば出ますが、

例)割る値(denom)を2の乗数(2,4,8,16,32,64,128,256,...)に限定したdiv()

static const int = bitcnttbl[0xf] = {
  0+0, 0+1, 0+1, 0+2, //bin 0000 0001 0010 0011
  1+0, 1+1, 1+1, 1+2, //bin 0100 0101 0110 0111
  1+0, 1+1, 1+1, 1+2, //bin 1000 1001 1010 1011
  2+0, 2+1, 2+1, 2+2, //bin 1100 1101 1110 1111
};

div_t mydiv2(int num, int denom) {
  div_t d;
  int mask = denom - 1;
  int maskbitcount
  = bitcnttbl[mask&0xf] + bitcnttbl[(mask>>4)&0xf]
  + bitcnttbl[(mask>>8)&0xf] + bitcnttbl[(mask>>12)&0xf] //;//16bitならここまで
  + bitcnttbl[(mask>>16)&0xf] + bitcnttbl[(mask>>20)&0xf]
  + bitcnttbl[(mask>>24)&0xf] + bitcnttbl[(mask>>28)&0xf];
  d.quot = num >> maskbitcount;
  d.rem = num & mask;
  return d;
}

こういった方法を他の半端な値にたいしても行ないたいのです。
本来の割り算より効率が良くなければ意味が無いのですが。
#上の方法もbitの数える部分で効率が良いとはとても言えないけど…
0596名無しさん@お腹いっぱい。NGNG
あ、595の
>static const int = bitcnttbl[0xf] = {
は
static const int = bitcnttbl[0x10] = {
の間違いでした。
0597>595NGNG
逆数を求めておいて掛け算で実行するのは駄目ですか?
例: 1/3 = (2^16/3)/2^16=21845/2^16
つまり21845倍して上位16bitを答えとするという方法

これで駄目ならここ参照
http://www.infoeddy.ne.jp/~tensyo/prog/ALGO.HTM#UDIV
0598名無しさん@お腹いっぱい。NGNG
抜きたいなー
0599名無しさん@お腹いっぱい。NGNG
抜きたいなー

0600お姉さんNGNG
そうか。。初心者じゃなくてウルトラ初心者って
書けばよかったんだ。。
0601ウルトラ初心者NGNG
お姉さん、どうか初代ウルトラマンの役やってた人教えてくださいっ
0602名無しさん@お腹いっぱい。NGNG
それはウルトラ上級者になってから。
0603名無しさん@お腹いっぱい。NGNG
まんこ見せてください。
0604名無しさん@お腹いっぱい。NGNG
。
(|)
*
0605お姉さんNGNG
初代ウルトラマンの役?谷隼人。
0606ちゅーぼーNGNG
お姉さんは美人ですか?
0607名無しさん@お腹いっぱい。NGNG
馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ
0608名無しさん@お腹いっぱい。NGNG
馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ馬鹿バッカリ
0609名無しさん@お腹いっぱい。NGNG
さて、続けようか。
0610名無しさん@お腹いっぱい。NGNG
BCBで使えるプロファイラってありませんか?
0611名無しさん@お腹いっぱい。NGNG
>>604
わーい、まんこだまんこだ。
ありがとう。
0612名無しさん@お腹いっぱい。NGNG
こんどマルチプロセッサのタスクスケジューリングとそれに用いる遺伝的アルゴリズムのプログラムを製作しないといけません。〆きりが今週の水曜です。アドバイスください。
0613名無しさん@お腹いっぱい。NGNG
>>612
水曜までに高飛びする
0614>612NGNG
『遺伝的アルゴリズム』ってゆー言葉がイマイチわからんちんなので
コメントの仕様がありません。いかんともしがたい気分です。
0615>612NGNG
しめきりが今度の水曜なのはよくわかった。
で、そのしくだいはいつ出されたのかと
自分でどこまで調べたり作ったりしたのかいうてみ。
0616名無しさん@お腹いっぱい。NGNG
APIって何? どうやって使うんですか?
リファレンスみたいなのってありますか?
0617名無しさん@お腹いっぱい。NGNG
>APIって何?
えぴーあいという意味でございます
>どうやって使うんですか?
>リファレンスみたいなのってありますか?
お買いあげになった方だけが分かるのでございます
0618名無しさん@お腹いっぱい。NGNG
>616
http://piza.2ch.net/test/read.cgi?bbs=tech&key=974728873&ls=50
0619>616NGNG
なんのAPIが知りたいのか知らないが
WinならMNDN逝け
0620名無しさん@お腹いっぱい。NGNG
MSDNか?
API本は高いぞ
0621名無しさん@お腹いっぱい。NGNG
>>617
もとネタは謎の老婆グッズシリーズだな?
0622名無しさん@お腹いっぱい。NGNG
全然関係ないけど、お姉さんはクリスマスは仕事ですか?
私は仕事です。クリスマスまで、PCとにらめっこは苦痛です。鬱だなぁ。
0623おねいさんNGNG
がんばってね! >622
0624ぱくぱく名無しさんNGNG
誰か私の宿題を手伝ってください。int dealの後Return文を書かなければ
ならないのですが、書き方がわからないのです。(今までVoidしか使った事がなかったので。)
これは英語のプログラミングですが、よろしくおねがいします。一応、
ブラックジャックを学ぶためのプログラミングです。

#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

/*
int deal(void)
//ここに1から11のランダムナンバーがでるようなファンクションを入れる。
*/


void main(void)
{int Knowledge[31],Card1, Card2, Hit, Score, Previous, Games, P;
char Answer;

for(P=0;P<31;P++) Knowledge[P]=1;

cout<<" カードのナンバーを2つ入れよ。真中にスペースを忘れずに。"<<endl;

for(Games=0;Games<16;Games++)
{cout<<"私のカードは何?";cin>>Card1>>Card2;
Card1=rand()%11+1;
Card2=rand()%11+1;
cout<<"私のカードは"<<Card1<<" "<<Card2;
Score=Card1+Card2; Previous=Score;

while ((Score<22) && (Knowledge[Score]>0)) // Ask for hit if not busted,
// or have not yet learned to stand on this score
{cout<<"Hit me";cin>>Hit;
Hit=rand()%11+1;
cout<<" "<<Hit;
Previous = Score;
Score = Score + Hit;
}
cout<<endl;
if (Score<22)
Answer='y';
else
Answer='n';

cout<<"I stand, 私は勝った? (y/n)"; cin>>Answer;

if (Answer == 'y') Knowledge[Previous]++;// Reward the machine
else Knowledge[Previous]--; // Punish the machine
}
cout<<"My knowledge base contains the following numbers "<<endl;
 for (P=0;P<22;P++) cout<<"Cell "<<P<<" contains "<<Knowledge[P]<<endl;
for (P=0;P<22;P++) cout<<Knowledge[P]<<" ";
cout<<endl;
}
0625名無しさん@お腹いっぱい。NGNG
>>624
> int dealの後Return文を書かなければ
> ならないのですが、書き方がわからないのです。(今までVoidしか使った事がなかったので。)
関数の書き方が分からない、と推察します。
1から11のランダムな数値を返す関数をdealとした場合、
以下のような書き方になります。

// 関数の宣言
int deal( void );

void main( void )
{
  // 中略
  Card1 = deal();
  // 中略
}

// 1から11のランダムな数値を返す関数
int deal( void );
{
  return rand() % 11 + 1;
}
0626622NGNG
その感じだったら、お姉さんはお休みかぁ〜いいなぁ〜
彼氏といちゃいちゃするんだろうなぁ〜いいなぁ〜
0627おねいさんNGNG
おねいさんはその日は海外の予定。お仕事は早めに終わらせておくの。
代休もたまってるし‥ハァ‥
0628名無しさん@お腹いっぱい。NGNG
>627
平日のそんな時間にここ見てるなんて
おねいさん、かなり可哀相な環境なのね。
0629おねいさんNGNG
年末にまとめて休みとるために、ここんとこちょっと無理してます。
ちなみにブラインドタッチはできるけどどっちでもいいと思ってる派。
そ〜ゆ〜問題じゃないか‥はぁ‥
0630名無しさん@お腹いっぱい。NGNG
#include <iostream>
#include <fstream>
using namespace std;

void main()
{
cout.seekp( 3, ios::beg ) << "hello\n";
}
こうしてもディスプレイからの出力はし-くされません
ファイルでなくディスプレイからの出力で
最初や途中から上書きするにはどうすればいいのですか?
文字べ-すでてとりすやいんべ-だを作りたいのですが
それに必要です、できればC++で教えてもらいたいのですが
Cでもいいです、誰かたすけてください
0631名無しさん@お腹いっぱい。NGNG
入力された整数が2の累乗であるかどうかを判断するには
どうすればいいでしょうか

1日考えてもわからない俺ってアホですか?(TT
0632名無しさん@お腹いっぱい。NGNG
>>631
switch(num){
 case 1:
 case 2:
 case 4:
 ...
 case 1073741824:
 case 2147483648:
  break;
}
0633632NGNG
半分ネタだけど、半分マジだからね。
整数の範囲を限定してしまっているけど、それは実装に合わせて。
0634名無しさん@お腹いっぱい。NGNG
int random( int m, int n );

n-mの範囲の値を返す関数。
0635名無しさん@お腹いっぱい。NGNG
>>631
while (num > 1 && num % 2 != 0) num /= 2;
この結果 num == 1 になれば numは2の累乗。
0636635NGNG
>>635
while (num > 1 && num %2 == 0) num /= 2;
の書き間違い。失礼しました。
0637名無しさん@お腹いっぱい。NGNG
>>631
if((double)num == pow(2,(int)(log((double)num + 0.1) / log(2.0))))
0.1をプラスしているところがミソ
0638名無しさん@お腹いっぱい。NGNG
>>631
ビットを合計して1の場合2の累乗
0639名無しさん@お腹いっぱい。NGNG
入力をyとして
x=1から初めて xを2倍しながら xとyが 一致するかどうかチェック。
x>yになったらそうでない
0640名無しさん@お腹いっぱい。NGNG
>>631
浮動小数点に変換して fxtractで仮数部が値1かどうか確認する

0641612 NGNG
>615
あんまり当てにしてないで適当に書いたんですけど、真面目にレスくれてありがとうございました。しかしあしたはもう水曜、ノートに計画は書いたのですけどプログラム自体は0%、お・て・あ・げ。
0642>612NGNG
折角相手して貰ったのにねえ 自分が悪いんだからしょうがないね
でも、何かでっちあげるには十分な時間だぞ

さあ時計を見て、でっちあげられる事を考えろ
0643612NGNG
>642
それがですねぇ〜・・・3人でそれぞれプログラム作ってて共通部分もありますがアルゴリズムや手法がそれぞれ違うので基本的には一人でつくらなければならない・・・にもかかわらず3人が3人とも現時点でまだファイルの入出力やらをやっているのです。おまけにうちの助教授は講義でずーと座って本を説明するくらいやる気の無い人物で夜型でひきこもりでアニヲタでガンヲタで棚には声優のCDが満載で綾波で・・なので1週間の遅れくらいどーってことないと自分達高をくくっています。
それでもやっぱり期日には仕上げたいなァ〜というのが心情で612書いたのですけど・・・・うちの研究室やばいなぁ〜・・

0644631NGNG
>>632-640
の方々、ありがとう〜
こんなにまともなレスがつくとはビックリです(失礼

>>632-633
さすがにそれを実装するのはちょっと(^^;
しかし、そんなに数は多くないのでできなくはないですね
ただ機種依存しそうなんで

>>634
?

>>635-636
これは一番わかりやすくて、安心して使えますね
計算時間もたいしたことはないので十分つかえますね

>>637
こ、これは何をやってるんでしょうか?
試したところちゃんとなりましたけど、どうしてなるのか誰か証明してください(w
ループを使ってないところが凄いです

>>638
コーディングの仕方がわかりません(T−T
誰か教えて〜

>>639
これは考え方としては635さんの逆バージョンですね

>>640
これもコーディングがわかりません〜
fxtractってアセンブラじゃないですか?アセンブラはわかりませ〜ん

結構いろいろな方法があるんですね、勉強になりました
0645635-636NGNG
>>644
y = a^x ←→ x = log_a y = (log y / log a)
というlogの性質を使うのが>>637の方法。
y = a^x において、a = 2かつx = int xなら、
y = 2^x = 2^(int x) = 2^(int(log_2 y)) = 2^(int(log y / log 2))
が成り立つ。0.1を足しているのは浮動小数点演算の誤差対策。
0646637NGNG
>>645
書き込もうと思ったら先を越された。その通りです。
補足するなら、ある整数nが整数aで割り切れるか、を調べたいとき、
(% とか MOD とか使えない場合ね)
 if(n == (n / a) * a)
で調べられるでしょ。それを累乗に応用しただけ。
ちなみに、0.1を足さなかったら、私のテストした環境 BC3.1 では、
16384が2の累乗じゃ無いって事になるんだなあ。
0647名無しさん@お腹いっぱい。NGNG
あるデータの集合に対するポインタがリスト状に(線形に)あり、そのポインタの中からランダムにひとつを選びたいのですけど、どのようにすればよいでしょうか?
0648名無しさんNGNG
for (list<hogehoge>::itetarator it = x.begin();
time(NULL) % radomkansuu(); it++); //だろうね
0649647NGNG
Cでお願いします
0650名無しさんNGNG
{node *p;
for (p = root; time(NULL) % RANSUU % YOUSOSUU;
p = p->next);}
0651名無しさんNGNG
条件(counter < YOUSOSUU)で
ループ終端でcounter++だった。
0652647NGNG
すいません、どのようにして乱数が作用しているかわかりません。
0653名無しさんNGNG
リスト辿っててランダムに中止する。
乱数とって割り算のあまりとって確立調整。
二で割ってあまり0なら50%。
で末端超えないように回数の上限どっかにおく。
殴り書きでスマセン。
0654名無しさん@お腹いっぱい。NGNG
>>644

648の実装例
int bitcount(unsigned x)
{
int b;

for(b = 0; x != 0; x >>= 1) {
if(x & 01) b++;
}

return b;
}
0655名無しさん@お腹いっぱい。NGNG
>>648
各種ビットカウントアルゴリズム
http://www.pc.p.chiba-u.ac.jp/~foota/develop/bitcount.html
好きなアルゴリズムで実装してみろ
0656647NGNG
>653

なるほど!わかりました!ありがとうございました。
0657名無しさん@お腹いっぱい。NGNG
おねえたん
0658似非おねえたんNGNG
な〜に?
0659かもNGNG
3元連立方程式をLU分解で解くプログラムを教えて。C言語でね。
0660名無しさん@お腹いっぱい。NGNG
>>659 宿題?
0661あげNGNG
文字列検索で入力した文字を1文字ずつ照らし合わせていくプログラム
を教えてください。
0662あげNGNG
っていうか構造体のメンバで定義したcharの配列に入ってる1文字1文字のアドレスの
指定の仕方がわかりません。
0663あげNGNG
っていうか分かんねぇんだよゴルァ!!
今すぐ1から10まで教えろ。
0664名無しさん@お腹いっぱい。NGNG
っていうかマジデわからんのでよろしく頼む。661はミス。
662を頼む。
厨房ですまん。
0665あげNGNG
っていうかわかったのでもうよし。
0666カレーNGNG
LPC(線形予測)のコードを教えて下さい。
または所在のリンクでも良いです。
C言語で宜しくお願いします。
0667名無しさん@お腹いっぱい。NGNG
自分で考えろゴルァ!!
0668名無しさん@お腹いっぱい。NGNG
666うざい逝ってよし
0669名無しさん@お腹いっぱい。NGNG
獣の数字だね。>666
0670名無しさん@お腹いっぱい。NGNG
http://www.666.com/
0671647NGNG
タスクスケジューリングでタスクを構造体で作ろうとしているのですが、今一つきまりません。
次のタスクをさすメンバがもちろん必要なんだろうと思うんですけど、2つ以上さす場合はいったいどうすればいいか悩んでます。あと前のタスクをさすメンバは必要なのかということについても悩んでいます。どなたか詳しし方いらっしゃりませんか?
C言語で書いています。
0672名無しさん@お腹いっぱい。NGNG
削除とか挿入を容易にしようと思ったら、双方向にすべきでないかい?
0673名無しさん@お腹いっぱい。NGNG
というより配列にするだろ。
そういう低レベルな処理だと安定性と高速性を重視
0674名無しさん@お腹いっぱい。NGNG
>672
ひとつのタスクが複数のタスクをさす場合はどうすればいいですか?

>673
おれはデータをファイルから格納するとき構造体の配列にするということですか?
0675674NGNG
”おれは”じゃなくて”それは”です。
0676673NGNG
>>647 きみは>>612ではないのか?
まあそれはおいといて

文字通り、動作中も配列にすればよかろうという事だ
0677名無しさん@お腹いっぱい。NGNG
VCで簡単に使える、正規表現のライブラリってないですか?
ワイルドカードレベルのパターンマッチングができればいいのですけど。
0678673NGNG
>676
ご名答、612です。
締め切りはあやふやになりました。
0679673NGNG
具体例お願いします!
0680673 NGNG
struct task{
int number;
int size;
struct task *predecessor;
struct task *successor;
};

こういう感じにした場合、どういう問題点があるのでしょう?
0681名無しさん@お腹いっぱい。NGNG
閑古鳥がないている
0682ギコハトNGNG
ポロッポー
0683ギコハトNGNG
>>?-680
配列とリストの組み合わせ。
つーか、そんなコンテナの構造なんて隠蔽しとけ!
0684名無しさん@お腹いっぱい。NGNG
>683
い。。隠蔽とは!!?
初心者厨房なのでもうさっぱりです。
0685ギコハトNGNG
デザインパターンの本でも読め。>684
0686名無しのエリーNGNG
そんな酷なァ・・・初心者にそれはあんまりだ・・
0687ギコハトNGNG
酷、言うな。初心者なら勉強シロ。
無いならとりあえず図書館で借りるか、買っとけ。入門書買うより損は絶対に無いから。
ついでに、隠蔽のメリットはあとですげ替え可能な点ね。
0688名無しさん@お腹いっぱい。NGNG
ここは相談スレだから少なくても単なるオシエテ君以外にはわかるように教えてやろうや。
0689ギコハトNGNG
>688
じゃあまずおまえがおしえてヤレ
0690688NGNG
C++ なら private で隠せってことかな?
この辺はC++の「クラス」ってのを調べればわかるんじゃないかと。
C でやれつうのならよくわからん。俺も勉強不足ゆえにな。

別にギコハトの言ってることは至極最もだと思うし共感するが
見てるとクレイマーに見えそうなのでな。
書き方が素っ気無いのは別にいいのだが。
0691CでもNGNG
>690
たとえば〜〜〜
リストのルートへのポインタを非externのgrobalにすれば、
同一ソースファイルの外からはアクセスできません。
そのグローバル変数にアクセスする関数だけを同一ソース
ファイルに作成し、外部参照できるようにしておけば、
簡易隠蔽完成!っす。
0692ギコハトNGNG
>690
privateどうこうじゃなくてC/C++に限らず、コンテナの実装を隠せっていってるの。
とりあえず固定配列でもなんでもいいから動くようにして、
あとで最適なデータ構造にすげ替えれる余地を作れ、と言いたかったわけ。
0693名無しさん@お腹いっぱい。NGNG
隠蔽というより抽象化といったほうが良かったかもね>ギコハト
0694名無しさん@お腹いっぱい。NGNG
昔見たCのソースで
外部にはvoid*で保持させて
内部で任意の構造体のポインタにキャストして使う
ってやり方をしているのがあったよ
0695ギコハトNGNG
 ||   (,,゜д゜)   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||  /_ノ _)   <  >>694 Cなら当たり前だな
 ||__//y_y____    \__________
 ||~~~~~~~~~~
0696名無しさん@お腹いっぱい。NGNG
>>694
俺の場合はそのケースで「キャスト」は使わないことが多いな。
↓みたいにする。
後は、Windowsの世界だと、void*ではなく、それのtypedefである
HANDLEを使うことも多い。

int foo(void *cookie)
{
  struct cookie_t * cp = cookie;
    :
}
0697>694NGNG
今、そのやり方で作った所だ
というかCだと別ファイルならキャストせずにそのまま使える

DLLとかで公開する時には便利。
利用者に情報を公開しなければ確実にインターフェース関数を
呼んでくれるからな
0698名無しさん@お腹いっぱい。NGNG
入力した数値をランダムに指定した数に分割するプログラムをつくりましたのですけど、分割数がおおきくなるとメモリエラーがでます。解決方法をおしえてください。

//devide.c

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

int randomizer(int a);

typedef struct p{
int a;
int error;
}proc;

void main() {

int bunnkatu;
proc *x;
int yousosuu;
int i;
int temp;

x = NULL;

printf("要素数を入力してください\n要素数=");
scanf("%d",&yousosuu);

printf("分割値をいれてください。\n");
scanf("%d",&bunnkatu);

x = (proc *)calloc(bunnkatu,sizeof(proc));
if(x == NULL)exit(-1);

for(i=0;i<bunnkatu;i++)
{
if(i== (bunnkatu -1)){
(x+i)->a = yousosuu;
break;
}
temp = randomizer(yousosuu);
(x+i)->a = temp;
yousosuu = yousosuu - temp;
}

printf("結果!!!\n");

for(i=0;i<bunnkatu;i++)printf("%d\n",(x+i)->a);

free(x);
}//end of main

int randomizer(int i){

int a;
srand((unsigned)time(NULL));

a = rand()%i + 1;

return a;
}
0699名無しさん@お腹いっぱい。NGNG
> 分割数がおおきくなるとメモリエラーがでます。
> 解決方法をおしえてください。
根本的な解決方法は残念ながらありません。
しかし、メモリエラーを出しにくくする方法はあります

1.物理メモリを増やす
2.確保する構造体のサイズを小さくする、
 または、構造体の要素数に制限を持たせる
0700698NGNG
>699

しかしこのプログラムで用いているメモリの量はたいしたことないように思えますけど。使用するメモリは数十キロバイトとかではないのでしょうか?
0701名無しさん@お腹いっぱい。NGNG
>698
具体的にどのくらいの値にするとエラーになんの?
0702699NGNG
>>698
> 使用するメモリは数十キロバイトとかではないのでしょうか?
なぜ、数十キロバイト?

callocで指定している値はscanfから取得しているんで
INT_MAXも指定できると思うが?
sizeof(int) == 4の場合、多分INT_MAX = 約2G byteだから
そんな値を入力したら、数百M byte位しか実メモリを積んでいない
パソコンは大概メモリ確保エラーになると思う

それとも、数十キロバイトでメモリ確保エラーが起きるってこと?
0703698NGNG
>701
8くらいから起きます。

>702
数十キロバイトというのは、ほかのこれよりかなり小さいプログラムで、友達が使用するメモリはせいぜい数十キロバイトくらいだろうと言っていたのでそう書きました。

たくさんメモリを確保する必要がある場合はどのようにすればいいでしょうか?
0704名無しさん@お腹いっぱい。NGNG
本当にメモリ確保でエラーになっていたのか?
俺が確認したところ、いきなり0除算のせいで、floating exception
が発生した(関数randomizerに0が渡るためだ)。
そもそもこの仕事にはメモリ確保は不要であるし、
randomizerの中で毎回srandを呼んでいるなど、好ましくない点は多い。
以下のは適当に書いた例だが、ちゃんと自分で理解した上で
自分の力で書き直してみるとよいだろう。

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

int randomizer(int max)
{
  return rand() % max + 1;
}

int main()
{
  static const char *tab[] = { "要素数", "分割値" };
  int i, val[2], youso, bunkatsu, tmp;

  srand(time(NULL));
  for (i = 0; i < 2; ++i) {
    printf("%sを入力してください\n%s = ", tab[i], tab[i]);
    if (scanf("%d", &val[i]) != 1) {
      fputs("入力エラー\n", stderr);
      return 2;
    }
  }
  youso = val[0], bunkatsu = val[1];

  puts("結果!!!");
  for (i = 0; i < bunkatsu && youso > 0; ++i) {
    printf("%d\n", tmp = randomizer(youso));
    youso -= tmp;
  }
  for (; i < bunkatsu; ++i)
    puts("0");
  return 0;
}

0705698NGNG
実はこのプログラムの機能自体はどうでもいいんです。いまつくっているプログラムでメモリ操作がうまくいかなくて、同じようなメモリ確保をするプログラムをつくってみたのです。
0706花と名無しさんNGNG
>> 698
> 分割数がおおきくなるとメモリエラーがでます。

こう判断したことが誤りです。実は除算エラー(ゼロで割った)が起こっています。
エラーメッセージの意味を正しく読み取る努力をする、とか
デバッガなどの道具でエラーが起こった場所を特定するとか、
そういう努力をするとこの山を越えられるぞ。

今日のところは、実行中の変数の様子を表示する printf を突っ込んで
いろいろ実行してみな。
例)
for() ループの末尾(じゃなくてもいいけどさ)の様子を見る。
// ...
(x+i)->a = temp;
yousosuu = yousosuu - temp;
printf("ループの[i = %d] ... temp = %d 取り分けるぞ。あと %d 残ってるぜ。\n", i, temp, yousosuu); // これを追加
}

ついでに乱数を使ってどんな値を作っているかも覗いておく。
srand((unsigned)time(NULL));
printf("ramdomizer(%d) ... %d での剰余、ってのは %d で割る、ってことだぜ。\n", i, i, i); // これを追加
a = rand()%i + 1;

※ いろいろな値で実行すれば、下の方の printf には、じつは「答え(失敗の理由)」が書いてあることが判ってもらえると思う。
0707706NGNG
704に先を越されてた。ハヅカシー(藁
0708704NGNG
>>705
そういうことは最初から言えよ...
それと、メモリ確保がどういう形でエラーになっているのか
(カーネルに殺されているのかcalloc/mallocがNULLを返しているのか)
と、環境(OS)も書くべきだ。
それと、以下のプログラムはどういう挙動を示す?

int main()
{
  size_t block;

  for (block = 1024; malloc(block); block += 1024)
    fprintf(stderr, "%ld\n", block);
return 123;
}
0709名無しさん@お腹いっぱい。NGNG
>>705
「同じような」ってエラーの出方も本当に同じかい?
上で指摘された 698 での誤りを見ると、本当にメモリの確保のやり方が
失敗しているとは思えんぞ。
0710204NGNG
>>704
すまん↑のmallocの引数は1024にしてくれ。
あまりにも時間がかかりすぎてイライラするようであれば
100K単位とか1M単位にすればいいだろう。
0711698NGNG
エラーメッセージは

”例外 unknown software exception(0x0000094)がアプリケーションの0x0000027で発生しました”
が2回と
”例外 unknown software exception(0x0000027)がアプリケーションの0x77f0c518で発生しました”
が一回です。
これが除算エラーですか?

708さんの問題には手も足もでません。まだ超初心者ですので・・・
わからないもの
size_t,mallocのこの場合の使い方,fprintf,stderr(スタンダードエラーと読めそうだけど使い方さっぱり),%ld,123

0712708NGNG
>>711
708は別に「問題」のつもりじゃなくて、「動かして見れ」という
つもりだったんだが....。
わがんねんなら説明すると、単純にエラーになるまでメモリを要求
しつづけるプログラム。
まあでも、原因は「メモリ確保エラー」じゃなくてやはり
バグのようだから、試さなくていいぞ。デバッガ使うなどして、
ちゃんと調べるんだね。

# それにしても上の710は俺なんだけど何をトチ狂ったか"204"に
# なってるな。スマソ。
0713名無しさん@お腹いっぱい。NGNG
>709
エラーメッセージの16進数を読もうとしてないんです。最近ランタイムエラーに悩まされて毛嫌いしていて・・・
0714名無しさん@お腹いっぱい。NGNG
>708

しかしエラーでて動きませんが・・・
0715onegaiNGNG
10個の整数値をキーボードから読み込んで、それらの合計、平均値、最大値、
最小値を求めるプログラムを作成せよ.配列を使用すること.
0716名無しさん@お腹いっぱい。NGNG
>>715
言語は?
0717onegaiNGNG
cです。
0718名無しさん@お腹いっぱい。NGNG
>>715
なにがわからないのでしょう?
・10個の整数値をキーボードから読み込む処理
・それらの合計、平均値、最大値、 最小値を求める処理
・配列の使い方
・全部
0719onegaiNGNG
全部です。ど素人に愛のてを
0720名無しさん@お腹いっぱい。NGNG
>>719
#include <stdio.h>

#define  MAX_DATA    10
#define  ArrayOf( ary ) sizeof (ary) / sizeof (ary[0])

static int sum( const int *, const size_t );
static int avg( const int *, const size_t );
static int max( const int *, const size_t );
static int min( const int *, const size_t );

int main( void )
{
  int data[MAX_DATA];
  int cnt;
 
  for ( cnt = 0; cnt < ArrayOf( data ); ) {
    cnt += scanf( "%d", &data[cnt] );
    fflush( stdin );
  }
 
  printf( "sum %d\n", sum( data, ArrayOf( data ) ) );
  printf( "avg %d\n", avg( data, ArrayOf( data ) ) );
  printf( "max %d\n", max( data, ArrayOf( data ) ) );
  printf( "man %d\n", min( data, ArrayOf( data ) ) );
 
  return 0;
}

static int sum( const int *dat, const size_t num )
{
  int cnt;
  int tmp;
 
  tmp = 0;
  for ( cnt = 0; cnt < num; cnt++ )
    tmp += dat[cnt];
 
  return tmp;
}

static int avg( const int *dat, const size_t num )
{
  return sum( dat, num ) / num;
}

static int max( const int *dat, const size_t num )
{
  int cnt;
  int tmp;
 
  tmp = dat[0];
  for ( cnt = 0; cnt < num; cnt++ )
    if ( dat[cnt] > tmp )
      tmp = dat[cnt];
 
  return tmp;
}

static int min( const int *dat, const size_t num )
{
  int cnt;
  int tmp;
 
  tmp = dat[0];
  for ( cnt = 0; cnt < num; cnt++ )
    if ( dat[cnt] < tmp )
      tmp = dat[cnt];
 
  return tmp;
}
0721onegaiNGNG
エラー102個と出ましたけど・・
0722名無しさん@お腹いっぱい。NGNG
>#define  ArrayOf( ary ) sizeof (ary) / sizeof (ary[0])

前々から思っているんだが、こういう類の危ないDEFINE使うのは
いい加減止めてほしい。専門学校の提出課題じゃないんだから。
0723名無しさん@お腹いっぱい。NGNG
>>722
> こういう類の危ないDEFINE使うのはいい加減止めてほしい。
マクロにはいろいろな副作用がある事は認めますが、
このマクロにはどのように危ないと思ったのでしょう?
0724>723NGNG
名前が気に入らないのでは?
ArraySize とかならokだったとか・・・・
0725名無しさん@お腹いっぱい。NGNG
いや、関数の引数の時にどうなるかってことじゃないかな?
0726名無しさん@お腹いっぱい。NGNG
まさか、
static int sum( const int *dat )
{
  int cnt;
  int tmp;

  tmp = 0;
  for ( cnt = 0; cnt < ArrayOf( dat ); cnt++ )
    tmp += dat[cnt];

  return tmp;
}

こう書く奴もいるかも知れないってこと?

# こんなことする奴の方がアホだと思うが
0727名無しさん@お腹いっぱい。NGNG
  ArrayOf --> ARRAY_OF
  ary --> _ary
ならどうよ?

0728名無しさん@お腹いっぱい。NGNG
#include <stdio.h>

int main(int argc, char* argv[]){
char a[10];
char* b;
char c;
printf("A:%d B:%d C:%d \n", sizeof(a),sizeof(b),sizeof(c));
}

HP-UXのCCでA=10,B=4,C=1。
B/C=4になるよ。危なくて使えないよ。
0729名無しさん@お腹いっぱい。NGNG
マクロは括弧でくくる
0730名無しさん@お腹いっぱい。NGNG
>>726 でも言っているが
> B/C=4になるよ。危なくて使えないよ。
B/Cをやる奴がアホ
ポインタと配列の違いが解らない人は使わないほうが良い。
0731725NGNG
>>726
ちがうよ。 その最初の行が
static int sum(int dat[32] )

だったらどう?
このマクロが32を返すように思う人が居ても責められないと思うが?
0732725NGNG
でもアムナイとは思わないな。 実際オレも使うし

だいたいがアムナイのがC言語らしい使い方じゃないの?
安全が好きならpascalでどうぞ
0733あぶないとかほざいてるアホへNGNG
void test(int arg[5])
{
  int array[5];
  printf("arg = %d array = %d\n", sizeof(arg), sizeof(array));
}
0734名無しさん@お腹いっぱい。NGNG
違いが分からなくて危ないって言う奴は
sizeof演算子は使わないほうがいい。
0735715NGNG
715ですけども
これってどれぐらいのレベルでしょうか??
全くのど素人が出来るんでしょうか??
しかも、これは1番の問題であと4題あります。
0736助けてください。NGNG

このプログラムはどうやってつくればいいですか?

∫4÷(1+a×a)
(∫の上限は1、下限は0)

台形法およびシンプソン法で
円周率の小数点第6位まで一致させるのに
必要なn(整数)の値を決定するプログラムを作りなさい。

提出期限が明日までなのに全然出来てません。
C言語です。助けてください。
0737>735NGNG
母集団にもよりますね
コン専学校なら、出来るか出来ないかのレベルは中央値でしょう
工業系の大学ならこれが出来ないのは2σ付近
この板を覗いてる人の中では3σ付近ではあるまいか
0738>736NGNG
素直に それぞれの方法でnを増やしながら発見させればよろしいのでは?

もし台形法やシンプソン法のレベルでわからないというのなら、
何か芸を見せなさい。後は芸の出来如何です
0739735NGNG
735です。
理工学部です。2σ付近 ←意味が分かりません??
0740名無しさん@お腹いっぱい。NGNG
>>735
>715ですけども
>これってどれぐらいのレベルでしょうか??
これがまったく解らなかったら
プログラマはあきらめた方がいい
0741名無しさん@お腹いっぱい。NGNG
>739
偏差値70以上の人という意味じゃない?
0742名無しさん@お腹いっぱい。NGNG
つまりコン専>工業大>2chって事?
それともマイナス3シグマか
0743>736NGNG
まず 1/(1+a^2) の不定積分は判るね? --->atan(a)
だから答えは 4(atan(1)-atan(0))=πだろうと予想がつく

で、その問題は、やっぱりnを大きくしていって誤差が収まるnを求めればいい
そのためには、シンプソン法,台形法のそれぞれ nを引数にして求める関数を作っておく
あとはnを大きくしていってその誤差が 1E-6以内に収まるところをでっちあげればいい
適当にでっちあげると
#include <stdio.h>
#include <math.h>
double func(double x){return 4.0/(1.0+x*x);}
double daikei(double a,double b,int n)
{ int i;
double dx=(b-a)/(double)n;
double y0=func(a);
double sum=0;
for(i=1;i<n;i++) sum += func( a+=dx );
return (sum*2+(y0+func(b)))*dx/2.0;
}
int test( double (* sum)(double a,double b,int n) )
{
int nmax=10000;
int i;
double end=sum(0,1,10*nmax);
for(i=10;i<nmax;i++)if( fabs(sum(0,1,i)-end)<0.0000001 )return i;
return 0;
}
int main()
{
int d1=test(daikei);
printf("台形法では n=%d で %12.8f\n",d1,daikei(0,1,d1) );
return 0;
}
0744名無しさん@お腹いっぱい。NGNG
visualbasicで立体の表面積を計算するプログラムを教えてくださいマジデ
0745>744NGNG
その立体のデータ構造はどう入力されるのよ
0746744NGNG
>>745
すいませんよくわからないんです。。
立体の表示まではできているんですけど。。(というかそこまでは教科書にあった)
0747744NGNG
そのプログラムが今手元にないのでまた来ます。。
ありがとうございました。よろしくお願いしますです。。
0748>744NGNG
3次元中の3角形の面積を求める公式は知ってる?
0749744NGNG
>>748
面積= (Sqr((2) * b(3) - a(3) * b(2)) ^ 2 + (a(3) * b(1) - a(1) * b(3)) ^ 2 + (a(1) * b(2) - a(2) * b(1)) ^ 2)) / 2
でよろしいんでしょうか?
0750744NGNG
Dim nf As Integer
Dim a(3), b(3)

For j = 1 To nf /* 構成面数だけ繰り返す */
s = 0 /*面積sの初期化*/

For i = 1 To (fnv - 2) /*いくつの三角形ができるか*/
s = (Sqr((a(2) * b(3) - a(3) * b(2)) ^ 2 + (a(3) * b(1) - a(1) * b(3)) ^ 2 + (a(1) * b(2) - a(2) * b(1)) ^ 2)) / 2 /*三角形の面積を求める式*/

s = s + s
Next i
Next j
Print (s)

こんな感じだと思うんですけれど、うまく動いてくれないんです…。
0751名無しさん@お腹いっぱい。NGNG
がんばれ下げ
0752名無しさん@お腹いっぱい。NGNG
おねえさん、教えてください。
正の数 n を正の数 m で割り算して、答えを正の無限大へ
収束させるにはどうしたらいいですか?
/ はつかってもいいけど、% を使うのはダメみたいなんです。
0753名無しさん@お腹いっぱい。NGNG
まちがえました、収束じゃなくて、丸める、です。
0754752NGNG
unsigned divv( unsigned n, unsigned m)
{
 unsigned d = n / m;
 if( n - d * m ) d++;
 return d;
}
あまり・・スマートじゃないですよね・・
すぱっと解決できないものでしょうか
0755752NGNG
無事解決しました 失礼しました
0756名無しさん@お腹いっぱい。NGNG
三角形ABCの面積Sって
ベクトルの内積を使えば
 4S^2 = (|AB||AC|)^2 - (AB・BC)^2
ヘロンの公式を使えば
 S^2 = s(s-BC)(s-CA)(s-AB) where 2s = BC+CA+AB
消防風には
 底辺×高さ÷2
じゃなかったけ? (^^;
0757>744NGNG
3次元中で1つの点は3つの値の集合で示される
3角形は3つの点で示される

よって、3角形は3次元中では9つの値の集合で示される

しかしその公式では6つの値しか出現していない 如何?
0758Visual名無しさんNGNG
頂点のうちどれか一個が原点になるようにシフトしとけば
>>749の (→OA × →OB)÷2 で合うだろう。

>>750がまずいのは s を使い回しすぎてたり
a,b がどっから出てくるのか謎なとこだと思うが・・・
0759初心者NGNG
#include<stdio.h>
#include<conio.h>
void main(void){
int a,b,c,i;
printf("整数を2つ入力せよ");
scanf("%d,%d",&a,&b);
printf("%d から %d までの積を計算する\n",a,b);
c=1;
if(a<=b)
for(i=a;i<=b;i++)
c=c*i;
else
for(i=b;i<=a;i++)
c=c*i;
printf("答え:%d\n",c);
getch();
}
この問題をC++で関数(引数)って言うんですか? を使って書き換えろ
って問題なのですが、どうやったらいいのかわかりません。
どうか教えてください。知識は0に等しいです。
よろしくお願いします。
0760名無しさん@お腹いっぱい。NGNG
>>759
あなたのE-mail欄を見てなんか知らないけどむかついたので
教えて君に認定いたします。
0761名無しさん@お腹いっぱい。NGNG
>>759
拡張子を.c から .cppに変えろ
0762名無しさん@お腹いっぱい。NGNG
すいませーん!二つの値を入力し、それらのビットごとの論理積
をとった値を出力せよという課題が出ていて明日がシメ切りで朝
からがんばってみたんですけどやっぱりできませんでした。誰か
優しいお方がいたら是非お願いします!
0763762です。NGNG
連続カキコですみません!プログラミング言語はこんな感じのや
つです。

read a
read b
L_1:
load a
jump L_2
load b
jump L_2
load answer
add ONE
save answer
L_2:
load a
shift 1
save a
load b
shift 1
save b
load COUNTER
sub ONE
save COUNTER
jump L_3
load answer
shift 1
save answer
jump L_1
L_3:
load answer
write answer
jump 0

COUNTER:
lit 7
ONE:
lit 1

a:
decl 1
b:
decl 1
answer:
decl 1
0764じろうくんNGNG
>>760
わかってないなあ。
ここは、教えて君だろうがなんだろうが、お姉さんが優しく教えてくれるスレッドなんだよ。
0765質問NGNG
ユーザーがこっちの考えている以上の文字を入力してきたときに、
あまりを切り捨てたいんですが、どうすれば良いですか?
char a[5]
cin >> a[5];
の時、hokkaidoならhokkaまでを入力して残りを切り捨てたいのですが。
0766名無しさん@お腹いっぱい。NGNG
>>765
int i,c;
char a[6];
for (i = 0; i < (sizeof(a) - 1); i++) {
if ((c = getchar()) == EOF) break;
a[i] = c;
}
a[i] = '\0';
0767名無しさん@お腹いっぱい。NGNG
>>759
これはファイル名の *.c を *.cpp にするよりはマシな回答だが、
何も考えてないアホな回答でもある。ファイル名はたとえば
seki.cpp という風に .cpp にする。

#include <stdio.h>
#include <conio.h>
class MyClass {
public:
MyClass() {
int a,b,c,i;
printf("整数を2つ入力せよ");
scanf("%d,%d",&a,&b);
printf("%d から %d までの積を計算する\n",a,b);
c=1;
if(a<=b)
for(i=a;i<=b;i++)
c=c*i;
else
for(i=b;i<=a;i++)
c=c*i;
printf("答え:%d\n",c);
getch();
}
}

MyClass mc;
int main() {}
0768744NGNG
みなさま、たくさんのお答えありがとうございます。
参考にさせていただきます。
もう一度、頭を整理して考えてみます。
0769うらNGNG
C言語の「直接挿入法」ってなんですか?
簡単に教えてください。
0770名無しさん@お腹いっぱい。NGNG
馬鹿ソートの一種、基本挿入法じゃないのか
0771名無しさん@お腹いっぱい。NGNG
クイックソートってどうやるの?
qsort 関数じゃなくて自分で書きたいんだけど・・・
クイックソートを分かりやすく解説してるページってない?
0772SAGENGNG
>>771
お好きなのをどれでもどうぞ。ってゆーか訊く前に検索くらいしとけや。
http://www.google.com/search?q=%83N%83C%83b%83N%83%5C%81%5B%83g&site=search&hl=ja&lr=&safe=off&output=search
0773うらNGNG
>>770
そう、たぶん基本挿入法です。
0774名無しさん@お腹いっぱい。NGNG
探せよ。検索すればこのぐらいすぐに出てくるぞ。
http://www.lares.dti.ne.jp/~mash/pro/kizi/5.html
http://www.ed.info.kanagawa-u.ac.jp/~s975523/paper/node7.html
http://www.people.or.jp/~fussy/argo5-4.htm
http://www.ed.noda.sut.ac.jp/~j7497060/seventhweek.html
http://www.klic.org/software/klic/lang/node84.html
http://www.ed.noda.sut.ac.jp/~j7497112/java9.html
http://www.ed.noda.sut.ac.jp/~j7498094/quicksort.html
http://www.ed.noda.sut.ac.jp/~j7497088/Ensyuu115.html
0775名無しさん@お腹いっぱい。NGNG
>>765
5文字に制限したいのなら、'\0'のエリアが必要なので
char a[5 + 1]; → char a[6]; となる
>>766のループのほかに
fgets( a, sizeof a, stdin );
を使う方法もある
0776名無しさん@お腹いっぱい。NGNG
すみません。まだ途中なのですがこれはどこが間違っているのでしょうか?
関数のところがよくわかりません。

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

struct hito{

char name[14];

};
void sort(struct hito dt);

main()
{
int i;
struct hito goru[50];
printf("input name\n");
for(i=0;i<50;i++){scanf("%s",goru[i].name);}
sort(goru);

}

void sort(struct hito dt)
{
int i,j;
char taihi[14];
for(i=0;i<50;i++){
j=i+1;
if(strcmp(dt[i].name,dt[i].name)>0){
taihi=dt[i].name;
dt[i].name=dt[i].name;
dt[i].name=taihi;
}
}

}
0777訂正NGNG
選択ソートのとこは
これでした。

void sort(struct hito dt)
{
int i,j;
char taihi[14];
for(i=0;i<50;i++){
j=i+1;
if(strcmp(dt[i].name,dt[j].name)>0){
taihi=dt[i].name;
dt[i].name=dt[j].name;
dt[j].name=taihi;
}
}

}
0778できましたが。NGNG
なんでdt[]をつけなきゃいけないの?
0779名無しさん@お腹いっぱい。NGNG
配列の名前が表してるのは「配列の先頭要素のアドレス」なのねん
小技(構造体にいれる等)使わないと配列の一括代入はできないねん
つーか、配列名は定数なので代入できんのねん
0780なるほど納得NGNG
ありがとうございました。
0781名無しさん@お腹いっぱい。NGNG
コムソートってどういう方法のアルゴリズムでしょうか。
知っている人がいたら教えてください。
(昔、噂で聞いただけなのでどういう物かは良く分かりませんでした。)
スピードはどれぐらいかなあ
0782名無しさん@お腹いっぱい。NGNG
>>781 人に聞く前に検索しろよ。 http://www2s.biglobe.ne.jp/~nuts/labo/
0783名無しさん@お腹いっぱい。NGNG
>>782
人に聞くのが検索なのでしょう。
0784781ですNGNG
>782
なんか電波な感じのページでしたが、有難うございました。
検索の仕方にも寄るんだとおもいますが、
ほとんど引っかからないんですよ。>コムソート
bit誌に載ってたそうですね。そっちを図書館行って見た方が早いかな。

>783
そうです。聞いた方が早いって場合もありますもんね!
0785名無しさん@お腹いっぱい。NGNG
おねえさん、カム、バクゥゥ!
0786名無しさん@お腹いっぱい。NGNG
おねえさんは根鎌です
0787名無しさん@お腹いっぱい。NGNG
ガーン!
0788名無しさん@お腹いっぱい。NGNG
>>784
google使え
0789名無しさん@お腹いっぱい。NGNG
おねえさん、ちんぽ見せてください
0790ねかまさんNGNG
http://www.chinpo.com
はい>789
0791名無しさん@お腹いっぱい。NGNG
遅まきながら、よかったらお使いください。
/* combsort.c */

#define SIZE 100000

int a[SIZE];
main() {
int i, d, done = 0;
for(i = 0; i < SIZE; ++i) a[i] = rand();
for(d = SIZE-1; d > 1; d = (10*d + 3) / 13)
for(i = d; i < SIZE; ++i)
if(a[i-d] > a[i]) { int x = a[i-d]; a[i-d] = a[i]; a[i] = x; }
while(!done) {
done = 1;
for(i = 1; i < SIZE; ++i)
if(a[i-1] > a[i]) { int x = a[i-1]; a[i-1] = a[i]; a[i] = x; done = 0; }
}
}
0792名無しさん@お腹いっぱい。NGNG
アプリケーションやゲームを作りたいと思っています。Cげんごしかしらないのですが
これ以外にどんな言語を学んだらよいの?
0793名無しさん@お腹いっぱい。NGNG
日本語
0794名無しさん@お腹いっぱい。NGNG
C++は知っといた方がよいぞよ。
0795名無し娘。NGNG
>>792
英語はマジで覚えた方が良い。
資料はほとんど英語だから
0796名無しさん@お腹いっぱい。NGNG
おねえさんのチンポしゃぶりたい
0797>793 、795NGNG
ツマンネーンダヨ!
0798名無しさん@お腹いっぱい。NGNG
>>797 真面目な答えだから面白くはないかモナー
0799名無しさん@お腹いっぱい。NGNG
>797
正解だしナー
0800ヒロヒトNGNG
800
0801優しい名無しさんNGNG
まだこれあったのか。
しつこいなー。

>>795
英語はできないときつい。
主要なリファはすべて英語だよ。
0802名無しさん@お腹いっぱい。NGNG
なんでMSDNって一部英語なの?
どうして日本語に訳してくんないの?
なんか裏事情とかあるの?
0803優しい名無しさんNGNG
馬鹿を省くためです。
0804名無し娘。NGNG
>>802
面倒臭いんだろ。
0805優しい名無しさんNGNG
そうか、めんどくさいのか。
だからこそ、英語は必要。
0806新之助NGNG
うちの学校で下のような問題が出たんですが、
さっぱり判らなくって・・・。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Q.ソフトウェア開発に関する下記の課題に回答しなさい。

問題1. ソフトウェアを企画してから、作られたソフトウェアが寿命を終えるまでの過程(ライフサイクル)を述べなさい。

問題2. ソフトウェアを構成するプログラムの作成にあたり、既に稼動しているプログラムであっても、同一部分をあちこちにコピーして使うとどのような技術的問題点が起きるかについて述べなさい(ヒント:試験・改良などライフサイクルの観点から)。

問題3. ソフトウェア・コピーに関してA君とB氏がとった下記のような行動の倫理的な問題点を列挙しなさい。つぎに、その各問題点は、「情報処理学会倫理綱領」、「ソフトウェア・エンジニアリングのための倫理規範」のどの条項に反するかについて述べなさい。

「A君は会社が受注したソフトを開発中だが、納期が迫ったのにそのソフトは一向に動き
そうにない。みかねた上司のB氏はA君に、ソースが公開されている他社製Cソフトのプ
ログラムの一部をコピーして使うようにと指示した。A君はいわれるがままにプログラム
の一部をコピーし、そのブランドを信用してコピーした部分のデバッグはほとんどしない
で納品した。しかし、B氏は試験報告書には十分に試験したと記載した。」

0807しらんけどNGNG
1>運用目標の設定→ソフトウェアの設計、作成、デバッグ、テスト
 →運用→ソフトウェアの陳腐化→新しい目標の設定→古いソフトウェアの統合、廃棄
2>デバッグ、改良のときすべてのコピー部分の修正が必要→リスク、コスト増大
3>Cソフト社のリエンジニアリング規定の無視および違反、
  高度な技術に関する特許に関する無視および違反
  試験報告書の虚偽
0808新之助NGNG
すごい。
すごい。
すご〜〜い。
しらんけどさん。あなたを愛しそうです。
本当にありがとうございます。
0809807NGNG
あのねぇ・・てきとーに答えたってわかるよね?
3は、情報処理学会倫理綱領やソフトウェア・エンジニアリングのための倫理規範も
調べる必要あるから
A君が
1.社会人として
 1.3 他者の知的財産権と知的成果を尊重する
2.専門家として
 2.1 たえず専門能力の向上に努め,業務においては最善を尽くす.
 2.2 事実やデータを尊重する.
B氏は
3.組織責任者として
 3.1 情報システムの開発と運用によって影響を受けるすべての人々の要求に応じ,その尊厳を損なわないように配慮する.
 3.3 情報システムの開発と運用について,資源の正当かつ適切な利用のための規則を作成し,その実施に責任を持つ.
あたりなんじゃないの?
がんばって自分でも考えてこなしてください。
0810>808NGNG
君のレポートが807と同じだったら、評価はつけませんよ。(by 評価担当者)
0811名無しさんi486NGNG
807は自分の経験と知識を元にした自分の言葉だよね。
でも、公文書を一字一句間違いなく覚えることが評価されたり
するんだよね。くだらんけど。
0812名無しさん@お腹いっぱい。NGNG
お姉さん、ちったぁ働けや!age!
0813おねいちゃんNGNG
>>806
 問題1は一般に・・・ってゆーかあ情報処理試験で出るような問題の解答なら、
 設計・コーディング・デバッグ・メンテナンスの4つに大別されてるのねえ。

 問題3だけど、他社製Cソフトのソースがいかなる使用規定に
基づいたものか明らかでないので、「再利用条件」を自分で
考えて書くといいのね。その条件がどんなものかは、実際の
規定を調べてねん。
0814名前ついてますか?NGNG
設計の前に仕様策定ってないの?
0815テルNGNG
例えば、
First name, Last name, Tel number, Gender(M or F)
の書式で書かれたデータがすでにあったとして、そのデータをプログラム中から
読んだり、書き換えたりするにはどうしたらいいんでしょうか。

また、いくつあるかわからない、上に書いたようなデータを表示するにはどうした
らいいでしょうか。

誰か教えてください。よろしくお願いします。
0816おねいさんNGNG
おねいさんはクリスマス休暇を取るために多忙中です。
ちゅうか、ここのとこおねいさんの出番がいるような
宿題がないようだけども‥
あ、学生さんはもう冬休みかぁ‥いいなぁ‥
0817おねいさんNGNG
>815
なにがしたいのか、言語や環境がわからないから、たいしたアドバイスできないけど‥どういう形式のデータなのかな?
なにかのデータベースなら、それの使い方を
テキストファイルとかなら、ファイルの入出力をお勉強してみてね。

いくつあるかわからないなら、数えてみるのはどうかな?
それとも、とりあえず何個か読んでみて、そこまで表示してしまう。
続が見たいときは、さらに何個か読んで‥という方法じゃダメなのかな?
0818名無しさん@お腹いっぱい。NGNG
お姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さんお姉さん
0819テルNGNG
>817
細かいことを書くの忘れてすいません。言語はC言語です。
テキストファイルの入出力なんですけど、fopen か何かを使うらしいんですが。
struct を使って形式を決められるって言うのも使えるんでしょうか。
その場合、テキストファイルの中に書き込むデータの形式は決めておかないと
いけないんでしょうか。あと、データはどこに置いておかなければいけないとか
あるんでしょうか。

データの数は最大100なんですが、もし100個なかった場合はどうすればいいですか?
何個か読んでっていうのは使えそうですね。

よろしくお願いします。
0820名無しさん@お腹いっぱい。NGNG
>815
Cよりはperl向けだよ。
open(FILE,"filename");
foreach $x(<FILE>){
@cell=split(',',$x);
print "FirstName:$cell[0],LastName:$cell[1],TN:$cell[2],Gen:$cell[3]\n";
}
close(FILE);

Cではひょろっと答えるには面倒な長さになるね。
0821おねいさんNGNG
そうね、Cよりもほかの言語向きかも‥
でも宿題だったらそうも言ってられないだろうし
他の言語のお勉強も面倒よね。

データの内部保持にstructを使ってるなら、まずはその構造体を
ひとつ書き出す関数と、ひとつ読み込む関数を作ってね。
形式はテキストがお勧め。バイナリだとあとから困るかもしれないゾ
0822名無しさん@お腹いっぱい。 NGNG
>お姉さん
クリスマスの予定はありますか?
ボクはありません。
モテナイ工学部の学生です。
デートして!
0823名無しさん@お腹いっぱい。NGNG
お姉さんは寝釜って結論が出てる筈ですが。
それでも?>822
0824822NGNG
>>823
実は私は女子大生♪
0825名無しさん@お腹いっぱい。NGNG
>824
「ボク」はモテナイ工学部の学生で、実は女子大生・・・
逝ってよし♪
0826名無しさん@お腹いっぱい。NGNG
寝釜でなくて真性という意見は?
0827名無しさん@お腹いっぱい。NGNG
僕のティムポをinclude
0828名無番長NGNG
コマンドプロンプトでdelしようとすると、よろしいですか(y/n)?って聞かれるんですけど、どう答えればいいんですか?
0829名無しさん@お腹いっぱい。NGNG
コマンドプロンプトでdelしようとすると、よろしいですか(Y/y)?って聞かれるんですけど、どう答えればいいんですか?

0830名無しさん@お腹いっぱい。NGNG
YOROSHII か YOROSHIKUNAI と ローマ字で答えろ(藁
0831828≡NGNG
>
0832828NGNG
>830
一応やってみたけど、当然ムリか。
つーかNTならそんなこと訊かれないのに。
2kは変わってるのか?
0833>832NGNG
del c:\*.* /s
の様にワイルドカードを指定すると訊かれる。
/q付けると訊かれなくなる。
0834名無しさん@お腹いっぱい。NGNG
ワイルドカードじゃなくて*.*おんりーじゃなかったっけ?
/qはどのWin2K依存のスイッチ?

つーか
>(Y/y)?
の時点でネタだと思ってたんだけどなー
0835828NGNG
>>834
829は偽者です。828が本物なんで。つーかそんなネタが書いてあること自体気付かなかった。
今試してみたところ、ファイルだと(Y/n)って訊かれないんですけど、フォルダごと消そうとすると、よろしいですか?(y/n)訊かれるみたいです。
どう答えればいいんでしょうか?


0836名無しさん@お腹いっぱい。NGNG
消していいファイルなら
y(Enter)
消すとまずいファイルなら
n(Enter)
0837828NGNG
>836
それで消えないから困ってるんです。
フォルダごと消すのってムリなの?
0838名無しさん@お腹いっぱい。NGNG
>>837
何を消そうとして、どんなコマンドを打ち込んだかを示すべし。
OS名も書くように。

ちなみに、Win9x だと
del [フォルダ名]
だと、フォルダの中身のファイルは消せるが、
フォルダ自体と、フォルダの中のフォルダは残る。
フォルダの中のフォルダがなければ、del した後で、
rd [フォルダ名]
とすればそのフォルダは消える。

NTなら、
del /S [フォルダ名]
で、ばっさり消せるんだけどね。

どっかから、
rm -rf *
で、ばっさり消せる道具を拾ってくるのが吉。
0839名無しさん@お腹いっぱい。NGNG
deltree
08401000NGNG
void g_debug(int a, char *format, ...)
{
va_list argp;
if (gnut_lib_debug>=a) {
pthread_mutex_lock(&_g_debug_mutex);
fprintf(stderr,"%li > ", (long) pthread_self());
va_start(argp,format);
vfprintf(stderr,format,argp);
va_end(argp);
pthread_mutex_unlock(&_g_debug_mutex);
}
}pthread_t pthread_self()
{
// this is only used for debugging, so it's okay to lie here
return (pthread_t) GetCurrentThreadId();
}

このプログラムについて教えてください!
ずっと考えたんですが、超初心者な私にはさっぱりです。
お願いします!!

08411000NGNG
pthread_t pthread_self()
のところが、読みにくくなってしまいました。
すみません。
お願いします!
0842名無しさん@お腹いっぱい。NGNG
ネカマのお姉さん、チンポ舐めてください
0843名無しさん@お腹いっぱい。NGNG
>>840
デバッグメッセージ出力用関数。

1つめの引数はメッセージの重要度で、小さい数ほど重要なメッセージであることを示す。
gnut_lib_debug に設定されている値よりも重要な(=値が小さい)メッセージだけが出力される。
2つめ以降の引数はprintfの第1引数〜と同じように書く。

pthread_ほげほげ を使っているのは、
この関数が複数のスレッドから同時に呼び出されたときに
出力が混ざらないようにするため、出力開始から終了までの部分を
同時実行できないようにロックを掛けている。
0844840NGNG
どうも有難う御座います。
ようやく理解できました。
0845名無しさん@お腹いっぱい。NGNG
BASICである行列の逆行列を求めよという問題を教えてください。
おねがいします
0846名無しさん@お腹いっぱい。NGNG
>>845 ガウス消去法とかCG法とかLU分解とかで検索しよう
0847840NGNG
uchar conf_hash_struct(void *arg)
{
conf_key_pair *ckp;
int i,len;
uchar ret;

ckp=arg;
len=strlen(ckp->key);
for (i=0,ret=0; i<len; i++) {
ret+=ckp->key[i];

return ret;
}
ここでretはどういう意味でしょうか?
keyのi文字目を+していくというのがよく分かりません。
0848名無しさん@お腹いっぱい。NGNG
uchar conf_hash_struct(void *arg)
{
conf_key_pair *ckp;
int i,len;
uchar ret;

ckp=arg;
len=strlen(ckp->key);
for (i=0,ret=0; i<len; i++) {
ret+=ckp->key[i];

return ret;
}
ここでretはどういう意味でしょうか?
keyのi文字目を+していくというのがよく分かりません。
0849名無しさん@お腹いっぱい。NGNG
2重カキコすみません
0850名無しさん@お腹いっぱい。NGNG
hash値作ってるわけだろ>848
アルゴリズム関係の本でも読んでみ?
0851名無しさん@お腹いっぱい。NGNG
多分名前を見るにキー文字列からハッシュコードを作成
する関数だねえ。(ハッシュテーブルの事が分からんと
何でこんなことしてるのか分からんと思う。)

キー文字列の文字コード番号を頭から順番に加えつづけてる
&retがucharなのですぐオーバーフローするけど気にしない。
文字列全部の分のコード番号をたし終わった後の下位1バイト
(かどうかしらんが)をハッシュコードとして返してるって
事じゃないでしょうか。
0852名無しさん@お腹いっぱい。NGNG
ハッシュコード調べます。明日がんばります。
報告だけなので、さげ
0853名無しさん@お腹いっぱい。NGNG
ウルトラ初心者スレが時空のはざまにあるのでこっちに質問させてください。

仮にa->b->cとあって、そのcとある値を何度も比較するとき、そのまま参照して比較するのと一時的に変数に代入してそれを比較するのとではやはりスピードに差が出るでしょうか?
0854名無しさん@お腹いっぱい。NGNG
遅くなるかどうかはOS処理系コンパイルオプションを含めた
環境によると思います。
一時変数を使うことで遅くなることはないとは思いますが
参照しているのは実体ではなく過去のコピーであることには
注意してください。
(他のタスクで書き換えられないのかとか
 値を書き換えるときに実体に描きこむのを忘れるとか‥)
0855名無しさん@お腹いっぱい。NGNG
>>853
 従って、実際どうなるかは流して速度計るとか、
アセンブラレベルで眺めてみるしかないです。
 とはいえ、最近のコンパイラなら、勝手にその辺
最適化してしまう「はず」だけど。
0856名無しさん@お腹いっぱい。NGNG
>>853
そんなのは普通は気にしないでいいよ。>>854が言っているように、
正しい動作をするコーディングかどうかがまず大切。

「正しい動作をするプログラム」ができあがったら、速度を見てみる。
遅くなければ、めでたしめでたし。
遅い場合は、「どこが遅いのか」を調べて(自分が思いもよらなかった
箇所で遅くなっていたりするので)、一番足を引っ張っているところの
高速化の手段を考えて適用する。適用した後でまた速度を見てみる。以下繰り返し。
0857名無しさん@お腹いっぱい。NGNG
>>853
おいおい、全部で100秒かかる処理で、そこの所が
0.1msかかるのか10msかかるのか気にしてもしょうがないだろ。
0858>853NGNG
もしかしてPSやDCのプログラムやってる?
0859名無しさん@お腹いっぱい。NGNG
それがぐるぐるループのど真ん中にあるので心配してるのかも…?
0860名無しさん@お腹いっぱい。NGNG
静的変数
動的変数(スタック変数)
ヒープ変数

アクセス速度に違いってあるの?
0861名無しさん@お腹いっぱい。NGNG
やはりCPUやコンパイルオプションなどの環境によります。
古いCPUなら間接参照のない静的変数が速いでしょう。
あなたが古い8ビット16ビットCPUのためのプログラミングをして
いるのなら静的変数を多用して速度を稼ぐのは効果的かもしれません。
しかし比較的新しいCPUにおいては、間接参照は速度をおとす直接的原因
にはなりません。
それよりもキャッシュのミスヒットのほうが大きなペナルティとなるので
静的変数のほうが遅いなんて事も起こります。
(スタックメモリはキャッシュにおさまっていることが多いのです)
0862名無しさん@お腹いっぱい。NGNG
VC では register も無視、だっけ・・・?
今どきはユーザよりコンパイラの最適化のほうが賢くなってるかもしれない。
0863名無しさん@お腹いっぱい。NGNG
話が違うかもしれないけど、ペンティアム系のCPUは
難しいけど短い命令より
簡単だけど長い命令の方が早く処理する
と聞いたことがある。
0864名無しさん@お腹いっぱい。NGNG
while(1)
sleep(1);

return 0;
}
という文がプログラムの最後にでてきたのですが、
よく意味がわかりません。
無限ループはわかるのですが、
sleepが分かりません。
初歩的なのですが教えてください。
0865名無しさん@お腹いっぱい。NGNG
>>864
man 3 sleep
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/sleep.3.html
0866名無しさん@お腹いっぱい。NGNG
>865
そこみてもわからないのです。ごめんなさい
0867名無しさん@お腹いっぱい。NGNG
>>866
----------------------------------------
sleep() は、現在のプロセスを seconds 秒間または無視されないシグナルが到着するまで休止する。
----------------------------------------
って書いてあるじゃん?
とりあえず
main()
{
sleep(10);
return 0;
}
とかってプログラムして実行してみたら?
10秒間ほど帰ってこないから
0868名無しさん@お腹いっぱい。NGNG
>>864
それ間違ってないか?
> while(1) sleep(1);
無限ループでスリープして何になる?
0869名無しさん@お腹いっぱい。NGNG
システムに負荷かけずに無限ループしてるんでは。
DOS厨房が書いたサンプルでしょ。
0870名無しさん@お腹いっぱい。NGNG
pause(); と同じに見えるんですけど違うの・・?
0871お姉さんNGNG
ごぶさたお姉さんです。
なんかこのスレ私がいなくてもどんどん続いちゃってるみたいね
今javaに浮気中です!
0872名無しさん@お腹いっぱい。NGNG
868>そうです。そこで悩んでいたのです。
870>そういうことなのかなあ、とかってに納得させました。
一度実行してみます。
0873名無しさん@お腹いっぱい。NGNG
浮気中って事は お姉さんの本命は誰ですか?
0874名無しさん@お腹いっぱい。NGNG
888を書いた人がパート2作るということにしましょう。
さあ >>888 は誰だ?
0875名無しさん@お腹いっぱい。NGNG
>>874
え゛、まだやるの
「ウルトラ初心者の質問スレ」とかぶらない?
# ここシモネタ多いし...
0876デフォルトの名無しさんNGNG
ウルトラ初心者の質問スレとちがうところは
ここは宿題丸投げでも許すところです。
0877じろうくんNGNG
なんだかすたれてるなあ。
かわいそうだから、あげてみるよ。
0878デフォルトの名無しさんNGNG
宿題丸投げさせていただきます。超初心者です。
なにぶん初心者な者で//多めでお願いしまう。
VC++6.0で、MFCを使ってもかまいません。

(お題)
テキストファイルの数値データを、配列に読み込みなさい。
2.5 2.5 2.5 2.5
2.7 2.5 2.5 2.5
2.835 2.633 2.5 2.5
2.911 2.748 2.546 2.5
こんな感じで、空白と改行で数値が区切られてます。
行数と1行のデータ数が、ファイルごとに違います。汎用性を持たせなければなりません。
ただし、同じファイル内では、1行のデータ数は変わりません。

最終的には、読み込んだデータを元に2次元グラフ(時間t-地点xグラフ)を描いて動かさなければなりません。
例えば、1行目なら、左から順にx=0,1,2,3地点のデータです。
そして、1行目が1コマ目のデータで、2行目が2コマメで、、、といった感じです。
とりあえず、データをファイルに取り込むとこまでやりたいです。
よろしくお願いします。
0879878NGNG
>>878
間違えました。
時間t−地点xグラフではなく、y−xグラフです。
数値データがyです
0880デフォルトの名無しさんNGNG
>878
きっと100行越すね。
眠いから無理。
0881878NGNG
>>880
そーですか、わかりました。コメントありがとうございます。
どなたか目が冴えてる方お願いできませんか。
0882878NGNG
>>878
>とりあえず、データをファイルに取り込むとこまでやりたいです
あー、データを配列にの間違えだ。すみません。
私も眠いのかな。
0883初心者教育係NGNG
fgets で行単位でとりこんで
sscanf でパターンにもっともマッチするものを採用して
配列にほうり込んでください。
0884878NGNG
>>883
むう、、、そのヒントだけで私にできるとは、、、むう、、、
でも初心者教育係さんありがとうございます。
やっぱ丸投げってのは考えが甘すぎましたかねえ、、、
0885デフォルトの名無しさんNGNG
open FILE, $filename or die "ERROR"
undef @data;
while (<FILE>){chop;
$data[i]=[split(| |)];
i++;}
close FILE;


print $data[x][y];
てきとー
0886878NGNG
>>885
シャレですよね、、、もしかして本物のコードですか?
ってレベルの知識しかない初心者なんです。
月曜が期限なんですよね。はー、寝れないよー。
0887初心者教育係NGNG
手抜きなやりかた

FILE * fp; double exp_data[4];

if( (fp = fopen("hogehoge","r")) == NULL )
 printf( "can't open hogehoge\n");
else
{
 char buffer[4096];
 double tmp[4];
 int exp_type;
 while( fgets( buffer, sizeof(buffer), fp) != NULL )
 {
  exp_type = 0; // どれにもあてはまらない
  // case 1 を調べます
  if( sscanf( buffer, "%lf %lf %lf %lf", tmp, tmp+1, tmp+2, tmp+3) == 4)
  { exp_type = 1; exp_data[0] = tmp[0]; exp_data[1] = tmp[1]; exp_data[2] = tmp[2]; ... }
  // case 2 を調べます
  if( sscanf( buffer, "%lf %lf %lf", tmp, tmp+1, tmp+2) == 4)
  { exp_type = 2; exp_data[0] = tmp[0]; exp_data[1] = tmp[1]; exp_data[2] = tmp[2]; }
 }
 // てきとーに処理してちょーだい
}
0888887NGNG
あー 寝ぼけてる・・
いろいろミスがあって調整が必要なので・・ハイ・・
0889デフォルトの名無しさんNGNG
最近お姉さんここ見ているのか?
0890困っったNGNG
昨日からjavaの勉強はじめたんですけど
MS-DOSの表示を画面一杯にしちゃって
不便なので元に戻したいのですが
どなたか教えて頂けないでしょうか?
0891デフォルトの名無しさんNGNG
>>890
alt+enter
0892卒業間近女子大生NGNG
学校の宿題で大変困っています、助けて下さいー。
「=まで入力された数式を計算し、結果を出力するプログラム」
電卓を作れ、という課題なんですが…。
C言語の授業で死にそうです、誰かヒントでもわかる方教えて下さい。
0893>892 再帰降下型構文解析NGNG
0894878NGNG
>>887
初心者教育係さん、どうもありがとうございました。
動的な配列ではないようですが、参考にさせていただき自力でがんばってみます。
他の皆様、引き続きまるなげ解答お待ちしております。
0895890NGNG
>>891
ありがとうございます。
参考書ができるWindows98なもので。
0896890NGNG
>>891
ありがとうございます。
参考書ができるWindows98なもので。
0897名無しさんNGNG
ちょっと質問させてください。

typedef struct
{
  union
  {
    int i;
    float f;
  }

} DATATYPE;

DATATYPE d[] =
{
 1, 2, 3, 4.5678f, 5, 6.789f, 0,
};

このような変数dをint型float型マゼコゼで初期化したいのですが、
コンパイルすると、float型部分がint型に初期化されてしまいます。
構造体内部を
  union
  {
    float f;
    int i;
  }
とすると、float型に初期化されます。
何かいい手はないですか?
0898デフォルトの名無しさんNGNG
>>892
ネカマでなければ容姿にもよるが、一発やらせてくれるなら、
手取り足取り教えてやる。
0899デフォルトの名無しさんNGNG
>897
16進数にして初期化。
0x00010135 とか。
float も一応4バイトの擬似整数?の16進で表現できるから。
でも面倒だよ。
0900>897NGNG
つーか、設計ミス。データ構造を再考せよ。
0901デフォルトの名無しさんNGNG
>>897
 共用体の初期値式は同じ型の単一の式か、あるいはその共用体の最初のメンバー
に対する大カッコ付きの初期値式のいずれかである。〜K&R第2版A8.7初期化より〜

 あー、意味がつかみにくいのー。
 ともかくそういう仕様らしい。

 共用体使う場合だと、どのメンバが有効かどうかを示す識別用の変数を使うのが多いと思うが、
ソレが入ってるならば、共用体やめるのがいいんじゃないか。
0902初心者教育係NGNG
>897
それで初期化すると1がfloatの1.0なのかintの1なのか
不明瞭なのでは。素直にfloatにしてintには変換してはいかがですか?
0903デフォルトの名無しさんNGNG
DATATYPE d[10];

d[0].i=1;
d[1].i=2;
d[2].i=3;
d[3].f=4.5678f;
d[4].i=5;
d[5].f=6.789f;
d[6].i=0;

ってやれば(藁
こういう風に書きなおすプログラム作ってコンピュータにやらせりゃ良いじゃん。
っていうか int と float の共有体の配列ってどういう場合に使うの?
なんかものすごく使いにくい気がする。
int と float ってメモリ的には全然互換性ないし。(サイズは同じだけど)
0904名無しさんNGNG
>>899-903
ありがとうございます。

用途としては、

#define END         0, 2,
#define SETPOSITION(x,y,z)  1, 5, x, y, z
#define GOTO_LABEL(L)    2, 3, L
#define LABEL(L)       3, 3, L

//1番目の引数 = SETPOSITION識別用
//2番目の引数 = マクロのデータサイズ
//3番目以降の引数 = 不定(可変)

のようなマクロを作り、インタープリタのような制御したいのです。

//スクリプト
DATATYPE a[] =
{
  GOTO_LABEL(100)
SETPOSITION(1.23f, 4.56f, 6.78f)

 LABEL(100)
  END
};

//制御プログラム
DATATYPE *p = a;
DATATYPE *q;

switch (*p)
{
  case 0: //END
    break;

  case 1: //SETPOSITION
    SetPosition(p[2], p[3], p[4]); //関数
    p += p[1];
    break;

  case 2: //GOTO_LABEL
    q = a;
    while (TRUE)
    {
      if (q[0] == 3 && q[2] == p[2])
      {
        //ラベルかつ引数が同じならば、pはラベルの次のデータを指す
        p = q + q[1];
        break;
      }
      q += q[1];
    }
    break;
}

こんな感じです。
今は解決方法として、>>902さんの方法をとっていますが、すっきりしないので、
もっとスマートな方法は無いのかと思い、質問させていただきました。
データ記述部もマクロを工夫すればなんとかなりそうですね。
大変参考になりました。
0905デフォルトの名無しさんNGNG
もう下げよーよ。
根釜の彼もやるき無いみたいだし。
お姉さんときたから、次はなんだろ。妹とか、おばさん?w
0906デフォルトの名無しさんNGNG
断然 妹キボーン
そこらへんの兄ちゃんよりできる妹 萌え
0907デフォルトの名無しさんNGNG
でも一人称で「妹」とは言わないしなあ。>906
演じるのはむずかしいぞw
0908892NGNG
ネカマと言われてもしょうがありませんよね。
でも東京○×館短期大学情報社会学科のバカ女子大生です。
マジ宿題困ってます、単位ヤバイんです。
善意のある方ヒントでいいんで助けて下さい…。
0909デフォルトの名無しさんNGNG
>>908
まぁ、どっちでもいいや、助けてやろう。
朝一で本屋に走って、
「C言語による最新アルゴリズム事典」奥村 晴彦 著(技術評論社)
を買いなさい。
99ページの「式の評価」に該当コードがあるので参考にするなり、
コピーするなりしなさい。

あとは、lex&yaccという手段もあるが、宿題ならダメッポイ。
一応ネットで調べる事をオススメする。
0910デフォルトの名無しさんNGNG
電卓ということは、演算子の優先順位とかはなくていいのかな?
0911デフォルトの名無しさんNGNG
RPN電卓なら簡単だけど、宿題ならダメかもな。
あ>>892は=あるからRPNじゃダメか。
0912デフォルトの名無しさんNGNG
電卓プログラムをパクってきた。結構難しいんだね。
ええと、全角スペース→半角スペース2個の変換をしてね。

#include "stdio.h"
#include "string.h"

#define PARSE_OK 1
#define PARSE_ERR 0
#define NUMBER '0'
#define ERRSYM '9'

void getsym(void);
void factor(int *val);
void term(int *val);
void expression(int *x);
int syntax(char *str,int *val);

char sym;
int  symval;
char *buff;

void getsym(){
 int val=0;
 char ch=*buff;
 if('0'<=ch && ch<='9'){
  sym = NUMBER;
  while('0'<=ch && ch<='9'){
   val=val*10+(ch-'0');
   buff++;ch=*buff;
  }
 } else {
  sym = ch;buff++;
  switch(ch){
  case '+':
  case '-':
  case '*':
  case '/':
  case '(':
  case ')':
  case '\0':
   break;
  default:
   sym=ERRSYM;
  }
 }
 symval=val;
}

void factor(int *val){
 int val1;

 if(sym=='-'){
  getsym();
  if(sym==NUMBER){
   val1=symval*(-1);
   getsym();
  } else goto ERROR;

 } else if(sym==NUMBER){
  val1=symval;
  getsym();
 } else {
  if(sym!='(')goto ERROR;
  getsym();
  expression(&val1);
  if(sym!=')')goto ERROR;
  getsym();
 }
 *val =val1;
 return;
ERROR:
 sym=ERRSYM;
 return;

}

void term(int *val){
 int val1,val2,op;

 factor(&val1);
 while(sym=='*'||sym=='/'){
  op=sym;
  getsym();
  factor(&val2);
  if(op=='*')val1*=val2;
  else {
   if(val2!=0)val1/=val2;
   else sym = ERRSYM;
  }
 }
 *val = val1;
 return;
}

void expression(int *val){
 int val1,val2,op;

 term(&val1);
 while(sym=='+'||sym=='-'){
  op=sym;
  getsym();
  term(&val2);
  if(op=='+')val1+=val2;
   else val1-=val2;
 }
 *val = val1;
 return;
}

int syntax(char *str,int *val){
 buff = str;
 *val = 0;
 getsym();
 expression(val);
 if(sym=='\0')return PARSE_OK;
 return PARSE_ERR;
}

void main (){
 char str[255];
 int val,i;

 scanf("%s",str);
 for(i=0; i<strlen(str); i++)
  if(str[i] == '=')
   str[i] = '\0';
 while(strcmp(str,"end")!=0){
  printf("%s",str);
  if(syntax(str,&val)==PARSE_OK){
   printf("=%d\n",val);
  } else printf(".. error\n");
  scanf("%s",str);
 }
}
0913デフォルトの名無しさんNGNG
>>892
つまらんプログラムですがよろしかったらお使いください。

/*
<expr> ::= <term> <expr'>
<expr'> ::= '+' <term> <expr'> | '-' <term> <expr'> | ε
<term> ::= <fact> <term'>
<term'> ::= '*' <fact> <term'> | '/' <fact> <term'> | ε
<fact> ::= 整数 | '(' expr ')'
*/

#include <stdio.h>
#include <ctype.h>
char buf[200];
int pos = 0;
match(char c) { if(buf[pos] != c) err(); else ++pos; }
err() { fprintf(stderr, "syntax err\n"); exit(1); }
main() { int v;
fgets(buf, 200, stdin); v = expr(); match('='); printf("%d\n", v); }
expr() { int v = term(); return expr1(v); }
expr1(int v) {
switch(buf[pos]) {
case '+': match('+'); return v + term();
case '-': match('-'); return v - term();
case '=': case ')': return v;
default: err(); } }
term() { int v = fact(); return term1(v); }
term1(int v) {
switch(buf[pos]) {
case '*': match('*'); return v * fact();
case '/': match('/'); return v / fact();
case '=': case ')': case '+': case '-': return v;
default: err(); } }
fact() { int v = 0;
switch(buf[pos]) {
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
while(isdigit(buf[pos])) { v = v * 10 + (buf[pos] - '0'); ++pos; }
return v;
case '(': match('('); v = expr(); match(')'); return v;
default: err(); } }
0914892NGNG
ありがとうございます!!
さっそく参考にしてみます。
そして本屋にも走ってみます。
突然すみませんでした!!
0915デフォルトの名無しさんNGNG
転送速度を計算するプログラムを作ったんですが、
サイトからの転送速度って、サイトに対するダウンロード要求
アップロード要求により変わってくるのでしょうか?
つまり大量のファイルをダウンロード中のサイトからの
ファイルをダウンロードする際の転送速度は
やはり遅くなるのでしょうか?
卒論のテーマの一貫なので、教えていただければ・・・

他にサイトからの転送速度を遅くする方法はどんなのがありますか?
0916デフォルトの名無しさんNGNG
>>828 名無番長
echo y>yyy
del \*.* < yyy

0917915NGNG
すれ違いだったかもしれませんが、
他に聴くところ&詳しそうなところが
わからなかったもので・・・・
助けてください。
0918デフォルトの名無しさんNGNG
>915
ネットワーク板向きじゃないの?
0919915NGNG
ネットワーク板逝ってきます
0920マジレスさんNGNG
お姉さんお願い。
万年カレンダーC言語で作っています。
日にちの改行のとところがうまくいきません。
どうしたら良いですか?
0921ひげNGNG
>>920

質問の仕方が悪いですよ。
お姉さんもテレパシーを受信できるわけではないので、
きちんとソースを提示してからお願いしましょうね。
0922デフォルトの名無しさんNGNG
こんにちは。
a*(bのθ乗)を計算するプログラムを作ったのですが、
これを、θの値を変動させたときの結果をグラフにして
だしたいのですが、どのようなコマンドを
打てばいいのでしょうか?gnuplotだった
と思うのですが使い方がわかりません。
論文締め切り2日前であせってます。
厚かましいですが、くわしめに教えてください。
0923デフォルトの名無しさんNGNG
osはdebianです。
0924nanaNGNG
超初心者です。丸投げさせていただきます。
C言語です。
(課題)
ポインタ渡しの手法を用いて以下で示すプログラムにおいて
● 「各配列のメモリ確保」の部分
● 「各行列」の部分
● 「行列C=A*Bの計算」の部分
● 「各行列の表示」の部分
を関数化しそれぞれ汎用的に用いられるように、プログラムを修正せよ。

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

void main()
{
int i,j,k;
double value,**a,**b,**c;
/*----各配列のメモリ確保----*/
a=(double **)malloc(3*sizeof(double *));
b=(double **)malloc(3*sizeof(double *));
c=(double **)malloc(3*sizeof(double *));
for(i=0 ; i<3 ; i++){
a[i]=(double *)malloc(3*sizeof(double));
b[i]=(double *)malloc(3*sizeof(double));
c[i]=(double *)malloc(3*sizeof(double));
i++;
}
/*-----------行列のAの入力--------------*/
printf("input values for matrix A\n");
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
printf("A(%d,%d)=",i,j);
scanf("%lf",&value);
a[i][j]=value;
}
}
/*-----------行列のBの入力--------------*/
printf("input values for matrix B\n");
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
printf("B(%d,%d)=",i,j);
scanf("%lf",&value);
b[i][j]=value;
}
}
/*-----------行列のC=A+Bの計算--------------*/
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
c[i][j]=0;
for(k=0 ; k<3 ; k++){
c[i][j] += a[i][j]*b[i][j];

}
}
}
/*-----------行列のAの表示-------------*/
printf("A=");
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
printf("\t%f", a[i][j]);
}
printf("\n");
}
/*-----------行列のBの表示-------------*/
printf("B=");
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
printf("\t%f", b[i][j]);
}
printf("\n");
}
/*-----------行列のCの表示-------------*/
printf("C=A*B=");
for(i=0 ; i<3 ; i++){
for(j=0 ; j<3 ; j++){
printf("\t%f", c[i][j]);
}
printf("\n");
}
}
なにとぞよろしくお願いします。
0925924NGNG
補足させていただきます。
上のプログラミングは2個の3×3の行列の要素をキーボードから入力し
行列の乗算を行うものです。
0926デフォルトの名無しさんNGNG
馬鹿ですか?
0927デフォルトの名無しさんNGNG
>>924

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

double** malloc_matrix(int x)
{
    double** p = (double**)malloc(x * sizeof(double*));
    int i;
    for(i = 0; i < x; i++)
    {
        p[i] = (double*)malloc(x * sizeof(double));
    }
    return p;
}

void free_matrix(double** p, int x)
{
    int i;
    for(i = 0; i < x; i++)
    {
        free(p[i]);
    }
    free(p);
}

void input_matrix(double** p, int x, const char* name)
{
    int i, j;
    double d;
    printf("input values for matrix %s\n", name);
    for(i = 0; i < x; i++)
    {
        for(j = 0; j < x; j++)
        {
            printf("%s(%d,%d)=", name, i, j);
            scanf("%lf", &d);
            p[i][j] = d;
        }
    }
}

void calc_matrix(double** p, double** p1, double** p2, int x)
{
    int i, j, k;
    for(i = 0; i < x; i++)
    {
        for(j = 0; j < x; j++)
        {
            p[i][j] = 0;
            for(k = 0; k < x; k++)
            {
                p[i][j] += p1[k][j] * p2[i][k];
            }
        }
    }
}

void print_matrix(double** p, int x, const char* name)
{
    int i, j;
    printf("matrix %s values: \n", name);
    for(i = 0; i < x; i++)
    {
        for(j = 0; j < x; j++)
        {
            printf("\t%f", p[i][j]);
        }
        printf("\n");
    }
}

int main()
{
    int x = 3;
    double** a = malloc_matrix(x);
    double** b = malloc_matrix(x);
    double** c = malloc_matrix(x);

    input_matrix(a, x, "A");
    input_matrix(b, x, "B");

    calc_matrix(c, a, b, x);

    print_matrix(a, x, "A");
    print_matrix(b, x, "B");
    print_matrix(c, x, "C");

    free_matrix(a, x);
    free_matrix(b, x);
    free_matrix(c, x);

    return 0;
}
0928デフォルトの名無しさんNGNG
>>927 cool!!
0929デフォルトの名無しさんNGNG
質問させてもらいます。

Cの画像処理プログラムで、
「与えられた濃淡画像の中から最も面積の大きい領域を抽出するプログラム」
がどうしても作れません。
どなたか出来る人いませんか?

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

#define line 80
#define L 300
#define M 300

FILE *fin,*fout;
char c[100];
int f[400][400];
int g[400][400];

void initfile(void);
void scandata(void);
void hajidata(void);

main()
{
int i,j;

initfile();
scandata();
hajidata();

for(i=1;i<L+1;i++)
{
for(j=1;j<M+1;j++)
{
/* g[i][j] = ??? */

fprintf(fout,"%4d",g[i][j]);
}
fprintf(fout,"\n");
}
}

void initfile(void)
{
int i;
fin = fopen("image1.pgm", "r");
fout = fopen("idou.pgm","w");

for(i=0;i<4;i++)
{
fgets(c,line,fin);
fputs(c,fout);
}

}

void scandata(void)
{
int l,m;
int N;

for(l=1,m=1;l<L+1;m++)
{
fscanf(fin,"%d",&N);
f[l][m]=N;
if(m==M)
{
l=l++;
m=1;
}
}
fclose(fin);
}

void hajidata(void)
{
int i,j;

for(i=1;i<M+1;i++)
{
f[0][i] = f[1][i];
f[L+1][i] = f[L][i];
}

for(j=1;j<L+1;j++)
{
f[j][0] = f[j][1];
f[j][M+1] = f[j][M];
}

f[0][0] = f[1][1];
f[L+1][0] = f[L][1];
f[0][M+1] = f[1][M];
f[L+1][M+1] = f[L][M];
}

0930デフォルトの名無しさんNGNG
おねえさんにそんなむつかしいことさせないでください
0931デフォルトの名無しさんNGNG
>829
教えてもいいけど・・・
幾ら出す?
説明はだるいからコードプレゼントしてあげるよ。
0932デフォルトの名無しさんNGNG
(JAVAプログラムで)n次行列の行列式を求めるアプリケーションを作れっていう課題を大学で出されたんだけど全然分からないよー。
誰か助けて!
0933デフォルトの名無しさんNGNG
>>932
必死だな。勉強しろよ。
0934デフォルトの名無しさんNGNG
まずどこがわからないのかをはっきりさせよう
人に聞くのはそれからだ
0935デフォルトの名無しさんNGNG
age
0936デフォルトの名無しさんNGNG
>>935
ageても>>932は助けてもらえないよ、たぶん。
高校の問題解けない大学生かまって暇あったら、煽ってたほうがいいしさ。
定期ageならご苦労様です。
0937デフォルトの名無しさんNGNG
いじめカッコ良い!
0938デフォルトの名無しさんNGNG
932はソース全部の答え以外は期待していないんだろう
0939デフォルトの名無しさんNGNG
ちゅうか、掃き出し法で一発では・・・
0940デフォルトの名無しさんNGNG
こうなってくると932が大学生かどうかも怪しくなってきた。
0941デフォルトの名無しさんNGNG
>>940
関係無い事書くならsageろや。
大学生の宿題くらいしか依頼出してまでやるような事じゃない気はするが、
知能的にアヤシイな、確かに。
0942デフォルトの名無しさんNGNG
(JAVAプログラムで)n次行列の行列式を求めるアプリケーションを作れっていう課題を大学で出されたんだけど全然分からないよー。
誰か助けて!
0943デフォルトの名無しさんNGNG
>942
どんなレスがついたら満足なんだ?
ソースファイル全部とか。あほか。宿題の意味ないだろが。
0944デフォルトの名無しさんNGNG
>>942
あ゛ー、テメェ本当にウゼェよ。あちこちに書くんじゃねぇ。
そもそも、何が解んないんだよ?
「n次行列の行列式を求める」アルゴリズム?
「JAVAプログラム」自体?

前者なら単位落とせ。バカは勉強シロ!
後者ならどこまで作ったかソース出せ。場合によっては助けてやる。
本買って勉強したか?してないならそっから始めろ。
0945デフォルトの名無しさんNGNG
誰か答えてあげたら?
0946デフォルトの名無しさんNGNG
LISP関係で
「計算機プログラムの構造と解釈 第二版」
って言う本の答えがあるページ知らない?
0947デフォルトの名無しさんNGNG
>>942
さすが大学ですね。
こんな難しい問題が出るなんて。

>>945
わからないので答えられません。
0948デフォルトの名無しさんNGNG
>>942

public class ドキュソ学生
{
 public ドキュソ学生()
 {
  Syste.out.println("逝ってよし");
  System.exit(1);
 }
 public void main(String args)
 {
  new ドキュソ学生();
 }
}

0949デフォルトの名無しさんNGNG
>>942
で、どこの大学なの?
0950名無しさん@お腹いっぱい。NGNG
なにげにコンパイルエラー
0951しんじNGNG
>>942
し〜りた〜い〜?
し〜りた〜い〜?
し〜りた〜い〜?
ちんたいば〜〜〜ん!
0952デフォルトの名無しさんNGNG
知りたいらしい。
0953デフォルトの名無しさんNGNG
朝です
0954デフォルトの名無しさんNGNG
おしえてよ〜〜
0955デフォルトの名無しさんNGNG
いいから、ソースファイルよこせ!!
わかんねぇんならいちいち口出しするんじゃねー!
0956942NGNG
一応T大です。
0957デフォルトの名無しさんNGNG
age
0958マジレスさんNGNG
>956
さすがドキュソ(藁
行列式なんて余裕でもとまるじゃん。
一応さあ、線形代数とかやってんだろ?
0959一堂零NGNG
一応高校です。
0960デフォルトの名無しさんNGNG
一応、小学生です。
0961924NGNG
>927
どうもありがとうございました。
大変感謝しています。
0962デフォルトの名無しさんNGNG
VB6.0でabcdとか入力したらdcbaとか表示されるプログラムってどうやるんですか?
0963デフォルトの名無しさんNGNG
VBにはrevないのんか?
0964デフォルトの名無しさんNGNG
string1 = "逝ってよし"
string2 = ""
For i = Len(string1) To 1 Step -1
  string2 = string2 + Mid(string1, i, 1)
Next
MsgBox string2
0965名無しさんNGNG
f(x)=x^2-4x+3において、f(x)=0をニュートン法と2分割法で解く方法がわかんないんです。

力を貸していただきたいのですが。

0966名無しさん@電話にはでんわNGNG
f(x)=(X‐1)(X‐3)
0967デフォルトの名無しさんNGNG
進級課題に参ってます。
ある程度ソースができてるならまだしも、問題をみてもどーしていいかも
わからない。だから、ここで聞くともできない。
配列ってかなり嫌いだ!
0968デフォルトの名無しさんNGNG
967です。
ちなみに。C++です。
0969sageNGNG
>>967
プログラミングの才能ないんだよ
まぁ世の中プログラミングができなくても
生きていけるから頑張って
(進級はどうなるか知らないけど・・・)
0970デフォルトの名無しさんNGNG
>>967
ここに問題をだしてくらはい。
0971名無しさん@お腹いっぱい。NGNG
>>965
数値解析の本を見るべし。
0972デフォルトの名無しさんNGNG
>>971
参考書希望。
0973C言語独習3ヶ月目NGNG
の問題のプログラミングが全然できません。助けてください。

A*A−sinA=0

の実数解を以下の5通りの方法で、
小数点第7位が一致する精度で解き、
その精度が得られる計算回数とともに示す。
ただし初期値  A1=1
(1)ニュートン法
(2)ベイリー法
(3)二分法
(4)10等分法(区間縮小法)
(5)逐次代入法(反復法)


0974名無しさん@お腹いっぱい。NGNG
>>972
おいおい、そんな宿題出すところなら図書館に数冊置いてあるだろ。
一番わかりやすいやつ、っつーか
サンプルコードが載ってるやつを奪取する。
0975名無しさん@お腹いっぱい。NGNG
>>973
(5)以外はやり方忘れた。で、(5)だが、まずはテイラー展開
(注)d/dxは本当は偏微分。
f(x)=x*x-sinx=0
f(x)=f(x(n-1)+x(n)-x(n-1))
f(x)≒f(x(n-1))+(x(n)-x(n-1))*(d/dx)*f(x(n-1))
∴x(n)=x(n-1)-{x(n-1)*x(n-1)-sin(x(n-1))}/{2*x(n-1)-cos(x(n-1))}
あとはx(n-1) に初期値1を代入してx(n)を求める。
次に、求めたx(n)をx(n-1)に代入してまた、x(n)を求めるというのを繰り返す。
小数点第7位以上が変動しなくなったら終了。読みにくくてスマソ
0976名無しさん@お腹いっぱい。NGNG
#include <math.h>
#include <stdio.h>
main(int argc,char *argv[]) {
  double diff;
  double x, xn;
  double hoge;
  diff = xn = 1.0;
  for (i = 0; (diff < 1e-7) || (i > 1e4); i++) {
 hoge = (xn*xn) - sin(xn);
 hoge /= (2*xn - cos(xn));
 x = xn - hoge;
 diff = x - xn;
 xn = x;
  }
  printf("counter = %d", i);
  printf("x = %f",x);
}
間違ってったら訂正頼みます。
0977デフォルトの名無しさんNGNG
そろそろ1000こえるぞ。
このスレの常連の奴は、パート2を作れよ。
0978デフォルトの名無しさんNGNG
お姉さんが作らないなら、終了でいいだろ。
似たようなスレがあるし。
0979976NGNG
diffはABSしましょう。鬱だ。
0980976NGNG
動作検証してみた。鬱すぎた。逝きます。
#include <math.h>
#include <stdio.h>
main(int argc,char *argv[]) {
   int i;
   double diff;
   double x, xn;
   double hoge;
   diff = xn = 1.0;
   for (i = 0; (diff > 1e-7) && (i < 1e4); i++) {
     hoge = (xn*xn) - sin(xn);
     hoge /= (2*xn - cos(xn));
     x = xn - hoge;
     diff = x - xn;
     diff = (diff < 0) ? (-diff) : (diff);
     xn = x;
   }
   printf("counter = %d\n", (i-1));
   printf("x = %10.8f\n",x);
   hoge = x*x-sin(x);
   printf("f(x) = %f\n",hoge);
}
0981C言語独習3ヶ月目NGNG
>>980

実行しようとしたんですけど、
undefined symbol: cos
undefined symbol: sin
って出るんですけど。MS−DOSプロンプトにて。
0982976NGNG
>>981
MSはわかりません。UNIX(g++)なら動いたけど・・・
#include <math.h>
は記述した?
0983976NGNG
>>981
食後で気分良いからVC++で動かしてみた。
全然問題なし。やっぱり1行目かいてないだろ。
ただし、細かいところは修正してね。(diff > 1e-7)とかだめだよ。
0984デフォルトの名無しさんNGNG
(JAVAプログラムで)n次行列の行列式を求めるアプリケーションを作れっていう課題を大学で出されたんだけど全然分からないよー。
誰か助けて!

0985デフォルトの名無しさんNGNG
またか1!!
0986デフォルトの名無しさんNGNG
亀レスだし、どうでもいいんだけどさ。
984のいってる意味わかる人いる?n次行列の行列式もとめろ?
0987お姉さんNGNG
超久しぶりに来てみたら、まだスレがあって驚きました。
どうせなら1000行ってもらいたいね。

>984
n痔行列の行列式って、なんですか??
0988260NGNG
>984
ab AB aA+bC aB+bD
( cd )( CD ) = (cA+dC cB+dD)
とかっていうやつの
のn痔になったやつ?
0989デフォルトの名無しさんNGNG
そろそろ新スレ作ろうぜ
0990お姉さんNGNG
984の書き込みは二週間前なのでもうできているでしょう(無責任)
次いってみよ!
0991厨房NGNG
階乗を求めるプログラム教えてください!
C言語です。とりあえず作ってみたものの
ちゃんと答えがでないんですよ。
for文の中身が悪いんだと思うんですけど・・・お願いします。

#include<stdio.h>

int mona,giko,kaijyo;

int main(void)
{
printf("数字 => ");
scanf("%d",&mona);

if ( mona == 1){
giko = 1;
} else {
for ( giko = 1; giko <= mona; giko++){
kaijyo = ( giko - 1 ) * giko;
}
}
printf("階乗 = %d\n",kaijyo);
}

0992デフォルトの名無しさんNGNG
for(giko = mona, kaijo = 1 ; giko > 0 ; giko--){
 kaijyo *= giko
}
かな?
0993デフォルトの名無しさんNGNG
kaijyo = ( giko - 1 ) * giko;
のうしろに
printf("kaijo=%d giko=%d\n",kaijo,giko);
をいれてその出力をみてればすぐわかるよ。
(*=演算子を使えばカンタン)
0994厨房NGNG
あ、上手くいきました!!
ありがとうございます。
やっと次に逝ける・・・(TT)
0995デフォルトの名無しさんNGNG
>>994
巧くいったことはどうでもいいから、どうして巧くいかなかった
のかをちゃんと考えた方がいいぞ。
それが厨房脱出の近道〜〜〜。
0996デフォルトの名無しさんNGNG
>>991
つうかデバッガつかえよ。ブレークポイント張り&ステップ実行は、
プログラマ初心者ならはまる事請け合い。
0997デフォルトの名無しさんNGNG
>994
オーバーフロー対策しなくていいの?
ついでに言うと、表引きにした方がいいんじゃないっすか?
0998見習いNGNG
pasteのソースファイルを教えてpasteのソースファイルを教えてpasteのソースファイルを教えてpasteのソースファイルを教えてpasteのソースファイルを教えてpasteのソースファイルを教えてp
0999デフォルトの名無しさんNGNG
>998
ソースじゃなくてソースファイルね。
paste.cpp
でどう?
1000デフォルトの名無しさんNGNG
1000age!!
1001デフォルトの名無しさんNGNG
新スレ立てろ >>1000
1002お姉さんNGNG
誰か新スレ立ててお願い!旧スレのリンクの仕方とかしらないから。
1003デフォルトの名無しさんNGNG
新スレ

http://piza.2ch.net/test/read.cgi?bbs=tech&key=982853418&ls=50
1004NGNG
1000,,Over 1000 Thread,このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。 ,
10051000,,Over 1000 Thread,このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。 ,
NGNG
NG
レス数が1000を超えています。これ以上書き込みはできません。