{ "cells": [ { "cell_type": "raw", "metadata": { "vscode": { "languageId": "raw" } }, "source": [ "---\n", "title: \"مسائل في توالي الأوامر\"\n", "og:title: control_flow_problems\n", "toc: true\n", "format:\n", " html: default\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[تحميل الدفتر](https://raw.githubusercontent.com/HassanAlgoz/python/main/book/chapters/ch2-control-flow/exercise_2.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## المحاذاة\n", "\n", "ما هي المشكلة في هذه القطعة البرمجية؟ وكيف تحلها؟" ] }, { "cell_type": "code", "metadata": {}, "source": [ "#| error: true\n", "\n", "if True:\n", "print('Inside')\n", "print('Outside')" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## تركيب الشروط\n", "\n", "اعكس هذه العبارة الشرطة المرسومة بكتابة القطعة البرمجية التي تمثلها:\n", "\n", "
\n",
" else:\n",
" \n",
"else:\n",
" \n",
"```\n",
"\n",
"## مجموع الأرقام إلى س\n",
"\n",
"ما نريد صياغته هو هذه المعادلة: مجموع الأرقام من 1 إلى `n`:\n",
"\n",
"$$\n",
"\\sum_{i=1}^{n} i\n",
"$$\n",
"\n",
"تعليمات التطبيق:\n",
"\n",
"- استخدم الإجراء `input()` لطلب إدخال العدد من المستخدم\n",
"- القيمة المدخلة ستكون من النوع النصي وليس العددي؛ لذا:\n",
" - حول القيمة المدخلة إلى عدد باستخدام `int()` أو `float()`\n",
"- استعمل حلقة `while` لجمع الأرقام من `1` إلى العدد الذي أدخله المستخدم\n",
"- اطبع النتيجة\n",
"\n",
"## اكتب القطعة بحلقة تكرار\n",
"\n",
"اكتب القطعة البرمجية التالية بحلقة تكرار:"
]
},
{
"cell_type": "code",
"metadata": {},
"source": [
"increase = 5\n",
"\n",
"w1 = 15\n",
"w2 = w1 + increase\n",
"w3 = w2 + increase\n",
"w4 = w3 + increase\n",
"w5 = w4 + increase\n",
"w6 = w5 + increase\n",
"w7 = w6 + increase\n",
"w8 = w7 + increase\n",
"w9 = w8 + increase\n",
"w10 = w9 + increase\n",
"\n",
"print(w1, w2, w3, w4, w5, w6, w7, w8, w9, w10)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## اكتب القطعة بحلقة تكرار\n",
"\n",
"وكذلك اكتب القطعة التالية بحلقة تكرار:"
]
},
{
"cell_type": "code",
"metadata": {},
"source": [
"import math\n",
"\n",
"growth_rate = 0.117\n",
"\n",
"day1 = 100\n",
"day2 = day1 * (1 + growth_rate)\n",
"day3 = day2 * (1 + growth_rate)\n",
"day4 = day3 * (1 + growth_rate)\n",
"day5 = day4 * (1 + growth_rate)\n",
"day6 = day5 * (1 + growth_rate)\n",
"day7 = day6 * (1 + growth_rate)\n",
"\n",
"print(math.floor(day1))\n",
"print(math.floor(day2))\n",
"print(math.floor(day3))\n",
"print(math.floor(day4))\n",
"print(math.floor(day5))\n",
"print(math.floor(day6))\n",
"print(math.floor(day7))"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## التغير النسبي\n",
"\n",
"إذا كنت تمارس الرياضة وتزيد في وزن الحمل 10% أسبوعيًّا .. فإذا بدأت بوزن 20 كيلو، فإلى كم كيلوا ستصل في الأسبوع الثاني عشر؟ (بعد ثلاثة أشهر)\n",
"\n",
"\n",
"## حجرة ورقة مقص\n",
"\n",
"اكتب برنامج يلعب لعبة حجرة ورقة مقص.\n",
"\n",
"إليك هذه القصاصة في استعمال مكتبة العشوائية ([`random`](https://docs.python.org/3/library/random.html)) لاختيار عنصر من قائمة بشكل عشوائي:"
]
},
{
"cell_type": "code",
"metadata": {},
"source": [
"import random\n",
"\n",
"x = random.choice([\"rock\", \"paper\", \"scissors\"])\n",
"print(x)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## متحدث آلي\n",
"\n",
"اكتب برنامج يجمع البيانات التالية من المستخدم (الزبون):\n",
"\n",
"- اسم الزبون: الرسالة \"أتشرف باسمك، مثلا: محمد أحمد\"\n",
"- رقم الهاتف: الرسالة \"زودنا برقم جوالك، يبدأ بمفتاح الدولة، مثلاً بـ966\"\n",
"- المدينة: الرسالة \"ممكن تحدد مدينتك؟\"\n",
"- اسم الحي: الرسالة \"الرجاء قم بكتابة اسم الحي\"\n",
"\n",
"بعد ذلك يؤكد الآلي على المستخدم أن المعلومات صحيحة، ويطلب منه التأكيد أو التعديل أو إلغاء الطلب.\n",
"\n",
"- في حال التأكيد: الرسالة \"تم تأكيد الطلب برقم 12345 سيتواصل معك ممثل خدمة العملاء في غضون 15 دقيقة علمًا أن ساعات العمل من 9 صباحًا إلى 5 مساءً\"\n",
"- في حال التعديل، يطلب الآلي من المستخدم تحديد الشيء الذي يريد تعديله ليتم تعديله\n",
"- في حال إلغاء الطلب: الرسالة \"تم إلغاء طلب التبرع\"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}