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

تمرين بسيط ....les tableau

بدأه yacinebrca في 29 يناير 2014 · 12 رد · 941 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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


 


:D اخواني الكرام سأقدم لكم تمرين ..اتمنى من الاخوة أن يحاولوا في حله ...


 


 


البرنامج يسمح للمستخدم بملأ جدولين xو y بحيث:


 


x:تمثل الفواصل


y:تمثل التراتيب


يحوي كل جدول 100 نقطة


 


حساب مسافة بين نقطتين


 


40a76768bda0d29071a07fbab3fdb772.png


 


تقوم بحساب كل المسافات الممكنة بين نقطتين.. من خلال النقاط الموجودة في الجدولين


 


ثم يقوم البرنامج بطباعة أصغر مسافة ممكنة ..


 


 


<_< أتمنى ان لا أرى محاولات تم أخذها من مواقع أخرى ... اتمنى ان ارى حلولكم .... :o


 


البرنامج بلغة السي


اليك هذه الصورة


 


Emxca.png


 


 


 


 


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


تم تعديل هذه المشاركة بواسطة yacinebrca في 29 يناير 2014 في 20:26

2

elearning_image.jpg

#2

بارك الله فيك :)

أرى أنه من الأفضل أن يدخل المستخدم x و y للنقطة معاً ,

هذا هو حلي حتى الآن .

(الإدخال لعشر نقاط لتسهيل تجريب البرنامج )

#include<cstdio>
#include<cmath>
#define  ___ float
#define    o___o int
#define  O_O 10
int main(){
___
 _[O_O],
  o[O_O],
   O=O_O;
    puts("Enter "
     "point coordinates "
      "(x,y)");while(O --> 0)
       scanf("%f%f",&_[(o___o)
        O],&(o___o(O))[o]);___
         D=O_O<<O_O,
          d;for(o___o
           __=!_;__<O_O;__
            ++)
               for(o___o
                   O=__+
                   !!_;O
                   <O_O;
                     O
            ++)
          if((d=
         sqrt(pow
        (_[__]-_[O],O_O
       >>2)+
      pow(o[__]-o[O],O_O
     >>2))
    )<D)D=d;
   printf("%f\n",D);
  return 0;
}

والله ولي التوفيق

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 29 يناير 2014 في 15:10

1 −1
#3

وهذا الحل بلغة C

#include<stdio.h>
#include<math.h>
#define  ___ float
#define    o___o int
#define  O_O 10
int main(){
___
 _[O_O],
  o[O_O],
   O_=O_O;
o___o  O,__;
    puts("Enter "
     "point coordinates "
      "(x,y)");while(O_ --> 0)
       scanf("%f%f",&_[(o___o)
        O_],&((o___o)O_)[o]);___
         D=O_O<<O_O,
          d;for(__=!_;__<O_O;__
            ++)
               for(O=__+
                   !!_;O
                   <O_O;
                     O
            ++)
          if((d=
         sqrt(pow
        (_[__]-_[O],O_O
       >>2)+
      pow(o[__]-o[O],O_O
     >>2))
    )<D)D=d;
   printf("%f\n",D);
  return 0;
}

اختلافات بسيطة طبعاً بين الكودين ..

 

بالتوفيق D:

1 −2
#4

كود قبيح!

بلا استعراض عضلات رجاء.

1 −1
#5

:D

السؤال بسيط , لم لا نضيف بعض الحركة ,

عذراً للإزعاج أخAdban

بانتظار حلك للسؤال

بالتوفيق

_________________

بالمناسبة

طريقة إدخال الإحداثيات كما يلي في المثال

1 1

2 2

3 3

وهكذا x ثم فراغ ثم y

حتى اتمام العشر نقاط

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 29 يناير 2014 في 23:56

#6

اخي شكرا على المحاولة فقد جربت البرنامج وهو يعمل :)   .

 

 

..لكن . أرجوا ان تكتب البرنامج بكود مفهوم بعض الشيئ :blush: ... حتي نستفيد ...

 

 

  :huh: أتمنى أن ارى محاولات أخرى :huh: 
 

تم تعديل هذه المشاركة بواسطة yacinebrca في 30 يناير 2014 في 14:53

1

elearning_image.jpg

#7

هيا ضع حلك للمسالة وسنتناقش فيه :)

#8

ولا مشاركة حتى الان ... اظن ان المشكل في التمرين :(....

الحـــــــــــــــــــــــــــــــــــــــــــــــــــل <_<

/*  Name: khelifa yacine     Date: 02/02/14 22:53   */#include <stdio.h>#include<stdlib.h>#include <math.h>#define K  10  int main(){  float x[K],y[K],D,M;   int i,j;    system("color 9f");    printf("\n\n Entrez les points  : A ( x , y ) \n\n");     for(i=0;i<K;i++){                  printf("\n Point N %d ",i+1);                                    printf("\n x = ");                  scanf("%f",&x);                                                                   printf(" y = ");                  scanf("%f",&y);                  }   D = sqrt(  pow ( (x[0]-x[1]),2 ) +  pow ( (y[0]-y[1]),2 ) );       for(i=0;i<K;i++)                    {                          for( j=i+1 ; j<K ; j++ ) {                                M = sqrt(  pow ( (x[j]-x),2 ) +  pow ( (y[j]-y),2 ) );                                                                                                                                                                                                   if(D > M)                                                               D = M ;                                                                                                                                                                                   }                                                                                }       printf("\n\n\n Appuyez sur n'importe quelle touche   \n\n");       system("PAUSE>nul");   system("color 4f");       printf("\n Le plus petit espace possible  D = %.2f",D);       system("PAUSE>nul");	  return 0;}

أي أسئلة حول الكود ... أنا هنا ..... ;)

ساقوم بعرض مشكل آخر :o ... من جنس هذا التمرين ... :blush:

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 7 فبراير 2014 في 21:49

1

elearning_image.jpg

#9

واضح انك نقلت من كودي !
:lol:

ثم ما هذا

اقتباس
ولا مشاركة حتى الان ...

يعني مشاركتي غير محسوبة ؟

بانتظار السؤال التالي

بالتوفيق

#10

اخي انا لم أقم بنقل من حلك...انا اصلا لم افقه الحل الذي قمت بكتابته..انا طلبت منك ان تكتب لنا كود مفهوم بسيط..كالذي قمت انا بكتابته..لكنك تعجلعت وطلبت حلي....فقمت بكتابته .....وانا ذلك كتبته لوحدي دون الاستعانة باي شخص وبعيدا عن موقع قوقل....
اتمنى تكون قد جربته..لكي نتناقش عليه....ان كان به اي كود غير مفهوم...

تم تعديل هذه المشاركة بواسطة yacinebrca في 4 فبراير 2014 في 01:31

elearning_image.jpg

#11

كنت أمزح معك , أعرف أنك لم تنقل من حلي :lol:

 

أنت تستخدم gcc أليس كذلك ؟

الدالة system بحاجة إلى

#include<stdlib.h>

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 3 فبراير 2014 في 21:07

#12

نعم .... لكن لا يوجد اي مشكل في عدم كتابتها على الكود....فالبرنامج شغال...

تم التعديل.....

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 7 فبراير 2014 في 21:49

elearning_image.jpg

#13

أرغب بوضع الكود الـغير مشوش الذي كتبته قبل التشويش من فضلك

#define unambigues#include<cstdio>#include<cmath>int main(){    float x[10],y[10];//we can expand the code to handle n point easily [but not the algorithm]    printf("Enter point coordinates (x,y)");    for(int i=0;i<10;i++){        scanf("%f%f",&x,&y);    }    float d[(10*11)/2];//9+8+7+6+5+4+3+2+1 pair    //actually no need to sort    int index=0;    float D=999999;    for(int i=0;i<10;i++){        for(int j=i+1;j<10;j++){            d[index++]=sqrt(pow(x-x[j],2)+pow(y-y[j],2));            printf("%d,%d -> %f\n",i,j,d[index-1]);            if(d[index-1]<D)                D=d[index-1];        }    }    printf("%f\n",D);    return 0;}

ملاحظة : هذا الكود , والكود المشوش الذي وضعته أعلاه متطابقان , التغييرات فقط في أسماء المتغيرات , وموضع الفراغات

بالتوفيق

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

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

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

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

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