PDA

View Full Version : سوال: تعریف متغیرها در برنامه



Hassan2500
پنج شنبه 07 دی 1391, 18:16 عصر
سلام

1- منظور از عبارت Option Explicit که در ابتدای کدها نوشته میشه چیه
2- آیا اگه متغیرها رو در برنامه تعریف نکنیم سرعت برنامه کم میشه و آیا این درسته که اگه متغیرها رو تعریف نکنیم خود vb تشخیص میده چه تعریفی رو واسشون بکار ببره
3- اگه بجای Dim i as Integer بنویسیم Dim i چه فرقی داره در اینصورت vb چه تعریفی رو واسش بکار میبره
4- منظور از String و Integer و Long چیه اگه میشه واسه هر کدومشون یه مثال برام بنویسید واسم مهمه

SlowCode
پنج شنبه 07 دی 1391, 19:20 عصر
سلام

1- منظور از عبارت Option Explicit که در ابتدای کدها نوشته میشه چیه
وقتی این رو مینویسی حتما باید همه متغیرهایی رو که استفاده میکنی رو تعریف کنی وگرنه خطا میده.

آیا اگه متغیرها رو در برنامه تعریف نکنیم سرعت برنامه کم میشه
نه به سرعت ربطی نداره.

آیا این درسته که اگه متغیرها رو تعریف نکنیم خود vb تشخیص میده چه تعریفی رو واسشون بکار ببره
نخیر! وقتی نوع متغیر رو مشخص نمیکنیم و یا متغیر رو تعریف نمیکنیم vb اون رو به عنوان variant در نظر میگیره.
البته از این جهت میشه گفت که اگه نوع متغیر ها رو مشخص نکنیم نسبتا مقدار حافظه بیشتری اشغال میشه(ولی مقدارش خیلی ناچیزه.)

3- اگه بجای Dim i as Integer بنویسیم Dim i چه فرقی داره در اینصورت vb چه تعریفی رو واسش بکار میبره
همونطور که عرض کردم از نوع variant در نظر میگیره.

4- منظور از String و Integer و Long چیه اگه میشه واسه هر کدومشون یه مثال برام بنویسید واسم مهمه
به نظرم شما اینا رو قبل از مباحث دیگه باید یاد میگرفتین، به هر حال.
string همون رشته است و واسه نگه داشتن یه کلمه یا جمله کاربرد داره.
integer واسه عدد صحیح است(اعشار رو قبول نمیکنه) و محدودش هم از -32768 تا +32767 هست، یعنی اگه مقدارش بیشتر از این باشه خطا میده.
long هم همون initeger هست ولی بازش خیلی بزرگتره، حدودا از منفی دو میلیارد و دویست تا مثبت دو میلیارد و دویست هست.

البته به طور خلاصه گفتم، جزئیاتش رو توی گوگل سرچ کن. بنویس: انواع متغیر در vb6

مثال هاش یادم رفت:
Dim strtext as string
strtext="hello hassan"
msgbox strtext
بقیه هم همینطورن دیگه سادست.

MohammadGh2011
پنج شنبه 07 دی 1391, 19:40 عصر
سلام عليکم


1- منظور از عبارت Option Explicit که در ابتدای کدها نوشته میشه چیه

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

2- آیا اگه متغیرها رو در برنامه تعریف نکنیم سرعت برنامه کم میشه و آیا این درسته که اگه متغیرها رو تعریف نکنیم خود vb تشخیص میده چه تعریفی رو واسشون بکار ببره
3- اگه بجای Dim i as Integer بنویسیم Dim i چه فرقی داره در اینصورت vb چه تعریفی رو واسش بکار میبره
خب ببينيد شما اگه نوع متغير رو تعريف نکنيد خودش به صورت پيشفرض Variant رو تعريف ميکنه و حافظه ي زيادي رو ميگيره؛پس بهتره که نوعي که نياز هست تعريف بشه.

4- منظور از String و Integer و Long چیه اگه میشه واسه هر کدومشون یه مثال برام بنویسید واسم مهمه

String که رشته اي هست يعني نوع متغيرمون يه رشته ست،و Integer هم 2byte integer و تقريبا 32K +/- و Long هم بيشتر ازinteger هست 4byte integer و 2billion+/- نگه ميداره.
اينجا ميتونيد اطلاعات زيادي از متغيرها بگيريد... (http://www.vb6.us/tutorials/using-variables-vb6)



موفق باشيد

Hassan2500
پنج شنبه 07 دی 1391, 19:48 عصر
مزیتهای variant چیه آیا همه نوع متغیر رو پشتیبانی میکنه پس بهتره و منظور از اینکه حافظه بیشتری اشغال میشه یعنی سرعت برنامه کم میشه

SlowCode
پنج شنبه 07 دی 1391, 19:56 عصر
خب اگه همون صفحه ای رو که آقا محمد گذاشتن رو با دقت میخوندی نوشته بود که 16 بایت از رم رو اشغال میکنه(پس تاثیری روی سرعت برنامه نداره، حتی روی سیستم)
بله همه متغیرها و آبجکت رو پشتیبانی میکنه.

Hassan2500
پنج شنبه 07 دی 1391, 20:05 عصر
آیا میشه کاری کرد هنگام نوشتن کدها خود برنامه اعلام کنه چه متغیری مثلاً باید الآن در این کدی که داری مینویسی تعریف بشه

SlowCode
پنج شنبه 07 دی 1391, 20:22 عصر
خب دیگه در این صورت نباید از Option explicit استفاده کنی، متغیر رو استفاده کن خودش تشخیص میده و نیازی به تعریف نداره.

MohammadGh2011
پنج شنبه 07 دی 1391, 20:42 عصر
بله همونطور که آقا محسن نوشتند ميتونيد Option Explicit رو ننويسيد و متغير رو تعريف نکنيدتا نوعش رو خودش مشخص يا تعريف کنه و اينطور هم ميتونيم نوع متغير رو تشخيص بديم:
s = 935
d = "MGH"
MsgBox TypeName(s) + vbNewLine + TypeName(d)



موفق باشيد

SHD.NET
جمعه 08 دی 1391, 18:55 عصر
ماشاءالله دوستان اینقدر توضیحات کاملی دادن که چیزی واسه ما نموند !!!!

:چشمک:\\\موفق باشید///:چشمک:

Hassan2500
شنبه 09 دی 1391, 12:04 عصر
سلام

حالا که دوستان محبت کردید و جواب دادید یه چندتا سؤال دیگه دارم شاید سؤال بعضی از دوستان تازه کار هم باشه

1- Dim مخفف چه کلمه ای است و معنی اون چیه
2- منظور از علامتهای زیر چیه و به چه کاری میان و اگه میشه یه مثال مثلاً از $ بزنید

Data Type
Type Declaration Character
String
$
Integer
%
Long
&
Single
!
Double
#
Currency
@

3- چرا وقتی متغیر sR1$ رو به صورت Dim sR1$ As String تعریف میکنم برنامه از $ ایراد میگیره نحوه درست نوشتنش چگونه است و کلاً منظور از $ چیه

4- آیا هر چیزی رو که MsgBox TypeName() مشخص کرد باید همون رو واسه نوع متغیر نوشت چون در بعضی جاها برای من دو چیز رو نمایش میده مثلاً برای یه متغیر هم String و هم Double رو نمایش میده کدومشون رو باید بنویسم

SlowCode
شنبه 09 دی 1391, 12:17 عصر
سلام
1- dim مخفف Dynamic هست. معنیش هم میشه پویا.
2- میتونی به جای نوشتن کلمه string بنویسی $، مثلا:
Dim strtext$
3- اگه String رو بنویسی نباید $ رو بنویسی، باید یکی از این دو تا رو بنویسی. $ همون رشته است دیگه.
4- بستگی داره به نوع داده ای که قراره وارد بشه، مثلا اگه میخوای ماشین حساب ینویسی دابل رو بنویس ولی اگه میخوای دفترچه تلفن بنویسی رشته رو بنویس. بستگی داره به برنامت.

SHD.NET
شنبه 09 دی 1391, 14:05 عصر
4- آیا هر چیزی رو که MsgBox TypeName() مشخص کرد باید همون رو واسه نوع متغیر نوشت چون در بعضی جاها برای من دو چیز رو نمایش میده مثلاً برای یه متغیر هم String و هم Double رو نمایش میده کدومشون رو باید بنویسم

اینو دقیقا متوجه نشدم . اما اگه شما منظورت اینه که از متغیر استرینگ به جای دابل هم استفاده کرد، میتونی از تبدیل داده ها استفاده کنی

Hassan2500
دوشنبه 11 دی 1391, 17:28 عصر
سلام

آیا برای متغیرهای زیر باید Val بذارم یا احتیاجی نیست


Private Sub Command1_Click()
Dim A1 As Integer, A2 As Integer
N1 = Text1
N2 = Text2
Text3 = N1 + N2
End Sub


یعنی به اینصورت بنویسم

Text3 = Val(N1) + Val(N2)

SlowCode
دوشنبه 11 دی 1391, 17:40 عصر
سلام
بله واسه + باید val بنویسی. چون + هم واسه الحاق رشته و هم عدد به کار میره. پس اگه val رو ننویسی اون دو تا رو رشته حساب میکنه و به هم می چسبونه.

Hassan2500
دوشنبه 11 دی 1391, 17:52 عصر
سلام
بله واسه + باید val بنویسی. چون + هم واسه الحاق رشته و هم عدد به کار میره. پس اگه val رو ننویسی اون دو تا رو رشته حساب میکنه و به هم می چسبونه.

جناب محسن15 بدون Val هم جمع میکنه چون متغیرها رو تعریف کردم اما کلاً میخوام بدونم در این حالت که متغیرها رو تعریف کردم آیا Val رو بنویسم یا نه احتیاجی نیست

SlowCode
دوشنبه 11 دی 1391, 18:19 عصر
درسته اون خط رو ندیدم.
روش اصولی اینه که تبدیلش کنی تا جلوی خطاهای احتمالی گرفته بشه. اگه بنویسی بهتره.