Monthly Archives: ফেব্রুয়ারী 2020

ফাংশন ও অপারেটর ওভারলোডিং |নিবন্ধন ICT লিখিত পর্ব ৫.২

Advertisment

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর বিষয়ে শিক্ষক নিবন্ধনের আজকের পর্বে আপনাদের সকলকে স্বাগতম। আজকের বিষয় ফাংশন ও অপারেটর ওভারলোডিং।

এটি সিলেবাসের পঞ্চম অধ্যায় অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর দ্বিতীয় পর্ব। আগের পর্ব দেখতে পাবেন নিচের লিংক থেকে:

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং | ICT লিখিত পর্ব ৫.১

এই অধ্যায়ের সিলেবাসটা দেখে নেয়া যাক

ফাংশন ও অপারেটর ওভারলোডিং
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং সিলেবাস
ফাংশন ও অপারেটর ওভারলোডিং

শিক্ষক নিবন্ধনের সকল পোস্ট পেতে এখানে ক্লিক করুন।

ফাংশন ও অপারেটর ওভারলোডিং

Function Overloading (ফাংশন ওভারলোডিং): OOP এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো Function Overloading. এই প্রক্রিয়ায় একই নামের একাধিক ফাংশন ব্যবহার করা যায়. এক্ষেত্রে parameter পরিবর্তন করে Function Overloading করা যায়।

অর্থাৎ একই নামে ফাংশন হবে তবে শুধুমাত্র প্যারামিটার পরিবর্তন করে আমরা আলাদা ফাংশন হিসেবে ব্যবহার করতে পারি।

এ বিষয়ে বিস্তারিত বুঝতে গেলে আমার মনে হয় নিচের জাভা প্রোগ্রামটি সহায়তা করতে পারে:


public class FuncOverload {
	
	public void disp(char c) {
		System.out.println(c);
	}
	
	public void disp(char c, int num) {
		System.out.println(c + " " + num);
	}

	public static void main(String[] args) {
		FuncOverload test = new FuncOverload();
		test.disp('a');
		test.disp('a', 23);

	}

}

Operator Overloading (অপারেটর ওভারলোডিং): operator overloading এর মাধ্যমে কোন operator এর ক্ষমতা বাড়িয়ে দেয়া যায়।

অপারেটর ওভারলোডিং বিস্তারিতভাবে বোঝার জন্য আমরা সি++ ল্যাঙ্গুয়েজে একটি কোড দেখবো যাতে করে একটি অপারেটর এর ক্ষমতা বৃদ্ধি করা হয়েছে:

#include<iostream>
using namespace std;
	Class Test{
	Private:
		Int num;
	Public:
		Test(): num(8){
		    Void operator ++(){
	                Num = num+2;
                }
Void print(){
	Cout << “the count is: “<<num;
        }
    }
}

	Int main(){
		Test tt;
		++tt;
		tt.print();
}

Output: the count is: 10

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর মূল তিনটি বিষয়

আমরা গত পর্বে দেখেছিলাম অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর মূল তিনটি বিষয় হলো ইনহেরিটেন্স, এনক্যাপসুলেশন ও পলিমরফিজম তবে গত পর্বে কোন প্রোগ্রামিং এর মাধ্যমে এগুলো দেখানো হয়নি। আজ দেখবো:

ইনহেরিটেন্স:

//Inheritest.java
public class Inheritest {

	public static void main(String[] args) {
		Yamaha R15 = new Yamaha("R15 V3", 525000, 149);
		
		System.out.println(R15.getModel());
		System.out.println(R15.getPrice());
		System.out.println(R15.getCC());

	}

}
-------------------------------------------
//Bike.java

public class Bike {
	
	private String model;
	private int price;
	private int cc;
	
	public Bike(String model, int price, int cc) {
		this.model = model;
		this.price = price;
		this.cc = cc;
	}
	
	public String getModel() {
		return model;
	}
	
	public int getPrice() {
		return price;
	}
	
	public int getCC() {
		return cc;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
-------------------------------------------
//Yamaha.java

public class Yamaha extends Bike {
	
	public Yamaha(String name, int cc, int price) {
		super(name, cc, price);
	}
	
	

	public static void main(String[] args) {
		

	}

}
------------------------

উপরের তিনটি ফাইল রান করাতে পারলে ইনহেরিটেন্স সম্পর্কে সম্পূর্ণ ধারণা পেয়ে যাবেন বলে আশা রাখি।

এনক্যাপসুলেন


public class Encap {
	
	private String name;
	private int age;
	
	public int getAge() {
		return age;
	}
	
	public String getName() {
		return name;
	}
	
	
	public void setAge(int newAge) {
		age = newAge;
	}
	
	public void setName(String newName) {
		name = newName;
	}

	public static void main(String[] args) {
		Encap encap = new Encap();
		encap.setName("Sudip");
		encap.setAge(75);
		
		System.out.println("Name: " + encap.getName());
		System.out.println("Age: " + encap.getAge());
	}

}

আমরা একটু বোঝার চেষ্টা করি এখানে কি করা হয়েছে। এখানে উপরে শুরুর দিকে দুইটা প্রাইভেট স্ট্রিং নিয়ে আমরা পাবলিক ফাংশনে কোড দুইটি এক্সিকিউট করাতে পেরেছি। এ বিষয়ে বিস্তারিত ভাবে বুঝতে গেলে আমার মনে হয় আপনারা ভিডিওটি ফলো করতে পারেন।

পলিমরফিজম

পলিমরফিজম হলো একই অবজেক্ট এর বিভিন্ন রুপ। এটি আমরা ফাংশন ওভারলোডিং এ দেখিয়েছি তাই আর নতুন করে দেখানো কিছু নেই।

পঞ্চম অধ্যায়ের সিলেবাস এখানেই শেষ। আজ মূলত দেখানো হয়েছে ফাংশন ও অপারেটর ওভারলোডিং এবং অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর মূল তিনটি বিষয়ের কোড। আশা করছি আপনারা বুঝতে পেরেছেন।

পোস্টগুলো পড়ার সাথে সাথে সাবস্ক্রাইব করে রাখতে পারেন আমার iSudip ইউটিউব চ্যানেল যেখানে এ সকল বিষয়সহ অন্যান্য সকল বিষয়ে নিয়মিত আপডেট প্রদান করা হচ্ছে। ভালো থাকবেন দেখা হবে পরের পোস্টে।

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং | ICT লিখিত পর্ব ৫.১

Advertisment

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর বিষয়ে শিক্ষক নিবন্ধনের আজকের পর্বে আপনাদের সকলকে স্বাগতম। এটি ICT বিষয়ে কলেজ পর্যায়ে বেসরকারি শিক্ষক নিবন্ধনের চলমান একটি সিরিজ এবং এই বিষয়ে অধ্যায় ১ থেকে এখন পর্যন্ত সকল চ্যাপ্টার দেখানো হচ্ছে।

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং অধ্যায়টি মোট ২টি পর্বে ও ২টি ভিডিওর মাধ্যমে দেখানো হবে। আজকে এর প্রথম পর্ব।

অবেজেক্ট অরিয়েন্টেড প্রোগ্রামিং

এই অধ্যায়ের সিলেবাসটা দেখে নেয়া যাক

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং সিলেবাস
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং সিলেবাস

এই পর্বের আগের পর্বসমূহ দেখতে হলে নিচে ক্লিক করুন:

অ্যারে, ক্যারেক্টার ও ফাংশন | নিবন্ধন লিখিত (ICT) পর্ব ২.৩

ব্রাঞ্চিং ও লুপিং | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ২.২

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং

Computer Programming এ class এবং object এর ধারণাকে কাজে লাগিয়ে যে Programming করা হয় তাকে বলা হয় অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং (Object Oriented Programming). এই প্রোগ্রামিং এর মূল ধারণা ৩টি:

ইনহেরিটেন্স (Inheritance): ইংরেজি শব্দ inheritance এর অর্থ হচ্ছে উত্তরাধিকার। অকজেক্ট অরিয়েন্টেড প্রোগ্রামিং এ এক class থেকে কিছু ফাংশনালিটি (method) ও বৈশিষ্ট্য (property) অন্য class এ শেয়ার করার একটি পদ্ধতি হচ্ছে Inheritance. কোন class বা object অন্য কোন class বা object এর বৈশিষ্ট অর্জন করে থাকলে সেটিকে বলা হয় Inheritance. একটি parent class এর বৈশিষ্ট্য child class অর্জন করে থাকে।

এনক্যাপসুলেশন (Encapsulation): ইংরেজি শব্দ encapsulation এর অর্থ হলো সকল কিছু ঢেকে রাখা। এটা অনেকটা ক্যাপসুল মেডিসিনের মতই বাইরে আবরণ দিয়ে ভিতরে কিছু একটা রাখা থাকে। অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এ একটা class আবরণ দিয়ে ভিতরের সবকিছু ঢাকা থাকে।

পলিমরফিজম (Polymorphism): Polymorphism এর অর্থ হলো ভিন্ন অবস্থায় একই object এর ভিন্ন রূপ।

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর জন্য উপরোক্ত ৩টি বিষয় খুবই গুরুত্বপূর্ণ যা নিয়ে আরও আলোচনা থাকবে অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর পরবর্তী অধ্যায়ে।

টোকেন

কোন প্রোগ্রামের ক্ষুদ্রতম ইউনিটসমূহকে টোকেন বলে। যেমন

  • কিওয়ার্ড
  • আইডেন্টিফায়ার
  • কনস্ট্যান্ট
  • স্ট্রিং
  • অপারেটর

অবজেক্ট (Object) কী?

Object: আমরা আমাদের চারপাশে যা দেখি সবই Object.

ক্লাস (Class) কী?
Class হলো Object এর blueprint. মূলত ক্লাস হলো এমন এক ধরণের user defined data type যা প্রোগ্রামে বিল্ট ইন ডাটা টাইপের মতো কাজ করে। Object তৈরির extensible প্রোগ্রাম কোড টেমপ্লেট হলো Class. Class এর মধ্যে object এর বৈশিষ্ট্য, ফাংশন ও কনস্ট্রাক্টর থাকে।

ক্লাস ও অবজেক্ট এর একটি উদাহরণ নিচে জাভা প্রোগ্রামে দেয়া হলো:

public class ntrca {
	String name;
	int code;

	public static void main(String[] args) {
		ntrca cse = new ntrca();
		cse.name = "Computer Science";
		cse.code = 431;
		
		System.out.println("Subject name: " + cse.name);
		System.out.println("Subject code: " + cse.code);

	}

}

কনস্ট্রাক্টর (Constructor)

Constructor এমন এক বিশেষ ধরণের মেম্বার ফাংশন যা কোন অবজেক্ট ঘোষণার সময় তার প্রারম্ভিক মান নির্ধারণ এবং মেমরি পরিসর বরাদ্দের জন্য ব্যবহৃত হয়। কোন কনস্ট্রাক্টর ফাংশনের নাম তার ক্লাসের নামের অনুরূপ হয় এবং কনস্ট্রাক্টর ফাংশন ক্লাসের পাবলিক অংশে ঘোষণা করতে হয়।

public class constructor {
	
	constructor(){
		System.out.println("Hello World!!");
	}

	public static void main(String[] args) {		
		constructor cons = new constructor();
	}
}

ডিস্ট্রাক্টর (Destructor)

Destructor এর অর্থ ধ্বংসকারী। Constructor যেমন object ঘোষণার সময় তার ডেটা মেম্বারগুলোর জন্য প্রয়োজনীয় মেমরি পরিসর বরাদ্দ করে, Destructor ফাংশন তেমনিই সেই object এর প্রয়োজন শেষে ডেটা মেম্বারগুলোর জন্য বরাদ্দকৃত মেমরি পরিসর খালি করে দেয়। Destructor ফাংশনের নাম Constructor ফাংশনের নামের অনুরূপ হয়, তবে নামের আগে টিল্ডা (~) চিহ্ন বসে। কোন ক্লাস ঘোষণার সময় constructor ঘোষণার পাশাপাশি destructor ঘোষণা করতে হয়।

class x{
	Public:
	x(); //constructor
	~x(); \\destructor
};

তো এই ছিলো অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর বিষয়ে প্রথম পোস্ট এবং ভিডিও। এই অধ্যায়ের বাকিটা দেখানো হবে পরবর্তী পোস্টে। সকল ভিডিও আপডেট পেতে iSudip ইউটিউব চ্যানেলে সাবস্ক্রাইব করুন।

ডাটা স্ট্রাকচার | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ৩

Advertisment

ডাটা স্ট্রাকচার এর আজকের পর্বে আপনাদের স্বাগতম। বেসরকারি শিক্ষক নিবন্ধন লিখিত পরীক্ষার প্রস্তুতির আজকের পর্বে দেখবো কিউ, স্ট্যাক, ট্রি ও গ্রাফ। আজকের পর্ব শুরু করার আগে সিলেবাসটা একবার দেখে নেই

ডাটা স্ট্রাকচার সিলেবাস
সিলেবাস

শিক্ষক নিবন্ধনের সকল পোস্ট পেতে এখানে ক্লিক করুন।

স্ট্যাক (Stack) ডাটা স্ট্রাকচার

স্ট্যাক (Stack) হলো এক ধরণের ডাটা স্ট্রাকচার যেখানে লিনিয়ার পদ্ধতিতে একটির উপর একটি এলিমেন্ট রাখা হয়। এটি এক ধরণের LIFO (Last in First Out) পদ্ধতি অর্থাৎ যা সবার শেষে দেয়া হবে সে সকলের আগে বের হবে। Stack এর মূল অপারেশন ৩টি।

  • PUSH – Data Insert করা
  • POP – Data delete করা
  • PEEK – সর্বোচ্চ স্তরের data value দেখা

কিউ (Queue) ডাটা স্ট্রাকচার

কিউ (Queue) হলো এমন এক প্রকার data structure যেখানে দুইদিক থেকেই খোলা থাকে তবে শুধুমাত্র সম্মুখ প্রান্ত দিয়ে ডাটা delete করা যায়। এটি এক ধরণের FIFO (First in First Out) ডাটা স্ট্রাকচার। Queue এর অপারেশন দুইটি:

  • ENQUE – Insert
  • DEQUEUE – Delete

রিকার্শন (Recursive Function)

যে function নিজেই নিজেকে কল করতে পারে তাকে বলা হয় recursive function. Recursive Function এর  দুটি মূল অংশ হলো i) recursive call ও ii) base case. Recursive call এর মাধ্যমে function টি নিজেকে বারবার কল করতে থাকে এবং base case এর মাধ্যমে recursive function কে থামানো হয়।

একটি সি প্রোগ্রামিং এর মাধ্যমে আমরা রিকার্সিভ ফাংশনটি দেখবো:

#include <stdio.h>
long int fact (int n);
int main()
{
    int n;
    printf("Enter a number: \n");
    scanf("%d", &amp;n);
    printf("Facotrial of %d is: %ld", n, fact(n));
    return 0;
}

long int fact(int n){
    if(n==1){
        return 1;
    }
    
    else{
        return n*fact(n-1);
    }
}

ট্রি (Tree)

TREE হলো একগুচ্ছ node এর সমন্বয়ে গঠিত data structure। এতে Hierarchical প্রতিফলন ঘটে।

ট্রি ডাটা স্ট্রাকচার
ট্রি ডাটা স্ট্রাকচার

গ্রাফ (Graph)

Graph (গ্রাফ) স্ট্রাকচারে একগুচ্ছ অবজেক্ট একটি আরেকটির সাথে চিত্রের মাধ্যমে সংযুক্ত থাকে। যে সকল অবজেক্টগুলো সংযুক্ত থাকে তাদের বলা হয় vertices বা node আর যার মাধ্যমে সংযুক্ত থাকে তাদের বলা হয় এজ (edge)।

গ্রাফ ডাটা স্ট্রাকচার
গ্রাফ ডাটা স্ট্রাকচার

এরই সাথে তৃতীয় অধ্যায় সমাপ্ত। আপনি চাইলে উপরের লিংকে ক্লিক করে নিবন্ধনের বিষয়ে সকল পোস্ট একসাথে দেখতে পারেন। ইতিপূর্বে সকল পর্বের পোস্ট এবং ভিডিও এই ওয়েবসাইটে দেয়া হয়েছে। ইউটিউবে আপডেট পেতে হলে iSudip YouTube Channel এর সাবস্ক্রাইব করুন এবং Sudip’s Blog ফেসবুক পেজে লাইক দিন। দেখা হবে পরের পোস্টে।

স্ট্রাকচার, ইউনিয়ন, পয়েন্টার ও ফাইল ম্যানেজমেন্ট | ICT পর্ব ২.৪

Advertisment

বেসরকারি শিক্ষক নিবন্ধন লিখিত পরীক্ষার প্রস্তুতির আজকের পর্বে আপনাদের সকলকে স্বাগতম। আজকের বিষয় স্ট্রাকচার, ইউনিয়ন, পয়েন্টার ও ফাইল ম্যানেজমেন্ট। মনে করিয়ে দেই এটি ICT বিষয়ের Computer Science (কোড ৪৩১) এর লিখিত পরীক্ষার প্রস্তুতির দ্বিতীয় অধ্যায়ের চতুর্থ ভিডিও।

এই পর্বের আগের ভিডিও দেখতে হলে নিচে ক্লিক করুন:

অ্যারে, ক্যারেক্টার ও ফাংশন | নিবন্ধন লিখিত (ICT) পর্ব ২.৩

ব্রাঞ্চিং ও লুপিং | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ২.২

প্রোগ্রামিং ল্যাংগুয়েজ | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ২.১

সিলেবাসের এই অংশটা আরেকবার দেখে নেই

স্ট্রাকচার, ইউনিয়ন, পয়েন্টার ও ফাইল ম্যানেজমেন্ট
স্ট্রাকচার, ইউনিয়ন, পয়েন্টার ও ফাইল ম্যানেজমেন্ট

শিক্ষক নিবন্ধনের সকল পোস্ট পেতে এখানে ক্লিক করুন।

স্ট্রাকচার

স্ট্রাকচার (Structure) হলো এক ধরণের user defined ডাটা টাইপ যার সাহায্যে বিভিন্ন ধরণের ডাটা টাইপকে একসাথে নেয়া যায়। কিভাবে একসাথে অনেকগুলো ডাটা টাইপ একসাথে নেয়া যায় তা দেখতে হলে সি প্রোগ্রামে একটি কোড রান করাতে হবে:

#include <stdio.h>

struct Student{
    int id;
    int age;
};

int main()
{
    struct Student s1;
    s1.id=1;
    s1.age=10;
    
    printf("id of the student is: %d\n", s1.id);
    printf("and age is: %d", s1.age);

    return 0;
}

ইউনিয়ন

Union হলো এক ধরণের বিশেষ ডাটা টাইপ যা ভিন্ন ভিন্ন ধরণের ডাটা টাইপক সম্বলিত ডাটা ভ্যারিয়েবল হ্যান্ডেল করে। এটির গুণাবলী অনেকটা স্ট্রাকচারের মতোই তবে কিছুটা ভিন্ন। আমরা এইটার উদাহরণও একটা কোড রান করানোর মাধ্যমে দেখবো এবং তারপর এদের পার্থক্য দেখবো:

#include <stdio.h>
union Student{
    int id;
    int age;
};

int main()
{
    union Student s2;
    
    s2.id=2;
    
    printf("id of student 2 is: %d\n", s2.id);
    s2.age=12;
    
    
    printf("age is: %d\n", s2.age);

    return 0;
}

স্ট্রাকচার ও ইউনিয়নের মধ্যে পার্থক্য:

Structure Union 
Struct কিওয়ার্ড ব্যবহৃত হয়Union কিওয়ার্ড ব্যবহৃত হয়
Structure এর সাইজ সকল মেম্বারদের সাইজের সমান বা বড় হয়Union এর সাইজ সর্ববৃহৎ মেম্বারের সাইজের সমান
প্রতিটি মেম্বারের জন্য unique storage area থাকেমেম্বারদের লোকেশন শেয়ার করে
আলাদা আলাদা মেম্বার access করা যায়একক সময়ে একটিমাত্র মেম্বার access করা যায়
মেমরি স্পেস বেশি লাগেমেমরি স্পেস কম লাগে
Execution time বেশিExecution time কম

পয়েন্টার

পয়েন্টার (Pointer) বাংলা শব্দের অর্থ নির্দেশক। এটি এক প্রকার ভ্যারিয়েবল বা একই ডাটা টাইপের অপর কোন ভ্যারিয়েবলকে অথবা অ্যারে এলিমেন্টকে নির্দেশ করে। অর্থাৎ তাদের address বা location নির্দেশ করে। পয়েন্টারের বৈশিষ্ট্যসমূহ:

  • ভ্যারিয়েবল ডিক্লেয়ার করার সময় নামের সাথে * ব্যবহার করা হলেও এইট নামের অন্তর্ভুক্ত নয়
  • পয়েন্টারের মাধ্যমে ফাংশনের বাইরে ডিক্লেয়ার করা ডাটা এক্সেস করা যায়
  • প্রোগ্রামের জটিলতা ও দৈর্ঘ্য উভয়ই কমে
  • মেমরি অপচয় কম হয়
  • দ্রুত এক্সিকিউট হয়
  • প্রোগ্রামের ভ্যারিয়েবলের সাথে ডিক্লেয়ার করা যায়। int a, b, *p;

Pointer এর ব্যবহার

  • Pointer এর Pointer  হিসেবে
  • Function এর return value হিসেবে
  • Function এর parameter হিসেবে

পয়েন্টারের একটি ছোট উদাহরণ দেখবো সি প্রোগ্রামিংয়ে

#include <stdio.h>

int main()
{
    int a = 5;
    int *p;
    
    p = &a;
    
    printf("actual value of a is: %d\n", a);
    printf("logical address of a is: %x\n", p);
    printf("value of a is: %d\n", *p);
    

    return 0;
}

ফাইল ম্যানেজমেন্ট

C প্রোগ্রামিং এ কোন ফাইলে input/output বা i/o অপারেশনের জন্য অর্থাৎ ফাইলে কিছু লেখার জন্য বা ফাইল থেকে কিছু পড়ার জন্য লাইব্রেরি ফাংশন রয়েছে। এসব ফাংশন ব্যবহার করে ফাইলে ডাটা ইনপুট এবং ফাইল থেকে কোন ডাটা read করা যায়। ফাইলে যে ধরণের কাজ করা হয় তা হলো:

  • ফাইলের নাম দেয়া
  • ফাইল খোলা
  • ফাইল থেকে ডাটা read করা
  • ফাইলে data write করা
  • ফাইল বন্ধ করা

ব্যবহৃত ফাংশনসমূহ:

  • fopen() – ফাইল খোলা
  • fclose() – ফাইল বন্ধ করা
  • getc() – ফাইল থেকে character read করা
  • putc() – ফাইলে character লিখা
  • fscanf() – ফাইল থেকে data read করা
  • fprintf() – ফাইলে ডাটা write করা
  • fgets() – ফাইল থেকে যে কোন length বিশিষ্ট string পড়া
  • fputs() – ফাইলে যে কোন length বিশিষ্ট string write করা
  • getw() – integer মান পড়া
  • putw() – integer মান write করা
  • fseek() – পয়েন্টারকে উপযুক্ত স্থানে নিয়ে যাওয়া
  • ftell() – পয়েন্টারের বর্তমান অবস্থা নির্দেশ করা
  • rewind() – পয়েন্টারকে শুরুতে নিয়ে যাওয়া
  • feof() – ফাইলের শেষ
  • ferror() – ফাইল সম্পর্কিত ভুল

এখন বরাবরের মতোই আমরা সি প্রোগ্রামিংয়ে একটি ফাইল ম্যানেজমেন্ট এর উদাহরণ দেখবো

#include<stdio.h>

int main(){

    FILE *fp;

    fp = fopen("text.txt", "w+");
    fprintf(fp, "Hello world using fprint\n");
    fputs("hell using fputs", fp);
    fclose(fp);

    return 0;

}

এখানে সি প্রোগ্রামিংয়ে ফাইল ম্যানেজমেন্ট এর সাহায্যে একটি ফাইল খুলে তাতে কিছু টেক্সট লেখা হয়েছে।

এরই সাথে শেষ হয়ে গেলো শিক্ষক নিবন্ধন লিখিত পরীক্ষার দ্বিতীয় অধ্যায়। এই অধ্যায়টি শেষ করতে মোট ৪টি পোস্ট করা হয়েছে এবং প্রতিটি পোস্টের সাথেই ভিডিও দেয়া আছে। এখনও সাবস্ক্রাইব না করে থাকলে অবশ্যই iSudip ইউটিউব চ্যানেলে সাবস্ক্রাইব করে নিন। পোস্টগুলোর লিংক এই পোস্টের উপরের দিকে অথবা নিচে রিলেটেড পোস্টের মধ্যে পাবেন। দেখা হবে পরের ভিডিওতে।

অ্যান্ড্রয়েড টেন আপডেট (আসুস জেনফোন ম্যাক্সপ্রো এমটু)

Advertisment

অ্যান্ড্রয়েড টেন আপডেট ভার্সনটি বের করা হয় গত ৩ সেপ্টেম্বর, ২০১৯ তারিখে এবং তার পর থেকেই কিছু কিছু ডিভাইসে অ্যান্ড্রয়েড এর আপডেট দেয়া হয়েছে এবং নতুন যেসকল মোবাইল বের হচ্ছে সেগুলোতেও অ্যান্ড্রয়েড টেন দেয়া হচ্ছে। তবে বরাবরের মতোই সকল মোবাইল কিন্তু এই সুবিধা শুরু থেকে পাচ্ছে না। কিছু কিছু স্টক অ্যান্ড্রয়েড ফোনে আপডেটের বেটা ভার্সন দেয়া হয়েছে। আজ তেমনই একটা ডিভাইসের অ্যান্ড্রয়েড টেন আপডেট করা দেখবো শুরু থেকে শেষ পর্যন্ত।

স্টক অ্যান্ড্রয়েড

প্রথমেই স্টক অ্যন্ড্রয়েড নিয়ে একটু আলোচনা করা যাক। একটি সাধারণ অ্যান্ড্রয়েড ফোন এবং স্টক অ্যান্ড্রয়েড ফোনের মধ্যে পার্থক্য খুবই সামান্য। আশা করছি আপনার অবশ্যই জানেন যে, অ্যান্ড্রয়েড সম্পূর্ণ ফ্রি অপারেটিং সিস্টেম। এর অর্থ হলো সকল ফোন প্রস্তুতকারক প্রতিষ্ঠানসমূহ এটিকে ব্যবহার করে তাদের নিজস্ব কিছু অপশন সাথে দিয়ে দেয়। এর ফলে আমরা দেখতে পাই ওয়ানপ্লাসে অ্যান্ড্রয়েড এর সাথে অক্সিজেন ওএস, শাওমিতে অ্যান্ড্রয়েড এর সাথে মি ইউ আই, স্যামসাং এ অ্যান্ড্রয়েড এর সাথে ওয়ান ইউ আই, টেকনো ফোনে অ্যান্ড্রয়েড এর সাথে হাইওএস ইত্যাদি। তবে স্টক অ্যান্ড্রয়েড এর বিষয় হলো এটি সকল মোবাইল বা ডিভাইসে একই রকমের হওয়ার কথা। তবে বাস্তবে দেখা যায়, এতকিছুর পরও কিছু কিছু অপশন যোগ করা হয়।

আসুস জেনফোন ম্যাক্সপ্রো এমটু তে অ্যান্ড্রয়েড টেন আপডেট

আজকে দেখবো আসুস এর জেনফোন ম্যাক্সপ্রো এম টু ডিভাইসে আপডেট করা। এটি একটি স্টক অ্যান্ড্রয়েড ফোন। এই ডিভাইসটি অ্যান্ড্রয়েড এইট দিয়ে শুরু হলেও এখন পর্যন্ত অ্যান্ড্রয়েড টেন এর আপডেট টিও পাওয়া গিয়েছে। আসুস তাদের ওয়েবসাইটে অ্যান্ড্রয়েড টেন আপডেট এর জন্য বেটা ভার্সন রিলিজ করেছে যা নিচে দেয়া হলো:

অ্যান্ড্রয়েড টেন আপডেট

অ্যান্ড্রয়েড টেন বেটা ভার্সন আপডেট ফাইল ডাউনলোড লিংক

আপডেট করার জন্য আপনাকে ১.৬১ গিগাবাইট সাইজের ফাইলটি ডাউনলোড করে নিতে। মোবাইল ও কম্পিউটার উভয় দিয়ে ডাউনলোড করা যাবে। ফাইলটি ডাউনলোড করে ‍রুট ডিরেক্টরিতে রাখতে হবে। রুট ডিরেক্টরি হচ্ছে ফোন মেমরি। মোবাইল দিয়ে ডাউনলোড করলে ফাইলটি ডাউনলোড ফোল্ডারে থাকতে পারে। তাহলে সেটিকে রুট ফোল্ডারে নিয়ে আসতে হবে। কম্পিউটারের ক্ষেত্রেও তাই।

আপডেট এর আগে যা যা খেয়াল রাখতে হবে

ওয়েবসাইটে বলেই দেয়া আছে যে, আপনি আপডেট করলে আপনার সকল তথ্য মুছে যেতে পারে। সেক্ষেত্রে আপনার সকল তথ্য ব্যাকাপ করে রাখাই উত্তম হবে। গুগলের সাথে সংশ্লিষ্ট যে সকল বিষয়াদি রয়েছে সেগুলো খুব সহজেই ব্যাকাপ করা যায় তবে যে সকল তথ্য গুগলের সাথে নেই যেমন আপনার ফোনের বিভিন্ন ফাইল বা টেক্সট ম্যাসেজ সেগুলো ব্যাকাপ করে রাখাই উত্তম। তবে আপনি যদি আপডেট করার আগে আপনার ফোনের সকল লক ডিস্যাবল করে রাখেন তবে সেক্ষেত্রে কোনো তথ্য মুছে যাবে না। তবে যদি সব তথ্য মুছে ফেলতে চান তাহলে কোনো কিছু করা দরকার নেই সরাসরি আপডেট করে নিন।

আপডেট

ফাইলটি যথাযথভাবে ফোনের রুট ফোল্ডারে কপি করে রাখা হলে অ্যান্ড্রয়েড টেন আপডেট এর নোটিফিকেশন চলে আসার কথা। যদি না আসে তবে দেখে নিন রুট ফোল্ডারে ফাইল কপি করা হয়েছে কিনা, হয়ে থাকলে একবার রিস্টার্ট করুন, নোটিফিকেশন পেয়ে যাবেন। নোটিফিকেশন আসলে আপডেট এ ক্লিক করুন।

অ্যান্ড্রয়েড টেন আপডেটের পর যা যা নতুন

অ্যান্ড্রয়েড টেন আপডেট করার পর যে সকল কিছু নতুন দেখতে পাবেন তা হলো:

  • সেটিংস আইকন
  • ডার্ক মোড
  • নেভিগেশন জেস্টার
  • ক্যামেরা অপশন
  • ব্যাটারি ব্যাকাপ

আসলে বর্তমানে অ্যান্ড্রয়েডে তেমন নতুন কিছু আপডেট দেখা যায় না। আপডেট বলতে শুধু কিছু অ্যানিমেশন, ডার্ক মোড, টেক্সার এইসব। তবে যাই হোক না কেন, আপনি এত সময় পর্যন্ত সব কিছু ঠিকঠাক ভাবে করতে পারলে পেয়ে যাবেন আপডেট। সম্পূর্ণ প্রক্রিয়াটি ভিডিওতে দেয়া হলো। চাইলে দেখতে পারেন, আশা করছি ভালো লাগবে। তো আজ এ পর্যন্তই দেখা হবে পরের পোস্টে।

অ্যারে, ক্যারেক্টার ও ফাংশন | নিবন্ধন লিখিত (ICT) পর্ব ২.৩

Advertisment

বেসরকারি শিক্ষক নিবন্ধন লিখিত পরীক্ষার প্রস্তুতির আজকের পর্বে আপনাদের সকলকে স্বাগতম। আজকের বিষয় হলো অ্যারে, ক্যারেক্টার ও ফাংশন। এর আগের দুই পর্বে আমরা যা যা দেখেছি তা হলো:

ব্রাঞ্চিং ও লুপিং | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ২.২

প্রোগ্রামিং ল্যাংগুয়েজ | শিক্ষক নিবন্ধন লিখিত (ICT) পর্ব ২.১

অ্যারে, ক্যারেক্টার ও ফাংশন
অধ্যায় ২ – প্রোগ্রামিং ল্যাংগুয়েজ

আমার ওয়েবসাইটে আপনি যদি প্রথমবারের মতো এসে থাকেন তাহলে জেনে রাখুন, এটি হচ্ছে ICT বিষয়ে শিক্ষক নিবন্ধন লিখিত পরীক্ষার প্রস্তুতির শুরু থেকে শেষ পর্যন্ত সম্পূর্ণ কোর্স।

শিক্ষক নিবন্ধনের সকল পোস্ট পেতে এখানে ক্লিক করুন।

অ্যারে

একই ধরণের ডাটা টাইপের গুচ্ছকে অ্যারে (Array) বলা হয়। অ্যারের উপাদানসমূহ মেমরিতে পাশাপাশি অবস্থান করে। অ্যারের নামের সাথের তৃতীয় বন্ধনীর মধ্যে অ্যারের সাইজ লেখা হয় যা অ্যারের সর্বোচ্চ ডাটার সংখ্যা নির্দেশ করে। এই সংখ্যাকে বলা হয় অ্যারে ইনডেক্স এবং প্রতিটি স্বতন্ত্র ভ্যারিয়েবলকে এলিমেন্ট বলা হয়। অ্যারে ৩ প্রকার:

  • একমাত্রিক (Single Dimensional Array)
  • বহুমাত্রিক (Multidimensional Array)

অ্যারে ঘোষণা:

Datatype VariableName[size];
int roll[5];

Array ব্যবহারের সুবিধাসমূহ:

  • একই ধরণের ডাটাগুলোকে এক ভ্যারিয়েবল দিয়ে প্রকাশ করা যায়
  • অ্যারে প্রোগ্রামকে সহজ, সুন্দর ও ছোট করে
  • প্রোগ্রাম দ্রুত নির্বাহ (Execute) হয়
  • অ্যারের উপাদানসমূহ দ্রুত এক্সেস করা যায়
  • প্রোগ্রামের জটিলতা কমায়

Array ব্যবহারের সুবিধাসমূহ:

  • প্রোগ্রাম নির্বাহের সময় অ্যারের সাইজ পরিবর্তন করা যায় না
  • অ্যারের সাইজ বেশি ঘোষণা করা হলে মেমরি অপচয় হয়

অ্যারে তৈরির C Programming

#include <stdio.h>

int main()
{
    int roll[5] = {1, 2, 3, 4, 5};
    
    printf("%d\n", roll[0]);
    printf("%d\n", roll[1]);
    
    for(int i=0; i<5; i++){
        printf("%d\t", roll[i]);
    }

    return 0;
}

ক্যারেক্টার

#include <stdio.h>

int main()
{
    char ch = 'a';
    
    printf("%c\n", ch);
    printf("%d\n", ch);
    
    char name[5] = {'S', 'U', 'D', 'i', 'P'};
    printf("My name is : %s", name);

    return 0;
}

ফাংশন

প্রোগ্রামে কোন নির্দিষ্ট কাজ সম্পাদনের জন্য কিছু স্টেটমেন্ট কোন নামে একটি ব্লকের মধ্যে রাখা হলে তাকে Function বলা হয়। Function এর নামের শেষে একজোড়া প্রথম বর্তনী থাকে। ফাংশন ২ প্রকার:

  • লাইব্রেরি ফাংশন/বিল্ট ইন ফাংশন
  • ইউজার ডিফাইন্ড ফাংশন

ফাংশন ব্যবহারের সুবিধাসমূহ:

  • প্রোগ্রামকে সংক্ষিপ্ত করা যায়
  • একই ধরণের কাজ বার বার করতে হয় না
  • ভুল নির্ণয় ও সংশোধন সহজতর হয়
  • প্রয়োজন অনুযায়ী ফাংশন তৈরি করা যায়
  • একই ফাংশন বিভিন্ন প্রোগ্রামে ব্যবহার করা যায়
  • প্রোগ্রাম দ্রুত নির্বাহ করা যায়।
#include <stdio.h>

int main()
{
    //decalring a function
    int add(int x, int y){
        return x+y;
    }
    
    int a=5, b=6, c;
    c = add(a,b);
    printf("sum of a and b is: %d", c);

    return 0;
}

এই ছিলো অ্যারে, ক্যারেক্টার ও স্ট্রিং নিয়ে আজকের পর্ব। আশা করছি আপনি isudip এর ইউটিউব চ্যানেলটি সাবস্ক্রাইব করেছেন।

না করলে এখনই করে নিন। কারণ সকল পোস্টের বিষয়াবলী নিয়ে ভিডিওতে বিস্তারিত আলোচনা করা হয়েছে।