منتخب بازارچه

آموزش ویژوال بیسیک برای دوستداران دانش برنامه نويسی ويژوال بيسيک

Haamed

Registered User
با سلام به تمامي اساتيد و دوستان.

اين تاپيك ايجاد شد تا شروعي باشد بر هم فكري و هم انديشي در آموزش برنامه نويسي.

كمك اساتيد پشتيبان ماست.
و شركت دوستداران ويژوال بيسيك باعث تقويت بحث.

قراره از روي يك كتاب مباحث اوليه بحث بشه.
يعني آشنايي اوليه و آشنايي با مفاهيم.
با تشكر.
.
------------------------------------------------------------------------------------------

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

دفعه با یه عنوان این کلمات استفاده شده مثلا کلمه روال در هر فصل فرق میکنه فکر کنم ایراد نویسنده باشه

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

به امید خدا میریم جلو.....
 

black_jack_of_black_city

Registered User
صد در صد انگلیسی بهتره
 

saalek

مدیر بازنشسته
با سلام.
من مقداري توضيح مي دهم ، اگر كم بود يا ناقص بود دوستان اصلاح و تكميل مي كنند.
از سويي چون اين تاپيك براي رفع نياز شماست ، من هم به منظور رفع نياز شما پاسخ مي دهم.
اگر به چيزي من توجه نكردم تاكيد كنيد تا باز بحث شود.
= == = = = == = = =
در تمام زبانهايي كه من تابحال كار كرده ام ، متغير وجود داشته ، چه زبانهاي سيستمي و چه زبانهاي نتي. دسته اول مثل پاسكال و سي و بيسيك و دسته دوم مثل php .

متغير به نظر من بهترين دوست برنامه نويس است . چون در اختيارشه و مثل ابزار مي تونه ازش استفاده كنه. گاهي مثل چشم برنامه نويسه براي پيگيري روند اجراي برنامه و گاهي محلي براي ذخيره چيزي و هزار كاربرد ديگر.

در وي بي كار با متغير ساده است و وي بي خيلي مهربان است در اين مورد. مثلا شما مي توانيد بدون تعريف متغير هم از آن استفاده كنيد ولي در اكثر زبانها چنين نيست. اگر مي خواهيد مثل بقيه زبانها بشه اين مورد، كلمه option expilicit را بالاي همه كدها بيافزاييد يا برويد به option وي بي و تيك مربوطه را بزنيد.
اگر يكي از اين دو كار را بكنيد ، آنگاه مثل ساير زبانها بايد اول متغير را معرفي كنيد و بعد استفاده كنيد. مثل دستور زير معرفي كنيد.

کد:
Dim a As Integer
غلط نوشته بودم كه آرش جان تذكر داد و اصلاح كردم.
من نوشته بودم
dim int a
كه سينتكس سي بود--البته سي هم كه چه عرض كنم. ((سي وي بي)) ساخت سالك

و اينجوري مقدار اوليه مي دهيم:

کد:
a=100
البته به كتاب مراجعه كنيد براي داشتن كد و دستور صحيح . چون من به كدنويسي سي الان عادت كرده ام و ممكنه اشتباه بنويسم. در سي بعد هر دستور يك سمي كالن مي گذارند و من خيلي سعي كردم تا اين اشتباه را اينجا نكنم.

در دستور هاي بالا ، dim هم هست. من زياد بهش توجه نمي كنم. گويي از qbasic به وي بي هم آمده. شايد اول كلمه ديمانسيون باشد. اگر خواستيد بيشتر تحقيق كنيد يا بگيد تا من تحقيق كنم ولي در گام اول من زياد برايش وقت نمي گذارم.

براي اين كه دركتان از متغير بهتر باشد ، بايد بدانيد كه تعريف يك متغير يعني رزرو محلي در حافظه. براي integer به معناي عدد صحيح ، مثلا دو بايت رزرو مي شوند و براي يك عدد long چهار بايت مثلا. باز به كتاب مراجعه كنيد . شايد من با long در سي قاطي كرده ام.
در وي بي اگر مقدار اوليه به متغير ندهيد ، به طور اتوماتيك صفر به آن داده مي شود ولي در سي وقتي يك متغير محلي تعريف كنيم و مقدار اوليه ندهيم، هر چي در ram باشه ميشه مقدار اوليه آن. و يك عدد اجق وجق ميشه .

= == = = == = = = == ==
روال يا PROCEDURE: اگر ميشه چند خط تايپ كنيد از كتاب هر بار. چون من خودم كتاب ندارم و براي هر كلمه بايد بروم در گوگل سرچ كنم. ولي من خودم با تجربه شخصي خود ، يك بلوك از دستورات در نظر مي گيرم. كه دوستان خواهشا تكميل كنند.
ولي بگذاريد در قدم اول و شروع روي EVENT PROCEDURE بحث كنيم.
چون اولين چيزيه كه شما باهاش سروكار داريد.
اولا event به معني رويداد است. يا واقعه. سختش نكنيم. همان كليك مثلا. كليك هر ابزار مثل دكمه و تكست باكس و كلا هر ابزار روي جعبه ابزار كه روي فرم آورده ايم و run شده برنامه.
تقربيا تمامي ابزارها مي توانند به رويداد كليك واكنش نشان دهند.
تمرين عملي: يك دكمه روي فرم بياندازيد. روي دكمه دابل كليك كنيد. فورا پنجره كد ظاهر شده و كد زير را خواهيم داشت:

کد:
Private Sub Command1_Click()

End Sub
حالا (به نظر من) هر چي دستور در ميان اين دو خط كد بنويسيد ميشه EVENT PROCEDURE براي رويداد كليك دكمه (كامند باتن)
يعني موقع اجراي برنامه وقتي كاربر روي دكمه كليك كند ، تمام دستوراتي كه ما در اين قسمت نوشته ايم اجرا مي شود.


بعدي MODULE : من خودم در اين قسمت مشكل دارم ولي ماژول يك فايل است كه قسمتي از كد ما درونش نوشته ميشه.
تمرين عملي:
از منوي PROJECT روي زيرمنوي add module كليك كنيد. يك پنجره ميايد كه روي open كليك كنيد.
حالا پروژه را در my document ذخيره كنيد. از منوي file گزينه save project as . آنگاه خواهيد ديد كه سه بار بايد save كنيد. يك بار پروژه را. يك بار فرم را و يك بار ماژول را.
حالا به محل ذخيره هم اگر برويد ، خواهيد ديد كه سه فايل داريد.

فرق فرم و ماژول: ماژول پنجره ندارد ولي فرم دارد. منظورم پنجره كد نيست. هر دو پنجره كد دارند. آن يكي منظورم است. چي ميگن بهش؟ پنجره آبجكت فكر كنم.

استفاده از ماژول فوايدي دارد. كه مرز سواد من ديگه اينجاست ولي يك دوستم مي گفت از فوايدش اينه كه مي توانيد يك متغير آنجا تعريف كنيد و گلوبال ميشه آن متغير.
متغير گلوبال يعني در تمام پروژه شناخته شده است. مثلا فرق كنيد پروژه شما 20 فرم داره و 30 ماژول. متغير گلوبال در همه آنها با شخصيته.
من خودم از ماژول زياد استفاده نكردم. دوستان بايد كمك كنند. من همه كدهايم را در همان فرم 1 مي نوشتم چون برنامه هاي بزرگ با وي بي كار نكردم.

اما تابع: در وي بي توابع را ميشهبه دو قسمت تقسيم كرد . در سي هم همين جوره.
دسته اول توابع خود وي بي.
دسته دوم توابعي كه ما تعريف مي كنيم.

در وي بي دو جور تعريف داريم.
اولي sub
دومي function

من هر دو را روال مي نامم. مهم هم نيست چه بناميم . مهم اينه كه باهاشون برنامه هاي قوي بنويسيم.

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

توابع خود وي بي هم ممكنه مقدار برگردانند يا مقدار برنگردانند.
آنها كه مقدار برمي گردانند ، نياز به ظرفي است تا مقدار بازگشتي را تحويل بگيريم. آن ظرف يك متغير است كه قبلا ما آن متغير را تعريف كرده ايم.

براي توابعي هم كه خودمان تعريف كرده ايم و مقدار برمي گردانند ، همين طور.

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

در وي بي وقتي پنجره كد رو باشد، از منوي tools در اولين زير منو يعني ادد پروسيجر ، شما 4 نوع پروسيجر(روال) را مي توانيد بيافزاييد. البته دستي هم ميشه اين كار را كرد. براي اين گفتم به اين زير منو برويد كه تجسم بهتري از انواع روالها داشته باشيد.
.

پس همين طور كه مي بينيد ، ساب و فانكشن هر دو روال(پروسيجر) حساب ميشه. چون با عنوان ادد پروسيجر ايجاد ميشه.

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

aie_saber

کاربر تازه وارد
به نقل از KOSLA :
تابع
متغیر
روال
EVENT PROCEDURE
MODULE
DIM

Function = تابع
Variable = متغییر
Routine = روال - بدنه اصلی برنامه
Sub Routine = زیر روال - تکه کد یا برنامه که توسط برنامه اصلی فراخوانی میشه
Event = رویداد ، رخ داد - مثلا وقتی روی یه دکمه کلیک میکنی روی اون دکمه رویداد کلیک رخ داده
Event Procedure = دستورالعمل رویداد - مثلاً در همون مثال بالایی دستوری که در هنگام کلیک کردن روی دکمه اجرا میشه
Module = ماژول - یه قسمت مستقل از بدنه اصلی برنامه که هماهنگ با اون کار میکنه
معمولاً برای متغییرها و کدهای کلی یا گلوبال که در کل برنامه مورد نیاز هستش استفاده میشه
Dim = دستوری برای تعریف کردن متغییر از کلمه دیمنشن میاد به معنی اندازه ، بعد ، محدوده Dimension​

:)
 

aie_saber

کاربر تازه وارد
به نقل از aie_saber :
Function = تابع
Variable = متغییر
Routine = روال - بدنه اصلی برنامه
Sub Routine = زیر روال - تکه کد یا برنامه که توسط برنامه اصلی فراخوانی میشه
Event = رویداد ، رخ داد - مثلا وقتی روی یه دکمه کلیک میکنی روی اون دکمه رویداد کلیک رخ داده
Event Procedure = دستورالعمل رویداد - مثلاً در همون مثال بالایی دستوری که در هنگام کلیک کردن روی دکمه اجرا میشه
Module = ماژول - یه قسمت مستقل از بدنه اصلی برنامه که هماهنگ با اون کار میکنه
معمولاً برای متغییرها و کدهای کلی یا گلوبال که در کل برنامه مورد نیاز هستش استفاده میشه
Dim = دستوری برای تعریف کردن متغییر از کلمه دیمنشن میاد به معنی اندازه ، بعد ، محدوده Dimension​

:)
آقا ببخشید من اینجوری جواب دادم چون مدیر عزیز کاملاً شرح دادن
من که جواب رو فرستادم دیدم ایشون توضیح دادن ، شرمنده :blush:
 

saalek

مدیر بازنشسته
نه عزيز.
من همه را با شك نوشتم.
جواب شما باعث شد خيالم راحت بشه .
.
 

Arash_j13

Registered User
سالک جان تاپیک خوبی شروع کردی با اینکه دل خوشی از وی بی ندارم ولی تا جایی ک هبتونم کمک می کنم

در مورد تعریف متغییر های در بیسیک تصحیح کنم که این طوری تعریف می شه

کد:
Dim a As Integer

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

balabala

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

saalek

مدیر بازنشسته
آخ آخ صاحبش اومد.
كي اين تاپيك را باز كرده؟ بياد جواب بده.
من كه نبودم.
================
سلام عرض شد.
ممنون از توجه شما.
.
 

balabala

کاربر قدیمی پرشین تولز
به نقل از saalek :
آخ آخ صاحبش اومد.
كي اين تاپيك را باز كرده؟ بياد جواب بده.
من كه نبودم.
================
سلام عرض شد.
ممنون از توجه شما.
.
سلام :)
شما لطف دارید جناب سالک،
حتما به تاپیک سر خواهم زد و با اجازه تون مطالبی رو مطرح خواهم کرد :rolleyes:
 

aie_saber

کاربر تازه وارد
به نقل از saalek :
نه عزيز.
من همه را با شك نوشتم.
جواب شما باعث شد خيالم راحت بشه .
.
نه عزیز شما استادید :blush: :happy:
به نظر من اگه میخواین آموزشی پیش برین یه مرجع معرفی کنین و طبق اون جلو برین مثل
Visual Basic 6.0 How to Program by Harvey M. Deitel که فکر کنم یه آقایی به اسم پاشایی هم ترجمه اش کرده
صد البته زبان اصلیش خیلی بهتره ولی متاسفانه لینکی برای دانلود کردن اون نداشتم :(
 

Haamed

Registered User
به نقل از saalek :
با سلام.
من مقداري توضيح مي دهم ، اگر كم بود يا ناقص بود دوستان اصلاح و تكميل مي كنند.
از سويي چون اين تاپيك براي رفع نياز شماست ، من هم به منظور رفع نياز شما پاسخ مي دهم.
اگر به چيزي من توجه نكردم تاكيد كنيد تا باز بحث شود.
= == = = = == = = =
در تمام زبانهايي كه من تابحال كار كرده ام ، متغير وجود داشته ، چه زبانهاي سيستمي و چه زبانهاي نتي. دسته اول مثل پاسكال و سي و بيسيك و دسته دوم مثل php .

متغير به نظر من بهترين دوست برنامه نويس است . چون در اختيارشه و مثل ابزار مي تونه ازش استفاده كنه. گاهي مثل چشم برنامه نويسه براي پيگيري روند اجراي برنامه و گاهي محلي براي ذخيره چيزي و هزار كاربرد ديگر.

در وي بي كار با متغير ساده است و وي بي خيلي مهربان است در اين مورد. مثلا شما مي توانيد بدون تعريف متغير هم از آن استفاده كنيد ولي در اكثر زبانها چنين نيست. اگر مي خواهيد مثل بقيه زبانها بشه اين مورد، كلمه option expilicit را بالاي همه كدها بيافزاييد يا برويد به option وي بي و تيك مربوطه را بزنيد.
اگر يكي از اين دو كار را بكنيد ، آنگاه مثل ساير زبانها بايد اول متغير را معرفي كنيد و بعد استفاده كنيد. مثل دستور زير معرفي كنيد.

کد:
Dim a As Integer
غلط نوشته بودم كه آرش جان تذكر داد و اصلاح كردم.
من نوشته بودم
dim int a
كه سينتكس سي بود--البته سي هم كه چه عرض كنم. ((سي وي بي)) ساخت سالك

و اينجوري مقدار اوليه مي دهيم:

کد:
a=100
البته به كتاب مراجعه كنيد براي داشتن كد و دستور صحيح . چون من به كدنويسي سي الان عادت كرده ام و ممكنه اشتباه بنويسم. در سي بعد هر دستور يك سمي كالن مي گذارند و من خيلي سعي كردم تا اين اشتباه را اينجا نكنم.

در دستور هاي بالا ، dim هم هست. من زياد بهش توجه نمي كنم. گويي از qbasic به وي بي هم آمده. شايد اول كلمه ديمانسيون باشد. اگر خواستيد بيشتر تحقيق كنيد يا بگيد تا من تحقيق كنم ولي در گام اول من زياد برايش وقت نمي گذارم.

براي اين كه دركتان از متغير بهتر باشد ، بايد بدانيد كه تعريف يك متغير يعني رزرو محلي در حافظه. براي integer به معناي عدد صحيح ، مثلا دو بايت رزرو مي شوند و براي يك عدد long چهار بايت مثلا. باز به كتاب مراجعه كنيد . شايد من با long در سي قاطي كرده ام.
در وي بي اگر مقدار اوليه به متغير ندهيد ، به طور اتوماتيك صفر به آن داده مي شود ولي در سي وقتي يك متغير محلي تعريف كنيم و مقدار اوليه ندهيم، هر چي در ram باشه ميشه مقدار اوليه آن. و يك عدد اجق وجق ميشه .

= == = = == = = = == ==
روال يا PROCEDURE: اگر ميشه چند خط تايپ كنيد از كتاب هر بار. چون من خودم كتاب ندارم و براي هر كلمه بايد بروم در گوگل سرچ كنم. ولي من خودم با تجربه شخصي خود ، يك بلوك از دستورات در نظر مي گيرم. كه دوستان خواهشا تكميل كنند.
ولي بگذاريد در قدم اول و شروع روي EVENT PROCEDURE بحث كنيم.
چون اولين چيزيه كه شما باهاش سروكار داريد.
اولا event به معني رويداد است. يا واقعه. سختش نكنيم. همان كليك مثلا. كليك هر ابزار مثل دكمه و تكست باكس و كلا هر ابزار روي جعبه ابزار كه روي فرم آورده ايم و run شده برنامه.
تقربيا تمامي ابزارها مي توانند به رويداد كليك واكنش نشان دهند.
تمرين عملي: يك دكمه روي فرم بياندازيد. روي دكمه دابل كليك كنيد. فورا پنجره كد ظاهر شده و كد زير را خواهيم داشت:

کد:
Private Sub Command1_Click()

End Sub
حالا (به نظر من) هر چي دستور در ميان اين دو خط كد بنويسيد ميشه EVENT PROCEDURE براي رويداد كليك دكمه (كامند باتن)
يعني موقع اجراي برنامه وقتي كاربر روي دكمه كليك كند ، تمام دستوراتي كه ما در اين قسمت نوشته ايم اجرا مي شود.


بعدي MODULE : من خودم در اين قسمت مشكل دارم ولي ماژول يك فايل است كه قسمتي از كد ما درونش نوشته ميشه.
تمرين عملي:
از منوي PROJECT روي زيرمنوي add module كليك كنيد. يك پنجره ميايد كه روي open كليك كنيد.
حالا پروژه را در my document ذخيره كنيد. از منوي file گزينه save project as . آنگاه خواهيد ديد كه سه بار بايد save كنيد. يك بار پروژه را. يك بار فرم را و يك بار ماژول را.
حالا به محل ذخيره هم اگر برويد ، خواهيد ديد كه سه فايل داريد.

فرق فرم و ماژول: ماژول پنجره ندارد ولي فرم دارد. منظورم پنجره كد نيست. هر دو پنجره كد دارند. آن يكي منظورم است. چي ميگن بهش؟ پنجره آبجكت فكر كنم.

استفاده از ماژول فوايدي دارد. كه مرز سواد من ديگه اينجاست ولي يك دوستم مي گفت از فوايدش اينه كه مي توانيد يك متغير آنجا تعريف كنيد و گلوبال ميشه آن متغير.
متغير گلوبال يعني در تمام پروژه شناخته شده است. مثلا فرق كنيد پروژه شما 20 فرم داره و 30 ماژول. متغير گلوبال در همه آنها با شخصيته.
من خودم از ماژول زياد استفاده نكردم. دوستان بايد كمك كنند. من همه كدهايم را در همان فرم 1 مي نوشتم چون برنامه هاي بزرگ با وي بي كار نكردم.

اما تابع: در وي بي توابع را ميشهبه دو قسمت تقسيم كرد . در سي هم همين جوره.
دسته اول توابع خود وي بي.
دسته دوم توابعي كه ما تعريف مي كنيم.

در وي بي دو جور تعريف داريم.
اولي sub
دومي function

من هر دو را روال مي نامم. مهم هم نيست چه بناميم . مهم اينه كه باهاشون برنامه هاي قوي بنويسيم.

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

توابع خود وي بي هم ممكنه مقدار برگردانند يا مقدار برنگردانند.
آنها كه مقدار برمي گردانند ، نياز به ظرفي است تا مقدار بازگشتي را تحويل بگيريم. آن ظرف يك متغير است كه قبلا ما آن متغير را تعريف كرده ايم.

براي توابعي هم كه خودمان تعريف كرده ايم و مقدار برمي گردانند ، همين طور.

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

در وي بي وقتي پنجره كد رو باشد، از منوي tools در اولين زير منو يعني ادد پروسيجر ، شما 4 نوع پروسيجر(روال) را مي توانيد بيافزاييد. البته دستي هم ميشه اين كار را كرد. براي اين گفتم به اين زير منو برويد كه تجسم بهتري از انواع روالها داشته باشيد.
.

پس همين طور كه مي بينيد ، ساب و فانكشن هر دو روال(پروسيجر) حساب ميشه. چون با عنوان ادد پروسيجر ايجاد ميشه.

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

خیلی ممنون توضیحات خوبی بود من با همین توضیحات و مراجعه به کتاب چند روزی مشغولم که هم تمرین کنم و هم

اگه مشکلی بود بیام بگم.

این EVENT PROCEDURE رو خوب توضیح دادید قشنگ گرفتم.

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

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

Haamed

Registered User
که از پایه میریم جلو ببینیم چی پیش میاد...

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

امید است که با توجه به تکنیک درست آموزش این تاپیک بدرستی و مرحله به مرحله و آهسته جلو بره تا هم بنده و

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

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

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

saeedsmk

مدیر بازنشسته
سلام به سالك عزيز و ديگر دوستان و اساتيد محترم
اميدوارم اين تاپيك هم مثل تاپيك اموزش سي خوب از اب در بياد
به هر حال من اين كتاب رو ندارم ولي خوش حال ميشم با شما پيش برم و چيز هاي تازه ياد بگيرم
به اميد موفقيت
راستي دوست عزيز KOSLA : ميتوني اندازه عكس رو يه ذره كوچك تر كني چون دو ساعت طول كشيد صفحه لود بشه
 

james007

کاربر تازه وارد
سلام
اومدم کولاک کنم. حداقل برای کسایی که این سایت ها رو نمیشناسن
--------------------------------------------------------------------------------------------------------------
این سایت یکی از بهترین‌هاست
http://giuciao.atspace.org/books/
عالیه
http://www.newebug.com/ebook/vb-net/index.shtml
بقیشون هم خوبن:
http://www.thefreelibrary.com/
http://files.nixp.ru/books/
http://bonso.mine.nu/book/
http://www.flazx.com/index.php
http://www.books-download.com/
--------------------------------------------------------------------------------------------------------------
تحویل رایگان حتی با تخفیف:
http://www.adinehbook.com/
--------------------------------------------------------------------------------------------------------------
این سایت عالیه:
http://www.payeganltd.com/
--------------------------------------------------------------------------------------------------------------
انتشارات ناقوس (کتب عالی در زمینه کامپیوتر)
http://www.naghoospress.ir/
--------------------------------------------------------------------------------------------------------------
این بهترین لینکه. توی اینترنت کمتر از این لینکها پیدا میشه:
http://www.mahdilink.com/book/
--------------------------------------------------------------------------------------------------------------
 

saalek

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

من ديگه حرف نمي زنم. دوستمان همه چيز را گفت.
.
 
بالا