ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

gvpr - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে gvpr চালান

এটি হল জিভিপিআর কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


gvpr - গ্রাফ প্যাটার্ন স্ক্যানিং এবং প্রসেসিং ভাষা

সাইনোপিসিস


জিভিপিআর [-icnqV?] [ -o আউটফাইল ] [ -a args ] [ 'প্রোগ' | -f প্রোগফাইল ] [ নথি পত্র ]

বর্ণনাঃ


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

মূলত, জিভিপিআর প্রতিটি ইনপুট গ্রাফ অতিক্রম করে, দ্বারা নির্দেশিত $G, প্রতিটি নোড এবং প্রান্ত পরিদর্শন করা,
ইনপুট প্রোগ্রামে প্রদত্ত পূর্বনির্ধারিত-অ্যাকশন নিয়মের সাথে এটিকে মেলানো। নিয়ম হল
ক্রমানুসারে মূল্যায়ন করা হয়েছে। প্রতিটি predicate সত্যে মূল্যায়নের জন্য, সংশ্লিষ্ট কর্ম হল
সঞ্চালিত ট্রাভার্সালের সময়, বর্তমান নোড বা প্রান্ত পরিদর্শন করা হয় দ্বারা চিহ্নিত করা হয় $.

প্রতিটি ইনপুট গ্রাফের জন্য, একটি টার্গেট সাবগ্রাফ থাকে, যা দ্বারা চিহ্নিত করা হয় $T, প্রাথমিকভাবে খালি এবং ব্যবহৃত
নির্বাচিত সত্তা এবং একটি আউটপুট গ্রাফ জমা করতে, $O, চূড়ান্ত প্রক্রিয়াকরণের জন্য ব্যবহৃত হয় এবং তারপর
আউটপুটে লেখা। ডিফল্টরূপে, আউটপুট গ্রাফ হল লক্ষ্য গ্রাফ। আউটপুট গ্রাফ
প্রোগ্রামে সেট করা যেতে পারে বা, সীমিত অর্থে, কমান্ড লাইনে।

বিকল্প


নিম্নলিখিত বিকল্পগুলি সমর্থিত:

-a args
স্ট্রিং args হোয়াইটস্পেস-বিভক্ত টোকেনগুলিতে বিভক্ত করা হয়েছে, ব্যক্তির সাথে
টোকেন স্ট্রিং হিসাবে উপলব্ধ জিভিপিআর প্রোগ্রাম হিসাবে ARGV[0],...,ARGV[ARGC-1].
একক বা দ্বিগুণ উদ্ধৃত সাবস্ট্রিং-এর মধ্যে হোয়াইটস্পেস অক্ষর, বা এর আগে a
ব্যাকস্ল্যাশ, বিভাজক হিসাবে উপেক্ষা করা হয়। সাধারণভাবে, একটি ব্যাকস্ল্যাশ অক্ষর বন্ধ হয়ে যায়
নিম্নলিখিত অক্ষরের কোনো বিশেষ অর্থ। উল্লেখ্য যে টোকেন থেকে প্রাপ্ত
বহু -a পতাকা সংযুক্ত করা হয়.

-c আউটপুট গ্রাফ হিসাবে উৎস গ্রাফ ব্যবহার করুন.

-i এর প্রসঙ্গে আউটপুট গ্রাফের নোড-প্ররোচিত সাবগ্রাফ এক্সটেনশনটি বের করুন
এর মূল গ্রাফ।

-o আউটফাইল
আউটপুট স্ট্রীম নির্দিষ্ট ফাইলে লেখার কারণ হয়; ডিফল্টরূপে, আউটপুট হয়
লিখিত stdout.

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

-q সতর্কতা বার্তা বন্ধ করে।

-n গ্রাফ রিড-আগে বন্ধ করে। ডিফল্টরূপে, পরিবর্তনশীল $NG পরবর্তী গ্রাফ সেট করা হয়
প্রক্রিয়া করা এটি প্রক্রিয়া করার আগে পরবর্তী গ্রাফটি পড়ার প্রয়োজন
বর্তমান গ্রাফ, যা ব্লক করতে পারে যদি পরবর্তী গ্রাফটি শুধুমাত্র প্রতিক্রিয়া হিসাবে তৈরি হয়
বর্তমান গ্রাফের প্রক্রিয়াকরণ সংক্রান্ত কিছু কর্ম।

-V প্রোগ্রামটিকে সংস্করণ তথ্য মুদ্রণ করে এবং প্রস্থান করে।

-? প্রোগ্রাম ব্যবহার তথ্য মুদ্রণ এবং প্রস্থান কারণ.

অপারেন্ডস


নিম্নলিখিত অপারেন্ড সমর্থিত:

নথি পত্র ডট ভাষায় 1 বা তার বেশি গ্রাফ ধারণকারী ফাইলের নাম। যদি না -f পছন্দ
দেওয়া হয়, তালিকা থেকে প্রথম নামটি মুছে ফেলা হয় এবং ইনপুট প্রোগ্রাম হিসাবে ব্যবহার করা হয়।
যদি ফাইলের তালিকা খালি থাকে, stdin ব্যবহার করা হবে.

প্রোগ্রাম


A জিভিপিআর প্রোগ্রামে প্রেডিকেট-অ্যাকশন ক্লজের একটি তালিকা রয়েছে, যার একটি ফর্ম রয়েছে:

BEGIN { কর্ম }

BEG_G { কর্ম }

N [ ভবিষ্যদ্বাণী করা ] { কর্ম }

E [ ভবিষ্যদ্বাণী করা ] { কর্ম }

END_G { কর্ম }

শেষ { কর্ম }

একটি প্রোগ্রামের প্রতিটির মধ্যে সর্বাধিক একটি থাকতে পারে BEGIN, END_G এবং শেষ ধারা সেখানে পারে
যে কোন সংখ্যা হতে পারে BEG_G, N এবং E বিবৃতি, প্রথমটি গ্রাফে প্রয়োগ করা হয়, দ্বিতীয়টি এর জন্য
নোড, প্রান্ত থেকে তৃতীয়। এগুলি ব্লকে বিভক্ত, একটি ব্লক গঠিত
ঐচ্ছিক BEG_G বিবৃতি এবং সব N এবং E পরবর্তী পর্যন্ত বিবৃতি BEG_G বিবৃতি, যদি
যেকোনো a-এর উচ্চ-স্তরের শব্দার্থবিদ্যা জিভিপিআর প্রোগ্রামটি হ'ল:

মূল্যায়ন করুন BEGIN ধারা, যদি থাকে।
প্রতিটি ইনপুট গ্রাফের জন্য G {
প্রতিটি ব্লকের জন্য {
সেট G বর্তমান গ্রাফ এবং বর্তমান বস্তু হিসাবে।
মূল্যায়ন করুন BEG_G ধারা, যদি থাকে।
প্রতিটি নোড এবং প্রান্ত জন্য G {
বর্তমান অবজেক্ট হিসাবে নোড বা প্রান্ত সেট করুন।
মূল্যায়ন করুন N or E ধারা, উপযুক্ত হিসাবে।
}
}
সেট G বর্তমান বস্তু হিসাবে।
মূল্যায়ন করুন END_G ধারা, যদি থাকে।
}
মূল্যায়ন করুন শেষ ধারা, যদি থাকে।

এর কর্ম BEGIN, BEG_G, END_G এবং শেষ ধারা সঞ্চালিত হয় যখন দফা হয়
মূল্যায়ন জন্য N or E ধারা, হয় predicate বা কর্ম বাদ দেওয়া যেতে পারে। যদি সেখানে
একটি কর্মের সাথে কোন পূর্বাভাস নয়, কর্মটি প্রতিটি নোড বা প্রান্তে সঞ্চালিত হয়, যেমন
যথাযথ. যদি কোন কর্ম না থাকে এবং predicate সত্য, সংশ্লিষ্ট মূল্যায়ন
নোড বা প্রান্ত লক্ষ্য গ্রাফ যোগ করা হয়.

ব্লকগুলি যে ক্রমে ঘটে সেই ক্রমে মূল্যায়ন করা হয়। একটি ব্লকের মধ্যে, N ক্লজ
(E ধারাগুলি, যথাক্রমে) যে ক্রমে ঘটবে সেই ক্রমে মূল্যায়ন করা হয়। উল্লেখ্য, যদিও,
যে একটি ব্লকের মধ্যে, N or E ট্রাভার্সাল অর্ডারের উপর নির্ভর করে ক্লজগুলি ইন্টারলেস করা যেতে পারে।

পূর্বাভাস এবং ক্রিয়া হল C উপভাষায় বিবৃতির ক্রম যা দ্বারা সমর্থিত
এক্সপ্রেস(3) গ্রন্থাগার। ভবিষ্যদ্বাণী এবং কর্মের মধ্যে পার্থক্য শুধুমাত্র পূর্ববর্তী
একটি টাইপ থাকতে হবে যা সত্য বা মিথ্যা হিসাবে ব্যাখ্যা করা যেতে পারে। এখানে স্বাভাবিক সি
নিয়ম অনুসরণ করা হয়, যেখানে একটি অ-শূন্য মান সত্য বলে বিবেচিত হয়। এই অন্তর্ভুক্ত হবে
অ-খালি স্ট্রিং এবং নোড, প্রান্ত, ইত্যাদির অ-খালি রেফারেন্স। যাইহোক, যদি একটি স্ট্রিং করতে পারে
একটি পূর্ণসংখ্যা রূপান্তর করা, এই মান ব্যবহার করা হয়.

সাধারণ সি বেস প্রকারগুলি ছাড়াও (অকার্যকর, কোন int, গৃহস্থালির কাজ, ভাসা, দীর্ঘ, অস্বাক্ষরিত এবং ডবল),
জিভিপিআর উপলব্ধ স্ট্রিং এর প্রতিশব্দ হিসাবে চর*, এবং গ্রাফ-ভিত্তিক প্রকারগুলি node_t, edge_t,
গ্রাফ_টি এবং obj_t. দ্য obj_t টাইপটিকে অন্য 3টি কংক্রিটের একটি সুপার টাইপ হিসাবে দেখা যেতে পারে
প্রকার সঠিক বেস টাইপ গতিশীলভাবে বজায় রাখা হয়। এই বেস ধরনের ছাড়াও,
শুধুমাত্র অন্যান্য সমর্থিত টাইপ এক্সপ্রেশন হল (সহযোগী) অ্যারে।

ধ্রুবকগুলি সি সিনট্যাক্স অনুসরণ করে, তবে স্ট্রিংগুলি উভয়ের সাথে উদ্ধৃত করা যেতে পারে "..." or '...'. জিভিপিআর
C++ মন্তব্যের পাশাপাশি cpp-টাইপ মন্তব্য গ্রহণ করে। পরেরটির জন্য, যদি একটি লাইন দিয়ে শুরু হয়
একটি '#' অক্ষর, বাকি লাইন উপেক্ষা করা হয়।

একটি বিবৃতি একটি ফাংশন, একটি পরিবর্তনশীল বা একটি অ্যারে, বা একটি এক্সিকিউটেবলের ঘোষণা হতে পারে
বিবৃতি ঘোষণার জন্য, একটি একক সুযোগ আছে। অ্যারে ঘোষণার ফর্ম আছে:

আদর্শ বিন্যাস [ type0 ]

কোথায় type0 ঐচ্ছিক। যদি এটি সরবরাহ করা হয়, পার্সার সেই সমস্ত অ্যারে প্রয়োগ করবে
সাবস্ক্রিপ্টের নির্দিষ্ট প্রকার আছে। যদি এটি সরবরাহ করা না হয়, সব ধরনের বস্তু হতে পারে
সাবস্ক্রিপ্ট হিসাবে ব্যবহৃত। C এর মতো, ভেরিয়েবল এবং অ্যারে অবশ্যই ঘোষণা করতে হবে। বিশেষ করে, একটি
অঘোষিত ভেরিয়েবলকে একটি নোড, প্রান্ত বা একটি বৈশিষ্ট্যের নাম হিসাবে ব্যাখ্যা করা হবে
গ্রাফ, প্রসঙ্গের উপর নির্ভর করে।

এক্সিকিউটেবল স্টেটমেন্টগুলি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

{ [ বিবৃতি ... ] }
অভিব্যক্তি // সাধারণত Var = অভিব্যক্তি
যদি( অভিব্যক্তি ) বিবৃতি [ আর বিবৃতি ]
জন্য( অভিব্যক্তি ; অভিব্যক্তি ; অভিব্যক্তি ) বিবৃতি
জন্য( বিন্যাস [ Var ]) বিবৃতি
forr( বিন্যাস [ Var ]) বিবৃতি
যখন ( অভিব্যক্তি ) বিবৃতি
স্যুইচ ( অভিব্যক্তি ) কেস বিবৃতি
বিরতি [ অভিব্যক্তি ]
অবিরত [ অভিব্যক্তি ]
প্রত্যাবর্তন [ অভিব্যক্তি ]
বন্ধনী আইটেম ঐচ্ছিক.

দ্বিতীয় আকারে উন্নত বিবৃতি এবং forr বিবৃতি, পরিবর্তনশীল Var তৈরি
প্রতিটি মান নির্দিষ্ট অ্যারেতে একটি সূচক হিসাবে ব্যবহৃত হয় এবং তারপর সংশ্লিষ্ট বিবৃতি is
মূল্যায়ন সাংখ্যিক এবং স্ট্রিং সূচকগুলির জন্য, সূচকগুলি ক্রমবর্ধমানভাবে ফেরত দেওয়া হয়
(হ্রাস) সংখ্যাসূচক বা আভিধানিক ক্রম জন্য উন্নত (forr, যথাক্রমে)। এই ব্যবহার করা যেতে পারে
সাজানোর জন্য।

ফাংশন সংজ্ঞা শুধুমাত্র প্রদর্শিত হতে পারে BEGIN দফা।

অভিব্যক্তিতে সাধারণ সি অভিব্যক্তি অন্তর্ভুক্ত। স্ট্রিং তুলনা ব্যবহার করে == এবং != চিকিত্সা
নিয়মিত এক্সপ্রেশন ম্যাচিংয়ের উদ্দেশ্যে একটি প্যাটার্ন হিসাবে ডান হাতের অপারেন্ড। নিদর্শন
ব্যবহার ksh(1) ফাইল ম্যাচ প্যাটার্ন সিনট্যাক্স। (সাধারণ স্ট্রিং সমতার জন্য, ব্যবহার করুন strcmp
ফাংশন.

জিভিপিআর উপযুক্ত হিসাবে একটি স্ট্রিং বা সংখ্যাসূচক মান হিসাবে একটি অভিব্যক্তি ব্যবহার করার চেষ্টা করবে। উভয়
C-এর মতো কাস্ট এবং ফাংশন টেমপ্লেটগুলি যদি সম্ভব হয় তবে রূপান্তরগুলি সম্পাদন করতে পারে৷

গ্রাফিকাল টাইপের এক্সপ্রেশন (যেমন, গ্রাফ_টি, node_t, প্রান্ত_টি, obj_t) একটি দ্বারা অনুসরণ করা যেতে পারে
আকারে ক্ষেত্রের রেফারেন্স .নাম. ফলের মান হল অ্যাট্রিবিউটের মান
নামে নাম প্রদত্ত বস্তুর। উপরন্তু, কিছু প্রেক্ষাপটে একটি অঘোষিত,
অপরিবর্তিত শনাক্তকারী একটি বৈশিষ্ট্যের নাম হিসাবে নেওয়া হয়। বিশেষভাবে, যেমন শনাক্তকারী
বর্তমান নোড বা প্রান্তের বৈশিষ্ট্যগুলি নির্দেশ করুন, যথাক্রমে, মধ্যে N এবং E ধারা, এবং
বর্তমান গ্রাফ ইন BEG_G এবং END_G ধারা

যথারীতি মধ্যে libcgraph(3) মডেল, বৈশিষ্ট্যগুলি স্ট্রিং-মূল্যবান। এছাড়াও, জিভিপিআর
গ্রাফ অবজেক্টের নির্দিষ্ট ছদ্ম-গুণ সমর্থন করে, অগত্যা স্ট্রিং-মূল্যবান নয়। এইগুলো
গ্রাফ বস্তুর অন্তর্নিহিত বৈশিষ্ট্য প্রতিফলিত করে এবং ব্যবহারকারী দ্বারা সেট করা যাবে না।

মাথা : node_t
একটি প্রান্তের মাথা

লেজ : node_t
একটি প্রান্তের লেজ

নাম : স্ট্রিং
একটি প্রান্ত, নোড বা গ্রাফের নাম। একটি প্রান্তের নামের ফর্ম আছে "<লেজ-
নাম>[]", কোথায় হয় "->"অথবা"--"এর উপর নির্ভর করে
গ্রাফ নির্দেশিত বা না। বন্ধনী অংশ [] শুধুমাত্র যদি প্রদর্শিত হয়
প্রান্তের একটি নন-তুচ্ছ কী আছে।

অসম্পূর্ণ : কোন int
একটি নোডের indegree.

আউটডিগ্রী : কোন int
একটি নোড outdegree.

ডিগ্রী : কোন int
একটি নোড ডিগ্রী.

শিকড় : গ্রাফ_টি
একটি বস্তুর মূল গ্রাফ। একটি রুট গ্রাফের মূল নিজেই।

মাতা : গ্রাফ_টি
একটি সাবগ্রাফের মূল গ্রাফ। একটি রুট গ্রাফের প্যারেন্ট হল শূন্য

n_ প্রান্ত : কোন int
গ্রাফে প্রান্তের সংখ্যা

n_নোড : কোন int
গ্রাফে নোডের সংখ্যা

পরিচালিত : কোন int
সত্য (শূন্য নয়) যদি গ্রাফটি নির্দেশিত হয়

যথাযথ : কোন int
সত্য (শূন্য নয়) যদি গ্রাফটি কঠোর হয়

বিল্ট-ইন ফাংশন


নিম্নলিখিত ফাংশন মধ্যে নির্মিত হয় জিভিপিআর. সেই ফাংশনগুলি গ্রাফের রেফারেন্স ফিরিয়ে দেয়
বস্তু ফিরে আসে শূন্য ব্যর্থতার ক্ষেত্রে।

গ্রাফ এবং উপগ্রা
চিত্রলেখ(s : স্ট্রিং, t : স্ট্রিং): গ্রাফ_টি
একটি গ্রাফ তৈরি করে যার নাম s এবং যার ধরন স্ট্রিং দ্বারা নির্দিষ্ট করা হয় t.
কেস, অক্ষর উপেক্ষা U, D, S, N ব্যাখ্যা অনির্দেশিত আছে,
নির্দেশিত, কঠোর এবং অ-কঠোর, যথাক্রমে। যদি t খালি, একটি নির্দেশিত, অ-
কঠোর গ্রাফ তৈরি করা হয়।

সাবজি(g : গ্রাফ_টি, s : স্ট্রিং): গ্রাফ_টি
গ্রাফে একটি সাবগ্রাফ তৈরি করে g নামের সাথে s. যদি সাবগ্রাফটি ইতিমধ্যেই বিদ্যমান থাকে তবে তা হয়
ফিরে আসেন।

isSubg(g : গ্রাফ_টি, s : স্ট্রিং): গ্রাফ_টি
গ্রাফে সাবগ্রাফ প্রদান করে g নামের সাথে s, যদি এটি বিদ্যমান থাকে, বা শূন্য অন্যথায়।

fstsubg(g : গ্রাফ_টি): গ্রাফ_টি
গ্রাফে প্রথম সাবগ্রাফ প্রদান করে g, বা শূন্য যদি কোনোটিই না থাকে।

nxtsubg(sg : গ্রাফ_টি): গ্রাফ_টি
পরে পরবর্তী সাবগ্রাফ ফেরত দেয় sg, বা শূন্য.

সরাসরি(g : গ্রাফ_টি): কোন int
রিটার্ন সত্য যদি এবং শুধুমাত্র যদি g পরিচালিত হয়।

কঠোর(g : গ্রাফ_টি): কোন int
রিটার্ন সত্য যদি এবং শুধুমাত্র যদি g কঠোর

nনোডস(g : গ্রাফ_টি): কোন int
মধ্যে নোডের সংখ্যা ফেরত দেয় g.

nEdges(g : গ্রাফ_টি): কোন int
প্রান্তের সংখ্যা প্রদান করে g.

নোড
নোড(sg : গ্রাফ_টি, s : স্ট্রিং): node_t
গ্রাফে একটি নোড তৈরি করে g নাম s. এই ধরনের একটি নোড ইতিমধ্যে বিদ্যমান থাকলে, এটি ফেরত দেওয়া হয়।

সাবনোড(sg : গ্রাফ_টি, n : node_t): node_t
নোড সন্নিবেশ করান n সাবগ্রাফের মধ্যে g. নোড ফেরত দেয়।

fstnode(g : গ্রাফ_টি): node_t
গ্রাফে প্রথম নোড ফেরত দেয় g, বা শূন্য যদি কোনোটিই না থাকে।

nxtnode(n : node_t): node_t
পরে পরবর্তী নোড ফেরত দেয় n রুট গ্রাফে, বা শূন্য.

nxtnode_sg(sg : গ্রাফ_টি, n : node_t): node_t
পরে পরবর্তী নোড ফেরত দেয় n in sg, বা শূন্য.

নোড(sg : গ্রাফ_টি, s : স্ট্রিং): node_t
(সাব) গ্রাফে একটি নোড সন্ধান করে sg নাম s. এই ধরনের একটি নোড বিদ্যমান থাকলে, এটি ফেরত দেওয়া হয়।
তা না হলে, শূন্য ফেরত দেওয়া হয়

সাবনোড(sg : গ্রাফ_টি, n : node_t): কোন int
নোড হলে অ-শূন্য প্রদান করে n (সাব) গ্রাফে রয়েছে sg, অথবা অন্যথায় শূন্য।

indegreeOf(sg : গ্রাফ_টি, n : node_t): কোন int
নোডের indegree ফেরত দেয় n (সাব) গ্রাফে sg.

outdegreeOf(sg : গ্রাফ_টি, n : node_t): কোন int
নোডের আউটডিগ্রী ফেরত দেয় n (সাব) গ্রাফে sg.

ডিগ্রী(sg : গ্রাফ_টি, n : node_t): কোন int
নোডের ডিগ্রি প্রদান করে n (সাব) গ্রাফে sg.

প্রান্ত
প্রান্ত(t : node_t, h : node_t, s : স্ট্রিং): edge_t
লেজ নোড সহ একটি প্রান্ত তৈরি করে t, হেড নোড h এবং নাম s রুট গ্রাফে। যদি
গ্রাফ অনির্দেশিত, মাথা এবং পুচ্ছ নোডের মধ্যে পার্থক্য গুরুত্বহীন।
এই ধরনের একটি প্রান্ত ইতিমধ্যে বিদ্যমান থাকলে, এটি ফেরত দেওয়া হয়।

edge_sg(sg : গ্রাফ_টি, t : node_t, h : node_t, s : স্ট্রিং): edge_t
লেজ নোড সহ একটি প্রান্ত তৈরি করে t, হেড নোড h এবং নাম s (সাব) গ্রাফে sg (এবং সব
অভিভাবক গ্রাফ)। গ্রাফ অনির্দেশিত হলে, মাথা এবং লেজের মধ্যে পার্থক্য
নোডগুলি গুরুত্বপূর্ণ নয়। এই ধরনের একটি প্রান্ত ইতিমধ্যে বিদ্যমান থাকলে, এটি ফেরত দেওয়া হয়।

অধীন(g : গ্রাফ_টি, e : edge_t): edge_t
প্রান্ত সন্নিবেশ করান e সাবগ্রাফের মধ্যে g. প্রান্ত ফিরিয়ে দেয়।

isEdge(t : node_t, h : node_t, s : স্ট্রিং): edge_t
টেইল নোড সহ একটি প্রান্ত খোঁজে t, হেড নোড h এবং নাম s. যদি গ্রাফ হয়
অনির্দেশিত, মাথা এবং টেইল নোডের মধ্যে পার্থক্য গুরুত্বহীন। যদি এমন একটি
প্রান্ত বিদ্যমান, এটি প্রত্যাবর্তিত হয়। অন্যথায়, শূন্য ফেরত দেওয়া হয়

isEdge_sg(sg : গ্রাফ_টি, t : node_t, h : node_t, s : স্ট্রিং): edge_t
টেইল নোড সহ একটি প্রান্ত খোঁজে t, হেড নোড h এবং নাম s (সাব) গ্রাফে sg। যদি
গ্রাফ অনির্দেশিত, মাথা এবং পুচ্ছ নোডের মধ্যে পার্থক্য গুরুত্বহীন।
এই ধরনের একটি প্রান্ত বিদ্যমান থাকলে, এটি ফেরত দেওয়া হয়। অন্যথায়, শূন্য ফেরত দেওয়া হয়

isSubedge(g : গ্রাফ_টি, e : edge_t): কোন int
প্রান্ত হলে অ-শূন্য প্রদান করে e (সাব) গ্রাফে রয়েছে sg, অথবা অন্যথায় শূন্য।

fstout(n : node_t): edge_t
নোডের প্রথম আউটজ ফেরত দেয় n রুট গ্রাফে।

fstout_sg(sg : গ্রাফ_টি, n : node_t): edge_t
নোডের প্রথম আউটজ ফেরত দেয় n (সাব) গ্রাফে sg.

nxtout(e : edge_t): edge_t
পরের আউটজ ফেরত দেয় e রুট গ্রাফে।

nxtout_sg(sg : গ্রাফ_টি, e : edge_t): edge_t
পরের আউটজ ফেরত দেয় e গ্রাফে sg.

fstin(n : node_t): edge_t
নোডের প্রথম প্রান্তটি ফেরত দেয় n রুট গ্রাফে।

fstin_sg(sg : গ্রাফ_টি, n : node_t): edge_t
নোডের প্রথম প্রান্তটি ফেরত দেয় n গ্রাফে sg.

nxtin(e : edge_t): edge_t
এর পর পরবর্তী ইনজ ফেরত দেয় e রুট গ্রাফে।

nxtin_sg(sg : গ্রাফ_টি, e : edge_t): edge_t
এর পর পরবর্তী ইনজ ফেরত দেয় e গ্রাফে sg.

fstedge(n : node_t): edge_t
নোডের প্রথম প্রান্তটি ফেরত দেয় n রুট গ্রাফে।

fstedge_sg(sg : গ্রাফ_টি, n : node_t): edge_t
নোডের প্রথম প্রান্তটি ফেরত দেয় n গ্রাফে sg.

nxtedge(e : edge_t, node_t): edge_t
পরের প্রান্তটি ফেরত দেয় e রুট গ্রাফে।

nxtedge_sg(sg : গ্রাফ_টি, e : edge_t, node_t): edge_t
পরের প্রান্তটি ফেরত দেয় e গ্রাফে sg.

OPP(e : edge_t, node_t): node_t
প্রান্তে নোড ফেরত দেয় e অসমান n. যদি NULL প্রদান করে n এর একটি নোড নয়
e. এটি ব্যবহার করার সময় দরকারী হতে পারে fstedge এবং nxtedge প্রতিবেশীদের গণনা করা
n.

চিত্রলেখ ইনপুট / আউটপুট
লেখা(g : গ্রাফ_টি): অকার্যকর
কপি করে প্রিন্ট g আউটপুট স্ট্রীমে ডট ফরম্যাটে।

লিখুন জি(g : গ্রাফ_টি, নাম : স্ট্রিং): অকার্যকর
কপি করে প্রিন্ট g ফাইলে ডট ফরম্যাটে নাম.

fwriteG(g : গ্রাফ_টি, fd : কোন int): অকার্যকর
কপি করে প্রিন্ট g পূর্ণসংখ্যা দ্বারা চিহ্নিত খোলা স্ট্রীমে ডট বিন্যাসে fd.

পড়া(নাম : স্ট্রিং): গ্রাফ_টি
ফাইল থেকে পড়া একটি গ্রাফ ফেরত দেয় নাম. গ্রাফটি ডট ফরম্যাটে হওয়া উচিত। যদি না
গ্রাফ পড়া যায়, শূন্য ফেরত দেওয়া হয়

freadG(fd : কোন int): গ্রাফ_টি
খোলা স্ট্রীম থেকে পড়া পরবর্তী গ্রাফ ফেরত দেয় fd. রিটার্নস শূন্য ফাইলের শেষে।

চিত্রলেখ বিবিধ
মুছে ফেলা(g : গ্রাফ_টি, x : obj_t): অকার্যকর
বস্তু মুছে দেয় x গ্রাফ থেকে g। যদি g is শূন্য, ফাংশন এর রুট গ্রাফ ব্যবহার করে
x। যদি x একটি গ্রাফ বা সাবগ্রাফ, যদি না এটি বন্ধ থাকে x তালাবদ্ধ.

isIn(g : গ্রাফ_টি, x : obj_t): কোন int
যদি সত্য ফেরত দেয় x সাবগ্রাফে আছে g.

ক্লোনজি(g : গ্রাফ_টি, s : স্ট্রিং): গ্রাফ_টি
গ্রাফের একটি ক্লোন তৈরি করে g এর নামের সাথে s। যদি s is "", তৈরি করা গ্রাফটিতে আছে
একই নাম g.

ক্লোন(g : গ্রাফ_টি, x : obj_t): obj_t
বস্তুর একটি ক্লোন তৈরি করে x গ্রাফে g. বিশেষ করে, নতুন বস্তু একই আছে
মূল বস্তু হিসাবে নাম/মান বৈশিষ্ট্য এবং গঠন. যদি একটি বস্তু সঙ্গে
একই কী হিসাবে x ইতিমধ্যেই বিদ্যমান, এর বৈশিষ্ট্যগুলি এর দ্বারা আচ্ছাদিত x এবং
বস্তু ফেরত দেওয়া হয়। একটি প্রান্ত ক্লোন করা হলে, উভয় প্রান্ত বিন্দু নিহিতভাবে ক্লোন করা হয়।
যদি একটি গ্রাফ ক্লোন করা হয়, সমস্ত নোড, প্রান্ত এবং সাবগ্রাফগুলি অন্তর্নিহিতভাবে ক্লোন করা হয়। যদি x
একটি গ্রাফ, g হতে পারে শূন্য, যে ক্ষেত্রে ক্লোন করা বস্তুটি একটি নতুন রুট হবে
চিত্রলেখ. এই ক্ষেত্রে, কলের সমতুল্য ক্লোনজি(x,"").

কপি(g : গ্রাফ_টি, x : obj_t): obj_t
বস্তুর একটি অনুলিপি তৈরি করে x গ্রাফে g, যেখানে নতুন বস্তুর একই নাম/মান রয়েছে
মূল বস্তু হিসাবে বৈশিষ্ট্য. যদি একই কী সহ একটি বস্তু x ইতিমধ্যে
বিদ্যমান, এর বৈশিষ্ট্যগুলি এর দ্বারা আবৃত করা হয় x এবং বস্তুটি ফেরত দেওয়া হয়। বিঃদ্রঃ
যে এটি একটি অগভীর অনুলিপি. যদি x একটি গ্রাফ, এর কোনটি নোড, প্রান্ত বা সাবগ্রাফ নয়
নতুন গ্রাফে কপি করা হয়। যদি x একটি প্রান্ত, যদি শেষ বিন্দু তৈরি করা হয়
প্রয়োজনীয়, কিন্তু তারা ক্লোন করা হয় না. যদি x একটি গ্রাফ, g হতে পারে শূন্য, কোন ক্ষেত্রে
ক্লোন করা বস্তুটি একটি নতুন রুট গ্রাফ হবে।

কপিএ(src : obj_t, TGT : obj_t): কোন int
বস্তুর বৈশিষ্ট্য অনুলিপি করে src আপত্তি করা TGT, কোনো অ্যাট্রিবিউট মান ওভাররাইট করা
TGT প্রাথমিকভাবে থাকতে পারে।

প্রবর্তিত করা(g : গ্রাফ_টি): অকার্যকর
প্রসারিত g এর রুট গ্রাফে এর নোড-প্ররোচিত সাবগ্রাফ এক্সটেনশনে।

hasAttr(src : obj_t, নাম : স্ট্রিং): কোন int
বস্তু যদি অ-শূন্য প্রদান করে src একটি বৈশিষ্ট্য আছে যার নাম নাম. এটি 0 প্রদান করে
অন্যথায়।

isAttr(g : গ্রাফ_টি, রকম : স্ট্রিং, নাম : স্ট্রিং): কোন int
একটি বৈশিষ্ট্য থাকলে অ-শূন্য প্রদান করে নাম এ সংজ্ঞায়িত করা হয়েছে g বস্তুর জন্য
প্রদত্ত রকম. নোড, প্রান্ত এবং গ্রাফের জন্য, রকম হওয়া উচিত "N", "E", এবং "G",
যথাক্রমে এটি অন্যথায় 0 ফেরত দেয়।

বয়স(src : obj_t, নাম : স্ট্রিং): স্ট্রিং
বৈশিষ্ট্যের মান প্রদান করে নাম বস্তুর মধ্যে src. এই ক্ষেত্রে এটি দরকারী
কখন নাম "হেড" বা "রুট" এর মতো কীওয়ার্ডগুলির একটির সাথে দ্বন্দ্ব। যদি
গ্রাফে অ্যাট্রিবিউট ঘোষণা করা হয়নি, ফাংশনটি এটি দিয়ে শুরু করবে
"" এর একটি ডিফল্ট মান এটি এড়াতে, এক ব্যবহার করা উচিত hasAttr or isAttr ক্রিয়া
বৈশিষ্ট্য বিদ্যমান কিনা তা পরীক্ষা করতে।

সম্পদ(src : obj_t, নাম : স্ট্রিং, মূল্য : স্ট্রিং): কোন int
বৈশিষ্ট্যের মান সেট করে নাম বস্তুর মধ্যে src থেকে মূল্য. সাফল্যে 0 ফেরত দেয়,
ব্যর্থতার উপর শূন্য নয়। দেখা বয়স উপরে।

getDflt(g : গ্রাফ_টি, রকম : স্ট্রিং, নাম : স্ট্রিং): স্ট্রিং
বৈশিষ্ট্যের ডিফল্ট মান প্রদান করে নাম বস্তুর মধ্যে g দেওয়া রকম। জন্য
নোড, প্রান্ত, এবং গ্রাফ, রকম যথাক্রমে "N", "E", এবং "G" হওয়া উচিত। যদি
গ্রাফে অ্যাট্রিবিউট ঘোষণা করা হয়নি, ফাংশনটি এটি দিয়ে শুরু করবে
"" এর একটি ডিফল্ট মান এটি এড়াতে, এক ব্যবহার করা উচিত isAttr পরীক্ষা করার ফাংশন
যে বৈশিষ্ট্য বিদ্যমান।

setDflt(g : গ্রাফ_টি, রকম : স্ট্রিং, নাম : স্ট্রিং, মূল্য : স্ট্রিং): কোন int
অ্যাট্রিবিউটের ডিফল্ট মান সেট করে নাম থেকে মূল্য বস্তুর মধ্যে g দেওয়া
রকম. নোড, প্রান্ত এবং গ্রাফের জন্য, রকম যথাক্রমে "N", "E", এবং "G" হওয়া উচিত।
সাফল্যে 0 ফেরত দেয়, ব্যর্থতার ক্ষেত্রে শূন্য নয়। দেখা getDflt উপরে।

fstAttr(g : গ্রাফ_টি, রকম : স্ট্রিং): স্ট্রিং
এর মধ্যে অবজেক্টের প্রথম অ্যাট্রিবিউটের নাম রিটার্ন করে g দেওয়া রকম। জন্য
নোড, প্রান্ত, এবং গ্রাফ, রকম যথাক্রমে "N", "E", এবং "G" হওয়া উচিত। যদি সেখানে
কোন বৈশিষ্ট্য নেই, স্ট্রিং "" ফেরত দেওয়া হয়।

nxtAttr(g : গ্রাফ_টি, রকম : স্ট্রিং, নাম : স্ট্রিং): স্ট্রিং
এর মধ্যে অবজেক্টের পরবর্তী অ্যাট্রিবিউটের নাম প্রদান করে g দেওয়া রকম পরে
গুণ নাম. যুক্তি নাম একটি বিদ্যমান বৈশিষ্ট্যের নাম হতে হবে; এটা
সাধারণত পূর্ববর্তী কলের রিটার্ন মান হবে fstAttr or nxtAttr। জন্য
নোড, প্রান্ত, এবং গ্রাফ, রকম যথাক্রমে "N", "E", এবং "G" হওয়া উচিত। যদি সেখানে
কোন বৈশিষ্ট্য অবশিষ্ট নেই, স্ট্রিং "" ফিরে এসেছে।

compOf(g : গ্রাফ_টি, n : node_t): গ্রাফ_টি
গ্রাফের সংযুক্ত উপাদান প্রদান করে g নোড ধারণকারী n, এর সাবগ্রাফ হিসাবে
g. সাবগ্রাফে শুধুমাত্র নোড থাকে। একজন ব্যবহার করতে পারেন প্রবর্তিত করা প্রান্ত যোগ করতে. দ্য
ফাংশন ব্যর্থ হয় এবং ফিরে আসে শূন্য if n ভিতরে নেই g. সংযোগের উপর ভিত্তি করে
এর অন্তর্নিহিত অনির্দেশিত গ্রাফ g.

kindOf(আপত্তি : obj_t): স্ট্রিং
এর প্রকারের একটি ইঙ্গিত প্রদান করে আপত্তি. নোড, প্রান্ত এবং গ্রাফের জন্য, এটি ফিরে আসে
যথাক্রমে "N", "E", এবং "G",।

তালা(g : গ্রাফ_টি, v : কোন int): কোন int
রুট গ্রাফে গ্রাফ লকিং প্রয়োগ করে। পূর্ণসংখ্যা হলে v ইতিবাচক, গ্রাফ হল
যাতে ভবিষ্যতে কল করতে সেট করুন মুছে ফেলা কোন অবিলম্বে প্রভাব আছে. যদি v শূন্য হয়,
গ্রাফ আনলক করা হয়। যদি গ্রাফ মুছে ফেলার জন্য একটি কল ছিল
লক করা হয়েছে, গ্রাফটি বন্ধ। যদি v নেতিবাচক, কিছুই করা হয় না। সব ক্ষেত্রে,
পূর্ববর্তী লক মান প্রদান করা হয়।

স্ট্রিং
স্প্রিন্ট(fmt : স্ট্রিং, ...): স্ট্রিং
এক্সপ্রেশনের মান বিন্যাস করার ফলে স্ট্রিং ফেরত দেয়
পরে ঘটছে fmt অনুযায়ী printf,(3) বিন্যাস fmt

gsub(Str : স্ট্রিং, চাপড়ান : স্ট্রিং): স্ট্রিং

gsub(Str : স্ট্রিং, চাপড়ান : স্ট্রিং, repl : স্ট্রিং): স্ট্রিং
আয় Str সব সাবস্ট্রিং মিলে যাচ্ছে চাপড়ান মুছে ফেলা বা দ্বারা প্রতিস্থাপিত repl,
যথাক্রমে.

উপ(Str : স্ট্রিং, চাপড়ান : স্ট্রিং): স্ট্রিং

উপ(Str : স্ট্রিং, চাপড়ান : স্ট্রিং, repl : স্ট্রিং): স্ট্রিং
আয় Str বামতম সাবস্ট্রিং ম্যাচিং সহ চাপড়ান মুছে ফেলা বা দ্বারা প্রতিস্থাপিত repl,
যথাক্রমে শুরুতে এবং শেষে '^' এবং '$' অক্ষর ব্যবহার করা যেতে পারে,
যথাক্রমে, এর চাপড়ান প্যাটার্নটিকে শুরুতে বা শেষ পর্যন্ত নোঙ্গর করতে Str.

substr(Str : স্ট্রিং, আইডিএক্স : কোন int): স্ট্রিং

substr(Str : স্ট্রিং, আইডিএক্স : কোন int, লেন : কোন int): স্ট্রিং
এর সাবস্ট্রিং প্রদান করে Str অবস্থান থেকে শুরু আইডিএক্স স্ট্রিং এর শেষে বা
দৈর্ঘ্যের লেন, যথাক্রমে। ইনডেক্সিং 0 থেকে শুরু হয়। যদি আইডিএক্স নেতিবাচক বা আইডিএক্স is
এর দৈর্ঘ্যের চেয়ে বেশি Str, একটি মারাত্মক ত্রুটি ঘটে। একইভাবে, দ্বিতীয়টিতে
ক্ষেত্রে, যদি লেন নেতিবাচক বা আইডিএক্স + লেন এর দৈর্ঘ্যের চেয়ে বেশি Strএকটি মারাত্মক
ত্রুটি ঘটে।

strcmp(s1 : স্ট্রিং, s2 : স্ট্রিং): কোন int
স্ট্যান্ডার্ড সি ফাংশন প্রদান করে strcmp(3).

লম্বা(s : স্ট্রিং): কোন int
স্ট্রিং এর দৈর্ঘ্য প্রদান করে s.

সূচক(s : স্ট্রিং, t : স্ট্রিং): কোন int

rindex(s : স্ট্রিং, t : স্ট্রিং): কোন int
স্ট্রিং-এ অক্ষরের সূচী প্রদান করে s যেখানে বামতম (ডানদিকে) কপি
স্ট্রিং এর t পাওয়া যাবে, অথবা -1 যদি t এর একটি সাবস্ট্রিং নয় s.

ম্যাচ(s : স্ট্রিং, p : স্ট্রিং): কোন int
স্ট্রিং-এ অক্ষরের সূচী প্রদান করে s যেখানে প্যাটার্নের বামতম মিল
p পাওয়া যাবে, অথবা -1 এর কোনো সাবস্ট্রিং না থাকলে s ম্যাচ p.

উপরের(s : স্ট্রিং): স্ট্রিং
এর একটি সংস্করণ প্রদান করে s বর্ণানুক্রমিক অক্ষরগুলিকে বড় হাতের অক্ষরে রূপান্তরিত করে।

নিম্ন(s : স্ট্রিং): স্ট্রিং
এর একটি সংস্করণ প্রদান করে s বর্ণমালার অক্ষরগুলিকে ছোট হাতের অক্ষরে রূপান্তরিত করে।

অনুশাসন(s : স্ট্রিং): স্ট্রিং
এর একটি সংস্করণ প্রদান করে s একটি ডট ফাইলে একটি শনাক্তকারী হিসাবে ব্যবহার করা উপযুক্ত।

এইচটিএমএল(g : গ্রাফ_টি, s : স্ট্রিং): স্ট্রিং
এর একটি ``জাদু' সংস্করণ প্রদান করে s একটি HTML স্ট্রিং হিসাবে। এটি সাধারণত ব্যবহার করা হবে
একটি গ্রাফ অবজেক্টে একটি HTML-এর মতো লেবেল সংযুক্ত করুন। উল্লেখ্য যে প্রত্যাবর্তিত স্ট্রিং বসবাস করে
g. বিশেষ করে মুক্ত করা হবে যখন g বন্ধ আছে, এবং একটি HTML স্ট্রিং হিসাবে কাজ করতে,
এটি একটি বস্তুর সাথে ব্যবহার করতে হবে g. উপরন্তু, উল্লেখ্য যে কোণ বন্ধনী
উদ্ধৃতি অংশ হতে হবে না s. এই যোগ করা হবে যদি g কংক্রিট DOT এ লেখা আছে
বিন্যাস।

ishtml(s : স্ট্রিং): কোন int
অ-শূন্য প্রদান করে যদি এবং শুধুমাত্র যদি s একটি HTML স্ট্রিং।

xOf(s : স্ট্রিং): স্ট্রিং
স্ট্রিং ফেরত দেয় "x"যদি s ফর্ম আছে"x,y", যেখানে উভয় x এবং y সংখ্যাসূচক হয়

yOf(s : স্ট্রিং): স্ট্রিং
স্ট্রিং ফেরত দেয় "y"যদি s ফর্ম আছে"x,y", যেখানে উভয় x এবং y সংখ্যাসূচক হয়

llOf(s : স্ট্রিং): স্ট্রিং
স্ট্রিং ফেরত দেয় "llx,lly"যদি s ফর্ম আছে"llx,lly,urx,Ury", যেখানে সব llx,
lly, urx, এবং Ury সংখ্যাসূচক হয়

urOf(s)
urOf(s : স্ট্রিং): স্ট্রিং স্ট্রিং ফেরত দেয় "urx,Ury"যদি s ফর্ম আছে
"llx,lly,urx,Ury", যেখানে সব llx, lly, urx, এবং Ury সংখ্যাসূচক হয়

sscanf(s : স্ট্রিং, fmt : স্ট্রিং, ...): কোন int
স্ট্রিং স্ক্যান করে s, অনুযায়ী মান নিষ্কাশন sscanf(3) বিন্যাস fmt. দ্য
মান নিম্নলিখিত ঠিকানায় সংরক্ষণ করা হয় fmt, ফর্ম থাকার ঠিকানা &v,
কোথায় v সঠিক প্রকারের কিছু ঘোষিত পরিবর্তনশীল। আইটেমের সংখ্যা প্রদান করে
সফলভাবে স্ক্যান করা হয়েছে।

বিভক্ত করা(s : স্ট্রিং, -arr : বিন্যাস, seps : স্ট্রিং): কোন int

বিভক্ত করা(s : স্ট্রিং, -arr : বিন্যাস): কোন int

টোকেন(s : স্ট্রিং, -arr : বিন্যাস, seps : স্ট্রিং): কোন int

টোকেন(s : স্ট্রিং, -arr : বিন্যাস): কোন int
সার্জারির বিভক্ত করা ফাংশন স্ট্রিং ভাঙে s ক্ষেত্রের মধ্যে, যখন টোকেন ক্রিয়া
স্ট্রিংকে টোকেনে ভেঙে দেয়। একটি ক্ষেত্র সমস্ত অ-বিভাজক অক্ষর নিয়ে গঠিত
দুটি বিভাজক অক্ষর বা স্ট্রিংয়ের শুরু বা শেষের মধ্যে। এইভাবে, ক
ক্ষেত্রটি খালি স্ট্রিং হতে পারে। একটি টোকেন একটি সর্বাধিক, অ-খালি সাবস্ট্রিং নয়
একটি বিভাজক অক্ষর ধারণকারী. বিভাজক অক্ষর যারা দেওয়া আছে
seps যুক্তি. যদি seps প্রদান করা হয় না, ডিফল্ট মান হল " \t\n"। দ্য
ফাংশন ক্ষেত্র বা টোকেনের সংখ্যা ফেরত দেয়।

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

ইনপুট / আউটপুট
ছাপানো(...): অকার্যকর
ছাপা( এক্সপ্রেস, ... ) প্রতিটি আর্গুমেন্টের একটি স্ট্রিং উপস্থাপনা মুদ্রণ করে
stdout, একটি নতুন লাইন দ্বারা অনুসরণ.

printf,(fmt : স্ট্রিং, ...): কোন int

printf,(fd : কোন int, fmt : স্ট্রিং, ...): কোন int
নিম্নলিখিত এক্সপ্রেশনের মান বিন্যাস করার ফলে স্ট্রিং প্রিন্ট করে
fmt অনুযায়ী printf,(3) বিন্যাস fmt. সাফল্যে 0 ফেরত দেয়। ডিফল্টরূপে, এটা
উপর প্রিন্ট stdout. ঐচ্ছিক পূর্ণসংখ্যা হলে fd দেওয়া হয়, আউটপুট লেখা হয়
এর সাথে যুক্ত খোলা প্রবাহ fd.

scanf(fmt : স্ট্রিং, ...): কোন int

scanf(fd : কোন int, fmt : স্ট্রিং, ...): কোন int
অনুযায়ী একটি ইনপুট স্ট্রীম থেকে মান স্ক্যান scanf(3) বিন্যাস fmt. দ্য
মান নিম্নলিখিত ঠিকানায় সংরক্ষণ করা হয় fmt, ফর্ম থাকার ঠিকানা &v,
কোথায় v সঠিক প্রকারের কিছু ঘোষিত পরিবর্তনশীল। ডিফল্টরূপে, এটি থেকে পড়ে
stdin. ঐচ্ছিক পূর্ণসংখ্যা হলে fd দেওয়া হয়, ইনপুট খোলা স্ট্রিম থেকে পড়া হয়
সঙ্গে যুক্ত fd. সফলভাবে স্ক্যান করা আইটেমের সংখ্যা প্রদান করে।

openF(s : স্ট্রিং, t : স্ট্রিং): কোন int
ফাইল খোলে s একটি I/O স্ট্রীম হিসাবে। স্ট্রিং আর্গুমেন্ট t ফাইলটি কেমন তা নির্দিষ্ট করে
খোলা আর্গুমেন্টগুলি সি ফাংশনের মতোই fopen(3)। এটি একটি ফেরত
পূর্ণসংখ্যা স্ট্রীম নির্দেশ করে, বা ত্রুটিতে -1।

যথারীতি, স্ট্রীম 0, 1 এবং 2 ইতিমধ্যেই খোলা আছে৷ stdin, stdout, এবং stderr,
যথাক্রমে থেকে জিভিপিআর ব্যবহার করতে পারেন stdin ইনপুট গ্রাফ পড়তে, ব্যবহারকারীর উচিত
এই স্ট্রিম ব্যবহার এড়িয়ে চলুন.

closeF(fd : কোন int): কোন int
পূর্ণসংখ্যা দ্বারা চিহ্নিত খোলা প্রবাহ বন্ধ করে fd. স্ট্রীম 0, 1 এবং 2 হতে পারে না
বন্ধ সাফল্যে 0 ফেরত দেয়।

পড়ল(fd : কোন int): স্ট্রিং
ইনপুট স্ট্রীম থেকে পড়া পরবর্তী লাইন ফেরত দেয় fd. এটি খালি স্ট্রিং "" ফেরত দেয়
ফাইলের শেষে। নোট করুন যে নতুন লাইনের অক্ষরটি প্রত্যাবর্তিত স্ট্রিংটিতে রেখে দেওয়া হয়েছে।

ম্যাথ
মেপুঃ(d : ডবল): ডবল
ই-তে ফেরত দেয় dম শক্তি

লগ ইন করুন(d : ডবল): ডবল
এর প্রাকৃতিক লগ ফেরত দেয় d.

বর্গ(d : ডবল): ডবল
দ্বিগুণের বর্গমূল ফেরত দেয় d.

Pow(d : ডবল, x : ডবল): ডবল
আয় d পর্যন্ত উত্থাপিত xম শক্তি

কোসাইন্(d : ডবল): ডবল
এর কোসাইন ফেরত দেয় d.

ছাড়া(d : ডবল): ডবল
এর সাইন ফেরত দেয় d.

atan2(y : ডবল, x : ডবল): ডবল
এর আর্কট্যাঞ্জেন্ট ফেরত দেয় y / x পরিসরে -pi থেকে পাই।

MIN এর(y : ডবল, x : ডবল): ডবল
ন্যূনতম ফেরত দেয় y এবং x.

MAX টি(y : ডবল, x : ডবল): ডবল
সর্বোচ্চ প্রদান করে y এবং x.

সহযোগী অ্যারেগুলির
# -arr : কোন int
অ্যারের উপাদানের সংখ্যা প্রদান করে -arr.

আইডিএক্স in -arr : কোন int
সূচকের জন্য একটি মান সেট করা থাকলে 1 প্রদান করে আইডিএক্স অ্যারের মধ্যে -arr. এটি 0 প্রদান করে
অন্যথায়।

আনসেট করা(v : বিন্যাস, আইডিএক্স): কোন int
দ্বারা সূচীকৃত আইটেমটি সরিয়ে দেয় আইডিএক্স. আইটেমটি বিদ্যমান থাকলে এটি 1 প্রদান করে, অন্যথায় 0।

আনসেট করা(v : বিন্যাস): অকার্যকর
অ্যারে পুনরায় আরম্ভ করে।

বিবিধ
প্রস্থান(v : কোন int): অকার্যকর
কারণসমূহ জিভিপিআর প্রস্থান কোড দিয়ে প্রস্থান করতে v.

পদ্ধতি(cmd কমান্ড : স্ট্রিং): কোন int
স্ট্যান্ডার্ড সি ফাংশন প্রদান করে পদ্ধতি(3)। এটি কার্যকর করে cmd কমান্ড ব্যবহারকারীর শেলের মধ্যে
পরিবেশ, এবং শেলের প্রস্থান অবস্থা ফেরত দেয়।

র্যান্ড্(): ডবল
0 এবং 1 এর মধ্যে একটি ছদ্ম-এলোমেলো দ্বিগুণ প্রদান করে।

srand(): কোন int

srand(v : কোন int): কোন int
এলোমেলো সংখ্যা জেনারেটরের জন্য একটি বীজ সেট করে। ঐচ্ছিক যুক্তি বীজ দেয়;
যদি এটি বাদ দেওয়া হয়, বর্তমান সময় ব্যবহার করা হয়। পূর্ববর্তী বীজ মান ফেরত দেওয়া হয়.
srand কোন কল করার আগে কল করা উচিত র্যান্ড্.

colorx(রঙ : স্ট্রিং, fmt : স্ট্রিং): স্ট্রিং
একটি ফর্ম্যাট থেকে অন্য ফর্ম্যাটে একটি রঙ অনুবাদ করে। দ্য রঙ যুক্তি একটি রঙ হতে হবে
স্বীকৃত স্ট্রিং উপস্থাপনা এক. দ্য fmt মান এক হতে হবে
"RGB", "RGBA", "HSV", বা "HSVA"। একটি খালি স্ট্রিং ত্রুটিতে ফিরে আসে।

বিল্ট-ইন বৈচিত্র্য


জিভিপিআর নির্দিষ্ট বিশেষ, অন্তর্নির্মিত ভেরিয়েবল প্রদান করে, যার মান স্বয়ংক্রিয়ভাবে সেট করা হয়
জিভিপিআর প্রেক্ষাপটের উপর নির্ভর করে। উল্লিখিত ব্যতীত, ব্যবহারকারী তাদের মান পরিবর্তন করতে পারে না।

$ : obj_t
প্রসঙ্গের উপর নির্ভর করে বর্তমান বস্তু (নোড, প্রান্ত, গ্রাফ) বোঝায়। এইটা না
সহজলভ্য BEGIN or শেষ ধারা

$F : স্ট্রিং
বর্তমান ইনপুট ফাইলের নাম।

$G : গ্রাফ_টি
প্রসেস করা বর্তমান গ্রাফ বোঝায়। এটা পাওয়া যায় না BEGIN or শেষ
ধারা

$NG : গ্রাফ_টি
প্রক্রিয়া করা পরবর্তী গ্রাফ নির্দেশ করে। যদি $NG হল NULL, বর্তমান গ্রাফ $G হয়
শেষ গ্রাফ। মনে রাখবেন যদি ইনপুটটি stdin থেকে আসে, শেষ গ্রাফটি হতে পারে না
ইনপুট পাইপ বন্ধ না হওয়া পর্যন্ত নির্ধারিত হয়। এটা পাওয়া যায় না BEGIN or শেষ
ধারা, বা যদি -n পতাকা ব্যবহার করা হয়।

$O : গ্রাফ_টি
আউটপুট গ্রাফ বোঝায়। গ্রাফ ট্রাভার্সালের আগে, এটি লক্ষ্যে শুরু করা হয়
চিত্রলেখ. ট্রাভার্সাল এবং যে কোনো পরে END_G কর্ম, যদি এটি একটি অ-খালি গ্রাফ নির্দেশ করে,
সেই গ্রাফটি আউটপুট স্ট্রীমে মুদ্রিত হয়। এটা শুধুমাত্র বৈধ N, E এবং END_G
ধারা আউটপুট গ্রাফ ব্যবহারকারী দ্বারা সেট করা হতে পারে.

$T : গ্রাফ_টি
বর্তমান লক্ষ্য গ্রাফ বোঝায়। এটি এর একটি সাবগ্রাফ $G এবং শুধুমাত্র উপলব্ধ
N, E এবং END_G ধারা

$tgtname : স্ট্রিং
লক্ষ্য গ্রাফের নাম বোঝায়। ডিফল্টরূপে, এটা সেট করা হয় "gvpr_result"। যদি
এর মৃত্যুদন্ড কার্যকর করার সময় একাধিকবার ব্যবহার করা হয়েছে জিভিপিআর, নামের সাথে একটি যুক্ত করা হবে
পূর্ণসংখ্যা এই পরিবর্তনশীল ব্যবহারকারী দ্বারা সেট করা হতে পারে.

$tvroot : node_t
একটি (নির্দেশিত বা অনির্দেশিত) গভীরতা-প্রথম বা প্রস্থ-এর জন্য প্রারম্ভিক নোড নির্দেশ করে
গ্রাফের প্রথম ট্রাভার্সাল (cf. $tvtype নিচে). ডিফল্ট মান হল শূন্য উন্নত
প্রতিটি ইনপুট গ্রাফ। প্রদত্ত রুটে ট্রাভার্সালের পর, যদি এর মান $tvroot
পরিবর্তিত হয়েছে, এর নতুন মান দিয়ে একটি নতুন ট্রাভার্সাল শুরু হবে $tvroot. এছাড়াও, সেট
$tvnext নিচে.

$tvnext : node_t
একটি (নির্দেশিত বা অনির্দেশিত) গভীরতার জন্য পরবর্তী প্রারম্ভিক নোড নির্দেশ করে
গ্রাফের প্রস্থ-প্রথম ট্রাভার্সাল (cf. $tvtype নিচে). একটি ট্রাভার্সাল শেষ হলে
এবং $tvroot রিসেট করা হয়নি কিন্তু $tvnext সেট করা হয়েছে কিন্তু ব্যবহার করা হয়নি, এই
নোড পরবর্তী পছন্দ হিসাবে ব্যবহার করা হবে $tvroot. ডিফল্ট মান হল শূন্য উন্নত
প্রতিটি ইনপুট গ্রাফ।

$tvedge : edge_t
BFS এবং DFS ট্রাভার্সালের জন্য, এটি স্রোতে পৌঁছানোর জন্য ব্যবহৃত প্রান্তে সেট করা হয়
নোড বা প্রান্ত। একটি ট্রাভার্সালের শুরুতে, বা অন্যান্য ট্রাভার্সাল প্রকারের জন্য,
মান হয় শূন্য.

$tvtype : tvtype_t
নির্দেশ করে কিভাবে জিভিপিআর একটি গ্রাফ অতিক্রম করে। এটি শুধুমাত্র একটি ধ্রুবক মান নিতে পারে
নীচে বর্ণিত প্রিভিক্স "TV_" সহ। টিভি_ফ্ল্যাট ডিফল্ট হয়

অন্তর্নিহিত গ্রাফ লাইব্রেরিতে সিগ্রাফ(3), অনির্দেশিত গ্রাফের প্রান্তগুলি একটি দেওয়া হয়
নির্বিচারে দিকনির্দেশনা। এটি ট্রাভার্সালের জন্য ব্যবহৃত হয়, যেমন TV_fwd, প্রয়োজন
নির্দেশিত প্রান্ত।

এআরজিসি : কোন int
দ্বারা নির্দিষ্ট আর্গুমেন্ট সংখ্যা বোঝায় -a args কমান্ড লাইন আর্গুমেন্ট।

এআরজিভি : স্ট্রিং বিন্যাস
দ্বারা নির্দিষ্ট আর্গুমেন্টের বিন্যাস বোঝায় -a args কমান্ড লাইন আর্গুমেন্ট। দ্য
iম যুক্তি দ্বারা দেওয়া হয় ARGV[i].

বিল্ট-ইন কনস্ট্যান্টস


দ্বারা সংজ্ঞায়িত বিভিন্ন প্রতীকী ধ্রুবক আছে জিভিপিআর.

শূন্য : obj_t
একটি নাল অবজেক্ট রেফারেন্স, 0 এর সমতুল্য।

টিভি_ফ্ল্যাট : tvtype_t
আপাতদৃষ্টিতে নির্বিচারে পরিদর্শন করা গ্রাফ অবজেক্ট সহ একটি সহজ, সমতল ট্রাভার্সাল।

TV_ne : tvtype_t
একটি ট্রাভার্সাল যা প্রথমে সমস্ত নোড, তারপর সমস্ত প্রান্ত পরিদর্শন করে।

TV_en : tvtype_t
একটি ট্রাভার্সাল যা প্রথমে সমস্ত প্রান্ত, তারপর সমস্ত নোড পরিদর্শন করে৷

টিভি_ডিএফএস : tvtype_t
TV_postdfs : tvtype_t
TV_prepostdfs : tvtype_t
অন্তর্নিহিত অনির্দেশিত উপর একটি গভীরতা-প্রথম অনুসন্ধান ব্যবহার করে গ্রাফের একটি ট্রাভার্সাল
চিত্রলেখ. ট্রাভার্সাল করতে, জিভিপিআর এর মান পরীক্ষা করবে $tvroot. এই আছে যদি
একই মান যা এটি পূর্বে ছিল (শুরুতে, পূর্ববর্তী মানটি শুরু হয়
থেকে শূন্য.), জিভিপিআর কেবলমাত্র কিছু অনাকাঙ্ক্ষিত নোডের সন্ধান করবে এবং এর সাথে সংযুক্ত অতিক্রম করবে
উপাদান. অন্যদিকে, যদি $tvroot পরিবর্তিত হয়েছে, এর সংযুক্ত উপাদান হবে
ভ্রমণ করা হবে, অনুমান করে এটি আগে পরিদর্শন করা হয়নি বা, যদি $tvroot is শূন্য, দ্য
ট্রাভার্সাল বন্ধ হবে। উল্লেখ্য যে ব্যবহার করে টিভি_ডিএফএস এবং $tvroot, এটি তৈরি করা সম্ভব
একটি অসীম লুপ।

ডিফল্টরূপে, প্রি-অর্ডারে ট্রাভার্সাল করা হয়। যে, একটি নোড আগে পরিদর্শন করা হয়
তার অনাদর্শিত প্রান্ত সব. জন্য TV_postdfs, একটি নোডের সমস্ত অনাদর্শিত প্রান্তগুলি
নোড আগে পরিদর্শন. জন্য TV_prepostdfs, একটি নোড দুইবার পরিদর্শন করা হয়, আগে এবং
তার অনাদর্শিত প্রান্ত সব পরে.

TV_fwd : tvtype_t
TV_postfwd : tvtype_t
TV_prepostfwd : tvtype_t
শুধুমাত্র নিম্নলিখিত গ্রাফে একটি গভীরতা-প্রথম অনুসন্ধান ব্যবহার করে গ্রাফের একটি ট্রাভার্সাল
ফরোয়ার্ড আর্কস ট্রাভার্সাল জন্য শিকড় পছন্দ জন্য বর্ণনা হিসাবে একই
টিভি_ডিএফএস উপরে দ্বারা নির্দিষ্ট পরিদর্শন বিভিন্ন ক্রম TV_fwd, TV_postfwd
এবং TV_prepostfwd অনুরূপ ট্রাভার্সাল দ্বারা নির্দিষ্ট করা একই
টিভি_ডিএফএস, TV_postdfs এবং TV_prepostdfs.

TV_rev : tvtype_t
TV_postrev : tvtype_t
TV_prepostrev : tvtype_t
শুধুমাত্র নিম্নলিখিত গ্রাফে একটি গভীরতা-প্রথম অনুসন্ধান ব্যবহার করে গ্রাফের একটি ট্রাভার্সাল
বিপরীত আর্কস। ট্রাভার্সাল জন্য শিকড় পছন্দ জন্য বর্ণনা হিসাবে একই
টিভি_ডিএফএস উপরে দ্বারা নির্দিষ্ট পরিদর্শন বিভিন্ন ক্রম TV_rev, TV_postrev
এবং TV_prepostrev অনুরূপ ট্রাভার্সাল দ্বারা নির্দিষ্ট করা একই
টিভি_ডিএফএস, TV_postdfs এবং TV_prepostdfs.

টিভি_বিএফএস : tvtype_t
গ্রাফ উপেক্ষা করা প্রান্তে একটি প্রস্থ-প্রথম অনুসন্ধান ব্যবহার করে গ্রাফের একটি ট্রাভার্সাল
দিকনির্দেশ আইটেম দেখুন টিভি_ডিএফএস ভূমিকা জন্য উপরে $tvroot.

উদাহরণ


জিভিপিআর -i 'N[color=="blue"]' file.gv

নীল রঙের সাথে সমস্ত নোডের নোড-প্ররোচিত সাবগ্রাফ তৈরি করুন।

জিভিপিআর -c 'N[color=="blue"]{রঙ = "লাল"}' file.gv

সমস্ত নীল নোড লাল করুন।

BEGIN { কোন int n, e; কোন int tot_n = 0; কোন int tot_e = 0; }
BEG_G {
n = nনোডস($G);
e = nEdges($G);
printf, ("%d নোড %d প্রান্ত %s\n", n, e, $G.name);
tot_n += n;
tot_e += e;
}
শেষ { printf, ("%d নোড %d প্রান্ত মোট\n", Tot_n, সম্পূর্ণ_ই) }

প্রোগ্রামের সংস্করণ gc.

জিভিপিআর -c ""

সমতুল্য nop.

BEG_G { গ্রাফ_টি g = চিত্রলেখ ("একত্রিত করা", "এস"); }
E {
node_t h = ক্লোন(g,$.head);
node_t t = ক্লোন(g,$.tail);
edge_t e = প্রান্ত(t,h,"");
e.ওজন = e.ওজন + 1;
}
END_G { $O = g; }

ইনপুট গ্রাফের একটি কঠোর সংস্করণ তৈরি করে, যেখানে একটি প্রান্তের ওজন বৈশিষ্ট্য
ইনপুট গ্রাফ থেকে প্রান্তটি কতগুলি প্রান্ত উপস্থাপন করে তা নির্দেশ করে।

BEGIN {নোড_টি n; কোন int ডিগ্রী[]}
E{deg[head]++; ডিগ্রী [পুচ্ছ] ++; }
END_G {
উন্নত (ডিগ [ন]) {
printf, ("ডিগ্রি[%s] = %d\n", নাম, deg[n]);
}
}

প্রান্ত সহ নোডের ডিগ্রী গণনা করে।

BEGIN {
কোন int i, ইন্ডেন্ট
কোন int দেখা [স্ট্রিং];
অকার্যকর prInd (int cnt) {
উন্নত (i = 0; i < cnt; i++) printf, (" ");
}
}
BEG_G {

$tvtype = TV_prepostfwd;
$tvroot = নোড($,ARGV[0]);
}
N {
if (দেখা হয়েছে[$.নাম]) ইন্ডেন্ট--;
আর {
prInd(ইন্ডেন্ট);
ছাপানো ($.নাম);
দেখা[$.name] = 1;
ইন্ডেন্ট++;
}
}

গ্রাফের গভীরতা-প্রথম ট্রাভার্সাল প্রিন্ট করে, যার নাম নোড দিয়ে শুরু হয়
ARGV[0], একটি ইন্ডেন্ট তালিকা হিসাবে.

পরিবেশ


GVPRPATH
কোলন-বিচ্ছিন্ন ডিরেক্টরিগুলির তালিকা যা দ্বারা নির্দিষ্ট করা ফাইলটি সন্ধান করতে হবে
-f বিকল্প। জিভিপিআর একটি ডিফল্ট তালিকা অন্তর্নির্মিত আছে. যদি GVPRPATH সংজ্ঞায়িত করা হয় না,
ডিফল্ট তালিকা ব্যবহার করা হয়। যদি GVPRPATH কোলন দিয়ে শুরু হয়, তালিকাটি গঠিত হয়
সংযোজন GVPRPATH ডিফল্ট তালিকায়। যদি GVPRPATH কোলন দিয়ে শেষ হয়, তালিকাটি
ডিফল্ট তালিকা যোগ করে গঠিত GVPRPATH। অন্যথায়, GVPRPATH জন্য ব্যবহৃত হয়
ক্রমতালিকা.

উইন্ডোজ সিস্টেমে, পূর্ববর্তী অনুচ্ছেদে ``কোলন''কে ``সেমিকোলন'' দিয়ে প্রতিস্থাপন করুন।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে gvpr ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad