اذهب إلى المحتوى
  • 0

شرح شيفرة بايثون للتحويل بين واحدات التخزين

محمد فهد خالد

السؤال

ممكن شرح بالتفصيل لهذا السؤال اذا سمحتم

def showBytesFirstName(megabytes): # converting into bytes
    byte=megabytes*1024*1024 # 1MB=1024*1024 bytes
    print("\n")
    print(megabytes,"Megabytes is",byte,"Bytes.")
  
def showKiloBytesFirstName(megabytes): # converting into Kilo bytes
    kbyte=megabytes*1024 #1MB=1024 KiloBytes
    print("\n")
    print(megabytes,"Megabytes is",kbyte,"KiloBytes.")

def showGigaBytesFirstName(megabytes): #Converting into GigaBytes
    gbyte=megabytes/1024   #1024 MB= 1Giga Bytes
    print("\n")
    print(megabytes,"Megabytes is",round(gbyte,6),"GigaBytes.") #round function rounds a float upto 6 digit

def showTeraBytesFirstName(megabytes): #converting into TeraBytes
    tbyte=megabytes/(1024*1024) #1024*1024 MB= 1 Tera Bytes
    print("\n")
    print(megabytes,"Megabytes is",round(tbyte,6),"TeraBytes.")#rounding a float upto 6 digit

def menuFirstName():
    while(1): # loop countinue until 5 is pressed
        num = int(input("""
1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: """))
        if(num==5): # if 5 is pressed loop will break program terminated
            print("Bye!")
            break
        elif(num<5): #if num is less than 5 we will ask user to enter Mega bytes
            megabytes=int(input("Enter Data in MegaBytes (MB)"))
        if(num==1): # if num==1 calling bytes method
            showBytesFirstName(megabytes)
        elif(num==2): #if num=2 calling kilobytes
            showKiloBytesFirstName(megabytes)
        elif(num==3): #if num=3 calling giga bytes
            showGigaBytesFirstName(megabytes)
        elif(num==4):#if num==4 calling tera bytes
            showTeraBytesFirstName(megabytes)
        else: #else loop will countinue
            print("\n")
            print("Please Enter Valid Choice")
  
  
menuFirstName()

تعليق توضيحي 2021-12-23 175839.png

تعليق توضيحي 2021-12-23 175916.png

 

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

كما ذكر وائل هذا البرنامج خاص بالتحويلات.
سأشرح لك آخر جزئية طلبتها (لماذا الدوال ولماذا أضفناها).
بدايةً بشكل عام عند البرمجة يُفضل دوماً أن نتجه لاستخدام الدوال حتى ولو كان بالإمكان الاستغناء عنها.
الآن انسى الكود الذي لديك وتخيل أنه قد طلب منك كتابة البرنامج التالي:
برنامج يقوم بتحويل قيمة من الميغابايت إلى إحدى الوحدات التالية:
البايت عند إدخال الرقم 1.
الكيلو عند إدخال الرقم 2.
الغيغا عند إدخال الرقم 3.
التيرا عند إدخال الرقم 4.
الآن يمكننا كتابة هذا البرنامج بالكامل من دون استخدام التوابع لكن سيكون الأمر مُتخلفاً جداً. لذا سنقوم بتقسيمه إلى دوال، بحيث كل دالة تنجز أمر معين، وهذا التقسيم كالتالي:
دالة تقوم بالتحويل من الميغابايت إلى البايت سنسميها showBytesFirstName.
دالة تقوم بالتحويل من الميغابايت إلى الكيلوبايت سنسميها showKiloBytesFirstName.
دالة تقوم بالتحويل من الميغابايت إلى الغيغا سنسميها showGigaBytesFirstName.
دالة تقوم بالتحويل من الميغابايت إلى التيرا سنسميها showTeraBytesFirstName.
وأخيراً نقوم ببناء دالة تعرض الرسالة التالية على المستخدم:

1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program

فإذا اختار 1 تقوم هذه الدالة باستدعاء الدالة showBytesFirstName. وإذا اختار 2 تقوم هذه الدالة باستدعاء الدالة showKiloBytesFirstName... إلخ.
وأخيراً تعرض النتيجة ..
وأيضاً يجب أن تعرض هذه الدالة الرسالة التالية، والتي تطلب فيها من المستخدم إدخال القيمة المُراد تحويلها (من الميغابايت إلى الوحدة التي تم اختيارها):

Enter Data in MegaBytes (MB)

وهذا مايُعبر عنه بالكود الذي أرفقته:

# دالة للتحويل من الميغابايت إلى البايت
def showBytesFirstName(megabytes): # converting into bytes
    byte=megabytes*1024*1024 # 1MB=1024*1024 bytes
    print("\n")
    print(megabytes,"Megabytes is",byte,"Bytes.")
# دالة للتحويل من الميغابايت إلى الكيلوبايت  
def showKiloBytesFirstName(megabytes): # converting into Kilo bytes
    kbyte=megabytes*1024 #1MB=1024 KiloBytes
    print("\n")
    print(megabytes,"Megabytes is",kbyte,"KiloBytes.")
# دالة للتحويل من الميغا إلى الغيغا
def showGigaBytesFirstName(megabytes): #Converting into GigaBytes
    gbyte=megabytes/1024   #1024 MB= 1Giga Bytes
    print("\n")
    print(megabytes,"Megabytes is",round(gbyte,6),"GigaBytes.") #round function rounds a float upto 6 digit
# دالة للتحويل من الميغا إلى التيرا
def showTeraBytesFirstName(megabytes): #converting into TeraBytes
    tbyte=megabytes/(1024*1024) #1024*1024 MB= 1 Tera Bytes
    print("\n")
    print(megabytes,"Megabytes is",round(tbyte,6),"TeraBytes.")#rounding a float upto 6 digit
# دالة تجمع الدوال السابقة لبناء برنامج تحويل من الميغا إلى باقي الوحدات
def menuFirstName():
    # حلقة لانهائية أي سيتم تكرار الكود المُعرّف ضمنها 
    # True طبعاً هي حلقة لانهائية لأن الشرط دوماً محقق حيث أن 1 يكافئ
    while(1): # loop countinue until 5 is pressed
        # هنا يطلب إدخال عدد من المستخدم
        num = int(input("""
1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: """))
        # في حال أدخل الرقم 5 تتوقف الحلقة اللانهائة وينتهي التنفيذ أي يتوقف البرنامج
        if(num==5): # if 5 is pressed loop will break program terminated
            print("Bye!")
            # تؤدي إلى كسر الحلقةأي جعلها تتوقف عن التكرار وبالتالي يتوقف التنفيذ break هنا تعليمة 
            break
        # الآن إذا لم يدخل المستخدم الرقم 5 يطلب منه إدخال القيمة المراد تحويلها
        elif(num<5): #if num is less than 5 we will ask user to enter Mega bytes
            megabytes=int(input("Enter Data in MegaBytes (MB)"))
        # الآن إذا كان المستخدم قد أدخل الرقم 1 فهذا يعني أنه يريد تحويل القيمة 
        # إلى البايت
        if(num==1): # if num==1 calling bytes method
            # وبالتالي نستدعي الدالة التي تقوم بالتحويل إلى البايت ونمرر لها القيمة
            showBytesFirstName(megabytes)
        # وهكذا......
        elif(num==2): #if num=2 calling kilobytes
            showKiloBytesFirstName(megabytes)
        elif(num==3): #if num=3 calling giga bytes
            showGigaBytesFirstName(megabytes)
        elif(num==4):#if num==4 calling tera bytes
            showTeraBytesFirstName(megabytes)
        else: #else loop will countinue
            print("\n")
            print("Please Enter Valid Choice")
  
# هنا يتم استدعاء الدالة السابقة  
menuFirstName()

طبعاً الكود يستخدم حلقة while بحيث يتم تكرار تنفيذ التعليمات حتى تخرج من البرنامج من خلال إدخال الرقم 5.
على سبيل المثال سأقوم بتشغيل البرنامج السابق وتجربته:

1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: 2
Enter Data in MegaBytes (MB)1


1 Megabytes is 1024 KiloBytes.

1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: 1
Enter Data in MegaBytes (MB)1


1 Megabytes is 1048576 Bytes.

1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: 3
Enter Data in MegaBytes (MB)5


5 Megabytes is 0.004883 GigaBytes.

1: Convert to bytes
2: Convert to KiloBytes(KB)
3: Convert to GigaBytes(GB)
4: Convert to TeraBytes(TB)
5: Quit the program
Please enter your choice: 5
Bye!

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 2
بتاريخ 5 دقائق مضت قال محمد فهد خالد:

انا اعرف البرنامج وماذا  يفعل لكن مش فاهم الدوال المستخدمة وليش استخدمنا هذي هنا وليش كتبنا هذي هنا فلوممكن من وقتك شوي الشرح 

لاحظ في حال أدخل المستخدم الرقم 1 بعد ظهور القائمة أي convert to bytes سيتم تنفيذ show Bytes وهذه الدالة نمرر لها قيمة megabyte حيث تقوم بضربها ل 1024*1024 وتطبعها

من أين نحصل على دخل المستخدم؟ أي قيمة megabyte .. في حال قام المستخدم بإدخال قيمة تختلف عن 5 سيتم تنفيذ elif num < 5 وفيها تتم قراءة الحجم بوحدة ميغابايت

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هذا البرنامج خاص للتحويل بين وحدات التخزين (حجم البيانات) المختلفة المستعملة في عالم البرمجة.

يعرض البرنامج قائمة من 5 اختيارت، حيث يتوقف عند إدخال رقم 5, اما لباقي الخيارات يقبل إدخال حجم مقدراً بواحدة ميغابايت ثم حسب الاختيار المدخل، نمرر القيمة إلى دالة موافقة.

كل دالة تستقبل متغير  megabyte يحمل القيمة التي أدخلها المستخدم عند تنفيذ البرنامج.

تعريفات، البايت byte هو أصغر وحدة تخزين ويمكن أن تحفظ محرف واحد (رقم او حرف او رمز) مثل ماهو موجود على لوحة المفاتيح keyboard.

الواحدات الأكبر هي كيلو بايت و تساوي 1024 بايت، ثم ميغابايت و تساوي 1024 كيلو بايت أي 1024*1024 بايت ثم غيغا بايت و تساوي 1024 ميغا بايت وهكذا.. كل واحدة تساوي 1024 مرة من الواحدة الأصغر، أي نضرب ب 1024 عند التحويل من واحدة كبيرة إلى الأصغر.

و في العملية المعاكسة (من واحدة صغيرة لواحدة أكبر) نقسم على 1024..

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعات قال Wael Aljamal:

هل يمكنك إرفاق الشيفرة مكتوبة مكان الصور من فضلك؟

هذا البرنامج خاص للتحويل بين وحدات التخزين (حجم البيانات) المختلفة المستعملة في عالم البرمجة.

بعرض البرنامج قائمة من 5 اختيارت، حيث يتوقف عند إدخال رقم 5, اما لباقي الخيارات يقبل إدخال حجم مقدراً بواحدة ميغابايت ثم حسب الاختيار المدخل، نمرر القيمة إلى دالة موافقة.

كل دالة تستقبل متغير  megabyte يحمل القيمة التي أدخلها المستخدم عند تنفيذ البرنامج.

تعريفات، البايت byte هو أصغر وحدة تخزين ويمكن أن تحفظ محرف واحد (رقم او حرف او رمز) مثل ماهو موجود على لوحة المفاتيح keyboard.

الواحدات الأكبر هي كيلو بايت و تساوي 1024 بايت، ثم ميغابايت و تساوي 1024 كيلو بايت أي 1024*1024 بايت ثم غيغا بايت و تساوي 1024 ميغا بايت وهكذا.. كل واحدة تساوي 1024 مرة من الواحدة الأصغر، أي نضرب ب 1024 عند التحويل من واحدة كبيرة إلى الأصغر.

و في العملية المعاكسة نقسم على 1024..

انا اعرف البرنامج وماذا  يفعل لكن مش فاهم الدوال المستخدمة وليش استخدمنا هذي هنا وليش كتبنا هذي هنا فلوممكن من وقتك شوي الشرح 

تم اضافة الكود كنص

 

مستند-نصي-جديد-7.txt

تم التعديل في بواسطة محمد فهد خالد
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...