11

[مسابقة برمجية][00G]

hanymoh

نظرا لآن المسابقات المطروحة تحتاج وقت أطول لتنفيذها, وحتى لا يسأم الشباب فقد ساهمت بمثال بسيط كنا ندرسه فى بدايات الدراسه كى يساهم الجميع بأفضل وأنظف كود ممن يرسم به هذا الشكل مثلا

  • الحل يكون فى تعليق على الموضوع الاساسى

  • مناقشة حل يكون فى تعليق على تعليق الحل

عندى أمل إن الكل يشارك قبل أن نعقد المسابقة أكثر ونتدرج مع بعض بأنظف كود لرسم الشكل التالى

/*
# # # # # # # 
                  #
              #
           #
       #
   #
# # # # # # #
*/
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

و أيضا هذه محاولة بالبايثون

symbol = '#'
size = 7

z = symbol * size + '\n'
for i in range(size-1, -1, -1): z += ' ' * i + symbol + '\n'
z += symbol * size

print(z)

هي نفس محاولة Mr.731MY لكن بطريقة أقصر.

نفس الكيفية لكن بjavascript

var size = 7 , output = '' , i;
output += Array(size+1).join('#') + '\n';
for(i=size;i>0;--i) output += Array(i+1).join(' ') + '#\n';
output += Array(size+1).join('#');
console.log(output)

وهذه اخرى بالبايثون

for i in range(8):
  if i in [0,7]:
    print "# "*7
  else:
    print "  "*(6-i)+ "# "

محاولة بالبايثون

for x in range(1,7):
    if x==1: print "#######";
    for i in range(x,6):
        print " ",;
    print "#"
    if x==6: print "#######";

محاولة اخرى

for x in range(1,7):
    if x==1: 
        for d in range(1,8): 
            print '#',
            if d==7 : print ''
    for i in range(x,6):
        print " ",;
    print "#"
    if x==5: 
        for b in range(1,7): print "#",

:)

eval(("etirw.tuodts.)'sys'("+2*'_'+"tropmi"
                        +2*'_')[::-1]
                    )("".join(
                "# "*6
            *(i%7<1)
        +"  "*(
    i%7+1>1
)*(6-i%7)+"# \n" for i in range(8)))

ما معني G بجانب الرقم ؟

ثم هل تقصد ان المطلوب هو كتابة Z بالنجوم ؟

محاولة غبية مني على البايثون:

for x in range(1,7):
    print "#",
for x in range(1,7):
    print ("  "*(7-x)+"#")
for x in range(1,7):
    print "#",

وهذه أخرى أقصر

for i in range(8): 
    b = i%7
    print ("  " *bool(b) if b else "# ")*(6-b) + "# "

:) أقصر كثيرا

for i in range(8):print "# "*7 if not i%7 else"  "*(6-i%7)+"# "

محاولة بالجافا .. لا تنس إستراد الكائن Scanner ولا تنس إدخال رقم وليكن مثلا 6 لرسم نفس الشكل

 Scanner input = new Scanner(System.in);

        int user_input = input.nextInt();

        for (int i = 0; i < user_input; i++) {
            for (int j = user_input; j > 0; j--) {
                if (i == 0 || i == user_input - 1 || j == i + 1) {
                    System.out.print("#");
                    System.out.print(" ");
                } else {
                    System.out.print("  ");
                }
            } 

            System.out.println("");
        }