صفحه 1:
مبانی کامپیوتر و برنامه سازی
فصل چهارم : آرایه ها
صفحه 2:
در وثالهابى كه در فصل قبل بيان كرديد. لز متفيرهاى معمولى استفاده كرديد.
“eo Gi تعدادزیادی متعیر برای نگاهداری داده ها داريم. درجنين
,دی ای نامگذاری متغیرها دچار مشکل شویم.
دسیرسن هک یک آنها بر ال ار ۶ eo ee
مثال ) الگوریتمی بتویسید که شماره دانشجوپی, تام و معرل تعدادی دانشجو
زا بخواتد و مشخصات «انشجوياني زابكة ععدل انها از مبانگین:هعدل کلادن
بیشتر است را le کند:
ای حل این مثال ابتدا باید مشخصات و معدل کلیه دانشجویان دریافت شود تا
eas sale Lj OUI isle Jase Giles pulse تسس STS Joes aly
دانشجویان با میانگین کلاس مقایسه گردد تمي توانیم مجددا از کاربر
بخواهیم که همان اطلاعات قبلی را مجددا وارد کند. بلکه بای از قبل آنها را در
درون متغيرهابى ذخيره كرده بأشيم خا اكنون بتوانيم:مقايسه ر| اتجام ذهيم”
رای اینکار نیاز به تعدادی متغیر (به تعداد دانشجويان مثلا 100 عدد) داريم كه
مارا زچاز 2 مشکل آشاسیمی كلد
۰ أبن متغيرها را جكونه نامكذارى كنيم ؟ ۲
> تامگذاری متغیرها یک روش خاص, رنه تک تک آ | | Silke
ری بر ی BS Bes
براى مقايسه هر دستور مجرا بنويسيم ؟
صفحه 3:
۱-۴ آرایه های یک بعدی
تعریف آرایه : مجموعه ای از داده های همنوع است که تحت یک نام
مشترک ذخیره می گرد
پرای دسترسی به هریک از اعضا یا عناصر آرایه از نام آرایه بعلاوه یک
انديس استفاده من شود. تنابزاين هر عتصر آرايه ورحقيقت يك متغين
مستقل از همان نوع مورد نظر است:
یک آرایه پیش از آنکه استفاده كردد بايد اغلآن شود: اعلان آرايه شامل تام
أرايه و انذازه آن است. عناصر آرایه برای سهولت در دسترسی (معمولا)
در حانهای پشت ستزهم حافظة أحره مف كريد
مثال) آرایه ۸ را با 100 عضو درنظر بگیر
تس 1 ۲۲۲۲
®@) G)eE) Se) 00 eo)
صفحه 4:
۱-۴ آرایه های یک بعدی
مثال) | slay af نا ادى دانشجو را بخوا
‘uke BS pati areal (ts اي و معدا ee ge ا
را بخوان
w& sbi) pais nl L aveList 5 nameList » idList آرايه هاى
1و0 لاو
تازمانیکه ( 0 > | ) دستورات 5 تا 6 را تکرار کن
جاب كن "مشخصات دانشجوی " , | , "را وارد كنيد"
aveList(i) 5 nameList(i) 5 idList(i) را بسخوان
sum © sum + aveList(i)
+11
totalAve ۲
1-1
تازمانیکه ( 8 > | ) دستورات 12 تا 13 را تکرار کن
اگر ( ۲06۵۱۵۷6 = olSi (aveList(i)
oS v lz L aveList(i) 5 nameList(i) 5 idList(i)
ici+l
توقف کن
صفحه 5:
۱-۴ آرایه های یک بعدی
الگوریتمیبنویسید که تعدادی عدد را درياقت و سيس ابتدا اعداد مثبت و سيس اعداد منفى را بطور جداكاته جاب
obs bn ۶
NLL negative » positive sk all 2 عنصر درنظر بگیر
MegCount 0 poscount~ Oyie 1
4 تازماتیکه (۵ > | ) دستورات 5 تا 7 را تکرار کن
5) 2030 رايخولن
6 اكر(0< 3050 ) أنكاه
positive(posCount) + adad 5 posCount + posCount +1
در negative(negCount) « adad » negCount + negCount +1 eygail at
ieiet G
2 چاپ کن "لیست اعداد مثبت*
۵ 11
«a تازمانیکه (۵5600۴۴ع
5 جاب کن positive(i)
6 2101|
7 چاپ کن "لیست اعداد متقی*
۵ 1
9( تازمانيكه (غ0ناه5©9 > ١ ) دستورات 16 تا 17 را تکرار کن
۵ جاب كن negativeli)
۳-۹9
2 توقف کن
دستورات 11 تا 12 را تکرار کن
صفحه 6:
: ۱-۴ آرایه های یک بعدی
1 یتمی بنویسید jl as, 2 aS اعداد را خوانده و در دو آرایه قرار دهد. اشتراک آن دو را
ترصن هد اعداد با aT واد و اراية فزار بهد بیجن اسراب آن جوز
7 و رأ بخوان
آرايه 8 را با © عنصر و آرایه 8 را با ۲۷ عنصر در نظر بكير.
آرايه © را با (010)0,50 عنصر درنظر بكير
all هاى 8 با 5 عنصر و 8 با 60 عنصر را بخوان (البته نیاز به حلقه دارد)
cCount + 0 5 aCount + 1
تا زمانيكه ( 6 > 3©010016) دستورات 7 تا 11 را تكرار كن
1 منامعط و1 © برو
تازمانيكه ( 1 > /لا5 300 5 > 04الا6©0) دستورات 9 تا 10 را تكرار كن
ol&I ( A(aCount) = B(bCount) ) اكر
sw © 05 C(cCount) « A(aCount) y cCount © نامع + 1
bCount — bCount + 1
Count ۰ aCount + 1
چاپ کن "اشتراک دو مجموعه برابر است
iel
تازمانیکه ( 60۱00۲ > ز ) دستورات 15 تا 16 را تکرار کن
Lb Cli) چابکن
[1 +1
توقف کن
صفحه 7:
۱-۴ آرایه های یک بعدی
* آزمایش الگوریتم اشتراک
0 ©
68 اح سمل جنا 9 ع معدي
fe 0
9 ae
a
06
صفحه 8:
3
©
: ۱-۴ آرایه های یک بعدی
الگوریتمی منال قبل را براى اجتماع دو مجموعه تكرار كنيد
9" را بخولن
آرابه ۸ را با ۴ عنصر و آریه 8 را با ۲0 عنصر ذر نظر يكير.
آرایه > را با +0 عنصر درنظر بگیر
آرایههای ۸ با ۵ عنصر و 8 با عنصر را بخوان (البته نیز به حلقه دارد)
ie
تا زمانیکه ( 8 > | ) دستورات 7 تا 8 را تکرار کن
ci) Ali)
leit
cCount « ny bCount -1
نا زمانيكه (BCount Sm) دستورات 12 نا 16 را نکرار كن
sw 1 aCount <1
تازمانیکه ( 1 = n and sw > 0ناهعة) دستورات 13 نا 14 را تكرار كن
اگر ( A(aCount) = B(bCount) ( آنگاه ۵ > بو
‘Count = aCount +1
اگر (1 > 50) انگاه
C(cCount) © B(bCount) 4 cCount + cCount + 1
Count « bCount + 1
جاب كن “اجتماع دو مجموعه بزایر است باب
ii
تازمانيكه ( غ0نامع» > 1 ) دستورات 15 نا 16 را تكرار كن
0 را چایکن
1+
توقف کن
صفحه 9:
۱-۴ آرایه های یک بعدی
* الگوریتمی بنویسید که یک لیست را گرفته و پس از حذف اعداد تکراری آن, حاصل
وا یت کر را م 7
۵ را بخوان
2 آرایه ۸ و 8 را با ۵ عنصر درنظر بگیر
3) آرایه ۸ را با عنصر بخوان
B(1)<—A(1) 4
kelgie2 6
6 تا زمانیکه ( ۵ > ۱ ) دستورات 7 تا 11 را تکرار کن
۰1[
8) تازمانیکه ( (ز)8 * (۸۵ 5۳00 > ز ) دستور 9 را تکرار کن
و 1 + ز ز
من اكر ( »ا < ز) آنگاه
۷+1 و (أ)ه > (8)6
84 1 + 1*1
2 ليست 8 را با »ا عضو چاپ کن (نیاز به حلقه دارد)
3) توقف کن
صفحه 10:
a
2
3
(4
6
6
0
6
a
0
03
یک بعدی
۱-۴ آرايه هاى د
داده های
حذف
عملیات oly
نجام
دون i Geo aula
مثال nat ake Ly hs
عم gd Je
atts ۱ 28 حلقه دارد)
تکراری ۱ ۱ |
niet 1 دشر
Ls nie mR | تكرار كن
2 6 تا 9 را
fe رز ات 9
8 را تکرار
را
A(i) ( آنگاه
“SIAN = ۳0
at) روز ۳
ia و
31
توقف كن
صفحه 11:
۱-۴ آرایه های یک بعدی
۰ یسید که یک لیست مرتب بصورت صعودی از اعداد و یک عدد را ۱
wet rai یش که ذاذه ذر ليست مسجو کلد وآن وتف اه
1) را بخوان
2) آرایه ۸ را با عنصر درنظر بگیر
3 آرايه 8 را با 0 عنصر بخوان (بصورت مرتب شده)
Olga »را 4
1*1 6
6 تازمانیکه ( (۷۸۷ 300 ۱ > ۱ ) دستور 7 را تکرار کن
[1+1
8) اكر ( م < ١ ) جاب كن "عدد بيدا نشد" و توقف كن
9) تازمانیکه ( ٩ > 1 ) دستورات 10 تا 11 را تکرار کن
A(i) نم + 1( ao
و 1 +11۱
nen-Laz
3 آرایه ۸ را با ۲ عضو چاپ کن
OS توقف 4
صفحه 12:
* آزمایش الگوریتم حذف از لیست مرتب
a
۱-۴ آرایه های یک بعدی
90
90
56
56
26
58
56
90
صفحه 13:
Ne که نگ الست ت صعودی از اعداد را از کا
زک دربافت یک عدد جدد از ريسن أن Zul S681 لیس
Renee aes تروب حفظ شود
۶ را بخوان
2 آرایه ۵ را با 1 + ۱ عنصر درنظر بگیر
3 آرایه ۸ را با 6 عنصر بخوان (بصورت مرتب شده)
4 »را بخولن
jen 6
6( تازمانیکه ( (۸ > “ا 300 1 < 1 ) دستورات 7 تا 8 را تكرار كن
Ali) 7 (1 + ام
ici-1 8
و ۷ (1 + ۸
م۵ 1 +۲۰۲
1 آرایه ۸ را با 6 عضو جاب كن
OS توقف 2
صفحه 14:
* آزمایش الگوریتم درج در لیست مرتب
w=@0
x=99
۱-۴ آرایه های یک بعدی
ae
60
ed
99
99
ee
9
se
se
صفحه 15:
@
s mod ۰ ۱۵0۸0 را چایکن
7 توقف كن
: ۱-۴ آرایه های یک بعدی
الگوریتمی بنویسید که یک عدد را دریافت و عددی که بیشترین تکرار را دارد چاپ کند.
0 را بخولن
آرایه های ۸ و 5 را با ۵ عضو درنظر بكير
آرایه ۸ را با 6 عضو بخوان
تمام عناصر آرایه 5 را برابر 0 قرار بده
۵۵۰0 و ۰0 2000۱10
jel
تازمانیکه ( 0 > ا) دستورات 7 تا 8 را تکرار کن
oll ( sw(i) = 0) 551
sw(i)@ 1 3
sumeOsjeitl 2
2 تازمانیکه ( 8 > ز ) دستورات 4 تا 6 را تکرار کن
۰ اگر ( (ز۸6 - ۸ ) آنگاه
sw(j) = 15 sum+sum+1
1+ زوز
2 اگر ) modNo < صصناع) آنگاه
modNo © sum 5 mod « A(i)
ic itl
صفحه 16:
۱-۴ آرایه های یک بعدی
* الگوریتمی بنویسید که برای تعداد دانشجو, کد رشته (از 1 تا 15) را
خوانده و سپس تعداد دانشجویان هررشته را به تفکیک چاپ کند.
1) آرایه دام را با 15 عضو درنظر بگیر
2 تمام عناصر آرایه 0۱10۴ را برابر ۵ قرار بده
3 ۱ را بخوان
[1 4
6 تازمانیکه ( 0 > ) دستورات 6 تا 8 را تکرار کن
6( 6006 را بخوان
count(code) > (علمء)غصنمء + 1 7
ici+l 6
@ آرایه *دام را با 15 عضو جاب كن
OS توقف 0
صفحه 17:
۲-۴ آرایه های چندبعدی
۰ ند نیا آرایه ها re بعدی داشتند.
این رکه ل دس مشخ مي اير نت
* اما گاهی در مسائل نیا يه ها که li kil
a a رن ه ها أست كه هر عضو ie
چنانچه هر عنصر آرایه به 2 اندیس نیاز داشته باشد, به آن آرایه دو بعدی
© يرا تعر هق رانك وتعدى تابه عذال سظرها | مشخم
کب كل متو لك أ POI ei Ses
abet hs Wola al شتویها ات
صفحه 18:
۲-۴ آرایه های چندبعدی
* بعنوان مثال چنانچه آرایه ۸ را بعنوان یک آرایه دوبعدی به ابعاد 5 < 8
تعریف کنیم, آنگاه داریم :
شون
> 2 2
٩ 5 5 6 6 6 © ©
«0 ,۸(
ف و 5 ط
ee)
صفحه 19:
۲-۴ آرایه های چندبعدی
برای آرایه های سه بعدی نیز مفاهیم مشابهی قابل طرح است. در اين آرایه ها هر
عنصر نیاز به 3 اندیس دارد و برای تعریف آنها را بصورت ۷ ۲۰ ۷ ۵ اعلان می
کنیم كه م عمق, ۲۱ تعداد سطرها و " تعداد ستونها است.
بعنوان مثال چنانچه آرایه 8 بعنوان یک آرایه سه بعدی به ابعاد 3 »ا 4 »ا 6 تعریف
شود. خواهیم داشت :
0,82)
(2,9,0)
صفحه 20:
۲-۴ آرایه های چندبعدی
الگوریتمی بنويسيد كم براي تعدادى داتشجو. شماره دانشجویی و کد رشته (از 2 تا 15) را خوانده و سپس
دانشجویان هررشته را به اپ کند.
6 را سخولن
آرايه دوبعدى 560066 رأ به ايعاد 15 “ا 0 در نظر يكير
آرايه (00ا۵ع را با 15 عنصر در نظر بگیر و تمام عتاصر آن را برابر ۵ قرار بده
ied
تازمانیکه ( 6 > | ) دستورات 6 تا 9 را تکرار کن
سخولن L code » id
count(code) + count(code) + 1
student( code , count(code) ) « id
[+ 1
جاب كن “ليست دانشجويان"
161
تازمانيكه ( 15 > ا) دستورات 13 نا 18 را نكرار كن
چاپ کن "رشته
jel
تازمانیکه ( count(i) > ز ) دستورات 16 نا 17 را تکرار کن
oSle L student i,j)
jejtl
1-1 +1
US توقف
صفحه 21:
: ۲-۴ آرایه های چندبعدی
ee
* . الگوریتمیبنویسید که برای تعدادی دانشجو, شماره دانشجویی و کد محل تحصیل (از 3 نا 10) و کد رشنه (از 1 نا 15) را خوانده
Jah ssa i tg Senses ۰ 1 مه
۵ ارابخولن
2 آرآيه سه بعدى 56009606 را يه ابعاد 10 »ا 15 »ا 0١ در نطر يكير
count abo را با 1510 < عنصر در نظر بكير و تعام عناصر آن را برایر ۵ قرار بده
ind
6 تازمانيكه ( 6 > )١ دستورات 6 نا 9 را تكرار كن
cityCode sid 6 و 8ص لنته را سخوان
count{cityCode studyCode) + count{cityCode,studyCode) +1 7
student( cityCode , studyCode , count(cityCode , studyCode) ( = id م
@ 1+1
ao جاب كن "ليست دانشجویان*
11
a2 تازمانيكه ( 10 > ) دستورات 13 تا 22 را نکرار کن.
a جاب كن "محل ”أ
jel as
05 تازمانيكه ( 15 > [) دستورات 16 نا 21 را تكرار كن
06 جاب كن “كد رشته ", [
kei uw
a8 تازمانيكه ( نع > ۲ ) دسنورات 19 نا 20 را جاب كن
OSE student(i j,k) as
۲1 مم
jeitl a
ieitl هه
a توقف كن
صفحه 22:
۲-۴ آرایه های چندبعدی
۰ 50 موضیع مختلف را به رای گذاشته ایم و هرکس می تولند آرای خود را بشرح زیر
1- موافق 2- مخالف 3- ممتنع4- بی اطلاع
الگورنتفی بتوینتید ك ةجعداد اقزاد راق دهندة را دزيافت واسنيسن بتن از جریافت آرای هنک
از آنان برای هر 50 موضوع. تعداد آرای مختلف هر موضوع را به تشکیک چاب کند.
* را بخوان
[1 ۶
* تازمانیکه ( ۴ > | ) دستورات را 5 تا 11 تکرار كن
jele
* تازمانیکه ( 50 > [ ) دستورات 7 تا 10 را تکرار كن
* چاپ کن "موضوع ", [
* ۷۵66 را بخولن
count(j, vote) « count(j, vote) +1 *
۶ 1+ ز
[1+ 1 ۶
Ly count all * به ابعاد 50 < 4 چاب کن (نباز به حلقه دارد)
توقف کن
صفحه 23:
(2
قن
as
a7
۲-۴ آرایه های چندبعدی
الگوریتمی بنویسید که دو ماتریس را از کاربر دریاقت و حاصلضرب آن دو را محاسبه و چاپ کند.
و0 را بخوان(لبعاد ماتریساول۴ ۶ 0)
و 4 را ب-خولن(لبعاد ماتریسدوم 0 « 40
ار (۵ ۶ ) آنگاه
چاپ کن "ماتریسها قابل ضرب نیستند" و توقف کن
آرایه ۸ را به ابعاد ۵ < 7۱ و آرایه 8 را به ابعاد ۵ < ۵ درنظر بگیر
آرایه ۲ را به ابعاد ۵ x ۲0 درتظر بگیز
آرایه ۸ را به ابعاد 6 < ۰ بخوان
آرایه 8 را به ابعاد و « م بخوان
ied
تازمانیکه ( ۴0 > ا) دستورات 10 تا 18 را تکرار کن
jel
تازماتیکه ( ٩ > ژ) دستورات 12 تا 17 را تکرار کن
0 و۷۲1
تازماتیکه (0 > ۲) دستورات 14 تا 15 را تکرار کن
sum + sum + A(ik) x B(k,j)
kek tl
(i,j) — sum
jeje
1+1
آرایه > را به ابعاد 9 oS km x
توقف كن
صفحه 24:
۲-۴ آرایه های چندبعدی
Oa 20 acl Signa goal Sun گر سرت هیوست يسا الما عل مر
تاک cla اد كت بول و أله او asa at ler سک ی ی و ASI
Ta ai سار مگاا خی است. هر پاسج علط 9 نمره میدز
أرابه 266644 را با 20 عضو درنظر يكير
آرايه 30500615 را به ابعاد 20 4 در نظر بگیر
iat
Lb )520 ستورت 5 نا 7 را تکرر کر
Libs cag al
له را عون
اس
۳9
tet
رکه (ج > ) دستوات 1:13 22 را تكرار كن
(ais ants را بخوان آز ال فال با رود 202 el
وس
fot
ass )20 دستورات 25 نا 20 را تكرار كن
cor ere
(£51) 28 017 tp ) 2 4( alg
count «count +1 al. (‘aneweralj. k) =X) 961
eked
grade = grade - 1/3 elfii (count > 1) $1
درعبراتضورت اگر (1 « 6940۴) آگاه
|
grade « 9:06 - 1/3 درقیراتصورت
reper
جاب كن saul yl eps” برابر ست با ". 6986و
TT
توقف كن
سا
esi