تبليغاتX
یافته های من در علم کامپیوتر
به نام خداوند جان و خرد که از این برتر اندیشه بر نگذرد
 برج هانوی
سلام دوستان:

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

این برنامه برج هانوی به زبان ++c که خودم برای ایجاد گرافیکش خیلی تلاش کردم گرافیکی و کامله امیدوارم مفید باشه

 

 

#include
#include
#include
#include
#include
int a1,a2,n1;
class s2{int *a,*c;
   public:
void graph(int n,int a[20]);
void drow(int *a,int*c);
void subt1(int n,int a[20],int c[20],int b[20]); };
void s2::graph(int n, int a[20]){
int f=n1*20+20;
   int stangle = 0, endangle = 360;
   int xradius = f, yradius = 10;
   int gdriver = DETECT, gmode, errorcode;
   int midx, midy, i;
   initgraph(&gdriver, &gmode, "");
   errorcode = graphresult();
   if (errorcode != grOk) {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);}
   midx = getmaxx() / 2;
   midy = getmaxy() / 2;
      setfillstyle(1,2 ) ;  setcolor(2);
      bar(midx-600, midy+145, midx+650,
  midy+150);
      bar(midx-220, midy-300, midx-225,
  midy+150);
     bar(midx-5, midy-300, midx,
  midy+150);
     bar(midx+225, midy-300, midx+220,
  midy+150);  a1=20;
  for(i=1;i<=n;i++)
  {    fillellipse(midx-220, midy+150-a1,
    xradius-a1, yradius); a[1]=i;a1+= 20;}getch();
}
void s2::drow(int *a,int*c){int f=n1*20;
   int stangle = 0, endangle = 360;
   int xradius=f , yradius = 10;
  int   midx = getmaxx() / 2,
   midy = getmaxy() / 2;
setcolor(0); setfillstyle(0,0);
  a1=(*(a+1))*20-20;a2=*(a+2)*20-20; if(a1<0)a1=0;
  *(a+1)=*(a+1)-1;
   fillellipse(midx+*(a+0), midy+130-a1,
    xradius-a2, yradius);

    setcolor(2);
    setfillstyle(1, 2);
     bar(midx-600, midy+145, midx+650,
  midy+150);
      bar(midx-220, midy-300, midx-225,
  midy+150);
     bar(midx-5, midy-300, midx,
  midy+150);
     bar(midx+225, midy-300, midx+220,
  midy+150); a1=(*(c+1))*20;if(a1<0)a1=0;(*(c+1))+=1;
     *(c+12)=*(c+11); *(c+11)=*(c+10); *(c+10)=*(c+9); *(c+9)=*(c+8); *(c+8)=*(c+7); *(c+7)=*(c+6);  *(c+6)=*(c+5);*(c+5)=*(c+4);*(c+4)=*(c+3);*(c+3)=*(c+2);*(c+2)=*(a+2);
 *(a+2)=*(a+3); *(a+3)=*(a+4);*(a+4)=*(a+5);*(a+5)=*(a+6);*(a+6)=*(a+7);*(a+7)=*(a+8);*(a+8)=*(a+9);*(a+9)=*(a+10);*(a+10)=*(a+11);*(a+11)=*(a+12);*(a+12)=*(a+13);

       fillellipse(midx+*(c+0), midy+130-a1,
    xradius-a2, yradius);getch();

}
void s2::subt1(int n,int a[20],int b[20],int c[20])
{ int *q1,*q2;
   q1=a;q2=c;
 if(n==1)
drow(q1,q2);
else{ subt1(n-1,a,c,b);
drow(a,c);
 subt1(n-1,b,a,c);}
    }
int main(void)
{ int a[20],b[20],c[20];
   s2 bp;  int n;
 a[0]=-220;
 b[0]=-5;
 c[0]=225;
 a[1]=0;
 b[1]=0;
 c[1]=0;
 for(int i=2;i<20;i++){
 a[i]=0;
 b[i]=0;
 c[i]=0;}
 cout<<"enter a number for number of disk:";
    cin>>n;
    int y=n;
    for(i=2;i<=n+2;i++){
    a[i]=y;y--;}
    n1=n;
   bp.graph(n,a);
 bp.subt1(n,a,b,c);
      getch();
   closegraph();
   return 0;
 }

|+| نوشته شده توسط گرد آفرید در سه شنبه سی و یکم اردیبهشت 1387  |
 Ajax چيست؟
 

پديده انقلابي Ajax


اگر برنامه نويس وب هستيد، لابد خبر داريد كه اين روزها همه درباره Ajax صحبت مي كنند. بعضي معتقدند Ajax يكي از اركان فني موج جديدي است كه به Web 2.0 معروف شده است و انجمن ها و تريبون هاي آنلاين مملو از مقالات و اظهارنظرهاي مربوط بهAjax است

اگر برنامه نويس وب هستيد، لابد خبر داريد كه اين روزها همه درباره Ajax صحبت مي كنند. بعضي معتقدند Ajax يكي از اركان فني موج جديدي است كه به Web 2.0 معروف شده است. بعضي از سايت هاي بزرگ مانند ياهو و گوگل هم اكنون Ajax را به خدمت گرفته اند، انجمن ها و تريبون هاي آنلاين مملو از مقالات و اظهارنظرهاي مربوط بهAjax است و همزمان تلاش هاي وسيعي در جريان است تا اين فناوري جديد همچنان به صورت اپن سورس باقي بماند و انحصاري نشود.

Ajax چيست؟
واژه Ajax با تلفظ <اي جكس> يا <اي ژاكس> سرنام عبارت Asynchronous JavaScript and XML و به معني <تركيب نامتقارن جاوا اسكريپت و>XML است. ماهيت صفحات وب و پروتكل HTTP به گونه اي است كه به طور معمول وقتي درحال وب گردي هستيم، به ازاي هر كنش و واكنش ميان ما و سايتي كه در حال كار با آن هستيم، كل يك صفحه وب از نو بارگذاري و تازه سازي (refresh) مي شود.

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

جادوي اي جاكس چيزي نيست جز يك فكر بكر و آن هم تركيب كردن جاوا اسكريپت و XML در قالب يك موجود نرم افزاري جديد.

اصطلاح Ajax را اولين بار كارشناسي از شركت Adaptive Path به نام جسي جيمزگرت در مقاله اي با عنوان <اي جكس؛ رهيافت جديدي در برنامه هاي تحت وب> مطرح كرد و خيلي سريع مورد استقبال گسترده برنامه نويسان وب در سراسر جهان قرارگرفت. اعتقاد عمومي اين است كه تاريخچه به كارگيري تكنيك مذكور به پيدايش نرم افزار Outlook WebAccess و استفاده از فرمان XMLHttpRequest كه مايكروسافت ابداع كرده و در نرم افزار اينترنت اكسپلور به كار رفته است، برمي گردد. اما امروزه اغلب مرورگرهاي مهم و شناخته شده (از جمله فايرفاكس) از آن پشتيباني مي كنند و ديگر يك فناوري محدود به اينترنت اكسپلورر نيست.
چرا Ajax اين قدر اهميت دارد؟
فناوري اي جكس جديد است و شگفت انگيز به نظر مي رسد. ولي در حقيقت كل اين شعبده بر اساس فناوري هايي بنا شده است كه هم اكنون موجودند: جاوا اسكريپت و XML. هر دوي اين فناوري ها تا حد زيادي باز هستند و منحصر به شركت خاصي نيستند. به همين دليل اين روزها تمام محافل دنياي برنامه نويسي مملو از مقالات و تحليل هايي درباره Ajax است. به عنوان نمونه مي توانيد صفحه نخست سايت موسوم به <كانال شبكه برنامه نويسان سان> را بازكنيد.

بيشتر اين صفحه (در زمان نگارش اين يادداشت) به مقالات و مطالب متنوعي درباره Ajax اختصاص يافته است. مجلات برنامه نويسي نيز مقالات متعددي در اين زمينه منتشر كرده اند و سايت هاي معروفي مانند
O' Reilly و xml.com نيز در اين باره مطلب دارند.

بنابراين ظرفيت بالايي براي تبديل اي جكس به يك استاندارد جهاني وجود دارد. از اين رو قرار است در تاريخ سيزدهم مارس سمينار مهمي در زمينه Ajax برگزار شود. اگر همين الان به سايت ajaxseminar.com مراجعه كنيد، متوجه مي شويد كه علاوه بر طراح اين تكنيك، چندين برنامه نويس شاخص از شركت هاي بزرگي همچون ياهو در آن شركت خواهند داشت.

اين فناوري از يك جنبه ديگر نيز اهميت دارد. به دليل عدم نياز به بارگذاري مجدد كل يك صفحه وب، مقدار داده هايي كه لازم است براي تكميل يك Interaction ميان كاربر و سايت مبادله شود، به شدت كاهش مي يابد و اين به معني افزايش محسوس سرعت نرم افزارهاي تحت وب، سهولت به كارگيري اينترفيس هاي مبتني بر اي جكس و كاربرپسندترشدن آن ها مي شود. به همين دليل اين روزها اكثر پورتال هاي بزرگ (مانند ياهو) مشغول طراحي اينترفيس هاي مبتني بر Ajax هستند.

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

حال تصور كنيد اگر فناوري اي جكس در مقياس گسترده اي مورد استفاده نرم افزارهاي تحت وب قرارگيرد. آنگاه افزايش سرعت كار با اينترنت چند برابر خواهد شد. چنين تحولي مي تواند اينترنت را به كامپيوتر دوم كاربران تبديل كند. به گونه اي كه براي آن ها اجراي يك نرم افزار از روي وب تفاوت محسوسي با اجراي آن از روي كامپيوتر دسكتاپ نداشته باشد. در اين صورت ممكن است واقعا بخش مهمي از توان پردازشي نرم افزارها، چه از نوع دسكتاپ و چه از نوع تحت وب به سيستم هاي موسوم به Web Service واگذار شود. از اين رو كساني كه مبتكر و مشوق ايده وب سرويس بوده اند، اين روزها انگيزه تازه اي براي سرعت بخشيدن به اين فناوري پيدا كرده اند و تلاش مي كنند دو فناوري اي جكس و وب سرويس را به يكديگر پيوند دهند و راهكارهاي تازه اي بيافرينند.
كدام سايت ها از اي جكس استفاده كرده اند؟
دنياي برنامه نويسي وب هنوز درگير هيجانات مربوط به آشنايي با اين پديده است و در حال بررسي مشكلات تكنيكي و هضم و جذب آن در بافت برنامه هاي تحت وب مي باشد. به همين دليل ميزان استفاده عملي از آن چندان گسترده نيست. اما چون كارايي اي جكس ديگر براي همه ثابت شده است، حركت هاي بزرگي در سراسر اينترنت به سمت استفاده از اين فناوري در جريان است. از جمله اينترفيس نسخه دوم Yahoo Mail كه به نسخه بتا معروف است و فعلا در دسترس كاربران سرويس غير رايگان ياهو قراردارد، از همين فناوري استفاده مي كند كه به زودي اينترفيس جديد در دسترس عموم قرار مي گيرد. سرويس Gmail و Google Map نيز از اين فناوري استفاده مي كنند.

 

|+| نوشته شده توسط گرد آفرید در یکشنبه بیست و دوم اردیبهشت 1387  |
 نحوه تنظيم برنامه فايروال ZoneAlarm
 

نرم افزار زون آلارم يک برنامه حفاظتي از نوع فايروال است که ميتواند کامپيوتر شما را از شر هکرها و افراد مزاحم دور نگه دارد. اين برنامه ضدويروس نيست پس نميتواند در مقابل ويروسها از شما حفاظت کند اما بدليل قابليتهايي که دارد قادر است تا حدي جلوي حمله ويروسها را نيز بگيرد. چون مطالبي که تهيه ميکنم در حد کاربر خانگي است، در اين مطلب به بررسي مسائل تکنيکي فايروال زون آلارم نميپردازم بلکه فقط به شما ياد ميدهم چگونه آنرا تنظيم کنيد. يادتان باشد که نام فايروال يا زون الارم شما را نترساند. اين برنامه هم مانند يک برنامه بازي به سادگي در کامپيوتر نصب ميشود و با انجام تنظيمات ذکر شده در اين مطلب ميتوانيد به خوبي و با خيال راحت از آن استفاده کنيد.
براي آنکه بتوانيد يک فايروال مجاني خوب داشته باشيد بهترين انتخاب ZoneAlarm است که امروزه بوسيله اکثر کارشناسان کامپيوتر توصيه ميشود. اما اکثرا نحوه تنظيم آنرا نميدانند يا بدان چندان توجه نميکنند. در اين مقاله بشما ياد ميدهم که چگونه قدم به قدم، ZoneAlarm را در حد پايه تنظيم کنيد.
مراحل زير را به ترتيب طي کنيد:

1- بعد از آنکه زون آلارم نصب شد براي باز کردن مرکز کنترل آن روي آيکون ZA در کنار ساعت سيستم در گوشه راست و پايين صفحه، کليک راست کنيد. انتخاب Restore ZoneAlarm Control Center را انجام دهيد تا باز شود.
2- در ستون دست چپ روي Overview کليک کنيد.
3- روي تب Preferences واقع در زير علامت سئوال Help کليک کنيد.
4- در بخش Check for Updates، يک نقطه در داخل دايره Automatically قرار دهيد. براي اينکار در مرکز دايره کليک کنيد.
5- در بخش General يک علامت چک مارک ? در کادر کنار عبارت Protect ZoneAlarm Client قرار دهيد.
6- در بخش Contact With Zone Labs يک علامت چک مارک ? در کادر کنار عبارت Hide the last octet of my IP address when applicable قرار دهيد. اين قسمت هم در بخش Overview قرار دارد.
7- مجددا به ستون سمت چپ نگاه کنيد و عبارت Firewall زير Overview را پيدا کرده و روي آن کليک کنيد.
8- در نزديکي آيکون Help تعداد دو عدد تب وجود دارد. بايد روي تب Main باشيد. اگر چنين نبود روز تب Main کليک کنيد.
9- در قسمت Internet Zone Security که اولين بخش ميباشد روي موقعيت وسط کليک کنيد. عبارت Med هاي لايت ميشود. با اينکار متن سمت راست مطابق تنظيم متوسط عوض ميشود.
10- به بخش Trusted Zone Security برويد و آنرا روي medium قرار دهيد.
11- در سمت راست و پايين صفحه دکمه Advanced را پيدا کنيد و روي آن کليک کنيد. کادري بنام Advanced Setting ظاهر ميشود. در اين کادر، يک تب بنام Security ديده ميشود که حاوي تنظيمات سرورها يکي بعد از ديگري است. نمونه هايي که شما بايد تنظيم کنيد عبارتند از Allow Outgoing DNS/DHCP in Trusted Zone on High setting و Allow Outgoing DNS/DHCP in Internet Zone on High setting که بايد چک مارک بخورند. روي OK کليک کنيد تا اين کادر بسته شود.
12- مجددا به ستون سمت چپ برويد. روي انتخاب Program Control کليک کنيد. يکبار ديگر به تبهاي بالاي صفحه نگاه کنيد. بايد در تب Main باشيد. در اينجا بايد بخشهاي Program Control و Automatic Lock را ببينيد.
13- در بخش Program Control انتخاب medium را انجام دهيد.
14- در بخش Automatic Lock پيشنهاد من آنست که فعلا گزينه off را انتخاب کنيد تا آنکه آشنايي و تجربه بيشتري با فايروال پيدا کنيد.

15- روي ويزارد Program تحت آخرين قسمت در سمت راست پايين کليک کنيد. پنجره جديدي باز ميشود. در Program Wizard فقط يک تب ديده ميشود که عبارت Secure Programs روي آن ديده ميشود. تحت Secure Programs در سمت راست عبارت Do you want Zone Alarm to pre configure access permission ديده ميشود. انتخاب Yes را انجام دهيد و روي finished کليک کنيد.
16- در Program Control روي تب Programs کليک کنيد که زير دکمه Help قرار دارد. در اين قسمت برنامه هايي را ميبينيد که ZoneAlarm کنترل ميکند که آيا ميتوانند به اينترنت دسترسي يابند يا خير. اگر يک علامت چک مارک سبز در کنار نام برنامه باشد معرف آنست که برنامه ميتواند به اينترنت دسترسي پيدا کند. علامت سئوال آبي تيره ? به معناي آنست که برنامه قبل از دسترسي به اينترنت بايد از شما اجازه بگيرد. علامت X قرمز رنگ معرف آنست که برنامه نميتواند به اينترنت وصل شود. براي برنامه هايي را زياد مصرف ميکنيد ميتوانيد انتخاب چک مارک سبز را انجام دهيد. در ضمن ميتوانيد به ZoneAlarm بگوييد که نحوه اجازه دسترسي به اينترنت را براي هر برنامه بخاطر بسپارد. درهر زمان ميتوانيد اجازه دسترسي هر برنامه به اينترنت را عوض کنيد. در آينده ميتوانيد مطابق نياز خود اين تنظيمات را اصلاح کنيد. درضمن هر برنامه را با کليک راست روي آن و انتخاب Remove ميتوانيد از ليست فوق پاک کنيد.
17- مجددا در ستون سمت چپ روي عبارت Alert & Logs کليک کنيد. اينبار هم بايد روي تب Main باشيد. بخش Alert Events Shown ظاهر ميشود. در وسط دايره ON براي فعال کردن آن کليک کنيد. وقتي در کار با ZoneAlarm تجربه پيدا کرديد ميتوانيد هر زمان اين قابليت را خاموش کنيد.

18- در قسمت پايين و راست همين صفحه روي دکمه Advanced کليک کنيد. کادري بنام Advanced Alert and Log Setting ظاهر ميشود. يک چک مارک در کنار عبارت Archive log text files daily قرار دهيد.
19- در بخش Log Archive Appearance انتخاب مورد نظر خودتان را انجام دهيد. نهايتا روي OK در انتهاي کادر کليک کنيد تا بسته شود.

20- مجددا در ستون سمت چپ روي E-mail Protection کليک کنيد. در تب Main انتخاب Basic MailSafe Settings را انجام دهيد. انتخاب مورد نظرتان را انجام دهيد. اگر از برنامه ضدويروس اسفاده ميکنيد که سريعا بروز ميشود نيازي به اين تنظيم نداريد و ممکن است با برنامه ضدويروستان تداخل کند. اما اگر برنامه ضدويروس نداريد روي دايره اين قابليت کليک کنيد تا فعال شود.

نهايتا صفحه کنترل را ببنديد. حال از برنامه ZoneAlarm استفاده کنيد.

|+| نوشته شده توسط گرد آفرید در یکشنبه بیست و دوم اردیبهشت 1387  |
 شوخی با اساتید
چگونه استادان را بشناسيم؟

استاد فيزيک:

معمولاً شلوار جين و پيراهن خاکستری به تن دارد. بعضی وقتها هم يادش می‌رود اصلاً پيراهن بپوشد. اگر استادی را ديديد که شلوار جين به پا داشت و بند شلوار هم داشت 99٪ فيزيکدان است. استادان فيزيک معمولاً لهجه آلمانی دارند اما اين وجه مشخصه آنها نيست. مواظب روانشناسانی که به طور مصنوعی به لهجه وينی صحبت می‌کنند باشيد



استاد کامپيوتر:

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



استاد رياضيات:

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



استاد روانشناسی:

روانشناسی واقعاً يک علم نيست. بنابراين روانشناسان را می توان به راحتی از صدای داد و فريادشان در اعتراض به هر کس که «علمی بودن» روانشناسی را زير سوال ببرد شناخت. روانشناسان معمولاً چشمهای ريزی دارند و به جوکهای مربوط به روانشناسی نمی‌خندند. هرگاه در مورد يک فرد شک داشتيد که او يک دانشمند است يا يک معلم دينی، به احتمال زياد روانشناس است
|+| نوشته شده توسط گرد آفرید در دوشنبه نهم اردیبهشت 1387  |
 

|+| نوشته شده توسط گرد آفرید در دوشنبه نهم اردیبهشت 1387  |
 
 
بالا