Linux-AWK/C2/User-Defined-Functions-in-awk/Bengali
From Script | Spoken-Tutorial
|
|
00:01 | awk এ User-defined function এর টিউটোরিয়ালে আপনাদের স্বাগত। |
00:07 | এখানে আমরা function definition এর সিনট্যাক্স সম্পর্কে শিখব।
Function call এবং Return statement |
00:17 | আমরা এটি কিছু উদাহরণ দিয়ে করব। |
00:21 | টিউটোরিয়ালটি রেকর্ড করতে ব্যবহার করছি উবুন্টু লিনাক্স 16.04 অপারেটিং সিস্টেম এবং gedit টেক্সট এডিটর 3.20.1. |
00:34 | আপনি পছন্দের যে কোনো টেক্সট এডিটর ব্যবহার করতে পারেন। |
00:38 | টিউটোরিয়ালটি অনুশীলন করতে ওয়েবসাইটে, আগের awk টিউটোরিয়ালগুলি দেখা উচিত। |
00:45 | আপনার C বা C++ এর মত কোনো প্রোগ্রামিং ভাষার মৌলিক জ্ঞান থাকতে হবে। |
00:52 | না হলে আমাদের ওয়েবসাইটে প্রাসঙ্গিক টিউটোরিয়ালটি দেখুন। |
00:58 | এই টিউটোরিয়ালে ব্যবহৃত ফাইল এই টিউটোরিয়াল পৃষ্ঠায় Code Files লিঙ্কে উপলব্ধ। তাদের ডাউনলোড করে এক্সট্র্যাক্ট করুন। |
01:08 | এখন user defined function সম্পর্কে শিখি। ফাংশন সিনট্যাক্স হল নিম্নরূপ। |
01:16 | এবং সিনট্যাক্স স্ব-ব্যাখ্যামূলক। |
01:20 | এখানে কীওয়ার্ড ফাংশন বাধ্যতামূলক। |
01:24 | ফাংশন কল করতে, ফাংশনের নাম লিখুন, তারপর বন্ধনীতে আর্গুমেন্ট। |
01:31 | দ্রষ্টব্য: আর্গুমেন্টে ফাংশনের নাম এবং প্রথম বন্ধনীর মাঝে স্পেস অনুমোদিত নয়। |
01:39 | এখন আমরা একটি উদাহরণ দেখব। |
01:42 | awkdemo.txt ফাইলে, ষষ্ঠ ফীল্ড স্টাইপেন্ড উপস্থাপন করে। |
01:47 | ধরুন স্টাইপেন্ড শূন্য বা চার সংখ্যার। |
01:54 | ধরুন, স্টাইপেন্ড হল 8900। এটি শব্দে 8 হাজার 9 শত হিসাবে প্রিন্ট করুন। |
02:03 | স্টাইপেন্ড 0 হলে, শব্দে শূন্য হিসাবে প্রিন্ট করুন। |
02:08 | আমি ইতিমধ্যে user_function.awk নামের ফাইলে কোড লিখেছি। |
02:15 | এখানে আমি একক আর্গুমেন্ট argval সহ changeit নামে একটি ফাংশন লিখেছি। |
02:23 | এখানে argval মূলত একটি ষষ্ঠ ফীল্ড যা হল স্টাইপেন্ড। |
02:29 | ফাংশনে, প্রথম কোডটি যাচাই করবে যে argval শূন্য কি নয়। |
02:36 | হ্যাঁ হলে, এটি শব্দে Zero প্রিন্ট করবে। |
02:40 | না হলে, কোডের else অংশ কার্যকর করা হবে। |
02:46 | else অংশে, প্রথমে substring ফাংশন দ্বারা প্রতিটি অঙ্ক এক এক করে এক্সট্র্যাক্ট করব। |
02:54 | আমরা বিভিন্ন সূচকে একটি অ্যারের ভ্যালু সংরক্ষণ করব। |
03:00 | উদাহরণস্বরূপ, a[1] বাম দিকের প্রথম অঙ্ক বা হাজার স্থানের অঙ্ক দেবে। |
03:08 | যেহেতু আমাদের মাত্র চারটি অঙ্ক রয়েছে, আমি চারটি সূচক ব্যবহার করেছি। |
03:13 | এরপর, আমরা যাচাই করব যে এলিমেন্ট শূন্যের সমান নয় কিনা এবং তাদের সঠিক ক্রমে প্রিন্ট করা। |
03:21 | শেষে, আমরা আউটপুটে একটি নতুন লাইন ব্রেক দিতে backslash n প্রিন্ট করি। |
03:28 | তারপর awk স্ক্রিপ্টে, আমরা ডলার 2 প্রিন্ট করেছি, যা দ্বিতীয় ফীল্ড name. |
03:35 | তারপর dollar 6 প্যারামিটার সহ changeit ফাংশন কল করি যা হল স্টাইপেন্ড। ফাইলটি এক্সিকিউট করি। |
03:43 | টার্মিনালে যান। cd কমান্ড দ্বারা সেই ফোল্ডারে যান যেখানে আপনি ফাইল ডাউনলোড এবং অন্বেষণ করেছেন। |
03:53 | এখন নিম্ন কমান্ড লিখুন এবং এন্টার টিপুন। |
04:00 | আমরা আশানুরুপ আউটপুট পাই। |
04:03 | একটি user-defined ফাংশন একটি রিটার্ন স্টেটমেন্টে অন্তর্ভুক্ত করা যেতে পারে। |
04:08 | এই স্টেটমেন্ট awk প্রোগ্রামের কলিং অংশে নিয়ন্ত্রণ ফেরৎ দেয়। |
04:13 | এটি বাকি awk প্রোগ্রামে ব্যবহারের জন্য একটি ভ্যালু ফেরৎ দিতে ব্যবহার করা যেতে পারে। |
04:20 | এটি এরকম দেখায়: return স্পেস expression. এখানে expression অংশ হল ঐচ্ছিক। |
04:29 | এখন অ্যারের গড় রিটার্ন করতে একটি ফাংশন লিখি। |
04:34 | আমি average.awk ফাইলে কোড লিখেছি। এর বিষয়বস্তু দেখি। |
04:41 | আমরা এই উদ্দেশ্যে avg নামে একটি ফাংশন সংজ্ঞায়িত করেছি। |
04:46 | এতে পাঁচটি প্যারামিটার রয়েছে। arr সেই অ্যারে যার জন্য গড় গণনা করা হয়েছে। |
04:55 | i অ্যারে লুপ ভ্যারিয়েবল। |
04:58 | sum সকল অ্যারে এলিমেন্টের সমষ্টি। |
05:03 | n অ্যারেতে এলিমেন্টের সংখ্যা নির্দেশ করে। |
05:07 | ret, avg ফাংশন থেকে ফিরিয়ে আনা ভ্যারিয়েবল প্রতিনিধিত্ব করে। ret গণিত গড় সঞ্চয় করবে। |
05:17 | i সূচকের পূর্বে অতিরিক্ত স্থান যা ভ্যারিয়েবল i, sum, n এবং ret হল লোকাল ভ্যারিয়েবল। |
05:27 | প্রকৃতপক্ষে, লোকাল ভ্যারিয়েবল আর্গুমেন্ট হওয়ার উদ্দেশ্যে নয়। |
05:32 | ফাংশন সংজ্ঞায়িত করার সময় এই কনভেনশন অনুসরণ করা উচিত। |
05:36 | লুপের ভিতরে, আমরা অ্যারের এলিমেন্টের মোট সংখ্যা এবং সঙ্কলন গণনা করেছি। |
05:43 | আমরা এলিমেন্টের মোট সংখ্যার সাথে সঙ্কলন ভাগ করে গড় গণনা করেছি এবং সেটি ret ভ্যারিয়েবলে সংরক্ষণ করেছি। |
05:54 | এই avg() ফাংশন ভ্যারিয়েবল ret এ ভ্যালু ফেরৎ দেয়। |
06:01 | BEGIN বিভাগে, 5 টি ভিন্ন সংখ্যার সাথে অ্যারে num সংজ্ঞায়িত করেছি। |
06:07 | প্রিন্ট স্টেটমেন্টে একটি আর্গুমেন্ট সহ avg () ফাংশন কল করি, যা হল অ্যারের নাম। |
06:14 | তাই আর্গুমেন্ট হিসাবে লোকাল ভ্যারিয়েবল পাস করতে হবে না। |
06:20 | টার্মিনালে ফিরে যান। টার্মিনাল মুছে দিন। |
06:26 | নিম্ন কমান্ড লিখুন- awk স্পেস হাইফেন f স্পেস average ডট awk. এন্টার টিপুন। |
06:37 | আমরা আউটপুট 3.6 পেয়েছি। আপনি ক্যালকুলেটর দ্বারা এটি যাচাই করতে পারেন। |
06:44 | এখন আরেকটি উদাহরণ দেখি। |
06:47 | আমি স্ট্রিং রিভার্স করতে একটি কোড লিখেছি এবং এটিকে reverse.awk নাম দিয়েছি। recursive ফাংশন স্ট্রিং রিভার্স করতে ব্যবহৃত হয়। |
06:57 | এখানে ভিডিওটি থামান এবং কন্ট্রোল ফ্লো বুঝতে কোডটি দেখুন। তারপর আউটপুট দেখতে এটি এক্সিকিউট করুন। |
07:07 | অনুশীলনী হিসাবে, awkdemo.txt ফাইলে Roll number ফীল্ড রিভার্স করতে rev ফাংশন ব্যবহার করুন। |
07:16 | উদাহরণস্বরূপ, Roll Number A001 হলে, আউটপুট 100A হবে। |
07:24 | কোডটি Code Files লিঙ্কে reverse_roll.awk হিসাবে দেওয়া হয়েছে। |
07:31 | এর সাথেই আমরা টিউটোরিয়ালের শেষে এসেছি। সংক্ষিপ্তকরণ করি। |
07:36 | এখানে আমরা শিখেছি - function definition এর সিনট্যাক্স। |
07:41 | Function call এবং Return statement. |
07:45 | অনুশীলনী 1 হিসাবে. 2D matrix এর ট্রান্সপোজ বানাতে একটি ফাংশন লিখুন। |
07:52 | অ্যারে থেকে ন্যূনতম ভ্যালু এলিমেন্ট ফেরৎ দিতে একটি ফাংশন লিখুন। |
07:58 | নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি প্রকল্পকে সারসংক্ষেপ বোঝায়। এটি ডাউনলোড করে দেখুন। |
08:06 | স্পোকেন টিউটোরিয়াল প্রকল্প দল কর্মশালার আয়োজন করে। অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়। |
08:16 | আরো বিস্তারিত জানতে আমাদের লিখুন। |
08:20 | এই ফোরামে আপনার টাইমড ক্যোয়ারী পোস্ট করুন। এই সাইটে যান। |
08:24 | স্পোকেন টিউটোরিয়াল প্রকল্প ভারত সরকারের NMEICT, MHRD দ্বারা সমর্থিত। এই মিশনের আরো তথ্য এই লিঙ্কে প্রাপ্তিসাদ্ধ। |
08:36 | আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। আমাদের সাথে যোগাযোগের জন্য ধন্যবাদ। |