OpenModelica/C2/Functions-and-Types/Bengali

From Script | Spoken-Tutorial
Revision as of 11:47, 9 January 2018 by Satarupadutta (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
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 উন্নয়ন দলকে তাদের সমর্থনের জন্য ধন্যবাদ জানাই। অংশগ্রহনের জন্যে ধন্যবাদ।

Contributors and Content Editors

Kaushik Datta, Satarupadutta