OpenModelica/C2/Functions-and-Types/Bengali
From Script | Spoken-Tutorial
Revision as of 11:47, 9 January 2018 by Satarupadutta (Talk | contribs)
Time | Narration |
00:01 | Functions and Types এর টিউটোরিয়ালে আপনাদের স্বাগত। |
00:06 | এখানে আমরা শিখব: একটি function পরিভাষিত করা। |
00:12 | algorithm এর ব্যবহার। type সংজ্ঞায়িত করা। |
00:17 | টিউটোরিয়ালটি রেকর্ড করতে ব্যবহার করছি, OpenModelica 1.9.2 এবং উবুন্টু অপারেটিং সিস্টেম সংস্করণ 14.04. |
00:27 | কিন্তু, এই প্রক্রিয়া Windows, Mac OS X বা ARM এ FOSSEE তে অনুরূপ। |
00:35 | টিউটোরিয়ালটি বুঝতে Modelica তে ক্লাস সংজ্ঞায়িত করতে জানতে হবে। |
00:41 | আপনার যে কোনো প্রোগ্রামিং ল্যাংগুয়েজে functions এর জ্ঞান থাকা প্রয়োজন। |
00:46 | পূর্বাবশ্যক টিউটোরিয়াল স্পোকেন টিউটোরিয়াল ওয়েবসাইটে রয়েছে, তা দেখুন। |
00:52 | এখন function নিয়ে আলোচনা করি। |
00:55 | Function একটি বিশেষ ক্লাস যা ইনপুট নিয়ে আউটপুট রিটার্ন করতে পারে। |
01:01 | এতে algorithm সেকশন রয়েছে। |
01:04 | Function এ সমীকরণ থাকতে পারে না এবং এটি সিমুলেট করা যাবে না। |
01:10 | Function এর সিনট্যাক্স এখানে দেখানো হয়েছে। |
01:15 | এখন polynomialEvaluator নামে একটি ফাংশন লিখি, যা x হিসাবে ইনপুট নেয় এবং f(x) = a x (squared) (plus) b x (plus) c রিটার্ন করে যেখানে আউটপুট হিসাবে a = 1, b = 2 এবং c = 1. |
01:36 | polynomialEvaluator ফাইলটি আমাদের ওয়েবসাইটে উপলব্ধ। |
01:40 | Code Files লিঙ্কে উপলব্ধ সকল ফাইল ডাউনলোড এবং সংরক্ষণ করুন। |
01:46 | polynomialEvaluator ফাংশনটি দেখাতে OMEdit এ যান। |
01:52 | OMEdit এখন Welcome perspective এ খোলে। |
01:56 | আপনি OMEdit উইন্ডোর শুধুমাত্র একটি অংশ দেখতে পান কারণ আমি এটি জুম করেছি। |
02:02 | যখন প্রয়োজন হবে তখন সেই উইন্ডো সরিয়ে আমি আপনাকে প্রাসঙ্গিক অংশটি দেখাবো। |
02:09 | ডাউনলোড করা ফাইল খুলতে, Open Model/Library File টুলে ক্লিক করুন। |
02:16 | আমি সকল ফাইল একটি ফোল্ডারে সংরক্ষণ করেছি। |
02:19 | সেগুলি একসাথে চয়ন করে Open এ ক্লিক করুন। |
02:24 | এই ফোল্ডারগুলি ভিন্ন ফোল্ডারে সংরক্ষণ করে থাকলে তাদের প্রতিটি আলাদাভাবে খুলতে পারেন। |
02:31 | লক্ষ্য করুন নিম্নোক্ত classes বা functions এখন OMEdit এ খোলে: bouncingBallWithUserTypes, functionTester ,multipleFunctionTester, multiplePolynomialEvaluator এবং polynomialEvaluator. |
02:51 | PolynomialEvaluator ফাংশন খুলতে এবং দেখতে Libraries Browser এ আইকনে ডান ক্লিক করুন এবং View Class চয়ন করুন। |
03:02 | ফাংশন Text View তে না খুললে, এটি Text View তে খুলুন। |
03:08 | এই ফাংশনের নাম polynomialEvaluator যা ইতিমধ্যেই আলোচনা করেছি। |
03:14 | x হল real ভ্যারিয়েবল। |
03:17 | Input একটি কীওয়ার্ড যার ব্যবহার input ভ্যারিয়েবল নির্দিষ্ট করতে করা হয়। |
03:22 | একইভাবে, output একটি কীওয়ার্ড যার ব্যবহার output ভ্যারিয়েবল নির্দিষ্ট করতে করা হয়। |
03:28 | fx একটি real ভ্যারিয়েবল যা f(x) প্রদর্শন করে। |
03:33 | যে কোনো ভ্যারিয়েবল বা প্যারামিটার যা নয়তো input না output, protected কীওয়ার্ড দ্বারা নির্দিষ্ট করা হয়। |
03:42 | a 1 এর ভ্যালু সহ একটি প্যারামিটার। |
03:47 | a, b এবং c এর ভ্যালুর আলোচনা আগেই স্লাইডে করা হয়েছে। |
03:53 | লক্ষ্য করুন যে a, b এবং c হল protected প্যারামিটার। |
03:59 | Algorithm, function এর algorithm সেকশনের শুরু প্রদর্শন করে। |
04:05 | Algorithm সেকশন শুধুমাত্র assignment স্টেটমেন্টে থাকতে পারে। |
04:10 | এই চিহ্ন assignment নির্দেশ করে। |
04:14 | একটি assignment স্টেটমেন্টে ডানদিকের ভ্যালু বামদিকে নির্ধারিত করা হয়েছে। |
04:20 | বামদিকে সাধারণত একটি অজানা এক্সপ্রেশন থাকে। |
04:25 | এই ক্ষেত্রে fx একটি অজানা ভ্যারিয়েবল। |
04:29 | এখানে x এর ভ্যালু জানা থাকলে ডানদিকের এক্সপ্রেশনের ভ্যালু গণনা করা যায়। |
04:36 | x কল করা হলে এটি সাধারণত function এর input আর্গুমেন্ট হিসাবে পাস করা হয়। |
04:43 | এখন দেখি যে functionTester ক্লাস দ্বারা function কিভাবে কল করে। |
04:49 | functionTester আগেই খুলেছি তাই এই আইকনটি Libraries Browser এ দেখাচ্ছে। |
04:56 | এই Class খুলতে, এই আইকনে ডাবল ক্লিক করুন। |
05:01 | Class খোলার একটি বৈকল্পিক উপায়। |
05:05 | আপনি এর আইকনে ডান ক্লিক করতে পারেন এবং View Class চয়ন করুন। |
05:11 | Z একটি real ভ্যারিয়েবল। |
05:14 | polynomialEvaluator ফাংশন 10 ইউনিটের input আর্গুমেন্ট সহ কল করা হয় এবং এটি z এর সমান। |
05:23 | polynomialEvaluator এর ইনপুট ভ্যালু (ভ্যারিয়েবল) যা x এর 10 ইউনিট ভ্যালু নেয়। |
05:31 | এখন এই ক্লাসটি সিমুলেট করুন। |
05:34 | এই class সিমুলেট করতে Libraries Browser এ functionTester আইকনে ডান ক্লিক করতে হবে এবং Simulate চয়ন করুন। |
05:45 | ক্লাসটি সিমুলেট হয়েছে। |
05:47 | আপনি class সিমুলেট করতে টুলবারে Simulate বোতামও ব্যবহার করতে পারেন। |
05:53 | এখন Plotting perspective সম্পূর্ণরূপে দেখাতে OMEdit উইন্ডোটি বামদিকে সরাই। |
06:00 | variables browser এ z চয়ন করুন। |
06:04 | লক্ষ্য করুন যে z এর ভ্যালু x = 10 এ f(x) এর ভ্যালুর সমান। |
06:12 | এখন z অচয়নিত করুন এবং এই ফলাফল মুছে দিন। |
06:18 | Modeling perspectiveএ ফিরে যান। |
06:21 | উপরে polynomialEvaluator ট্যাবে ক্লিক করুন। |
06:25 | লক্ষ্য করুন polynomialEvaluator ফাংশন শুধুমাত্র একটি output ভ্যারিয়েবল। |
06:31 | এখন দেখাই যে একটি ফাংশন দ্বারা দুই বা অধিক ভ্যারিয়েবল কিভাবে output করে। |
06:38 | আমি multiplePolynomialEvaluator নামে ফাংশন বানিয়েছি যাতে দুটি output ভ্যারিয়েবল রয়েছে। |
06:45 | Function দেখার আগে PolynomialEvaluator এবং FunctionTester ট্যাবগুলি বন্ধ করি। |
06:54 | যেহেতু Function দৃশ্যমান হয়, আমি উইন্ডো ডানদিকে নিয়ে যাই। |
07:01 | multiplePolynomialEvaluator, multipleFunctionTester এবং bouncingBallWithUserTypes এ ডাবল ক্লিক করুন। |
07:11 | উইন্ডোটিকে তার জায়গায় পুনরায় রাখুন। |
07:15 | multiplePolynomialEvaluator ট্যাবে যান। |
07:19 | এই function অতিরিক্ত output ভ্যারিয়েবল ছাড়া polynomialEvaluator এর অনুরূপ। |
07:27 | একটি output ভ্যারিয়েবলের নাম gx ঘোষিত হয়েছে। |
07:32 | gx কে a x (squared) (minus) b x (plus) c এর ভ্যালু নির্ধারণ করা হয়েছে। |
07:38 | যে ক্রমে output বা input ভ্যারিয়েবল ঘোষিত করা হয়েছে তা গুরুত্বপূর্ণ। |
07:45 | আমরা multipleFunctionTester ক্লাস আলোচনা করলে এই বিষয়ে আরো বুঝবো। |
07:51 | এখন multipleFunctionTester ট্যাবে যান। |
07:56 | y এবং z কে real ভ্যারিয়েবল হিসাবে ঘোষিত করা হয়। |
08:01 | multiplePolynomialEvaluator ফাংশন 10 ইউনিটের input আর্গুমেন্ট সহ কল করা হয়। |
08:08 | এর মানে multiplePolynomialEvaluator এর input ভ্যারিয়েবল 10 ইউনিট ভ্যালু নেয়। |
08:17 | y এবং z, x = 10 এ ক্রমানুসারে f(x) এবং g(x) এর ভ্যালু নেয়। |
08:26 | y আউটপুট ভ্যারিয়েবল fx এর ভ্যালু নেয় কারণ function এ gx ঘোষিত হওয়ার আগে fx ঘোষিত করা হয়। |
08:37 | এখন এই class সিমুলেট করুন। |
08:40 | Simulate বোতামে ক্লিক করুন। পপ আপ উইন্ডো বন্ধ করুন। |
08:46 | variables browser এ y এবং z চয়ন করুন। |
08:51 | লক্ষ্য করুন y এবং z এর ভ্যালু x = 10 এ যথাক্রমে f(x) এবং g (x) এর সমান। |
09:01 | ফলাফল মুছুন এবং Modeling Perspective এ ফিরে যান। |
09:06 | এখন, আমাকে y এবং z এর ক্রম বদলাতে হবে। |
09:11 | (y,z) মুছে ফেলুন এবং (z,y) লিখুন। |
09:17 | Ctrl + S টিপে এই ক্লাস সংরক্ষণ করুন। |
09:22 | আবার এই ক্লাসটি সিমুলেট করুন। পপ আপ উইন্ডো বন্ধ করুন। |
09:28 | আবার variables browser এ y এবং z চয়ন করুন। |
09:33 | লক্ষ্য করুন y এবং z এর ভ্যালু পূর্ববর্তী কেসের তুলনায় বদলে গেছে। |
09:41 | এই ফলাফল মুছে দিন এবং Modeling Perspective এ ফিরে যান। |
09:47 | স্লাইডে ফিরে যান। |
09:50 | Algorithm পদ্ধতিগত প্রোগ্রামিং সক্ষম করার Modelica syntax element. |
09:56 | শুধুমাত্র assignment স্টেটমেন্টের algorithm সেকশনে অনুমতি রয়েছে। |
10:01 | Assignment স্টেটমেন্ট নিম্ন চিহ্ন ব্যবহার করে। |
10:06 | Assignment স্টেটমেন্টে ডেটা ফ্লো ডান থেকে বামদিকে হয়। |
10:10 | Modelica তে নির্ধারিত ফাংশনের কিছু বিধিনিষেধ রয়েছে। |
10:16 | ফাংশনে der() এর ব্যবহার অবৈধ। time ভ্যারিয়েবলের ব্যবহারের অনুমতি নেই। |
10:23 | ফাংশনে when স্টেটমেন্টের ব্যবহারের অনুমতি নেই। |
10:28 | Function এ একাধিক algorithm সেকশন থাকতে পারে না এবং Models arguments হিসেবে পাস হতে পারে না। |
10:36 | Type, Modelica তে কাস্টম data-types নির্ধারণ করার একটি বিশেষ ক্লাস। |
10:42 | উদাহরণস্বরূপ, velocity এবং current এর মত ফিজিক্যাল মাত্রা data-types হিসাবে সংজ্ঞায়িত করা যেতে পারে। |
10:50 | এর ব্যবহার পরে অন্যান্য ভ্যারিয়েবল ঘোষিত করতে করা যেতে পারে। |
10:54 | unit এবং start এর মত Modelica ডেটা টাইপের Attributes সেইমত বদলানো যেতে পারে। |
11:01 | উদাহরণস্বরূপ, উপরোক্ত ক্ষেত্রে velocity কে real data type এর মতই নির্ধারণ করা হয়েছে। |
11:08 | কিন্তু এর ইউনিট m/s এ সংশোধন করা হয়েছে। |
11:12 | আমি টাইপ ডেফিনিশন সিমুলেট করতে bouncingBallWithUserTypes নামে মডেল বানিয়েছি। |
11:19 | এই মডেলটি প্রদর্শন করতে OMEdit এ ফিরে যান। |
11:24 | bouncingBallWithUserTypes ট্যাবে ক্লিক করুন। |
11:28 | এই মডেল bouncingBall মডেলের সমান যা পূর্বের টিউটোরিয়ালে আলোচনা করেছি। |
11:35 | bouncingBall মডেল বুঝতে পূর্ববর্তী টিউটোরিয়াল দেখুন। |
11:41 | Length কে m এর জন্য সংশোধিত নিজের ইউনিট সহ Real ডেটা টাইপ হিসাবে সংজ্ঞায়িত করা হয়। |
11:47 | একইভাবে Velocity কে m/s এর জন্য সংশোধিত নিজের ইউনিট সহ Real হিসাবে সংজ্ঞায়িত করা হয়। |
11:54 | h পৃথিবীর পৃষ্ঠ থেকে বলের উচ্চতা প্রদর্শন করে। |
11:58 | এটি length datatype হিসাবে সংজ্ঞায়িত করা হয়। |
12:02 | একইভাবে v বলের বেগ বোঝায়। |
12:05 | এটি velocity datatype ঘোষিত করা হয়েছে। |
12:09 | এই model এর বাকি ভ্যারিয়েবল ডিক্লেরেশন এবং সমীকরণ bouncingBall এর অনুরূপ। |
12:18 | এখন এটি simulate করুন। পপ আপ উইন্ডো বন্ধ করুন। |
12:24 | Variables Browser এ লক্ষ্য করুন যে, h এবং v এর কাছে তাদের ডেটা-টাইপ সহ সংশ্লিষ্ট ইউনিট রয়েছে। |
12:34 | variables browser এ h চয়ন করুন। |
12:38 | h এর সাথে time এর প্লট bouncingBall এর অনুরূপ। |
12:43 | h অচয়নিত করুন। |
12:46 | স্লাইডে ফিরে যান। |
12:49 | অনুশীলনী হিসাবে ফাংশনগুলির সীমাবদ্ধতাগুলি লঙ্ঘন করে উত্পন্ন এরর লক্ষ্য করুন। |
12:56 | এর সাথেই আমরা টিউটোরিয়ালের শেষে এসেছি। |
12:59 | নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি দেখুন: http://spoken-tutorial.org/ http://spoken-tutorial.org] /What\_is\_a\_Spoken\_Tutorial, এটি প্রকল্পকে সারসংক্ষেপে দেখায়। |
13:05 | আমরা কর্মশালার আয়োজন করে এবং প্রশংসাপত্র দেই। আরো জানতে আমাদের লিখুন। |
13:10 | আপনার এই স্পোকেন টিউটোরিয়ালে কোন প্রশ্ন থাকলে নিম্ন সাইটে যান। |
13:15 | আমরা জনপ্রিয় বইগুলির সমাধানকৃত উদাহরণের কোডিং নির্দেশ করি। আরো জানতে এই সাইটে যান। |
13:23 | আমরা কমার্শিয়াল সিমুলেটর ল্যাবগুলি OpenModelica তে মাইগ্রেট করতে সহায়তা করি। |
13:29 | Spoken Tutorial প্রকল্প ভারত সরকারের NMEICT, MHRD দ্বারা সমর্থিত। |
13:36 | আমরা OpenModelica উন্নয়ন দলকে তাদের সমর্থনের জন্য ধন্যবাদ জানাই। অংশগ্রহনের জন্যে ধন্যবাদ। |