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

宿題、手伝おっか?

レス数が1000を超えています。これ以上書き込みはできません。
0001えれなNGNG
前々スレのお兄ちゃんの幼なじみ、えれなです。
宿題、判らないところとかがあったら、聞いてね。

怜さんの前スレはこちら、
http://pc.2ch.net/test/read.cgi/tech/1007902384/l50
キーワードがわかってるなら、googleで探してね。
http://www.google.co.jp/
0002デフォルトの名無しさんNGNG
ずさー
0003デフォルトの名無しさんNGNG
3サイズおしえれ
0004デフォルトの名無しさんNGNG
ティンコズサー
0005デフォルトの名無しさんNGNG
おっぱいずさー
0006デフォルトの名無しさんNGNG
●お姉さん
あなたの宿題、お姉さんが答えます
http://piza.2ch.net/tech/kako/972/972032579.html
で登場。

●麻衣
お兄ちゃんの宿題、私が答えるよ
http://pc.2ch.net/tech/kako/982/982853418.html
で初登場。可愛い妹キャラ。ひろゆき(?)を奪われ怜に嫉妬して
いるらしい。

●お兄ちゃん(ひろゆき(?))
宿題見てやるよ
http://pc.2ch.net/tech/kako/1003/10038/1003838158.html
で初登場。しかし、女性がいいという影の圧力により
1以外には登場せず。

●怜
宿題みてあげるっ
http://pc.2ch.net/test/read.cgi/tech/1007902384/l50
で初登場。お兄ちゃん(ひろゆき(?))の恋人。
結構親切に答えてくれる年上キャラ。
0007デフォルトの名無しさんNGNG
質問!

先生に>>1の性癖を調べてこいといわれました!
教えてください!
0008spritNGNG
1,23,456を,で区切って配列に格納するソースを教えてくださいよ
0009デフォルトの名無しさんNGNG
>>8
@a = split(/,/,$b);
0010えれなNGNG
ttp://pc.2ch.net/test/read.cgi/tech/1009499565/
からきたのね。C言語で、ってきちんと言わないと、私も>9さんみたいに
var = "1,12,456"; array = var.split(/,/);
って答えちゃうよ。

そうそう。C言語なら、
・','のあらわれる回数をしらべる
・mallocでポインタの配列を確保する
・forとかで、strtokを使って、その配列にポインタを入れていく。
という方法で、できると思うよ。
0011デフォルトの名無しさんNGNG
for (i = pa = 0; str[i] != '\0'; i++) {
  if (str[i] == ',') {
    prats[pa] = '\0';
  } else {
    prats[pa] = str[i];
  }
}
0012デフォルトの名無しさんNGNG
>11
strが文字列リテラルだという罠。
0013spritNGNG
>>10
>>11
ありがとう。やってみます。
>>8
C言語をしらない617もありがとう。
prelしか知らないだけあって詳しいですね。
perlも勉強になりました
0014自慰、手伝おっか?NGNG
手コキで良いっすか?パイズリの方が良い?
00159NGNG
>>13
もしかしてその>>8って漏れのこと?いっとくが漏れは>>617じゃないよ。
単純に一番楽に実装できるコードを教えただけ。
>>10で言ってるスレはみてなかったもんで、追い出されてたとは知らんかった。
むかつくのは分かるが、確信もって言ってね。
0016デフォルトの名無しさんNGNG
「麻衣を出せ」と言ってみるテスト。
0017デフォルトの名無しさんNGNG
>>16
麻衣は産休中です。
0018麻衣派NGNG
>>16
麻衣ファンの皆様、ごめんなさい。
0019代打名無しNGNG
すみません誰か教えてください、、、unixです、、、

キーボードから円を入力すると,ドルに変換するプログラムを作成しなさい。
なお,変換レートは本日分の値を使用し,
変換値の表示は小数点第1位までとすること。



角度を−90〜90度まで5度ステップで変化させ,
そのときの正弦関数と余弦関数の値をディスプレイに並べて表示する
プログラムを作成しなさい。
なお,正弦関数と余弦関数の値は,小数点以下3桁で表示しなさい。


下記の指示にしたがって解答しなさい。

1 キーボードから1より大きい整数値nを入力して,
その階乗n!を計算し,結果を表示するプログラムを作りなさい。
その際,nが1以下の時には,
nが1より大きい値となるまで入力を繰り返し求めるようにする。
また,階乗の値は double 型とする。

n!=2×3×4×・・・×(n−1)×n

2 作ったプログラムをコンパイルし,正しく動作することを確認したら,
15!を求め,画面に表示された通りを答えなさい。
0020デフォルトの名無しさんNGNG
>>19
最初の問題だけです。
(defun yen$ (x &optional (rate 130))
(format t "~,1F~%" (/ x 130)))
0021デフォルトの名無しさんNGNG
>>19
すぐ上で「言語もちゃんと書けよ」って言われた直後にそれかい。
あと、画面に表示する課題がでてるけど、xlib? GTK+? Tcl/TK?
それとも、コンソール画面で * とかを表示して?
0022デフォルトの名無しさんNGNG
>>21
グラフで出力するとは書いてないし...
0023麻衣派NGNG


for(i=-90;i<=90;i+=(90+90)/5){
  printf("sin(%d):%.3f\n",i,sin(i));
  printf("cos(%d):%.3f\n",i,cos(i));
}


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


int p(int n)
{
  if(0==n)return 1;

  return p(n-1)*n;
}

int main()
{
  int n;

  do{
    scanf("%d",&n);
  }while(n<=0);

  printf("%d\n",p(n));

  return 0;
}




0024デフォルトの名無しさんNGNG
>>20の修正
(defun yen$ (x &optional (rate 130))
(format t "~,1F~%" (/ x rate)))
(defun inputyen ()
(yen$ (read)))
0025デフォルトの名無しさんNGNG
>20-24
http://pc.2ch.net/test/read.cgi/prog/1003156727/l50
0026デフォルトの名無しさんNGNG
>20-24
http://pc.2ch.net/test/read.cgi/tech/1009190994/l50
0027デフォルトの名無しさんNGNG
なるほど。言語はCだったか。>>26
他スレまでチェックしてなくてスマソ。(w
0028デフォルトの名無しさんNGNG
>>20-24
http://pc.2ch.net/test/read.cgi/unix/1010749468/495-

こりゃアレだな。どのスレがどういう反応を返すか確認するテスト。
0029デフォルトの名無しさんNGNG
>確認するテスト
なるほど。つまりこの後に本命が来るわけか。

# C言語系のBBSにもポストしてるんだろーな。きっと
0030煽りNGNG
>>29
> # C言語系のBBSにもポストしてるんだろーな。きっと
fjにポストしたらどうなるんだろう
0031デフォルトの名無しさんNGNG
>>23
この解答は正しくありません。
0032ひろゆきNGNG
えれな、喋り方がいつもと違うぞ。
語尾のぁぃぅぇぉ具合が足りない。

誰も怒らない。普段の喋り方でいい。
0033麻衣派NGNG
ごめんラジアンね。
0034デフォルトの名無しさんNGNG
>>6
お姉さんのスレ・・・わざとなのか?
あのお姉さんの頼りなさ・・・。
なんか自作自演っぽい所も含まれてるし・・・。
怜スレ作ったのも同一者なのだろうか。
0035デフォルトの名無しさんNGNG
>>34
もともとネタスレだったと思われ
0036デフォルトの名無しさんNGNG
>>33
それだけじゃないよ。
0037えれなNGNG
>33
>>5度ステップで変化させ
>i+=(90+90)/5
は、 i+=5だよっ。
0038デフォルトの名無しさんNGNG
>>37
まだ、まだっ!
0039デフォルトの名無しさんNGNG
C言語で簡易版の商品管理システムプログラムを
ご教授ください。
プログラムの仕様は以下のとおりです。
-------------------------------------
1、概要

このプログラムは登録、更新、削除、復旧、終了、表示、保存の機能を持った商品管理プログラムです。
各情報は商品コード、価格、商品名、登録日、有効フラグを持っています。
登録データは不定数である為、メモリアロケーションを行います。
削除されたデータは削除テーブルに移動し、商品コードを開放する。
削除テーブルのデータは普及コマンドで普及された場合に新しい商品コードで再登録する。

2 商品のデータテーブル情報
商品コード:一意(10〜100)
価格(100〜1000万)
商品名(半角50文字まで)
登録日
    →以上のデータを構造体商品情報として設定する。

3 起動オプション

引数として、データファイルを指定する。
ファイルが指定された場合はファイルの内容をテーブルに展開する。

4 機能
<コマンド>
add (A) : 登録    change (C) : 更新
delete (D) : 削除   undelete (U) : 普及
end (E) : 終了    print (p) : 表示
       save (S) : 保存    read (R) : 読出
       help (?) : コマンド表示

<
0040デフォルトの名無しさんNGNG
↑
続き
<登録> 商品名、価格を入力
入力された情報が正当化判定する。
商品情報テーブルの領域を確保する。
入力された情報を設定する。
商品コード、日付を取得し、設定する。

<更新> 商品コードを入力し、商品名、価格の入力を行う。
入力されたコードが正当化判断する。
入力されたコードのテーブルを入力された商品名と価格で上書きを行う。
登録日を取得し上書きする。

<削除> 商品コード名を表示する。
入力されたコードのテーブルを削除テーブルに移動する。
入力されたコードのテーブルのフラグを未使用にする。

<復旧>
削除済み情報を表示する。
情報番号の入力を求める
新しいコードを取得設定する。

<終了> プログラムの終了を行う。メモリの開放なども行う。
入力情報を保存するか聞く
保存ファイル名の入力を求める。

<表示>
抽出条件(等しい、以上、以下)を設定し、対象項目を設定
ソート項目の設定、昇順、降順を設定する。25件毎に入力待ちを行う。
入力項目を抽出条件で検索する。
検索結果のソートを行い、25件ごと表示する。

<保存>
ファイル名の入力を求める。
現在のデータを保存する。

<読出>
ファイル名の入力を求める。
ファイルからデータを読み出す
0041デフォルトの名無しさんNGNG
↑
続き
5 画面イメージ
起動後最初に画面をクリアする。

<起動画面>
商品管理システムVer0.01
コマンドを入力してください(HELPは?)

<登録>
登録:商品名を入力してください  XXXX
登録:価格を入力してください(半角) xxx

<更新>
更新:更新する商品コードを入力してください(半角) xxxx
更新:商品名を入力してください。  XXX
更新:価格を入力してください(半角) xxx

<削除>
削除:削除する商品コードを入力してください XXXX

<復旧>
番号 商品名 価格
---------------------------------
XXXX XXXXXX XXX
XXXX XXXXXX XXX

復旧する番号を入力してください(キャンセルはC) XXXX

0042デフォルトの名無しさんNGNG
↑
続き
<表示>
表示:抽出項目番号を入力してください
1 商品コード
2 商品名
3 価格
4 登録日
XXXX

表示: 抽出条件を入力してください
1 以上
2 等しい(商品名は等しいのみ)
3 以下
XXXX

表示:条件を入力してください XXXXXXX

表示:ソート項目番号を入力してください
1 商品コード
2 商品名
3 価格
4 登録日
xxxxx
昇順、降順を選んでください
1 昇順
2 降順
xxxx
画面をクリアする

商品コード   商品名 価格 登録日
------------------------------------------------
xxxxxxx XXXXXXXXX xxxxx xxxxxxxx
xxxxxxx XXXXXXXXX xxxxx xxxxxxxx

次の情報を表示します。リターンを押してください。

<終了>
入力データを保存しますか?
ファイル名を指定してください  XXX

<保存>
ファイル名を指定してください  XXX


<読出>
ファイル名を指定してください  XXX


0043デフォルトの名無しさんNGNG
>>39
で、あんたは何が分からないの?
というか何なら分かるの?
どこまでプログラム作った?
問題文はちゃんと読んだか?

とりあえずな、氏ね。
(´-`).。oO( >>1に丸投げヤメロとは書いてないな、丸投げありかい… )
0044デフォルトの名無しさんNGNG
>>39-41
環境を教えてください。
0045デフォルトの名無しさんNGNG
>>43
氏ねは無いだろう。

でも他は同意、結構面倒だと思うんだけど
全部やれと言うの?>>39
0046デフォルトの名無しさんNGNG
>>39-42
DBはSQL鯖とか使っていいの?
つーかOSは?
ここら辺教えてくんないと、何も教えれないのだが。
0047!= 43NGNG
>>45
> 氏ねは無いだろう。
いーや、逝って良し。
丸投げにも程がある。つーか、銭出してやって貰え。
0048デフォルトの名無しさんNGNG
すみません、皆様。
もっと勉強して出直します。
ちなみに環境はUNIXです。DBは使用しません。
まことに申し訳ありませんでした。
0049デフォルトの名無しさんNGNG
>>47
確かに。
スレタイもあくまで"手伝おっか?"であって"私がやってあげる"
ではないからな。
0050デフォルトの名無しさんNGNG
>>39-43

まずこんな構造体を作る。

typedef struct t_data{
  char  m_id;     // 商品コード
  int  m_price;    // 価格
  char  *m_name;    // 商品名
  int  m_y,m_m,m_d;  // 日にち
}TABLE;

あとはこれに対して、入出力処理を行う。
分かった?
0051デフォルトの名無しさんNGNG
>>50
>char  *m_name;    // 商品名
よりも
char  m_name[];    // 商品名
のほうがいいような気がするんだけど・・・
ポインタにする意図がわからん。
これって俺が未熟なだけ?
005243NGNG
>>50
> 商品名(半角50文字まで)
なんで、
char m_name[51];
の方が、管理が楽ちんかな。

…という風に、問題切り分けて聞けば
ここに居る暇人は答えてくれるのよ>>1
005343NGNG
…なんで1やねん。
ここは単発質問スレ違うわー!>漏れ

×ここに居る暇人は答えてくれるのよ>>1
○ここに居る暇人は答えてくれるのよ>>39
0054デフォルトの名無しさんNGNG
>>51-52
メモリが有効に使えるから。
新しいレコード作成時に
・・・
data->m_name = malloc(sizeof(name));
・・・
とするの。
16ビット開発がメインだったので、どうしてもメモリの無駄遣いが許せない。
0055デフォルトの名無しさんNGNG
>>54
> 16ビット開発がメインだったので、どうしてもメモリの無駄遣いが許せない。
気持ちはわかる。
ただ文字列を配列に格納しておけば、ファイルとの入出力も楽だしなぁ…
メモリに置かずにファイル操作を主体にして、必要分を読み込むとか。
どんどん本題と外れてく…
005651NGNG
>>54
char m_name[]; で宣言してreallocするのはだめですか?
0057デフォルトの名無しさんNGNG
>>56
あなたの意図するところと外れているかもしれないけど、
スタックとヒープって分かる?
005851NGNG
>>56
だめじゃん、俺何を言ってるんだろう。
激勘違いです。
005951NGNG
reallocは取得したメモリブロックの先頭のポインタを返すわけで、
char m_name[51]にはポインタを格納する場所が無い・・・
m_nameは配列の先頭のポインタを返すだけで、
ポインタを格納できる変数では無い・・・
と、言うことでいいのでしょうか?
0060デフォルトの名無しさんNGNG
>>59
58で“だめじゃん”と書いたのは、

char m_name[10];
m_name = realloc(m_name, 51);

まさかこんな感じのコードがコンパイル通らなかったから、
とか言わないよね?

char* ptr = (char*)realloc(m_name, 51);
これならコンパイル通っちゃうけど、駄目というのは分かるよね?
0061デフォルトの名無しさんNGNG
後々ソートするんなら、リスト構造作っといたほうがイイか?

typedef(略
  struct t_data *next;
(略
0062デフォルトの名無しさんNGNG
昇順・降順があるなら双方向リストか?

typedef(略
  struct t_data *next,*prev;
(略
0063デフォルトの名無しさんNGNG
じゃあさあ、もうここには迷惑かけられないから、
↓俺のサイト
http://www.geocities.co.jp/SiliconValley-Sunnyvale/2206/
006451NGNG
>>60
>m_name = realloc(m_name, 51);
m_name は左辺値じゃないから・・・ですよね?

>char* ptr = (char*)realloc(m_name, 51);
reallocはmallocとかcallocとかで取得したポインタ用に作られてるからですか?

的外れな答えだったらごめんなさい。
マジでC初めて一ヶ月にも満たない初心者なんです。
もし違ったら、どこが違うのか教えてください。
0065デフォルトの名無しさんNGNG
>>64
不正解。
0066デフォルトの名無しさんNGNG
m_name[]で宣言されるとスタック(静的)領域
alloc系はヒープ(動的)領域にメモリが確保される
0067デフォルトの名無しさんNGNG
すいません、VBAで「もしxが整数なら」というのは
どう表現すればいいのでしょうか?
If TextBox1.value= ??
また、テキストボックス内の20000000のような数字を
20,000,000のようにカンマ表示にするにはどう記述すればいいのでしょうか?
0068デフォルトの名無しさんNGNG
>>64
> >m_name = realloc(m_name, 51);
> m_name は左辺値じゃないから・・・ですよね?
m_nameに代入できない、という意味ではその通り。

> >char* ptr = (char*)realloc(m_name, 51);
> reallocはmallocとかcallocとかで取得したポインタ用に作られてるからですか?
まぁ、そういう事。
realloc()に渡すポインタには、ヒープに確保したメモリブロックを指す物を使う。
先のカキコ見て、ちと心配になったでおせっかい。
006951NGNG
>>66
ヒープ領域って、
newとdeleteとかのアレですか?

スタック領域って、
char a[]="abc";
とかやったときの、"abc"っていう文字列定数が入るところですよね?
ありゃ?そういえば、staticとかの宣言をした変数はどっちに入るんだろう・・・
うう、だめだ。知識無さ過ぎる。
0070デフォルトの名無しさんNGNG
>>67
if textbox.value = int(textbox.value) then

カンマ表示
stringに変換して、右よりスキャンしながらカンマを挿入していく。
0071デフォルトの名無しさんNGNG
で、>>39は来ないのか?
0072デフォルトの名無しさんNGNG
そのnewがmallocを呼んでいたりする。
0073デフォルトの名無しさんNGNG
>>69
> うう、だめだ。知識無さ過ぎる。
うん、でも始めて一ヶ月なら仕方ないよ。
とりあえず、“文字列定数”はスタックには置かれない。
スタックに確保されるのはここでいえばa[]とかのローカル変数ね。
(そういう意味で逝ってるのだと思うけど)
本読んで勉強しちくり。
007451NGNG
皆さん、やさしい。
スレをあげまくって一方的に質問してるにもかかわらず、
愚かな厨房に対してこんなに親切に教えてくれて・・・感激です。
プログラム板って凄いんですね。
(今までプログラムいじってなかったのでこの板を訪れることは無かったのです)
2chってなんか、どす黒い印象があったんですけど、
この板は凄いです!そういえば、Unix板とかも伝説になってますし、
プログラマの人たちって本当に偉大ですね。
私もプログラマの卵として、誇りに思いたいです。
そして、早く偉大な先輩たちに追いつけるよう、よりいっそう努力します。
今日は本当にありがとうございました。

最後は穏やかにsage...
0075デフォルトの名無しさんNGNG
>>67,70
VBAでもFormat使えるでしょ?
007667NGNG
>>70>>75
ありがとうございます。
Formatって
MyStr = Format(5459.4, "##,##0.00")みたいなやつですよね?
再度の質問で恐縮ですが、Excelのセルと同じように
1の位から3桁ごとにカンマをつけるにはどうすれば良いでしょうか。
0077デフォルトの名無しさんNGNG
すいません、PHPで複利計算のプログラムの宿題が出たのですが
サッパリ方法がつかめません。

PHPエキスパートの方、是が非にご援助お願いします。

「100万円銀行から借りると一ヶ月で一割の利子がつく。一年経ったら
金額は幾らになるか?」

フォームとかはいらないので計算結果のみが
表示されれば大丈夫です。PHP習って50日も経ってないのに・・・
0078デフォルトの名無しさんNGNG
>>77
それって複利計算?
0079デフォルトの名無しさんNGNG
>>78は無視してください。酔っ払ってました。
0080えれなNGNG
>67
GetCurrencyFormat ,GetNumberFormat API
みたいなのを使ったら便利かも。

>77
<?
 $br = 100*10000;
for( $i=0; $i< 12; $i ++)
  $br += $br/10;
 echo "$br";
?>
でいいのかな?
0081デフォルトの名無しさんNGNG
echo round($br);
の方がいいかもよ。
0082デフォルトの名無しさんNGNG
ぐるが「えれな・・・頼む、えれな・・・」
ズダーン・・・

ぐるがは逝った。
0083PHP厨房77ですNGNG
>>80
そ、それです!!
ワタシも説明不足でした。

宿題提出して逝って来ます

100万円→110万円→121万円→133,1万円
複利方式でした・・・
0084麻衣派 ◆COx/Mai. NGNG
5回でまわすのかと思ってたよ…。
これでどうですかっ!!>>37

for(i=-90;i<90;i+=5){
  printf("sin(%d):%.3f\n",i,sin(i*3.14/180));
  printf("cos(%d):%.3f\n",i,cos(i*3.14/180));
}
0085デフォルトの名無しさんNGNG
M_PI使え。
0086デフォルトの名無しさんNGNG
>>85
同意。

>>84
1問目はそんなもんでしょう。
2問目は.....。
問題は良く読みましょうねっ!
0087ダダダダーん!NGNG
どうかこれも人助け。クラ−メルの公式をCでやってください。こら、そこのあなた簡単っだって笑わない!
0088麻衣派 ◆COx/Mai. NGNG
>>86
>その際,nが1以下の時には,
ごめーん…。
0089えれなNGNG
なにがわからないのかな?
行列?行列式?公式?
Cで表現するところ?

締め切り間近で、答えがほしいのかな?
ところで、どういうふうに入力するの?
0090デフォルトの名無しさんNGNG
>>88
おおっ! それは気付きませんでした。
それに、謝らなくていいです。楽しませてもらってるので。
(問題を書きこんだ人はどう思ってるか知らないけど。)
0091デフォルトの名無しさんNGNG
int main()
{
  int n;
  while (scanf("%d", &n) == 1) {
    if (n > 0) {
  double fact = 1.0;
  int i;
      for (i = 0; i < n; fact *= ++i);
      printf("fact(%d) = %.0f\n", n, fact);
      return 0;
    }
  }
  return 1;
}
0092デフォルトの名無しさんNGNG
>>91
88 見た?
0093ダダダダーんNGNG
見ましたー!完璧っす!感謝感激雨あられ!!!!!先生ありがとー!
0094麻衣派 ◆COx/Mai. NGNG
>>92
見たよっ。
double型かー。
0095デフォルトの名無しさんNGNG
>>92
スマソ。
    if (n > 1) {
0096ダダダダーんNGNG
締め切りやばくて答えがほしいんです。Cあらわせないんです。キーボードでおねがいします。
0097ダダダダーんNGNG
93は間違いです。ごめんなさい。
0098デフォルトの名無しさんNGNG
>>96
おまえはもう書き込むな。
仕様(問題)の説明もできないのに、教えろ教えろって連呼しても無駄だよ。
っていうか迷惑。
0099デフォルトの名無しさんNGNG
宿題を作るプログラムを教えてください。
0100えれなNGNG
>99
こんな感じかな?

int main()
{
printf("宿題は以下の通り: 宿題を作ること。\n");
return 1;
}

0101デフォルトの名無しさんNGNG
http://imaginary.homeip.net/math-qa/cramer.html

>「Cramerの公式」はたんなる解の表現形式にすぎず、間違ってもこの公式で解を求めようというものではない
0102デフォルトの名無しさんNGNG
>>99

printf("宿題\n");
while(1){
printf("%d*%d=",rand(),rand())
}
0103デフォルトの名無しさんNGNG
>>87 C++でもいいなら

TVector Cramer(TMatrix A, TVector B)
{
TVector result( 0 );
double dA=A.determinant();
if (dA==0) return result;
result.SetLength(B.size() );

for(int i=0 ; i<B.size() ; i++)
 {
 TMatrix C= A.displaceCramer(B,i) ;
 result.setValue( i , C.determinant()/dA );
 }
return result:
}
0104デフォルトの名無しさんNGNG
>>101
97を弁護する気は全くないが、一応言っておくと、
確かにクラメルの公式で解を求めるのはダルイが、
計算機でやるぶんには全く問題無い。

>>97
宿題はあきらめて、まともに質問できるくらいの知識を得てこい。
0105デフォルトの名無しさんNGNG
こんばんは、以前アドバイスいただいたものです。
その後先生に提出して、アドバイスをもらい、コンパイルはできたのですが、
プログラムとして正常に動くのかどうかは判断できません。
どなたか評価していただけないでしょうか?
特にaはcharで宣言しましたが、これでいいのかどうか。
また、iの使い方などをチェックしていただけたらと思います。

#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE *fp;
char a;
int da[100];
double hi[100];
double lo[100];
int i, j, max, min, n;



if ((fp = fopen("Temp.dat","r"))==NULL) {
printf("file open error!!\n");
exit(1);
}

i = 0;
a = fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
while ( a != EOF ) {
++i;
a = fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
}

max = 0;
for (i = 1; i < n; i++) {
if (hi[max] < hi[i]) {
max = i;
}
}
printf("最高気温, 日付=%g\n, %g\n", hi[max], max);

min = 0;
for (j = 1; j < n; j++) {
if (lo[min] > lo[j]) {
min = j;
}
}
printf("最低気温, 日付=%g\n, %g\n", lo[min], min);

fclose(fp);
}

0106デフォルトの名無しさんNGNG
>>105
 いや、動くかわからないんじゃなくて、ためしに動かしてみるものじゃ
ないのか? こういうデバッグ作業も課題のうちだよ。
 何十年前みたくコンパイルして実行したら何時間も待たないといけない
ような時代じゃないんだし。
0107名無しNGNG
値が割り当てられていない
ローカルな変数 'n' に対して参照が行われました。
0108デフォルトの名無しさんNGNG
>>106

ありがとうございます。
確かにおっしゃる通りだと思います。
楽しようと考えてしまいました。

ですが、実際にdatファイルがあり、それを読み込むというの習っていないし
テキストにも載っていないので、ヒントだけでもいただけないでしょうか?
temp.datを作って、デスクトップに置いたのですが、読み込まれませんでした。

>>107

ありがとうござます。
nは使っていないので削除しました。
0109デフォルトの名無しさんNGNG
ちなみに問題は以下です。
********************************
次のように、一行に日付けとその日の最低気温、
最高気温が記録されたファイル(ファイル名:temp.dat)があるとする。

_____________________

1  10.0  30.0
2  12.1  28.8
3  11.3  25.2
4  10.5  27.4
5  13.1  28.0
・・   ・・・・    ・・・・
_____________________

このファイルを読み込んでファイルの中での最高気温が最も高い日の
日付と最高気温、
同様に最も低い最低気温とその日付を表示するプログラムを作成せよ。
0110デフォルトの名無しさんNGNG
>>108
Temp.datの中身はちゃんと書いた?
空のファイル作ったって読み込めないよ。
あとデスクトップに作ってもだめかもね。
0111デフォルトの名無しさんNGNG
>>108
ファイルから読めないんだったら、
double hi[100]={1.0, 2.0, ... };

のようにすればいいよ。
nについては....。
もっとよく考えてみたら?
0112デフォルトの名無しさんNGNG
>>105
> 特にaはcharで宣言しましたが、これでいいのかどうか。
駄目。
0113デフォルトの名無しさんNGNG
>>110

はい。書きました。
どこに置けば。。。

>>111

その方法で考えたら訳わからなくなってしまいました。
できればファイルを読みこむかたちで作動させたいです。

nは使ってましたね。ご指摘ありがとうございます。
あせっております;;

>>112

えっっ;;
これはどういう宣言をしたらいいのでしょうか?
配列でもないですし、、。
もしかして、このプログラム、もっと大きな部分で間違ってます?
0114デフォルトの名無しさんNGNG
>>113
実行可能ファイルはどこに?
それと同じ場所においておけばいいとおもう。
0115デフォルトの名無しさんNGNG
>>113
とりあえず、ここをみましょう。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fscanf.3.html
0116デフォルトの名無しさんNGNG
吉祥寺にある大検・大学受験予備校の中央高等学院
ここは、完全に狂ってる。
授業料は一年分一括前払いなので、
金が入れば、生徒は要らない
金を振り込んだら、何とかその生徒を辞めさせようと
講師どもが、あの手、この手でイヤガラセをしてきますね。
セクハラはもちろん、脈絡の無い罵倒は日常茶飯だね。
酒臭い講師もいるし・・・ 人生の最果て中央高等学院
学歴詐称、経歴詐称、合格実績詐称、デタラメ授業、
http://www.chuo-school.ac/

http://chs-f.com/index.html 中央高等学院福岡校
司法浪人の田中校長は ↑ また司法試験に落ちましたが
HP上では下らない見栄を張っています
0117C言語教えてくださいNGNG
次の問題わかる人いますか?
15個以内の点数を入力し、その最高点・最低点・合計点・平均点を出力する関数
(tensu)を作成せよ。ただし、点数=9999の入力で終了とする。
条件 while文を使用すること。
入力するデータ 80,75,98,29,35,50,100,0,61,88
出力結果 最高点 =====>   100点
     最低点 =====>    0点
     合計点 =====>   616点
     平均点 =====>   61.6点
0118デフォルトの名無しさんNGNG
>>117
丸投げするやつには教えてやんない。
0119デフォルトの名無しさんNGNG
> 次の問題わかる人いますか?

試してるのか?(w
0120C言語教えてくださいNGNG
こんな簡単な問題も分からないんですか?とても本題には入れませんね。
ではさようなら。
0121デフォルトの名無しさんNGNG
>>117
#include <stdio.h>
int main(void)
{
  printf("出力結果 最高点 =====>   100点\n");
  printf("     最低点 =====>    0点\n");
  printf("     合計点 =====>   616点\n");
  printf("     平均点 =====>   61.6点\n");
  while(0);
  return 0;
}
0122デフォルトの名無しさんNGNG
>>120
さようなら。

それにしても 117 の問題文はちょっと変ですね。
即興で作ったのだろうか?
0123デフォルトの名無しさんNGNG
>>121

> while(0);

にワラタ
0124デフォルトの名無しさんNGNG
>>121
ワラタ!

入力がないけどね。
0125デフォルトの名無しさんNGNG
>>120
いつも学校でそう言われてるのか。(w
プログラミングが苦手だったら、LOGOからはじめるといいぞ。
0126デフォルトの名無しさんNGNG
do{
 ・・・・
}while(0);
にすれば何ら問題無い、全然ひねくれてないね   w
0127デフォルトの名無しさんNGNG
>120
こんな簡単な問題で試そうと思ったのですか?話になりませんね。
ではさようなら。
0128117NGNG
>>124
入力も入れてみた

static intint input(int *s, int n) { int i; printf("入力するデータ ");
 for(i = 0; i < n && scanf("%d,", &s[i]) && s[i] != 9999; i++);return i; }
static int max(int *s, int n) { int i, r = INT_MIN;
 for(i = 0; i < n; i++) if(r < s[i]) r = s[i]; return r; }
static int min(int *s, int n) { int i, r = INT_MAX;
 for(i = 0; i < n; i++) if(r > s[i]) r = s[i]; return r; }
static int total(int *s, int n) { int i, r = 0;
 for(i = 0; i < n; i++) r += s[i]; return r; }
static double avg(int *s, int n) { return (double)total(s, n) / (double)n; }

int main(void)
{  int s[15], n;
  n = input(&s[0], sizeof s / sizeof *s);
  printf("出力結果 最高点 =====>%6d\n", max(s, n));
  printf("     最低点 =====>%6d\n", min(s, n));
  printf("     合計点 =====>%6d\n", total(s, n));
  printf("     平均点 =====>%6.1lf\n", avg(s, n));
  while(0);
  return 0;
}
0129デフォルトの名無しさんNGNG
>>128
いいね!
0130105NGNG
何度もすいません。
105です。

>>114

実行可能ファイルというのはなんでしょう?
環境としては、学校のPCでテラタームを使って
プログラミングしております。
programfiles>Ttermpro
の中には入れることができませんでした。

>>115

読みました。
数を返すということはintでいいのでしょうか。
0131デフォルトの名無しさんNGNG
>>128

> 関数(tensu)を作成せよ。
0132デフォルトの名無しさんNGNG
>>130
テラタームっていうのは、別のパソコンにログインして、そのパソコン
を操作するソフト。
面倒なので説明は省くが結論としては、テラタームでプログラム書いた
のと同じように、テラタームでデータファイルつくりなされ。
0133デフォルトの名無しさんNGNG
>>130
> 実行可能ファイルというのはなんでしょう?
コンパイルが正常終了したときにできるファイル
Unixだとa.out Winだとexeファイルのこと
0134デフォルトの名無しさんNGNG
>>130
ということは、Unix系のOSですね?
プログラムをコンパイルすると実行形式のファイルができるのですが、
あなたの使っている環境にはインタプリタでも入っているのでしょうか?

データファイルはカレントに作ればよいでしょう。
それから fscanf ですが、返り値の意味はわかりますか?
0135105NGNG
>>132

おおありがとうございました。
muleでtemp.datを作ったら、実行できました。
結果からみると
最高気温, 日付=15
, 4.24399e-314
最低気温, 日付=5
, 0
ミスがあるようなので、考えてみます。
datファイルは以下のとおり

1 15 5
2 14 4
3 13 3
4 12 2
5 11 1

ともあれ一歩前進して嬉しいです。
0136>NGNG
#include "stdafx.h"
#include "math.h"

#define EPS (0.00001)
#define N (9)

void cpy(float a[N][N],float b[N][N],int n)
{
int i,j;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
a[i][j]=b[i][j];
}

void del(float a[N][N],int k,int n)
{
int i,j;
for (i=k; i<n; i++)
for (j=0; j<n; j++)
a[i][j]=a[i+1][j];
for (j=0; j<n; j++)
for (i=0; i<n; i++)
a[i][j]=a[i][j+1];
}

float dat(float a[N][N],int n)
{
int k;
float ret=0.0,e[N][N];

if (n==2)
return a[0][0]*a[1][1]-a[0][1]*a[1][0];
for (k=0; k<n; k++){
cpy(e,a,n);
del(e,k,n);
if (k % 2)
ret -= a[k][0] * dat(e,n-1);
else
ret += a[k][0] * dat(e,n-1);
}
return ret;
}

0137続きNGNG
int main(void)
{
int n,i,j,k;
float a[N][N],b[N],c[N][N],d;

printf("n=?");
scanf("%d",&n);
if (n > N){
printf("%d > %d .\r\n",n,N);
return 0;
}
for (i=0; i<n; i++)
for (j=0; j<n; j++){
printf("a%d%d=?",i+1,j+1);
scanf("%f",&(a[i][j]));
}
for (j=0; j<n; j++){
printf("b%d=?",j+1);
scanf("%g",&b[j]);
}

d=dat(a,n);
if (fabs(d) < EPS){
printf("|a| = 0\r\n");
return 0;
}
for (k=0; k<n; k++){
cpy(c,a,n);
for (j=0; j<n; j++)
c[k][j]=b[j];
printf("x%d=%g\n",k+1,dat(c,n)/d);
}
return 1;
}
0138105NGNG
>>133

ありがとうございました
0139>>87NGNG
>>136-137
作ってみた。遅かったみたいね。スマソ
0140105NGNG
>>134

いいえ、OSはウィンドウズです。
0141デフォルトの名無しさんNGNG
>>140
「あなたの使っているPCが」ですね?
0142105NGNG
あっそうです。

>データファイルはカレントに作ればよいでしょう。
>それから fscanf ですが、返り値の意味はわかりますか?

学校が時間切れのようなので、
また、明日にでも考えてみます。
0143105NGNG
みなさん、ありがとうございました。
0144デフォルトの名無しさんNGNG
>>133
>コンパイルが正常終了したときにできるファイル
正確に言うとコンパイルとリンクね。
0145デフォルトの名無しさんNGNG
puts("心地の良い朝には名曲でもいかがか。\n"
    "http://www.geocities.co.jp/Milkyway-Orion/1524/fre12dqc.wav");
0146デフォルトの名無しさんNGNG
画像処理で顔画像から眉毛だけ抜き出すなんかいい方法ありませんか?
0147デフォルトの名無しさんNGNG
とりあえずどこか無くしてみて、なんかちょっと怖かったら、そこはまゆげです。
それ以外を無くすと、ものすご怖いです。
0148デフォルトの名無しさんNGNG
>>147
わかりやすい!
けどコンピュータで怖いかどうか判断するのは眉毛だけ抜き出すのよりも難しいと思うわれ。
0149デフォルトの名無しさんNGNG
チン毛じゃなかったら眉毛。
0150150NGNG
う〜ん、age
0151麻衣派 ◆COx/Mai. NGNG
>>146
目を捜す。(白黒白のパターン?)
その上のほうにある眉毛色っぽい領域がそれ。
逆立ちしているときは、、、
どうしよう…。
0152生徒BNGNG
先生、宿題じゃないけど質問です!

文字列をunsigned char型に「数値として」格納したくて下のようなプログラム書いたのですが
無駄が多い気がするので、よろしければご指導おねがいします!言語はC/C++です!

char num[]="ff"; //入れたい数値。
char head[]="0x";
strcat(head,num);

unsigned long numul=strtoul(head,NULL,NULL);
unsigned char numuc=(unsigned char)numul;
0153麻衣派 ◆COx/Mai. NGNG
>>152
なにをしたいのかよくわからないけど…
unsigned char n=0xff;
じゃ、ダメなの?

>>151
目をつむっているときは、、、
どうしよう…。
0154デフォルトの名無しさんNGNG
>>152
無駄とかなんかそんなことより
> strcat(head,num);
これはいいのか?
0155生徒BNGNG
>>153,154
すいません。ここではchar num[]="ff"; と固定して書いたんですけど、
ホンとはこのnumにいろんな値が入ってくるのですよ。
・・・で、strtoulで16進と認識してもらうために"0x"つけたのですが・・・
やばいっすかねぇ・・・。
0156デフォルトの名無しさんNGNG
sscanf
0157えれなNGNG
undumpって事かな?
isxdigitと組み合わせて、ループまわした方が簡単そう。

0158麻衣派 ◆COx/Mai. NGNG
>>152
あー、文字列で表された数字ね。
でもそれってstrcat()していいんですか。

それと、strtoulの第3引数はintです。
0159デフォルトの名無しさんNGNG
>>154 たしかに strcat が head[]の配列境界を越えて
書き込んでしまうね。

たぶん >>152 の期待する添削結果は
char num[] = "ff";
unsigned char numuc = strtoul(num, NULL, 16);
だと思うな。
0160生徒B NGNG
>>154-159 ありがとうございます。おかげさまで出来ました!
最終的には159さんの方法でやらせていただきました。

>>154
ご指摘の通りです。うっかりしてました。

>>156
sscanf(num,"%x",numuc);でうまくできそうですね。ありがとうございます。

>>157
undumpっていうんですか。・・・・知りませんでした。鬱
0161デフォルトの名無しさんNGNG
宿題で検索サイトを作れと言われたんですけど
何から始めればいいのかわかりません。
まず最初に何をすればいいのかを誰か教えてください。
0162デフォルトの名無しさんNGNG
>>161
「何の」検索サイトを作れと言われたのか。
それがわからないと誰もアドバイスしようもない。
また、それは「何の」授業の中でいわれたのか。
C の授業中に言われたのと perl の授業中に言われたのじゃ全然違う。
0163SINGNG
低能プログラマー共、こんな所で油売ってないで仕事しろ
屑
0164デフォルトの名無しさんNGNG
>>163
自称SIの実態は屑セールスマンな人ですか?
情死す板にでもお帰りやがりください。
0165デフォルトの名無しさんNGNG
>>163
あんたもナー
0166743NGNG
#include<stdio.h>
#include<math.h>
int n=10;
int func(int n){
if(n==1) return 1;
else return(n*func(n-1));
}
double func1(double x){
int i,a;
double z=1.0;
for(i=1;i<=n;i++){
a=func(i);
z+=1.0/a*pow(x,i);}
return z;
}
main(){
double x,z;
printf("please input x:");
scanf("%lf",&x);
z=func1(x);
printf("f(x)=%lf",z);
}
はeのx乗をもとめるものだがnがでかくなるとなぜオーバーフローするのか?
おしえてちょ。
0167デフォルトの名無しさんNGNG
型の上限を越えるから
0168743NGNG
ダブルは何桁までだっけ?
0169 NGNG
>>168
13桁だYO
0170デフォルトの名無しさんNGNG
ソフトを作りました。公開するときにジャンルを書きたいと思います。
「メモリクリーナとシステムリソースの表示・アラーム機能etc」などの
機能をもったソフトはどのようなジャンルに分けられるのでしょうか?
具体的なジャンル名などありましたら教えてください。
0171デフォルトの名無しさんNGNG
ユーティリティ
0172105NGNG
皆さんのおかげで、どうやら完成したようです。
本当にありがとうございました。

もちろん参考資料として2ちゃんねるプログラム板を挙げておきます。

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

#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE *fp;
int k,a,n;
int da[100];
double hi[100];
double lo[100];
int i, j, max, min;



if ((fp = fopen("temp.dat","r"))==NULL) {
printf("file open error!!\n");
exit(1);
}

i = 0;
a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
while ( a != EOF ) {
++i;
a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
}

max = 0;
for (k = 1; k < i; k++) {
if (hi[max] < hi[k]) {
max = k;
}
}
printf("最高気温, 日付=%g\n, %d\n", hi[max], max+1);

min = 0;
for (j = 1; j < i; j++) {
if (lo[min] > lo[j]) {
min = j;
}
}
printf("最低気温, 日付=%g\n, %d\n", lo[min], min+1);

fclose(fp);
}

********************************************************
最高気温, 日付=15
, 1
最低気温, 日付=1
, 5
0173デフォルトの名無しさんNGNG
だからなんで、一旦配列にしまうんだろう。
それから、最低気温と最高気温の表示、まちがってるじょ。
da[i]は、どこへいっちゃったんだ?
0174146NGNG
考えてくださってどうもありがとうございます。

目とか眉とか口とかそれ以外(鼻の穴とか)を
黒い部分(暗い部分)としては認識できるんですけど、
それらをどうやったら眉とかに分類してくれるんでしょうか?
0175デフォルトの名無しさんNGNG
>>172
リファクタリングしてみようか
・同じことは2度書くな
・初期化、条件判定、カウントがあるならforの方がすっきり書ける
> i = 0;
> a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
> while ( a != EOF ) {
> ++i;
> a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
> }
for(i = 0; fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]) != EOF; i++)
  ;
また、これでaの変数はいらなくなる。
0176デフォルトの名無しさんNGNG
>>173
> だからなんで、一旦配列にしまうんだろう。
あとで平均気温とかの仕様追加が発生したらとか考えると
微妙な問題だな...
0177親切な人NGNG

ヤフーオークションで、幻の人気商品、発見!!!

今は無き「コピーガードキャンセラー」↓
http://page5.auctions.yahoo.co.jp/jp/auction/e5843828

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0178105NGNG
>>173,175

173さんいう配列にしてしまうというご指摘は、
175さんのご指摘と同じですか?

あとda[]が・・。
提出したのに・・(泣)
また送ろう、しょうがない。
↓なら完成ですよね。
**************
#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE *fp;
int k,a,n;
int da[100];
double hi[100];
double lo[100];
int i, j, max, min;



if ((fp = fopen("temp.dat","r"))==NULL) {
printf("file open error!!\n");
exit(1);
}

i = 0;
a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
while ( a != EOF ) {
++i;
a=fscanf(fp, "%d %lf %lf", &da[i], &hi[i], &lo[i]);
}

max = 0;
for (k = 1; k < i; k++) {
if (hi[max] < hi[k]) {
max = k;
}
}
printf("最高気温, 日付=%g\n, %g\n", hi[max], da[max]);

min = 0;
for (j = 1; j < i; j++) {
if (lo[min] > lo[j]) {
min = j;
}
}
printf("最低気温, 日付=%g\n, %g\n", lo[min], da[min]);

fclose(fp);
}
0179デフォルトの名無しさんNGNG
>>174
黒い部分同士の位置関係(他の部分との角度や距離)を、「典型的と思われる」データと比較するってのは、ど?
0180デフォルトの名無しさんNGNG
>>178
そんなこと言い出したらきりないよ。
そのうち、もうちょっとましなコードが書けるようになるよ。
(経験つめばね。)
0181105NGNG
>>180

そうですね。
がんばります。

長らくお世話になりました。
みなさんお元気で。
0182デフォルトの名無しさんNGNG
とある二つの四角形が重ならないようになるプログラムってどんな感じなんでしょう?
教えてください!C++でお願いします!
0183デフォルトの名無しさんNGNG
>>182
意味不明。

四角形が二つ与えられて、それが重なっているかいないかを判定したいのか?

それとも四角形を動かして、重ならないようにしたいのか?
そのときに何か条件はないん?

あと、自分でどれくらいまで考えたかも書くように。
0184デフォルトの名無しさんNGNG
>182
どんな感じと問われても…
割とシンプルだよね。
洗練されてるかどうかは、設計によるんじゃないかな。
そんな感じ。
0185デフォルトの名無しさんNGNG
△が重ならないように・・・・?

printf("△▽\n");

とか?
0186デフォルトの名無しさんNGNG

先生!!ちょっと俺の手に負えないので質問させてください

→Z
___________
          |     |
          >     |
          >R    |
          >      |       
          |     =C
          )     |
          )L    |
          )     |
_________|_____|

上の回路でR=10KΩ、L=20mH、f=10KHzとしたときに
C=10pfから500pfまで5pf感覚で変化させたときの入力インピータンスZと
Zが最大になるときのCの値をプログラムで求めなさいと言う問題なのですが…
できますか?



0187デフォルトの名無しさんNGNG
> 185
それだ!
って、そりゃ三角形だよ!! ヽ(`Д´)ノ
0188デフォルトの名無しさんNGNG
>>182
申し訳無いです、4角形を動かしてです。
ゲームとかで使うような押し合い判定って言うのかな?
そんなかんじです。
自分では、二つが重なっているかいないかを判定する所まではできたのですが・・
0189デフォルトの名無しさんNGNG
>>186
工業高校?電子基礎っぽい。
0190デフォルトの名無しさんNGNG
>>182
半年前くらいに似た奴をやったけど
もう、データ削除してしまった…
スマソ
0191デフォルトの名無しさんNGNG
>>189
はい、そうです
0192デフォルトの名無しさんNGNG
>>186
? 公式知ってんなら簡単だろ?
オレ、公式忘れちゃったもんねぇ〜。
0193191NGNG
一応大学なんですけど
落ちこぼれなんで高校生みたいなもんです
0194デフォルトの名無しさんNGNG
>>191
同じだね。学年は?
0195194NGNG
大学生か。
0196デフォルトの名無しさんNGNG
>>188
つまり、四角形を押して動かすってことか・・。
どのくらい物理的に正確にやる必要があるの?
0197デフォルトの名無しさんNGNG
>>186
Rのインピータンスは?
Lのインピータンスは?
このとき、RLのインピータンスは?
C=xとしたときの、Cのインピータンスは?
このときの、入力インピータンスは?

順に考えてみてください。
0198186NGNG
うーん…どうプログラミングしたらいいのかが分からないんですよ
例みたいなものもないし、先生は絶対教えてくれませんから
0199デフォルトの名無しさんNGNG
> 191
int zmax = 0 ;
int ans = 0 ;
for (int c = 10; c <= 500; c += 5) {
 int z = 公式(c);
 if (zmax < z) {
  zmax = z;
  ans = c;
 }
}

intでいいのかfloatやdoubleが必要なのかは氏らね。
画面に出すともファイルに吐くとも書いてないんで出力の事も氏らね。
0200デフォルトの名無しさんNGNG
>>198
お〜っと、重症ですねぇ〜。
あなた一度でもプログラム組んだことあるの?
0201デフォルトの名無しさんNGNG
とりあえずは…
0202デフォルトの名無しさんNGNG
>>198
この回路の入力インピータンスをあらわす式はわかるってこと?
じゃあ、まずいままでの最大のZを与える変数を用意しておく。
Zmaxと名前付けとくとする。で、これに十分小さい値をいれとく。
で、for文で、cを10から500まで5ずつ変化させて、そのときの入力
インピータンスZを計算させる。
このとき、ZがZmaxより大きければ、Zmaxを更新して、このときのCの値を
記憶しておく。
で、最後に記憶していたCを表示させればいい。

。。とここまで書いたら199氏がプログラム例示してくれてますね。
0203デフォルトの名無しさんNGNG
>>190
いえ、その心意気だけでありがたいです。

>>196
そんなに正確でなくともいいかと、指定されなかったものですので。
0204デフォルトの名無しさんNGNG
えれなたんってあんまし来ないね〜。
0205デフォルトの名無しさんNGNG
>>203
だったら、一番簡単なのは、Aを動かしてBと重なったときに、
BをAが動いたのと同じ方向に動かすとして、どれくらい動かせば
重ならないか計算すればいい。
0206デフォルトの名無しさんNGNG
>>203
と言うことは、一次元でもいいのかな?
この手のものは、位置情報を保存するための
仮想マッピングテーブルを用意するといいのでは?

四角はどうやって表現するつもり?
0207えれなNGNG
呼んだ〜?
x軸とy軸で分けて考えるといいよ。
+-------+
   +--------+
っていうのがあったら、重なってる部分だけ、どっちかの
四角形をずらしちゃう(半々でも、かたっぽを固定してもいいかな)。

(四角形が速度とかもってたら、その反対方向に、
速度に比例するように分配するとか。その場合は、
衝突で速度を交換したりするひつようもあるんじゃないかな)
0208デフォルトの名無しさんNGNG
重心を求めて互いに反対方向にずらせばいいんじゃねぇの?
0209186NGNG
とりあえず、>>199さん>>202さんの助言で
直列回路の場合の入力インピータンスは求められるようになりました
後は上記の図の場合どうすればいいか分かれば何とかなりそうです
>>199さん>>202さん
ありがとうございます

並列回路の場合のインピータンスの求め方が分かる方がいらっしゃいましたら
ぜひご教授ください
0210デフォルトの名無しさんNGNG
>>209

>>197を見てどこまでわかるか答えてみなされ。
まあ、AとBが並列だったら1 / (1 / A + 1 / B)
0211デフォルトの名無しさんNGNG
>210
複素演算の話でねーの?
0212デフォルトの名無しさんNGNG
(R+jωL)//(1/jωC)

j^2=(-i)^2=-1
a//b=1/(1/a+1/b)
ω=2πf
0213デフォルトの名無しさんNGNG
四角形の件にレス下さったみなさんありがとうございます!
これからじっくり考えて理解しようと思います。
どうもでした!
0214デフォルトの名無しさんNGNG
>>207
スレ作成者がsageでいいの?
っていっても"sage"でなしに" sage"だから関係ないのか。
0215214NGNG
関係あったみたいだね。
2chのシステムなら当然か。
0216デフォルトの名無しさんNGNG
01234
56789
幅5で上の様に並べる場合、x=n%幅 y=n/幅で済みますが、
0259
148C
37BE
6ADF
の様に斜めに並べる場合のスマートな式が何も思い浮かびません。
どなたか知恵を貸しては頂けませんでしょうか。
0217デフォルトの名無しさんNGNG
x += y
0218えれなNGNG
>216
こんなのかな?えれな、泥臭い方法しか思いつかないよ。

#include <stdio.h>
#define X 4
#define Y 5
int main()
{
 int x, y, yy,i=0;
 int p[Y][X];
 for( y=0; y<Y; y++)
  for( x = 0, yy=y; yy>0; x++,yy-- )
   p[yy][x] = i++;
 i=X*Y-1;
 for( y=Y-1; y>0; y--)
  for( x=X-1, yy=y; yy<Y; x--,yy++)
   p[yy][x] = i--;
 for( y=0; y< Y ; y++ ){
  for( x=0; x< X; x ++ )
   printf("%2x ",p[y][x] );
  printf("\n");
 }
}

0219えれなNGNG
あやや。ループの条件があやしいよ、、、
しかもXとYが離れすぎると破綻しちゃうし
こんどこそ、大丈夫かな?

#include <stdio.h>
#define X 7
#define Y 5
int main()
{
 int x, y, yy;
 int p[Y][X];
 int i = 0;
 for( y=0; y<Y+X; y++)
  for( x = 0, yy=y; x<X && yy>=0; x++,yy-- )
   if( yy < Y && x < X )
    p[yy][x] = i++;
   }

 for( y=0; y< Y ; y++ )
 {
  for( x=0; x< X; x ++ )
   printf("%2d ",p[y][x] );
  printf("\n");
 }
}

0220デフォルトの名無しさんNGNG
>>216
一番左の数は、n行目の時(n-1行目の左端+n)だ。
次の行のあたまの数未満の間は、(x(n-1)+1, y(n-1)-1)を繰り返せばいい。
半分まで配置したら、こんどは>>216の例でいうと6-9の対角線でひっくり返した座標でFから順に配置だ。
0221216NGNG
>>218-219 有り難うございます。
幅X・高さY時、n のx・y位置が欲しいのですが、
正直、最悪、その用な手法でiが一致したらbreakしようかと思っていました^;

なんとなく図にして眺めてみると、スマートな式で簡単に
求められる様な気がしてならなく、すっきりしません(;´Д`)
0222220NGNG
対角線じゃないな、180度回転だな。
0223216NGNG
>>220 どもです。。。現在理解&検証中(;´Д`)
0224220NGNG
はしょって書いたから、伝わりずらかったかな?
ま、わかんなかったら聞いてね、もっと丁寧に説明するから。
0225216NGNG
理解出来ませんでした。。。恥ずかしいヨウ(;´Д`)
眠気が吐き気に変わってきたので起きてからもう一度考えてみます。。

記憶の断片
if (n<W*H/2)
x=n-左端
y-=x
左端の数字とyが抜けてるなぁ(;´Д`)
0226えれなNGNG
>220
それって、幅が高さに比べ2以上多いときとか、
真ん中の方が余ったりしないかな?

>幅X・高さY時、n のx・y位置が欲しいのですが、
それを最初にかいてほしかったなー。
安直に、逆変換テーブルをつくるとかもあるよね。
0227デフォルトの名無しさんNGNG
>>226
>>216が理解すれば、そういうのは対応できると思われ。
nの最大数によって好きな方使えばええよ。
0228220NGNG
/*ためしてみたけど、ぜんぜんスマートじゃないや、ゴメソ。では、細密充填リストで…*/
void left(int n, int* pi, int* pt){
int i=1, t=0;
while(1){if(t+i>n){*pt=n-t;*pi=i-*pt-1;break;}
t+=i++;}return;}
void position(int n, int xl, int yl, int* px, int* py){
int r, cn, m ;
if(xl<=yl) cn=xl*(xl+1);else cn=yl*(yl+1);cn/=2;
if(cn>n){left(n, &r, &m);*px=m;*py=r ;}
else if(xl*yl-cn<=n){left(xl*yl-n-1, &r, &m);*px=xl-m-1;*py=yl-r-1;}
else{m=n-cn;
if(xl<yl){*px=m%xl;*py=xl+m/xl-(m%xl);}
else{*px=m/yl+1+m%yl;*py=yl-m%yl-1;}}
return;}
#include <stdio.h>
#define X 8
#define Y 9
main(){int i, x, y ;int a[X][Y];
for(i=0;i<X*Y;i++){position(i, X, Y, &x, &y) ;a[x][y]=i;}
for(y=0;y<Y;y++){for(x=0;x<X;x++)printf("%3d", a[x][y]);printf("\n") ;}}
0229(゚∀゚)NGNG
えれなたんは沙夜たん・・・(;´Д`)ハァハァ
0230 NGNG
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float func1(int *a){
int sum=0,i;
float ave;
a=a+1;
for(i=1;i<=100;i++){
sum=sum+*a;
a++;
}
ave=(float)sum/100;
return ave;
}main(){
int a[110],i;
float ave,std;
for(i=1;i<=100;i++){
a[i]=rand()%100+1;
}

for(i=1;i<=100;i++){
printf("%3d",a[i]);
if(i%10==0) printf("\n");
}
ave=func1(a);
printf("ave=%f",ave);
}
4行目をvoid func1(int *a){
としてはいけないのはなぜですか?
そもそもvoidってなんですか?
0231デフォルトの名無しさんNGNG
>>230
関数にはぁー、型とぉー、返り値があってぇー、
返り値がいらないときはぁー、void 型にするのぉー。
0232 NGNG
つまりreturnで返すときはvoidは使わないということですか?
0233デフォルトの名無しさんNGNG
>>232
使わない、と言うかぁー、使えない。
void は型がないと言う意味だからぁー、
返り値の大きさ(使用されるメモリサイズ)がぁー、
わからないんですぅー。
0234デフォルトの名無しさんNGNG
void とは 「無」です。
0235デフォルトの名無しさんNGNG
void@(以下略)
0236デフォルトの名無しさんNGNG
>>230
そもそも関数ってわかってる?
0237えれなたん(;´Д`)ハァハァ・・・NGNG
>>229
勘弁してくれよ。
0238(;´Д`) NGNG
>>230
ネタ?
0239734NGNG
#include<stdio.h>

void func(float a[10][10],int n){
int i,j,k;
float c[10][10];

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c[i][j]=0;
for(k=1;k<=n;k++){
c[i][j]+=a[i][k]*a[k][j];
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
a[i][j]=c[i][j];
}
}
}
main(){
float a[10][10];
int i,j,n;
printf("please input n:");
scanf("%d",&n);
printf("please input a\n");
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
}
printf("\nA=\n");
for(i=1;i<=n;i++){
printf("|");
for(j=1;j<=n;j++){
printf("%4.1f",a[i][j]);
}
printf("|");
printf("\n");
}
func(a,n);
printf("\nA^n=\n");
for(i=1;i<=n;i++){
printf("|");
for(j=1;j<=n;j++){
printf("%4.1f",a[i][j]);
}
printf("|");
printf("\n");
}
}
これだとAの2乗が求まりますが、n乗にするにはどうすればいいですか?
0240デフォルトの名無しさんNGNG
void *
0241デフォルトの名無しさんNGNG
>>239 そういう時は2乗関数ではなくて
c=a*b となる関数を作って あとはバイナリ分解で計算するのが定石
0242デフォルトの名無しさんNGNG
>>239
Aのn乗求めるのにこんな長いコードが必要とは思えないが。
解読する気にもならん。
0243えれなNGNG
for(i=1;i<N;i++)
 func(a,n);
カナ?
0244デフォルトの名無しさんNGNG
memcpy(b,a,sizeof(a));
for(i=1;i<N;i++) func(a,b,n);
くらいにしなきゃだめでしょう。
2乗じゃなくて掛け算する関数を作ればいい。
0245デフォルトの名無しさんNGNG
>>244
計算量の問題があるから、
Aのn/2乗を計算してから、Aのn乗を計算するような感じで再帰的にやりたいね。
0246デフォルトの名無しさんNGNG
>>245
tail recursion にしないとね。
0247デフォルトの名無しさんNGNG
厨な質問で申し訳ないんですが、C言語で#ifとif文はどう違うんですか?

#えれなちゃんに答えてもらうと嬉しいな(ワラ
0248デフォルトの名無しさんNGNG
>>247
#if
プリプロセッサ用のif
0249デフォルトの名無しさんNGNG
早坂日和>>>>>>>>>>璃月沙夜>神岸あかり>>>>>>>
>>>えれなたん>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>氷川菜織
0250デフォルトの名無しさんNGNG
怜さん、麻衣タンにも復活希望。
0251デフォルトの名無しさんNGNG
>>250 じゃあおまえがやれ(W
0252デフォルトの名無しさんNGNG
>>249
えろげネタはえろげ板でやって欲しい風味。
0253デフォルトの名無しさんNGNG
宿題age
0254デフォルトの名無しさんNGNG
そろそろ卒研も終わりか...
0255デフォルトの名無しさんNGNG
すみません、お恥ずかしい限りなんですが、お聞きします


Q.次の方程式の解をニュートン法によって求めなさい

sinΘ-cosΘ=0
ただし
0<=Θ<=2π


と言う問題です、できますでしょうか?
0256デフォルトの名無しさんNGNG
>>255
google は力強い友だ。
http://www.google.co.jp/search?sourceid=navclient&ie=utf8&oe=utf8&q=sin+cos+%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95
0257デフォルトの名無しさんNGNG
>>255
sinΘ-cosΘ=0
sinΘ=cosΘ
sinΘ/cosΘ=1
Θ=π/4,5π/4
でよろしいですか?
0258247NGNG
>>248
と言われてもわからないんですが…
#ifとifの大きな違いというのは?
誰か詳しく教えてください!
0259デフォルトの名無しさんNGNG
>258
…
> if
> プリプロセッサ用のif
プリプロセッサ>コンパイル前に処理される。

if文
制御構造>実行時の処理の流れを制御する。
0260255NGNG
すみません、説明不足でした…

C言語を使って求めないといけないんです
ごめんなさい
0261デフォルトの名無しさんNGNG
えれなを出せ
0262デフォルトの名無しさんNGNG
>>258
実際にプログラム書いて、
プリプロセッサを通してみな。
0263デフォルトの名無しさんNGNG
>>260 (255)
「ニュートン法」って何?
0264デフォルトの名無しさんNGNG
えれなたん…
出てきて…
会いたいよ…
0265デフォルトの名無しさんNGNG
#include <math.h>

void foo(double x)
{
 printf("sin(%f)-cos(%f)=%f\n", x, x, sin(x)-cos(x));
}

int main(void)
{
 foo(atan(1.0));
 foo(atan(1.0)+M_PI);
 return 0;
}
0266デフォルトの名無しさんNGNG
「ニュートン法とは、実際に値を代入して方程式を解く方法です。」
だって。
単純に考えれば、for でまわせばそのうち答えがわかる、ということかな。
でも、精度の問題があるから、そんなに簡単には行かないと言うところか。
とりあえず、何がしかのコードを提示すれば、アドバイスもらえるんじゃないの?
0267デフォルトの名無しさんNGNG
>>255
求められてる精度は?
問題に書いてない?
0268デフォルトの名無しさんNGNG
>>267
書いてありません…
漠然ととけと書いてあります

とりあえず、いま友人にプログラムを見せてもらいました
ただ、そのプログラムですと
sinとcosをつかうとエラーがでてしまいます
ですから、sinとcosをつかっても動けるように改良していただけますか?


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

float f (float); /*関数fの定義*/
float fd ( float ); /*関数の微分用の関数fdの定義*/

int main(void)
{
float x, xd, ep, eps = 0.0001; /*関数の設定*/
int n, nmax=50; /*計算回数と最大反復回数の設定*/

scanf(" %f",&x); /*初期値の入力*/
for(n=1; n<=nmax; n++){ /*規定回数内での繰り返し*/
xd=x-f(x)/fd(x);
ep=xd-x; /*収束の度合いを計算*/
printf("n=%2d x=%8.5f xd=%8.5f ep=%8.5f\n",n,x,xd,ep); /*計算の結果を表示*/
x=xd;
if( fabs ( ep ) < eps ) break;/*収束値が出たら計算を終了*/

}
printf( " 収束値 = %8.4f \n",x); /*収束値を表示する*/
getch(); /*結果をウィンドウに表示する*/
return 0; /*値を返す*/
}


float f ( float x ) /*関数fの計算*/
{
return sin * x - cos * x; /*計算式*/
}

float fd ( float x ) /*関数fdの計算*/
{
return 1-1; /*計算式*/
}
0269デフォルトの名無しさんNGNG
>>267
Cの文法を理解せよ。
sin * xはsinという変数とxという変数を乗ずる意味で、sin xの値を求めていない。
0270デフォルトの名無しさんNGNG
ついでにニュートン法もものにしていないようだ。
ほれ
http://www.sm.rim.or.jp/~shishido/newton.html
0271デフォルトの名無しさんNGNG
つーか
http://www.geocities.co.jp/Playtown-Dice/1023/num-analys/newton.html
ここにずばりの答えがあったがどうよ?
0272デフォルトの名無しさんNGNG
もう1個おまけだ

xd=x-f(x)/fd(x);
で
float fd ( float x ) /*関数fdの計算*/
{
return 1-1; /*計算式*/
}
だと、0除算だ。
0273255NGNG
return sin(x)-cos(x);
と言うような書き方でよいのでしょうか?
0274デフォルトの名無しさんNGNG
>>268
conio.hなんかインクルードするなよ・・・
0275デフォルトの名無しさんNGNG
getch(); /*結果をウィンドウに表示する*/

ここらへんがイイ!
DOS時代を知らないんだろうな。
0276デフォルトの名無しさんNGNG
>>273
それでいいよ。
fd()はなにやってるの?
0277デフォルトの名無しさんNGNG
提出前にコメントは消しといたほうが無難だな
0278デフォルトの名無しさんNGNG
fd()ってのは、df/dxのことだろ?
微分計算できねーのか?
なんで1-1なんだよ?
0279デフォルトの名無しさんNGNG
そのプログラムを見せてくれた友人とは縁を切ることをお勧めする
0280255NGNG
すみません…
0281デフォルトの名無しさんNGNG
>>255=>>280
で、ニュートン法は分かったんだよね?
0282デフォルトの名無しさんNGNG
>>280
君が謝る必要はない。
君が負うべき責は唯一つ、2chに聞きにきたことだ。
0283デフォルトの名無しさんNGNG
>>280
つーか、友達が悪い(ワラ
0284255NGNG
しかし、気づかずなかったことも事実な訳で
実質上同レベルかと…半年もやってるのに

今やってみたらなんかとんでもない数値が出ました

0285デフォルトの名無しさんNGNG
>>255
まずは関数ポインタを受け取って微分の近似値を計算する部分からだな
0286デフォルトの名無しさんNGNG
やってみるなよ(ワラ
で、もうオケーなの?
0287デフォルトの名無しさんNGNG
>>285
うそはいわないように。
0288285NGNG
大まじめ
0289255NGNG
駄目みたいです、今日はそろそろ寝ます
0290デフォルトの名無しさんNGNG
>>289
なんで?
ニュートン法が分からんの?Cが分からんの?
単純な漸化式なんで両方分かってればいけるはずだが。
0291デフォルトの名無しさんNGNG
ここは、えれなたんが降臨しなくては。
0292285NGNG
>>255こんな感じ、あまりうまく作れなかった。
#include <math.h>
#include <stdio.h>

#define FRST_DEVI 1e-4
#define ERR_RANGE 1e-8
#define LOOP_MAX 1000

double cal_error(double x, double y){
return fabs(x-y) ;}/*ここは手直しせよ(相対誤差にするべき)*/

double d(double (*func)(double), double x) /*funcのxでの微分係数を計算*/
{
int c=0 ;
double h, ret, prev ;

h = FRST_DEVI ;
ret = (func(x+2*h) - func(x)) / (2*h) ;
do {
prev = ret ;
ret = (func(x+h)-func(x))/h ;
c++, h/=2 ;
} while(cal_error(prev, ret)>ERR_RANGE && c<LOOP_MAX) ;

return ret ;
}

double newton(double (*func)(double), double x) /*初期値xでfuncのニュートン法*/
{
int c=0 ;
double prev_x ;

do {
prev_x = x ;
x = x - func(x)/d(func, x) ;
c++ ;
} while(cal_error(prev_x, x)>ERR_RANGE && c<LOOP_MAX) ;

return x ;
}

double f(double x){ /*ターゲット関数*/
return cos(x)-sin(x) ;}

void main(void){
printf("%lf\n", newton(f, 0)) ;}
0293デフォルトの名無しさんNGNG
>>285
ここは自分の技術を披露するスレじゃないぞ。
0294285NGNG
暇だから丸投げ大歓迎。分かる範囲で
0295デフォルトの名無しさんNGNG
>>292
つーか、ニュートン法は単なる漸化式なんでそこまでやる必要は無いと思うぞ。

double f(double x){
  return (sin(x)-cos(x));
}
double fd(double x){
  return (sin(x)+cos(x));
}

この二つを定義して、あとは友達のループでいけるぞ。
0296デフォルトの名無しさんNGNG
えれなたんは>>249の書き込みでショックを受けたようです。
ゴルァ出てこいや>>249!
0297デフォルトの名無しさんNGNG
#include <math.h>
#include <stdio.h>
#define VAL_ans 0.0
#define VAL_div 10.0
void sub( double t1,double t2 );
double func( double t );

int main() {
sub( 0.0, M_PI*2.0 );
return 0;
}

void sub( double t1,double t2 ) {
double a1,a2,step;
char wk1[ 20 ],wk2[ 20 ];

step = ( t2-t1 ) / VAL_div;
while( t1 < t2 ) {
a1 = func( t1 );
a2 = func( t1+step );
if( ( a1 < VAL_ans && a2 > VAL_ans )
|| ( a2 < VAL_ans && a1 > VAL_ans ) ) {
sprintf( wk1, "%17.14f", t1 );
sprintf( wk2, "%17.14f", t1+step );
if( !strcmp( wk1, wk2 ) ) {
printf( "ans = %s\n", wk1 );
break;
}
sub( t1, t1+step );
}
t1 += step;
}
}

double func( double t ) {
return sin( t ) - cos( t );
}
0298デフォルトの名無しさんNGNG
↑なにがしたいのかわかりまてん。
0299デフォルトの名無しさんNGNG
お願いです!この問題を解いてください。
問題
学生番号と点数を読み込んで上位10名分のデータを次のように
出力するプログラムを作成せよ。

    @1@@A95B@@@100   
    @2@@A95B@@@@94
    @3@@A95E@@@@70    @:空白
    @3@@A95B@@@@65
    @5@@A95D@@@@48
         ・
         ・
         ・
         ・

          
0300デフォルトの名無しさんNGNG
ここは「手伝おっか?」スレで「やってあげる」スレではありまてん。
0301デフォルトの名無しさんNGNG
%2d%6X%6d
0302デフォルトの名無しさんNGNG
>>299
#include <stdio.h>
int main(void) {
const char* data[] = {
"    @1@@A95B@@@100   ",
"    @2@@A95B@@@@94",
"    @3@@A95E@@@@70    @:空白",
"    @3@@A95B@@@@65",
"    @5@@A95D@@@@48",
"         ・",
"         ・",
"         ・",
"         ・",
NULL
};
const char** p = data;
while(*p) puts(*p++);
return 0;
}
だって“何処から”読み込むとも書いてへんしなー
0303デフォルトの名無しさんNGNG
>>299
言語は? 特に指定がないなら

sort -k 3,3 infile | head -n 10
0304299NGNG
>>300
すみません。別スレに逝ってきます。
0305デフォルトの名無しさんNGNG
宿題を頼むやつって、どうしてこう、問題の説明もできないバカばっかり
なんだ?
0306デフォルトの名無しさんNGNG
>>304
「宿題丸投げしたらやってあげる!」
なんてスレは無いと思われ…
0307デフォルトの名無しさんNGNG
>>305
つーか「だから」頼むんだよ。
0308デフォルトの名無しさんNGNG
なんか「教えて君」がかわいく思えてきた今日この頃...
0309えれがNGNG
下へさがりまーーーす。
0310えれなNGNG
>299
全角・半角混合プログラムはちょっとむつかしいかな?
入力はぜんぶwchar_tに変換して、さらに、ぜんぶ半角に
してからとりあつかうと、簡単だよ。さいごには、
wchar_t to_wider(wchar_t ch)
{ if( L'A' <= ch && ch <=L'Z' ) return ch - 'A' + L'A';
 if( L'a' <= ch && ch <=L'z' ) return ch - 'a' + L'a';
 if( L'0' <= ch && ch <=L'9' ) return ch - '0' + L'0';
 if( ch == L' ' ) return L' ';  return ch;
}
みたいなのをループさせて、出力をみんな全角化すれば、
あとは普通にやればいいとおもうよ。
0311高卒クンNGNG
struct car
{
char make[20];
int year;
};

car * input(void);

int main()
{
car * ps;
ps = input();

cout << "Make: " << (*ps).make <<"\n";
cout << "Year: " << ps->year << "\n";
delete [] ps;
return 0;
}

car * input(void)
{
car * ps = new car;

cout << "Please enter the make: ";
cin.get(ps->make, 20);

cout << "Please enter the year made: ";
cin >> ps->year;
return ps;
}

このステートメントをループさせたいのですが
ステートメントをintにする方法教えてください
0312高卒クンNGNG
例えば最初にループの数きいて
Car#?
Please enter make ?????
please enter year ????
って感じにできますでしょうか?
0313えれなNGNG
>311のソース、newにたいしてdelete[]発行してるよっ。
>312 こうかな?car*で扱う必要性はないんだけど‥‥

typedef std::vector<car*> carArray;
carArray input(void)
{
 int loop=0;
 cout <<"Car#?"
 cin >> loop ;
 carArray arr;
 for( int i=0; i<loop; i++)
 {
   car * ps = new car;
   cout << "Please enter the make: ";
   cin.get(ps->make, 20);

  cout << "Please enter the year made: ";
  cin >> ps->year;
  arr.push_back( ps )
 }
 return arr;
}
0314高卒クンNGNG
>>313
見よう見真似で本の例題見ながら練習問題解いてて
つまってたとこです
それを参考に考えて見ます
0315デフォルトの名無しさんNGNG
\0とNULLの具体的な違いを教えてくれませんか?
0316デフォルトの名無しさんNGNG
>>315
それ、宿題?
0317高卒クンNGNG
違います(笑)
ここだけの話し、時間かけてVisual Studio落としたんで
時間に見合うだけ遊んでみようかと・・・・
0318デフォルトの名無しさんNGNG
ware?
0319デフォルトの名無しさんNGNG
>>315
\0とNULLはまったく違うぞ?
'\0'とNULLならまだわかるが・・・
0320デフォルトの名無しさんNGNG
>>319
'\0'とNULLの違いです。
0321デフォルトの名無しさんNGNG
>話し
はなしし?

は置いといて。
MSDN会員、と言うわけでもなさそうだな‥‥
0322デフォルトの名無しさんNGNG
MSDN会員ならそんなくだらない質問はしないと思われ
0323デフォルトの名無しさんNGNG
>>321
'はなし'を変換してみてください。ちゃんと'話し'って出ますよ。
0324デフォルトの名無しさんNGNG
>>323
意味が違う。
私が話します。
私の話。
0325デフォルトの名無しさんNGNG
日本語の話は別スレでしてきます。
ところで\0とNULLの具体的な違いを教えてくれませんか?
0326デフォルトの名無しさんNGNG
おなじ。
0327デフォルトの名無しさんNGNG
'\0' -> (char)0
L'\0' -> (wchar_t)0
文字コードとしての0をあらわす。
NULL文字とも言ふ。
NULL -> 0 or (void*)0
ポインタがどのオブジェクトもさしていないことをあらわす。
0328デフォルトの名無しさんNGNG
>>325
お前がこの違いを知ったところで何もできん。
同じと思ってろ。
0329デフォルトの名無しさんNGNG
>>327
そうなんですか。ありがとうございます。

>>328
はぁ…
0330デフォルトの名無しさんNGNG
>>317
warez利用者は(・∀・)カエレ!
0331デフォルトの名無しさんNGNG
高卒で良いから
犯罪犯すなよ  (笑
0332デフォルトの名無しさんNGNG
>>327
初心者が勘違いしそうな点があったので、
ちょっと補足させてくれ。
>文字コードとしての0をあらわす。
文字コードの0x00の事です。
数字の0じゃないからね。
0333デフォルトの名無しさんNGNG
>>329
'\1'や'\2'も試してみれば理解できるかと。
'\0'はただCがそれを文字列の終端と認識するだけで、それ以外は他の文字と何の代わりもない。
0334デフォルトの名無しさんNGNG
>>333
>'\1'や'\2'
え?まじ?
こんな命令あったの?
知らなかった・・・
0335デフォルトの名無しさんNGNG
<html>
<MARQUEE direction="right" scrollamount="5">
    -= ∧_∧<BR>
  -=≡ (  ・∀・)<BR>
    -=( つ┯つ<BR>
   -=≡/  / //<BR>
  -=≡(__)/ )<BR>
   -= (◎) ̄))<BR>
</MARQUEE>
</html>

上の10行をメモ帳に書く。
↓
名前を付けて保存。
↓
保存したファイルの拡張子を.htmlに変更。
↓
ブラウザで開く。
↓
(・∀・)走る。
0336デフォルトの名無しさんNGNG
(・∀・)イィ!
0337デフォルトの名無しさんNGNG
ここは暇人も多いみたいだし、丸投げ専用スレでも作る?
0338デフォルトの名無しさんNGNG
丸投げはよくないよ。
本人のためにもIT業界のためにも。
0339デフォルトの名無しさんNGNG
出来るだけトリッキーなコードで応える○投げスレなら、おもしろそう。
0340デフォルトの名無しさんNGNG
だってココに質問しに来る奴って、

○○教えてください
↓
詳しく書けやゴルァ
↓
すみません。もうきません。
↓
そして誰もいなくなった・・・・。

だもん。
根性無しが多いから、人のソース読む(解析する)だけでも
少しは力つくから、まずはそこからということで。
0341デフォルトの名無しさんNGNG
>>340
解析するならいんだけど、丸写しされて提出という可能性があるから。

それに、丸投げするにしても詳しく書いてくれないと・・・
0342デフォルトの名無しさんNGNG
丸写し提出オッケーよーん。
同類出現の連座で零点でも知らんけど
0343デフォルトの名無しさんNGNG
>339
えれなたんの>>310も、かなりキてるな‥‥
0344デフォルトの名無しさんNGNG
えれなたんにはかつての怜たんのような勢いがないのう・・・。
日下部殿も何処かに行きよったし・・・。

あの頃が懐かしいのう・・・。
0345デフォルトの名無しさんNGNG
懐古主義者は逝ってよし。
0346デフォルトの名無しさんNGNG
>>345
ひどいのう・・・。
0347田代雅史NGNG
         ,〜((((((((〜〜、
        ( _(((((((((_ )
        |/ ~^^\)/^^~ヽ|
         |  _ 《 _  |
         (|-(_//_)-(_//_)-|)
         |   厶、    |  cout<<"このスレは無事に正常終了した。\n"
         \ |||||||||||| /      <<"私が最後の仕事をするとしよう。\n";
          |\___/::\ 
          /丶 / /    \ return 0;
        /,': //  ヽ    \}
       / /´ ̄ ̄ ̄ ̄ ::::::   \-、
     / _/         ::  、  ゙  `\
    /  ~_/`''         : 、`      ゙ヽ
    /  __/`''       ___  ::丶  \:: ヽ、 ヽ
  /   / `         ヽ、{丶    ヽ :::ヽ |
  /              ~ヽ、ヾ\      ゙i |
  。             -´/ /ゝ、  ` _ ヽ、/X
  ヽノ             :::|/// ~` '''  `' / ヽ
  | , |   |       :::| / | 〃   \  |
   {~ ヘ___ \  。  .:::ノ /_/| |    :::|   |
  丶ノ  \__ `- 、_____, -´イイ_| |    ::::| |  |
   {  |   \___ \ノ イ_ | |    :::|  |
     { ´|ヽ、   ,,`i` // \ノ  |丶    :丿   |
     {´_|_ `'''''´  l //ノヾ,ノ`ゝヽ____ /ヽ,、  |
     |  i `'''ー-''~  }=  ノ ヾ /〃     | ヽ}
      ヽゝ、_    } = ヾ  |      ノ  |
0348田代雅史NGNG
         ,〜((((((((〜〜、
        ( _(((((((((_ )
        |/ ~^^\)/^^~ヽ|
         |  _ 《 _  |
         (|-(_//_)-(_//_)-|)
         |   厶、    |  cout<<"すまない。冗談だ。\n"
         \ |||||||||||| /     
          |\___/::\ 
          /丶 / /    \
        /,': //  ヽ    \
       / /´ ̄ ̄ ̄ ̄ ::::::   \-、
     / _/         ::  、  ゙  `\
    /  ~_/`''         : 、`      ゙ヽ
    /  __/`''       ___  ::丶  \:: ヽ、 ヽ
0349デフォルトの名無しさんNGNG
怜たん>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>えれなたん
0350怜派NGNG
怜タンハァハァ…
0351デフォルトの名無しさんNGNG
>>344
Dr.D!?
0352デフォルトの名無しさんNGNG
もっともりあげるれす
えれなたんれてきてくらしゃい

0353デフォルトの名無しさんNGNG
怜たん萌え萌えゲームでも作るか・・・。
麻衣たんも入れるか・・・。
0354デフォルトの名無しさんNGNG
>>353
あ、それ宿題にしとくよ。
0355デフォルトの名無しさんNGNG
>>354
勘弁してくれ、今はそんな暇はない。
いつか暇ができたら作るか・・・ということで。

まあ、>>353のような書き込みをしてしまうくらいに
萌え尽きない状態で終わってしまった怜たんスレを残念に思うわけだ。
0356田代雅史NGNG
         ,〜((((((((〜〜、
        ( _(((((((((_ )
        |/ ~^^\)/^^~ヽ|
         |  _ 《 _  |
         (|-(_//_)-(_//_)-|)セミコロンを付け忘れていた。
         |   厶、    |  ;
         \ |||||||||||| /     
          |\___/::\ 
          /丶 / /    \
        /,': //  ヽ    \
       / /´ ̄ ̄ ̄ ̄ ::::::   \-、
     / _/         ::  、  ゙  `\
    /  ~_/`''         : 、`      ゙ヽ
    /  __/`''       ___  ::丶  \:: ヽ、 ヽ
0357デフォルトの名無しさんNGNG
>>>356 (藁
0358(;´Д`) NGNG
#include<stdio.h>//標準的な出し入れでエッチをインクルード
#include<stdlib.h>//標準的な図書館でエッチをインクルード
#include<conio.h>//出し入れ制御の為の意思の操作卓をインクルード

int main(void)
{
  const int Ore=0,Reitan=1;
  int Orgasmus[]={0,0};
  while(getch()=='i')//ティムポを入れる。偽なら途中でやめる。
  {
    switch(Orgasmus[Ore]+Orgasmus[Reitan])
    {
    case 0:
      printf("怜「あっ・・・。」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 2:
      printf("怜「あっ、はあっ、ああ・・・。」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 4:
      printf("怜「ああんっ、はっ、はあッ・・・!」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 6:
      printf("怜「あッ、んふうッ、あはあッ・・・!」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 8:
      printf("怜「はあッ・・・ああッ!はあん!」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 10:
      printf("怜「ああん!い、いっちゃう!ああッ!はぁッ!」\n");
      Orgasmus[Ore]=(++Orgasmus[Reitan]);
      break;
    case 12:
      printf("怜「あッ、はあ、あああはぁぁッ!!」\n");
      printf("俺と怜たんは共に絶頂を迎えた。\n"
          "怜たんの中はとても気持ち良かった。\n");
      while(!(getch()=='o'));//ティムポを出す
      return 0;
    }
    while(!(getch()=='o'));//ティムポを出す
    if(Orgasmus[Reitan]<=2)
      printf("ちゅっ・・・。\n");
    else if(Orgasmus[Reitan]<=4)
      printf("ちゅくっ・・・。\n");
    else if(Orgasmus[Reitan]<=5)
      printf("ちゅくちゅっ・・・。\n");
    else
      printf("ちゅくちゅくっ・・・\n");
  }
  printf("俺は途中でエッチをやめた。\n"
      "怜たんの悲しそうな表情が痛かった・・・。\n");
  return 1;
}

/*こうして怜たんと図書館で普通にエッチをしましたが、満足できません。
 どうすればよいのでしょうか?*/
0359ageNGNG
age
0360デフォルトの名無しさんNGNG
なれ合いUZeee! もはや全然宿題と関係ねーし。
pinkbbsにでも逝ってよし!
0361デフォルトの名無しさんNGNG
>>360
ならば何故ageる?
仲間に入りたいのか(藁

0362デフォルトの名無しさんNGNG
つーか、ム板全体に厨房がなだれ込んでる気がするが・・・。
他のスレッドもいきなり荒れてきたぞ。
(おそらく受験終わった工房・春休みに入った大学生がなだれ込んでるんだと思うが)
0363>>362NGNG
それもあるけど、monazillaスレがあちこちに紹介された
影響も結構あるように思う。
0364デフォルトの名無しさんNGNG
>>362
それはあまり関係がないように思うが。
ただ、確かに少し荒れ模様だな。
不定期でときに起こる一時的な荒れだとは思うが。
0365怜NGNG
>>358
これからチョクチョク顔出すようにするから、そういうのやめてね・・・
0366デフォルトの名無しさんNGNG
えれな?怜?そんなものはどうでもいい。
宿題タンよ、来い来い。
0367デフォルトの名無しさんNGNG
来んでいいよ、もともと隔離スレでしょうに、ここ。
こんなタイトルのスレがあるから、勘違いした丸投げや作って君が横行する。
0368デフォルトの名無しさんNGNG
なければないで、新しいクソスレができるだけでは?
0369デフォルトの名無しさんNGNG
メモリの確保のやり方か、データのやり方がおかしいので、
実行時にメモリーリークを起こしているみたいなのですがどこが
おかしいのでしょうか。
/* factorization.c 因数分解する */
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <math.h>
/* 求める因数の下限 */
#define FACTOR_LOWER_LIMIT (2)
typedef struct Factor_tag Factor;
struct Factor_tag
{
int value;
Factor * next; /* 末端はNULL */
};
typedef struct Header_tag
{
int size; /* Factorのリストのサイズ */
Factor * head;
} Header;

static Factor * addition(int value, Factor * current, Factor ** head);

void factorization(const int number, Header * const pheader)
{
Factor * head = NULL, * current = NULL;
int loop, dest;

{
int tmp;
tmp = ceil(sqrt(number));
dest = (tmp > FACTOR_LOWER_LIMIT) ? tmp : FACTOR_LOWER_LIMIT;
}
if(number == dest * dest)
{
current = addition(dest, current, &head);
++pheader->size;
}
for(loop = FACTOR_LOWER_LIMIT; loop != dest; ++loop)
{
if(number % loop == 0)
{
current = addition(loop, current, &head);
current = addition(number / loop, current, &head);
pheader->size += 2;
}
}
pheader->head = head;
#ifdef DEBUG
printf("prcessing %d is over.\n", number);
#endif /* DEBUG */
}
0370デフォルトの名無しさんNGNG

Factor * addition(int value, Factor * current, Factor ** head)
{
Factor * store;
store = malloc(sizeof(Factor));
store->value = value;
store->next = NULL;
if(NULL != current)
{
current->next = store;
}
if(NULL == * head)
{
* head = store;
}
return store;
}
0371デフォルトの名無しさんNGNG
Factor * addition(int value, Factor * current, Factor ** head)
{
Factor * store;
store = malloc(sizeof(Factor));
store->value = value;
store->next = NULL;
if(NULL != current)
{
current->next = store;
}
if(NULL == * head)
{
* head = store;
}
return store;
}
0372麻衣派 ◆COx/Mai. NGNG
>>370-371
どっちが呼ばれるんですか。
0373麻衣派 ◆COx/Mai. NGNG
同じでした…
0374麻衣派 ◆COx/Mai. NGNG
解放するところを見ないとわかりません。
0375デフォルトの名無しさんNGNG
sizeof(Factor) が、アヤシイと見たが…
0376デフォルトの名無しさんNGNG
あ、んなことねーか
0377デフォルトの名無しさんNGNG
コンパイル、実行できる最小限のソースじゃないと…
0378怜派NGNG
>>369
実行時に何か言われるの?
0379369に追加ですNGNG
void processbody(Factor * factor)
{
Factor * post;
if(NULL == factor) return;
post = factor->next;
free(factor);
factor->next = NULL;
// finalize(post);
processbody(post);
}

void finalize(Header * pheader)
{
processbody(pheader->head);
}

int main(void)
{
Header header;
Factor * current;
int i;
factorization(100, &header);
current = header.head;
for(i = 0; i != header.size; ++i)
{
printf("\n%d: %d ", i, current->value);
current = current->next;
printf("%d ends.", i);
}
printf("\n");
printf("finalize begins.\n");
finalize(&header);
printf("finalize ends.\n");
return 0;
}
0380369に追加ですNGNG
//int main()にHeader headerの初期化を入れる。
header.size = 0;
header.head = NULL;
0381デフォルトの名無しさんNGNG
人の話を聞けよ>リスト垂れ流してるだけの猿
0382麻衣派 ◆COx/Mai. NGNG
void processbody(Factor * factor)
{
  Factor * post;

  while(NULL!=factor){
    post=factor->next;
    free(factor);
    factor=post;
  }
}

再帰使わないといけない理由があるの?
0383麻衣派 ◆COx/Mai. NGNG
>free(factor);
>factor->next = NULL;

こ、これはなに、、、
0384えれなNGNG
header.sizeはどこで初期化するの?
0385369NGNG
>>381さま、すみませんでした。
369に追加をくっつけるとコンパイルできると思います。
実行時エラーは「"hogehoge"の命令が"0x000000000"のメモリを参照しました。
メモリが"written"になることはできませんでした。」です。
>>382さま
再帰を使う理由はありません。しかし、main()からfinalize()を呼ばなくても
エラーはでます。だから、factorization()かaddition()に間違えがあると考
えているのですが。
0386369NGNG
379を書き直しました。
int main(void)
{
Header header;
Factor * current;
int i;

//int main()にHeader headerの初期化を入れる。
header.size = 0;
header.head = NULL;

factorization(100, &header);
current = header.head;
for(i = 0; i != header.size; ++i)
{
printf("\n%d: %d ", i, current->value);
current = current->next;
printf("%d ends.", i);
}
printf("\n");
printf("finalize begins.\n");
finalize(&header);
printf("finalize ends.\n");
return 0;
}
0387麻衣派 ◆COx/Mai. NGNG
>>free(factor);
>>factor->next = NULL;

>こ、これはなに、、、


/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
|  なんで見てくれないんだろう…  |
\                    /
  ̄∨ ̄ ̄∨ ̄ ̄ ̄∨ ̄ ̄ ̄∨ ̄

 |      |\|/ |     |   |
 |∧ ∧ |/⌒ヽ、| ∧_∧ | ∧∧ |
 |(,,゚Д゚) ||,,゚ Θ゚)|(; ´Д`)|(=゚ω゚)|

0388369、逝ってきますNGNG
>>383
あ、あー、こ、これでした…
なんとも、複雑な気持ちです。みなさま、本当にありがとうございました。
0389怜命NGNG
>>387
君が麻衣派だからだよ、きっと。
0390ゆっちんNGNG
C言語での個人情報ファイルの作り方を教えてください。(ソート、検索が可能でレコードの追加、削除、訂正、新規などの操作ができるもの
)
0391デフォルトの名無しさんNGNG
(○投げのくせに、内容の説明が出来ないようなやつ、なにかいい呼び方ない?)
0392麻衣派 ◆COx/Mai. NGNG
麻衣派は信用されないのか…
0393369、逝ってきますNGNG
>>389
麻衣さんも、怜さんも、こころからお慕いもうしております。
すこし、焦り気味だったもので、申し訳ありませんでした。
0394デフォルトの名無しさんNGNG
>>391
エメリアンと太鼓
0395デフォルトの名無しさんNGNG
>>391
謎かけクン
・・・う〜〜んいまいち。

つーかどのスレみても質問してるやつでまともな説明できてるやつのほうが少ない。
説明できるやつはそもそもこんなところに聞きに来ないかも。
0396えれなNGNG
>390
PRO*CをつかってSQLを投げるといいよっ。
0397391NGNG
>>395
そーね、たしかに。
でも、ほら、問題丸写しのほうが、よっぽど答えやすいし。
そういえば、問題をスキャナで取って、あぷろどしただけってやつもいたなぁ。

謎かけといえば、俺の小学生の頃は、「まっくろう」→「影マン」→「シャドーマン」
ってかんじだったなぁ…

「エメリアン、入りま〜っす」っすかね。
0398デフォルトの名無しさんNGNG
宿題が割れてしまいました。誰か助けて
0399デフォルトの名無しさんNGNG
>>398
シアノアクリレート系の接着剤がおすすめ。
0400デフォルトの名無しさんNGNG
計算幾何学のプログラムつくらにゃいけないんだけど、
何か面白い題材ない?
凸包、領域探索、三角形分割、線分交差 程度の
基礎的なアルゴリズムを使うものできぼん。
0401デフォルトの名無しさんNGNG
>>396
390とは関係無いけど、Pro*ってフリーでありましたっけ?
0402デフォルトの名無しさんNGNG
Turbo C++って、今お店に売ってないんでしょうかね?
0403デフォルトの名無しさんNGNG
>402
2年位前に秋葉で見た
0404402NGNG
2年も前ですか…
最近は売ってないんですかね…
0405デフォルトの名無しさんNGNG
>>402 英語版のTurbo C++ 1.0 なら
ボーランドのサイトでフリーダウンロードできるよ。
0406デフォルトの名無しさんNGNG
リブルラブル作れ >>400

余裕があるなら対戦型ダンシングアイに発展させれ
0407デフォルトの名無しさんNGNG
リブルとラブルで囲もう 見つけてバシシ♪
0408402NGNG
>>405
高校時代に学校でWindows版のTurbo C++を使っていました。
それと同じ物が欲しいんですが…
0409405NGNG
>>408 それは Turbo C++ for Windows かな?
とりあえず、日本語の製品ならホレこれだ。
http://www.borland.co.jp/bcsuite/index.html
0410405NGNG
たぶん、>>409 のURLにある Borland C++4.5J with D/E が、
TC++forWinに一番近いものだと思う。
つーか、使っていたコンパイラとOWLのバージョンは何よ?
そこが肝心。
0411デフォルトの名無しさんNGNG
>>400
海腹川背の、ちゃんとブロックの角や辺にそってゴムがびにょーんと
伸びるやつ・・・あぁ、なんて表現したらいいのか・・・

やっぱリブルラブルでお願いします。
0412デフォルトの名無しさんNGNG
川背さんだろ。海原川背「さん」!
0413デフォルトの名無しさんNGNG
19歳か‥‥
0414411NGNG
>>412
おっしゃるとおりです。川背さん、ごめんなさい。
0415デフォルトの名無しさんNGNG
誰か聞けよage
0416デフォルトの名無しさんNGNG
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  丸投げ君、まだ?
             \_/⊂ ⊂_ )   \________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  .知ったか君.  |/
0417デフォルトの名無しさんNGNG
このシリーズスレもそろそろ終わりを迎えそうだな。
0418デフォルトの名無しさんNGNG
はるになれば、すがこもとけて、またどっさり丸投げ燻がくるさ。
0419デフォルトの名無しさんNGNG
すがこ??
0420デフォルトの名無しさんNGNG
こんばんわ、失礼します。
身長 h (m),体重 w (kg)を入力して,ローレル指数 R を求めよ。
ただし,R = W × 10 / h3 + 0.5である。
また,「 R が114以下なら痩せている」,
「 R が136以上なら太っている」という基準から R の値に応じて,
「太っている」「普通」「痩せている」の判断結果を出力せよ。
という問題なのですが、一応作ってみたのですが、
何故か上手に行きません…
皆さんのご指摘をお願いしたいです。

/*2-9*/
#include <stdio.h>

main()
{
float a,b,R;

printf("あなたの身長と体重を教えてください。\n");
printf("身長(m)は?");
scanf("%f",&a);
printf("体重は(kg)?");
scanf("%f",&b);

R=b*10/(a*a*a)+0.5 ;

printf("あなたのローレル指数は,%fです。\n",R);

if(R>=136){
printf("あなたは太っています。");
}
else{
if(R<=114){
printf("あなたは痩せています。");
}
else{
printf("あなたは普通です。");
}
}
}
0421 NGNG
>>420
詳しく読んではいないが、
下から9行目の
else{
と
一番下の
}
は、あきらかにいらない。
こんなの書くな。
0422デフォルトの名無しさんNGNG
>>420
VC6で確認済み。
変更したところ
・括弧の数があってない(笑)
・浮動小数定数に fをつけた(10 → 10.0f)
・if 〜 else if の構文を整理
・最後のキー入力待ち

#include <stdio.h>

int main(void)
{
float a,b,R;

printf("あなたの身長と体重を教えてください。\n");
printf("身長(m)は?");
scanf("%f",&a);
printf("体重は(kg)?");
scanf("%f",&b);

R=b*10.0f/(a*a*a)+0.5f ;

printf("あなたのローレル指数は,%fです。\n",R);

if(R>=136.0f){
printf("あなたは太っています。");
}
else if(R<=114.0f){
printf("あなたは痩せています。");
}
else {
printf("あなたは普通です。");
}

getchar();
getchar();
}
0423デフォルトの名無しさんNGNG
またscanf問題か。整数で取り込んだらどう?
0424デフォルトの名無しさんNGNG
太ってる… 鬱死
0425デフォルトの名無しさんNGNG
420です。早速レスありがとうございました。
421>
ご指摘ありがとうございました。
とりあえず、消しておきました…。

422>
421>さんと同じ方でしょうか?
もし違ってましたら、すみません…
ご回答のほう、ありがとうございました。
違う場所までご指摘、本当にありがとうございます。
勉強になります。
これでなんとか課題のほうが提出できそうです。

423>
アドバイス、ありがとうございます。

424>
私も太っていますでした…。
0426怜NGNG
旧スレの891クンへ。
何か間違いが多くて、ネタ? とか思ってしまったわ・・。まあ、折角だから
添削ね。

まず、
scanf("%c",&retu);
まず、この場合retuは配列だから&はいらないの。
それにこれだと一文字しか、受け付けられないから、for文で100回繰り返す
とかいうことをしないといけないかな。
まあこういう処理に、個人的にはあまりscanfを使うのはお勧めしないかな。
getchar()で一文字ずつ、配列に読み込んでいくのがいいと思うな。

次に
if(mozi(retu)==a)
 っていうのは、mozi()関数が返してきた結果がaと一致してるか調べてる
ことになるよね。aは初期化されていないから何が入ってるかわからないし。
何か変だよね。

で、次に関数の宣言で、
int mozi(int x[])
で、int型の配列として引数を受けてるけどこれはまずいのね。mainの中で
retu[]は、char型の配列として定義されたよね? だから、それを受け取
るにはchar型の配列として受け取らないと。

それで、これだと、いつもN番目の文字がjに入ってることになるよね。
jに代入するうなら、for文の中で
j = x[i];
みたくしないと。

mozi内でreturnしているところで、return bって返すのはちょっとね。bも
定義してから初期化されていないから、何が入っているかわからないから。
普通は、真なら1を偽だったら0を返すようにするわ。
で、このままだと、大文字がみつかったら0を小文字が見つかったらbを返し
てるよね?
この場合、jが小文字だったら1を返して、違ったら何もしないで、関数の
最後で(for文を抜けた後ね)0を返すようにしないと。for文の中で一度
もreturnされないということは、一度も小文字が見つからなかったって
ことだから。、
0427デフォルトの名無しさんNGNG
せっかく前スレで答えてみたら、
怜たんがこのスレに誘導したみたいだな。
とりあえず、解答例だ。

/*受け取った文字列の中に小文字が含まれているかどうかを判定する関数の入ったプログラムを作成する*/

#include<stdio.h>
#define N 100

int mozi(char x[]);

int main(void)
{
  char retu[N+1];

  printf("何か100字以内で文字列を入力してください\n");
  scanf("%s",retu);

  if(mozi(retu))
    printf("小文字が含まれています\n");
  else
    printf("大文字だけです\n");

  return 0;
}

int mozi(char x[])
{
  int i,j;

  for(i=0;i<N;i++)
  {
    j=x[i];
    if(j>=0x61&&j<=0x7a)
      return 1;
  }

  return 0;
}

これでいいだろう。君はC言語自体理解していない。
次からは、自分自身で進んで取り組むことだ。
そうしないと、後が苦しくなるだけだろう。
高校生より。

ちなみに、このままコピペした状態でコンパイラに通さないように。
全角空白でインデントしてあるからな。
0428デフォルトの名無しさんNGNG
あ、今気が付いた・・・。
scanfは%c以外の書式では空白を無視するんだったな。
0429デフォルトの名無しさんNGNG
文字コードはASCIIを仮定していいの?
0430デフォルトの名無しさんNGNG
>>429
今回の丸投げ君はASCIIコードと仮定してソースを書いていたからな。
それに従ったまで。

まあ、ソース自体ネタだったのかもしれんが。
0431デフォルトの名無しさんNGNG
旧スレと紛らわしいのでage
0432デフォルトの名無しさんNGNG
学生さんはお休みかな。
羨ましいかな。
0433デフォルトの名無しさんNGNG
え?どうしたのカナ?どうしたのカナ?
0434デフォルトの名無しさんNGNG
>433
カナ坊は葱板に(・∀・)カエレ! かえれよぅ。
0435デフォルトの名無しさんNGNG
漏れに宿題を見て欲しかったら、
「若菜の恥ずかしいコードを見てください」
と切なげに囁け(w
0436デフォルトの名無しさんNGNG
若菜たんってそんなに人気あるのか?
0437デフォルトの名無しさんNGNG
>>435
次からそれね!
わかったか、丸投げ君どもよ!
次から頼むぜ!
0438生徒CNGNG
charの配列で、文字列とバイナリデータを連結したいのですが、
バイナリデータに0x00をいれると終端と認識されるのかstrcat等がうまくいきません。
この場合、地道にすべてのデータを1バイトずつ格納していくしか無いのでしょうか?
アドバイスおねがいします。

ちなみに言語はC++です。
0439デフォルトの名無しさんNGNG
>>438
string使え
0440くそスレの1です。NGNG
mov ax,99
mov ax,98
add ax,99
mov [0120],ax
int 20
という簡単なアセンブラ語を書いて、それをところ
どころ変更してデバッグした時に出るエラーを調べる
宿題が出たのですが、MS−DOSでどうやったら
アセンブラ語が書けるのかが分かりません。(恥ずかしい)
教授に聞けば良いのですが、もう時間が無いので
みなさん、助けてください。m(__)m



0441デフォルトの名無しさんNGNG
C:\>debug
-a
3506:0100 mov ax,99
3506:0103 mov ax,98
3506:0106 add ax,99
3506:0109 mov [0120],ax
3506:010C int 20
3506:010E
-g
プログラムは正常に終了しました.
0442くそスレの1です。 NGNG
>441
ありがとうございました。
0443生徒CNGNG
>>439
stringってつかったことないので良く分から無いのですが、
これ使うと、0x00のあとに連結できたりするのですか?
0444デフォルトの名無しさんNGNG
>>438
文字列の '\0' のある位置に memcpy でバイナリをコピーすればいい。
0445デフォルトの名無しさんNGNG
std::vectorはどうよ?
0446生徒CNGNG
・・・度々、すいません。

>>444
逆の場合はどうなんでしょう?例えば、
0x01,0x00,0x02などと続いた後、"hoge"などをコピーしたい場合です。
0447デフォルトの名無しさんNGNG
教えてください!

MS-DOSで「イベント処理」か「スレッド処理」をつかって
プログラムを作りたいんですが全然わかんないんです。
かなり簡単なのでいいので、サンプルつくっていただけないですか?
0448デフォルトの名無しさんNGNG
>>446
バイナリサイズをどっかで覚えておけば、そのサイズ分ずらしてstrcpyかな?
char buf[1024] = "\x01\x00\x02";
int size = 3;
strcpy(&buf[size], "hoge");
とか。
0449デフォルトの名無しさんNGNG
>>447
普通ではできない。
そういうのをサポートしてるライブラリや言語をひろってくるしかないね。
0450デフォルトの名無しさんNGNG
500!
0451デフォルトの名無しさんNGNG
450だった...
0452デフォルトの名無しさんNGNG
>>449
ありがとうございます。
そのままパクれるところってないですか?
どこからか全部もってきたら全然使えなかったんですが・・。
0453生徒CNGNG
>>448
ナ、ナルホドー・・
ありがとうございます!やってみます。
0454デフォルトの名無しさんNGNG
>>452
言語は何でもよいなら、スレッドはDOS版のRubyとか。

イベントドリブンのライブラリは、昔のTurboC++についていたような
記憶がある。
0455デフォルトの名無しさんNGNG
そういやinterrupt修飾子ってあったな。懐かしい。
0456デフォルトの名無しさんNGNG
>>454
0457デフォルトの名無しさんNGNG
>>454
ありがとうございます。
早速いってみます。
JAVA言語なんですけど大丈夫ですか?
0458デフォルトの名無しさんNGNG
>>457
DOSでJava動くの?
0459デフォルトの名無しさんNGNG
>>458
え?動かないんですか?
DOSでJavaプログラムを作らないといけないんですけど・・。
あれ?なにか勘違いしてますかワタシ・・。
0460デフォルトの名無しさんNGNG
どうせ DOS プロンプトのことだろ…
0461デフォルトの名無しさんNGNG
>>459
純粋なDOS上で動くJava環境は寡聞にして俺はしらない。
どっかがが組み込み用に作っててもおかしくはないが、、、
0462デフォルトの名無しさんNGNG
>>460
ああ、そうです。
それで「イベント処理」を使ってプログラミングを。
0463デフォルトの名無しさんNGNG
>>457-460
ワラタ
0464デフォルトの名無しさんNGNG
まあ、Javaの動く環境なら、イベントドリブンもスレッドも
動きます。
サンプルは検索すれば、山ほど見つかりますし、本屋に行けば
Javaの本もたくさんあります。
0465デフォルトの名無しさんNGNG
>>464
色々ありがとうございました!
0466981NGNG
>426様、427様
どうもありがとうございました。

ただ426様に教えていただいたやり方で実行したところ、大文字しか入力してないのに「小文字が含まれている」と表示されたのですが、あなたのパソではどうでしたか?
0467981NGNG
↑ああっごめんなさい426様じゃなくて427様です
0468デフォルトの名無しさんNGNG
427のコードにはバグがあります。
それはどこにあるのか。自分で考えるのも
勉強と云うものではないでせうか。
0469怜派NGNG
>>466
ヒント:mozi関数のfor文
0470427NGNG
>>467
変だな。俺の環境では上手くいったんだが・・・。

俺もまだまだ初心者ということか。
精進しないとな。
0471デフォルトの名無しさんNGNG
ちょっと外れるけど、
printf("何か%d字以内で文字列を入力してください\n",N);
なんの為にNが定義してあるのか。
0472デフォルトの名無しさんNGNG
islower()萌え
0473427NGNG
ASCIIコードにのみ対応では駄目?
mozi関数内でislower関数でも使った方が(・∀・)イイ?

まあ、最初からislower使えばよかったんだろうけどさ・・・。
0474デフォルトの名無しさんNGNG
>>473
そういう問題じゃないんだが...

> 変だな。俺の環境では上手くいったんだが・・・。

ほんとかいな?
どういう環境でもバグるだろ。
0475デフォルトの名無しさんNGNG
>>474
ふーむ、どういう場合にバグるのか教えていただきたい。

普通に大文字だけを入力しても「大文字だけです」と
出力されるんだが。
0476デフォルトの名無しさんNGNG
>>475
scanfの前に
memset(retu, 'a', sizeof retu);
を入れてやって見ろ。
0477デフォルトの名無しさんNGNG
>>475
1文字しか入力されてなくても100文字分チェックしてるじゃん。
0478デフォルトの名無しさんNGNG
strlen()萌え
0479427NGNG
>>476
なるほど。
俺もてっきり見落としていた。
retuを定義した後、
memset(retu,'\0',sizeof retu);
と記述した。

これでいいよな?
0480デフォルトの名無しさんNGNG
>>479
それはそれで余計な処理だろ。
0481デフォルトの名無しさんNGNG
>>475
パソコンの機嫌によってうまくいくこともあればうまくいかないこともある。
君の場合はたぶん日頃の行いが良かったのだろう。
0482デフォルトの名無しさんNGNG
>>479
> これでいいよな?
駄目

現象を修正しているだけで原因を修正してない。
# チェックする範囲は「配列のサイズ」ではなく、「文字列長」だろ?
0483427NGNG
入力した文字列の長さを調べて、
その情報をもとにfor文を記述したほうがよかったか。

そうすればmemset関数など使う必要もないしな。

0484デフォルトの名無しさんNGNG
/*受け取った文字列の中に小文字が含まれているかどうかを判定する関数の入ったプログラムを作成する*/

#include<stdio.h>
#include<string.h>
#define N 100

int mozi(char x[]);

int main(void)
{
  char retu[N+1];

  printf("何か100字以内で文字列を入力してください\n");
  scanf("%s",retu);

  if(mozi(retu))
    printf("小文字が含まれています\n");
  else
    printf("大文字だけです\n");

  return 0;
}

int mozi(char x[])
{
  unsigned int i,j;
  size_t length=strlen(x);

  for(i=0;i<length;i++)
  {
    j=x[i];
    if(j>=0x61&&j<=0x7a)
      return 1;
  }
  return 0;
}

これでよろしいか?
0485デフォルトの名無しさんNGNG
>>484
>>471は?
0486427NGNG
>>485
全角文字で出力したかったってことで。
と、いうかそこは前スレの981のソースをできるだけ
そのままにしておこうと思って放っておいたところだから。
0487427NGNG
すまなかったな、前スレの981。
偉そうな物言いをしてしまって・・・。
本当に理解できていなかったのは俺だったのかもしれない。

これからも精進していきたいと思う。
どうもありがとう。
0488981NGNG
>427様
いいえわざわざ教えたいただいたのだからこちらこそ感謝感謝です。

>469様
forの中ですか…明日また学校でやってみます。ご指南ありがとうございました。

>484様
unsigned int ですか…?”unsigned"なるものはまだ習ってないのではたして使ってよいものやら…
strlenは習ったのですが…
0489484NGNG
>いいえわざわざ教えたいただいたのだからこちらこそ感謝感謝です。
優しいのだな・・・。俺などに感謝してくれるとは・・・。
今思うと何であんなソースを書いてしまっていたのか・・・。
とんでもないボケをかましてしまったものだ。すまない。

>unsigned int ですか…?”unsigned"なるものはまだ習ってないので
>はたして使ってよいものやら…
今回については、文字列長が最高でも100文字なので、
mozi関数内の変数は全てint型で定義してくれて構わない。
安心してくれ。
0490デフォルトの名無しさんNGNG
>484
size_t i;
char j;
であるべきなのでは?
0491484NGNG
>>490
確かに、jはchar型であるほうが文字コードを代入するという意味が
明確になると思う。
size_tがunsigned intと同義でない環境もあるのか?
ならば、iもsize_t型で定義したほうがいいだろうな。
俺はtypedef unsigned int size_t;と仮定した上で、
size_tはその名の通り、文字列のサイズ(やや語弊ありか)を格納する
変数に用い、他の用途・・・例えば反復子などには普通にunsigned intを
用いるという考えで記述したのだが。
0492デフォルトの名無しさんNGNG
なんか突っ込める場所をわざと残してるように見える
0493林田NGNG
もしもし、あのーさっき注文した林田ですけど
宿題まだですかー?
0494デフォルトの名無しさんNGNG
ちょーど今、出たところですぅ
0495デフォルトの名無しさんNGNG
なんだ・・・agaってきたから宿題かとおもった。
0496デフォルトの名無しさんNGNG
なんだ…レス増えてたから宿題かとおもった、おれもか…
0497981NGNG
なるほど、strlenがないと、(Nー入力された数)分だけ勝手に配列されてしまうわけですね。

皆さんどうもありがとうございました。おかげ様で課題を終えることができました。
0498デフォルトの名無しさんNGNG
なんだ…レス増えてたから宿題かとおもった。 誤爆か…
0499デフォルトの名無しさんNGNG
なんだ・・・agaってきたから宿題だとおもたら・・・ 出前か…
0500junkNGNG
VC6.0で作成したプログラムに、ACCESSで作ったデータベースを
ODBCでつなげたいんですけれども。

以前に、作成したプログラムに ACCESSをつなげるにはどのような
手順でやればいいのでしょうか?

ACCESS単品のODBCのつなげ方はわかるのですが・・・
既存のプログラムにデータベースサポートのつけ方どうか
教えてください!!調べてもなかなかみつからなくて 泣

お願いします!
0501ポケコンでNGNG
連立方程式を解くプログラムって
御存知の方いらっしゃいますか?
もしいらっしゃれば
何卒、
漏れにご教授いただけませんでしょうか?
お願いします

漏れは今SHARPのPC−G830
使ってます
BASICでお願いします

ネタなんかじゃありません
0502えれなNGNG
http://www.interweb.ne.jp/~imani/gaus.htm
0503501NGNG
>>502
ありがとうございます
これに行番号付けて入力すればいいんですよね?
0504デフォルトの名無しさんNGNG
JAVA言語で乱数によって「○」と「×」を配列にいれ1行で表示せよ
また、表示させるボタンと表示を消すボタンつくり、表示させている間の
時間を計測する関数を組み込みなさい。

まったくわからないんですが、
なにか参考になる情報教えてもらえないでしょうか?
0505デフォルトの名無しさんNGNG
http://www.google.com/
http://java.sun.com/
http://www.jcp.org/
0506デフォルトの名無しさんNGNG
>>504
あなたが何が出来て何が出来ないか、
プログラムの開発経験はあるのかJAVAを使った事はあるのか、
まったくわからないんですが、
なにか参考になる情報教えてもらえないでしょうか?
0507デフォルトの名無しさんNGNG
>>504
コツは1行で表示せよとは書いてあるが、何文字表示せよとは書いてないこと。
char[1]に適当に○×入れて文字一個だけ表示しちゃえ。
さらに表示させるボタンと消すボタンは作っても、表示時間の計測にそれを利用する必要が無いのも味噌。
プログラム側で固定してしちゃえば楽勝♪
0508デフォルトの名無しさんNGNG
計測しても表示しろとは書いてないから、なにもしないが正解。
0509504NGNG
>>505
検索は、かけたんですが
どうも、いいのがヒットしなくて、、
というか、ヒットしてても良くわかってないだけなのかもですが、、

>>506
あ、すみません。
開発経験はないというか、まだ高校生なので、、、
授業で2,3回JAVAはやったのですが、それもよくわからなくて。。

>>507
それいい考えですね^^
と思ったんですが、一応2、30文字くらいと聞いた気がします。
0510デフォルトの名無しさんNGNG
>>506
JAVA以外は?
プログラミング自体の経験がどの程度かわからないと・・・。

0511デフォルトの名無しさんNGNG
最近は高校の授業でJavaをやってるのかい?
0512506NGNG
JAVA以外は、Cを構造体の前くらいまでやってました。
というか、それ以上は理解不能になってしまいまして、、TT

JAVAは、ちょうど私たちの年から取り入れることになったそうです
0513デフォルトの名無しさんNGNG
>>512
クラスってわかる?オブジェクトってわかる?インスタンスってわかる?イベントは?
判らなかったらセンセんとこ殴りこみに行ってできるわけねだろゴルァ!
0514デフォルトの名無しさんNGNG
ちったぁ努力せぇよ
http://www.google.com/search?num=100&hl=ja&q=java+%93%FC%96%E5&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0515506NGNG
えっと、、一応見よう見まねでランダムで配列に入れて表示するみたいなのを
つくってみたんですが、コンパイルはできるんですが実行されないみたいで、、
わかる人がみたら、かなりへんてこなんでしょうね、、、
○をTに、×をFにしてるんですが、、難しいですね、、

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import java.awt.Graphics;


public class atest extends Applet {

       String S;

public void main(String arg[]){

int i;
double rnd;
char word[]= new char[30];

for(i = 0; i < 30; i++){
          rnd = Math.random();
          if(0.0 <= rnd && rnd < 0.5){
                word[i]='T';
          }          
else{
word[i]='F';
}
}
S = new String( word );

}

public void paint(Graphics g) {
g.drawString(S,30,30);
}

}
0516デフォルトの名無しさんNGNG
>>514
そんなことゆーたらこのスレの存在意義が・・・
大体こんなスレに聞きにくるやつでPGになろうと思ってるやつなんかどうせいないんだから答えてやってもいいじゃん。
自分で必死に調べたってどうせ無駄になるんだし。
0517506NGNG
あ、、importってこんなにいらないんですよね?
最初は、いっぺんにいろんなことやろうとして
失敗して、消すの忘れてました。。。
0518デフォルトの名無しさんNGNG
>>514
Appletってmainだっけ?initだったかrunだったかどっちかだった気がするんだけど・・・?Javaよく知らない。
あと背景色や文字の色もいちおセットしたほうがいいかなぁ?
Randomは・・・まぁそれでもいっか、個性でてるし。
0519デフォルトの名無しさんNGNG
>>518
そだね。
初期化処理は
public void init()
でよろしく。
0520デフォルトの名無しさんNGNG
>>506
すげぇなぁ、結構本格的な課題だのう。
まぁこの時期だから、最後のまとめみたいなもんなのか。

>>515
とりあえず、ボタン作らなきゃいけないので、Appletに
直drawString()しないで、
1.○×を表示するPanel(ここでdrawString()する)
2.表示ボタン
3.非表示ボタン
をAppletにadd()する方向で。

あとは、ボタンにActionListener(を継承したサブクラス)を
追加(addActionListener())すると、ボタンが押された時ActionListenerの
actionPerformed()が呼ばれるので、呼ばれたら上の1.に対して、
表示するメソッドや非表示にするメソッドを呼ぼう。

がんばれ
0521520NGNG
>>515
すまーん。
ActionListenerを継承したクラス
じゃなくて、
実装したクラス
です。
0522怜命NGNG
ひまだー
0523怜NGNG
>>515
とりあえず、一番簡単そうな実装法書くね。
atestクラスのメンバ変数として、現在表示か非表示かを表す変数を持つ。
で、paintメソッドで表示状態なら、文字列を書くようにすればいいね。

で、表示、非表示のbuttonをaddして。
で、ボタンを押されたときに、(atestクラスの)action()関数でイベント
を受け取って、表示、非表示なら上で言ったメンバ変数を書き換える。
表示のボタンが押された場合は、そのときの時間を記憶(これもメンバ変数
として持ってないとね)。非表示のボタンが押されたときは、記憶した時間
からどれくらい経っているかを計算。
 actionの最後で、repaint()を呼ぶの忘れないでね。

 こんな感じで。っていっても、ここで書いたの全部理解して貰えるとも思
ってないので、わからないところはどんどん聞いてね。
0524怜NGNG
ボタンとaction()の使い方なんかは、下のサンプルなんかを参考に。
ttp://www.wakhok.ac.jp/~tatsuo/kouki96/11shuu/action.html
0525515NGNG
親切にありがとうです^^
でいきなりわからないのですが、
現在表示か、非表示か表す変数をどう組み込むのかわからないのですが、、
無知ですみません、、がんばってはいるんですが、、
0526怜NGNG
String S;
と同じように(同じ位置で)
boolean flag;
と宣言して。

最初の状態で表示したいなら、
flag = true;
って、init()の中で書くのね。
もし表示させたくないときは、
flag = false;
ね。

で、paint()の中で
if(flag){
 (文字を書く処理)
}
みたくすればいいと思うわ。
0527デフォルトの名無しさんNGNG
結局、“えれな”ではなく“怜”な罠(w
0528515NGNG
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import java.awt.Graphics;

public class atest extends Applet {

String S;
boolean flag;
public Button tButton, fButton;

public void init(){
int i;
double rnd;
char word[]= new char[30];
flag=false;

tButton = new Button( "表示" );
          tButton.setBackground( Color.lightGray );
          add( tButton );

          fButton = new Button( "消去" );
          fButton.setBackground( Color.lightGray );
           add( fButton );

for(i = 0; i < 30; i++){
          rnd = Math.random();
         if(0.0 <= rnd && rnd < 0.5){
word[i]='○';
         }    
 else{
word[i]='×';
}
}
S = new String( word );

}

public void paint(Graphics g) {
if(flag){
g.drawString(S,30,80);
}
}
      public boolean action( Event evt, Object obj ) {

        if( obj.equals("開始") ) {
    flag=true;
    }
 else if( obj.equals("終了") ) {
    flag=false;
    }
 repaint();
    return true;
   }
}
0529515NGNG
↑教えていただいたとおりにやると、見事うごきました^^
ほんと感謝です!!
ただ、コンパイル時にactionのところが推奨されないとでます。
アプレットは、ちゃんと動くのですが、、、

あと、表示を押して、消去を押して、再び表示を押すと
また新しい文字列にするには、どこで初期化したらいいんでしょうか?
今のままだと、表示して、消去して、また表示おすと、同じものが出てきてしまうので、、

何度もすみません。。><
0530怜NGNG
>>529
推奨されないって出るのは古いやり方だからなのね。
回避するためには、>>520さんの言ったようにやればいいのかな?
まあ、課題だったら今のままでも問題ないと思うよ。

  if( obj.equals("開始") ) {
    flag=true;
  }
この部分で、再び表示を押した処理をしているのだから、
ここで、initでやったようにもう一度Sを決めなおせばいいと思うよ。
0531515NGNG
速レスありがとうです〜無事できました^^
ここで、忘れていたのですが、時間を入れないといけなかったんですね、、
時間はsetTimeというメソッドをつかうのでしょうか?
これを、表示のボタンと消去のボタンに組み込んで
最後に引き算すれば大丈夫なんですかね?
あ、でも、引き算ってできるんでしょうか、、、
0532515NGNG
プログラムのほうに時間を測る関数をくみこみました。
表示押した時に
start = System.currentTimeMillis();
消去を押した時に
stop = System.currentTimeMillis();

で時間を計算する関数を
public long getTime(){
t=stop - start;
  return t;
}
のようにしてみました。
後は、これを表示させるだけなんですが、
終了の時に表示させたいんですが、この時は表示に何を使えばいいんでしょうか?
アプレットに表示させることが、どうしてもできなくて、、
ご教授おねがいします。
0533515NGNG
時間計測を表示を実装したものをここだと長いのでアップしてみました。
ただ、時間が計測されず、0になってしまうのですが、、、
おかしいところをどなたか、教えてください。
お願いします。

http://rinarina.3nopage.com/atest.html
0534デフォルトの名無しさんNGNG
>>532
○×表示するのと同じでいいやん。
さすがにこれ以上は教えてクンの仲間入りだぞ。
0535デフォルトの名無しさんNGNG
>>533
ありがとう。
忘れていた何かを思い出した気がするよ(´Д`)
常に0が表示されるのは単にgetTime呼び忘れてるだけ。
0536麻衣派 ◆COx/Mai. NGNG
怜タン…ハァハァ

…はっΣ(゚Д゚ )
0537宿題おしえてください。C言語です。NGNG
英文テキストを読み込んで,母音の数を数えて,
その個数および全文字に対する比率を計算するプログラムを書きなさい.

C言語初心者な文系人間にこの課題はできそうにありません。
char がほとんど理解できていないので...
誰か教えてください。宜しくお願いします。


0538デフォルトの名無しさんNGNG
>>537
> 誰か教えてください。宜しくお願いします。
まず、英文テキストを読み込んで
 ・文字数をカウントするプログラム
 ・aの文字数をカウントするプログラム
を作ってみよう。
0539デフォルトの名無しさんNGNG
>>537
どこまで分かってるんだ?
fopen()は分かるか?
0540デフォルトの名無しさんNGNG
宿題1000円で引き受けます。
[email protected]
0541デフォルトの名無しさんNGNG
作ったよ。
って、fopen使わなきゃ駄目なの?
標準入力から読みこみにしたけど。
0542デフォルトの名無しさんNGNG
>>540
本地さんがこんなところにも(^^;
っていうか本物?
0543デフォルトの名無しさんNGNG
数学板で相手にされなかったのですが
連立微分方程式をとく(数値計算で)プログラム
どこかのサイトにありませんか?
検索したのですがみつからなくて・・
こんなかんじです.

a*(b+c*x)dy/dt=d*(e-y)-(f-c*y)*z
dx/dt=-1/a*z
z=g*(w(y)-i)

定数(a,b,c,d,e,f,g,i)
未知数(x,y,z)
独立変数t
w(y)はyによって決まる定数.

境界条件
t=0,x=3
t=0,y=28

0544怜派NGNG
>>543
こんなの見つかったよ
http://www.ed.kagu.sut.ac.jp/~j-yajima/chemistry/PROGRAM/RNGKUT1.f
0545543NGNG
>>544
ありがとうございます.
これはFORTRANですよね.
がんばってみます.
0546デフォルトの名無しさんNGNG
JAVAで
アプレットのテキストフィールドに文字を入力して、
ボタンを押すとファイルに書き込まれるようにするには、どうしたらいい?
誰か、教えてほすぃYo!
お願いしま〜
0547デフォルトの名無しさんNGNG
>>546
Javaアプレットではセキュリティの関係上
ファイルに書き込むことはかなり面倒
0548545NGNG
面倒って事は、どうにかすればできます?
どうにかして書き込みたいんですが、、
0549↑NGNG
あ、いきなり誤爆、、
回線切っ・・・
0550怜NGNG
>>548
 んー、そういう話題はJavaスレの方がいいかも。
 私は余り詳しくない、というかやろうとしたことないから知らないん
だけど、サーバ側で(アプレットとは別に)ファイルを書き込む処理をす
るものを走らせて、Appletがそこと通信するとかかな?
 まあ、しばらくたって反応ないようなら、Java系のスレで聞いてみて
ね。
0551デフォルトの名無しさんNGNG
>>548
電子署名付きアプレットってのでできるんじゃないですか?
http://www.dmz.hitachi-sk.co.jp/Java/Tech/security/11signedapplet.html
とか。めっちゃ面倒そうですけど。
0552烏龍茶NGNG
>>546
IE 限定技。そのアプレットを置く Web サイトを「信頼するサイト」に
登録し「信頼するサイト」の Java セキュリティレベルを「サンド
ボックス」から「有効」にする。これでアプレットの全てのセキュリティが
外れる。
0553烏龍茶NGNG
もう一つ、サーバ側でサーブレットや CGI を作ることが出来るなら
有効な技。アプレットからサーブレット (CGI) に保存したいデータ
を渡す (URLConnection を使用)。サーブレットそのデータをメモリ
なりファイルなりに保管する。アプレットは showDocument() を
使用してもう一度サーブレットを起動する。サーブレットは
Content-Type: application/octet-stream でも付けて保存したい
データを返す。これでブラウザの「名前を付けて保存」機能を使用
することが出来る。
0554546NGNG
みなさま、ありがとうです〜
いろいろ試してみたいと思います
0555537です。NGNG
英文テキストを読み込んで,母音の数を数えて,
その個数および全文字に対する比率を計算するプログラムを書きなさい

>>538
文字数のカウントの仕方がわかりません。文章をよみこむところまでできました。

>>539
fopen()って習ってないので使えないです…。
検索かけて調べてみましたが、イマイチ使い方がわかりません。
0556デフォルトの名無しさんNGNG
>>555
習うもんじゃない。
自分で学べ
0557超先生@プログラム板NGNG
  ∧_∧
< `ш´> <ちょっとだけヒントだ
int i,vowel = 0;
...
/* 母音の数を数える */
for(i=0;text[i]!='\0';i++){
 if(text[i]>='A'&&text[i]<='Z') vowel++;
}
0558557NGNG
  ∧_∧
< `ш´> <間違えた、、、
0559デフォルトの名無しさんNGNG
それは大(以下略
0560デフォルトの名無しさんNGNG
int i,vowel = 0;
...
/* 母音の数を数える */
for(i=0;text[i]!='\0';i++){
 if(strchr("aiueo",text[i])) vowel++;
}
0561デフォルトの名無しさんNGNG
"aiueoAIUEO"じゃない?
0562葉鍵板住人NGNG
さすが超先生、ここでも日本語間違えてるし(w
こうでしょ。

int is_vowel(const int c)
{
cosnt char vowel[] = "aiueoAIUEO";
int i;

for(i = 0;i < (signed int)strlen(vowel);i++)
if(c == vowel[i])
return 1;
return 0;
}
0563デフォルトの名無しさんNGNG
> for(i = 0;i < (signed int)strlen(vowel);i++)
最悪。
0564超先生@プログラム板NGNG
  ∧_∧
< `ш´> <#define c_strlen(t) (sizeof(t)/sizeof(t[0])-1) /* 文字列定数の文字数ゲット */
0565生徒BNGNG
皆様、憶えていらっしゃるでしょうか。生徒Bです。
>>160にて私、
>sscanf(num,"%x",numuc);でうまくできそうですね。

などと、とんでもない事を書いていたので、訂正にまいりました。
numucはunsigned charなのでこれ、至極おもしろい事になるような、ならないような。
ということで、

int numi;
sscanf(num,"%2x",&numi);
numuc=(char)numi;

printf("えれなタンをだせー!!");


あ〜、すっきりage。
0566デフォルトの名無しさんNGNG
> for(i = 0;i < (signed int)strlen(vowel);i++)

こういう書き方する人ってVBかなにかでプログラム覚えた人?
0567デフォルトの名無しさんNGNG
>>566 pascalかも pascalのfor文は最初の1回しか評価しないから
0568デフォルトの名無しさんNGNG
ところで、>562は何のためにstrchrの劣化版を再生産しているんですか?
0569デフォルトの名無しさんNGNG
勉強とは先人の歩んだ道のりを辿ることに他ならない
0570デフォルトの名無しさんNGNG
素人にかぎって「こんなの自分で作っても簡単だよ」と言って、
標準関数の劣化版を作りたがる。
0571デフォルトの名無しさんNGNG
母音の数を数えるなら、strcspn()使うのが速いのかな?
それから sizeof(char)==1 は保証されてないんだっけ??
0572デフォルトの名無しさんNGNG
>>571
されてるよ
0573デフォルトの名無しさんNGNG
ワイドキャラのリテラルというワナ。
0574デフォルトの名無しさんNGNG
age
0575( ´∀`)NGNG
この漏れはCの独学で毎日泣きをみているドキュンだ。
自己紹介はここらで終わって早速糞な質問に答えてくれる
やさしいお前らにお願いです。

言葉足らずな参考書に変わってmalloc関数とfree関数の
使い方、書き方を説明してくれ。
褒美は後日レス600のヤツがしてくれると思う。
0576デフォルトの名無しさんNGNG
free(malloc(0));
0577デフォルトの名無しさんNGNG
>>575
態度がデカい割には可愛い顔してるんだな(w
0578デフォルトの名無しさんNGNG
p = malloc(必要なバイト数)
p は voidへのポインタ、NULL が帰ってきたら領域が確保できてない。

この確保した領域は free(p) で開放する。
exit で抜けた時に領域が開放されるので free が必要ないという輩がいるが、それはけしからん話。
坊主が人殺しして「でも仏に仕える気持ちは本物なので私は聖職者」と言っているくらい本末転倒。
0579デフォルトの名無しさんNGNG
また拗れそうな話を(w
exit(プロセス終了時)にプロセスが確保したメモリが解放されるのは事実でしょ。
free()しない事の問題点を理解できてれば呼ばなくても。
でもfree()の呼び出しコストが問題にならないならmalloc()系とfree()は対で呼び出すべき。
0580578NGNG
>>579
いや、「メモリが最終的に開放される/されない」は関係ない。
例外は少ないほどいい。例外を許すという事はそれだけ混沌が増えるという事。
可能な限り一般的な方法を用いるべし、という意識を小手先のテクニックのために
わざわざ低下させるような事は好ましくないと思う。
0581580NGNG
age てしまった。スマソ。
0582デフォルトの名無しさんNGNG
ほら拗れた(w
0583デフォルトの名無しさんNGNG
>578
チョパーリのボージはニクダベルヨ
0584581NGNG
>>583
チョッパリのジーボは肉田ベル代?
意味がわからん。
0585デフォルトの名無しさんNGNG
田代の肉ボーはベリチョルパッジ
0586デフォルトの名無しさんNGNG
> 例外は少ないほどいい。例外を許すという事はそれだけ混沌が増えるという事。
例外は全く許さないのか?

> でもfree()の呼び出しコストが問題にならないならmalloc()系とfree()は対で呼び出すべき。
とフォローしているだろ。

なんで教条主義者は人の話を聞かないのか。
0587デフォルトの名無しさんNGNG
えれなタン…このスレを救ってくれ…
0588デフォルトの名無しさんNGNG
age
0589デフォルトの名無しさんNGNG
malloc/calloc/realloc と free が対?
あほなことを…
0590デフォルトの名無しさんNGNG
次の数式を定義する文法に属性に関する式を追加して、逆ポーランド記法の中間言語を出力する属性文法を作成せよ。

文法 G = (T, N, S, P)

T = {+, *, (,), a}
N = {E, T, P}
S = E
P =
{E → E+T,
E → T,
T → T*P,
T → P,
P → (E),
P → a}

スレ違い気味ですが助けてください、、、
0591デフォルトの名無しさんNGNG
具体的にどこがわからないのか説明しなさいよ。
0592590NGNG
失礼しました。ぶっちゃけて全くわからんのですがとりあえず属性文法ってゆうのからお願いします。


ぁ、もちろん検索はしたんですがさっぱりなのです。。
0593デフォルトの名無しさんNGNG
>>592
http://watalab.cs.uec.ac.jp/OBandG/fukuda/semi/attr.htm
この辺読んで、どの辺わからないかを。
0594デフォルトの名無しさんNGNG
いや、そこ読んだんですがあまり理解できず…
問題にどうやって活かしたらいいのか、と。
0595怜NGNG
>>594
 んーと、私も属性文法って全く知らないんだけど、>>593を読んで理解した
範囲で説明ね。
 例えば、ビット列の場合、継承属性と合成属性っていうのを使っているん
だけど、逆ポーランド記法の場合は、継承属性は無くても大丈夫じゃないか
な? というのも、ビット列の場合、「それが何桁目か」っていう情報が重
要だけど、逆ポーランド記法の場合は重要じゃないから。
 まず、与えられた式を文脈自由文法で解釈するっていうのは、それは木を
作っているのに等しいっていうのはいい?
 このときに、この木を計算するには、ビット列みたくこれが木のどの位置に
あるかていうのが重要でなければ、基本的には葉から順に計算してけばいい
わけね。
 このときに、例えば、E→E+Tというプロダクションをしたときに、これは
逆から見れば、EとTというノードをまとめて、Eというノードにしたってこ
とだよね? このとき、右側のEのが取る値をSyn(E1)として、Tが取る値を
Syn(T)とすれば、左側のEが取る値はSyn(E1)+Syn(T)になるよね?
 まあ、こんな感じで定義していけばいいんじゃないかな。
 ちょっと、属性文法に関しては>>593の知識だけで話してるので、間違っ
てるところあったらフォローくれたら嬉しいな。
0596デフォルトの名無しさんNGNG
>怜さん
すいません、お詳しいようなのでちょっと甘えてみたいのですが、、、
熟読させていただきましたがどーにも、、、
とりあえずこの辺の知識でわかってることを整理してみますと
逆ポーランド記法ってのが
ab+c*
みたいに書くものであることと
たとえば式からa*aという語を導出する際には
E > T > T*P > P*P > a*P > a*a
とやることぐらいで、、、
この場合問題の答え方もわからんです、、、
0597怜NGNG
>>596
ごめん、ごめん、すごくうそ書いてたかも。
数式を解釈して、逆ポーランド記法にするのね。

何か誤解してた。説明全面的に書き直すからちょっと待っててね。
0598通過する人NGNG
>>596
俺も属性文法ってのは知らんが
文脈自由文法まわりの話をきちんと理解してるかどうかがまず先だね。
それが分かってれば >>593 のところのページを読むだけで分かる。

まず滅茶苦茶大雑把にイメージで言ってしまえば、
1)与えられた文法に従って導出木を作ってから、
2)木のてっぺんから末端へ向かって継承属性を繰り返し全ての末端にいたるまで適用し、
3)今度は末端から木のてっぺんへ向かって合成属性を繰り返し適用する、
という流れで、属性文法が適用される。
1)の作業ルールを決めるが文脈自由文法で、
それに2)と3)の作業ルールを追加したものが属性文法(と>>593のページに書いてある(藁))。
文法使って木ができる、というあたりのイメージはちゃんと頭にあるかい?
0599デフォルトの名無しさんNGNG
あくまでメインはキミで、このスレはちょっとしたサポートなんだからな。
このスレだけの回答だけで宿題の回答を作ろうとするなよな。
勘違いするなよな。
0600怜NGNG
実は、この辺全然詳しくないの・・・
無理して説明してみるから苛めないでね>識者の方

a*aの例で説明してみるね。

E > T > T*P > P*P > a*P > a*a
という風に解釈するわけよね?
これは、数式を木に直したのと同じなわけね。つまり、
E−T−T−P−a
  |
  P−a
って木にしたってことね。

じゃあ、この木を逆ポーランド記法で表したいっていうのが今の問題ね。
ちょっと、このままでは説明しにくいから、ノードに番号ふるね。
E1−T1−T2−P1−a1
   |
   P2−a2
としとくね。ここで、例えばT1を表す逆ポーランド記法をSyn(T1)と書く
ことにするの。
このとき、P2を表す逆ポーランド記法は、a2と同じ、つまりaでいいよね?
これはP→aというプロダクションだったら、Syn(P)=a
っていうことになるんだと思う。P1も同様ね。

次にT2→P1って変化について考えるね。
これは、T→Pってプロダクションで生成されたものだよね?
このとき、T2とP1のポーランド記法は一緒だということで、
T→Pってプロダクションのときは、Syn(T)=Syn(P)
ということになるわけで。

で、T1→T2,P2と分岐しているとこあるよね?
これは、
T→T*Pというプロダクションで生成されたものね。このとき、
T1はaa*って表して欲しいわけで。
つまり、
Syn(T) = Syn(T)Syn(P)*
って感じになるのかな。

うーん、本当にこういうものなのかな・・不安。
0601デフォルトの名無しさんNGNG
怜たんのちょっぴり頼りない一面ハケーン・・・(;´Д`)ハァハァ
いいYO!怜たん!(・∀・)イイ!
0602590NGNG
すいません。考えながら読んでたら亀レスで、、

>T2とP1のポーランド記法は一緒だということで、
>T→Pってプロダクションのときは、Syn(T)=Syn(P)
>ということになるわけで。

というところがよくわからんのですが、、

0603590NGNG
あ、ちゃんと木書いてみたらわかりました。
怜さんのおっしゃることは理解できた…つもりになりました。
みなさまご協力どうもです。
0604デフォルトの名無しさんNGNG
怜たんが駄目なのならえれなたんしかいない!
確か違うオッサンが演じてたよね?
0605怜NGNG
>>602
 えーと、まず文脈自由文法周りは理解してる?
 その上でこの問題において、E,T,Pはどういう状態を表しているかは
わかる?
0606デフォルトの名無しさんNGNG
あ、終わったのか
0607怜NGNG
って、スレ違い・・・・。
0608デフォルトの名無しさんNGNG
怜たんって学校どこ?
0609怜NGNG
んー・・・大学名は秘密。

今M1です。みなさんよりちょっと年上ってくらいだね。
(ちょっとじゃないって突っ込み入りそう・・・)
0610デフォルトの名無しさんNGNG
と・・年下・・・ハァハァ
0611KanaiNGNG
C言語で、下記の表をあらわすにはどうしたらよろしいでしょうか?
(例:行を6列に指定した場合。N行の場合はどうなるのでしょうか)

# #####
## ####
### ###
#### ##
##### #
0612デフォルトの名無しさんNGNG
そうか。オッサンじゃなかったのか。こりゃ失礼。
0613デフォルトの名無しさんNGNG
>>611
forでぐるぐるまわせ。
0614デフォルトの名無しさんNGNG
>>611 NxNじゃないのは間違いじゃないのかとか、
「行を6列」って表現が気にならないでもないけど、
char m[N-1][N+1];
としておいて
m[j][i]=((i-1==j)?(' '):('#')); /*0オリジン*/
で、forすればどう?
コスト的には全部埋めてから違うとこだけ書くほうが
いいと思うけど、何回もやらなければこれでもいいかな?
0615デフォルトの名無しさんNGNG
614は怜たんっぽい
0616デフォルトの名無しさんNGNG
>>612
それは怜タンの設定であって・・・
大学名が秘密なのは考えるのが面倒だったんだと思われ
0617怜NGNG
>>616
いや、そういうわけではないです・・・
0618デフォルトの名無しさんNGNG
>>617
そういうわけではない、というのが1行目の書き込みに対してなのか
2行目の書き込みに対してなのかわからないんだが・・・

もしかして演じている貴方も大学生なのかい?
それとも演じて自体いないとか・・・そうだったら(;´Д`)ハァハァだYO!
0619怜NGNG
>もしかして演じている貴方も大学生なのかい?
>それとも演じて自体いないとか・・・そうだったら(;´Д`)ハァハァだYO!

どちらかはご想像に任せます(笑)
0620デフォルトの名無しさんNGNG
>>619
そのどちらかなんだね?
ふーむ・・・
0621怜命NGNG
そろそろageても良い時間帯だろう。
0622デフォルトの名無しさんNGNG
怜ちゃんは可愛いな・・・。
いつか怜ちゃん萌え萌えゲームでも作る予定にしておこう。
0623デフォルトの名無しさんNGNG
えれなはどこいった?
0624ガクセイNGNG
質問です。
ストリーム系のオブジェクトを引数として受け取り、
大文字の文字列を小文字に変換して返すクラスを作れ
といわれました。
ファイルからもキーボードからも読み込めることが条件です。
どういうことなのかサッパリです。
0625デフォルトの名無しさんNGNG
class toUpper
{public:
 void operator()(FILE *in, FILE*out)
 {
  int ch;
  while( ch = fgetc( in ), ch != EOF )
   fputc( tolower(ch), out );
 }
};
0626怜NGNG
>>624
言語は?
0627デフォルトの名無しさんNGNG
C++何ですけどどなたか教えてくれませんか?
APIでビットマップをファイルから読み込んで、読み込んだファイルに
反転とか原色とかのエフェクトをかけるプログラムを作成したいんで
すけどどうやったらいいんですか?もうさっぱりです。
0628デフォルトの名無しさんNGNG
Googleで調べな。
その手については根気よく調べれば必ずヒントは見つかるはず。
0629ガクセイNGNG
>>625
ありがとうございます。
>>626
JAVAです。アプレットではなく。
ファイルからも、キーボードからもというのがわかりません。
先生がインターフェースを提供するとかなんとかいってました。
0630怜NGNG
>>629
んー、おそらく、
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/io/InputStream.html
この辺を、引数として取って、read()で一文字づつ読んで、大文字を小文字に変換
して出力するのだと思うな。
0631学生さんNGNG
VC++でプログラムを作っているのですが、(ダイアログベースで作っています。)
ダイアログのエディットボックスのデータを別のダイアログのエディットボックスに
移すにはどうしたらいいのでしょうか?教えて下さい。


0632デフォルトの名無しさんNGNG
>>631
エディットコントロールに入ってるテキストをゲットする関数、
えーと、GetWindowText()だっけ?でテキスト取得して、
なにかしらの方法(メッセージを定義して、SendMessage()?)
で他のダイアログのプロシージャに送って、SetWindowText()で
エディットコントロールにセットする感じでよろ。
0633デフォルトの名無しさんNGNG
>>632
SendMessage()はいりません。
GetWindowText()とSetWindowText()だけでOK
0634632NGNG
>>633
フォローさんきう。
ちなみに、それって別ダイアログ(のエディットコントロール)の
ウインドウハンドルを送信元が知ってることが前提ということでいいのかな?
0635学生さんNGNG
ありがとうございます。詳しく申しますと下のようになります。宜しくお願いします。
いま卒業研究をやっていまして、質問があります。
ダイアログベースで、親ダイアログのエディットボックスにファイルパスを
入れて、子ダイアログのエディットボックスにファイルの内容を表示して、
入力不可にするには親ダイアログのボタンにどのようなコーディングをすれ
ば、よいのでしょうか?教えて下さい。宜しくお願い致します
0636デフォルトの名無しさんNGNG
>>635
んあ?どのへんで迷ってるの?

とりあえず、なにしたらいいか全く分からない時は、
http://203.174.72.112/y_kumei/
がいいよ。
0637デフォルトの名無しさんNGNG
宿題募集age
0638デフォルトの名無しさんNGNG
>>637
よろしかったらJAVAスレの方に来ていただけますか?
あちらに宿題を貼っております。
どうか助けて下さい、お願いします。
0639デフォルトの名無しさんNGNG
c言語でエノン写像
x(n+1)=1-1.4x(n)~2+y(n)
y(n+1)=0.3x(n)
のリヤプノフスペクトラムのデータを出したいんですが
どうすればいいんでしょうか?

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

const long N=1000;
main()
{
long i;
double x, x1, x2, y1, y2;
double lambda;


x = 0.2;

x1 = 0.001;
y1 = 0.001;

lambda = 0.0;

for(i = 1; i <= N; i++)
{
x2 = -2.8*x*x1+y1;
y2 = 0.3*x1;


lambda = lambda+log(sqrt(x2*x2+y2*y2)/sqrt(x1*x1));

printf("%lf\n",lambda/i);


x1 = x2;
y1 = y2;

lambda = lambda;
}

}
0640怜NGNG
>>639
 うーん、リヤプノフスペクトラムって何かわかる人ってかなり限られちゃう
と思うから、その辺説明していくれないと答え期待できないんじゃないかな。
私もわからないし。
0641ムタNGNG
VC++で、Memory Assumption の測り方分かる人いますかね?
具体的な数字で出したいんっすけど、HELP使ってもどこにあるのやら。
多分メモリー測るファンクションを二つ使って(メモリー使う前後に)、その数字を後から差し引く
って方法だとは推測できるけど、どんなファンクション使ったらいいのやら。
誰か分かる人いたら教えてください。
0642デフォルトの名無しさんNGNG
>>641
MSDN で allocMemDF とか _CrtMemCheckPoint とか CMemoryState とか ‘診断サービス’ とか調べてみれ。
0643 NGNG
>>641
ついでに GlobalMemoryStatus() も見とくか?
0644デフォルトの名無しさんNGNG
あるWebサイトにあるHTML文書内の指定された箇所に書かれている文字列を抜き出す方法をご存知でしたら教えてください。

例えば・・・
Yahooファイナンスを使って、ある企業AとBの本日の最高株価を抜き出して、それをエクセルのセル(0,A)、セル(0,B)に表示する

というような事をしたいのです。
使えるプログラムはJavaとVBEです。
よろしくお願いします。
0645644NGNG
すいません、ageで。
0646デフォルトの名無しさんNGNG
SGMLパーサとか、HTML-DOMとか使え。
invalidなHTMLなら、その担当をうらみつつ、
パターンマッチで切り抜けろ。
0647トロだにゃ& ◆s3MjONwo NGNG
          |\              /|`、
            | | \            / | |
            | |   \_____/  .| |
         |レ ´              \|
          |                 ヽ
           |                  ヽ
          |               ,,,,;;::'''''ヽ
          |     ,,,,;;:::::::::::::::       __ ヽ
          |     "   __ ::::  '"ゞ'-' |
          |       - '"-ゞ'-' ::::::...     |
          |             :::::::   ヒつ |
           |       ヒつ   ( ,-、 ,:‐、   |
          |                     |
          |            __,-'ニニニヽ . |
..          |              ヾニ二ン"  /
           ヽ                   /
            ー――――――l――l――‐´
                      /、  ||
                       | |  / |
                       || |  | |
                      | | |  | |
                      | | |  | |
                     /  | | _ | |ー 、
                    / /  ̄   ̄ー- _/>
                    `ー          ´
            嘘は嘘であると見抜ける人でないと
           (怜たんの消息を知るのは)難しい
0648デフォルトの名無しさんNGNG
ageとく
0649Help_MeNGNG
Please help me.

http://www.geocities.com/sukiyaki0001/java2.doc
http://www.geocities.com/sukiyaki0001/java2.txt
0650ニコさんNGNG
SQLを実行させようと思いまして下記の様にコーディングしましたが、
"\'m_Com1\'" を読み取ってくれません。シングルコーテーションの中では
なくて、’’も含めて読み取りたいのです。どなたか教えて下さい。
ちなみに、m_Com1はメンバ変数です。全体はこのコードで大丈夫でしょうか?
心配です。
CString strSql = "Select timem,exp,tostn from jikoku where ";

if(m_Com1 == ""){
strSql+= "Stn = " + "\'m_Com1\'" + " AND ";
}else if(m_Com2 == ""){
strSql+= "Goto = " + "\'m_Com2\'" + " AND ";
}else if(m_Com3 == ""){
strSql+= "Day = " + "\'m_Com2\'" + " AND ";
}
strSql+= "Timeh = " +m_ji;
m_Recordset.Open(CRecordset::dynaset,_T(strSql));
UpdateData(true);
m_Recordset.Requery();
0651デフォルトの名無しさんNGNG
>>650
よくわかんないけど、
if(m_Com1 != "") {
  strSql = "Stn = " + "'" + m_Com1 + "'" + " AND ";
} else ....
って感じじゃない?
0652デフォルトの名無しさんNGNG
>>1002
よくわからないが、
while(1)
  puts("\a>>1は怠け者");
って感じでは?
0653デフォルトの名無しさんNGNG
C言語でシェルスクリプトみたいに、あらかじめ決めておいたコマンドを
順番通りに実行するにはどうすればいいですか?
例えば、chmod 700 a.out → ./a.outという具合に。
0654デフォルトの名無しさんNGNG
>>653
main(){
system("chmod 700 a.out");
system("./a.out");
}
0655653NGNG
>>654
どうもです。

あと、もう一つ質問があるんですが、コマンドの実行結果をテキストファイルに
出力するにはどうすればいいんですか?
例えばsystem("ls")とやるとlsの実行結果がls.txtに書き込まれるということをやりたいのですが。
0656デフォルトの名無しさんNGNG
>>655
アホなの?アホなのかな?
system("ls > ls.txt");

ネタかも!ネタにマジレスかも!
・・・ハズカシイ
0657デフォルトの名無しさんNGNG
>>655
main(){
system("ls > ls.txt");
}
0658デフォルトの名無しさんNGNG
>>656
main(){
printf("結婚してください\n");
}
0659656NGNG
>657
ケコーンする?ねえケコーン?
0660デフォルトの名無しさんNGNG
狂った怜
0661デフォルトの名無しさんNGNG
>>658 ("結婚してください\n ←この\nがいいね。
0662 @NGNG
プログラミングですか?

やってみやいな〜

http://sc5.tripod.co.jp
0663暇人NGNG
暇な人へ問題:

X(1) + X(2) + ... + x(n) = C
C、N、X、は全て0以上の整数。(Nは1以上)
CとNはユーザー入力から。
この全ての場合をアウトプットするアルゴリズムを記せ。

例)C = 3, n = 3 (User input)
1, 3 + 0 + 0
2, 0 + 3 + 0
3, 0 + 0 + 3
4, 1 + 2 + 0
5, 1 + 0 + 2
6, 0 + 1 + 2
7, 0 + 2 + 1
8, 2 + 1 + 0
9, 2 + 0 + 1
10, 1 + 1 + 1

簡単そうで、難しかった〜(*_*)
因みに私はC++でソース書きましたん☆
0664デフォルトの名無しさんNGNG
>>663
難しい?(^^;
1分でかけそうだけど。
0665664NGNG
えらそうに書きつつ5分かかってしまった。鬱
0666aaaNGNG
分からん。教えて。
>>664
そんな簡単?
0667 NGNG
forで回して合計がCになるのだけ出力とか言うのは駄目なの?
0668暇人NGNG
for で回すけど、どうやって回すかが問題。
N がユーザー入力だからね。
全ての場合を出力するのがキー。
ループする回数もなるべく早めに終わらすのが重要。
分かった人、解答簡単に書いてみて。それが俺のより早いから
どうか比べる。(BIG(O)Notation)
0669デフォルトの名無しさんNGNG
X(1) + X(2) + ... + x(n) = C

x(n) を0〜C として 残りを C:=C-x(n) として n:=n-1) 再帰
0670669NGNG
と思ったけど それだと数は簡単に数えられるけど 総覧はメンドクサイな
0671デフォルトの名無しさんNGNG
>>666
#include<stdio.h>
#include <iostream.h>

void showres(int *a, int n){
 int i;
  for(i = 0; i < n; i++){
  printf( "%d" , a[i]);
  if(i + 1 < n) printf(" + ");
 }
 printf("\n");
}

void func(int k, int n, int c, int *a){
 int i;
 if(k + 1 == n){
  a[k] = c;
  showres(a, n);
 }else{
  for(i = 0; i <= c; i++){
   a[k] = i;
   func(k + 1, n, c - i, a);
  }
 }
 return;
}

int main(){
 int c, n;
 int *a;
 cout << "C = ";
 cin >> c;
 cout << "n = ";
 cin >> n;
 a = (int*)malloc(n * sizeof(int));
 func(0, n, c, a);
 free(a);
}
0672aaaNGNG
>>666
なるほど。すごい。ありがと☆
0673デフォルトの名無しさんNGNG
>>668
ループで書いたヤツもアップしてみてよ。
再帰がよくわからん人が参考にできるかもしんないから。
0674668NGNG
コメント遅れてスマセン。
>>671
アップしてくれてありがとね。
っていうか、俺のアルゴリズムとRecursion 使うってのは
ほとんど一緒です。誰かIteration でやらないかな〜って思ってね。
今考えているけど、明日、明後日テストなので、Iteratioin で
出来次第アップします。お許しあれ。
>>671
にしても、俺の場合Recursion のプログラムになるとどうしても
時間かかってしまいます。まだBeginnerだと自分で思います。
Recursion のアルゴリズムのこつとかありますかね?
(5分で出来たあなたはすごい。)
0675デフォルトの名無しさんNGNG
強引にグルグルまわすプログラムなら5分でできたが、
あまりに強引すぎて10 10くらいでも終わらなかった。
0676デフォルトの名無しさんNGNG
>>674
再帰のプログラムは慣れです。とにかく色々やってみましょう。

 計算量のオーダーが多項式で抑えられないときは、再帰使わないとまず無理だと
思いますよ。
0677674NGNG
>>676
アドバイスありがとうございます。
これからまた色々な言語を勉強すると思いますが、
再帰のプログラム色々やって慣れるようにしますね。

みなさんは、何の言語が一番得意なんでしょうか?
そして、根本的な基盤となる言語は何と思います?(個人的に)
0678デフォルトの名無しさんNGNG
根本的な基盤となる言語はマシン語だろ。
0679デフォルトの名無しさんNGNG
一番得意なのはC。次がアセンブラ。
基盤となってるのもこの2つ。
0680デフォルトの名無しさんNGNG
668ではないですが。
長くてすいません。
#include <stdio.h>
#define SSIZE 1024
#define LIMIT 256

typedef struct {
  int rest;
  int pos ;   // 数字のおき場所
  int list[LIMIT];
} Table;

Table stack[SSIZE];
int sp = 0;
int sum, count;

Table pop(void) { return stack[--sp]; }
void push(Table *t) { stack[sp++] = *t; }

void print_answer(Table *t)
{
  int i;
  for ( i = 0; i < count - 1; i++ )
    printf("%d + ", t->list[i]);
  printf("%d\n", t->list[i]);
}
0681デフォルトの名無しさんNGNG
void make_expression(void)
{
  int i;
  Table now = {0, 0, {0}};
  now.rest = sum;
  
  push(&now);
  while ( sp > 0 ) {
    now = pop();
    if ( now.pos >= count ) {
      print_answer(&now);
    } else {
      if ( now.pos < count - 1 ) {
        int pos = now.pos;
        int rest = now.rest;
        now.pos++;
        for ( i = 0; i <= rest; i++ ) {
          now.rest = rest - i;
          now.list[pos] = i;
          push(&now);
        }
      } else {
        now.list[now.pos] = now.rest;
        now.pos++;
        push(&now);
      }
    }
  }
}
int main(void)
{
  printf("合計 個数 :");
  scanf("%d %d", &sum, &count);
  make_expression();
  
  return 0;
}
0682デフォルトの名無しさんNGNG
助けを求める人を求めてage
0683助けてください。NGNG
notepadで書いたIntel系のアセンブラ語のプログラムを
MS-DOS Promptでアセンブル、リンク、実行する方法を
一歩一歩優しく教えてください。
0684デフォルトの名無しさんNGNG
>>683 まずはアセンブラは何?

1、MASM
2、TASM
3、GAS
4、NASM
 それとも
5、Debug で直接書くの?
0685助けてください。NGNG
>>684
TASMだと思います。
0686デフォルトの名無しさんNGNG
>>685 じゃあ TASM(ボーランドのターボアセンブラ)はインストール出来てるんだね?

プロンプトで
tasmか tasm32 として改行してみて 最初の1行目を教えて
0687助けてください。NGNG
実は今自分のうちから2ちゃん使ってまして(汗
ガッコのパソコンがどうなってるか良くわからないんです。
0688助けてください。NGNG
学校のパソコンはWin98でPentiumIIを使っています。
0689デフォルトの名無しさんNGNG
まず、おちつけ。
そして、がっこ逝け。
0690デフォルトの名無しさんNGNG
>>688
tasmがインストールされていなかったら、tasmは使えん。
そんなのに大してコメントしろってほうが無理だ。

家からネットワークに繋げるなら、家でもできることをやったらどうだ?
0691助けてください。NGNG
オレの友達は2ちゃんねらーだけなんだぁー。。。
0692デフォルトの名無しさんNGNG
そうだな 家で出来そうな方法としては

1)TASMの代わりに NASM をダウンロードしてやってみる

2)Debugの使い方を覚えて、Debugでやる

どっちがいい? 2の方が教える方は簡単なんだが
0693助けてください。NGNG
NASMの使い方を教えてください。
0694デフォルトの名無しさんNGNG
では、まずダウンロードしなさい

http://www.web-sites.co.uk/nasm/where.html
0695デフォルトの名無しさんNGNG
>>693 あとは検索すればいいと思うが?
ttp://www.axe-inc.co.jp/pds/nasm.html
0696助けてください。NGNG
なんか英語がいっぱいでどこをクリックすればよいのかわかりません。。。
0697デフォルトの名無しさんNGNG
少しは読む努力しようよ、downloadくらい読めるだろう。
0698デフォルトの名無しさんNGNG
>>696
おまえはクリックするとまずいようなことあるのか?
とりあえずできるまでやっとけ。
0699デフォルトの名無しさんNGNG
まってたけど、ダウンロードまだかい?

1、メモ帳を開いて 以下の入力をする 空白は全部 半角空白にする事

  org  100h
  section  .text
  start:
  mov  ax,cs
  mov  ds,ax
  mov  dx,txt_hello
  mov  ah,09h
  int  21h
  mov  ax,4c00h  ;終了
  int  21h

  section  .data
txt_hello:
  db  'みなさんこんにちは'
  db  13,10  ;13,10は改行コードです
  db  '$'   ;終端文字は  $  です

2、メモ帳保存する時に HELLO.ASM と名前を付ける事

3、dos窓から
nasmw -fbin hello.asm -ohello.com
と入力して改行する

4、DOS窓から
HELLO.COM
と入力して実行する
0700>699NGNG
丁寧に有難うございます。頑張ってダウンロードします。
0701デフォルトの名無しさんNGNG
>>700
この例は windows版NASMで DOS16ビットアプリを作った場合ね
 DOS版のNASMなら nasmw -> nasm と読み替える事

それから 16bitアプリでなく Win32bitアプリを作りたい場合はだいぶややこしい
 でもアセンブラだけで win32アプリを作れなんて課題は絶対ない筈

.COM ではなく .EXE を作る場合は、少しややこしい。
NASMはリンカ一体(アブソリュートアセンブラ)なのでEXEヘッダをアセンブラ内で
生成するようにする。 でもNASMの解説サイトを読めば判るだろう
0702デフォルトの名無しさんNGNG
俺にとってはWin32のほうがわかりやすかったり。

.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD

.data
DlgName db "SAMPLEDLG", 0
AppName db "win32 assemble", 0

.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
buffer db 256 dup(?)

.const
IDD_EDIT    equ 101


.code
start:
    invoke GetModuleHandle, NULL
    mov    hInstance,eax
    invoke DialogBoxParam, hInstance, ADDR DlgName,NULL,addr DlgProc,NULL
    invoke ExitProcess,eax

DlgProc proc hdwnd:HWND, message:UINT, wParam:WPARAM, lParam:LPARAM
    .if message==WM_COMMAND
        mov eax,wParam
        .if al == IDCANCEL
            invoke EndDialog, hdwnd, NULL
            mov eax, 1
            ret
        .elseif al == IDOK
            invoke GetDlgItemText, hdwnd, IDD_EDIT, ADDR buffer, 256
            invoke MessageBox, hdwnd, ADDR buffer, ADDR AppName, MB_OK
            mov eax, 1
            ret
        .endif
    .endif
    mov eax, 0
    ret
DlgProc endp
end start
0703デフォルトの名無しさんNGNG
http://www.geocities.com/sukiyaki0001/java.txt
http://www.geocities.com/sukiyaki0001/java2.txt

Javaに詳しい方よろしくおねがいします。訳はご要望があれば、そのつど。


0704デフォルトの名無しさんNGNG
C言語です。
配列の、0クリアして右から順位付けするやり方がいまいちわからないのです。

#include<stdio.h>
main(){
int i=0;
int j=11;
char data[]={1,3,5,5,7,9,9,10};
char juni[11]; /*10番目と11番目を用意する*/

for(i=0;i<=11;i++){ /*iが11以下の間繰り返す*/
juni[i]=0; /*配列 juni[i]を0でクリア*/
}

for(i=0;i<8;i++){ /*iが8より小さい間繰り返す*/
juni[data[i]]++;
}
juni[j+1]=1;

for(i=j;i>=j;i--){
juni[i]+=juni[i+1];
}
printf("得点 順位\n");
for(i=0;i<8;i++){
printf("%d %d\n",data[i],juni[i]);
}
}

間違ってるとこを訂正してもらえると助かるっす。
0705デフォルトの名無しさんNGNG
>>704
マルチ
http://pc.2ch.net/test/read.cgi/tech/1016631412/200
0706デフォルトの名無しさんNGNG
age
0707デフォルトの名無しさんNGNG
>>704
juni[]のクリアのところで、配列をオーバーしとるやん。
0708デフォルトの名無しさんNGNG
>>704
char juni[11]; /*10番目と11番目を用意する*/

これだと11個用意することになるんよ。
0709デフォルトの名無しさんNGNG
>>704
#include  <stdio.h>

#define  DATSIZ  (8)

static void getJuni(const char *, char *, int);

int main(void)
{
  int i;
  char data[DATSIZ] = {1, 3, 5, 5, 7, 9, 9, 10};
  char juni[DATSIZ];
  
  /* 順位付けを行う,得点はソートされている必要がある */
  getJuni(data, juni, DATSIZ);
  
  printf("得点 順位\n");
  for(i = 0; i < DATSIZ; i++) {
    printf("%4d %4d\n", data[i], juni[i]);
  }
  return 0;
}

static void getJuni(const char *data, char *juni, int size)
{
  int i;
  int j;
  int p;
  
  p = 128;  // CHAR_MAX かな ?
  for(i = size - 1, j = 1; i >= 0; i--, j++) {
    if(p > data[i]) {
      juni[i] = j;
      p = data[i];
    }
    else if (p == data[i]) {
      juni[i] = juni[i + 1];
    }
  }
}
0710デフォルトの名無しさんNGNG
>static void getJuni(const char *, char *, int);

0711デフォルトの名無しさんNGNG
juniはintのほうがいいと思う。
0712デフォルトの名無しさんNGNG
>>710
わけわからん。
0713デフォルトの名無しさんNGNG
Javaを助けてください。
長くなるかも知れませんがお願いします。
頭がわるいもんでずーーーっとつっかえてます。

今Lsystemをいろいろとみてあるいてます。
http://www.asahi-net.or.jp/~pd4s-hgwr/lsystem/
ここでソースを落としてみたんですが
Rule.javaをコンパイルすると以下のようなエラーがでます。

Rule.java:104 : class Rule で宣言されたメソッドjava.util.Enumeration.values()は、
class.java.util.Hashtable で宣言された同じシグニチャーのメソッドをオーバーライドできません。同じ形の戻り値を持たなければなりません。
public Enumeration values(){
^
誰か落としてヘルプしてくれる人います?藁
Rule.java長くないんですが 読みやすいように書くと1000文字越えちゃう・・・
本当にいっぱいいっぱいです。助けて・・・

0714デフォルトの名無しさんNGNG
>>713
エラーの意味は、「同じ引数の型(シグネチャ)を持つメソッドを
オーバーライドするときは、戻り値の型も元のメソッドのと
同じじゃなきゃいかん」ってことだね。

で、今調べてみたけど、
jdk1.1系にはjava.util.Hashtableクラスに、values()って
メソッドは定義されてなかったので、Rule.javaでvalues()を
定義してもオーバーライドではなかったわけだけど、
java2では残念ながらvalues()っつーのがすでに定義されてるので、
上記のエラーとなるわけだ。
0715デフォルトの名無しさんNGNG
>>714

と言うことは・・・
簡単に言えばvalues()がかぶっちゃってる(オーバーライド)ってことですよね。
なら単にvalues()を違う名前で定義すればOKなのかな??
そんな簡単なもんじゃない??
0716デフォルトの名無しさんNGNG
yattemire
0717デフォルトの名無しさんNGNG
宿題じゃないのですが助けてちょ、矢印が引きたいのよ

いまは drawLine(from, to) ってやると from から to にむけて矢印
がひけるのね、これを from から to にむけた → って矢印にしたい。

最初に考えたのは from.x, from.y と to.x, to.y を使って、from-to
線分の傾きを出して、それに対して 30 度くらいの回転をかけた直線を
to を通るように from の方向へちょびっとづつ書こうと思った。

けど、それってなんかチカラで押さえ込んでいるみたいで、もっとシンプ
ルな方法があるのではないかなー? と思ったりした。

動作環境は Java 1.0.2 で JavaApplet として作ってます。
古い JavaMachine (JVM じゃなくて)で動かすので Java 1.1 以降は利用
できません。

とりあえず具体的なコードでもアイデアだけでもいいんですが、助けて。
0718デフォルトの名無しさんNGNG
中学校で授業をちゃんときいてましたか?
  http://www.geisya.or.jp/~mwm48961/math/m3pita03.htm
0719デフォルトの名無しさんNGNG
ある日付から、通算の食事の回数を入力して、
その時点の年月日を出力するプログラムって、どう組めばよいですか。
C言語です。うるう年の分け方やループの仕組みはわかるんですが、
scanfで入力データに対応した日付を書き出す方法がわからないのです。
よろしくおねがいします。
0720デフォルトの名無しさんNGNG
>>717
どのくらいの精度が欲しいのかわからんが、5度刻みで矢の
画像を持っておいて、最も角度が近いものを描画したらどうだ?

5度刻みだと18パターン、矢の角度を計算するよりは楽。
0721デフォルトの名無しさんNGNG
>>717
Delphiでよければ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1004530597_1/MyDraw.pas
0722デフォルトの名無しさんNGNG
./a.out 192.168.1.1と入力して192.168.1.1にpingを打てるようにしたいの
ですが、./a.out %sと実行されてしまってうまくいきません。
よろしく頼みます。

#include<stdio.h>
int main(int argc,char *argv[])
{
int i=0;
while(i<3){
system("ping %s",argv[1]);
i++;
}
}
0723デフォルトの名無しさんNGNG
>>722
sprintf( hoge, "ping %s", argv[1]);
system(hoge);
0724デフォルトの名無しさんNGNG
>>722
は、いいがそのプログラムに何の意味が?
[CTRL]+[D}しない限りping回り続けるだろ・・・。
0725デフォルトの名無しさんNGNG
問題。
Web掲示板のプログラムを作るとして、以下の3つの
数値が分かっているものとします。

 (1) 現在のページで表示を開始する投稿番号 x
 (2) 1ページに表示する投稿数 y
 (3) 全投稿数 z

とする時、現在のページが何ページ目かを算出するには
どのような式になるでしょう? 回答は PHP, Perl, Java いずれかの
言語で答えること。


1ページに表示する投稿数が「5」件で、全投稿数が「15」件
あったとします。現在のページでは投稿番号「6」から表示
するとします。このとき
 1ページ目: 投稿番号「1〜5」が表示される。
 2ページ目: 投稿番号「6〜10」が表示される。
 3ページ目: 投稿番号「11〜15」が表示される。
つまり答えは「2」ページ目になります。
0726デフォルトの名無しさんNGNG
>>725
板違い。WebProg
0727デフォルトの名無しさんNGNG
>>725
ceil(x / y)
0728デフォルトの名無しさんNGNG
VBで以下の動作をするものをつくりたいのですが・・初心者なんでサパーリです
どなたか教えてくらはイ お願いします

数字を入力し、「実行」ボタンを押すと、1から入力された数値までの合計数を表示する。
ただし、入力されたものが数値でなかった場合、「数値を入力してください」というエラー
メッセージを表示する。
「終了」ボタンを押すと、プログラムが終了する。
0729デフォルトの名無しさんNGNG
1から入力された数値xまでの合計数=x*(x+1)/2
0730デフォルトの名無しさんNGNG
>>728
マルチにより放置。
0731デフォルトの名無しさんNGNG
マルチって何?
0732デフォルトの名無しさんNGNG
>725
なぜ「z」が必要なの?混乱させるため?

use POSIX;
$page_number = int ($x / $y + 0.5)
0733ダメリーマンNGNG
どうやっても思いつきません。どなたか助けてください。
もう2CHだけが頼りです。C言語初級講座です。

コマンドライン引数に指定されたファイルすべてに対して、
改行文字以外の各行を、逆さまにして表示するプログラム
を書いてください。
このプログラムを a.out とすると実行結果としては、
以下のようになります。
% cat text
text1
text2
text3
% ./a.out text
1txet
2txet
3txet

逆さまに表示する部分は、以下のようにすると簡単にできます。

1.文字列の最後に改行文字があれば、そこに「\0」を代入
2.文字列の最後の文字から先頭に向かって、順に 1 文字ずつ表示
3.1で改行文字があったならば、改行文字を表示
0734デフォルトの名無しさんNGNG
>>733
そこまでわかってるなら自分でやれや。
0735デフォルトの名無しさんNGNG
>>733
そのぐらい本があればすぐだと思うが。
0736デフォルトの名無しさんNGNG
>>73
丸投げするのに「思いつかない」っていうなよ。
0737733NGNG
はずかしいかぎりです。
自分でやってみます。
0738719NGNG
自分なりに組んでみたんですが、goto文で、入力データとcountが一致したらループを抜ける。とさせたいんですがうまくいきません。何か言い方法はありませんか。おねがいします。

#include<stdio.h>
main(){
int i=0,j=10,k=0,count=0,year=1800;
char nen[20];
char getu[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char niti[31]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
char shokuji[3];

while(1){printf("count= ");
scanf("%d",&i);
year++;
while(k<12){
switch(k+1){
case(1):case(3):case(5):case(7):case(8):case(10):case(12):
while(j<31){
while(i<3){
i++;count++;
if(count=&count){
goto end;
}}i=0;j++;}break;
case(4):case(6):case(9):case(11):
while(j<30){
while(i<3){
i++;count++;
if(count=&count){
goto end;}}i=0;j++;}break;
case(2):
if((year%4==0&&year%100!=0)||(year%400==0)){
while(j<29){
while(i<3){
i++;count++;
if(count=&count){
goto end;
}}i=0;j++;}}
else{
while(j<28){
while(i<3){
i++;count++;
if(count=&count){
goto end;}}i=0;j++;}}break;
} /*switch文の終わり*/
j=0;k++;
} /*while(k<12)の終わり*/
k=0;
}
end:;
printf("count= %d,date= %d. %d. %d\n",count,year,hako[k],kan[j]);
}
0739デフォルトの名無しさんNGNG
そもそもgotoなんざ使うなってーの。
0740デフォルトの名無しさんNGNG
> if(count=&count){
??
0741デフォルトの名無しさんNGNG
>733
まぁいちおうベタなコードとしては

適当にバッファを用意して1行づつ読み込む。
バッファのケツは\nになるはずなのでそこまでポインタを進める。
その後ポインタをバッファの頭までデクリメントしつつstdoutに投げる。
最後に\nをつける。
次の行へ

というような感じになるんじゃないかな。
0742デフォルトの名無しさんNGNG
ファイルポインタを終端に持ってく。
先頭までループしながら、
読む、書く。

遅そうだ
0743デフォルトの名無しさんNGNG
しかも問題を勘違いしている。
最悪だ。
0744デフォルトの名無しさんNGNG
>719
738をコピペしてコンパイルしたんだけど最後のpirntfの引数hako,
kanをgetu,nitiにしただけでコンパイル通っちゃったよ。
一見してこんなのコンパイル通るわけないと思ったんだけど。ある意味すごい。

とりあえず740の指摘したif (count = &count)がおかしい。intにint *を代入しているし
そもそも代入文でいいのかと思うのだが、後でじっくり見てみようかな。

>そもそもgotoなんざ使うなってーの。
などという言葉に耳を貸してはいかん。Switchから抜けようと思えば仕方ない。
しかしネストが3段以上になるのは何か基本的におかしいぞ。
それから変数の名前の付け方のセンスがなっていない。コメントがない。
enumを使え。

nitiという配列だけど、
niti[0] => 1, niti[1] => 2, .... , niti[30] => 31 という配列はナンセンスだとおもう。
それより、
getu[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
の方が意味があるとおもわない?

0745デフォルトの名無しさんNGNG
>>719
ととととと (;´Д`) とりあえず

> while(j<31){
> while(i<3){
> i++;count++;
> if(count=&count){
> goto end;
> }}i=0;j++;}

みたいなコードが都合 4 回も出てますが,
これを一つにまとめるべきだと思ったです。
ヒントとしては,先頭の行の while の部分に注目。
while (i < days) の days の部分が年や月によって少しずつ違うだけっすね。
>>744 さんのヒントの gatu[] も併せて考えて,うるう年にもちょっと気をつけるって方向で。

あと,if (count = & count) の部分がわりとオシャレな事になってますが,
ナニがどうなれば end ラベルにジャンプしたいですか? (;´Д`)
0746745NGNG
誤 : 744 さんのヒントの gatu[]
正 : 744 さんのヒントの getu[]
0747719NGNG
みなさん、いろいろな助言をありがとうございます。
if(count=&count)は、もうひとつ変数scan_countを作って、
if(count==scan_count)としました。
いろいろ自分で考えて手を加えてみた結果、
いちおう、入力データが小さいうちは、正常に動作しました。
入力データがかなり大きい数になると、countの表示がマイナスになるのですが、
なにか改善策はありますか?
0748デフォルトの名無しさんNGNG
>719
いまさらだけど元の仕様を読んだのだけどはっきりしない点を確認。
「ある日付から通算の食事の回数を入力する」というのはどう有意味?
なんかcountとdateを表示するんだけどさっぱり意味がわからない。
もしかしてたとえば

「ある日にちから10回食事した。ある日にちとは今日から何日前か?
ただし1日3回食事をとることにして今日はまだ食事をしていないとする」

なら答えは出せる。今回投稿したものは正しくないようだけどいきなり
1801. 1.12なんて答えが返ってくるんだけど。

プログラムを走らせるとcountを聞いてきて計算結果を表示するけど
たとえばcount = に3を入力するとどんな答えが返ってきてほしいの?
0749デフォルトの名無しさんNGNG
>747
>if(count=&count)は、もうひとつ変数scan_countを作って、
>if(count==scan_count)としました。
これは要するにscanf("%d", &scan_count)という意味ですか?

仕様がわからないから断言はできないが変数のネーミングにセンスがなさすぎる。ふつうi,j,kって言ったら単なる
ループカウンタで単にMAXの回数だけループという使い方をする場合が多いのだけれど
この場合は
i < 3  1日3食? 
j < 29, 30, 31 ひと月の日数に関係がある?
k < 12 月に関係がある?
という風にi, j, kに何らかの意味がありそうだからそれなりの変数名にするべきなんじゃ無いだろうか。
その割にはcountなんて言う何をカウントしているんだかわからない変数があるし。

ふつう仕様が舌足らずでもプログラムを見ればたいてい意図していることはわかりそうなものだが
738のコードを見ても何がしたいのかさっぱりわからない。

しかしやる気は感じるので応援はするよ。
とりあえず仕様をよろしく。何を入力したらどういう答えが返ってきてほしいのか
はっきりさせてちょ。

0750Disca ◆NAfP6znE NGNG
>>733
#include <stdio.h>
#include <string.h>

void main()
{
int i, j;
int n;
char c;
char *(aa[3]);

aa[0]= "text1";
aa[1]= "text2";
aa[2]= "text3";


for (i=0 ; i < 3 ; i++)
{
n= strlen(aa[i]);

for (j= 0 ; n / 2 ; j++)
{
c= aa[i][j];
(aa[i])[j]= (aa[i])[n - j - 1];
(aa[i])[n - j - 1]= c;

}
}

for (i= 0 ; i < 3 ; i++)
printf("%s\n", aa[i]);
なぜか動かない、問題でもあるかなぁ〜。
0751デフォルトの名無しさんNGNG
>>750
mainの{を閉じてないから。
と、一応つっこんでおく。
0752デフォルトの名無しさんNGNG
>719
自分でも物好きだと思うけどコードを読んでみた。
もしかしてやってることはこんなことか?

食事をした回数まで1から数えていく。
3回カウントしたら1日をカウントアップ。
以後同様にして1800年の1月1日(なぜこの日付?)から何日目たっているかを表示。

もしやりたいことが上のようなことなら上に書いてあるものそのままをコーディング
してみたら。

もう少しいうとすぐに日付を求めるのではなくまず何日たったかを出せばいいのではないかな?
例えば300日経過していたとして西暦1800年の300日目は何月何日になるかということを
考えればよい。とりあえず閏年は考えないで2月は28日まで1年は365日として
コーディングする。その後閏年に対応することを考えればよい。
西暦X年のY日目は何月何日かという関数を考えてもイイかも。

もし後で閏年に対応できないようなコードなら元のコードに問題がある。
0753デフォルトの名無しさんNGNG
>750
751のmain閉じはコピぺみすだとしてコンパイルは通るけどメモリエラーで
落ちるということだよね。
とりあえず文字列の配列の宣言部は
char *(aa[3]); ではなくて char *aa[3]; じゃないかな?

前者は (aa is array(element3)) is pointer to char
後者は aa is array(element3) of pointer to char
aaはcharへのポインタの配列(要素数3)という感じで読むんだけど。
前者は私には自然に読めないな。
0754デフォルトの名無しさんNGNG
>752
グレゴリオ暦、ユリウス暦、太陽太陰暦、イスラム暦、
ユダヤ暦、和暦、などなどに対応したい、とかいわれたら、
格好の練習問題といえそうですね :-)
0755デフォルトの名無しさんNGNG
>>753
char *(aa[3]); も char *aa[3]; も同じ意味じゃない?
0756デフォルトの名無しさんNGNG
>754
それはいいかもね。各暦に対応した変換関数を考えればいいわけだからね。

>750
とりあえずfor (j= 0 ; n / 2 ; j++)はループの中でnが変化しないからnが0じゃなければ
無限ループするよ。

なんか文字列の先頭からとケツから人文字づつとって入れ替えようとしているみたいだね。
それなら
aa[j][i] = aa[n - j - 1][i]
になるような気がする。
0757デフォルトの名無しさんNGNG
これで通る。

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

void main()
{
    int i, j;
    char *str[3];
    char temp;
    int len;

    str[0] = "test1";
    str[1] = "test2";
    str[2] = "test3";

    // それぞれについて処理
    for (i = 0; i < 3; i++){
        len = strlen(str[i]);
        for (j = 0; j < len / 2; j++){
            temp = str[i][j];
            str[i][j] = str[i][len - j - 1];
            str[i][len - j - 1] = temp;
        }
        printf("%s\n", str[i]);
    }
}
0758デフォルトの名無しさんNGNG
>char *(aa[3]); も char *aa[3]; も同じ意味じゃない?
勘違いだったみたいです。混乱させてごめん。
756もちょっと変だった。
超手抜きだけどこんな感じになるのでは

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

int main(void)
{
int i, j, k;
int length;
char c;
char *aa[3];
char temp[6]; /* ダサいバッファ*/

/* 文字列の初期化 */
aa[0]= "text1";
aa[1]= "text2";
aa[2]= "text3";

for (i = 0 ; i < 3 ; i++) {
length = strlen(aa[i]); /* 文字列の長さを取得 */

/*
* aa[i]のNUL文字を除く文字を後ろから一文字づつ
* tempバッファにコピー
*/
for (j = length - 1, k = 0; j >= 0; j--, k++)
temp[k] = aa[i][j];

temp[5] = '\0';

strcpy(aa[i], temp); /* tempをaa[i]にコピー */
}

for (i = 0 ; i < 3 ; i++)
printf("%s\n", aa[i]);

return 0;
}
0759757NGNG
…って、見直してみたら殆ど変わってないな。
適当に見て、最初から書き直したのが惡かったスマン。

>>756が言っているとおり、ループが終わらないのが原因。
確保されてない領域まで交換しようとしてる。
0760デフォルトの名無しさんNGNG
>>758
tempがダサい。
for (j = length - 1; j >= 0; j--){
    putchar(aa[i][j]);
}
putchar('\n');
0761デフォルトの名無しさんNGNG
>tempがダサい
わかってたんだけどさ。
反転させてコピーって方がわかりやすいかなと思って。
だめ?
あんまり変わらないかな?
0762デフォルトの名無しさんNGNG
真っ当なコード。
char buf[BUF_SIZE];
while( fgets(buf,BUF_SIZE, stdin) )
{
 buf[BUF_SIZE-1] = '\0';
 int length = strlen(buf);
 for( int i=length-1; i>0; i++ ){
  fputc(buf[i], stdout);
 }
 fputc('\n', stdout);
}
0763デフォルトの名無しさんNGNG
>>761
temp が temporary以上の役割をしているので、rev_strとでもしたほうが
可読性があがります。また、入ってくる文字数を決め撃ちするのも
どうかと思います。temp[length + 1]に '\0' を入れたほうが。

>>762
インクリメント/デクリメントの方向が真っ当では無い気がします。
0764Disca ◆NAfP6znE NGNG
char *p="AAAAAA";

*(p + 2)= 'B';
printf("%s\n", p);

なぜかこのプログラムが動かない。なぜでしょうか…?
簡単なプログラムなのに…。概念も間違っていないのに…。
0765大ヒントNGNG
>>764
> char *p="AAAAAA";

char p[] = "AAAAAA";

こう直してみましょう。
0766デフォルトの名無しさんNGNG
>764
そのコードが通ってしまう環境もあるだろうけどエラーになるのが全うだと思うよ。
pは初期値で文字列リテラルを指している。文字列リテラルは書き込み禁止領域に
確保されているとここの値を書き換えようとするとエラーになるっちゅうわけだ。

対処としては765のようにするかヒープに領域を確保しよう。
ちなみにchar p[]="AAAAAA";
はchar p[] = {'A','A','A','A','A','A','\0'};のシンタックスシュガーで
文字列リテラルの扱いとしては例外的なので間違えやすいところです。
0767Disca ◆NAfP6znE NGNG
>>764, >>765
ありがとうございます。無知そのものでした…。
さすがに恥ずかしいデス。C言語いつからしているのか…(鬱。
0768デフォルトの名無しさんNGNG
for( int i=length-1; i>0; i++ ){
って
for( int i=length-1; i>=0; --i){
??
0769デフォルトの名無しさんNGNG
宿題より俺のオナニー手伝ってくれよ。そう、その手で
0770デフォルトの名無しさんNGNG
それはオナニーじゃなくて、手コキだ。
0771デフォルトの名無しさんNGNG
手古希きもちいいYO
0772デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
 if (argc < 0) {
  int c, r;
  c = getc ((FILE *)argv);
  if (c == EOF || c == '\n')
   return c;
  r = main (argc, argv);
  putchar (c);
  return r;
 } else if (argc > 1) {
  FILE *fp = fopen (argv[1], "r");
  if (!fp) {
   perror (argv[1]);
   return EXIT_FAILURE;
  }
  while (main (-1, (char **)fp) != EOF)
   putchar ('\n');
  fclose (fp);
  return main (argc - 1, argv + 1);
 }
 return EXIT_SUCCESS;
}
0773デフォルトの名無しさんNGNG
>>772
なんともトリッキー。面白いYO。
0774デフォルトの名無しさんNGNG
JavaのAppletについての問題です。

1
テキストボックスをAppletに配置します。
そのテキストボックスに何かメッセージを入れます。
入れた後に、エンターキイを押す。
そうするとgetSizeを使ってキャンバスの中央にそのメッセージが現れるようにする。

2
ボタンとプルダウンのチョイスボックスを設置。
その中にはなんでもいいので適当な名前を入れる。
1つの名前を選択してボタンをクリックするとその選択された名前が
キャンバスに中央に現れるようにする。
getTextとgetSizeを使用。

ボタンなどの設置の仕方は問題ないのですが。
以上の2つ、特にキャンバスにそれぞれ選択したものを現れるようにするところで
かなりつまずいております。

どなたか助けて!
0775デフォルトの名無しさんNGNG
>>774
Graphics取得して、がつっと描画しちゃえばいんじゃない?
でもふつーは、update()をオーバーライドしといて、repaint()呼ぶかな。
0776774NGNG
>>775

repaint()でどうにかできました。ありがとう。

それで、もう1つ。

ボタンやチャックボックスなどをパネルにまとめてアプレットの上(North)に置きます。
はい、これは全く問題ないです。
それで今度はキャンバスをアプレットのセンターに置きます。
ここで問題が発生。
参考書の例をみながらやっているのですが
その参考書と私の浅はかな知識からすれば
まず、キャンバスを宣言。
private DrawOn canvas = new DrawOn()とかなんとか。
それで次にadd(canvas, "North")でちゃんといくと思うんですが上手くいきません。
動かして見るとキャンバスがボタンやチェックボックスなどのすぐ下の左上によってしまいます。
これはどうしてでしょうか?
参考書などでは綺麗にセンターによっているんですが・・・

もう1度お助けください。
0777775NGNG
>>776
ソースが見れれば一撃なんだが、とりあえず憶測で。

1.setLayout(new BorderLayout()) し忘れている。
2.キャンバスにsetSize()でサイズを明示的に指定してみる。
3.キャンバスをPanelにつっこんで、Panelをadd()してみる。
4.マジボケで"Center"じゃなくて"North"と書いている。
0778774NGNG
>>775

3を試したらできました。ありなとう。
でもなんで????
add(canvas, "center")でいかないの?
0779774NGNG
教えて君になってしまってますが、最後にもう1つだけ。

JavaでAppletのサイズってどうやって変えれるのですか?
もちろんhtmlのAppletのWidhtとHeightで変えるのではないです。
htmlファイルで決めたAppletの大きさ以内なら変えられるとのことなんですが・・・
Dimensionとかresizeを使うらしいんですが完全に分かりません、はい、全く・・・

お願いします!!!!
0780デフォルトの名無しさんNGNG
>>779
アプレットのサイズはコード量を減らせば必然的に小さくなります。
0781デフォルトの名無しさんNGNG
>>779
漏れはやったことないけど、Appletは、Componentを継承してるから、
ComponentクラスのsetSize()メソッド使って、
this.setSize(new Dimension(10,10));
でいんじゃないの?
いちおう、サイズ変えた後 repaint()呼んどいたほうがいいかも。
0782デフォルトの名無しさんNGNG
宿題手伝ってくれるんですか?お願いします。

練習問題
西暦のカレンダーを作成する。
�@年はエラーとする。
�A月は「1〜12」以外はエラーとする。

うるう年の条件
�@西暦の年数が「4」で割り切れる。
�A西暦の年数が「100」で割り切れない。
�B西暦の年数が「400」で割り切れる。

計算するにあたり、西暦1年は1月日は「月曜日」とする。

y年m月の求め方

 a=365*(y-1)+(y-1)/4-(y-1)/100+(y-1)/400 うるう年のによるづれをもとめる。

 b=month[1]=31,month[2]=28,month[3]=31month[4]=30,month[5]=31,month[6]=30
month[7]=31,month[8]=31,month[9]=30,month[10]=31,month[11]=30,month[12]=31

c=(a+b)%7 y年m月1日の曜日
       c=0なら日曜日、c=6なら土曜日

正直、まったくC初めてでこの問題はつらいです。すいません。



0783デフォルトの名無しさんNGNG
>>782
>�@年はエラーとする。
>�A月は「1〜12」以外はエラーとする。

ユーザーに年月を入力させて、その月のカレンダーを出力するって
ことかいな?
「年はエラーとする」って意味がわからん。
0784デフォルトの名無しさんNGNG
この時期に宿題って、会社の研修?
0785デフォルトの名無しさんNGNG
>784
勉強のために、自分自身に課題を課しているのでは?
0786デフォルトの名無しさんNGNG
>>785
それにしても、文章の解読の方が難しい。
0787デフォルトの名無しさんNGNG
>>786
わかりやすい文章を書けた時点でプログラミングの半分は終わったと思われ。
0788デフォルトの名無しさんNGNG
>782
ttp://www.indsys.chuo-u.ac.jp/~kato/IPEx98/CGuide/C-5.html
0789774NGNG
>>781

ありがとう。そんな感じに使うんだと思う。
でも、試したところちょっとやりたいことと違うとこが・・・

えーと、textfieldとcheckboxをパネルに入れてNorthにキャンバスをCenterに設置します。

setLayout(new BorderLayout());
Panel bar = new Panel();
bar.add(text);
bar.add(boxes);
add(bar, "north");
add(canvas, "center");

それでcheckbox(サイズsmall, large, etc)を選んだら

Appletのサイズが変更されるようにしたいのです。
でも、教えてもらった方法だとどうもCanvasのサイズだけが変更されます
Northのbar(textfieldとcheckbox)はそのままのサイズで大きさが変わりません。
どうしてでしょうか?
最初のPanelとかの設定がおかしいのでしょうか?
0790デフォルトの名無しさんNGNG
いま読み返したら、
>練習問題
>西暦のカレンダーを作成する。
>�@年はエラーとする。
この(1)の時点で、意味不明ですね。
782さんのその後のフォローも無いし。
ネタ決定ですか?
0791デフォルトの名無しさんNGNG
>>782
読めない漢字は飛ばしましたか?
0792781NGNG
>>789
Applet(のオブジェクト)に対してsetSize()しなさい。
0793デフォルトの名無しさんNGNG
>>782
どこまでできてて、どこでつまずいてるの?

もしまだ1行も書けてない&UNIX使ってるんなら、
#include <stdlib.h>
int main() {
system("cal");
return 0;
}
てなのはどうかね。
0794774NGNG
>>781

すいません、そのやり方が分からないのですが・・・
どうやってやるんでしょうか?
0795デフォルトの名無しさんNGNG
>>793
おいおい・・・。
0796793NGNG
>>794
UNIXなら、viかemacsでcalendar.cというファイル名でセーブして、
cc -o calendar calendar.c
でコンパイルして、
calendar
で実行。
0797デフォルトの名無しさんNGNG
Cなんだけど、
ESCで終了するように
while((c=getche())!='\x1b)
てやったら空リターン受け付けないんだけど、どうすればいい?
0798デフォルトの名無しさんNGNG
CR('0x0d')も取れ。

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

void main()
{
    int c;
    while (1){
        c = getche();
        switch (c){
            case 0x1b: // escape
                putchar('\n');
                goto loop_end;
            case 0x0d: // carriage return
                putchar('\n');
                break;
            default:
                printf("%c", c);
        }
    }
loop_end:
}
0799デフォルトの名無しさんNGNG
>>798
サンクス!CRを'\n'だと思ってタヨ。
厨房でスマソ。
0800デフォルトの名無しさんNGNG
782です、申し訳ないです。まさしく研修中で、
C++をよく理解していないまま、この問題を渡されました。

訂正箇所は、
    西暦のカレンダーを作成する。
    �@年は「0」はエラーとする
この箇所だけです。すいませんでした。
0801デフォルトの名無しさんNGNG
>>800
「800getズッザー」が抜けてます。
0802デフォルトの名無しさんNGNG
>>801
ナイス。
0803デフォルトの名無しさんNGNG
誰か>>800の宿題解いてあげて下さい。漏れは風呂入ってくるけど、
あがって誰も解いてなかったら作ってみるか。
0804デフォルトの名無しさんNGNG
>>803
機種依存文字使う人嫌い。
0805怜NGNG
久しぶりに登場してみようかな。

とりあえず最初から置いていかれると、どんどん辛くなっていくから、
頑張ってついていかないと大変だと思うよ。
やっぱ、ネットだと教えににくいところもあるから、同僚でできる人
と友達になって教えてもらうのがいいんじゃないかな。お礼はすると
してね。まだ、働いたことのない私がいうのも何ですが・・。

で、y年m月のカレンダーを作るときには、その1日が何曜日かわから
ないとできないよね? それを計算しようというのがヒントに書いて
ある話ね。
西暦1年1月1日(1が抜けてたけどそう?)の曜日がわかってるって
ことで、1年1月1日からy年m月1日まで何日あるかえを調べたいわけね。

まず、西暦1年1月1日から、y年1月1日まで何日あるかって計算し
てみると。
365*(y-1)+(y-1)/4-(y-1)/100+(y-1)/400
ってなるのね。なんで、この式になるかは考えて理解してみてね。
整数/整数の場合は、答え整数になる。9/4=2みたいにね、念のため。
0806怜NGNG
で、次にy年1月1日から、y年m月1日まで何日あるかって考えると
month[1]=31,month[2]=28,month[3]=31month[4]=30,month[5]=31,month[6]=30
month[7]=31,month[8]=31,month[9]=30,month[10]=31,month[11]=30,month[12]=31
とmonthに代入した後に、

int b = 0;
int i;
for(i = 1; i < m; i++) b = b + month[i];

ってことをしてあげればbにその日数が入るのね。これが何をしてるかはわかる?

で、そうすると

1年1月1日からy年m月1日まで何日、あるかは上の2つを足したものになるよね。
で、これを7で割った余りをみれば、y年m月1日が何曜日かはわるよね?

とりあえず、ここまで理解できたら続きを書くね、
0807デフォルトの名無しさんNGNG
782です。805さんの言うとうり1が抜けてました。すいません。
たしかに、forの式でbの値はわかりますよね。ifを使ってうるう年の
条件をだすんですか?
0808怜NGNG
>>807
ああ、そういえばうるう年忘れてました。
ええ、ifを使ってiが2のとき、うるう年かどうか調べてください。
0809デフォルトの名無しさんNGNG
>>807
うるう年の判定をif文を使わずに計算で出そうとしている模様。
しかし、
> a=365*(y-1)+(y-1)/4-(y-1)/100+(y-1)/400 うるう年のによるづれをもとめる。
これは気を付けないと、365*(y-1)の部分でオーバーフローしやすいぞ。変数は
longで宣言しておくべきだな。もっとも、intが16ビットの処理系もマイナーになっ
てきたが。
0810デフォルトの名無しさんNGNG
>>809
多分うるう年のときの、3月以降のカレンダーを出す場合の話。
0811デフォルトの名無しさんNGNG
782です、了解です。なんとか形になってきました。
ありがとうございます。やれるとこまでやって明日
聞いてみます。しかし、文系出の初心者には大変です。
5日前に初めてC++の参考書開いたのに今週で覚えろ
なんて・・・これって普通なんですかね??
私には酷なんですけれども。
0812デフォルトの名無しさんNGNG
 酷だと思いますよ。システム系の会社だったら、ある程度は勉強してきた
んだろう、という前提で研修をしているのかもしれません。
0813新卒NGNG
>>811
それはひどすぎ。最低でもプログラミング研修3ヶ月はある。
ゲーム業界とか特殊な企業は除くけど・・
0814デフォルトの名無しさんNGNG
>>811
他スレでは4.5年かかるとか書いてあったよ
1週間で覚えたらスゴイ
0815_NGNG
age
0816デフォルトの名無しさんNGNG
Cで整数の引数のビットを文字列として表示するってどうやればいーの?
たとえばbit(60);ってやったら
11-1100
みたいに4文字ごとに区切り文字を入れろって言われたんだけど・・・

教えてくださーい
0817えれなNGNG
>>816
下位ビットから見ていく処理でーす。
参考にして考えてみてね。
わからなかったら、また書き込んで。

unsigned int n = xxx;
while (n!=0) {
 if (n & 1) ビットが立っている
 else ビットが立っていない
n >>= 1;
}
0818デフォルトの名無しさんNGNG
以下のように CWinApp *Application から操作しようと考えているのですが、
どうしても、WinMain.cppの3行目のif文で真となってしまい終了してしまいます。
何か基本的なことが分かっていないと思うのですがどうかよろしくお願いします。

(WinMain.cpp)-------------------------------------------
#include "CWinApp.h"
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
   if(Application == 0)
      return -1;

   //Application->Init(hInstance, lpCmdLine, nCmdShow); の様に続く
}
(CWinApp.h)-------------------------------------------
#ifndef __CWinApp
#define __CWinApp
class CWinApp {
   public:
      CWinApp();
      ~CWinApp();
・・・省略
} // class CWinApp終了
extern CWinApp *Application; //CWinApp.cppの2行目で宣言
#endif
(CWinApp.cpp)-------------------------------------------
#include "CWinApp.h"
CWinApp *Application;
CWinApp::CWinApp() {
   Application = this;
}
CWinApp::~CWinApp() {
   Application = 0;
}
0819 NGNG
消防の頃、手探りでBASIC覚えてる時、論理演算も2進数の存在も知らずに、
if (n>=128) { b[0]=TRUE; n-=128;}
if (n>=64) { b[1]=TRUE; n-=64;}
if (n>=32) { b[2]=TRUE; n-=32;} //BASICの文法忘れた
とかやってた。 もう馬鹿かとアホかと。
0820えれなNGNG
>>818
それじゃCWinAppのコンストラクタが実行されないよ。
0821デフォルトの名無しさんNGNG
unsigned char data[4] = {0x31, 0x32, 0x33, 0x00}; と宣言した変数dataに
10進数の20を16進数に変換した数字をdata[1]に入れたい場合、どうすればよいでしょうか?

自分なりに以下のようにやってみましたが、うまくいきませんでした。

int main()
{
unsigned char data[4] = {0x31, 0x32, 0x33, 0x00};
char temp[1];

sprintf(temp, "%x", 20); //20を16進数に変える。tempには14が入る。
memcpy(&data[1], temp, 1);
cputs(data);
cputs("\r\n");
return 0;
}

結果
113

となってしまいます。20を16進数に変える方法がよくないんだと思いますが、
なにかアイデアあれば、教えてください。
0822821NGNG
書き忘れましたが、環境はwindowsNT、TurboC++ ver.3.0です。
0823デフォルトの名無しさんNGNG
>>821
はげしく勘違いしとる(^-^;
0824まいNGNG
>>821
どう説明したらわかってもらえるかわからないけど、
10進数とか16進数っていうのは、ソースに記述したり
外部にテキスト形式で出力したりするときに関係してくる
もので、コンピュータの内部では常にバイナリで処理されてます。
はい。
0825821NGNG
いえ、あのつまり、0x31, 0x32, 0x33, 0x00は、
asciiコードで言えば、それぞれ1,2,3,nullですよね?
それで、20を16進数に変えますと14ですから、これを表示すると、
Π こんなようなマークが表示されるわけですよ(14のアスキーコードが見つかりませんでした)
これでも勘違いしていますか?
0826まいNGNG
>>825
もしかして、charを他の言語の文字列型と同じように思ってる?
(temp[]の要素数が1だし)
charは、文字列型ではなくて文字型だから一文字しか入らないよ。

char temp[3];
sprintf(temp, "%x", 20);

"14"を変数に入れたかったら、temp[3]にしないとだめ。
0827助けてくださいNGNG
Fortran で、バイト文字をアスキー型に変換する関数を教えてください。
もしくは、その辺に詳しいサイトを紹介してください。
m(_ _)m
0828821NGNG
>>826
ありがとうございます、こんな質問に付き合っていただいて。
言葉足らずで申し訳ありません。

20を16進数に変えた後、その配列には最終的にはこうなってもらいたいんです。
{0x31, 0x14, 0x33, 0x00} //変数dataの中身

826さんのおっしゃるようにやりますと、
14という数字の1の部分(1バイト分)がその配列の先頭に入るだけになってしまいます。
つまり、
{0x31, 0x32, 0x33, 0x00} となり、結局中身は変わらないです。
説明不十分で826さんがミスリーディングしてしまいましたら、申し訳ないです。
0829デフォルトの名無しさんNGNG
>>821
最近までBASICやってたような質問だねぇ
0830まいNGNG
>>828

そうしたいなら、これでいいけど。。。

int main()
{
unsigned char data[4] = {0x31, 0x32, 0x33, 0x00};

data[1] = 20; /* data[1] = 0x14;と同等の処理 */

cputs(data);
cputs("\r\n");
return 0;
}
0831821NGNG
>>830
ちょっと、こちらで実行してみます。それから返事します。どうもです。
0832821NGNG
>>830

できました。なんか拍子抜けしてしまいました。
単純にこれでいいんですね。ありがとうございました。
0833デフォルトの名無しさんNGNG
>>832
入門書の一冊でも買ってよめや。
0834デフォルトの名無しさんNGNG
だね
0835デフォルトの名無しさんNGNG
DirectInputについて勉強しているのですが、
これを使うとキーボードなのの反応が早くなるとならいました。

実際どうやって初期化するか、キーの状態を取得するか
は分かったのですが、どこで取得するのがいいのでしょうか?

メッセージを処理するCALLBACKの所で取得すると、DirectInputを
使わない時と変わらなくなってしまうので、メッセージループの部分で
やるとなると毎回呼び出す分、負担が大きくなってしまうと思うのですが、
それ以外に方法が思いつきません。

どうかよろしくお願いします。
0836デフォルトの名無しさんNGNG
必要になったときに取得しろ
そもそもDirectInputを使う必要があるのかどうかよく考えろ
0837デフォルトの名無しさんNGNG
>>835
それって宿題ですか?
0838デフォルトの名無しさんNGNG
>>835
ゲームのループってーのは、ディスプレイのリフレッシュレートに
あわせて回すのが一般的です。

例えば、リフレッシュレートが60Hzの場合、画面は1秒間に60回しか
書き換わらないので、それ以上の速度でVRAMを書き換えても、
無駄です。

なので、普通は1ループ終了後(すなわち、キーを一回読み込み、
必要な処理をし、バックバッファに次のVRAMイメージを描画し終った後)、
ダブルバッファをフリップするタイミング(垂直帰線期間の開始)までウェイトします。

つーことで、CALLBACKやループでキーを読み出すのではなく、
垂直帰線期間が開始したら、1回分読み出せばOKです。

(DirectDraw使ってるなら、LPDIRECTDRAWSURFACE3のFlip()呼ぶ時に、
Flip(NULL, DDFLIP_WAIT)みたいにDDFLIP_WAIT指定すれば、
勝手に垂直帰線期間までウエイトしてくれるんじゃないかなぁ?
まちがってたらスマン。)
0839デフォルトの名無しさんNGNG
そもそも、ノートとか垂直同期検出不可能な環境もあるから、
現在はタイマで待つのが一般的かと。
0840デフォルトの名無しさんNGNG
C言語で、BMPファイルのグラフィクデータを直接いじるやり方ってどうやるのでしょうか。
調べましたが、どうにもアドレスでどうにかするしかないらしいのですが・・・
0841デフォルトの名無しさんNGNG
>>840
アドレスでどうにかするんじゃないとしたら、どんなふうに直接
いじりたいの???
getColor(bmp,x,y)とかsetColor(bmp,x,y,color)みたいなかんじ?
0842デフォルトの名無しさんNGNG
不定期アゲ
0843デフォルトの名無しさんNGNG
>>835
ちゃんとスレッドを作って実行してる?

>>840
直接操作しないとパフォーマンスが悪いよ
0844デフォルトの名無しさんNGNG
すいません、教えてください。
Cなんですが
宿題で、ANK文字や漢字1バイト、漢字2バイトを
見分けなければならないのですが、
どうやって見分ければいいのでしょうか?
教えてください。
0845デフォルトの名無しさんNGNG
>>844
ctype
0846デフォルトの名無しさんNGNG
>>844
ANK文字って響き、懐かしいなぁ。
ほい。
http://www.google.com/search?hl=ja&q=%8A%BF%8E%9A+ANK+%94%BB%95%CA%81@%91%E6%82P%83o%83C%83g&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

(余談だけど、ANKって、Alphabet Numeric Kana の略なんだね。)
0847デフォルトの名無しさんNGNG
>>846
魚でなく釣り竿を渡す。大岡越前のようです。
0848デフォルトの名無しさんNGNG
漏れは消防の頃、大岡越前をおおおかこしまえと読んでいました。
0849844NGNG
わかんない(汗
ctypeはしらべてわかりましたが
やっぱ漢字を見分けるのが出来ません。
どなたか簡単に教えてください〜
0850デフォルトの名無しさんNGNG
>>844
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/w/whatKanji.html
0851844NGNG
>>850サマ!!
ありがとうごぜえます〜♪
0852デフォルトの名無しさんNGNG
>>850の悪行によって>>851のプログラマ人生は絶たれたのでした・・・。
0853デフォルトの名無しさんNGNG
そんな事も自分で調べられないなら
元々プログラマに向いてないでしょ。
0854デフォルトの名無しさんNGNG
>>851は>>850のソースを活用できないに1ドラクマ。
0855デフォルトの名無しさんNGNG
>>844
その課題、それを分別してから、単語ごとに区切ってクイックソートしたりする?
0856デフォルトの名無しさんNGNG
fortranの参考書を本屋で探したんですが、どこにも売ってませんでした。
先生も文法をたいして教えずに課題を出しやがる。
問題は1、2、3、・・・20の等差数列の和を出すプログラムを書けをいうものです。
どなたかまじで助けてください。
0857デフォルトの名無しさんNGNG
1から20までの総和

01 c
02 c
03 c
04 s=0.
05 do i=1,20
06 s=s+i
07 end do
08 c
09 write(*,*) 's=',s
10 c
11 end
0858デフォルトの名無しさんNGNG
>>856
Σn=(n+1)*n/2
n=20として 21/20/2=21*10=210

よって
INTEGER ANS
    ANS=210
    WRITE(*,*) '答えは',ANS
    END

の4行で終わりかと
0859デフォルトの名無しさんNGNG
ほんとありがとうございました。
まんま書いてもなぜかできなかったんですが、
この前授業でもらったプリントと重ねあわせてやってみたところ。
下のやつで出来ました。
n=0
do i=1,20
n=n+i
end do
write(*,*) 'n=',n
stop
end
注文した参考書が届いたらちゃんと勉強したいと思います。
0860デフォルトの名無しさんNGNG
答えを整数型で表示する次のプログラムを、実数で表示するようにかえてください。
言語は見ての通りCです。お願いします。
#include <stdio.h>
#define INPUT_FORMAT "%d"
#define SUM_FORM "%d"
void input(int);
void sum(int);
int M[100],n,m,l,s=0;
main()
{
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
input(n);
sum(n);
m=s/6;
l=s%6;
printf("商="INPUTF_ORMAT"\n",m);
printf("あまり=" SUM_FORM"\n",l);
}

void input(int n)
{
for(n=0; n<100; n++)
{
if( scanf(INPUT_FORMAT,&M[n])!=1 )
break;
printf("M[%d]="SUM_FORM"\n",n,M[n]);
}
return (M);
}
void sum(int n)
{
for(n=0;n<100;n++)
s+=M[n];
return (n);
}
0861デフォルトの名無しさんNGNG
>>860
void の関数でreturn(M)とかやって、コンパイルとおるのか?
0862デフォルトの名無しさんNGNG
それ以前に、
void input(int n)
{
...(略)
return (M);
}
void sum(int n)
{
...(略)
return (n);
}
って何よ。
0863デフォルトの名無しさんNGNG
>861
VC++6のデフォルトなら、
「warning C4098: 'input' : 戻り値の型が 'void' で宣言された関数が、値を返しました」
とか言われるけど、コンパイルはできる。
なんかCのイヤなところを見てしまった気分
0864860NGNG
>861さん
863さんの言う通りコンパイルは出来るんですよ。
ただこのプログラムを実数表示にしようとするともう頭が・・・・。
何とかなんないでしょうかね?
0865デフォルトの名無しさんNGNG
printf("商=%d.0\n",m);
printf("あまり=%d.0\n",l);
0866デフォルトの名無しさんNGNG
>>864

main()
{
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
input(n);
sum(n);
printf("商=%g\n",s/6.0);
printf("あまり=%d",l%6);
}

あんたの意図がいまいちわからんけど、
実数表示ならこれでいいと思う。
0867デフォルトの名無しさんNGNG
input()もsum()も引数をとる意味が無いような…
0868860NGNG
>865さん
>866さん
ありがとうございます。今からやってみます。ちなみにdefine文は書き
換えなくてもいいのでしょうか?それとこのプログラムの正しい戻り値っ
てどうすればいいのでしょう?気になったもので。
>867さん
僕にも意味はわかりません(笑 

0869860NGNG
先生曰く「戻り値が正しくないから駄目です。やり直し。」
誰か〜、戻り値教えてください〜(泣
0870デフォルトの名無しさんNGNG
>>869
もしかして教室から?

int input(int n)
int sum(int n)
0871860NGNG
>870さん
回答ありがとうございます!コンパイルできました!ちなみにただ今授業の
真っ最中です。コソーリ書き込んでます。
で、新たな問題が・・・865さんと866さんの教えてくれたプログラムに
書き換えたんですけど、入力で実数の4.5とか入れるとその時点で終わってしま
います。この解決方法はどうすればいいのですか?
0872デフォルトの名無しさんNGNG
>>871
「答えを整数型で表示する次のプログラムを、実数で表示するようにかえてください。 」
って言ってたじゃん・・・
0873860NGNG
>872さん
!!(;´Д`) すみません!どうやら間違いがあったようです。
正しくはさっきのプログラムに実数を入力しても正しく動くようにして
ください、ってことです。たとえば5.4と8.3と9.4を入力すると商に3、
あまりに5.1を表示できるように、ということです。文章力&プログラム力
なくてすみませんがよろしくお願いします。

0874デフォルトの名無しさんNGNG
http://choco.2ch.net/test/read.cgi/news/1019808938/

【2ch vs TIME】我等が不死鳥田代-12【戦争】

1 :番組の途中ですが名無しです :02/04/26 17:15 ID:n4EtZFI6
■STEP 1
-------↓ここから-------
<html><head><meta http-equiv="refresh" content="0"></head><body>
<iframe height=500 width=500 src="http://www.time.com/gdml.dyn?page=www/time/asia/features/heroes/poll/asianheroes_new.oft&gameid=asianheroes2&q1=M%3C%21--2ch--%3Easashi+T%3C%21--2ch--%3Eashiro ">
</iframe></body></html>
-------↑ここまで-------
をメモ帳を立ち上げ、コピー&ペースト。
■STEP 2
それを、ファイルに「tashiro.htm」と名前を付けてデスクトップに保存。
■STEP 3
デスクトップにできた「tashiro.htm」を飽きるまでダブルクリックして、ブラウザを立ち上げる。

    ___
    /     \     __________
   /   ∧ ∧ \  /
  |     ・ ・   | < 生きろおめーら
  |     )●(  |  \__________
  \     ー   ノ
    \____/
0875デフォルトの名無しさんNGNG
>>873
授業料500円払えや!
(って仕様を読み違えてる可能性有り)

#include <stdio.h>
#include <math.h>
int input(float M[], int);
float sum(float M[], int);

main()
{
float M[100], s;
int num;
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
num = input(M, 100);
s = sum(M, num);
printf("商=%g\n", s / num);
printf("あまり=%g\n",fmod(s, num));
}

int input(float M[], int max)
{
int i;
for(i=0; i<max; i++)
{
if( scanf("%f",&M[i])!=1 )
break;
printf("M[%d]=%g\n",i,M[i]);
}
return i;
}

float sum(float M[], int num)
{
int i;
float s = 0.0;
for(i=0;i<num;i++)
s += M[i];
return s;
}
0876860NGNG
>>875さん
お礼が遅れてすみません!ありがとうがざいました!
遅れた言い訳→授業中にネットをやっているのがばれて先生に激怒され、今日まで
演習室に立ち入り禁止処分を食らったため・・・・。しかも宿題増やされるし。
欝だ逝ってきます。
0877デフォルトの名無しさんNGNG

>>144
> 正確に言うとコンパイルとリンクね。
正確に言うと、プリプロセス -> コンパイル -> アセンブル -> リンク ね。
0878デフォルトの名無しさんNGNG

>>233
>使わない、と言うかぁー、使えない。

return そのものは使えるよ。

void func(void){
if(....){
........
return;
}else{
........
........
}
}

とか。
途中で処理を打ち切るのに使ってる。
0879デフォルトの名無しさんNGNG

>>390
> C言語での個人情報ファイルの作り方を教えてください。
>(ソート、検索が可能でレコードの追加、削除、訂正、新規などの操作ができるもの)
K&R の 5 章と 6 章に殆どそのものが載ってる。
0880デフォルトの名無しさんNGNG
c++で1234と表示するプログラムなんですが、
kazu.cpp: In function `int main (...)':
kazu.cpp:21: no matching function for call to `kazu::setkazu (const
char[5])'
kazu.cpp:7: candidates are: void kazu::setkazu (const int *)
というエラーがでてうまくいきません。intとcharに関連したエラーだという
ことはわかるのですが、始めたばかりでどう直せばよいのかよくわかりません。
よろしく頼みます
//ヘッダファイル"kazu.h"
class kazu
{
int a [20];
public :
virtual void setkazu (const int *p_a);
virtual void putkazu();
};
//"kazu.h"END

//mainファイル"kazu.cpp"
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include"kazu.h"

void kazu::setkazu(const int *p_a)
{
for(int i=0;p_a[i]!='\0';i++){
a[i]=p_a[i];
}
}
void kazu::putkazu()
{
cout<<a\n;
}
void main()
{
kazu ka;

ka.setkazu("1234");
ka.putkazu();
}


0881デフォルトの名無しさんNGNG
C言語で、+・−の演算子を使わずに、加算・減算ができるプログラムを
作りたいのですが・・・。教えていただけますか?インクリメント・デクリメントの
使用はOKらしいです。
0882デフォルトの名無しさんNGNG
>>880
setkazu に数字の配列を渡してるつもりなんだろうけど
"1234"は文字列(charの配列)だぞ。
0883882NGNG
の割には
a[i]!='\0'
って書いてあったりするんだね。
わかってるのか、わかってないのか・・・
0884デフォルトの名無しさんNGNG
>>881
+=や-=はOKなのか?
0885デフォルトの名無しさんNGNG
>>883
intとcharの違いがわかってないと読んだ。
0886デフォルトの名無しさんNGNG
>>881
元の上位=A
元の下位=B
後の上位=C
後の下位=D
として
C=A and B
D=A xor B
とすれば加算になる。
これを桁数分だけ繰り返す。
0887880NGNG
>>882
なるほど・・・では数字の配列として渡すにはどうすればいいですか?
0888886NGNG
1ビットずつね
0889デフォルトの名無しさんNGNG
頭悪い回例
int add( int left, int right )
{
for( int i=0; i<right; i++ )
left ++;
return left;
}
ところで、型がdoubleだったら面倒だよな。

>>880
int nums[]={1,2,3,4,5,0};
ka.setkazu(nums);
とか
0890882NGNG
>>887
というか、このクラスのコンセプトは?
もともと数を文字列で持つつもりで作ったんじゃないの?
0891デフォルトの名無しさんNGNG
>>881
こんなんどう?

int add( int i, int j)
{
_asm
{
mov eax, i
add eax, j
mov i, eax
}
return i;
}
0892デフォルトの名無しさんNGNG
>881
いいにくいんだが、別スレでがいしゅつ・・・。
ttp://pc.2ch.net/test/read.cgi/tech/1019372139/162-
0893デフォルトの名無しさんNGNG
>>892
・・・鬱。
同じ授業か何かか?
0894892NGNG
漏れも昔、他人のレポート丸写したから、べつにいいんだけどね。
たしかに授業でやるにはちと難かしいかも。
0895881NGNG
>892様
既出でしたか。すいませんでした。リンク先を参考にしてみます。
0896デフォルトの名無しさんNGNG
C言語の質問なんですが、int型の配列に、キーボードからの入力を格納していくにはどうすればいいですか?
0897デフォルトの名無しさんNGNG
>>896
getchar()で一文字ずつ取得するってのはどぉ?
0898デフォルトの名無しさんNGNG
>>896

char buf[MAX];
int k=0,n[N] ;
while(fgets(buf,MAX,stdin) && k<N){
/*ここでbufの内容が(scanfに)適正かチェック*/;
sscanf(buf,"%d",n+(k++));}

みたいな
0899太田家NGNG
a.rea1+jimag
b.real+b.imag に対し、
a+b, a-b, a*b, a/b , eのa乗, aの絶対値
を求めるプログラムを教えて!ヒントキボンヌ
0900デフォルトの名無しさんNGNG
>>899
君は『人に何かを伝える』とはどういうことか、考えた事はありますか?
0901デフォルトの名無しさんNGNG
>を求めるプログラムを教えて!ヒントキボンヌ

無理に2ch用語使わなくてもいいんだよ?
0902デフォルトの名無しさんNGNG
やべっ漏れマジでe^a忘れた。
だれかe^aだけでいいから教えてくれよ。
0903デフォルトの名無しさんNGNG
>>902
a = x + iy
e^a = e^x * e^iy = e^x * ( cos(y) + i * sin(y) )
0904900NGNG
良く見ると >>899 は…複素数か?
C99 で _Complex 型を使うってのはどうだ?つーか、言語何よ?
0905デフォルトの名無しさんNGNG
>>903
サンクス。
指数の加算は分離できるんだったね。
0906デフォルトの名無しさんNGNG
実数を一つ入力して(%lf)、全体の桁数を10桁として、それぞれ小数以下を
3桁、2桁、1桁で表示するプログラムを作りなさい。(%10.3f、***、***) ***
は各自決定せよ。
という問題があるのですが誰かわかりませんか?

0907デフォルトの名無しさんNGNG
>>906
VC++です
0908デフォルトの名無しさんNGNG
>>906
printfで%10.3fだと13桁にならない?
%*.*fを使うとよいかも。
0909デフォルトの名無しさんNGNG
>>906
私はわかりますが、決定するのはあなたです。
0910デフォルトの名無しさんNGNG
>>909
てつだってねー
0911デフォルトの名無しさんNGNG
問題文見て答えが推測できなきゃダメ。
0912デフォルトの名無しさんNGNG
>>911
だって〜まだ初めて一週間もたってないんですよ
たのみますよ〜
0913デフォルトの名無しさんNGNG
#include <stdio.h>
void main(void)
{
double a;
scanf("%d",&a);
printf("%10.3f%10.2f%10.1f\n");
}
のどこが悪いかわかりません
0914デフォルトの名無しさんNGNG
始める前でもある程度予想つきそう。
0915デフォルトの名無しさんNGNG
>>908には手伝ってもらわないほうがいいでしょう。
0916デフォルトの名無しさんNGNG
>>914
つかないっすよ〜
プログラムなんて初めてなんだから
0917デフォルトの名無しさんNGNG
>>916
参考書買え。
0918908NGNG
>>915
(^_^;)

>>916

#include <stdio.h>

int main()
{
double d;
int keta;

scanf("%lf",&d);
for(keta=3;keta>0;keta--)
printf("%10.*f\n",keta,d);
return 0;
}
0919デフォルトの名無しさんNGNG
次スレの女の子の名前は?
0920デフォルトの名無しさんNGNG
>>918
理解しにくい、プログラムの見本だな。出力結果も3行になるし、やっぱ
こいつには手伝って欲しくないよ。
0921デフォルトの名無しさんNGNG
>>918
お〜すごいです〜!!!
欲を言うとFor関数習ってないので使わないでできるでしょうか?
0922デフォルトの名無しさんNGNG
”のえみ”でどうよ?
0923918NGNG
>>920
なんで三行になってはいけないのよ・・・・

>>921
#include <stdio.h>

int main()
{
double d;

scanf("%lf",&d);
printf("%10.3f %10.2f %10.1f\n",d,d,d);
return 0;
}

forは関数じゃない。
0924デフォルトの名無しさんNGNG
>>923
mathematicaと混同したw
まじでありがとうございます!!!!!!!!!!!!!!!!!!!!!!!
神!!
(・∀・)/�I
少ないですがこれで
0925デフォルトの名無しさんNGNG
10.3fだと9桁しか出ないという罠
0926デフォルトの名無しさんNGNG
>>925
小数点は桁に含めないの?
0927デフォルトの名無しさんNGNG
>>923
元が一行だから。
0928デフォルトの名無しさんNGNG
>>920
この程度のプログラムで、理解しにくいってどのへん??
もしかしてネタなのか・・・
0929デフォルトの名無しさんNGNG
>>928 相対的な話だよ。
0930928NGNG
>>929
なるほどね。
で、俺的にはfor()のあとには{}付けてほしいってくらいだけど、
他になんか気になる点ある?
0931デフォルトの名無しさんNGNG
>>929
もしかしてエラーチェックしていないってこと?
そんなの省略したに決まっているじゃない。
0932930NGNG
>>931
エラーチェックしてないことが、理解しにくいってことにはならないだろ。
理解しにくいってのは、記述やアルゴリズムの問題。
0933929NGNG
漏れは>>920じゃ無いから、べつに理解しにくいとは思わないけど。
0934930NGNG
む・・・
すると>>920はやはりネタなのか・・・。ムカツク野郎だな。
0935デフォルトの名無しさんNGNG
スマソ、
VBマガジン11月号の記事みてちとやってみたらクイックソートがうまくいかなんだが
ちと知恵貸してくれんかのう・・・

まずクラスモジュール定義して・・・

'qsort class

Option Explicit

Public Event compare(ByVal x As Long, ByVal y As Long, ByRef flag As Long)

Public Event swap(ByVal x As Long, ByVal y As Long)

Public Sub sort(ByVal startPos As Long, ByVal endPos As Long)

Dim i As Long
Dim j As Long
Dim xPos As Long
Dim compareflag As Long

i = startPos
j = endPos
xPos = (startPos + endPos) \ 2

Do
RaiseEvent compare(i, xPos, compareflag)
While (compareflag < 0)
i = i + 1
RaiseEvent compare(i, xPos, compareflag)
Wend
RaiseEvent compare(j, xPos, compareflag)
While (compareflag > 0)
j = j - 1
RaiseEvent compare(j, xPos, compareflag)
Wend

If (i <= j) Then
RaiseEvent swap(i, j)
i = i + 1
j = j - 1
End If
Loop Until (i > j)

If (startPos < j) Then sort startPos, j
If (endPos > i) Then sort i, endPos
End Sub
0936デフォルトの名無しさんNGNG
次に

Option Explicit

Private WithEvents objQSort As qsort

Dim data(4) As Long

Private Sub Command1_Click()

data(0) = 10
data(1) = 3
data(2) = 30
data(3) = 6
data(4) = 2

Set objQSort = New qsort
objQSort.sort 0, 4

Dim i As Long
For i = 0 To 4
Debug.Print data(i)
Next

End Sub

Private Sub objQSort_compare(ByVal x As Long, ByVal y As Long, ByRef flag As Long)

flag = (data(x) - data(y))

End Sub

Private Sub objQSort_swap(ByVal x As Long, ByVal y As Long)

Dim temp As Long

temp = data(x)
data(x) = data(y)
data(y) = temp

End Sub

とやってるのだが、これだと

2
3
10
6
30

の並びなってうまくいかんのだが、どこがおかしいんだか教えてくれんかキボーン
0937デフォルトの名無しさんNGNG
VBか・・・配列は?
0938920NGNG
>>908=>>918=>>923, >>928=>>934
バカ。単純に書ける所をわざわざ for() なんか使って書くからバカだって言っ
てんだよ。質問の本質と違うところで変な変更するなよ。しかも、動きまで違う
し。バグ作りこむ前に氏ね。
0939!=920NGNG
オレなら、>>923 のprintfを3つに分割するか、関数化して3回呼ぶかな。
0940!=923NGNG
オレは、>>923のように書くなぁ。
0941デフォルトの名無しさんNGNG
>>938
ところで、改行してはいけないってどこに書いてあるんだ?
0942デフォルトの名無しさんNGNG
>>941
バカか、お前。
> 質問の本質と違うところで変な変更するなよ。しかも、動きまで違うし。
> バグ作りこむ前に氏ね。
おまえもなぁ〜〜〜。
0943デフォルトの名無しさんNGNG
宿題はSCHEMEもやってくれるんですか?
0944デフォルトの名無しさんNGNG
>>943
schemeでもかまわないが、まるまるやってはやらんぞ。
どこまで自分でやって、どこでつまずいてるか教えてね。
0945デフォルトの名無しさんNGNG
久しぶりに来てみたが・・・怜ちゃんはいるのか?
0946デフォルトの名無しさんNGNG
スレを読めば分かることだと思いますが?
0947デフォルトの名無しさんNGNG
>946
久しぶりに名前を出したかっただけだ、ageてすまない。
0948デフォルトの名無しさんNGNG
ぐはっ
0949デフォルトの名無しさんNGNG
シェルの作成についての課題なのですが、

MyshellはCshellと違って、Cで実行できていたコマンドや機能のうち
働かないものがある。これらを調べ、どのような機能が実行できないか、
なぜできないか、どのような機能を追加すればいいか?

例えば次のが実行できない

エイリアス、ヒストリー、ワイルドカード、ファイルへのリダイレクト、
shellプログラミング、ディレクトリー操作(popd、pushdなど)

これらから4つほど(エイリアス、ヒストリーは必須)をmyshellに追加せよ。

という課題です。助けてください、お願いします。できればソースを、、。
0950デフォルトの名無しさんNGNG
>>949
Myshellは一般的なものじゃないので、それがどんなものか
教えてくれないとわかんないよーん。
0951949NGNG
>>950様、これです#include<stdio.h>
#define MAXARGS 10 /* 許されるコマンドの引数の最大の数 */
#define LINELENGTH 80 /* コマンドラインの最大文字数 */
#define CONTINUE 1
#define EXITCOM 0

main(int argc,char* argv[])
{
char linebuf[LINELENGTH];
int hist;

for(hist=1; ;hist++){
printf("myshell[%d] ",hist);

    gets(linebuf);
  
if(exec_one_command(linebuf)==EXITCOM) break;
}
}
char *skipspace(char* s)
{
while(*s==' ') s++;

return s;
}

0952949NGNG
int getcl(char* line,char* argmv[])
{
int argnum=0;

do{
line=skipspace(line);
if(*line=='\0'){
argmv[argnum]=NULL;
return argnum;
}
argmv[argnum++]=line;
while(*line!='\0' && *line!=' ') line++;
if(*line=='\0'){
argmv[argnum]=NULL; return argnum;
}
*line='\0'; line++;
}while(1);
}

int exec_one_command(char linebuf[])
{
int argnum, status;
char *argmv[MAXARGS];

argnum=getcl(linebuf,argmv);
if(argnum==0) return CONTINUE;

if(strcmp(argmv[0],"exit")==0){
return EXITCOM;
}
if(fork()==0){
execvp(argmv[0],argmv);
printf("Error at execvp\n");
exit();
}
wait(&status);
return CONTINUE;
}

0953950NGNG
>>951
おぉぉ。おもしろいね。コレ。
で、まず
エイリアス:
1.exec_one_command()で、alias っていうコマンドが来たら、第2引数(エイリアス名)と第3引数以降(コマンド)を何か(alias_bufと名づけよう)に保存。
2.exec_one_command()で、alias_bufに登録してあるエイリアス名を探して、存在すれば、保存してあるコマンドを代わりに実行する。

ヒストリ:
1.exec_one_command()で、コマンドを実行するたび、何か(history_buf[hist]としよう)に保存していく。
2.exec_one_command()で、!数字 っていうコマンドが来たら、代わりにhistory_buf[数字]に保存しといたコマンドを実行する。

でできるよ。簡単簡単。
あと簡単そうなのは、shellプログラミング(制御構造が無い、batファイルみたいな単純なの)と、
ディレクトリ操作かなぁ。ワイルドカードも、そんなに難しくないかも。リダイレクトは、ちと難しい。
0954949NGNG
>>950様
丁寧な説明、ありがとうございます!
おもしろい、、のでしょうか?(汗
僕もそう思える日がくればいいなぁ、、。
0955デフォルトの名無しさんNGNG
(冗) <フムフムソレカラ?
0956デフォルトの名無しさんNGNG
ageてみるか
0957デフォルトの名無しさんNGNG
そろそろ新スレを誰か。
0958玉三郎NGNG
ワシの出番か・・・
0959デフォルトの名無しさんNGNG
>>958
玉三郎が宿題を教えてくれても、あまり嬉しくないぞ
0960玉三郎NGNG
こら誰が金玉三郎じゃヽ(`Д´#)ノ
0961デフォルトの名無しさんNGNG
玉三郎は、金玉三郎と… φ(.. )
0962デフォルトの名無しさんNGNG
そういや、えれながいつのまにか消えたな・・・
0963デフォルトの名無しさんNGNG
最多真鯛の宿題か…
0964デフォルトの名無しさんNGNG
えれなや怜って演じてる奴何回くらい変わってんだろ?
0965デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/994129650/958-
クロスリンク
0966デフォルトの名無しさんNGNG
>>949はマルチポスト厨房
無視が一番
0967デフォルトの名無しさんNGNG
>>965
こっちも
http://pc.2ch.net/test/read.cgi/tech/1019743589/77-
0968まとめNGNG
http://pc.2ch.net/test/read.cgi/tech/994129650/958-
http://pc.2ch.net/test/read.cgi/tech/1019743589/77-
http://pc.2ch.net/test/read.cgi/tech/1020208001/684-
http://pc.2ch.net/test/read.cgi/tech/1011722640/949-
0969えれなNGNG
>962
呼んだ?
0970デフォルトNGNG
#include<stdio.h>

void main(void)

{
int a;

a = 10;
}

上のプログラムを実行すると「aの値は10です」と
出力するようにするにはどうしたら良いのでしょうか?
(%dを使って)
0971デフォルトの名無しさんNGNG
>>970

%dとまでいってて、何がわからないの?
もしかして全角でってこと?
0972デフォルトの名無しさんNGNG
その前にニホンゴができてないな。
母国語なんだろうけどいいたいことを正確に伝えられない
言語障害者はプログラミング言語をつかっても駄目なこと多いよ。
0973初心者NGNG
簡単なアルゴリズムを教えてください。
問題は
「キーボードから文字列を読み込んで,
読み込んだ文字列を逆にした文字列を表示する」解答 I94==>49I
という問題なのですが。。配列でやったのですが。。。
0974デフォルトの名無しさんNGNG
>>973
スタック使え...。多分これだけでは、ちんぷんかんぷんだろうから、
スタックを配列で作れ。とまでは言っておこう。
0975デフォルトの名無しさんNGNG
配列でやったならあとは一文字ずつ...
0976デフォルトNGNG
>>971
自分、超初心者なんで%dも良く分からないです。
全角でとは、どういう事ですか?
0977デフォルトの名無しさん NGNG
文字を入力してカウントするプログラムで

main()
{
int i=0,j;
while(j=getchar()){
if(j==EOF)break;
i++;
}
printf("文字数は%dです。\n",i);
}

と記述したのですが、
どうしても文字数+1となります。
なぜでしょうか?
0978初心者NGNG
973ですが、スタックってキューとかって
実際今まで使ったことがないのでわかりません。
基本情報を勉強したときに障った程度です。

配列でいこうと思っているのですが。。。
0979素人。NGNG
printf("aの値は10です\n%d%c%c",a,0x08,0x08);

あってる?
0980素人。NGNG
getchar()
で開業コードもカウントされるからですかな。
と書いてみるテスト。
0981977NGNG
>>980

どうやって回避すればいいのでしょうか?>改行コード
printf("",i-1);
とすると何も入力しないとき-1が帰ってくるので困ってます。
0982デフォルトの名無しさんNGNG
>>973
#define MAX_LINE 2000
int ri;
char line[MAX_LINE];
while(1){
fgets(line,MAX_LINE,stdin);
for(ri = strlen(line)-2;ri>=0;i--)
putchar(line[ri]);
putchar('\n');
}
//toka
0983素人。NGNG
strlen
とか使えばいいのではないかしら。
0984977NGNG
>>983
すみません。getcharつかうのが前提なんです。(・∀・;)
0985デフォルトの名無しさんNGNG
>>984
なら、改行コード('\n')のときは i++ しないってので、どぉ?
0986デフォルトの名無しさんNGNG
while(j=getchar()){
if(j==EOF)break;
else if(j=='\n')continuel
i++;
}
//違ったらごめん
0987デフォルトの名無しさんNGNG
l → ;
0988デフォルトの名無しさんNGNG
>>982
エラー: 'i' が未定義です。
警告: MAX_LINE より MAX_CHARS のほうがより良いと思います。
警告: プログラムが終了できない可能性があります。EOF を入力したら
   ちゃんと終了するように作りましょう。
0989デフォルトの名無しさんNGNG
#define MAX_LINE 2000
int ri; char line[MAX_LINE];
while(fgets(line,MAX_LINE,stdin) > 0){
for(ri = strlen(line)-2;ri>=0;ri--)
putchar(line[ri]);
putchar('\n');
}
//tekito desuga dozo
0990977NGNG
>>986
それでいけました。ありがとです。ヽ( ´ー`)ノ
continueてのは初めて聞きましたよ。
0991デフォルトの名無しさんNGNG
>>973
#include <stdio.h>

rev_put(ch)
{
 if (ch != '\n') {
  rev_put(getchar());
  putchar(ch);
 }
}

main()
{
 rev_put(getchar());
}
0992素人。NGNG
mov cx,200
hoge:
mov ah,07h
int 21h
push
loop hoge
mov cx,200
hogehoge:
pop dl
mov ah,02h
int 21h
loop hogehoge

あってる?
0993デフォルトの名無しさんNGNG
>push
0994素人。NGNG
push al
ね。
0995デフォルトの名無しさんNGNG
なにがやりたいのかわからん
0996デフォルトの名無しさんNGNG
>>991
そんなのアリか?
0997そろそろNGNG
1000!!!!
0998そろそろNGNG
1000!!!!
!
0999そろそろNGNG
ほいしょ。
せん。
1000デフォルトの名無しさんNGNG
はいはい
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。