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

VIPPERでもわかるプログラミング 2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/12/01(木) 21:02:20
点プレは>>2-5あたり


0655デフォルトの名無しさん2005/12/08(木) 20:44:28
>>654
なるほど。�dクス
0656デフォルトの名無しさん2005/12/08(木) 20:47:01
ソースみせい(`・ω・´)
0657デフォルトの名無しさん2005/12/08(木) 20:54:05
>>648
いや本当はscanf使っうハズだったから代入はしないお

>>649
同じ

>>651
うーん。while(getchar() != '\n'){}入れてみたけどだめだった

>>652,656
うはwwわかったようpするよ。


もう少しあがいてからな。
0658デフォルトの名無しさん2005/12/08(木) 20:55:27
うむ原因は別のところにあるみたいだ。コテないけど俺338ね
0659デフォルトの名無しさん2005/12/08(木) 20:55:39
コンマとか忘れてたり、%と&なんかを間違えたり。
そういう時期が僕にもありました。
0660デフォルトの名無しさん2005/12/08(木) 20:56:36
#include <string.h>
は絶対必要だっけ?
0661デフォルトの名無しさん2005/12/08(木) 20:57:37
なくてもコンパイルできるならいらねんじゃね?
0662デフォルトの名無しさん2005/12/08(木) 20:59:42
>>660
strcpy使うなら必要なはず
0663デフォルトの名無しさん2005/12/08(木) 21:01:11
>>660
必要ない
0664デフォルトの名無しさん2005/12/08(木) 21:02:37
>>660
必要w
0665デフォルトの名無しさん2005/12/08(木) 21:03:32
どっちやねんw
0666デフォルトの名無しさん2005/12/08(木) 21:04:21
Cではプロトタイプ宣言は必須じゃないお
C++やVCだと必須だお
0667デフォルトの名無しさん2005/12/08(木) 21:05:18
なぜか #include <iostream> だけでおkだったり・・
0668デフォルトの名無しさん2005/12/08(木) 21:07:50
>>666
>Cではプロトタイプ宣言は必須じゃないお

え〜そうなん?
0669デフォルトの名無しさん2005/12/08(木) 21:08:43
そうだお
でも俺は一応やってるお
0670デフォルトの名無しさん2005/12/08(木) 21:08:54
ヘッダーファイル

string.h

カテゴリ

インラインルーチン,メモリ・文字列操作ルーチン

構文

#include <string.h>
char *strcpy(char *dest, const char *src);
wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);

#include <mbstring.h>
unsigned char *_mbscpy(unsigned char *dest, const unsigned char *src);

解説

ある文字列を別の文字列にコピーします。

文字列 src を dest にコピーします。コピーは,ヌルターミネータをコピーしたところで終わります。

戻り値

strcpy は,dest を返します。
0671デフォルトの名無しさん2005/12/08(木) 21:09:23
>>659
あるあるww

結局
printf("\n%sHP:%s\n",playername,playerhp);
これがだめっだったらしいorz
printf("\n%sHP:%d\n",playername,playerhp);
これで問題なしになった。修正に置き換えなんか使った天罰ですね(´・ω・`)

とりあえずうpして寝ますね。
http://www.uploda.org/file/uporg256143.zip.html
0672デフォルトの名無しさん2005/12/08(木) 21:09:24
>>667
そらiostreamの中でincludeしてるから
0673デフォルトの名無しさん2005/12/08(木) 21:11:07
>>671
おまwwww提示してたソースと全然違うwwwwwwwwwwwwww
0674デフォルトの名無しさん2005/12/08(木) 21:12:07
>>669
ライブラリさえリンクしておけば、なんの宣言もなしに関数呼び出せるってこと?
そりゃ嘘でしょ。いくらなんでも。
0675デフォルトの名無しさん2005/12/08(木) 21:13:56
>>674
ほんとだお^^−^^;;;^^^^^;^^
0676デフォルトの名無しさん2005/12/08(木) 21:14:30
はあ?
0677デフォルトの名無しさん2005/12/08(木) 21:15:13
俺とアメリカ軍ってどっちが強いの?
0678デフォルトの名無しさん2005/12/08(木) 21:15:24
お前
06796742005/12/08(木) 21:16:43
>>674

http://www.geocities.jp/ky_webid/c/009.html

>C89の規格では必須とはされていませんが、基本的に必須です。
>これを使わないプログラムは何かと危険が伴います。また、C++では関数プロトタイプは必須となっています。

おおお本当だ・・知らなかった。
0680デフォルトの名無しさん2005/12/08(木) 21:18:05
>>679は>>675宛てです。
0681デフォルトの名無しさん2005/12/08(木) 21:19:35
ペペよりもっと切れの良いローションない?
拭いても拭いてもベタベタするから後始末が大変なんだよ
0682デフォルトの名無しさん2005/12/08(木) 21:20:47
みずき「もぅぬれぬれだょぅう」
0683デフォルトの名無しさん2005/12/08(木) 21:21:31
アッー!
0684デフォルトの名無しさん2005/12/08(木) 21:24:07
>>681
原液のまま使ってないか?
あれは水を混ぜて使うんだぞ
0685デフォルトの名無しさん2005/12/08(木) 21:27:55
>>679
mainより後の関数はまともに動かないって書いてあるじゃんwww
0686デフォルトの名無しさん2005/12/08(木) 21:33:17
>>671
ちょwwwwwwwwおまwwwwwwwww
まさかintを%sで表示しようとしたのかwwww
そりゃムリスwwwwwwwww


>>674
implicit declare
0687デフォルトの名無しさん2005/12/08(木) 21:38:32
ついでだから簡単なコード書いてみた
ソースはまさにこれだけ。#includeディレクティブ無しだが
gccでコンパイル+実行おk

int main(void)
{
printf("%s\n", "boooooon");
return 0;
}


ちなみに-Wallつけると
warning: implicit declaration of function `printf'
が出るが動作に問題はない
これの欠点は確か、プロトタイプ宣言が不明のため
仮引数ならびと実際の引数とが違っててもどうにもならないってことだった希ガス
暗黙の型キャストも動かなかったとかいうのをどこかで見た希ガス
0688デフォルトの名無しさん2005/12/08(木) 21:56:30
>仮引数ならびと実際の引数とが違っててもどうにもならないってことだった希ガス
>暗黙の型キャストも動かなかったとかいうのをどこかで見た希ガス

>>687
ヘーヘーヘー。
とにかく真似しちゃいけないということだけはよく分かった。
0689デフォルトの名無しさん2005/12/09(金) 00:09:48
フフフフフフフフフフフフフフフフフフフフ
0690デフォルトの名無しさん2005/12/09(金) 00:11:33
ハンガリアン記法ってみんな使う?
0691デフォルトの名無しさん2005/12/09(金) 00:13:43
>>690
覚えようとは何度も思ったがいい解説サイトがないんで覚えてない
MSDNの解説ページ見にくいよママン
0692デフォルトの名無しさん2005/12/09(金) 00:15:54
>>690
グループで1つのアプリ作るときは
コーディング規約として使うことにした
なんで、批判をあびてるのかよくわからんが・・・
0693デフォルトの名無しさん2005/12/09(金) 00:18:48
>>690
MFCやDirectXで使っているから、なんとなく従っている。
0694デフォルトの名無しさん2005/12/09(金) 00:18:59
>>690
ハンガリーの天才プログラマーが使っててMSがパクったぐらいだから
メリットがあるんだろうと思ってお試し中
ペゾルドに載ってたやつしか知らないけどな
自分で書いたプログラムじゃあまり意味なさそうだけど
他人が書いたプログラムはハンガリアン記法で書かれてると読みやすいと思えてきた
DirectXなんてこれ知らないと読めたもんじゃねーな
0695デフォルトの名無しさん2005/12/09(金) 00:22:17
lp... とかまだ使う? ロングポインタなんて過去の遺物でそ?
0696デフォルトの名無しさん2005/12/09(金) 00:23:41
lpは俺もpかな。ついでに文字列ポインタもpszじゃなくてpにしてる。
0697デフォルトの名無しさん2005/12/09(金) 00:33:07
C#にしてからハンガリアンは使わなくなったなぁ
0698デフォルトの名無しさん2005/12/09(金) 00:34:21
作るもんがねえ・・・
0699デフォルトの名無しさん2005/12/09(金) 00:34:49
>>698
お題いる?
0700デフォルトの名無しさん2005/12/09(金) 00:35:01
>>699
くれ
0701デフォルトの名無しさん2005/12/09(金) 00:39:37
↓お題
0702デフォルトの名無しさん2005/12/09(金) 00:40:16
つうか新しい言語覚えるときどんな手順踏む?
いきなりツール作り始める?
一つの言語覚えると制御文とかは全部一緒だからもう一度読み直すのダリィよ
リファレンス片手にやって行けば勝手に覚えるのか?
教えてエロイ人
0703デフォルトの名無しさん2005/12/09(金) 00:40:19
完璧な家計簿を作る
0704デフォルトの名無しさん2005/12/09(金) 00:40:29
萌え.jpブラウザ!
0705デフォルトの名無しさん2005/12/09(金) 00:40:53
>>701
スマンコ
0706デフォルトの名無しさん2005/12/09(金) 00:41:28
>>702
本とかサイトに載ってるソースを
アレンジしていく
0707デフォルトの名無しさん2005/12/09(金) 00:41:31
>>704
どんなのか想像ができない件
0708デフォルトの名無しさん2005/12/09(金) 00:41:51
>>702
倉庫番を移植する
0709デフォルトの名無しさん2005/12/09(金) 00:42:32
>>707
画像掲示板を2chブラウザ風に見やすくしてほしいんだよ
0710デフォルトの名無しさん2005/12/09(金) 00:43:45
>>709
意欲は沸くけどどんな風にすれば見やすくなるのかがわからん
0711デフォルトの名無しさん2005/12/09(金) 00:44:35
暇だからお題提示してみる。もっとも俺がとある理由で作ったんでそれの改造だが

・乗算・除算の演算子を用いずに(シフトは用いてよい)除算ルーチンを作れ
余力があれば剰余も同時に求めよ。また、負数の演算は未定義でもよい
言語は特に指定しないが、アセンブリ系であると面白い


>>702
制御構造とかは読み飛ばしてその言語独自の部分だけ覚える
0712デフォルトの名無しさん2005/12/09(金) 00:47:14
>>691
ttp://live.under.jp/todashou/tips/code_writting/notation.html

class CTestXMLReader なんてあったとき

CTestXMLReader testApp
            ↑
      インスタンスの名前ってみんなどうしてる?
0713デフォルトの名無しさん2005/12/09(金) 00:50:43
CTestXMLReader xmlReader;
俺ならこうする
0714デフォルトの名無しさん2005/12/09(金) 01:12:01
PC98であったドラゴンハーフってゲームを思い出して問題作ってみたけど、誰も要らなさげ?

【問題】n種類の模様を持つカードをm枚使用して
入力されたパターンpを含む確率を求めるプログラムを作る
また途中にはどの模様のカードが入っても構わない
(p=ABCとした場合、ワイルドカード風に書くと*A*B*C*といった具合に解釈する)
�@ n=3, m=2, p=AA
マッチ: 11, 22, 33
確率: 33%(小数点以下切捨て)
�A n=3, m=3, p=ABA
マッチ: 121, 131, 212, 232, 313, 323
確率: 22%(小数点以下切捨て)
�B n=2, m=4, p=AAA
マッチ: 1111, 1112, 1121, 1211, 2111, 2221, 2212, 2122, 1222, 2222
確率: 62%(小数点以下切捨て)
0715デフォルトの名無しさん2005/12/09(金) 01:13:06
>>704

VIPの本スレでうpされてたやつだね。HPできてるよ。
http://moebrowser.infoseek.ne.jp/
0716デフォルトの名無しさん2005/12/09(金) 02:00:24
>>715
もう出来てるじゃん
0717デフォルトの名無しさん2005/12/09(金) 02:25:39
cの勉強を進めてきて、やっと噂のポインタに辿りついた。
なるほど、これは難しいですね。
配列とポインタの関係とかわけわかめ。
もう少し頑張ります。
0718デフォルトの名無しさん2005/12/09(金) 02:26:14
ここはお前の日記です
0719デフォルトの名無しさん2005/12/09(金) 02:33:52
先に配列やれよ
0720デフォルトの名無しさん2005/12/09(金) 02:49:45
>>719
やりましたー。
0721デフォルトの名無しさん2005/12/09(金) 02:52:22
じゃあ頑張れよ
0722デフォルトの名無しさん2005/12/09(金) 02:52:44
ういっす。
0723デフォルトの名無しさん2005/12/09(金) 03:19:20
ポインタのどの辺が難しいのか分からないんだが
0724デフォルトの名無しさん2005/12/09(金) 03:22:37
角度とか。
0725デフォルトの名無しさん2005/12/09(金) 03:24:39
ポインタを使う意味が分からない。
もうちょっと勉強を進めていくと分かると本には書いてあったが…
0726デフォルトの名無しさん2005/12/09(金) 03:28:29
考えるんじゃない、感じるんだ!
0727デフォルトの名無しさん2005/12/09(金) 03:30:56
>>725
だよな、ポインタなんて通常のプログラムに使わないよな
0728デフォルトの名無しさん2005/12/09(金) 03:31:54
そのうちポインタなしじゃ生きられない身体になる
0729デフォルトの名無しさん2005/12/09(金) 03:32:00
きっとUNIXではフル活用されてるのだろう
0730デフォルトの名無しさん2005/12/09(金) 03:32:53
おっぱいでいえば乳首みたいな存在だよな
普段は描いてないし、描くと文句言われるけど
でもみんな必要性はわかってるみたいな
0731デフォルトの名無しさん2005/12/09(金) 03:45:22

 ( ゚д゚)
0732デフォルトの名無しさん2005/12/09(金) 03:54:26
          ∧∧
         ( ゚д゚ )      ( ゚д゚ )
         _| ⊃/(___ノヽノ |
       / └-(____/ < <
0733デフォルトの名無しさん2005/12/09(金) 03:55:08
>>730
だとしたら俺はポインタオンリーだ
07347332005/12/09(金) 03:56:03
あ、なんか勝手に乳首を貧乳に脳内変換してた
0735デフォルトの名無しさん2005/12/09(金) 03:57:46
>>734
同士よ
0736デフォルトの名無しさん2005/12/09(金) 04:17:02
どうやらデータを渡したりする際に使うっぽいー、あ?ん?え?














あー死ぬ死ぬ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0737デフォルトの名無しさん2005/12/09(金) 04:48:43
関数に配列渡そうとしてたら勝手に身につくよ
0738デフォルトの名無しさん2005/12/09(金) 06:03:43
>>702
パスワード認証後に各種数値を入力してそれを元に色々な処理を実行後exitとかよく作ってる
関数が色々使えるし
0739デフォルトの名無しさん2005/12/09(金) 07:25:33
Cを使っててポインタを使う意味が分からない人は
参照渡しを理解してないってことでいいのかな
関数やメソッドに変数を渡して内容を編集してもらうとかしない?

【C】ポインタ型の引数は参照渡し
【C++】ポインタ型、参照型の引数は参照渡し
【VB】サブ、関数での引数とかはByValつけない限り参照渡し
【Java】メソッドでの非プリミティブ型の引数は参照渡し
【C#】メソッドでの値型以外またはref、out付きの引数は参照渡し
だったはず
0740デフォルトの名無しさん2005/12/09(金) 07:54:52
ポインタは関数間の値渡しに使うとだけ覚えとけばいいよ
0741デフォルトの名無しさん2005/12/09(金) 08:13:07
関数にポインタ渡すの意味わかんねーよって人は

関数の引数は変数(箱)が渡されるのではなく
変数の値そのものが(コピーされて)渡される

と言うことをまず理解することが重要
0742デフォルトの名無しさん2005/12/09(金) 08:22:28
C言語の基礎は大体分かったんだが次に何をすればいいかわからない・・
黒画面とにらめっこするのはあまり面白くない
0743デフォルトの名無しさん2005/12/09(金) 08:22:45
よーするにその箱の置いてある地図(?)住所(?)を持って、箱の中身をメモしに行くみたいな感じ?
0744デフォルトの名無しさん2005/12/09(金) 08:25:29
ポインタは携帯電話

普通は直接会って話をするけど
携帯電話の電話番号(アドレス)が分かってれば
会わなくても話ができるでしょ?
0745デフォルトの名無しさん2005/12/09(金) 08:32:46
ポインタを使うと
関数1の中で作った変数を関数2の中で書き換えることが出来る

ポインタ使うと「変数の値」ではなくて「変数を記憶した場所」を渡すことができるから
呼び出し元を書き換えるわけだ
0746こしおり魔人2005/12/09(金) 08:34:32

ん〜 call by value、call by reference つうのを大昔に習った気がするな。
Fotran 使ってた人は、C にかなりとまどいを感じてたみたいだねえ。
C++ だったら引数に & を使うと使えちゃうのって何だか面白いよね。

ポインタは引数にしか使わんのか ?
今はやりのプログラミングでは配列ポインタの移動には使わんのか ?
俺にとっては文字列の編集に必須なんだけどねえ。

http://www.google.co.jp/search?hl=ja&rls=GGLC%2CGGLC%3A1970-01%2CGGLC%3Aja&q=call+by+value%E3%80%81call%E3%80%80by%E3%80%80reference&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

ここで聞くより、リンク先調べたほうが早いと思うよ
0747デフォルトの名無しさん2005/12/09(金) 08:39:46
記憶というのを大きなノートだと思えば
新しく変数を作るというのはノートのページを開いて
そこに題名をつけるみたいなもの

人に内容を教える時には
そのページを開いて中身を見せてやったらいい
これが値渡し

アドレスというのはノートのページ番号みたいなもの
変数の中身を教える代わりにページ番号を教えれば
聞いた人はそのページを開いて見ることもできるし
そのページの内容を書き換えることもできるし
書き換わった最新の内容をチェックすることもできる

ポインタというのはアドレスを入れる変数
つまりページ番号の書いてあるページだと思えばいい

ポインタ渡しというのは、ページ番号の書いてあるページを
見せてやるっていうことに相当する
0748デフォルトの名無しさん2005/12/09(金) 08:54:46
値渡しは、ページ(変数)をコピーして特定の人(関数)にだけに渡す

ポインタは本そのものは同時にみんなが見れるようになってて
ある人(関数)にページ(変数)を見せたい場合は、
その人(関数)にページ番号(アドレス)を教えればいい

じゃね?

ポイントは、同時にみんなが見れる点と、
人に見せるとき、ページをコピーする必要がなく、
ページ番号を教えればいいだけって点だね
0749デフォルトの名無しさん2005/12/09(金) 08:56:13
あと、みんなで同じノート見てるから
誰かさんが落書きすると、みんなに見られちゃうお
0750デフォルトの名無しさん2005/12/09(金) 09:00:19
>>748
あーそうね。変数のスコープというか

>>747のたとえで言うなら、各人は自分用のノートも持っていて
値渡しで見せてもらった内容はその自分のノートに書いて使う
そのあと書き換えようと何をしようと元のノートには影響しない
07517422005/12/09(金) 09:12:56
><
0752デフォルトの名無しさん2005/12/09(金) 09:14:53
>>702
まずコンパイラを書いてみる。
0753デフォルトの名無しさん2005/12/09(金) 09:20:21
>>742
今すぐwin32プログラミングに足を踏み入れるんだ!
0754デフォルトの名無しさん2005/12/09(金) 09:34:29
ポインタの解説すげーわかりやすい(゚д゚)
これは書籍化決定ですな。
■ このスレッドは過去ログ倉庫に格納されています