পূর্বনির্ধারিত টাইপ এবং ভেরিয়েবল

সম্পাদনা

ভেরিয়েবলের ক্ষেত্রে, সি ভাষার নিয়ম প্রযোজ্য। ভেরিয়েবলগুলিকে প্রথমে ধারাবাহিকভাবে উল্লেখ করে ঘোষণা করতে হবে: ভেরিয়েবলের টাইপ, নাম এবং সেমিকোলন। আপনি একটি সেমিকোলন দ্বারা পৃথক করে একবারে একটি প্রদত্ত প্রকারের আরও ভেরিয়েবল ঘোষণা করতে পারেন, আপনি তাদের প্রাথমিক মান নির্ধারণ করতে পারেন, উদাহরণস্বরূপ: int a, b = 10, c; সবচেয়ে জনপ্রিয় ভেরিয়েবল হল : int - পূর্ণসংখ্যা, float - ফ্লোটিং পয়েন্ট, STRING - বেসিক সি-তে ব্যবহৃত একটি বিশেষ প্রকার যা পাঠ্য সঞ্চয় করতে ব্যবহৃত সর্বাধিক দৈর্ঘ্য STRLEN এর একটি স্ট্রিং৷
বহিরাগত ফাংশন ঘোষণা করা ভেরিয়েবল, যেমন একটি প্রোগ্রামের শুরুতে, একটি বিশ্বব্যাপী সুযোগ থাকে এবং প্রোগ্রামের যে কোনো জায়গায় দৃশ্যমান হয় (যদি না সেগুলি একই নামের স্থানীয় ভেরিয়েবল দ্বারা ওভাররাইড করা হয়)। প্রোগ্রাম ব্লকে ঘোষিত স্থানীয় ভেরিয়েবল, যেগুলি সি-তে কোঁকড়া বন্ধনীতে আবদ্ধ, শুধুমাত্র একটি প্রদত্ত ব্লকে পাওয়া যায়। বেসিক বিবৃতি যা লুপ, ফাংশন/প্রক্রিয়া, বা শর্তসাপেক্ষ বিবৃতি তৈরি করে, স্বয়ংক্রিয়ভাবে প্রোগ্রাম ব্লক তৈরি করে।
BasicC নীচে বর্ণিত ভেরিয়েবল, ধ্রুবক এবং প্রকারগুলি পূর্বনির্ধারিত করে।

সংজ্ঞা: FILE * BASFILE = NULL;
FILE * টাইপ ভেরিয়েবল ফাইল হ্যান্ডলিং কমান্ড দ্বারা ব্যবহৃত।

সংজ্ঞা: #define STRLEN 255
ধ্রুবকটি ডিফল্টরূপে 255 এ সেট করা থাকে, যার অর্থ স্ট্রিং '\ 0' এর শেষ ছাড়াই STRING প্রকারের স্ট্রিংগুলির সর্বাধিক দৈর্ঘ্য, বর্ধিত মোডে $ (স্ট্রিংয়ের বিভাগটি দেখুন), পাঠ্যের দৈর্ঘ্য অতিক্রম করা উচিত নয় STRLEN-1, যদি আপনি বেসিক কমান্ড সহ স্ট্রিংগুলিতে কাজ করেন তবে এটি ঘটবে না। এই মানটি পরিবর্তন করা যেতে পারে, উদাহরণস্বরূপ, বেসিক লাইব্রেরি সংযুক্ত করার আগে #define STRLEN L কমান্ড প্রবেশ করে এবং L-এর জায়গায় একটি নতুন মান প্রবেশ করে।

সংজ্ঞা: typedef char STRING [STRLEN + 1];
STRLEN (+1) দৈর্ঘ্যের এক ধরনের স্ট্রিং ভেরিয়েবল। স্ট্রিং ভেরিয়েবলের জন্য এই ধরনের ব্যবহার করার পরামর্শ দেওয়া হয়। দ্রষ্টব্য: C ++ এ পাওয়া স্ট্রিং এবং মৌলিক_স্ট্রিং ক্লাসের সাথে বিভ্রান্ত হবেন না।

সংজ্ঞা: STRING STRING $;
কিছু মৌলিক কমান্ড দ্বারা ব্যবহৃত STRING সহায়ক ভেরিয়েবল।

সংজ্ঞা: double VALUE;
ডবল টাইপের সহায়ক ভেরিয়েবল।

BasicSDL অতিরিক্ত সংজ্ঞা প্রদান করে, যা অন্য বিভাগে কভার করা হয়েছে।

কার্য ও পদ্ধতি

সম্পাদনা

প্রোগ্রামের মূল ফাংশনের (কমান্ড ব্লক) শুরু যা একেবারে শুরুতে বলা হয়, অর্থাৎ প্রোগ্রামের এক্সিকিউটেবল অংশের শুরু। আমরা সবকিছু বড় অক্ষরে লিখি। C-তে int main (int argc, char * argv []) { এর সমতুল্য।

অনুষ্ঠানের মূল অংশের সমাপ্তি। সি-তে সমতুল্য}

একটি ফাংশনের সংজ্ঞা নির্দেশ করে যা ডবল টাইপের একটি মান প্রদান করে। সি-তে দ্বিগুণ হিসাবে একই।

মানে একটি ফাংশনের সংজ্ঞা যা Func-এর পরে তালিকাভুক্ত যেকোনো ধরনের মান প্রদান করে। কমান্ডটি শুধুমাত্র একটি ফাংশনের সংজ্ঞা চিহ্নিত করার জন্য কাজ করে এবং C দৃষ্টিকোণ থেকে কিছু বোঝায় না, এটি প্রাক-সংকলন পর্যায়ে মুছে ফেলা হয়, এটি ব্যবহার করার কোন প্রয়োজন নেই।

নির্দেশাবলীর একটি স্ট্রিং (ব্লক) এর শুরু। একইভাবে {C.

এটি একটি ফাংশনের জন্য কমান্ডের একটি ব্লকের (সি তে যৌগিক কমান্ড বলা হয়) এর শুরু চিহ্নিত করে। Begin এবং {C-তে একই রকম।

একটি ফাংশন কমান্ড ব্লকের শেষ নির্দেশ করে, অর্থাৎ ফাংশনের সংজ্ঞার শেষ। সি এর মতো}

ফাংশন থেকে প্রস্থান করুন এবং X এর মান দিন। আমরা শেষে সেমিকোলন ব্যবহার করি না। C-তে ফেরত X; এর মত।

Procedure বা Sub

সম্পাদনা

একটি পদ্ধতির সংজ্ঞা (সাবরুটিন), বা "ফাংশন" যা কিছুই ফেরত দেয় না। সি-তে অকার্যকর হিসাবে একই।

EndProc বা EndSub

সম্পাদনা

পদ্ধতির সংজ্ঞা শেষ। সি এর মতো}

একটি ফাংশন বা পদ্ধতি কল করার সময়, আমরা C এর মতো বন্ধনী এবং একটি সেমিকোলন ব্যবহার করি।

উদাহরণ:

#include "Basic.h"
Function mnoz(float a, float b) Def
  Print a $ "*" _ b $ "=" );
  Return(a*b)
EndFunc
Func int dodaj(int a, int b)
Def
  Print a $ "+" _ b $ "=" );
  Return(a+b)
EndFunc
Procedure PISZ(int a, int b)
Begin
  Print dodaj(mnoz(a,b),dodaj(a,b)) NL
EndProc
Sub ZAKONCZ()
Begin
  Print$ "I Koniec!" NL
EndSub
MAIN
  PISZ(2,2); ZAKONCZ();
ENDMAIN

একটি লুপ বা ব্লক থেকে প্রস্থান করুন। C-তে break; এর মতই।

লুপের শুরুতে পরবর্তী পুনরাবৃত্তিতে সরানো হচ্ছে। C-তে continue; এর মতই।

অগণিত চক্র. একই do {...} while (1); সি এর মত।
BasicSDL-এ, লুপ ইভেন্টগুলি পড়ে এবং শেষ হয় যখন Quit <> 0: do {... GetSDLEvents ();} যখন (! প্রস্থান);

For(I,P,K) ... Next

সম্পাদনা

সে ভেরিয়েবল I এর মধ্যে P এর প্রাথমিক মান রাখে এবং লুপের প্রতিটি রানে এটি 1 দ্বারা বৃদ্ধি করে। লুপটি কার্যকর করা হয় যতক্ষণ না আমি K-এর মান পৌঁছায়, অর্থাৎ K-P + 1 বার।এটি C-তে do{ ... }for(I=P;I<=K;++I){ ... } এর মতো কাজ করে। ভেরিয়েবলের উপর আরো জটিল অপারেশনের প্রয়োজন হলে, সি সিনট্যাক্স ব্যবহার করা উচিত। এখানে manual C-এ তথ্যের জন্য একটি ছোট নোট রয়েছে। "I ++" এর পরিবর্তে ভেরিয়েবল বৃদ্ধি করার সময় "++ I" ফর্মটি ব্যবহার করার পরামর্শ দেওয়া হয়, এর একটি কারণ রয়েছেপ্রোগ্রামটি দ্রুত চালান। পরীক্ষাগুলি এটি নিশ্চিত করে না, ফর লুপের গতিতে কোনও উল্লেখযোগ্য পার্থক্য নেই।

Repeat ... Until(X)

সম্পাদনা

এক্সপ্রেশন X সত্য না হওয়া পর্যন্ত লুপ চালানো হয়, অর্থাৎ while (X) এর বিপরীতে, কমপক্ষে 1 বার। C-তে do {...} while (! (X)); এর মতো।

লুপ চালানো হয় যখন X সত্য হয়। C-তে while (X) {...} এর মতো।

শর্তসাপেক্ষ বিবৃতি

সম্পাদনা

If(X) ... Else ... ElseIf(Y) ... EndIf

সম্পাদনা

যদি X সত্য হয় তবে করো... অন্যথায় করো... অন্যথায় Y করলে...। Else এবং ElseIf কমান্ডের প্রয়োজন নেই এবং একটি ভিন্ন ক্রম এবং পরিমাণে ব্যবহার করা যেতে পারে। C-তে if (X) {...} else {...} else if (Y) {...} এর মতো।

Select(X) Case Y: ... Default: ... EndSelect

সম্পাদনা

কেস Y এর পরে কমান্ডগুলি চালায়: যখন X হয় Y। কেস Y টাইপের বিভাগগুলি: ... আরও আছে, X-এর বিভিন্ন মানের জন্য, পরবর্তী কমান্ডগুলির সম্পাদনে বাধা দেওয়ার জন্য সাধারণত প্রতিটি বিভাগের শেষে একটি ব্রেক কমান্ড স্থাপন করা হয় . ঐচ্ছিক ডিফল্ট: কমান্ডের পরে, পূর্ববর্তী শর্তগুলির কোনোটি পূরণ না হলে কোডটি কার্যকর করা হয়। C-তে সুইচ (X) {কেস Y: ... ডিফল্ট: ...} এর মতোই।

উদাহরণ:

#include "Basic.h"
MAIN
  int i;
  For(i,2,7)
    If (i==2)
      Print 2 NL
    ElseIf (i==4)
      Print 4 NL
    EndIf
    Select(i)
      Case 5:
        Print 55 NL
        Break
      Case 7:
        Print 77 NL
      Default:
        Print$ "To znowu ja" NL
    EndSelect
  Next
ENDMAIN