عملگرها در ns2 چگونه هستند

بدون ديدگاه

در این بخش درباره شبیه سازی با ns2  و دوره آموزشی آنلاین بحث و گفتگو می شود

اپراتورهای unary؛ به طور خاص یک عملیات نفی ، یک عملیات غیر منفی (من نکته کمی را در این مورد مشاهده می کنم) ، یک عمل NOT عاقلانه (هر بیت در مقدار ورودی معکوس آن جایگزین می شود) و یک عمل منطقی NOT (نقشه های غیر صفر به نقشه صفر و صفر به یک.)

* /٪

ضرب ، تقسیم و باقی مانده عدد صحیح در ns2

+ –

جمع و تفریق در ns2

<< >>

تغییر چپ و راست. معادل ضرب یا تقسیم با قدرت مناسب دو ، و سپس کاهش نتیجه به محدوده قابل نمایش در یک عدد صحیح بر روی سکوی میزبان.

<> <=> =

ترتیب روابط (کمتر از ، بزرگتر از ، کمتر از یا مساوی ، بزرگتر از یا مساوی). توجه داشته باشید که این عملیات بر روی رشته ها و همچنین تعداد کار می کنند ، اما شما احتمالاً بهتر است که به جای این نتیجه ، نتیجه [string مقایسه] را آزمایش کنید. در مورد رشته ای که به نظر می رسد مانند یک عدد ، قابل پیش بینی تر است.

==! =

برابری و نابرابری. توجه داشته باشید که این عملیات بر روی رشته ها و همچنین تعداد کار می کنند ، اما شما احتمالاً بهتر است که نتیجه [رشته برابر] را آزمایش کنید ، زیرا در مورد رشته ای که به نظر می رسد مانند یک تعداد قابل پیش بینی است.

و

خردمندانه و. مقدار کمی در نتیجه تنظیم می شود که بیت مربوطه در هر دو آرگومان تنظیم شود.

^

انحصاری بیت عاقلانه یا OR. مقدار کمی در نتیجه تنظیم می شود که بیت مربوطه دقیقاً در یکی از آرگومان ها تنظیم شود.

|

خردمندانه یا هنگامی که بیت مربوطه در هر یک از آرگومان ها تنظیم می شود ، مقدار کمی تعیین می شود.

و&

منطقی و. نتیجه یک (صحیح) است که هر دو استدلال غیر صفر (صحیح) و در غیر این صورت صفر (نادرست) هستند. توجه داشته باشید که این عمل یک عملاتصال کوتاه است و تنها وقتی استدلال دوم آن صفر است ، دومین آرگومان را ارزیابی می کنید. این شامل گسترش دستورات Tcl در براکت های مربع است ، اما این تأخیر در ارزیابی فقط در صورتی رخ می دهد که کل عبارت در بندهای فرفری محصور باشد.

||

منطقی یا. نتیجه صفر (نادرست) است که هر دو استدلال صفر (نادرست) و دیگری (صحیح) در غیر این صورت است. توجه داشته باشید که این عمل یک عملاتصال کوتاه است و در صورت صفر بودن اولین آرگومان دوم آن را ارزیابی می کنید. این شامل گسترش دستورات Tcl در براکت های مربع است ، اما این تأخیر در ارزیابی فقط در صورتی رخ می دهد که کل عبارت در بندهای فرفری محصور باشد.

x؟ y: z

.

اگر-پس-دیگر ، مانند C (که در آن عبارات x ، y ، z هستند). اگر مقدار x غیر صفر (صحیح) باشد ، عبارت y را برای تولید نتیجه ارزیابی می کنیم و در غیر این صورت عبارت z برای تولید نتیجه ارزیابی می شود. توجه داشته باشید که این عمل یک عمل کوتاه با cicuiting است و اگر x صفر (نادرست) باشد ، بیان z را ارزیابی نمی کند و اگر x غیر صفر (درست) باشد ، بیان y را ارزیابی نمی کند. این شامل گسترش دستورات Tcl در براکت های مربع است ، اما این تأخیر در ارزیابی فقط در صورتی رخ می دهد که کل عبارت در بندهای فرفری محصور باشد. معمولاً استفاده از دستور Tcl [if] به جای این ، حفظ و واضح تر و آسان تر است (و هیچ کندتر نیست. کد بایت تولید شده یکسان است).

<strong “mso-bidi-font-weight:=”” normal”=””>عجب:

AWK را می توان از یک دستورالعمل به دو طریق بر اساس نحو زیر فراخوانی کرد:

>> awk [-F <ch>] {<pgm>} [<vars>] [<data_file>]

>> awk [-F <ch>] {-f <pgm_file>} [<vars>] [<data_file>]

جایی که {} و [] به ترتیب حاوی استدلال های اجباری و اختیاری هستند. براکت <> حاوی متغیری است که باید در فراخوان با مقادیر واقعی جایگزین شود.

این متغیرها عبارتند از pgm جداکننده ch Field.

یک اسکریپت AWK pgm_file یک پرونده حاوی یک اسکریپت AWK (به عنوان مثال ، یک فایل AWK)

متغیرهای مورد استفاده در یک پرونده AWK data_file.

یک فایل متنی ورودی به طور پیش فرض ، AWK با استفاده از یک فضای سفید (یعنی یک یا چند فضای یا برگه) سوابق را جدا می کند. اما اگر گزینه “-F” موجود باشد ، AWK از <ch> به عنوان جداکننده زمینه استفاده می کند

دعوت فوقانی یک اسکریپت AWK <pgm> را به عنوان یک آرگومان ورودی می گیرد ، در حالی که مورد پایین یک پرونده AWK <pgm_file> را به عنوان یک آرگومان ورودی می گیرد. در هر دو مورد ، متغیرهای <vars> و پرونده متنی ورودی <data_file> به صورت اختیاری قابل ارائه هستند. اگر یک فایل متنی ورودی ارائه نشده باشد ، AWK منتظر استدلال ورودی از ورودی استاندارد (به عنوان مثال ، صفحه کلید) به صورت خط می باشد.

 

اسکریپت AWK:

کارکرد اصلی awk جستجوی فایلها برای خطوط (یا واحدهای متنی دیگر) است که حاوی الگوهای خاصی هستند. هنگامی که یک خط با یکی از الگوهای مطابقت دارد ، awk اقدامات مشخص شده را در آن خط انجام می دهد. awk پردازش خطوط ورودی را از این طریق تا رسیدن به پایان فایل ورودی ادامه می دهد. وقتی awk می کنید ، یک برنامه awk را مشخص می کنید که می گوید چه کاری باید انجام شود. این برنامه شامل یک سری قوانین است. هر قانون برای جستجوی یک الگوی مشخص می کند ، و یک عمل برای انجام هنگام پیدا کردن آن الگوی.

به طور نحوی ، یک قاعده متشکل از الگویی است که به دنبال یک عمل است. عمل در بندهای فرفری محصور می شود تا آن را از الگوی جدا کند. معمولاً قوانین توسط خط جدید جدا می شوند. بنابراین ، یک برنامه awk مانند این است:

الگوی { عمل }

الگوی { عمل }

ابزار awk پرونده های ورودی را یکجا و یک بار می خواند. برای هر خط ، awk الگوهای کلیه قوانین را امتحان می کند. اگر چندین الگوی مطابقت داشته باشند ، چندین عمل اجرا می شوند ، به ترتیبی که در awkprogram ظاهر می شوند. اگر هیچ الگوی مطابقت نداشته باشد ، هیچ عملی اجرا نمی شود. پس از پردازش کلیه قوانینی (شاید هیچ) مطابق با خط ، awk خط بعدی را بخواند. این کار تا رسیدن به پایان پرونده ادامه دارد. عمل هر قانون به صورت جفت پرانتزی محصور شده است.

ساختار برنامه نویسی AWK

شکل کلی یک برنامه AWK در زیر نشان داده شده است:

BEGIN in <itialization>

<pattern1> {<actions>

<pattern2> {<actions>

.

END {<اقدامات نهایی>

قبل از پردازش یک فایل متنی ورودی ، AWK <initialization> مشخص شده در پرانتزهای مجعد را که بعد از کلمه رزرو شده شروع شده است ، انجام می دهد. سپس ، برای هر رکورد ، اگر رکوردها با الگوی مربوطه مطابقت داشته باشند ، اقدامات انجام می دهند. پس از پردازش کل پرونده ، <اقدامات نهایی> مشخص شده در پرانتزهای فرفری واقع شده پس از کلمه رزرو شده END را انجام می دهد.

 

اپراتورها و خروجی در awk

عملگرهای اصلی AWK در زیر نشان داده شده است.

+ (علاوه بر این) ++ (افزایش)

– (تفریق) == (کاهش)

* (ضرب) = (انتساب)

/ (تقسیم)٪ (مدول)

AWK با استفاده از چاپ یا printf متغیر یا رشته ای را به صفحه نمایش می دهد که نحو آن به شرح زیر است:

چاپ <item1> <item2> …

printf (<format> ، <item1> ، <item2> ، …)

جایی که <item1> ، <item2> و غیره می توانند متغیر یا رشته باشند ،

<format> فرمت خروجی است.

با استفاده از چاپ ، یک رشته باید در یک علامت نقل قول (“” محصور شود ، در حالی که یک متغیر می تواند همانطور که هست نشان داده شود).

 

ساختار کنترل

به طور مشترک با Tcl ، AWK از سه نوع اصلی ساختار کنترل پشتیبانی می کند: اگر / دیگری ، در حالی که ، و برای. نحو این ساختارهای کنترل به شرح زیر است:

اگر (<شرط>) <عمل 1> [دیگر <اقدام 2>]

در حالی که (<شرط>) <action>

برای (<initialization>؛ <condition>؛ <end-of-loop-action>) <action>

AWK همچنین شامل چهار دستور کنترل بی قید و شرط است:

شکستن حلقه

Contine حلقه را مجدداً راه اندازی کنید

رکورد بعدی را پردازش کنید

با اجرای عملیات پایان ، از برنامه خارج شوید

اجرای برنامه های awk :

چندین روش برای اجرای یک برنامه awk وجود دارد. اگر برنامه کوتاه است ، ساده ترین آن را در دستوراتی که به صورت awk اجرا می شود ، شامل کنید:

awk “برنامه” input-file1 input-file2 …

همانطور که در ابتدا این برنامه شامل یک سری الگوها و اقدامات است.

وقتی برنامه طولانی است ، احتمالاً ترجیح می دهید آن را در یک پرونده قرار دهید و آن را با یک فرمان مانند این اجرا کنید:

awk -f program-file input-file1 input-file2 …

هنگامی که با awk آشنا شدید ، اغلب در لحظه ای که می خواهید از آنها استفاده کنید ، برنامه های ساده ای تایپ خواهید کرد. سپس می توانید برنامه را به عنوان اولین آرگومان فرمان awk بنویسید ، مانند این:

awk “برنامه” input-file1 input-file2 …

همانطور که در ابتدا این برنامه شامل یک سری الگوها و اقدامات است.

این فرمت فرمان به پوسته می گوید که از awk شروع کند و از این برنامه برای پردازش سوابق در پرونده (های) ورودی استفاده کند. در این برنامه تنها نقل قول هایی وجود دارد که پوسته از هیچ شخصیت برجسته ای به عنوان شخصیت پوسته ویژه تعبیر نمی کند. آنها باعث می شوند پوسته با تمام برنامه ها به عنوان یک استدلال واحد برای awk رفتار کند. آنها همچنین اجازه می دهند برنامه بیش از یک خط طول داشته باشد. این فرمت همچنین برای اجرای برنامه های کوتاه awk و متوسط ​​از اسکریپت های پوسته مفید است ، زیرا از نیاز به یک فایل جداگانه برای برنامه awk جلوگیری می کند. یک اسکریپت پوسته دارای قابلیت اطمینان بیشتر است زیرا هیچ پرونده دیگری برای جایگزینی وجود ندارد.

اجرای برنامه های طولانی awk

بعضی اوقات برنامه های awk می توانند بسیار طولانی باشند. در این حالت راحت تر است که برنامه را در یک پرونده جداگانه قرار دهید. برای گفتن awk برای استفاده از آن پرونده برای برنامه خود:

awk -f منبع-فایل ورودی-فایل1 ورودی-فایل2 …

“-f” به برنامه awk می گوید تا برنامه awk را از منبع فایل دریافت کنید. از هر نام پرونده ای برای منبع پرونده استفاده می شود.

 

نظرات در برنامه های awk :

نظر برخی متنی است که به خاطر خوانندگان انسانی در یک برنامه گنجانده شده است ، و واقعاً جزئی از برنامه نیست. نظرات می توانند توضیح دهند که این برنامه چه کاری انجام می دهد ، و چگونه کار می کند. تقریباً در تمام زبانهای برنامه نویسی مفاهیمی برای اظهار نظر وجود دارد ، زیرا برنامه ها بدون کمک اضافی آنها قابل درک نیست. در زبان awk ، یک نظر با کاراکتر علامت تیز ، # # شروع می شود و تا انتهای خط ادامه می یابد. زبان awk بقیه یک خط را به دنبال علامت تیز چشم پوشی می کند.

توابع تعریف شده توسط کاربر در awk:

تعاریف توابع می تواند در هر نقطه بین قوانین برنامه awk ظاهر شود. بنابراین ، شکل کلی یک برنامه awk شامل توالی قوانین  و  تعاریف عملکرد تعریف شده توسط کاربر است.

تعریف عملکردی به  نام نام  اینگونه است:

نام عملکرد ( لیست پارامتر ) {

عملکرد بدن

}

عملکرد کلمه کلیدی ممکن است تابع مختصر باشد.

name  نام تابعی است که باید تعریف شود. یک نام تابع معتبر مانند یک متغیر معتبر است: دنباله ای از حروف ، رقم ها و زیرنویس ها ، با شروع یک رقم.

parameter-list  لیستی از آرگومان های عملکرد و نام متغیرهای محلی است که با کاما از هم جدا می شوند. وقتی تابع فراخوانی می شود ، از اسم آرگومان ها برای نگه داشتن مقادیر آرگومان داده شده در فراخوانی استفاده می شود. متغیرهای محلی به رشته تهی آغاز می شوند.

عملکرد  بدن  از عبارات بیداری تشکیل شده است. این مهمترین قسمت تعریف است ، زیرا می گوید عملکرد باید واقعاً  انجام دهد . اسامی استدلال وجود دارد که به بدن می تواند راهی برای گفتگو درباره استدلال ها ارائه دهد. متغیرهای محلی ، برای دادن مکانهایی به بدن برای حفظ مقادیر موقتی.

نام های آرگومان از لحاظ متغیرهای محلی از اسامی متغیر محلی متمایز نمی شوند. درعوض ، تعداد آرگومانهای ارائه شده در هنگام فراخوانی تابع تعیین کننده چند متغیر آرگومان است. بنابراین ، اگر سه مقدار آرگومان داده شود ، سه نام اول در  لیست پارامترها  آرگومان ها هستند و بقیه متغیرهای محلی هستند.

<strong “mso-bidi-font-weight:=”” normal”=””>Xgraph:

<strong “mso-bidi-font-weight:=”” normal”=””>نحو:

xgraph [options] [[-geometry – =] WxH + X + Y] [-devplay play: display.screen] [پرونده …]

شرح:

اگر برنامه مشخص نشده باشد ، برنامه xgraph نمودارهایی را در صفحه نمایش داده می شود که از داده های داده شده یا از پرونده های داده خوانده شده یا از ورودی استاندارد استفاده می شود. این می تواند تا 64 مجموعه داده مستقل با استفاده از رنگ های مختلف و / یا سبک های خط برای هر مجموعه نمایش دهد. این نمودار را با یک عنوان ، برچسب های محور ، خطوط شبکه یا علائم تیک ، برچسب های شبکه و یک افسانه حاشیه نویسی می کند.

گزینه هایی برای کنترل ظاهر بیشتر اجزای نمودار وجود دارد. مجموعه داده ها شامل یک لیست مرتب از نقاط فرم “راهنمای XY” است. برای دستورالعمل “ترسیم” ، خط بین نقطه قبل و نقطه فعلی ترسیم می شود. تعیین یک دستورالعمل “حرکت” به xgraph می گوید خط بین نقاط را ترسیم نکنید. “ترسیم” دستورالعمل پیش فرض است. با بسته کردن نام به صورت مضاعف ، می توانید نام یک مجموعه داده را مشخص کنید. با نوشتن خطوط فرم “” گزینه “: ¡مقدار” گزینه های کلی گرافیک را می توان در پرونده های داده مشخص کرد. رابط مورد استفاده برای تعیین اندازه و مکان این پنجره بستگی به مدیر پنجره ای دارد که در حال استفاده است.

پس از باز شدن پنجره ، تمام مجموعه های داده با یک افسانه در گوشه سمت راست بالای صفحه به صورت گرافیکی نمایش داده می شوند. xgraphalso سه دکمه کنترلی را در گوشه سمت چپ بالای هر پنجره ارائه می دهد: Hardcopy ، Close و About xgraph تعداد زیادی گزینه را انتخاب می کند که اکثر آنها را می توان در خط فرمان ، در کاربر. خود پرونده ها. لیستی از این گزینه ها در زیر آورده شده است. فرمت گزینه در پرونده X پیش فرض “program.option: مقدار” است که در آن برنامه نام برنامه (xgraph) است و نام گزینه آن مشخص شده در زیر است. مشخصات گزینه در پرونده داده مشابه مشخصات پیش فرض X است به جز نام برنامه حذف نشده است.

/-هندسه WxH + X + Y یا / = WxH + X + Y (هندسه)

اندازه و محل اولیه پنجره xgraph را مشخص می کند.

/ -bar (BarGraph)

مشخص می کند که میله های عمودی باید از نقاط داده به a کشیده شوند

نقطه پایه ای که می تواند با -brb مشخص شود. معمولاً از پرچم -nl استفاده می شود

با این گزینه خود نقطه در مرکز میله قرار دارد.

/ -fitx

داده های x را از همه مجموعه داده ها ترجمه و مقیاس کنید تا متناسب باشد [0. . . 1]

/ -حساب

داده های y را از همه مجموعه داده ها ترجمه و مقیاس کنید تا متناسب باشد [0. . . 1]

/ -fmtx <printf-format> / -fmty <printf-format>

برای تولید افسانه‌های مربوط به محور x یا y از قالب مشخص شده استفاده کنید.

/ -bb (BoundBox)

یک جعبه محدودیت در اطراف منطقه داده بکشید. این اگر خیلی مفید باشد

ترجیح می دهید علائم کنه را به جای خطوط شبکه (خط-شبکه) ببینید.

/ -bd <color> (مرز)

این رنگ حاشیه پنجره xgraph را مشخص می کند.

/ -bg <colour> (زمینه)

رنگ پس زمینه پنجره xgraph.

/ -brb <base> (BarBase)

این پایه را برای نمودار نوار مشخص می کند. به طور پیش فرض ، پایه صفر است.

/ -brw <عرض> (BarWidth)

این عرض میله ها را در یک نمودار میله مشخص می کند. مقدار مشخص شده است

در واحد کاربر به طور پیش فرض ، نوار عرض یک پیکسل ترسیم می شود.

/ -bw <size> (BorderSize)

عرض مرز (در پیکسل) از پنجره xgraph.

/ -fg <color> (پیش زمینه)

رنگ پیش زمینه. از این رنگ برای ترسیم تمام متن و حالت عادی استفاده می شود

خطوط شبکه در پنجره.

/ -gw (GridSize)

عرض ، در پیکسل ها ، خطوط شبکه معمولی.

/ -gs (GridStyle)

الگوی سبک خطوط خطوط شبکه معمولی.

/ -ff <fontname> (LabelFont)

قلم لیبل. تمام برچسب های محور و برچسب های شبکه با استفاده از این فونت ترسیم می شوند.

ممکن است یک نام فونت دقیقاً مشخص شود (به عنوان مثال “9×15” یا “- * – پیک-جسورانه-غیر عادی – * –

140- * ”) یا به صورت خلاصه: ¡خانواده¿-¿size¿. خانواده است

نام خانوادگی (مانند helvetica) و اندازه اندازه قلم در نقاط (مانند) است

12) پیش فرض این پارامتر “helvetica-12” است.

/ -lnx (LogX)

یک محور لگاریتمی X را مشخص می کند. برچسب های شبکه قدرت ده را نشان می دهند.

/ -lny (LogY)

محور Y لگاریتمی را مشخص می کند. برچسب های شبکه قدرت ده را نشان می دهند.

/ -lw عرض (LineWidth)

عرض خطوط داده را در پیکسل ها مشخص می کند. پیش فرض صفر است

/ -lx <xl، xh> (XLowLimit، XHighLimit)

این گزینه محدوده محور X را به بازه مشخص شده محدود می کند. این

(به همراه -ly) می تواند برای “بزرگنمایی” در قسمت جالب توجه استفاده شود

از یک نمودار بزرگتر

/ -ly <yl، yh> (YLowLimit، YHighLimit)

این گزینه محدوده محور Y را به بازه مشخص شده محدود می کند.

/ -m (نشانگرها)

هر نقطه داده را با یک نشانگر مشخص علامت گذاری کنید. هشت مشخصه وجود دارد

نشانگرهای مورد استفاده توسط xgraph. این نشانگرها به طور جداگانه به هر یک اختصاص داده می شوند

سبک خط متفاوت در ماشین های سیاه و سفید و با هر رنگ متفاوت است

در دستگاه های رنگی

/ -M (StyleMarkers)

شبیه به -m اما نشانگرها به طور جداگانه به هر هشت متوالی اختصاص داده می شوند

مجموعه داده ها (این مربوط به هر سبک خط مختلف در دستگاه های رنگی است).

/ -nl (NoLines)

خطوط طراحی را خاموش کنید. با استفاده از -m، -M، -p، یا -P این می تواند باشد

مورد استفاده برای تولید توطئه های پراکنده. در صورت استفاده از -bar ، می توان از آن برای تولید استفاده کرد

نمودارهای نوار استاندارد.

/ -ng (NoLegend)

نقشه افسانه ها را خاموش کنید. می توان برای افزایش منطقه ترسیم استفاده کرد.

/ -t <string> (عنوانText)

عنوان طرح این رشته در قسمت بالای نمودار قرار دارد.

/ -tf <fontname> (عنوان فونت)

فونت عنوان این نام فونت است که برای عنوان نمودار استفاده می شود. یک قلم

ممکن است نام دقیقاً مشخص شود (مثلاً “9×15” یا “- * – پیک-جسورانه-ر-عادی – * –

140- * ”) یا به صورت خلاصه: ¡خانواده¿-¿size¿. خانواده خانواده است

اندازه (مانند helvetica) و اندازه اندازه قلم در نقاط (مانند 12) است.

پیش فرض برای این پارامتر “helvetica-18” است.

/ -x <unitname> (XUnitText)

این نام واحد برای محور X است. پیش فرض آن “X” است.

/ -y <unitname> (YUnitText)

این نام واحد برای محور Y است. پیش فرض آن “Y” است.

/ -zg <color> (ZeroColor)

این رنگی است که برای ترسیم خط شبکه صفر استفاده می شود.

/ -zw <عرض> (ZeroWidth)

این عرض خط شبکه صفر در پیکسل ها است.

<strong “mso-bidi-font-weight:=”” normal”=””>فرمت پرونده بی سیم:

s 0.500000000 _0_ AGT — 0 tcp 40 [0 0 0 0] ——- [0: 1 49: 0 32 0] [0 0] 0 ​​0

r 0.500000000 _0_ RTR — 0 tcp 40 [0 0 0 0] ——- [0: 1 49: 0 32 0] [0 0] 0 ​​0

قالب جدید ردیابی همانطور که در بالا مشاهده می شود را می توان به قسمتهای زیر تقسیم کرد:

نوع رویداد: در ردپاهای فوق ، اولین فیلد (مانند قالب قدیمی تر ردیابی) نوع رویدادی که در گره اتفاق می افتد را توصیف می کند و می تواند یکی از چهار نوع باشد:

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

2 × سه =