loading...
دانلود سرای دانشجویی

گوگل

موتور جستجوی گوگل

در ميان کارهايی که در اينترنت انجام مي شود کار با موتور جستجو به عنوان دومين کاربرد عمده کاربران وب برآورد شده است. نحوه کار موتورهای جستجو، کار با گوگل محبوب ترين موتورجستجو و معرفی چند موتورجستجوی ديگر را در اين صفحه می توانيد پيدا کنيد.

گوگل

نحوه کار موتورهای جستجو

روش های مختلف موتورهای جستجو

بهترين موتورهای جستجو

امکاناتی در گوگل


 


 بانظرات خودما را یاری کنید

در اين بخش با انواع مختلف عناصر ورودی و نحوه ارسال آنها به سرور توسط فرم توضيح داده می شود.

تگ فرم
تگ input
Textfield
Radio Button
Checkbox
Submit


فرم ها برای دريافت انواع مختلف ورودی از کاربر استفاده می شوند. فرم ها به کاربر اجازه می دهند نظرات خود درباره سايت شما را ارسال کنند و يا معيارهای جستجوی در يک پايگاه داده را تعيين کنند.

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

فرم ناحيه است شامل عناصر فرم است. عناصر فرم به کاربر اجازه می دهند اطلاعات را وارد کند. فيلدهای متنی(text field)، دکمه راديوئی(radio button) و جعبه های انتخاب(checkbox) از جمله عناصر درون فرم هستند.

جدول زير تگ های که درون فرم ها استفاده می شوند را ليست می کند.

تگ input

تگ input مهمترين عنصر فرم است که برای دريافت داده از کاربر استفاده می شود. فرم کلی آن به صورت زير است:

<input name="name" type="text|number|password|checkbox|radio| submit|reset|button|image"
value="value" maxlength="n" size="n" align="top|bottom|middle|left|right" checked />

هر فقره داده ورودی بايد دارای يک نام باشد که توسط برنامه پردازشگر برای شناسائی داده استفاده می شود. خاصيت name نام فيلد را برای دسترسی معين می کند.

عناصر ورودی می توانند به شکل های مختلفی مانند فيلدهای متنی، کلمه عبور، دکمه های راديوئی، جعبه های انتخاب و دکمه submit باشند. نوع ورودی توسط صفت type مشخص می شود. اگر نوع ورودی معين نشود به طور پيش فرض ورودی از نوع text در نظر گرفته می شود.

صفت value مقدار پيش فرضی به عنصر ورودی تخصيص می دهد. وقتی فرم برای اولين بار ظاهر می شود اين مقدار ديده می شود.

برای محدود کردن کاراکترهای ورودی صفت maxlenght را بکار ببريد. به طور پيش فرض ماکزيمم طول 20 کاراکتر است. اگر کاربر سعی کند بيشتر از طول تعيين شده را وارد کند فرم يک بوق خطا می زند.

صفت size اندازه ناحيه فيلد روی صفحه را بر حسب کاراکتر مشخص می کند.

 

 

کليه عناصر فرم درون تگ form محصور می شوند. تگ فرم به صورت کلی زير است:

<form action="server page URL" method="post|get">
… input elements
</form>

چندين فرم در يک صفحه می تواند باشد اما فرم های تودرتو مجاز نيست. فرم دارای دو خاصيت مهم action و method است که در ادامه توضيح داده می شوند.

نکته. تگ فرم در صفحه مرورگر قابل رويت نيست.

این توافق نامه به منظور همکاری با سیستم مدیریت تبلیغات اینترنتی اوکسین ادز می باشد. اصطلاح نمایش دهنده تبلیغات در این توافق نامه به هر شخص حقیقی و یا حقوقی که با قبول شرایط زیر در بخش " نمایش دهنده تبلیغات" سیستم اوکسین ادز ثبت نام کند، اطلاق می شود. برای استفاده از خدمات اوکسین ادز ، "نمایش دهنده تبلیغات" ملزم و متعهد به انجام كامل مفاد اين توافق نامه مي باشد.

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

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

کلیه حقوق مالکیت این سایت اینترنتی شامل تصاویر، متون و یا هر جزء دیگری از آن،در مالکیت مدیر سایت قرار دارد و کلیه حقوق این مالکیت محفوظ میباشند.

انجام هرگونه کپی، استخراج و یا تکثیر بخشی و یا تمامی اطلاعات اوکسین ادز و یا هرگونه عملدیگری که حقوق اوکسین ادز را خدشه دار نماید ممنوع و قابل پیگیری می باشد.

نمونه هایی از سایت ها که اوکسین ادز به عنوان همکار نمی پذیرد:

  • سايت هایی که آمار بازدیدکنندگان آنها روزانه کمتر از 1000 نفر(1000 آی پی) باشد.چنانچه این افراد در سیستم ثبت نام نمایند و ادعایی در مورد عدم شمارش و یا کم شمردن کلیکها داشته باشند اعتراض آنها وارد نمی باشد.شایان ذکر است سیستم اوکسین ادز تعداد بازدیدکنندگان واقعی هر سایت یا وبلاگ را بصورت اتوماتیک بدست می آورد.

  • سايت های اینترنتی و يا وبلاگ هایی که حاوی عكس و مطلب غير اخلاقي باشند و یا لینک به سایت های غیر مجازی که مرتبط با مسایل جنسی هستند، داشته باشند.

  • سایت ها و وبلاگهایی که به هرگونه اعمال غیر قانونی مرتبطند. (مثل چگونگی ساخت بمب یا مشروبات الکلی یا چگونگی دزدی نرم افزاری ، ساخت فیلثر شکن و بروکسی )

  • لینک باکسهایی که حاوی عناوین و لینکهای غیر اخلاقی و غیر شرعی و مغایر با فوانین کشور ایران و بدون محتوای مناسب و مفید برای بازدیدکنندگان باشند.همچنین لینک باکسهایی که از کدهایی مانند رفرش و... استفاده می نمایند مجاز به عضویت در سیستم نیستند.

  • سایت ها و وبلاگهایی که مطالب مربوط به تعصبات نژادی ، قومی ، سیاسی و مذهبی را در بر دارند .

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

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

  • سایت ها و وبلاگهایی که برای افزایش کاذب تعداد کلیک از حربه هایی چون ربات ها و یا هر گونه تشويق كاربران براي كليك بر روي تبليغات (مانند: براي حمايت از ما كليك كنيد، روي تبليغات كليك كنيد و...) استفاده می کنند.

  • سایت ها و وبلاگهایی که کد تبلیغ اوکسین ادز را در پنجره های پاپ آپ ویا iframe های نامرئی به هر نحوه و شکل قرار می دهند.

  • سایت ها و وبلاگهایی که کد تبلیغ اوکسین ادز را در اسکریپت های مختلف(مانند صفحه سیاه) و مخفی قرار دهند و سعی در فریب سیستم از لحاظ تعداد کلیک داشته باشند.

  • سایت ها و وبلاگهایی که هیچ مطلبی نداشته باشند و تنها مبادرت به نمایش تبلیغات نمایند و یا برای مدت طولانی بروز نشده باشند.

  • اوکسین ادز هر گونه ترافیک سایت های عضو را روزانه در نظر دارد و هر گونه تقلب در افزایش آمار سایت را تشخیص می دهد. اوکسین ادز در صورت تشخیص هرگونه اقدام در جهت تقلب بلافاصله عضویت کاربر مربوطه را حذف مینماید و اوکسین ادز هیچ بدهی ای به وی نخواهد داشت.

زمان واریز پورسانت:

حداقل درآمد قابل پرداخت در ماه مبلغ 200.000 ریال می باشد.

درآمد هر عضو درروزهای 23و24و 25 هر ماه محاسبه می شود و پس از رسیدن به حد نصاب لازم ، به حساب وی واریز می گردد.در صورتی که درآمد نمایش دهنده تبلیغات در مدت یک ماه به حدنصاب قابل پرداخت نرسیده باشد، پرداخت به ماه بعد موکول خواهد شد.

سایر شرایط و مقررات:

کلیه اعضاء متعهد می شوند در جهت همکاری و جلوگیری از ضرر و زیان سیستم ، به طور همزمان از تبلیغات متنی و گرافیکی در وبلاگ یا سایتهای خود استفاده نمایند.

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

کلیکهای ارسالی از پروکسی ها و فیلترشکن ها محسوب نخواهد شد.همچنین کلیکهای ارسالی از خارج از ایران به 2 دلیل محاسبه نخواهند شد: 1- عدم توانایی خرید محصولات تبلیغ شونده توسط افراد خارج از ایران 2- سوء استفاده افراد متخلف از آی پی های خارجی جهت ارسال کلیکهای دروغین به سیستم، که همین امر می تواند باعث ورشکستگی سیستم شود.توجه داشته باشید کلیکهای واقعی و دور از تقلب خارج از کشور برای هر کاربر معمولا کمتر از 2 درصد کل کلیکهای وی می باشد که در واقع با توجه به پاداشها و جوایز ماهیانه به هیچ عنوان نمی تواند باعث ضایع شدن حقوق اعضاء شود.

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

 

برای شروع کار اینجا را کلیک کنید

ماکروها

همانطور که گفته شد با راهنمای define# يک شناسه را می توان به يک ثابت نسبت داد تا يک ثابت سمبليک شکل بگيرد. از راهنمای define# برای مربوط کردن شناسه های معنی دار به عباراتی که زياد استفاده می شوند هم بکار می رود. وقتی يک شناسه به يک عبارت يا جمله ربط داده می شود ماکرو (macro) ناميده می شود.

شکل کلی تعريف ماکرو به صورت زير است:

#define MACRO_NAME(arg1, arg2, ...) [code to expand to]

arg1، arg2 و ... آرگومان های ماکرو هستند که تعداد آنها اختياری است.


مثال. ماکرو افزايش عدد.

#define INCREMENT(x) ((x)++)

مثال. ماکرو مربع عدد.

#define SquareOf(x) ((x)*(x))
double yout,xin=3;
yout = SquareOf(xin);


ماکرو می تواند چندخطی باشد برای اتصال خطوط در انتهای هر خط بايد علامت قرار بگيرد. خط آخر نيازی به علامت ندارد.


مثال. ماکرو جابه جا کردن دو مقدار.

#define SWAP(a, b) {
    a ^= b;
    b ^= a;
    a ^= b;
}


وقتی پيش پردازنده با نام ماکرو در برنامه مواجه می شود آن را يک فراخوانی به ماکرو تلقی می کند و يک کپی از بدنه ماکرو را جايگزين نام ماکرو می کند. اگر ماکرو دارای پارامترهائی باشد، آرگومان هائی که بدنبال نام ماکرو قرار دارند جايگزين آن ها در بدنه ماکرو می شوند.

در عمل دو نوع ماکرو وجود دارد: شیء گونه که پارامتری ندارد و تابع گونه که می تواند آرگومان هائی را بپذيرد و بسيار شبيه فراخوانی تابع می ماند.

يک ماکرو را می توان دوباره با همان مقدار قبلی تعريف کرد ولی تعريف مجدد ماکرو با مقدار جديد ممکن نيست. مگر اينکه تعريف قبلی را حذف کنيد. راهنمای undef# برای حذف تعريف يک ماکرو است.

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

الويت عبارت

يک راه برای اطمينان از اينکه الويت عبارت در ماکرو حفظ می شود اين است که آرگومان های ماکرو را درون پرانتز قرار دهيد.


مثال. اگر ماکرو به صورت زير تعريف و استفاده شده باشد انتظار داريد مقدار 30 به متغير z اختصاص داده شود درحاليکه مقدار 13 را می گيرد.

#define MULT(x, y) x * y
int z = MULT(3 + 2, 4 + 2);

زيرا وقتی بدنه ماکرو جايگزين می شود به صورت زير در می آيد.

int z = 3 + 2 * 4 + 2;

برای حل اين مشکل بهتر است ماکرو به صورت زير نوشته شود.

#define MULT(x, y) ((x) * (y))

که به صورت زير جايگزين خواهد شد.

int z = (3 + 2) * (4 + 2)


ماکروهای چند دستوری

ماکروهائی که مشابه تابع مقداری را محاسبه و برمی گردانند expression macro ناميده می شوند. و ماکرو می تواند به جای اينکه مقداری را محاسبه کند دارای چند دستور باشد که آنها را action macro می نامند.

بهتر است بدنه ماکروهای چنددستوری را درون علائم {} محصور کنيد تا از بروز مشکل جلوگيری کنيد.


مثال. وقتی ماکرو فراخوانی شود تنها اولين دستور آن a^=b; درون شرط قرار می گيرد و دو دستور ديگر همواره اجرا خواهند شد.

#define SWAP(a, b) a ^= b; b ^= a; a ^= b;
int x = 10;
int y = 5;
SWAP(x, y); // works OK
// What happens now?
if(x < 0)
SWAP(x, y);

بهتر است ماکرو فوق به صورت زير تعريف شود:

#define SWAP(a, b) do { a ^= b; b ^= a; a ^= b; } while ( 0 )


نکته. قرار دادن کل بدنه ماکرو درون پرانتز زمانی که ماکرو مقداری را برنمی گرداند الزامی نيست.
نکته. در ++C از ماکروها تا حد ممکن استفاده نمی شود چون در اکثر موارد نيازی به آنها ديده نمی شود. بيشتر از عبارت const برای تعريف ثابت و توابع درون خطی به ماکروها ترجيح داده می شوند زيرا مشکلات ماکروها را ندارند.


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

void SquareOf(int x) {return x*x;}


نکاتی درباره نوشتن ماکرو

1- استفاده از يک قرارداد نامگذاری برای اسامی ماکرو تشخيص آنها را در برنامه ساده تر می کند. برای مثال نام همه ماکروها با حرف m شروع شود.
2- درنظر داشته باشيد چه نوع ماکروئی می نويسيد عبارتی يا چنددستوری.
3- کل بدنه ماکرو را در پرانتز قرار دهيد.
4- در بدنه ماکرو آرگومان ها را درون پرانتز قرار دهيد.
5- در ماکروهایچنددستوری هر دستور را به علامت سميکولن ختم کنيد و کل بدنه ماکرو را درون آکولاد قرار دهيد.
6- کليه ماکروها را در يک فايل هدر قرار دهيد.

ماکروهای تعريف شده

تعدادی ماکرو در ++C تعريف شده است که می توانيد از آنها استفاده کنيد. کامپايلر قادر به شناسائی ماکروهای پيش تعريف شده است. اين ماکروها آرگومانی نمی گيرند و مجدد قابل تعريف نيستند.

بعضی از آنها که توسط ANSI تعريف شده است در جدول زير آمده است:

شرح تگ
يک فرم ورودی برای کاربرتعيين می کند
يک فيلد ورودی تعيين می کند
يک ناحيه متنی را تعريف می کند

شرح

ماکرو

راهنماها

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

راهنماها باعث می شوند متن برنامه به سادگی تغيير کند و درمحيط های مختلف قابل کامپايل باشد.

خطوط پيش پردازنده قبل از بسط ماکروها تشخيص و اجرا می شود. بنابراين اگر ماکرو به چيزی مشابه يک فرمان پيش پردازنده بسط داده شود دستور توسط پيش پردازنده تشخيص داده نمی شود.

پيش پردازنده راهنماهای زير را تشخيص می دهد:

#define #error #include #if
#else #elif #endif #ifdef
#ifndef #import #line #pragma
#undef #using    

نکته. راهنماها هميشه با علامت # (sharp sign) شروع می شوند.
نکته. بين علامت # و اولين کاراکتر راهنما می تواند فاصله باشد.
نکته. بعضی راهنماها شامل آرگومان ها و مقادير هستند. هر متن ديگری بجز آرگومان و مقدار که به دنبال راهنما می آيد ابتدايش بايد علامت توضيح باشد (//) يا در بين علائم (/* */) قرار بگيرد.
نکته. خط شامل راهنما می تواند با علامت انتهای خط () ختم شود.
نکته. راهنماها می توانند در هرجائی از فايل منبع قرار بگيرند اما تنها روی بقيه کد تاثير می گذارند.

ثابت ها

همانطور که در بخش ثابت ها توضيح داده شده است از راهنمای #define می توان برای تعريف يک ثابت سمبليک استفاده کرد. شکل کلی تعريف ثابت به صورت زير است:

#define [identifier name] [value]

پيش پردازنده قبل از کامپايل در متن برنامه شناسه Identifier name را با مقدار value جايگزين خواهد کرد.

اگر ثابت را به صورت يک عبارت محاسباتی تعريف کنيد بهتر است مقدار را درون پرانتز قرار دهيد. به اين ترتيب الويت عمليات حفظ خواهد شد.


مثال. تعريف ثابت زير در نظر بگيريد:

#define PI_PLUS_ONE (3.14 + 1)

که به صورت زير استفاده می شود:

x = PI_PLUS_ONE * 5;

اگر پرانتزها را قرار ندهيم عبارت به صورت زير محاسبه خواهد شد، يعنی ابتدا عمل 1*5 انجام می شود سپس عمل جمع.

x = 3.14 + 1 * 5;


ضميمه کردن فايل

راهنمای include# به پيش پردازنده می گويد که متن يک فايل را بگيرد و در برنامه جاری درج کند. معمولا راهنمای include# در ابتدای برنامه قرار می گيرد. به همين دليل نام header file به فايل هائی که ضميمه می شوند گفته می شود.

نام فايل هدر در مقابل راهنمای include# قرار می گيرد. درج نام فايل بين علائم < > يا " " نحوه جستجوی فايل را مشخص می کند. اگر نام فايل بين علائم < > محصور باشد کامپايلر فايل را در مسيرهای تعيين شده در بخش تنظيمات کامپايلر جستجو می کند ولی اگر نام فايل مابين علائم " " قرار گيرد کامپايلر آنرا ابتدا در مسير جاری برنامه جستجو می کند.

فايل های هدر استاندارد نظير iostream.h بين علائم < > محصور می شوند.

کامپايل شرطی

مجموعه ای از راهنماها وجود دارند که تعيين می کنند آيا خطوط برنامه قبل از تحويل به کاميايلر حذف شوند يا خير. اين راهنماها شامل #if، #elif، #else، #ifdef و ifndef# هستند.

يک بلوک شرطی که با يکی از راهنماهای شرطی شروع می شود حتما بايد به endif# ختم شود. بهتر است مقابل عبارت endif# توضيحی باشد که مشخص شود کدام بلوک شرطی بسته شده است.

يکی از کاربردهای راهنماهای شرطی وقتی است که فايل هدری در چند فايل هدر ديگر که بايد در برنامه اصلی ضميمه شوند مورد نياز است. مشکلی که پيش می آيد اين است که متغيرها، ثابت ها، کلاس ها و توابع فايل هدر چندبار در برنامه ظاهر خواهند شد که سرباری برای کامپايلر می شود. با پيش پردازنده ها به راحتی می توان تضمين کرد که هر فايل هدر تنها يکبار در برنامه اصلی اضافه می شود. راهنمای (if not defined) #ifndef بلوکی از متن را تنها اگر عبارت خاصی قبلا تعريف نشده باشد اجرا می کند.

کدی که در idndef# ضميمه می شود تنها يکبار زمانی که فايل لود می شود بار می شود.

#ifndef _FILE_NAME_H_
#define _FILE_NAME_H_
   /* code */
#endif // #ifndef _FILE_NAME_H_

شناسه ای که مقابل ifndef# ذکر می شود لازم نيست حتما مقداری داشته باشد زيرا با اضافه شدن خط define# تعريف می شود.


مثال. تعريف ثابت خاص NULL توسط راهنماهای شرطی.

#ifndef NULL
#define NULL (void *)0
#endif // #ifndef NULL

مثال. راهنماهای شرطی برای بلوکی که شامل توضيحات چندخطی است و می خواهيد همگی توضيحی شوند روش خوبی است.

#if 0
/* comment ...
*/
// code
/* comment */
#endif

تعداد صفحات : 425

اطلاعات کاربری
آمار سایت
  • کل مطالب : 4247
  • کل نظرات : 0
  • افراد آنلاین : 5
  • تعداد اعضا : 2926
  • آی پی امروز : 65
  • آی پی دیروز : 161
  • بازدید امروز : 345
  • باردید دیروز : 830
  • گوگل امروز : 6
  • گوگل دیروز : 51
  • بازدید هفته : 345
  • بازدید ماه : 35,286
  • بازدید سال : 110,395
  • بازدید کلی : 8,289,089
  • کدهای اختصاصی