Showing posts with label لغات البرمجة. Show all posts
Showing posts with label لغات البرمجة. Show all posts

ماهي لغات البرمجة



لتتعلم البرمجة عليك اولا ان تعرف ما هي لغات البرمجة


اليكم بعض المعلومات العامة عن لغات البرمجة اتمنى لكم الفائدة







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

1ـ لغة الآلة : وتسمى *اللغة الثنائية* حيث إنها تتكون من سلسلة من 0 و 1، وهي اللغة الوحيد التي يفهمها الحاسب الآلي، حيث تحول جميع اللغات إلى لغة الآلة، حتى تتمكن معدات الحاسب الآلي من التفاهم معها، ولأنها تتكون من صفر وواحد، لذا فقد تميزت هذه اللغة بالصعوبة نظراً لما تتطلبه من حفظ ودقة في كتابة سلسلة طويلة من صفر وواحد بترتيب معين، مما ينتج عنه أخطاء كثيرة من الترميز، ويجب أن يحدد المبرمج كل شي، فكل خطوة يجب أن ينفذها البرنامج يجب أن ترمز، لذا فالمبرمج يجب أن يكون على علم بتركيب الحاسب الداخلي، والعنا وين الرقمية لمواقع التخزين، سواء للبيانات أو التعليمات، كما أن لكل جهاز لغة آلة تختلف عن الجهاز الآخر بحسب النوع والتركيب مما يعني أنه يجب كتابة البرنامج بشكل ككامل مره أخرى عن الرغبة في تنفيذه على جهاز آخر، ونتيجة لهذه الصعوبات فقد ظهرت طرق أخرى لتمثيل الترميز الثنائي، كالنظام الثماني OCTAL والستة عشري HEX-ADECIMAL بدلا من 1، 0 فالنظام الستة عشرين يتكون من ستة عشر رمزاُ هي : 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 A.B,C,D,E,F .
مما يساعد على سهولة قراءة التعليمات المكتوبة وحفظها بهذه اللغة، فبدلا من كتابة 16 رقماً في سلسلة يمكن الاستعاضة عنها بأربعة رموز من رموز النظام التشغيل الستة عشري .

2ـ لغة التجميع :
ظهرت لغة التجميع بوصفها أو لغة ترميز، تستخدم الرموز SYMBOLIC CODE للتعبير عن تعليمات لغة الآلة، وذلك لمواجهة صعوبة الترميز بلغة الآلة، ولغة التجميع لغة قريبة من لغة الآلة التي يفهمها الحاسب الآلي، وتسمى هذه اللغات بلغات المستوى البسيط .
ويتم استعمال مختصرات ورموز يسهل حفظها وكتابتها لكل تعليمة من تعليمات لغة الآلة، ولغة التجميع كما في لغة الآلة مصممة للعمل على حاسب معين، مما يوفر قدرة أكبر على استغلال موارد الحاسب الآلي ووحدة المعالجة المركزية بشكل أفضل، ويقوم البرنامج المسمى المجمع ASSEMBLER بترجمة البرنامج المكتوب بلغة المجمع إلى لغة الآلة .

3 ـ اللغات العليا :
سميت بهذا الاسم لأنه أصبح بإمكان المبرمج كتابة البرنامج دون معرفة تفاصيل كيفية قيام الحاسب بهذه العمليات، كمواقع التخزين وتفاصيل الجهاز الدقيقة، وتعبيرات لغات المستوى العالي هي تعبيرات شبيهة إلى درجة كبيرة باللغة الطبيعية التي يستخدمها الإنسان في حياته للتواصل، والتخاطب مع الآخرين .
ومن مميزات اللغات العليا التي تميزها من لغات المستوى البسيط، بالإضافة إلى ما سبق، أن هذه اللغات غير مرتبطة بجهاز معين . أي يمكننا تنفيذ البرنامج المكتوب بلغة من لغات المستوى العالي، كالفورتران أو الكوبول أو البيسك على أكثر من جهاز، كما يمكن استخدام أكثر من لغة ترجمة على حاسب معين . كذلك، فإن اكتشاف الأخطاء وتصحيحها أصبح أكثر سهولة بسبب سهولة قراءة البرامج وتتبعها وفهمها .
تسمى اللغات كالكوبول والفورتران والبيسك باللغات العليا الموجهة نحو إجراءات الحل ، PROCEDURE - ORIENTED LANGUAGES ، وهي اللغات التي يعطي فيها المبرمج التعليمات خطوة خطوة .
ويمر البرنامج المكتوب بلغات المستوى العالي بثلاث مراح قبل أن يكون جاهزاً للتنفيذ .
الترجمة TRANSLATION : تحويل البرنامج المكتوب بلغة المستوى العالي إلى لغة الآلة .

ـ الربط LINKING : ربط الروتينات المكتبية الكائنة بالمكتبة، والتعليمات الضرورية بالبرنامج .
3ـ التحميل LOADING : يقوم البرنامج بتحميل شفرة الهدف والروتينات المكتبية، والتعليمات على الذاكرة الرئيسة بغرض التنفيذ .
وكانت اللغات تصنف حسب قوتها إلى لغات أعمال، أو لغة علمية أو لغات مبتدئين ـ وفي وقتنا الحاضر ـ فإن معظم اللغات يمكن استخدامها بكفاءة في تطبيق أنواع التطبيقات كافة، ومن أشهر لغات المستوى العالي :
لغة الكوبول COBOL :
وكلمة COBOL هي اختصار للعبارة الإنجليزية Common Business Oriented Language ، وقد طورت وصممت هذه اللغة من لدن لجنة من مصنعي أنظمة الحاسب الآلي ومطوريها عام 1960م تسمى لجنة CODASYL اختصاراً لـ Conference of Data System Languages .
وقد قام المعهد الوطني الأمريكي للمعايير ANSI بتطوير نسخة معيارية من COBOL ، مفسر كوبول يطابق المواصفات القياسية لهذا المعهد، وكان ذلك ف ي عام 1968م وسميت *ANSI 1968* وظهر بعدها ANSI 1974 و ANSI 80 .
وينتشر استخدام لغة كوبول على نطاق واسع عالمياً حيث تستخدم في البنوك وفي المنظمات الحكومية، وتستخدم على حاسبات كبيرة أو على حاسبات شخصية .
وتتميز لغة كوبول بقدرتها على التعامل مع الملفات؛ لذا اشتهرت بأنها لغة أعمال .
لغة الفورتران FORTRAN :
وهي اختصار عبارة FORmula TRANSlation ، وتعد لغة FORTRAN أقدم اللغات ذات المستوى العالي، وقد ظهرت هذه اللغة في منتصف الستينات، حيث بدئ عام 1954 بالعمل على تطوير لغة برمجة تقبل برنامجا مكتوبا بلغة قريبة من لغة الإنسان، ويحوله إلى شفرة قابلة للتنفيذ على الحاسب الآلي، وبعد 3 سنوات أي في عام 1957م . ظهر أول مفسر فورتران.
وفي تلك الفترة كان استخدام الحاسب الآلي يكاد يكون حكراً على العلماء والمهندسين والرياضيين، ومن الطبيعي أن تكون هذه اللغة المطورة حديثاً قد جاءت لتواكب احتياجاتهم إذ تتميز لغة FORTRAN بقدراتها على إجراء العمليات الحسابية المعقدة وحل المعادلات الرياضية .
لغة البيسك BASIC LANGAUGE :
وهي اختصار للعبارة الإنجليزية Beginer's All Purpose Symbolic In struction Code أي اللغة المتعدد الأغراض للمبتدئين، وتأتي كلمة BASIC التي تعني الأساس لتحقيق المعنى نفسه، فهذه اللغة ونظراً لبساطة تعليماتها ومحدوديتها فإنها تعد لغة مناسبة للتعلم من قبل المبتدئين في عالم الحاسب الآلي والبرمجة، وتستخدم هذه اللغة في معظم الحاسبات الشخصية، مما يدل على الانتشار الواسع لها، وقد طورت هذه اللغة في كلية Dartmouth عام 1963م من لدن John Demuy و Thomas Kurtz .
وتستخدم لغة Basic الحديثة في قطاع واسع . إذ تستخدم في مجال الأعمال لقدرتها على التعامل مع الملفات، وكذا في العمليات الرياضية من قبل العلماء والمهندسين لامتلاكها كثيراً من الوظائف للقيام بمثل تلك العمليات المعقدة .
لغة باسكال PASCAL :
وسميت باسم العالم الفرنسي الرياضي الفذ Blaise Pascal ، وصممت هذه اللغة من قبل العالم السويسري Niklaus Wirth ، وطرحت عام 1971م، وقد انتشرت هذه اللغة خصوصاً في الجامعات . إذ تدرس هذه في معظم جامعات العالم لطلاب علوم الحاسب، وتمتاز لغة PASCAL بالسهولة، واختصار الكلمات فيها إلى حد كبير، وبنيتها التركيبية وقوة البرامج الفرعية، واستخدام المؤشرات Pointers ، وقد ظهرت نسخ جديدة من Pascal امتازت بتلافي العيوب في النسخ السابقة، ويعد TurboPascal من شركة Borland من البرامج المستخدمة بكثرة بين المبتدئين والتخصصين في البرامج، وتنافس هذه اللغة لغة Basic في كثرة المستخدمين لتوافر كثير من المميزات فيها، وتستخدم هذه اللغة من قبل الطلاب والمهندسين، كما تستخدم في قطاع الأعمال التجارية .
لغة سي C :
طورت هذه اللغة في معامل Bell من قبل Dennis Ritchie وهي تطوير لنسخة قديمه تسمى B من لغة BCPL التي ظهرت عام 1969م . لذا سميت هذه النسخة اللاحقة بـ C .
وتشتهر لغة C باستخدامها كلغة برمجة نظم system software حيث تستخدم لكتابة برامج النظم التشغيلية . إذ إنها تعد لغة قريبة، وتشبه إلى حد كبير لغة التجميع As-sembly وتمتاز بسرعتها الكبيرة، كما تملك مخجموعة جيدة من التعليمات، كما أنها لغة قابلة للنقل من جهاز إلى آخر لصغر الجزء الواجب نقله منها، وتعد لغة C من اللغات التركيبية Structured Language .
وازداد اهتمام محترفي البرمجة بلغة الـC ، والنسخ المحسنة منها C+ , C++ . إذ إن معظم التطبيقات تكتب بها .
لغات الجيل الرابع : Fourth-Generation language (4GL) :
سميت بهذا الاسم نسبة إلى الجيل التي ظهرت فيه، مثل هذه اللغات التي تتصف بقلة التعليمات التي يكتبها المبرمج لتحقيق هدف ما ، فما كان يتطلب مئات الأسطر من لغة بيسك أو الآلاف من لغة كوبول باستخدام عدد بسيط من الأسطر في هذه اللغات .
تمتاز هذه اللغات بعدة مزايا :
1ــ إنها لغة موجهة للنتائج أي إن المبرمج يهتم بطلب ما يريده من الكمبيوتر، دون أن يوجهه لكيفية القيام بذلك .
2ــ زادت من الإنتاجية؛ لأن كتابة البرامج وصيانتها أكثر سهولة .
3ــ سهلة الاستخدام، وتتطلب قليلاً من التدريب على استخدامها، سواء كان للبرمجة أو غيرها .
4ــ لم يعد المستخدم بحاجة إلى التفكير في الأجهزة أو هيكلية البرنامج .
وقد بدأت لغات الجيل الرابع بالانتشار بين المبرمجين، وبشكل كبير جداً لما توفره لغات البرمجة هذه من سهولة في معاملة الملفات، وربط هذه الملفات بعضها مع بعض بغرض التحديث أو طباعة التقارير .
كما توفر هذه اللغات قوة في المشاركة في الموارد البرمجية وخصوصاً الملفات، ومن أمثال هذه اللغات لغة Dbase من Borland ، ولغة Foxpro من Microsoft ، و Oracle من Ingress، وتستخدم لغة الاستفسار المهيكلة SQL Structured Query Language في عمليات بناء قواعد المعلومات وتحديثها، وتوفير الحماية اللازمة لها .
 ما هي SQL ؟
SQL هي اختصار للعبارة الإنجليزية Structured Query Language أي لغة الاستفسار المهيكلة، وهي عبارة عن مجموعة من التعليمات القريبة من اللغة الطبيعية التي توجه نظام إدارة قواعد البيانات DBMS للقيام بعمليات بناء قواعد البيانات، وتحديثها والبحث فيها، وعمل قواعد الحماية للبيانات .
وتمتاز لغة الاستفسار SQL بالآتي :
1ــ لغة قريبة من اللغة الطبيعية .
2ــ تستطيع الحصول على أية بيانات من قاعدة البيانات . إذ يمكن الحصول على بيانات ملف كامل أو بعض الحقول من ملف أو مجموعة ملفات .
3ــ يهتم المستخدم بتعريف احتياجه What you want، ولا يهتم بكيفية الحصول على أو من أين ؟ How or Where? .
اللغات الطبيعية Natural Language أو لغات الجيل الخامس :
ويقصد بها لغة الإنسان أي إيجاد لغة مبرمجة نستطيع بها توجيه الحاسب للقيام بما نريد من أعمال، وذلك باستخدام التعبيرات الشائعة ((اطبع تقريراً يحوي اسم الطالب والدرجة))،فالمستخدم ما عليه سوى طباعة الأمر أو إملائه للحاسب الذي يلبي الطلب .
فالمستخدم يستطيع إملاء النص وكتابته بعبارات متعدد تحمل المعنى نفسه، كأن يقول ((اطبع الاسم والدرجة لجميع الطلاب)) أو ((اطبع اسم الطالب ودرجة الاختبار للجميع))، فالطلبان لهما المعنى نفسه، وإن اختلفا في الصياغة، فلغات البرمجة هذه قادرة على فهم تراكيب الجمل المختلفة، وإن اختلفت اللهجات أو كان هناك أخطاء لغوية، وإذا لم يفهم الحاسب المقصود يقوم بتقديم أسئلة لمزيد من الوضوح والوصول إلى الهدف .
والأبحاث في مجال اللغات الطبيعية هو من المجالات التي يبحثها علم الذكاء الاصطناعي . A.I إذ إن فهم اللغة الطبيعية يحتاج إلى كثير من الخبرات والعلاقات في ربط الجمل وتحليل كل جملة لاستنتاج المعنى الصحيح، ومن ثم تقديم رد الفعل المناسب .
لغات الإنترنت : لغة HTML : وهي إحدى اللغات المستخدمة لإنشاء صفحات الويب www .
إن (Hypertext Morkup Language) عبارة عن لغة تحوي مجموعة من الأوامر تؤدي إلى تكوين صفحات الويب، إن إنشاء صفحة بواسطة تركيبة Ascii على منسق الكلمات يمكن أن تحول إلى صفحة على الويب بإضافة بعض أوامر Html .
إن أوامر Html تمكن المستخدم من تنفيذ عدد من العمليات على صفحات الويب منها :
ـــ تحديد حجم النص وطريقة عرضه .
ـــ إنشاء الروابط مع الوثائق والمستندات الأخرى .
ـــ إنشاء نماذج تفاعلية مع الصفحة .
ـــ توفير الدعم للوسائط المتعددة كالفيديو والصوت والصورة .
لغة جافا Java : وهي من اللغات المستخدمة للانترنت ولصفحات الويب في www وتهدف لغة البرمجة هذه إلى إضافة الحيوية إلى صفحات الويب عبر النصوص المتحركة والرسوم التي تتحرك بشكل تفاعلي والوسائط المتعددة .
ولغة جافا طورت من قبل شركة Sun Microsystems على غرار لغة C++ وتقوم الوثائق المنشئة بلغة الترميز النصي Html باستدعاء برامج جافا كما يكن تشغيلها بصورة منفردة . 
Read more

احترف لغة C مع هذا الكتاب Programmer en langage C : Cours et exercices corrigés


 احترف لغة C مع هذا الكتاب Programmer en langage C : Cours et exercices corrigés 

إنَّ الحمد لله نحمدهُ ونستعينهُ ونستغفره ونستهديهِ ونعوذ باللهِ من شرور أنفسنا وسيئات أعمالنا،د
من يهدهِ اللهُ فلا مضلَّ له ، ومن يضلل فلا هادي له، وأشهد أن لا إله إلا الله وحده لا شريك له،
وأشهد أنَّ محمداً عبده ورسوله .
أحبتي رواد منتديات ستار تايمز وكووورة وبالأخص رواد منتدانا الغالي


اخواني الكرام ,
هدا الكتاب في تعلم لغات البرمجة من الصفر إلى الإحتراف بالعربي سيعلمك بأدن الله و بأسهل الطرق الممكنة
صورة الكتاب
أقدم لكم كتاب رائع في لغة C باللغة العربية  
 يحتوي الكتاب على على دروس وتمارين محلولة
الكتاب موجه للمبتدئين خاصة
 
الحجم : 2 Mo
عدد الصفحات: 267
الاصدار الخامس 2009
للتحميل:


طريقة تحميل سهلة جدا شرح بالصور بتوفيق لكم
نفعل كما بالصور

ثم

ثم


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

Read more

ftell : Récupération de la position du curseur


la fonction ftell peut être vraiment utile dans la lecture des fichiers même si le but de cette fonction est assez simple. Elle permet juste de renvoyer la position actuelle du curseur dans le fichier. Imaginons par exemple que vous voulez comptez le nombre de structure écrite dans un fichier. Il suffit de se placer à la fin de ce fichier, récupérer la position du curseur et la diviser par la taille d'une structure pour obtenir ce nombre.

Voyons la déclaration de cette fonction :

  1. long ftell (FILE *stream);   


Comme vous le voyez, cette fonction est assez simple. Il suffit de lui faire passer le pointeur vers le fichier en paramètre et la position est renvoyée comme un nombre de type long. Voyons par exemple ce code :

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main()  
  5. {  
  6.     char phrase[256];  
  7.     FILE *fichier = fopen("c:ftell.txt""r");  
  8.   
  9.     printf ("Position courante du cuseur : %ld\n\n", ftell(fichier));  
  10.   
  11.     fgets(phrase, 256, fichier);  
  12.     printf ("Phrase lue : %s\n\n", phrase);  
  13.   
  14.     printf ("Position courante du cuseur : %ld\n", ftell(fichier));  
  15.   
  16.     fclose(fichier);  
  17.   
  18.     return 0;  
  19. }  


ImageImageImage


Pour tester cet exemple, il faut que le fichier ftell.txt existe à la racine du disque dur et contienne quelque ligne de texte. Ce programme va commencer par afficher la position courante du curseur dans le fichier. Etant donné qu'aucune lecture n'a été effectuée, le curseur est toujours au début du fichier, la fonction ftell renvoit donc 0.

Ensuite, nous lisons 256 octets du fichier et nous les affichons. Le résultat sera bien évidemment les 256 premières lettres du texte contenu dans le fichier c:ftell.txt. Enfin, nous réaffichons la valeur renvoyée par la fonction ftell. Nous passons fichier en paramètre et voyons que le résultat affiché est 255. Etant donné qu'avant la lecture il était à la position 0 et que nous avons lu 256 caractères, le curseur est maintenant à la position 0.
Read more

fread et fgets : Lecture dans un fichier

Si vous avez compris comment écrire dans un fichier, vous allez voir que la lecture est assez similaire. Je profiterai d'ailleurs de ce cours pour me servir de l'écriture dans les fichiers pour vous faire un peu revoir.

Pour lire dans un fichier, il existe deux fonctions dont l'une d'entre elles a déjà été un peu expliquée au long de mes cours. freadva vous permettre de lire des fichiers binaires et fgets va vous permettre de lire des fichiers textes.

Lecture d'un fichier binaire



Comme je vous l'ai donc dit, il va vous falloir utiliser la fonction fread pour lire dans les fichiers binaires. Sa signature est la suivante :

  1. size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);  


Comme vous le voyez, cette fonction va renvoyer une variable de type size_t qui est en fait une valeur entière contenant le nombre d'éléments que la fonction aura lu. En ce qui concerne les arguments, vous voyez que cette fonction en prend 4 et ceux-ci sont les même que pour la fonction fwrite. Le premier déterminera dans quelle variable les données lues seront stockées, le deuxième désigne la taille des données qui seront lues, le troisième définit le nombre de fois que nous lirons cette taille et le dernier paramètre est le pointeur de fichier dans lequel la lecture s'effectuera.

Nous allons donc faire un petit programme, permettant d'enregistrer 2 étudiants et de les lire par après, tapez donc :

  1. #include <stdio.h>  
  2. #include <string.h>  
  3.   
  4. typedef struct {  
  5.     char nom[64];  
  6.     char prenom[64];  
  7. } etudiant;  
  8.   
  9. int main() {  
  10.   
  11.     etudiant e[2];  
  12.     etudiant bis[2];  
  13.   
  14.     FILE *f = fopen("a.bin""wb");  
  15.   
  16.     strcpy(e[0].nom, "Zick");  
  17.     strcpy(e[0].prenom, "Zack");  
  18.   
  19.     strcpy(e[1].nom, "Zock");  
  20.     strcpy(e[1].prenom, "Zuck");  
  21.   
  22.     fwrite(e, 2 * sizeof(etudiant), 1, f);  
  23.   
  24.     fclose(f);  
  25.   
  26.     f = fopen("a.bin""rb");  
  27.   
  28.     fread(bis, 2 * sizeof(etudiant), 1, f);  
  29.   
  30.     printf ("Etudiant 1 : %s %s\n", bis[0].nom, bis[0].prenom);  
  31.     printf ("Etudiant 2 : %s %s\n", bis[1].nom, bis[1].prenom);  
  32.   
  33.     fclose(f);  
  34.   
  35.     return 0;  
  36.   
  37. }  


ImageImageImage


Comme vous le voyez, nous déclarons une structure nommée etudiant qui contiendra le nom et le prénom d'un étudiant. Nous déclarons également deux tableaux, le premier verra ses valeurs initialisées par le programme mais le second (bis) verra ses valeurs initialisées par la fonction de lecture fread. Nous déclarons enfin une variable f qui contiendra l'adresse de fichier renvoyée par fopen qui, ici, va ouvrir un fichier appelé a.bin en écriture binaire.

Les 4 lignes suivantes permettent d'initialiser les valeurs du tableau. Nous sauvons ensuite le tableau grace à la fonction fwritevue dans le cours prédécent et nous fermons le fichier.

Nous réouvrons ensuite le fichier, mais en mode lecture (je sais qu'il y avait une manière plus simple de faire ce programme, mais pas avec les connaissances que nous avons pour l'instant). Nous lisons ensuite des données avec la fonction fread. Nous passons en premier argument l'adresse du tableau bis vu que c'est lui qui va récupérer les données lues. Le deuxième argument sera la taille en octet que l'on va lire. Nous nous préparons à lire 2 structures de type etudiant vu que la taille du tableau est de 2, nous multiplions donc par 2 la taille d'une structure etudiant renvoyée par sizeof. Le troisième argument signifie que nous ne lirons qu'une seule fois la taille demandée et le quatrième argument est l'adresse du fichier dans lequel la lecture s'effectuera.

Les deux lignes suivantes permettent d'afficher les données lues et comme vous le voyez, les noms et prénoms des deux étudiants sont correctement récupérées et affichées. La ligne suivante permet de fermer le fichier.

Lecture d'un fichier texte



Maintenant que vous avez vu comment lire un fichier binaire, nous allons voir comment lire un fichier texte et ce avec la fonctionfgets. La déclaration de cette fonction est la suivante :

  1. char * fgets (char * s, int size, FILE * stream);  


Comme vous le voyez, cette fonction va vous renvoyer un pointeur vers la chaine de caractères passée en premier argument si la fonction réussit et NULL si elle échoue. Le premier argument de cette fonction est la chaine de caractères qui contiendra la portion de texte lue dans le fichier. Le deuxième argument est le nombre maximal d'octet à lire. La fonction s'arrête de lire si la portion lue dépasse cette taille ou si elle rencontre un \0 ou \n. Enfin, le dernier argument est le flux vers le fichier dans lequel on effectue la lecture.

Pour illustrer l'exemple que je vais donner, commencez par enregistrer le texte suivant dans un fichier nommé einstein.txt que vous placerez dans votre répertoire de travail :

  1. Albert Einstein (14 mars 1879 à Ulm, Württemberg, Allemagne - 18 avril 1955 à Princeton, New Jersey, États-Unis) physicien allemand, puis apatride (1896), suisse (1899), et enfin suisse-américain (1940).  
  2.   
  3. Il a publié la théorie de la relativité restreinte en 1905 et une théorie de la gravité dite relativité générale en 1915. Il a largement contribué au développement de la mécanique quantique et de la cosmologie. Il a reçu le prix Nobel de physique en 1921 pour son explication de l'effet photoélectrique. Son travail est notamment connu pour l'équation E=mc² qui quantifie l'énergie disponible dans la matière.  


(Cet texte est tiré de cette page : http://fr.wikipedia.org/wiki/Einstein).

Nous allons maintenant faire un programme qui se chargera de lire ce fichier :

  1. #include <stdio.h>  
  2.   
  3. int main() {  
  4.   
  5.     char phrase[256];  
  6.   
  7.     FILE *f = fopen("einstein.txt""r");  
  8.   
  9.     while (fgets(phrase, 256, f) != NULL)  
  10.         printf (phrase);  
  11.   
  12.     return 0;  
  13.   
  14. }  


ImageImageImage


Comme vous le voyez, ce n'est pas très long. Nous commençons par déclarer une chaine de caractères phrase qui servira à contenir les portions de phrases lues. Ensuite, nous ouvrons le fichier einstein.txt en lecture et nous plaçons l'adresse vers ce fichier dans le pointeur f. Ensuite, nous allons exécuter une instruction tant que la fonction fgets ne renverra pas NULL (elle renvoie NULL quand elle n'a plus rien à lire). Comme vous le voyez, nous faisons passer phrase en premier argument de fgetspour que les données lues soient placées dedans. Nous définissons la taille maximale des données lues sur 256 grace au deuxième argument et nous signalons au programme que la lecture doit se faire dans le fichier pointé par f. L'instruction a exécuter tant que des données ont été lues est justement l'affichage de ces données.

Comme je vous l'ai dit, la fonction fgets ne s'arrête que lorsque qu'elle rencontre un \0 ou \n. Une fois une lecture effectuée, le curseur de position reste au même endroit et donc quand nous faisons une deuxième lecture ce ne sera plus depuis le début du fichier mais depuis la position du curseur, la fonction lira donc la suite du texte.

Et voilà, vous savez maintenant utiliser les fonctions de bases des fichiers, nous allons maintenant voir des fonctions permettant de vous simplifier la vie :-p
Read more