Advanced Search

المحرر موضوع: التحويل من نظام إلى نظام أخر  (زيارة 1713 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

فبراير 11, 2005, 12:32:13 صباحاً
زيارة 1713 مرات

مـحمـد

  • عضو مشارك

  • ***

  • 270
    مشاركة

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« في: فبراير 11, 2005, 12:32:13 صباحاً »
السلام عليكم
الشكر لكم سؤالين اتمنى الاجابة عليهما لو تكرمتم وأملي كبير ان ألقى اجابة شافية ان شاء الله
السؤال الاول
هل توجد طريقه للتحويل من نظام الى نظام اخر غير الطريقه العاديه التي تتم بعملية القسمه
مثلا العدد 12 بالنظام العشري = 1100 بالنظام العشري = 22 بالنظام الخماسي وهكذا
هل هنالك خوارزميه للتحويل بين الانظمه
والسؤال الثاني
كيف نوجد لوغاريتم عدد يدويا دون استخدام الآلة الحاسبة ودون استخدام الجداول
هل هنالك خوارزمية له او ماهي الطريقه
لمن يرغب  جدول لمدرسته بالمجان
http://syr-math.com/showthread.php?p=7248#post7248

فبراير 12, 2005, 06:54:59 مساءاً
رد #1

mathup

  • عضو متقدم

  • ****

  • 636
    مشاركة

  • مشرف الرياضيات

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #1 في: فبراير 12, 2005, 06:54:59 مساءاً »
السلام عليكم ورحمة الله وبركاته
مرحباً أخى محمد
بالنسبة لتتحويل من نظام عددى لأخر تعتبر طريقة القسمة طريقة عامة للتحويل بين جميع النظم وبالرغم من أننى لم أبحث إمكانية  وجود قاعدة أخرى للتحويل
إلا أنه من المتوقع فى هذه الحالة أن تكون حالة خاصة كالتحويل من ثنائى إلى رباعى أو أو سداسى عشر لها قاعدة خاصة لا تعتمد على القسمة
فمثلا
العدد الثنائى 1011111010011111
يمكن بتجزئته مجموعات كل مجموعة من 4 أرقام من اليمين إلى اليسار
يصبح على الصورة (1111)  (1001)(1110)(1011)
 يناظر العدد السادس عشرى B E 9 F
وبتجزئته مجموعات كل مجموعة من ثلاث أرقام من اليمين إلى اليسار
يصبح على الصورة (111)(011)(010)(111)(10)(011)(1)
يناظر العدد الثمانى 137237
وبتجزئته مجموعات كل مجموعة من رقمين من اليمين إلى اليسار
يصبح على الصورة (11)(11)(01)(10)(10)(11)(11)(10)
يناظر العدد الرباعى 23322133
الذى بدوره لو قسم مجموعات من رقمين من اليمن إلى اليسار
يصبح على الصورة (33) (21) (32) (23)
التى يناظر العدد السادس عشرى B E 9 F

أما عن موضوع اللوغاريتمات
فمن المعروف أنهى عملية عكسية لعملية الأس
والطرق الشائعة لحساب لوغاريتم عدد استخدام الألة أو الجداول إذا كانت متوفرة
وذا لم تتوفر هذه الأدوات فيمكن برسم منحنى الدالة اللوغاريتمة أو الأسية المناظرة ثم
إيجاد قيمة تقريبية من على الرسم
 
وعلى العموم لحساب قيمة أى لوغاريم لأى أساس يحول إلى أسس وعندها فقط يمكن الحكم ما إذا كانت يمكن إيجاد القيمة المطلوبة بطرق أخرى أم لا
مرفق برنامج للتحويل بين جميع الأنظمة من الثنائى إلى الساس عشر
شكرا لك




فبراير 16, 2005, 01:43:45 مساءاً
رد #2

مـحمـد

  • عضو مشارك

  • ***

  • 270
    مشاركة

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #2 في: فبراير 16, 2005, 01:43:45 مساءاً »
السلام عليكم
الشكر لكم موصول بأجمل التحايا استاذ mathup
والف شكر على البرنامج ولي تعليق لاحق على الموضوع ارجو ان تتقبل اعتذاري حاليا والف شكر
لمن يرغب  جدول لمدرسته بالمجان
http://syr-math.com/showthread.php?p=7248#post7248

مارس 25, 2005, 04:17:26 مساءاً
رد #3

أرشميدس مصر

  • عضو خبير

  • *****

  • 1875
    مشاركة

  • مشرف الفيزياء

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #3 في: مارس 25, 2005, 04:17:26 مساءاً »
أرجو شرح طريقة القسمة التي ذكرتها باختصار مع ذكر أمثلة،
ولكم شكري الجزيل
مع تحيات أخيكم أرشميدس مصر.

مارس 26, 2005, 02:41:25 مساءاً
رد #4

مـحمـد

  • عضو مشارك

  • ***

  • 270
    مشاركة

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #4 في: مارس 26, 2005, 02:41:25 مساءاً »
السلام عليكم
بالنسبة لعملية القسمه
العدد 25 في النظام العشري
لتحويله للنظام الثنائي نقسم على  2 ونأخذ الباقي دوما والبواقي تصف بجانب بعضها لينتج العدد بالنظام الثنائي
25 ÷ 2 = 12 الباقي 1
12 ÷ 2 = 6  الباقي 0
6  ÷ 2 = 3  الباقي 0
 3 ÷ 2 = 1   الباقي 1
1  ÷ 2 = لا يمكن  الباقي 1 وهنا نتوقف
25 في العشري = 11001
في النظام السداسي
25 ÷ 6 = 4  الباقي 1
4  ÷ 6 = لايمكن الباقي 4
25 في النظام العشري = 41 في النظام السداسي
==================
الأخ mathup الشكر لك موصول بالتحيه كان سؤالي بالأصل حول تحويل عدد من نظام الى أخر مهما كان عدد خاناته والبرنامج يعطي التحويلات في حال كان عدد خاناته اقل من 15 مثلا
وتعقيبا على الموضوع وهو شبه منقول
المبدأ الأساسي في التحويل

نموذج كود

DecimalNumber = DecimalNumber + Digit * d ^ Exponent
Exponent = Exponent + 1


حيث
id : النظام الذي كتب فيه العدد
DecimalNumber : العدد بعد تحويله إلى النظام العشري
وكخوارزمية للتحويل من نظام عشري لأي نظام
نموذج كود


Do
Number2 = Int(Number1 / id)
Number1 - id * Int(Number1 / id) : ترمز إلى خانة في العدد الجديد
في النظام الستة عشري لدينا
0 --> Digit =0
..
9 --> Digit =9
10 --> Digit = A
..
15 --> Digit = F
numberNumber = Digit & numberNumber
Number1 = Number2
Loop While Number2 <> 0

وهذا كود لبرنامج تحويل الأعداد من نظام إلى آخر مكتوب بلغة Vb.NET
يمكن مستخدمي Vb.NET  تجهيز البرنامج مباشرة
نموذج كود


Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents txtd1 As System.Windows.Forms.TextBox
Friend WithEvents txtn1 As System.Windows.Forms.TextBox
Friend WithEvents txtd2 As System.Windows.Forms.TextBox
Friend WithEvents txtn2 As System.Windows.Forms.TextBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label
Me.txtd1 = New System.Windows.Forms.TextBox
Me.Label2 = New System.Windows.Forms.Label
Me.txtn1 = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.txtd2 = New System.Windows.Forms.TextBox
Me.Label4 = New System.Windows.Forms.Label
Me.txtn2 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.Button2 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(32, 24)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(48, 16)
Me.Label1.TabIndex = 0
Me.Label1.Text = "d1 ="
'
'txtd1
'
Me.txtd1.Location = New System.Drawing.Point(80, 16)
Me.txtd1.Name = "txtd1"
Me.txtd1.Size = New System.Drawing.Size(88, 20)
Me.txtd1.TabIndex = 1
Me.txtd1.Text = ""
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(32, 56)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(48, 16)
Me.Label2.TabIndex = 2
Me.Label2.Text = "n1 ="
'
'txtn1
'
Me.txtn1.Location = New System.Drawing.Point(80, 48)
Me.txtn1.Name = "txtn1"
Me.txtn1.Size = New System.Drawing.Size(320, 20)
Me.txtn1.TabIndex = 3
Me.txtn1.Text = ""
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(32, 88)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(48, 16)
Me.Label3.TabIndex = 4
Me.Label3.Text = "d2 ="
'
'txtd2
'
Me.txtd2.Location = New System.Drawing.Point(80, 80)
Me.txtd2.Name = "txtd2"
Me.txtd2.Size = New System.Drawing.Size(88, 20)
Me.txtd2.TabIndex = 5
Me.txtd2.Text = ""
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(32, 112)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(40, 16)
Me.Label4.TabIndex = 6
Me.Label4.Text = "n2 ="
'
'txtn2
'
Me.txtn2.Location = New System.Drawing.Point(80, 112)
Me.txtn2.Name = "txtn2"
Me.txtn2.Size = New System.Drawing.Size(320, 20)
Me.txtn2.TabIndex = 7
Me.txtn2.Text = ""
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(328, 152)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(64, 24)
Me.Button1.TabIndex = 8
Me.Button1.Text = "موافق"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(240, 152)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(64, 24)
Me.Button2.TabIndex = 9
Me.Button2.Text = "إنهاء"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(408, 182)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.txtn2)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.txtd2)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.txtn1)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.txtd1)
Me.Controls.Add(Me.Label1)
Me.Name = "Form1"
Me.Text = "تحويل الأعداد"
Me.ResumeLayout(False)

End Sub

#End Region
Private Function ConvertNumberToDecimal(ByRef Number As String, ByRef id As Short) As String
'تحويل العدد من النظام المحدد إلى النظام العشري
Dim Index As Short
Dim Exponent As Short
Dim DecimalNumber As Double
Dim Digit As String
Dim DecimalDigit As Short

Exponent = 0
DecimalNumber = 0

For Index = Len(Number) To 1 Step -1
Digit = Mid(Number, Index, 1)

Select Case Digit
Case "0" To "9"
DecimalDigit = Val(Digit)
Case "A", "a"
DecimalDigit = 10
Case "B", "b"
DecimalDigit = 11
Case "C", "c"
DecimalDigit = 12
Case "D", "d"
DecimalDigit = 13
Case "E", "e"
DecimalDigit = 14
Case "F", "f"
DecimalDigit = 15
End Select

DecimalNumber = DecimalNumber + DecimalDigit * id ^ Exponent

Exponent = Exponent + 1
Next
'---
ConvertNumberToDecimal = CStr(DecimalNumber)
End Function

Private Function ConvertDecimalToNumber(ByRef Number As String, ByRef id As Short) As String
'تحويل العدد من النظام العشري إلى النظام المحدد
Dim Number1 As Double
Dim Number2 As Double
Dim numberNumber As String
Dim Digit As String

numberNumber = ""
Number1 = Val(Number)

Do
Number2 = Int(Number1 / id)

Select Case Number1 - id * Int(Number1 / id)
Case 0
Digit = "0"
Case 1
Digit = "1"
Case 2
Digit = "2"
Case 3
Digit = "3"
Case 4
Digit = "4"
Case 5
Digit = "5"
Case 6
Digit = "6"
Case 7
Digit = "7"
Case 8
Digit = "8"
Case 9
Digit = "9"
Case 10
Digit = "A"
Case 11
Digit = "B"
Case 12
Digit = "C"
Case 13
Digit = "D"
Case 14
Digit = "E"
Case 15
Digit = "F"
End Select

numberNumber = Digit & numberNumber
Number1 = Number2
Loop While Number2 <> 0

ConvertDecimalToNumber = numberNumber
End Function

Private Function ConvertNumberToNumber(ByRef Number As String, ByRef id1 As Short, ByRef id2 As Short) As String
'تحويل العدد من نظام إلى نظام
ConvertNumberToNumber = ConvertDecimalToNumber(ConvertNumberToDecimal(Number, id1), id2)
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim d1 As Short
Dim d2 As Short
Dim n1 As String
Dim n2 As String

d1 = Val(txtd1.Text)
n1 = txtn1.Text
d2 = Val(txtd2.Text)

If d1 <> 2 And d1 <> 8 And d1 <> 10 And d1 <> 16 Then
MsgBox("d1= 2 or 8 or 10 or 16", MsgBoxStyle.Critical, "رسالة خطأ")
txtd1.Focus()

Exit Sub
End If

If d2 <> 2 And d2 <> 8 And d2 <> 10 And d2 <> 16 Then
MsgBox("d2= 2 or 8 or 10 or 16", MsgBoxStyle.Critical, "رسالة خطأ")
txtd2.Focus()

Exit Sub
End If


n2 = ConvertNumberToNumber(n1, d1, d2)
txtn2.Text = n2
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
End Class

لعل به فائدة في هذا الموضوع
الشكر لك مرة ثانيه استاذ mathup واسف على التأخير لأنه حسب الظروف
لمن يرغب  جدول لمدرسته بالمجان
http://syr-math.com/showthread.php?p=7248#post7248

مارس 26, 2005, 03:49:13 مساءاً
رد #5

mathup

  • عضو متقدم

  • ****

  • 636
    مشاركة

  • مشرف الرياضيات

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #5 في: مارس 26, 2005, 03:49:13 مساءاً »
السلام عليكم ورحمة الله وبركاته
وفقكم الله أخى الكريم محمد
شكرا لك

أبريل 03, 2005, 05:43:18 مساءاً
رد #6

العبيدي

  • عضو مبتدى

  • *

  • 4
    مشاركة

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #6 في: أبريل 03, 2005, 05:43:18 مساءاً »
جزاكم الله خير

أبريل 03, 2005, 06:43:11 مساءاً
رد #7

shbely2004

  • عضو متقدم

  • ****

  • 744
    مشاركة

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #7 في: أبريل 03, 2005, 06:43:11 مساءاً »
السلام عليكم ..

الله هالله على العلم والمعنى وعلى اختيار المواضيع العلمية ذات المواصفات الراقية
لقد اخترت اخي الكريم محمد موضوعاً علمياً رائعاً وتسائلك في مكانه .
جزاك الله خير الجزاء .

أخي وأستاذي الكريم mahtup
عسى أن أكون أول المستفدين من ما أشرتَ به في هذا الموضوع الجيد والرائع معاً
بارك الله فيك ،، .

أبريل 03, 2005, 07:28:16 مساءاً
رد #8

mathup

  • عضو متقدم

  • ****

  • 636
    مشاركة

  • مشرف الرياضيات

    • مشاهدة الملف الشخصي
التحويل من نظام إلى نظام أخر
« رد #8 في: أبريل 03, 2005, 07:28:16 مساءاً »
السلام عليكم ورحمة الله وبركاته
شكرا لك أخى الكريم  الشبيلى
وفقكم الله  لما يحبه ويرضاه