حالا مثال دیگری می‌نویسیم که در آن دنبال سکّه‌هایی می‌گردیم که مربوط به سال‌های قبل از ۱۹۸۶ هستند (قبل از تولّد من). وقتی این سکّه‌ها را پیدا کردیم جنس آن‌ها، سال ساخت و کشور سازنده‌شان را چاپ می‌کنیم.
فایلی به اسم exam2.awk را به شکل زیر می‌سازیم.
 
{ if ($3 < 1986) printf("%s t%s t%sn", $1, $3, $4); }
 
همان‌طور که می‌بینید عبارت /~~~/ دیگر وجود ندارد و این به آن معنی است که دستورات داخل آکولاد برای همه‌ی خط‌ها اجرا شوند. دستور if هم خیلی شبیه C است. در آرگومان‌های دستور printf کاراکتر t معرّف TAB است.
حالا برنامه را مانند مثال اوّل اجرا می‌کنیم و نتیجه به این شکل خواهد بود.
 
gold    1908    Austria-Hungary
silver  1981    USA
gold    1984    Switzerland
gold    1979    RSA
gold    1981    RSA
 
در آخر یک مثال پیچیده‌تر می‌زنیم. برنامه‌ای می‌نویسیم که با فرض اینکه هر اونس طلا ۴۸۵ دلار و هر اونس نقره ۱۶ دلار است، ارزش و وزن سکّه‌های طلا و نقره و ارزش و وزن کل مجموعه را چاپ کند.
فایلی به نام exam3.awk را به این شکل بسازید.
 
/gold/ { goldsNum++; goldsWt += $2 }
/silver/ { silversNum++; silversWt += $2 }
END {
    goldsVal = goldsWt * 485;
    silversVal = silversWt * 16;
    totalNum = goldsNum + silversNum;
    totalVal = goldsVal + silversVal;
 
    printf ("nSummary data for coin collection:nn");
    printf ("   Gold pieces:                %dn", goldsNum);
    printf ("   Weight of gold pieces:      %.2fn", goldsWt);
    printf ("   Value of gold pieces:       %.2fnn", goldsVal);
    printf ("   Silver pieces:              %dn", silversNum);
    printf ("   Weight of silver pieces:    %.2fn", silversWt);
    printf ("   Value of silver pieces:     %.2fnn", silversVal);
    printf ("   Total number of pieces:     %dn", totalNum);
    printf ("   Value of collection:        %.2fnn", totalVal);

متلب پروگرمر printf ,pieces ,مثال ,silver ,gold    ,gold ,silver pieces ,gold pieces منبع

مشخصات

تبلیغات

آخرین ارسال ها

آخرین جستجو ها

تخفیف ویژه چاپ کلمه هانی مگ گـیـم شـاپ عشق فناوری های نوین