الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تكفون وشلون اسوي ذا البرنامج؟"بسرعة تكفون"

مغلق
بدأه ashamry في 29 سبتمبر 2001 · 14 رد · 870 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله ...

اسؤال: المطلوب برنامج يقولم بطباعة الشكل التالي:

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

ملاحظة: البرنامج بلغة "c".يلزم استخداماللوب"for".

ملاحظة اخرى : الشكل المطلوب هو على شكل معين تقريبا,كا الذي كتبه ملك الشبكات ,لكن ما ادري وش اللي قلبه مثلث!!!.

#2

البرنامج السابق في غايه السهوله لا تقلق

كل ما تحتاجة تفكير مبديء على ورق

اما مفاتيح العمل :

استخدام nested for loop

استخدام

gotoxy ()

في مكانها المناسب ؟؟

ابدا اعمل على ورقه مربعات واعتبر مساحتها 80*25

وقم بزياده x او نقصانها او ال Y

الى ان تجد حل ؟؟؟

#3

يا اخ ملاك انا فكرت وحاولت لين دخت ولكن ماعرفت وبعدين

البرنامج مطلوب مني بكره . وانا ملزم بحل هذا البرنامج عن طريق الfor او while.

اخيرا ماوظيفة "gotoxy () "

هل هو نفس الامر الموجود في البيسك "go to"

سلاااام

#4

يا أخي البرنامج أسهل من السهل وأقل من العادي ومايبيله أي شيء أبداُ ..

مثال للبرنامج :

printf("       * n);
printf("     *** n);
printf("   ***** n);
printf(" ******* n);
printf("   ***** n);
printf("     *** n);
printf("       * n);

ملحوظة : البرنامج لن يظهر بالشكل الصحيح إلا بعد عمل (نسخ) و (قص) له في أي محرر‍‍!

وهناك طرق أخرى كثيرة لأداء نفس الغرض مثل استخدام FUNCTIONS للسطرين الثاني والثالث ، وطرق أخرى لتحديد بداية مكان الطباعة ، بس هذه أوضح وأسهل :)

#5

كل مل يتطلبه منك البرنامج هو ادخال رقم يمثل الارتفاع وتبدا تعمل على two for looفي كل مرة تلف فيه اللوب الكبيرة اقصد هنا الاولى ترسم عمودا يساوي عدد نقاطة اي نجومه الارتفاع -2

هنا يلزمك ادخال الارتفاع عدد فردي او زوجي ولكن عليك في النهايه و اما انقاصه بواحد او زيادته بواحد.

*

**

***

**

*

بالنسبة لل(function gotoxy (x,y

عليها تحدد مكان وضع الكورسر لكي ابدا بطباعة النجوم على screen

مثلا لابد ان ابدا بوضع الx =80

وال y=0

الfor loppالداخلية عليها طباعة النجوم في كل مره

حيث انها في كل دورة نجمة في العمود الحالي .

فيما تقوم اللوب الكبيرة بتكوين عمود في كل مره .

وهذا من وجهة نظري المتواضعة اتمنى ان اكون افدتك في هذا البرنامج ولو بالقليل .

#6

يا اخ ملاك ياليت لو تكرمت تكتب البرنامج كامل وما عليك امر لاني ما عرفت ولا انا بعارف .

ملك الشبكات: :)

حلوه ذي لو الجواب كذا كان ما سالت لكن مطلوب حل السؤال باستخدام اللوب(حلقة التكرار)"for".

ومشكور على المشاركة.

#7

الكود او البرنامج الى الان لم انفذه على الجهاز فقط هذه تجاربي على الورق ..

باذن الله في الغد احاول تنفيذه عالجهاز ...

ولكن حاول باذن الله تعرف اليوم قبل غد؟؟

الورق لا يحضرني الان سابحث عنه واذا وجدته ساكتب هنا طريقه for loopالل

والله الموفق,,,,

#8

اعتقد المسالة بسيطه فقط اعمل 2 لوب باستخدام for ثم عرف رمزين واحد نجمه وواحد فراغ ، واطبع على كل سطر 7 احرف وهنا سستحكم بماذا ستطبع من خلال عداد فاول سطر ستطبع 6 فراغات ونجمه واحده

اذا صعبت الفكره عليك ساقوم بعمل البرنامج لك

#9

سلام..

ارجو من الاخوة عدم الفلسفة :D اللي يعرف البرنامج يكتبه الله

لا يهينه بعدين يقعد يتفلسف على كيفه.

ملاحظة: يجب كتابة البرنامج باستخدام فور .

#10

الأخ : ashamry

كيف حالك؟ لم أنتبه لشرطك في السؤال استخدام For...Next

على ماأعتقد أنك قمت بعمل تعديل على السؤال وأضفت هذا الشرط ولا لا ؟

عموما حصل خير .. وبيني وبينك أنا استغربت سرالك في البداية لأنه يمكن حله باستخدام printf حتى لو لم يكن لديك خلفية على الـ C أو حتى لو كنت سيء في البرمجة فستعرفها من أول محاضرة في الكلية (إذا كنت ظالب يدرس علوم الحاسب مثلا)

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

#11

السلام عليكم.

أخي "Asharmay" هذا هو البرنامج :

#include 
#include 
main{
short num;
printf("Enter number of lines : ");
scanf("%d",&num);
if ((num/2)*2 == num )   // check for even numbers
    num++;        
for(int i=0;i{
     for(int j=0;j         printf(" ");
     for(j=0;j<(num-2*abs(num/2-i));j++)
         printf("%c",'*');
     printf("n");
}
}

مع التحيات.

#12

سلام..

ملك الشبكات : صح انا عدلت السؤال. ومشكور على الروح الياضية.

اخوي عادل(مشرفنا): تسلم ايدك على هالبرنامج لكن فيه اخطاء

بسيطة :

1-نسيت ملف include stdio.h لان scanf و printf لاتعرف"بضم التاء" لا به.

2- انت كتبت scanf لكن نسيت printf

3- نسيت void

الكود بعد التعديل

#include

#include

void main (){

short num;

printf("Enter number of lines :");

scanf(" %d",&num);

if ((num/2)*2 == num ) // check for even numbers

num=num+1;

for(int i=0;i

{

for(int j=0;j

printf(" ");

for(j=0;j<(num-2*abs(num/2-i));j++)

printf("%c",'*');

printf("n");

}

}

ملاحظة: ما اعرف طريقة وضع الكود ياليت تعلموني كيف؟

كل الشكر لـ مشرفنا عادل .

#13

السلام عليكم.

أخي "ashamry" شكرا لك على التصحيح بالنسبة ل scanf فأنا كنت أعمل في الفترة الأخيرة على برنامج في Visual Basic و التبست علي الأمور بين Scanf و Input :)و هذا حدث لأنني لم أجرب البرنامج في أي Compiler بل كتبته مباشرة في صفحة الرد.

بالنسبة للتصحيح الثالث فليس من الضروري وضع نوع القيمة التي يعيدها main طالما لا تهمنا.

على كل سأعدل الشيفرة في الأعلى حتى تكون صحيحة.

مع التحيات.

#14

بالنسبة لطريقة وضع الكود عليك كتابة التالي قبل بداية الكود:

[ code2 ]

و بعد نهاية الكود عليك كتابة التالي :

[ /code2 ]

( بدون فراغات)

و تستطيع الآن تعديل رسالتك لتظهر بشكل صحيح و يفضل أن تستخدم Identing حتى يظهر الكود بشكل مفهوم.

مع التحيات.

#15

الأخ : ashamry

شكراً على صدقك ، وأعتقد بأنك عرفت الآن لمذا أجبت عليك بذلك الكود !

وبالنسبة للبرنامج أنا وعدتك اليوم ، ولكني وجدت الأخ : عادل

قد سبقني .. فجزاه الله كل خير.

( حلوة ذي الروح الرياضية :) قصدي البرمجية ;) )

وجزاكم الله كل خير.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…