ウインドウズBasic/98に準拠しており、バイナリファイルも、アスキーロード無しで、昔のパソコン、日本電気株式会社(NEC)のPC-9801VM以降のモデルで互換性が保てる、電脳組の、ベーシックをエミュレーションした形で動作するソフトを公開しています。
This Home Page is Based on Standard of Windows Basic/98, Binary File and By Nothing ASCII Load Keep on Inter change Nihon Electric Company Type Pc-9801 VM2 on and After Emulate Execute Interpret Soft Publication .
ReadMe 本ソフト使用説明書
SCA 指数1ミリオンを何ヶ月、何割増すか計算してくれるソフト
This File of SCA.BAS is Start Exparent And
InterNational Rating with Income Clredit
30PerDepit Additon Suplus,Divident Stock
Market Amount.
SESM 30指数の地方保険調整税と、50指数の政令指定都市向け保険借地税の不動産証券を、固定資産税で期間を計算します。固定資産と同額の国家(外国拠点)から、毎年1月1日に国庫負担をして、土地会社が持つ保険を発行する手当で投資します。
This File of SESM is Region And High City
Place Insurance,Exparent 30 and 50 is Estate
Property Tax Stock Market Amount Total Calculator
on Totals Between Plan Year,The Exchange
Place Tax is Estate Insurance Issue by Nation,January
Day One Behind is Tax Equivalent Issue Estate
Insurance Same Tax.
SMA カード会社用住所録
This File of Target Use in Credit Card Person
Comminucation Infometion,But That Address
Books is Entry.
SSCT ベーシック専用 サイン コサイン タンジェントなど三角関数で円形を描画する
Development Function TryAngle Function (SIN,COS,TAN)
on Draw Circle Power Draw Program.
S4SS 証券の第四四半期の会計報告を自動でやってくれます
4 Season First Winter,Splinter,Summer,Fall
at Understand Income Stock Market Amout,This
is Total Income Calclator Function It.
S2Estate 土地の検定得点を100を基準に査定します。
Estate Assessment Cooprate Appointment Test
100,Region or City of Land Place.
SEXCHANGE 様々な重さの単価をコンバートします。
Compare at Many Ration.
SoureceEDP 日付変更プログラムです。
This SourceEDP is Day Change Program.
Sisuue 監査委員の数を入力すると、為替の資金の発行額を教えてくれます。
Commitee Member Type Reply Count,Issue [Total^(Member)
MultiPlier],Reply Computer Result Ask It.
SAE 33桁までの英語数字を表示できます。
This SAE is 33Number Figures Change Translate
English Math Numbers,Through Show Display
It.
SCSVEDITOR こちらのものはMemopadより高機能なデーターベースエデッタ。
This SCSVEDITOR is Advance CSV DataBase Editor.
S4ANGLE 一つの図形が4回転します。
Four Align Rotate Draw Rect 4 Angle Change
It.
SESTATE 土地の検定得点を100を基準に査定します。
Estate Assessment Cooprate Appointment Test
100,Region or City of Land Place.
SLISTER 剰余金による証券株式投資の決済額を+−で査定します。
This sLister is No Type Passenger is Plan
less than Have Minors Entry,on Plan is Exist
Plus More Than Have Plus Passenger Success
Passenger.
SCAD 建築士の使うドロー図面によって、家やビルなどを設計できます。380Px下限400ラインモード
This sCAD is Computer Aided Design,Architecture Proffesional Design Target
Home and Bussiness Use,380 Line Design Mode on Method.
SESM 30指数の地方保険調整税と、50指数の政令指定都市向け保険借地税の不動産証券を、固定資産税で期間を計算します。固定資産と同額の国家(外国拠点)から、毎年1月1日に国庫負担をして、土地会社が持つ保険を発行する手当で投資します。
This sESM is Estate Stock Market,My Plan
is Between Years No Exparent 30 No Filled
Result of Out of Plan,But No Next Year Entrys.
STM 公共スレッド管理センター。
But is Many Service NetWork Thread System with Oparation Center Program,This
is Math Communication and System Identify Answer Reply For Your Solution.
DWAGE 雇用状況電子チケットの作成、またその就労結果、時間の管理
You Can Use This Make Electronic Ticket of Employ Hours,and too Result
Job and Control Wage with Hours.
DESKISS 一級建築図面方眼
The 1St Architecture Need Cell Draws and Import BitMapImage with Printing
and Hand Write Free Draw.
shougan 遺言相続協議書
Inheritance Hand Write Page.
DAA 定額年金ソフトウエアプログラム
Annity Addition Account Module.
slister 登録役員出力ソフト
Regist Stock Market Post Out Put.
dmousegui マウスI/Oテスト
Mouse Input and Output Running Test Program.
dmenu キーボード専用の起動メニュー
You Type Selected Menu for My Bootable Menus.
福岡 大(ふくおかだい)Dai Fukuoka
Copyright 2016.07.22
Pratform 電脳組
ASCII FILE EXHIBITION
ソースコードの公開
構造体解説集s4angle
scsveditor
sdep
sfx
sfxchange
skago
sma
spest*
smemo
sma
sestate
4ss
ssct
sissue
sca
sae
slister
scad*
sEMS
sTM*
DWAGE
DESKISS+
shougan+
DAA
slister
dmousegui+
dmenu+
パソコンを専用とするVisualCの雛形のコンパイラをベーシックのプログラムと比較ができます。約款に基づいてリリース(無償バージョン)ができる条件を付けた作品は、販売を兼ねることができると解釈される規約に準拠しています。ビジュアルCの作品は、パソコン専用で出来、N88Basicなど大型コンピュータにインポートする目的格で作るのとは異なります。
Personal Computing Specialty Language Visual C Template on Compile Compare
Basic Programming, Agreement by Micro Soft Can Terms in Release with Take
Free Version After Sale Out Inter Change Standard Under Stand, Make File
by Visual C is Only PC Complete, N88 Basic And Basic/98 Language is Import
of Large Computer Objective Difference It .
簡単な98ベーシックの建築士1級の図面A4判印刷のエスキス方眼用紙の作成ソフトソースコード。BMPで出力して、モノクロで薄い線でそのまま印刷。
150 CONSOLE ,,0:COLOR 0,7,0,7,2:COLOR=(0,2730):CLS 2:FOR I=0 TO 639 STEP
5:FOR T=0 TO 399 STEP 5:LINE(I,0)-(I,399),0:LINE(0,T)-(639,T),0:NEXT T,I:GET(0,0)-(639,399),"eskiss.bmp"
構造体解説集
描画構造体解説集
リンク集
YouTube ストリーミングビデオ
YouTube プロフィール
LinkList
100 REM --------------------
110 REM copyright Module by DaiFukuoka 2016.6.20-7.21
120 REM (c)電脳組
130 REM --------------------
140 CONSOLE 0,24,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,7,2:CLS 3
150 DIM CSV$(9999,11)
160 IF POINT(639,479)=POINT(639,399) THEN LINEMODE=-1:GOTO *L2 ELSE
LINEMODE=1:GOTO *L1
170 *L1
180 LINE (0,0)-(639,18),4,BF:LINE(0,32)-(639,48),4,BF
190 LINE(0,96)-(639,112),5,BF:LINE(0,176)-(639,192),5,BF
200 LINE(0,256)-(639,272),6,BF:GOTO *O1
210 *L2
220 LINE (0,0)-(639,18),4,BF:LINE(0,36)-(639,54),4,BF
230 LINE(0,110)-(639,130),5,BF:LINE(0,187)-(639,204),5,BF
240 LINE(0,263)-(639,282),6,BF
250 *O1
260 LOCATE 0,0:PRINT "Load File Name : ";:INPUT "",LFN$:IF
LFN$="" THEN *START
270 OPEN LFN$ AS 1:LEOF=EOF(1):CLOSE 1:IF LEOF=-1 THEN *MAKEFILE
280 OPEN LFN$ FOR INPUT AS #2:
290 FOR I=1 TO 9999:INPUT #2,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(1,4),CSV$(1,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT:CLOSE
#2
300 LOCATE 0,0:PRINT SPC(78);:GOTO *START
310 OPEN LFN$ FOR OUTPUT AS #1
320 FOR I=1 TO 9999:WRITE #1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(I,4),CSV$(I,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(1,11):NEXT:CLOSE
#1
330 LOCATE 0,0:PRINT SPC(78);:GOTO *START
340 *START
350 LOCATE 0,0:PRINT SPC(78);
360 IF CSV$(PAGE,ARTICLE)="" THEN CSV$(PAGE,ARTICLE)=" "
370 IF CSV$(PAGE,1)="" THEN CSV$(PAGE,1)=" "
380 IF FLAG=0 THEN PAGE=1:LOCATE 0,0:PRINT "Tittle / Page :";:INPUT
"",PAGE:LOCATE 0,1:PRINT CSV$(PAGE,1):LOCATE 0,2:PRINT "Article
Preview :";:INPUT "",ARTICLE:LOCATE 0,3:PRINT CSV$(PAGE,ARTICLE)
390 IF FLAG=-1 THEN FLAG=0:LOCATE 0,0:PRINT "Tittle / Page
:";PAGE;SPC(200);:LOCATE 0,1:PRINT CSV$(PAGE,1):LOCATE 0,2:PRINT
"Article Preview :";ARTICLE;SPC(200);:LOCATE 0,3:PRINT
CSV$(PAGE,ARTICLE)
400 LOCATE 0,6:PRINT "Edit Artice";ARTICLE;"
Page";SPC(200);PAGE;:LOCATE 0,7:INPUT "",WROTE$
410 IF WROTE$="" OR WROTE$=" " THEN ELSE
CSV$(PAGE,ARTICLE)=WROTE$
420 *LOOP1
430 LOCATE 0,10:PRINT "Select Article and Pages";
440 LOCATE 0,11:PRINT "0: NoMove , 1:Add+ , 2: Dec-";:INPUT
"",REQUEST
450 IF REQUEST=0 THEN *ACCEPT
460 LOCATE 0,12:PRINT "0:[1]/1:[10]/2:[100]/3:[1000]";:INPUT
"",MANY
470 *ACCEPT
480 LOCATE 0,13:PRINT "Okay? 0:Yes / 1:No ";:INPUT
"",ACCEPT:IF ACCEPT=1 THEN *LOOP1
490 IF MANY=0 THEN COUNT=1
500 IF MANY=1 THEN COUNT=10
510 IF MANY=2 THEN COUNT=100
520 IF MANY=3 THEN COUNT=1000
530 IF COUNT+PAGE>9999 THEN *LOOP1
540 IF COUNT+PAGE<1 THEN *LOOP1
550 IF REQUEST=0 THEN PAGE=PAGE
560 IF REQUEST=1 THEN PAGE=PAGE+COUNT:FLAG=-1
570 IF REQUEST=2 THEN PAGE=PAGE-COUNT:FLAG=-1
580 LOCATE 0,14:PRINT "For Number of Article : (1-11) : ";:INPUT
"",ARTICLE
590 IF ARTICLE<1 OR ARTICLE>11 THEN ARTICLE=1
600 LOCATE 0,15:PRINT "0:Saving Sequence 1:No Think : ";:INPUT
"",FILESAVE
610 IF FILESAVE=1 THEN *START ELSE IF FILESAVE=0 GOTO *SFN
620 *SFN
630 LOCATE 0,16:PRINT "Save File Name : ";:INPUT "",SFN$
640 CLS:IF SFN$="" THEN *LOOP1
650 OPEN SFN$ AS 1:CLOSE 1:OPEN SFN$ FOR OUTPUT AS #1
660 FOR I=1 TO 9999:WRITE
#1,CSV$(I,1),CSV$(I,2),CSV$(I,3),CSV$(1,4),CSV$(1,5),CSV$(I,6),CSV$(I,7),CSV$(I,8),CSV$(I,9),CSV$(I,10),CSV$(I,11):NEXT:CLOSE
#1
670 GOTO *START
680 *IFEND GOTO *START:END IF:END
行番号100,110、120,130、これは、モジュールを作った著者の福岡 大は、控めな申請です。開発環境は、有限会社電脳組です。
Command Line 100,110,120,130 , This is Make Moduler Dai Fukuoka All Right
Reserved(Copy right) and PratForm Coopration Limited Dennougumi .
行番号140は、文字の大きさと、スクリーン画面の設定と合わせて、色彩と、背景色です。
Command Line 140 , Setting is Screen Charactor size with Color mode and
BackGround Color .
行番号150は、配列変数CSV形式の文字列を、1万回と、11段に分けた設定します。
Command Line 150 , Setting is CSV Type Data of Arregement Strings Words with
Count and 10Thousand withon 11 Category .
行番号160は、背景色が、640と、480数の位置と、640と400の数の位置の色情報を実際に採取して、それをIFステートメントで判定を分けます、480ラインと同じで有れば−1と*L2ラベル、400ラインで有れば、黒色が地点に返されて、+1のラインモードの変数に格納します。ラベル*L1に移動します。
Command Line 160 , Case and Case IF Desision Case Ture Screen Line Mode Max 480
, Less than case False Screen Line Mode Min 400 , Desision Large or Small ,
Program Must Standerd Screen Setting and Execute Setting ForWard Label Large
*L2 or Small *L1 withon Target Root in *O1 .
行番号170、180.190、200、図形機能Line関数を使って四角形を端から端まで描いて、画面を編集します、色覚を文字列に密接します。
Command Line 170,180,190,200 , Draw Rect Deep and Deep Screen Side , Edit
Screen Color BackGround Color with Fit String Text .
行番号220,230,240、規格高さで整列した四角い領域を400ラインモードで描画します。
Command Line 220,230,240 , Arrangement Rect Square Angle of Standerd Height 400
Line Screen Mode at Draw .
行番号260は、必要なければ、名前を指定する必要ありません、記録したファイル名データを読み込みます。
Command Line 260 , Recording Wrote CSV Sequenceal Load File Name , FIle Name is
Need Less Appointment .
行番号270は、ファイルの終端をLEOF変数に判定を納めます、LFNが行番号260にて指定されたファイルを開きます。
Command Line 270 , RearWard One Step with Variable Value Decition Put in
"LEOF" Variable Value , Appointment File Name "LFN" Open .
行番号280、290は、指定したファイル名を開き、書き込み設定で11列のCSVと、終端までの高さを定数9999行まで記録ファイルから読み取ります
Command Line 280,290 , Appointment File Name Open with Trough Writing 11 Count
Arrangement withon 9999 Count Height Clomn Record File to Read and End of File
.
行番号300、330は、文字列の在った0,0座標に78文字半角で空白を埋め、ラベル *Startへ飛び越します。
Command Line 300 , Skip out Label "Start" Jump with String Text
Coordinate 0,0 Point Harf 78 Count Type Spacing .
病番号310、320は、キャッシュから書き込んで失った変数値を”OUTPUT”設定で書き込んだ情報から読み込みます。
Command Line 310,320 , Wrote information at Cash Memory loss Variable Value
After Read Setting "OUTPUT" Mode at Variable Full Fill a Hole
Record .
行番号360、370は、CSV形式に空の情報に対して空白を詰めていきます。CSVの先頭配列と参照配列に空白を詰めます。
Reference Pick upping Empty Changing Space Fill a Hole and Top Word Change
Space .
行番号380は、変数”FLAG”が0の結果の時、開始準備を設定し、”PAGE”変数が1から始まります。整数で使用者が入力する必要があります。
Command Line 380 , Decition Result Variable Value of 0 Count For Start up
Setting Page Variable Start one Trough , User is Need Typing Infometion .
行番号390は、変数値”FLAG”が-1の時"FLAG”をオフセット(0)にします。現在位置の変数値”PAGE”と、”ARTICLE”の値を表示したあと200文字空白で埋めます。1行目と3行目です、また空白を詰めたあと、現在位置の”CSV”形式の現在位置の内容を表示します。
Command Line 390 , Decition Result Variable "FLAG" Value if
"-1" Case For Ward Set "0" off Set , String Text Clear
Setting Space Mode , Show Display "CSV" onTime "Page" and
"Article" Variable Value to Location 0 with 2 and Show String Text
Contents .
行番号400は、7、8行目の6と7に、今編集中の”ARTICLE”と”PAGE”を表示し、変数値”WROTE”に格納します。空の場合は、1文字の空白が詰められます。
Command Line 400 , Colmn 7,8 Value 6,7 onTime Editing Text "ARTICLE"
and "Page" Enter "CSV" Type Arrangement Variable , Show
Display "Page" and "Article" Count .
行番号410は、入力で何も入力しなかった場合や空白が詰められている場合 なにもしなく、また他は”CSV”配列変数に対して文書を格納します。
Command Line 410 , This is Type Nathing Skip,User Must Typing , if No Nathing
Case In Put Arragement Variable Value Type Text information .
行番号430、440、450、460、480は、”MANY”と、”REQUEST”を入力し、その案内を表示します。そのままエンターキーを押すとラベル”ACCEPT”に移動して回答を伺う、否定した場合に変数”ACCEPT”を”1”とする、普通にエンターキーを押して、数値が”0”で有れば、同意し次へ進みます。
Command Line 430,440,450,460,480 , User Type Page Change Program For Input of
"MANY" , "REQUEST" Atter Sign In Next , Request Ask Type
Method withon Addition or Decrease Type Result , Move Page is
"1","10","100","1000" Plus Minous to
Decition Value Pages,Accept Type Support Enter and Defualt Value to Skip
Request Standerd Settings .
行番号490,500,510,520は、変数"MANY”で入力した数値に対して表記結果を条件によって数値が変わります。
Command Line 490,500,510,520, Decition Variable "MANY" Value IF Case
is Need Type And Result Method Column , Default Setting Value Skip
"Enter" Accept Automation Result Type Value,Change Page Count it .
行番号530,540は項の数値が9999以下1以上になるように例外を除外します。
Command Line 530,540, This Function is Exist Variable Value of 10000 under with
0 Over,Other Run Back .
行番号550、560、570は、回答した項の増減を中立なのか、増えるのか、減るのか変数”PAGE”に対して先ほど入力した”MANY”から作られた”COUNT”を増減します。
Command Line 550,560,570, RearWard This Function Ask reQuest Page Count
WareHouse Nutral or Addition or Decrease,This is Make Variable "MANY"
to "COUNT" IF Case Nutral is NoFlag Else Other Decition is Flag
"-1"
行番号580は、590、CSV規格に準拠し、256文字以内、12項目以下です。質問と答え、”ARTICLE”にCSVの項目値を入力します。正しくない値は除外されます。
Command Line 580, This Soft Ware Standerd Basic/98 with MicroSoft N88Basic(86)
with TYPE DATA CSV, This Function information "ARTICLE" Type
Input "ARTICLE" at Value And Arragement, Request and Answer "CSV"
Standerd Type Variable Input Values, Exist No "256" Word Over
with No "11" Arragement Over . .
行番号600は、書いた情報を今保存するのか、結構なのか回答を必要とします。任意のエンターキーでは通常は保存します。変数値”FILESAVE”に結果を保持します。
Command Line 600, Now Savings information Worte or No think Need Type Answer,User
Type Result Nothing is Accept Wrote Planning Keep Result .
行番号610は、先程の説明に0と1以外の不正な値が格納されないように判定します。
Decition Bad Value Type Input "FILESAVE" Case Exist it , This
Variable is Keep Conteiner Data .
行番号630と640は、”SAVE FILE NAME”保存する名前を”SFN”変数に入力します。次の行で、”SFN”変数が空で有ればラベル”LOOP1”に移動します。”LOOP1”は、420行番号にあります。データを保持することにファイル名を入力しなければならないそれと、通り越し禁止に一緒に
Command Line 630,640 , Show Answer "SAVE FILE NAME" After Stand
by Typing and ReName Variable Conteiner "SFN" In Put Typing information
, IF Case Variable Value Nathing with Go to Label "Loop1" Jump
Command Line 420 .Keep Data is Must Typing FileName withIn NoSkip .
行番号650と660は、変数”SFN"にあらかじめ空のファイルを#なしで作成しておき、後から作られたように、シーケンシャルファイル番号#1番にエクスポートの”OUTPUT"モードに変えます。また次の行でっは、ループ(繰り返し処理)を使って、実際に一行づつ9999回まで書き込みます、書きこまれる内容の全てが、”CSV”配列変数でなければなりません、Nextで折り返しForに戻り、抜けると#1のファイルを閉じます。
Command Line 650,660 , Starting by Empty Data File , Make "SFN"
Variable New File Name For Write , Maked ForWard Sequence #1 Open Number Export
"OutPut" Mode Change Open File Mode , This Function with Variable is
Loop 1 to 9999 Count Jump Start on Count , This All Contents is Standerd
"CSV" Type Variable Arrangement , IF Loop out is Sequence Number #1
Close Open File with File Name Close .
行番号670は、初期化作業のみを除いた位置にラベル”START”に戻ります。行番号340にあります。
Command Line 670 , System Work is Full Setting Go to Jump Label
"START" ReTurn Locate on Command Line 340 .
CLesson
********************
Cを翻訳するにあたって、注意点や、互換点をBasicに比較します。Basicは、CommonGateWayInterfaceほど難しいプログラミングですが、初心者向けに作られているべーシックは、頭文字の意味は、ビギナーのBであり、まず初めにプログラミングを教習するのに、学校などの支援もあり、捕捉されます。Cからは、本格的なアプリケーションプログラミングインターフェイスをもち、専門学校以上で教習できます。
Translate of C hit Tips with Point Decision After Compare Basic, Basic
Difference of Common Gate Way Interface(CGI NetWork Programming) Equivalent
Level It,Make on Biginner's Edition Basic is Prefix of B mean is by Easy
with Biginner's,First Plan Learn Program Starter Support School Use Target
It,C Bigin Expart have API with Professional School Over Learn C .
一方向の評価
C
if(D==0){D=1;}
Basic
IF D=0 Then D=1
表記の注意点は、Cは、等価評価することに、==と2文字使うほか、ステートメントにあたるifに条件枠を数括弧”()”つかい、中括弧”{}”の中には、条件が成立した場合、書かれたコードを実行します。ここでは、変数”D”が”0”と等価の場合、変数”D”に”1”を代入しています。最後の区切りは、Cは何時も”;”セミコロンを使い、セミコロンで区切ってあれば、2行を1行にセミコロン2つを1行で表記できます。
This wrote Statement Funcion Appointment
is C is Equivalent by "==" Dublue
Equal Symbol use else hit Statement "if"
at Terms Trim Border of "()" use
After Middle Class Border "{}"
to Contein Complate Terms in Case,Wrote Program
Code on Execute, This Section "D"
Variable by Equivalent "0" in Case
"D" Variable In put "1",
Last Divition is C by SemiCoron ""
Carrige and 1 Line Addition Program Code
Can Wrote It .
二方向の評価
C
if(D==1){D=0;} else {D=1;}
Basic
IF D=1 Then D=0 ELSE D=1
これは、2巡すれば、変数”D”は、”0”になります。この構文は、変数”D”が”1”の時、変数”D”を”0”に初期化します。二方向評価するにあたり、このコードは、1以下1以上で変数”D”を”1”とします。構文をセミコロンで区切ります。
This is 2 come round by "D" Variable
Equivalent Value is "0" Result,
This Word is "D" Variable is Then
"D" Variable Bigin Setting of "0",
Hit 2 Way Decision less than with more than
by "D" Variable "1" Value,This
String word is Shut SemiCoron .
多方向の評価
C
if(D==0){D=1} else if(D==1){D=0;} else {D=1;}
Basic
IF D=0 Then D=1 Else IF D=1 THen D=0 Else
D=1
3段階の評価は、値”0”と”1”だけです。値が”0”の時、変数”D”を”1”とし、”D”が”1”であれば”0”に反転します、もし、値”0”と”1”以外が代入に値したときは、”0”と”1”以外の場合、変数”D”を”1”に設定後、2巡から、2方向の評価となります。
3 Way Decision is Value "0" and
Value "1" Only, Then Value by "0"
to "D" Variable Reply "1"
Vakye,Then Value by "1" to "0"
Reversed,IF Case is Out Of Value with not
"0" or "1" to "D"
Variable Set Value "1" After Repeat
Count 1 ForWard Run 2 Count After 2 Way Decision
.
繰り返し
C
int D=9;while (D>=0){D--;}
Basic
LET D=9:WHILE(D>=0):D=D-1:WEND
関数のintとLETの違いに注目してください。Cは、プロトタイプ宣言を必要としており、明確なキャストで有っても、型変換はできません。よって、数字型のintに数字変数”D”に”9”から始まり、関数”while”と”WHILE”の大文字と小文字は区別されるケースセンシティブを採用しています。”while”関数により、”D”が”0”と等価かそれ以上の時繰り返し、ベーシックは、同じ様に見えても、違う点は、コロンとセミコロンの使い方に注意してください。ベーシックは、必ず、”WEND”で折り返し点を確認していますが、Cは、関数”WEND”がありませんが、”{}”によって中身を実行すると、Dをデクリメントするにあたり、ここもベーシックと表記の違いを注意してください。Cは、”D−−”と、することで、べーシックの表記では、”D=D−1”としなければなりません。
This Compare Function "int" and
"LET" Defficult Pointment Attention,C
by Declaration Need It,Exactness have by
Cast No Exchange,Therefore Number Value of
"int" Bigin "D" Variable
Start"9" Repeat "-1"
Value Morethan Between Statement Function
"while" by Capital Letter size
Compare Reverse Capital Letter size Each
Difference Adoption "CaseSencitive",Basic
is Look at Something by Diffierence "coron"
and "SemiCoron" Attention use It,Basic
must Repeat End at Need Carrige "WEND"
System Check Compare C Nothing "WEND"
Function by Turn Point,Middle Quart "{}"
in Execute After "D" Variable Value
Hit Decrement,This Location by Attention
Compare Basic and C Difference,C is "D--"
Equivalent Basic must "D=D-1" .
繰り返し2
C
for(int D=9;D>=0;D--){TextOut(hdc,D*16,0,D,1);D--;}
Basic
FOR D=9 TO 0 Step -1:LOCATION 0,0:PRINT D:NEXT
今度は、少し高度なCの繰り返しに挑戦してみました。”int”を”for”の内部で宣言され、変数"D”が”0”以上の間、変数”D”は、一づつ数を減らし”0”の値の後止まります。”{}”の中のコードは、Cの”TextOut”は、ベーシックの”PRINT”に相当するものです、”TextOut”にて、Dの値をカウントダウンします。ベーシックで、デクリメントを行うにあたり、”STEP"パラメーターを”−1”は、1づつ設定しなければなりません。
This Round is Any High Repeat by C Challenged,Declaration
Private Internal Satement Function from "for"
in "int" Function Declaration "D"
Variable,"D" Variable MoreThan
"0" Between by CountDown Result
is LessThan "O" Stop, Middle Quate
"{}" InSide Programming Code is
Development Language "C" by "TextOut"
Function is Equivalent Basic Language "PRINT"
Function Value, Basic Declement Execute "Step"
Parameter "-1" is must Each Setting
.
繰り返し3
C
int D;do{TextOut(hdc,D*16,0,D,sizeof(D));D++;}while(D<10);
Basic
LET D:WHILE(D<10):LOCATION 0,0:PRINT D:D=D+1:WEND
こんどは、Cによる”do”に開始し、テキストアウト関数にて、ハンドル”hdc”と、変数”D”のバイト数を”sizeof”関数でデータ容量を量り、文字数と同じ文字の長さを指定しています。ベーシックは、”LOCATION”関数で”PRINT”の位置が動きません。今度は、Cが”while”で閉じている事が、”WEND”との違いです、変数”D”のインクリメントは必ず必要です。加算しないと、”for”関数と違い、無限ループに陥ります。
This Stage is Development Language by C and
Begin "do" Start ForWard "TextOut"
Function by with "hdc" HANDLE and
Variable "D" Value Count of Byte
by "sizeof" System Call Code,String
Text Length SomeOne,Basic is "LOCATION"
Function Show "PRINT" Function
No Move It,This Round C is Close of "while"
Function,This Thing Compare "WEND"
Difference, "D" Variable Need Inclinement,
This "do" Difficlut "for"
Statement Function and No Count Addition
Value is Endless Loop .
配列と文字列
C
int IdNum[10] ; char Names[25] ; float Coordinate[100][11]
; char Comeon[30]="Yes Go" ;
Basic
DIM IDNUM(10):DIM NAMES$(25):DIM COORDINATE(100,11):DIM
COMEON$(30):LET COMEON$(1)="Y":LET
COMEON$(2)="e":LET COMEON$(3)="s":LET
COMEON$(4)=" ":LET COMEON$(5)="G":LET
COMEON$(6)="o"
Cとベーシックの違いは”char”が1字づつのカウントを”30”回数えるほか、合わせるためには、煩雑です。”COMEON$(1)=”Y” ”と出来るほか、ベーシックの配列変数は、文字数に制限がないので、”COMEON$(1)=”Yes Go””とすることもできます。”float”にて宣言されているのは、ベーシックの”DIM”関数に相当する、2次元配列です。これを”DIM”は、”(100,11)”とします。
C Development Language Difference Basic to
"char" by 1 Count to "30"
Hit Count Else Combain Thing are Bad, "COMEON$(1)="Y"
" Can It, Else Basic is Arregement Variable
is Word Count No Count,This Thing is Can
Easy by "COMEON$(1)="Yes Go""
, Declaration "float" Function
is Doublue Dimention Variable is Arregement,
This is by "DIM" Equivalent "(100,11)"
Decision .
クラスの定義
C Only
Class And_Day {Public: And_Day(int YY,int
MM,int DD);void ShowDay;~And_Day;Private:
int Year,Mounth,Day; }
”〜”チルダにて、宣言後の自作関数を削除します。他のクラスに継承するためのパブリックが設けられています。パブリックは、引数を持つAnd_Day”クラスであり、YYとMMとDDで継承されます。”void”は実行型関数を意味し、”CONST”は、固定値で有る事を意味しています。一つ一つ宣言することもできますが、”int”型は、一つで一斉に定義できます。”int”型は、”Year,Mounth,Day”として宣言できますが、プライベートは、内部変数で使われるので、クラス内部で使われる値なので、他のクラスに干渉関係がありません。実行型の”void”と判定型の”BOOL”と、パラメーター型の”int”があります。主に引数を引かない”void”は、メンバ関数他を、メンバ変数と言います。”return”関数で戻り値を持ち実行後の結果を引数を返します。主に”void”は、戻り値の必要無いグラフィック制御等に使われています。
Destructer Type Tilder Declaration Behind
Make My Function at Deleate,Other Class Inheritance
by "Public:" Install,"Public:"
is Pull Value of Parameter have Exist Class
"And_Day", Variable "YY","MM","DD"
in Inheritance to New Class,"void"
is Execute Function Mean UnderStand,"const"
is Fix Control Value Mean UnderStand,Many
One Can Declartion Each Difference,"int"
Type Fuction is Can All in One Definition,"int"
Type Function is Can Variable "Year","Mounth","Day"
Value by Declartion Execute And Too,"Private:"
Was Inside Used Class Value, Other Class
Relation No Bridge,Execute Type "void"
Type and Reverse and Reverse "BOOL"
Type Value and "int" Type Exsistance,
No Return Value "void" is Member
Function and Other Class Factor Return Value
with Member Variable,"return" Function
have Return Value and Result Execute Pull
Value,Mainning "void" by No Return
Control Graphics Userful .
列挙型
C
enum coloring {Red="Red",Yellow="Yellow",Green="Green",Blue="Blue",Violet="Violet"};void
main(){coloring Favorite; Farvorite=Violet;}
Basic
DIM COLORING$(5):LET COLORING$(1)="Red":LET
COLORING$(2)="Yellow":LET COLORING$(3)="Green":LET
COLORING$(4)="Blue":LET COLORING$(5)="Violet":FAVORITE$=COLORING$(5)
Basic
DIM COLORING$(1,1,1,1,1):LET COLORING$(1,0,0,0,0)="Red":LET
COLORING$(0,1,0,0,0)="Yellow":LET
COLORING$(0,0,1,0,0)="Green":LET
COLORING$(0,0,0,1,0)="Blue":LET
COLORING$(0,0,0,0,1)="Violet":LET
FAVORITE$="COLORING$(0,0,0,0,1)
一個づつの定数で、深い配列が可能です。”enum”は、ベーシックで、”DIM”関数で、DIM A$(1,1,1,1,1)とすることもでき、一定の互換性があります。多次元配列を1までの定数として、複数列挙が可能ですが、本コードは、BasicとCの解釈は変わりません。ベーシックでも列挙はできますが、前のベーシックの方がスマートです。
Many one Can Fix Value with High Arragement,"enum"
is Equivalent Baisc "DIM","DIM"
Function Can "DIM A$(1,1,1,1,1)"
Compatible, This Function Can Many Dimention
Arragement Made List of Variable Value,This
Code Program is Basic and C Development Language
is No Change UnderStand,Basic "DIM"
Function Can Made List of
Value,BackWard Basic by Smart .
ポインタデストラクタ
C
numOne=new int[10];
if (numOne)
{
delete [] numOne;
}
C
GetPointer() *numOne;
numOne = new GetPointer(1,2,3);
int i;
i=numOne->GetPointer();
numOne.delete;
Basic
DIM NUMONE$(100):ERASE NUMONE$
最初のものは、動的に”int”型で10バイト確保し、”if”関数にて”numOne”が否定系でなければ、”delete”関数にて、取得バイト数にかかわらず、”numOne”を削除します。次のものは、ポインタを用いた例です、”numOne”のクラス”GetPointer”を呼び出し、”numOne”のポインタに置き換わります。また、動的に”numOne”に”GetPointer”が取得され、変数”i”を宣言し、”i”に、”numOne”は、”GetPointer”クラスにポインタします。最後に、デストラクタとして、”numOne”が削除されます。
Begin Thing Dynamic "int" Type
Function by 10Byte Get It,"if"
Statement Function by "numOne"
No not at delete No Much Arragement Value,Next
Thing is Use Pointer Exsample,"numOne"
Call Class "GetPointer()" and Replacement
"numOne",Declare Variable Value
"i" withon Pointer "GetPointer()"
Class "numOne" It,Lasted Destractor
delete This "numOne" Pointer.
論理演算
C
if (!hwnd)
{
HWND hwnd;
}
Basic
IF NOT HWND=0 THEN HWND=1
C
BOOL Reversible;
if (Reversible==-1||Reversible==0)
{
delete Reversible;
}
Basic
IF REVERSIBLE=0 THEN REVERSIBLE=-1 ELSE REVERSIBLE=0
IF REVERSIBLE=-1 OR 0 THEN ERESE REVERSIBLE
C
int X,Y,Measure;
BOOL bFlag;
X++;
Y++;
Measure=(X*Y);
LabelBegin:
if (X && Y)
{
bFlag=TRUE;
}
Else
{
bFlag=FALSE;
}
if (hdc)
{
TextOut(hdc,0,0,bFlag,sizeof(bFlag));
}
else
{
HDC hdc;
Goto LabelBegin: ;
}
Basic
LET X=0:LET Y=0:LET MEASURE=0
X=X+:Y=Y+1
*LABELBEGIN
IF X=Y THEN BFLAG=0 ELSE BFLAG=-1
LOCATE 0,0:PRINT BFLAG
GOTO *LABELBEGIN
”NOT”(否定)は、”if”関数にて”hwnd”が空の時、”HWND”ハンドルを、”hwnd”にコピーコントラクスタします。”OR”は”||”で連結され、どちらか、一つ正の時、if
Statement内を”中括弧{}”で囲まれたものを実行します。”BOOL”値は”0”と”−1”の何れかでTUREと、FALSEです。”BOOL”値がある場合”delete”関数で削除されます。”AND”は、”&&”を使って結ばれます。ifの結果がXとYが同じであれば、”bFLAG”にTRUE、それ以外であれば”bFlag”にFALSEを代入します。Basicでは、2変数間の”AND”の指定は必要ありません。”=”で連結します。デバイスコンテキストが存在する場合、座標0,0に、”bFLAG”を表示します。その時、”bFlag”の文字数をsizeof()にて計算します。デバイスコンテキストが無い場合は、HDCコンテキストハンドルをコピーしてラベル”LabelBegin”に移動します。
"Not" by Statement Function "if"
to Empty "hwnd" then "HWND"
Copy Constractor "hwnd" Loaded."Or"
is Linking "||" Deference Only
True to Execute Statement "if"
and "{}" Between,BOOL is "0"
or "-1" at "True" or
"False",Exsist by BOOL is Erase
Value of BOOL by "delete"."And"
is Linking "&&" Used.Result
Same "X","Y" Value to
"bFlag" at "Ture" Else
"False" by Other Value It.Exsit
Window Handle Case is Coordinate 0,0 Value
on Show Display "bFlag",Then Count
Word "bFlag".Nathing DeviceContext
Case is Copy DeviceContext "HDC"
to "hdc" with Return Label "LabelBegin:"
Jump It.Basic is "And" by Bridge
"=" No Use "And"."And"
Linking "=".
********************
InterPagesChaption Link
Beginner's Lessonn (A)
API User Target Laboratory
Basic Archive Lecture
********************
Cを翻訳するにあたって、注意点や、互換点をBasicに比較します。Basicは、CommonGateWayInterfaceほど難しいプログラミングですが、初心者向けに作られているべーシックは、頭文字の意味は、ビギナーのBであり、まず初めにプログラミングを教習するのに、学校などの支援もあり、捕捉されます。Cからは、本格的なアプリケーションプログラミングインターフェイスをもち、専門学校以上で教習できます。
Translate of C hit Tips with Point Decision After Compare Basic, Basic
Difference of Common Gate Way Interface(CGI NetWork Programming) Equivalent
Level It,Make on Biginner's Edition Basic is Prefix of B mean is by Easy
with Biginner's,First Plan Learn Program Starter Support School Use Target
It,C Bigin Expart have API with Professional School Over Learn C .
一方向の評価
C
if(D==0){D=1;}
Basic
IF D=0 Then D=1
表記の注意点は、Cは、等価評価することに、==と2文字使うほか、ステートメントにあたるifに条件枠を数括弧”()”つかい、中括弧”{}”の中には、条件が成立した場合、書かれたコードを実行します。ここでは、変数”D”が”0”と等価の場合、変数”D”に”1”を代入しています。最後の区切りは、Cは何時も”;”セミコロンを使い、セミコロンで区切ってあれば、2行を1行にセミコロン2つを1行で表記できます。
This wrote Statement Funcion Appointment
is C is Equivalent by "==" Dublue
Equal Symbol use else hit Statement "if"
at Terms Trim Border of "()" use
After Middle Class Border "{}"
to Contein Complate Terms in Case,Wrote Program
Code on Execute, This Section "D"
Variable by Equivalent "0" in Case
"D" Variable In put "1",
Last Divition is C by SemiCoron ""
Carrige and 1 Line Addition Program Code
Can Wrote It .
二方向の評価
C
if(D==1){D=0;} else {D=1;}
Basic
IF D=1 Then D=0 ELSE D=1
これは、2巡すれば、変数”D”は、”0”になります。この構文は、変数”D”が”1”の時、変数”D”を”0”に初期化します。二方向評価するにあたり、このコードは、1以下1以上で変数”D”を”1”とします。構文をセミコロンで区切ります。
This is 2 come round by "D" Variable
Equivalent Value is "0" Result,
This Word is "D" Variable is Then
"D" Variable Bigin Setting of "0",
Hit 2 Way Decision less than with more than
by "D" Variable "1" Value,This
String word is Shut SemiCoron .
多方向の評価
C
if(D==0){D=1} else if(D==1){D=0;} else {D=1;}
Basic
IF D=0 Then D=1 Else IF D=1 THen D=0 Else
D=1
3段階の評価は、値”0”と”1”だけです。値が”0”の時、変数”D”を”1”とし、”D”が”1”であれば”0”に反転します、もし、値”0”と”1”以外が代入に値したときは、”0”と”1”以外の場合、変数”D”を”1”に設定後、2巡から、2方向の評価となります。
3 Way Decision is Value "0" and
Value "1" Only, Then Value by "0"
to "D" Variable Reply "1"
Vakye,Then Value by "1" to "0"
Reversed,IF Case is Out Of Value with not
"0" or "1" to "D"
Variable Set Value "1" After Repeat
Count 1 ForWard Run 2 Count After 2 Way Decision
.
繰り返し
C
int D=9;while (D>=0){D--;}
Basic
LET D=9:WHILE(D>=0):D=D-1:WEND
関数のintとLETの違いに注目してください。Cは、プロトタイプ宣言を必要としており、明確なキャストで有っても、型変換はできません。よって、数字型のintに数字変数”D”に”9”から始まり、関数”while”と”WHILE”の大文字と小文字は区別されるケースセンシティブを採用しています。”while”関数により、”D”が”0”と等価かそれ以上の時繰り返し、ベーシックは、同じ様に見えても、違う点は、コロンとセミコロンの使い方に注意してください。ベーシックは、必ず、”WEND”で折り返し点を確認していますが、Cは、関数”WEND”がありませんが、”{}”によって中身を実行すると、Dをデクリメントするにあたり、ここもベーシックと表記の違いを注意してください。Cは、”D−−”と、することで、べーシックの表記では、”D=D−1”としなければなりません。
This Compare Function "int" and
"LET" Defficult Pointment Attention,C
by Declaration Need It,Exactness have by
Cast No Exchange,Therefore Number Value of
"int" Bigin "D" Variable
Start"9" Repeat "-1"
Value Morethan Between Statement Function
"while" by Capital Letter size
Compare Reverse Capital Letter size Each
Difference Adoption "CaseSencitive",Basic
is Look at Something by Diffierence "coron"
and "SemiCoron" Attention use It,Basic
must Repeat End at Need Carrige "WEND"
System Check Compare C Nothing "WEND"
Function by Turn Point,Middle Quart "{}"
in Execute After "D" Variable Value
Hit Decrement,This Location by Attention
Compare Basic and C Difference,C is "D--"
Equivalent Basic must "D=D-1" .
繰り返し2
C
for(int D=9;D>=0;D--){TextOut(hdc,D*16,0,D,1);D--;}
Basic
FOR D=9 TO 0 Step -1:LOCATION 0,0:PRINT D:NEXT
今度は、少し高度なCの繰り返しに挑戦してみました。”int”を”for”の内部で宣言され、変数"D”が”0”以上の間、変数”D”は、一づつ数を減らし”0”の値の後止まります。”{}”の中のコードは、Cの”TextOut”は、ベーシックの”PRINT”に相当するものです、”TextOut”にて、Dの値をカウントダウンします。ベーシックで、デクリメントを行うにあたり、”STEP"パラメーターを”−1”は、1づつ設定しなければなりません。
This Round is Any High Repeat by C Challenged,Declaration
Private Internal Satement Function from "for"
in "int" Function Declaration "D"
Variable,"D" Variable MoreThan
"0" Between by CountDown Result
is LessThan "O" Stop, Middle Quate
"{}" InSide Programming Code is
Development Language "C" by "TextOut"
Function is Equivalent Basic Language "PRINT"
Function Value, Basic Declement Execute "Step"
Parameter "-1" is must Each Setting
.
繰り返し3
C
int D;do{TextOut(hdc,D*16,0,D,sizeof(D));D++;}while(D<10);
Basic
LET D:WHILE(D<10):LOCATION 0,0:PRINT D:D=D+1:WEND
こんどは、Cによる”do”に開始し、テキストアウト関数にて、ハンドル”hdc”と、変数”D”のバイト数を”sizeof”関数でデータ容量を量り、文字数と同じ文字の長さを指定しています。ベーシックは、”LOCATION”関数で”PRINT”の位置が動きません。今度は、Cが”while”で閉じている事が、”WEND”との違いです、変数”D”のインクリメントは必ず必要です。加算しないと、”for”関数と違い、無限ループに陥ります。
This Stage is Development Language by C and
Begin "do" Start ForWard "TextOut"
Function by with "hdc" HANDLE and
Variable "D" Value Count of Byte
by "sizeof" System Call Code,String
Text Length SomeOne,Basic is "LOCATION"
Function Show "PRINT" Function
No Move It,This Round C is Close of "while"
Function,This Thing Compare "WEND"
Difference, "D" Variable Need Inclinement,
This "do" Difficlut "for"
Statement Function and No Count Addition
Value is Endless Loop .
配列と文字列
C
int IdNum[10] ; char Names[25] ; float Coordinate[100][11]
; char Comeon[30]="Yes Go" ;
Basic
DIM IDNUM(10):DIM NAMES$(25):DIM COORDINATE(100,11):DIM
COMEON$(30):LET COMEON$(1)="Y":LET
COMEON$(2)="e":LET COMEON$(3)="s":LET
COMEON$(4)=" ":LET COMEON$(5)="G":LET
COMEON$(6)="o"
Cとベーシックの違いは”char”が1字づつのカウントを”30”回数えるほか、合わせるためには、煩雑です。”COMEON$(1)=”Y” ”と出来るほか、ベーシックの配列変数は、文字数に制限がないので、”COMEON$(1)=”Yes Go””とすることもできます。”float”にて宣言されているのは、ベーシックの”DIM”関数に相当する、2次元配列です。これを”DIM”は、”(100,11)”とします。
C Development Language Difference Basic to
"char" by 1 Count to "30"
Hit Count Else Combain Thing are Bad, "COMEON$(1)="Y"
" Can It, Else Basic is Arregement Variable
is Word Count No Count,This Thing is Can
Easy by "COMEON$(1)="Yes Go""
, Declaration "float" Function
is Doublue Dimention Variable is Arregement,
This is by "DIM" Equivalent "(100,11)"
Decision .
クラスの定義
C Only
Class And_Day {Public: And_Day(int YY,int
MM,int DD);void ShowDay;~And_Day;Private:
int Year,Mounth,Day; }
”〜”チルダにて、宣言後の自作関数を削除します。他のクラスに継承するためのパブリックが設けられています。パブリックは、引数を持つAnd_Day”クラスであり、YYとMMとDDで継承されます。”void”は実行型関数を意味し、”CONST”は、固定値で有る事を意味しています。一つ一つ宣言することもできますが、”int”型は、一つで一斉に定義できます。”int”型は、”Year,Mounth,Day”として宣言できますが、プライベートは、内部変数で使われるので、クラス内部で使われる値なので、他のクラスに干渉関係がありません。実行型の”void”と判定型の”BOOL”と、パラメーター型の”int”があります。主に引数を引かない”void”は、メンバ関数他を、メンバ変数と言います。”return”関数で戻り値を持ち実行後の結果を引数を返します。主に”void”は、戻り値の必要無いグラフィック制御等に使われています。
Destructer Type Tilder Declaration Behind
Make My Function at Deleate,Other Class Inheritance
by "Public:" Install,"Public:"
is Pull Value of Parameter have Exist Class
"And_Day", Variable "YY","MM","DD"
in Inheritance to New Class,"void"
is Execute Function Mean UnderStand,"const"
is Fix Control Value Mean UnderStand,Many
One Can Declartion Each Difference,"int"
Type Fuction is Can All in One Definition,"int"
Type Function is Can Variable "Year","Mounth","Day"
Value by Declartion Execute And Too,"Private:"
Was Inside Used Class Value, Other Class
Relation No Bridge,Execute Type "void"
Type and Reverse and Reverse "BOOL"
Type Value and "int" Type Exsistance,
No Return Value "void" is Member
Function and Other Class Factor Return Value
with Member Variable,"return" Function
have Return Value and Result Execute Pull
Value,Mainning "void" by No Return
Control Graphics Userful .
列挙型
C
enum coloring {Red="Red",Yellow="Yellow",Green="Green",Blue="Blue",Violet="Violet"};void
main(){coloring Favorite; Farvorite=Violet;}
Basic
DIM COLORING$(5):LET COLORING$(1)="Red":LET
COLORING$(2)="Yellow":LET COLORING$(3)="Green":LET
COLORING$(4)="Blue":LET COLORING$(5)="Violet":FAVORITE$=COLORING$(5)
Basic
DIM COLORING$(1,1,1,1,1):LET COLORING$(1,0,0,0,0)="Red":LET
COLORING$(0,1,0,0,0)="Yellow":LET
COLORING$(0,0,1,0,0)="Green":LET
COLORING$(0,0,0,1,0)="Blue":LET
COLORING$(0,0,0,0,1)="Violet":LET
FAVORITE$="COLORING$(0,0,0,0,1)
一個づつの定数で、深い配列が可能です。”enum”は、ベーシックで、”DIM”関数で、DIM A$(1,1,1,1,1)とすることもでき、一定の互換性があります。多次元配列を1までの定数として、複数列挙が可能ですが、本コードは、BasicとCの解釈は変わりません。ベーシックでも列挙はできますが、前のベーシックの方がスマートです。
Many one Can Fix Value with High Arragement,"enum"
is Equivalent Baisc "DIM","DIM"
Function Can "DIM A$(1,1,1,1,1)"
Compatible, This Function Can Many Dimention
Arragement Made List of Variable Value,This
Code Program is Basic and C Development Language
is No Change UnderStand,Basic "DIM"
Function Can Made List of
Value,BackWard Basic by Smart .
ポインタデストラクタ
C
numOne=new int[10];
if (numOne)
{
delete [] numOne;
}
C
GetPointer() *numOne;
numOne = new GetPointer(1,2,3);
int i;
i=numOne->GetPointer();
numOne.delete;
Basic
DIM NUMONE$(100):ERASE NUMONE$
最初のものは、動的に”int”型で10バイト確保し、”if”関数にて”numOne”が否定系でなければ、”delete”関数にて、取得バイト数にかかわらず、”numOne”を削除します。次のものは、ポインタを用いた例です、”numOne”のクラス”GetPointer”を呼び出し、”numOne”のポインタに置き換わります。また、動的に”numOne”に”GetPointer”が取得され、変数”i”を宣言し、”i”に、”numOne”は、”GetPointer”クラスにポインタします。最後に、デストラクタとして、”numOne”が削除されます。
Begin Thing Dynamic "int" Type
Function by 10Byte Get It,"if"
Statement Function by "numOne"
No not at delete No Much Arragement Value,Next
Thing is Use Pointer Exsample,"numOne"
Call Class "GetPointer()" and Replacement
"numOne",Declare Variable Value
"i" withon Pointer "GetPointer()"
Class "numOne" It,Lasted Destractor
delete This "numOne" Pointer.
論理演算
C
if (!hwnd)
{
HWND hwnd;
}
Basic
IF NOT HWND=0 THEN HWND=1
C
BOOL Reversible;
if (Reversible==-1||Reversible==0)
{
delete Reversible;
}
Basic
IF REVERSIBLE=0 THEN REVERSIBLE=-1 ELSE REVERSIBLE=0
IF REVERSIBLE=-1 OR 0 THEN ERESE REVERSIBLE
C
int X,Y,Measure;
BOOL bFlag;
X++;
Y++;
Measure=(X*Y);
LabelBegin:
if (X && Y)
{
bFlag=TRUE;
}
Else
{
bFlag=FALSE;
}
if (hdc)
{
TextOut(hdc,0,0,bFlag,sizeof(bFlag));
}
else
{
HDC hdc;
Goto LabelBegin: ;
}
Basic
LET X=0:LET Y=0:LET MEASURE=0
X=X+:Y=Y+1
*LABELBEGIN
IF X=Y THEN BFLAG=0 ELSE BFLAG=-1
LOCATE 0,0:PRINT BFLAG
GOTO *LABELBEGIN
”NOT”(否定)は、”if”関数にて”hwnd”が空の時、”HWND”ハンドルを、”hwnd”にコピーコントラクスタします。”OR”は”||”で連結され、どちらか、一つ正の時、if
Statement内を”中括弧{}”で囲まれたものを実行します。”BOOL”値は”0”と”−1”の何れかでTUREと、FALSEです。”BOOL”値がある場合”delete”関数で削除されます。”AND”は、”&&”を使って結ばれます。ifの結果がXとYが同じであれば、”bFLAG”にTRUE、それ以外であれば”bFlag”にFALSEを代入します。Basicでは、2変数間の”AND”の指定は必要ありません。”=”で連結します。デバイスコンテキストが存在する場合、座標0,0に、”bFLAG”を表示します。その時、”bFlag”の文字数をsizeof()にて計算します。デバイスコンテキストが無い場合は、HDCコンテキストハンドルをコピーしてラベル”LabelBegin”に移動します。
"Not" by Statement Function "if"
to Empty "hwnd" then "HWND"
Copy Constractor "hwnd" Loaded."Or"
is Linking "||" Deference Only
True to Execute Statement "if"
and "{}" Between,BOOL is "0"
or "-1" at "True" or
"False",Exsist by BOOL is Erase
Value of BOOL by "delete"."And"
is Linking "&&" Used.Result
Same "X","Y" Value to
"bFlag" at "Ture" Else
"False" by Other Value It.Exsit
Window Handle Case is Coordinate 0,0 Value
on Show Display "bFlag",Then Count
Word "bFlag".Nathing DeviceContext
Case is Copy DeviceContext "HDC"
to "hdc" with Return Label "LabelBegin:"
Jump It.Basic is "And" by Bridge
"=" No Use "And"."And"
Linking "=".
Num. by 000-0006
メッセージループの課題研究のサクセスファイル、MultiDocumentInterfaceで動作確認済み、ソフトは、Test3.exeをダウンロード
宣言の確認と、型変換の無許可の検定済ファイル。これは、メッセージループの完成品。リリースソフトで動作を確認できます。
デバッカとビルド済み合格プログラム VisualC++
ビルドインプロジェクトリリースバージョン1.0
ファイルはリリースソフトNumber.01(Test3.exe)
/ test3.pch は、プリコンパイル済みヘッダーになります。
// stdafx.obj にはプリコンパイル済み方情報が含まれます。
#include "stdafx.h"
char szTitle[100];char szWindowClass[100];
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;
HINSTANCE*hInstance;
bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return FALSE;}
ShowWindow(hWnd,nCmdShow);return TRUE;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;char szHello[100];
switch(message)
{case 273:;wmEvent=(HIWORD(wParam));
case 15:
hdc=BeginPaint(hWnd,&ps);
DrawText(hdc,NULL,100,NULL,DT_CENTER);
EndPaint(hWnd,&ps);break;
default: return DefWindowProc(hWnd,message,wParam,lParam);
return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case 272: return TRUE;
}return FALSE;}}
********************
Num. by 000-0001
C(API Reference)Dai's C Laboratory Copy Right 2017.04-
WndProc->((HWND)hwnd,(UINT)message,(WPARAM)wParam,(LPARAM)lParam);
if (message.wParam)
{
wLength=(int)lstrlen(message.wParam)*8;
hLength=(int)lstrlen(message.wParam)*16;
countWord=(int)lstrlen(message.wParam);
SetRect(lprect,0,0,wLength,hLength);
DrawText(hdc,message.wParam,countWord,lprect,NULL);
}
else
{
massege &wParam;
if (!wParam)
{
WPARAM *wParam;
wParam=new Char[100];
}
}
Num. by 000-0001
今回は、WndProc(ウインドウプロシージャ)に対して、ポインタを指定します。”hwnd”ウインドウハンドルは、(HWND)キャストされています。メッセージは、キーボードストロークで整数値でキャストする2バイトの(UINT)キャストです。WPARAMとLPARAMパラメーターを引用します。UINTの条件が、”wParam”にオーバーライドされていない時、elseに、WPARAMのポインタ(*)に”wParam”を指定して、wParamにnew演算子にてキーボードストロークを100回分のキーボード入力をします。ifにて、”massage.wParam”にオーバーライドが、真で有れば文字の幅(8ピクセル)、文字の高さ(16ピクセル)、文字の数を、wLength,hLength,countWord各lstrenにて求めます。SetRectにて四角形の座標を入力して、レクトの形に合わせて、自動で文字幅を合わせられます。DrawText関数にて、事前に設定したパラメーターを入力します。
This Appointment is Pointer to WndProc withon Cast Settings,message is
Get Key Borad Stroke Matrix 16Bit Cast of UINT,Call WPARAM and LPARAM,This
Terms by No OverRide with Execute Then Though and else in WPARAM Pointer
is (*) Marks with "wParam" on That by "new" Function
and "Char" of KeyBorad Stroke Input Infometion Count to 100,User
Reply Typing This Function ask it,if Statement by that "message.wParam"
to OverRide is case in True as Word Width(x8),Word Height(x16),Word Count(Equivalent),But
Variable(wLength and hLength and countWord) Execute in case by API (lstren)
to Result Decision,Square of Rect In Put Coordinate Infomation,Automation
Font Word Size at Fit Word,Behind Thing Settings Paramater InPut to DrawText(API).
C(API Reference)Dai's C Laboratory Copy Right 2017.04-
Num. by 000-0002
//PromptType Declaration
HANDLE* hFile;
HANDLE CreateFile
(
LPCTSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES
lpSecurityAttributes,
DWORD dwCreationDistribution,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile
);
//Parameter Settings
LPCTSTR lpFileName="NewSequential_Read_Write";
DWORD dwDesiredAccess=(GENERIC_READ|GENERIC_WRITE);
DWORD dwShareMode=(FILE_SHARE_WRITE);
LPSECURITY lpSecurityAttributes=NULL;
DWORD dwCreationDistribution=(CREATE_ALWAYS);
DWORD dwFlagsAndAttributes=(FILE_FLAG_SEQUENTIAL_SCAN);
HANDLEA hTemplateFile=NULL;
//CreateFile Execute
hFile=CreateFile
(
lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,
dwCreationDistribution,dwFlagsAndAttributes,hTemplateFile
);
if(!ar)
{
CArchive * ar;
CArchive &ar;
}
lpBuffer<<LPCVOID<<CArchive.ar[]
nNumberOfBytesWrite=(DWORD) sizeof(lpBuffer)
BOOL WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesWrite,
LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped);
if(!lpBuffer)
{
lpBuffer<<LPCVIOD<<CArchive &ar[]
}
lpNmuberOfByteRead=(LPWORD)sizeof(lpBuffer);
BOOL ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfByteToRead,
LPDWORD lpNumberOfByteRead,LPOVERLAPPED lpOverlapped);
ar[].delete;
hFile[].delete
Num. by 000-0002
ファイルのオープンをする論文です。主にこのソースは、クリエイトファイルのプロトタイプ宣言を行っている他、全ての数値にパラメーターを代入しています。実行される直前に変数が空になりません。アーカイブを使ってストリーミングをしていない場合は、フレームワークからCArchiveにarにポインタし、これを、lpBufferにLPCVIOD形式で、CArchiveからストリーミングされます。arは参照されます。ストリーミング後のlpBufferにsizeofを指定して、ファイルサイズを計算しています。<<コマンドで配列を一斉に読み書きするため、配列子の[ ]は省略されません。最後にarとhFileにdeleteでデストラクタでポインタを最後に削除しておくようにします。
Decision Report of File Open,Main Source is PromtType Declare by Execute
else All Value to In Put,No Empty Case Execute is Behind Now.No Use Streaming
Case is by Pointer CArchive in Frame Work It.But lpBuffer is Type LPVOID
Change Format,Reference Many Place ar,This Open File is sizeof Target lpBuffer
in Total Size.Streaming Command is Execute << by at the same time,But
Arregement "[ ] " is No Skip.Last is ar and hFile at Desstruct
Release of Memory by delete and Mean.
C(API Reference)Dai's C Laboratory Copy Right 2017.04-
Num. by 000-0003
MSG*message;
[module(name=method1)];
struct method1
{
[switch_type(int), switch_is(message)] union members;
{
[case (256),int];
{
if(GetKeyState(17)<0)
{lstrcpy(ctrl,"ON");}
else{lstrcpy(ctrl,"OFF");}
if(GetKeyState(16)<0)
{lstrcpy(shift,"ON");}
else{lstrcpy(shift,"OFF");}
if(GetKeyState(20)<0)
{lstrcpy(caps,"ON");}
else{lstrcpy(caps,"OFF");}
wsprintf(scripts,"MessageCord= %0x , Ctrl = s% , Shift = s% , Caps= s%" , lpMsg , ctrl , shift , caps ) ;
InvalidateRect(hWnd,NULL,TRUE);
break;
}
[case (15),int];
{
hWnd=BeginPaint(hWnd,&ps);
lstrcat(scripts,lpMsg);
TextOut(hWnd,0,0,scripts,lstrlen(scripts));
EndPaint(hWnd,&ps);
break;
}
[case (2),int];
{
PostQuitMessage(0);
};
TranslateMessage(MSG message);
};};
文字コードとドグルの判定により、押下の判定と、文字コードをscriptsにwsprintfにて初期化文字列したものに加え、wParam.messageをMSGとコピーコントラクスタを置き、、*ポインタで、lpMsgを宣言します。ウインドウが描画されるとき、WM_PAINTが実行され、hWnd、ウインドウハンドルに、架空のペイントストラクトに参照して、連動して書き換えます。開始描画が宣言されたあと、scriptsと、lpMsgを追加合成し、実際に、文字コードが、入力した文字に変換されるように翻訳(Translate)を行います。TextOutにて、hWndハンドルに加え、座標を0,0に縦横をセットし、scriptsと、scripts文字数を記述し、TextOutで文字列が出力されます。開始したのは、終わりの宣言をもって、描画を終え、return
0 ; とします。この点でエラーは無いということです。主に此のプログラムは、GetKeyboardStateで入力されたのを、ドグルされていれば、0(Fault:偽)、−1(True:真)と成る、BOOL判定です。是を、GetKeyboardStateと比較することによって、押下されているか判定し、また、システムキー以外の文字位置の場合は、Aであれば文字コードは、其れの位置に相当するソフトキーボードの&H0041であり¥であれば&HFFE5と成ります。ソフトキーボードは、IMEパットで読み出せます。文字コードは、4桁の16進数ですから0からFまであります。また、Translate後の文字コードは、字に変換されるので、&H0041であれば、「A」と同じ文字に直されます。閉じるボタンを押したときは、PostQuitMessage(0);にて、終了処理を取ります。テキストアウトは、インバリデートレクトにて、hWndのハンドルで開始描画し、長方形の取得を、NULLは、領域全体に対して、次のTRUEは、画面を消去して、文字列を描画します。
User's Typing This Program of Terms Hit Out with Push Down,Word Cord Hit
Down in Result,Foundation Text Format Insert Variable Value on Conteiner
by wsprintf.Copy Construct Copy Template to MSG by wParam.message,Declaration
*Pointer to lpMsg.This Program is in Drawing Then Execute WM_PAINT,Add
hWnd,WindowHandle and Empty PaintStruct Reference Linking Wote,That Same
Times is Begin Paint Drawing Text View of Show Display,scripts[80] Addition
Translate Key Cord x0041 at "A".Text Drawing Coordinate Horizontal,Vertical
is 0 and 0 Start Setting,with scripts,Addition Count Out Number,Begin and
End Drawing is Result return 0;This is No Mistake Result 0.Mainning This
Program is Type and Type by GetKeyboardState That Thing Typed Result Hit
Down Switch On is Fault(0),True(-1) and Bool Hit Count,Type by Relation
Switch up as Same Thing,Through No System key Hit Down,Passenger No System
key is Character "A" is x0041(&H0041) Translate "A"
Type Word Changes,Show Soft Key Board Reference IME - Pad by Information,\
is xFFE5 is 2Byte Character.Close Window and End Window by PostQuitMessage(0);
with Destroy Window.InvalidateRect Coordinate Full Screen Clear with All
Vector Drawing by NULL and TRUE with hWnd Handle.
Num. by 000-0004
ウインドウプロシージャ更新版、動作確認済み雛形
test5.exeダウンロード400KB以内のソースコード
こちらのものは、マイクロソフト”.NET”動作可能修正済コード。主に、メッセージループの間に、WCEXを定義しないことで動作可能とした。全てのコマンドは、スルーされるよって雛形のみの動作を確認している
test5.cpp
********************
WNDCLASSEX wcex;
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=CS_HREDRAW | CS_VERDRAW | CS_DBLCLKS;
wcex.lpfnWndProc=(WNDPROC)WndProc;
wcex.cbClsExtra=0;
wcex.WndExtra=0;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackgrpund=(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMNenuName=NULL;
wcex.lpszClassName="ModelAPP";
wcex.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
RegisterClassEx(&wcwex);
hWnd=CreateWindow(wcex.lpszClassName,WS_OVERLAPPEDWINDOW,CW_USERDEFAULT,CW_USERDEFAULT,CW_USERDEFAULT,CW_USERDEFAULT,NULL,NULL,hInstance,NULL);
LRESULT CALLBACK MyProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;
bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return FALSE;}
ShowWindow(hWnd,nCmdShow);return TRUE;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;
switch(message)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
MessageBox(hWnd,"HelloWorld","title",MB_OK);
SetBkMode(hdc,OPAQUE);
SetTextColor(hdc,RGB(255,128,128));
SetBkColor(hdc,RGB(0,0,0));
TextOut(hdc,0,0,"HelloWorld",lstrlen("HelloWorld"));
screct.left=0;
screct.top=0;
screct.right=640;
screct.bottom=480;
DrawTextEx(hdc,"指数は幾つですか",100,&screct,DT_CENTER,NULL);
EndPaint(hWnd,&ps);return 0;
case WM_CREATE:
hDC=GetDC(hwnd);
GetTextExtentPoint32(hdc,"HelloWorld",10,NULL);
ReleaseDC(hWnd,hdc);
return 0;
TextOut(hdc,0,0,"HelloWorld",10);
case WM_COMMAND:;wmEvent=(HIWORD(wParam));
default: return DefWindowProc(hWnd,message,wParam,lParam);
return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case WM_INITDIALOG: return TRUE;
}return FALSE;}}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}
stdafx.cpp
********************
#include "stdafx.h"
LRESULT CALLBACK MyProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
bool nCmdShow=0;
bool InitInstance(bool HINSTANCE,bool nCmdShow);
{
if(!hWnd){return FALSE;}
ShowWindow(hWnd,nCmdShow);return TRUE;
}
int wmEvent ; PAINTSTRUCT ps;HDC hdc;
switch(message)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
MessageBox(hWnd,"HelloWorld","title",MB_OK);
SetBkMode(hdc,OPAQUE);
SetTextColor(hdc,RGB(255,128,128));
SetBkColor(hdc,RGB(0,0,0));
TextOut(hdc,0,0,"HelloWorld",lstrlen("HelloWorld"));
DrawTextEx(hdc,"指数は幾つですか",100,NULL,DT_CENTER,NULL);
EndPaint(hWnd,&ps);return 0;
case WM_CREATE:
SetTextColor(hdc,RGB(255,128,128));
TextOut(hdc,0,0,"HelloWorld",10);
case WM_COMMAND:;wmEvent=(HIWORD(wParam));
default: return DefWindowProc(hWnd,message,wParam,lParam);
return 0;}
LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
{switch(message)
{
case WM_INITDIALOG: return TRUE;
}return FALSE;}}