#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main() {

  // Create a number that's 0 or 1

  srand (time(NULL));
  int   coin = rand() % 2 + 1;


  // If number is 1: Heads
  // If it is not 1: Tails

      if (coin == 1) {

   cout << "Heads\n";

  }
    else {

    cout << "Tails\n";

  }

}

সি প্লাস প্লাসের একটা টিউটোরিয়ালে এই কোডটা পেয়েছি। এই কোডে

srand (time(NULL));
int coin = rand() % 2 + 1;

এর অর্থ কি?

আর stdlib.h, ctime এই দুইটা লাইব্রেরির কাজ কি? iostream-এর কাজ কি সি-তে stdio.h-এর মতো?

asked 20 Dec '18, 04:36

pollob1563's gravatar image

pollob1563
2077

edited 20 Dec '18, 15:54

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
74618


‌iostream = Input Output Stream, stdio = Standard Input Output

সি ভাষায় হেডার ফাইলের শেষে .h এক্সটেনশন থাকে। সি প্লাস প্লাসের পুরাতন স্ট্যান্ডার্ডেও একই নিয়ম ছিলো। পরে সব হেডার ফাইল থেকে .h এক্সটেনশন বাদ দেওয়ার রীতি চালু হয়েছে। (হয়তো পুরাতন কোডগুলোর সঙ্গে কম্পাটিবিলিটি রক্ষার জন্য) এখনও .h এক্সটেনশনযুক্ত হেডার ফাইল যোগ করার পদ্ধতি বৈধ রয়েছে। সি ভাষার স্ট্যান্ডার্ড লাইব্রেরি হেডারগুলোর .h এক্সটেনশন বাদ দিতে চাইলে হেডার ফাইলের শুরুতে c বর্ণটি বসাতে হয়। যেমন-
stdio.h = cstdio
stdlib.h = cstdlib
math.h = cmath ইত্যাদি।

srand (time(NULL));
int coin = rand() % 2 + 1;

এখানে প্রথম লাইনে সময় অনুসারে একটা র‌্যান্ডম নাম্বার তৈরির সূচনা করা হয়, দ্বিতীয় লাইনে ঐ র‌্যান্ডম নাম্বার (মূলত ১ জানুয়ারি, ১৯৭০ থেকে কম্পাইলের সময় পর্যন্ত যে সময় হয়েছে তার সেকেন্ডে রূপান্তরিত সংখ্যা) তৈরি করে এবং যদি সংখ্যাটি জোড় হয় তাহলে Heads এবং বিজোড় হলে Tails প্রিন্ট করা হয়। time() ফাংশনে একটা পয়েন্টার আর্গুমেন্ট পাঠাতে হয় যেখানে নির্ণিত সময় গিয়ে জমা হয়। কিন্তু এখানে আমাদের সেটা জমা রাখার দরকার নেই, তাই NULL পয়েন্টার পাঠানো হয়েছে।

cstdlib (বা stdlib.h) হেডারে rand() এবং srand() ফাংশনদুটি অবস্থিত। ctime হেডারে আছে time() ফাংশন। iostream হেডারে সি প্লাস প্লাসের cout, cin ইত্যাদি ইনপুট, আউটপুটের বহুল ব্যবহৃত ফাংশনগুলো রয়েছে। সুতরাং iostream এবং cstdio হেডারের ফাংশনগুলো মূলত একই ধরণের কাজ করে।


১. এখানে আরো ভালোভাবে বিস্তারিত (ব্যতিক্রমসহ) লেখা রয়েছে।
২. এখানে বিস্তারিত জানা যাবে।

permanent link

answered 20 Dec '18, 15:51

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
74618

edited 20 Dec '18, 15:54

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×131
×5
×1

question asked: 20 Dec '18, 04:36

question was seen: 807 times

last updated: 20 Dec '18, 15:54