menusearch
javapro.ir

جلسه پنجم | آرایه ها و رشته ها در زبان برنامه نویسی C

جستجو
یکشنبه ۶ آذر ۱۴۰۱ | ۱۲:۱۸:۷
۱۴۰۰/۱۲/۴ چهارشنبه
(1)
(0)
جلسه پنجم | آرایه ها و رشته ها در زبان برنامه نویسی C
 جلسه پنجم | آرایه ها و رشته ها در زبان برنامه نویسی C

 

 

 

دوره صفر تا پیشرفته آموزش رایگان زبان برنامه نویسی C در سایت آموزشی جاواپرو

 

 

مدرس زبان برنامه نویسی C

 

 

 

جلسه پنجم | آرایه ها و رشته ها در زبان برنامه نویسی C

 

 

 

تعریفی از آرایه ها :
   در فصل‌‌‌‌های قبل یاد گرفتید که چگونه متغییر‌‌‌‌های مختلف را تعریف کنید و داده ها را از کاربر دریافت کنید, اما اگر تعداد داده‌‌‌‌های ورودی از مقداری بیشتر شوند, به مثال 100 ورودی, تعریف متغییر و گرفتن آن توسط روش قبلی امکان پزیر ناست و روشی بسیار سخت است, پس از آرایه ها استفاده میکنیم که در کل میتوان آرایه ها را به ماتریس تشبیه کرد.

 


آرایه‌‌‌‌های یک بعدی :
   در آرایه‌‌‌‌های یک بعدی که نام دیگر آن یک لیست است, مجموعی از اطلاعات را درون خانه هایه مشخص شده ای از لیست یا ارایه یک متغییر دیگر قرار میدهیم. و ارایه ها به طور کلی به شکل زیر تعریف میشوند :

 

نام آرایه   نوع آرایه [طول آرایه] ;


به طور مثال اگر بخواهیم آرایه ای یک بعدی تعریف کنیم که 5 آرگومان ظرفیت داشته باشد (طول آرایه = 5 )
و اسم آن X باشد, به صورت زیر مینویسیم .
   

int x[5];


در آرایه بالا, خوانه‌‌‌‌های حافظه این متغییر یا لیست به صورت زیر بخشبندی میشوند :
                    

x
     

  x[0]        x[1]        x[2]        x[3]           x[4]


در شکل بالا شماره خانه‌‌‌‌های x از عدد 0 شروع میشوند, زیرا در کامپیوتر, اعداد به جای 1, از عدد 0 شروع میشوند.

مثال گرفتن نمره 5 دانش اموز و حساب کردن معدل آنها :

 

#include <stdio.h>
#include <conio.h>

int main(){

    int x[10];
    float ave;
    int some = 0;
    for (int i=0; i<=9; i++){
        scanf("%d",&x[i]);
        some = some + x[i];
    }

    ave = some / 10;
    printf("the ave is : %f",ave);

    getch();
    return 0;
}

 

 

خروجی :
       

10
20
15
16
17
18
19
14
11
6
the ave is : 14.000000

 

تحلیل :
   در مثال بالا توسط یک حلقه, که از عدد 0 تا 9 رو درون متغییر i میریزد میسازیم و هر بار مقدار خانه i لیست x را دریافت کرده و آن را به متغییر some اضافه میکنیم, سپس در اخر متغییر some که مجموع 10 عدد است را گرفته و تقسیم بر 10 آن را درون متغییر ave میریزیم و سپس آن را نشان میدهیم.

 

 

آرایه‌‌‌‌های یک بعدی به عنوان آرگومان تابع :
   برای فرستادن یک آرایه به عنوان ارگومان به یک تابع باید در تعریف متغییر در تابع به صورت قبل عمل کنیم ولی فقط جلوی آن علامت [] را بزاریم, اینگونه هر آرایه یک بعدی ای این تابع ما میتواند دریاف کند.


مثال عدد زوج یا فرد با آرایه به عنوان آرگومان تابع :

 

#include <stdio.h>
#include <conio.h>

void zoj(int x[], int len){
    for (int i=0; i<len; i++){
        if (x[i]%2 == 0){
            printf("adad zoj %d : %d \n",i+1,x[i]);
        } else {
            printf("adad fard %d : %d \n",i+1,x[i]);
        }
    }
}

int main(){

    int x[5];
    int len = 5;
    int some = 0;
    for (int i=0; i<=4; i++){
        scanf("%d",&x[i]);
    }

    zoj(x, len);

    getch();
    return 0;
}

 

 

خروجی :

 

13
14
15
5
3
adad fard 1 : 13
adad zoj 2 : 14
adad fard 3 : 15
adad fard 4 : 5
adad fard 5 : 3

 


تحلیل :
   در برنامه بالا در مرحله اول 5 عدد را از کاربر دریافت کرده و آن را در لیست متغییر x میریزیم و سپس آرایه را و متغیر len که تعداد اعداد است را به تابع zoj میدهیم و در این تابع اگر عدد ما زوج بود, آن را در خروجی به عنوان عدد زوج نشان میدهیم و اگر عدد ما فرد بود, آن را به عنوان عدد فرد نشان میدهیم.


جستجوی ترتیبی در آرایه :
   در این روش جستوجو, برنامه ما 2 آرایه را به یک تابع میفرستد و اعداد مشترک این دو آرایه را در خروجی برای ما نشان میدهد :

 

#include <stdio.h>
#include <conio.h>

void esh(int x[], int lenx, int y[], int leny){
    for (int i=0; i<lenx; i++){
        for (int j=0; j<leny; j++){
            if (x[i] == y[j]){
                printf(" %d ",x[i]);
            }
        }
    }
}

int main(){

    int x[5];
    int lenx = 5;
    int y[5];
    int leny = 5;
    printf("adad moshtarak : ");
    for (int i=0; i<=4; i++){
        scanf("%d",&x[i]);
    }
    Printf(“--- - “);
    for (int i=0; i<=4; i++){
        scanf("%d",&y[i]);
    }

    esh(x,lenx,y,leny);

    getch();
    return 0;
}

 

خروجی :

 

1
2
3
4
5
----
7
6
5
4
3
adad moshtarak : 3 4 5


تحلیل :
   در برنامه بالا 2 لیست y و x را از کاربر دریافت کرده و خود این لیست ها و مقدار تعداد آرگومان این لیست ها را به تابع ما میدهد و درآن به کمک حلقه for تو در تو تمام مقادیر x را با تمامی مقادیر y مقایسه میکند و در صورت برابری ,‌ آنها را نشان میدهد.


آرایه‌‌‌‌های چند بعدی :
   در درس ها و فواصل قبل در باره آرایه‌‌‌‌های یک بعدی یا همان لیست ها آموختیم, اما الان میخواهیم درباره آرایه‌‌‌‌های دو بعدی صحبت کنیم. آرایه‌‌‌‌های دو بعدی مجموعه ای از آرایه‌‌‌‌های یک بعدی یا همون لیست ها هستند که در کنار هم یک جدول را تشکیل میدهند.
آرایه‌‌‌‌های چند بعدی به صورت زیر تعریف میشوند :

 

نام آرایه   نوع آرایه [تعداد سطر جدول] [تعداد سطون جدول] ;


به عنوان مثال برای تعریف یک آرایه دوبعدی با 4 سطر و 5 سطون, از دستور زیر استفاده میکنیم :

 

int x[4][5];

 

 

مثال گرفتن 5 نمره 4 دانش آموز و چاپ میانگین هرکدام :

 

#include <stdio.h>
#include <conio.h>

 

int main(){

    int x[4][5];
    float ave[4];
    int some[4];
    for (int i=0; i<4; i++){
        some[i] = 0;
    }

    for (int i=0; i<4; i++){
        printf("\n nomarat danesh amoz %d :",i);
        for (int j=0; j<5; j++){
            scanf("%d",x[i][j]);
            some[i] = some[i] + x[i][j];
        }
    }

    for (int i=0; i<4; i++){
        ave[i] = some[i]/5;
    }

    for (int i=0; i<4; i++){
        printf("moadel danesh amoz %d : %f",i,ave[i]);
    }

    getch();
    return 0;
}


خروجی :

 

nomarat danesh amoz 1 :10
20
12
11
13

nomarat danesh amoz 2 :11
12
13
14
15

nomarat danesh amoz 3 :20
13
15
4
6

nomarat danesh amoz 4 :12
11
20
20
20
moadel danesh amoz 1 : 13.000000
moadel danesh amoz 2 : 13.000000
moadel danesh amoz 3 : 11.000000
moadel danesh amoz 4 : 16.000000

 

تحلیل :
   در برنامه بالا, در مرحله اول, یک آرایه دوبعدی به اسم X تعریف کرده و تعداد سطر آن را 4 و تعداد سطون آن را 5 قرار دادیم ( تعداد سطر با تعداد سطون برابر است ), سپس تو متغییر معدل و جمع نمرات را به صورت یک لیست یا یک آرایه یک بعدی تعریف کردیم, توجه کنید چون چند معدل و مجموع نمرات وجود دارد نمیتوان مانند مثال‌‌‌‌های قبلی از متغییر‌‌‌‌های عادی استفاده کرد. سپس به کمک یک حلقه تو در تو مقدار هر سطون و سطر متغییر x را گرفته و مقدار سلول اول تا چهارم متغییر some را برابر با مجموع نمرات هر دانش آموز قرار دادیم. سپس به کمک تو حلقه دیگر معدل را حساب کرده و آنها را در خروجی نمایش دادیم.

 

 

 

جهت مشاهده ادامه جلسه پنجم | آرایه ها و رشته ها در زبان برنامه نویسی C اینجا کلیک کنید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی