Train

PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش زبان C++ قدم به قدم از طریق مثال


صفحه ها : [1] 2

omid55
01-17-2008, 09:56 PM
از آنجایی که برنامه نویسی و کد نویسی یکی از مهمترین موضوعات کامپیوتر است و متاسفانه اغلب ایرانیان از این موهبت بسیار مهم بی بهره می باشند و بسیاری از اعضای تازه وارد سایت آشیانه نیز ممکن است کد نویسی بلد نباشند یا یک زبان قدیمی را بدانند بر آن شدم تاپیکی در مورد آموزش زبان C++ بزنم و این زبان بسیار زیبا و قوی و کامل و جدید را یاد بدهم (البته من خودمم هم هیچی بلد نیستم و کوچیکه همه ی بروبکس آشیانه هم هستم ... )( امید وارم بچه ها ی گل آشیانه کمکم کنند ... )
در این تاپیک من تمام سعیم را می کنم که از مثال های خیلی خیلی خیلی ساده شروع کنم ...
در واقع این تاپیک آموزش مقدماتی زبان C++ است ( ان شاء الله در آینده یک تاپیک هم برای آموزش پیشرفته خواهم زد )( گاماس گاماس ... )
پس به امید خدا می خواهم در این تاپیک زبان C++ را از پایه و به صورت بسیار بسیار بسیار ساده آموزش دهم از طریق مثال اما چون اگر تمامی کد ها را در تاپیک قرار دهم(به طوری که بتونید با باز شدن تاپیک آنها را ببینید) تاپیک خیلی بزرگ می شه پس آنها را روی Server خودم آپلود می کنم و فقط لینک دانلودشون را می ذارم ... ( فایلها خیلی خیلی کوچکند و اگر دانلود همشون رویهم بیشتر از 1 دقیقه طول کشید من اسم خودم رو به ... تغییر می دم )( حتی با dial up )

omid55
01-17-2008, 10:01 PM
در ابتدا باید یک چیزهایی رو بدونید :
هر کد C++ از یک سری توابع ( بحث در مورد تابع در پایان تاپیک خواهد آمد ) و همیشه از یک تابع main که تابع اصلی است تشکیل شده است . تمامی کد اصلی باید در این قسمت نوشته شود . در کد نویسی در زبان C و C++ باید از هر دستوری که می خواهید استفاده کنید قبلا کل بخشی که آن دستور و دستورهای دیگری در آن وجود دارد را به کدتان اضافه کنید . اصطلاحا می گویند فلان Header را Include کنید ...
برای مثال iostream هدری است که در آن دستوراتی مانند cin و cout و endl و ... در آن وجود دارد که به ترتیب برای ورودی و خروجی و رفتن به خط بعدی است ...
اگر \n را در " " بزنید به خط بعدی می ره و اگر \t را در " " بزنید 6 ستون جلو می ره و ...

omid55
01-17-2008, 10:09 PM
قبل از شروع مثالها به شما پیشنهاد می کنم که از Microsoft Visual C++ 2008 Express Edition یا حداقل از Microsoft Visual C++ 2005 Express Edition برای کد نویسی استفاده کنید ...
امیدوارم بقیه ی بچه ها هم از این تاپیکها بزنن . ( مثلا برای زبان Perl که من هم خیلی دوست دارم یاد بگیرم ... ):x
اگه خدا بخواد ان شاء الله در آینده برای زبانهای Java و Delphi هم تاپیک خواهم زد ... thumbsup

omid55
01-17-2008, 10:15 PM
برنامه 1 : Hello World!!!
توضیح : این برنامه عبارت Hello World!!! را چاپ می کند .
لینک دانلود :[Only registered and activated users can see links]

omid55
01-17-2008, 10:21 PM
برنامه 2 : میانگین و مجموع مجذورات
توضیح : این برنامه میانگین 5 عدد و مجموع مجذور آنها را حساب می کند .
لینک دانلود : [Only registered and activated users can see links]

omid55
01-17-2008, 10:33 PM
برنامه 3 : میانگین دانشگاه
توضیح : این برنامه میانگین دانشگاه را محاسبه می کند (از طریق حلقه های تودرتوی for استفاده می شود )
لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

omid55
01-17-2008, 10:44 PM
برنامه 4 : سری
توضیح : محاسبه ی یک سری ساده به شرحی که در کد هست ...
لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

omid55
01-17-2008, 10:48 PM
برنامه 5 : 5 قسمتی
توضیح : 5 بخش اعم از شمردن تعداد ارقام یک عدد و مبنا و معکوس کردن و ...
لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

mohammad6006
01-18-2008, 12:05 AM
من از Microsoft Visual C++ 2005 Express Edition استفاده میکنم
اگر ممکنه اول بفرمائید چطوری یک project باز کنم که بتونم کدهایی که شما میفرمائید رو امتحان کنم

omid55
01-18-2008, 03:01 PM
من از Microsoft Visual C++ 2005 Express Edition استفاده میکنم
اگر ممکنه اول بفرمائید چطوری یک project باز کنم که بتونم کدهایی که شما میفرمائید رو امتحان کنم

اولا خیلی ممنون که دوست عزیز این سوال رو پرسیدید . من هیچ کس رو مسخره نمی کنم چون خودم از همه بیسوادترم :-Scigar

ابتدا به سربرگ New رفته و گزینه ی New Project را انتخاب می کنید سپس در سمت چپ Win32 را انتخاب می کنید و از سمت راست هم Win32 Console Application , در قسمت Name هم یک نام می نویسید و OK می کنید سپس Next را میزنیم و بعد از آن Empty Project را تیک کرده و Finish می کنیم بعد از آن از Project باز شده روی Source Files کلیک راست کرده و از گزینه ی Add قسمت New Item را بر می گزینیم آنگاه در سمت چپ Code و در سمت راست ++C فایل که در داخل پرانتز (cpp.) است و سپس در قسمت Name هم نام دلخواه خود وارد می کنید و در پایان Add را می زنیم ...
لطفا هر سوال دیگری دارید باز هم مطرح نمایید ...

omid55
01-18-2008, 03:07 PM
برنامه 6 (ساده) : مرتب کردن نمرات و قرار دادن آنها در بازه های مشخص

توضیح : به این برنامه یک نمره در ابتدا وارد می گردد( که می تواند اعشاری هم باشد ) سپس پرسیده می شود " آیا عدد دیگری وجود دارد یا خیر ؟ " و به این ترتیب تعدادی نمره وارد می گردد و آنگاه اگر 20=>نمره=>17 بود A و اگر 17>نمره=>15 بود B و 15>نمره=>13 بود C و 13>نمره=>10 بود D و اگر کمتر از 10 بود F می گردد. ( یک مرتبه با ساختار کنترلی IF … ELSE و یک مرتبه با ساختار کنترلی SWITCH )

لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links](easy).rar)

omid55
01-18-2008, 03:10 PM
برنامه 6 (مشکل) : مرتب کردن نمرات و قرار دادن آنها در بازه های مشخص
توضیح : به این برنامه تعداد زیادی نمره به صورت پشت سر هم که با یک space فقط از هم جدا شده اند وارد می گردد( با getche() بنویسید )( conio.h را باید include کنید ) و آنگاه اگر 20=>نمره=>17 بود A و اگر 17>نمره=>15 بود B و 15>نمره=>13 بود C و 13>نمره=>10 بود D و اگر کمتر از 10 بود F می گردد. ( یک مرتبه با ساختار کنترلی IF … ELSE و یک مرتبه با ساختار کنترلی SWITCH )
لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links](hard).rar)

mohammad6006
01-18-2008, 03:29 PM
اولا خیلی ممنون که دوست عزیز این سوال رو پرسیدید . من هیچ کس رو مسخره نمی کنم چون خودم از همه بیسوادترم :-Scigar

ابتدا به سربرگ New رفته و گزینه ی New Project را انتخاب می کنید سپس در سمت چپ Win32 را انتخاب می کنید و از سمت راست هم Win32 Console Application , در قسمت Name هم یک نام می نویسید و OK می کنید سپس Next را میزنیم و بعد از آن Empty Project را تیک کرده و Finish می کنیم بعد از آن از Project باز شده روی Source Files کلیک راست کرده و از گزینه ی Add قسمت New Item را بر می گزینیم آنگاه در سمت چپ Code و در سمت راست ++C فایل که در داخل پرانتز (cpp.) است و سپس در قسمت Name هم نام دلخواه خود وارد می کنید و در پایان Add را می زنیم ...
لطفا هر سوال دیگری دارید باز هم مطرح نمایید ...

اقا دستت درد نکنه ممنونم من با c++ 6 کار کرده بودم خیلی روشن و خوب توضیح دادید میرم کدهایی رو که دادید امتحان کنم:x

omid55
01-18-2008, 03:39 PM
اولا خواهش میکنم وظیفست ثانیا هر سوال دیگری هم داشتید بپرسید ثالثا VC6 را از نظر من بنداز توی سطل آشغال ...:p:p:p

omid55
01-18-2008, 03:41 PM
برنامه 7 : همان برنلمه ی شماره ی 5 فقط به کمک آرایه ها
توضیح : یک برنامه ی 5 قسمتی به کمک آرایه ها
لینک دانلود : [Only registered and activated users can see links]

omid55
01-18-2008, 03:44 PM
برنامه 8 : ماتریسها
توضیح : ضرب یک ماتریس 3*2 در یک ماتریس 4*3 ( استفاده از آرایه ها 2 بعدی )
لینک دانلود : [Only registered and activated users can see links]

omid55
01-18-2008, 03:47 PM
برنامه 9 : Sort
توضیح : الگوریتم sort های معمولی و حبابی ( Bubble Sort )
لینک دانلود : [Only registered and activated users can see links]

omid55
01-18-2008, 03:52 PM
برنامه 10 : تمرین هر چه بیشتر Sort ها و آرایه ها با هم
توضیح : مرتب کردن 35 عدد به طوری که در هنگام رسیدن به عدد 0 طریقه ی sort کردن عوض شود ( صعودی و نزولی بودن آن ) به وسیله هر دو الگوریتم sort
لینک دانلود : [Only registered and activated users can see links]

omid55
01-18-2008, 04:01 PM
برنامه 11 : تلفیقی از ماتریسها و استفاده از توابع
توضیح : ضرب یک ماتریس 3*2 در یک ماتریس 4*3 از طریق استفاده از تابع و به دست آوردن مجموع درایه های روی قطر اصلی و همچنین ترانهاده ی 2 ماتریس مربعی
لینک دانلود : [Only registered and activated users can see links]

mohammad6006
01-18-2008, 05:36 PM
برنامه 2 : میانگین و مجموع مجذورات
توضیح : این برنامه میانگین 6 عدد و مجموع مجذور آنها را حساب می کند .
لینک دانلود : [Only registered and activated users can see links]

اقا این برنامت مشکل کوچولو داشت یعنی اینکه به جای 6 عدد 5 عدد محاسبه میکنه من درستش کردم البته برا تمرین خواستی ویرایش کن نخواستی اینو بزار
برات پیوست میکنم

omid55
01-19-2008, 12:37 AM
برنامه 12 : تلفیقی از توابع و Sort ها و آرایه ها
توضیح : همان برنامه ی 10 فقط با استفاده از توابع برای تمرین هرچه بیشتر توابع
لینک دانلود : [Only registered and activated users can see links]

omid55
01-19-2008, 12:39 AM
برنامه 13 : خواندن از روی فایل و نوشتن بر روی فایل
توضیح : آموزش دستور freopen فقط باید حتما هدر stdio.h را include کنید
لینک دانلود : [Only registered and activated users can see links]

omid55
01-19-2008, 12:42 AM
برنامه 14 : Bisection
توضیح : آموزش الگوریتم Bisection به دو صورت
لینک دانلود : [Only registered and activated users can see links]

omid55
01-19-2008, 12:44 AM
برنامه 15 : Fibonachi
توضیح : الگوریتم سری Fibonachi تا قبل از رسیدن به OverFlow و آموزش دستور ULONG_MAX البته باید limits حتما باید include گردد
لینک دانلود : [Only registered and activated users can see links]

omid55
01-19-2008, 12:47 AM
برنامه 16 : پروژه ی خودم در درس مبانی کامپیوتر( یک برنامه ی کامل ) برای آموزش string و تابع و آرایه و Sort به صورت مخلوط ( یاد بستنی مخلوط افتادممممممم ....... )

توضیح : این برنامه ابتدا یک متن کامل را از ورودی دریافت می کند ( کاربر می تواند Enter کند و هر چه می خواهد به هر میزان تایپ نماید ) سپس برای اتمام کار یک end بزند و سپس Enter کند ولی این واژه ی end نباید به هیچ وجه جزء متن به حساب بیاید و فقط نشان دهنده ی پایان متن است سپس برنامه باید تعداد کلمات متن را حساب کرده و چاپ نماید بعد از آن کلمه با بزرگترین طول به همراه طول آن و کلمه با کمترین طول به همراه طول آن را چاپ کند( در خطوط مجزا ) سپس کلمات را بر حسب طول بوسیله ی سپس کلمات را بر حسب طول بوسیله ی Bubble Sort مرتب کند و آنها را در خطوط مجزا چاپ نماید آنگاه یک مرتبه هم آنها را برحسب حروف الفبا مرتب کند و بعد از آن آنها را در خطوط مجزا چاپ کند و در پایان چاپ نماید که در هر کلمه چه تعداد از چه حرفی استفاده شده است دو مرتبه در خطوط مجزا و ...

لینک دانلود : [Only registered and activated users can see links]

omid55
01-19-2008, 01:09 AM
راستی اینم یکی از لینکهای ACM برای شما :
[Only registered and activated users can see links]
نظر یادتون نره ...

ahra
01-19-2008, 02:49 PM
یه سوال لطفا همه نظرشون و هر چی میدونن رو بگن
برنامه نویسی نمیدونم و می خواستم c++ رو یاد بگیرم چون اینجا زیاد گفته شده که اینو یاد بگیرین
برای شروع برنامه نویسی با c++ از کجا شروع کنم؟ وبا چی یاد بگیم؟
cd آموزشی یا کتاب یا اگه چیزه دیگه ای میدونین بگین
اگه میشه بگین مثلا چه کتابی یا چه cd ؟

mohammad6006
01-19-2008, 09:34 PM
اینم یه سری مسایل اولیه و ابتدایی برای شروع برنامه نویسی در محیط سی ++

دستور العملهای برنامه c++ دارای ویژگیهای زیر هستند :

1- هردستور در این زبان به ; ختم می شود .
2- حداکثر طول یک دستور 255 کاراکتر است .
3- هر دستور میتواند در یک یا چند سطر ادامه داشته باشد
4- در هر سطر میتوان چند دستور را تایپ کرد ( این کار توصیه نمی شود )
5- توضیحات میتواند در بین /* */ قرار گیرند و یا بعد از // ظاهر شوند ( درست مثل سطر اول برنامه هایی که امید قرار میده )
/* This is a sample comment */
//this is a another sample comment
6 - حساس به بزرگی و کوچکی حروف

mohammad6006
01-19-2008, 09:35 PM
انواع داده ها در C++ :

char : برای ذخیره داده های کاراکتری
int : برای ذخیره اعداد صحیح
float : برای ذخیره اعداد اعشاری
double : برای ذخیره اعداد اعشاری که بزرگتر از float باشد
void
bool : برای ذخیره مقادیر منطقی به کار میرود

با استفاده از کلماتی مثل signed , unsigned , long , short میتوان مقادیر جدیدی ایجاد کرد

int (signed , unsigned , short , long )
char ( signed , unsigned )
double ( long)


بعدا عکس جدول انواع داده ها و مقادیر قابل قبول رو براتون میزارم

mohammad6006
01-19-2008, 09:36 PM
تعیین نوع متغیر :
; نام متغیر نوع داده

مثال : ;int x,y; float m,n; char ch1,ch2; double d1

مقدار دهی به متغیرها :
int x,y=5; char ch1='a' , ch2='m'; bool b1=false , b2=true

یا

int x,y,m;
x=y=m=0;
یا

int x,y;
cin>>x>>y;

ثوابت :

<مقدار > <نام ثابت> define#
دقت : علامت ; وجود ندارد


const <نوع داده > < نام ثابت > = < مقدار>;


v

omid55
01-21-2008, 08:39 PM
آموزش درمورد متغییرها :
با اجازه ی Tabriz-info عزیز من هم میخواستم به بحث متغییرها اضافه بشم = >
متغییرها در زبان ++C چند دسته اند :
Char => داده هایی هستند شامل حرف و علائم و ... که 8 بیت یا 1 بایت فضا اشغال میکنند پس 256=28 کاراکتر داریم که در زبان ++C این کاراکتر ها از جدول ASKII خوانده می شوند ... ( با یک search در سایت Google.com می توانید نسخه ای از آن را دریافت کنید )( من هم قول میدم که کد برنامه ی ساده ای که کد اسکی هر دکمه ای را که میزنید را به شما می گوید را بذارم )( جمله را بپا !!! )( لطفا مسخره نکنید ... )
Int => داده هایی هستند که به منظور ذخیره ی اعداد صحیح تعریف می گردند و فضای اشغالی آنها هم به OS بستگی دارد مثلا اگر از Windows 32 bit استفاده می کنید معادل 32 بیت یا 4 بایت است و ...
=Float> این نوع داده ها جهت ذخیره کردن اعداد اعشاری هستند که تا 7 رقم اعشار دارند و فضای 4 بایت یا 32 بیت را اشغال می کند .
Double=> این نوع داده ها جهت ذخیره کردن اعداد اعشاری هستند که تا 15 رقم اعشار دارند و فضای 8 بایت یا 64 بیت را اشغال می کند .
Short=> از داده های نوع int است با این تفاوت که 2 بایت یا 16 بیت را اشغال می کند .
Long Double=> مانند Double است و تقریبا همان فضا را هم اشغال می کند فقط با این تفاوت که 19 رقم اعشار می پذیرد.
Boolean=> داده ای است جهت ذخیره ی مقادیر 0و1 که می تواند معرف False و True باشد . ( در تعریف می نویسیم : bool )
***نکته : یک عملگر وجود دارد که حجم هریک از type های متغییر ها را میدهد : Sizeof()
دو مثال از استفاده از آن می گذارم : ( خیلی خیلی ساده اند )( لطفا مسخره نکنید ... )
***نکته : می توانید از عبارت unsigned قبل از تعریف متغییر ها استفاده کنید : unsigned int x;
این کار باعث می شود که محدوده ی متغییر شما دو برابر شود ولی باید مواظب باشید که دیگر به این متغییر عدد منفی نسبت داده نشود .
چون بحث ثابتها توسط Tabriz-info عزیز شد من به دو مثال بسنده می کنم :
#define Pi 3.1415
Const int Pi=3.1415;
ان شاءالله در پستهای آینده در مورد تبدیل نوع متغییرها صحبت می کنم ...

omid55
01-21-2008, 08:50 PM
برنامه : ASKII
توضیح : این برنامه کد اسکی هر دکمه ای را که می زنید را نمایش می دهد .
لینک دانلود : [Only registered and activated users can see links]

omid55
01-21-2008, 08:59 PM
برنامه : سیستم عامل چند بیتی
توضیح : این برنامه نشان می دهد که سیستم عامل اجرایی چند بیتی است .
لینک دانلود : [Only registered and activated users can see links]

omid55
01-21-2008, 09:02 PM
برنامه : متغییرها
توضیح : این برنامه نشان می دهد که هر متغییر چه مقدار فضا روی حافظه اشغال می کند .
لینک دانلود : [Only registered and activated users can see links]

meisambandari
01-22-2008, 07:03 AM
چطوری پروژه رو تبدیل به فایل اجرایی کنیم ؟؟

Amirx
01-22-2008, 08:34 AM
با عرض سلام و خسته نباشید خدمت تموم دوستان عزیزی که این تاپیک رو زده و گرمش می کنن
دوستان من تو برنامه نویسی یه مشکل پیدا کردم:x
سیستم من موقع کامپایل کردن برنامه نوشته شده ارور میده و میگه یکی از توابعی که مورد استفاده بوده اونو پیدا نکردم...کلا به اون تابع کتابخانه ای که مورد استفاده قرار می دهم ارور میده
خلاصه دم همتون گرم:cool:

omid55
01-22-2008, 10:04 AM
چطوری پروژه رو تبدیل به فایل اجرایی کنیم ؟؟
ببين دوست عزيز شما مي بايستي پس از نوشتن كد دكمه هاي Crtl+F7 را بزني تا compile بشه يعني اينكه به زبان سطح پايين ماشين تبديل بشه و براي سخت افزار قابل فهم .
پس از آن اگر هيچ Error اي نداشته باشي ( Warning اگه داشت مهم نيست )( البته Warning ها رو هم حتما بخونيد ) اگر كمه هاي Crtl+F5 را با هم بزني execute شده با فايل linker ادغام ميشه و يك فايل اجرايي با پسوند exe و با نام كدتان ميسازد كه در مسير
D:\Documents and Settings\omid_as1988\My Documents\Visual Studio 2005\Projects
سپس نام پروژه و در فولدر debug قرار ميگيرد كه مي توانيد آنرا هركجا كپي كرده و استفاده كنيد ...
thumbsup:cool::p

satanic0098
01-23-2008, 12:14 PM
میگن برای کسانی که در زمینه هکینگ فعالیت میکنند c++ رو باید خیلی خوب بدونن
c# مهم نیست


سلام.

نمخواستم جوابی به این تایپیک بدم ولی چون داری اطلاعات غلط میدی- مجبورم.


1-من نمیدونم چرا فکر نمیکنی جواب میدید-


2- چرا پست رو نمیخونی جواب میدی!!!

3- وقتی از برنامه نویسی چیزی نمیدونی چرا جواب میدی!!!

4-تو هر برنامه ای که با c++ مینویسی -همینجا پالیک کن -من با چندین خط کد کمتر

با c# مینوسیم ---زبان C# خودش برگرفته از C++ -C -java هست.

و opp کامل هست.(اینه که میگم تحقیق کن-یا در تایپیک هایی شرکت کن که در حد خودت باشه.

5-من گفتم C++ را از پایه در محیط لینوکس یاد بگیرن -اینجوری هم به زبان C++ مسلط

میشید -و هم برنامه نوشت تحت لینوکس -و یا فعالیت در کد نویسی سیستم عامل .

در این مورد باید به زبان های سطح پاییین مثل اسمبلی تسلط داشته باشید.

6-شما میتونید کدهای تحت لینوکس خودتونا با کمپایلرهایی نظیر gcc در ویندوز کمپایل کنید.

اینه که میگم نمیخونی جواب میدید--یا درک نمیتونی بکنی جواب میدی.


looooool
lo1ad

ahra
01-23-2008, 02:30 PM
سلام.

نمخواستم جوابی به این تایپیک بدم ولی چون داری اطلاعات غلط میدی- مجبورم.


1-من نمیدونم چرا فکر نمیکنی جواب میدید-


2- چرا پست رو نمیخونی جواب میدی!!!

3- وقتی از برنامه نویسی چیزی نمیدونی چرا جواب میدی!!!

4-تو هر برنامه ای که با c++ مینویسی -همینجا پالیک کن -من با چندین خط کد کمتر

با c# مینوسیم ---زبان C# خودش برگرفته از C++ -C -java هست.

و opp کامل هست.(اینه که میگم تحقیق کن-یا در تایپیک هایی شرکت کن که در حد خودت باشه.

5-من گفتم C++ را از پایه در محیط لینوکس یاد بگیرن -اینجوری هم به زبان C++ مسلط

میشید -و هم برنامه نوشت تحت لینوکس -و یا فعالیت در کد نویسی سیستم عامل .

در این مورد باید به زبان های سطح پاییین مثل اسمبلی تسلط داشته باشید.

6-شما میتونید کدهای تحت لینوکس خودتونا با کمپایلرهایی نظیر gcc در ویندوز کمپایل کنید.

اینه که میگم نمیخونی جواب میدید--یا درک نمیتونی بکنی جواب میدی.


looooool
lo1ad

خب منم چیز زیادی نمیدونم ونوشتم که اینطوری میگن چون تو بیشتر تاپیک ها همین رو خوندم
و اینطور متوجه شدم که c++ یکی از زبان های مهم هست که باید برای هک بلد بود
از راهنمایی شما هم ممنون

ولی لحن صحبتت خیلی بچه گانه بود
واقعا متاسفم

امیدوارم یکی کامل تر این مساله رو در مورد برنامه نویسی توضیح بده
لطفا بیشتر از این تاپیک رو منحرف نکنید و ادامه بدین

omid55
01-23-2008, 04:59 PM
خوب همونطور که قول داده بودم آخرین بحث از متغییر ها یعنی تبدیل نوع :

در موارد بسیار زیادی اتفاق می افتد که می خواهیم دو عدد را با هم جمع یا از هم تفریق یا در هم ضرب و یا بر هم تقسیم کنیم و همچنین دو عدد ما از یک نوع ( type ) نیستند . همان طور که می دانید ALU فقط توانایی انجام عملیات بر روی داده های مشابه را دارد ( مثلا نمی تواند یک عدد 16 بیتی را با یک عدد 32 بیتی پردازش کند )
این جاست بحث تبدیل نوع به میان می آید . تبدیل نوع به عملیاتی گفته می شود که compiler با توجه به کد شما انجام می دهد تا دو عدد از یک نوع شوند و ALU بتواند بر روی آنها پردازش انجام دهد ...
2 نوع تبدیل نوع وجود دارد :
1- تبدیل نوع اتوماتیک 2- تبدیل نوع موقت
تبدیل نوع اتوماتیک توسط خود compiler انجام می شود به این صورت که اگر مثلا شما دو عدد که یکی از int و دیگری double است را با هم جمع میکنید دو عدد را به صورت double تبدیل میکند و حاصل هم double می شود به فرض 2 با 1.55 آنگاه 2 تبدیل می شود 2.00 و پس از عملیات انجام می شود ...
در کل همیشه داده با نوع بزرگتر بر بقیه غلبه می کند ...
اما اگر عملیات شما انتساب بود در آن صورت اگر یک متغییر با طول کمتر را ( مثلا int ) به درون یک متغییر با طول بیشتر ( مثلا float ) ریختید آنگاه با گذاشتن 0 در انتهای عدد ( البته پس از ممیز ) عمل انتساب به راحتی و بدون هیچ مشکلی انجام میشود . اما اگر برعکس یعنی خواستید که یک متغییر با طول بیشتر ( مثلا float ) را درون یک متغییر با طول کمتر ( مثلا int ) بریزید آنگاه compiler به شما Warning می دهد ( loss of data ) به این معنا که مقداری از عدد شما نابود می شود ... ( البته این کار بعضی از اوقات نیاز میشود اما سعی کنید همیشه همه ی warning ها را نیز برطرف کنید )
تبدیل نوع موقت یا static به این صورت است که شما در بعضی از موارد می خواهید حتما جوابتان مثلا double شود بدون اینکه هیچ کدام از متغییر هاتون که int هستند تغییری پیدا کنند در این حالت به compiler میگویید که جواب را به double بدست بیار اما تغییری در متغییر هاتون ایجاد نشه . طریقه نوشتن آن :
double avg=static_cost<double> (x+y+z)/3;
یا
double avg=(double) (x+y+z)/3;

البته روش دوم بهتره به خصوص برای ورژنهای جدید ...

omid55
01-23-2008, 11:03 PM
بچه ها نظربدید ...
باز هم آموزش بدهیم یا بریم سر ACM و مسابقه و ...
:rolleyes:thumbsup:cool::p;)

Azazel
01-24-2008, 09:06 AM
1. مرسی از آموزش هایی که می زاری هر وقت تموم شد بگو که من انتقالش بدم .....
2. تو این تاپیک هرکی دعوا بکنه 2 سال ban میشه!

omid55
01-24-2008, 10:05 AM
قربانت ازازل جان ...
اگه بچه ها بخواند و دعوا و بحث و جدل الکی نکنند حالا حالا ادامه دارد ...
to be continued ...
thumbsup

omid55
01-24-2008, 02:33 PM
با سلام خدمت بچه های گل سایت ...
مرسی ار اینکه واقعا خیلی زحمت می کشید و نظر می دید و سوال می کنید و یا آموزش می دید ( واقعا خسته نباشید !!!!!!):o
جدی میگم آدم را دلسرد می کنید ...
نه پیشنهادی نه انتقادی نه آموزشی نه ...
شاید این آخرین آموزشهای من باشه ( اگه بخواد اینطوری پیش بره ... )
منو بگو برای کیا 6 صفحه تاپیک تا حالا دادم ...:-S

omid55
01-24-2008, 02:37 PM
خوب این از آموزشهای امروز ==>>>
:cool:thumbsup;):plo1adcigar:rolleyes::cool:

omid55
01-24-2008, 02:44 PM
آخرین مبحث از متغییرها ( جدا این آخرین درس متغییرهاست )( من دوست دارم یک درس رو که شروع میکنیم تا تهش جلو بریم ... ) naughty
متغییرها و حوزه ی شناسایی آنها :

متغییرها را از لحاظ حوزه ی شناسایی ( scope ) در کل به دو دسته تقسیم می کنند :
1- local یا محلی 2-global یا سراسری
متغییرهای local یا همان متغییرهای محلی به متغییرهایی می گویند که درون تابع تعریف می شوند و حوزه ی شناسایی آنها درون تابع است ( همانطور که میدانید main هم یک نوع تابع است ) به همین دلیل است که در دو تابع مختلف می توان دو متغییرهمنام ولی کاملا متفاوت تعریف کرد .
در زبان C++ یک نوع متغییر دیگر هم وجود دارد که global یا سراسری نامیده می شوند . این نوع متغییرها همانطور که از اسمشان بر می آید به صورت سراسری هستند به این معنا که در تمامی تابع ها قابل شناسایی هستند و همواره در هر تابع می توان از آنها استفاده کرد و مقدار آنها در گذر از هر تابع مرتبا می تواند تغییر کند و کاربرد آنها این است که می توان از آنها به عنوان مقدار بازگشتی از یک تابع برای ورودی به تابع دیگر استفاده کرد یعنی اینکه آن را وارد یک تابع void کرده سپس درون تابع آنرا تغییر داده و حاصل را به تابع بعدی وارد کنیم و به همین ترتیب ... ( البته این روش کار جالبی است و گاهی از اوقات واقعا به درد می خورد اما در کل استفاده از این روش پیشنهاد نمی شود چون نگهداری از متغییرهای سراسری مشکل است )

***یکی از مهمترین تفاوتهای متغییر های سراسری با متغییر های محلی این است که متغیر های محلی تا زمانی که مقدار اولیه نگرفته باشند معتبر نیستند اما متغیر های سراسزی دارای مقدار اولیه ی 0 هستند ( اگر مقدار اولیه داده نشده باشند )

***در حالتی که در تابعی متغیر محلی همنام با متغیر سراسری تعریف گردد در این صورت در آن تابع متغیر سراسری قابل دسترسی نخواهد بود مگر آنکه از عملگر حوزه ی تفکیک :: استفاده کنید .

بحث متغییر ها تمام شد ان شاء الله در درس های بعدی می رویم سر ساختارهای کنترلی ... thumbsup

omid55
01-24-2008, 02:49 PM
یک موضوع خیلی مهم :

برنامه ی VC++ یک قسمت خیلی خیلی خیلی جالب دارد که من خودم عاشقش هستم ...
با دکمه ی F10 و F11 تا حالا کار کردید ؟؟؟ ( از حرفه ای ها پوزش می خواهم ... )
ببنید وقتی شما یک کد را می نوسید و دکمه های Ctrl + F7 را می زنید و در واقع آن را compile می کنید compiler با error ها و warning ها و یا message ها به شما خطاهای syntax ایتون رو گوشزد می کنه و به شما می گه که فلان خط چه چیزی اشتباه نوشتید اما به هیچ وجه خطای logical یا منطقی کدتون رو بهتون نمی گه ( یعنی نمی تونه که بگه ) و شما وقتی که برنامتون رو برای یک ورودی موردنظر چک می کنید می بینید که جواب خیلی پرت و پلایی بهتون می ده ( اون وقته که آدم می خواد شیشه مانیتور رو خورد کنه )( جو گیر نشید )( پیام اخلاقی !!! )
در این مواقع دکمه ی F10 بهترین است . جدی میگم من خیلی از کدنویسها را میشناسم که این دکمه را اصلا نمی دونند ( البته توهین به هیچ کسی نشه ... )
اول یک واژه را تعریف کنیم :
Trace = به معنای این است که شما یک جدول به صورت دستی روی کاغذ ( مثلا ) بکشید و به تعداد متغیرها ستون رسم کنید و سپس مرتبا تمامی اعداد درحال تغییر هر کدام از متغیر ها را بنویسید . اینکار باعث می شود که شما مطمئن شوید کدتان درست است و همچنین اگر مشکلی داشتید دلیل آن را متوجه شوید ...
حال دکمه ی F10 به صورت کامپیوتری اینکار را برای شما انجام می دهد . با هر بار زدن دکمه ی F10 یک مرحله ( یک خط ) برنامه جلو می رود و شما می توانید مرتبا مقدار تمام متغیر ها یتان را در جدولی در پایین صفحه ( اگر محلی باشند در جدول local ) ببینید به این ترتیب با دیدن مقادیر متغیرهایتان در هر مرحله می توانید مشکل logical کدتان را به راحتی رفع کنید ... ( به نظر من این روش بهترینه )
اگر در کدتان تابع داشتید ( غیر از main ) از F11 استفاده کنید که در این حالت بهتره .
البته F10 و F11 یک تفاوت مهم با هم دارند که فهمیدنش خیلی ساده است پس به عنوان تمرین به عهده ی خودتون ...
خوشحال میشم کسی تفاوتشون را بگه ...
اگه کسی ننوشت خودم می نویسم ...
به امید فعالیت های شما ...

satan_mori
01-28-2008, 08:49 PM
من با c کار میکنم .برای کامپایل واجرا کردن برنامه نوشته شده باید چی کار کنم؟
با تشکر.

mohammad6006
01-29-2008, 07:44 PM
من با c کار میکنم .برای کامپایل واجرا کردن برنامه نوشته شده باید چی کار کنم؟
با تشکر.

اینم یه راهنمائی که امید جان همون صفحه اول لطف کردن منم اول بلد نبودم الان دارم با کتاب و این مثالا راه میفتم



ابتدا به سربرگ New رفته و گزینه ی New Project را انتخاب می کنید سپس در سمت چپ Win32 را انتخاب می کنید و از سمت راست هم Win32 Console Application , در قسمت Name هم یک نام می نویسید و OK می کنید سپس Next را میزنیم و بعد از آن Empty Project را تیک کرده و Finish می کنیم بعد از آن از Project باز شده روی Source Files کلیک راست کرده و از گزینه ی Add قسمت New Item را بر می گزینیم آنگاه در سمت چپ Code و در سمت راست ++C فایل که در داخل پرانتز (cpp.) است و سپس در قسمت Name هم نام دلخواه خود وارد می کنید و در پایان Add را می زنیم ...
لطفا هر سوال دیگری دارید باز هم مطرح نمایید ...

Behrooz_Ice
01-29-2008, 08:51 PM
فردا بازهم می ذارم ...
البته اگه بچه ها یک تلاشی بکنن ...
thumbsup:ii:-S:);):cool:cigar:plo1ad

امید جان user شما به علت زحمتی که کشیدی و فعالیت مفیدی که داشتی تبدیل به members شد. ایشالا تا چند وقت آینده به درجات بالاتر هم ارتقا پیدا کنی.

موفق باشی

ERroR
01-29-2008, 10:16 PM
امید جان user شما به علت زحمتی که کشیدی و فعالیت مفیدی که داشتی تبدیل به members شد. ایشالا تا چند وقت آینده به درجات بالاتر هم ارتقا پیدا کنی.

موفق باشی

ممنون حاجی ..
کار درست و به جایی بود . منم ایشالا از 15 بهمن می خوام به جمع دوستان این تاپیک بپیوندم ..
کلا ++C یه چیز دیگست

0261
01-30-2008, 12:58 AM
کد هایی که با C نوشته میشه پسوندشون هم C. است و کد های ++C پسوندشان cpp. می باشد برای تبدیل این کد ها می توان پسوند این ها را به c. تغییر داد یا کد را در کامپایلر C کپی نمود اما از من به شما نصیحت : کامپایلر ++C را تهیه کن به خصوص Microsoft Visual C++ 2005 Express Edition

thumbsup:cool::p:ii:x:)

اميد جان منم تبريك بهت ميگم .
اميدوارم كه فعاليتهات توي فروم هر روز بهتر از ديروز باشه

ايشالله پرايوتيت

omid55
01-30-2008, 04:30 PM
بهروزجان خیلی خیلی خیلی ممنونم ...
من مستحق این همه محبت نبودم ...
تمام سعیم رو میکنم تا شما و همه ی بچه ها را راضی نگه دارم ...
از 0261 و ERROR و mohammad6006 و ... سایر بچه ها هم متشکرم ...
thumbsup:cool::p:x

omid55
01-30-2008, 07:14 PM
بریم سر آموزشهای امروز ...
:cool:

omid55
01-30-2008, 07:33 PM
سازمانهای کنترلی :

سازمان کنترلی for : به کمک این سازمان می توان اجرای تعدادی از دستورات را تکرار نمود ولی این تکرار با توجه به شرایط مشخص
شده در سازمان for تعیین خواهد شد . فرم کلی :
for(عبارت1;عبارت2;عبارت3)
{
statement1;
statement2;
statement3;
.
.
.
}

که به جای statement ها دستورات مورد نظرتون رو می گذارید و عبارت 1 مقدار اولیه ی شمارنده و عبارت 2 شرط اجرای سازمان
و عبارت 3 هم گام تغییر شمارنده است چنانچه تنها یک دستور در سازمان for قرار میگیرد میتوان از نوشتن آکولاد باز و بسته خودداری
کرد طبیعتا لازم است در صورتی که بیش از یک دستور داشتید باید ابتدا و انتهای حلقه با آکولادهای باز و بسته مشخص گردد .
چنانچه عبارت 2 نوشته نشود کامپایلر آن را True در نظر میگیرد و در این صورت در یک حلقه ی بی پایان می افتد . همچنین اگر عبارت 2
یا همان شرط همیشه صحیح باشد باز هم برنامه ی شما در یک loop بی پایان می افتد . اگر شرط غلط باشد اصلا وارد حلقه نمی شود ...
پس اگر برنامه را اجرا کردید و دیدید که برنامه خروجی به شما نمی دهد و در عین حال در حال محاسبه هم هست فورا به شرط حلقه یک نگاهی
بیندازید ....
حلقه های for می توانند تو در تو هم باشند ( مثال از حلقه های for در برنامه های صفحات اولیه ی تاپیک فراوان هست )

از من به شما نصیحت اگر می توانید یک کد را با حلقه های مختلف بنویسید و یکی از آنها هم for است ( یعنی اگر می توانید آن کد را
با for بنویسید ) حتما for را به بقیه ترجیح دهید و از for استفاده نمایید چون هم خواندن آن کد برای مخاطب ساده تر می شود هم امکان
اشتباه کم می شود و کد کاملا شفاف و روشن می گردد )

omid55
01-30-2008, 07:37 PM
مخاطبان این تاپیک 2 گروه هستند :
1- کسانی که اصلا برنامه نویسی به زبان C++ را بلد نیستند .
2- کسانی که برنامه نویسی به زبان C++ را بلد هستند ولی نه زیاد و آمده اند که در این تاپیک بهتر بیاموزند و قدرت کد نویسی آنها بیشتر
شود .

من می بایست هر 2 گروه را راضی نگه دارم . آموزش هایی که در این تاپیک گذاشته ام و می گذارم و ان شاء الله باز هم خواهم گذاشت
برای گروه اول است که خیلی خیلی ابتدایی و بنیادی است و به کمک آنها بچه ها راه می افتند و بعد با مثال ها به صورتی عملی تر به
یادگیری هرچه بیشتر این زبان می پردازند . اما برای گروه دوم من سعی می کنم هر چند روز یکبار یک سوال جالب پیدا کنم و بگذارم
تا بچه ها حل کرده و کدش را روی سایت upload کنند تا آنها هم راضی گردند اگر هیچ کس احیانا سوال رو حل نکرد ( که همچین چیزی
غیر ممکنه ) خودم کدش رو می ذارم ( مگه میشه کسی IQ اش از منم کمتر باشه !!!!!!!!!!! )

omid55
01-30-2008, 07:41 PM
سوال امروز خیلی خیلی ساده است ( چون اولشه با سوال های ساده شروع میکنیم )( سوال ACM بوده )

تراش چوبها :

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

مدت زمان upload کردن کد جواب 3 روز ...

omid55
01-30-2008, 07:54 PM
اگه بچه ها جوابش رو سریعتر بذارید حتما باز هم از این سوالها می ذارم ...
:cool:thumbsupcigar;):p:rolleyes::x::)naughty

ERroR
01-30-2008, 08:16 PM
اگه بچه ها جوابش رو سریعتر بذارید حتما باز هم از این سوالها می ذارم ...
:cool:thumbsupcigar;):p:rolleyes::x::)naughty
شما سعی کن مبتدی بزاری ..
برای اون عده که تازه می خواند شروع کنند ...!!!
یا یه کاری کن ( با حمایت خوده من )
یه تاپیک دیگه بزن .. قدم به قدم آموزش بده به زبان ساده واسه کسایی که می خواند تازه شروع کنند ( چون این مطالب رو اکثر کتاب ها دارند .. ما می خواهیم روان باشه مطالب ..)
یا علی
-------
اولین کار تو برنامه نویسی اینه که برنامه نویس باید بتونه برنامه رو به صورت فلوچارت بیاره رو کاغذ ( که بیشترشون نمی تونند
) . پس اولین کاری که می تونی انجام بدی این هست که بیای روی فلوچارت کار کنی ( من نمیدونم سطح علمی تون در چه حدی هست اما کلی می گم) .
بعدش میای رو مفاهیم برنامه نویسی کار می کنی و اینکه چرا برنامه می نویسیم و ...!!!!
فعلا این ها رو داشته باش تا بعد ..
در ضمن اگه خواستی می تونم به مرور پیشرف زمان پست های این تاپیک رو منتقل کنم رو اون یکی ( با پیشرفت مطالب)
--------
در ضمن اعضای خصوصی ( اعضای فعال سایت ) هم انتظار داریم در این ضمینه فعالیت کنند ..!!! خیلی وقتی فعالیتی ندیدیم ازشون

omid55
01-31-2008, 08:50 AM
شما سعی کن مبتدی بزاری ..
برای اون عده که تازه می خواند شروع کنند ...!!!
یا یه کاری کن ( با حمایت خوده من )
یه تاپیک دیگه بزن .. قدم به قدم آموزش بده به زبان ساده واسه کسایی که می خواند تازه شروع کنند ( چون این مطالب رو اکثر کتاب ها دارند .. ما می خواهیم روان باشه مطالب ..)
یا علی
-------
اولین کار تو برنامه نویسی اینه که برنامه نویس باید بتونه برنامه رو به صورت فلوچارت بیاره رو کاغذ ( که بیشترشون نمی تونند
) . پس اولین کاری که می تونی انجام بدی این هست که بیای روی فلوچارت کار کنی ( من نمیدونم سطح علمی تون در چه حدی هست اما کلی می گم) .
بعدش میای رو مفاهیم برنامه نویسی کار می کنی و اینکه چرا برنامه می نویسیم و ...!!!!
فعلا این ها رو داشته باش تا بعد ..
در ضمن اگه خواستی می تونم به مرور پیشرف زمان پست های این تاپیک رو منتقل کنم رو اون یکی ( با پیشرفت مطالب)
--------
در ضمن اعضای خصوصی ( اعضای فعال سایت ) هم انتظار داریم در این ضمینه فعالیت کنند ..!!! خیلی وقتی فعالیتی ندیدیم ازشون

دوست عزیز و مدیر محترم , ERroR جان صحبت شما کاملا متین است اما من در صفحات ابتدایی این تاپیک به صورت خیلی خیلی ساده شده درباره ی زبان ++C و کد نویسی با آن نوشته ام و هر چند پست یکبار هم آموزشی بسیار ساده و پایه ای می گذارم تا بچه ها راه بیافتند ( همانطور که مثلا چندین پست به صورت کامل در مورد متغییر ها و ویژگی ها ی آنها در همین تاپیک داده ام ) و ان شاء الله آموزشهای بیشتری به کمک دوستان و شما مدیر محترم میذارم ...
اما اگر یک نگاهی به صفحات قبلی تاپیک بیاندازید خواهید دید در قسمت های آموزش هیچ سوال یا پیشنهاد یا نظری ارائه نشده است . من به همین خاطر فکر کردم اگر یک مسابقه هم در این تاپیک راه بیاندازیم بقیه ی بچه های قوی تر هم به این تاپیک رو آورده و آنها هم آموزشهایی بیشتر و بهتر و کاملتر از من میذارند و خیلی ممنون که از من حمایت می کنین و سایر بچه ها رو به کمک من و خدمت بیشتر به سایت فرا میخوانید ...

omid55
01-31-2008, 09:23 AM
خلاصه اگه بچه ها بخواند و مدیرها هم استقبال کنند می تونیم یک مسابقه ی جالب کدنویسی به زبان ++C راه بیاندازیم و اگه نه من جواب این سوال را میذارم و دیگه هم مسابقه ای در این تاپیک قرار نمی دهم ...
هرجور که مایلید ...
thumbsup:cool::p

Azazel
01-31-2008, 10:05 AM
خلاصه اگه بچه ها بخواند و مدیرها هم استقبال کنند می تونیم یک مسابقه ی جالب کدنویسی به زبان ++C راه بیاندازیم و اگه نه من جواب این سوال را میذارم و دیگه هم مسابقه ای در این تاپیک قرار نمی دهم ...
هرجور که مایلید ...
thumbsup:cool::p

من با مسابقه کاملا موافقم!!! البته من پست های قبلی رو نخوندم که سوال گذاشتی یا نه؟؟؟
اما در کل سوالی که میزاری بهتره یه جوری باشه که یه نفر همین آموزش هایی که دادی رو بخونه ، بتونه تو مسابقه شرکت کنه!!!
( بسته به نوع سوال مسابقه و .... جایزه هم داریم )!!!

omid55
01-31-2008, 12:32 PM
من با مسابقه کاملا موافقم!!! البته من پست های قبلی رو نخوندم که سوال گذاشتی یا نه؟؟؟
اما در کل سوالی که میزاری بهتره یه جوری باشه که یه نفر همین آموزش هایی که دادی رو بخونه ، بتونه تو مسابقه شرکت کنه!!!
( بسته به نوع سوال مسابقه و .... جایزه هم داریم )!!!

ازازا جان مرسی از موافقت شما ... :xthumbsup:x

سوال در پست شماره ی 93 هست و سوال ساده ای است اگه بچه ها همه ی مثالها رو دانلود کنن و آموزشها رو هم بخونن و مثالها را جدی یاد بگیرند 5 دقیقه بیشتر وقت لازم نداره ( با اینکه سوال ACM بوده ولی ساده است )
2 روز دیگه هم وقت داره اگه بچه ها بخواند با اجازه ی مدیرها تمدیدش می کنیم ...
اگه بحث جایزه هم باشه بچه ها بیشتر راغب می شند ...
هر جور که صلاح می دونین ...
:cool:thumbsup:ii:p

Azazel
01-31-2008, 12:59 PM
ازازا جان مرسی از موافقت شما ... :xthumbsup:x

سوال در پست شماره ی 93 هست و سوال ساده ای است اگه بچه ها همه ی مثالها رو دانلود کنن و آموزشها رو هم بخونن و مثالها را جدی یاد بگیرند 5 دقیقه بیشتر وقت لازم نداره ( با اینکه سوال ACM بوده ولی ساده است )
2 روز دیگه هم وقت داره اگه بچه ها بخواند با اجازه ی مدیرها تمدیدش می کنیم ...
اگه بحث جایزه هم باشه بچه ها بیشتر راغب می شند ...
هر جور که صلاح می دونین ...
:cool:thumbsup:ii:p

برای سوال های سخت جایزه داریم!

omid55
01-31-2008, 02:14 PM
راستی بچه ها داشت یادم می رفت در مورد کتاب که چند نفر سوال کرده بودید :

نمی خوام تبلیغ کتابی یا کسی را بکنم ( چون سودی برای من ندارد ) اما به نظر من همان طور که قبلا هم اشاره کردم بهترین کتاب برای آموزش زبان ++C کتاب " چگونه با ++C برنامه بنویسیم " یا به عبارتی دیگر " ++How To program C" است که نوشته ی یک پدر و پسر خیلی خیلی مشهور به نام های هاروی ام.دیتل و پال جی.دیتل است و به همین دلیل به کتاب Deitel Deitel شهرت دارد .
به نظر من بهترین ترجمه ی این کتاب ( که با کلی تحقیق و پرس و جو متوجه شده ام ) ترجمه ی " دکتر حسین ابراهیم زاده ی قلزم " است ...

ایشان در دانشگاه مونترال کانادا تدریس می کنند و ترجمه ی بسیار بسیار بسیار خوب و روان و علمی از این کتاب فراهم آورده اند . این کتاب در 2 جلد است به همراه یک CD و این کتاب همه جا گیر می آید ( بگردی پیدا میشه ... )


کل مثالهاش حدود 1 مگابایت است که اگه بچه ها خواستند روی همین تاپیک میذارم ...

ERroR
01-31-2008, 07:54 PM
کل مثالهاش حدود 1 مگابایت است که اگه بچه ها خواستند روی همین تاپیک میذارم ...
dمن از همین کتاب دارم استفاده می کنم ...!!
در ضمن نیکی و پرسش ؟؟

omid55
01-31-2008, 08:59 PM
dمن از همین کتاب دارم استفاده می کنم ...!!
در ضمن نیکی و پرسش ؟؟

اطاعت امر شد ...
اینم کل مثال های کتاب مفید Deitel Deitel :

امیدوارم نهایت استفاده رو ببرید ...


لینک دانلود : [Only registered and activated users can see links]

در ضمن حجم آن هم حدود 644 کیلو بایت است ... ( برای dial up ای ها گفتم ) thumbsup
:cool::p;):x:)

omid55
02-01-2008, 10:46 AM
سوال امروز خیلی خیلی ساده است ( چون اولشه با سوال های ساده شروع میکنیم )( سوال ACM بوده )

تراش چوبها :

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

مدت زمان upload کردن کد جواب 3 روز ...


یعنی هیچکسی نمی خواد این سوالو حل کنه ؟؟؟ :-S:o:-S:o

ERroR
02-01-2008, 11:32 AM
یعنی هیچکسی نمی خواد این سوالو حل کنه ؟؟؟ :-S:o:-S:o
کمی صبر کن امتحانات تموم بشه ..
بعد بیام ببینم چیه این ها ..!!!
یا علی

omid55
02-01-2008, 01:56 PM
کمی صبر کن امتحانات تموم بشه ..
بعد بیام ببینم چیه این ها ..!!!
یا علی

بابا امتحانهای ما که تموم شده هیچی تازه 1 هفته است ترم جدید هم شروع شده ... :o
تازه فردا هم حذف و اضافه است ... :o
پدرمون رو در آوردند ... :-S


در ادامه ی آموزش قبلی هم :

حالا که بحث حلقه های for و حلقه های تو در تو را کردیم یک مثال ساده در مورد آن به سایر مثالهای تاپیک اضافه می کنم ...

مثلث پاسکال خیام :

این برنامه از طریق ورودی یک عدد دریافت می کند که نشان دهنده ی تعداد سطر های مثلث است و سپس برنامه مثلث پاسکال خیام را با تعداد خطوط خواسته شده چاپ می کند ... ( به همین راحتی ) :cool:thumbsup



لینک دانلود : [Only registered and activated users can see links]

omid55
02-01-2008, 02:20 PM
همچنین در مورد مسابقه که در پست شماره ی 93 من خودم 2 روز دیگه کد جوابش رو میذارم ...

ولی خداییش خیلی ساده است ...

جان من یکی از بچه ها بذاره ... :x:-S:o


thumbsup:cool:cigar:p

omid55
02-03-2008, 12:08 AM
یک مثال جدید :


تبدیل همه ی مبناهای مختلف ( حتی بالاتر از 10 ) به همدیگر از دو روش در یک کد :


لینک دانلود : [Only registered and activated users can see links]

omid55
02-03-2008, 12:15 AM
بچه ها ان شاء الله در روزهای آینده که حتما وقت میکنم ادامه ی آموزشها را می ذارم ...:x
ببخشید این چند روزه مشغله زیاده ...:-S
به امید خدا بعدا حتما جبران می کنم ...thumbsup

omid55
02-03-2008, 05:31 PM
این بار خودم جوابش رو می ذارم به امید اینکه یکم به ذهنتون فشار بیارید و سوال های بعدی را حل کنید ... :-S
خداییش بعدا میگند چرا هیچی یاد نمی گیریم ... angryangryangry
ان شاء الله بازم در روزهای آینده آموزشهای بیشتر و کاملتری میذارم ...
شاید بازم سوال با حال گذاشتم ... :ii:ii:ii


جواب سوال مسابقه == > :cool::cool::cool:

لینک دانلود : [Only registered and activated users can see links]

omid55
02-05-2008, 06:38 PM
بچه ها یک سوال تاریخ : " اولین بار چه کسی ++C را اختراع کرد ؟ "
لطفا جوابش رو پست بدید ...
بالاخره یک کد نویس باید بدونه کامپایلرش رو کی طراحی کرده برای اولین بار ...

در مورد آموزشها هم من تا یکی 2 روز دیگه بر میگردم ... thumbsup

ERroR
02-05-2008, 09:53 PM
بچه ها یک سوال تاریخ : " اولین بار چه کسی ++C را اختراع کرد ؟ "
لطفا جوابش رو پست بدید ...
بالاخره یک کد نویس باید بدونه کامپایلرش رو کی طراحی کرده برای اولین بار ...

در مورد آموزشها هم من تا یکی 2 روز دیگه بر میگردم ... thumbsup
جایزم رو بده cigar
c++ : [Only registered and activated users can see links]
سازنده : [Only registered and activated users can see links]
====
امتحاناتم تموم شد ...!!!
فردا از پست اولت شروع می کنم به خوندن

omid55
02-06-2008, 02:46 PM
جایزم رو بده cigar
c++ : [Only registered and activated users can see links]
سازنده : [Only registered and activated users can see links]
====
امتحاناتم تموم شد ...!!!
فردا از پست اولت شروع می کنم به خوندن

ایول Error عزیز ...
دستت درست ...
راستی اسم شما چیه ؟؟؟
اگه هم میشه این مسئولین دانشگاهتون را با دانشگاه آشنا کن شاید اینها هم یکم یاد بگیرن چه جوری میشه به دانشجوها حال بدهند ...
ما 2 هفته است ترم شروع شده و quiz های اولیه از 1 هفته ی دیگه شروع میشه حتی استاد ها امتحان میان ترم رو هم زمانش رو تعیین کردند ...
پدرمون رو دارن در میارن ... ( جات خالیه )


در مورد سوال در تائید لینکهای Error جان :

بیارنه استرااستروپ ( Bjarne Stroustrup ) پدید آورنده ی زبان شیرین ++C است که متولد شهر آرهوس از کشور دانمارک میباشد .
ایشان زبان ++C را به عنوان تز دکترایشان در دانشگاه کمبریج انگلستان ارائه دادند البته اصل این زبان را در کشور آمریکا و در شرکت
معروف AT & T منتشر نمودند . ابتدا چون در سال 1984 این کامپایلر طراحی شد خود بیارنه نامش را C84 نهاد اما پس از مدتی به پیشنهاد همکارش Rick Mascitti نام ++C برای آن انتخاب و مورد تائید قرار گرفته شد .

اینم یکم اطلاعات عمومی برای دوستان کد نویس آشیانه ای گل ... :cool::cool::cool:

ERroR
02-06-2008, 04:19 PM
خواهش ..
اسم من علی هست ..!!!
راستی دوست من من این تمرینات رو دیدیم ..!!
اما با کتابی که من دارم زمین تا اسمان فرق می کنه
از شانس هم این استاد حدود 10 تا تمرین از فصل 2 و 3 و 4 گفته به عنوان پروژه بیارین ..!!
نوشتنش که حوصله می خواد پس برام این تمریناتش رو پیدا کن ..
مترجم هم فکر کنم صاحب الزمانی هست ..
شب دقیق می گم

farzadho
02-06-2008, 04:24 PM
آقا مجموعه سورس کد های c++ سایت planet source code رو که میسشناسید
می تونید آدرس لینک رو واستون بزارم دانلود کنید حدودا 300مگابایت هست
اینم لینک:
[Only registered and activated users can see links]
آقا دانلود نکنید از دست دادید
یه مثالاش اینه!!!!
فایل بانک اکسس رو تو c++ باز کنید!!!!!!!!!!!

واقعا توپه

ERroR
02-06-2008, 05:00 PM
آقا مجموعه سورس کد های c++ سایت planet source code رو که میسشناسید
می تونید آدرس لینک رو واستون بزارم دانلود کنید حدودا 300مگابایت هست
اینم لینک:
[Only registered and activated users can see links]
آقا دانلود نکنید از دست دادید
یه مثالاش اینه!!!!
فایل بانک اکسس رو تو c++ باز کنید!!!!!!!!!!!

واقعا توپه
لینک مستقیم :
[Only registered and activated users can see links]
[Only registered and activated users can see links]

farzadho
02-06-2008, 05:12 PM
لینک مستقیم :
[Only registered and activated users can see links]
[Only registered and activated users can see links]

error جان قربونش اینکه تو همون سایت هم میرفتید همین لینکا بود
مستقیم هم هست واسه اونایی که سرعتشون پایینه
اگه کسی نمیتونه دانلود کنه پیغام بده

ERroR
02-06-2008, 09:57 PM
این طوری گذاشتم که کاربران معطل نشند...
یا علی

Azazel
02-07-2008, 07:48 AM
آفرین همین جوری خوبه ادامه بده
این تایک داره تاپیک خوبی میشه!!!

satanic0098
02-07-2008, 06:05 PM
error جان قربونش اینکه تو همون سایت هم میرفتید همین لینکا بود
مستقیم هم هست واسه اونایی که سرعتشون پایینه
اگه کسی نمیتونه دانلود کنه پیغام بده


سلام

حجم دانلود واسه دایال اپ خیلی خیلی زیاده -اگه امکان داره مجموعه کد های c/c++

رو چند قسمت کن واسه دانلود .(هر قسمت 5 مگابایت باشه کافیه)

omid55
02-08-2008, 05:09 PM
سلام

حجم دانلود واسه دایال اپ خیلی خیلی زیاده -اگه امکان داره مجموعه کد های c/c++

رو چند قسمت کن واسه دانلود .(هر قسمت 5 مگابایت باشه کافیه)


خوب به دلیل اینکه منم Dial Up هستم معذوزم ...
امیدوارم دوستان و سروران زحمت این کار را بکشند ... :x
خدا را شکر یکم داره سرم خلوت میشه ...
ان شاء الله بر میگردم با دست پر ... thumbsup:cool:thumbsup:cool:

farzadho
02-09-2008, 12:05 PM
آپلود کردن این 300 مگ اونم 5 مگابایتی کاره حضرت فیله!!!!
ولی ولی اگه مدیران بخواند و اجازاه بدن من میتونم با سیدی بفرستم واسه بچه ها
البته بازم میگم این چیزی که میگم نه به داره نه به بار فقط باید مدیران سایت تایید کنند

omid55
02-09-2008, 06:13 PM
*** مسابقه ***

یک سوال خیلی ساده :


یک برنامه به زبان ++C بنویسید که دو عدد را با هم جمع کند و جمع آن را چاپ کند ( مانند نمونه )
البته این دو عدد می توانند خیلی بزرگ باشند ( مثلا حتی 100 رقم هم داشته باشند )
این برنامه باید از روی فایل بخواند و بر روی فایل هم بنویسد
یک عدد در ابتدا به عنوان test case میگیرد

خداییش اگه مثالها و آموزشها را بخونید کار 2 دقیقه است ...


َA.in

5
1 2
123 58
99 9
112233445566778899 998877665544332211
4647674645486746748774694753 474867469749643545345345373545345454753454354

َ
و

A.out

Case 1 :
1 + 2 = 3
Case 2 :
123 + 58 = 181
Case 3 :
99 + 9 = 108
Case 4 :
112233445566778899 + 998877665544332211 = 1111111111111111110
Case 5 :
4647674645486746748774694753 + 474867469749643545345345373545345454753454354 = 474867469749643549993020019032092203528149107

بچه ها امیدوارم هر چه زودتر کدش رو بذارید ...
thumbsupthumbsupthumbsup

omid55
02-09-2008, 06:22 PM
بچه ها اینو حل کنید ( خداییش ساده تر از این دیگه نمیشه ) ...
دفعه ی بعدی یک سوال توپ ACM میذارم ...
فقط کدش را آپلود کنید و بذارید روی تاپیک ...:x

قربان هر چی بچه آشیانه ای ... thumbsup:cool:thumbsup:x

farzadho
02-09-2008, 06:45 PM
*** مسابقه ***

یک سوال خیلی ساده :


یک برنامه به زبان ++C بنویسید که دو عدد را با هم جمع کند و جمع آن را چاپ کند ( مانند نمونه )
البته این دو عدد می توانند خیلی بزرگ باشند ( مثلا حتی 100 رقم هم داشته باشند )
این برنامه باید از روی فایل بخواند و بر روی فایل هم بنویسد
یک عدد در ابتدا به عنوان test case میگیرد

خداییش اگه مثالها و آموزشها را بخونید کار 2 دقیقه است ...


َA.in

5
1 2
123 58
99 9
112233445566778899 998877665544332211
4647674645486746748774694753 474867469749643545345345373545345454753454354

َ
و

A.out

Case 1 :
1 + 2 = 3
Case 2 :
123 + 58 = 181
Case 3 :
99 + 9 = 108
Case 4 :
112233445566778899 + 998877665544332211 = 1111111111111111110
Case 5 :
4647674645486746748774694753 + 474867469749643545345345373545345454753454354 = 474867469749643549993020019032092203528149107

بچه ها امیدوارم هر چه زودتر کدش رو بذارید ...
thumbsupthumbsupthumbsup
نگرفتم فقط میخوای دو تا عدد با هم جمع کنه حالا بزرگ یا کوچیک کاره دیگه هم باید انجام بده؟؟؟

omid55
02-09-2008, 07:45 PM
نگرفتم فقط میخوای دو تا عدد با هم جمع کنه حالا بزرگ یا کوچیک کاره دیگه هم باید انجام بده؟؟؟

ببین farzad جان خداییش از این آسونتر دیگه وجود نداره ...
فقط باید دو عدد خیلی خیلی بزرگ رو با هم جمع کنه و در فایل A.out ذخیره کنه ...


سوالهای بعدی خیلی توپتره ... thumbsup
قول میدم ... thumbsup:cool::cool:thumbsup

satanic0098
02-10-2008, 02:42 AM
آپلود کردن این 300 مگ اونم 5 مگابایتی کاره حضرت فیله!!!!
ولی ولی اگه مدیران بخواند و اجازاه بدن من میتونم با سیدی بفرستم واسه بچه ها
البته بازم میگم این چیزی که میگم نه به داره نه به بار فقط باید مدیران سایت تایید کنند

مدیران لطفا پیگیری کنید این موضوع را--و در صورت امکان تایید کنید.

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

lo1ad

ERroR
02-10-2008, 11:09 AM
مدیران لطفا پیگیری کنید این موضوع را--و در صورت امکان تایید کنید.

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

lo1ad
داره روش کار می شه ...!!

Azazel
02-10-2008, 01:21 PM
نگرفتم فقط میخوای دو تا عدد با هم جمع کنه حالا بزرگ یا کوچیک کاره دیگه هم باید انجام بده؟؟؟

راهنمایی : اگر عدد بزرگ باشه overflow میشه ها برای اونجا هم فکر کنین!! .....

omid55
02-10-2008, 06:09 PM
بچه ها خیلی آسونه ها ...
دیگه هیچوقت به این سادگی نمیذارم ...
یکی دوتا سوال ACM توپ جدیدا پیدا کردم حتما در روز های آتی از بچه ها دریغ نمی کنم ... :cool:

ERroR
02-10-2008, 07:56 PM
تاپیک مهم شد ..!!!:x

farzadho
02-10-2008, 08:08 PM
آقا من الگوریتم رو میگم ولی وقته نوشتن ندارم
شما عدد ها رو بصورت رشته میگیرین
بعد از اون شروع به جمع کردن میکنید بدین صورت که عدد ها از سمت راست جمع میشند اینجوری
123456789
123456789
مثلا 9 با 9 جمع میشه و جوابش در آرایه رشته ای و یک رقم نقلی که ایجاد میکنه باید در یک متغیر ذخیره کردیم رو با 8+رقم نقلی+8 جمع کنیم و به همین ترتیب تا پایان کار ادامه میدیم
به همین راحتی

omid55
02-11-2008, 12:10 PM
آقا من الگوریتم رو میگم ولی وقته نوشتن ندارم
شما عدد ها رو بصورت رشته میگیرین
بعد از اون شروع به جمع کردن میکنید بدین صورت که عدد ها از سمت راست جمع میشند اینجوری
123456789
123456789
مثلا 9 با 9 جمع میشه و جوابش در آرایه رشته ای و یک رقم نقلی که ایجاد میکنه باید در یک متغیر ذخیره کردیم رو با 8+رقم نقلی+8 جمع کنیم و به همین ترتیب تا پایان کار ادامه میدیم
به همین راحتی

البته نه به این راحتی که شما فرمودید ...
ولی خداییش خیلی آسونه ...
باید دو تا رشته را بوسیله ی صفرها هم طول کرده و از یک آرایه که مرتبا با خودش و ارقام این دو رشته جمع میشود استفاده کرد ( جمله رو حال کن ... :p )
خلاصه بوسیله ی روش فرزاد جان و راهنمایی این حقیر دیگه امیدوارم یکی کدش را upload کنه ...
خودم فردا حتما upload میکنم ولی اگه میشه یکی امروز بذاره ...
لطفا ....
:cool:thumbsup:cool:

d1l1g3n7
02-11-2008, 06:59 PM
سلام .
دارم روی مسئله کار میکنم.برام سخته چون مبتدی ام:ii
در ضمن یکی از دوستام از من راهنمایی در مورد کتاب خوب برای یادگیری C کرده بود منم بهش گفتم یکی از برنامه نویسهای حرفه ای که میشناسم کتای آقای دیتل رو پیشنهاد میکنه.ام رفته بود ولی کتاب C رو پیدا نکرده بود.بلکه مشتقات C بودن.(منضورم کتاب دقیقآ واسه Cخالی بود) حالا لطف میکنی یه کتاب در حد دیتل رو که به فارسی ترجمه شده رو بهم معرفی کنیthumbsup:).

omid55
02-12-2008, 10:48 PM
سلام .
دارم روی مسئله کار میکنم.برام سخته چون مبتدی ام:ii
در ضمن یکی از دوستام از من راهنمایی در مورد کتاب خوب برای یادگیری C کرده بود منم بهش گفتم یکی از برنامه نویسهای حرفه ای که میشناسم کتای آقای دیتل رو پیشنهاد میکنه.ام رفته بود ولی کتاب C رو پیدا نکرده بود.بلکه مشتقات C بودن.(منضورم کتاب دقیقآ واسه Cخالی بود) حالا لطف میکنی یه کتاب در حد دیتل رو که به فارسی ترجمه شده رو بهم معرفی کنیthumbsup:).

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

اگر میخواهید کتاب دیگری بخوانید که فارسی هم باشه من کتاب های دکتر عین الله جعفر نژاد قمی را ترجیح می دهم ( نمی خوام تبلیغ کنم )
ولی به نظر من خیلی کتابهای ایشون مفیده که هم کتاب برای زبان C و هم برای زبان ++C و هم برای زبان #C دارند که هر کدام را که
بخواهید به راحتی میتونید گیر بیارید ... ( کتابهای مشهوری هستند و در عین حال مفید )

اما یک پیشنهاد دوستانه :
دوست عزیز من تقریبا اغلب زبانها را بلدم و میدانم که کدامیک پایه و بنیاد دیگری است و کدام بهتر و کدام قویتر است . به نظر من ( به عنوان یک دوست با IQ میگو !!! ) اگر شما تصمیم دارید یک زبان را به صورت پایه ای یاد بگیرید و پیشرفت کنید بهتر است با زبان
++C شروع کرده و بعد از کاملا حرفه ای شدن زبانهای #C و Java را بیاموزید اگرچه اگر شما زبان ++C به صورت حرفه ای یاد بگیرید دیگر نیازی به یادگیری زبان دیگری ندارید و همچنین چون زبان C دیگر تقریبا زبان قدیمی است و ++C خیلی بهتر و جدید تر و قوی تر است و اینکه آموزش ++C نیازی به یادگیری C به عنوان پیشنیاز ندارد ...

قربان همه ی بچه های گل آشیانه ... thumbsupthumbsupthumbsup

omid55
02-12-2008, 11:00 PM
همانطور که قول داده بودم :

اینم جواب مسابقه ===>>>
:cool::cool::cool::cool::cool:

( خیلی ساده بود ولی اگه نتونستید حلش کنید حتما دانلودش کنید و کدش رو بخونید ...)
( 1 کیلو بایت بیشتر نیست ... )thumbsup


لینک دانلود : [Only registered and activated users can see links]

Azazel
02-13-2008, 01:44 AM
سلام
امید (omid55) اول از همه خسته نباشی .....
اگر بتونی فایل ها رو attach کنی همین جا که اگر احیانا برای اونجا مشکلی پیش اومد دوستان بتونند از اینجا دانلود کنن خیلی بهتره

etemadi
02-14-2008, 02:30 PM
Omid55 جان دو تا .h كم گذاشتيnaughty
به قول azazel جون همين جا اتچ كني بهتره... آخه الان كلانتر سايت مياد و ...:cool:

==========================
Azazel :
هر کسی بخواد این تاپیک رو به حاشیه بکشه و گند بزنه تو این تاپیک برای همیشه BAN میشه!!!
یه تاپیک درست حسابی بعد عمری تو این آشیانه زده شد ........

omid55
02-14-2008, 02:31 PM
سلام
امید (omid55) اول از همه خسته نباشی .....
اگر بتونی فایل ها رو attach کنی همین جا که اگر احیانا برای اونجا مشکلی پیش اومد دوستان بتونند از اینجا دانلود کنن خیلی بهتره

چشم هر چی بزرگان امر کنند ...
ولی آخه چند تا فایل 1 کیلو بایتی که این حرفها رو نداره ...
اینجوری همیشه یک folder دارم و میبینم که کدومها رو گذاشتم و کدومها رو نذاشتم ...
از این به بعد رو تاپیک upload میکنم ... :cool::p;)

omid55
02-14-2008, 02:44 PM
Omid55 جان دو تا .h كم گذاشتيnaughty
:cool:

دوست عزیز کدها کاملا صحیح می باشند و .h لازم ندارند چون در زیر آنها جمله ی :
using namespace std;
نوشته شده ...
ای کدها برای کامپایلر Microsoft Visual C++ 2005 Express Edition نوشته شده اند ...
اگر شما از کامپایلر VC6 استفاده مینمایید بایستی برای Header ها .h گذاشته و دستور بالا را پاک کنید ... :cool::cool::cool:thumbsupthumbsupthumbsup

omid55
02-15-2008, 12:50 AM
فردا یک سوال جالب ACM و آسون دیگه میذارم ...
امیدوارم که یکی حلش کنه ...
چاکر همه ی بر و بچ آشیانه ... thumbsup:cool::x:p;)

farzadho
02-15-2008, 01:59 PM
سلام امید جان خسته نباشید
اگه اینترنت با سرعت پاییین داری
به نظر من اگه میخوای راحت باشی و بعد بتونی
آموزش ها تو دسته بندی کنی اول آموزش ها تو ورد تایپ کن
بجای این که تو تاپیک بخوای تایپ کنی و تبدیل کن به فایل pdf
و تو سایت آپلود کن اینجوری هم دسته بندی شده و وقتت هم صرفه جویی شده
و نمیخوای با اینترنت dial up زیاد وصل باشی البته نظر با خودته
اینجوری بعد آموزش ها رو در قسمت آموزش های سایت بصورت طبقه بندی شده
میتونی بزاری

omid55
02-15-2008, 05:24 PM
سلام امید جان خسته نباشید
اگه اینترنت با سرعت پاییین داری
به نظر من اگه میخوای راحت باشی و بعد بتونی
آموزش ها تو دسته بندی کنی اول آموزش ها تو ورد تایپ کن
بجای این که تو تاپیک بخوای تایپ کنی و تبدیل کن به فایل pdf
و تو سایت آپلود کن اینجوری هم دسته بندی شده و وقتت هم صرفه جویی شده
و نمیخوای با اینترنت dial up زیاد وصل باشی البته نظر با خودته
اینجوری بعد آموزش ها رو در قسمت آموزش های سایت بصورت طبقه بندی شده
میتونی بزاری

چشم فرزاد جون ...
سعی میکنم ولی خدا شاهده خیلی مشغله دارم ...
پایان ترم + میان ترم زودرس + quiz + ...
سعی می کنم رضایت همه رو جلب کنم ...
مرسی از پیشنهاد ها و راهنمایی های شما دوست عزیز و سایر اعضای گل سایت ...thumbsupthumbsup

omid55
02-15-2008, 05:34 PM
من اومدمممممم ......
بچه ها امروز با یک سوال خیلی ساده و کوتاه و در عین حال جالب اومدم ( البته سوال ACM بوده است ولی خداییش خیلی راحته )
فقط کافیه الگوریتمش رو پیدا کنید ...
اگه میشه از مدیران گل سایت هم یک درخواست داشتم :
لطفا برای این سوال یک جایزه ی کوچک در نظر بگیرید ( درسته سوالش خیلی ساده است اما بالاخره با سوالهای ساده شروع میکنند
دیگه ... )( درست نمیگم ؟؟؟ )( با این کار بچه ها بیشتر ترغیب می شوند )
من هم کمال تشکرم را پیشاپیش تقدیم می کنم ...thumbsup:cool:thumbsup
Mer30

omid55
02-15-2008, 05:41 PM
سوال :

یک برنامه به زبان ++C بنویسید که در ابتدا یک عدد t به عنوان تعداد دفعات ( test case ) دریافت کرده که t<=30 و t>=0 سپس به
ازای هر تست کیس یک عدد n بگیرد . توجه کنید که عدد n می تواند خیلی بزرگ باشد و در واقع در بازه ی زیر قرار می گیرد :
n<=9000000000000000000 و n>=0

سپس در خروجی عددی را چاپ نماید که نشانگر تعداد صفرهای سمت راست عدد n! است یعنی برای هر عدد محاسبه کند که فاکتوریل
آن چند صفر در سمت راستش دارد .
همچنین می بایستی ورودی از فایل A.in و خروجی بر فایل A.out اعمال گردد .
درثانی برنامه می بایستی بدون کوچکترین وقفه ای محاسبات را انجام داده و خروجی را در فایل مذکور ذخیره کند .

خودمونیم خیلی ساده است اگر کسی بنویسه عمرا بیشتر از 25 تا 30 خط نمیشه ...


اینم از ورودی نمونه :

9
3
60
100
1024
23456
8735373
1000000000
9448948948948945
9000000000000000000

واینم خروجی آن :

0
14
24
253
5861
2183837
249999998
2362237237237222
2249999999999996472

ببینم چه میکنید ... thumbsup:cool::cool:thumbsup

omid55
02-16-2008, 04:11 PM
بچه ها کسی نمی خواد یک نظر در مورد الگوریتمش بده ؟
thumbsupnaughty:cool:

omid55
02-18-2008, 09:03 AM
بچه ها حداقل یک نظر بدید ...
خیلی سخته یا خیلی آسونه ؟؟؟
مدیرها کجاند ؟؟؟
مگه قرار نبود برای سوالهای جالب جایزه باشه ...
بچه ها رو ترغیب و تشویق کنین ... ( لطفا )
کدش خیلی کوتاه و آسونه ...
بچه ها یکمی روش فکر کنین , حله ... thumbsup
:cool:cigar:p:ii;)

omid55
02-20-2008, 01:53 PM
نمی دونم چی بگم ؟؟؟
واقعا کسی نتونست حلش کنه ؟؟؟ :o:o:o
پس حتما کدش رو دانلود کنید و کامل بخونید ...
به خاطر فرمایش دوستان و Azazel جان همینجا attach میکنم ... thumbsup
:cool::cool::cool::cool::cool::cool:

3960

اینم لیکنش : [Only registered and activated users can see links]

omid55
02-21-2008, 09:25 AM
ایشالا حتما در آینده سوالهای خیلی بهتر و جالبتری هم میذارم ...
قول میدم ...
دوباره هم آموزشها رو شروع میکنم ...
در همین تاپیک ...
فقط لطفا وقتی سوال یا مسابقه ای مطرح میشه حتی اگه خیلی هم سخته لطفا یکی پست بده و بگه خیلی سخته یا خیلی آسونه من خودم با کمال میل کمکتون می کنم ...
به گونه ای در دفعات بعدی سوال میدم که هم کد نویسی تون تقویت بشه و هم الگوریتمهای جالبی هم بکار برده بشه ...
به فرموده ی دوستان و مدیران محترم هم در این تاپیک Attach میکنم هم لینک میدم ... thumbsupthumbsup

یا حق

omid55
02-22-2008, 01:05 PM
بچه ها این هم یک مثال کامل ولی ساده از کلاسها و طریقه ی تعریف توابع و اشیا در آنها ...
امیدوارم مثمرثمر باشه ...
کد تمام عیاری است ( حدود 210 خط ) اما حجم فایل 2 کیلوبایته ... thumbsup
:cool::cool::cool:

3964

اینم لینک : [Only registered and activated users can see links]

mohammad6006
02-22-2008, 07:24 PM
امید جان منم چند تا سورس برنامه دارم که از سایتهای خارجی برداشتم میخوای اونارو برا تمرین و دانلود بزارم

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

omid55
02-22-2008, 07:38 PM
امید جان منم چند تا سورس برنامه دارم که از سایتهای خارجی برداشتم میخوای اونارو برا تمرین و دانلود بزارم

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

محمد جان نیکی و پرسش ؟
دستت درد نکنه اگه بذاری که خیلی خیلی ممنونت میشم ...
ایشالا بچه ها هم مثل من دانلود می کنند و لذتش رو می برند ...:x
تا باشه از این کارهای آموزشی مناسب باشه ...thumbsup
امیدوارم بچه ها یکم از این محمدجان یاد بگیرند ...:ii

omid55
02-22-2008, 07:59 PM
اینم یک مثال خیلی ساده و ابتدایی از کلاسها ...
در مثال قبلی کلاس فرزند هم داشتیم ...
اما این مثال خیلی ساده تر و قابل فهمتر است ... ( برای مبتدی ها بهتره ) thumbsup
:cool::cool::cool:

3965

اینم لینک : [Only registered and activated users can see links]

omid55
02-22-2008, 08:30 PM
اینم یک مثال برای آرایه ی بدون طول اولیه ( pointer ها ) به همراه کلاس ...
در واقع یک سری را محاسبه و چاپ می نماید ...
:cool::cool::cool:

3966

اینم لینک : [Only registered and activated users can see links]

z3r0_0n3
02-23-2008, 07:39 AM
عرض سلام خدمت اقا امید گل و بغییه دوستان که دارن به تاپیک و فروم حال میدن :x

اقا امید یه سوال :

ببین من تازه یکی دو جلسس میرم کلاس c تو دانشگاه کتاب تدریسمونم : اموزش زبان c نوشته عین الله قمی ویراست 4


ببین این برنامه ها که ما مینویسیم همشون که تو داس اجرا میشن !! پس به چه درد میخورن ؟؟؟ :o
البته قدرت داس وwin 32 رو درک میکنم ولی برنامه ای که قیافه نداشته باشه به درد لای جرز هم نمیخوره :p

ولی درکل بخدا خیلی خیلی برنامه نویسی دوست دارم !!!!:cool: و همیشه در حال تمرین c یا vb هستم


مثلا میگن ویندز رو با همینC نوشتن !! من که باور نمیکنم !!! :o یعنی C اینقدر قدرتمنده ؟


خوب حالا چطوری واسه خود ویندز برنامه بنویسم ؟؟ منظورم اینه که ایا همین دستوراتی که تو نوشتن تحط WIN32 app کاربرد دارن ایا تو MFC APP wizard Exe هم میتونن کار کنن ؟؟؟

مثلا من میخوام یه برنامه ساده بنویسم تا وقتی کاربر رو دکمه command کلیک میکنه بهش یه پیغام بده مثه msgbox تو vb !

ولی هر کاری کردم نشد که نشد !!!!!!!!!!!!!


خواهشا منو روشن کن که چرا اصلا اینجوریه و یه راست نمیان خود MFC APP EXE رو یاد بدن و هی دارن حاشیه میرن به سمت داس ؟؟؟ :-S

omid55
02-24-2008, 10:24 PM
عرض سلام خدمت اقا امید گل و بغییه دوستان که دارن به تاپیک و فروم حال میدن :x

اقا امید یه سوال :

ببین من تازه یکی دو جلسس میرم کلاس c تو دانشگاه کتاب تدریسمونم : اموزش زبان c نوشته عین الله قمی ویراست 4


ببین این برنامه ها که ما مینویسیم همشون که تو داس اجرا میشن !! پس به چه درد میخورن ؟؟؟ :o
البته قدرت داس وwin 32 رو درک میکنم ولی برنامه ای که قیافه نداشته باشه به درد لای جرز هم نمیخوره :p

ولی درکل بخدا خیلی خیلی برنامه نویسی دوست دارم !!!!:cool: و همیشه در حال تمرین c یا vb هستم


مثلا میگن ویندز رو با همینC نوشتن !! من که باور نمیکنم !!! :o یعنی C اینقدر قدرتمنده ؟


خوب حالا چطوری واسه خود ویندز برنامه بنویسم ؟؟ منظورم اینه که ایا همین دستوراتی که تو نوشتن تحط WIN32 app کاربرد دارن ایا تو MFC APP wizard Exe هم میتونن کار کنن ؟؟؟

مثلا من میخوام یه برنامه ساده بنویسم تا وقتی کاربر رو دکمه command کلیک میکنه بهش یه پیغام بده مثه msgbox تو vb !

ولی هر کاری کردم نشد که نشد !!!!!!!!!!!!!


خواهشا منو روشن کن که چرا اصلا اینجوریه و یه راست نمیان خود MFC APP EXE رو یاد بدن و هی دارن حاشیه میرن به سمت داس ؟؟؟ :-S


اولا خیلی ببخشید دوست عزیز که جوابتون یکمی دیر شد . ( خدا شاهده سرم شلوغه ولی با این همه تا حالا نشده هر سوال رو بیشتر از حداکثر یک روز بذارم بدون جواب بمونه تو این تاپیک )

ثانیا خیلی ممنون که این سوال را مطرح کردید چون واقعا مسئله ی مهم و جالبی است .


تقریبا 90% کدنویسهایی که یک زبانهایی مانند Visual Basic یا Delphi یا ... را بلد هستند و یا حداقل یکم باهاش کار کرده اند وقتی برای اولین بار با زبان C و یا ++C روبرو می شوند و قصد یادگیری آن را می کنند خیلی از این زبان و محیط آن زده می شوند و چون به خصوص برنامه های ساده ی آن در CMD باز می شود از قیافه ی برنامه بدشان می آید همچنین دستورهایش هم کاملا با VB یا Delphi یا Pascal یا ... خیلی متفاوت است . بر خلاف زبان ++C مثلا زبان VB از همان ابتدا در محیط گرافیکی Windows یا هر سیستم عامل دیگر کار می کند . ( بین خودمون هم باشه منم اولین بار از همین موضوع اجرا در Dos بدم اومد اما بعدها ... )thumbsup


اطلاعات و خبرهایی که از زبان ++C شنیده اید حقیقت دارد . Windows و خیلی از برنامه ها و حتی بازیهای با کیفیت و خوش گرافیکی مشهور را با آن نوشته اند . برای مثال بازی به یاد ماندنی و توپ Max Payne رو حتما دیده اید اگر به قسمت Credits بروید در پایان لیست اسامی نوشته شده : " Coded By C++ " یک همچین بازی با حال و پرفروشی خود حاکی از قوی بودن و کامل بودن زبان ++C است .

در زبان ++C چون همه ی مسائل بنیادی و ریشه ای است کامپایلر به گونه ای طراحی شده است که شما بتوانید بوسیله ی چند class و توابع مخصوص و چند Library ویژه هر کاری بکنید . در واقع زبان VB خیلی ساده تر و کار با آن راحت تر است اما شما در زبان ++C می توانید خودتان Command Button یا هر فیلد دلخواه را به صورت گرافیکی با هر قابلیت مورد نظرتان از پایه و بنیاد بسازید . ( البته کمی مشکل است )

در واقع شما قادرید بوسیله ی Header های به خصوص موسوم به MFC که توسط شرکت Microsoft طراحی شده است و توابع موجود در آنها و کلاسهای مورد نظر هر شکل گرفیکی در محیط سیستم عامل را در برنامه ی خودتان بگنجانید و برای آنها کد بنویسید و برنامه های زیبا تولید کنید .

زبان ++C در وب هم خیلی مورد استفاده قرار می گیرد مثلا در فیلدهایی که Username و Password می طلبند و بعد اجازه ی Login می دهند یا اعلام Wrong Password می کنند به وفور می توان از زبان ++C استفاده کرد و ... ( اگر وقت کردم یک برنامه ی ++C تحت وب می نویسم و در تاپیک میذارم تا بفهمید که ++C یک چیز دیگس ... ) :cool::cool::cool:

Header ها و کلاسهای MFC در سایت Microsoft یا در سایت :

[Only registered and activated users can see links]

می توان یافت کرد .

امیدوارم کامل توضیح داده باشم در پستهای بعدی هم کمی به این موضوع خواهم پرداخت ...

omid55
02-24-2008, 10:34 PM
این هم یک مثال برای اجرا در حالت گرافیکی Windows :
( البته ربطی به کدنویسی مقدماتی نداره و فقط برای این است که خدای نکرده نگند : نتونست یک کد هم برای مثال از این موضوع در جواب دوستمون بذاره ... ) ( از مبتدی ها معذرت و پوزش می طلبم ... ) thumbsup
( راستی حتما باید MDSN روی سیستم عامل نصب باشه یا اینکه Header های MFC به طور کامل در شاخه ی include موجود باشد )
:cool::cool::cool:


3973


لینک دانلود : [Only registered and activated users can see links]

omid55
02-24-2008, 10:39 PM
اینم یک pdf یکم بزرگ که خودم هم هنوز download نکرده ام ولی به نظر جالبه ...
لطفا یکی download کنه و روی یک Host خوب یا روی آشیانه بذاره تا بچه ها مرتب اسم ... و ... RapidShare رو مرتبا نبینند ...
پیشاپیش Mer30

لینک دانلود pdf آموزش کار با کلاسهای MFC :
:cool::cool::cool:


[Only registered and activated users can see links]

z3r0_0n3
02-24-2008, 11:09 PM
اولا خیلی ببخشید دوست عزیز که جوابتون یکمی دیر شد . ( خدا شاهده سرم شلوغه ولی با این همه تا حالا نشده هر سوال رو بیشتر از حداکثر یک روز بذارم بدون جواب بمونه تو این تاپیک )

ثانیا خیلی ممنون که این سوال را مطرح کردید چون واقعا مسئله ی مهم و جالبی است .


تقریبا 90% کدنویسهایی که یک زبانهایی مانند Visual Basic یا Delphi یا ... را بلد هستند و یا حداقل یکم باهاش کار کرده اند وقتی برای اولین بار با زبان C و یا ++C روبرو می شوند و قصد یادگیری آن را می کنند خیلی از این زبان و محیط آن زده می شوند و چون به خصوص برنامه های ساده ی آن در CMD باز می شود از قیافه ی برنامه بدشان می آید همچنین دستورهایش هم کاملا با VB یا Delphi یا Pascal یا ... خیلی متفاوت است . بر خلاف زبان ++C مثلا زبان VB از همان ابتدا در محیط گرافیکی Windows یا هر سیستم عامل دیگر کار می کند . ( بین خودمون هم باشه منم اولین بار از همین موضوع اجرا در Dos بدم اومد اما بعدها ... )thumbsup


اطلاعات و خبرهایی که از زبان ++C شنیده اید حقیقت دارد . Windows و خیلی از برنامه ها و حتی بازیهای با کیفیت و خوش گرافیکی مشهور را با آن نوشته اند . برای مثال بازی به یاد ماندنی و توپ Max Payne رو حتما دیده اید اگر به قسمت Credits بروید در پایان لیست اسامی نوشته شده : " Coded By C++ " یک همچین بازی با حال و پرفروشی خود حاکی از قوی بودن و کامل بودن زبان ++C است .

در زبان ++C چون همه ی مسائل بنیادی و ریشه ای است کامپایلر به گونه ای طراحی شده است که شما بتوانید بوسیله ی چند class و توابع مخصوص و چند Library ویژه هر کاری بکنید . در واقع زبان VB خیلی ساده تر و کار با آن راحت تر است اما شما در زبان ++C می توانید خودتان Command Button یا هر فیلد دلخواه را به صورت گرافیکی با هر قابلیت مورد نظرتان از پایه و بنیاد بسازید . ( البته کمی مشکل است )

در واقع شما قادرید بوسیله ی Header های به خصوص موسوم به MFC که توسط شرکت Microsoft طراحی شده است و توابع موجود در آنها و کلاسهای مورد نظر هر شکل گرفیکی در محیط سیستم عامل را در برنامه ی خودتان بگنجانید و برای آنها کد بنویسید و برنامه های زیبا تولید کنید .

زبان ++C در وب هم خیلی مورد استفاده قرار می گیرد مثلا در فیلدهایی که Username و Password می طلبند و بعد اجازه ی Login می دهند یا اعلام Wrong Password می کنند به وفور می توان از زبان ++C استفاده کرد و ... ( اگر وقت کردم یک برنامه ی ++C تحت وب می نویسم و در تاپیک میذارم تا بفهمید که ++C یک چیز دیگس ... ) :cool::cool::cool:

Header ها و کلاسهای MFC در سایت Microsoft یا در سایت :

[Only registered and activated users can see links]

می توان یافت کرد .

امیدوارم کامل توضیح داده باشم در پستهای بعدی هم کمی به این موضوع خواهم پرداخت ...

عرض سلام خدمت اقا امید گل استاد دوست داشتنی :x


.واقعا روشنم کردی

چون میدونی تا حالا من یه چیز دیگه فکر میکردم که واقعا خوب شد فهمیدم

من فکر میکردم این زبان c تحت win32 فرقی با محیط MFC نداره فقط یه خورده که یاد بگیرم میتونم با همین دستورات تو MFC هم برنامه نویسی کنم ! پس نگو ای دل قافل که کجای کارم :-S

خوب حالا به نظرت کلاس C رو تو دانشگاه ادامه بدم یا نرم ؟؟

به نظرت C به درد میخوره یا نه ؟ چون همونطور که گفتم من از محیط کنسول خوشم نمیاد خیل خشکه ولی قدرتشو قبول دارم thumbsup و علاقه شدیدی به محیط ویژوال دارم

حالا به نظرت چی کار کنم ؟ این کلاس رو ادامه بدم یا یه راست برم کلاس C++ یا ...............


حالا درضمن ؟ من تاحالا با هیچ گونه زبان برنامه نویسی هم کار نکردم به نظرت خوبه که با همین C شروع کنم یا از برنامه های سبکتر که راحتر باشن شروع کنم مثه پاسکال ؟

حالا هرچی شما بگید من تابع امرم ولی به نظر خودم سنگ مفت گنجیشک مفت برم بهتره :-S

mohammad6006
02-25-2008, 11:17 AM
امید جان من چند تا سورس c دارم ولی وقتی میخوام تو c++ یعنی همون visual 2005 اجرا کنم ارور میده

نمونشم پیوست میکنم اگه یکیشو تبدیل کنی بقیه سورسها رو خودم تبدیل میکنم
البته زبان نوشته هاش ترکیه

z3r0_0n3
02-26-2008, 01:09 PM
سلام امید جان :x

هنوزم منتظر جواب سوالات بالام

شرمنده که اذیت میشی ولی خدایی خیلی ذهنمو مشغول کردن ! :-S


درضمن یه سوال جدید هم که واسم پیش اومده :


فرق بین نرمفزار های C# .NET با C# معمولی چیه ؟

و همچنین فرق بین C++.NET با c++ که تو مجموعه Microsoft viual stdio هست چیه ؟ :-S



البته فرق بین vb6 معمولی با اینی که تو 2005 یا همون .net هست هست رو تا جایی که میدونم اینه که درکل برای نوشتن یه برنامه خیلی از کارها اسانتر میشه و کد نویسیها کمتر میشه درکل برنامه نویس رو راحتر میکنه :)

به هرحال دمت گرم اگه توضیحات دیگه ای بدی و به سوالات بالا هم خواهشا جواب بده امید جان

omid55
02-27-2008, 04:37 PM
عرض سلام خدمت اقا امید گل استاد دوست داشتنی :x


.واقعا روشنم کردی

چون میدونی تا حالا من یه چیز دیگه فکر میکردم که واقعا خوب شد فهمیدم

من فکر میکردم این زبان c تحت win32 فرقی با محیط MFC نداره فقط یه خورده که یاد بگیرم میتونم با همین دستورات تو MFC هم برنامه نویسی کنم ! پس نگو ای دل قافل که کجای کارم :-S

خوب حالا به نظرت کلاس C رو تو دانشگاه ادامه بدم یا نرم ؟؟

به نظرت C به درد میخوره یا نه ؟ چون همونطور که گفتم من از محیط کنسول خوشم نمیاد خیل خشکه ولی قدرتشو قبول دارم thumbsup و علاقه شدیدی به محیط ویژوال دارم

حالا به نظرت چی کار کنم ؟ این کلاس رو ادامه بدم یا یه راست برم کلاس C++ یا ...............


حالا درضمن ؟ من تاحالا با هیچ گونه زبان برنامه نویسی هم کار نکردم به نظرت خوبه که با همین C شروع کنم یا از برنامه های سبکتر که راحتر باشن شروع کنم مثه پاسکال ؟

حالا هرچی شما بگید من تابع امرم ولی به نظر خودم سنگ مفت گنجیشک مفت برم بهتره :-S


بازم معذرت می خوام که سوالها رو دیر جواب میدم ... )):
واقعا سرم شلوغه ( کلی بدبختی ریخته روی سرم )
خلاصه اگه یک وقت جواب سوالات یا صحبتها دیر میشه لطفا خرده نگیرید و هم این امر را به عنوان بیشعوری یا بی تفاوتی ام نذارید ...
سینا جان , دوست من به نظر من همه ی زبونها خوبند . اگه هر زبونی رو یادبگیری به نفعت است اما اصل کدنویسی به بازبودن ذهن و تفکر و حدس زدن خوب الگوریتم است ( البته زبون هم بی تاثیر نیست ) . اگر شما بتونید در هر مورد و هر سوال مطرح شده یک نظر بدهید و یک راه حل ارائه بدهید و یک روش پیدا کنید یک کدنویس خوب هستید ( شک نکنید ) که اینکار را در آموزش زبونها بوسیله مبحث مهمی به نام فلوچارت یاد می دهند . فلوچارت مزیتی که دارد مستقل از زبان است یعنی وقتی شما توانستید الگوریتم یک برنامه رو در حالت فلوچارت طراحی کنید میتونید اونرا به تمام زبان ها هم کد کنید . البته همه ی افراد فلوچارت را چیز مسخره و زایدی می انگارند ولی باید گفت که با تمرین روی همین موضوع به نظر وقت گیر و مزاحم می توان کدنویسی را شروع کرد و الگوریتم نویسی را هرچه بیشتر تقویت کرد . به خاطر همینه که اگر کسی با فلوچارت شروع کرد و بعد کدنویسی را با یک زبون خوب به صورت پایه ای و بنیادی ادامه داد از آن وقت به بعد یادگیری سایر زبونها خیلی سخت نیست . تفاوت زبانها با هم فقط در شکل کدنویسی و دستوراتشان است و اگر فقط یکم وقت روی هر زبونی بذارید می تونید دستوراتشون رو یاد بگیرید و از اونجا به بعد دوباره حدس الگوریتم و روش حل مسئله میاد وسط ...
اما در مورد زبان خوب برای شروع :
اگه پستهای قبلی خود من رو مطالعه بفرمایید متوجه میشید که در این مورد کامل توضیح داده ام ...
ولی به خاطر گل روی شما و آشیانه ای ها یک گریز دیگر هم میزنم :
ببنید به نظر من بهتره با زبانی شروع کنید که اولین جدید باشه ثانیا قوی باشه و معروف ( تا بتوان در موردش همه جا مطلب و کد پیدا کرد )
اگه از قیافه ی console خوشتون نمیاد به نظر من بهترین گزینه فقط C# است . من شخصا عاشقشم و به نظر من قوی ترین زبونه ( به نظر من حقیر ... ( به زبونهای دیگه توهین نشه ) ) قیافه ی Windows ای هم داره ولی شما برای اینکه به C# برسید باید پله ی C و ++C را حتما گذرانده باشید . البته زبان C خیلی خوبه ولی زبان ++C هم خیلی کاملتره به خصوص .NET اش که عالیه ...
البته در این تاپیک 100 دفعه گفتم سعی کنین از کامپایلر Microsoft Visual C++ 2008 Express Edition یا حداقل Microsoft Visual C++ 2005 Express Edition استفاده کنید . خوبیه ++C اینه که برای شروع کردن باهاش نیازی نیست که زبون C را بلد باشید ( البته اگه بلد باشید بهتره ) . به نظر من یک راست برید سر وقت ++C خیلی بهتره اما اگه کلاستون آموزش C هم هست اونرا از دست ندید همونطور که گفتم زبون زبونه ( بالاخره کلاس C هم کلی صفا داره )
در ورژن .NET اولا به مقدار خیلی زیادتری Library ها به خصوص در بخش MDSN اضافه شده و کدنویسی برای وب ( در کنار زبان Java Script ) خیلی گسترده تر شده و به نظر من اگه کسی ++C را اصولی یاد بگیره هیچ زبون دیگه ای نیاز نداره .
بازم میگم سعی کنید همیشه در حال یادگیری باشید ( حالا هر چی ... )
سعی میکنم بازم بعدا در مورد کامپایلرهای مختلف توضیح بدم ... thumbsup:cool::x

omid55
02-27-2008, 04:44 PM
راستی اینم اضافه کنم که :
همیشه سعی کنید که با زبونی کد بنویسید که شئ گرا ( Object Oriented ) باشه چون هم شکل برنامه زیبا تر میشه هم خیلی خیلی قابل فهم ...
مثلا من خودم یادمه که با VB شروع کردم اما الان شروع با ++C را توصیه میکنم ... ( البته من کی باشم که بخوام توصیه بکنم !!! )
حتما در مورد شئ گرایی و لزوم آن در کدنویسی پستهایی مینویسم ...
کاملا مفهومش را روشن میکنم ...
قول میدم ...

z3r0_0n3
02-27-2008, 09:02 PM
بازم معذرت می خوام که سوالها رو دیر جواب میدم ... )):
واقعا سرم شلوغه ( کلی بدبختی ریخته روی سرم )
خلاصه اگه یک وقت جواب سوالات یا صحبتها دیر میشه لطفا خرده نگیرید و هم این امر را به عنوان بیشعوری یا بی تفاوتی ام نذارید ...
سینا جان , دوست من به نظر من همه ی زبونها خوبند . اگه هر زبونی رو یادبگیری به نفعت است اما اصل کدنویسی به بازبودن ذهن و تفکر و حدس زدن خوب الگوریتم است ( البته زبون هم بی تاثیر نیست ) . اگر شما بتونید در هر مورد و هر سوال مطرح شده یک نظر بدهید و یک راه حل ارائه بدهید و یک روش پیدا کنید یک کدنویس خوب هستید ( شک نکنید ) که اینکار را در آموزش زبونها بوسیله مبحث مهمی به نام فلوچارت یاد می دهند . فلوچارت مزیتی که دارد مستقل از زبان است یعنی وقتی شما توانستید الگوریتم یک برنامه رو در حالت فلوچارت طراحی کنید میتونید اونرا به تمام زبان ها هم کد کنید . البته همه ی افراد فلوچارت را چیز مسخره و زایدی می انگارند ولی باید گفت که با تمرین روی همین موضوع به نظر وقت گیر و مزاحم می توان کدنویسی را شروع کرد و الگوریتم نویسی را هرچه بیشتر تقویت کرد . به خاطر همینه که اگر کسی با فلوچارت شروع کرد و بعد کدنویسی را با یک زبون خوب به صورت پایه ای و بنیادی ادامه داد از آن وقت به بعد یادگیری سایر زبونها خیلی سخت نیست . تفاوت زبانها با هم فقط در شکل کدنویسی و دستوراتشان است و اگر فقط یکم وقت روی هر زبونی بذارید می تونید دستوراتشون رو یاد بگیرید و از اونجا به بعد دوباره حدس الگوریتم و روش حل مسئله میاد وسط ...
اما در مورد زبان خوب برای شروع :
اگه پستهای قبلی خود من رو مطالعه بفرمایید متوجه میشید که در این مورد کامل توضیح داده ام ...
ولی به خاطر گل روی شما و آشیانه ای ها یک گریز دیگر هم میزنم :
ببنید به نظر من بهتره با زبانی شروع کنید که اولین جدید باشه ثانیا قوی باشه و معروف ( تا بتوان در موردش همه جا مطلب و کد پیدا کرد )
اگه از قیافه ی console خوشتون نمیاد به نظر من بهترین گزینه فقط C# است . من شخصا عاشقشم و به نظر من قوی ترین زبونه ( به نظر من حقیر ... ( به زبونهای دیگه توهین نشه ) ) قیافه ی Windows ای هم داره ولی شما برای اینکه به C# برسید باید پله ی C و ++C را حتما گذرانده باشید . البته زبان C خیلی خوبه ولی زبان ++C هم خیلی کاملتره به خصوص .NET اش که عالیه ...
البته در این تاپیک 100 دفعه گفتم سعی کنین از کامپایلر Microsoft Visual C++ 2008 Express Edition یا حداقل Microsoft Visual C++ 2005 Express Edition استفاده کنید . خوبیه ++C اینه که برای شروع کردن باهاش نیازی نیست که زبون C را بلد باشید ( البته اگه بلد باشید بهتره ) . به نظر من یک راست برید سر وقت ++C خیلی بهتره اما اگه کلاستون آموزش C هم هست اونرا از دست ندید همونطور که گفتم زبون زبونه ( بالاخره کلاس C هم کلی صفا داره )
در ورژن .NET اولا به مقدار خیلی زیادتری Library ها به خصوص در بخش MDSN اضافه شده و کدنویسی برای وب ( در کنار زبان Java Script ) خیلی گسترده تر شده و به نظر من اگه کسی ++C را اصولی یاد بگیره هیچ زبون دیگه ای نیاز نداره .
بازم میگم سعی کنید همیشه در حال یادگیری باشید ( حالا هر چی ... )
سعی میکنم بازم بعدا در مورد کامپایلرهای مختلف توضیح بدم ... thumbsup:cool::x

سلام اقا امید گل

واقعا ترکوندی :x

خیلی خیلی ممنون امید جان که اینقدر قابل میدونی و جواب میدی :x


پس به این نتیجه رسیدم که C رو فول یاد بگیرم یا حداقل خوب یا بگیرم و C++ رو شروع کنم البته محیط ویژالش رو بعد اگه خدا خواست C#.NET رو شروع میکنم ;) چون خیلی ازش شنیدم میگن هم تو وب کاربرد داره و هم تو ویندز ! پس باید واقعا مفید باشه lo1ad

درضمن فرق بین win 32 console app و win 32 applaction تو چیه ؟

البته میدونم که consol همون محیط داس و اون یکی دیگه هم محیط ویژوال ویندز !

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

و سوالی که میخوام بپرسم : دستوراتی که تو win 32 consol کار برد داره ایا تو app هم یکی هست ؟؟

امیدوارم دقیقا منظورمو گرفته باشید :)



و خدایی خیلی خیلی شرمندم که اینقدر اذیت میشین ولی چه کنیم که باید یه ادم بزرگتر یا همون استاد دستمون رو بگیره و راهنماییمون بکنه یا به عبارتی راه رو از چاه بهمون نشون بده ;;):x

omid55
03-07-2008, 06:14 PM
دوست عزیزم سینا جان و سایر دوستان گل سایت از همه معذرت می خواهم که این چند روز نبودم قول میدم در روزهای آتی جبران کنم همین امروز هم با دست پر آمده ام ...:cool:
یک سری مثال کامل و توپ که همه رو خودم نوشتم فقط و فقط برای آشیانه و اعضای با مرامش ... thumbsup:x
( راستی این مدت که نبودم آشیانه چه خبرا بود ؟ ):ii

omid55
03-07-2008, 06:30 PM
سلام اقا امید گل

واقعا ترکوندی :x

خیلی خیلی ممنون امید جان که اینقدر قابل میدونی و جواب میدی :x


پس به این نتیجه رسیدم که C رو فول یاد بگیرم یا حداقل خوب یا بگیرم و C++ رو شروع کنم البته محیط ویژالش رو بعد اگه خدا خواست C#.NET رو شروع میکنم ;) چون خیلی ازش شنیدم میگن هم تو وب کاربرد داره و هم تو ویندز ! پس باید واقعا مفید باشه lo1ad

درضمن فرق بین win 32 console app و win 32 applaction تو چیه ؟

البته میدونم که consol همون محیط داس و اون یکی دیگه هم محیط ویژوال ویندز !

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

و سوالی که میخوام بپرسم : دستوراتی که تو win 32 consol کار برد داره ایا تو app هم یکی هست ؟؟

امیدوارم دقیقا منظورمو گرفته باشید :)



و خدایی خیلی خیلی شرمندم که اینقدر اذیت میشین ولی چه کنیم که باید یه ادم بزرگتر یا همون استاد دستمون رو بگیره و راهنماییمون بکنه یا به عبارتی راه رو از چاه بهمون نشون بده ;;):x



اولا من خیلی کمتر از اونی هستم که من رو " استاد " خطاب کنید من خاک زیر پای همه ی بچه ها هم نیستم ... thumbsup
سینا جون به شما قبلا هم عرض کردم که اگر نظر من حقیر را می خواهید زبان توپ و کامل ++C را کامل و حرفه ای یاد بگیرید . بله تقریبا همه ی دستورات در حالت Win32 Console استفاده میشه در حالت App هم کاربرد دارد البته اگه منظورتون C# یا بهتر از اون C#.Net است باید بگم که دستورات یکم متفاوته اما همانطور که گفته ام ++C پایه و پیشنیاز آموزش C# و C#.Net است . پس بهتره که شما اول ++C را به طور کامل یاد بگیرید بعد برید سر وقت C# و ...
همانطور که باز هم گفته ام در ++C هم قابلیت نوشتن برنامه با گرافیک ویندوزی هم وجود دارد ( یادمون نره که خود ویندوز را با ++C نوشته اند )( در پستهای قبلی هم در همین تاپیک یک مثال از آن و هم یک pdf آموزشی از آن را برای دوستان گذاشته ام ) البته خیلی مشکله اما این مشکل بودن به خاطر اینه که شما در ++C از پایه به کد نویسی می پردازید و این امر باعث میشه شما بتونید کارهای خیلی بدیع و جدید و جالب با آن بکنید که همین یکی از دلایلی است که ++C را اینقدر قوی کرده است ...
درست مثل اینه که شما یک کارخانه ی مونتاژ داشته باشید . در این صورت می توانید یک یا چند چیز معمولی که خیلی ها قبلا آن را ساخته اند یا حداقل می توانند آن را بسازند درست نمایید اما اگر یک کارخانه ی ساخت قالب و قطعات اولیه یا مثلا تراشکاری و فرزکاری ( یا هر چی شبیه با اینها ) داشتید می توانستید همه چیز را از ابتدا جدید با طرحی و شکلی نو بسازید و به این ترتیب دست شما بازتر خواهد بود البته حالت دوم کمی سخت تر و مشکل تر است ولی به امتحانش می ارزد ... :cool:

omid55
03-07-2008, 06:37 PM
یک سوال ساده برای تمرین روی کلاسها و وراثت آنها :


كلاس فرزند Array به نام NewArray را تعريف كنيد كه داراي توابع عضو جديد زير باشد :

1- تابع printall براي چاپ كليه عناصر يك بردار بصورت سطر به سطر .
2- توابع Min و Max كه مقادير ماكزيموم ومينيموم يك بردار را مي يابند و برمي گردانند .
3-تابع resize براي تغيير اندازه يك بردار . اگر سايز جديد بزرگتر است عناصر بردار در خانه ها ابتدايي قرار مي گيرند و اگر بزرگتر
است عناصر انتهايي بردار حذف مي شوند .

سپس يك برنامه اصلي main بنويسيد كه به كمك اشيائي از كلاس NewArray شماره دانشجويي و نمره 10 نفر دانشجو را از صفحه كليد بخواند و در بردارهايي ذخيره نمايد . تايپ هر دو بردار ميتواند double باشد . سپس شماره هاي دانشجويي و نمرات را چاپ نمايد. شاگرد اول و شاگرد آخر كلاس را نيز بيابد و اطلاعات انها را چاپ كند . سپس سايز بردار شماره دانشجويي را به 20 تغيير دهد و آنرا مجددا چاپ نمايد .

اینم جوابش ===>>>
:cool::cool::cool:

3995


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
03-07-2008, 06:50 PM
اینم یک مثال خیلی کوتاه و ساده از Pointer ها برای فهم آنها و طریقه ی کار با آنها :
:cool::cool::cool::cool:

3997


لینک دانلود : [Only registered and activated users can see links]

omid55
03-07-2008, 06:55 PM
اینم یک مثال ساده از توابع virtual و کارایی آنها :
:cool::cool::cool:


لینک دانلود : [Only registered and activated users can see links]


در پست قبلی هم Attach آن در آشیانه هستش ... thumbsup

omid55
03-07-2008, 07:00 PM
این هم یک مثال کامل در رابطه با کارکردن با توابع friend :
:cool::cool::cool:

اینم لینک دانلود1 :
[Only registered and activated users can see links]


اینم لینک دانلود2 : [Only registered and activated users can see links]

بچه ها مثالها خیلی ساده هستن اگه مشکلی بود حتما پست بدید ...

omid55
03-07-2008, 07:06 PM
اینم یک مثال کوتاه ولی کامل از کار با فایلها به روشهای مختلف ممکن :
:cool::cool::cool:

4000


لینک دانلود : [Only registered and activated users can see links]


حتما مثالهای بیشتر و بهتری در روزهای آتی خواهم گذاشت ... :xthumbsup:rolleyes::cool::p;)

فعلا یا حق

va_sh114
03-09-2008, 03:30 PM
سلام امید جان شما گرافیک در C++ را هم کار کردین اگر کار کردین من می خواستم ماشین حساب مهندسی بنویسم یعنی به طور کامل گرافیکی و اینکه می خواستم موس هم فعال باشه البته موس که کد اسمبلی هست و باید بعدا برم دنبالش می خواستم ببینم اگر کار کردین یه مقدار هم در مورد گرافیک توضیح بدین

wantonboy13
03-10-2008, 09:52 PM
سلام امید جان ،
من با دیدن این تاپیک امروز عضو سایت شدم. (خوش اومدم!! :rolleyes: )
رشته ی دانشگاهیم مهندسی نرم افزاره و تو مبانی کامپیوتر و برنامه سازی به ما زبان C رو آموزش دادند که متاسفانه من تا یه جایی این زبان رو یاد گرفتم و در جلسات پایانی که بحث اشاره گرها و آرایه ها.... مطرح شد ، چیز زیادی دستگیرم نشد. در واقع مطالب ساده زبان C رو میدونم. بزرگترین شاهکارمم این بود که واسه پروژه دو تا برنامه ، (یکی حدس عدد و دیگری تبدیل عدد در مبنای غیر 10 به 10) رو نوشتم !!:ii
خوب خوشبختانه درس رو با نمره 15 پاسوندیم.....thumbsup
حالا رسیدیم به برنامه سازی پیشرفته که ++c داره اذیتم می کنه...
استاد این ترممون بسیار سخت گیر در درس ونمره است ، و درس هارو هم طوری توضیح میده که تنها دانشجویانی مطلب رو می گیرند که حتما" حتما" C رو خیلی خوب بلد باشند. :mad:

به نظرت برای اینکه این ذهن ما ، ++C رو خوب و روان درک کنه ، باید چیکار کنم ؟! همین کتاب ++Cمهندس ابراهیم زاده قلزم رو از اول شروع کنم به خوندن خوبه ؟! تو کتاب C جعفر نژاد قمی(که ساده هم توضیح داده) ، به قسمت های پیچیده تر مثل پوینتر و آرایه ها میرسم ، چیزی دستگیرم نمیشه... منتظر نظرات کارشناسانه ی شما هستیم...

omid55
03-11-2008, 01:06 AM
سلام امید جان ،
من با دیدن این تاپیک امروز عضو سایت شدم. (خوش اومدم!! :rolleyes: )
رشته ی دانشگاهیم مهندسی نرم افزاره و تو مبانی کامپیوتر و برنامه سازی به ما زبان C رو آموزش دادند که متاسفانه من تا یه جایی این زبان رو یاد گرفتم و در جلسات پایانی که بحث اشاره گرها و آرایه ها.... مطرح شد ، چیز زیادی دستگیرم نشد. در واقع مطالب ساده زبان C رو میدونم. بزرگترین شاهکارمم این بود که واسه پروژه دو تا برنامه ، (یکی حدس عدد و دیگری تبدیل عدد در مبنای غیر 10 به 10) رو نوشتم !!:ii
خوب خوشبختانه درس رو با نمره 15 پاسوندیم.....thumbsup
حالا رسیدیم به برنامه سازی پیشرفته که ++c داره اذیتم می کنه...
استاد این ترممون بسیار سخت گیر در درس ونمره است ، و درس هارو هم طوری توضیح میده که تنها دانشجویانی مطلب رو می گیرند که حتما" حتما" C رو خیلی خوب بلد باشند. :mad:

به نظرت برای اینکه این ذهن ما ، ++C رو خوب و روان درک کنه ، باید چیکار کنم ؟! همین کتاب ++Cمهندس ابراهیم زاده قلزم رو از اول شروع کنم به خوندن خوبه ؟! تو کتاب C جعفر نژاد قمی(که ساده هم توضیح داده) ، به قسمت های پیچیده تر مثل پوینتر و آرایه ها میرسم ، چیزی دستگیرم نمیشه... منتظر نظرات کارشناسانه ی شما هستیم...


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

فقط خواستار دعای شما دوستانیم ... :cool::x

omid55
03-11-2008, 01:13 AM
بچه ها من به زودی بر می گردم و جواب تمام سوالات رو میدم و آموزشهای جدید با مثالهای متنوع میذارم ...
روی همین تاپیک توپ ...
قول میدم ...
بازگشت اژدها ... :pthumbsupthumbsup

wantonboy13
03-11-2008, 12:53 PM
فقط خواستار دعای شما دوستانیم ... :cool::x

محتاجیم به دعا... :rolleyes:

wantonboy13
03-11-2008, 01:08 PM
برنامه 2 : میانگین و مجموع مجذورات
توضیح : این برنامه میانگین 6 عدد و مجموع مجذور آنها را حساب می کند .
لینک دانلود : [Only registered and activated users can see links]

حاجی ماشروع کردیم به دانلود آموزش ها ولی...
1- این برنامه که 5 عدد میگیره نه 6 تا !!
2- یه مثال با حلقه for میتونی برام بنویسی که توانهای مختلف (n ها)یک عدد رو حساب کنه ، ( X0,X1,X2,...) و هر بار با مقدار جدید x ، فرمولی مثل S=R-Xn رو در خروجی چاپ کنه.
خواهشا" از Pow استفاده نشود.:ii

wantonboy13
03-11-2008, 01:33 PM
راستی به سوالی امید جان...
جریان این Fix چیه تو اعداد اعشاری ؟! یه مثال از Fix و غیر Fix برامون میزنی ؟!
-------------------------------------------
پیشاپیش از شما کمال تشکر را دارم.

wantonboy13
03-11-2008, 01:39 PM
بازم سوال...
لینک مستقیم کتاب دیتل & دیتل رو کسی داره بذاره ؟! من تو سایت های خارجی که میرم فقط برای فروش گذاشتن ، از یکی از فروم های فارسی زبان هم لینک مستقیمش رو با حجم 10.2 مگابایت و با اینترنت ذغالی دایل آپ دریافت کردم ، موقعی که میخواستم از حالت فشرده شده در بیارم، می فرمودند یک فایل کم است !! اگر کسی سالمشو داره بذاره... ممنون میشم !!:ii

omid55
03-12-2008, 11:08 PM
حاجی ماشروع کردیم به دانلود آموزش ها ولی...
1- این برنامه که 5 عدد میگیره نه 6 تا !!
2- یه مثال با حلقه for میتونی برام بنویسی که توانهای مختلف (n ها)یک عدد رو حساب کنه ، ( X0,X1,X2,...) و هر بار با مقدار جدید x ، فرمولی مثل S=R-Xn رو در خروجی چاپ کنه.
خواهشا" از Pow استفاده نشود.:ii

اون 6 و 5 اشتباه چاپی است ...
edit شد ... ( خوبه )
خودمونیم شما مبانی رو پاس کردید ؟؟؟
جوابش خیلی ساده است اما با این حال جوابش رو میذارم که نگید امید ... است
البته با pointer نوشته ام ( اینم یک تمرین ساده ی دیگه برای اشاره گر ها )
:cool::cool::cool:

4011


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
03-12-2008, 11:18 PM
بازم سوال...
لینک مستقیم کتاب دیتل & دیتل رو کسی داره بذاره ؟! من تو سایت های خارجی که میرم فقط برای فروش گذاشتن ، از یکی از فروم های فارسی زبان هم لینک مستقیمش رو با حجم 10.2 مگابایت و با اینترنت ذغالی دایل آپ دریافت کردم ، موقعی که میخواستم از حالت فشرده شده در بیارم، می فرمودند یک فایل کم است !! اگر کسی سالمشو داره بذاره... ممنون میشم !!:ii

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

wantonboy13
03-13-2008, 12:47 AM
اون 6 و 5 اشتباه چاپی است ...
edit شد ... ( خوبه )
خودمونیم شما مبانی رو پاس کردید ؟؟؟
جوابش خیلی ساده است اما با این حال جوابش رو میذارم که نگید امید ... است
البته با pointer نوشته ام ( اینم یک تمرین ساده ی دیگه برای اشاره گر ها )
:cool::cool::cool:

4011


اینم لینک دانلود : [Only registered and activated users can see links]

دیدی از Pow استفاده کردی ؟!!!!!!!!!!! :o
اصلا" هدف من چیز دیگه ای بود.....
بذار سوال اصلی رو که همون یکی از پروژه هامون بود بذارم.
یه برنامه بنویسید که عدد و مبنا رو از کاربر بگیره و عدد در مبنای 10 تحویل کاربر بده.
من که تو زبان C فرمول pow رو نخونده بودم ، میخوام بدون این فرمول مسئله بالا رو بنویسی .

omid55
03-13-2008, 10:28 AM
دیدی از Pow استفاده کردی ؟!!!!!!!!!!! :o
اصلا" هدف من چیز دیگه ای بود.....
بذار سوال اصلی رو که همون یکی از پروژه هامون بود بذارم.
یه برنامه بنویسید که عدد و مبنا رو از کاربر بگیره و عدد در مبنای 10 تحویل کاربر بده.
من که تو زبان C فرمول pow رو نخونده بودم ، میخوام بدون این فرمول مسئله بالا رو بنویسی .

ببخشید میشه من یک سوالی از شما بپرسم : شما تا حالا با ++C کد نوشتید ؟
آخه IQ برنامه ی قبلی برنامه ای است که تازه من نتونم اونرا بنویسم تازه بدون pow ...
این یک نوع فحش حساب میشه ... cigar
لطفا دیگه تکرار نشه ... angry

آخه IQ اگه دقت کنی ( البته دقت نمیخواد فقط چشمهات رو باز کنی ) میبینی من یک بار بدون pow نوشته ام و برای هر چه کاملتر شدن کد یک بار هم با pow نوشته ام و چون شما فرموده بودید بدون pow اونها را comment کردم ...
یعنی از هر 2 روش ...
ایشالا میدونی comment چیه دیگه ...:o
سبز رنگه و compile هم نمیشه ...thumbsup
یک بار دیگه یک سوال مهم : شما مبانی رو پاس کرده اید ؟؟؟؟؟
مهم نیست ...
ولی دیگه نبینم به کسی در تاپیک توهین بشه ...angry
من برام مهم نیستش ولی آشیانه آبرو داره ...angry

omid55
03-13-2008, 10:46 AM
دیدی از Pow استفاده کردی ؟!!!!!!!!!!! :o
یه برنامه بنویسید که عدد و مبنا رو از کاربر بگیره و عدد در مبنای 10 تحویل کاربر بده.
من که تو زبان C فرمول pow رو نخونده بودم ، میخوام بدون این فرمول مسئله بالا رو بنویسی .


آهان در مورد سوالتون در مورد مبنا ...
آخه چند بار بگم صفحات و پستهای قبلی رو نگاه کنین ...
یک بار هم که شده قوانین رو مطالعه بفرمایید :
[Only registered and activated users can see links]

در مورد مبنا من قبلا یک کد کانل و خوب گذاشته ام ...
این برنامه یک عدد به همراه مبنایش ( هر چی که می خواد باشه ) به همراه عدد بعدی که مبنای خواسته شده است ( هر چی که می خواد باشه ) میگیره بعد نتیجه رو تحویل میده ...
اینم لینکش که قبلا هم داده ام :
:cool::cool::cool:

[Only registered and activated users can see links]

wantonboy13
03-13-2008, 12:07 PM
- آره خیالت راحت ، پاس کردم.
- تو صفحات قبلی جز توضیحاتی در مورد کتاب ، چیزی ندیدم. یعنی لینکی نبود.
- من مشکلم رو در مورد این سوال میخواستم بپرسم که از مهمون نوازیتون خیلی ممنون. سعی می کنم اینجا سر نزنم که یه وقت بیشتر از این مورد توهین قرار نگیرین.
- در مورد تابع pow ، چون من فایل رو note pad باز کزدم و ریز بود و تمام نوشته ها یک رنگ ، اشتباها" علامت comment رو ندیدم ، از این بابت من معذرت میخوام ، ولی توقع دارم شمام یه بار پستی رو که دادی خودت بخونی. lo1ad

omid55
03-13-2008, 01:48 PM
- آره خیالت راحت ، پاس کردم.
- تو صفحات قبلی جز توضیحاتی در مورد کتاب ، چیزی ندیدم. یعنی لینکی نبود.
- من مشکلم رو در مورد این سوال میخواستم بپرسم که از مهمون نوازیتون خیلی ممنون. سعی می کنم اینجا سر نزنم که یه وقت بیشتر از این مورد توهین قرار نگیرین.
- در مورد تابع pow ، چون من فایل رو note pad باز کزدم و ریز بود و تمام نوشته ها یک رنگ ، اشتباها" علامت comment رو ندیدم ، از این بابت من معذرت میخوام ، ولی توقع دارم شمام یه بار پستی رو که دادی خودت بخونی. lo1ad


دلم نمیخواد بیشتر از این قضیه کش پیدا کنه ...
لطفا هم اول مطمئن شوید بعد پست بدید ...
من دوست دارم بچه ها بیان و سوال مطرح کنن بقیه یا من حلش کنیم و به هم کمک کنیم نه اینکه بگیم : " دیدی نتونستی بدون pow بنویسی !!! "
امیدوارم بچه ها با هم خیلی بهتر از این صحبت کنند ...:x
من بازم آموزش میذارم ...:cool:
به همراه مثال ... thumbsup

omid55
03-13-2008, 02:12 PM
اینم یک مثال خیلی کامل شئ گرای مناسب در مورد اعداد مختلط ( complex ) به همراه تعریف چنیدن operator به حالت های دوست و عضو برای یادگیری تعریف اپراتور ها در زبان ++C و کار با آنها ...
مثال جامعی است به همراه استفاده از اپراتورهای مختلف در main به همراه چندین مثال در main ...
امیدوارم استفاده ی کامل از آنرا ببرید ...

:cool::cool::cool:

4015


اینم لینک دانلود : [Only registered and activated users can see links]


فعلا یا حقthumbsup

va_sh114
03-13-2008, 03:07 PM
سلام امید جان جواب سوال قبلیمونا که ندادی اصلا اما حالا یه سوال دیگه ؟ آقا پردازش تصویر تو C++ را کار کردی؟من می خوام یه برنامه بنویسم برا پردازش تصویر اعداد 0تا 9 اگه بتونی کمکی کنی ممنون می شوم

Azazel
03-14-2008, 11:17 AM
یه بار گفتم یه بار دیگه هم میگم هر کسی بخواد این تاپیک رو به .... بکشه BAN میشه!!!

omid55 ادامه بده

omid55
03-14-2008, 12:51 PM
یه بار گفتم یه بار دیگه هم میگم هر کسی بخواد این تاپیک رو به .... بکشه BAN میشه!!!

omid55 ادامه بده


خیلی ممنون Azazel جون که اینطوری از من حمایت می کنید ...:x:x
من قول میدم این تاپیک رو خیلی خیلی بهتر از اینها هم بکنم ...
به همه ی سوالات دوستان هم ان شاء الله جواب می دم ...
فقط یکم به من مهلت بدید تا یک سری از کارهام رو راست و ریست کنم ...
با آموزشهای بهتر و بیشتر برمی گردم ...:cool:

فعلا یا حق thumbsup

omid55
04-01-2008, 06:31 PM
اول از همه سلام ...
خیلی خیلی خیلی خیلی خیلی ببخشید که چند وقتی نبودم و تاپیک رو زمین مونده بود ...
یک تعطیلات نوروزی که بیشتر نداریم که آخه ...
من هم یکم استراحت کردم بعدشم دیگه وقت برای تایپ مقاله و آموزش و کد نکردم ...
از همه ی دوستان به خاطر نبودنم به خصوص در این تاپیک عذر می خوام ...
آخه میدونین دوستان من کدها یا آموزشهایی که در این تاپیک گذاشته ام , می گذارم , و ان شاء الله خواهم گذاشت رو از جایی copy و paste نمی کنم یا از روی کتابی نمی نویسم . همش رو خودم از اول تا آخر می نویسم به همین خاطر نوشتن کدها و آموزشها کار وقت گیریه و من هم وقت اضافی چندانی بدبختانه ندارم به همین خاطره که بعضی وقتا پستهام دیر میشه ...
خلاصه امیدوارم بهم خرده نگیرید ...
خوب بریم سر وقت کارهای امروز ...

omid55
04-01-2008, 06:35 PM
سلام امید جان جواب سوال قبلیمونا که ندادی اصلا اما حالا یه سوال دیگه ؟ آقا پردازش تصویر تو C++ را کار کردی؟من می خوام یه برنامه بنویسم برا پردازش تصویر اعداد 0تا 9 اگه بتونی کمکی کنی ممنون می شوم


ببخشید که من نبودم و جواب سوالتون رو هم دفعه ی پیش ندادم ولی به نظر من این سوالات شما بی مورد است . میدونی دوست من اولا من این تاپیک رو زدم که زبان ++C را به صورت پایه ای و کامل و به طور ریشه ای آموزش بدم به صورتی که اگر کسی برای اولین بار میخواد کد نویسی یاد بگیره و پیشرفت کنه این تاپیک بتونه به اون فرد کمک کنه ان شاء الله ولی همینطور که پیش میره به قسمتهای پیشرفته و سخت تر هم میرسیم ( اگه خدا بخواد ) . پس به نظر من چنین کاری خیلی به تنظیم و دقت عمل نیاز داره یعنی بایستی یک ترتیب و در واقع یک سیلابسی رعایت بشه . شما با این سوالاتتون دارید یک دفعه می پرید روی پله ی آخر و به نظر من این به ضرر بچه ها میتونه تموم بشه ...
من عاجزانه از بچه ها این درخواست رو دارم لطفا سوالاتی رو در تاپیک مطرح کنید که به میزان آموزشها و در واقع Level آنها نزدیک باشه تا از موضوع بیخودی پرت نشیم . اگه سوال از مطالب و مبحثهای قبلی دارید حتما بپرسید ولی در مورد مطالب بعدی لطفا بحث به میان نیاورید . اگه سوالی در مورد مطالب و موضوعات بعدی دارید لطفا از طریق پست خصوصی یا حتی chat مطرح نمایید . ID من که خیلی تابلو شده => [Only registered and activated users can see links] . پس لطفا حق اعضا رو بیهوده زیر پا نذارید ...:ii:-S
در مورد سوالتون هم که مورد بحث گرافیکی در زبان هستش من حداقل 4 یا 5 پست در صفحات قبلی اعم از کد به عنوان مثال و pdf برای آموزش بهتر و بیشتر و آموزشهای خودم داده ام که در جواب یکی دیگر از دوستهامون هستش ولی دیگه نمی خوام بیش از این بحث خودم رو منحرف کنم ...cigar
پیشاپیش از دوستانی که قوانین رو رعایت می کنن کمال تشکر رو دارم ... thumbsup:cool:

omid55
04-01-2008, 06:51 PM
خوب بحث ما به شئ گرایی رسید ...
قبل از بحث Object Oriented که بحث خیلی خیلی مهمیه لطفا هر سوالی از مطالب قبلی دارید و یا مثال Functional ی که می خواهید حتما بگید ...
من قول داده بودم یکم در مورد لزوم شئ گرایی و مزیتهای آن صحبت کنم ...


الوعده وفا ===>>>>>>>>>>
:cool::cool::cool::cool::cool:



یکی از دلایلی که همه می گویند از زبانهای جدید استفاده کنید به خاطر همین شئ گرایی هستش . زبانهای جدید مثل VB و JAVA و مخصوصا ++C و #C این قابلیت را دارا می باشند .


شئ گرایی یعنی اینکه شما یک برنامه ای که می خواهید بنویسید را به چندین موجود یا به عبارتی دیگه مدل یا المان خیلی کوچک ( module ) که هر کدام یک کار خیلی ساده و کوچک و قابل فهم را انجام می دهند تقسیم کنید . یعنی این که شما یک کار بزرگ به چندین کار کوچک تقسیم کنید که همه ی آن کار های ساده و کوچک در کنار هم کار آن کار بزرگ رو اصطلاحا انجام می دهند .


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


شاید از خواندن راه اول حتی خندتون بگیره ولی باید بهتون بگم این دقیقا همان کاریه که ما تا حالا انجام می دادیم :o ( یعنی تا قبل از مثال های شئ گرایی چون من چندین مثال در مورد شئ گرایی هم در پست های قبلی داده ام ) . پس به نظرتون با این مثال کاملا روشن و واضح بهتر نیست ما هم در کد نویسی از راه دوم استفاده کنیم ؟ :p


البته باید گفت برای برنامه های ساده و کوچک راه اول که همون برنامه های اصطلاحا functional قبلی خودمونه بهتر هستش ولی وقتی بحث از برنامه های بزرگ یا مهم یا پروژه ها به میان میاد راه دوم خیلی خیلی بهتر خواهد بود . thumbsupthumbsupthumbsup

omid55
04-01-2008, 06:58 PM
مزیتهای راه دوم یا همان شئ گرایی در برنامه نویسی ( Object Oriented ) :


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

مثلا چند سال پیش شرکت Microsoft کد ویندوز اولیه ی خودش رو روی وب گذاشت . همانطور که می دانید سیستم عامل پر طرفدار جهان که همان Windows خودمونه بوسیله ی ++C نوشته شده است . اگر به کد این Windows اولیه یک نگاه می انداختید می دیدید که از شاید میلیون ها module یا قسمت خیلی کوچک و ساده و قابل فهم و به همراه چنیدن خط Comment در کنار هر قسمت تشکیل شده است . برای هر کار خیلی ساده و کوچکی یک Class نوشته بودند و تابع در آن تعریف کرده بودند .
همه ی این قسمت ها در کنار هم یک سیستم عامل مشهور و دوست داشتنی مثل Winodows را تشکیل می دهند .

مزیت دیگر شئ گرایی اینه که شما وقتی یک برنامه ی خوب می نویسید و در بازار وارد می کنید اگر برنامه ی شما مشهور و پر خریدار بشه ( ایشالا !!!!!!!! ) باید بتونید در این صحنه ی مبارزه و رقابت همچنان باقی بمونید و این امر فقط وقتی ممکنه که برنامه ی شما اصطلاحا قابلیت update داشته باشد یعنی شما بتوانید مثلا بعد از یک سال Version جدید برنامتون را به بازار عرضه کنید تا همچنان برنامه ی شما مشهور بماند . وقتی شما کدتان را به صورت شئ گرا بنویسید خیلی خیلی راحت تر و بهتر میشود آن را ارتقا داد و بهبود بخشید به همین خاطر باز هم Object Oriented خودش را نشان می دهد .

به عنوان مثال شاید اغلب شما دوستان گرامی نرم افزار Zarnegar را یادتون هست . یک زمانی این نرم افزار در ایران حرف اول را در زمینه ی نرم افزارهای Editor متن و تایپ میزد ولی چون نتونست خودش رو ارتقا بده و اصطلاحا Update کنه کم کم فراموش شد و کنار گذاشته شد و نرم افزار قدرتمند Word جای آن را به طور کامل گرفت چون نرم افزار Word هر سال یک ورژن جدید و جالب بیرون می دهد که کاملا از ورژنهای قبلیش متمایزه و برای من که خیلی جالبه ( اینا چقدر هر سال ایده های نو دارند !!!!!!!!!!! )


هر چقدر در مورد شئ گرایی حرف بزنیم کم هستش ...
من بازم در مورد این موضوع حتما می نویسم ...
امیدوارم با این توصیفات تقریبا کامل به همراه مثال توانسته باشم دلیل و ضروریت Object Oriented را بیان نموده باشم ... :cool:thumbsup:x:rolleyes::p;)

omid55
04-01-2008, 07:07 PM
راستی یکی از دوستان یک سوال در Messenger از من پرسید که مربوط به بحثهای قبلی هستش ...
ساده هستش ولی برای مرور حداقل خوبه ...
سوال ایشان :
یک کد بنویسید که شکل پروانه ای با دو مثلث متساوی الساقین در روبروی هم رسم کند . یعنی در ورودی یک عدد بگیرد و شکل را رسم نماید .
من هم اطاعت امر کردم و کدش را نوشتم و در تاپیک قرار می دهم ...
امیدوارم ایشان هم استفاده کنند ...
:cool::cool::cool::cool::cool:

4082

اینم لینک دانلود : [Only registered and activated users can see links]

omid55
04-01-2008, 07:18 PM
اینم یک مثال خیلی کامل شئ گرای دیگر که سوال آن به صورت زیر هستش :

کلاس fmatrix را برای تعریف ماتریسهای 2 بعدی اعداد اعشاری تایپ float تعریف کنید .
الف - عملیات پر کردن ماتریس با خواندن از کیبورد , اطلاع از محتوای یک خانه از آن و اطلاع از ابعاد ماتریس را برای آن به صورت توابع عضو ایجاد کنید .
ب - اپراتور عضو >> برای چاپ محتویات ماتریس و اپراتورهای دوست + و - برای جمع و تفریق دو ماتریس هم سایز را نیز اضافه نمایید . در صورتیکه ماتریسها هم سایز نباشند برنامه بایستی اعلام خطا کند .
ج - در برنامه ی main تعدادی ماتریس از کلاس fmatrix تعریف و عملیات فوق را برای آنها انجام دهید .

اینم جواب این سوال ===>>>>>>
:cool::cool::cool::cool::cool:


4083



اینم لینک دانلود : [Only registered and activated users can see links]

omid55
04-01-2008, 07:51 PM
بچه ها من بازم آموزش و مثال میذارم فقط مدیرها بیشتر Support کنند و بچه ها هم استقبال ...

فعلا یا حق :cool:thumbsup:p:rolleyes::x;)

eychenz
04-01-2008, 10:13 PM
از شما به خاطر این حرکت زیبا تشکر می کنم
فقط ایکاش به جای اینکه به بچه ها توصیه کنی یه نرم افزار قفل شکسته که میلیون ها کیلومتر با استاندارد ها و ایزو ها فاصله داره رو نصب کنن که تازه صاحبش هم راضی نیست:) می گفتی از gcc لینوکس استفاده کنن...
به هر حال ممنون

omid55
04-03-2008, 02:35 PM
بچه ها این هم یک مثال کامل در رابطه ی کار با فایلها البته با مثالهای قبلی فایلها متفاوت است چون این بار بوسیله ی کلاس fstream و ایجاد شئ از آن و کار با آنهاست و می توان گفت در واقع به نوعی شئ گرا است ...
در این مثال کار با string ها هم وجود دارد ...
از دو تابع خیلی ساده که در هدر string قرار دارند در این مثال استفاده شده است که به اختصار در مورد آنها توضیح می دهم :
1- تابع strlen که در واقع به صورت strlen(string name) استفاده می شود یا به عبارت علمی تر:

size_t strlen(const char *_Str)

استفاده می گردد طول یک رشته را به ما می دهد البته این تابع طول رشته را به همراه کارکتر null یا به عبارتی دیگر '\0' به ما می دهد پس طول واقعی رشته که ما با آن سر و کار داریم معادل یکی کمتر از عدد داده شده است . این تابع حاصل را به صورت size_t بر می گرداند پس اگر long long تعریف شود بهتر است و Warning هم نمی دهد .


2- تابع stricmp که در واقع دو رشته را می گیرد و با هم مقایسه می کند . اگر دقیقا یکسان بودند مقدار 0 بر می گرداند در غیر اینصورت مقداری غیر صفر بر می گرداند.

تابع trimstr که خودمان در این مثال تعریف نموده ایم هم blank های انتهای هر رشته را پاک می نماید .

مثال ساده ولی مفیدی است ...:p
امیدوارم مورد استفاده قرار گیرد ... thumbsup
:cool::cool::cool:

4084


اینم لینک دانلود : [Only registered and activated users can see links]


فعلا یا حق thumbsup

omid55
04-03-2008, 03:55 PM
از شما به خاطر این حرکت زیبا تشکر می کنم
فقط ایکاش به جای اینکه به بچه ها توصیه کنی یه نرم افزار قفل شکسته که میلیون ها کیلومتر با استاندارد ها و ایزو ها فاصله داره رو نصب کنن که تازه صاحبش هم راضی نیست:) می گفتی از gcc لینوکس استفاده کنن...
به هر حال ممنون

اولا خواهش میکنم وظیفه هستش ...
ثانیا خیلی ممنون که نظر می دهید ...
ثالثا به نظر من ++C خیلی برنامه ی خوب و کاملی هستش و آموزش آن هم ضروری ...
رابعا اگر دقت کرده باشید در این تاپیک من همیشه به بچه ها ورژن 2008 یا حداقل 2005 را توصیه میکنم پس برنامه ی قدیمی و کهنه ای را آموزش نمی دهیم ... ( در سال 2008 هستیم !!!!!!!!!)
خامسا این قضیه ی کرک کردن و استفاده ی میلیونها نفر در ایران از برنامه ها به خاطر نبود قانون copy right هستش و روز قیامت هم خودشون جوابگو هستن به من و شما دیگر ربطی ندارد ... thumbsup:cool::p
البته خودمونیم اگر این قانون بود که هیچ کس دیگر نمی تونست با خرید یک CD فوقش 2000 تومنی 2000000 نرم افزار توپ و جدید را بخرد در ایران ... :ii:ii:ii

در کل از شما به خطر پستتان متشکرم ... :x

eychenz
04-03-2008, 06:52 PM
دوست عزیز
فکر کنم منظور من رو متوجه نشدید
یا من بد بیان کردم
من هرگز نگفتم ++C زبان بدی است
شما بهتر از من میدونید که در حال حاضر استانداردی که برای زبان ++C/C در نظر گرفته شده C99 میباشد و این در حالیست که حتی آخرین ورژن نرم افزار توصیه شده توسط شما یعنی Microsoft Visual C++ 2008 Express Edition طبق داکیومنتی که در خود آن است فقط 40% این استاندارد را رعایت می کند
ضمن اینکه باید به دنبال یک نسخه کرک شده خوب هم بگردید
عاقلانه تر نیست که از GCC استفاده کنید؟؟؟ هم رایگان هم منطبق با استاندارد جهانی !
ضمنا این هم بدانید که گربه محض رضای خدا موش نمی گیره
یعنی اون آقای cracker که نشسته کلی وقت گذاشته تا یک نرم افزار رو کرک کنه حتما یه سودی هم واسه خودش در نظر گرفته
اگر مواردی که cracker میتونه با اونا سود کنه رو بشمریم حتما در یکی از موارد به مخفی کردن یک backdoor یا هر راهی جهت کنترل مشتریان نرم افزار های کرک شده می رسیم
اینم از دلیل سوم که البته کمرنگ تر بود نسبت به دو دلیل قبلی...
با تشکر از شما که با حوصله نظرات رو میخونید...

omid55
04-03-2008, 07:33 PM
دوست عزیز
فکر کنم منظور من رو متوجه نشدید
یا من بد بیان کردم
من هرگز نگفتم ++C زبان بدی است
شما بهتر از من میدونید که در حال حاضر استانداردی که برای زبان ++C/C در نظر گرفته شده C99 میباشد و این در حالیست که حتی آخرین ورژن نرم افزار توصیه شده توسط شما یعنی Microsoft Visual C++ 2008 Express Edition طبق داکیومنتی که در خود آن است فقط 40% این استاندارد را رعایت می کند
ضمن اینکه باید به دنبال یک نسخه کرک شده خوب هم بگردید
عاقلانه تر نیست که از GCC استفاده کنید؟؟؟ هم رایگان هم منطبق با استاندارد جهانی !
ضمنا این هم بدانید که گربه محض رضای خدا موش نمی گیره
یعنی اون آقای cracker که نشسته کلی وقت گذاشته تا یک نرم افزار رو کرک کنه حتما یه سودی هم واسه خودش در نظر گرفته
اگر مواردی که cracker میتونه با اونا سود کنه رو بشمریم حتما در یکی از موارد به مخفی کردن یک backdoor یا هر راهی جهت کنترل مشتریان نرم افزار های کرک شده می رسیم
اینم از دلیل سوم که البته کمرنگ تر بود نسبت به دو دلیل قبلی...
با تشکر از شما که با حوصله نظرات رو میخونید...

ببخشید درست می فرمایید , من درست متوجه صحبتتون نشدم ...
خیلی ممنون که باز هم پست دادید ...
تقصیر خودم شد یکم عجله کردم ... :-S:-S:-S
در کل از شما سپاس گذارم ...
من خیلی خوشحال میشم اگه شما هم در این تاپیک پست بدید و آموزش یا مثال بذارید و از شما و همه ی اعضای گل دیگه هم همین مهم را خواستارم ...
بچه ها لطفا شما هم در بحثها شرکت کنید و آموزش و مثال بذارید تا همه استفاده ببرند ...
قربان همه ی شما ... thumbsup:cool::p;):rolleyes::x
OMID

omid55
04-04-2008, 05:45 PM
یکی از دوستان عزیز از طریق Messenger یک سوال در مورد مثالهای قبلی و مبحثهای ماقبل مطرح نمودند و یک کد خواستند ...
اولا خیلی ممنون که کدها و مثالهای تاپیک را مطالعه می فرمایید ولی از همه ی دوستان می خواهم اگر سوال در مورد مبحثهای قبلی یا کدها دارند در تاپیک مطرح کنند تا بقیه هم استفاده ببرند ان شاء الله ...
خوب سوال ایشان این بود که در یکی مثالهای ابتدایی که در آن میانگین دانشگاه از طریق حلقه های تو در تو for بدست می آمد آیا می توان این کد را از طریق توابع هم نوشت در حالی که یک تابع برای چاپ نمرات باشه ...
و خلاصه یک سری تابع و کد جدید ... thumbsup
اینم جوابتون :
:cool::cool::cool:

4089


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
05-08-2008, 10:43 AM
سلام به همه ی دوستان گلم ...
ببخشید که چندوقته نیستم ...
به خدا امتحان و کار و دردسر احاطه ام کرده ...
امروز چند تا مثال توپ و جالب آوردم امیدوارم لذتشونو ببرید ...
;)

omid55
05-08-2008, 10:50 AM
صورت سوال :

این یک مثال است که درآن یک رشته از ورودی گرفته می شود و در یک آرایه ریخته میشود که 7*11 هستش و این کار مرتبا با یک فاصله در آرایه تکرار می شود تا اینکه آرایه دیگر جای یک رشته ی کامل را نداشته باشد آنگاه کل آخرین رشته که ناقص بود پاک می گردد ...
این سوال را یکی از دوستان عزیز در messenger از من پرسیدند من هم گفتم در تاپیک هم قرار بدهم ... thumbsup

:cool::cool::cool:

4118


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
05-08-2008, 10:59 AM
خوب این هم دو کد در جواب یک دوست عزیز دیگرم ...
یکی در مورد کار با struct ها و تعریف اشیا از یک کلاس و استفاده از عملگر point to به شکل <- در کد در هنگام تعریف یک شئ از کلاس یا struct به صورت اشاره گر ...
دیگری هم با در مورد کار با رشته ها ... thumbsup:p;)
:cool::cool::cool:

4119


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
05-08-2008, 11:21 AM
اینم یک کد دیگه ... thumbsup
صورت سوال :

در ابتدا از ورودی یک رشته ی کوتاه و یک رشته ی بلند را بگیرد و سپس عملیات جستجو در رشته ی بلند برای پیدا کردن رشته ی کوتاه انجام گردد و در نهایت تعداد دفعه ی یافت شده در کنسول نمایش داده شود ... :p
کد خوبیه ... ;)
:cool::cool::cool:


[Only registered and activated users can see links]


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
05-08-2008, 11:31 AM
این برنامه ی کامل که تحمل خطای بالایی هم دارد هر عددی را که بنویسید آنرا به حروف به صورت فارگلیسی چاپ می کند ...
خیلی کامل و جالبه ...thumbsup:p


:cool::cool::cool::cool::cool:
4121


اینم لینک دانلود : [Only registered and activated users can see links]

omid55
05-17-2008, 06:32 PM
اینم یک کد به عنوان مثال از کار کردن با فایلهای باینری با دسترسی تصادفی ( random access ) کامل و به همراه main هم هست و البته شئ گرا هم هستش ...
در کل برای کار با فایلهای باینری با دسترسی تصادفی فقط باید اولا در هنگام باز کردن به صورت زیر عمل گردد :

fstream f("test.dat",ios::in | ios::out | ios::binary);

و از توابع seekg و seekp استفاده شود :
:cool::cool::cool:


4126

اینم لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

omid55
05-22-2008, 03:42 PM
اینم یک کد خیلی کامل و طولانی ( 415 ) خط که در واقع پروژه ی درس ساختمانهای گسسته ی من بودش ...
اولا شئ گراست ثانیا قابلیت تحمل خطای بسیار بالایی دارد ثالثا خیلی کامله ...
برنامه ی پر کردن یک صفحه ی n*n بوسیله ی ترومینو هستش ...
یک functional هم براش نوشتم که در کنارش هستش ...:)
امیدوارم لذتشو ببرید ...thumbsup
:cool::cool::cool::cool::cool:

4130


اینم لینک دانلود : [Only registered and activated users can see links](dis-math).rar



قربان همه ی دوستانم , امید :p

omid55
05-24-2008, 12:42 AM
این هم یک مثال خوب در مورد بحث مهم و جالب کلاس Link List ها یا همان لیستهای پیوندی ...
از مباحث مهم ساختمان داده ای هستش ...
امیدوارم مفیده فایده باشه ...
:cool::cool::cool::cool::cool:


4131



اینم لینک دانلود : [Only registered and activated users can see links]

غزاله
06-05-2008, 11:44 AM
كي از سيپلاس پلاس خوب سر در مي ياره
به من كمك كنين:-s

farzadho
06-05-2008, 11:46 AM
كي از سيپلاس پلاس خوب سر در مي ياره
به من كمك كنين:-s

شما که سوالی نکردید که کسی بخواد جواب بده....
بپرس اگه بتونم کمکت میکنم

omid55
06-06-2008, 05:15 PM
كي از سيپلاس پلاس خوب سر در مي ياره
به من كمك كنين:-s

سلام دوست عزیز ببخشید که نبودم که به پستتون جواب بدم ...
شما هر سوال یا مشکلی دارید می توانید با من یا از استادان گرامی و دوستان گلم در سایت در میان بگذارید ...
بسیاری از کاربران عزیز یا اعضای گل آشیانه با من تماس داشته و من با messenger یا بوسیله ی همین تاپیک مشکلاتشون رو حل می کنم به یاری خدا ...
شما هم اگر در زبان ++C یا هر زبان برنامه نویسی دیگه ای مشکل داشتید فقط امر بفرمایید یا با پیغام خصوصی دادن یا با messenger یا از طریق پست دادن در همین تاپیک اختیار با خودتان می باشد ...
استادان و دوستان گرامی دیگرم هم در سایت به خوبی به شما ان شاء الله کمک می کنند ...
به امید خدا به هدفم که در اولین پست تاپیک گفته ام با کمک همدیگه همه با هم میرسیم ...
ان شاء الله ...

omid55
06-06-2008, 05:32 PM
اینم یک مثال خیلی خیلی کامل از کلاس معروف و مشهور StrType که در آن توابع مختلف و زیادی برای کار کردن راحت تر و بهتر و بیشتر با رشته ها در ++C موجود است ...
در واقع کلاس بسیار کامل و جامع string.h در کتابخانه ی زبان ++C هست ولی برای آموزش ما خود یک کلاس شبیه به آن تعریف می کنیم که از همان پایه و مبنای * char در واقع استفاده می نماییم ...
یک مثال کامل حاوی تعداد زیادی operator و تابع اعم از تابع معروف جدا کننده ی زیر رشته ی substr و غیره ...
امیدوارم مفید فایده باشد ... thumbsup
:cool::cool::cool:

4164


اینم لینک دانلود : [Only registered and activated users can see links]


فعلا یا حق thumbsup:p;)

omid55
06-10-2008, 12:10 AM
ایول ایول ایول ایول ایول ایول
جدا راسته یا دارم خواب می بینم ؟؟؟ thumbsupthumbsupthumbsup
بابا من لایق این همه لطف نیستم ...
خدایا شکرت ... :cool:
من واقعا خوشحال شدم و از آقا بهروز گل گلاب و همه ی مدیرهای عزیز و دوستان priv8 و member ی گرامی و دوست داشتنی خودم و همچنین trial یهای با سواد و مهربون تشکر می کنم به خاطر همه ی کمکهاتون ... :x:rolleyes:thumbsup
بازم میگم من لایق این همه صفا و صمیمیت نیستم ...
شما همگی استادان من هستید ...
من باید جلوی همتون لنگ پهن کنم ...
از خوشحالی نمیدونم باید چی بنویسم فقط اینکه : بچه ها متشکرم بچه ها متشکرم بچه ها متشکرم بچه ها متشکرم ... :x
بازم از همه مخصوصا آقا بهروز عزیز ممنون ... thumbsup:p
*:

farzadho
06-10-2008, 12:12 AM
ایول ایول ایول ایول ایول ایول
جدا راسته یا دارم خواب می بینم ؟؟؟ thumbsupthumbsupthumbsup
بابا من لایق این همه لطف نیستم ...
خدایا شکرت ... :cool:
من واقعا خوشحال شدم و از آقا بهروز گل گلاب و همه ی مدیرهای عزیز و دوستان priv8 و member ی گرامی و دوست داشتنی خودم و همچنین trial یهای با سواد و مهربون تشکر می کنم به خاطر همه ی کمکهاتون ... :x:rolleyes:thumbsup
بازم میگم من لایق این همه صفا و صمیمیت نیستم ...
شما همگی استادان من هستید ...
من باید جلوی همتون لنگ پهن کنم ...
از خوشحالی نمیدونم باید چی بنویسم فقط اینکه : بچه ها متشکرم بچه ها متشکرم بچه ها متشکرم بچه ها متشکرم ... :x
بازم از همه مخصوصا آقا بهروز عزیز ممنون ... thumbsup:p
*:


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

omid55
06-10-2008, 12:32 AM
امید جان شما واقعا حقت بود که ارتقا بگیری چون فعالیت بسیار مفیدی داشتی
من قبلا تبریک گفتم یه بار دیگه هم میگم مبارکت باشه.

فدات بشم فرزاد جون بازم میگم من در مقابل شما و سایر دوستان گلم پشه هم نیستم ...:x
شما به بنده لطف دارید ...
من کوچیک شما و همه ی بر و بچ گل سایت هم هستم در بس بدون مسافر تو راهی ... thumbsup:cool::p;)


قربون مرامتون *: -;{@

omid55
06-10-2008, 12:39 AM
با سلام به همه ی عزیزان خودم اعضای گل انجمن آشیانه

امروز یک مثال ساده ولی جالب رو براتون آورده ام که طرز کار با فایل های باینری به صورت دسترسی تصادفی است .
این مثال یک تصویر bmp را وارونه می کند یعنی فایل تصویر را باز کرده و در آن از یک جایی به بعد به طول حدودا 30000 کاراکتر برداشته و آن را برعکس نموده و در جای خودش می نویسد تصویر جالبی درست می کنه ...
البته برای کار با فایلهای bmp باید به نکات زیر توجه نمود :


1 - برای جابجا کردن بایتها نباید از ابتدای فایل شروع کرد
54 بايت اول مربوط به اطلاعات فرمت BMP است كما اينكه ممكن است با تغيير اين

اطلاعات ، فايل همچنان استاندارد بماند

بايتهاي 20 تا 30 ( يا كمي عقب و جلو ) مربوط به سايز فايل مي باشد و خيلي حساس اند

2 - در صورتي كه بخواهيم رنگها جابجا نشوند بايد بايتها را سه تا سه تا با همان ترتيب قبلي

جابجا كرد چون در يك فايل BMP هر رنگ سه بايت را اشغال مي كند . كه هر يك براي يكي از

سه رنك اصلي ( قرمز ، سبز ، آبي )


اینم کد همین مسئله :
:cool::cool::cool::cool::cool:


4189


اینم لینک دانلود کد : [Only registered and activated users can see links]


اینم لینک دانلود یک عکس بعد از این عملیات :

[Only registered and activated users can see links]

omid55
06-10-2008, 12:49 AM
بازم از دوستان ممنونم به خاطر این همه لطفی که به من دارید و پیغام خصوصی داده بودید ...
من پیغام ها رو اغلب جواب دادم اما اصلا نمیتونم خوبی های شما دوستان رو جبران کنم ...
راستی سید احمد جون عزیز مرسی به خاطر پیغام خصوصیت ولی نمیدونم چرا هر کاری کردم نتونستم بهت جواب بدم و مرتب Error میداد روی یوزر تو ...
منم چون کار داشتم وقت نکردم بازم تستش کنم به خاطر همین تو همینجا ازت کمال تشکر را دارم و سایر دوستان هم همینطور ... :rolleyes:
از همه به خاطر همه چی بسیار متشکرم ... :x
ایشالا عروسی همتون ... thumbsup
ایشالا ... :cool:

omid55
07-01-2008, 10:21 PM
با سلام به همه ی دوستان گل خودم ...
قبل از هرچی از همه عذر می خواهم که مدتی است که نیستم و پستهای جدید نداده ام ...
بالاخره امتحانهام تموم شدند و های راحت شدم ... :cool:
خدا شاهده تا همین دیروز ارائه ی پروژه داشتم آخه مشکل اینجاست که هر درس 3 واحدی == 5000000000 پروژه و تکلیف و ارائه و غیره :ii
خوب امروز 2 تا پروژه ی خیلی کامل و جالب آورده ام که سعی می کنم در موردشون خوب توضیح بدهم که خدای نکرده بچه ها نگند جای دیگه امید کدها را بدون توضیح و خشک و خالی میذاره ... بی خیال
به نظر من بعضی از کدها اینقدر ساده و روان هستند که نیازی به توضیح ندارند ولی بعضی را مثل این 2 تا توضیح داد .
به امید اینکه بچه ها استفاده ببرند ... thumbsup

omid55
07-01-2008, 10:33 PM
این پروژه را که استاد یکی از دوستانم به آنها داده بود و من براش چند وقت پیش نوشته بودم ( LOL ) را امروز به صورت کامل برای شما عزیزان میذارم .

خوب استاد آنها سوال و موارد و بخشهای آن را در یک فایل pdf به صورت کامل نوشته و تمامی موارد خواسته شده را توضیح داده که من هم این pdf را همینجا میذارم که بچه ها اول سوال را به صورت کامل و دقیق بخونن و بعدش حلش کنند و کدش را با کد من مقایسه کنند و اگر اشکالی داشتم مطرح کنند :
:cool:

4428


اینم لینک دانلود سوال به صورت pdf برای شما دوستان :

[Only registered and activated users can see links]


خوب اینم از این ... :x

حالا توضیح در مورد حلش :
ببینید دوستان برای حل این سوال راه های زیادی هست =>
یکی اینکه فقط یک کلاس بنویسیم و به وسیله همین یک کلاس خصوصیات و یا همان field های خواسته شده را قرار می دهیم و سایر کارها و کار کردن با فایل ها را در main انجام می دهیم که به نظر من این کار بسیار کار اشتباه و نادرستی است چون که این کار به نظر من مفهوم شئ گرایی را نابود می کند و کسی که اینکار را می کند به نظر من مفهوم شئ گرایی را متوجه نشده است . ( با اینکه من خیلی ها رو دیدم که اینطوری این پروژشون رو نوشته بودن )

روش دیگر این است که یک کلاس تعریف کنیم و یک struct و به وسیله ی این دو برنامه رو بنویسیم . خوب این روش خوبی هستش ولی اگر بخواهیم در مجموعه ی مستندات ( در سوال هست ) تابع یا اپراتوری بنویسیم نمی شود ویا اصولی نیست به همین خاطر من روش سوم را خودم پیشنهاد می کنم . ( البته این روش در صورتی که ما هیچ نیازی به کار کردن بر روی اشیاء تولیدی اولیه که اینجا همان مستندات است نداشته باشیم خیلی بهتر می باشد )

روش سوم که من هم از همین روش در این مثال استفاده کرده ام معروف است به روش compostion یا ترکیب که در آن دو تا کلاس جدا تعریف می گردد . در این روش یک کلاس ( کلاس اول ) برای ساخت تک اعضا است و تک عضو ها را ایجاد می کند و کلاس دیگر ( کلاس دوم ) که برای ایجاد یک مجموعه از اعضای کلاس اول است . به عبارتی دیگر در واقع ما در کلاس دوم از تابع سازنده ی کلاس اول استفاده می کنیم و آرایه ای از آنها را برای هر شئ از کلاس دوم قرار می دهیم .

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

Refob *r;

این رو در خصوصیات کلاس دوم می گذاریم که بوسیله ی آن آرایه ای دینامیک ( با طول متغیر ) تولید میکنیم .

مفهوم ترکیب همین بود اگر به کد کمی بنگرید به خوبی براتون جا می افته ...
:p

اینم جوابش :
:cool::cool::cool:

4429


اینم لینک دانلود جواب :

[Only registered and activated users can see links]



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

:p

pooriyabahadori
07-03-2008, 02:14 AM
سلام امید جان
اولا که ممنون از آموزشهای قشنگت و همچنین اخلاق ورزشکاریتnaughty

امید جان یه سوالی داشتم خدمتت که البته pm هم دادم که گفتی........ (فکر کردم پرایویته!)
برای اینکه برناممون رو قفل کنیم که نشه با برنامه های ensource سورس اصلی برنامه رو خوند و همچنین unzipش نباشه چه برنامه ای رو پیشنهاد میکنی؟
اگه لینک بدی ممنون میشم عزیز:)

omid55
07-03-2008, 10:44 AM
سلام امید جان
اولا که ممنون از آموزشهای قشنگت و همچنین اخلاق ورزشکاریتnaughty

امید جان یه سوالی داشتم خدمتت که البته pm هم دادم که گفتی........ (فکر کردم پرایویته!)
برای اینکه برناممون رو قفل کنیم که نشه با برنامه های ensource سورس اصلی برنامه رو خوند و همچنین unzipش نباشه چه برنامه ای رو پیشنهاد میکنی؟
اگه لینک بدی ممنون میشم عزیز:)


اولا خواهش میکنم وظیفم هستش ... :x
من همیشه به دوستان تو messenger جواب دادم , میدهم و ایشالا خواهم داد ولی وقتی میبینم سوال ممکنه برای همه پیش بیاد و جالب هم هستش میگم لطفا تو تاپیک پست بدید ...
خوب دوست عزیز برنامه برای protect کردن برنامه ها زیاد هستش مثلا Decompile Protector برنامه ی خوبی است اما من به شخصه عاشق برنامه ی ASPack هستم که خیلی برنامه ی جالبی هستش و با یک الگوریتم Hash که درون خودش داره هم سایز فایل exe رو خیلی کم میکنه و هم دیگه اصلا نمیشه decompile اش کرد و حتی با notepad هم اگه بازش کنید دیگه همه چیز رمز شده و هیچی قابل تشخیص نیستش ...:pnaughty:rolleyes:

چشم چون فرموده بودید لینک هم بذار اینم لینکش :
:cool::cool::cool:
[Only registered and activated users can see links]



امیدوارم استفاده ببرید اگه مشکلی هم بود در خدمتم ... thumbsup

moeinhoseyni
07-04-2008, 03:58 PM
سلام امید جان
یه سوال داشتم ؟
میخواستم بپرسم که بهترین کتابی که درمورد بازی سازی با نرمافزار c++ در بازار به زبان فارسی
موجود هست را به من معرفی کنی البته اگه میدونی من علاقه ی زیادی به بازی سازی با این نرمافزار
دارم اگه برام سراق داری بگو
با تشکر

omid55
07-05-2008, 11:29 PM
سلام امید جان
یه سوال داشتم ؟
میخواستم بپرسم که بهترین کتابی که درمورد بازی سازی با نرمافزار c++ در بازار به زبان فارسی
موجود هست را به من معرفی کنی البته اگه میدونی من علاقه ی زیادی به بازی سازی با این نرمافزار
دارم اگه برام سراق داری بگو
با تشکر

ایول چه فکر خوبی بازی نویسی , من از بچگی عاشقش بودم :p
یادمه وقتی 14 سالم بود یک منچ دو نفره روی یک صفحه رو نوشتم ( یک چیزی تو مایه های منچ و مار و پله ) البته اون زمان VB تو بورس بودش و من هم دوست داشتم باهاش بازی بنویسم ... :x

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

مطمئنم همه ی دوستان حداقل 1 بار بازی بسیار زیبای Max Payne را انجام داده اند که به نظر
من از شاهکارهای بازی دنیاست اگر به پایان آن دقت کنید میبینید مینویسه : ++ Coded By C


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

از موتورهای آماده و مناسب و نسبتا ساده که کتاب آموزش فارسی کار با آن هم موجود هستش می توانم به 3D Game Studio اشاره کنم که اگه اشتباه نکنم جدیدترین ورژنش 7 هستش و خوبی این موتور اینه که یک بخش داره که میشه توش کد به زبان ++C نوشت و با آن کارهای زیبا خلق نمود ...
از موتورهای بسیار بسیار خوب دیگه میشه موتور Unreal را نام برد که کمی سطحش بالاتره فکر کنم برای این موتور هم با نامش کتاب فارسی موجود هستش ... :cool::pthumbsup:rolleyes:;)

omid55
07-06-2008, 12:02 AM
سلام امید جان
اولا که ممنون از آموزشهای قشنگت و همچنین اخلاق ورزشکاریتnaughty

امید جان یه سوالی داشتم خدمتت که البته pm هم دادم که گفتی........ (فکر کردم پرایویته!)
برای اینکه برناممون رو قفل کنیم که نشه با برنامه های ensource سورس اصلی برنامه رو خوند و همچنین unzipش نباشه چه برنامه ای رو پیشنهاد میکنی؟
اگه لینک بدی ممنون میشم عزیز:)


راستی پوریا جان داشت یادم میرفت اینم رو هم اضافه کنم که :


همیشه سعی کن اگه خواستی برنامه ای رو execute کنی و به کسی بدهی که نمی خواهی به کدت و یا بخشی از آن دسترسی داشته باشه علاوه بر استفاده از برنامه های مذکور سعی کن همیشه برنامه روز روی حالت release به فایل اجرایی تبدیل کن ...
همونطور که همه ی اساتید میدونند ++C در واقع 2 حالت execute دارد :

1- حالت debug
2- حالت release


در حالت Debuge به فایل اجرایی برنامه کمی اطلاعات اضافه و بی فایده که بیشتر برای کامپایلر مهم است اضافه می کند ولی اگه در حالت Release برنامه رو execute کنید فایل exe خیلی هم کوچکتر شده و هم شناسایی کدهای آن هم سخت تر میشه و امنیت برنامه بالا میره ...



چگونگی execute کردن در دو حالت مذکور :

اگه به بالای کامپایلر Microsoft Visual C++ 2005 Express Edition دقت نمایید که IDE ما هستش در یک قسمت دو حالت انتخاب موجود است : debug و دیگری release که به صورت پیشفرض بر روی debug هستش آنرا بر روی release قرار داده و برنامه را execute بفرمایید ( CTRL +F5 ) سپس به پوشه ی project خود بروید ملاحظه می کنید که یک فولدر به نام release هم در آن ساخته شده است . به این فولدر رفته و فایل exe کوچک و امن ساخت شده ی خود را بر دارید .


تازه بعد از اینکار میتونید فایل exe خودتون که release شده رو با برنامه های مذکور قبلی 6 قفله کنید ... thumbsup:p

:cool::cool::cool:

omid55
07-06-2008, 12:31 AM
خوب امروز یک برنامه ی فول براتون گذاشتم دوستان که بسیار بسیار کاربردی هستش ...
چندوقت پیشا نوشتم ...
این برنامه یک بانک اطلاعاتی برای CD ها هستش یعنی در واقع یک بانک CD را مدیریت میکنه در یک دانشکده ...
این جور برنامه ها رو همه نیاز دارند البته این کدی که اینجا گذاشتم یک نمونه ی ساده هستش ولی همه کاری میکنه و به نظر من برای یک بانک CD معمولی میتونه مناسب باشه اگرچه میشه باز هم بیشتر شاخ و برگش داد ...
خیلی جا ها به برنامه هایی مثل این یعنی بانکهای اطلاعاتی نیاز دارند ( تقریبا همه جا )

خوب بریم سر اصل مطلب دیگه :
ببینید اینجا ما دوتا Database داریم در واقع = >
1- CDs Database
2- Collegians Database
در database اول بایستی تمامی CD های بانک سی دی با همه ی خصوصیاتشان ثبت و ضبط گردند و در database دیگر باید اطلاعات دانشجویان یا دانش آموزان ذخیره گردد . توجه داشته باشید که بایستی این دو database به همدیگه به گونه ای connect باشند و با هم ارتباط داشته باشن چونکه بالاخره قرار هستش که این CD ها را به این افراد بدهیم و در برنامه باید بخشی گنجانده شود که بتوان بوسیله ی آن CD ای به فردی داد یا از او پس گرفت و به این ترتیب بانک را مدیریت نمود .

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

خوب همونطور که در مثال قبلی هم ملاحظه فرمودید برای یک بانک اطلاعاتی به 2 کلاس نیاز دارم ( البته در روش ترکیب )( composition ) پس اینجا که دو Database داریم بالطبع به 4 عدد کلاس نیاز خواهیم داشت .

در مثال قبلی کامل در مورد ترکیب صحبت کردم و چگونگی کلاسها ...

برای ایجاد ارتباط بین کلاسها هم تنها کافی است که در خصوصیتهای اشیای هر کلاس از اشیای کلاس دیگر و خصوصیاتشان بهره برد . مثلا CD با کد 123456 در دست فلان دانشجو با اطلاعات ذیل می باشد یا دانشجو با شماره ی دانشجویی 876543210 فلان CD در اختیارش است به همین راحتی حالا اینجاست که یک کدنویس خوب باید فکر کند کجا باید چگونه بنویسد و چه توابعی را نیاز دارد وگرنه اصول کار همین بود که عرض کردم ...

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


4458



اینم لینک دانلود : Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

janatan
07-06-2008, 01:49 AM
خدايش خسته نباشى
من يكى كه خيلى از درسهات استفاده كردم خيلى جاها مشكل داشتم كه با كمك درسات حل شد

اميدوارم هيمنطور ادامه بدى

omid55
07-06-2008, 11:15 PM
خدايش خسته نباشى
من يكى كه خيلى از درسهات استفاده كردم خيلى جاها مشكل داشتم كه با كمك درسات حل شد

اميدوارم هيمنطور ادامه بدى


جاناتان جان قربونت برم دادا ما چاکریم ...
من شاگرد شما هستم من کوچیک شما هستم ...
من خیلی ازت خوشم میاد و خدایش هر وقت فیلم یا آموزش جدیدی میذاری جزو اولین نفراتی هستم که آموزش یا فیلمت رو دانلود میکنم و میبینم چون میدونم جاناتان هرچی میذاره توپ و جالبه و باید دید , من که کیف میکنم باهات ...
ایشالا ما هم بتونیم روزی به درجات نزدیک شما برسیم ( به درجه و مرتبه ی شما که نمی رسیم )
خیلی حال دادی دستت درست ... thumbsup
یکبار دیگه توی تاپیک خودم هم تولدت رو تبریک میگم ... ;)
ایشالا همیشه اینقدر با صفا و با مرام باشی ... :x
در مورد تاپیک من یا کاری رو شروع نمیکنم یا اگه شروع کردم تا به مقصد درستش نرسم بیخیال نمیشم ...
ایشالا حالا حالا ادامه میدم در ضمن برای همه ی اعضای گل هم بگم که اگه خدا بخواد و وقت کنم و بچه ها استقبال کنند به زودی 1 تاپیک دیگه هم برای زبان پرطرفدار و باحال JAVA میزنم ...
ایشالا ... :cool:thumbsup:p;):rolleyes::)

بازم جاناتان عزیز ممنونم ... :x

omid55
07-07-2008, 01:34 PM
یک دوست عزیزی در تاپیکی دیگر سوال درباره ی زبان اسمبلی مطرح کرده بودند من در آنجا به ایشان جواب دادم اما چون مربوط به زبان ++C هم به گونه ای می شد من در اینجا هم جوابم رو گذاشتم تا دوستانی که به اون تاپیک نرفته اند هم از آن بهره ببرند === >>>


Assembly خیلی زبان جالب و پیچیده ای هستش و بعضی ها خیلی بهش علاقه دارن به نظر من یک برنامه نویس خوب و خبره حتما حتما باید اسمبلی بلد باشد چون اصول و قواعد و پایه های برنامه نویسی بر پایه های اسمبلی استوار گردیده است اما یک موضوع مهم این وسط مطرح است :

پس این شرکتهای بزرگ بیکار بوده اند این همه IDE توپ و با حال طراحی کرده اند ؟
مسلما نه , کامپیلرهای زبانهای برنامه نویسی همانطور که میدانید ابتدا بوسیله ی زبان اسمبلی نوشته شده اند و در واقع کاری که انجام میدهند این است که کدهای سطح بالای برنامه نویس را به کدهای اسمبلی سطح پایین و نزدیک به سخت افزار تبدیل میکنند تازه اون موقع این کدهای مذکور اسمبلی شده به کامپایلر اسمبلی داده شده تا به بیت ها یا همان 0 و 1 ها تبدیل گردد .

پس وقتی به زبان های امروز و پیشرفته ای مانند ++C یا #C یا JAVA کد مینویسید در واقع دارید هزاران خط اسمبلی مینویسید به صورتی ساده تر و قابل فهم تر و راحت تر ...

پس اگر این زبانها را فرا بگیرید خیلی بهتره تا اسمبلی را یاد بگیرید ... thumbsup

البته دانستن اسمبلی برای یک برنامه نویس خبره بسیار مهم است چون همانطور که بالاتر هم عرض کردم کامپایلر ها کدهای سطح بالا را به کدهای اسمبلی مبدل می نمایند اما خیلی اوقات پیش می آید یک کد را می نویسید و بعد مثلا در هنگام اجرا یک Error بد می دهد ( runtime error ) خوب هرچه قدر هم که دوباره کد را مرور می کنید مشکلی در آن نمی یابید . در این شرایط بهترین کار استفاده از کلید های F10 و F11 و در واقع trace کردن کامل کد داست . اما بعضی از مواقع هم می شود که با trace کردن و debug کردن هم به هیچ نتیجه ای نمیرسیم اینجا همان جایی است که اسمبلی به کمک ما می آید .

در هنگام debug کردن ( همان کلید F10 ) وقتی کامپایلر به مشکلی بر میخورد یا زمانی که برنامه تمام میشود کد نوشته شده را به صورت Assemby هم به ما نشان می دهد ( البته اگر گزینه ی Show Disassemby را انتخاب کنید ) آنگاه برنامه نویس با نگاه به کد اسمبلی آن کد سطح بالای خودش ( اگر به اسمبلی وارد باشد ) به راحتی می تواند پی ببرد که مشکلش از کجاست و مشکل و Error را رفع نماید و برنامه را به نحو احسن تولید نماید .

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


آهان اما در مورد کتاب به نظر من کتاب آقای مهندس جعفرنژاد قمی با عنوان " برنامه نویسی به زبان اسمبلی " کتاب نسبتا خوبی هستش چون چکیده ای از کتابهای بزرگ و معروف است به بیانی بسیار ساده و روان . :rolleyes:;):p:x


فعلا یا حق :cool:thumbsup:x

babak_666_devil
07-12-2008, 01:52 PM
سلام امید جان ببخشین که پست دادم
یک تاپیک زدیم راجع به برنامه نویسی میکروکنترلر که توش اسمبل هم یاد میدیم
خوشحال میشم از تجربیات شما و دوستان استفاده کنم:x
ر

omid55
07-12-2008, 03:18 PM
سلام امید جان ببخشین که پست دادم
یک تاپیک زدیم راجع به برنامه نویسی میکروکنترلر که توش اسمبل هم یاد میدیم
خوشحال میشم از تجربیات شما و دوستان استفاده کنم:x
ر


چشم بابک جون ایشالا اگه وقت کردم حتما در بخش اسمبلیش با کدهای کامل و جامع باهات همکاری خواهم کرد ... :cool::xthumbsup:p

;)

omid55
07-14-2008, 05:23 PM
سلام دوستان امروز یک برنامه ی خیلی خیلی جالب و معروف را براتون آوردم .
مطمئنم که همگی حتما اسم این مسئله ی معروف را حداقل شنیدید .
نام این مسئله ی مشهور که اگه فقط یک search توی سایتها بزنین متونین اطلاعات زیادی در مورد زمان مطرح شدن یا اولین راه حل ارائه شده و الگوریتم ها و حتی code های متعدد آن بدست آورید هستش : KNIGHT TOUR

سوال : به شما یک صفحه ی شطرنج داده می شود و یک مهره ی اسب . مهره ی اسب هرکجا که بخواهند از شما در همان محل باید قرار گیرد ( یعنی محل مبدا را هم کاربر تعیین می کند )
سپس شما بایستی با این اسب و حرکت L مانند اسب ( به طریقه ی حرکت اسب در شطرنج ) کل صفحه ی شطرنج را طی کنید و از هر خانه ی صفحه ی شطرنج هم فقط و فقط یک بار عبور نمایید.

حتما قبل از مطالعه ی جواب این مسئله یک سرچ هم در Google در موردش بزنین و کمی در موردش اطلاعاتتون رو تکمیل نمایید . مطمئنا الگوریتم ها و همچنین code های زیادی در مورد این مسئله ی معروف پیدا می کنید ولی این کد جوابی که من در تاپیکم میذارم هیچکدوم اونها نیستش چون من هیچ وقت تو تاپیکم کد یا آموزش copy و paste شده قرار نداده ام , نمیدهم و ایشالا نخواهم داد . thumbsup:x:cool:

راه حل این مسئله : برای این سوال راه حل های زیادی تاکنون ارائه شده و یک راه حل کلی و بسیار موثر که من هم در کدم از آن استفاده نموده ام این است که همیشه در هر جایی که هستید ابتدا محاسبه نمایید به چه مکانهای دیگری میتوانید بروید و سپس برای انتخاب ادامه ی راهتان تک تک راه های ممکنه را بررسی نموده که هر کدام به چند مسیر منتهی می گردند ( یعنی هر کدام چند احتمال دارند ) سپس همیشه راهی که انتخاب کنید که مینیمم حالت بعدی ممکن را داراست چون که با این کار کمتر راه برگشت از راه های بعدی را از دست می دهید .


خوب اینم از جواب سوال ( متذکر بشوم که شامل دو کد یکی functional و دیگری object oriented هستش ) thumbsup
:cool::cool::cool:


4547



اینم لینک دانلود : [Only registered and activated users can see links]



امیدوارم دوستانی که این سوال را تقاضا نموده بودند راضی شده باشند .
:x;)

omid55
07-14-2008, 05:36 PM
آهان آهان داشت یادم می رفت عزیزانی که این مسئله رو درخواست کرده بودن و دوستان علاقه مند عزیز دیگه برای اطلاعات بیشتر حتما به سایت :
The Knight's Tour ([Only registered and activated users can see links])
یک سری بزنید .

این عکس که به زیبایی طرز کار این الگوریتم را نمایش میدهد رو من از همین سایت گرفتم که اینجا هم میذارم :

Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])



در کل Google رو از دست ندید ... thumbsup:cool::x



قربان همه ی شما امید :p;)

omid55
07-18-2008, 04:14 PM
چون دوستان دفعه ی پیش مسئله ی گردش اسب را یا همان Knight Tour را در خواست کرده بودن و من هم جوابش را به صورت خداییش کامل :x گذاشتم به نظرم اومد که یک سوال معروف دیگه در همین مقوله هستش ولی خیلی آسانتر رو هم بذارم ...


مسئله ی مشهور 8 وزیر را حتما همگی شنیدید :

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

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

اینم جواب این سوال =>>>
:cool::cool::cool:

4580



اینم لینک دانلود : [Only registered and activated users can see links]



امیدوارم بچه های گل forum استفاده ببرند . :pthumbsup:x;):)

roya67
07-19-2008, 11:09 PM
چون دوستان دفعه ی پیش مسئله ی گردش اسب را یا همان Knight Tour را در خواست کرده بودن و من هم جوابش را به صورت خداییش کامل :x گذاشتم به نظرم اومد که یک سوال معروف دیگه در همین مقوله هستش ولی خیلی آسانتر رو هم بذارم ...


مسئله ی مشهور 8 وزیر را حتما همگی شنیدید :

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

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

اینم جواب این سوال =>>>
:cool::cool::cool:

4580



اینم لینک دانلود : [Only registered and activated users can see links]



امیدوارم بچه های گل forum استفاده ببرند . :pthumbsup:x;):)

ببخشید اگه به جای 8، بگن n چجوری میشه؟:-S

omid55
07-20-2008, 05:12 PM
ببخشید اگه به جای 8، بگن n چجوری میشه؟:-S


قبل از اینکه پاسختون رو بدم اجازه بدید 2 تا موضوع را مطرح کنم :

اولا خیلی ببخشید که من دیروز تو forum نبودم و نتونستم همون دیروز جواب سوالتون رو بدهم ( دیروز خیلی کار داشتم ) ( بازم از شما و دوستان گل دیگه ام که برام off هم گذاشته بودن معذرت )
ثانیا خیلی ازتون تشکر می کنم که سوالتون رو در Forum مطرح کردید چون من اصلا این topic رو برای همین زدم ( حل مشکلات اعضای گل آشیانه ) ( البته اگه توانش رو داشته باشم :-S:x )


خوب در رابطه ی با سوال دوست عزیزمون بایستی عرض کنم که :

اگر این سوال را قبلا هم شنیده باشید این سوال معروف به 8 وزیر است چون ماکسیمم حالت ممکن برای وزیرها در یک صفحه ی شطرنج همان 8 عدد است و من هم به همین خاطر برای کد 8 وزیر را قرار داده بودم اما اگر منظور شما این است که به صفحه ی شطرنج یک صفحه ی مستطیلی n * n داریم در این صورت هم می توان به راحتی همین کد رو به حالت دلخواه شما مبدل کرد فقط تغییرات ساده ای می طلبد که من به آنها اشاره می نمایم :

بایستی اولا آرایه ای به صورت دو بعدی دینامیک با ابعاد n*n را تعریف کرد که من قبلا در forum در موردش صحبت کرده ام اما برای کامل شدن پاسخم کدش را هم میذارم =>

float **array;
int m,n; // dimensions of array ( m * n )
array=new float[m];
for(unsigned i=0;i<m;i++)
{
array[i]=new float[n];
}


خلاصه بعد از تعریف این آرایه عدد n را از ورودی از کاربر گرفته و بوسیله ی آن در واقع board خواسته شده ساخته می شود . سپس همان عملیات کد قبلی را انجام می دهیم . فقط یک موضوع مهم و آن اینکه این مسئله ی معروف برای صفحه ی شطرنج 8 * 8 هستش و برای این صفحه 8 وزیر می توان قرار داد اما برای صفحات بزرگتر اغلب در بهترین حالت کوچکتر از ابعاد صفحه می توان وزیر قرار داد مثلا در یک صفحه ی 10 * 10 حداکثر 9 وزیر با شرایط خواسته شده می توان قرار داد اما من در کد قبلی چون از معروفیت سوال می دانستم که 8 وزیر در این صفحه ی شطرنج قرار می گیرند به گونه ای کد را نوشته بودم که وقتی 8 وزیر را پیدا کرد برنامه خاتمه یافته و جواب بدست آمده چاپ گردد اما اینجا نمی دانیم بر حسب n حداکثر چند وزیر در صفحه جای می گیرند پس باید چه کار دیگری بکنیم ؟

پاسخ خیلی ساده هستش . بایستی یک حالت max تعریف کنیم هر بار که وزیرها گذاشته می شوند باید تعداد وزیرها با مقدار max تا آن لحظه چک شود و اگر تعداد وزیرها قرار داده شده در آن زمان بیشتر از max تا آن لحظه است max با این تعداد وزیرها جایگزین شده و یک copy از کل صفحه هم در یک آرایه ی دو بعدی n*n دیگر قرار گیرد و به این ترتیب در پایان بهترین حالت ممکن چاپ گردد . ( به همین سادگی :cool: )


نکته ی دیگری در رابطه ی با کد :

این کد حتما جواب کاملا صحیح را ارائه می نماید چون در آن تمامی حالات ممکن چک میشود پس هیچ حالت دیگری وجود نخواهد داشت در نتیجه به پاسخ های آن مطمئن باشید . ;)thumbsup:p


راستی برای اینکه دیگه کم و کسری نباشه خودم کد درخواستی شما را با تغییرات کوچک مذکور در کد قبلی در همینجا براتون قرار می دهم :
:cool:

4607


اینم لینک دانلود : [Only registered and activated users can see links]



به این امید که استفاده ببرید دوست گرامی و سایر بچه های forum ( بماند که شما همگی استاد من هستید من بیشتر استفاده می برم از بچه های Ashiyane )

بازم از سوال به جاتون ممنون و از دوستان گل و اعضای عزیز آشیانه ممنونم به خاطر پیغام های خصوصی و off های زیباتون



اگه بازم مشکلی بود لطفا حتما مطرح کنید خوشحال میشم بتونم کمکی بکنم ...




قربان همتون امید :x

فعلا یا حق thumbsup

roya67
07-20-2008, 07:44 PM
قبل از اینکه پاسختون رو بدم اجازه بدید 2 تا موضوع را مطرح کنم :

اولا خیلی ببخشید که من دیروز تو forum نبودم و نتونستم همون دیروز جواب سوالتون رو بدهم ( دیروز خیلی کار داشتم ) ( بازم از شما و دوستان گل دیگه ام که برام off هم گذاشته بودن معذرت )
ثانیا خیلی ازتون تشکر می کنم که سوالتون رو در Forum مطرح کردید چون من اصلا این topic رو برای همین زدم ( حل مشکلات اعضای گل آشیانه ) ( البته اگه توانش رو داشته باشم :-S:x )


خوب در رابطه ی با سوال دوست عزیزمون بایستی عرض کنم که :

اگر این سوال را قبلا هم شنیده باشید این سوال معروف به 8 وزیر است چون ماکسیمم حالت ممکن برای وزیرها در یک صفحه ی شطرنج همان 8 عدد است و من هم به همین خاطر برای کد 8 وزیر را قرار داده بودم اما اگر منظور شما این است که به صفحه ی شطرنج یک صفحه ی مستطیلی n * n داریم در این صورت هم می توان به راحتی همین کد رو به حالت دلخواه شما مبدل کرد فقط تغییرات ساده ای می طلبد که من به آنها اشاره می نمایم :

بایستی اولا آرایه ای به صورت دو بعدی دینامیک با ابعاد n*n را تعریف کرد که من قبلا در forum در موردش صحبت کرده ام اما برای کامل شدن پاسخم کدش را هم میذارم =>

float **array;
int m,n; // dimensions of array ( m * n )
array=new float[m];
for(unsigned i=0;i<m;i++)
{
array[i]=new float[n];
}


خلاصه بعد از تعریف این آرایه عدد n را از ورودی از کاربر گرفته و بوسیله ی آن در واقع board خواسته شده ساخته می شود . سپس همان عملیات کد قبلی را انجام می دهیم . فقط یک موضوع مهم و آن اینکه این مسئله ی معروف برای صفحه ی شطرنج 8 * 8 هستش و برای این صفحه 8 وزیر می توان قرار داد اما برای صفحات بزرگتر اغلب در بهترین حالت کوچکتر از ابعاد صفحه می توان وزیر قرار داد مثلا در یک صفحه ی 10 * 10 حداکثر 9 وزیر با شرایط خواسته شده می توان قرار داد اما من در کد قبلی چون از معروفیت سوال می دانستم که 8 وزیر در این صفحه ی شطرنج قرار می گیرند به گونه ای کد را نوشته بودم که وقتی 8 وزیر را پیدا کرد برنامه خاتمه یافته و جواب بدست آمده چاپ گردد اما اینجا نمی دانیم بر حسب n حداکثر چند وزیر در صفحه جای می گیرند پس باید چه کار دیگری بکنیم ؟

پاسخ خیلی ساده هستش . بایستی یک حالت max تعریف کنیم هر بار که وزیرها گذاشته می شوند باید تعداد وزیرها با مقدار max تا آن لحظه چک شود و اگر تعداد وزیرها قرار داده شده در آن زمان بیشتر از max تا آن لحظه است max با این تعداد وزیرها جایگزین شده و یک copy از کل صفحه هم در یک آرایه ی دو بعدی n*n دیگر قرار گیرد و به این ترتیب در پایان بهترین حالت ممکن چاپ گردد . ( به همین سادگی :cool: )


نکته ی دیگری در رابطه ی با کد :

این کد حتما جواب کاملا صحیح را ارائه می نماید چون در آن تمامی حالات ممکن چک میشود پس هیچ حالت دیگری وجود نخواهد داشت در نتیجه به پاسخ های آن مطمئن باشید . ;)thumbsup:p


راستی برای اینکه دیگه کم و کسری نباشه خودم کد درخواستی شما را با تغییرات کوچک مذکور در کد قبلی در همینجا براتون قرار می دهم :
:cool:

4607


اینم لینک دانلود : [Only registered and activated users can see links]



به این امید که استفاده ببرید دوست گرامی و سایر بچه های forum ( بماند که شما همگی استاد من هستید من بیشتر استفاده می برم از بچه های Ashiyane )

بازم از سوال به جاتون ممنون و از دوستان گل و اعضای عزیز آشیانه ممنونم به خاطر پیغام های خصوصی و off های زیباتون



اگه بازم مشکلی بود لطفا حتما مطرح کنید خوشحال میشم بتونم کمکی بکنم ...




قربان همتون امید :x

فعلا یا حق thumbsup

خیلی ممنون از راهنمایی های مفیدتون

omid55
07-21-2008, 11:08 PM
خیلی ممنون از راهنمایی های مفیدتون


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


اما در مورد دانلود :

امروز من پست شما رو دوست عزیز قبل از ویرایشتون دیدم و دیدم که نوشته بودید که نتونستید دانلود کنید و بعد دیدم که آنرا edit کرده و گویا موفق به دانلود شده اید . چرا آخه ؟؟؟؟؟؟؟ :o
خیلی تعجب داره من 2 تا جا upload کردم چرا دانلود نمیشد ؟؟؟؟؟؟
اتفاقا الان برای اطمینان کار من 1 بار دانلودش کردم هیچ مشکلی نداشت ...
1 بار هم همین الان که دارم مینویسم دانلودش کردم و چکش کردم مشکلی نداره ...
من نمیدونم مشکلتون از کجا بوده ؟؟؟

البته دلیل اینکه همون وقت این پست رو ندادم این بودش که در حین نوشتن پست برق منزل ما رفتش ... ( بدون اطلاع قبلی ) :o
بعد از این که آمد به برنامه ی زمان بندی قطعی برق هم نگاه کردم و دیدم که در 30 دقیقه ی بعد بایستی برق میرفته است نه 2 ساعت و 30 دقیقه ی قبل , خلاصه سرتون رو درد نیارم دوستان به خودم گفتم خوب حتما این رو به جای اون ساعت استثنائا قطع کردن برای بار دوم نشستم پای PC و از اول شروع کردم به نوشتن پست ( البته این بار با save کردن ;) ) خلاصه اومدم دوباره بفرستم که دوباره برق قطع شدش , بعد از 2 ساعت دیگه الان نشستم پای PC و دارم این پست رو کامل میکنم تا امروز برای بار سوم برقمون قطع نشده بذارید این پست رو send کنم ... :p
LOL ...

فقط 1 سوال بنیادی من از همه ی دوستان دارم در محله های شما هم روزی 4 ساعت برق میره , اونم اتفاقی ؟؟؟؟؟؟؟؟؟؟؟؟ :ii


ببخشید وقتتون رو گرفتم دلم پر بودش خلاصه به ادامه ی بحث خودمون بپردازیم :

ایرادی نداره با اینکه مطمئنم که لینک قبلی حداقل برای من و چند نفر از دوستانم درست کار کرده و قابل دانلود شدن هستش ( گویا شما هم موفق به دانلود شده اید ) برای احترام به صحبت دوست گرامی خودم که فرمودند نتوانستند دانلودش کنند من آنرا از اول کامپایل و execute کردم هم در ویندوز و هم در لینوکس و مجموعه را هم zip کرده و در یک مرتبه ی دیگر هم با کمی تغییر در فایل به ذیل زیر upload کردم ...

این دفعه یک فایل zip تقریبا 16 کیلوبایتی هستش که در آن یک فولدر موجود هستش و در آن 3 فایل که یکی فایل اجرایی ویندوز با نام nQueens.exe و یک فایل اجرایی سیستم عامل لینوکس با نام n که همانطور که سروران و اساتید بهتر از من می دانند با دستور ./n در ترمینال لینوکس این فایل اجرا می شود و یک فایل کد زبان ++C با نام nQueens.cpp که همان کد قبلی هستش ...

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

در هر صورت از اشاره ی به موقعتون کمال تشکر را دارم .

اینم لینک دانلود این فایل جدید :
Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])


به امید روزی که مردم کشورهای دیگر هم برای کسب علم و دانش مجبور به یادگیری زبان فارسی بشوند و به کتابها و فروم های فارسی سر بزنند و ایران در صدر سایبر و قله ی علوم دنیا قرار بگیرد ...
به امید آن روز بزرگ ... ;)

کوچیک همه ی دوستان گل آشیانه
امید :x

یا حق thumbsup

babak_666_devil
07-22-2008, 02:04 PM
دادا درود ..افرين كه برا بچه ها خوب وقت ميذاري..ايشالا هميشه موفق باشين:x
فقط 1 سوال بنیادی من از همه ی دوستان دارم در محله های شما هم روزی 4 ساعت برق میره , اونم اتفاقی ؟؟؟؟؟؟؟؟؟؟؟؟
اره بابا اينجا بدتره..من چند دفعه كلي مقاله نوشتم منم حواسم نبود كه سيو كنم..يهو برق ميرفت .خلاصه چند بار همه كارام بر باد رفت...........مثه همين مقالات .....
خوبه باز اونجا جدول زمانبندي داره..اينجا كه از اين چيزا نداره پيش ما.راسي اگر وقت داشتي يك سر به تاپيك 8051 بزن

roya67
07-22-2008, 09:56 PM
در مورد جواب خواهش میکنم وظیفمه ... :xthumbsup
اگه بازم هر مشکلی یا سوالی داشتید لطفا حتما امر بفرمایید من تو تاپیکم همیشه سعی کردم به سوالهای به جا و مناسب به نحو احسنی که از دست بنده ی حقیرم بر می آید پاسخ دهم به امید خدا باز هم خواهم داد ...
خوشحال میشم وقتی بتونم مشکل دوستی رو حل کنم یا به یک آشیانه ای گل کمک کنم ...


اما در مورد دانلود :

امروز من پست شما رو دوست عزیز قبل از ویرایشتون دیدم و دیدم که نوشته بودید که نتونستید دانلود کنید و بعد دیدم که آنرا edit کرده و گویا موفق به دانلود شده اید . چرا آخه ؟؟؟؟؟؟؟ :o
خیلی تعجب داره من 2 تا جا upload کردم چرا دانلود نمیشد ؟؟؟؟؟؟
اتفاقا الان برای اطمینان کار من 1 بار دانلودش کردم هیچ مشکلی نداشت ...
1 بار هم همین الان که دارم مینویسم دانلودش کردم و چکش کردم مشکلی نداره ...
من نمیدونم مشکلتون از کجا بوده ؟؟؟


البته دلیل اینکه همون وقت این پست رو ندادم این بودش که در حین نوشتن پست برق منزل ما رفتش ... ( بدون اطلاع قبلی ) :o
بعد از این که آمد به برنامه ی زمان بندی قطعی برق هم نگاه کردم و دیدم که در 30 دقیقه ی بعد بایستی برق میرفته است نه 2 ساعت و 30 دقیقه ی قبل , خلاصه سرتون رو درد نیارم دوستان به خودم گفتم خوب حتما این رو به جای اون ساعت استثنائا قطع کردن برای بار دوم نشستم پای PC و از اول شروع کردم به نوشتن پست ( البته این بار با save کردن ;) ) خلاصه اومدم دوباره بفرستم که دوباره برق قطع شدش , بعد از 2 ساعت دیگه الان نشستم پای PC و دارم این پست رو کامل میکنم تا امروز برای بار سوم برقمون قطع نشده بذارید این پست رو send کنم ... :p
LOL ...

فقط 1 سوال بنیادی من از همه ی دوستان دارم در محله های شما هم روزی 4 ساعت برق میره , اونم اتفاقی ؟؟؟؟؟؟؟؟؟؟؟؟ :ii


ببخشید وقتتون رو گرفتم دلم پر بودش خلاصه به ادامه ی بحث خودمون بپردازیم :

ایرادی نداره با اینکه مطمئنم که لینک قبلی حداقل برای من و چند نفر از دوستانم درست کار کرده و قابل دانلود شدن هستش ( گویا شما هم موفق به دانلود شده اید ) برای احترام به صحبت دوست گرامی خودم که فرمودند نتوانستند دانلودش کنند من آنرا از اول کامپایل و execute کردم هم در ویندوز و هم در لینوکس و مجموعه را هم zip کرده و در یک مرتبه ی دیگر هم با کمی تغییر در فایل به ذیل زیر upload کردم ...

این دفعه یک فایل zip تقریبا 16 کیلوبایتی هستش که در آن یک فولدر موجود هستش و در آن 3 فایل که یکی فایل اجرایی ویندوز با نام nQueens.exe و یک فایل اجرایی سیستم عامل لینوکس با نام n که همانطور که سروران و اساتید بهتر از من می دانند با دستور ./n در ترمینال لینوکس این فایل اجرا می شود و یک فایل کد زبان ++C با نام nQueens.cpp که همان کد قبلی هستش ...

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

در هر صورت از اشاره ی به موقعتون کمال تشکر را دارم .

اینم لینک دانلود این فایل جدید :
[Only registered and activated users can see links]


به امید روزی که مردم کشورهای دیگر هم برای کسب علم و دانش مجبور به یادگیری زبان فارسی بشوند و به کتابها و فروم های فارسی سر بزنند و ایران در صدر سایبر و قله ی علوم دنیا قرار بگیرد ...
به امید آن روز بزرگ ... ;)

کوچیک همه ی دوستان گل آشیانه
امید :x

یا حق thumbsup

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

omid55
07-22-2008, 10:38 PM
بازم ممنون ، من روز اول نتونستم دانلود کنم ، ولی یه مدت بعد درست شد، به همین خاطر edit کردم.

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

در یک کلام من در خدمت همه ی اعضای گل آشیانه هستم ... :x:cool::pthumbsup;)

roya67
07-23-2008, 06:50 PM
ببخشید بر نامه هایی که من می نویسم این error می ده؟، با اینکه روش project درست کردنم درسته.
---------------------------
Microsoft Visual Studio
---------------------------
Unable to start program 'c:\users\t\documents\visual studio 2005\projects\new\debug\new.exe'.



The system cannot find the path specified.

omid55
07-24-2008, 04:01 PM
ببخشید بر نامه هایی که من می نویسم این error می ده؟، با اینکه روش project درست کردنم درسته.
---------------------------
Microsoft Visual Studio
---------------------------
Unable to start program 'c:\users\t\documents\visual studio 2005\projects\new\debug\new.exe'.



The system cannot find the path specified.


سلام ...
مشکلی که شما دارید راستشو بخواهید من حداقل تا حالا نداشته ام اما از این مشکلات بسیار زیاد دیدم که دوستام خیلی ها روی IDE مایکروسافت دارند . بعضی اوقات مشکلات مضخرفی پیدا میکنه این IDE و اغلب اوقات هم رفع نمیشه بدبختانه چون بالاخره این IDE نسبتا بزرگ هستش و فایلهای زیادی داره خیلی وقت ها پیش میاد چون فایل setup برنامه روی یک CD بوده و مثلا CD خش پیدا کرده و مثلا فقط یک فایل کوچک مثلا dll روی کامپیوتر copy نمیشه اونوقت ایراد هایی پیش میاد که رفعشون جز با پاک کردن IDE و نصب درست آن با یک setup سالم ممکن نیست چون اغلب اوقات نمیشه فهمید کدوم فایل مشکل داشته است , البته من سعیمو میکنم که ایشالا رفعش کنم ...

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

اگر از CD یا DVD برای نصب این برنامه استفاده کرده اید مطمئن گردید که فایل setup فاقد مشکل است ( مثلا اگر از یک setup سالم دیگه استفاده کنید خیلی بهتره )

آخرین راه برای حل مشکلتون که 100 % کارساز است اینه که یک بار برنامه رو پاک کنید و حتی اگه مشکل خیلی بیخ داره Windows تون پاک کنید و با یک setup سالم و crack شده برنامه رو نصب کنید , در این صورت حتما حتما حتما مشکلتون حل میشه اما من سعیمو میکنم به این راه کشیده نشه البته که این کار هم حداکثر 1 ساعت کار داره ... :x:cool:thumbsup

خوب اول لطفا به چند سوال من پاسخ دهید :

1- دقیقا بفرمایید از کدوم IDE مایکروسافت استفاده میکنید ؟ ( مثلا Microsoft Visual C++ 2005 Express Edition یا Full Edition که همه ی زبونها اعم از VB و C# و ASP و J# و ... رو داره )

2- این کدی که استفاده می کنید به درستی و بدون مشکل copmile میشه ؟

3- برای این کد در مسیر مذکور ( c:\users\t\documents\visual studio 2005\projects\new\debug\new.exe ) فایل exe به وجود آمده است ؟ ( لطفا به فولدر مذکور رفته و دقیقا ببینید چه فایلهایی با چه پسوند هایی موجودند ؟ )

4- لطفا به مسیر c:\users\t\documents\visual studio 2005\projects\new\new\Debug\BuildLog.htm رفته و فایل BuildLog.htm رو یافته و اینجا upload نمایید یا لینک بدید یا mail بزنید یا هر جوری که می خواهید تا من بتونم log برنامتون رو ببینم ( اگه همینجا upload کنید بهتره تا بچه ها هم Log های این IDE رو هم در این تاپیک ببینند )( البته صاحب اختیارید )

5- همچنین ممکن هست که تنظیمات بسیار زیاد و نسبتا پیچیده ی IDE رو تغییر داده باشید ( یا کسی اشتباها تغییر داده باشد ) که در آن صورت من بایستی تمام تنظیمات project و خود Compiler تون رو ببینم که بعید میدونم شما بتونید همه ی آنها رو برام بنویسید یا عکس بگیرید ( البته اگه هیچ راهی پیدا نشد این راه میشه راه یکی به آخر مونده )

خلاصه هر اطلاعاتی میتونید در مورد Compiler تون بدید لطفا , ایشالا حتما درستش می کنیم...

راستی IDE های خوب دیگه هم هست مثلا eclipse که خیلی توپه همچنین با ++g لینوکس هم میتونید execute و compile کنید ...

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

آشیانه یک دونه است از خزر تا خلیج فارس :cool::x:p;)thumbsup

roya67
07-24-2008, 07:16 PM
می شه در مورد این برنامه راهنماییم کنید؟
«در بسياري از کاربردها در ذخيره سازي داده¬ها ما به عمليات فرهنگ لغتي نياز داريم(insert, delete, search). محدوديت آرايه¬ها در اين زمينه مشهود است. اول اينکه هزينه جستجو و حذف زياد است و ديگر اينکه اگر تعداد داده¬ها زياد باشد گرفتن آرايه¬اي با آن سايز دشوار و حتي گاهي غير ممکن است. مي¬خواهيم داده ساختاري به نام HashTable با تابع تقسيم پياده سازي کنيم. براي اين منظور يک کلاس به نام HashTable پياده¬سازي کنيد که متدهاي زير را داشته باشد. لازم به ذکر است که در پياده سازي کلاس بايد لزوماً تعريف کلاس از پياده¬سازي آن جدا باشد (دو فايل .h و .cpp نوشته شود).bool insert(int data);
bool delete(int data);
«bool find(int data);
:-S

omid55
07-25-2008, 05:06 PM
می شه در مورد این برنامه راهنماییم کنید؟
«در بسياري از کاربردها در ذخيره سازي داده¬ها ما به عمليات فرهنگ لغتي نياز داريم(insert, delete, search). محدوديت آرايه¬ها در اين زمينه مشهود است. اول اينکه هزينه جستجو و حذف زياد است و ديگر اينکه اگر تعداد داده¬ها زياد باشد گرفتن آرايه¬اي با آن سايز دشوار و حتي گاهي غير ممکن است. مي¬خواهيم داده ساختاري به نام HashTable با تابع تقسيم پياده سازي کنيم. براي اين منظور يک کلاس به نام HashTable پياده¬سازي کنيد که متدهاي زير را داشته باشد. لازم به ذکر است که در پياده سازي کلاس بايد لزوماً تعريف کلاس از پياده¬سازي آن جدا باشد (دو فايل .h و .cpp نوشته شود).bool insert(int data);
bool delete(int data);
«bool find(int data);
:-S

خوب در مورد سوالتون باید بگم که اگر منظور Dynamic نوشتن آرایه ها به بهترین شکل از لحاظ حافظه هستش که من قبلا هم در موردش زیاد گفته ام و کار ساده ای می باشد ...
اما اگر منظور شما یک ساختمان داده ای قوی و مستحکم برای حل مسئله ی مذکور می باشد خوب می توان به ساختار داده ای های معروفی اشاره نمود ...
مثلا به نظر من ساختار داده ی لیست خیلی میتونه در این سوال موثر باشه و مشکلات رو به راحتی حل کنه یا استفاده از کلاس Vector برای مثال که بسیار جالب و جامع هستش ...

من در پست شماره ی 211 یک مثال کامل از link list ها گذاشته ام که میتونه به شما کمک کنه و این هم لینکی که در آنجا هم هستش :

Ripway.com - fast, free file hosting and website hosting ([Only registered and activated users can see links])

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

هر جور خودتون بخواهید ...

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

بازم میگم آشیانه یک دونه است از خزر تا خلیج فارس :cool:;):pthumbsup:x:)

omid55
07-31-2008, 11:20 AM
سلام به دوستان عزیز خودم ... :x
امروز برای شما کد جدیدی آوردم که بسیار ساده ولی خیلی کاربردی میتونه باشه مخصوصا برای هکرهای عزیز!!!!! ;)
خوب البته این خیلی ساده هستش ولی میتونه کمک کنه ...
شما میتونید به سادگی به command line ویندوز یا همون Dos Prompt خودمون در کدهای C++ دست پیدا کرده و به سادگی هر دستوری که می خواهید رو اجرا نمایید مثل اطلاع مورد نظرتون رو > 1.txt و tftp برای مثال یا هرچیز دیگه ای که هکرهای عزیز هم به خوبی مطلعند ... :D

خوب بریم سر اصل مطلب ( بله میگید یا نه ؟؟؟ ) :D

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


system("dir");


ابتدا مینوسید system سپس پرانتز باز و دابل کوتیشن و سپس Command مورد نظرتون که می خواهید در Dos Prompt اجرا شود رو بنویسید و سپس دوباره دابل کوتیشن پرانتز بسته و در آخر هم سمی کالمن به همین سادگی و به همین خوشمزگی ... :))

حتی میتونید خود cmd رو به عنوان فرمان بنویسید تا یک command prompt کامل در محل file اجرایی داشته باشید ...

راستی اینم بگم نیاز به include هیچ header ای ندارید بر خلاف صحبت بعضیا که می گویند باید windows.h را include کرد ولی من به شما با قاطعیت عرض میکنم که این دستور در دستورات خود compiler هستش و نیازی به هیچ include ای نداره استفاده کردنش ...

من یک کد هم براش نوشته ام که بسیار ساده هستش و به وسیله ی مطالب مذکور نوشته شده پس اگر گفته های بالایی را خوانده باشید در رابطه با کد هم هیچ مشکلی نخواهید داشت ...

فقط یک نکته ی کوچک و ظریف لطفا اسم فایل اجرایی رو cmd.exe نگذارید همینطور که من هم در مثالم برای مثال command.exe قرار داده ام چون اگر به آن فرمان cmd دادید در آن صورت دو مرتبه فایل اجرایی خودتون که نامش همین هستش رو اجرا می کند نه command prompt ویندوز رو ... thumbsup


4829




اینم لینک برای دانلود : [Only registered and activated users can see links]


امیدوارم بچه ها لذت ببرند ... :cool::p

:x ((((((((((((((((( قدرت همیشه دست ماست ))))))))))))))))))) :x

omid55
08-07-2008, 11:21 AM
اینم کد همون مثال قبلی یعنی دست رسی به خط فرمان سیستم عامل فقط با این تفاوت که این یکی برای سیستم عامل لینوکس هستش ( به خاطر در خواست یکی از دوستان )
به همراه فایل اجرایی در linux برای دست پیدا کردن به terminal ...
کدش تقریبا یکی است در واقع قسمتهای اصلی که دقیقا یکسان هستند اما قسمتهای جزئی ممکن است فرق کرده باشد اما دو کد در واقع یک کد هستند ... :cool:thumbsup:p;)
:cool::cool::cool::cool::cool:

4830



اینم لینک برای دانلود : [Only registered and activated users can see links]

omid55
08-07-2008, 11:31 AM
تفاوت میان struct و class در ++C :


نوشتن struct و class در ++C از لحاظ syntax کاملا شبیه به هم هست یعنی اینکه ابتدا می نویسید class یا struct سپس نام مورد نظر و بعد از آن آکولاد باز و نوشتن بدنه ی ساختار مورد نیاز و در پایان هم آکولاد را بسته و بعد از آن هم سمی کالن می گذارید ...

همانطور که ملاحظه فرمودید کاملا از لحاظ ظاهر شبیه به هم هستند اما تفاوت class و struct در 2 موضوع دیگر است :

1- در کلاس حالت default در واقع private هستش یعنی اینک اگر هیچ مشخصه ای مانند public یا protected و یا private را در بالای تعریف متد های خود قرار ندهید خود class به صورت پیشفرض بالاترین حالت امنیتی یعنی private را بر می گزیند و همانطور که می دانید در class مهمترین چیز امنیت کلاس است و به همین خاطر در کلاس همه چیز بایستی با بالاترین ضریب امنیت ممکن نگهداری شود و فقط از طریق توابع بتوان به ویژگی ها و فیلدها در واقع دست یافت .
اما در struct موضوع متفاوت است , در struct حالت default برای همه ی فیلدها و متد های struct حالت public است یعنی اگر شما هیچ کدام از حالات قید شده در بالا را استفاده ننمایید خود struct به صورت پیشفرض حالت public را بر می گزیند پس از این رو می توان متوجه شد که در struct همه چیز بهتر است که public و در واقع عمومی باشد و ذات struct برای استفاده ی سریع و راحت از ویژگی های موجود در آن است اصلا برای همین تعریف گردیده است (برای سهولت استفاده از فیلدهای طبقه بندی شده ی آن)

2- تفاوت دوم در این است که یک class در واقع بخشی بزرگ و پیچیده برای تعریف خصوصیات و توابع متعدد است و در یک کلاس ساده گاهی بیش از 100 یا 200 تابع ( متد ) و 50 یا 60 ویژگی ( فیلد ) می توان مشاهده کرد چون ذات کلاس این گونه است و در واقع همیشه نیاز است با اشیا تعریف شده در کلاس کارهای بسیاری کرد و پردازش های فراوان انجام داد پس به خاطر همین مهم به توابع گوناگون و گاه بسیار پیچیده و طولانی در class ها نیازمندیم .
اما struct بدین شکل نمی باشد . در واقع struct هم می توان مثل کلاس توابع متعدد و گوناگون تعریف نمود اما این کار روش درستی نیست چون struct همواره بایستی بسیار ساده باشد و در آن فقط چندین متغییر یا به عبارتی دیگر خصوصیت تعریف گردیده باشد و هیچ گونه تابعی در آن یافت نگردد , حداکثر تابع مورد نیاز فقط یک تابع سازنده در آن موجود باشد و بس . اگر تابع سازنده هم ننویسید هیچ مشکلی پیش نمی آید و مثل کلاس خود کامپایلر یک تابع سازنده ( constructor ) برای struct شما می نویسد ولی خوب همیشه بهتر است خودمان کارها را انجام بدهیم و ما عنان compiler را در دست داشته باشیم نه بر عکس ;)
خوب این قضیه همانطور که عرض کردم باز هم به خاطر ذات struct است که بایستی فقط مجموعه ای از خصوصیات باشد و تابعی در آن نباشد چون در آن همه چیز public است و باز هم به همین خاطر امنیت کار پایین بوده پس بهتر است بر طبق اصول پیش برویم اگر ملاحظه کردید که واقعا به چندین تابع و اپراتور برای مثال نیاز دارید خوب می توانید class بنویسید به جای struct ...


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

البته باز هم بگم که شما مختارید در ++C هر جوری که دوست دارید از این ساختارها استفاده نمایید و هیچ مانعی برای شما وجود ندارد و تصمیم با شماست ولی اگر از اصول و قواعد پیروی کنیم مطمئنا موفق تر خواهیم بود چون در غیر اینصورت من این همه در مورد استفاده ی درست و به جا و بهینه ی class و struct نمی نوشتم ... :D
:cool::pthumbsup:x;)

omid55
08-12-2008, 03:53 PM
سلام به دوستان عزیز آشیانه ای خودم :xthumbsup:p;)


امروز می خواستم طریقه ی نوشتن صحیح فایلهای Header یا به زبان خودمون سرفایلهای ++C را آموزش بدهم :

خوب همانطور که می دونید ++C یکی از بهترین زبانهای برنامه نویسی در سرعت و کارایی هستش چون هم کدهاش خیلی کوتاه هستند و هم فایلهای اجرایی آن بسیار کوچک و کم حجم می باشند ( تازه اگه Release کنید که فبهاااااا )
این به خاطر ایده های خوب و نو در این زبان است مثلا ایده ی اضافه کردن Header های مورد نیاز به کد بسیار جالب توجه بود یعنی فقط چیزهای مورد نیاز را داشته باشیم نه همه رو , از این مهمتر در ++C در نوشتن سر فایلها نکته هست که باعث بهتر شدن کد ها هم میشود و حجم کد پایانی را کاهش می دهد .

یک آزمایش : :cool:

لطفا یک کد ++C را بنویسید برای مثال Hello World !!! که ساده ترین کد تمام زبانها هستش بعد آن را complie و سپس execute بفرمایید و به حجم فایل اجرایی تولیدی نگاهی انداخته و آن را به خاطر محترم بسپارید .
سپس هر آنچه که Header بلد هستید یا شنیده اید یا دیده اید را به کد include بفرمایید سپس دوباره کد را complie و سپس execute بکنید و این بار هم به حجم فایل اجرایی تولیدی بنگرید , آیا حجم فایل هیچ تغییری نموده است ؟؟؟


لطفا این آزمایش بسیار ساده را انجام دهید و ملاحظه بفرمایید که هیچ تغییری در حجم فایل ایجاد نمی شود ولی دلیل این امر :

اگر به Header های خود ++C نگاهی بیندازید ملاحظه می فرمایید که همه جا #ifndef نوشته شده که این عبارت باعث این مهم می گردد . خوب کامپایلر ++C در واقع ابتدا به کد شما نگاهی می اندازد و می بیند که شما از چه توابعی و کلاسهایی از هدر های include شده استفاده کرده اید و فقط بخش هایی که از آنها استفاده شده کدشان افزوده می شود و بقیه اضافه نمی گردد , به همین دلیل است که در کد Hello World !!! چون فقط از cout استفاده شده پس هیچ کدام از توابع و کلاسهای سر فایلهای دیگه و حتی خود iostream.h افزوده نمی گردد و در واقع با این ترتیب خود کامپایلر فقط کدهای موردنیاز را اضافه کرده و بقیه را رها می کند و در نتیجه حجم کد و فایل اجرایی کمترین مقدار ممکن می گردد .



خوب طریقه ی نوشتن آن را هم توضیح می دهم تا اگه شما هم خواستید یک Header بنویسید بتوانید این رویه ی خوب را همچنان پیش بگیرید :

در Header ها غالبا کلاس ها و تعریف آنها را می نویسند و استفاده از آنها در فایلهای cpp نوشته می شوند چون قابلیت Build دارند اما نوشتن سر فایلها محدودیتی ندارد میتونید هر چی دلتون می خواد توشون بنویسید ...

خوب اول از همه فایل Header همانطور که می دانید پسوند .h دارد و یک نام هم باید داشته باشد مثلا ما نام آن را test قرار می دهیم پس فایل مورد نظر می شود test.h سپس ابتدا قبل از هر کدی می نویسیم # ifndef که در واقع مخفف عبارت if not defined است و به همانظور مذکور است که اگر از این تابع یا کلاس استفاده نشده در کد یا اصطلاحا در کد define نشده این کد را که تعریف آن است را اضافه نکن .
بعد از آن بایستی نام فایل Header را با حروف بزرگ بنویسید و به جای . هم بایستی _ قرار دهید .
در سطر بعدی # define را می نویسم که نمایانگر تعریف کدهای سر فایل مورد نظر می باشد سپس دوباره نام سرفایل به همانصورت بالایی نگاشته می گردد .
سپس کدهای مورد نظر اعم از تعریف class ها یا template ها یا توابع و یا هر چیز دیگه رو می نویسیم و در پایان هم در یک خط عبارت # endif را می نویسیم که نمایانگر پایان تعریف این کلاس یا تابع یا هرچیز دیگه است ...

ممکن است در یک فایل هدر صدها و یا حتی هزارها # define و # endif باشد که فقط آنهایی به کد اضافه می شوند که مورد نیاز هستند , پس روش بسیار خوبی در Header نویسی است و توصیه می گردد .

اینم کد این کار برای تکمیل توضیح ها :

//test.h

#ifndef TEST_H
#define TEST_H

...
...
...

#endif

Glossy
08-30-2008, 04:15 PM
سلام به همه دوستان
امید جان سلام من نمیتونم مثال های صفحات اول رو دانلود کنم not found میده.میشه یه تست کنی؟؟

omid55
08-30-2008, 07:46 PM
سلام به همه دوستان
امید جان سلام من نمیتونم مثال های صفحات اول رو دانلود کنم not found میده.میشه یه تست کنی؟؟

از شما دوست گرامی خیلی متشکرم گویا server مشکل پیدا کرده هر چه سریعتر ترمیمشون میکنم ...
به زودی هم چند موضوع جدید میذارم دوستان ... ;)

بازم ممنون :cool:thumbsup:x

WAHID
08-30-2008, 08:58 PM
آقا شرمنده فکر کنم تاریخ مصرف تاپیک داره میگذره!!!!:ii
چند تا فایل اولی نمیشه دانلود کرد!!


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^
heartقلب ایران وطن ما واسه ما می زنه امروز#######میگه سر بلندی من دست توست جوون امروزheart
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvv

omid55
09-01-2008, 01:02 PM
آقا شرمنده فکر کنم تاریخ مصرف تاپیک داره میگذره!!!!:ii
چند تا فایل اولی نمیشه دانلود کرد!!


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^
heartقلب ایران وطن ما واسه ما می زنه امروز#######میگه سر بلندی من دست توست جوون امروزheart
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvv

به زودی درست میشه همه ی لینکها ...
ایشالا با کمک مهدی عزیز هر چه زودتر ترمیم می شوند ...
موضوع بعدی رو هم میذارم ...
موضوع بعدی به درخواست بچه ها templates هستش که خیلی جالبه ... :cool:thumbsup:x;):rolleyes:

Cyber Killer
09-07-2008, 12:28 PM
از این به بعد در این تاپیک براتون آموزش برنامه نویسی C و ++C می ذارم. امیدوارم خوشتون بیاد.thumbsup

cigar

Cyber Killer will kill weak systems, be careful

Cyber Killer
09-07-2008, 12:58 PM
به نظر خودم بهتره اول به ++C بپردازیم و بعد به C هم خواهیم پرداخت.

مقدمه:
زبان ++C در اوایل دهه ی 1980 از زبان C توسعه یافت. زبان C از سبک برنامه نویسی ساخت یافته پیروی می کند در حالی که ++C از سبک برنامه نویسی شیئ گرا پیروی می نماید. پی بردن به تفاوت این دو سبک برنامه نویسی ارزش ++C را در مقایسه با C روشن تر می سازد.
در دهه ی 1960 میلادی تولید بسیاری از نرم افزار ها با مشکل مواجه شد. زمانبندی تولید نرم افزار به تاخیر می افتاد و هزینه ها بالا بود. سپس تحقیقاتی برای بهبود سازی این وضعیت انجام گرفت و در نهایت منجر به برنامه نویسی ساخت یافته گردید. برنامه نویسی ساخت یافته روش منظمی برای نوشتن برنامه هاست که منجر به نوشتن برنامه هایی می شود که خوانایی آن ها بالاست و تست و اشکال زدایی آن ها راحت تر و اصلاح آن ها آسان تر است.
در برنامه نویسی ساخت یافته برنامه به مجموعه ای از فعالیت ها تصور می شود که باید بر روی داده ها انجام شوند. در این روش هر مسئله ی پیچیده ای به مجموعه ای از مسئله های کوچکتر تجزیه می شود تا اینکه قابل درک باشند. به عبارت دیگر برنامه نویس سعی می کند رویه هایی بنویسد که نیازمندی های سیستم را برآورده کنند.
برنامه نویسی ساخت یافته روش موفق برای حل مسائل پیچیده است اما مشکلات خاص خودش را دارد. در این روش داده ها از فعالیت ها (متد هایی) که آن ها را پردازش می کنند جدا است. وقتی حجم داده ها زیاد می شود نگهداری آن ها مشکل می گردد. هرچه بیشتر با داده ها کار می کنید با مشکلات بیشتری مواجه می شوید.
معروفترین زبان های برنامه نویسی که برای برنامه نویسی ساخت یافته طراحی شده اند عبارتند از: پاسکال و زبان C.

برنامه نویسی شیئ گرا:
برنامه نویسی شیئ گرا روش نوینی است که قطعات نرم افزاری ایجاد می کند که در برنامه های مختلف مورد استفاده قرار می گیرند. همانطور که کامپیوتر از قطعات سخت افزاری ساخته می شود در برنامه نویسی شیئ گرا برنامه از قطعات نرم افزاری ساخته می شود. به این ترتیب سرعت تولید نرم افزار افزایش می یابد. قابلیت خوانایی برنامه هایی که به این روش نوشته می شوند بالا بوده و تست و عیب یابی و اصلاح آن ها آسان است.
با بعضی اصطلاحات مهم در برنامه نویسی شیئ گرا شروع می کنیم. به طراف خود نگاه کنید. اشیایی را می بینید این اشیاء صفاتی(attributes) دارند و همینطور رفتار هایی (behaivior) از آن ها سر می زند. هدف از برنامه نویسی شیئ گرا مدلسازی اشیای دنیای واقعی است. برای این کار از مفهوم کلاس استفاده می شود. و در برنامه نویسی هر شیئی را که از کلاس بسازیم نمونه سازی می گویند.



مقدمه از کتاب ++C جعفر نژاد قمی با تلخیص


خوب می دونم که با این مقدمه سرتان را درد آوردم ولی سعی کردم مختصر و مفید بنویسم.;)

Cyber Killer
09-07-2008, 01:01 PM
این چند تا از بهترین کتاب های زبان ++C هستند:

Ditle&Ditle English Reference

Silver Shot

C++ 2007 by Ditle&Ditle, Translated by Dr. Gholzom

:ii

Cyber Killer
09-07-2008, 01:31 PM
خوب دیگه می ریم سراغ آموزش.

بذارید اینجا من اهدافمو مشخص کنم بعد بریم سراغ درس ها
اول از همه با ساختار برنامه ها و دستورات ++C آشنا می شید بعد برنامه های معمولی می نویسید تا دستتون راه بیفته (من اینجا مثال ها رو با توضیح کامل می ذارم) بعدش می ریم سراغ برنامه نویسی ساخت یافته و یخورده با تابع ها دست و پنجه نرم می کنیم و در نهایت برنامه نویسی شیئ گرا رو خدمتتون آموزش می دم. سر آخر هم اگر دوستان مشتاق باشند شروع می کنیم به برنامه نویسی تحت شبکه یا همون Socket Programming.

بعد از ++C هم می ریم سراغ C و همینا رو اونجا هم یاد می گیرید. البته دستورات رو هم بررسی می کنیم.

برای مباحث اکسپلوییت نویسی و ویروس نویسی هم بعد از این تاپیک تو انجمن هاشون مطلب می ذارم. (البته بعد از این دوره ی آموزشی!)


-------------------------------------------------------------------------------------------------------

چند نکته ی ابتدایی: در آخر هر دستور در ++C از سیمی کالن (;) استفاده می شود.
هر دستور می تواند در چند خط ادامه داشته باشد و هر خط می تواند شامل چند دستور باشد.
حداکثر طول یک خط برنامه 254 کاراکتر است.


انواع داده ها در زبان ++C

در ++C پنج نوع داده ی اصلی داریم:
char : داده های کاراکتری اسکی
int : اعداد صحیح
float : اعداد اعشاری (7 رقم دقت)
double : اعداد اعشاری (15 رقم دقت)
void : که برای توابع استفاده می شود.

این انواع می توانند به پیشوندهای short , long , signed , unsigned یا ترکیبی از دو تای اینها مثل signed long انواع داده ی متفاوتی بسازند.


متغیر ها

متغیر ها نامی برای کلمات حافظه اند که داده ها در آن ها قرار می کیرند و محتویات آن ها ممکن است در طول اجرای برنامه تغییر کند. برای مراجعه به متغیر ها از نامشان استفاده می شود. این نام می تواند ترکیبی از حروف a تا z و A تا Z و اعداد 0 تا 9 و همینطور حرف ربط (_) باشند البته به شرطی که حرف اول آن عدد نباشد.
برای اعلان متغیر ها به این صورت عمل می کنیم:
;نام متغیر نوع داده


مقدار دادن به متغیر ها:
1. هنگام اعلان متغیر
int x=0;

2. پس از اعلان نع متغیر و با دستور انتساب (=)
int x;
x = 0;

3. دستورات ورودی
cin>>x;

اینم از متغیر ها. من سعی می کنم اینجا خلاصه حرف بزنم. اگه خدا بخواد در آینده مقاله های خودم رو هم اینجا می ذارم.
در پست بعد به ثوابت و برخی از دستورات می پردازیم.

Cyber Killer
09-07-2008, 01:33 PM
بچه ها یه نکته هست و اونم اینکه سیمی کالن (;) در آخر خط سمت راست قرار می گیرد. مطالبی که نوشتم یه خورده مشکل دارن که بعدا درستشان می کنم.

Mer30lo1ad

farzadho
09-07-2008, 01:36 PM
سلام دوست عزیز
ممنون از فعالیتی که داری ولی قبلا امید آموزش c++ رو به بهترین نحو انجام دادند.
آموزش زبان C++ قدم به قدم از طریق مثال
در بخش اعضا تازه وارد که بزودی به این بخش منتقل میشود.
موفق باشید.

Cyber Killer
09-07-2008, 01:41 PM
بچه ها می خوام دو تا برنامه معرفی کنم که شما با آن ها برنامتون رو می نویسید و کامپایل می کنید:

Turbo 4.5[1] C++ win

Borland C++ V5.02

البته من خودم ++Turbo C رو ترجیح می دم ولی این یکسری از فایل های سرآیند رو نداره ولی Borland که خودش مخترع این زبانه اونا رو کامل داره.

انتخاب با خودتون!:p

Cyber Killer
09-07-2008, 03:02 PM
دوستان من در اینجا سعی می کنم قدم به قدم و از ابتدا این زبان رو براتون توضیح بدم و تا سطح فوق پیشرفته ادامه بدم. در ضمن همانطور که قبلا هم گفتم هدف این تاپیک فقط آموزش ++C نیست و ما زبان C را هم بررسی می کنیم. چون معمولا هکر ها برای اکسپلوییت نویسی و غیره از این زبان هم استفاده می کنند.

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

1. استفاده از define#
مقدار نام ثابت define#

نکته: در آخر این کد از ; استفاده نمی شود. دلیل آن هم اینست که define# یک دستور پیش پردازنده است. نه دستور زبان ++C. پیش پردازنده (preprocessor) برنامه ی سیستم است که قبل از ترجمه ی برنامه توسط کامپایلر تغییراتی در برنامه ایجاد می کند. پیش پردازنده مقدار ثابت را به جای نام ثابت در برنامه قرار می دهد و این دستور در زمان اجرا وجود ندارد. به ثوابتی که به این صورت تعریف می شوند ماکرو نیز می گویند. معمولا نام ثوابت با حروف بزرگ نوشته می شود تا از دیگر متغیر های برنامه تفکیک شوند.

مثل:
#define PI 3.14

2. استفاده از دستور const
;مقدار = نام ثابت نوع داده const

مثل:
const float PI = 3.14

:-S

Cyber Killer
09-08-2008, 02:38 AM
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

cigar

Cyber Killer will kill weak systems, be carefull

Cyber Killer
09-08-2008, 02:48 AM
عملگر ها نمادهایی هستند که اعمال خاصی رو انجام میدهند.
در زبان ++C عملگر ها چند دسته اند:
1. عملگر های محاسباتی
2. عملگر های رابطه ای
3. عملگر های منطقی
4. عملگر های ترکیبی
5. عملگر های بیتی
و
6. عملگر های متفرقه

عملگرها بر یک یا دو مقدار عمل می کنند. مقادیری را که عملگر ها بر روی آن ها عمل می کنند عملوند گویند.

حال به بررسی هر دسته می پردازیم:

عملگر های محاسباتی:
این عملگر ها اعمال محاسباتی را روی عملوندها انجام می دهند. در اینجا هر عملگر را با توضیح آن لیست می کنم:

- تفریق و منهای یکانی مثل: -x or x - y
+ جمع مثل: x + y
* ضرب مثل: x * y
/ تقسیم مثل: x / y
% باقیمانده تقسیم مثل: x % y
-- کاهش (decrement) مثل: --x or x--
++ افزایش (increment) مثل: ++x or x++

و اما فرق --x با x-- : این دو کد در یک کاربرد کاملا با هم متفاوت خواهند بود. به کد زیر توجه کنید:

int x,y;
x = 10;
y = ++x;


در این کد دو متغیر x و y را از نوع صحیح تعریف کردیم. سپس مقدار 10 را به x اختصاص دادیم. حال رخداد مهم در خط سوم روی می دهد. در این خط یک واحد (عدد یک) به x اضافه شده سپس مقدار جدید (یعنی 11) در متغیر y قرار می گیرد. حال اگر خط سوم به شکل زیر باشد چه؟


y = x++;


در این حالت ابتدا مقدار x در y می نشیند سپس به x یک واحد افزوده می شود. در نتیجه x و y به ترتیب 11 و 10 خواهند بود.

نکته دیگری که باید ذکر کنم اینه که ممکنه شما بخواهید در برنامتون چند عملگر را با هم داشته باشید. مثل:
x = x + y / 2 * 3;
در این حالت چه می شود؟ کدام مقادیر ابتدا با هم عمل انجام می دهند؟ در اینجا بحث تقدم عملگر ها مطرح می شود. ++C به ترتیب زیر عملگر ها را اعمال می کند:

بالا ترین تقدم ++ --
- (منهای یکانی)
% / *
پایین ترین تقدم - +

توصیه من در این مورد اینه که بهتره از پرانتز استفاده کنید و خودتون به کامپایلر بفهمونید (!) که کدام عملگر باید روی کدام عملوندها عمل کند.
مانند:

x = (y + z) * (a - b)

عملگر های رابطه ای:
عملگر های رابطه ای ارتباط بین عملوند ها رو مشخص می کنند. اعمالی مثل تساوی دو مقدار و ...
این هم لیست این عملگر ها:
< بزرگتر
=< بزرگتر مساوی
> کوچکتر
=> کوچکتر مساوی
== متساوی
=! نامساوی

الان 2:30 نصفه شبه. می خواستم این پست رو کامل کنم که دیگه خوابم می یاد. فردا ادامشو براتون می ذارم.

راستی ممکنه فکر کنید خیلی دارم مقدماتی حرف می زنم و زیادی طولش می دم اما مطمئن باشید مقدمات رو که کلا 6 یا 7 تا مبحث کوچولو هست گفتم بعد می زنم دنده 5 و مثل برق جلو می رم. تا زودتر این بحث های خسته کننده رو تموم کنیم و به بحث شیرین Socket Programming بپردازیم. اون جا دیگه فکر نکنم کسی حوصله اش سر بره. سعی می کنم این پست ها رو تو چند روز تموم کنم.

خور........پففففففففففففففففف ....!!!!!!! :o
ها چی شد...ببخشید فعلا بای!

</operands>
</This Session>

Cyber Killer
09-08-2008, 03:02 AM
از مدیر محترم خواهش می کنم یه فکری به حال عدم دسترسی به ویرایش پست ها بکنند. من یه پست رو به فرمت اشتباه ارسال کردم و یه جا هم غلط کلمه ای بود که متاسفانه نتوانستم اصلاحشان کنم.
از همه عزیزان هم بابت این مشکل پوزش می خواهم.
lo1ad


All thing seemed Bad!

cigar

omid55
09-08-2008, 08:09 PM
خوب بچه ها من اومدم با یک عالمه آموزش و مثال جدید ...
ایشالا با کمک هم هرچه بیشتر ASHIYANE را بهبود می دیم ...

اینم از آموزشهای امروز من === >>>>>>>>>>>
:cool::cool::cool::cool:thumbsupthumbsupthumbsupth umbsup:x;)

omid55
09-08-2008, 08:16 PM
با سلام به دوستان گل خودم
خوب امروز می خواهم یک بحث مهم و خیلی کاربردی را برای شما آموزش بدهم که یکی از موضاعات مورد علاقه ی خود من هم می باشد .
چند وقتی بود که دوستان و سروران گرامی از من آموزش این بحث را تقاضا نموده بودند ولی متاسفانه نتوانسته بودم این مهم را انجام بدهم , اما الان آمده ام که ایشالا جبران کنم و حق دوستانی که تاپیک من و این بنده ی حقیر را مورد عنایت خود قرار داده اند را ادا کنم ...

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


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

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

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

در کل اگر حتی نیازی هم به قالب ندارید همیشه توصیه می شود که از template ها در کدها استفاده کنید چون هم باعث کامل تر شدن و اصولی تر شدن برنامه می شود و هم کاربرد برنامه بالطبع بالا می رود و برنامه قابل فهم تر هم می شود .

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

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


خوب یک مثال برنامه ای ساده بزنیم :
مثلا شما می خواهید یک تابع با نام max بنویسید که ماکسیمم مقدار را بین 3 گونه بیابد و به شما باز گرداند
خوب ساده تر از این که نمی شود ...
شما می توانید یک تابع ساده بنویسید که 3 پارامتر ورودی از type داده ای مثلا int بگیرد و سپس آنها را با هم مقایسه نموده و در پایان عدد بزرگتر را به شما باز گرداند .

خوب من آن را اینجا می نویسم =>


int Max(int a,int b,int c)
{
int maxv=a;
if(maxv<b)
{
maxv=b;
}
if(maxv<c)
{
maxv=c;
}
return maxv;
}

omid55
09-08-2008, 08:32 PM
همانطور که ملاحظه می فرمایید این کد فقط برای type داده ای int است و برای مثال اگر خواستید اعداد double را با هم مقایسه کنید باید یک تابع دیگر برای این نوع داده بنویسید .

حالا حتی فرض کنید یک مجموعه از دانش آموزان دارید که یک کلاس برای ایجاد هر کدام از این دانش آموزها دارا می باشد خوب بالطبع شما می توانید برای این اشیا که همان دانش آموزان هستند ویژگی ( field ) تعریف کنید که مثلا یک ویژگی آنها نمره است .
خوب برای مثال شما 3 شئ از این کلاس در برنامه دارید و می خواهید آنها را با هم به وسیله ی تابع فوق مقایسه کنید مسلما این تابع به هیچ وجه نمی توانید جوابگو باشد .

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

البته بک نکته ی خیلی مهم را در نظر داشته باشید که چون در تعریف این تابع از عملگرهای < و > و = که همان بزرگتر و کوچکتر و مساوی ریاضی خودمان هستند استفاده می کنید برای متغییرهایی نظیر int یا double یا خیلی دیگر قابل فهم و معنی دار می باشد و برایشان در کامپایلر تعریف موجود است اما برای یک شئ تجریدی یا به عبارت دیگر شئ تازه ساخته شده توسط ما که ویژگی ها و توابع متعددی هم دارد نا مفهوم است . یعنی کامپایلر دو شئ که مثلا دو دانش آموز باشند را نمی تواند به صورت اتوماتیک مقایسه کند پس باید حتما در کلاس مذکور اپراتورهای بزرگتر و کوچکتر و مساوی به صورت کامل و واضح تعریف شده باشد تا کامپایلر به وسیله ی آنها تصمیم بگیرد .
برای مثال فرض کنید معیار بزرگتر بودن و برتری دانش آموزان در این مثال نمره ی آنها باشد ( ولی البته به نظر من معیار برتری فقط و فقط معرفت و مرام و هوای دوستان و هم نوعان خود را داشتن است حتی در صورت ضرر خویش )

خوب اینم از تابع با پارامترهای شئ ای از کلاس دانش آموز =>


student Max(student& a,student& b,student& c)
{
student maxv=a;
if(maxv<b)
{
maxv=b;
}
if(maxv<c)
{
maxv=c;
}
return maxv;
}

omid55
09-08-2008, 08:40 PM
اما اگر ما بخواهیم برای هر type داده ای یک تابع Max تعریف کنیم پس باید تمامی کد برنامه را برای تعریف Max صرف کنیم و 50 مدل مختلف Max را با هم overload کنیم ...



خوب راه حل این موضوع === >>>>>


ما می توانیم با تعریف یک template ساده برای این تابع مشکل را حل کنیم و در چند خط همه ی آن 50 مدل مختلف را پوشش بدهیم ...
روند کار هم به این صورت است که شما یک قالب برای type داده ها می نویسید در واقع , به عبارتی دیگر شما نوع داده ای را می خواهید تابع برای آن فراخوانده شود و عمل کند را به گونه ای دیگر برای تابع می فرستید و سپس کامپایلر کار را به بهترین شکل ممکن انجام می دهد .
به زبانی دیگر می توان گفت شما یک پایه و قالب کلی و عمومی را می نویسید و سپس نوع داده ی دلخواه را برای تابع می فرستید سپس کامپایلر یک تابع کامل را با type داده ای مورد نظر شما می نویسد و از آن استفاده می کند ( بخشی از این تابع را در هنگام execute کردن در Output Form نمایش می دهد )


خوب چگونه template ها را بنویسم ؟؟؟

به سادگی هر چه تمام تر ...


نوشتن template ها را به دو بخش تقسیم می کنیم :
1- template تابع نویسی 2- template کلاس نویسی


ابتدا قالب تابع را بررسی می کنیم :

در آغاز می نویسیم template و سپس > را نوشته و در این جا می توانیم بنویسیم class یا typename که هیچ فرقی هم با هم ندارند پس هر کدام را که راحت ترید بنویسید ( من سعی می کنم هر دو را به کار برم تا هر دو برایتان جا بیفتد ) , بعد از آن یک نام برای type یا همان نوع داده ای مورد نظرتان بنویسید مثلا T و سپس < را قرار دهید ...

به این شکل :

template <typename T>


یا به این شکل :

template <class T>


حال در خط بعدی بایستی type خروجی را که همان T است را تعیین نمود بعد هم لیست پارامتر ها را می نویسیم که همگی از جنس T هستند . ( البته بسته به خواست شما به هر شکل دلخواه با هر ترتیب هم می توانند باشند )

خوب تعریف متغییر جدید هم در کد تابع با T شروع خواهد شد .


اینم از مثال همین تابع Max با template نویسی :


template <typename T> // template <class T>
T Max(T a,T b,T c) // T Max(T& a,T& b,T& c)
{
T maxv=a;
if(maxv<b)
{
maxv=b;
}
if(maxv<c)
{
maxv=c;
}
return maxv;
}

omid55
09-08-2008, 08:45 PM
برای کار بیشتر و بهتر با template ها چند موضوع کوچک را در زیر بیان می کنم = >>>


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

ابتدا یکی را نوشته و برای دومی دوباره typename و یا class را نوشته سپس نام نوع دوم را قید می کنیم ...

به این شکل :

template <typename T,typename S>


حتی می توان در بین آنها از هم type های معمول هم بهره برد ...

به این شکل :

template <class STU,double n,typename VR,int m,char p>


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

به این شکل ها :

template <typename T=float>

و

template <class S,typename T,string str=";)Ashiyane;)",typename U=int>

omid55
09-08-2008, 08:49 PM
منتظر ادامه ی بحث template و مثال های متعدد آن باشید دوستان عزیزم ... :xthumbsup:cool:

به زودی :rolleyes:

omid55
09-09-2008, 07:39 PM
دوست من ضمن عرض سلام و خسته نباشید خدمت شما ...
من امید هستم , مدیر بخش برنامه نویسی خانواده زبان C ...
اول از همه از شما تشکر می کنم به خاطر پست ها و آموزش هایی که گذاشته اید ...
اما باید بگویم برای زبان ++C من از خیلی وقت پیش یک تاپیک بزرگ راه انداحته ام که در همین بخش قرار دارد و بزرگترین تاپیک این بخش می باشد که همانا آموزش زبان ++C قدم به قدم از طریق مثال است , خوب مسلما مهمان یا کاربری که وارد این بخش می شود بایستی بتواند به راحتی بخش آموزش زبان را بیابد ...
من قصد دارم این بخش را به شیوه ای تنظیم کنم که افراد نا آشنا به سایت به راحتی بتوانند موضوعات مورد نظر خود را بیابند و بین چند تاپیک شبیه به هم سر در گم نگردند.

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


خوب برای این منظور از شما یک در خواست دارم :

لطفا آموزشهای پایه و ابتدایی را در اینجا رها کنید چون من در تاپیک خودم این کار را انجام داده ام ...
اگر می خواهید آموزش های ابتدایی و پایه ی بیشتری بدهید لطفا در همان تاپیک که آموزش پایه ای است پست بدهید و فعالیت کنید , من خیلی هم خوشحال می شوم که یک فرد با سواد و با ارزشی مثل شما به من کمک کند ...
این پست هاتون رو هم در صورت موافقت به آنجا merge می کنم ...
اگر می خواهید مباحث دیگری مثل socket programming را زودتر ارائه کنید به نظر هیچ مشکلی نیست و می توانید یک تاپیک در همین بخش با نام این موضوع یا هر موضوع مورد نظرتان بزنید و به آموزش کامل و تخصصی آن بپردازید من هم کاملا شما را حمایت می کنم ...

من می خواهم این بخش بهترین بخش برنامه نویسی انجمن و حتی کل سایت های نظیر بشود و هر چه بیشتر بتوانیم به دوستان و عزیزان کمک کنیم و نام ASHIYANE را هر چه بیشتر بر سر زبان ها بیاندازیم البته با کمک شما دوست عزیز من و دیگر دوستان و سروران گلم ...

لطفا قبل از انجام این کارها نسبت به نظر و صلاحدید خود من را نیز در جریان قرار دهید من همه جوره پشت شما هستم و 100 درصد Support تون می کنم ...

بازم به خاطر آموزش ها و زحمت های شما ممنونم و امیدوارم بتونیم از شما بهتر و بیشتر در سایت بهره ببریم ...

به امید خدا ... :x:cool:thumbsup

omid55
09-09-2008, 07:42 PM
از مدیر محترم خواهش می کنم یه فکری به حال عدم دسترسی به ویرایش پست ها بکنند. من یه پست رو به فرمت اشتباه ارسال کردم و یه جا هم غلط کلمه ای بود که متاسفانه نتوانستم اصلاحشان کنم.
از همه عزیزان هم بابت این مشکل پوزش می خواهم.
lo1ad


All thing seemed Bad!

cigar

چشم این مشکلتون رو هم با هم حل می کنیم ...
:cool::xthumbsup:p;)

Cyber Killer
09-10-2008, 01:23 PM
خوب بچه ها از امروز به آموزش حرفه ای ++C می پردازیم. امید یه چیزهایی هم از مطالب متوسط هم گفته بود و من اینجا دو کار می کنم:
I. آموزش مباحث زیر از ++C به صورت PDF

1. کلاس ها و اشیا (پیشرفته)
2. تعریف مجدد عملگرها
3. فایل ها
4. وراثت
5. توابع مجازی و چند ریختی
6. قالب ها (پیشرفته - مطالب اضافی گفته نشده)
7. ساختمان داده ها
8. پردازش استثناها
9. تسهیلات ورودی خروجی
10. STL (کتابخانه قالب استاندارد)
11. یکسری مفاهیم پیشرفته
12. دستورات پیش پردازنده

دوستان هم بعد از مطالعه سوالاتشون رو اینجا مطرح کنند.

II. آموزش کامل Socket Programming در زبان C
در این بخش اگه نیاز شد این مطلب رو در ++C هم بررسی می کنیم و فرق هاشو با C می گیم.

تمامی آموزش ها با مثال همراه خواهند بود.

در نهایت هم یه پروژه می دم که همه آموزش ها رو دربر داشته باشه با هم روش کار می کنیم.

بعدش سعی می کنم یه PDF برای آموزش زبان C بنویسم و اینجا آپ کنم. .... فعلا همین! :o :-S


cigar

Cyber Killer will kill weak systems, be careful

Cyber Killer
09-10-2008, 02:23 PM
تو این پست مبحث کلاس ها رو براتون گذاشتم. البته لازم می دونم برای یکسری که اصلا راجع به کلاس ها چیزی نمی دونن یه توضیح مختصر و مفید بدم. بقیه اش رو هم که در مقاله مطالعه می کنید.

کلاس ها و اشیا مبانی برنامه نویسی شیئ گرا هستند.
ما بوسیله کلاس ها اشیا را مدل سازی می کنیم. هر کلاس دو بخش دارد: صفت (attribute) و تابع یا رفتار(method). در واقع داده های عضو کلاس همان صفت و عملیات های کلاس تابع می باشد. به طور مثال یک سگ را در نظر بگیرید. این سگ (شیئ مورد نظر) دارای صفاتی است: رنگ . طول و... و همچنین دارای رفتارهایی است:دویدن . غلتیدن و ...
در واقع ما توسط کلاس یک نوع داده جدید می سازیم که به آن نوع داده انتزاعی (ADT: Adstract Data Type) می گویند. و سپس از این کلاس نمونه برداری می کنیم تا شیئ یا اشیا حاصل شود.
داده های هر شیئ فقط از طریق متدهای آن شیئ قابل دستیابی اند. اشیا می توانند از طریق متد های خود با یکدیگر ارتباط برقرار کنند.
ویژگی های برنامه نویسی شیئ گرا عبارتند از:
- بسته بندی (encapsulation)
- وراثت (inheritance)
- انتزاع داده ها (data abstraction)
- چند ریختی (polymorphism)

بسته بندی به این معناست که تمام جنبه های یک نهاد (موجودیت یا entity) در داخل کلاس جمع آوری و از سایر نهاد ها تفکیک شود.در نتیجه جزئیات پیاده سازی هر شیئ از دید اشیای دیگر موجود در برنامه پنهان است. بسته بندی مانع از این می شود که داده های یک شیئ توسط متد های شیئ دیگری دستیابی شود. (این مورد موجب حفاظت برنامه می شود - مثل اینست که مثلا شما (متد) مسئول تحویل پول از خزانه هستید و فردی به نام x نگهبان خزانه.... شما نمی توانید مستقیما به پول ها دسترسی داشته باشید و تنها می توانید آن ها را از نگهبان دریافت کنید....کلاس های بسته بندی شده هم همینگونه رفتار می کنند. برنامه نویس در کلاس از چند تابع Private با دسترسی داخلی و یک تابع Public با دسترسی عمومی تعریف می کند. تنها توابع Private به داده های داخل شیئ کلاس دسترسی دارند و بقیه ی اشیاء تنها به تابع Public دسترسی دارند.)

وراثت در برنامه نویسی شیئ گرا شبیه وراثت بیولوژیکی است که در آن فرزندان صفاتی را از والدین به ارث می برند. در رابطه وراثت در برنامه نویسی شیئ گرا می توان از کلاس پایه کلاس جدیدی (کلاس فرزند یا زیر کلاس) را ایجاد کرد بطوریکه زیرکلاس داده ها و متد های کلاس پایه را به ارث ببرد.
....
چند ریختی به معنای اینست که نهادی مثل متغیر . تابع . شیء معانی یا کاربرد های مختلفی داشته باشند. مثلا علامت + هم برای جمع کردن دو مقدار صحیح و هم جمع دو مقدار اعشاری بکار گرفته می شود.


تعریف کلاس و اشیا


class className {

Private data and functions

public:

Public data and functions

private:

Private data and functions

protected:

Protected Data

} 1. ObjName - You can make the objects here ;

2. You can make the objects here (className varName;)



حالا یه کد کامل:



class employee {
char name[26];
public:
void putName(char *s);
void getName(char *s);
void puAge(double w);
double getAge();
private:
double Age;
}em1, em2;

employee em3, em4;

void employee :: putName()
{

...

}
void employee :: getName()
{

...

}

...


دسترسی به اعضای شیء (فقط اعضای قسمت public):

; نام عضو . نام شیء





cigar

Cyber Killer will kill weak systems, be careful

omid55
09-10-2008, 04:35 PM
مثال اول مبحث template ها = >>>

این برنامه ماکسیمم مقدار بین 3 متغییر را به وسیله ی نوشتن قالبها می یابد .
در این برنامه یک سرفایل ( Header ) با پسوند .h وجود دارد که تابع max به وسیله ی template ها در آن تعریف گردیده است و همچنین یک فایل کد با پسوند .cpp قرار داده شده که تابع main هم در آن است و در آن از تابع max استفاده گردیده است .
نیازی نیست همیشه کدهای حاوی template ها را در سر فایلها ذخیره کنید ولی اینکار اصولی تر و بهتر است ( اما هر جور که خودتون راحتید ) :cool:thumbsup
این مثال ساده ترین است و برای ابتدای راه بهترین ...
برای همین Header در مثال بعدی شئ می فرستیم ... ;)


5099



اینم لینک دانلود : [Only registered and activated users can see links]

omid55
09-10-2008, 07:07 PM
تاپیک دوست عزیزم علی یا همان Cyber Killer به اینجا منتقل شد ... ;)
از ایشان بسیار متشکرم و از ایشان می خواهم که باز هم در همین تاپیک به من کمک و یاری رسانند که مایه ی مباهات بنده است ... :x:cool:thumbsup
خوب چون ایشان خودشان نظرشان به socket programming بود و من می خواهم از ایشان و علمشان در بخش برنامه نویسی خانواده زبان C بهره ببرم ایشان را به یک تاپیک جداگانه راهنمایی کردم و پست های قبلی ایشان به اینجا merge شد ...
امیدوارم در تاپیکشان موفق باشند ... :x:cool:
در این تاپیک هم هر وقت خواستند آموزش بذارند من تمام و کمال استقبال می کنم ... :cool:;):p:x

Glossy
09-10-2008, 11:00 PM
امید جان سلام
من تازه واردم . دارم از ابتدا شروع میکنم . من هیچی از برنامه نویسی یلد نیستم اما خوب باید از یه جا شروع میکردم .
تشکر از اینکه به فکر ما تازه وادا هم هستی و چنین تاپیکی رو راه اندازی کردی
مثال های ابتدایی رو نمیتونم دانلود کنم file not found میده اگه یه بررسی کنی لطف کردی
مرسی

omid55
09-11-2008, 01:25 PM
امید جان سلام
من تازه واردم . دارم از ابتدا شروع میکنم . من هیچی از برنامه نویسی یلد نیستم اما خوب باید از یه جا شروع میکردم .
تشکر از اینکه به فکر ما تازه وادا هم هستی و چنین تاپیکی رو راه اندازی کردی
مثال های ابتدایی رو نمیتونم دانلود کنم file not found میده اگه یه بررسی کنی لطف کردی
مرسی

خدا شاهده همین الان دارم روش کار می کنم ... :-S
ولی قول میدم حداکثر تا فردا همه ی لینک درست بشه ... :xthumbsup;)
مرسی از خبر دادن شما دوست عزیز ;):x:cool:

Glossy
09-11-2008, 08:58 PM
مرسی امید جان
خدا شاهده همین الان دارم روش کار می کنم ... :-S
ولی قول میدم حداکثر تا فردا همه ی لینک درست بشه ... :xthumbsup;)
مرسی از خبر دادن شما دوست عزیز ;):x:cool:

Glossy
09-11-2008, 09:03 PM
میگم من اگر سوالام ابتدایی تر از مثال های شما باشه کجا بپرسم توی همین تاپیک . ممکنه از نظر همه دوستان سوالاتم مسخره باشه اما سواد من همینقدره متاسفانه

Glossy
09-12-2008, 03:42 AM
امید حان ببخشید سوالم زیادی ابتدیی
نمیدونم جای سوالام همینجا بود یا نه اگه که نبود زحمت پاک کردنشونم گردنت افتاد
سوال:
چطور در هر دو مثال مقدار a=12 شده؟؟

int a=10 , c=12 , i=11

; c=++a + ++a

c=24 , a=12

;c=++a + ++a + ++a + i++ + ++i

a=12 , i=12 , c=48

Cyber Killer
09-12-2008, 04:31 AM
میگم من اگر سوالام ابتدایی تر از مثال های شما باشه کجا بپرسم توی همین تاپیک . ممکنه از نظر همه دوستان سوالاتم مسخره باشه اما سواد من همینقدره متاسفانه

دوست عزیز اینجا مکانی هست که شما بتونید سوالاتتون رو هرچند ساده مطرح کنید. هر کسی یک شبه برنامه نویس نمی شه و همه مطالب رو در ابتدا متوجه نمی شود. :)

امید حان ببخشید سوالم زیادی ابتدیی
نمیدونم جای سوالام همینجا بود یا نه اگه که نبود زحمت پاک کردنشونم گردنت افتاد
سوال:
چطور در هر دو مثال مقدار a=12 شده؟؟

int a=10 , c=12 , i=11

; c=++a + ++a

c=24 , a=12

;c=++a + ++a + ++a + i++ + ++i

a=12 , i=12 , c=48

امید جان نصفه شب اینو فرستاد گفتم جای شما جواب بدم. ببخشید ;)
در خط اول سه متغیر از نوع صحیح تعریف شده که به ترتیب مقادیر 10 و 12 و 11 درون آن ها قرار داده شده است.
برای خط دوم یه توضیح کوچولو هست:
عملگرهای محاسباتی ++ و -- برای افزودن و کاستن یک واحد از متغیر استفاده می شوند. همانطور که در مثال می بینی از این دستور به دو شکل استفاده شده. یکبار در پشت متغیر و یک بار در داخل آن. این کد رو در نظر بگیر:
y = ++x;
در این کد ابتدا یک واحد به مقدار متغیر x افزوده شده و سپس مقدار حاصل در متغیر y ذخیره می گردد.
ولی در کد
y = x++;
ابتدا مقدار x در متغیر y قرار می گیرد و سپس یک واحد به x اضافه می شود.

حال کد بالا رو برات توضیح می دم ببینی چه اتفاقی افتاده:


int a=10, c=12, i=11;

c = (++a) + (++a); // 23 = (10+1) + (11+1)


در این مثال ابتدا یکبار به متغیر a افزوده می شود و در مرحله دوم یکواحد دیگر هم به مقدار جدید a افزوده می شود و سپس این دو مقدار جدید با هم جمع می شوند و حاصلجمع در متغیر c قرار می گیرد. پس در اینجا دو بار و هر بار یک واحد به متغیر a اضافه شد در نتیجه a از 10 به 12 افزایش پیدا می کند. و مقدار 23 در c قرار می گیرد.

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

در کد بعدی:


c = (++a) + (++a) + (++a) + (i++) + (++i); // 56 = (10+1) + (11+1) + (12+1) + 11 + (12+1)


در این کد سه بار به متغیر a یک واحد اضافه می شود.(هر بار به مقدار جدید اضافه می شود.) سپس مقدار i با آن ها جمع می شود(در همین حال یک واحد به i اضافه می شود) حال یک واحد دیگر به i (جدید) اضافه شده و با تمام عبارات قبلی جمع می گردد. و مجموع در c ذخیره می شود. خوب در اینجا سه بار به مقدار متغیر a افزوده شد و دو واحد هم به i پس داریم: a = 13 و i = 13 و c = 60
اگر در ویندوز کار می کنید احتمال دارد که جواب های متغیر های بالا که نوشتم با جواب برنامه نوشته شده توسط شما تفاوت داشته باشد که این امر به دلیل تفاوت هسته سیستم عامل ویندوز با لینوکس می باشد. شما همیشه در لینوکس جواب صحیح را بدست می آورید.
در ضمن اگر با دید ریاضی نگاه کنید تمامی مقادیر داده شده در بالا صحیح می باشند.

راستی مقدار تخصیص داده شده به متغیر c هم در این مثال ها اهمیت ندارد. چون با دستور انتساب (=) مقدار انتساب داده شده بجای مقدار موجود می نشیند.

خوب امیدوارم تونسته باشم ابهامت رو برطرف کنم.


__________________________________________________ ______________________
cigar

Cyber Killer will kill weak systems, be careful


Storm is comming, Rain is comming, Wind is comming, You get going. Impossible is nothing.

گلابی
09-12-2008, 07:16 AM
بچه ها دمه همتون گرم .....فکر نمی کردم اینقدر باحال باشیدthumbsup

omid55
09-12-2008, 12:00 PM
آقا من یک شب رفتم مهمونی ببین بچه ها چیکار کردن ... :xthumbsup:cool:
دم همتون گرم ... :cool::p;)
ببخشید که یکم دیر شدش ...
پست ها را تک به تک جواب میدم ...
از همه ی سروران هم باز تشکر می کنم چون دکمه ی تشکر به نظرم کمه ... :cool:;):p