الرفع إلى قوة

-أكتب دالة تستقبل عددين صحيحين موجبين ، الأول يكون “الأساس base ” والثاني يكون “الأس power” ، ثم تقوم بحساب عملية الرفع إلى قوة وتعمل return للنتيجة .

-استخدم هذا الـ prototype :

(int calculate_power ( int x, int y

الحل:

مفهوم الرفع إلى قوة هو أن الأساس يُضرب بعدد مرّات الأس ، مثال : 3^2= 2×2×2.

#include <iostream>
using namespace std;

int calculate_power(int, int);
int main()
{
 int base, power, result;
 cout << "Enter a positive number as a base : ";
 cin >> base; cout << endl;
 cout << "Enter a positive number as a power : ";
 cin >> power; cout << endl;
 if (base >= 0 && power >= 0)
 {
 result = calculate_power(base, power);
 cout << base <<" ^ "<<power<<" = " << result << endl;
 }

 else cout << "invalid input\n";

 system("pause");
 return 0;
}

int calculate_power(int x, int y)
{
 int result = 1;
 for (int i = y; i > 0; i--)
 result *= x;

 return result;
}

السطر 26: تم عمل initialize بالواحد للمتغيّر الذي سيتم فيه تخزين نتيجة الضرب ، وهي نقطة مهمه ونسيانها قد يسبب logic error لأن البرنامج يقوم بالضرب في garbage موجودة مسبقًا في المتغيّر .

في حالة كانت العملية  جمع الـ initialize للمتغير يكون بالصفر . 

السطر 27 : في حالة كان الأس “y” يساوي صفر فإن النتيجة يجب أن تكون واحد ، لأن أي عدد أس صفر = 1 لذلك :

 لن يتم تنفيذ الـ for loop في حالة كان الأس “y” يساوي الصفر . 

Advertisements

رسم مربع ومستطيل

-أكتب برنامج يعرض للمستخدم قائمة إما رسم مربّع أو مستطيل أو خروج ، إذا اختار المستخدم المربع يطلب منه إدخال طول ضلع المربع ، وإذا اختار المستطيل يطلب منه إدخال الطول والعرض .

يجب استخدام مفهوم functions’ prototypes and functions’ overloading في الحل .

-استخدم ” *  ” للرسم .

الحل:

 

#include <iostream>
using namespace std;

void drow();
void drow(int);

int main()
{
 int choice;

 do{
 cout << "Welcome to my shapes!" << endl;
 cout << "Please select a shape to draw: " << endl;
 cout << "1- Square \n2- Rectangle \n3- Exit program" << endl;
 cout << "Your choice: ";
 cin >> choice;

 switch (choice)
 {
 case 1://Square
 int hw_s;
 cout << "Please enter height or width of the square: ";
 cin >> hw_s;
 drow(hw_s);
 break;

 //Rectangle
 case 2:drow();
 break;
 }
 } while (choice == 1 || choice == 2);

 system("pause");
 return 0;
}


void drow(int x)
{

 //Square
 for (int counter = x; counter > 0; counter--)
 {
 for (int i = 1; i <= x; i++)
 cout << "*";

 cout << endl;
 }
}

void drow()
{
 //rectangle
 int h_r, W_r;
 cout << " Enter the height of the rectangle: ";
 cin >> h_r;
 cout << " Enter the width of the rectangle: ";
 cin >> W_r;

 for (int count = h_r; count > 0; count--)
 {
 for (int i = 1 ; i <= W_r; i++)
 cout << "*";

 cout << endl;
 }
}