0% found this document useful (0 votes)
5 views35 pages

Chapter 3 Flowchart&algorithm

Uploaded by

aradmard513
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views35 pages

Chapter 3 Flowchart&algorithm

Uploaded by

aradmard513
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

‫کارنما و الگوریتم‬ ‫‪1‬‬

‫مبانی کامپیوتر و برنامهنویسی‬

‫راضیه قیاسی‬
‫‪[email protected]‬‬

‫دانشگاه پردیس فارابی دانشگاه تهران‬


‫نیمسال اول ‪1400-1399‬‬

‫‪2‬‬
‫فصل سوم‪ :‬کارنما و الگوریتم‬

‫کارنما و الگوریتم‬ ‫‪3‬‬


‫مقدمه‬
‫• تولید نرمافزار شامل ‪ 6‬گام است‪:‬‬

‫فرایند تولید نرمافزار‬

‫تعمیم و نگهداری‬ ‫مستند سازی‬ ‫کدنویسی روش‬ ‫طراحی روش حل‬


‫آزمایش برنامه‬ ‫تعریف مسئله‬
‫برنامه‬ ‫برنامه‬ ‫حل‬ ‫مسئله‬

‫کارنما و الگوریتم‬ ‫‪4‬‬


‫تعریف مسئله‬
‫• اولین وظیفه برنامهنویس شناخت صحیح مسئله است‪.‬‬

‫• در این مرحله‪ ،‬برنامهنویس باید هدف مسئله‪ ،‬خروجی مطلوب و ورودی مورد نیاز را مشخص نماید‪ .‬همچنین پردازش الزم را‬
‫تعیین کند‪.‬‬

‫• به عنوان مثال‪ :‬می خواهیم معدل دانش آموز را بدست آورده نمایش دهیم؟‬
‫❑ورودی‪ :‬نمرات دانش آموز‬
‫❑خروجی ‪ :‬معدل‬
‫❑پردازش‪ :‬جمع نمرات و تقسیم مجموع بر تعداد نمرات‬

‫کارنما و الگوریتم‬ ‫‪5‬‬


‫طراحی روش حل مسئله‬
‫• پس از تعریف مسئله‪ ،‬الزم است به بیان دقیق چگونگی حل مسئله یا طراحی یک روش برای حل مسئله بپردازیم‪.‬‬

‫• در این مرحله‪ ،‬برنامهنویس باید یک فرایند قدم به قدم برای رسیدن از ورودی مورد نیاز به خروجی مطلوب طراحی نماید‪.‬‬

‫• مجموعه مراحل و قدمهای مورد نیاز در فرایند رسیدن از دادههای موجود به خروجی مطلوب را الگوریتم نامند‪.‬‬

‫کارنما و الگوریتم‬ ‫‪6‬‬


‫تاریخچه الگوریتم‬
‫• الگوریتم در لغت به معنای روش حل مسائل میباشد و از نام دانشمند و ریاضیدان ایرانی‪ ،‬ابو جعفر بن محمد خوارزمی گرفته‬
‫شده است‪.‬‬
‫رسالهای که خوارمی در قرن ‪ 9‬با عنوان "سیستم اعداد هندی‪-‬عربی"نوشته بود‪ ،‬در قرن ‪ 12‬به التین با نام " ‪Algoritmi de‬‬ ‫•‬
‫"‪ numero Indorum‬ترجمه شد‪ .‬که مترجم نام خوارزمی را جلوی نام اصلی کتاب آورده بود‪.‬‬
‫در قرن ‪ 13‬میالدی واژه الگوریسموس (‪ )algorismus‬به معنای «سیستم شمارش عربی (دهدهی)» (یعنی اعداد ‪ 1‬تا ‪ 9‬به‬ ‫•‬
‫عالوه صفر‪ ،‬و نیز مفهوم اعشار) بود؛ که هنوز هم یکی از معانی واژه الگوریسم (‪ )algorism‬است‪.‬‬
‫معنای دیگر الگوریسم «حساب کردن با کمک اعداد عربی» است؛‬ ‫•‬
‫در قرن ‪ 19‬این کلمه در فرانسوی به ‪ algorithme‬تغییر شکل پیدا کرد‪ ،‬البته معنایش ثابت ماند‪.‬‬ ‫•‬
‫طولی نکشید که این کلمه به شکل ‪ algorithm‬وارد زبان انگلیسی شد‪.‬‬ ‫•‬
‫اواخر قرن ‪ 19‬میالدی بود که معنای عامتر امروزیاش را یافت‪« .‬هر مجموعه قواعدی که برای انجام یک رویه محاسباتی یا‬ ‫•‬
‫روال رایانهای به کار رود» الگوریتم گفته میشود‪.‬‬

‫کارنما و الگوریتم‬ ‫‪7‬‬


‫الگوریتم‬
‫• تعریف رسمی‪ :‬الگوریتم‪ ،‬مجموعهای از دستورالعملها برای حل مسئله است که باید دارای شرایط زیر باشد‪:‬‬
‫✓ ورودی داشته باشد‪.‬‬
‫✓ خروجی داشته باشد‪.‬‬
‫✓ ترتیب داشته باشد‪.‬‬
‫✓ دقیق باشد‪.‬‬
‫✓ صحیح باشد‪.‬‬
‫✓ پایانپذیر باشد‪.‬‬

‫• برای تهیه الگوریتم‪ ،‬روشهای مختلفی وجود دارد‪ .‬از جمله‪:‬‬


‫• شبه کد (‪)Pseudo code‬‬
‫• روندنما (‪)Flowchart‬‬

‫کارنما و الگوریتم‬ ‫‪8‬‬


‫شبه کد‬
‫شبه کد روشی برای بیان الگوریتم با استفاده از کلمات‪ ،‬عبارات و عالئم ریاضی که از قواعد کلی یک زبان برنامهنویسی و‬
‫زبانهای طبیعی انسان پیروی میکند‪.‬‬
‫قراردادها در شبه کد‪:‬‬
‫در ابتدای هر الگوریتم کلمه شروع و در انتهای آن کلمه پایان را قرار دهید‪.‬‬ ‫•‬
‫شمارهگذاری دستورالعملها‬ ‫•‬
‫برای دریافت اطالعات از کاربر از دستور بخوان استفاده گردد‪.‬‬ ‫•‬
‫برای نوشتن اطالعات در خروجی از دستور چاپ کن استفاده گردد‪.‬‬ ‫•‬
‫برای عملیات ریاضی و کار بر روی دادهها از مکانی در حافظه استفاده میکنیم و به هریک نامی را منتسب میکنیم‪ .‬به هر یک از‬ ‫•‬
‫این نامها یک متغیر گفته میشود‪.‬‬
‫استفاده می شود‪.‬‬ ‫برای انتساب یک مقدار به یک متغیر از عالمت‬ ‫•‬

‫کارنما و الگوریتم‬ ‫‪10‬‬


‫مثال‬
‫• الگوریتمی بنویسید که سه عدد را از کاربر دریافت کند و میانگین آن ها را محاسبه و چاپ نماید‪.‬‬

‫‪ -0‬شروع‬
‫‪ b ، a -1‬و ‪ c‬را بخوان‬
‫‪s ← a+b+c -2‬‬
‫‪average ← s/3 -3‬‬
‫‪ average -4‬را چاپ کن‬
‫‪ -5‬پایان‬

‫کارنما و الگوریتم‬ ‫‪11‬‬


‫تمرین‬
‫• الگوریتمی بنویسید که دو عدد را جابهجا کند‪.‬‬

‫‪ -0‬شروع‬
‫‪ a -1‬و ‪ b‬را بخوان‬
‫‪tempa -2‬‬
‫‪a b -3‬‬
‫‪btemp -4‬‬
‫‪ a -5‬و ‪ b‬را چاپ کن‬
‫‪ -6‬پایان‬

‫کارنما و الگوریتم‬ ‫‪12‬‬


‫کارنما (‪)Flowchart‬‬
‫• درک الگوریتمها به صورت شبهکد معموال پیچیده است‪ .‬به همین منظور کارنما معرفی شد‪.‬‬
‫• نمایش الگوریتمها به صورت شماتیک و گرافیکی را کارنما یا فلوچارت گویند‪.‬‬

‫کارنما و الگوریتم‬ ‫‪13‬‬


‫نمادها در کارنما‬
‫توضیح‬ ‫نماد‬
‫خط جریان‬

‫شروع و پایان‬

‫پردازش‬

‫ورودی و خروجی‬

‫شرط‬

‫اتصالدهنده در همان صفحه‬

‫اتصالدهنده در صفحه دیگر‬

‫کارنما و الگوریتم‬ ‫‪14‬‬


‫نکات روندنما‬
‫• تنها یک نقطه شروع وجود دارد‪.‬‬
‫• میتوان چند نقطه پایان داشت‪.‬‬
‫• از هر مرحله میتوان به هر یک از مراحل قبلی غیر از نقطه شروع رفت اما از نقطه پایان نمیتوان پیکانی خارج کرد‪.‬‬
‫• آزمایش الگوریتم یا اثبات درستی الگوریتم‪ :‬از نقطه شروع مرحله به مرحله پیش روید تا به یک نقطه پایان برسید در این‬
‫مرحله باید نتایج مورد نظر را بدست آورده باشید در غیر این صورت الگوریتم را بازبینی کنید‪.‬‬

‫کارنما و الگوریتم‬ ‫‪15‬‬


‫مثال‬
‫• فلوچارتی رسم کنید که سه عدد را از کاربر دریافت کند و میانگین آن ها را محاسبه و چاپ نماید‪.‬‬

‫شروع‬

‫‪ a,b,c‬را‬
‫دریافت کن‬

‫‪s ← a+b+c‬‬
‫‪average=s/3‬‬

‫‪ average‬را‬
‫چاپ کن‪.‬‬

‫پایان‬
‫کارنما و الگوریتم‬ ‫‪16‬‬
‫مثال‬
‫• فلوچارتی رسم کنید که دو عدد را جابهجا کند‪.‬‬
‫شروع‬

‫‪ a,b‬را‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪temp‬‬


‫دریافت کن‬
‫‪2‬‬ ‫‪10‬‬ ‫‪2‬‬
‫‪temp ← a‬‬ ‫‪10‬‬ ‫‪2‬‬
‫‪ab‬‬
‫‪btemp‬‬

‫‪ a,b‬را چاپ‬
‫کن‪.‬‬
‫‪a=10 b=2‬‬

‫پایان‬

‫کارنما و الگوریتم‬ ‫‪17‬‬


‫تمرین‬
‫• فلوچارتی رسم کنید که عدد به درجه سانتیگراد دریافت کرده و معادل فارنهایت آن را بدست آورد‪.‬‬

‫شروع‬

‫‪c‬‬ ‫‪f‬‬
‫‪ c‬را‬
‫دریافت کن‬ ‫‪10‬‬ ‫‪50‬‬

‫‪fc*9/5+32‬‬

‫‪ f‬را چاپ‬
‫کن‪.‬‬

‫‪50‬‬
‫پایان‬

‫کارنما و الگوریتم‬ ‫‪18‬‬


‫دستورات شرطی‬
‫• در حل بسیاری از مسائل نیاز به استفاده از شرط‪ ،‬جز نیازهای اساسی است‪.‬‬
‫• غالبا دستورات شرطی دارای دو قسمت است‪:‬‬
‫• بخشی که شرط برقرار باشد و عملیاتهایی که در این صورت انجام میشود‪.‬‬
‫• بخشی که شرط برقرار نباشد و عملیاتهایی که در این صورت انجام میشود‪.‬‬

‫غلط‬
‫شرط‬ ‫عملیاتهایی که باید انجام شود‪.‬‬

‫درست‬

‫عملیاتهایی که باید انجام شود‪.‬‬

‫کارنما و الگوریتم‬ ‫‪19‬‬


‫مثال‬
‫• فلوچارتی رسم کنید که مثبت و منفی بودن عدد را بررسی نماید‪.‬‬
‫شروع‬

‫‪ a‬را‬
‫‪a‬‬
‫دریافت کن‬
‫‪38‬‬
‫خیر‬ ‫‪ a‬منفی‬
‫‪a>=0‬‬
‫است‪.‬‬
‫بله‬
‫‪ a‬مثبت‬
‫است‪.‬‬
‫‪ 38‬مثبت است‬

‫پایان‬

‫کارنما و الگوریتم‬ ‫‪20‬‬


‫تمرین‬
‫• فلوچارتی رسم کنید که بزرگترین بین سه عدد را محاسبه نماید‪.‬‬
‫شروع‬

‫‪ a,b,c‬را دریافت کن‬

‫‪maxa‬‬

‫بله‬ ‫بله‬ ‫‪ Max‬را‬


‫‪b>max‬‬ ‫‪maxb‬‬ ‫‪c>max‬‬ ‫‪maxc‬‬
‫چاپ کن‪.‬‬
‫خیر‬

‫پایان‬

‫کارنما و الگوریتم‬ ‫‪21‬‬


‫تمرین‬

‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫‪max‬‬

‫‪2‬‬ ‫‪10‬‬ ‫‪8‬‬ ‫‪2‬‬

‫‪10‬‬

‫‪max=10‬‬

‫کارنما و الگوریتم‬ ‫‪22‬‬


‫تمرین‬
‫شروع‬ ‫• فلوچارتی رسم کنید که ضرایب معادله درجه ‪ 2‬را دریافت و ریشههای آن را محاسبه نماید‪.‬‬

‫‪ a,b,c‬را دریافت کن‬

‫‪db*b-4*a*c‬‬

‫خیر‬ ‫معادله ریشه‬


‫‪d==0‬‬ ‫‪d>0‬‬ ‫ندارد‪.‬‬
‫خیر‬
‫بله‬ ‫بله‬ ‫پایان‬

‫)‪x1,x2-b/(2*a‬‬ ‫)‪x1(-b+sqrt(d))/(2*a‬‬ ‫‪ x1‬و ‪ x2‬را‬


‫)‪x2(-b-sqrt(d))/(2*a‬‬ ‫چاپ کن‪.‬‬

‫کارنما و الگوریتم‬ ‫‪23‬‬


‫حلقهها‬
‫• در بعضی مسائل الزم است که عمل یا عملیاتهایی تکرار شوند‪.‬‬
‫• در چنین مسائلی از حلقهها استفاده میشود‪.‬‬
‫• دو نوع حلقه داریم‪:‬‬
‫• حلقه با تعداد تکرار مشخص‪:‬‬
‫• شامل اندیس حلقه‪ ،‬مقداردهی اولیه اندیس حلقه‪ ،‬مقدار افزاینده برای اندیس حلقه‪ ،‬شرط پایان حلقه‬
‫• حلقه با تعداد تکرار نامشخص‬
‫غلط‬ ‫• شامل شرط پایان حلقه‬
‫شرط‬

‫درست‬

‫دستورات‬

‫کارنما و الگوریتم‬ ‫‪24‬‬


‫مثال‬
‫• فلوچارتی رسم کنید که مجموع اعداد ‪ 1‬تا ‪ 100‬را محاسبه نماید‪.‬‬

‫شروع‬ ‫‪i‬‬ ‫‪s‬‬

‫‪1‬‬ ‫‪0‬‬
‫‪i=1‬‬
‫‪S=0‬‬ ‫‪2‬‬ ‫‪1‬‬

‫‪ s‬را چاپ‬ ‫‪3‬‬ ‫‪3‬‬


‫‪i<=100‬‬ ‫پایان‬
‫کن‪.‬‬
‫بله‬ ‫‪4‬‬ ‫‪6‬‬

‫‪s=s+i‬‬ ‫‪5‬‬ ‫‪10‬‬


‫‪i=i+1‬‬
‫‪6‬‬ ‫‪15‬‬

‫‪s=15‬‬
‫کارنما و الگوریتم‬ ‫‪25‬‬
‫تمرین‬
‫• برنامه بنویسید که با دریافت ‪ ،n‬مقدار !‪ n‬را محاسبه نماید‪.‬‬
‫شروع‬
‫‪n‬‬ ‫‪i‬‬ ‫‪f‬‬
‫‪ n‬را دریافت‬
‫‪5‬‬ ‫‪1‬‬ ‫‪1‬‬
‫کن‬
‫‪2‬‬ ‫‪1‬‬
‫‪i=1‬‬
‫‪f=1‬‬ ‫‪3‬‬ ‫‪2‬‬

‫‪4‬‬ ‫‪6‬‬
‫‪ f‬را چاپ‬
‫‪i<=n‬‬ ‫پایان‬
‫کن‪.‬‬ ‫‪5‬‬ ‫‪24‬‬
‫بله‬
‫‪6‬‬ ‫‪120‬‬
‫‪f=f*i‬‬
‫‪i=i+1‬‬
‫‪f=120‬‬
‫کارنما و الگوریتم‬ ‫‪26‬‬
‫تمرین‬
‫• فلوچارتی رسم کنید که ‪ n‬عدد از کاربر دریافت کرده و میانگین آنها را محاسبه نماید‪.‬‬
‫شروع‬
‫‪n‬‬ ‫‪i‬‬ ‫‪a‬‬ ‫‪s‬‬ ‫‪avg‬‬
‫‪ n‬را دریافت کن‬
‫‪5‬‬ ‫‪1‬‬ ‫‪20‬‬ ‫‪0‬‬ ‫‪15‬‬

‫‪i=1‬‬ ‫‪2‬‬ ‫‪25‬‬ ‫‪20‬‬


‫‪s=0‬‬
‫‪3‬‬ ‫‪18‬‬ ‫‪45‬‬
‫‪ avg‬را چاپ‬
‫‪i<=n‬‬ ‫‪avg=s/n‬‬ ‫پایان‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪63‬‬
‫کن‪.‬‬
‫بله‬
‫‪5‬‬ ‫‪7‬‬ ‫‪68‬‬
‫‪ a‬را دریافت کن‬
‫‪6‬‬ ‫‪75‬‬

‫‪s=s+a‬‬
‫‪i=i+1‬‬
‫‪avg=15‬‬
‫کارنما و الگوریتم‬ ‫‪27‬‬
‫تمرین‬
‫شروع‬ ‫• فلوچارتی رسم کنید که با دریافت ‪ n‬عدد تعداد اعداد زوج و فرد را مشخص نماید‪.‬‬

‫‪ n‬را دریافت کن‬ ‫‪n‬‬ ‫‪i‬‬ ‫‪a‬‬ ‫‪even odd‬‬

‫‪5‬‬ ‫‪1‬‬ ‫‪20‬‬ ‫‪0‬‬ ‫‪0‬‬


‫‪i=1‬‬
‫‪even=0 odd=0‬‬ ‫‪2‬‬ ‫‪25‬‬ ‫‪1‬‬ ‫‪1‬‬

‫‪ even , odd‬را‬ ‫‪3‬‬ ‫‪18‬‬ ‫‪2‬‬ ‫‪2‬‬


‫‪i<=n‬‬ ‫پایان‬
‫چاپ کن‪.‬‬
‫بله‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪3‬‬
‫‪ a‬را دریافت کن‬
‫‪5‬‬ ‫‪7‬‬

‫‪a%2==0‬‬ ‫‪odd=odd+1‬‬ ‫‪6‬‬

‫‪even=even+1‬‬
‫‪even=2 odd=3‬‬
‫‪i++‬‬ ‫کارنما و الگوریتم‬ ‫‪28‬‬
‫تمرین‬
‫• فلوچارتی رسم کنید که یک عدد دریافت کرده مجموع ارقام آن را محاسبه نماید‪.‬‬
‫شروع‬
‫‪n‬‬ ‫‪s‬‬

‫‪ n‬را دریافت کن‬ ‫‪1399‬‬ ‫‪0‬‬

‫‪139‬‬ ‫‪9‬‬
‫‪s=0‬‬
‫‪13‬‬ ‫‪18‬‬
‫‪ s‬را چاپ‬ ‫‪1‬‬ ‫‪21‬‬
‫‪n>0‬‬ ‫پایان‬
‫کن‪.‬‬
‫بله‬
‫‪0‬‬ ‫‪22‬‬
‫‪s=s+n%10‬‬
‫‪n=n/10‬‬

‫‪s=22‬‬
‫کارنما و الگوریتم‬ ‫‪29‬‬
‫تمرین‬
‫• قلوچارتی رسم کنید که عددی دریافت کرده‪ ،‬مغلوب آن را محاسبه نماید‪.‬‬
‫شروع‬
‫‪n‬‬ ‫‪s‬‬

‫‪1399‬‬ ‫‪0‬‬
‫‪ n‬را دریافت کن‬
‫‪139‬‬ ‫‪9‬‬
‫‪s=0‬‬
‫‪13‬‬ ‫‪99‬‬

‫‪ s‬را چاپ‬ ‫‪1‬‬ ‫‪993‬‬


‫‪n>0‬‬ ‫پایان‬
‫کن‪.‬‬
‫بله‬ ‫‪0‬‬ ‫‪9931‬‬

‫‪s=s*10+n%10‬‬
‫‪n=n/10‬‬

‫‪s=9931‬‬
‫کارنما و الگوریتم‬ ‫‪30‬‬
‫تمرین‬
‫• قلوچارتی رسم کنید که عددی دریافت کرده‪ ،‬بررسی نماید متقارن هست یا نه‪.‬‬
‫شروع‬
‫‪n‬‬ ‫‪s‬‬ ‫‪a‬‬

‫‪1399‬‬ ‫‪0‬‬ ‫‪1399‬‬


‫‪ n‬را دریافت کن‬
‫‪139‬‬ ‫‪9‬‬
‫‪s=0‬‬
‫‪a=n‬‬ ‫‪13‬‬ ‫‪99‬‬

‫بله‬ ‫‪ a‬متقارن‬ ‫‪1‬‬ ‫‪993‬‬


‫‪n>0‬‬ ‫‪s==a‬‬ ‫پایان‬
‫است‪.‬‬
‫بله‬ ‫‪0‬‬ ‫‪9931‬‬

‫‪s=s*10+n%10‬‬ ‫‪ a‬متقارن‬
‫‪n=n/10‬‬ ‫نیست‪.‬‬

‫‪ a‬نامتقارن است‬

‫کارنما و الگوریتم‬ ‫‪31‬‬


‫تمرین‬
‫شروع‬ ‫• فلوچارتی رسم کنید که عددی دریافت کرده و اول بودن آن را بررسی نماید‪.‬‬
‫‪n‬‬ ‫‪flag‬‬ ‫‪i‬‬
‫‪ n‬را دریافت کن‬
‫‪7‬‬ ‫‪true‬‬ ‫‪2‬‬
‫‪flag=true‬‬
‫‪3‬‬
‫‪i=2‬‬

‫بله‬ ‫‪4‬‬
‫‪i<n‬‬ ‫‪flag==true‬‬ ‫اول است‬ ‫پایان‬
‫‪5‬‬
‫بله‬
‫‪6‬‬
‫‪n%i==0‬‬ ‫اول نیست‬
‫‪7‬‬
‫‪flag=false‬‬
‫اول است‬
‫‪i=i+1‬‬
‫کارنما و الگوریتم‬ ‫‪32‬‬
‫تمرین‬
‫• فلوچارتی رسم کنید که عددی دریافت کرده‪ ،‬بررسی نماید عدد کامل است یا نه‪( .‬عدد کامل با مجموع مقسوم علیههایش به‬
‫غیر از خودش برابر باشد‪).‬‬

‫}‪6={1,2,3,6‬‬
‫‪6=1+2+3‬‬

‫کارنما و الگوریتم‬ ‫‪33‬‬


‫تمرین‬
‫• فلوچارتی رسم نمایید که عددی دریافت کرده‪ ،‬آن را به مبنای ‪ 2‬ببرد‪ .‬به مبنای ‪ 8‬ببرد‪ .‬به مبنای ‪ 16‬ببرد‪.‬‬

‫کارنما و الگوریتم‬ ‫‪34‬‬


‫تمرین‬
‫• فلوچارتی رسم نمایید که ‪ n‬عدد دریافت کرده و بزرگترین آنها را بدست آورد‪.‬‬

‫کارنما و الگوریتم‬ ‫‪35‬‬


‫تمرین‬
‫• فلوچارتی رسم کنید که ‪ n‬عدد از کاربر دریافت کرده‪ ،‬تعداد اعداد اول را شناسایی نماید‪.‬‬

‫کارنما و الگوریتم‬ ‫‪36‬‬

You might also like