ارسال sms به زبان سي شارپ

  • آرایه ها در سی شارپ

    هنگامي آرايه ها ايجاد مي شوند كه بخواهيم با مجموعه اي از اطلاعات همجنس كار كنيم. براي نمونه از يك آرايه براي ذخيره تعدادي كاراكتر مي خواهيم استفاده نماييم. آرايه ها هم يك نوع متغير هستند پس بايد تعريف و مقدار دهي اوليه شوند ، نوع و تعداد اعضاي آنها نيز بايد معين گردد. فرض كنيد 10 داده ي هم جنس داريم ( براي مثال رشته (string) ) و مي خواهيم آنها را ذخيره كنيم. يا مي توان 10 متغير مختلف را تعريف كرد و سپس تك تك آنها را مقدار دهي نمود و يا يك آرايه تعريف نمود و سپس در خانه هاي مختلف آن اين ده عضو را چيد. اين مطلب زماني حائز اهميت مي شود كه داده هاي همجنس و به نوعي مرتبط ما تعداد زيادي داشته باشند. براي تعريف آرايه چندين راه مختلف وجود دارد : براي تعريف آرايه ابتدا نوع آنرا مشخص مي كنيد سپس [] را بايد جلوي تعريف نوع بگذاريد اين دستور زبان است و چون چرا ندارد! در زبان سي كمي متفاوت بود. اين كروشه ها بعد از نام متغير مي آمدند. و سپس در اينجا نام يك متغير را كه بعدا به آن ارجا مي دهيم خواهيد گذاشت. براي مثال int[] table; // not int table[]; حد پايين آرايه صفر بوده براي مثال اگر آرايه chrData[] ده عضو داشته باشد، اولين عضو آن chrData[0] و آخرين عضو آن chrData[9] است. مطلب ديگري كه در مورد آرايه ها خيلي مهم است اندازه ي آن است. يعني يك آرايه حاوي چند خانه ي خالي است كه ما اجازه داريم آنرا پر كنيم. مثال :  int[] numbers; // declare numbers as an int array of any size numbers = new int[10]; // numbers is a 10-element array numbers = new int[20]; // now it's a 20-element array 1- تعريف آرايه اي از رشته ها و مقدار دهي اوليه آن. String[] strData = new string[2]; 2- تعريف و مقدار دهي اوليه string [] strData = { "1234","abcd" }; كه آرايه اي از نوع رشته اي به طول 2 عضو با مقدار دهي اوليه ايجاد شده است. در اين حالت نيازي به تعيين طول آن نمي باشد. 3- روشي ديگر براي مقدار دهي اوليه   strData[0] = "1234"; strData[1] = "abcd"; مثال : يك پروژه ي جديد Console سي شارپ را باز كنيد و نام آنرا در ابتدا ex06 بگذاريد. در اين مثال مي خواهيم نحوه ي كار با آرايه ها را مرور كنيم : using System; namespace ex06 { class Class1 { [STAThread] static void Main(string[] args) { string[] sGoalList = new string[3]; string sReplyStatement = "You have choosen Goal '"; // Store goals in the array sGoalList[0] = "Hike the Appalachian Trail"; sGoalList[1] = "Run the marathon"; sGoalList[2] = "Give $1 million to worthwhile causes"; // Store response to goals in the array //(declaring and initializing on same line) string[] sGoalResponse = { "If you are staring from GA, you should get " + "started in early spring, so you will "+ "not get caught in snow.", "Make sure that you have a good pair of shoes.", "Start saving as soon as possible."}; // Give the user a list of goals to choose from Console.WriteLine("GOAL LIST"); for(int i = 0; i < sGoalList.Length; i++) { Console.WriteLine("Goal " + i + " - " + sGoalList[i]); } // Request the user to choose a goal. Console.WriteLine (""); // Write an empty line for space Console.Write("Please choose the number ...



  • حلقه های تکرار درسی شارپ

    اگر نياز باشد تا قطعه اي از كد بيش از يكبار اجرا شود نياز به استفاده از حلقه ها مي باشد. براي مثال فرض كنيد آرايه اي به طول 1000 تعريف كرده ايد. اكنون مي خواهيد آنرا با هزار عدد متوالي پركنيد. بديهي است كه روش زير كارآمد نيست!    int[] intData = new int[1000]; intData[0]=0; . . . intData[999]=1000;  نوشتن اين خطوط متوالي احتمالا با كپي و پيست و اصلاح آن حداقل نيم ساعت طول مي كشد! بنابراين نياز به وسيله اي حس مي شود كه بتوان بوسيله ي آن امثال اينگونه كارها را انجام داد. تعريف حلقه ها و استفاده از آنها : براي تعريف حلقه ها ابزارهاي متعددي مانند while, do , for , foreach وجود دارند. استفاده و انتخاب آنها بستگي به سليقه ي شما و منطق برنامه دارد. در هر حال يك مساله بديهي است كه همواره بيش از يك راه حل براي يك مساله وجود خواهد داشت. استفاده از حلقه ي for : عموما كدنويسي را با كد نويسي مي توان آموخت! بنابراين در مورد انواع حلقه ها مثالهايي ارائه خواهد گرديد. يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex07 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :   using System; namespace ex07 { class Class1 { [STAThread] static void Main(string[] args) { int[] intData = new int[1000]; for (int i=0 ; i<1000 ; i++ ) intData[i]=i; for(int i=0 ; i< intData.Length ; i++) { int j = intData[i]; Console.WriteLine("intData[" + i + "]=" + j); } Console.ReadLine(); } } }   توضيحاتي در مورد كد فوق : 1- براي تعريف حلقه ي for همانطور كه مي بينيد بايد تعداد بار اجراي حلقه ( اينجا از 0 تا 999 است ) و همچنين نحوه ي رسيدن از 0 به 1000 را مشخص كرد ( در اينجا i++ است يعني هر بار يك واحد به شمارشگر حلقه اضافه مي شود. ) 2- در زبان سي i++ يعني i=i+1 و i-- يعني i=i-1 و كلا i-=n يعني i=i-n و به همين ترتيب. براي مثال i*=n يعني i=i*n و i+=n يعني i=i+n و ... 3- اگر پس از حلقه ي for يك خط كد داشته باشيم نيازي به آكولاد نيست (مانند قسمت اول كد). ولي اگر تعداد خطوط مربوط به بدنه ي for زياد بود بايد حتما از آكولاد استفاده شود (مانند قسمت دوم كد). (اين قاعده اي كلي است در زبانهاي مشتق شده از زبان سي در مورد هر چيزي!) 4- فرض كنيد در قسمت اول كد بالا بجاي 1000 مي نوشتيد 1001 . سريعا با يك خطاي زمان اجرا مواجه مي شديد. زيرا مي خواستيد به عضوي از آرايه دسترسي پيدا كنيد كه تعريف نشده است. راه مدرن چك كردن اين مسائل استفاده از خاصيت Length آرايه است كه در قسمت دوم كد در عمل مشاهده مي نماييد. هميشه از اين روش استفاده كنيد. 5- حلقه ي اول يعني اينكه كار پر كردن آرايه intData را از صفر تا 999 يكي يكي (i++) انجام بده. استفاده از حلقه ي while : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex08 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :   using System; namespace ex08 { class Class1 { [STAThread] static ...

  • تعريف متدها در سي شارپ

    در اين قسمت به يكي از مهمترين مباحث برنامه نويسي سي شارپ مي رسيم. متدها در سي شارپ و يا همان توابع در زبان C ، اعضاي يك شيء يا كلاس هستند و مجموعه اي از يك سري از كارها را انجام مي دهند. فرض كنيد در برنامه ي شما ، قسمتي بايد يك عمليات رياضي خاص را انجام دهد و اين قسمت از كد كه شامل چندين خط نيز مي گردد بايد بارها و بارها در برنامه صدا زده شود. براي نظم بخشيدن به برنامه ، آنها را مي توان به صورت توابع بسته بندي كرد و بجاي نوشتن چندين خط تكراري، فقط نام اين بسته ( تابع ) و پارامترهاي آن را فراخواني نمود. در سي شارپ يك تابع به صورت زير تعريف مي شود : (نوع و اسامي پارامترها) نام تابع نوع خروجي تابع سطح دسترسي به تابع } بدنه ي تابع { براي تعريف يك متد يا تابع ابتدا سطح دسترسي به آن مانند public و private سپس نوع خروجي تابع مانند void ( هيچي ) ذكر مي گردد كه داخل اين پرانتزها مي توان ورودي هاي تابع يا بقولي آرگومان هاي ورودي را معرفي كرد. سپس تابع بايد با { شروع و با يك } خاتمه يابد. براي مثال : public int myFunc( int x ) { ...…. } هر تابعي مي تواند صفر تا تعداد بيشماري آرگومان ورودي و صفر تا تعداد بيشماري خروجي داشته باشد. بوسيله يك تابع مي توان پيچيدگي كار را مخفي كرد و صرفا با صدا زدن نام آن ، يك سري از عمليات را انجام داد. گاهي از اوقات لازم مي شود دو يا چند تابع با يك نام داشته باشيم بطوريكه پارامترهاي ورودي يا مقادير خروجي و يا نوع آرگومان هاي ورودي آنها با هم متفاوت باشد به اين كار overloading مي گويند. بسياري از كلاس هاي دات نت فريم ورك متدها و يا توابع مفيد حاضر و آماده اي را دارند. براي مثال كلاس DateTime ، متدي به نام ToLongDatastring دارد كه تاريخ را به صورت يك رشته طولاني بر مي گرداند. توابع void : توابعي كه با نوع void معرفي مي شوند هيچ خروجي ندارند و در زبان ويژوال بيسيك به آْنها sub و در دلفي به آنها procedure مي گويند. بازگرداندن يك مقدار از يك تابع : پس از اينكه عمليات يك مجموعه از كدها درون تابع به پايان رسيد با استفاده از كلمه ي return مي توان خروجي تابع را معرفي كرد. لازم به ذكر است ، هرجايي اين كلمه ي return ذكر شود كار تابع خاتمه مي يابد. بهتر است موارد فوق را با چند مثال مرور كنيم : مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex13 انتخاب نماييد. در اينجا مي خواهيم تابعي را تعريف كنيم كه سه برابر جذر يك عدد را بر مي گرداند.   using System; namespace ex13 { class Class1 { [STAThread] static void Main(string[] args) { Console.WriteLine( int3SQL(3) ); Console.ReadLine(); } public static double int3SQL( double intInput ) { double i=0; i = Math.Sqrt( intInput ); return i; } } }   توضيحاتي در مورد كد فوق : 1- از شيء Math در سي شارپ مي توان براي انجام يك سري ...

  • مباحث تكميلي آرايه ها (آرايه هاي چند بعدي):

    مباحث تكميلي آرايه ها (آرايه هاي چند بعدي):

    مباحث تكميلي آرايه ها (آرايه هاي چند بعدي): برنامه نویسی #C و طراحی سایت و...آموزش کامپیوتر-انجام پروژه های دانشجویی-ثبت دامنه ملی-فروش سامانه پیام کوتاه صفحه اصلی| آموزش سی شارپ| سفارش پروژه| ثبت دامنه| تماس با ما درباره وب برنامه نویسی و طراحی وب سایتبرنامه نویسی با c# , matlab انجام کلیه سفارشات برنامه نویسیفروش پروژه های آماده برنامه نویسیفروش پروژه های آماده متلب و c#ثبت دامنه ملی .irفروش سامانه پیامک و پنل smscd و فیلم های تعاملی آموزش کامپیوترتدریس خصوصی برنامه نویسی موضوعات وب سفارش طراحی سایت دعوت به همکاری پروژه آماده متلب ثبت دامنه ملی ir. فروش پروژه های آماده سی شارپ سفارش پروژه #C فروش پنل سامانه پیام کوتاه آموزش خصوصی کامپیوتر فروش CD آموزشی و نرم افزار آموزش سی شارپ پروژه های آماده سی شارپ ساختارهای تصمیم گیری دانلود کتاب و فیلم آموزش برنامه نویسی حلقه های تکرار در #C حلقه های تکرار (2) در #C آرایه ها در #C آرایه های چندبعدی سورس کدهای رایگان #C پارامترهای ref , out در #C آپدیت آفلاین نود32 اخبار فناوری اطلاعات(IT) لینک دوستان قالب وبلاگ سامانه پیام کوتاه -پنل sms-پیامک تبلیغاتی فروشگاه فلاورسیتی شاپ وبلاگ انجمن دانشجویان فلاورجان سایت انجمن دانشجویی فلاورجان شرکت پارسین مهر سپهر آیین شرکت یکتا فرآیند مبین شرکت فناوری اطلاعات ایران آراکس شرکت دکوراسیون داخلی آرا دکو آموزش برنامه نویسی سایت دانلود رایگان و مقالات تحقیقی قالب های پیچک لینک های مفید مباحث تكميلي آرايه ها (آرايه هاي چند بعدي): تاريخ : | 1:16 | نویسنده : kg مباحث تكميلي آرايه ها (آرايه هاي چند بعدي): آرايه هاي معمولي (يك بعدي) را مي توان يك رديف با تعدادي خانه خالي آماده ي پر شدن در نظر گرفت. آرايه ي دوبعدي را مي توان مانند يك جدول تشكليل شده از رديف ها و ستون ها در نظر گرفت و الي آخر... سي شارپ دو نوع آرايه ي چند بعدي را پشتيباني مي كند : rectangular and jagged در يك آرايه ي rectangular هر رديف ، طولش با رديف بعدي يكي است. آرايه ي jagged در حقيقت آرايه ايي از آرايه ها است ، بنابراين هر كدام از آنها مي تواند طول مختلفي داشته باشد. تعريف يك آرايه ي دوبعدي به صورت زير است :   type [,] array-name   مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex19 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :   using System; namespace ex19 { class Class1 { [STAThread] static void Main(string[] args) { const int rows = 4; const int columns = 3; // declare a 4x3 integer array int[,] rectangularArray = new int[rows, columns]; // populate the array for (int i = 0;i < rows;i++) { for (int j = 0;j{ rectangularArray[i,j] = i+j; } } // report the contents of the array for (int ...

  • پارامترهای ref , out در سی شارپ

    چگونه از يك تابع بيش از يك خروجي دريافت كنيم؟ ظاهرا به نظر مي رسد كه توابع فقط مي توانند يك return داشته باشند و بلافاصله پس از فراخواني return كار تابع پايان يافته است. در سي شارپ دو كلمه ي كليدي به نام هاي ref و out اضافه شده اند كه اين امر را ساده تر مي كنند. استفاده از كلمه ي كليدي out : از out در تعريف تابع قبل از معرفي نوع آرگومان ورودي استفاده مي كنيم . در اين حالت بجاي اينكه به اين آرگومان ، آرگومان ورودي بگوييم ، مي توان آنرا آرگومان خروجي ناميد. تا يك مثال را در اين زمينه با هم مرور نكنيم اين مورد مفهوم نخواهد بود :   مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex15 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :   using System; namespace ex15 { class Class1 { public static int TestOut(out char i) { i = 'b'; return -1; } [STAThread] static void Main(string[] args) { char i; // variable need not be initialized Console.WriteLine(TestOut(out i)); Console.WriteLine(i); Console.ReadLine(); } } }   توضيحاتي در مورد كد فوق : 1- در تابع TestOut آرگومان i از با كلمه ي كليدي out مشخص شده است. يعني اينكه درون تابع هر گونه تغييري روي i انجام شود ، خارج از تابع قابل دسترسي است. 2- توابعي كه داراي آرگومانهايي تعريف شده با كلمه ي كليدي out هستند نيز مي توانند از return هم استفاده كنند. همانند مثال فوق. استفاده از كلمه ي كليدي ref : اين كلمه ي كليدي نيز دقيقا همانند out عمل مي كند و نحوه ي تعريف و استفاده از آن نيز مشابه است با اين تفاوت كه آرگوماني كه به اين نوع توابع فرستاده مي شود بايد مقدار دهي اوليه شده باشد. مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex16 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :   using System; namespace ex16 { class Class1 { public static void FillArray(ref int[] arr) { // Create the array on demand: if (arr == null) arr = new int[10]; // Otherwise fill the array: arr[0] = 123; arr[4] = 1024; } [STAThread] static void Main(string[] args) { // Initialize the array: int[] myArray = {1,2,3,4,5}; // Pass the array using ref: FillArray(ref myArray); // Display the updated array: Console.WriteLine("Array elements are:"); for (int i = 0; i < myArray.Length; i++) Console.WriteLine(myArray[i]); Console.ReadLine(); } } }   توضيحاتي در مورد كد فوق : 1- همانطور كه ملاحظه مي كنيد در اينجا هنگام استفاده از تابع FillArray بايد آرگوماني را كه مي خواهيم به آن پاس كنيم مقدار دهي اوليه كنيم. 2- پس مي توان نتيجه گرفت آرگومانهايي كه با out تعريف مي شوند به صورت خالص خروجي هستند و نيازي به مقدار دهي اوليه هنگام استفاده از آنها وجود ندارد. از ref هنگامي استفاده مي كنيم كه بخواهيم روي متغير موجود و مقدار دهي شده ي خارج از تابع ، درون تابع عملياتي صورت گيرد و سپس همان متغير دستكاري شده ، عودت داده شود. تعريف تابعي با تعداد آرگومانهاي نامعلوم : گاهي ...

  • ساختار های تصمیم گیری if , switch-case

    در بسياري از موارد هنگام برنامه نويسي لازم است تا از عبارات شرطي استفاده كنيم. براي انجام اينكار دو روش عمده وجود دارد. استفاده از if و يا switch . از if بيشتر براي مقايسه هايي تكي و كوچك استفاده مي شود و حاصل مقايسه ي آن يا true است و يا false . از عبارت switch هنگامي استفاده مي شود كه مقايسه هاي متعددي بايد در مورد يك مقدار صورت گيرد. هر دو عبارت if و switch توسط عبارتهايي Boolean كنترل مي شوند ( true و يا false ) . در هنگام استفاده از if اگر عبارت Boolean حاصل اش true باشد اولين قسمت شرط اجرا مي شود و سپس برنامه از انتهاي if ادامه پيدا مي كند. اگر حاصل عبارت Boolean مساوي false باشد كنترل برنامه به قسمت else منتقل مي شود. مثال : يك پروژه ي جديد console باز كنيد و نام آنرا ex04 بگذاريد. سپس كد زير را در آن وارد و جرا كنيد :   using System; namespace ex04 { class Class1 { [STAThread] static void Main(string[] args) { Console.WriteLine("Enter 1 character to be evaluated"); char cUserInput = (char) Console.Read(); if ( char.IsDigit( cUserInput ) ) Console.WriteLine("The char is a number!"); else Console.WriteLine("The char is not a number!"); } } }   نكاتي در مورد كد فوق : 1- سي شارپ به كوچكي و بزرگي حروف حساس است . براي مثال cUserInput با cUserinput فرق مي كند. 2- حتما بايد بعد از if پرانتزها ذكر گردد. 3- حتما بايد داخل if يك عبارت Boolean ذكر شود مانند if(x>5) . 4- در سي شارپ مقايسه ي تساوي دو عبارت با == و انتساب با = انجام مي شود. ( موارد 1 و 4 مواردي هستند كه اغلب تازه كاران با آن مشكل دارند! ) براي مثال if(i==3) صحيح است اما if(i=3) در سي شارپ معنايي ندارد. 5- اگر بعد از if يك خط كد قرار گيرد نيازي به آوردن آكولاد ها نيست. هنگامي نياز به آكولادها مي باشد كه بيش از يك خط بايد بعد از if قرار گيرد. 6- در سي شارپ همانند اسلاف خودش براي تبديل نوع هاي داده ايي مي توان به صورت زير نيز عمل كرد : (char) Console.Read() ; يعني دريافتي Read به char تبديل مي شود .در اين مورد باز هم صحبت خواهد شد. 7- همانطور كه ذكر شد در سي شارپ همه چيز شيء است حتي نوع هاي پايه ايي مانند char . با استفاده از متد IsDigit آن مي توان چك كرد كه آيا ورودي آن عدد است يا خير؟ ( در مورد متدها صحبت خواهد شد ) ...

  • کنترل TreeView در سی شارپ

    کنترل TreeView برای نمایش داده های سلسله مراتبی استفاده میشه. یکی از معمولی ترین کاربرد TreeView در اکسپلورر ه که می تونید ازTreeView برای راهبری پوشه ها و درایوها استفاده کنید.عناصر TreeView در مجموعه nodes قرار می گیرند. که مشابه مجموعه items در listview هست.برای شروع یک کنترل TreeView در فرم قرار بدید. کد:treeView1.Nodes.Add("vb.net"); treeView1.Nodes.Add("C#"); کد بالا دو نود به TreeView شما اضافه می کنه با متن های vb.net و c# اگر بخواید نود شما فرزند داشته باشه بصورت زیر عمل کنید: کد:TreeNode objNode; objNode = treeView1.Nodes.Add("Mobina"); objNode.Nodes.Add("C#"); در اینجا یک نود با متن مبینا ایجاد میشه که نودی به عنوان فرزند با متن C# داره.یا می تونید این کد رو به این صورت بنویسید: کد: treeView2.Nodes[0].Nodes.Add("Homa"); یعنی به نود با اندیس صفر نود فرزندی با متن هما رو اضافه کن. کد: if (!(treeView1.SelectedNode==null )) کد: treeView1 .Nodes .Remove (treeView1 .SelectedNode ); یعنی اگه نودی انتخاب شده بود اون نود رو حذف کن. کد:treeView1.Nodes.Clear(); کلیه ی نودهای درخت رو حذف کن.برای اینکه با کلیک بر روی نودی از درخت نود انتخاب شده را در یک لیبل مشاهده کنید در رویداد کلیک تری ویو کد زیر را وارد کنید: کد: if (!(treeView2.SelectedNode == null)) کد: label1.Text = treeView2.SelectedNode.ToString(); ارتباط TreeView به بانک اطلاعاتی:در برنامه ی زیر به تعداد رکوردهای موجود در جدول نود پدر به درخت اضافه میشود سپس فیلدهای هر رکورد بعنوان فرزند به نود مربوط به آن اضافه می گردد. کد:treeView2 .Nodes .Clear (); کد: SqlConnection connection1 = new SqlConnection("server=(local);database=EngStu;user=sa;password=sa"); SqlCommand command1 = new SqlCommand("select * from profile"); command1.Connection = connection1; command1.Connection.Open(); SqlDataReader reader1 = command1.ExecuteReader(); for (int num1 = 0; reader1.Read(); num1++) { treeView2.Nodes.Add(reader1[0].ToString()); int num3 = reader1.FieldCount - 1; for (int num2 = 0; num2 <= num3; num2++) { treeView2.Nodes[num1].Nodes.Add(reader1[num2].ToString()); } }