★C言語で遊ぼう!★

このエントリーをはてなブックマークに追加
1はじめに
■C言語とは?■
 コンピュータに仕事をさせるために、
 仕事の手順を書くための、言語。
 
■どうやって動かすの?■
 C言語でかかれた手順書(プログラム)は、
 人間よりの文章なので、そのままではコンピュータが処理できません。
 
 そこで、人間が書いたプログラムを、コンピュータで判読できるように翻訳する物が必要です。
 その翻訳機を「コンパイラ」といいます。
 C言語のコンパイラを、「Cコンパイラ」といいます。まず、これが必要です。
 
 あと、「リンカ」という結合機(?)も必要です。
 ともあれ、まずは、実際に動かしてみるとして、
 C言語プログラムを作成するための、物をそろえましょう。
*/

exit();
3 :02/08/02 15:30
 1.Cコンパイラ(リンカを含む)
  これは、無料で手に入ります。
  それは、LSI-C試食版 や、WATCOM-C 最近では、Borland-Cが、無料だと思います。
  どれを使ったらいいかとなりますが、
  いずれにしても、Windowsアプリケーションを作るにあたって、一番いいのは、
  やはり、Microsoftの Visual-C でしょう。
  しかし、これは数万円はします。そこで、
  無料のCコンパイラを使うことのメリットを、C言語の勉強ができる とういことに
  しぼらせていただき、一番、簡単に準備できる
  LSI−C試食版を使うことにします。
  これらは、インターネットを閲覧できるあなたでしたら、
  検索サイトで検索すれば、見つかるでしょう。
  (LSI-C試食版は、http://www.lsi-j.co.jp/ からダウンロードできます)
  ダウンロードしたファイルは、lsic300c.lzhですが、これは圧縮されています。
  解凍させるには、lhasaというソフトがお勧めです。
  解凍させる手段は、各自で探しましょう。
 
 2.テキストエディタ
  文章を書くための、ソフトウェアです。
  Windows95シリーズには、ノートパッドが標準でついてますので、
  C言語のプログラムも、それで書くことができます。
  しかし、C言語を書くのに向いたテキストエディタも、無いわけではないです。
  それは、秀丸や、K2Editorのように、文字を色分けしてくれるものです。
  この選択は、あなた次第ということにしましょう。
 
 コンパイラと、テキストエディタがあれば、
 これで、準備完了です。(当然、Win95シリーズは、あるとしてる)
PC初心者板でもいってくれ
5 :02/08/02 15:31
■簡単なプログラムから■

 いきなり、プログラムの例を示します。
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
printf("Hello world.");
}
――――――――――――――――――――――――
5行のプログラムですが、これを、実行してみましょう。
上記のプログラムを、テキストエディタにコピーして、保存します。
名前は、test.c とすればいいでしょう。(test.c.txt としてはいけません。)

保存したら、コンパイラでコンパイルします。
ここでは、LSI-C を例とします。
実は、初心者には、コンパイルがかなりのハードルとなるようです。
LSI-Cの場合は、付属のLSIC86.MANというテキストファイルに、
そのまま、コンパイル方法が書いてあるので、そのとおりにやればいいだけですが、
初心者には、これが分からなかったりします。
コンパイルの命令は、
A>LCC test.c
なのですが、この意味は、
Aドライブにある LCC.EXE というファイルに、
test.c というパラメータを与えて、実行する。
ということです。
もし、あなたがLSI-Cを保存した先が、Cドライブならば、
C>LCC test.c
となります。この場合、test.c は、LCC.EXE と同じフォルダにあれば、問題ないでしょう。
3.
だめなプログラマ。


>>1のような自分の自己満足のためだけにスレッドを立てたりしてはいけません。
>>4
こんなもん誘導しないでくれ。面倒くさい。
>>1
呼び寄せないでくれ。
基底クラスのstaticなメンバ変数を派生クラスから
使いたいんですが、複数の派生クラスを作ると
"すでに定義されています"というエラーが出てしまいます。

// A.h
class A {
protected :
static int num;
};

// B.h
class B : public A {};

// B.cpp
int B :: num = 1;

// C.h
int C :: num = 2;

// C.cpp
class C : public A {};

numはそれぞれの派生クラスで定義しないといけないんでしょうか?
10デフォルトの名無しさん:02/08/02 15:33
実は、LCC.EXE は、コンパイラ、アセンブラ、リンカを自動的に行ってくれます。
(コンパイラやアセンブラ、リンカという言葉は、分からなくていいです)
ここでは、LCCを実行すれば、実行ファイルができるということだけを知ればいいです。

 LCC.EXE を、ちゃんと実行させるには、DOSの知識が必要になります。
 しかし、ここではDOSの説明はできるだけ省きます。
 コンパイルやリンクに関する説明は、LSI-C付属の、LSIC86.MAN に書かれているので、それを参照してください。
 (ただし、DOSの知識が必要になる)
 コンパイルできないようなら、質問してください。
 とにかく、コンパイルを成功させるには、以下の手順を行えばOKでしょう。
 LSIC86.MANを読むなりして、意味がわかった場合は、飛ばしてください。
11デフォルトの名無しさん:02/08/02 15:33
  ┌LSI-Cでコンパイルをさせる方法───────────────────
  |
  |c:\lsic330c に、lsic330c が解凍されているとします。
  |_lcc というファイルが、c:\lsic330c\bin にあるので、それを、テキストエディタで開きます。
  |それを、以下のようにして、保存します。
  |――――――――――――――――――――――――
  |# LSI C-86 compiler's configuration file
  |-DLSI_C
  |-XC:\lsic330c\BIN -LC:\lsic330c\LIB -IC:\lsic330c\INCLUDE -T -O
  |-acdos.obj $LSICOPTS
  |&#Command line argument will be inserted here
  |-lknjlib -ldoslib -v
  |――――――――――――――――――――――――
  |3行目が変更した個所です。
  |そしたら、LCC.EXE を実行すればいいのですが、
  |LCC.EXE に、ソースファイルのある場所を知らせる必要があります。
  |もし、C:\lsic330c\SRC に、test.c があるならば、
  |LCC.EXE C:\lsic330c\SRC\test.c
  |という命令を、コンピュータに送ればいいとなります。
  |命令を送るには、まず、テキストエディタで新規のファイルを開き
  |そこに、LCC.EXE C:\lsic330c\SRC\test.c を書いて、保存します。
  |保存先は、c:\lsic330c\bin にします。ファイル名は、なんでもいいのですが、
  |golcc にします。拡張子をつけることが必要で、golcc.bat として保存します。
  |(golcc.bat.txtでは、ダメです)
  |
  |すると、エクスプローラでみると、他のファイルと変わったアイコンで表示され、
  |「ファイルの種類」には、「MS-DOSバッチファイル」と表示されます。
  |このファイルを、ダブルクリックして実行しましょう。
  |
  |すると、ウィンドウが表示され(これをDOS窓という)、実行結果が表示されます。
  |もし、
  |can't open:
  |や
  |: No such file or directory
  |とか表示されたら、test.c ファイルの指定が間違っていたりしています。
  |LSI-C付属の、LSIC86.MANを読んで、ディレクトリの指定などを確認して下さい。
  |
  |コンパイルが成功すると、
  |lld @link.i
  |と、表示されるでしょう。
  |そして、test.exe というファイルができています。これが、実行ファイルです。
  |
  |
  |LCC を実行して、test.exe を作らせるには、test.bat を実行すればいいとなります。
  |
配列変数

#include <stdio.h>

#define MAX 5 /* これ以後の MAX を 5 に読み替える命令 */

main()
{
int i;
int point[MAX]; /* MAX 個の要素を持つ配列 point を宣言 */
int total=0, avr;

for(i=0; i<MAX; i++){ /* MAX 回の繰り返し */
printf("%d人目の点数は? >", i+1);
scanf("%d", &point[i]);
/* 配列の場合でも & を忘れずに付ける */
}
for(i=0; i<MAX; i++){
printf("%d人目 = %d\n", i+1, point[i]);
total += point[i];
}
avr = total / MAX;
printf("平均点 = %d\n", avr);
}
これは、何をしているプログラムか意味を読みとれるでしょうか?文を先に読み進める前にまず考えてみてください。

C言語での配列は、ほかの言語でよく使われる小カッコ(())による表現ではなく、大カッコ([])によって表現されます。その点をのぞけば、宣言もプログラム中での参照の方法もイメージ通りに行えることが読みとれると思います。

13デフォルトの名無しさん:02/08/02 15:34
では、LCCが作った test.exeファイルを実行してみましょう。
実行させるには、test.exeをダブルクリックします。
すると、DOS窓が表示され、

C:\lsic330c\BIN>
Hello world.
C:\lsic330c\BIN>

などと文字が表示されるでしょう。
これで、成功です。
あの、5行のプログラムは、「Hello world.」という文字列を表示するものです。
これが分かれば、どんな文字列でも表示できるでしょう。
今度は、
I am Taro.
を表示させてみましょう。
これには、
printf("Hello world.");
を、
printf("I am Taro.");
とすれば、いいだけです。

これで、printfという命令が、文字を表示させるものだと、分かりますね。
printf("
と書いて、表示させたい文字を書いて、
");
でくくります。
(実は、"で囲った部分が、文字列という意味になります)
メンバ関数のポインタを使ってメンバ関数を呼び出そうとしているのですが、
class Base {
 void Function();
void Main();
 void (Base::*funcPtr)();
};
void Base::Main() {
 funcPtr = &Base::Function;
 (*funcPtr)(); // ここでエラー
}
としても
error C2171: '*' : 'void (__thiscall Base::* )(void)' のオペランドが無効です。
error C2064: 関数ポインタとして評価されない式を使って、関数を呼び出そうとしました。
とエラーが出てしまいます。
メンバ関数を呼び出す際は何か特別な構文などが必要なのでしょうか?
>>9 int とは此れ如何に
16デフォルトの名無しさん:02/08/02 15:34
では、次に、文字列を2行表示させてみましょう。
表示させる文字列は、

こんにちは。
私は、太郎です。

にしてみましょう。
これには、printf命令を2つ使えば、いいと思う。
printfは、日本語でも表示できます。
printf("こんにちは。");
printf("私は太郎です。");
と書いて、LCCで実行ファイルを作って、実行しましょう。
すると、
こんにちは。私は太郎です。
と表示されると思います。これでは、1行だけです。
そこで、改行させる必要があります。
単純に、test.cに

printf("こんにちは。
私は太郎です。");

と書いて、LCCを実行すると、エラーになります。
これは、
printf("こんにちは。
で、1つの命令で、
私は太郎です。");
で、1つの命令であると、コンパイラが解釈したからでしょう。
そこで、1行で、2行の文字列を表現することになります。
1行で、2行を表現するために、C言語では改行を意味する文字列を使っています。
改行を表現する文字列は、\n です。
そこで、さっきのエラーになった命令を修正すると、
printf("こんにちは。\n私は太郎です。");
となります。
C言語では、\n を改行と見なすので、これで2行表示できます。
では、LCCで実行ファイルを作って、実行してみましょう。
すると、

C:\lsic330c\BIN>
こんにちは。
私は太郎です。
C:\lsic330c\BIN>

と、表示されるでしょう。
あとは、3行でも10行でも表示できますね。

ひとまず、文字を表示させる方法は、ここまでにします。
>実は、LCC.EXE は、コンパイラ、アセンブラ、リンカを自動的に行ってくれます。
自動的に行うのはコンパイル、アセンブル、リンクだがな。

>とにかく、コンパイルを成功させるには、以下の手順を行えばOKでしょう。
>LSIC86.MANを読むなりして、意味がわかった場合は、飛ばしてください。
マニュアル読むの?
18デフォルトの名無しさん:02/08/02 15:35
■変数■

次は、コンピュータに計算をさせてみましょう。
たとえば、
123 + 822 =
これを、コンピュータに解かせてみましょう。
どうしたらいいでしょうか。

それは、ここまでの知識では分かりませんね。
文字を表示させる方法は、分かりましたが、
たんに、
printf("123 + 822 = 945");
とやっても、コンピュータは計算したように表示しますが、
これは、文字を表示しただけです。

計算させるには、以下のようにします。
printf("123 + 822 = %d",123+822);
test.c にある printf を、このように書き換えて保存して、
LCCで実行ファイルを作って、実行してみましょう。
すると、
 123 + 822 = 945
という表示があったと思います。
printfには、945という文字列を指定していません。
だから、コンピュータが計算をして、945を出したということです。
では、どうやってコンピュータに計算をさせたのでしょうか。
19デフォルトの名無しさん:02/08/02 15:35
printf(" で始まり、"でくくった中は、表示させる文字列です。
この中には、今まで無かった、%d という意味不明な表現があります。
そして、その後には、 ,123+822 という、これも意味不明な表現があります。
意味不明とはいえ、見当はつくかもしれませんが、
%d と書いた場所には、その後に書いた、123+822 の計算結果が入ります。
試しに、763+835 と書き換えてみましょう。
printf("123 + 822 = %d",763+835);
これで、LCCで実行ファイルを作り、実行すると、
 123 + 822 = 1598
と、表示されます。
1598は、763+835 の答えですので、コンピュータは計算をしました。

  123 + 822 = という文字列は、ただ表示されているだけなので、
  printf("%d",763+835);
  とやるだけでもいいでしょう。これだと答えだけが表示されます。
  
では次に、掛け算や割り算を解かせてみましょう。

535 × (352 - 5) ÷( 34 + 2)

これを、コンピュータに計算させてみましょう。
掛けるや、割るといった表現は、C言語独自の文字を使います。
掛けるは、* という文字で、割る場合は、/ という文字です。
だから、さっきの式を直すと、

535 * (352 - 5) / (34 + 2)

となります。スペースを入れてるのは、見やすくするためだけなので、
535*(352-5)/(34+2)
と書いても同じです。
では、これをprintfに書き込んでみましょう。

printf("%d",535*(352-5)/(34+2));

修正したら、LCCで実行ファイルを作り、実行しましょう。
20デフォルトの名無しさん:02/08/02 15:36
5156
と表示されます。
これで、コンピュータに +−×÷という計算の仕事をさせることは、できるようになりました。
この+−×÷などを、演算子(えんざんし)といいます。
さらにC言語には、私達が普段使わない、余りを求める演算子もあります。% がそうで、
たとえば、5%2 だと、1 になります。

計算は、ひとまずこれぐらいにします。
BCC進めてない時点で痛い。
22デフォルトの名無しさん:02/08/02 15:36
大量のマシンを管理するような環境では個々のマシンに任意の
IPアドレスを指定せず、サーバー側から自動でアドレスを配布(貸与)
するシステムを使うことがあります。

http://yougo.ascii24.com/gh/07/000707.html
 ASCII24 - アスキー デジタル用語辞典 - DHCP
  Dynamic Host Configuration Protocol
   BOOTPの上位互換の規格。BOOTPではクライアントごとの設定は省略できたが、
   IPアドレスとホスト名はそれぞれ設定する必要があった。この手間も省いて、
   各クライアントに、起動時に動的にIPアドレスを割り当て、終了時にIPアドレスを
   回収するためのプロトコル。サーバ側では、IPアドレスをDHCPクライアント用に
   いくつかまとめて用意しておくだけでよい。同時にゲートウェイアドレスやドメイン名、
   サブネットマスクその他の情報をクライアントに通知することもできる
http://yougo.ascii24.com/gh/48/004811.html
   Dynamic Host Configuration Protocolの略。LAN上のコンピュータに動的にIP
   アドレスを割り当てる方法。コンピュータがネットワークにログインすると、DHCP
   サーバーが、あらかじめ用意されたIPアドレスの1つをそのコンピュータに割り当てる。

このDHCPクライアントは、DHCPサーバへのIPアドレス要求をブロード
キャストで送信し、これを受信したDHCPサーバが返信を返すという仕組
みです。この時、DHCPクライアントは、返信パケットを送信したDHCPサー
バからIPアドレスを取得するというのが問題です。同一ネットワーク上に
複数のDHCPサーバが存在する場合、最初に受信したDHCPサーバから
IPアドレスが取得されてしまう訳です。LANではPDCをリブートしている間
にBDCから取得とかで普通にある話ではあるのですが。
23デフォルトの名無しさん:02/08/02 15:37
■入力■

沢山のブロックがあって、そのブロックの体積を求めることになりました。
ここで、コンピュータとC言語があったら、どう活用すればいいでしょうか。

ブロックの体積は、縦×横×高さ です。
これを、さっきの計算の方法で行なうと、
もし、縦が20 横が30 高さが 15 だとしたら、
printf("%d", 20*30*15);
とすれば、いいことになります。
しかし、沢山のブロックがあるので、いちいち test.c を書き換えていては、
時間がかかります。変化するのは、3つの値だけなのです。


C言語では、コンピュータに、人間からの入力を受け取らせる命令があります。
たとえば、コンピュータが、

Xはいくつ?
次のYは?
Zは?

と人間に値を聞くようにさせて、人間からの入力を受け取らせることができます。
それが、scanf という命令です。
たとえば、Xの値を受け取らせようとしたら、
 scanf("%d",&x);
などとします。
まずは、Xだけを入力できるようにし、Xを表示させるプログラムを作ってみましょう。
24デフォルトの名無しさん:02/08/02 15:37
scanf("%d",&x);とは、どうゆう意味かというと、
printfでは、"で囲んだ中が表示されましたが、
scanfでは、"で囲んだ中は、人間が入力する文字列になります。
printfを出力用とすれば、scanfは入力用になります。
scanf("%d" というのは、人間が数字を入力してくるという、意味です。
そして、その後の、&xは、入力された値が、x という変数に入るという意味です。
変数とは、「内容を変化できる、数字の入れ物」と考えていいでしょう。
ともあれ、プログラムで実験しましょう。
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
int x;
printf("Xを入力してください\n");
scanf("%d",&x);
printf("X=%d\n",x);
}
――――――――――――――――――――――――
これを、LCCやって、実行ファイルを実行してみましょう。
すると、
Xを入力してください
と表示されて、カーソルキーが点滅している状態になります。
ここで、適当に数字を入力します。ためしに、3462と入力し、リターンキーを押すと、
X=3462
と表示されて、プログラムは終了します。
では、このプログラムを解説します。
int x;
これは、数字の入る箱として、コンピュータに x という名前の変数を用意させます。
こうすると、あとで、x という変数が使用できるようになります。
ここでは、ひとまず、そうゆうものだと、捉えることしましょう。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
必死で書いたんだろうなぁ。
26デフォルトの名無しさん:02/08/02 15:38
次の、printfは、既にやったので 分かると思います。
printfは、"でくくった部分を、コンピュータに表示させましたが、
scanfでは、"でくくった部分を、人間が入力するまでコンピュータを待たせます。
今回は、"%d"ですので、人間が %d を入力するまで、コンピュータを待たせます。
この%d というのは、特殊でして、
これは、数値を意味します。だから、コンピュータは、人間が数値を入力するまで、待ちます。
ただ、数値が入力されただけでは意味がないので、入力された数値をコンピュータに覚えさせます。
それには、変数を使うので、ここでは、xという変数に、
入力された数値を、記録するようにしています。&x という部分がそれです。
xの前に、& という意味不明な記号がついてますが、ここでは、ひとまず、そうゆうものだと捉えてください。

ちょっと説明がくどくて、分かりずらいかもしれませんが、
何度かやっていくうちに理解できるものなので、進みましょう。

最後の printf では、変数xの内容を、表示させています。
printf("X=%d\n",x);
%d は、数値を意味して、その数値とは、変数x の中身です。
だから、%dのところに表示させる数値には、変数 x を指定してます。
数値を入れる箱は、int x と命令して用意させてあるので、
x は、「数値の入れ物」として、コンピュータに解釈させることができるのです。
るせヴァカ!
28デフォルトの名無しさん:02/08/02 15:38
Xの入力と表示は、できたので、同じ要領でYとZもやります。
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
int x;
printf("Xを入力してください\n");
scanf("%d",&x);
printf("X=%d\n",x);
int y;
printf("Yを入力してください\n");
scanf("%d",&y);
printf("Y=%d\n",y);
int z;
printf("Zを入力してください\n");
scanf("%d",&z);
printf("Z=%d\n",z);
}
――――――――――――――――――――――――
これを、LCCやってみましょう。すると、エラーになります。
C:\lsic330c\BIN\test.c 8: syntax error near 'int'  8行目のintという命令が、理解できない。
C:\lsic330c\BIN\test.c 8: 'y' undefined       8行目にあるyという変数は、用意されてない。
C:\lsic330c\BIN\test.c 10: 'y' undefined       10行目にあるyという変数は、用意されてない。
C:\lsic330c\BIN\test.c 11: 'y' undefined       11行目にあるyという変数は、用意されてない。
C:\lsic330c\BIN\test.c 12: syntax error near 'int'  12行目のintという命令が、理解できない。
C:\lsic330c\BIN\test.c 12: 'z' undefined       12行目にあるzという変数は、用意されてない。
C:\lsic330c\BIN\test.c 14: 'z' undefined       14行目にあるzという変数は、用意されてない。
C:\lsic330c\BIN\test.c 15: 'z' undefined       15行目にあるzという変数は、用意されてない。
右側の日本語は、私が付けたものです。英語の言ってることは、あのような意味です。
コンピュータには、3行目にあるintは、理解させれたのですが、
他のところにあるintを、コンピュータは理解できないのです。
intは、変数を用意させる命令で、こういった「用意させる」という命令の類は、
他の命令よりも先に行なうのが、C言語の約束事なのです。
だから、エラーを無くすには、
29デフォルトの名無しさん:02/08/02 15:38
簡単な数当てゲームを作成します。プログラムが作成した0から999の数を当てるゲームです。
プレイヤーが適当な数字を入力すると、プログラムは答えの数が入力した数より小さいか大きいか調べ表示します。

プログラムが考え出す規則性のない数字を乱数といいます。乱数はrand関数で作成することができます。 rand関数は
プログラム起動後に毎回同じ値を返してきます(Study CではVer1.08iまでは異なった値を返します)。次のプログラムを
コンパイルし実行すると、毎回同じ値を表示します(Study C Ver1.08iまでは異なる値を表示します)。


#include <stdio.h>

main()
{
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
}



これを回避するためには、rand関数の使用に先立ちsrand関数に毎回異なった値を与える必要があります。通常、time関数が返す値をsrand関数に渡します。
30デフォルトの名無しさん:02/08/02 15:39
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
int x;
int y;
int z;
printf("Xを入力してください\n");
scanf("%d",&x);
printf("X=%d\n",x);
printf("Yを入力してください\n");
scanf("%d",&y);
printf("Y=%d\n",y);
printf("Zを入力してください\n");
scanf("%d",&z);
printf("Z=%d\n",z);
}
――――――――――――――――――――――――
とやります。
用意させる命令は、最初に出します。
これで、LCCをやるとエラーが消えます。
では、実行してみましょう。
結果は、以下のようになります。
で、どこの教本の写しなんですか?
32デフォルトの名無しさん:02/08/02 15:39
――――――――――――――――――――――――
Xを入力してください
546
X=546
Yを入力してください
745
Y=745
Zを入力してください
33
Z=33
――――――――――――――――――――――――
これは、私が適当に数値を入力したものです。
言い忘れましたが、数値意外の文字を入力しては駄目です。変な動作をします。(笑い
あと、数値を入力したら、リターンキーを押します。

これだけだと、たんにコンピュータは人間のマネをしてるだけのようですが、
printfで、変数を使ってるという点が重要です。
変数には、数値が入っているので、体積を求めさせるには、変数をかけ合わせれば良いとなります。
この場合では、x*y*z という計算結果を、表示させれば良いので、
printf("体積は %d です",x*y*z);
という一行を追加します。リスト全体は、次のようになります。
>>28-29の流れにワラタ。
こんなもん書いたって誰もまともに読まんだろ。
>>21
BCCは進まない。
今時LSI-Cでもないだろけどな。
37デフォルトの名無しさん:02/08/02 15:40
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
int x;
int y;
int z;
printf("Xを入力してください\n");
scanf("%d",&x);
printf("X=%d\n",x);
printf("Yを入力してください\n");
scanf("%d",&y);
printf("Y=%d\n",y);
printf("Zを入力してください\n");
scanf("%d",&z);
printf("Z=%d\n",z);
printf("体積は %d です\n",x*y*z);
}
――――――――――――――――――――――――

では、いつものとおり、実行させてみましょう。すると、
38デフォルトの名無しさん:02/08/02 15:40
――――――――――――――――――――――――
Xを入力してください
43
X=43
Yを入力してください
623
Y=623
Zを入力してください
6222
Z=6222
体積は 23110 です
――――――――――――――――――――――――
となるハズです。
これで、体積を計算させるプログラムが完成しました。
ブロックの3辺の長さが分かっていて、体積が知りたければ、
このプログラムを使えば、簡単に求まります。
電卓の方が早い?
しかし、ここまでくれば、複雑な計算をさせることも、できるでしょう。
たとえば、5人のテストの点数の平均点を求めさせることも、できるでしょう。

ここで、プログラムが一回ごとで終了してしまうことが、気になるかもしれません。
一回ごとに、実行ファイルをダブルクリックしていては、時間がかかるし手間もかかります。
そこで、何度も同じ範囲を繰り返すプログラムにしてみます。
これには、goto 命令を使います。
さっきの、体積を求めるプログラムを、何度も繰り返すようにしてみましょう。
>>35
進めない?
しつこいな
41デフォルトの名無しさん:02/08/02 15:40

――――――――――――――――――――――――
#include<stdio.h>
void main()
{
int x;
int y;
int z;
START:
printf("Xを入力してください\n");
scanf("%d",&x);
printf("X=%d\n",x);
printf("Yを入力してください\n");
scanf("%d",&y);
printf("Y=%d\n",y);
printf("Zを入力してください\n");
scanf("%d",&z);
printf("Z=%d\n",z);
printf("体積は %d です\n",x*y*z);
goto START;
}
――――――――――――――――――――――――
(注:START: の最後の文字は、;ではなく、:です。)
増えたのは、2行です。 START: と  goto START;  です。
これは、説明しなくても分かりそうですけど、
START: という目印があって、goto START; で、STARTという目印に、移ります。
この、START: は、命令ではなく目印なので、これを「ラベル」といいます。
goto は、指定したラベルに処理順序を移す命令です。
指定した日時までの時間をカウントダウンして表示する時計を作成します。
LSICは日本語のメッセージも出せるよ。
44デフォルトの名無しさん:02/08/02 15:41
■文字列■

友達の情報を表示するプログラムを作ってみよう。
友達の情報は、
1.氏名
2.誕生日
3.趣味
4.電話番号
とてみよう。

氏名を入力すると、誕生日と趣味と電話番号が、表示される仕組みだ。
さて、どのように造ればいいだろか。
氏名を入力させるには、scanf を使えばいい。
scanf("%d",name);
とでもするか。
だが、事前に、氏名や誕生日を入力しておかなければならない。
今までは、変数で数値しか扱わなかったが、
氏名などの文字列を扱うには、文字列用の変数がある。
その文字列変数を、用意させる命令が、char だ。

では、まず氏名を入力して、氏名を表示させるプログラムを作ってみよう。
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
char name[32];
printf("氏名を入力してください\n");
scanf("%s",name);
printf("%sさんですね\n",name);
}
――――――――――――――――――――――――
これがそうだ。
いつものように、LCCやって実行させよう。
実行結果は、
>>37
>では、いつものとおり、実行させてみましょう。
いつものとおり・・・ってアンタ・・・。
46デフォルトの名無しさん:02/08/02 15:41
――――――――――――――――――――――――
氏名を入力してください
山田太郎
山田太郎さんですね
――――――――――――――――――――――――
となる。

char name[32];
では、文字列を入れる箱として、nameという名前のものを用意させている。
今回の例では、nameには、32文字までの文字を入れることができる。
もし、名前が、32文字を こえる場合は、name[100]とか、name[200]とかすればいい。
あまり大きな数をいれると、LCC.EXE が理解できないと言ってくるので注意だ。

ここで、半角と全角 ということについて解説しよう。
コンピュータが扱う文字には、半角と全角がある。
半角文字とは、a や、H などがそうだ。ア これも半角文字だ。
全角文字とは、a や、Hなどがそうだ。ア これもそうだ。
また、漢字は、全て全角だ。
実は、全角文字とは、半角文字を2つで表現しているようなものだ。
だから、name[32]という入れ物は、半角ならば、32文字まで入るが、
全角ならば、16文字までしか入らないということだ。
さっきの名前で入力した、
山田太郎
という文字列は、半角で言うと、8文字ということになる。
だから、name という入れ物は、8文字ぶん使ったことになる。
47デフォルトの名無しさん:02/08/02 15:42
次いこう。
scanf に、数値ではなく、文字列を入力させるには、
また、別の書き方をする。
scanf("%s",name);
数値の場合は、%d となっていたが、文字列の場合は、%s となる。
name の前に、& という記号は要らない。
なんでこうするかは、省くとして、これで文字列を入力させることができた。


次は、その他の情報である、誕生日、趣味、電話番号も、入力させることができる。
やり方は、名前の場合と同じである。
48デフォルトの名無しさん:02/08/02 15:42
お支払い方法は、次の3通りの方法から選択することができます。

1.銀行振込 振込手数料はお客様のご負担でお願い申し上げます。
2.郵便振替 郵便局備え付けの青い振替え用紙をご利用いただいてご送金ください。
3.クレジットカード 受け付け可能なカード会社は、VISA・Master・UCの3社で一括払いの扱いとなります。
銀行振込・郵便振替の場合
同報送信された確認メールをご確認の上、1週間以内にそれぞれの方法でご送金ください。ご入
金が確認されましたら正式なご注文として承ります。
1週間以内にご入金をいただけない場合はキャンセルとして取り扱わせていただきます。

クレジットカードの場合
同報送信された確認メールをワープロソフト等を利用して印刷し、クレジットカードの種別・番号・
有効期限欄にご記入の上、1週間以内に弊社までFAXでご送信ください。FAXの到着をもって正式なご注文として承ります。
1週間以内にFAXをいただけない場合はキャンセルとして取り扱わせていただきます。

クレジット情報を書き加えたものをメールでご返信することは避けてください。インターネットメールは
送信経路の途中で不特定多数の目に触れる危険があります。クレジット情報をインターネットメールに流し、被害にあっても弊社は一切関知しません。

49デフォルトの名無しさん:02/08/02 15:42
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
char name[32];
char birth[32];
char hobby[32];
char tel[32];
printf("氏名を入力してください\n");
scanf("%s",name);
printf("%sさんですね\n",name);
printf("生年月日を入力してください\n");
scanf("%s",birth);
printf("生年月日は、%sですね\n",birth);
printf("趣味を入力してください\n");
scanf("%s",hobby);
printf("趣味は、%s があります\n",hobby);
printf("電話番号を入力してください\n");
scanf("%s",tel);
printf("TEL %s \n",tel);
}
――――――――――――――――――――――――

この実行結果は、分かるだろう。
次のようになる。
>>41 はどうやって止めるの?
プログラム板はその性質上、長文とか連続投稿に甘いのか?
52デフォルトの名無しさん:02/08/02 15:43
>>50
CTRL +C です。
53デフォルトの名無しさん:02/08/02 15:44
――――――――――――――――――――――――
氏名を入力してください
山田太郎
山田太郎さんですね
生年月日を入力してください
昭和65年1月2日
生年月日は、昭和65年1月2日ですね
趣味を入力してください
絵を書いたり、友達とゲームをやること
趣味は、絵を書いたり、友達とゲームをやること があります\n",hobby);
電話番号を入力してください
123−2345
TEL 123−2345
――――――――――――――――――――――――
これでは、ただ入力した内容を、コンピュータがいったん記憶してるぐらいだ。
これでは、プログラムが終了すると入力した内容は、消えてしまう。
入力した内容を、コンピュータにずっと覚えさせておくには、どうしたらいいだろうか。
ファイルに書き込む方法があるが、それは、まだ先の方法として、
char name[32] などの変数に、最初から、内容を指定することにしてみよう。
nameに、最初から名前を入れておくには、次のように書く。

char name[32]="山田太郎";

同じように、birthに、文字列を入れておくには、次のようにかく。

char birth[32]="昭和65年1月2日";

これで、scanf で入力する必要が無くなったので、
プログラムを修正して、設定した内容を表示させるプログラムを作ってみよう。
それは、次のようになる。
>>52=1?
何でそれを書いとかないの?
/*
scanf("%s",name);
数値の場合は、%d となっていたが、文字列の場合は、%s となる。
name の前に、& という記号は要らない。
なんでこうするかは、省くとして、これで文字列を入力させることができた。
*/

これ、はっきり言って教育上よくないと常々思うのは俺だけか?
逆にこれを例にすればポインタが見る見るわかる気がする。
>>39
>>21を「BCCの進行が可能になっていない」と解釈してみたテスト
>>1で遊ぼう★
58デフォルトの名無しさん:02/08/02 15:45
――――――――――――――――――――――――
#include<stdio.h>
void main()
{
char name[32]="山田太郎";
char birth[32]="昭和65年1月2日";
char hobby[32]="絵を書いたり、友達とゲームをやること";
char tel[32]="123−2345";
printf("氏名は、%sです\n",name);
printf("生年月日は、%sですね\n",birth);
printf("趣味は、%s があります\n",hobby);
printf("TEL %s \n",tel);
}
――――――――――――――――――――――――

では、これを実行させてみましょう。
すると、コンピュータは、

6: too many initializers for 'hobby'

と、いった反応をします。これは、
「hpbbyに入れる文字数が、多すぎるよ」と言っています。
hobbyは、半角で32文字までしか入らないので、
"絵を書いたり、友達とゲームをやること"
という文字列だと、これは、半角で36文字あるので、
hobbyには、入りきらないというわけです。

そこで、hobbyだけは、64文字まで入るようにしてみましょう。

char hobby[64]="絵を書いたり、友達とゲームをやること";
と書きなおして、LCCをやってみましょう。
今度は、上手くいきます。
では、test.exe を実行してみましょう。
>>55
どこかのダメ本とかダメサイトの写しなんでしょ。
60デフォルトの名無しさん:02/08/02 15:45
――――――――――――――――――――――――
氏名を入力してください
山田太郎
山田太郎さんですね
生年月日を入力してください
昭和65年1月2日
生年月日は、昭和65年1月2日ですね
趣味を入力してください
絵を書いたり、友達とゲームをやること
趣味は、絵を書いたり、友達とゲームをやること があります\n",hobby);
電話番号を入力してください
123−2345
TEL 123−2345
――――――――――――――――――――――――
これでは、ただ入力した内容を、コンピュータがいったん記憶してるぐらいだ。
これでは、プログラムが終了すると入力した内容は、消えてしまう。
入力した内容を、コンピュータにずっと覚えさせておくには、どうしたらいいだろうか。
ファイルに書き込む方法があるが、それは、まだ先の方法として、
char name[32] などの変数に、最初から、内容を指定することにしてみよう。
nameに、最初から名前を入れておくには、次のように書く。

char name[32]="山田太郎";

同じように、birthに、文字列を入れておくには、次のようにかく。

char birth[32]="昭和65年1月2日";

これで、scanf で入力する必要が無くなったので、
プログラムを修正して、設定した内容を表示させるプログラムを作ってみよう。
それは、次のようになる。
61f:02/08/02 15:46

-------風俗の総合商社・MTTどこでも-------

〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
  http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
62デフォルトの名無しさん:02/08/02 15:46
――――――――――――――――――――――――
氏名は、山田太郎です
生年月日は、昭和65年1月2日ですね
趣味は、絵を書いたり、友達とゲームをやること があります
TEL 123−2345 
――――――――――――――――――――――――
と、表示されます。
これだけだと、また文字を表示させるだけですが、
我慢して、次に進みましょう。

友達のデータが、10人とかになったら、その人数分だけ
コンピュータに記憶させます。
1人の場合は、既にやったように
char name[32]="山田太郎";
char birth[32]="昭和65年1月2日";
char hobby[64]="絵を書いたり、友達とゲームをやること";
char tel[32]="123−2345";
とします。
では、2人目は、どうしましょうか。
つーか「ですます」と「である」がごちゃまぜ。
ageるのはやめてくれ。
本気なら全部貼ってから最後にageれ。
――――――――――――――――――――――――
氏名は、山田太郎です
生年月日は、昭和65年1月2日ですね
趣味は、絵を書いたり、友達とゲームをやること があります
TEL 123−2345 
――――――――――――――――――――――――
と、表示されます。
これだけだと、また文字を表示させるだけですが、
我慢して、次に進みましょう。

友達のデータが、10人とかになったら、その人数分だけ
コンピュータに記憶させます。
1人の場合は、既にやったように
char name[32]="山田太郎";
char birth[32]="昭和65年1月2日";
char hobby[64]="絵を書いたり、友達とゲームをやること";
char tel[32]="123−2345";
とします。
では、2人目は、どうしましょうか。

66デフォルトの名無しさん:02/08/02 15:46
――――――――――――――――――――――――
氏名を入力してください
山田太郎
山田太郎さんですね
生年月日を入力してください
昭和65年1月2日
生年月日は、昭和65年1月2日ですね
趣味を入力してください
絵を書いたり、友達とゲームをやること
趣味は、絵を書いたり、友達とゲームをやること があります\n",hobby);
電話番号を入力してください
123−2345
TEL 123−2345
――――――――――――――――――――――――
これでは、ただ入力した内容を、コンピュータがいったん記憶してるぐらいだ。
これでは、プログラムが終了すると入力した内容は、消えてしまう。
入力した内容を、コンピュータにずっと覚えさせておくには、どうしたらいいだろうか。
ファイルに書き込む方法があるが、それは、まだ先の方法として、
char name[32] などの変数に、最初から、内容を指定することにしてみよう。
nameに、最初から名前を入れておくには、次のように書く。

char name[32]="山田太郎";

同じように、birthに、文字列を入れておくには、次のようにかく。

char birth[32]="昭和65年1月2日";

これで、scanf で入力する必要が無くなったので、
プログラムを修正して、設定した内容を表示させるプログラムを作ってみよう。
それは、次のようになる。
e
e
ってなに?
>>67
end
自然対数の底
70デフォルトの名無しさん:02/08/02 15:48
看護婦恋愛&イマジネーションSLG『Nursery Song』
大好評!発売中です。
可愛い看護婦さん達と、ほのぼのまったりしたい方におすすめです!
このゲームは、全ヒロインをクリアする事で
全体のお話の繋がりが分かるようになっています。
できれば、全ヒロインをクリアしてあげて下さいね。
よろしくお願いします。






PCAngel 8月号 千葉県/真似の民様
葵羽鳥が、いつも楽しみにしてますよ〜
いつも可愛いイラスト
ありがとうございます〜
PCAngel 8月号 香川県/ヒロユ様
お葉書見ました!!
Cronusも照れちゃいます〜。


>>67
ネイピア数
>>69
それを 66 の最後に書く意味は?
昭和65年。
74デフォルトの名無しさん:02/08/02 15:49
看護婦恋愛&イマジネーションSLG『Nursery Song』
大好評!発売中です。
可愛い看護婦さん達と、ほのぼのまったりしたい方におすすめです!
このゲームは、全ヒロインをクリアする事で
全体のお話の繋がりが分かるようになっています。
できれば、全ヒロインをクリアしてあげて下さいね。
よろしくお願いします。

――――――――――――――――――――――――
#include<stdio.h>
void main()
{
char name[32]="山田太郎";
char birth[32]="昭和65年1月2日";
char hobby[32]="絵を書いたり、友達とゲームをやること";
char tel[32]="123−2345";
printf("氏名は、%sです\n",name);
printf("生年月日は、%sですね\n",birth);
printf("趣味は、%s があります\n",hobby);
printf("TEL %s \n",tel);
}
――――――――――――――――――――――――

PCAngel 8月号 千葉県/真似の民様
葵羽鳥が、いつも楽しみにしてますよ〜
いつも可愛いイラスト
ありがとうございます〜
PCAngel 8月号 香川県/ヒロユ様
お葉書見ました!!
Cronusも照れちゃいます〜。


もう終わったのか?
意外とあっけない最後でしたな・・・。
77デフォルトの名無しさん:02/08/02 15:50
>>72
>これで、scanf で入力する必要が無くなったので、
>プログラムを修正して、設定した内容を表示させるプログラムを作ってみよう。
>それは、次のようになる。
>e

よくしらないけど、おそらく上のことが自然数の底でできるんだと思うよ。
な つ や す み

厨 房 研 究

た の し い な
>>78
負け惜しみですか?ご苦労様です。
8078:02/08/02 15:52
い え い え 。
さて、観賞戦をば。

>>1
 
>あと、「リンカ」という結合機(?)も必要です。

自分の説明しようとしている分野のことイキナリ理解してません。
82  :02/08/02 15:55
>>80
 ひとまず休め。
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□■■■■■□□□■■■■■□□□□■□□■□□■□□□■□
□□■□□□■□□□■□□□■□□□■□■□□■□■□□■□□
□□■■■■■□□□■■■■■□□■□□□■□□□■□□□□□
□□■□□□■□□□■□□□■□□■■■■□□■■■■■■□□
□□■■■■■□□□■■■■■□□□□■□□□■□□□□■□□
□□■□□□□□□□□□□□■□□□□■□□□■■■■■■□□
□□■□□□□□□■□□□□■□□■■■■■□■□□□□■□□
□□■□□■■■■■■■□□■□□□□■□□□■■■■■■□□
□□■□□□□□□■□□□□■□□■□■□■□■□□□□■□□
□□■□□□□□■■□□□□■□□■□■□■□■□□□□■□□
□□■□□□□■□■□□□□■□□■□■□□□■■■■■■□□
□□■□□■■□□■□□□□■□□□□■■■□□■□□■□□□
□□■□□□□□■■□□□■■□□■■■□□■■□□□□■■□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
>実は、LCC.EXE は、コンパイラ、アセンブラ、リンカを自動的に行ってくれます。

行うのはコンパイル、アセンブル、リンク。
>>3

 1.Cコンパイラ(リンカを含む)
  これは、無料で手に入ります。
  それは、LSI-C試食版 や、WATCOM-C 最近では、Borland-Cが、無料だと思います。

敢えてgccを抜いているところが気持ちいい。

  どれを使ったらいいかとなりますが、
  いずれにしても、Windowsアプリケーションを作るにあたって、一番いいのは、
  やはり、Microsoftの Visual-C でしょう。

-Cって表記なんとかならんか?第一上げられているものの半分が正式名称C++。

  しかし、これは数万円はします。そこで、
  無料のCコンパイラを使うことのメリットを、C言語の勉強ができる とういことに
  しぼらせていただき、一番、簡単に準備できる
  LSI−C試食版を使うことにします。
  これらは、インターネットを閲覧できるあなたでしたら、
  検索サイトで検索すれば、見つかるでしょう。
  (LSI-C試食版は、http://www.lsi-j.co.jp/ からダウンロードできます)
  ダウンロードしたファイルは、lsic300c.lzhですが、これは圧縮されています。
  解凍させるには、lhasaというソフトがお勧めです。
  解凍させる手段は、各自で探しましょう。

アフォらしいので無視する。
 
 2.テキストエディタ
  文章を書くための、ソフトウェアです。
  Windows95シリーズには、ノートパッドが標準でついてますので、

俺の知る限りではWindows3.1にもあった。後、Windows95シリーズ(?)とは別系統とされる
WindowsNTシリーズにもばっちりついている。

  C言語のプログラムも、それで書くことができます。
  しかし、C言語を書くのに向いたテキストエディタも、無いわけではないです。
  それは、秀丸や、K2Editorのように、文字を色分けしてくれるものです。
  この選択は、あなた次第ということにしましょう。
 
 コンパイラと、テキストエディタがあれば、
 これで、準備完了です。(当然、Win95シリーズは、あるとしてる)

なぜこいつはWin95にこだわるのか。
おながいだからこういうのだけは辞めて欲しかったのに・・・・
シンデ>>1(;;)=○)'3')
>>5

#include<stdio.h>
void main()
{
printf("Hello world.");
}

この板に1日でもいたらこのvoidなmain()は書かないだろう・・・。
では、LCCが作った test.exeファイルを実行してみましょう。
実行させるには、test.exeをダブルクリックします。
すると、DOS窓が表示され、

いや、最後までコマンドライン使わせろよ。
間違った標識は、存在すること自体が罪悪
>>printf("こんにちは。
>>私は太郎です。");
>>
>>と書いて、LCCを実行すると、エラーになります。
(´-`).。oO(>>1はどれくらいCの事を知っているんだろう・・・)
>実は、全角文字とは、半角文字を2つで表現しているようなものだ。

チャレンジャー。
>その文字列変数を、用意させる命令が、char だ。

列じゃないだろ。命令じゃないだろ。
>>91
BASICからCにあがって1ヶ月ってとこか?

俺もその口だ。
高1のときおんなじようなテキスト書いて後輩に渡してひんしゅく買ったなぁw
しかし、少なからず
94>>>>>>>>>>1
だな
1==94
ココからは、つっこみだけで1000目指すスレ?
>>97
んわわけねーだろ!
まじかよ!
>>98
つっこみが根本的にわかってへんな。
東京:ボケ一人でOK。つっこみはその辺で固めるテンプルでも混ぜてなさいってこった。
大阪:ボケが上げたトスをツッコミが客席へと叩き込む。これこそ芸術。
んなこたーない
>>1はどこいったんだ?
>>103
登校日
もう下校時刻すぎてしまったのか。
        ´ ⌒ヽ
       /ノノlヽ)ヽヽ
       |;;( ´Д` );;|
       |;;;;;;;) (;;;;;;;|
      |/(v v)\|
      /\_ヽ^/_/ヽ
     |\  只  /|
     | |  | |  | |
     | |  | |  | |
     |__|ニニニニ.|__| 、ガブガブ
     ∪/ / | | ヽ .∪i゚ >
      || | | | | i、~゚,.>
      ||__|__|__|__|__⊂ |
       |  | |  |  |  |
       |  | |  |  |  |〜
       |_| |_|  ∪
       |;;;;;;| |;;;;;|
       |;;;;;;| |;;;;;|
       _|;;;;;;| .|;;;;;|_
       (___)(___)
榊さんか・・・。
 
いまどきWin95を全面に押し出してるのはコピペだから?
110デフォルトの名無しさん:02/09/10 00:21
がんばれ>>1

age
/* 幸せを呼ぶプログラム */

#include <stdio.h>
void main(){
while(1){
printf("キタ━━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━━━!!!!! ");
}
}
>>111
そんなバッチファイルで作れるようなもんでC使うなよ(藁

echo off
:loop
echo キタ━━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━━━!!!!!
goto loop
最悪のスレだ。。。

なんとなく、昔NiftyのFGALGLで見た「梅○慎也」に通じるものが。。

やったぜ、バンザイ


最近では、「60cm浮き上がるストレート」という奴がいるな
114798:02/09/18 00:00
>112

echo off
:loop
echo キタ━━━(゚∀゚)━
cls
echo キタ━━━( ゚∀)━
cls
echo キタ━━━(  ゚)━
cls
echo キタ━━━(  )━
cls
echo キタ━━━(゚  )━
cls
echo キタ━━━(∀゚ )━
cls
echo キタ━━━(゚∀゚)━!!!!!
cls
goto loop
で、それがどうかしたのか?
>>114
V同期の処理が抜けてるぞ。
 
読点が不必要に多い
>>118
絶対間違ってると思って突っ込もうと思ったが句点と読点を正しく理解していたので突っ込めなかった。
120798:02/09/19 00:46
>>116
>V同期の処理が抜けてるぞ。
なにそれ
>>2
引数が足りません。
C言語なのか・・・
 
垂直動悸バックンバックン
>>1
夜中に滅茶滅茶ワラかしてもらったよ!
狙って書いてるならアンタは天才だ。
>126

ナにがおもしろかった?
プログラム板はその性質上、長文とか連続投稿に甘いのか?
誰か!
続きをやって名スレにしようZE!!
>>127
>>60-61 とか、>>66 の e とか、深夜だったし俺的テンションも
上がってて、腹がヨジレタよ。
http://www.google.co.jp/search?q=vsync %E5%90%8C%E6%9C%9F&ie=UTF-8&oe=UTF-8&hl=ja&lr=lang_ja
つーか、1 は C に遊ばれてるのではないか?
 
Objective-C 以外は糞!!
ここは FORTRAN を語るスレになりますた。
BASIC 最強!
>>638さん
しんちゃんというのはくれよんしんちゃんからもじった物なんですか?
気になってよるもねむれません教えてくださいm(_ _)m
2ちゃんねるが2ちゃんねるであるためのアイデンティティを放棄したっつーことですな。
犯行予告する馬鹿や訴訟の減少に役立つのはいいかもしれん。つーかそういうのは俺はどうでもいいや。
興味ないもんね。
犯罪ギリギリの危ない系の情報交換ができなくなるのが俺には一番の損失だな。
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。

二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm

ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。    
俺は 自宅---肉--野菜--肉--肉--野菜--野菜--肉--野菜 で栄養を取っているので

なかなかヘルシーです。
144デフォルトの名無しさん:03/01/09 14:33
>>219
なかなかの念の入れようですな
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
>>713
もっとどんどん増やしてください
hobby鯖導入きぼーん

どうということがあるわけではなく、気分の問題
>>544
漏れも「今から危険な領域に突入しようと(以下略」みたいなとこまでは
いったんだが…。気になるけど見たくない…。
 しかし。

本当に恐ろしい発見をしたんですが。
ぼくにとっては小さい事ですが
きっと、普通のサイエンティストにとっては面白い事です。

だから分けてあげたいんだけどな。
この程度の事が小さく感じられる位
僕も随分堅気になってきたんですね。

 丁度10ヶ月前は
 かなりバカで 廃人でしたし、、うう。
けんすう様。


「危機的な件」があるのですが、
けんすう様のお力があれば比較的容易に解決する事です。
 公人になることは「極めてマイナス面がつき」ます、なのですが
「現在の状況」総合的に仕方ない状態なのです 死ぬほど厳しい・・うう。

なので

前向きに」 お返事考えて頂けるでしょうか。
それ次第で、電話しますです・・
まちBBSの不調の原因は何だったの?
>>257
>では、そんな「ごとき」のものに対し、
>上告を棄却するという対応はいかがな物かと思うのだが?
ごときだろうがなんだろうが、ろくな理由も無いのに上告したら棄却されて当然

>実社会よりも制限の規模は大きいと思うのだが。
あのねぇ、実世界でのお喋りは基本的にその場にいなければ聞こえない
でも、ここのような掲示板なら、発言内容を世界中から見られるんだよ
制約が無い方がおかしい、ネットは無法地帯とちゃうぞ

本来なら第三者が消す前に
書き込んだ当事者が、発言を責任持って処理すべきなんだよ
なんでこうも己の発言に無責任であろうとするのかね?
今回の議論に関して、IPが記録されることとfusianasan化されることと
ごっちゃにして騒ぎ立ててる奴も結構多いと思うんだが。
うんこみたいな
とりあえず連絡スレとして整理板に立ててもいいのでは。
雑談は切り離す方向で。
まじっすか、やだもーん
単純に鯖が重くなることはないんすか?
>>670
ひろゆきキタ━(゚∀゚)━!!
激しく同意。ヤナ時代になったもんだ・・・
こうゆう基地外は一度捕まった方が良いと思われ
  ↓
http://ex2.2ch.net/test/read.cgi/morningcoffee/1041906510/29
(´ι_` )フ-ン。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
どうせならIP表示きぼん
もう思い切って作るかな、、

「情報屋」って店。
酒場で。
 笑えるけど。

うう
 本当にシャレになりません
 僕はついに

シャレにならない域になってしまいました
 無事にゴールできるでしょうか。

 しかも何故か極左が俺をスケープゴートにして
 少し色々と活動している事によって 俺が素で極左だと勘違いされる可能性まである。
 そういう事を考えないで色々しているし(暗殺されるのは 素で俺なんだが うう)

つーかもっと考えて行動して下さい
貴方達絶対変ですよ
色々。
IP記録疑惑なんて2年前に2chに来た頃から言われていた話だが。
みんな「ひろゆき」を信用して記録されてないと思ってたのか?
362 名前:心得をよく読みましょう[sage] 投稿日:03/01/11 04:00 ID:wav4m8qe
   ねんちゃく、か、、、

363 名前:夜勤 ★[sage] 投稿日:03/01/11 04:00 ID:???
   ぬんちゃく、か、、、

366 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/11 04:02 ID:kSb7xo24
   こんにゃく、か、、、
おそらくいままでの荒らし全部同一人物だろ
DDTアドレスは、何日保存されるんだろか。
を読み返してみた…
そして冒頭…



    ど う で も い い ん か い ! !
表向きは「お、そうなんですか?」とオトボケを演じ、
裏では教育委員会やマスコミや警察に匿名で何度も通報してるんじゃないの?と邪推してみる
2002年2ちゃんねるアニメランキング1位のアニメに・・・・

モナーが出演決定!!!!!!!!!!!!!!!!!!!!!

<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00 
ご指摘 Thanks .
ちとさっきの後遺症が残ってます。。

最初の指摘部分ですが、"反証の場" と書いてしまったけど
「削除依頼された・・」以前の「削除依頼」は 2ch じゃなくても良いの?

次の指摘部分ですが
「事実認定」を争う場合、「事実である」ことを 2ch 側に証明義務があるのですか?

# またトリップつけましょか?
2レス前さえ読まないに乾杯。
と朝から釣られてみる。
173山崎渉:03/01/13 19:05
(^^)
フロアからの
「西村さんに何かあった時は、『2ちゃんねる』はどうなるのですか?」
との質問には
「今月10月分はもう支払いが済んでいますので大丈夫ですが、
もしも何かがあったなら、潰れてしまう」
とおっしゃっていました。
175山崎渉:03/01/15 18:16
(^^)
>>2
プッ
177山崎渉:03/01/23 20:12
(^^)
↑mailto:xtnni
Cには、いろいろな文がありますが、すべてWhileで、あらわすことができます。
Whileループを使って、プログラムを書くのは、わかりやすいプログラムを書くためにも、
よいことです。
それでは、Whileループのみを使った、プログラムを見てみましょう。

――――――――――――――――――――――――
extern int printf(char *, ...);

void main()
{
int i;
i = 0
while(i != 0)
{
printf("%i\a\n", i);
i = 1;
}
}
――――――――――――――――――――――――
LCCをやってみましょう。思ったとおりの結果になりましたか?
このように書くことは、とくに、大きなプログラムを書くときに、大切です。
>>179
i = 0 の後に ';' が必要だと言われるが...

> LCCをやってみましょう。思ったとおりの結果になりましたか?

まあ、思った通りの結果と言えなくはないな。

> このように書くことは、とくに、大きなプログラムを書くときに、大切です。

ハァ !?
181179:03/02/08 20:04
不覚出し脳
182577:03/02/09 06:16
break文もwhileで表せますか?
>>182
int i;
i = 1 == 1;
while(x && i)
{
 aaa;
 if(x)
  i = 0; /* break; と同じ */
 bbb;
}
184訂正:03/02/09 14:24
>>183
int i, j, k;
i = j = k = 1 == 1;
while(x && i)
{
    aaa;
    while(y && j){
        i = 0; /* break; と同じ */
        j = 0;
    }
    while(i != 0 && k){
        bbb;
        k = 0;
    }
}

もう書きませんスマソ
>>184
お〜〜〜、なるほど。
じゃ、次は return (式) に挑戦しろ。
#define Return(a) (_value_int_ = a)
#define scanstr(a, b) (_scanstr((a), (b)), _value_int_)
extern int printf(char *, ...);
>>185
int _value_int_;
void _scanstr(char *str, char ch)
{
int i, j;
i = j = -1;
while(j && str[++i])
    while(j && str[i] == ch)
        j = 0;
Return(i + 1);
}
void main()
{
printf("%cは%sの%i文字目です。\n", 'i', "while", scanstr("while", 'i'));
}
>>186
return 文の表現に while をちっとも使っていないのはどういう事か?
#define Return(a) do {_value_int_ = a} while (0)
それは while 文じゃないし
それは ; 抜けてるし
それは Return(i + 1); だから問題なし。
>>191
そこじゃない。
>>192
理解した
すべての制御構造は、順次構造・分岐構造・繰り返し構造の組み合わせで
あらわされることが証明されている。
これらはすべてWhileであらわされる。よって

■■■■■■■■■■■■終 了■■■■■■■■■■■■
>>194
例外機構を while で表してみてくれ。
>>194
>>179 が、「いろいろな文がありますが」と言ってるのに、while に騙されて「すべての制御構造は」とか言っちゃってる >>194 は、アフォだと言うことでよろしいでしょうか ?
>>194
ちょっとこのソースを while を使ったものに直してみてくれないか?

#include <stdio.h>
#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot; int oogt=0, ootg, otog=79,
ottg=1;if ( togo== ottg) goto gogo; goto goog; ggot:
if ( fgets( tgoo, otog, ogot)) goto gtgo; goto gott;
gtot: exit(); ogtg: ++oogt; goto ogoo; togg: if ( ootg > 0)
goto oggt; goto ggot; ogog: if ( !ogot) goto gogo;
goto ggto; gtto: printf( "%d goto \'s\n", oogt); goto
gtot; oggt: if ( !memcmp( ogto, "goto", 4)) goto otgg;
goto gooo; gogo: exit( ottg); tggo: ootg= strlen(tgoo);
goto tgog; oogo: --ootg; goto togg; gooo: ++ogto; goto
oogo; gott: fclose( ogot); goto gtto; otgg: ogto= ogto +3;
goto ogtg; tgog: ootg-=4;goto togg; gtgo: ogto= tgoo;
goto tggo; ogoo: ootg-=3;goto gooo; goog: ogot= fopen(
toog[ ottg], "r"); goto ogog; ggto: ogto= tgoo; goto
ggot;}
>>196
そこよりもむしろ、こっちの方が痛い。

> ■■■■■■■■■■■■終 了■■■■■■■■■■■■

何が終わったんだよ。
>>197
せめてコンパイルできるソースを出せよ
200の中の人も大変だな。
>>200
全くだ。
ソレ流行らそうとしてるのか?>>200
203≠194:03/02/19 17:07
>>197
#include <stdio.h>
#include <malloc.h>
main(togo,toog)
int togo;
char *toog[];
{char *ogto, tgoo[80];FILE *ogot;int oogt=0, ootg, otog=79,ottg=1;enum{start,ggot,gtot,ogtg,
togg,ogog,gtto,oggt,gogo,tggo,oogo,gooo,gott,otgg,tgog,gtgo,ogoo,goog,ggto,end}to = start;
while(to != end){while(to == start){while(to == start && togo== ottg) to = gogo;
while(to == start)to = goog;}while(to == ggot){while(to == ggot && fgets( tgoo, otog, ogot))
to = gtgo;while(to == ggot)to = gott;}while(to == gtot){exit();to = ogtg;}while(to == ogtg){
++oogt; to = ogoo; }while(to == togg){while(to == togg && ootg > 0)to = oggt;
while(to == togg)to = ggot; }while(to == ogog){while(to == ogog && !ogot) to = gogo;
while(to == ogog)to = ggto;}while(to == gtto){printf( "%d to = \'s\n", oogt); to = gtot;}
while(to == oggt){while(to == oggt && !memcmp( ogto, "goto", 4)) to = otgg;
while(to == oggt)to = gooo; }while(to == gogo){exit(ottg);to = tggo;}while(to == tggo){
ootg= strlen(tgoo);to = tgog;}while(to == oogo){--ootg;to = togg;}while(to == gooo){
++ogto;to = oogo;}while(to == gott){fclose(ogot);to = gtto;}while(to == otgg){ogto = ogto +3;
to = ogtg;}while(to == tgog){ootg -= 4;to = togg;}while(to == gtgo){ogto = tgoo;to = tggo;}
while(to == ogoo){ootg -= 3;to = gooo;}while(to == goog){ogot = fopen(toog[ottg], "r");
to = ogog;}while(to == ggto){ogto = tgoo;to = ggot;}}}

意外と簡単だな。
↑馬鹿?
うざ
このスレってなによ?
遊べないし・・・・
208山崎渉:03/04/17 15:55
(^^)
209山崎渉:03/04/20 04:09
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
210デフォルトの名無しさん:03/04/28 00:41
ファイル操作の勉強のためでしたが、紋章の謎のCプログラム/コンソールアプリ
作りました。良かったら遊んでみてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=64
211デフォルトの名無しさん:03/04/28 20:37
#include<stdio.h>
#include<stdlib.h>

void main()
{
  char key[100];
  FILE *fout;

  if((fout=fopen("keylog.txt","w"))==NULL)
  {printf("Can't open output file.\n");
  exit(1);
  }
  while(scanf("%s",key)!=EOF)
  {
  fprintf(fout,"%s",key);
  }
}
212名無し@沢村:03/04/28 21:02
ここには巨大なトラウマを抱えたやつが一人潜んでいたが、最近休んでるみたいだな…?
213デフォルトの名無しさん:03/04/28 22:08
#include<stdio.h>
void main()
{
printf("ぬるぽ\n");
}
214デフォルトの名無しさん:03/04/28 23:49
#include <stdio.h>
void main(void) {
fprintf(stderr, "ガッ\n");
}
215デフォルトの名無しさん:03/05/01 03:17
#include <stdio.h>
void main()
{
printf("scanf嫌い\n");
}
リダイレクトして初めて気づくstderr
標準出力に出力していたんじゃなかったのか(汗
217山崎渉:03/05/28 13:10
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
PC初心者板でもいってくれ
219山崎 渉:03/07/15 10:31

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
220山崎 渉:03/07/15 14:12

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
221デフォルトの名無しさん:03/07/27 17:19
保守age
222デフォルトの名無しさん:03/07/27 17:23
バカキタ━━━━━━(゚∀゚)━━━━━━!!!!!

1 名前:未来人 投稿日:03/07/27 16:38 ID:6xjzUOeH
今、試験的に2008年、2ちゃんねるUNIX板で開発された『タイムアクセス』を使って
2003年7月27日の「2ちゃんねる」に書き込んでいます。

http://ex.2ch.net/test/read.cgi/entrance/1059211374/
>>222
死ね死ね死ね死ね市ね死ね死ね死ね死ね
痛い連中の表示板です
http://lvpeace.hp.infoseek.co.jp/index.htm
皆さん観てやってください 祭り開催中!
225デフォルトの名無しさん:03/07/27 21:31
unionがわからん
メンバ変数に色々な名前をつけて何か役にたつの?
・同時に使わないメンバを同じ領域に割り当てて、領域をけちる
・違うメンバの一部分に対するアクセスするためのメンバとして
・ビットフィールド
>>226
メモリ節約と多態性ってヤツか
同時に使わないメンバってどういう場面か思いつかないけど
unionがどういうもんかわかった
サンキュー、あんた大物になるよ
228山崎 渉:03/08/02 02:16
(^^)
229山崎 渉:03/08/15 16:23
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
kkk
void yamazaki()
{
printf(" __∧_∧_\n");
printf(" |(  ^^ )| <寝るぽ(^^)\n");
printf(" |\⌒⌒⌒\\n");
printf(" \ |⌒⌒⌒~|         山崎渉\n");
printf("   ~ ̄ ̄ ̄ ̄\n");
}
232デフォルトの名無しさん:03/08/24 21:55
今晩は。Cを始めようとしている超初心者です。Cをインスコ
するにはどうすればよいのでしょうか??何分初心者なもので
よろしくお願いします。出来れば安く上げたいのですが・・・
233デフォルトの名無しさん:03/08/24 22:02
>>232
 とりあえず、Study Cの体験版やらlambdaから(ォィ)
本物のCとは仕様違うけど、文法は似ているから
こちらから入ったほうがいいかと。

よく初心者だとグラフィック扱いたいというのがあるけど
LSI C-86試食版やらBCCじゃ、難しいワナ。
>>233
初心者を超えてる>>232にそれは失礼だろ。
235デフォルトの名無しさん:03/08/25 04:56
>>234

はいはい。書けばいいんでしょ(^^;
でも、Vector行けばあるのでリンク書かなかったんですよ。

Study C サンプル版
ttp://www.orchid.co.jp/

Lambda
ttp://www.triplus.jp/

おまけとして、

「C言語 見聞禄」
ttp://www.shangrila.tv/
C言語入門書 - クセが少ないのでお勧め。良心的。

「ベクターより…」
ttp://www.vector.co.jp/vpack/filearea/data/prog/doc/index.html

あとは、放送大学「プログラミング入門('00)」を付けくわえておきます。
関東圏なら、たまに放送されてます。
線形リストを例としたポインタの解説がわかりやすかったような。
丁寧なやつだな。感心した。
なるほど
lsic330c.lzh
lsic300c.lzh
違いは?
>>238
バージョン
240デフォルトの名無しさん:03/11/30 19:36
良スレage
241山崎 渉:04/06/16 22:20
 
242fushianasan:04/06/16 22:21
243デフォルトの名無しさん:04/07/06 14:28
ぬるぽ
この擦れは愛好家が多いな。
#include<stdio.h>

int main()

{
  int siawase;
  int zinsei;

  zinsei=0;
  for(siawase=1;siawase=1000;siawase++)
  {

  zinsei=zinsei+siawase;
  printf("俺の今までの人生=%05d これからの人生=%05d;siawase,zinsei);
  }

return0;

}
for(siawase=1;siawase=1000;siawase++)
         ~~~~~~~~~~~~~~
#include <stdio.h>

int main()
{
float x=0,y=0,z=0;

printf("直方体の体積を求めるプログラムです。\nXの値を入力してください\n");
scanf("%f",&x);
printf("Yの値を入力してください\n");
scanf("%f",&y);
printf("Zの値を入力してください\n");
scanf("%f",&z);
printf("入力された値を計算します\n");
printf("体積は%0.2fcm3です。\n",x*y*z);

return 0;
}
C言語も静かになっちゃったねぇ
249シュトラッ仙:04/08/21 15:57

エスケープシーケンスを用いた画面クリア命令

printf("\033[2J \n");
250デフォルトの名無しさん:04/09/14 23:42:08
よいスレだな、がんばってください
251デフォルトの名無しさん:04/09/17 22:58:11
system("CLS");
252デフォルトの名無しさん:04/09/23 14:53:41
良スレage
253デフォルトの名無しさん:04/09/23 14:58:59
HSPでRPG作りたいんですが、正直難しいと思います。
でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
254デフォルトの名無しさん:04/09/23 17:06:11
>>253
2chからきえてなくなれ〜
255デフォルトの名無しさん:04/09/23 17:55:34
>>253
おまえはアルカロイドでも作って逮捕されてろ
256デフォルトの名無しさん