Fortran এর কথা – ১

 

আমি অনেকদিন ধরেই দেখছি আমার ছোট ভাই বোনদের এই ভাষাটা নিয়ে সমস্যা হচ্ছে। আমার সমস্যা হচ্ছে এই দেশে দেড় বছর থাকার পর, আমি অনেক পরিবর্তন হয়ে গেছি। কেউ কিছু না বললে গায়ে পড়ে করার অভ্যাসটা চলে গেছে। কদিন ধরে ফেসবুকে নানান মানুষের কথাবার্তার ধরণ দেখেই বুঝলাম, আবার অন্তিম সময় চলে এসেছে। ওদের মনে হয় ফোরট্রান পরীক্ষা। কিন্তু সবাই যাবে মুখস্ত করে। তারপরও চেষ্টা করব সবাই যেন কিছু শেখে। এর পরে যারা পরীক্ষা দেবে, তাঁরা নাহয় এটা পড়তে পারবে। এখন যারা পরীক্ষা দেবে, তাঁরা আবার এগুলো শুনে আমাকে গালাগালি শুরু করো না।

যেকোনো প্রোগ্রামের ৩ টা অংশ থাকেঃ

  • ইন্ট্রোডাকশন
  • বডি
  • কনক্লুশন

এই ফরম্যাট কিন্তু সাবপ্রোগ্রামের ক্ষেত্রেও খাটে।

 

ইন্ট্রোডাকশন

কি থাকে এর ভেতরে? তেমন কিছু না। থাকে প্রোগ্রামের নাম, এবং ভ্যারিয়েবল ও তাঁদের ভিন্ন ভিন্ন ডেটা টাইপ। যারা জানো না, তাদেরকে বলে দিচ্ছি। যারা প্রথম বর্ষে পড়ছ তাঁদের শেখানো হয় দেখ বাবারা প্রোগ্রাম এভাবে লিখবা। [আমি এখানে নিজের মাথা থেকে বানিয়ে একটা হাবিজাবি দিলাম। অনেকেই বুঝতে পারবে আমি কি লিখেছি।]

 

PROGRAM MATHA

CHARACTER(LEN=10)::MATHAR_NAAM_1

INTEGER::RBC,WBC,AGE

REAL,PARAMETER:: PI=3.14159

REAL:: AWNON_PAGLA = 0.5

REAL,PARAMETER:: AMAR_IQ = 0.00001

 

তোমাদের সবারই এটা ভালো লাগবে, কারণ ইউনিভার্সিটি তে আমাদের তৈরিই করা হয় এভাবে। আমি উপরে যা লিখেছি তার সাথে ৯০/৯৫ এর মিল আছে। কেউ যদি ফোরট্রান ৭৭ এ চেষ্টা কর তাহলে হয়ত কাজ নাও করতে পারে।

 

কি লিখলাম এর ভেতরে? প্রথমে প্রোগ্রামের নাম। লেখ লেখ, ভালো করে লেখ। কিন্তু দ্বিতীয় বর্ষে উঠলে পরে যখন দেখবে প্রোগ্রাম কথাটা না লিখলে প্রোগ্রামের রেস্ত্রিকশন কমে যায়, (তার মানে হচ্ছে এটার আউট রিচ বেড়ে যায়, এটা এরর কম দেখায়) তখন প্রোগ্রাম কথাটা লেখা বাদ দিয়ে দেবে।

 

  • প্রথমে লিখলাম প্রোগ্রামের নাম “মাথা”, কেউ আবার মাঠা পইড় না। এডা খাউনের জিনিস না।
  • এর পরে লিখলাম একটা ১০ ঘরের দৈর্ঘ্য বিশিষ্ট একখান ক্যারাক্ত্যার ডেটা টাইপ, যেটাকে নাম দিলাম “আমার_মাথা_১”। লক্ষ্য করো যে দৈর্ঘ্য টা যদি লিখে না দিতাম তাহলে এটা বাই ডিফল্ট ১ ঘরের দৈর্ঘ্য বিশিষ্ট ভ্যারিয়েবল হিসাবে এটাকে ধরে নিত।
  • এরপরে লিখলাম, আমার বয়স এবং শরীরের লৌহ রক্তকণিকা ও শ্বেতরক্তকণিকার পরিমাণ। কোন পাগলেও বুঝবে এটা পূর্ণ সংখ্যাই হবে, তাই এগুলোকে দিলাম, ইন্টেজার ডেটা টাইপ।
  • পরেরটায় পাই এর মান দিলাম তো, তাই লিখলাম প্যারামিটার। পাই একটা ধ্রুবক (ভুল করে কেউ ধ্রুব পড়ে ফেলো না) :D, যেটা কখনো পরিবর্তন হবে না। কি বুঝলাম? এইরকম ইউনিভার্সাল কন্সটান্ট ব্যবহার করলে প্যারামিটার লিখলে, প্যারা চলে যায়, তখন আরামে প্রোগ্রাম করা যায়। চেষ্টা করে দেখতে পারো, প্যারামিটার ডিফাইন করে, প্রোগ্রামের ভেতরে তার মানটা পরিবর্তন করার চেষ্টা করো তো। কি হয়? প্রোগ্রাম কম্পাইলই হবে না, চলা তো দূরে থাক। এই রকম অ্যাসাইনমেন্ট কে বলে প্যারামেত্রিক অ্যাসাইনমেন্ট।
  • পরের টা “অনন_পাগলা =০.৫” মানে হল অনন কে হাটে নিয়ে বেচলে এখন ৫০ পয়সা পাওয়া যাবে। তাই তার এখনকার দাম ৫০ পয়সা বা ০.৫ টাকা। এখন প্রোগ্রামের মধ্যে যখন খুশি তখন, কোন কন্ডিশনের উপরে নির্ভর করে অনন_পাগলা ভ্যারিয়েবলের দাম উঠা নামা করতে পারে। এটাকে বলা হয় রেগুলার অ্যাসাইনমেন্ট। তোমরা কি এখন রেগুলার অ্যাাসাইনমেন্ট এবং প্যারামেত্রিক অ্যাসাইনমেন্টের সাথে পার্থক্য দেখতে পাচ্ছ? প্রোগ্রাম কথাটা না লিখলে এরকম রেগুলার অ্যাসাইনমেন্ট কিন্তু যেকোনো সময় করা যায়। যেমন লিখতে লিখতে মনে হল একটা আলাদা ভ্যারিয়েবল দরকার, সহজে লিখে দিতে পারবে, a = 10। এটা কেন কার্যকরী? একটা উদাহরন দেই। লুপ ইনডেক্স কাউন্টার ব্যবহার করার সময় এটা অনেক কাজে লাগে। এরপরে যখন লুপ শেখাবো, তখন দেখে নিয়।
  • যদি এ দুটো বুঝে থাক, তাহলে নিশ্চয় এটাও বুঝতে পারছ, যে পরেরটায় আমার_আইকিউ = ০.০০০০১ একটা রেগুলার অ্যাসাইনমেন্ট এর রিয়েল টাইপের ভ্যারিয়েবল। প্রোগ্রাম লেখার সময় লাগলে এটা বাড়ান বা কমানো হবে। কম্পাইলার কোনই এরর দেখাবে না। কেন জানি না এই এরর এর জন্যে তোমরা অনেকেই প্রোগ্রামের ঠিক লাইনগুলো লিখতেও ভয় পাও। 🙂

কনক্লুশন

এখানে থাকে মাত্র একটা লাইন। যদি প্রোগ্রাম দিয়ে শুরু কর তাহলে লিখতে হয় এন্ড প্রোগ্রাম [অদ্যই শ্যাশ রজনীগন্ধা]। যদি প্রোগ্রাম কথাটা না লিখেই প্রোগ্রাম শুরু কর, তাহলে শুধু এন্ড লিখলেই চলবে। তখন কিন্তু এন্ড প্রোগ্রাম লিখলে এরর দেখাবে।

 

বডি নিয়ে কেন লিখছি না? এটাই আসল জিনিস। এটা নিয়ে এক পর্বেই লেখা সম্ভব না। এটাতেই তো প্রোগ্রামের যাবতীয় মালমসলা দেয়া হয়। এর পরের পর্বে আবার নিয়ে আসবো নতুন কিছু। ততক্ষণ ঝিম ধরে বসে থাকো। প্রোগ্রাম মুখস্ত করার দরকার নাই।

 

Awnon Bhowmik
Author: Awnon Bhowmik

I know very little to be proud about it. Mathematics enthusiast, possess a lust for mathematical/computational knowledge

Permanent link to this article: https://www.borgomul.com/awnon/2393/


মন্তব্য করুন আপনার ফেসবুক প্রোফাইল ব্যবহার করে

4 comments

Skip to comment form

  1. khub valo laglo likhata pore 🙂

  2. উদাহরণগুলা ভালো ছিলো। :p

  3. ভাইয়া “::” এই কারেক্টের কাজটা কি ?
    একটু বুঝাইয়া দিয়েন ! 🙂

    1. CHARACTER এর কাজটা আসলে সাধারণত লাগে না। কিন্তু মনে করো তুমি একটা প্রোগ্রাম লিখে স্টুডেন্ট ইনফরমেশন ফাইল বানিয়েছ। তো ওখানে সর্বপ্রথম ফর্মের মধ্যে স্টুডেন্ট এর নাম থাকবে। নাম লিখবা কিভাবে যদি এটা ডিফাইন না করো? এবং সবার নাম ১০ ক্যারেক্টারে হবে না। মনে করলাম বাঙ্গালিদের নাম ছোট, আবার আফ্রিকান অথবা দক্ষিন ভারতে দেখ, শ্রীলঙ্কায় দেখ নাম Muttiah Muralidharan, স্পেস সহ নামটা ২০ ঘর জায়গা খেয়ে ফেলছে, এজন্য বুঝে শুঝে কাজ করতে হয়।

      এখন বলতে পারো কেন স্টুডেন্ট ইনফরমেশন ফর্ম আমি ফোরট্রান দিয়ে করব? মাইক্রোসফট অ্যাক্সেস তো আছে। হ্যা আছে, কিন্তু সব জায়গায় কি এরকম Over the Top, Built in Software দিয়ে কাজ করতে পারবে? কিছু কিছু কম্পানি কিন্তু নিজেদের বানানো সফটওয়্যার ব্যাবহার করে। ওখানে গিয়ে টিকবে কিভাবে? এখানকার টেক্সাস ইউনিভারসিটি তে কিন্তু এখনও ফোরট্রান ব্যাবহার করা হয়। সুপার কম্পিউটারে Pi এর মান নির্ণয়ে যে Subprogram ব্যাবহার করা হয়, সেগুলো যে ফোরট্রানের SUBROUTINE, সেই খবর কি কেউ রাখো? সবাই তো প্রোগ্রামিং দেখলেই ভয় পাও।

      দুনিয়াটা দেখতে শেখ, তোমার আশেপাশে অনেক কিছু আছে যা তুমি দেখতে পাচ্ছ না। ভালো থেকো। 🙂

মন্তব্য করুন

Discover more from বর্গমূল | Borgomul

Subscribe now to keep reading and get access to the full archive.

Continue reading