C programming – History
C Programming language টি 1972 সালে Denis Ritchie এবং K.N Thompson মিলে তৈরি করেন। তাঁরা এটিকে তৈরি করেছিলেন ইউনিক্স অপারেটিং সিস্টেমের(Unix Operating System) জন্য। C language একটি Procedural Programming Language যা structured, Moduler এবং Flexible হওয়ার কারণে অনেক জনপ্রিয়। এটি খুব দ্রুত কম্পাইল হয় এবং হার্ডওয়্যার প্রোগ্রামিং-এ ব্যবহৃত হয়। C programming language ডাটা স্ট্রাকচার(Data structure), ফাংশন(Function), পয়েন্টার(Pointer) ইত্যাদির মত বৈশিষ্ট্যগুলো রয়েছে। আজকের সময়ে এটি অনেক অ্যাপ্লিকেশন(Application), অপারেটিং সিস্টেম(Operating System), ইম্বেডেড সিস্টেম(Embeded System এবং গেম ডেভেলপমেন্টে(Game Development) ব্যবহৃত হয়।
What is Identifier in C and rule of writting Identifier ?
C Identifier: C Programming এ আইডেন্টিফায়ার (Identifier) হলো কোন ভেরিয়েবল(Variable), ফাংশন(Function), অ্যারে(Array), ইত্যাদির নাম। এগুলো প্রোগ্রামে বিভিন্ন উপাদানকে চিহ্নিত করে।
আইডেন্টিফায়ার(Identifier) লেখার নিয়ম:
- আইডেন্টিফায়ারটি অবশ্যই অক্ষর বা আন্ডারস্কোর (_) দিয়ে শুরু হতে হবে। সংখ্যা দিয়ে শুরু করা যাবে না।
- এর মধ্যে অক্ষর, সংখ্যা এবং আন্ডারস্কোর ব্যবহার করা যাবে। তবে স্পেস ব্যবহার করা যাবে না।
- C কিওয়ার্ড (if, else, while ইত্যাদি) আইডেন্টিফায়ার হিসেবে ব্যবহার করা যাবে না।
- আইডেন্টিফায়ারটি case sensitive। ‘age’ এবং ‘Age’ দুটি আলাদা আইডেন্টিফায়ার।
- আইডেন্টিফায়ারটি যতটা সম্ভব অর্থপূর্ণ হওয়া উচিত।
What is Literals in C programming ?
C Programming Literals : লিটারেলস (literals) হলো এমন কন্স্ট্যান্ট ভ্যালু(Constant value) যা প্রোগ্রামের মধ্যে সরাসরি লেখা হয়। একটি লিটারেল( literal) হলো একটি ডাটা এলিমেন্টের ভ্যালু (Data Element value)। C programming এ পাঁচ ধরনের লিটারেলস(literals) রয়েছে:
- ইন্টিজার লিটারেলস(Integer Literals): C তে ইন্টিজার(Integer) ডাটা টাইপের জন্য ইন্টিজার লিটারেলস(Interger literals) ব্যবহৃত হয়, যেমন: 10, 200, etc
- ফ্লোটিং পয়েন্ট লিটারেলস(Floating Literals): ফ্লোটিং পয়েন্ট (Floating point) ডাটা টাইপের জন্য ফ্লোটিং পয়েন্ট লিটারেলস(Floating point literals) ব্যবহৃত হয়, যেমন: 2.5, 3.1416 etc
- ক্যারেক্টার লিটারেলস(Character Literals): ক্যারেক্টার(Character) ডাটা টাইপের জন্য ‘a’, ‘b’ ইত্যাদি ক্যারেক্টার লিটারেলস(Character literals) ব্যবহৃত হয়।
- স্ট্রিং লিটারেলস(String literals): স্ট্রিং(string) ডাটা টাইপের জন্য “Hello”, “World” ইত্যাদি স্ট্রিং লিটারেলস (String literals) ব্যবহৃত হয়।
- এস্কেপ সিকোয়েন্স লিটারেলস(Escape Sequence literals): ‘\n’, ‘\t’ ইত্যাদি এস্কেপ সিকোয়েন্স(Escape sequence) লিটারেলস(literals।
What is keyword in C ?
C programming এ Keyword : কিওয়ার্ড(Keyword) হলো C programming Language এর একটি রিজার্ভড ওয়ার্ড(reserved word) যার নির্দিষ্ট একটি অর্থ রয়েছে। কিওয়ার্ডগুলো(keywords) কোন আইডেন্টিফায়ার( Identifier) হিসেবে ব্যবহার করা যাবে না।
C programming এ মোট 32 টি কিওয়ার্ড(Keyword) রয়েছে:
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
const | float | short | unsigned |
continue | for | signed | void |
default | goto | sizeof | volatile |
do | if | static | while |
এই কিওয়ার্ডগুলোকে(keywords) রিজার্ভ(Reserved) করে রাখা হয়েছে এবং কোন আইডেন্টিফায়ার (identifier) হিসেবে ব্যবহার করা যাবে না। এগুলো ছাড়াও আরো কিছু পূর্ব-সংজ্ঞায়িত (predefined) কিওয়ার্ড (keyword) রয়েছে যেমন printf, scanf ইত্যাদি।
What is the Basic structure of C programming?
1 | #include<stdio.h> | Header file |
2 | int main() | main function |
3 | { | starting block |
4 | printf(“Welcome to mhalder.com“); | statement |
5 | return 0; | return statement |
5 | } | end of the main block |
What is variable and their rules ?
Variable: ভেরিয়েবল হলো একটি ডাটা সংরক্ষণের জায়গার নাম যাতে প্রোগ্রামের প্রচালনার সময় ভ্যালু সংরক্ষণ করা যায়। উদাহরণস্বরূপ: int age; এখানে age হলো একটি ভেরিয়েবল যা int (ইন্টিজার) টাইপের।
ভেরিয়েবলগুলো প্রোগ্রামের প্রয়োজনে নির্দিষ্ট ডাটা টাইপ অনুসারে ডিক্লেয়ার করা হয়। প্রোগ্রাম পরিচালনার সময় এই ভেরিয়েবলগুলোতে ভ্যালু রাখা হয় এবং প্রয়োজনে সেগুলো পড়া যায় অথবা পরিবর্তন করা হয়।
Variable declaration এর নিয়ম:
- প্রতিটি ভেরিয়েবল এর নাম বর্ণমালা বা আন্ডারস্কোর (_) দিয়ে শুরু হওয়া উচিত।
- ভেরিয়েবল ঘোষণায় কোনো space allow করা যাবে না।
- আন্ডারস্কোর (_) ব্যতীত মাঝখানে অন্য কোন বিশেষ চিহ্ন ব্যবহার করা যাবে না ।
- কোন কীওয়ার্ড কে ভেরিয়েবল নাম হিসাবে ব্যবহার করা যাবে না।
- ভেরিয়েবলের সর্বোচ্চ দৈর্ঘ্য 8 অক্ষর কম্পাইলার এবং অপারেটিং সিস্টেমের উপর নির্ভর করে।
what is Gloal variable and local Variable in C programming?
Global Variable: গ্লোবাল ভেরিয়েবলগুলি সমস্ত ফাংশনের বাইরে সংজ্ঞায়িত করা হয়, সাধারণত প্রোগ্রামের উপরে। গ্লোবাল ভেরিয়েবলগুলি আপনার Programme এর life-time মান ধরে রাখতে পারে ।
Local Variable: একটি লোকাল ভেরিয়েবল একটি ফাংশন বা একটি ব্লকের ভিতরে ঘোষণা করা হয়। লোকাল ভেরিয়েবল এর মান ঐ ফাংশান বা ব্লকের মধ্যে সীমাবদ্ধ।
//Example of Global and Local variable
#include<stdio.h>
#include<conio.h>
int x; // global variable
void main()
{
int y; // local variable
x=11, y=22;
printf("Value of x : %d",x);
printf("Value of y : %d",y);
getch();
}
what is Operator and how to use in C programming ?
অপারেটর (Operator) হলো এমন একটি চিহ্ন যা এক বা একাধিক অপারেন্ডকে নিয়ে কোন অপারেশন সম্পাদন করে এবং ফলাফল রিটার্ন করে। Operator Category-র লিস্ট নিচে দেওয়া হল ।
Category | Operator |
Arithmetic Operators | +, -, *, /, % |
Relational Operators | ==, !=, >, <, >=, <= |
Logical Operators | &&, ||, ! |
Bitwise Operators | &, |, ^, ~, <<, >> |
Assignment Operators | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>= |
Increment and Decrement Operators | |
Conditional Operators | |
Comma Operator |
what is operator precedence and associativity in C programming ?
Precedence: অপারেটর প্রাধান্য হলো অপারেটরগুলোকে একটি নির্দিষ্ট ক্রমে বা প্রাধান্য অনুযায়ী ব্যবহার করা। একটি এক্সপ্রেশনে একাধিক অপারেটর থাকলে প্রাধান্য অনুসারে অপারেটরগুলো কাজ করবে।
Associativity: প্রোগ্রাম এক্সপ্রেশনে যদি একই Precedence এর একাধিক অপারেটর থাকে তখন এক্সপ্রেশন বামদিক থেকে ডান দিকে অথবা ডানদিক থেকে বামদিকে অপারেটরগুলির কার্য সম্পন্ন হয় যে বৈশিষ্ঠ্যের দ্বারা ,তাকে অপারেটর অ্যাসোসিয়েটিভিটি (Associativity) বলে ।
Precedence | Associativity | Operator Category | operators |
Highest | Left to Right | Parentheses | () [] |
Right to Left | Unary plus Unary Minus increment Decrement Logical Negation One’s Complement Pointer reference(Indirection) Address Size of type cast | + – ++ — ! ~ * & sizeof (type) | |
Left to Right | Multiplicative Division Modulus | * / % | |
Left to Right | Addition Substraction | + – | |
Left to Right | Bitwise Left Shift Bitwise Right Shift | << >> | |
Left to Right | Relational | <, <=, >, >= | |
Left to Right | Equality Inequality | == != | |
Left to Right | Bitwise AND | & | |
Left to Right | Bitwise XOR | ^ | |
Left to Right | Bitwise OR | | | |
Left to Right | Logical AND | && | |
Left to Right | Logical OR | || | |
Right to Left | Conditional | ?: | |
Right to Left | Assignment | = += -= *= /= %= &= ^= |= <<= >>= | |
Left to right | Comma | , | |
Lowest |
Increment/decrement operator in C programming with example?
Increment/Decrement Operator হল unary operator যা Operand Value এর মান 1 বৃদ্ধি / হ্রাস করতে ব্যবহৃত হয়। Increment Operator ডবল প্লাস চিহ্ন (++) এবং Decrement Operator ডবল মাইনাস চিহ্ন (–) দ্বারা চিহ্নিত করা হয়। ইহা দুই প্রকার, Pre-Increment/decrement এবং Post-Increment/decrement Operator
Pre-increment / Decrement Operator:
Pre-increment/decrement Operator টি এক্সপ্রেশনে বরাদ্দ (assigning to expression) করার আগে Operand এর মূল মান 1 দ্বারা বৃদ্ধি / হ্রাস করতে ব্যবহৃত হয়। Syntax: a=++m / –m;
Example: ধরা যাক m=2, a=++m /–m এই expression এ m এর মান a তে বরাদ্দ হওয়ার আগেই m এর মান 1 বৃদ্ধি / হ্রাস পায় অর্থাৎ a=3 এবং m=3 হয় / a=1 এবং m=1।
Post-increment/Decrement Operator:
Post-increment /Decrement Operator টি এক্সপ্রেশনে বরাদ্দ (assigning to expression) করার পরে Operand এর মূল মান 1 দ্বারা বৃদ্ধি / হ্রাস পায়। Syntax: a=m++/m– ;
Example: ধরা যাক m=2, a=m++ / m– এই expression এ m এর মান a তে বরাদ্দ হওয়ার পরেই m এর মান 1 বৃদ্ধি / হ্রাস পায় অর্থাৎ a=2 এবং m=3 হয় / a=2 এবং m=1 ।
What is Type Casting with Example?
Type Casting : একটি ডেটাটাইপকে অন্য একটি ডেটাটাইপ এ রূপান্তর করাকে টাইপ কাস্টিং(Type Casting ) বা টাইপ-রূপান্তর( Type Changing) বলা হয় । আপনি নিম্নরূপ কাস্ট অপারেটর(Cast Operator) ব্যবহার করে স্পষ্টভাবে এক প্রকার থেকে অন্য প্রকারে মানগুলিকে রূপান্তর করতে পারেন – (type_name) expression
//Example
main() {
int sum = 26, div = 5;
double result;
Result = (double) sum / div;
printf("Result is : %f\n", Result );
}