Linux-AWK/C2/User-Defined-Functions-in-awk/Bengali

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
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 আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। আমাদের সাথে যোগাযোগের জন্য ধন্যবাদ।

Contributors and Content Editors

Kaushik Datta