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

في كل يوم فائدة !

بدأه Snack3r في 25 يوليو 2011 · 32 رد · 2,936 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

منذ زمـــــــن و أنا أفكر في الطريقة الأفضل لجمع كنز معلوماتي برمجي قيم, فقد قمت سابقا بطرح مسابقة للألغاز في السي و السي++ و لكن لم يكن بإمكان الجميع المشاركة لذلك فكرت اليوم بطرح هذا الموضوع الذي هو عبارة عن فائدة في كل يوم, الفوائد التي سأطرحها سيكون أغلبها بالفرنسية و بعضها سيكون بالعربية كما يمكن لأي عضو أن يطرح فائدة برمجية بأي لغة أراد.


بالتوفيق.

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

1 −1
#2

الفائدة الأولى :

Quelle est la taille d'un char ?

Par définition, sizeof(char) vaut 1, c'est-à-dire qu'un char représente un byte. Toutefois, contrairement à une idée répandue, en langage C un byte (multiplet et non octet) ne fait pas forcément 8 bits. La norme requiert néanmoins

qu'un byte doit faire au moins 8 bits et la taille exacte d'un char, en bits, est donnée par la macro CHAR_BIT définie dans le fichier limits.h.

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 25 يوليو 2011 في 16:28

2 −1
#3

الفائدة الثانية :

هل لغة السي تدعم المتغيرات المنطقية ؟

قبل مقياس C99 لم تكن توجد متغيرت من النوع المنطقي bool ولكن من السهل جدا إنشاء هذا النوع من المتغيرات إذا كان المترجم لا يقدم تلك الخدمه :

#define BOOL int
#define TRUE 1
#define FALSE 0

أو :

typedef enum {
FALSE, TRUE
} BOOL;

في لغة السي كل قيمة معدومة (0,0.0 إلخ) تعني false بينما تعني كل قيمة غير معودمة (1,-1,9.4 الخ) true

المقياس C99 أدخل النوع _BOOL و الملف الرأسي stdbool.h يحدد الماكرو المنطقية كما يحدد :

__bool_true_false_are_defined

التي تسمح بمعرفة ما إذا كانت المتغيرات المنطقية معتمدة أصلا.

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 26 يوليو 2011 في 12:23

1 −1
#4

+1 ..

ممممممم .. لو تسمح لي ..

فكرتك جميلة وجيده ..ومن الممكن ان اشاركك بيها لو سمحت !! ..

لكن المشكلة اذا كتبت اكثر من معلومة في صفحة واحدة لن يكون هنالك نقاش حول المعلومة الواحدة .. او سيتحول الى موضوع غير منظم ..

من الممكن ان تكون اكثر من معلومة لكن تكون مرتبطه مع بعضها .. حتى اذا تم هنالك نقاش عنها تكون في نفس السياق ..

شئ اخر .. المعلومة الاولى لم افهمها لانها بالفرنسية على ما اعتقد .. هذه مشكلة اخرى .. انكليزي او عربي افضل بكثير لان الاغلبية يفهمون هذه اللغتين ..

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

تحياتي العطرة ..

4

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5
اقتباس
لكن المشكلة اذا كتبت اكثر من معلومة في صفحة واحدة لن يكون هنالك نقاش حول المعلومة الواحدة .. او سيتحول الى موضوع غير منظم ..

من الممكن ان تكون اكثر من معلومة لكن تكون مرتبطه مع بعضها .. حتى اذا تم هنالك نقاش عنها تكون في نفس السياق ..

مداخلة جميلة, ماذا تقترح ؟

اقتباس
المعلومة الاولى لم افهمها لانها بالفرنسية على ما اعتقد .. هذه مشكلة اخرى .. انكليزي او عربي افضل بكثير لان الاغلبية يفهمون هذه اللغتين ..

المشكلة أن بيئتي فرنسية ... لذلك أنا متأثر منها أكثر من الإنجليزية

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

أحيانا أحس أن تعبيري بالفرنسية أحسن لذلك أكتب الفائدة بالفرنسية و لكن لا مشكلة ... سأحاول الكتابة دوما بالعربية مع أنني لا أضمن أن يكون المعنى موافق لما أريد توصيله 100% !

#6
أحمد المتألق كتب:

المشكلة أن بيئتي فرنسية ... لذلك أنا متأثر منها أكثر من الإنجليزية

أحيانا أحس أن تعبيري بالفرنسية أحسن لذلك أكتب الفائدة بالفرنسية و لكن لا مشكلة ... سأحاول الكتابة دوما بالعربية مع أنني لا أضمن أن يكون المعنى موافق لما أريد توصيله 100% !

والله الفكرة رائعة جدا

لكن المشكلة ليست فى جودة التعبير فانت هكذا تضحي بفهمنا لما تتكلم عنه من أجل جودة التعبير

هناك على الاقل نسبة 60% من الاعضاء لا يعرفون شئ عن الفرنسية وانا منهم

لا اعرف غير حروف اللغة فقط

1

GoodBye

#7
اقتباس
والله الفكرة رائعة جدا

ننتظر اقتراحات بقية الأعضاء و المشرفين, فالفكرة ليست "للقراءة فقط,Lecture seule,Read-only" :)

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

هناك على الاقل نسبة 60% من الاعضاء لا يعرفون شئ عن الفرنسية وانا منهم

لا اعرف غير حروف اللغة فقط

لا بأس, سأحاول التعبير -ما أمكنت- بالعربية مع أنني أجد الأمر صعبا بعض الشيء :blush:

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

#8
أحمد المتألق كتب:

لا بأس, سأحاول التعبير -ما أمكنت- بالعربية مع أنني أجد الأمر صعبا بعض الشيء :blush:

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

بالنسبة لي شخصيا اجيد العربية والانجليزية الحمد لله بشكل جيدجدا

اما لو اردت ان اضيف لغة لتعلم البرمجة خصيصا سأختار تعلم الروسية فهي افضل وستفيدني كثيرا اكثر من الفرنسيين

بالنسبة هناك بعض الاخوة ايضا لا يجيدون الانجليزية جيدا او لديهم مشاكل معها

GoodBye

#9

عن نفسي اكيد ارغب ..

لكن من وين اجيب الوقت ؟

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#10
اقتباس
اما لو اردت ان اضيف لغة لتعلم البرمجة خصيصا سأختار تعلم الروسية فهي افضل وستفيدني كثيرا اكثر من الفرنسيين

لا يمكنني أن أعلق على اللغة الروسية و ماتقدمه من فوائد للمبرمجين العرب لأنني لا أعرفها و لم يسبق لي أن دخلت محيطها و لكن بالنسبة لللغة الفرنسية فأعتقد أنه بإمكانها تطوير مستواك عشرات المرات كمبرمج عربي, أضف إلى ذلك أن المراجع البرمجية الفرنسية متواجدة بكثرة و لله الحمد ... لا أريد تحويل الموضوع إلى نقاش في أفضل لغة يمكنها إفادة المبرمجين العرب فلكل منا فلسفته الخاصة في تعلمه للبرمجة كما أن الإختلاف في وجهات النظر لا يفسد للود قضية :)

اقتباس
عن نفسي اكيد ارغب ..

لكن من وين اجيب الوقت ؟

نريد ما سمح به الوقت فقط ! :D

#11

هل اتفقنا اذا فى الاجماع على استكمال الموضوع باللغتين العربية والانجليزية ؟

1

GoodBye

#13
اقتباس
نريد ما سمح به الوقت فقط ! :D

الظاهر فهمتني غلط ... كنت اقصد عن اللغة الفرنسية ..

لكن عن المساعدة ان شاءلله لن اقصر معكم بمااستطيع ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#14
اقتباس
الظاهر فهمتني غلط ... كنت اقصد عن اللغة الفرنسية ..

لكن عن المساعدة ان شاءلله لن اقصر معكم بمااستطيع ..

عفوا, ظننتك تتحدث عن الموضوع الأول :)

++++++++++++

الآن ماهي الخطوط العريضة للموضوع برأيكم ؟

#15

ياهـلا وغـلا والله .. بـ احمد الغالي

ماشاءالله عليك .. يعجبني فيـك اصرارك ع نشر العلم الذي تعلمته .. ^

والله مشتاق لسوالفك .. بس يعلم الله الظروف الي انا فيها

بس ادعي لي انها تنفررج .. ولا اقدر اقراء واستفيد من المعلومات الموضوع

محبك : mr.4one

#16

هل يمكنني وضع الفوائد على هيئة نصائح او تمارين

مثلا كما يلي

برنامج لقراءة الأسطر من المدخلات ومن ثم عمل طباعتها الى المخرجات

#include <stdio.h>

int main(void) {
  char c;
  int count;

  for(;;){
    count=0;
    printf("Please enter a line [blank line to terminate]> ");
    do{
      c=getchar();
      putchar(c);
      count++;
    }while (c!='\n');
    if(count==1)break;
  }
}

برنامج لدمج ملفين من السلاسل النصية

#include <stdio.h>
#define MAXBUFFER 128

int getline(FILE * fd, char buff[], int nmax){
  /* It reads a line from fd and stores up to nmax of 
   * its characters to buff.
   */
  char c;
  int n=0;

  while ((c=getc(fd))!='\n'){
    if(c==EOF)return EOF;
    if(n<nmax)
      buff[n++]=c;
  }
  buff[n]='\0';
  return n;
}

int stringMerge(char filename1[], char filename2[] , char filename3[]) {
  /* Given two sorted files of strings, called filename1 and filename2, 
   * it writes their merged sequence to the file filename3.
   * It returns the total number of strings written to filename3.
   */
  FILE *fd1, *fd2, *fd3;
  char buffer1[MAXBUFFER], buffer2[MAXBUFFER];
  int ln1, ln2;
  int n=0;

  if ((fd1=fopen(filename1, "r"))==NULL) {
    perror("fopen");
    exit(1);
  }
  if ((fd2=fopen(filename2, "r"))==NULL) {
    perror("fopen");
    exit(1);
  }
  if ((fd3=fopen(filename3, "w"))==NULL) {
    perror("fopen");
    exit(1);
  }

  ln1 = getline(fd1,buffer1,MAXBUFFER-1);
  ln2 = getline(fd2,buffer2,MAXBUFFER-1);

  while ((ln1!=EOF) && (ln2!=EOF)){
    if (strcmp(buffer1,buffer2)<=0){
      fprintf(fd3, "%s\n", buffer1);
      ln1 = getline(fd1,buffer1,MAXBUFFER-1);
    }else{
      fprintf(fd3, "%s\n", buffer2);
      ln2 = getline(fd2,buffer2,MAXBUFFER-1);
    }
    n++;
  }

  while (ln1!=EOF){
      fprintf(fd3, "%s\n", buffer1);
      ln1=getline(fd1,buffer1,MAXBUFFER-1);
      n++;
  }

  while (ln2!=EOF){
      fprintf(fd3, "%s\n", buffer2);
      ln2=getline(fd2,buffer2,MAXBUFFER-1);
      n++;
  }

  fclose(fd1);
  fclose(fd2);
  fclose(fd3);
  return n;
}

int main(int argc, char *argv[]) {
  if(argc!=4){
    printf("Usage: %s sortedfile1 sortedfile2 mergefile\n", argv[0]);
    exit(0);
  }
  printf("We have %d merged records\n",
	 stringMerge(argv[1], argv[2], argv[3]));
}

GoodBye

#17
اقتباس
ياهـلا وغـلا والله .. بـ احمد الغالي

ماشاءالله عليك .. يعجبني فيـك اصرارك ع نشر العلم الذي تعلمته .. ^

والله مشتاق لسوالفك .. بس يعلم الله الظروف الي انا فيها

بس ادعي لي انها تنفررج .. ولا اقدر اقراء واستفيد من المعلومات الموضوع

محبك : mr.4one

هلا بالكبير ... مشتاق لك والله, من زمان ما شفتك بالماسنجر ....

أرجو أن تكون بخير

الله يوفقنا و يوفقك لما يحبه و يرضاه ... تسلم حبيبي :)

اقتباس
هل يمكنني وضع الفوائد على هيئة نصائح او تمارين

نعم يمكن :)

و إذا كانت هناك ملاحظات أو تعليقات هامة من شأنها أن توضح الأمور الأكثرلا فلا بأس

بانتظار مداخلات بقية الأعضاء ؟؟؟؟

#18

تمرين بلغة ++C عن عمل برنامج لحساب علامات لطلاب

كتمرين على استخدام الجملة الشرطية

if else

#include <iostream.h>											//ملف الهيدر

int main()														//يمكننا بدء الدوال من هنا 

{
	int grade;													//declare var grade

	cout << "Welcome to year-end marks\n\n";			//2 regular outputs

	cout <<"Enter your grade this year..\n\n";

	cin >> grade;												//input the grade

	if ( grade >= 80 )											//if/else nested structures  

		cout5 << "A\nExcellent!!\n\n";	

	else if ( grade >= 70 )
			cout << "B\nGreat!!\n\n";

	else if ( grade >= 60 )
			cout << "C\nGood!!\n\n";

	else if ( grade >= 50 ) 
		    cout << "D\nSmarten up!!\n\n";

	else 
			cout << "F\nYou suck!!\n\n";

return 0;														//return statement 
}																//end bracket function
1

GoodBye

#19

أحببت أن أشارككم بالموضوع إذا سمحتم لي happy.gif

مشاركتي هي عبارة عن أحد تطبيقات المؤشرات ، حيث يظهر لكم الكود كيفية إنشاء مصفوفة ديناميكية ثلالية الأبعاد ، و طبعاً بالإمكان عمل تعديلات بسيطة على الكود كي يقبل مصفوفات ذوات نوع آخر أو أبعاد أكثر/أقل ...

#include <iostream>
using namespace std;

/* creates a dynamic 3 dimensional array */
void createCube(int*** &cube, int x, int y, int z)
{
	cube = new int**[x];	/* creating an array of length 'x' where each cell in it will hold a 2 dimensional array */

	for (int i=0; i<x; i++)
	{
		cube = new int*[y];	/* creating an array of length 'y' where each cell in it will hold a 1 dimensional array */
		for(int k=0; k<y; k++)
			cube[k] = new int[z];	/* creating an array of length 'z' where each cell in it will hold an integer value */
	}
}

/* filling the 3D array created with a sample input */
void fill(int*** array, int x, int y, int z)
{
	for (int i=0; i<x; i++)
	{
		for (int j=0; j<y; j++)
		{
			for (int k=0; k<z; k++)
				array[j][k] = 3;
		}
	}
}


int main()
{
	int x, y, z;
	int*** cube;
	cout<<"Enter the dimensions of the 3D array : \n";
	cout<<"x = ";
	cin>>x;
	cout<<"y = ";
	cin>>y;
	cout<<"z = ";
	cin>>z;
	createCube(cube, x, y, z);
	fill(cube, x, y, z);

	return 0;
}
1

Program every day for 20 years and you will become a good programmer. Program every day for 10 years and study algorithms on the side and you will become a great programmer !

على الأقل هذا اللي سمعته ...

#20

جميل جدا .... أكواد جميلة و ما زلنا ننتظر الإبداع البرمجي الذي ليس بجديد عليكم :)

هذا البرنامج يقوم بالتحويل بين مختلف الأنظمة Binary,Hex,Octal,Decimal :

system converter.cpp

#include"system converter.h"

int main ()
{
    bool state = true ;

    while (state )
    {
          switch (menu() )
          {
                 case 1 :
                          int dec ;
                          cout << "Enter The Decimal Number : " ; 
                          cin >> dec ;

                          cout << "\n\n";
                          cout << dec << " in Other Format : \n";

                          cout << "\n\t In Binary : " ;
                          decimalToBinary(dec);

                          cout << "\n\t In Hex : " ;
                          decimalToHex(dec);

                          cout << "\n\t In Octal : " ;
                          decimalToOctal(dec);
                          break;


                 case 2:
                          char bin[32] ;
                          cout << "Enter The Binary   Number : " ; 
                          cin >> bin ;

                          cout << "\n\n";
                          cout << bin << " in Other Format : \n";

                          cout << "\n\t In Decimal  :  " ;
                          cout << binaryToDecimal(bin);

                          cout << "\n\t In Hex      :  " ;
                          binaryToHex(bin);

                          cout << "\n\t In Octal    :  " ;
                          binaryToOctal(bin);

                          break;

                 case 3:
                          char hex[32] ;
                          cout << "Enter The  hex   Number : " ; 
                          cin >> hex ;

                          cout << "\n\n";
                          cout << hex << " in Other Format : \n";

                          cout << "\n\t In Decimal  :  " ;
                          cout << hexToDecimal(hex);

                          cout << "\n\t In Binary   :  " ;
                          hexToBinary(hex);

                          cout << "\n\t In Octal    :  " ;
                          hexToOctal(hex);

                          break;

                 case 4:
                          char octal[32] ;
                          cout << "Enter The  octal  Number : " ; 
                          cin >> octal ;

                          cout << "\n\n";
                          cout << octal << " in Other Format : \n";

                          cout << "\n\t In Decimal :  " ;
                          cout << octalToDecimal(octal);

                          cout << "\n\t In Binary  :  " ;
                          octalToBinary(octal);

                          cout << "\n\t In Hex     :  " ;
                          octalToHex(octal);

                          break;

                 case 5:
                        state = !state ;
                        break;
          }  

          cout << "\n\n";
          system("pause");
          system("cls");


    }

    cout << "\n";
    system("pause");
    return 0;
}

system converter.h

#include<math.h>
#include<iostream>
using namespace std;
int menu ()
{
         cout << "Decimal To other Format  ......... [1]" << endl
         << "Binary  To other Format  ......... [2]" << endl
         << "Hex     To other Format  ......... [3]" << endl
         << "Octal   To other Format  ......... [4]" << endl 
         << "Exit From Program        ......... [5]" << endl << endl
         << "\t\t >> " ;

    int choice ;
    cin >> choice ;

    return choice ;
}

int power (int x , int y)
{
    int p=1 ;

    for (int i=0 ; i<y ; i++)
        p *= x ;

     return p;
}

void decimalToBinary (int dec )
{
     if ( dec > 1)
        decimalToBinary(dec/2);

     cout << dec%2 ;
}

void decimalToHex    (int dec ) 
{
     char hexChar[] = {'0','1','2','3','4','5','6','7','8','9',
                       'A','B','C','D','E','F'}; 
     if ( dec > 15 )
        decimalToHex(dec/16);

     cout << hexChar[dec%16] ;
}

void decimalToOctal (int dec )
{
     char octalChar[] = {'0','1','2','3','4','5','6','7'} ;

     if ( dec > 7 )
        decimalToOctal(dec/8);

     cout << octalChar[dec%8] ;
}

int binaryToDecimal (char bin[] ) 
{
     int tmp = 0 ;
     int sum = 0 ;

     for (int i=0 , j=strlen(bin)-1 ; i<strlen(bin) ; i++ )
     {
         tmp = ( bin=='1' ) ? 1 : 0 ;
         tmp = tmp * power(2,j--);
         sum += tmp ;
     }

     return sum ;
}

int hexToDecimal    (char hex[]    ) 
{
     int tmp = 0 ;
     int sum = 0 ;
     int  hexNum[]  = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
     char hexChar[] = {'0','1','2','3','4','5','6','7','8','9',
                       'A','B','C','D','E','F'};

     for (int i=0 , j=strlen(hex)-1 ; i<strlen(hex) ; i++ )
     {
         for (int k=0 ; k<16 ; k++)
         {
             if (hex == hexChar[k])
             {
                tmp = hexNum[k] ;
                break;
             }
         }

         tmp = tmp * power(16,j--);
         sum += tmp ;
     }


     return sum ;
}

int octalToDecimal    (char octal[]    ) 
{
     int tmp = 0 ;
     int sum = 0 ;
     int  octalNum[]  = {0,1,2,3,4,5,6,7};
     char octalChar[] = {'0','1','2','3','4','5','6','7'};

     for (int i=0 , j=strlen(octal)-1 ; i<strlen(octal) ; i++ )
     {
         for (int k=0 ; k<16 ; k++)
         {
             if (octal == octalChar[k])
             {
                tmp = octalNum[k] ;
                break;
             }
         }

         tmp = tmp * power(8,j--);
         sum += tmp ;
     }

     return sum ;
}   

void binaryToHex (char binary[] )
{
     int dec = binaryToDecimal(binary);
     decimalToHex(dec);
}

void binaryToOctal (char binary[] )
{
     int dec = binaryToDecimal(binary);
     decimalToOctal(dec);
}

void hexToBinary (char hex[] )
{
     int dec = hexToDecimal(hex);
     decimalToBinary(dec);
}

void hexToOctal (char hex[] )
{
     int dec = hexToDecimal(hex);
     decimalToOctal(dec);
}

void octalToHex (char o[] )
{
     int dec = octalToDecimal(o);
     decimalToHex(dec);
}

void octalToBinary (char o[] )
{
     int dec = octalToDecimal(o);
     decimalToBinary(dec);
}

بالنسبة للأكواد الصغيرة فهذا كود يقوم بإظهار أكبر عدد من بين ثلاثة :

#include <stdio.h>
#define max(x,y,z)((x>y)?((x>z)?x:z):(y>z)?y:z)
main (void)
{
printf ("The max number = %d",max(7,3,5));
}
#21

و هذا الكود يطلب من المستخدم إدخال عدد, ما دام العدد المُدخل موجبا فيسطلب منه إدخال عدد جديد أما إن كان سالبا فيستوقف البرنامج :

#include<stdio.h>
int main()
{
int x;
while(printf("x = "),scanf("%d",&x),x>0)
printf("Le nombre est positif, veuillez saisir un nouveau nombre !\n");
return 0;
}
#22

نصائح فى لغة ++C

ملاحظة : النصائح بشكل عشوائي فى مختلف الامثلة واللغة ككل


  1. مفهوم نظرية اولوية المعامل التي يكون عمليتي الضرب والقسمة الاولوية فى التنفيذ عن عمليتي الجمع والطرح
  2. parntheses عبارة عن قوسين متقابلين () يستخدما فى لغة السي بلس لتحديد ترتيب تنفيذ خطوات العمليات الحسابية والمساعدة على فهمها
  3. أمر exit أحد الاوامر الموجودة فى مكتبة stdlib.h ويستخدم للخروج من البرنامج (التطبيق)
  4. يتكون التركيب الواحد من تراكيب arrary من عدد من البيانات البسيطة التي لها نفس النوع
  5. قد تكون البيانات داخل arrary الواحدة من نوع integer أو Char وتعرف فى هذه الحالة ايضا بString أو Float
    يمكن استخدام mai() فى صورة Command-line Function فى نظم التشغيل التي لا تعمل بنظام ويندوز مثل Unix

  6. يمكنك تحميل أى معامل موجود مرة ثانية لstructure مختلف أو لنوع بيانات أخر فيمكنك فى الواقع تحميله لآي عدد من المرات تريده

لنا لقاء قريب أخر باذن الله

GoodBye

#23
اقتباس
نصائح فى لغة ++C

أحسنت أخي محمد (هذا اسم أبي :wub:)

ملاحظات قيمة, جميلة, دسمة و عالية التركيز :wink: لذلك دعني أصب عليها الماء قليلا لأخفف التركيز :D

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

parntheses عبارة عن قوسين متقابلين () يستخدما فى لغة السي بلس لتحديد ترتيب تنفيذ خطوات العمليات الحسابية والمساعدة على فهمها

الصورة التالية توضح ترتيب المؤثرات حسب الأولوية :

2a1Jv-3AIg_121746264.png

اقتباس
أمر exit أحد الاوامر الموجودة فى مكتبة stdlib.h ويستخدم للخروج من البرنامج (التطبيق)

تقوم الدالة exit بإنهاء البرنامج إذا تم تمرير إليها القيمة 1 حيث يوجد ثابت باسم EXIT_FAILURE و هو نفسه القيمة 1 و الثابت EXIT_SUCCESS و هو القيمة 0 و الذي يعني الخروج من البرنامج, انظر المثال :

#include<stdio.h>
#include<stdlib.h>
int main()
{
	 FILE *File;
	 if(!(File=fopen("FileName.txt","r")))
	 {
		 printf("Can't open file !\n");
		 exit(EXIT_FAILURE);
	 }
	 else exit(EXIT_SUCCESS);
	 fclose(File);
	 return 0;
}

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

قد تكون البيانات داخل arrary الواحدة من نوع integer أو Char وتعرف فى هذه الحالة ايضا بString أو Float

المصفوفة أو الـ aray هي مجموعة من العناصر المتجانسة (من نفس النوع) مُسجلة تحت اسم واحد ,حيث يمكن تمييز كل عنصر بترتيبه (دليله) في المصفوفة. على عكس التكريب struct حيث يمكن للعناصر أن تكون من أنواع مختلفة.

اقتباس
يمكن استخدام mai() فى صورة Command-line Function فى نظم التشغيل التي لا تعمل بنظام ويندوز مثل Unix

لم أفهم المقصود ! :huh:

اقتباس
يمكنك تحميل أى معامل موجود مرة ثانية لstructure مختلف أو لنوع بيانات أخر فيمكنك فى الواقع تحميله لآي عدد من المرات تريده

لا أعتقد ان هذه الملاحظة تحتاج إلى شرح فتوضيح الواضح يزيده إشكالا !

#24

موضوع جميلة كعادة كل مواضيعك اخى احمد

لى ملحوظة بسيطة جدا

اقتباس

تقوم الدالة exit بإنهاء البرنامج إذا تم تمرير إليها القيمة 1 حيث يوجد ثابت باسم EXIT_FAILURE و هو نفسه القيمة 1 و الثابت EXIT_SUCCESS و هو القيمة 0 و الذي يعني الخروج من البرنامج, انظر المثال :

plain text

#include<stdio.h>

#include<stdlib.h>

int main()

{

FILE *File;

if(!(File=fopen("FileName.txt","r")))

{

printf("Can't open file !\n");

exit(EXIT_FAILURE);

}

else exit(EXIT_SUCCESS);

fclose(File);

return 0;

}

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

#include<stdio.h>
#include<stdlib.h>

int main()
{
         FILE *File;
         if(!(File=fopen("FileName.txt","r")))
         {
                 printf("Can't open file !\n");
                 exit(EXIT_FAILURE);
         }
         else exit(EXIT_SUCCESS);
		 printf("succeeded");
         fclose(File);
         return 0;
}

فى كل الاحوال لن يطبع الكلمة succeeded

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#25

نصائح فى لغة ++C


  • يتم تكوين عناصر Parallel arrary بنفس الطريقة التي يتم بها تكوين عناصر arrary ومع ذلك يجب الاهتمام باستخدام فهرس عام
  • لكتابة برنامج بلغة سى بلس الذي يستخدم parallel arrary عديدة يجب ببساطة زيادة عدد arrarys التي يمكن الوصول اليها باستخدام فهرس عام
  • بعد كتابة functions واثبات كفاءة عملها وتشغيلها يمكن تخزينها فى مكتبة لتستخدمها برامج أخري ومبرمجين اخرين
  • يمكن ان تقوم الدالة باخراج نوع واحد من انواع البيانات البسيطة
  • السجل عبارة عن مجموعة من عناصر البيانات المرتبطة فيما بينها والتي تتكون من حقول عديدة
  • متغير Pointer عبارة عن متغير يحتوي على موقع تخزين البيانات فى الذاكرة
1

GoodBye

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