یه تحقیق جدید

  انتقال ساختمان ها به توابع

ساختمانها و یا آرایه ای ازساختمان که تاکنون در برنامه ها بکار گرفته شده اند
یا بصورت عمومی تعریف شدند و یا درتابعی که مورداستفاده قرار می گرفتند، تعریف
شدند . ساختمانها و یا اجزای آنها می توانند به عنوان آرگومان ، به تابع منتقل
شده و یا اطلاعاتی را به تابع فراخواننده برگردانند .
برای انتقال اجزای ساختمان به تابع ، همانند یک متغیر معمولی عمل می شود .
با این تفاوت که نام متغیر ساختمان را باید به همراه جزئ مورد نظر، در آرگومان
تابع ذکر کرد و باید توجه داشت که پارامتر تابع نیز باید همنوع با آرگومان
متناظر با آن تعریف گردد . بعنوان مثال ، ساختمان زیر را در نظر بگیرید : struct student {
char x;
int ston;
char name[31];
} st1;

هر یک از دستورات زیر موجب انتقال مقادیر اجزای متغیر ساختمان st1 به تابعی
بنام ()func می شوند . func( st1.x);
func( st1.ston);
func( st1.name[5]);

برای انتقال آدرس های اجزای متغیر ساختمان به توابع باید از عملگر& استفاده
نمود . برای توضیح بیشتر به مجموعه زیر توجه نمایید : func( &st1.x);
func( &st1.ston);
func( &st1.name[5]);
func( st1.name);

همانطور که در مجموعه دستورات فوق مشاهده می گردد عملگر & باید قبل از نام
متغیر ساختمان ظاهر گردد ولی در آخرین دستور ، چون name یک آرایه است ، برای
انتقال آن نیازی به عملگر & نیست .

مثال 1:

#include "stdio.h"
main)(
{
struct ss{
char name[20] ;
int x ;
} s ;
scanf("%s"/s.name );
scanf("%d"/&s.x );
test(s.name );
}
test(char *s)
{
while(*s)
{
printf("%c"/*s );
s++ ;
}
}

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

مثال 2: برنامه ای که چگونگی تعریف پارامتر و آرگومان های ساختمان را نشان
می دهد .

main)(
{
struct {
int a/b ;
char ch ;
} arg ;
arg.a=1000 ;
func(arg );
}
func(parm)
struct {
int x/y ;
char ch ;
} parm ;
{
printf("%d"/parm.x );
}

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


مثال 3: struct struct_type {
int a/b ;
char ch ;
} ;
main)(
{
struct struct_type arg ;
arg.a=1000 ;
func(arg );
}
func(parm)
struct struct_type parm ;
{
printf(" %d"/parm.a );
}

پارامتر parm را در تابع ()func علاوه بر آنچه که در مثال 3 آمده است ، به
طریق زیر نیز می توان تعریف کرد : func( struct struct_type parm)


مثال 4: برنامه ای که چگونگی انتقال کامل یک ساختمان را به تابع و انتقال
اطلاعات از طریق ساختمان به تابع فراخواننده را نشان می دهد .

struct personel
{
char name[30] ;
int agnumb ;
} ;
main)(
{
struct personel agent1 / agent2 ;
struct personel newname )(;
agent1=newname )(;
agent2=newname )(;
list(agent1 );
list(agent2 );
}
struct personel newname)(
{
char numstr[80] ;
struct personel agent ;
printf(" << New agent >> ");
printf("Enter name: " );
gets(agent.name );
printf(" agent number(3 digit)");
gets(numstr );
agent.agnumb=atoi(numstr );
return(agent );
}
list(age)
struct personel age ;
{
printf(" << agent: >> " );
printf(" Name : %s "/age.name);
printf(" agent number: ");
printf(" %3d "/age.agnumb );
}

نمونه ای از خروجی برنامه مثال 4 :

<< New agent >>
Enter name:reza

agent number(3 digit )213

<< New agent >>
Enter name:mohammad

agent number(3 digit )123

<< agent : >>

Name:reza

agent number: 213

<< agent : >>

Name:mohammad

a


  :: گشت و گذار مخفیانه در اینترنت با Invisible Browsing 4.0.41 ::

یکی از راههای حفظ و تامین امنیت در اینترنت ناشناس بود , جلوگیری از لو رفتن IP Address شماست که به نوعی هویت شما در اینترنت می باشد .

Invisible Browsing نرم افزاری از شرکت AmplusNet , به کاربر امکان مخفی نمودن IP Adress ویا تغییر آن را می دهد تا بتواند به طور ناشناس به گشت و گذار در اینترنت بپردازد و از لو رفتن اطلاعات شما جلوگیری نماید . توسط پروکس سرورهای قدرتمند و سریع و ناشناس , به سرعت می تواند هویت شما را در اینترنت تغییر دهد .

سایر توانایی های امنیتی نرم افزار Invisible Browsing :

توانایی مسدود کردن Popup , Popunder ها , IP های پیغام های Spam و ActiveX ها و JavaScript های مخرب .

پاک کردن تمامی رد پاها و اطلاعات ناشی از کشت و گذار شما در اینترنت مانند  Browser Cookies, Internet URL History, Typed URL history, Auto Complete Forms و Password History, Internet Explore Favorites و Temporary Files.

ویژگی های دیگر نرم افزار ....

Invisible Browsing را میتوانید از اینجا :

دانلود کنید نسخه ی 4.0.41 را با حجم 994 کیلوبایت


  انواع ساده The simple Types

جاوا هشت نوع ساده ( یا ابتدایی ) از داده را تعریف می کند : short bbyte int
، long،، char،، float،، double،، boolean، این انواع را می توان در چهار
گروه بشرح زیر دسته بندی نمود :
ؤ integers ( اعداد صحیح ) : این گروه دربرگیرنده byte، short،، int،و longو
میباشد که مختص ارقام علامتدار مقدار کل (whole-valued signed numbers) میباشد.
ؤ floating-point numbers ( اعداد اعشاری ) : این گروه دربرگیرنده float و double
است که معرف اعدادی است با دقت زیاد .
ؤ characters ( کاراکترها ) : این گروه فقط شامل char بوده که نشانه هایی
نظیر حروف و ارقام را در یک مجموعه خاص از کاراکترها معرفی می کند .
ؤ Boolean ( بولی ) : این گروه فقط شامل boolean است . که نوع خاصی ازمعرفی
و بیان مقادیر صحیح / ناصحیح می باشد .
شما می توانید از این انواع همانطوریکه هستند استفاده کرده ، یا آرایه ها و
انواع کلاسهای خود را بسازید .
انواع اتمی معرف مقادیر تکی و نه اشیائ پیچیده هستند . اگر چه جاوا
همواره شی ئ گرا است ، اما انواع ساده اینطور نیستند . این انواع ، مشابه انواع
ساده ای هستند که در اکثر زبانهای غیر شی ئ گرا مشاهده می شود . دلیل این امر
کارایی است . ساختن انواع ساده در اشیائ سبب افت بیش از حد کارایی و عملکرد
می شود .
انواع ساده بگونه ای تعریف شده اند تا یک دامنه روشن و رفتاری ریاضی داشته
باشند . و زبانهایی نظیر Cو C++و امکان می دهند تا اندازه یک عدد صحیح براساس
ملاحظات مربوط به محیط اجرایی تغییر یابد . اما جاوا متفاوت عمل می کند . بدلیل
نیازهای موجود برای قابلیت حمل جاوا ، کلیه انواع داده در این زبان دارای یک
دامنه کاملا" تعریف شده هستند . بعنوان مثال یک int همیشه 32 بیتی است ، صرفنظر
از اینکه زیر بنای خاص محیطی آن چگونه باشد . این حالت به برنامه های نوشته شده
اجازه می دهد تا با اطمینان و بدون در نظر گرفتن معماری خاص یک ماشین اجرا
شوند. در حالیکه مشخص کردن دقیق اندازه یک عدد صحیح ممکن است در برخی محیط ها
سبب افت عملکرد شود ، اما برای رسیدن به خاصیت قابلیت حمل پرداخت چنین تاوانی
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد