কম্পিউটার অফিস অ্যাপ্লিকেশন-২ · অধ্যায়-৪ : পাইথন প্রোগ্রামিং
অধ্যায় ৪.১: পাইথন ভেরিয়েবল ও অপারেটর
সংক্ষিপ্ত প্রশ্ন (৩৭টি)
- ৪.১-সং-১★★★বই: পৃষ্ঠা ৭৯
১.অ্যালগরিদম ও ফ্লোচার্টের পার্থক্য কী? [বিএমটি-২০২৫, ২৬]
উত্তর
কী-ওয়ার্ড: অ্যালগরিদম ধাপের লিখিত রূপ, ফ্লোচার্ট চিত্ররূপ, প্রতীক, বোঝার সহজতা
অ্যালগরিদম ও ফ্লোচার্টের পার্থক্য:
বিষয় অ্যালগরিদম ফ্লোচার্ট সংজ্ঞা কোনো সমস্যা সমাধানের ধাপগুলো ভাষায় ক্রমানুসারে লেখা অ্যালগরিদমের ধাপগুলো নির্দিষ্ট প্রতীক ও তীরচিহ্ন দিয়ে চিত্রের মাধ্যমে প্রকাশ প্রকাশের মাধ্যম লেখা (সাধারণ ভাষা) চিত্র (প্রতীক) বোঝার সহজতা বড় হলে বুঝতে সময় লাগে এক নজরে বোঝা যায় তৈরির ক্রম প্রথমে তৈরি করা হয় সাধারণত অ্যালগরিদমের পরে তৈরি করা হয় ভুল নির্ণয় যুক্তির ভুল খুঁজে পাওয়া তুলনামূলক কঠিন ভুল সহজে চোখে পড়ে পরিবর্তন সহজে পরিবর্তন করা যায় পরিবর্তনে পুরো চিত্র আবার আঁকতে হতে পারে নিয়ম নির্দিষ্ট প্রতীকের প্রয়োজন নেই নির্দিষ্ট প্রতীক (ANSI) মানতে হয় - ৪.১-সং-২★★★বই: পৃষ্ঠা ৭৯
২.পাইথন ডাটা টাইপ কী? [বিএমটি-২০২৩]
- অথবা, পাইথন ডাটা টাইপের নামগুলো লেখ। [বিএমটি-২৬]
উত্তর
কী-ওয়ার্ড: ডাটার ধরন, int, float, complex, str, bool, list, tuple, dict, set, None, type()
পাইথন ডাটা টাইপ: একটি ভেরিয়েবলে কী ধরনের মান (সংখ্যা, লেখা, তালিকা ইত্যাদি) রাখা হচ্ছে এবং তার উপর কী কী অপারেশন করা যাবে, তা নির্ধারণ করে ডাটা টাইপ। পাইথনে ডাটা টাইপ আলাদাভাবে ঘোষণা করতে হয় না; মান দেখে স্বয়ংক্রিয়ভাবে নির্ধারিত হয়।
পাইথনের ডাটা টাইপের নাম: int (পূর্ণসংখ্যা), float (দশমিক সংখ্যা), complex (জটিল সংখ্যা), str (স্ট্রিং), bool (True/False), list, tuple, range, dict (ডিকশনারি), set, frozenset, NoneType।
a = 25 # int b = 3.14 # float c = 2 + 3j # complex name = "Rahim" # str passed = True # bool marks = [85, 90] # list point = (10, 20) # tuple student = {"roll": 101, "name": "Rahim"} # dict ids = {1, 2, 3} # set x = None # NoneType print(type(a), type(b), type(name), type(passed))নমুনা আউটপুট:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> - ৪.১-সং-৩★★★বই: পৃষ্ঠা ৭৯
৩.প্রোগ্রাম ও প্রোগ্রামিং কী? [বিএমটি-২০২৩, ২৬]
উত্তর
কী-ওয়ার্ড: প্রোগ্রাম: নির্দেশনার সমষ্টি; প্রোগ্রামিং: প্রোগ্রাম লেখার প্রক্রিয়া
প্রোগ্রাম: কোনো নির্দিষ্ট সমস্যা সমাধান বা কাজ সম্পাদনের জন্য কম্পিউটারকে দেওয়া ধারাবাহিক ও সুশৃঙ্খল নির্দেশনার সমষ্টিকে প্রোগ্রাম বলে। যেমন দুটি সংখ্যা যোগ করার পাইথন প্রোগ্রাম।
প্রোগ্রামিং: কোনো প্রোগ্রামিং ভাষা ব্যবহার করে প্রোগ্রাম লেখা, পরীক্ষা করা (Testing), ভুল সংশোধন (Debugging) ও রক্ষণাবেক্ষণের সম্পূর্ণ প্রক্রিয়াকে প্রোগ্রামিং বলে। যিনি প্রোগ্রাম লেখেন তাকে প্রোগ্রামার বলে।
- ৪.১-সং-৪★★বই: পৃষ্ঠা ৭৯
৪.পাইথন প্রোগ্রামের বৈশিষ্ট্য লেখ। [বিএমটি-২০২৪, ২৬]
- অথবা, পাইথন কেন জনপ্রিয়? [বিএমটি-২০২৫]
উত্তর
কী-ওয়ার্ড: সহজ সিনট্যাক্স, ইন্টারপ্রেটেড, ওপেন সোর্স, প্ল্যাটফর্ম নিরপেক্ষ, বিশাল লাইব্রেরি, জেনারেল পারপাস
পাইথন প্রোগ্রামের প্রধান বৈশিষ্ট্য, যেগুলোর কারণে এটি জনপ্রিয়:
- সহজ ও পাঠযোগ্য: ইংরেজির কাছাকাছি সরল সিনট্যাক্স, তাই নতুনদের শেখা সহজ।
- ইন্টারপ্রেটেড: কম্পাইল না করেই লাইন বাই লাইন চালানো যায়, ভুল দ্রুত ধরা পড়ে।
- ফ্রি ও ওপেন সোর্স: বিনামূল্যে ব্যবহার, পরিবর্তন ও বিতরণ করা যায়।
- প্ল্যাটফর্ম নিরপেক্ষ: Windows, Linux, macOS সব জায়গায় একই কোড চলে।
- ডাইনামিক টাইপিং: ভেরিয়েবলের ডাটা টাইপ আগে ঘোষণা করতে হয় না।
- অবজেক্ট-ওরিয়েন্টেড: ক্লাস ও অবজেক্ট সমর্থন করে, আবার প্রসিডিউরাল পদ্ধতিতেও লেখা যায়।
- বিশাল লাইব্রেরি: NumPy, Pandas, Django, TensorFlow-এর মতো হাজারো লাইব্রেরি আছে।
- জেনারেল পারপাস: ওয়েব, ডাটা সায়েন্স, AI, অটোমেশন, গেমসহ প্রায় সব ক্ষেত্রে ব্যবহারযোগ্য।
- ৪.১-সং-৫★★★বই: পৃষ্ঠা ৭৯
৫.ফ্লোচার্ট বলতে কী বুঝায়? ফ্লোচার্টকে কয়ভাগে ভাগ করা যায়। [বিএমটি-২৬]
উত্তর
কী-ওয়ার্ড: প্রতীকের মাধ্যমে চিত্ররূপ, সিস্টেম ফ্লোচার্ট, প্রোগ্রাম ফ্লোচার্ট
ফ্লোচার্ট: কোনো সমস্যা সমাধানের ধাপগুলো (অ্যালগরিদম) নির্দিষ্ট প্রতীক ও তীরচিহ্নের মাধ্যমে চিত্রের সাহায্যে প্রকাশ করাকে ফ্লোচার্ট বলে।
ফ্লোচার্ট প্রধানত দুই ভাগে ভাগ করা যায়:
- সিস্টেম ফ্লোচার্ট: পুরো সিস্টেমে ডাটা কোথা থেকে আসে, কীভাবে প্রক্রিয়াজাত হয় এবং কোথায় যায় তার সামগ্রিক চিত্র।
- প্রোগ্রাম ফ্লোচার্ট: একটি নির্দিষ্ট প্রোগ্রামের ভেতরের ধাপগুলোর বিস্তারিত চিত্র, যা দেখে প্রোগ্রাম লেখা হয়।
একটি সরল প্রোগ্রাম ফ্লোচার্ট
- ৪.১-সং-৬★★★বই: পৃষ্ঠা ৮০
৬.অ্যালগরিদম কী? এর প্রয়োজনীয়তা লেখ। [বিএমটি-২০২৪]
উত্তর
কী-ওয়ার্ড: ধাপে ধাপে সমাধান, পরিকল্পনা, ভুল কমায়, প্রোগ্রাম লেখা সহজ, ভাষা-নিরপেক্ষ
অ্যালগরিদম: কোনো নির্দিষ্ট সমস্যা সমাধানের জন্য ধাপে ধাপে সাজানো সসীম সংখ্যক যৌক্তিক নির্দেশনার সমষ্টিকে অ্যালগরিদম বলে। শব্দটি এসেছে মুসলিম গণিতবিদ আল-খোয়ারিজমির নাম থেকে।
প্রয়োজনীয়তা:
- প্রোগ্রাম লেখার আগে সমাধানের সুস্পষ্ট পরিকল্পনা পাওয়া যায়।
- প্রোগ্রাম লেখা সহজ ও দ্রুত হয়।
- যুক্তির ভুল আগেই ধরা পড়ে, ফলে ডিবাগিং সহজ হয়।
- এটি নির্দিষ্ট কোনো প্রোগ্রামিং ভাষার উপর নির্ভরশীল নয়; যেকোনো ভাষায় রূপান্তর করা যায়।
- বড় সমস্যাকে ছোট ছোট ধাপে ভাগ করে বোঝা সহজ হয়।
- অন্যদের সাথে সমাধানের ধারণা শেয়ার করা যায়।
- ৪.১-সং-৭★★★বই: পৃষ্ঠা ৮০
৭.ফ্লোচার্টের বৈশিষ্ট্য বা সুবিধা কী কী?
- অথবা, ফ্লোচার্টের বৈশিষ্ট্যগুলো লেখ। [বিএমটি-২০২৩]
উত্তর
কী-ওয়ার্ড: সহজবোধ্য, ভুল নির্ণয় সহজ, প্রোগ্রাম লেখায় সহায়ক, ডকুমেন্টেশন, যোগাযোগ
ফ্লোচার্টের বৈশিষ্ট্য বা সুবিধাসমূহ:
- প্রোগ্রামের যুক্তি ও প্রবাহ চিত্রের মাধ্যমে সহজে বোঝা যায়।
- প্রোগ্রামের ভুল (যুক্তিগত ত্রুটি) সহজে খুঁজে বের করা যায়।
- ফ্লোচার্ট দেখে যেকোনো ভাষায় সহজে প্রোগ্রাম লেখা যায়।
- প্রোগ্রামের ডকুমেন্টেশন হিসেবে কাজ করে।
- জটিল প্রোগ্রাম পরিবর্তন ও রক্ষণাবেক্ষণ সহজ হয়।
- অন্য প্রোগ্রামার বা শিক্ষার্থীকে সমাধান ব্যাখ্যা করা সহজ হয়।
- নির্দিষ্ট আন্তর্জাতিক প্রতীক ব্যবহৃত হয় বলে সবাই বুঝতে পারে।
- ৪.১-সং-৮★★বই: পৃষ্ঠা ৮০
৮.অ্যাসেম্বলি ল্যাংগুয়েজের বৈশিষ্ট্যসমূহ লেখ। [বিএমটি-২০২৩]
উত্তর
কী-ওয়ার্ড: নেমোনিক কোড, অ্যাসেম্বলার, মেশিন নির্ভর, লো-লেভেল, দ্রুত, হার্ডওয়্যার নিয়ন্ত্রণ
অ্যাসেম্বলি ল্যাংগুয়েজের বৈশিষ্ট্যসমূহ:
- ০ ও ১-এর বদলে সংক্ষিপ্ত সংকেত বা নেমোনিক (MOV, ADD, SUB, JMP) ব্যবহার করে লেখা হয়।
- এটিকে মেশিন ভাষায় রূপান্তরের জন্য অ্যাসেম্বলার নামক অনুবাদক প্রোগ্রাম লাগে।
- এটি মেশিন নির্ভর; এক প্রসেসরের জন্য লেখা প্রোগ্রাম অন্য প্রসেসরে চলে না।
- এটি লো-লেভেল ভাষা, তবে মেশিন ভাষার চেয়ে লেখা ও বোঝা সহজ।
- হাই-লেভেল ভাষার চেয়ে প্রোগ্রাম দ্রুত চলে এবং কম মেমরি নেয়।
- হার্ডওয়্যার (রেজিস্টার, মেমরি) সরাসরি নিয়ন্ত্রণ করা যায়।
- প্রোগ্রাম লিখতে কম্পিউটারের গঠন সম্পর্কে জ্ঞান প্রয়োজন।
উদাহরণ:
MOV AX, 5ADD AX, 3 - ৪.১-সং-৯★★★বই: পৃষ্ঠা ৮০
৯.হাই-লেভেল ও লো-লেভেল ল্যাংগুয়েজের মধ্যে পার্থক্য লেখ। [বিএমটি-২০২৩]
উত্তর
কী-ওয়ার্ড: মানুষের ভাষার কাছাকাছি বনাম মেশিনের কাছাকাছি, অনুবাদক, পোর্টেবিলিটি, গতি
হাই-লেভেল ও লো-লেভেল ল্যাংগুয়েজের পার্থক্য:
বিষয় হাই-লেভেল ল্যাংগুয়েজ লো-লেভেল ল্যাংগুয়েজ সংজ্ঞা মানুষের ভাষার (ইংরেজি) কাছাকাছি প্রোগ্রামিং ভাষা কম্পিউটারের হার্ডওয়্যার বা মেশিনের কাছাকাছি ভাষা উদাহরণ Python, C, Java, PHP মেশিন ভাষা, অ্যাসেম্বলি ভাষা শেখা ও লেখা সহজ কঠিন অনুবাদক কম্পাইলার বা ইন্টারপ্রেটার লাগে মেশিন ভাষায় লাগে না; অ্যাসেম্বলিতে অ্যাসেম্বলার লাগে মেশিন নির্ভরতা মেশিন নিরপেক্ষ (Portable) মেশিন নির্ভর গতি অনুবাদের কারণে তুলনামূলক ধীর দ্রুত চলে ভুল সংশোধন সহজ কঠিন হার্ডওয়্যার নিয়ন্ত্রণ সীমিত সরাসরি নিয়ন্ত্রণ সম্ভব - ৪.১-সং-১০★★বই: পৃষ্ঠা ৮০
১০.কয়েকটি প্রোগ্রামিং ল্যাংগুয়েজের নাম লেখ।
উত্তর
কী-ওয়ার্ড: Python, C, C++, Java, JavaScript, PHP, C#, Kotlin
কয়েকটি প্রোগ্রামিং ল্যাংগুয়েজ:
- Python
- C
- C++
- Java
- JavaScript
- PHP
- C#
- Kotlin
- Swift
- FORTRAN
- COBOL
- BASIC
- ৪.১-সং-১১★★বই: পৃষ্ঠা ৮০
১১.পাইথনকে জেনারেল পারপাস ল্যাংগুয়েজ বলা হয় কেন?
উত্তর
কী-ওয়ার্ড: বহুমুখী ব্যবহার, ওয়েব, ডাটা সায়েন্স, AI, অটোমেশন, গেম, ডেস্কটপ অ্যাপ
যে প্রোগ্রামিং ভাষা কোনো নির্দিষ্ট একটি কাজের জন্য সীমাবদ্ধ না থেকে নানা ধরনের সমস্যা সমাধানে ব্যবহার করা যায়, তাকে জেনারেল পারপাস ল্যাংগুয়েজ বলে। পাইথনকে জেনারেল পারপাস ল্যাংগুয়েজ বলা হয় কারণ এটি দিয়ে—
- ওয়েবসাইট ও ওয়েব অ্যাপ্লিকেশন (Django, Flask)
- ডাটা বিশ্লেষণ ও ডাটা সায়েন্স (Pandas, NumPy)
- কৃত্রিম বুদ্ধিমত্তা ও মেশিন লার্নিং (TensorFlow, scikit-learn)
- অটোমেশন ও স্ক্রিপ্টিং
- ডেস্কটপ অ্যাপ্লিকেশন (Tkinter) ও গেম (Pygame)
- বৈজ্ঞানিক হিসাব, রোবটিক্স ও IoT
সব ধরনের কাজ তৈরি করা যায়। এর বিশাল লাইব্রেরি ও সহজ সিনট্যাক্স একে বহুমুখী করেছে।
- ৪.১-সং-১২★★★বই: পৃষ্ঠা ৮১
১২.অ্যালগরিদম তৈরির শর্ত বা নিয়ম লেখ।
উত্তর
কী-ওয়ার্ড: ইনপুট, আউটপুট, সুনির্দিষ্টতা, সসীমতা, কার্যকারিতা, শুরু ও শেষ
অ্যালগরিদম তৈরির শর্ত বা নিয়মসমূহ:
- ইনপুট: শূন্য বা এক বা একাধিক ইনপুট থাকবে।
- আউটপুট: অন্তত একটি আউটপুট বা ফলাফল থাকবে।
- সুনির্দিষ্টতা (Definiteness): প্রতিটি ধাপ স্পষ্ট ও দ্ব্যর্থহীন হবে।
- সসীমতা (Finiteness): নির্দিষ্ট সংখ্যক ধাপের পর অবশ্যই শেষ হবে।
- কার্যকারিতা (Effectiveness): প্রতিটি ধাপ বাস্তবে সম্পাদনযোগ্য হবে।
- অ্যালগরিদমের একটি শুরু ও একটি শেষ থাকবে এবং ধাপগুলো ক্রমানুসারে সাজানো থাকবে।
- এটি কোনো নির্দিষ্ট প্রোগ্রামিং ভাষার উপর নির্ভরশীল হবে না।
- ৪.১-সং-১৩★★★বই: পৃষ্ঠা ৮১
১৩.ফ্লোচার্ট তৈরি করার নিয়মাবলি বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: প্রমিত প্রতীক, উপর থেকে নিচে/বাম থেকে ডানে, একটি শুরু ও শেষ, তীর না কাটা, সংক্ষিপ্ত লেখা
ফ্লোচার্ট তৈরি করার নিয়মাবলি:
- আন্তর্জাতিকভাবে প্রমিত (ANSI) প্রতীক ব্যবহার করতে হবে।
- ফ্লোচার্টের প্রবাহ উপর থেকে নিচে এবং বাম থেকে ডানে হবে।
- একটি মাত্র শুরু (Start) ও একটি শেষ (End) প্রতীক থাকবে।
- প্রতীকের ভেতরের লেখা সংক্ষিপ্ত ও স্পষ্ট হবে।
- প্রক্রিয়া প্রতীক থেকে একটি মাত্র প্রবাহ রেখা বের হবে; সিদ্ধান্ত প্রতীক থেকে হ্যাঁ/না দুটি পথ বের হবে।
- প্রবাহ রেখাগুলো যথাসম্ভব পরস্পরকে ছেদ করবে না।
- ফ্লোচার্ট বড় হলে কানেক্টর ব্যবহার করে অংশগুলো যুক্ত করতে হবে।
- ফ্লোচার্ট সহজ, পরিচ্ছন্ন ও এক পৃষ্ঠায় রাখার চেষ্টা করতে হবে।
ফ্লোচার্টের প্রমিত প্রতীক
- ৪.১-সং-১৪★★বই: পৃষ্ঠা ৮১
১৪.আইডেন্টিফায়ার লেখার নিয়ম বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: বর্ণ, অঙ্ক, আন্ডারস্কোর, অঙ্ক দিয়ে শুরু নয়, কী-ওয়ার্ড নয়, স্পেস নয়, কেস-সেনসিটিভ
প্রোগ্রামে ভেরিয়েবল, ফাংশন, ক্লাস ইত্যাদির নামকে আইডেন্টিফায়ার বলে। পাইথনে আইডেন্টিফায়ার লেখার নিয়ম:
- ইংরেজি বর্ণ (a–z, A–Z), অঙ্ক (0–9) ও আন্ডারস্কোর (_) ব্যবহার করা যায়।
- প্রথম অক্ষর অবশ্যই বর্ণ বা আন্ডারস্কোর হবে; অঙ্ক দিয়ে শুরু করা যাবে না। যেমন
1nameভুল,name1সঠিক। - কোনো ফাঁকা স্থান (Space) রাখা যাবে না।
student nameভুল,student_nameসঠিক। - @, $, %, # ইত্যাদি বিশেষ চিহ্ন ব্যবহার করা যাবে না।
- পাইথনের কী-ওয়ার্ড (if, for, class ইত্যাদি) নাম হিসেবে ব্যবহার করা যাবে না।
- পাইথন কেস-সেনসিটিভ:
Totalওtotalদুটি আলাদা নাম। - নাম অর্থবহ হওয়া উচিত, যেমন
total_marks; একাধিক শব্দ আন্ডারস্কোর দিয়ে যুক্ত করা হয় (snake_case)।
- ৪.১-সং-১৫★★বই: পৃষ্ঠা ৮১
১৫.কম্পিউটার প্রোগ্রাম ব্যবহারের উল্লেখযোগ্য ক্ষেত্রসমূহ উল্লেখ কর।
উত্তর
কী-ওয়ার্ড: শিক্ষা, ব্যাংকিং, চিকিৎসা, ব্যবসা, যোগাযোগ, বিনোদন, গবেষণা, শিল্প
কম্পিউটার প্রোগ্রাম ব্যবহারের উল্লেখযোগ্য ক্ষেত্রসমূহ:
ক্ষেত্র উদাহরণ শিক্ষা অনলাইন ক্লাস, ফলাফল প্রকাশ, শিক্ষা ব্যবস্থাপনা সফটওয়্যার ব্যাংকিং ও অর্থনীতি অনলাইন ব্যাংকিং, ATM, মোবাইল ব্যাংকিং চিকিৎসা রোগ নির্ণয় যন্ত্র, হাসপাতাল ব্যবস্থাপনা ব্যবসা-বাণিজ্য হিসাবরক্ষণ, ই-কমার্স, মজুদ নিয়ন্ত্রণ যোগাযোগ মোবাইল অ্যাপ, ই-মেইল, সামাজিক মাধ্যম বিনোদন গেম, ভিডিও এডিটিং, অ্যানিমেশন শিল্প-কারখানা রোবট ও স্বয়ংক্রিয় যন্ত্র নিয়ন্ত্রণ গবেষণা ও বিজ্ঞান আবহাওয়ার পূর্বাভাস, মহাকাশ গবেষণা, AI - ৪.১-সং-১৬★★★বই: পৃষ্ঠা ৮১
১৬.৩টি সংখ্যার মধ্যে বড় সংখ্যাটি নির্ণয় করার ফ্লোচার্ট অঙ্কন কর।
উত্তর
কী-ওয়ার্ড: শুরু, ইনপুট A B C, A>B?, A>C?, B>C?, প্রিন্ট বড় সংখ্যা, শেষ
৩টি সংখ্যা A, B ও C-এর মধ্যে বড় সংখ্যাটি নির্ণয়ের ফ্লোচার্ট নিচে দেওয়া হলো। প্রথমে A ও B তুলনা করা হয়; যেটি বড় তাকে C-এর সাথে তুলনা করে সবচেয়ে বড় সংখ্যাটি প্রিন্ট করা হয়।
- ৪.১-সং-১৭★★বই: পৃষ্ঠা ৮২
১৭.একটি আয়তক্ষেত্রের ক্ষেত্রফল নির্ণয় করার জন্য অ্যালগরিদম লেখ।
- অথবা, আয়তক্ষেত্রের ক্ষেত্রফল নির্ণয়ের অ্যালগরিদম (Algorithm) লেখ।
উত্তর
কী-ওয়ার্ড: শুরু, দৈর্ঘ্য ও প্রস্থ ইনপুট, ক্ষেত্রফল = দৈর্ঘ্য × প্রস্থ, প্রিন্ট, শেষ
আয়তক্ষেত্রের ক্ষেত্রফল নির্ণয়ের অ্যালগরিদম:
- শুরু।
- দৈর্ঘ্য (L) ও প্রস্থ (W) ইনপুট নাও।
- ক্ষেত্রফল নির্ণয় করো: area = L × W।
- area প্রিন্ট করো।
- শেষ।
পাইথন প্রোগ্রাম:
length = float(input("দৈর্ঘ্য: ")) width = float(input("প্রস্থ: ")) area = length * width print("ক্ষেত্রফল =", area)নমুনা আউটপুট:
দৈর্ঘ্য: 8 প্রস্থ: 5 ক্ষেত্রফল = 40.0আয়তক্ষেত্রের ক্ষেত্রফলের ফ্লোচার্ট
- ৪.১-সং-১৮★বই: পৃষ্ঠা ৮২
১৮.ইনডেন্টেশন বলতে কী বুঝায়?
উত্তর
কী-ওয়ার্ড: লাইনের শুরুতে ফাঁকা স্থান, কোড ব্লক নির্ধারণ, ৪টি স্পেস, IndentationError
ইনডেন্টেশন: কোডের লাইনের শুরুতে নির্দিষ্ট পরিমাণ ফাঁকা স্থান (সাধারণত ৪টি স্পেস) রেখে লেখাকে ইনডেন্টেশন বলে। অন্যান্য ভাষায় { } দিয়ে কোড ব্লক বোঝানো হলেও পাইথনে ইনডেন্টেশন দিয়েই বোঝানো হয় কোন লাইনগুলো if, for, def ইত্যাদির অধীনে।
if marks >= 33: print("পাস") # ইনডেন্টেড — if-এর অংশ print("শেষ") # ইনডেন্টেশন নেই — if-এর বাইরেভুল ইনডেন্টেশন দিলে পাইথন
IndentationErrorদেখায়। - ৪.১-সং-১৯★বই: পৃষ্ঠা ৮২
১৯.ওপেন সোর্স সফটওয়্যার বলতে কী বুঝায়?
উত্তর
কী-ওয়ার্ড: সোর্স কোড উন্মুক্ত, বিনামূল্যে, পরিবর্তন ও বিতরণযোগ্য, Linux, Python, LibreOffice
ওপেন সোর্স সফটওয়্যার: যে সফটওয়্যারের সোর্স কোড সবার জন্য উন্মুক্ত এবং যে কেউ বিনামূল্যে ব্যবহার, অধ্যয়ন, পরিবর্তন ও পুনর্বিতরণ করতে পারে, তাকে ওপেন সোর্স সফটওয়্যার বলে।
উদাহরণ: Linux, Python, LibreOffice, Mozilla Firefox, VLC Media Player, Android, MySQL।
- ৪.১-সং-২০★★★বই: পৃষ্ঠা ৮২
২০.পাইথনের উল্লেখযোগ্য ব্যবহারিক ক্ষেত্রসমূহ উল্লেখ কর।
উত্তর
কী-ওয়ার্ড: ওয়েব ডেভেলপমেন্ট, ডাটা সায়েন্স, AI ও মেশিন লার্নিং, অটোমেশন, গেম, IoT, শিক্ষা
পাইথনের উল্লেখযোগ্য ব্যবহারিক ক্ষেত্রসমূহ:
ক্ষেত্র লাইব্রেরি/উদাহরণ ওয়েব ডেভেলপমেন্ট Django, Flask — Instagram-এর ব্যাকএন্ড ডাটা বিশ্লেষণ ও ডাটা সায়েন্স Pandas, NumPy, Matplotlib কৃত্রিম বুদ্ধিমত্তা ও মেশিন লার্নিং TensorFlow, PyTorch, scikit-learn অটোমেশন ও স্ক্রিপ্টিং ফাইল সাজানো, রিপোর্ট তৈরি, ওয়েব স্ক্র্যাপিং গেম ডেভেলপমেন্ট Pygame ডেস্কটপ অ্যাপ্লিকেশন Tkinter, PyQt IoT ও রোবটিক্স Raspberry Pi, MicroPython সাইবার নিরাপত্তা নেটওয়ার্ক স্ক্যানিং টুল শিক্ষা ও গবেষণা প্রোগ্রামিং শেখা, বৈজ্ঞানিক হিসাব (SciPy) - ৪.১-সং-২১★★★বই: পৃষ্ঠা ৮২
২১.পাইথন প্রোগ্রাম স্ট্রাকচারের উল্লেখযোগ্য অংশসমূহ কী কী?
উত্তর
কী-ওয়ার্ড: ডকুমেন্টেশন (কমেন্ট), ইমপোর্ট, গ্লোবাল ভেরিয়েবল, ফাংশন সংজ্ঞা, মূল প্রোগ্রাম
একটি পাইথন প্রোগ্রামের উল্লেখযোগ্য অংশসমূহ:
- ডকুমেন্টেশন অংশ: কমেন্ট (#) বা ডকস্ট্রিং দিয়ে প্রোগ্রামের নাম, উদ্দেশ্য ও লেখকের তথ্য।
- ইমপোর্ট অংশ: প্রয়োজনীয় মডিউল বা লাইব্রেরি যুক্ত করা (import math)।
- গ্লোবাল ভেরিয়েবল/ধ্রুবক: পুরো প্রোগ্রামে ব্যবহৃত মান।
- ফাংশন সংজ্ঞা: def দিয়ে নিজস্ব ফাংশন তৈরি।
- মূল প্রোগ্রাম: ইনপুট, প্রক্রিয়াকরণ ও আউটপুটের মূল স্টেটমেন্ট।
# ১. ডকুমেন্টেশন: প্রোগ্রামের নাম ও উদ্দেশ্য (কমেন্ট) # বৃত্তের ক্ষেত্রফল নির্ণয়ের প্রোগ্রাম # ২. ইমপোর্ট অংশ import math # ৩. গ্লোবাল ভেরিয়েবল / ধ্রুবক PI = math.pi # ৪. ফাংশন সংজ্ঞা def area(r): return PI * r * r # ৫. মূল প্রোগ্রাম if __name__ == "__main__": r = float(input("ব্যাসার্ধ: ")) print("ক্ষেত্রফল =", round(area(r), 2))নমুনা আউটপুট:
ব্যাসার্ধ: 7 ক্ষেত্রফল = 153.94 - ৪.১-সং-২২★★★বই: পৃষ্ঠা ৮২
২২.ফারেনহাইট তাপমাত্রাকে সেন্টিগ্রেডে রূপান্তরের একটি প্রোগ্রাম লেখ।
উত্তর
কী-ওয়ার্ড: input(), float(), C = (F − 32) × 5 / 9, print()
ফারেনহাইট (F) থেকে সেন্টিগ্রেড (C) রূপান্তরের সূত্র: C = (F − 32) × 5 / 9
# ফারেনহাইট থেকে সেন্টিগ্রেড রূপান্তর f = float(input("ফারেনহাইট তাপমাত্রা দাও: ")) c = (f - 32) * 5 / 9 print("সেন্টিগ্রেড তাপমাত্রা =", round(c, 2))নমুনা আউটপুট:
ফারেনহাইট তাপমাত্রা দাও: 98.6 সেন্টিগ্রেড তাপমাত্রা = 37.0 - ৪.১-সং-২৩★★বই: পৃষ্ঠা ৮২
২৩.শর্টহ্যান্ড অ্যাসাইনমেন্ট অপারেটরের কাজ কী?
উত্তর
কী-ওয়ার্ড: +=, -=, *=, /=, //=, %=, **=, সংক্ষেপে হিসাব ও মান নির্ধারণ
শর্টহ্যান্ড অ্যাসাইনমেন্ট অপারেটর: একটি গাণিতিক অপারেশন ও অ্যাসাইনমেন্ট একসাথে সংক্ষেপে করার অপারেটরকে শর্টহ্যান্ড (Compound) অ্যাসাইনমেন্ট অপারেটর বলে। যেমন
x = x + 5-এর বদলেx += 5। এতে কোড ছোট ও পরিচ্ছন্ন হয়।অপারেটর উদাহরণ সমতুল্য = x = 5 — += x += 3 x = x + 3 -= x -= 3 x = x - 3 *= x *= 3 x = x * 3 /= x /= 3 x = x / 3 //= x //= 3 x = x // 3 %= x %= 3 x = x % 3 **= x **= 3 x = x ** 3 x = 10 x += 5 # x = x + 5 → 15 x -= 3 # x = x - 3 → 12 x *= 2 # x = x * 2 → 24 x //= 5 # x = x // 5 → 4 x **= 2 # x = x ** 2 → 16 print(x)নমুনা আউটপুট:
16 - ৪.১-সং-২৪★★বই: পৃষ্ঠা ৮২
২৪.অপারেটরগুলোর নাম উল্লেখ কর : ~, –, %, ^
উত্তর
কী-ওয়ার্ড: ~ বিটওয়াইজ NOT, – বিয়োগ/ঋণাত্মক, % মডুলাস (ভাগশেষ), ^ বিটওয়াইজ XOR
অপারেটর নাম কাজ ~ বিটওয়াইজ NOT (কমপ্লিমেন্ট) সংখ্যার সব বিট উল্টে দেয়; ~x = −(x+1) – বিয়োগ (Subtraction) / ইউনারি মাইনাস একটি সংখ্যা থেকে অন্যটি বিয়োগ করে বা ঋণাত্মক করে % মডুলাস (Modulus) ভাগশেষ নির্ণয় করে ^ বিটওয়াইজ XOR দুটি বিট ভিন্ন হলে 1, একই হলে 0 print(~5) # বিটওয়াইজ NOT → -6 print(9 - 4) # বিয়োগ → 5 print(-7) # ঋণাত্মক চিহ্ন → -7 print(17 % 5) # ভাগশেষ → 2 print(6 ^ 3) # বিটওয়াইজ XOR: 110 ^ 011 = 101 → 5নমুনা আউটপুট:
-6 5 -7 2 5লক্ষণীয়: পাইথনে ^ ঘাত (Power) নয়; ঘাতের জন্য ** ব্যবহৃত হয়।
- ৪.১-সং-২৫★★★বই: পৃষ্ঠা ৮৩
২৫.x = 10, y = 20, z = 30 হলে ((x + y) > z) and ((y + z) > x)-এর মান কত হবে?
উত্তর
কী-ওয়ার্ড: (30 > 30) False, (50 > 10) True, False and True = False
প্রদত্ত, x = 10, y = 20, z = 30
ধাপ ১: (x + y) > z → (10 + 20) > 30 → 30 > 30 → False
ধাপ ২: (y + z) > x → (20 + 30) > 10 → 50 > 10 → True
ধাপ ৩: False and True → False (and অপারেটরে দুটিই True না হলে ফলাফল False)
সুতরাং নির্ণেয় মান: False
x, y, z = 10, 20, 30 result = ((x + y) > z) and ((y + z) > x) print(result)নমুনা আউটপুট:
False - ৪.১-সং-২৬★★★বই: পৃষ্ঠা ৮৩
২৬.প্রোগ্রামিং ল্যাংগুয়েজ বলতে কী বুঝায়?
উত্তর
কী-ওয়ার্ড: কম্পিউটারকে নির্দেশ দেওয়ার কৃত্রিম ভাষা, নিয়ম ও শব্দভান্ডার, Python, C
প্রোগ্রামিং ল্যাংগুয়েজ: কম্পিউটারকে দিয়ে কোনো কাজ করানোর জন্য নির্দিষ্ট শব্দভান্ডার, চিহ্ন ও ব্যাকরণ (সিনট্যাক্স) মেনে নির্দেশনা লেখার কৃত্রিম ভাষাকে প্রোগ্রামিং ল্যাংগুয়েজ বলে।
এর মাধ্যমে মানুষ ও কম্পিউটারের মধ্যে যোগাযোগ হয়। উদাহরণ: Python, C, Java, JavaScript।
- ৪.১-সং-২৭★★★বই: পৃষ্ঠা ৮৩
২৭.প্রোগ্রামিং ল্যাংগুয়েজের প্রকারভেদ লেখ।
উত্তর
কী-ওয়ার্ড: লো-লেভেল (মেশিন, অ্যাসেম্বলি), হাই-লেভেল, প্রজন্ম 1GL–5GL
প্রোগ্রামিং ল্যাংগুয়েজ প্রধানত দুই প্রকার: লো-লেভেল (মেশিন ও অ্যাসেম্বলি ভাষা) এবং হাই-লেভেল। প্রজন্ম অনুযায়ী পাঁচ প্রকার:
প্রজন্ম ভাষা বৈশিষ্ট্য উদাহরণ প্রথম (1GL) মেশিন ভাষা ০ ও ১ দিয়ে লেখা; কম্পিউটার সরাসরি বোঝে 10110000 01100001 দ্বিতীয় (2GL) অ্যাসেম্বলি ভাষা নেমোনিক কোড; অ্যাসেম্বলার লাগে MOV A, 5 তৃতীয় (3GL) হাই-লেভেল ভাষা ইংরেজির কাছাকাছি; কম্পাইলার/ইন্টারপ্রেটার লাগে C, Java, Python চতুর্থ (4GL) অতি উচ্চস্তরের ভাষা কী করতে হবে শুধু তা বললেই হয় SQL পঞ্চম (5GL) স্বাভাবিক ভাষা কৃত্রিম বুদ্ধিমত্তাভিত্তিক; মানুষের ভাষার কাছাকাছি Prolog, Mercury - ৪.১-সং-২৮★★বই: পৃষ্ঠা ৮৩
২৮.মেশিন ল্যাংগুয়েজ ও অ্যাসেম্বলি ল্যাংগুয়েজের সংজ্ঞা দাও।
উত্তর
কী-ওয়ার্ড: মেশিন ভাষা: ০ ও ১, সরাসরি বোঝে; অ্যাসেম্বলি: নেমোনিক, অ্যাসেম্বলার
মেশিন ল্যাংগুয়েজ: শুধু ০ ও ১ (বাইনারি) দিয়ে লেখা যে ভাষা কম্পিউটার কোনো অনুবাদক ছাড়াই সরাসরি বুঝতে পারে, তাকে মেশিন ল্যাংগুয়েজ বলে। এটি প্রথম প্রজন্মের ভাষা। যেমন
10110000 01100001অ্যাসেম্বলি ল্যাংগুয়েজ: মেশিন ভাষার ০ ও ১-এর বদলে সংক্ষিপ্ত ইংরেজি সংকেত (নেমোনিক) ব্যবহার করে লেখা ভাষাকে অ্যাসেম্বলি ল্যাংগুয়েজ বলে। একে মেশিন ভাষায় রূপান্তরে অ্যাসেম্বলার লাগে। যেমন
MOV A, 5,ADD A, B - ৪.১-সং-২৯★বই: পৃষ্ঠা ৮৩
২৯.কয়েকটি High Level Language-এর নাম লেখ।
উত্তর
কী-ওয়ার্ড: Python, C, C++, Java, JavaScript, PHP, C#, BASIC
কয়েকটি হাই-লেভেল ল্যাংগুয়েজ:
- Python
- C
- C++
- Java
- JavaScript
- PHP
- C#
- Visual Basic
- FORTRAN
- COBOL
- ৪.১-সং-৩০★★বই: পৃষ্ঠা ৮৩
৩০.অ্যালগরিদম ও ফ্লোচার্ট কী?
উত্তর
কী-ওয়ার্ড: অ্যালগরিদম: ধাপে ধাপে লিখিত সমাধান; ফ্লোচার্ট: প্রতীকে চিত্ররূপ
অ্যালগরিদম: কোনো সমস্যা সমাধানের জন্য ধাপে ধাপে সাজানো সসীম সংখ্যক যৌক্তিক নির্দেশনার লিখিত রূপকে অ্যালগরিদম বলে।
ফ্লোচার্ট: অ্যালগরিদমের ধাপগুলোকে নির্দিষ্ট প্রতীক ও তীরচিহ্নের মাধ্যমে চিত্রের সাহায্যে প্রকাশ করাকে ফ্লোচার্ট বলে।
উদাহরণ — দুটি সংখ্যা যোগের অ্যালগরিদম: ১. শুরু ২. a, b ইনপুট ৩. sum = a + b ৪. sum প্রিন্ট ৫. শেষ।
একই সমস্যার ফ্লোচার্ট
- ৪.১-সং-৩১★★বই: পৃষ্ঠা ৮৩
৩১.দুটি সংখ্যার যোগফল নির্ণয়ের অ্যালগরিদম ও ফ্লোচার্ট লেখ।
উত্তর
কী-ওয়ার্ড: শুরু, ইনপুট a b, sum = a + b, প্রিন্ট sum, শেষ
অ্যালগরিদম:
- শুরু।
- দুটি সংখ্যা a ও b ইনপুট নাও।
- যোগফল নির্ণয় করো: sum = a + b।
- sum প্রিন্ট করো।
- শেষ।
ফ্লোচার্ট:
পাইথন প্রোগ্রাম:
a = int(input("প্রথম সংখ্যা: ")) b = int(input("দ্বিতীয় সংখ্যা: ")) total = a + b print("যোগফল =", total)নমুনা আউটপুট:
প্রথম সংখ্যা: 15 দ্বিতীয় সংখ্যা: 25 যোগফল = 40 - ৪.১-সং-৩২★★★বই: পৃষ্ঠা ৮৪
৩২.বৃত্তের ক্ষেত্রফল নির্ণয়ের অ্যালগরিদম ও ফ্লোচার্ট লেখ।
উত্তর
কী-ওয়ার্ড: শুরু, ব্যাসার্ধ r ইনপুট, area = πr² (3.1416 × r × r), প্রিন্ট, শেষ
অ্যালগরিদম:
- শুরু।
- ব্যাসার্ধ r ইনপুট নাও।
- ক্ষেত্রফল নির্ণয় করো: area = 3.1416 × r × r।
- area প্রিন্ট করো।
- শেষ।
ফ্লোচার্ট:
পাইথন প্রোগ্রাম:
r = float(input("ব্যাসার্ধ দাও: ")) area = 3.1416 * r * r print("বৃত্তের ক্ষেত্রফল =", area)নমুনা আউটপুট:
ব্যাসার্ধ দাও: 5 বৃত্তের ক্ষেত্রফল = 78.54 - ৪.১-সং-৩৩★★★বই: পৃষ্ঠা ৮৪
৩৩.ভেরিয়েবল এবং আইডেন্টিফায়ার কী?
উত্তর
কী-ওয়ার্ড: ভেরিয়েবল: মেমরির নামযুক্ত স্থান, মান বদলায়; আইডেন্টিফায়ার: যেকোনো উপাদানের নাম
ভেরিয়েবল: প্রোগ্রাম চলার সময় ডাটা বা মান সংরক্ষণের জন্য মেমরির যে নামযুক্ত স্থান ব্যবহার করা হয় এবং যার মান পরিবর্তন করা যায়, তাকে ভেরিয়েবল বলে। যেমন
age = 18; এখানে age একটি ভেরিয়েবল।আইডেন্টিফায়ার: প্রোগ্রামে ভেরিয়েবল, ফাংশন, ক্লাস, মডিউল ইত্যাদিকে শনাক্ত করার জন্য যে নাম দেওয়া হয়, তাকে আইডেন্টিফায়ার বলে। যেমন
age,calculate_total,Student। সব ভেরিয়েবলের নামই আইডেন্টিফায়ার, তবে সব আইডেন্টিফায়ার ভেরিয়েবল নয়। - ৪.১-সং-৩৪★★বই: পৃষ্ঠা ৮৪
৩৪.অপারেটর ও অপারেন্ড বলতে কী বুঝায়?
উত্তর
কী-ওয়ার্ড: অপারেটর: কাজের চিহ্ন; অপারেন্ড: যার উপর কাজ হয়; a + b
অপারেটর: যে চিহ্ন বা শব্দ এক বা একাধিক মানের উপর গাণিতিক, যৌক্তিক বা তুলনামূলক কাজ সম্পাদন করে, তাকে অপারেটর বলে। যেমন +, −, >, and।
অপারেন্ড: যে মান বা ভেরিয়েবলের উপর অপারেটর কাজ করে, তাকে অপারেন্ড বলে।
উদাহরণ:
a + 5রাশিতে + হলো অপারেটর এবং a ও 5 হলো অপারেন্ড। - ৪.১-সং-৩৫★বই: পৃষ্ঠা ৮৪
৩৫.অ্যাসাইনমেন্ট অপারেটর কাকে বলে?
উত্তর
কী-ওয়ার্ড: = চিহ্ন, ডান পাশের মান বাম পাশের ভেরিয়েবলে, x = 10, +=
অ্যাসাইনমেন্ট অপারেটর: যে অপারেটরের মাধ্যমে কোনো ভেরিয়েবলে মান সংরক্ষণ (নির্ধারণ) করা হয়, তাকে অ্যাসাইনমেন্ট অপারেটর বলে। মূল অ্যাসাইনমেন্ট অপারেটর হলো "=", যা ডান পাশের মানকে বাম পাশের ভেরিয়েবলে রাখে।
উদাহরণ:
x = 10,name = "Rahim"। এছাড়া +=, -=, *= ইত্যাদি শর্টহ্যান্ড অ্যাসাইনমেন্ট অপারেটরও আছে। - ৪.১-সং-৩৬★★★বই: পৃষ্ঠা ৮৪
৩৬.বুলিয়ান অপারেটর-এর ব্যবহার লেখ।
উত্তর
কী-ওয়ার্ড: and, or, not, True/False, শর্ত সংযোজন, ট্রুথ টেবিল
বুলিয়ান (লজিক্যাল) অপারেটর একাধিক শর্তকে যুক্ত করে True বা False ফলাফল দেয়। পাইথনে তিনটি বুলিয়ান অপারেটর আছে: and, or, not।
A B A and B A or B not A True True True True False True False False True False False True False True True False False False False True a, b = True, False print(a and b) # False print(a or b) # True print(not a) # False age = 20 print(age >= 18 and age <= 60) # Trueনমুনা আউটপুট:
False True False Trueব্যবহার: if স্টেটমেন্টে একাধিক শর্ত যাচাই, যেমন বয়স ১৮ থেকে ৬০-এর মধ্যে কিনা।
- ৪.১-সং-৩৭★★★বই: পৃষ্ঠা ৮৪
৩৭.আইডেন্টিটি অপারেটর কী?
উত্তর
কী-ওয়ার্ড: is, is not, একই অবজেক্ট কিনা, মেমরি অবস্থান, == থেকে ভিন্ন
আইডেন্টিটি অপারেটর: দুটি ভেরিয়েবল মেমরিতে একই অবজেক্টকে নির্দেশ করছে কিনা তা যাচাই করার অপারেটরকে আইডেন্টিটি অপারেটর বলে। পাইথনে দুটি আইডেন্টিটি অপারেটর:
isওis not।a = [1, 2, 3] b = a # b একই অবজেক্টকে নির্দেশ করে c = [1, 2, 3] # মান এক, কিন্তু আলাদা অবজেক্ট print(a is b) # True print(a is c) # False print(a == c) # True (মান সমান) print(a is not c) # Trueনমুনা আউটপুট:
True False True Trueলক্ষণীয়: == মান তুলনা করে, আর is অবজেক্টের পরিচয় (মেমরি অবস্থান) তুলনা করে।
রচনামূলক প্রশ্ন (১৬টি)
- ৪.১-র-৫(ক)★★★বই: পৃষ্ঠা ৮৮
১.পাইথনে ব্যবহৃত কী-ওয়ার্ড বলতে কী বুঝায়? এর তালিকা দাও।
উত্তর
কী-ওয়ার্ড: সংরক্ষিত শব্দ, বিশেষ অর্থ, নাম হিসেবে ব্যবহার নিষিদ্ধ, ৩৫টি, keyword.kwlist
কী-ওয়ার্ড: পাইথনে যেসব শব্দের বিশেষ ও নির্দিষ্ট অর্থ আগে থেকে নির্ধারিত আছে এবং যেগুলো ভেরিয়েবল, ফাংশন বা অন্য কোনো আইডেন্টিফায়ারের নাম হিসেবে ব্যবহার করা যায় না, তাদের কী-ওয়ার্ড বা সংরক্ষিত শব্দ (Reserved word) বলে। কী-ওয়ার্ড কেস-সেনসিটিভ; True, False ও None ছাড়া সবগুলো ছোট হাতের।
পাইথন ৩-এর ৩৫টি কী-ওয়ার্ডের তালিকা:
FalseNoneTrueandasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyieldসব কী-ওয়ার্ড দেখতে:
import keyword; print(keyword.kwlist)। এছাড়া match, case, type, _ হলো "সফট কী-ওয়ার্ড", যেগুলো নির্দিষ্ট প্রসঙ্গে কী-ওয়ার্ডের মতো আচরণ করে।সংশোধন: সূচিপত্রে এই প্রশ্নের নম্বরও ৫; বইয়ের নম্বরের পুনরাবৃত্তির কারণে কোড ৪.১-র-৫(ক) দেওয়া হয়েছে।
- ৪.১-র-১বই: পৃষ্ঠা ৮৫
২.ফ্লোচার্টে ব্যবহৃত বিভিন্ন ধরনের প্রতীকসমূহের বর্ণনা দাও। [বিএমটি-২৬]
- অথবা, প্রতিটি ফ্লোচার্টের প্রতীকসহ ব্যবহার উল্লেখ কর। [বিএমটি-২৬]
উত্তর
কী-ওয়ার্ড: টার্মিনাল, ইনপুট/আউটপুট, প্রসেস, ডিসিশন, ফ্লো লাইন, কানেক্টর, প্রতীকের আকৃতি
ভূমিকা: ফ্লোচার্টে বিভিন্ন কাজ বোঝাতে আন্তর্জাতিকভাবে প্রমিত (ANSI) কিছু প্রতীক ব্যবহৃত হয়। নিচে প্রতিটি প্রতীক ও তার ব্যবহার দেওয়া হলো:
প্রতীক আকৃতি ব্যবহার টার্মিনাল (Terminal) ডিম্বাকার/গোলাকার প্রান্তযুক্ত আয়তক্ষেত্র ফ্লোচার্টের শুরু (Start) ও শেষ (End) বোঝাতে ইনপুট/আউটপুট সামান্তরিক ডাটা গ্রহণ (Input) বা ফলাফল প্রদর্শন (Print) বোঝাতে প্রসেসিং (Process) আয়তক্ষেত্র হিসাব-নিকাশ বা ডাটা প্রক্রিয়াকরণ, যেমন sum = a + b ডিসিশন (Decision) রম্বস (ডায়মন্ড) শর্ত যাচাই; হ্যাঁ/না দুটি পথ বের হয় ফ্লো লাইন (Flow line) তীরচিহ্ন কাজের প্রবাহের দিক নির্দেশ করে কানেক্টর (Connector) ছোট বৃত্ত ফ্লোচার্টের বিচ্ছিন্ন অংশ বা পৃষ্ঠা যুক্ত করে প্রিডিফাইনড প্রসেস দুই পাশে দাগযুক্ত আয়তক্ষেত্র আগে থেকে সংজ্ঞায়িত কোনো ফাংশন বা সাবরুটিন অ্যানোটেশন (Annotation) খোলা বন্ধনী ব্যাখ্যামূলক মন্তব্য যোগ করতে উপসংহার: প্রমিত প্রতীক ব্যবহারের ফলে যেকোনো প্রোগ্রামার ফ্লোচার্ট দেখে একই অর্থ বুঝতে পারেন।
- ৪.১-র-২বই: পৃষ্ঠা ৮৬
৩.পাইথন প্রোগ্রামিং-এর ডাটা টাইপ বর্ণনা কর। [বিএমটি-২০২৪, ২৫]
উত্তর
কী-ওয়ার্ড: Numeric (int, float, complex), Sequence (str, list, tuple, range), Mapping (dict), Set, Boolean, None
ভূমিকা: পাইথনে ডাটা টাইপ নির্ধারণ করে একটি ভেরিয়েবলে কী ধরনের মান রাখা যাবে। পাইথন ডাইনামিক টাইপড, তাই মান দেখেই টাইপ নির্ধারিত হয়। প্রধান ডাটা টাইপগুলো:
শ্রেণি ডাটা টাইপ বৈশিষ্ট্য উদাহরণ সংখ্যা (Numeric) int দশমিকহীন পূর্ণসংখ্যা age = 18float দশমিক সংখ্যা gpa = 4.75complex বাস্তব ও কাল্পনিক অংশবিশিষ্ট সংখ্যা z = 3 + 4jসিকোয়েন্স (Sequence) str অক্ষরের ক্রম; পরিবর্তনযোগ্য নয় name = "Rahim"list ক্রমানুসারী, পরিবর্তনযোগ্য তালিকা; [ ] marks = [80, 75, 90]tuple ক্রমানুসারী, অপরিবর্তনযোগ্য তালিকা; ( ) point = (10, 20)range সংখ্যার ধারা range(1, 6)ম্যাপিং (Mapping) dict key: value জোড়া; { } s = {"roll": 1, "name": "Rahim"}সেট (Set) set পুনরাবৃত্তিহীন, ক্রমহীন সংগ্রহ ids = {1, 2, 3}বুলিয়ান bool True বা False passed = Trueনান (None) NoneType কোনো মান নেই x = Noneকোনো ভেরিয়েবলের টাইপ জানতে
type()ফাংশন ব্যবহার করা হয়:a = 25 # int b = 3.14 # float c = 2 + 3j # complex name = "Rahim" # str passed = True # bool marks = [85, 90] # list point = (10, 20) # tuple student = {"roll": 101, "name": "Rahim"} # dict ids = {1, 2, 3} # set x = None # NoneType print(type(a), type(b), type(name), type(passed))নমুনা আউটপুট:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>টাইপ রূপান্তর:
int("25")→ 25,float(5)→ 5.0,str(100)→ "100"। - ৪.১-র-৩★★বই: পৃষ্ঠা ৮৬
৪.পাইথনে আইডেন্টিফায়ার এবং ভেরিয়েবলের মধ্যে পার্থক্য লেখ। [বিএমটি-২৫]
উত্তর
কী-ওয়ার্ড: আইডেন্টিফায়ার: যেকোনো উপাদানের নাম; ভেরিয়েবল: মান রাখার নামযুক্ত মেমরি
পাইথনে আইডেন্টিফায়ার ও ভেরিয়েবলের পার্থক্য:
বিষয় আইডেন্টিফায়ার ভেরিয়েবল সংজ্ঞা ভেরিয়েবল, ফাংশন, ক্লাস, মডিউল ইত্যাদির নাম মান সংরক্ষণের জন্য মেমরির নামযুক্ত স্থান পরিধি বৃহত্তর ধারণা; ভেরিয়েবলের নামও আইডেন্টিফায়ার আইডেন্টিফায়ারের একটি প্রকার মান নিজে কোনো মান ধারণ করে না, শুধু নাম মান ধারণ করে এবং মান পরিবর্তন করা যায় মেমরি নিজে মেমরি দখল করে না মান রাখার জন্য মেমরি ব্যবহার করে উদাহরণ total,get_result(),Studenttotal = 450উদাহরণ:
def area(r):লাইনে area ও r দুটিই আইডেন্টিফায়ার; তবে r একটি ভেরিয়েবল আর area একটি ফাংশনের নাম। - ৪.১-র-৪বই: পৃষ্ঠা ৮৭
৫.বিভিন্ন ধরনের পাইথন অপারেটরের নাম ও কাজ বর্ণনা কর। [বিএমটি-২০২৪]
উত্তর
কী-ওয়ার্ড: গাণিতিক, তুলনামূলক, অ্যাসাইনমেন্ট, লজিক্যাল, বিটওয়াইজ, মেম্বারশিপ, আইডেন্টিটি
ভূমিকা: পাইথনে অপারেটরকে কাজ অনুযায়ী সাত ভাগে ভাগ করা যায়:
১. গাণিতিক (Arithmetic) অপারেটর
অপারেটর নাম উদাহরণ (a=10, b=3) ফলাফল + যোগ a + b 13 - বিয়োগ a - b 7 * গুণ a * b 30 / ভাগ a / b 3.333… // ফ্লোর ভাগ (পূর্ণ ভাগফল) a // b 3 % ভাগশেষ (Modulus) a % b 1 ** ঘাত (Power) a ** b 1000 ২. তুলনামূলক (Comparison/Relational) অপারেটর
অপারেটর অর্থ উদাহরণ (a=10, b=3) ফলাফল == সমান a == b False != অসমান a != b True > বড় a > b True < ছোট a < b False >= বড় বা সমান a >= b True <= ছোট বা সমান a <= b False ৩. অ্যাসাইনমেন্ট অপারেটর
অপারেটর উদাহরণ সমতুল্য = x = 5 — += x += 3 x = x + 3 -= x -= 3 x = x - 3 *= x *= 3 x = x * 3 /= x /= 3 x = x / 3 //= x //= 3 x = x // 3 %= x %= 3 x = x % 3 **= x **= 3 x = x ** 3 ৪. লজিক্যাল অপারেটর
অপারেটর কাজ উদাহরণ ফলাফল and দুটি শর্তই সত্য হলে True (5 > 3) and (2 > 1) True or যেকোনো একটি সত্য হলে True (5 < 3) or (2 > 1) True not ফলাফল উল্টে দেয় not (5 > 3) False ৫. বিটওয়াইজ অপারেটর
অপারেটর নাম উদাহরণ (a=12 → 1100, b=10 → 1010) ফলাফল & বিটওয়াইজ AND a & b → 1000 8 বিটওয়াইজ OR a ^ বিটওয়াইজ XOR a ^ b → 0110 6 ~ বিটওয়াইজ NOT ~a = -(a+1) -13 << লেফট শিফট a << 2 → 110000 48 >> রাইট শিফট a >> 2 → 11 3 ৬ ও ৭. মেম্বারশিপ ও আইডেন্টিটি অপারেটর
অপারেটর ধরন কাজ উদাহরণ is আইডেন্টিটি দুটি ভেরিয়েবল একই অবজেক্ট হলে True a is b is not আইডেন্টিটি ভিন্ন অবজেক্ট হলে True a is not c in মেম্বারশিপ মানটি সিকোয়েন্সে থাকলে True "আম" in fruits not in মেম্বারশিপ মানটি না থাকলে True "আপেল" not in fruits - ৪.১-র-৫বই: পৃষ্ঠা ৮৭
৬.পাইথন প্রোগ্রামের বৈশিষ্ট্যগুলো লেখ। [বিএমটি-২০২৩]
উত্তর
কী-ওয়ার্ড: সহজ সিনট্যাক্স, ইন্টারপ্রেটেড, ওপেন সোর্স, প্ল্যাটফর্ম নিরপেক্ষ, ডাইনামিক টাইপিং, OOP, বিশাল লাইব্রেরি
পাইথন ১৯৯১ সালে গুইডো ভ্যান রসাম (Guido van Rossum) তৈরি করেন। এর প্রধান বৈশিষ্ট্যগুলো হলো:
- সহজ ও পাঠযোগ্য: ইংরেজির কাছাকাছি সরল সিনট্যাক্স, তাই নতুনদের শেখা সহজ।
- ইন্টারপ্রেটেড: কম্পাইল না করেই লাইন বাই লাইন চালানো যায়, ভুল দ্রুত ধরা পড়ে।
- ফ্রি ও ওপেন সোর্স: বিনামূল্যে ব্যবহার, পরিবর্তন ও বিতরণ করা যায়।
- প্ল্যাটফর্ম নিরপেক্ষ: Windows, Linux, macOS সব জায়গায় একই কোড চলে।
- ডাইনামিক টাইপিং: ভেরিয়েবলের ডাটা টাইপ আগে ঘোষণা করতে হয় না।
- অবজেক্ট-ওরিয়েন্টেড: ক্লাস ও অবজেক্ট সমর্থন করে, আবার প্রসিডিউরাল পদ্ধতিতেও লেখা যায়।
- বিশাল লাইব্রেরি: NumPy, Pandas, Django, TensorFlow-এর মতো হাজারো লাইব্রেরি আছে।
- জেনারেল পারপাস: ওয়েব, ডাটা সায়েন্স, AI, অটোমেশন, গেমসহ প্রায় সব ক্ষেত্রে ব্যবহারযোগ্য।
- ইনডেন্টেশনভিত্তিক ব্লক: {} এর বদলে ইনডেন্টেশন দিয়ে কোড ব্লক হয়, ফলে কোড পরিচ্ছন্ন থাকে।
- বড় কমিউনিটি: সমস্যার সমাধান ও শেখার রিসোর্স সহজে পাওয়া যায়।
উদাহরণ — অন্য ভাষার তুলনায় সহজ সিনট্যাক্স:
print("Hello, World!")— মাত্র এক লাইনেই প্রোগ্রাম। - ৪.১-র-৬★★★বই: পৃষ্ঠা ৮৮
৭.কম্পাইলার ও ইন্টারপ্রিটারের মধ্যে পার্থক্য লেখ।
উত্তর
কী-ওয়ার্ড: পুরো প্রোগ্রাম একসাথে বনাম লাইন বাই লাইন, অবজেক্ট কোড, গতি, ত্রুটি প্রদর্শন, C বনাম Python
কম্পাইলার ও ইন্টারপ্রেটার উভয়ই হাই-লেভেল ভাষাকে মেশিন ভাষায় অনুবাদ করে। এদের পার্থক্য:
বিষয় কম্পাইলার ইন্টারপ্রেটার অনুবাদ পদ্ধতি পুরো প্রোগ্রাম একসাথে অনুবাদ করে এক লাইন করে অনুবাদ ও সাথে সাথে চালায় অবজেক্ট কোড আলাদা অবজেক্ট/এক্সিকিউটেবল ফাইল (.exe) তৈরি করে স্থায়ী অবজেক্ট ফাইল তৈরি করে না চালানোর গতি অনুবাদের পর প্রোগ্রাম দ্রুত চলে প্রতিবার অনুবাদ হয় বলে তুলনামূলক ধীর ত্রুটি প্রদর্শন পুরো প্রোগ্রাম পরীক্ষা করে সব ত্রুটি একসাথে দেখায় প্রথম ত্রুটি পেলেই থেমে যায় ডিবাগিং তুলনামূলক কঠিন সহজ মেমরি অবজেক্ট কোডের জন্য বেশি মেমরি লাগে কম মেমরি লাগে পুনরায় চালানো একবার কম্পাইল করলে বারবার অনুবাদ লাগে না প্রতিবার চালাতে অনুবাদ লাগে উদাহরণ ভাষা C, C++, Java (বাইটকোডে) Python, JavaScript, PHP পাইথন আসলে সোর্স কোডকে প্রথমে বাইটকোডে রূপান্তর করে, তারপর Python Virtual Machine তা লাইন বাই লাইন চালায়; তাই একে ইন্টারপ্রেটেড ভাষা বলা হয়।
- ৪.১-র-৭★★বই: পৃষ্ঠা ৮৮
৮.পাইথনে ব্যবহৃত বিভিন্ন প্রকার টোকেন ও তাদের ব্যবহার লেখ।
উত্তর
কী-ওয়ার্ড: কী-ওয়ার্ড, আইডেন্টিফায়ার, লিটারেল, অপারেটর, পাংচুয়েটর/ডেলিমিটার
টোকেন: পাইথন প্রোগ্রামের ক্ষুদ্রতম অর্থবহ একককে টোকেন বলে। ইন্টারপ্রেটার প্রোগ্রামকে প্রথমে টোকেনে ভাগ করে বোঝে। পাইথনে পাঁচ প্রকার টোকেন:
টোকেন ব্যবহার উদাহরণ কী-ওয়ার্ড (Keyword) বিশেষ অর্থবহ সংরক্ষিত শব্দ if, for, def, True আইডেন্টিফায়ার (Identifier) ভেরিয়েবল, ফাংশন, ক্লাসের নাম total, price, area লিটারেল (Literal) সরাসরি লেখা স্থির মান 10, 3.14, "Dhaka", True অপারেটর (Operator) অপারেশন সম্পাদনের চিহ্ন +, -, ==, and, in পাংচুয়েটর/ডেলিমিটার কোড গঠন ও পৃথক করার চিহ্ন ( ) [ ] { } : , . = উদাহরণ:
total = price * 2 + 10লাইনে টোকেনগুলো হলো — আইডেন্টিফায়ার: total, price; অপারেটর: =, *, +; লিটারেল: 2, 10। - ৪.১-র-৯বই: পৃষ্ঠা ৮৮
৯.প্রোগ্রামিং ল্যাংগুয়েজের প্রকারভেদ বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: লো-লেভেল (মেশিন, অ্যাসেম্বলি), হাই-লেভেল, প্রজন্ম 1GL–5GL, অনুবাদক
ভূমিকা: কম্পিউটারকে নির্দেশ দেওয়ার ভাষাকে প্রোগ্রামিং ল্যাংগুয়েজ বলে। মানুষের ভাষার কাছাকাছি কিনা তার ভিত্তিতে এটি প্রধানত দুই প্রকার:
ক. লো-লেভেল ল্যাংগুয়েজ
- মেশিন ভাষা: শুধু ০ ও ১ দিয়ে লেখা; কম্পিউটার সরাসরি বোঝে; দ্রুততম কিন্তু লেখা অত্যন্ত কঠিন ও মেশিন নির্ভর।
- অ্যাসেম্বলি ভাষা: নেমোনিক কোড (MOV, ADD) দিয়ে লেখা; অ্যাসেম্বলার দিয়ে মেশিন ভাষায় রূপান্তর হয়।
খ. হাই-লেভেল ল্যাংগুয়েজ
- ইংরেজির কাছাকাছি শব্দ ব্যবহার করে লেখা; শেখা ও লেখা সহজ, মেশিন নিরপেক্ষ।
- কম্পাইলার বা ইন্টারপ্রেটার দিয়ে মেশিন ভাষায় রূপান্তর হয়।
- উদাহরণ: C, C++, Java, Python।
প্রজন্মভিত্তিক শ্রেণিবিভাগ
প্রজন্ম ভাষা বৈশিষ্ট্য উদাহরণ প্রথম (1GL) মেশিন ভাষা ০ ও ১ দিয়ে লেখা; কম্পিউটার সরাসরি বোঝে 10110000 01100001 দ্বিতীয় (2GL) অ্যাসেম্বলি ভাষা নেমোনিক কোড; অ্যাসেম্বলার লাগে MOV A, 5 তৃতীয় (3GL) হাই-লেভেল ভাষা ইংরেজির কাছাকাছি; কম্পাইলার/ইন্টারপ্রেটার লাগে C, Java, Python চতুর্থ (4GL) অতি উচ্চস্তরের ভাষা কী করতে হবে শুধু তা বললেই হয় SQL পঞ্চম (5GL) স্বাভাবিক ভাষা কৃত্রিম বুদ্ধিমত্তাভিত্তিক; মানুষের ভাষার কাছাকাছি Prolog, Mercury উপসংহার: প্রজন্ম যত এগিয়েছে, প্রোগ্রামিং ভাষা তত মানুষের ভাষার কাছাকাছি ও সহজ হয়েছে।
- ৪.১-র-১০বই: পৃষ্ঠা ৮৯
১০.পাইথনে ভেরিয়েবল নামকরণের নিয়মাবলি উল্লেখ কর।
উত্তর
কী-ওয়ার্ড: বর্ণ বা _ দিয়ে শুরু, অঙ্ক দিয়ে নয়, স্পেস ও বিশেষ চিহ্ন নয়, কী-ওয়ার্ড নয়, কেস-সেনসিটিভ, অর্থবহ নাম
পাইথনে ভেরিয়েবল নামকরণের নিয়মাবলি:
- ইংরেজি বর্ণ (a–z, A–Z), অঙ্ক (0–9) ও আন্ডারস্কোর (_) ব্যবহার করা যায়।
- প্রথম অক্ষর অবশ্যই বর্ণ বা আন্ডারস্কোর হবে; অঙ্ক দিয়ে শুরু করা যাবে না। যেমন
1nameভুল,name1সঠিক। - কোনো ফাঁকা স্থান (Space) রাখা যাবে না।
student nameভুল,student_nameসঠিক। - @, $, %, # ইত্যাদি বিশেষ চিহ্ন ব্যবহার করা যাবে না।
- পাইথনের কী-ওয়ার্ড (if, for, class ইত্যাদি) নাম হিসেবে ব্যবহার করা যাবে না।
- পাইথন কেস-সেনসিটিভ:
Totalওtotalদুটি আলাদা নাম। - নাম অর্থবহ হওয়া উচিত, যেমন
total_marks; একাধিক শব্দ আন্ডারস্কোর দিয়ে যুক্ত করা হয় (snake_case)।
নাম বৈধ? কারণ student_nameবৈধ বর্ণ ও আন্ডারস্কোর _countবৈধ আন্ডারস্কোর দিয়ে শুরু mark2বৈধ শেষে অঙ্ক থাকতে পারে 2markঅবৈধ অঙ্ক দিয়ে শুরু my nameঅবৈধ স্পেস আছে total$অবৈধ বিশেষ চিহ্ন forঅবৈধ কী-ওয়ার্ড - ৪.১-র-১১বই: পৃষ্ঠা ৯০
১১.উদাহরণসহ গাণিতিক, তুলনামূলক ও যৌক্তিক অপারেটরসমূহ বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: গাণিতিক (+ − * / // % **), তুলনামূলক (== != > < >= <=), যৌক্তিক (and or not), উদাহরণ
১. গাণিতিক অপারেটর
সংখ্যার উপর গাণিতিক হিসাব করে।
অপারেটর নাম উদাহরণ (a=10, b=3) ফলাফল + যোগ a + b 13 - বিয়োগ a - b 7 * গুণ a * b 30 / ভাগ a / b 3.333… // ফ্লোর ভাগ (পূর্ণ ভাগফল) a // b 3 % ভাগশেষ (Modulus) a % b 1 ** ঘাত (Power) a ** b 1000 a, b = 10, 3 print(a + b) # 13 print(a - b) # 7 print(a * b) # 30 print(a / b) # 3.3333333333333335 print(a // b) # 3 print(a % b) # 1 print(a ** b) # 1000নমুনা আউটপুট:
13 7 30 3.3333333333333335 3 1 1000২. তুলনামূলক অপারেটর
দুটি মান তুলনা করে True বা False দেয়।
অপারেটর অর্থ উদাহরণ (a=10, b=3) ফলাফল == সমান a == b False != অসমান a != b True > বড় a > b True < ছোট a < b False >= বড় বা সমান a >= b True <= ছোট বা সমান a <= b False a, b = 10, 3 print(a == b, a != b, a > b, a < b, a >= b, a <= b)নমুনা আউটপুট:
False True True False True False৩. যৌক্তিক অপারেটর
একাধিক শর্তকে যুক্ত করে True বা False দেয়।
অপারেটর কাজ উদাহরণ ফলাফল and দুটি শর্তই সত্য হলে True (5 > 3) and (2 > 1) True or যেকোনো একটি সত্য হলে True (5 < 3) or (2 > 1) True not ফলাফল উল্টে দেয় not (5 > 3) False marks = 75 print(marks >= 33 and marks <= 100) # True print(marks < 33 or marks > 100) # False print(not (marks >= 33)) # Falseনমুনা আউটপুট:
True False False - ৪.১-র-১২★★★বই: পৃষ্ঠা ৯১
১২.পাইথন প্রোগ্রামিং-এ বিশেষ অপারেটর সম্পর্কে বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: আইডেন্টিটি (is, is not), মেম্বারশিপ (in, not in), উদাহরণ
ভূমিকা: পাইথনে প্রচলিত অপারেটরের বাইরে দুই ধরনের বিশেষ অপারেটর আছে: আইডেন্টিটি অপারেটর ও মেম্বারশিপ অপারেটর।
অপারেটর ধরন কাজ উদাহরণ is আইডেন্টিটি দুটি ভেরিয়েবল একই অবজেক্ট হলে True a is b is not আইডেন্টিটি ভিন্ন অবজেক্ট হলে True a is not c in মেম্বারশিপ মানটি সিকোয়েন্সে থাকলে True "আম" in fruits not in মেম্বারশিপ মানটি না থাকলে True "আপেল" not in fruits ১. আইডেন্টিটি অপারেটর (is, is not)
দুটি ভেরিয়েবল মেমরিতে একই অবজেক্ট কিনা তা যাচাই করে।
a = [1, 2, 3] b = a # b একই অবজেক্টকে নির্দেশ করে c = [1, 2, 3] # মান এক, কিন্তু আলাদা অবজেক্ট print(a is b) # True print(a is c) # False print(a == c) # True (মান সমান) print(a is not c) # Trueনমুনা আউটপুট:
True False True True২. মেম্বারশিপ অপারেটর (in, not in)
কোনো মান একটি স্ট্রিং, লিস্ট, টাপল, সেট বা ডিকশনারিতে আছে কিনা তা যাচাই করে।
fruits = ["আম", "কলা", "লিচু"] print("আম" in fruits) # True print("আপেল" not in fruits) # True print("a" in "Python") # Falseনমুনা আউটপুট:
True True False - ৪.১-র-১৩★★★বই: পৃষ্ঠা ৯২
১৩.উদাহরণসহ বিটওয়াইজ শিফট অপারেশন ব্যাখ্যা কর।
উত্তর
কী-ওয়ার্ড: লেফট শিফট (<<) ২ দিয়ে গুণ, রাইট শিফট (>>) ২ দিয়ে ভাগ, বাইনারি উদাহরণ
বিটওয়াইজ শিফট অপারেশন: কোনো সংখ্যার বাইনারি রূপের বিটগুলোকে নির্দিষ্ট সংখ্যক ঘর বাম বা ডানে সরানোকে শিফট অপারেশন বলে। এটি দুই প্রকার:
১. লেফট শিফট (<<)
বিটগুলোকে বাম দিকে সরায় এবং ডান দিকে 0 যোগ করে। প্রতি ঘর সরানোয় মান ২ গুণ হয়:
x << n = x × 2ⁿবাইনারি দশমিক a 0000 1010 10 a << 2 0010 1000 40 ২. রাইট শিফট (>>)
বিটগুলোকে ডান দিকে সরায়; ডানের বিটগুলো বাদ পড়ে। প্রতি ঘর সরানোয় মান ২ দিয়ে ভাগ (পূর্ণ ভাগফল) হয়:
x >> n = x // 2ⁿবাইনারি দশমিক a 0000 1010 10 a >> 1 0000 0101 5 a = 10 # বাইনারি: 1010 print(a << 2) # 101000 → 40 print(a >> 1) # 101 → 5 print(bin(a << 2), bin(a >> 1))নমুনা আউটপুট:
40 5 0b101000 0b101শিফট অপারেশন গুণ-ভাগের চেয়ে দ্রুত, তাই নিম্নস্তরের প্রোগ্রামিং ও এনক্রিপশনে ব্যবহৃত হয়।
- ৪.১-র-১৪★★বই: পৃষ্ঠা ৯২
১৪.যেকোনো দুটি সংখ্যার গড় নির্ণয়ের অ্যালগরিদম লেখ।
উত্তর
কী-ওয়ার্ড: শুরু, a ও b ইনপুট, avg = (a + b) / 2, প্রিন্ট, শেষ
দুটি সংখ্যার গড় নির্ণয়ের অ্যালগরিদম:
- শুরু।
- দুটি সংখ্যা a ও b ইনপুট নাও।
- যোগফল নির্ণয় করো: sum = a + b।
- গড় নির্ণয় করো: avg = sum / 2।
- avg প্রিন্ট করো।
- শেষ।
পাইথন প্রোগ্রাম:
a = float(input("প্রথম সংখ্যা: ")) b = float(input("দ্বিতীয় সংখ্যা: ")) avg = (a + b) / 2 print("গড় =", avg)নমুনা আউটপুট:
প্রথম সংখ্যা: 12 দ্বিতীয় সংখ্যা: 18 গড় = 15.0দুটি সংখ্যার গড়ের ফ্লোচার্ট
- ৪.১-র-১৬★★★বই: পৃষ্ঠা ৯২
১৫.জোড়সংখ্যা কিংবা বিজোড় সংখ্যা নির্ণয়ের অ্যালগরিদম লেখ।
উত্তর
কী-ওয়ার্ড: শুরু, n ইনপুট, n % 2 == 0 হলে জোড়, না হলে বিজোড়, শেষ
জোড় বা বিজোড় সংখ্যা নির্ণয়ের অ্যালগরিদম:
- শুরু।
- একটি পূর্ণসংখ্যা n ইনপুট নাও।
- n-কে 2 দিয়ে ভাগ করে ভাগশেষ নির্ণয় করো: r = n % 2।
- যদি r = 0 হয়, তবে "জোড় সংখ্যা" প্রিন্ট করো।
- অন্যথায় "বিজোড় সংখ্যা" প্রিন্ট করো।
- শেষ।
ফ্লোচার্ট:
পাইথন প্রোগ্রাম:
n = int(input("একটি পূর্ণসংখ্যা দাও: ")) if n % 2 == 0: print(n, "জোড় সংখ্যা") else: print(n, "বিজোড় সংখ্যা")নমুনা আউটপুট:
একটি পূর্ণসংখ্যা দাও: 7 7 বিজোড় সংখ্যা - ৪.১-র-১৭★★★বই: পৃষ্ঠা ৯৩
১৬.পাইথনে বিটওয়াইজ অপারেটর সম্পর্কে বর্ণনা কর।
উত্তর
কী-ওয়ার্ড: &, |, ^, ~, <<, >>, বাইনারি বিটভিত্তিক অপারেশন, উদাহরণ
বিটওয়াইজ অপারেটর: যে অপারেটর সংখ্যার বাইনারি রূপের প্রতিটি বিটের উপর আলাদাভাবে কাজ করে, তাকে বিটওয়াইজ অপারেটর বলে। পাইথনে ছয়টি বিটওয়াইজ অপারেটর আছে:
অপারেটর নাম উদাহরণ (a=12 → 1100, b=10 → 1010) ফলাফল & বিটওয়াইজ AND a & b → 1000 8 বিটওয়াইজ OR a ^ বিটওয়াইজ XOR a ^ b → 0110 6 ~ বিটওয়াইজ NOT ~a = -(a+1) -13 << লেফট শিফট a << 2 → 110000 48 >> রাইট শিফট a >> 2 → 11 3 a = 12 (1100) ও b = 10 (1010) ধরে বিট-বাই-বিট হিসাব:
বিট ৩ বিট ২ বিট ১ বিট ০ দশমিক a 1 1 0 0 12 b 1 0 1 0 10 a & b 1 0 0 0 8 a b 1 1 1 0 a ^ b 0 1 1 0 6 a, b = 12, 10 # a = 1100, b = 1010 print(a & b) # 1000 → 8 print(a | b) # 1110 → 14 print(a ^ b) # 0110 → 6 print(~a) # -13 print(a << 2) # 110000 → 48 print(a >> 2) # 11 → 3নমুনা আউটপুট:
8 14 6 -13 48 3ব্যবহার: হার্ডওয়্যার নিয়ন্ত্রণ, এনক্রিপশন, ফ্ল্যাগ সেট করা ও দ্রুত গুণ-ভাগে।