تبلیغات :
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 3 از 6 اولاول 123456 آخرآخر
نمايش نتايج 21 به 30 از 51

نام تاپيک: آموزش c مقدماتی

  1. #21
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    توابع ورودي خروجي رشته ها

    در زبان C توابع متعددي وجود دارند كه در مورد رشته ها استفاده مي شوند .
    اكثر اين توابع براي خواندن رشته ها از صفحه كليد و يا چاپ آنها در صفحه نمايش
    بكار مي روند .

    تابع ()gets
    تابع ()gets براي خواندن رشته هااز صفحه كليد بكارميرود و بصورت زير استفاده
    مي شود :
    (متغير رشته اي )gets

    مثال 1: main)(
    {
    char fname[21] ;
    printf("enter your name: " );
    gets(fname );
    printf("\nyour name is : %s"/fname);
    }

    نمونه اي از خروجي برنامه مثال 1 : enter your name : bahrami
    your name is : bahrami

    شايد اين پرسش مطرح شود " با وجود تابع ()scanf كه مي تواند براي رشته ها و
    متغيرهاي عددي استفاده شود چه لزومي دارد از تابع ()gets استفاده گردد " ? در
    پاسخ به اين پرسش بايد گفت كه تابع ()scanf رشته ها را پيوسته در نظر مي گيرد .
    يعني اگر در بين يك رشته ، از فاصله (blank) و يا tab استفاده شود ، از اين
    كاراكترها ( فاصله و يا tab ) به بعد ، بعنوان رشته ديگري منظور ميشوند ( مثال 2
    ) . براي رفع اين اشكال مي توان از تابع ()gets استفاده نمود .

    مثال 2: main)(
    {
    char name[21] ;
    printf("enter your name family:");
    scanf("%s"/gets(name );
    printf("\n your name is : %s"/name );
    }

    نمونه اي از خروجي برنامه مثال 2 : enter your name : einollah jafarnezhad
    your name is : einollah

    همانطوري كه از خروجي برنامه پيداست ، در پاسخ به درخواست برنامه نام و نام
    خانوادگي Einollah jafarnezhad را وارد نموده ايم كه چون بين نام و نام خانوادگي
    فاصله افتاده است فقط نام (Einollah) در متغير name قرار گرفته و در خروجي چاپ
    شده است ولي نام خانوادگي از دست رفته است . اگر بجاي scanf از تابع gets
    استفاده شود اين مشكل پيش نخواهد آمد ، زيرا در ()gets فقط كليد enter ، جدا
    كننده است .

    تابع ()puts
    اين تابع براي انتقال يك رشته به خروجي بكار مي رود و بصورت زير استفاده
    مي شود .
    (عبارت رشته اي )puts
    هنگام استفاده از تابع puts، مي توان از يك متغير رشته اي و يا يك رشته ( كه
    در داخل نقل قول (") باشد ) بجاي عبارت رشته اي استفاده كرد .

    مثال 3: برنامه اي كه دو رشته را از ورودي خوانده و سپس محتويات يك رشته را
    به رشته ديگر منتقل مي كند . طول هاي دو رشته ورودي مي توانند با يكديگر برابر
    نباشند .
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ main)(
    {
    char s1[81]/ s2[81] ;
    int i / j ;
    char temp ;
    puts("enter string : " );
    gets(s1 );
    puts("enter string : " );
    gets(s2 );
    for(i=0 ; s1[i] && s2[i] ; i++)
    {
    temp=s1[i] ;
    s1[i]=s2[i] ;
    s2[i]=temp ;
    }
    if(s1[i])
    {
    j=i ;
    while(s1[i])
    s2[i]=s1[i++] ;
    s2[i]\'\0' ;
    s1[i]\'\0' ;
    }
    else if( s2[i])
    {
    j=i ;
    while(s2[i])
    s1[i]=s2[i++] ;
    s2[i]\'\0' ;
    s1[i]\'\0' ;
    }

    puts("new content of s1 is:" );
    puts(s1 );
    puts("new content of s2 is:" );
    puts(s2 );
    }

    نمونه اي از خروجي برنامه مثال 3 : enter string :
    first string
    enter string :
    second string
    new content of s1 is:
    second string
    new content of s2 is:
    first string


    مثال 4: برنامه اي كه با خواندن يك رشته و دو كاراكتر از ورودي ، كاراكتر اول
    را با كاراكتر دوم در سرتاسر رشته جايگزين مي كند . main)(
    {
    char string[50] ;
    char source_letter/target_letter ;
    int i ;
    printf("\n enter the string :" );
    gets(string );
    printf("\n enter source character:" );
    source_lette=getche )(;
    printf("\n enter target character:" );
    target_letter=getche )(;
    if(source_letter != target_letter)
    for(i=0 ; string[i] ; i++)
    if(string[i]==source_letter)
    string[i]=target_letter ;
    printf("\n result string is:\n");
    puts(string );
    }

    نمونه اي از خروجي برنامه مثال 4 : enter the string : in the name of allah.

    enter source character: a
    enter target character: A

    result string is:in th

  2. #22
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    آرايه اي از رشته ها

    گاهي ممكن است ، به عنوان مثال بخواهيم تعدادي از نام افراد را در آرايه اي
    نگهداري كنيم : ولي با اطلاعاتي كه تاكنون از رشته ها داريم شايد نتوانيم چنين
    كاري را انجام دهيم . براي اين كار بايد آرايه اي از رشته ها داشته باشيم . چون
    رشته ها خود ازنوع آرايه هستند بايد آرايه اي ازآرايه ها را تعريف كنيم ( آرايه اي
    از آرايه ها همان آرايه دوبعدي است ). براي توضيح بيشتر به مثال 1 توجه نماييد.

    مثال : برنامه اي كه با تعريف آرايه اي از رشته ها ، 5 نام را در آن قرار
    مي دهد و سپس با خواندن نامي از ورودي آنرا در آرايه جستجو مي كند . main)(
    {
    int dex/exist ;
    int k ;
    char name[21] ;
    static char list [5][21]=
    { "ali" /
    "ahmad" /
    "alireza" /
    "jalal" /
    "mohammad"
    } ;
    printf("\nenter one name for");
    printf(" search:");
    gets(name );
    for(dex=0 ; dex<5;dex++)
    if(strcmp(list[dex]/name)==0)
    {
    exist=1 ;
    break ;
    }
    if( exist==1)
    {
    printf("\nname ");
    printf("<%s> exist in table."/name);
    }
    else
    {
    printf("\nname ");
    printf("<%s> not exist. "/name);
    }
    }

    دو نمونه از خروجي برنامه مثال بالا :
    ( الف ) enter one name for search:reza
    name not exist.


    ( ب ) enter one name for search:ali
    name exist in table.
    ال بالا از تابع ()strcmp استفاده شده كه كارش مقايسه دو رشته مي باشد.

  3. #23
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    بعضي از توابع رشته اي

    بعضي از توابع بر روي رشته ها عمل كرده و دستكاري رشته ها را آسان مي كنند .
    كه مي توان از مقايسه رشته ها ، تعيين طول رشته ها، الحاق كردن رشته ها به يكديگر
    و ... نام برد .

    تابع ()strcpy
    تابع ()strcpy براي قرار دادن رشته اي در رشته ديگر مورد استفاده قرار گرفته
    و بصورت زير استفاده مي شود : ;
    ("رشته " و متغير رشته اي )strcpy
    اهميت اين تابع وقتي مشخص مي شود كه بدانيم ، مقدار دادن به متغير رشته اي
    بطور مستقيم امكان پذير نيست بلكه فقط از طريق اين تابع صورت پذيرد . مثلا" اگر
    داشته باشيم : char name[11];

    دستور انتساب زير غلط خواهد بود : name="ALI";

    با استفاده از تابع ()strcpy عمل فوق را مي توان بصورت زير انجام داد : strcpy(name/"ALI");

    اين مساله بدين علت است : " همانطور كه در C نمي توان دو آرايه را با حكم
    انتساب (=) به يكديگر نسبت داد ، دو رشته نيز نمي توانند با حكم انتساب ، به
    يكديگر نسبت داده شوند .

    مثال 1: برنامه اي كه يك رشته و يك عدد( كه بيانگر موقعيتي ازاين رشته است )
    را از ورودي خوانده و موجب حذف كاراكتر موجود در آن محل مي شود . main)(
    {
    char string[81] ;
    int position ;
    printf("\n type a string: " );
    gets(string );
    printf("\n enter position for " );
    printf("delete character: " );
    scanf("%d"/&position );
    strcpy(&string[position]/
    &string[position+1] );
    puts(" the result string is :" );
    puts(string );
    }

    نمونه اي از خروجي برنامه مثال 1: type a string: in thee name of allah.
    enter position for delete character:5
    the result string is:
    in the name of allah.

    در مثال 1 متغير position به موقعيتي از رشته اشاره ميكند كه كاراكتر موجود
    در آن بايد حذف شود . با استفاده از تابع ()strcpy قسمتي از رشته string را با
    شروع از position + 1 ، در همين رشته با شروع از موقعيت position كپي كرده ايم .
    اين عمل موجب حذف كاراكتري كه در موقعيت position قرار داشته است مي گردد . با
    فرض اين كه رشته ورودي برابر با "cart" و موقعيت كاراكتري كه بايد حذف شود 2
    فرض گردد خروجي حاصل از اجراي برنامه مثال 1 بصورت زير خواهد بود : type a string: cart.
    enter position for delete character:2
    the result string is:cat


    تابع ()strcat
    اين تابع براي الحاق كردن ( به دنبال هم قرار دادن ) دو رشته استفاده ميشود
    و بصورت زير به كار مي رود : strcat(s1/s2)
    s1
    و s2و دو رشته اي هستند كه بايد با هم الحاق شوند . s2 در انتهاي رشته s1
    قرار خواهد گرفت .

    مثال 2: main)(
    {
    char s1[21] / s2[21] ;
    puts("enter string : " );
    gets(s1 );
    puts("enter string : " );
    gets(s2 );
    strcat(s1/s2 );
    puts("result string is: " );
    puts(s1 );
    }

    درپاسخ به درخواست برنامه ، اگر بجاي s1 عبارت good وبجاي s2 عبارت moorning
    را وارد كنيم ، خروجي بدين صورت است : enter string :
    good

    enter string :
    moorning.

    result string is:
    goodmoorning.

    براي تمرين ميتوانيد برنامه را طوري تغيير دهيد كه بين دو عبارت ، يك فاصله
    (blank) باشد .

    تابع ()strlen
    تابع ()strlen براي تعيين طول يك رشته مورد استفاده قرار گرفته و بصورت زير
    به كار مي رود : strlen(s)
    s
    رشته اي است كه طول آن بايد تعيين شود .

    مثال 3: main)(
    {
    char name[31] ;
    puts(" enter a string: " );
    gets(name );
    printf("\n string length is:");
    printf("%d"/strlen(name ));
    }

    نمونه اي از خروجي برنامه مثال 3 : enter a string:
    the c language is very quick.

    string length is:29

    روش ديگر براي پيدا كردن طول يك رشته ، استفاده از تابع ()scanf با پارامتر
    كنترلي %n است . با استفاده از تابع ()scanf و پارامتر %n ، مثال 3 را مي توان
    بصورت زير نوشت : main)(
    {
    char name[31] ;
    int count ;
    scanf("%s%n"/name/&count);
    printf("\n string length is:");
    printf("%d"/count );
    }


    تابع ()strcmp
    تابع ()strcmp براي مقايسه كاراكتري دو رشته مورد استفاده قرار ميگيرد و به
    اين صورت بكار مي رود : strcmp(s1/s2)
    s2
    و s1و دو رشته اي هستند كه بايد با يكديگر مقايسه شوند . اين تابع نتيجه
    مقايسه دو رشته را بصورت صفر ، منفي و يا مثبت مشخص مي كند :
    نتيجه |(s1/s2()strcmp
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ؤؤؤ s1=s2 | 0

    منفي | s2 <َs1
    مثبت | s2 >َs1

    تابع ()strchr
    تابع ()strchr براي جستجوي يك كاراكتر در يك رشته بكار مي رود و محل وجود
    اولين وقوع آن را مشخص مي كند. اگر كاراكتر مورد نظر در رشته وجود نداشته باشد
    مقداري كه توسط اين تابع برگردانده مي شود برابر با صفر است . اين تابع بصورت
    زير استفاده مي شود : strchr(s/ ch)
    ch
    كاراكتري است كه بايد در رشته s جستجو شود. بعنوان مثال ، بااجراي دستور: if( strchr( "hello"/'e'))printf( "e is in hello");

    چون حرف e در عبارت hello وجود دارد پيام مناسبي چاپ مي شود .

    تابع ()strstr
    تابع ()strstr براي جستجو زير رشته اي در يك رشته مورد استفاده قرار گرفته و
    بصورت زير بكار مي رود : strstr(s1/s2)
    s2
    رشته اي است كه بايد در رشته s1 جستجو شود . اگر s2در s1ر پيدا شود محل
    اولين وقوع آن توسط تابع برگردانده مي شود ولي اگر s2در s1ر وجود نداشته باشد
    مقدار صفر برگردانده خواهد شد . بعنوان مثال ، با اجراي دستور : if( strstr( "this is"/"hi"))printf( "hi found");

    بعلت وجود رشته hi در رشته this is ، پيام مناسبي صادر مي شود .

    مثال 4: main)(
    {
    char s1[80] / s2[80] ;
    char ch ;
    puts(" enter string : " );
    gets(s1 );
    puts(" enter string : " );
    gets(s2 );
    puts("enter character for search");
    printf(" in s1: " );
    ch=getche )(;
    printf("\n length of s1 is:");
    printf("%d"/strlen(s1 ));
    printf("\n length of s2 is:");
    printf("%d" /strlen(s2 ));
    if(!strcmp(s1/s2))
    printf("\n string are equal. ");
    if(strstr(s1/s2))
    printf("\n is in . " );
    else
    printf("\n is not in .");
    if(strstr(s1/ch))
    printf("\ncharacter<%c>is in.");
    else
    {
    printf("\ncharacter<%c>is");
    printf(" not in .");
    }
    }

    نمونه اي از خروجي برنامه مثال 4 : enter string :
    this is a sample statement.
    enter string :
    sample
    enter character for search in : m
    length of is:28
    length of is:6
    is in .
    character is

  4. #24
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    اشاره گرها

    درك صحيح مفهوم اشاره گرها در زبان C بزرگترين موفقيت يك برنامه نويس است .
    زيرا استفاده از اشاره گرها ويژگيهاي زير را دارد : 1
    عمل تخصيص حافظه پويا امكان پذير است . 2
    موجب بهبود كارآيي بسياري از توابع مي شود . 3
    كار با رشته ها و آرايه ها را آسانتر مي كند . 4
    فراخواني با ارجاع در توابع ، از طريق اشاره گرها امكان پذير است .
    كليه متغيرهايي كه در برنامه ها مورداستفاده قرار ميگيرند در حافظه كامپيوتر
    ذخيره مي شوند ( محل هايي از حافظه هستند ) . بنابراين هر متغير داراي يك آدرس
    منحصر بفردي است كه توسط آن مي توان به متغير دسترسي پيدا كرد. اشاره گرها حاوي
    آدرس متغيرهاي حافظه هستند. بعبارت ديگر اگر متغيري آدرس متغير ديگر را در خود
    نگهداري كند به متغير اول يك اشاره گر گفته مي شود . بعنوان مثال ، اگر محتويات
    متغيري كه در محل 1000 حافظه قرار دارد برابر با 1004 باشد ، اين متغير به محل 1004
    حافظه اشاره خواهد كرد ( شكل 1 ) .
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
    محتويات حافظه | آدرس حافظه
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    ؤؤؤؤؤؤ 1004 | 1000 |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ 1001 | | |
    |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ 1002 | | |
    |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ 1003 | | |
    |
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    <ؤؤؤؤ| | 1004
    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ 1005 | |

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    شكل (1) . مفهوم اشاره گر

    براي تعريف متغيرهاي اشاره گر از روش كلي زير استفاده مي شود :
    نام متغير اشاره گر * نوع
    نوع ، يكي از انواع معتبر در زبان C است . نوع اشاره گر مشخص مي كند كه اين
    اشاره گر بايد به چه نوع داده اي اشاره كند ( سر و كارش با چه نوع داده اي است ).
    در زبان C برخلاف زبان هايي مثل PL/I اشاره گرها داراي نوع هستند. لذا دراستفاده
    از اشاره گرها بايد دقت كافي بخرج داد تا نتيجه نادرستي از برنامه حاصل نگردد .
    بعنوان مثال ، دستور int *p; متغير p را از نوع اشاره گر تعريف مي كند كه فقط
    بايد به متغيرهاي از نوع "صحيح " اشاره نمايد. البته اگر اشاره گرp به متغيرهايي
    از انواع ديگر اشاره نمايد ، كامپايلر زبان C خطايي را به برنامه نويس اعلام
    نمي كند ولي برنامه نويس بايد بداند كه اين امر يقينا" در نتيجه اجراي برنامه
    اثر گذاشته و موجب عدم صحت اجراي برنامه گشته و به نتايج حاصل از برنامه
    اطميناني نيست . بعنوان مثال در حين اجراي برنامه زير از طرف كامپايلر خطايي
    گزارش نخواهد شد ولي مي دانيم كه اين برنامه نتيجه مطلوبي نخواهد داشت . main)(
    {
    float x/y ;
    int *p ;
    p=&x ;
    y=*p ;
    }

    در برنامه فوق ، چون p به متغير x اشاره ميكند و p از نوع " صحيح " است ، x
    را بصورت عدد " صحيح " در نظر ميگيرد و در دستور بعدي كه محتويات محلي كه p به را به y منتقل مي كند، عمل انتقال به درستي انجام نميشود.

  5. #25
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    عملگرهاي اشاره گر

    دو عملگر در مورد اشاره گرها مورد استفاده قرار مي گيرند كه عبارتند از : *
    و & . عملگر & يك عملگر يكاني است كه آدرس عملوند خود را مشخص مي كند . بعنوان
    مثال دستور m = &name موجب مي شود تا آدرس متغير name در متغير m قرار گيرد .
    عملگر * همانند عملگر & يك عملگر يكاني است ، محتويات يك آدرس حافظه را مشخص
    مي كند . بعنوان مثال دستور p = m; موجب مي شود تا محتويات محلي كه آدرس آن در m
    است به p منتقل گردد . بنابراين مجموعه دستورات (1) و (2) كه در ذيل آمده اند
    معادل يكديگرند .
    ؤ m= &name;
    (َ1) ؤ
    ؤ p= *m;
    p= nam;( 2)

  6. #26
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    اعمال روي اشاره گرها

    اعمالي كه بر روي اشاره گرها فايل انجام است به وسعت اعمالي كه بر روي ساير
    متغيرهاي حافظه انجام پذير است ، نيست . اعمالي كه بر روي اشاره گرها انجام
    پذيرند عبارتند از : 1
    عمل انتساب : همچون ساير انواع متغيرها، ميتوان مقداري را به يك اشاره گر
    نسبت داد ( مثال 1 ) . 2
    اعمال محاسباتي : دو نوع اعمال محاسباتي مي توان بر روي اشاره گرها انجام
    داد كه عبارتند از :
    الف ) عمل جمع .
    ب ) عمل تفريق .

    مثال 1: main)(
    {
    int x ;
    int *p1 / *p2 ;
    p1=&x ;
    p2=p1 ;
    printf("\n the address of x is: ");
    printf("%p"/p2 );
    }

    نمونه اي از خروجي برنامه مثال 1 : the address of x is:692B:0fDC

    براي پي بردن به چگونگي عمل جمع و تفريق روي اشاره گرها فرض كنيد كه p
    اشاره گري از نوع " صحيح " است و به ملح 2000 حافظه اشاره مي كند . اكنون دستور p + +;
    را اجرا كنيم محتويات جديد اشاره گر p ، برابر با 2002 خواهد بود . زيرا
    طول نوع " صحيح " برابر با 2 بايت است و با افزايش يك واحد به اشاره گر ، به
    اندازه طول نوع اشاره گر به آن افزوده خواهد شد و نه به اندازه يك واحد . اگر
    دستور ; - p- را صادر كنيم ، اشاره گر P مجددا" به محل 2000 حافظه اشاره خواهد
    كرد . اگر باز هم دستور ; - p- را صادر كنيم اين بار به محل 1988 اشاره خواهد
    كرد ( شكل 1 ) . char *ch= 2000;
    int *i=2000;


    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch | 2000 | i

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+1 | 2001 |

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+2 | 2002 | i+1

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+3 | 2003 |

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+4 | 2004 | i+2

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+5 | 2005 |

    ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
    حافظه
    شكل (1) . انجام اعمال محاسباتي روي اشاره گر
    3
    مقايسه اشاره گرها : بااستفاده از عملگرهاي رابطه اي مي توان اشاره گرها را
    با يكديگر مقايسه نمود. بعنوان مثال ، اگر pو qو از نوع اشاره گر باشند ، دستور
    زير معتبر است : if(p < q )print f("p points to lower memory than q");

    مقايسه اشاره گرها معمولا" در مواردي استفاده مي شود كه دو يا چند اشاره گر به اشاره مي كنند .

  7. #27
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    اشاره گر و آرايه

    در زبان C بين آرايه ها و اشاره گرها ارتباط نزديكي وجود دارد ( اشاره گرها
    حاوي يك آدرس و اسم آرايه نيز يك آدرس است ). اسم آرايه آدرس اوليه عنصر آرايه
    را مشخص مي كند . بعبارت ديگر اسم آرايه آدرس اولين محلي را كه عناصر آرايه از
    آنجا به بعد در حافظه قرار مي گيرند در خود نگهداري مي كند . بعنوان مثال اگر
    آرايه اي بصورت table[8] تعريف كرده باشيم و اولين عنصر آرايه در محل 400 حافظه
    قرار داشته باشد و اشاره گري بنام ptr بصورت زير تعريف كرده باشيم ، int * ptr;

    دستور ptr = & table[0] آدرس شروع آرايه يعني 400 را در اشاره گر ptr قرار
    مي دهد ( اين دستور معادل دستور ptr = table; است ) و دستور t = * ptr محتويات
    اولين محل آرايه ( اولين عنصر آرايه ) يعني (table[0]) را در متغيرt قرار داده
    دستور * ptr = 0 محتويات اولين محل آرايه table را برابر با صفر قرار مي دهد .
    با مطالبي كه تاكنون گفته شد براي دسترسي به عناصر آرايه علاوه بر انديس ، از
    اشاره گرها نيز مي توان استفاده كرد :
    آدرس آرايه را در اشاره گر ptr قرار مي دهد ptr= table;
    به دومين عنصر آرايه اشاره مي كند (table[1]);(َptr+ 1) *
    به i+1 امين عنصر آرايه اشاره مي كند ;(ptr+i) *

    مثال : برنامه اي كه 5 مقدار را از ورودي خوانده و در آرايه اي قرار مي دهد .
    سپس آنها را از آخرين مقدار به اولين مقدار به خروجي منتقل مي كند . main)(
    {
    int arr[5] /i ;
    printf("\n enter five value: " );
    for(i=0 ; i<5 ; i++)
    scanf("%d"/&arr[i] );
    printf("\n the reverse output is: ");
    for(i=4 ; i>=0 ; i) --
    printf("%4d"/*(arr+i ));
    }

    نمونه اي از خروجي برنامه مثال بالا : enter five value: 10 20 30 40 50
    the reverse output is:50 40 30 20

  8. #28
    داره خودمونی میشه
    تاريخ عضويت
    Jan 2005
    محل سكونت
    اصفهان
    پست ها
    106

    پيش فرض

    مرسي كارلوس
    هنوز نخوندم . اما مطمنم همين چند روزه بكارم مياد
    بازم تشكر

  9. #29
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    سلام
    دوسته عزيز من هميشه يه آموزش که ميزرم يه چيزه کامل و به درد بخور ميزرم آخه بعضی از دوستان آموزش ميزارن آدم بدتر اسبنی ميشه که چيزی نفهميد ولی بر عکس بعضی ها هم مثل خودم آموزش ميزارن اين خيلی به درد بخور و کامل هست من ديگه والّا پی دی اف نميکنم آخه قبلاً اين کار را ميکردم هی ميگفتند که ماله ما دانلود نشد يا سايت ----- ميشد يا مشگل داشت ديگه من تصميم گرفتم که همينجا بگزرم که هر کی که خواست خودش پی دی اف کنه

  10. #30
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    سلام
    کسانی که به دنبال ياد گرفتن آموزش اين برنامه بودند چرا نميگن آيا اين به دردشن کرد يا نه؟ اصلاً خوبه يا نه

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •