value type ها در دات نت فریم ورک 2 الحاقی دارند که یا مقداری میگیرند و یا null هستند که به آن ، نوع هایnullable می گویند. برای مثال اگر به int32 نیاز داشته باشیم می توانیم آنرا بصورت زیر تعریف کنیم :
ادامه مطلب ...![]() |
![]() |
![]() |
در یک جمله #S زبان برنامه نویسی و قابلیتهای SmallTalk را به محیط دات نت اضافه میکند. SmallTalk اولین محیط واقعی تولید و توسعه نرم افزارهای شی گرا بود که حتی عده ای وی را پدر جاوا میخوانند.
ادامه مطلب ...می خواهیم برنامه ای به زبان C بنویسیم که اعداد زیر را به کمک یک ماتریس تا 10 سطر ساخته و چاپ کند :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 .. .. .. ..
این مثلث اعداد را مثلث خیام نیوتن میگویند. اگر ماتریسی را به این شکل در نظر بگیریم :
1 .. .. .. .. ..
1 1 .. .. .. ..
1 2 1 .. .. ..
1 3 3 1 .. ..
1 4 6 4 1 ..
.. .. .. .. .. ..
میتوان گفت هر درایۀ ماتریس پایین مثلثی از جمع دو درایۀ بالا و بالا سمت چپ خود درست شده است یعنی :
a i,j = a i-1, j + a i-1, j-1
void main()
{
int a[10][10], i, j;
for(i=0;i<10;i++) // ابتدا ستون اول و قطر اصلی را برابر یک قرار میدهیم
{
a[i][0]= 1;
a[i][i] = 1;
}
for(i=2;i<10;i++) //باقی خانه ها را به شکل یاد شده محاسبه میکنیم
for(j=1; j a[i][j] = a[i][j-1] + a[i-1][j-1];
for(i=0;i<10;i++) //چاپ ماتریس پایین مثلثی
{
for(j=0; j<9-i; j++) // چاپ فضای خالی قبل از اعداد برای ساختن شکل مورد نظر
cout<< " ";
for(j=0; j<=i; j++) // چاپ درایه های ماتریس
cout << a[i][j];
}
}
در این یادداشت تابع تبدیل عدد به معادل حروفی آنرا ارائه می کنم. عمدتا در سیستم های مالی و حسابداری نیاز است معادل حروفی اعداد هم نمایش داده شده یا چاپ شوند که توابع زیر این نیاز را پاسخ می دهد. مثلا برای چاپ یک چک روی خود برگه چک ، علاوه بر نیاز به چاپ مبلغ عددی چک لازمست تا مبلغ حروفی چک هم روی برگه چاپ شود.
نحوه استفاده از تابع :
تابع Adad که در زیر ارائه شده است یک عدد را بعنوان ورودی گرفته و معادل حروفی آن عدد در زبان فارسی را بعنوان خروجی تولید می کند. مثلا (Adad(1373 مقدار "یک هزار و سیصد و هفتاد و سه" را بعنوان خروجی تولید می کند.
Function Adad(ByVal Number As Double) As String
If Number = 0 Then
Adad = "صفر"
End If
Dim Flag As Boolean
Dim S As String
Dim I, L As Byte
Dim K(1 To 5) As Double
S = Trim(Str(Number))
L = Len(S)
If L > 15 Then
Adad = "بسیار بزرگ"
Exit Function
End If
For I = 1 To 15 - L
S = "0" & S
Next I
For I = 1 To Int((L / 3) + 0.99)
K(5 - I + 1) = Val(Mid(S, 3 * (5 - I) + 1, 3))
Next I
Flag = False
S = ""
For I = 1 To 5
If K(I) <> 0 Then
Select Case I
Case 1
S = S & Three(K(I)) & " تریلیون"
Flag = True
Case 2
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیارد"
Flag = True
Case 3
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیون"
Flag = True
Case 4
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " هزار"
Flag = True
Case 5
S = S & IIf(Flag = True, " و ", "") & Three(K(I))
End Select
End If
Next I
Adad = S
End Function
Function Three(ByVal Number As Integer) As String
Dim S As String
Dim I, L As Long
Dim h(1 To 3) As Byte
Dim Flag As Boolean
L = Len(Trim(Str(Number)))
If Number = 0 Then
Three = ""
Exit Function
End If
If Number = 100 Then
Three = "یکصد"
Exit Function
End If
If L = 2 Then h(1) = 0
If L = 1 Then
h(1) = 0
h(2) = 0
End If
For I = 1 To L
h(3 - I + 1) = Mid(Trim(Str(Number)), L - I + 1, 1)
Next I
Select Case h(1)
Case 1
S = "یکصد"
Case 2
S = "دویست"
Case 3
S = "سیصد"
Case 4
S = "چهارصد"
Case 5
S = "پانصد"
Case 6
S = "ششصد"
Case 7
S = "هفتصد"
Case 8
S = "هشتصد"
Case 9
S = "نهصد"
End Select
Select Case h(2)
Case 1
Select Case h(3)
Case 0
S = S & " و " & "ده"
Case 1
S = S & " و " & "یازده"
Case 2
S = S & " و " & "دوازده"
Case 3
S = S & " و " & "سیزده"
Case 4
S = S & " و " & "چهارده"
Case 5
S = S & " و " & "پانزده"
Case 6
S = S & " و " & "شانزده"
Case 7
S = S & " و " & "هفده"
Case 8
S = S & " و " & "هجده"
Case 9
S = S & " و " & "نوزده"
End Select
Case 2
S = S & " و " & "بیست"
Case 3
S = S & " و " & "سی"
Case 4
S = S & " و " & "چهل"
Case 5
S = S & " و " & "پنجاه"
Case 6
S = S & " و " & "شصت"
Case 7
S = S & " و " & "هفتاد"
Case 8
S = S & " و " & "هشتاد"
Case 9
S = S & " و " & "نود"
End Select
If h(2) <> 1 Then
Select Case h(3)
Case 1
S = S & " و " & "یک"
Case 2
S = S & " و " & "دو"
Case 3
S = S & " و " & "سه"
Case 4
S = S & " و " & "چهار"
Case 5
S = S & " و " & "پنج"
Case 6
S = S & " و " & "شش"
Case 7
S = S & " و " & "هفت"
Case 8
S = S & " و " & "هشت"
Case 9
S = S & " و " & "نه"
End Select
End If
S = IIf(L < 3, Right(S, Len(S) - 3), S)
Three = S
End Function









