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

رسم الاشكال في لغة C++

عبد المجيد احمد نفت

السؤال

كيف يمكننا رسم الحروف الإنجليزية أو الأشكال في لغة C++؟

تم التعديل في بواسطة Ali Haidar Ahmad
توضيح عنوان وشرح السؤال، ومعالجة بعض الأخطاء اللغوية
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك رسم الاشكال والحروف الانجليزية بلغة البرمجة C++ ولعمل ذلك يمكننا استخدم حلقتين تكراريتان متداخلتين , الحلقة الخارجية مسؤولة عن عدد الصفوف في الشكل أو أنماط بينما يقوم الجزء الداخلي من الحلقة بطباعة العدد المطلوب من الاعمده في كل صف و هذا مثال: برنامج C ++ لطباعة نمط هرم نجمة كامل

// C ++ برنامج لعرض هرم نجمى كامل


#include <iostream>
using namespace std;

int main()
{
   int rows, i, j, space;

   cout << "أدخل عدد الصفوف:";
   cin >> rows;

   for(i = 1; i <= rows; i++)
   {
	// من أجل حلقة لعرض المساحة
      for(space = i; space < rows; space++)
      {
         cout << " ";
      }
	// for loop لعرض نجمة تساوي رقم الصف
      for(j = 1; j <= (2 * i - 1); j++)
      {
         cout << "*";
      }

      cout << "\n";
   }

   return 0;
}

و النتيجة سوف تكون كما في الصورة

ق.jpg

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

  • 0

باستخدام المكتبة Graphics في C ++، يمكنك إنشاء أشكال أساسية مثل الخط والدائرة والمستطيل والقطع الناقص والقوس والشريط والشريط ثلاثي الأبعاد وعرض النص والكثير من الأشكال الأخرى، ولاستخدام دوال Graphics، يجب أن نقوم بتضمين الملف الرأسي Graphics.h.
أمثلة:
1. لرسم دائرة نستخدم الدالة Circle Function:
تأخذ هذه الدالة 3 معطيات تمثل x و y ونصف القطر.

#include<stdio.h>
#include<graphics.h>
#include<conio.h>
void main()
{
   int x=100, y=100, r=80
   int gd=DETECT, gm;
   initgraph(&gd, &gm, "d:\\bgi");
   cleardevice();
   circle(x, y, r);
   getch();
   closegraph();
}

مثال آخر لرسم دائرة نصف قطرها 80 بكسل في وسط الشاشة:

void main()
{
   int gd=DETECT, gm;
   int x, y, r=80
   initgraph(&gd, &gm, "c:\\turboc3\\bgi");
   cleardevice();
   x = getmaxx()/2;
   y = getmaxy()/2;
   circle(x, y, r);
   outtextxy(x-100, y-50, "CIRCLE on center of screen");
   getch();
   closegraph();
}

ملاحظات:
- الدالة getmaxx تُرجع أكبر قيمة للإحداثيات X، بينما getmaxy تُرجع أكبر قيمة للإحداثيات Y.
- الدالة initgraph تستخدم لتهيئة رسومات النظام عن طريق تحميل مشغل رسومات من القرص وبالتالي وضع النظام في وضع الرسوم. تأخذ هذه الدالة 3 معطيات: كشف الرسم ، ووضع الرسوم ، ومسار ملف bgi.
- يرمز bgi إلى Borland Graphics Interface، وهو عبارة عن مكتبة رسومية. تقوم هذه المكتبة بتحميل برامج تشغيل الرسوم والخطوط المتجهة (* .CHR).
- الدالة closegraph تزيل الذاكرة المخصصة بواسطة رسومات النظام ثم يرجع الشاشة إلى الوضع الذي كانت عليه قبل استدعاء initgraph.
2. لرسم خط نستخدم الدالة Line Function:
حيث تأخذ 4 وسطاء هم x1,y1,x2,y2.

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
   int gd=DETECT, gm;
   int x1=100, y1=100, x2=200, y2=200;
   initgraph(&gd, &gm, "c:\\turboc3\\bgi");
   cleardevice();
   line(x1,y1,x2,y2);
   getch();
   closegraph();
}

3. رسم حلقة Ellipse Function:

ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius)

4. رسم مستطيل Rectangle Function:
يأخذ 4 وسطاء تحدد احداثياته.

x1(left), y1(top), x2(right), y2(bottom)

مثال:

void main()
{
   int gd=DETECT, gm;
   initgraph(&gd, &gm, "c:\\turboc3\\bgi");
   cleardevice();
   rectangle(100,100,200,200);
   getch();
   closegraph();
}

هناك العديد من الخصائص الإضافية مثل تغيير الألوان وأمور أخرى لايسعنا ذكرها، لذا يمكنك الاطلاع على كافة الدوال والخصائص من خلال التوثيق هنا.

أما بالنسبة لطباعة الأحرف الإنجليزية فالأمر بسيط، مثال:

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    char str[100];
    int i;
    // إدخال الأحرف الإنجليزية المراد طباعتها
    cin>>str;
    cout<<"Characters of the given Strings!\n";
    // طباعتها
    i=0;
    while(str[i]!= '\0'){
        cout<<"The charecters of "<<" "<<i<<" position : "<<str[i] <<"\n";
         i++;
    }
    getch();
    return 0;
}

 

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

  • 0
بتاريخ 15 ساعة قال نادين شديد:

لو سمحتو بدي ارسم حرف S باستخدام * 

في لغة c++ لازم استخدم nested for loop وفقط main function

الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ويمكن مساعدتك في حال تم توفير كود، وإليك خطوات الحل:

  1. عليك تحديد ارتفاع وعرض الحرف ليكونوا height = 5 و width = 5، وتستطيعي تعديل تلك القيم حسب رغبتك.
  2. استخدام حلقتي for متداخلتين للتحكم في الصفوف والأعمدة، بحيث تعتمد الأولى على الطول height والداخلية تعتمد على width، 
  3. استخدام مجموعة من الجمل الشرطية (if statements) داخل الحلقة الداخلية لتحديد متى يجب وضع النجمة ومتى يجب وضع المسافة في كل خلية من الصفوف والأعمدة، ولمساعدتك ستحتاجين جمل شرطية للتالي: إذا كان الصف الأول، إذا كان الصف الوسط والعمود يساوي 0 أو 4، إذا كان الصف الأخير، إذا كان العمود يساوي 0 في الصفان الوسطيان، إذا كان العمود يساوي width - 1 في الصفان الوسطيان، وبالطبع حالة else يتم بطباعة مسافة.
  4.  استخدام std::cout لطباعة النجوم أو المسافات اعتمادًا على الشروط المحددة.
  5. استخدم std::endl للانتقال إلى السطر التالي بعد اكتمال كل صف وذلك في الحلقة الخارجية.
  6. يجب تحديد الشروط بدقة للتأكد من أن النجوم والمسافات يتم وضعها في الأماكن الصحيحة.
  7. ستحتاجين إلى تجربة البرنامج وتعديل الشروط إذا لزم الأمر للحصول على النتيجة المرجوة.

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...