• 0
ahmed.o.mohamed

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

سؤال

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

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


بالتوفيق.

تم تعديل بواسطه مصطفى 36a2
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

32 إجابة على هذا السؤال .

  • 0

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

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.

تم تعديل بواسطه أحمد المتألق
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

قبل مقياس 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

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

تم تعديل بواسطه أحمد المتألق
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

+1 ..

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

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

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

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

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

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

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

4

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم, أنا موافق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
نريد ما سمح به الوقت فقط ! :D

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

محبك : mr.4one

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

مثلا كما يلي

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

#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]));
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

محبك : mr.4one

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

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

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

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

نعم يمكن :)

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تمرين بلغة ++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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أحببت أن أشارككم بالموضوع إذا سمحتم لي 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[i] = 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[i][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[i][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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

هذا البرنامج يقوم بالتحويل بين مختلف الأنظمة 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[i]=='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[i] == 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[i] == 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));
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

#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;
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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


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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نصائح فى لغة ++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 مختلف أو لنوع بيانات أخر فيمكنك فى الواقع تحميله لآي عدد من المرات تريده

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

تقوم الدالة 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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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


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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

+1

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

يتم تكوين عناصر Parallel arrary بنفس الطريقة التي يتم بها تكوين عناصر arrary ومع ذلك يجب الاهتمام باستخدام فهرس عام

لكتابة برنامج بلغة سى بلس الذي يستخدم parallel arrary عديدة يجب ببساطة زيادة عدد arrarys التي يمكن الوصول اليها باستخدام فهرس عام

بعد كتابة functions واثبات كفاءة عملها وتشغيلها يمكن تخزينها فى مكتبة لتستخدمها برامج أخري ومبرمجين اخرين

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

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

متغير Pointer عبارة عن متغير يحتوي على موقع تخزين البيانات فى الذاكرة

جميل جدا, سلمت يداك +1

تم تعديل بواسطه أحمد المتألق
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .