ページ 1 / 1
初のプログラム作成
Posted: 2005年7月01日(金) 23:49
by 霊
僕は、いままでプログラムをつくったことがなくて。
学校でinput A とかそういうものを打って、数当てゲーム作成とかを
習ってプログラム作成っておもしろいっておもいました、
でもまずなにからはじめていいかわかりません。友達は
ActiveBasicをつかうべきだっていっていたけど、皆様はどうおもおいますか
よかったらレスください。
Re: 初のプログラム作成
Posted: 2005年7月02日(土) 10:17
by Sinryow
まず,どんなプログラムが作りたいかを考えてみることですね。
あるいは,「こんなプログラムがあったらいいな」というのでもよいです。
そして,実際にどんなものにするかを考えてみます。
そうすれば,あとはひたすらプログラムを書いたり,必要なことを調べたりするだけです。
ActiveBasicはBASIC言語ではあまり多くないコンパイラ型ですので,かなり実用的なソフトも作ろうと思えば可能です。
ただBASIC言語の開発環境としてはやや特殊なので,気をつけて使っていってほしいと思います。
Re: 初のプログラム作成
Posted: 2005年7月02日(土) 15:00
by tak
なつかしいなぁ。僕は技術家庭科の教科書に載っている簡単なプログラムを打ち込んで、ちゃんと動くのをみては楽しんだものです。
そのプログラムとは、ズバリ「数当てゲーム」。それ以来、こっちの世界にのめり込んできたわけです。
で、その頃は「どんなプログラムを作りたいか」という発想の捻出はまだ難しく、ただ基礎的なことを身につけていった記憶があります。
まずは教科書に載っている程度の簡単なプログラムを打ち込んで、実際に動くことを楽しんでみるといいですよ。
それにより、ある程度 If や For、 GoTo などが理解でき、プログラムの「流れ」を制御できるレベルに達したら、今度はそれらの知識を組み合わせてオリジナルのプログラムを作成してみることです。
ちなみに僕の場合「10進数を2進数に変換するプログラム」が初めてのオリジナルプログラムです。ちゃんと動いたときの感動は、そりゃもう忘れ難いものです。
今、そのプログラムを探し出して読んでいるところです。高々20行程度のごく小さなプログラムですが、当時はこれを考えるだけで精一杯でした。
そのうえ、今流し読みしているとバグを発見。修正せねばっ
何か一つでもオリジナルのプログラムを作成できる程にまで成長できればしめたもの。あとは自然と「どんなプログラムを作りたいか」という発想がどんどんと湧いてきますよ。
そのための環境を整備しないといけないのですが、これが一苦労。
今時、技術家庭科の教科書に載っているようなBASIC言語を処理できる環境は、まずありません。それほど古い技術なのです。
しかし、ActiveBasicは現代の最新技術をサポートする一方で、このような「古い」BASIC言語もちゃんと処理できるのです。
それは N88-BASIC モードと呼ばれるモードで、このモードでは教科書に載っているような「古い」プログラムでも動かすことが出来るので、学習向けにはもってこいです。
自信を持ってActiveBasicをお勧めします。
Re: 初のプログラム作成
Posted: 2005年7月02日(土) 23:51
by mako20
僕は、こちら側の言語ではなくC言語から覚えてきました。
当初使っていた開発環境はLSI-C88です<(今では別物でわかりづらい^^;)
その後は、VisualC++というMicrosoft社の有名な開発環境です
最初のうちは僕も覚えていきました。
最初のC言語のプログラムはサンプルで
コード: 全て選択
#include <stdio.h>
int main(void){
printf("hello world\n");
return 0;
}
の短いコードで、コンソールからの実行プログラムから、やはりtakさんと同じように、if、for、他にwhile、switch(ActiveBasic(以降、AB)ではSelect)などから、基本を学んで5年(もう少しで6年)やっています(C言語を)、ABはC言語の予約語、定数、関数を頼りにやっています。
2年の中間あたりではWIN32APIを覚えて、3年末ごろにはDirectXを覚えていって
今の僕があります
で、結果としてABでもいいですが、幅広くやりたい場合はC言語も覚えといたほうがいいと思いますが
やるとすれば、交互にバランスよく覚えていけば、知識もかなりつきます
(バランス悪ければ、挫折する可能性が大きいです)
┗僕も、4年目ぐらいでスランプして半年ぐらい挫折してましたので、挫折がつき物ですが、がんばってください!!
Posted: 2005年7月03日(日) 11:18
by たけぽい
私も同じようなものですねぇ。
私はVisualBasic一筋でした。始めたのは中学2年のときでした。まわりに教えてくれる人などいるはずもなく
家もネットにつながっていなくて、本も高くて買えなかったので、
完全独学でおぼえていきました。当時はほんと何をしていいのかわからず、とりあえずテキトーに作ってました。
プログラムとはいえないシロモノばかりで、ボタンおして線が書かれるだけのものとか。
それでも思った通りに動くということはとても嬉しいことで、それを活力にしていろんなことを試しました。
そのうちに新しい発見とかもあり、覚えたことを組み合わせたりしてやっとプログラムらしいプログラムを作ることができたのです。
それから、「じゃぁいまの自分の技術で、何か作れないか?」と考え出すようになったのです。
最初は何をするべきか と思う前に、とりあえずテキトーにやってしまえーです(私の場合w)
テキトーに作ることでとんでもない事態になることもあります。自分もメモリ操作がテキトーすぎてOSが落ちたこともありました。
でもそういう経験を重ねて、どういうプログラムをすればいいのかを覚えていくんだと思います。
本を読むのもいいのですが、ただ本の内容を覚えるだけではプログラムを完全に理解することはできないと思います。
要は「習うより慣れろ」ですね。その上でわからないことがあれば、こういうとこに質問するのです。
みなさんのレスを見ても、同じような道を辿っているようですねw
使用言語については、やりたいことによって変わってきますが・・・。
ActiveBasicは今現在ではコンパイラの精度が低いため、DirectXを使わない場合、
画面の動きが速いゲーム等にはあまり向かないかもしれません。
ですが今後コンパイラ精度がよくなることも考えられますし、
BASIC(おそらくポケコンでしょう)からきたのならActiveBasicはプログラムの学習に非常に有効だと思います。
長文失礼しましたm(_ _)m
Posted: 2005年7月03日(日) 12:51
by mako20
> 私も同じようなものですねぇ。
>
> 私はVisualBasic一筋でした。始めたのは中学2年のときでした。まわりに教えてくれる人などいるはずもなく
> 家もネットにつながっていなくて、本も高くて買えなかったので、
> 完全独学でおぼえていきました。当時はほんと何をしていいのかわからず、とりあえずテキトーに作ってました。
> プログラムとはいえないシロモノばかりで、ボタンおして線が書かれるだけのものとか。
>
> それでも思った通りに動くということはとても嬉しいことで、それを活力にしていろんなことを試しました。
> そのうちに新しい発見とかもあり、覚えたことを組み合わせたりしてやっとプログラムらしいプログラムを作ることができたのです。
>
> それから、「じゃぁいまの自分の技術で、何か作れないか?」と考え出すようになったのです。
たけぽいさん、僕も実は完全に独学で覚えてきてそれで、今は自分の技術がどれぐらいなのかを
見るために、
僕のサイトにある、PlayerEleanoreという
DirectMusicを利用して音楽を再生するプログラムを作っています
(拡張機能よりかメイン?の音源を最適化をする機能もあります)。
> 最初は何をするべきか と思う前に、とりあえずテキトーにやってしまえーです(私の場合w)
> テキトーに作ることでとんでもない事態になることもあります。自分もメモリ操作がテキトーすぎてOSが落ちたこともありました。
> でもそういう経験を重ねて、どういうプログラムをすればいいのかを覚えていくんだと思います。
僕もあります。メモリ操作を誤ってしまってプログラムが亀になったり、プログラム生成時に訳わからない演算式を書いて、そのプログラムを自分で修復するのに挫折しそうになったりなど、経験があります
> 要は「習うより慣れろ」ですね。その上でわからないことがあれば、こういうとこに質問するのです。
> 本を読むのもいいのですが、ただ本の内容を覚えるだけではプログラムを完全に理解することはできないと思います。
これは、経験者であれば誰でも答えるほどですが。
まぁ、そうでないと習ったとしても時間が経てばすぐ忘れますから、覚えるとすれば
慣れる事しかありません
初プログラム
Posted: 2005年7月06日(水) 00:41
by まけイヌ
私の場合、ActiveBasicの"初"の頃は既に仕事でCやらPerlやらをやっていたので、
たぶんASCII変換ツールが最初かと。
※入力文字をASCIIコードに変換するだけ
最初に覚えたプログラムはN88-BASICでしたが、
このときの最初のオリジナルプログラムは"潜水艦ゲーム"でした。
まだLine命令とかも知らなかったので、
覚えたての配列を駆使して内部で一生懸命計算していたのを覚えています。
高校の時の話なので、かれこれ1●年前の話かぁ..(自爆)
ちなみにC言語の最初のプログラムは、仕事で使うデータの検査プログラムでした。
ようやく"Hello, World!"が出来た程度の人間に既存ライブラリを使い、
構造体に格納したデータのポインタのポインタを操作する事を要求されました。
仕事なので、もちろん期限付きです。
※何て無謀な会社なんだか..
※お陰でキャストまでをたったの3週間で一気に習得できましたが..
その頃からソースコード様に(無事動くよう)拝み倒すような
変なコーディングスタイルが身に付いたのかなぁ..
是非とも真似せず、じっくりと勉強してくださいね。
いやー、確かに懐かしい。
Posted: 2005年10月14日(金) 04:26
by konisi
僕も独学でBASIC言語(古い本があったので読み漁りましたがおそらくN88系かと。)を覚えました。
確か一番最初に作ったオリジナルプログラムの内容は「キーボードを叩いた回数をカウントして、指定回数以上になったらプログラムを終了させる」だったかなぁ。何百行(実際には30行ほど。)と書いたのを今でも覚えてます。
因みにそのプログラムはまだ動かしていません。要するに小さなノートにチマチマと書いておいてほうったらかしっていう話になるんですが、色々知識が身に付いた後で見直したけどバグもエラーになりそうなところも特にありませんでしたねぇ。
あのノート、どこに行ったかなぁ・・・。
それでパソコンで実際に作り始めたのは中2の春からかなぁ。最初に動かしたプログラムの内容は忘れましたが、自分が作ったプログラムで現存する中で最古のプログラムのコードはまだあるので載せます。
N88系BASIC用(元code)
コード: 全て選択
40 '初期設定
50 CLS 3
60 COLOR 0,7,0,7,1
70 CLS 3
80 ON ERROR GOTO *ERROR1
90 LOCATE 0,0
100 PRINT "このプログラムはフリーです。"
103 FOR I=1 TO 2000 '表示時間 約1秒
106 NEXT I
109 CLS 3
110 PRINT "どのゲームで遊びますか?"
120 PRINT "ルーレット=1,数当て=2,"
140 INPUT "どれ";N
150 if N=1 then goto 240
160 if N=2 then goto 520
170 if N=3 then goto 240 else goto 140
190 *END SUB
191 CLS 3
200 END
210 *ERROR1
220 LINE (0,0)-(530,300),7,BF
223 COLOR 2
225 PRINT "エラーが起きました。"
230 goto 100
240 CLS 3'ルーレット メイン プログラム
241 gosub 411
242 C=D
264 gosub 390
265 LOCATE 0,2
267 PRINT "ルーレットを開始します。"
269 LOCATE 0,3
270 INPUT "倍率を入れてください。";B
275 if B<=1 then goto 370
276 LOCATE 0,4
277 PRINT "現在"
278 gosub 470
279 LOCATE 0,5
280 INPUT "掛け金を入れてください。";K
285 if K<=0 then goto 279
286 if K>C then goto 279
290 A=FIX(RND*B)+1
294 LOCATE 0,7
295 INPUT "数を予想してください。";X
296 if X>B then goto 297 else goto 300
297 PRINT "倍率以下で1以上の数にして下さい。"
298 goto 295
300 if A=X then goto 450
301 if A<>X then goto 460
303 if C=0 then goto 360
350 goto 264
360 PRINT "ゲームオーバー...読み込み中..."
361 FOR I=1 TO 6000 '表示時間 約3秒
362 NEXT I
363 goto 50
369 'ルーレット サブ プログラム
370 CLS 3
380 goto 265
390 COLOR 1,6,1,6,1
400 CLS 3
410 RETURN
411 D=1000 '最初の所持金
449 RETURN
450 C=C-K+(B*K)
455 goto 303
460 C=C-K
465 goto 303
470 LOCATE 4,4
480 PRINT ;C
490 LOCATE 11,4
500 PRINT "コイン有ります"
510 RETURN
520 CLS 3 '数当て メインプログラム
530 CONSOLE 0,25,0,1
540 CLS 3
555 gosub 660
550 PRINT "数当てを開始します。"
560 INPUT "1からどのくらいまでの数にしますか";B
565 goto 750
570 PRINT "コンピュータが作った数を当ててください。"
580 PRINT "間違ってれば、もっと多いかもっと少ないかをいいます。"
590 C=INT(RND*B)+1
600 N=1
610 INPUT "数は何でしょうか";K
615 if K<1 then goto 770
620 if C=K then goto 690
630 goto 800
650 '数当て サブ プログラム
660 COLOR 2,5,2,5,1
670 CLS 3
680 RETURN
690 PRINT " - - "
700 PRINT " @ @ "
710 PRINT " O "
730 if N<5 then PRINT "大当たり~" else PRINT "当たり"
731 PRINT "スコア";N;"手"
735 INPUT "まだやりますか?(Y/N)";X$
736 if X$="Y" then goto 520
737 if X$="N" then goto 900
738 if X$="y" then goto 520
739 if X$="n" then goto 900
741 goto 735
750 if INT(B)=B then 570 else goto 760
760 if B=1 then goto 780
770 PRINT "正の整数を入れてください。"
777 goto 560
780 PRINT "正の整数で、1以外の数値を入れてください。"
790 goto 560
800 PRINT " / \"
810 PRINT " @ @ "
820 PRINT " "
830 PRINT " ^ "
840 if C<K then goto 850 else 880
850 PRINT "もっと少ない"
860 N=N+1
870 goto 610
880 PRINT "もっと多い"
888 N=N+1
890 goto 610
900 PRINT "...読み込み中..."
910 FOR I=1 TO 6000
920 NEXT I
930 goto 50
940 '
ちょっとコードを変更してActiveBasicに対応させたコード↓
コード: 全て選択
#N88BASIC
Dim I,N,A,B,C,D,X$ As String,X,K
40 '初期設定
50 Cls 3
60 Color 0,7
70 Cls 3
Paint (0,0),7,7
90 Locate 0,0
100 Print "このプログラムはフリーです。"
103 Sleep(1000)
109 Cls 3
Paint (0,0),7,7
110 Print "どのゲームで遊びますか?"
120 Print "ルーレット=1,数当て=2,"
140 Input "どれ";N
150 if N=1 then goto 240
160 if N=2 then goto 520
170 if N=3 then goto 240 else goto 140
190 '*END SUB
191 Cls 3
Paint (0,0),7,7
200 END
240 Cls 3'ルーレット メイン プログラム
241 gosub 411
242 C=D
264 gosub 390
265 Locate 0,2
267 Print "ルーレットを開始します。"
269 Locate 0,3
270 Input "倍率を入れてください。";B
275 if B<=1 then goto 370
276 Locate 0,4
277 Print "現在"
278 gosub 470
279 Locate 0,5
280 Input "掛け金を入れてください。";K
285 if K<=0 then goto 279
286 if K>C then goto 279
290 A=Fix(Rnd()*B)+1
294 Locate 0,7
295 Input "数を予想してください。";X
296 if X>B then goto 297 else goto 300
297 Print "倍率以下で1以上の数にして下さい。"
298 goto 295
300 if A=X then goto 450
301 if A<>X then goto 460
303 if C=0 then goto 360
350 goto 264
360 Print "ゲームオーバー...読み込み中..."
361 Sleep(3000) '表示時間 約3秒
363 goto 50
369 'ルーレット サブ プログラム
370 Cls 3
380 goto 265
390 Color 1,6
400 Cls 3
Paint (0,0),6,6
410 return
411 D=1000 '最初の所持金
449 return
450 C=C-K+(B*K)
455 goto 303
460 C=C-K
465 goto 303
470 Locate 4,4
480 Print ;C
490 Locate 11,4
500 Print "コイン有ります"
510 return
520 Cls 3 '数当て メインプログラム
555 gosub 660
550 Print "数当てを開始します。"
560 Input "1からどのくらいまでの数にしますか";B
565 goto 750
570 Print "コンピュータが作った数を当ててください。"
580 Print "間違ってれば、もっと多いかもっと少ないかをいいます。"
590 C=Int(Rnd()*B)+1
600 N=1
610 Input "数は何でしょうか";K
615 if K<1 then goto 770
620 if C=K then goto 690
630 goto 800
650 '数当て サブ プログラム
660 Color 2,5
670 Cls 3
Paint (0,0),5,5
680 return
690 Print " - - "
700 Print " @ @ "
710 Print " O "
730 if N<5 then Print "大当たり~" else Print "当たり"
731 Print "スコア";N;"手"
735 Input "まだやりますか?(Y/N)";X$
736 if X$="Y" then goto 520
737 if X$="N" then goto 900
738 if X$="y" then goto 520
739 if X$="n" then goto 900
741 goto 735
750 if Int(B)=B then 570 else goto 760
760 if B=1 then goto 780
770 Print "正の整数を入れてください。"
777 goto 560
780 Print "正の整数で、1以外の数値を入れてください。"
790 goto 560
800 Print " / \"
810 Print " @ @ "
820 Print " "
830 Print " ^ "
840 if C<K then goto 850 else goto 880
850 Print "もっと少ない"
860 N=N+1
870 goto 610
880 Print "もっと多い"
888 N=N+1
890 goto 610
900 Print "...読み込み中..."
910 Sleep(3000)
930 goto 50
しかし懐かしいですね、苦悩しながら一行一行
丁寧にコードを打っていってたあの時代が。
でもビギナーがいきなりメモリ操作してOS落とすのはどうかと。>>たけぽい
あ、滅茶苦茶長い長文失礼。
お世話になります。
Posted: 2005年10月14日(金) 18:37
by omasu
お世話になります。
「期待をしております。!!」
Const 過去ログ1=ベーシックを使い始めたのは昭和の時代です。
Const 過去ログ2= ポケットコンピュータ(シャープPC1500)
Const 過去ログ3= 当時、ソートにチャレンジ(今のバケツソート開発)
While 楽しい
if
※面白ければ、それでよいともいえます。m(_ _)m
else
※疑問、追求、持久力、が大前提だと思います。
endif
(そこから始まってください)(~o~)
if
疑問点、自己解決
else
コミュニティー フォーラム
endif
楽しい=楽しい*2
Wend
追伸:楽しい世界と感じます!
初のプログラム
Posted: 2005年10月14日(金) 22:55
by BingoMan
僕の場合、中二の夏に初めてパソコンを買い、秋にインターネットに接続しました。
そこでいろいろ調べていくうちに、このActiveBasicに出会いました。
最初のうちはここの講座の通りに進めていきましたが、中3のはじめから自分でプログラムを作るようになりました。
それから約1年半...
中3の今頃とあまり変わってないというのが実情です...
返信@yu0627
Posted: 2005年10月15日(土) 16:48
by yu0627
また一人、ABユーザーが増えましたね^^
僕は最初N88BASICでプログラミング→失敗
今年の正月、お年玉でオフィシャルユーザーズガイドを買いました。
そしてもう10ヶ月。色々なソフトを作っています。
最初と比べてかなりプログラミングの腕は上がりました。
例えばSameFolder MusicPlayer、LightMailSender、
LightMailSender OptionalEditor、パソコン規約みせるん、MIDI Encorderなどです。
僕は皆に僕が作ったソフトを使ってほしいからActiveBasicをやっております。