• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

tantie L

اعضاء
  • عدد المشاركات

    156
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

39 عادي

1 متابع

عن tantie L

  • الرتبة
    عضو
  • تاريخ الميلاد 02/18/1994

معلومات الملف الشخصي

  • الجنس أنثى
  • اهتمامات ما يرضي الله و رسوله البرمجة بلغة C و نظام التشغيل Lunix و الشيفرات الرقمية و المتعلقة بالأحرف و الروايات البوليسية و كتابتها

أحدث الزائرين لملفلك الشخصي

2,190 زياره للملف الشخصي
  1. السلام عليكم و رحمة الله و بركاته  أود استعمال  Bluez لمحاكاة تبادل المعلومات باستعمال ال bluetooth لكني لم اعرف كيف يمكنني استعماله او حتى ما يتوجب علي تثبيته حتى استعمله انا استخدم نظام ubuntu 15.10 و قد علمت ان ال Bluez مثبت على اخر اصدار  كما هو موضح هنا http://www7.0zz0.com/2016/02/10/21/851798821.png و بعد ان بحثت وجدت انه يجب تثبيت  bluez-utils فحاولت تثبيته لكن ظهر لي التالي فحاولت مع غيره و هو  bluez-hcidump و انا حقيقة لا اعرف اي شيء عنه .. نجح تثبيته على ما اعتقد فقد ظهر لي التالي  سؤالي الان هل صار بامكاني الان استعماله للمحاكاة؟  فان كان نعم .. فهلا تفضلتم علي عن كيفية ذلك؟ و ان كان لا فهل يمكنكم اخباري عن الكيفية الصحيحة لتثبيته و عن كيفية استعماله؟ فانا لا اعرف شيئا عنه
  2. عودا حميدا دائما و هنيئا لنا و لكم بهذا فقد افتقدنا منتدانا و خيره الوفير و فضله الغامر ادامه الله لنا و خير الجزاء من الله الكريم لمن تكفل بعودته  بوركتم اساتذتي و اخواني
  3. السلام عليكم و رحمة الله و بركاته  حقيقة لا اعلم ما ان كان هذا هو المكان المناسب لطرح سؤالي او لا لكن عندما وجدت هذا الموضوع http://arabteam2000-forum.com/index.php/topic/294822-%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D9%81%D9%8A-%D8%A8%D8%B1%D9%88%D9%84%D9%88%D8%AC-%D9%88%D8%AD%D9%84-%D9%84%D8%B9%D8%A8%D8%A9-%D8%B3%D9%88%D8%AF%D9%83%D9%88/#entry1403356 ظننت بانه الاقرب لاطرح سؤالي، تم تكليفنا ببحث يدور حول (programmation logique (logic programming و من بين العناصر فهناك المساوئ و المحاسن .. فهلا تفضلتم علي باطلاعي عليها و لكم جزيل الشكر 
  4. مشكلة في ال software center

    طيب قمت بكتابة تلك التعليمات في التارمينال و ظهرت لي الكثير من الكتابات حقيقة لم افهم منها شيئا و فيها روابط انترنت ايضا و في نهاية تلك الكتابة كلها ظهر لي هذا السطر E: Some index files failed to download. They have been ignored, or old ones used instead.فما الذي سافعله بعد هذا؟ فعندما قمت باعادة محاولة التثبيت لم اجد اصلا الزر الخاص بالتثبيت install
  5. مشكلة في ال software center

    اشكرك على اجابتك استاذ لكن لو سمحت هل بامكانك ان توضح لي ما هذا؟ و هل له علاقة بالحل ام ماذا؟! deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted #Added by software-properties# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to# newer versions of the distribution.deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse universe #Added by software-properties## Major bug fix updates produced after the final release of the## distribution.deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates restricted main multiverse universe #Added by software-properties## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu## team. Also, please note that software in universe WILL NOT receive any## review or updates from the Ubuntu security team.deb http://us.archive.ubuntu.com/ubuntu/ precise universedeb http://us.archive.ubuntu.com/ubuntu/ precise-updates universe## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu## security team.## N.B. software from this repository may not have been tested as## extensively as that contained in the main release, although it includes## newer versions of some applications which may provide useful features.## Also, please note that software in backports WILL NOT receive any review## or updates from the Ubuntu security team.deb http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse #Added by software-propertiesdeb http://us.archive.ubuntu.com/ubuntu/ precise-security main restricted multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-security restricted main multiverse universe #Added by software-propertiesdeb http://us.archive.ubuntu.com/ubuntu/ precise-security universe## Uncomment the following two lines to add software from Canonical's## 'partner' repository.## This software is not part of Ubuntu, but is offered by Canonical and the## respective vendors as a service to Ubuntu users.deb http://archive.canonical.com/ubuntu precise partnerdeb-src http://archive.canonical.com/ubuntu precise partner## This software is not part of Ubuntu, but is offered by third-party## developers who want to ship their latest software.
  6. السلام عليكم و رحمة الله و بركاته اساتذتي اخوتي   عندما اردت تحميل flex و bison من ال software center حدثت معي مشكلة لم اعرف ما سببها فقمت بتجريب تثبيت برنامج اخر لكن نفس الامر حدث و هو ظهور هذه النافذة فما السبب وراء هذا و كيف احل المشكلة بارك فيكم الله و وفقكم الى ما يرضاه  
  7. اعتذر عن النصوص الفرنسية فانا لم انتبه لتغييرها اعذر تسرعي استاذي الكريم     بارك فيك الله
  8. السلام عليكم و رحمة الله و بركاته   تم تكليفنا بكتابة كود برنامج ينسق العمل بين 3 من ال process حيث يكون عندنا "إجراء أب" و "إجراء ابن 1" و "أجراء ابن 2" و فقط ملاحظة للعلم : بما ان هذا الكود يستخدم الدالتين () fork و () pipe فهو يشتغل فقط على اللونيكس و هذا على حسب علمي كون تلكما الدالتين خاصتين بنظام التشغيل اللونيكس    نقوم بانشاء الاجراء الابن 1 باستخدام fork و نقوم بعدها بايقاف عمل الاجراء الاب باستخدام wait كي لا ينفذ الاب نفس تعليمات الابن و الاجراء الابن 1 سيقوم بطلب رسالة من المستخدم و يقوم بحفظها في طرف ال pipe الخاص بالكتابة هذه هي التعليمات الخاصة بانشاء الاجراء الابن 1 و جعل الاجراء الاب في حالة انتظار pid = fork(); wait(5);و هذه هي التعليمات الخاصة بالاجراء الابن 1 ليقوم بطلب الرسالة من المستخدم و يقوم بحفظها في الجزء الخاص بالكتابة في ال pipe الاول و الشرط الذي يجعلني اعمل على الاجراء الابن 1 هي القيمة التي ترجعها fork فان كانت 0 معناه اننا نعمل على الاجراء الابن و ان كانت اكبر من الصفر تمام فهذا يعني اننا نعمل على الاجراء الاب if(pid == 0){ printf("le fils_1 :\nentrer le message : "); scanf("%s", sms); close(DT_1[0]); write(DT_1[1], &sms,len); close(DT_1[1]); exit (0); }بعدها يتوقف الاجراء الابن 1 و يعود الاجراء الاب للعمل فيقوم بانشاء اجراء ابن 2 باستعمال fork مرة اخرى و نوقف الاب عن العمل ثانية ليقوم الاجراء الابن 2 بقراءة المعلومة التي قام الاجراء الابن 1 بتسجيلها في ال pipe الاول ثم يقوم بتشفيرها (يقلب الرسالة) و بعدها يقوم بكتابتها في جهة الكتابة الخاصة بال pipe الثاني و هي التعليمات الخاصة بها if(pid > 0){ pid = fork(); wait(); if(pid == 0){ printf("\nle fils_2 :"); read(DT_1[0], &sms, len); codage(); close(DT_2[0]); write(DT_2[1], &sms,len); close(DT_2[1]); exit (0); }بعد ان يقوم الاجراء الابن 2 بانهاء تعليماته يغادر و يبقى الاجراء الاب لوحده يقوم بقراءة ما تركه له الاجراء الابن 2 فيقوم بفك تشفيره و طباعته على الشاشة ثم يغادر هو ايضا و هذه هي التعليمات الخاصة به if(pid > 0){ printf("\nle pere :"); read(DT_2[0], &sms, len); decodage(); //puts(sms); exit (0); }لكن عند التنفيذ فقط الاجراء الابن 1 هو من يؤدي مهمته فيقوم باخذ الرسالة من المستخدم و اما الاجراء الابن 2 و الاجراء الاب فلا يعملان و السبب هو ان محتوى الرسالة لا يصلهم فحاولت اخراج هذه التعليمات خارج الجزء الخاص بالاجراء الابن 1  printf("le fils_1 :\nentrer le message : "); scanf("%s", sms);فوصلت الرسالة للجراء الابن 2 و للاب فقام الاجراء الابن 2 بمهمته بالتشفير لكن الاجراء الاب لم يقم بمهمته بسبب وجود اجراء اخر دخيل يقوم هو بعمل الاب فلم اعرف كيف احل هذا الخطأ فهلا افدتموني و اعنتموني بارك فيك الله و ها هو الكود باكمله حتى يكون التتبع افضل #include <stdio.h>#include <unistd.h>#include <string.h>#include <sys/types.h>char sms[20];int i,len;char im;void codage(){ printf("\ncodage: "); for (i = 0; i < (strlen(sms)) / 2; i++){ im = sms[(strlen(sms)) - i - 1]; sms[(strlen(sms)) - i - 1] = sms[i]; sms[i] = im; } puts(sms);}void decodage(){ printf("\ndecodage: "); for (i = 0; i < (strlen(sms)) / 2; i++){ im = sms[(strlen(sms)) - i - 1]; sms[(strlen(sms)) - i - 1] = sms[i]; sms[i] = im; } puts(sms);}main(){ int DT_1[2], DT_2[2]; int pid; if(pipe(DT_1) == -1){ printf("erreur, le tube n'est cree pas\n"); return (1); } if(pipe(DT_2) == -1){ printf("erreur, le tube n'est cree pas\n"); return (1); } pid = fork(); wait(5); if(pid == 0){ printf("le fils_1 :\nentrer le message : "); scanf("%s", sms); close(DT_1[0]); write(DT_1[1], &sms,len); close(DT_1[1]); exit (0); } if(pid > 0){ pid = fork(); wait(); if(pid == 0){ printf("\nle fils_2 :"); read(DT_1[0], &sms, len); codage(); close(DT_2[0]); write(DT_2[1], &sms,len); close(DT_2[1]); exit (0); } if(pid > 0){ printf("\nle pere :"); read(DT_2[0], &sms, len); decodage(); exit (0); } }}و شكرا لكل من اجابني مسبقا و وفقكم الله الى ما يرضاه
  9. بالفعل ذهب المشكل فور تغييري من 20 الى 19 فما السبب لو تفضلت كرما استاذ؟
  10. السلام عليكم و رحمة الله و بركاته  حقيقة انا جد مبتدئة مع الاندرويد و برمجة تطبيقات الاندرويد و في اثناء برمجتي لاولى البرامج التمهيدية كتعرف على مكونات البيئة التطويرية و بعض المكونات لتطبيقات الاندرويد واجهتني هذه المشكلة و لم اعرف سببها عندما اقوم باستخدام plain text من text fields تواجهني مشكلة و هي ان ال graphical layout تعلق فلا استطيق العمل عليها ثانية باي شكل كان الا ان قمت بحذف plain text لكن في الملف main.xml استطيع العمل بشكل عادي و النتائج تظهر عادي عندما اقوم بتطبيق البرنامج كتطبيق اندرويد على المحاكي (AVD) و هذا الامر لا يتعلق فقط بال plain text و انما مع جميع ما يوجد في ملف text fields و هذا ما يبدو عليه الامر قبل ان يعلق ال graphical layout :     و هذا ما يبدو عليه بعد ان يعلق :     و عندما اشغل البرنامج على المحاكي حتى و ان علق ال graphical layout يشتغل بشكل عادي كما في الصورة     فلم افهم ما السبب و حتى ذلك التحذير الذي ظهر لم استوعبه جيدا  فهل لكم ان تعينوني بمعرفة حل هذه المشكلة و لكم من الله خير الثواب  وفقكم الله الى كل ما يرضاه
  11. فيديوهات في برمجة الأندرويد عربي و إنجليزي

    بارك فيك الله استاذي الكريم  ^_^
  12. و عليكم السلام و رحمة الله و بركاته  لا عليك ابدا  ^_^ فانا ايضا مثلك مبتدئة جدا في انظمة التشغيل رغم اني احبها  :lol: مسير الذاكرة هو برنامج يكون مدرجا مع نظام التشغيل او بالاحرى و على حسب ما افهم هو ان مسير الذاكرة برنامج من مجموعة برامج نظام التشغيل اعتقد انه يمكن للمبرمج ان يكتب برنامج لتسيير الذاكرة ففي النهاية مسير الذاكرة هو برنامج فيه استراتيجيات و تقنيات للتسيير و الكود المرفق هو محاكاة لاستراتيجية يستخدمها المسير في حالة التجزئة المتعددة و اسمها FIFO اختصارا ل first in first out  و قد كتبتها بلغة C و ان شئت فانني ايضا املك برنامجا لمحاكاة استراتيجية LRU اختصارا ل least recently used يمكنني ان اطرحها ايضا لكنها ب C هي الاخرى  ... لذلك فانني ارى بانه يمكن للمبرمج ان يبرمج مسيرا للذاكرة لكن ليس بالسهولة المتوقعة و تحتاج للتعمق اكثر في هذا المجال  بالنسبة لسؤالك الاخير فانا لا اعرف الاجابة فعذرا منك لهذا ... و من يعرف فليتفضل و يفدنا مشكورا  #include<stdio.h>#include<stdlib.h>typedef struct liste//القائمة الخاصة بسلسلة المرجع{ int a; struct liste *ptrn;}chaine_ref;typedef struct liste1//القائمة الخاصة بعدد الامكنة المحدد للبرنامج{ int a,age,Dp;//المتغير 1 خاص بمحتوى الخانة و 2 خاص بمدة مكوث جزء البرنامج في تلك الخانة و 3 عدد مرات تحميل الصفحات او اجزاء البرنامج struct liste *ptrn;}case_memoire;chaine_ref *criation_chaine(chaine_ref *tete,int tpage)//ايجاد سلسلة المراجع{ chaine_ref *p,*n_m; int x,i=0; tete=NULL; p=tete; while(i!=-1)//شرط التوقف { p=(chaine_ref*)malloc(sizeof(chaine_ref)); do { printf("entrer le numero de page svp (inferieur a taille de page): "); scanf("%d",&x); }while(x>=tpage); p->a=x; p->ptrn=NULL; if(tete!=NULL) n_m->ptrn=p; else tete=p; n_m=p; printf("(si vous voulez arriter ecrivez -1) : "); scanf("%d",&i); } return tete;}void aff_chain_ref(chaine_ref *tete)//الدالة الخاصة بطباعة السلسة المرجعية{ chaine_ref *p; p=tete; printf("la chaine de reference est :\n"); while(p!=NULL) { printf("%d ",p->a); p=p->ptrn; }}case_memoire *criation_case(case_memoire *tete,int n)//ايجاد القائمة الخاصة بمحتوايات حصة البرنامج من الذاكرة{ case_memoire *p,*n_m; int i=0; tete=NULL; p=tete; while(i<n) { p=(case_memoire*)malloc(sizeof(case_memoire)); p->a=-1;//قيم ابتدائية للمساعدة p->age=0;//نفس الشيء p->Dp=n;//اول قيمة لعدد مرات تحميل صفحات البرنامجو هو عدد الخانات المخصصة للبرنامج في الذاكرة p->ptrn=NULL; if(tete!=NULL) n_m->ptrn=p; else tete=p; n_m=p; i++; } return tete;}case_memoire *nbr_defaut_page(case_memoire *tete)//الدالة التي تحسب عدد مرات تحميل صفحات البرنامج{ case_memoire *p; p=tete; while(p!=NULL) { p->Dp++; p=p->ptrn; } return tete;}void aff_case_memo(case_memoire *tete,int tpage)//الدالة التي تطبع محتويات حصة البرنامج من الذاكرة{ case_memoire *p; p=tete; printf("\n:::::::::::::::::::::::::::::\n"); while(p!=NULL && p->a>=-1 && p->a<tpage && p->age>-1 && p->age<tpage)//شرط طباعة المحتويات لانه في بعض الاحيان عندما تكون هناك خانات متبقية من حصة البرنامج في الذاكرة في المرحلة الاخيرة فانه يظهر محتوى عشوائيو انا لا اريده { printf("%d\n",p->a); p=p->ptrn; }}case_memoire *mis_a_jour(case_memoire *tete)// الدالة التي تقوم بتحديث مدة مكوث مراجع الصفحات في خانات الذاكرة{ case_memoire *p; p=tete; while(p!=NULL) { p->age++; p=p->ptrn; } return tete;}int il_est_repeter(case_memoire *tete,int t)// الدالة الجديدة{ case_memoire *p; int existe=1; p=tete; while(p!=NULL && existe==1) { if(p->a==t) existe=0; else p=p->ptrn; } if(existe==1) return 1;//القيمة ليست موجودة else return 0; // القيمة موجودة}case_memoire *ptr_max(case_memoire *tete,int t,int tpage)//الدالة التي تجد اطول مكوث و تقوم بادراج المرجع الجديد مكانه{ case_memoire *p,*max; int existe; p=tete; max=tete;//متغير لايجاد المكوث الاطول و ياخذ قيمة راس القائمة while(p!=NULL) { if(p->age>=max->age) { max=p; p=p->ptrn; } else p=p->ptrn; } existe=il_est_repeter(tete,t); p=tete; while(p!=NULL && p!=max && existe==1)// اعود و ابحث عن القيمة المساوية لاكبر مكوث في الذاكرة { p=p->ptrn; } if(existe==0) { return tete; } if(p==max && existe==1)//هنا الشرط الثاني لتوقف الحلقة و هو ايجاد قيمة مساوية لاكبر مكوث { //if()//اقوم بشرط و هو اختلاف قيمته عن قيمة اول قيمة للسلة المرجعية { p->age=0;//اعيد عمره صفرا p->a=t;//و اسند اول قيمة في الجدول له tete=nbr_defaut_page(tete);//احسب عدد مرات تحميل الصفحات aff_case_memo(tete,tpage);//اطبع محتوى الذاكرة } tete=mis_a_jour(tete);//ثم اقوم بتحديث فترة مكوث الصفحات في الذاكرة return tete; }}chaine_ref *chaine_ref_organizer(chaine_ref *tete,chaine_ref *tete2)//هذه الدالة تقوم بتنظيم السلسلة المرجعية و تحذف القيم المتكررة بشكل متتال مثل 11 او 222 و هكذا{ chaine_ref *P,*Q,*n_m; int i=0; P=tete2; tete=NULL; Q=tete; while(P!=NULL) { if(P==tete2) { Q=(chaine_ref*)malloc(sizeof(chaine_ref)); Q->a=P->a; Q->ptrn=NULL; tete=Q; P=P->ptrn; } else { if(P->a!=Q->a) { Q=(chaine_ref*)malloc(sizeof(chaine_ref)); Q->a=P->a; Q->ptrn=NULL; n_m->ptrn=Q; P=P->ptrn; } else P=P->ptrn; } n_m=Q; } return tete;}case_memoire *FIFO(chaine_ref *tete,case_memoire *tete2,int n_c,int *t,int l,int tpage)//هذه هي الدالة الخاصة بهذه الاستراتيجية{ chaine_ref *p; case_memoire *q,*old; int i=n_c,j=l-n_c; p=tete; q=tete2; //هنا اقوم بملئ الذاكرة بالقيم المرجعية كاول خطوة ثم اتابع تحميل البقية while(q!=NULL && p!=NULL && i>0) { q->a=p->a; q->age=i; p=p->ptrn; q=q->ptrn; i=i-1; } aff_case_memo(tete2,tpage); //هنا اقوم بحذف القيم التي تم ادراجها في الذاكرة عن طريق ازاحة قيم الجدول بعدد خانات الذاكرة for(i=0;i<l;i++) t[i]=t[i+n_c]; //هنا تأتي المراحل الاخرى و هي تحميل بقية السلسلة المرجعية في الذاكرة while(j>0)// متغير الحلقة اخذ قيمة ابتدائية هي الفرق بين طول السلسلة المرجعية و عدد خانات الذاكرة لانه يبدأ عمله بع ادراج الدفع الاولى { tete2=ptr_max(tete2,t[1],tpage);// انادي الدالة التي تبحث عن اكبر مكوث و تدرج القيمة التالية حيث توابعها هي خانات الذاكرة و جدول السلسلة المرجعية الجديد for(i=0;i<l-j+2;i++)//احذف القيمة التي تم ادراجها t[i]=t[i+1]; j--; } return tete2;}int chaine_ref_lenth(chaine_ref *tete)//الدالة التي تحسب لي طول السلسة المرجعية بعد تنظيمها{ chaine_ref *p; int x; p=tete; while(p!=NULL) { x++; p=p->ptrn; } return x;}//البرنامج الرئيسيmain(){ int n_page,Tpage,nbr_case,Tpgm,i=0,lenth_chaine,Tmc,*t;/*النتغيرات على الترتيب عدد صفحات البرنامج حجم الصفحة الواحدة عدد خانات الذاكرة الخاصة بالبرنامج حجم البرنامج متغير لتحريك الحلقة طول السلسلة المرجعية حجم الذاكرة جدول يحمل السلسلة المرجعية المنظمة و تتم عليه عمليات الحذف*/ chaine_ref *tete_chaine,*chaine_referense,*tete_chaine_or,*p;/*قائمة للمراجع قبل و بعد تنظيمها*/ case_memoire *tete_case_memory,*case_memory,*q;/*قائمة الذاكرة*/ do { printf("entrer la taille de pgm svp : "); scanf("%d",&Tpgm); }while(Tpgm<=0); do { printf("entrer la taille de votre MC svp : "); scanf("%d",&Tmc); }while(Tmc<=0); do { printf("entrer la taille de votre page svp : "); scanf("%d",&Tpage); }while(Tpage<=0); n_page=Tpgm/Tpage;//حساب عدد صفحات البرنامج nbr_case=Tmc/Tpage;//حساب عدد الخانات المخصصة للبرنامج في الذاكرة printf("\n/ remarque / svp entrez les num de pages, non chaine des adresse...\n\n"); chaine_referense=criation_chaine(tete_chaine,Tpage); case_memory=criation_case(tete_case_memory,nbr_case); chaine_referense=chaine_ref_organizer(tete_chaine_or,chaine_referense); lenth_chaine=chaine_ref_lenth(chaine_referense); aff_chain_ref(chaine_referense); aff_case_memo(case_memory,Tpage); // ايجاد الجدول الخاص بالسلسلة المحرفية تبعا للقائمة المنظمة t=(int*)malloc(lenth_chaine*sizeof(int)); p=chaine_referense; while(p!=NULL && i<lenth_chaine) { t[i]=p->a; p=p->ptrn; i++; } case_memory=FIFO(chaine_referense,case_memory,nbr_case,t,lenth_chaine,Tpage); q=case_memory; printf("\nle nbr de defaut de page est : %d\n===================================\n",q->Dp);و الله ولي التوفيق
  13. السلام عليكم و رحمة الله و بركاته   اريد تعلم الجافا من الصفر و في بحثي المبدئي وجدت هذا الموقع هل يمكنني الان ابدا منه كاول خطوة لتعلمها ام لا؟ http://barmaje.com/topics/6   و الله ولي ثوابكم
  14. شكرا لتفهمك الوضع بالنسبة للدالة memcpy فليس من المفترض ان يتم تدريسنا كل شيء في الجامعات او الاقسام لنطبقه بل هناك يتم اعطاؤنا الاساسيات و البقية نبحث عنها و نتعلمها فكما تعلم البرمجة بحر واسع لا حد له كل يوم تكتشف شيئا جديدا، عمل تلك الدالة هو كما قلت لك نسخ سلسلة محرفية الى اخرى، و string.h هي مكتبة فيها الدوال الخاصة بالعمل على السلاسل المحرفية و ان انت قمت بحذفها فسيقول لك الكومبايلر بان memcpy مجهولة المصدر و فيما يخص ctype.h فهي لا تفيد في برنامجك فقم بحذفها فقد حدث خطا فقط اثناء نسخ الكود لاجربه....تلك الدالة Lecture لا تستعملها مرة اخرى في مثل هذه الحالات و الا فانك سستعرض لمثل هذا المشكل في كل مرة...صحيح ان هناك حل لتغيير قيم اكثر من متغير في دالة لكنها صعبة نوعا ما بارك فينا و اياك
  15. و عليكم السلام و رحمة الله و بركاته من الطبيعي ان لا تحدث قراءة للمدخلات بشكل صحيح لانك قمت بكتابة هذه الدالة E *Lecture(E*tete,char *N,char *Nom,char *Prenom){ printf("\nDonner le numero d'inscription:\t"); scanf("%s",&N); printf("\nDonner le nom de l'eleve:\t"); scanf("%s",&Nom); printf("\nDonner le prenom de l'eleve:\t"); scanf("%s",&Prenom); return tete;}انا برايي لا فائدة ترجى منها خصوصا و ما ترجعه هو tete و انت ترغب بارجاع قيم رقم التسجيل و الاسمو اللقب و لا توجد دالة ترجع 3 قيم في نفس الوقت ... و انا لا ارى في اي مكان من هذه الدالة اي اسناد قيم للمتغير tete لذلك قم بحذف هذه الدالة من الاساس و قم بالقراءة مباشرة في وسط الدالة Creer  و فيما يخص سؤالك امسا اذن فقد كان متعلقا بهذا البرنامج اذن ففي هذه الحالة لا باس بتعريف السلاسل الحرفية في هيكلتك الجديدة بشكل ثابت لانك لست مظطرا لارسال الجداول كتوابع لاي دالة و بعد تعديل الكود قليلا على حسب ما قلته لك الان يصير هكذا #include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>typedef struct Eleves{ char num[10]; char nom[30]; char prenom[30]; struct Eleves*suivant;}E;E*tete=NULL;//Fonction Lecture:/*E *Lecture(E*tete,char *N,char *Nom,char *Prenom){ printf("\nDonner le numero d'inscription:\t"); scanf("%s",&N); printf("\nDonner le nom de l'eleve:\t"); scanf("%s",&Nom); printf("\nDonner le prenom de l'eleve:\t"); scanf("%s",&Prenom); return tete;}*///Fonction Création liste de n élèves:E *Creer(int n,E *tete){ char N[10],Nom[30],Prenom[30]; E *courant,*p; tete=NULL; p=tete; while(n>0) { printf("\nDonner le numero d'inscription:\t"); scanf("%s",&N); printf("\nDonner le nom de l'eleve:\t"); scanf("%s",&Nom); printf("\nDonner le prenom de l'eleve:\t"); scanf("%s",&Prenom); p=(E*)malloc(sizeof(E)); memcpy(p->num,N,sizeof(N)); memcpy(p->nom,Nom,sizeof(Nom)); memcpy(p->prenom,Prenom,sizeof(Prenom)); p->suivant=NULL; if(tete!=NULL) courant->suivant=p; else tete=p; courant=p; n--; } return tete;}//Fonction Ajout en tête:E*Ajout_tete(E*tete){ E *nouveau; char N[10],Nom[30],Prenom[30]; printf("\nDonner le numero d'inscription:\t"); scanf("%s",&N); printf("\nDonner le nom de l'eleve:\t"); scanf("%s",&Nom); printf("\nDonner le prenom de l'eleve:\t"); scanf("%s",&Prenom); nouveau=(E*)malloc(sizeof(E)); memcpy(nouveau->num,N,sizeof(N)); memcpy(nouveau->nom,Nom,sizeof(Nom)); memcpy(nouveau->prenom,Prenom,sizeof(Prenom)); nouveau->suivant=tete; tete=nouveau; return tete;}//Fonction Ajout à la fin:E *Ajout_fin(E *tete){ E *nouveau; char N[10],Nom[30],Prenom[30]; printf("\nDonner le numero d'inscription:\t"); scanf("%s",&N); printf("\nDonner le nom de l'eleve:\t"); scanf("%s",&Nom); printf("\nDonner le prenom de l'eleve:\t"); scanf("%s",&Prenom); nouveau=(E*)malloc(sizeof(E)); memcpy(nouveau->num,N,sizeof(N)); memcpy(nouveau->nom,Nom,sizeof(Nom)); memcpy(nouveau->prenom,Prenom,sizeof(Prenom)); nouveau->suivant=NULL; if(tete==NULL) { tete=nouveau; }else{ E*courant=tete; while(courant->suivant!=NULL) { courant=courant->suivant; } courant->suivant=nouveau; } return tete;}//Fonction d'affichage:void Affichage(E *tete){ E *courant=tete; while(courant!=NULL) { printf("\neleve = %s %s %s",courant->num,courant->nom,courant->prenom); courant=courant->suivant; }}main(){ //Déclarations: int n,i,R; E *tete,*liste; //Début: do { printf("Donner le nombre d'eleves:\t"); scanf("%d",&n); }while(n<=0); liste=Creer(n,tete); Affichage(liste); do { printf("\nVoulez vous ajouter l'eleve au debut de la liste ou a la fin? 0/1\t"); scanf("%d",&R); }while(R!=0 && R!=1); if(R==0) { //Lecture(tete,N,Nom,Prenom); liste=Ajout_tete(liste); Affichage(liste); }else{ //Lecture(tete,N,Nom,Prenom); liste=Ajout_fin(liste); Affichage(liste); }return 0;system("pause");}كما ترى فقد غيرت حقول بنيتك الجديدة الى جداول ثابتة لاننا لن نرسلها ابدا الى اي دالة، ايضا الخطأ الذي ارتكبته هو التالي tete->num=N;tete->nom=Nom;tete->prenom=Prenom;من المحال ان يتم نسخ سلسلة محرفية الى اخرى باستعمال رمز = لذلك عليك استخدام الدالة memcpy و توابعها 3 و هي الحاوية الجديدة العبارة المنسوخة و حجم الحاوية و نحدده بالدالة  sizeof و بذلك نسخ المحتويات الى حاويتنا الجديدة يكون كالتالي memcpy(p->num,N,sizeof(N));memcpy(p->nom,Nom,sizeof(Nom));memcpy(p->prenom,Prenom,sizeof(Prenom)); و ايضا ان كنت تريد ان تقوم بانشاء قائمة فعليك استخدام متغيرين من بنيتك الجديدة في البرنامج الرئسي و ليس واحدة فقط و هنا قمت بتعريف اثنتين tete و liste الولى كراس للقائمة ارسله لدالة التشكيل Creer  فقط لا غير و ما ترجعه لي اسنده للمتغير  liste و هي القائمة بعد التشكيل و هي التي ساعمل معها في جميع الدوال التالية و هاهو التعريف في البرنامج الرئيسي E *tete,*liste;و هناك خطأ منطقي في برنامجك و هو ان برنامجك يقوم فقط باظافة عنصر وحيد لا غير لذلك عليك بحل هذا المشكل  بالتوفيق اخي الكريم و من فضلك في المرات القادمة حاول ان لا تستعمل الفرنسية كثيرا و اللغة العامية الخاصة بنا حاول ان تستعمل الانجلزية او العربية الفصحى البحتة تجنبا لاي مشكل