نمونه سؤالات حل شده برنامه نویسی

[B]مقدماتی C++ زبان
(گنجی)
تعداد ستاره ها میزان سختی سؤالها را نشان می دهد.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 1
## برنامه هاي ساده
-1 برنامه اي بنویسید که عددي را بگیرد و مجذور آن را نمایش دهد.
-2 برنامه اي بنویسید که شعاع یک دایره را گرفته و مساحت و محیط آن را نمایش دهد.
-3 برنامه اي بنویسید که طول و عرض یک مستطیل را گرفته، محیط و مساحت آن را نمایش دهد.
-4 برنامه اي بنویسید که سه عدد صحیح را گرفته و میانگین اعشاري آنها را نمایش دهد.
-5 برنامه اي بنویسید که یک کاراکتر را گرفته و کد اسکی آن را نمایش دهد.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 2
## ساختارهاي شرطی
-6 برنامه اي بنویسید که عدد صحیحی را بگیرد و زوج یا فرد بودن آن را گزارش دهد.
-7 برنامه اي بنویسید که طول سه ضلع یک مثلث را گرفته و مشخص کند آیا آن مثلث متساوي الاضلاع
است، یا متساوي الساقین است یا مختلف الاضلاع؟
-8 * برنامه اي بنویسید که طول سه ضلع یک مثلث را گرفته، اگر آن مثلث قائم الزاویه است مساحت آن
را، و الا محیط آن را محاسبه کرده و نمایش دهد.
-9 برنامه اي بنویسید که سه عدد اعشاري را گرفته و بزرگترین آنها را نمایش دهد.
10 - برنامه اي بنویسید که شماره ماه (شمسی) را گرفته و تعداد روزهایش را نمایش دهد.
11 - * برنامه اي بنویسید که کاراکتري را گرفته و مشخص کند در کدام دسته زیر قرار می گیرد:
- حروف بی صدا
- حروف صدادار
- رقمها
- سایر کاراکترها
از یک معادله درجه ي دوم را گرفته و در مورد تعداد و c و b و a 12 - * برنامه اي بنویسید که ضرایب
مقادیر ریشه هایش اطلاعات کاملی به کاربر بدهد.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 3
## حلقه ها
13 - برنامه اي بنویسید که تمام اعداد صحیح از یک تا صد را زیر هم نمایش دهد.
14 - برنامه اي بنویسید که تمام اعداد سه رقمی را زیر هم نمایش دهد.
15 - برنامه اي بنویسید که تمام اعداد فرد سه رقمی را زیر هم نمایش دهد.
16 - برنامه اي بنویسید که تمام اعداد زوج سه رقمی را زیر هم نمایش دهد.
17 - برنامه اي بنویسید که تمام اعداد فرد سه رقمی را از بزرگ به کوچک (نزولی) زیر هم نمایش دهد.
18 - * برنامه اي بنویسید که تمام اعداد چهاررقمی که بر 7 بخشپذیرند اما بر 3 بخشپذیر نیستند را زیر هم
نمایش دهد.
19 - برنامه اي بنویسید که عدد صحیحی را گرفته و همه اعداد طبیعی کمتر یا مساوي آن را نمایش دهد.
20 - * برنامه اي بنویسید که عدد صحیحی را گرفته و همه ي مقسوم علیه هایش را نمایش دهد.
21 - * برنامه اي بنویسید که عدد صحیحی را گرفته و تعداد مقسوم علیه هایش را نمایش دهد.
22 - * برنامه اي بنویسید که عدد صحیحی را گرفته و با شمردن تعداد مقسوم علیه هایش، اول بودن یا
نبودن آن را مشخص کند. (عددي اول است که دوتا مقسوم علیه داشته باشد)
23 - * برنامه اي بنویسید که دو عدد صحیح را گرفته و مقسوم علیه هاي مشترکشان را نمایش دهد.
24 - ** برنامه اي بنویسید که دو عدد صحیح را گرفته و بزرگترین مقسوم علیه مشترکشان را نمایش دهد.
25 - ** برنامه اي بنویسید که دو عدد صحیح را گرفته و کوچکترین مضرب مشترکشان را نمایش دهد.
26 - ** برنامه اي بنویسید که عدد صحیحی را گرفته و تعداد رقمهایش را نمایش دهد.
27 - ** برنامه اي بنویسید که عددي طبیعی با تعداد رقم نامشخص را گرفته و حاصلجمع رقمهایش را
نمایش دهد.
28 - * برنامه اي بنویسید که صد عدد اعشاري را گرفته و حاصلجمعشان را نمایش دهد.
29 - * برنامه اي بنویسید که صد عدد اعشاري را گرفته و حاصلضربشان را نمایش دهد.
30 - * برنامه اي بنویسید که صد عدد اعشاري را گرفته و میانگینشان را نمایش دهد.
31 - * برنامه اي بنویسید که صد عدد اعشاري را گرفته و تعداد اعداد مثبت وارد شده را نمایش دهد.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 4
32 - ** برنامه اي بنویسید که صد عدد اعشاري را گرفته و حاصلجمع (فقط) اعداد مثبت وارد شده را
نمایش دهد.
33 - ** برنامه اي بنویسید که صد عدد اعشاري را گرفته و میانگین اعداد مثبت را جدا، و میانگین اعداد
منفی را جدا نمایش دهد.
34 - * برنامه اي بنویسید که عدد صحیحی را گرفته و فاکتوریل آن را نمایش دهد.
35 - * برنامه اي بنویسید که معدلهاي 100 دانشجو را گرفته و بزرگترین معدل را نمایش دهد.
36 - * برنامه اي بنویسید که معدلهاي 100 دانشجو را گرفته و کمترین معدل را نمایش دهد.
37 - ** برنامه اي بنویسید که معدلهاي 100 دانشجو را گرفته و بالاترین معدل مشروط شده را نمایش
دهد.
38 - ** برنامه اي بنویسید که معدلهاي 100 دانشجو را گرفته و میانگین معدلهاي بالاتر از 15 را نمایش
دهد.
39 - *** برنامه اي بنویسید که معدلهاي 100 دانشجو را گرفته و دومین معدل را (از نظر بزرگی) نمایش
دهد.
براي بدست آوردن حاصل هر کدام از عبارات زیر برنامه اي بنویسید: 
* - 40
** - 41
** - 42
1 1 1 1
1 2 3 1000
  
1 1 1 1 1
1 2 3 4 1000
   
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 5
1 3 5 99
2 4 6 100
   
   


** - 43
1 × 2
1 + 2
+
3 × 4
3 + 4
+
5 × 6
5 + 6
+ ⋯ +
99 × 100
99 + 100
44 - ** تا چهار رقم اعشار
عددي x . براي بدست آوردن حاصل هر کدام از عبارات زیر تا چهار رقم اعشار برنامه اي بنویسید 
اعشاري است و از صفحه کلید باید گرفته شود. از الگوریتمهاي بازگشتی استفاده کنید.
** - 45
** - 46
** - 47
(1) (1 1) (1 1 1)
2 2 3 2 3 4
      
x1 x2 x3
1 2 3
   
x1 x2 x3
1! 2! 3!
  
x1 x3 x5
1! 3! 5!
   
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 6
48 - ** برنامه اي بنویسید که ابتدا تعداد دانشجویان یک کلاس، سپس معدلهاي تک تک آنها را گرفته و
درنهایت تعداد دانشجویانی که معدلشان بین ده و پانزده است را مشخص کند.
49 - ** برنامه اي بنویسید که تعداد نامشخصی عدد اعشاري مثبت را گرفته، با وارد شدن اولین عدد منفی
عمل ورود اعداد را خاتمه داده و میانگین اعداد مثبت وارد شده را نمایش دهد.
50 - * برنامه اي بنویسید که یک عدد اعشاري و یک عدد طبیعی را گرفته و آن عدد اعشاري را به کمک
ضربهاي متوالی به توان عدد طبیعی رسانده، حاصل را نمایش دهد.
51 - ** برنامه اي بنویسید که تمام اعداد دورقمی را که بر مجموع ارقامشان بخشپذیرند را زیر هم نمایش
دهد.
52 - *** برنامه اي بنویسید که عددي طبیعی با تعداد رقم نامشخص را گرفته، مقلوب آن را به دست آورده
و حاصلضرب آن عدد در مقلوبش را محاسبه و نمایش دهد، مثلا اگر کاربر عدد 2315 را وارد کند
چیزي که روي مونیتور باید دیده شود نتیجه حاصلضرب دو عدد 2315 و 5132 باشد.
م سري زیر را روي مونیتور n را گرفته و جمله ي (n 53 - *** برنامه اي بنویسید که عدد صحیحی(مثل
نمایش دهد، در سري زیر از جمله ي سوم به بعد هر جمله میانگین دو جمله ي قبل است:
1, 5, 3, 4, 3.5, …
54 - *** برنامه اي بنویسید که دو عدد صحیح را گرفته و به روش نردبانی بزرگترین مقسوم علیه
مشترکشان را محاسبه کند.
تا عدد اعشاري گرفته و واریانس آنها را n و سپس n 55 - *** برنامه اي بنویسید که ابتدا عدد طبیعی
محاسبه کند، فرمول واریانس مطابق زیر است:
را در مبناي ده گرفته، سپس یک عدد طبیعی زیر (x 56 - ***** برنامه اي بنویسید که عددي طبیعی( مثلا
نمایش دهد. b را در مبناي x را بعنوان مبناي جدید دریافت کند و ( b ده (مثلا
2
2
i i
v 1 x 1 x
n n
 
   
 
 
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 7
## حلقه هاي تودرتو
57 - *** برنامه اي بنویسید که جدول ضرب را نمایش دهد.
براي ترسیم هرکدام از شکلهاي زیر با کاراکتر ستاره، برنامه اي بنویسید.
*** - 58
*** - 59
*** - 60
**** - 61
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 8
62 - **** برنامه اي بنویسید که همه اعداد اول چهاررقمی را نمایش دهد.
63 - **** برنامه اي بنویسید که یک عدد طبیعی را گرفته و روش تجزیه آن به عاملهاي اولش را نمایش
دهد.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 9
## آرایه یک بعدي
64 - ** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و آنها را از آخر به اول (به ترتیب عکس ورود) زیر
هم نمایش دهد.
65 - ** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و مشخص کند چندتاي آنها از آخرین عدد وارد
شده کوچکترند.
66 - *** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و مشخص کند چندتاي آنها با میانگین اعداد
واردشده حداکثر 1 واحد فاصله دارند.
67 - ** برنامه اي بنویسید که 50 تا نمره را بگیرد و به همه ي آنها چنان بطور مساوي اضافه کند که
بالاترین نمره 20 شود. سپس نمرات را بعد از این تغییر نمایش دهد.
68 - ** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و میانگین قدرمطلق انحرافشان از میانگین را
با فرمول زیر: (a.d) محاسبه و نمایش دهد
69 - ***** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و عددي را که بیشترین بار تکرار شده است،
نمایش دهد.
70 - **** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و سپس آنها را بدون تکرار نمایش دهد.
71 - *** برنامه اي بنویسید که عددي را به مبناي 10 گرفته، معادل مبناي 2 آنرا به کمک یک آرایه به
دست آورده و نمایش دهد.
72 - *** برنامه اي بنویسید که یک عدد طبیعی با تعداد رقم نامشخص را گرفته و مشخص کند آیا آن عدد
متقارن است یا نه؟ (به عنوان مثال عدد 5491945 متقارن محسوب می شود)
73 - *** برنامه اي بنویسید که 50 عدد اعشاري را گرفته و آنها را به ترتیب از کوچک به بزرگ زیر هم
نمایش دهد؟ (مرتب سازي حبابی)
74 - *** برنامه اي بنویسید که 51 عدد اعشاري را گرفته و میانه ي آنها را به دست آورد؟ (میانه عددي
است که نیمی از داده ها از آن کوچکتر و نیمی دیگر از آن بزرگتر باشند)
i
a.d 1 x x
n
  
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 10
م n را گرفته و جمله ي (n 75 - ** به کمک آرایه برنامه اي بنویسید که یک عدد صحیح کمتر از هزار (مثل
سري زیر را روي مونیتور نمایش دهد، در سري زیر از جمله ي سوم به بعد هر جمله میانگین دو جمله ي
قبل است:
1, 5, 3, 4, 3.5, …
را در مبناي ده گرفته، سپس یک (x 76 - **** به کمک آرایه برنامه اي بنویسید که عددي طبیعی( مثلا
نمایش دهد. b را در مبناي x را بعنوان مبناي جدید دریافت کند و ( b عدد طبیعی زیر ده (مثلا
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 11
## رشته ها
77 - *** برنامه اي بنویسید که اسمهاي 50 نفر را گرفته و درپایان موارد زیر را مشخص کند:
است؟ ali - الف) چند نفر اسمشان
- ب) چند نفر اسم شش حرفی دارند؟
شروع می شوند؟ k - ج) چند تا از اسمها با حرف
78 - *** برنامه اي بنویسید که اسمهاي 50 نفر را گرفته و طولانی ترین اسم را نمایش دهد.
79 - ** برنامه اي بنویسید که رشته اي را گرفته و حرف آخرش را نمایش دهد.
80 - ** برنامه اي بنویسید که ابتدا یک رشته و سپس یک کاراکتر را گرفته و در نهایت مشخص کند
کاراکتر وارد شده چندبار در رشته تکرار شده است؟
81 - ** برنامه اي بنویسید که رشته اي را گرفته و آنرا بطور معکوس چاپ کند.
82 - ** برنامه اي بنویسید که رشته اي را گرفته و آنرا با حذف حروف صدادارش نمایش دهد.
83 - *** برنامه اي بنویسید که رشته اي را گرفته و با حذف کاراکترهاي صدادارش، رشته ي جدیدي
بسازد.
گرفته و finish 84 - *** برنامه اي بنویسید که تعداد نامشخصی رشته را تا وارد شدن رشته ي
درنهایت مشخص کند در چندتا از رشته ها عدد (کاراکتر رقمی) وجود داشته است.
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 12
## آرایه دو بعدي
85 - ** برنامه اي بنویسید که عناصر یک ماتریس 3 در 4 را گرفته و ضمن نمایش منظم آن ماتریس،
حاصلجمع کل عناصرش را نیز چاپ کند.
86 - ** برنامه اي بنویسید که عناصر یک ماتریس 3 در 4 را گرفته ترانهاده ي آن را نمایش دهد.
را n در n را بگیرد (حداکثر 10 )، سپس عناصر یک ماتریس n 87 - **** برنامه اي بنویسید که ابتدا
دریافت کرده و در نهایت موارد زیر را نمایش دهد:
- الف) حاصلجمع عناصر ستون اول
- ب)حاصلضرب عناصر سطر آخر
- ج)بزرگترین عنصر واقع در قطر اصلی ماتریس
- د)تعداد صفرهاي موجود در قطر فرعی ماتریس
- ه) تعداد عناصر منفی ماتریس
را گرفته (هرکدام حداکثر 10 هستند)، p و n و m 88 - ***** برنامه اي بنویسید که ابتدا اعداد طبیعی
را دریافت کند و درنهایت حاصلضرب دو ماتریس واردشده p در n و n در m سپس عناصر دو ماتریس
را نمایش دهد.
89 - **** فرض کنید بخواهیم وضعیت مدالهاي بین المللی یک کشور را در رشته ورزشی خاصی در
سالهاي متوالی از 1360 تا 1390 مطابق جدول زیر دریافت و پردازش کنیم:
سال تعداد مدال طلا تعداد مدال نقره تعداد مدال برنز
1360
1361
1362
.... .... .... ....
1388
برنامه اي بنویسید که ضمن دریافت داده هاي لازم (خانه هاي خالی جدول) موارد زیر را نمایش دهد:
- الف) تعداد کل مدالهاي کسب شده در همه ي سالها
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 13
- ب) تعداد کل مدالهاي طلا در همه ي سالها
- ج)شماره سالهایی که هیچ مدالی کسب نشده
- د) سالی که بیشترین تعداد مدال کسب شده
- ه) سالی که بیشترین تعداد مدال طلا کسب شده
- و) امتیاز تمام سالها به تفکیک سال، با فرض اینکه هر مدال طلا 3 امتیاز، هر نفره 2 و هر برنز 1 امتیاز
داشته باشد
- ز) تعداد سالهایی که امتیازي بیش از 10 کسب شده.
90 - *** برنامه اي بنویسید که اسمهاي 50 نفر را گرفته و در نهایت اسمهایی را که حرف اول و آخرشان
مثل هم است را نمایش دهد.
91 - *** برنامه اي بنویسید که اسمهاي 50 نفر را گرفته و آنها را به ترتیب حروف الفبا زیر هم نمایش
دهد. (مرتب سازي رشته ها)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 14
## تکمیلی
92 - *** برنامه اي بنویسید که پانصد عدد اعشاري را گرفته و درنهایت، نزدیکترین آنها به میانگین را
یافته و نمایش دهد.
93 - ***** در یک تورنمنت ژیمناستیک با شرکت 100 ورزشکار، ده داور امتیازات مد نظر خود را در
جدولی مانند شکل زیر یادداشت می کنند. ملاك انتخاب قهرمان، میانگین امتیازات داده شده توسط
داوران به هر ورزشکار است. گزارش شد که یکی از داوران از یکی از ورزشکاران رشوه گرفته تا به
قهرمان شدن او کمک کند، اما داور و ورزشکار متخلف شناسایی نشدند. با توجه به این که داور متخلف
طبعاً امتیازات پرتتري نسبت به همکارانش ثبت کرده، کمیته برگزاري تصمیم گرفت با بررسی دادهها او
را شناسایی کرده، امتیازات داده شده توسط وي را از جدول حذف نموده و درنهایت نام قهرمان واقعی و
نام ورزشکار رشوه دهنده را مشخص نماید. برنامهاي براي این کار بنویسید.
شماره پیراهن
ورزشکار
نام ورزشکار
امتیاز داده شده
توسط داور اول
امتیاز داده شده
توسط داور دوم
....
امتیاز داده شده
توسط داور
دهم
1
2
3
....
100
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 15
## پاسخها
/************** 01 *************/
#include<iostream>
using namespace std;
main()
{
double x, y;
cin >> x;
y = x * x;
cout << y << endl;
}
/************** 02 *************/
#include<iostream>
using namespace std;
main()
{
double r, s, p;
cin >> r;
s = 3.14 * r * r;
p = 2 * 3.14 * r;
cout << s << endl << p << endl;
}
/************** 03 *************/
#include<iostream>
using namespace std;
main()
{
double a, b, s, p;
cin >> a >> b;
p = 2 * (a + b);
s = a * b;
cout << s << endl << p << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 16
/************** 04 *************/
#include<iostream>
using namespace std;
main()
{
int a, b, c;
double m;
cin >> a >> b >> c;
m = (a + b + c) / 3.0;
cout << m << endl;
}
/************** 05 *************/
#include<iostream>
using namespace std;
main()
{
char x;
cin >> x;
cout << x << endl;
}
/************** 06 *************/
#include<iostream>
using namespace std;
main()
{
int x;
cin >> x;
if(x % 2 == 0)
cout << "zoj ast" << endl;
else
cout << "fard ast" << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 17
/************** 07 *************/
#include<iostream>
using namespace std;
main()
{
double a, b, c;
cin >> a >> b >> c;
if(a == b && a == c)
cout << "motasviol azla" << endl;
else
if(a == b || a == c || b == c)
cout << "motasaviossagheyn" << endl;
else
cout << "mokhtalefol azla" << endl;
}
/************** 08 *************/
#include<iostream>
using namespace std;
main()
{
double a, b, c, m;
cin >> a >> b >> c;
if(a*a == b*b + c*c)
m = b * c / 2;
else
if(b*b == a*a + c*c)
m = a * c / 2;
else
if(c*c == a*a + b*b)
m = a * b / 2;
else
m = a + b + c;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 18
cout << m << endl;
}
/************** 09 *************/
#include<iostream>
using namespace std;
main()
{
double a, b, c;
cin >> a >> b >> c;
if(a > b && a > c)
cout << a << endl;
else
if(b > c)
cout << b << endl;
else
cout << c << endl;
}
/************** 10 *************/
#include<iostream>
using namespace std;
main()
{
int m;
cin >> m;
if(m >= 1 && m <= 6)
cout << "31 rooz" << endl;
else
if(m >= 7 && m <= 11)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 19
cout << "30 rooz" << endl;
else
if(m == 12)
cout << "29 rooz" << endl;
else
cout << "eshtebah" << endl;
}
/************** 10, raveshe digar ********/
#include<iostream>
using namespace std;
main()
{
int m;
cin >> m;
switch(m)
{
case 1: case 2: case 3:
case 4: case 5: case 6:
cout << "31 rooz" << endl;
break;
case 7: case 8: case 9:
case 10: case 11:
cout << "30 rooz" << endl;
break;
case 12:
cout << "29 rooz" << endl;
break;
default:
cout << "eshtebah" << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 20
/************** 11 *************/
#include<iostream>
using namespace std;
main()
{
char x;
cin >> x;
if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u'||x=='y'
||x=='A'||x=='E'||x=='I'||x=='O'||x=='U'||x=='Y')
cout << "harfe seda dar" << endl;
else
if(x >= 'a' && x <= 'z' || x >= 'A' && x <= 'Z')
cout << "harfe bi seda" << endl;
else
if(x>= '0' && x <= '9')
cout << "ragham" << endl;
else
cout << "sayer" << endl;
}
/************** 12 *************/
#include<iostream>
#include<math.h>
using namespace std;
main()
{
double a, b, c, delta, x1, x2;
cin >> a >> b >> c;
delta = b * b - 4 * a * c;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 21
if(delta > 0)
{
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
cout << "2ta rishe darad: " << x1 << ", " << x2
<< endl;
}
else
if(delta == 0)
{
x1 = -b / (2 * a);
cout << "yek rishe darad: " << x1 << endl;
}
else
cout << "rishe nadarad" << endl;
}
/************** 13 *************/
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 1; i <= 100; i++)
cout << i << endl;
}
/************** 14 *************/
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 100; i <= 999; i++)
cout << i << endl;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 22
}
/************** 15 *************/
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 101; i <= 999; i += 2)
cout << i << endl;
}
/************** 16 *************/
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 100; i <= 999; i += 2)
cout << i << endl;
}
/************** 17 *************/
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 999; i > 100; i -= 2)
cout << i << endl;
}
/************** 18 *************/
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 23
#include<iostream>
using namespace std;
main()
{
int i;
for(i = 1000; i <= 9999; i++)
if(i % 7 == 0 && i % 3 != 0)
cout << i << endl;
}
/************** 19 *************/
#include<iostream>
using namespace std;
main()
{
int i, x;
cin >> x;
for(i = 1; i <= x; i++)
cout << i << endl;
}
/************** 20 *************/
#include<iostream>
using namespace std;
main()
{
int i, x;
cin >> x;
for(i = 1; i <= x; i++)
if(x % i == 0)
cout << i << endl;
}
/************** 21 *************/
#include<iostream>
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 24
using namespace std;
main()
{
int i, x, n = 0;
cin >> x;
for(i = 1; i <= x; i++)
if(x % i == 0)
n++;
cout << n << endl;
}
/************** 22 *************/
#include<iostream>
using namespace std;
main()
{
int i, x, n = 0;
cin >> x;
for(i = 1; i <= x; i++)
if(x % i == 0)
n++;
if(n == 2)
cout << "avval ast" << endl;
else
cout << "avval nist" << endl;
}
/************** 23 *************/
#include<iostream>
using namespace std;
main()
{
int i, x, y;
cin >> x >> y;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 25
for(i = 1; i <= x; i++)
if(x % i == 0 && y % i == 0)
cout << i << endl;
}
/************** 24 *************/
#include<iostream>
using namespace std;
main()
{
int i, x, y;
cin >> x >> y;
for(i = x; i > 0; i--)
if(x % i == 0 && y % i == 0)
break;
cout << i << endl;
}
/************** 25 *************/
#include<iostream>
using namespace std;
main()
{
int i, x, y;
cin >> x >> y;
for(i = x; i % y != 0; i += x)
;
cout << i << endl;
}
/************** 26 *************/
#include<iostream>
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 26
using namespace std;
main()
{
int i, x;
cin >> x;
for(i = 0; x > 0; i++)
x /= 10;
cout << i << endl;
}
/************** 27 *************/
#include<iostream>
using namespace std;
main()
{
int i, x, m = 0;
cin >> x;
for(i = 0; x > 0; i++)
{
m += x % 10;
x /= 10;
}
cout << m << endl;
}
/************** 28 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i;
for(i = 0; i < 100; i++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 27
{
cin >> x;
m += x;
}
cout << m << endl;
}
/************** 29 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 1;
int i;
for(i = 0; i < 100; i++)
{
cin >> x;
m *= x;
}
cout << m << endl;
}
/************** 30 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i;
for(i = 0; i < 100; i++)
{
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 28
cin >> x;
m += x;
}
cout << (m / 100) << endl;
}
/************** 31 *************/
#include<iostream>
using namespace std;
main()
{
double x;
int i, n = 0;
for(i = 0; i < 100; i++)
{
cin >> x;
if(x > 0)
n++;
}
cout << n << endl;
}
/************** 32 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i;
for(i = 0; i < 100; i++)
{
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 29
cin >> x;
if(x > 0)
m += x;
}
cout << m << endl;
}
/************** 33 *************/
#include<iostream>
using namespace std;
main()
{
double x, m1 = 0, m2 = 0;
int i, n1 = 0, n2 = 0;
for(i = 0; i < 100; i++)
{
cin >> x;
if(x > 0)
{
m1 += x;
n1++;
}
else
{
m2 += x;
n2++;
}
}
cout << (m1 / n1) << endl << (m2 / n2) << endl;
}
/************** 34 *************/
#include<iostream>
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 30
using namespace std;
main()
{
int x, i, f = 1;
cin >> x;
for(i = 1; i <= x; i++)
f *= i;
cout << f << endl;
}
/************** 35 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i;
for(i = 0; i < 100; i++)
{
cin >> x;
if(x > m)
m = x;
}
cout << m << endl;
}
/************** 36 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 20;
int i;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 31
for(i = 0; i < 100; i++)
{
cin >> x;
if(x < m)
m = x;
}
cout << m << endl;
}
/************** 37 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i;
for(i = 0; i < 100; i++)
{
cin >> x;
if(x < 12 && x > m)
m = x;
}
cout << m << endl;
}
/************** 38 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 0;
int i, n = 0;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 32
for(i = 0; i < 100; i++)
{
cin >> x;
if(x > 15)
{
m += x;
n++;
}
}
cout << (m / n) << endl;
}
/************** 39 *************/
#include<iostream>
using namespace std;
main()
{
double x, m1 = 0, m2 = 0;
int i;
for(i = 0; i < 100; i++)
{
cin >> x;
if(x >= m1)
{
m2 = m1;
m1 = x;
}
else
if(x >= m2)
m2 = x;
}
cout << m2 << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 33
/************** 40 *************/
#include<iostream>
using namespace std;
main()
{
double m = 0;
int i;
for(i = 1; i <= 1000; i++)
m += 1.0 / i;
cout << m << endl;
}
/************** 41 *************/
#include<iostream>
using namespace std;
main()
{
double m = 0;
int i;
for(i = 1; i <= 1000; i++)
if(i % 2 == 1)
m += 1.0 / i;
else
m -= 1.0 / i;
cout << m << endl;
}
/************** 41, raveshe digar ********/
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 34
#include<iostream>
using namespace std;
main()
{
double m = 0, a = 1;
int i;
for(i = 1; i <= 1000; i++, a = -a)
m += a / i;
cout << m << endl;
}
/************** 42 *************/
#include<iostream>
using namespace std;
main()
{
double m = 1;
int i;
for(i = 1; i < 100; i += 2)
m *= i / (i + 1.0);
cout << m << endl;
}
/************** 43 *************/
#include<iostream>
using namespace std;
main()
{
double m = 0;
int i;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 35
for(i = 1; i < 100; i += 2)
m += i * (i + 1.0) / (i + i + 1.0);
cout << m << endl;
}
/************** 44 *************/
#include<iostream>
using namespace std;
main()
{
double t = 1, m = 0, a = 1.0;
int i;
for(i = 2; t >= 1e-4; i++)
{
t *= 1.0 / i;
m += a * t;
a = -a;
}
cout << m << endl;
}
/************** 45 *************/
#include<iostream>
using namespace std;
main()
{
double x, t = 1, m = 0, a = 1.0;
int i;
cin >> x;
for(i = 1; t / i >= 1e-4; i++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 36
{
t *= x;
m += a * t / i;
a = -a;
}
cout << m << endl;
}
/************** 46 *************/
#include<iostream>
#include<math.h>
using namespace std;
main()
{
double x, t = 1, m = 0;
int i;
cin >> x;
for(i = 1; fabs(t) >= 1e-4; i++)
{
t *= x / i;
m += t;
}
cout << m << endl;
}
/************** 47 *************/
#include<iostream>
using namespace std;
main()
{
double x, t = 1, m = 0, a = -1;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 37
int i;
cin >> x;
m = t = x;
for(i = 2; t >= 1e-4; i += 2)
{
t *= x * x / (i * (i + 1));
m += a * t;
a = -a;
}
cout << m << endl;
}
/************** 48 *************/
#include<iostream>
using namespace std;
main()
{
int i, n = 0;
double x;
cin >> n;
for(i = 0; i < n; i++)
{
cin >> x;
if(x > 10 && x < 15)
n++;
}
cout << n << endl;
}
/************** 49 *************/
#include<iostream>
using namespace std;
main()
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 38
{
int n;
double x, m = 0;
for(n = 0; ; n++)
{
cin >> x;
if(x < 0)
break;
m += x;
}
cout << (m / n) << endl;
}
/************** 50 *************/
#include<iostream>
using namespace std;
main()
{
double x, m = 1;
int n, i;
cin >> x >> n;
for(i = 0; i < n; i++)
m *= x;
cout << m << endl;
}
/************** 51 *************/
#include<iostream>
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 39
using namespace std;
main()
{
int i, y, d;
for(i = 10; i <= 99; i++)
{
y = i % 10;
d = i / 10;
if(i % (y + d) == 0)
cout << i << endl;
}
}
/************** 52 *************/
#include<iostream>
using namespace std;
main()
{
int x, y, m = 0;
cin >> x;
y = x;
for(; y > 0; y /= 10)
m = m * 10 + y % 10;
cout << (x * m) << endl;
}
/************** 53 *************/
#include<iostream>
using namespace std;
main()
{
int n, i;
double a = 1, b = 5, c;
cin >> n;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 40
if(n == 1)
cout << a << endl;
else
if(n == 2)
cout << b << endl;
else
{
for(i = 2; i < n; i++)
{
c = (a + b) / 2;
a = b;
b = c;
}
cout << c << endl;
}
}
/************** 54 *************/
#include<iostream>
using namespace std;
main()
{
int a, b, c;
cin >> a >> b;
while(b > 0)
{
c = a % b;
a = b;
b = c;
}
cout << a << endl;
}
/************** 55 *************/
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 41
#include<iostream>
using namespace std;
main()
{
int n, i;
double x, sumx = 0, sumx2 = 0, v;
cin >> n;
for(i = 0; i < n; i++)
{
cin >> x;
sumx += x;
sumx2 += x * x;
}
v = sumx2 / n - (sumx / n) * (sumx / n);
cout << v << endl;
}
/************** 56 *************/
#include<iostream>
using namespace std;
main()
{
int x, b, d = 1, y = 0;
cin >> x >> b;
for(; x > 0; x /= b)
{
y += (x % b ) * d;
d *= 10;
}
cout << y << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 42
/************** 57 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
for(i = 1; i <= 10; i++)
{
for(j = 1; j <= 10; j++)
cout << (i * j) << " ";
cout << endl << endl;
}
}
/************** 58 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
for(i = 20; i > 0; i--)
{
for(j = 0; j < i; j++)
cout << "*";
cout << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 43
/************** 59 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
for(i = 20; i >= 0; i--)
{
for(j = 0; j < i; j++)
cout << " " << endl;
cout << "**************" << endl;
}
}
/************** 60 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
for(i = 1; i <= 20; i++)
{
for(j = 0; j < 20; j++)
cout << " ";
for(j = 0; j < i; j++)
cout << "*";
cout << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 44
/************** 61 *************/
#include<iostream>
using namespace std;
main()
{
int i, j, s;
for(i = 20, s = 1; i >=0; i--, s += 2)
{
for(j = 0; j < i; j++)
cout << " ";
for(j = 0; j < s; j++)
cout << "*";
cout << endl;
}
}
/************** 62 *************/
#include<iostream>
using namespace std;
main()
{
int i, j, n;
for(i = 1000; i <= 9999; i++)
{
n = 0;
for(j = 1; j <= i; j++)
if(i % j == 0)
n++;
if(n == 2)
cout << i << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 45
/************** 63 *************/
#include<iostream>
using namespace std;
main()
{
int x, i, p;
cin >> x;
for(i = 2; i <= x; i++)
{
for(p = 0; x % i == 0; p++)
x /= i;
if(p > 0)
cout << i << " ^ " << p << endl;
}
}
/************** 64 *************/
#include<iostream>
using namespace std;
main()
{
double x[50];
int i;
for(i = 0; i < 50; i++)
cin >> x[i];
for(i = 49; i >= 0; i--)
cout << x[i] << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 46
/************** 65 *************/
#include<iostream>
using namespace std;
main()
{
double x[50];
int i, n = 0;
for(i = 0; i < 50; i++)
cin >> x[i];
for(i = 0; i < 50; i++)
if(x[i] < x[49])
n++;
cout << n << endl;
}
/************** 66 *************/
#include<iostream>
using namespace std;
main()
{
double x[50], m = 0, a, d;
int i, n = 0;
for(i = 0; i < 50; i++)
{
cin >> x[i];
m += x[i];
}
a = m / 50;
for(i = 0; i < 50; i++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 47
{
d = x[i] - a;
if(d < 0)
d = -d;
if(d <= 1)
n++;
}
cout << n << endl;
}
/************** 67 *************/
#include<iostream>
using namespace std;
main()
{
double x[50], m = 0, d;
int i;
for(i = 0; i < 50; i++)
{
cin >> x[i];
if(x[i] > m)
m = x[i];
}
d = 20 - m;
for(i = 0; i < 50; i++)
{
x[i] += d;
cout << x[i] << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 48
/************** 68 *************/
#include<iostream>
using namespace std;
main()
{
double x[50], m = 0, a, d, adm = 0, ad;
int i;
for(i = 0; i < 50; i++)
{
cin >> x[i];
m += x[i];
}
a = m / 50;
for(i = 0; i < 50; i++)
{
d = x[i] - a;
if(d < 0)
d = -d;
adm += d;
}
ad = adm / 50;
cout << ad << endl;
}
/************** 69 *************/
#include<iostream>
using namespace std;
main()
{
double x[50] = {0}, a, mx;
int n[50] = {0}, i, nf = 0, maxf = 0, j;
for(i = 0; i < 50; i++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 49
{
cin >> a;
for(j = 0; j < nf; j++)
if(x[j] == a)
{
n[j]++;
break;
}
if(j == nf)
{
x[nf] = a;
n[nf]++;
nf++;
}
}
for(i = 0; i < 50; i++)
if(n[i] > maxf)
{
maxf = n[i];
mx = x[i];
}
cout << mx << endl;
}
/************** 70 *************/
using namespace std;
main()
{
double x[50], a;
int i, nf = 0, j;
for(i = 0; i < 15; i++)
{
cin >> a;
for(j = 0; j < nf; j++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 50
if(x[j] == a)
break;
if(j == nf)
{
x[nf] = a;
nf ++;
}
}
for(i = 0; i < nf; i++)
cout << x[i] << endl;
}
/************** 71 *************/
#include<iostream>
using namespace std;
main()
{
int a[50] = {0};
int x, i;
cin >> x;
for(i = 0; x > 0; i++)
{
a[i] = x % 2;
x /= 2;
}
for(i = 49; a[i] == 0 && i >= 0; i--)
;
for(; i >= 0; i--)
cout << a[i];
cout << endl;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 51
}
/************** 72 *************/
#include<iostream>
using namespace std;
main()
{
int a[50];
int x, i, j;
cin >> x;
for(i = 0; x > 0; i++)
{
a[i] = x % 10;
x /= 10;
}
i--;
for(j = 0; j < i; j++, i--)
if(a[i] != a[j])
break;
if(j >= i)
cout << "motagharen ast" << endl;
else
cout << "motagharen nist" << endl;
}
/************** 73 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 52
double x[50], t;
for(i = 0; i < 50; i++)
cin >> x[i];
for(i = 49; i > 0; i--)
for(j = 0; j < i; j++)
if(x[j] > x[j + 1])
{
t = x[j];
x[j] = x[j + 1];
x[j + 1] = t;
}
for(i = 0; i < 50; i++)
cout << x[i] << endl;
}
/************** 74 *************/
#include<iostream>
using namespace std;
main()
{
int i, j;
double x[50], t;
for(i = 0; i < 50; i++)
cin >> x[i];
for(i = 49; i > 0; i--)
for(j = 0; j < i; j++)
if(x[j] > x[j+1])
{
t = x[j];
x[j] = x[j+1];
x[j+1] = t;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 53
cout << x[25] << endl;
}
/************** 75 *************/
#include<iostream>
using namespace std;
main()
{
double x[1000];
int i, n;
cin >> n;
x[1] = 1;
x[2] = 5;
for(i = 3; i <= n; i++)
x[i] = (x[i-1] + x[i-2]) / 2;
cout << x[n] << endl;
}
/************** 76 *************/
#include<iostream>
using namespace std;
main()
{
int a[50] = {0};
int x, b, i;
cin >> x >> b;
for(i = 0; x > 0; i++)
{
a[i] = x % b;
x /= b;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 54
for(i = 49; a[i] == 0 && i >= 0; i--)
;
for(; i >= 0; i--)
cout << a[i];
cout << endl;
}
/************** 77 *************/
#include<iostream>
using namespace std;
main()
{
string p;
int i, n1 = 0, n2 = 0, n3 = 0;
for(i = 0; i < 50; i++)
{
cin >> p;
if(p == "ali")
n1++;
if(p.length() == 6)
n2++;
if(p[0] == 'k')
n3++;
}
cout << n1 << endl << n2 << endl << n3 << endl;
}
/************** 78 *************/
#include<iostream>
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 55
using namespace std;
main()
{
string p, t;
int i, n = 0;
for(i = 0; i < 50; i++)
{
cin >> p;
if(p.length() > n)
{
n = p.length();
t = p;
}
}
cout << t << endl;
}
/************** 79 *************/
#include<iostream>
using namespace std;
main()
{
string p;
cin >> p;
cout << p[p.length() - 1] << endl;
}
/************** 80 *************/
#include<iostream>
using namespace std;
main()
{
char c;
string p;
int i, n=0;
cin >> p >> c;
for(i=0; i < p.length(); i++)
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 56
if(p[i] == c)
n++;
cout << n << endl;
}
/************** 81 *************/
#include<iostream>
using namespace std;
main()
{
string p;
int i;
cin >> p;
for(i=p.length()-1; i>=0; i--)
cout << p[i];
cout << endl;
}
/************** 82 *************/
#include<iostream>
using namespace std;
main()
{
string p;
int i;
cin >> p;
for(i = 0; i < p.length(); i++)
if(p[i] != 'a' && p[i] != 'e' && p[i] != 'i' &&
p[i] != 'o' && p[i] != 'y')
cout << p[i];
cout << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 57
/************** 83 *************/
#include<iostream>
using namespace std;
main()
{
string p, q;
int i;
cin >> p;
for(i = 0; i<p.length(); i++)
if(p[i] != 'a' && p[i] != 'e' && p[i] != 'i'
&& p[i] != 'o' && p[i] != 'y')
q += p[i];
}
/************** 84 *************/
#include<iostream>
using namespace std;
main()
{
string p;
int n = 0, i, has;
for(;;)
{
cin >> p;
if(p == "finish")
break;
has = 0;
for(i = 0; i<p.length(); i++)
if(p[i] >= '0' && p[i] <= '9')
{
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 58
has = 1;
break;
}
if(has == 1)
n++;
}
cout << n << endl;
}
/************** 85 *************/
#include<iostream>
using namespace std;
main()
{
double x[3][4], m = 0;
int i, j;
for(i = 0; i < 3; i++)
for(j = 0; j < 4; j++)
{
cin >> x[i][j];
m += x[i][j];
}
cout << m << endl;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
cout << x[i][j] << " ";
cout << endl;
}
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 59
/************** 86 *************/
#include<iostream>
using namespace std;
main()
{
double x[3][4];
int i, j;
for(i = 0; i < 3; i++)
for(j = 0; j < 4; j++)
cin >> x[i][j];
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
cout << x[j][i] << " ";
cout << endl;
}
}
/************** 87 *************/
#include<iostream>
using namespace std;
main()
{
double x[10][10], a = 0, b = 1, c;
int n, i, j, d = 0, e = 0;
cin >> n;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
cin >> x[i][j];
if(x[i][j]<0)
e++;
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 60
}
c = x[0][0];
for(i = 0; i < n; i++)
{
a += x[i][0];
b *= x[n-1][i];
if(x[i][i] > c)
c = x[i][i];
if(x[i][n-1-i] == 0)
d++;
}
cout << a << " " << b << " " << c << " " << d
<< " " << e << endl;
}
/************** 88 *************/
#include<iostream>
using namespace std;
main()
{
double a[10][10], b[10][10], c[10][10] = {0};
int i, j, k, m, n, p;
cin >> m >> n >> p;
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
cin >> a[i][j];
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 61
for(i = 0; i < n; i++)
for(j = 0; j < p; j++)
cin >> b[i][j];
for(i = 0; i < m; i++)
for(j = 0; j < p; j++)
for(k = 0; k < n; k++)
c[i][j] += a[i][k] * b[k][j];
for(i = 0; i < m; i++)
{
for(j = 0; j < p; j++)
cout << c[j][i] << " ";
cout << endl;
}
}
/************** 89 *************/
#include<iostream>
using namespace std;
main()
{
int x[29][3], i, j, n1 = 0, n2 = 0, n4 = 0, n5 = 0, n7 =
0;
int maxg = 0, maxm = 0, m;
for(i = 0; i < 29; i++)
{
m = 0;
cout << "tedade tala,noghre va boronze sale " <<
(1360 + i) << " ? " << endl;
for(j = 0; j < 3; j++)
{
cin >> x[i][j];
m += x[i][j];
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 62
}
n1 += m;
n2 += x[i][0];
if(x[i][0] * 3 + x[i][1] * 2 + x[i][2] > 10)
n7++;
if(m > maxm)
{
maxm = m;
n4 = i + 1360;
}
if(x[i][0] > maxg)
{
maxg = x[i][0];
n5 = i + 1360;
}
}
cout << "--------- answer (1) -----" << endl;
cout << n1 << endl;
cout << "--------- answer (2) -----" << endl;
cout << n2 << endl;
cout << "--------- answer (3) -----" << endl;
for(i = 0; i < 29; i++)
if(x[i][0] + x[i][1] + x[i][2] == 0)
cout << (1360 + i) << endl;
cout << "--------- answer (4) -----" << endl;
cout << n4 << endl;
cout << "--------- answer (5) -----" << endl;
cout << n5 << endl;
cout << "--------- answer (6) -----" << endl;
for(i = 0; i < 29; i++)
cout << "sal " << (1360 + i) <<
": poan= " << (x[i][0] * 3 + x[i][1] * 2 + x[i][2])
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 63
<< endl;
cout << "--------- answer (7) -----" << endl;
cout << n7 << endl;
}
/************** 90 *************/
#include<iostream>
using namespace std;
main()
{
string p[50];
int i;
for(i = 0; i < 50; i++)
cin >> p[i];
for(i = 0; i < 50; i++)
if(p[i][0] == p[i][p[i].length() - 1])
cout << p[i] << endl;
}
/************** 91 *************/
#include<iostream>
using namespace std;
main()
{
string p[50], t;
int i, j;
for(i = 0; i < 50; i++)
cin >> p[i];
for(i = 49; i > 0; i--)
for(j = 0; j < i; j++)
if(p[j] > p[j + 1])
{
t = p[j];
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 64
p[j] = p[j + 1];
p[j + 1] = t;
}
for(i = 0; i < 50; i++)
cout << p[i] << endl;
}
/************** 92 *************/
#include<iostream>
#include<math.h>
using namespace std;
main()
{
double x[100], a, sum = 0, mindiff, y;
int i;
for(i = 0; i < 100; i++)
{
cin >> x[i];
sum += x[i];
}
a = sum / 100;
mindiff = fabs(x[0] - a);
y = x[0];
for(i = 1; i < 100; i++)
if(fabs(x[i] - a) < mindiff)
{
mindiff = fabs(x[i] - a);
y = x[i];
}
cout << y << endl;
}
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 65
/************** 93 *************/
#include<iostream>
#include<math.h>
using namespace std;
main()
{
double scores[100][10], err[10] = {0}, m, maxscore = 0;
string names[100];
int i, j, k, b, c;
for(i = 0; i < 100; i++)
{
cout << "Enter name and scores of sportman # "
<< (i + 1) << endl;
cin >> names[i];
for(j = 0; j < 10; j++)
cin >> scores[i][j];
}
for(i = 0; i < 100; i++)
{
m = 0;
for(j = 0; j < 10; j++)
m += scores[i][j] / 10;
for(j = 0; j < 10; j++)
err[j] += fabs(scores[i][j] - m);
}
k = 0;
for(j = 1; j < 10; j++)
if(err[j] > err[k])
k = j;
for(i = 0; i < 100; i++)
{
نمونه سؤالات حل شده برنامه نویسی به زبان سی پلاس پلاس (گنجی) – صفحه 66
m = 0;
for(j = 0; j < 10; j++)
{
if(j == k)
continue;
m += scores[i][j];
}
if(m > maxscore)
{
maxscore = m;
b = i;
}
}
maxscore = 0;
for(i = 0; i < 100; i++)
if(scores[i][k] > maxscore)
{
maxscore = scores[i][k];
c = i;
}
cout << "Briber is " << names[c] << endl;
cout << "Winner is " << names << endl;
}
C++ نمونه توابع تعريف شده به زبان
C++ نمونه توابع تعريف شده به زبان
نام تابع
خط شروع
تعريف وظيفه
7 ميانگين دو عدد اعشاري داده شده را برمي گرداند average
12 ميانگين سه عدد اعشاري داده شده را برمي گرداند average
17 istriangle
طول اضلاع مثلث را گرفته و درست بودن يا نبودن مثلث را
نتيجه مي دهد
22 max
بزرگترين مقدار از بين سه عدد اعشاري داده شده را
برمي گرداند
33 isletter
كاراكتري را گرفته و مشخص مي كند جزو حروف الفباي
انگليسي هست يا نه
38 countchars
تعداد دفعات تكرار شدن كاراكتر داده شده را در رشته داده
شده برمي گرداند
49 rms
جذر مربعات يك، دو، سه يا چهار عدد داده شده را
برمي گرداند
54 rms
يك آرايه از اعداد اعشاري و تعداد عناصر آن آرايه را مي گيرد
و جذر مربعات اعضاي آرايه را برمي گرداند
63 parallel
مقاومت الكتريكي معادل دو، سه يا چهار مقاومت داده شده را
برمي گرداند
76 chainprint
رشته داده شده را به تعداد دفعه داده شده پشت سر هم چاپ
مي كند
82 printv
را با استفاده (▼) شكلي شبيه مثلث ،chainprint به كمك تابع
از رشته داده شده و با طول قاعده داده شده، ايجاد كرده و
نمايش مي دهد
92 fctsum1
حاصلجمع ناقص مقسوم عليه هاي عدد صحيح داده شده را
برمي گرداند (يعني حاصلجمع مقسوم عليه هاي عدد بجز خود
عدد)
103 fctsum
را با تعداد دفعات تكرار كمتر انجام fctsum همان كار تابع 1
مي دهد
117 isperfect
مشخص مي كند fctsum عدد صحيحي را گرفته و به كمك تابع
آيا عدد داده شده كامل هست يا نه (عدد كامل عددي است كه
با حاصلجمع ناقص مقسوم عليه هاي خودش مساوي باشد)
C++ نمونه توابع تعريف شده به زبان
122 findfriends
اعداد دوست موجود در بازه داده شده fctsum به كمك تابع
را چاپ مي كند (دو عدد درصورتي با هم (max و min (بين
دوست هستند كه هركدام با مجموع ناقص مقسوم عليه هاي
ديگري مساوي باشد)
132 isprime
مشخص مي كند fctsum عدد صحيحي را گرفته و به كمك تابع
اول است يا نه (عدد اول است اگر و تنها اگر مجموع ناقص
مقسوم عليه هاي آن برابر با يك باشد)
137 allprimes
تمام اعداد اول كوچكتر از يك مقدار isprime به كمك تابع
را چاپ مي كند (max) مشخص
144 issorted
عدد صحيحي را گرفته و مشخص مي كند آيا رقمهايش اكيداً
صعودي هستند يا نه (به عنوان مثال عدد 1367 و 679 اكيداً
صعودي هستند ولي اعداد 3487 و 2334 نه)
157 digit
كاراكتري را گرفته و با فرض آن كه آن كاراكتر، يك رقم
دسيمال يا هگزادسيمال باشد، معادل عددي آن را برمي گرداند
168 عدد صحيح را گرفته و فاكتوريل آن را برمي گرداند fact
را به صورت بازگشتي انجام مي دهد fact 178 كار تابع fact2
186 bmm
بزرگترين مقسوم عليه مشترك دو عدد صحيح داده شده را
برمي گرداند
195 bmm2
را به روش بازگشتي انجام مي دهد (روش bmm كار تابع
نردباني)
203 fibo
م دنباله فيبوناتچي را به شكل n را گرفته و جمله n عدد صحيح
بازگشتي محاسبه كرده و برمي گرداند (دو جمله اول اين دنباله
برابر يك بوده و هركدام از ساير جملات آن، برابر حاصلجمع دو
(1-1 -2-3-5 -8 -13 - جمله قبل است: ... - 21
211 atrange
نام يك آرايه اعشاري، تعداد عناصر آن و نيز دو عدد اعشاري
را به عنوان حد پايين و حد بالا گرفته و تعداد عناصري از آرايه
كه مقداري بين اين دو حد دارند برمي گرداند
221 مقادير دو متغير اعشاري داده شده را با هم جابجا مي كند xchange
228 sort
دو متغير اعشاري را گرفته و مقادير آن دو را با توجه با پارامتر
مرتب مي كند. پارامتر xchange ورودي سوم و به كمك تابع
سوم صعودي بودن يا نبودن نحوه مرتب سازي را بيان مي كند.
C++ نمونه توابع تعريف شده به زبان
234 sort
sort با الگوگيري از الگوريتم مرتب سازي حبابي و به كمك تابع
قبل، يك آرايه داده شده از اعداد اعشاري را با تعداد عناصر
داده شده و به شكل داده شده (صعودي يا نزولي) مرتب
مي كند
241 allsame
نام يك آرايه و تعداد عناصر آن را گرفته و اگر همه عناصر آن
را برمي گرداند false والا ،true با هم مساوي هستند
250 char2str
كاراكتري را گرفته و آن را درقالب يك رشته تك كاراكتري
برمي گرداند
256 insertchar
يك كاراكتر و يك متغير رشته اي را گرفته و به كمك تابع
آن كاراكتر را به ابتداي متغير رشته اي اضافه مي كند char2str
261 آخرين حرف رشته داده شده را برمي گرداند lastchar
266 changebaseto10
رشته حاوي نمايش يك عدد و مبناي آن را گرفته و تبديل
شده آن عدد به مبناي ده را برمي گرداند
275 changebasefrom10
عدد صحيح داده شده را به مبناي داده شده مي برد و حاصل را
درقالب يك رشته برمي گرداند
288 changebase
رشته حاوي رقمهاي يك عدد، مبناي اول و مبناي دوم را گرفته
و حاصل تبديل عدد داده شده از مبناي اول به مبناي دوم را
و changebaseto درقالب يك رشته برمي گرداند. (از دو تابع 10
براي اين هدف بهره مي گيرد) changebasefrom10
294 int2str
عدد صحيح داده شده را به رشته insertchar به كمك تابع
تبديل كرده و برمي گرداند
318 ipow
به كمك ضربهاي مكرر، حاصل عدد اعشاري داده شده به توان
عدد صحيح داده شده برمي گرداند
را با كمترين دفعات تكرار انجام مي دهد ipow 335 كار تابع ipow2
1 //------------------ C++ Functions Samples -------------
2 //------------------ By: Jabbar Ganji ------------------
3 #include <iostream>
4 #include <math.h>
5 using namespace std;
6
7 double average(double a, double b)
8 {
9 return (a + b) / 2;
10 }
11
12 double average(double a, double b, double c)
13 {
14 return (a + b + c) / 3;
15 }
16
17 bool istriangle(double a, double b, double c)
18 {
19 return a > 0 && b > 0 && c > 0 && a + b > c && a + c > b
&& b + c > a;
20 }
21
22 bool max(double a, double b, double c)
23 {
24 if(a >= b && a >= c)
25 return a;
26
27 if(b >= c)
28 return b;
29
30 return c;
31 }
32
33 bool isletter(char c)
34 {
35 return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
36 }
37
38 int countchars(string s, char c)
39 {
40 int n = 0, len = s.length();
41 for(unsigned i = 0; i < len; i++)
42 if(s[i] == c)
43 n++;
44
C++ Function Samples page 1 By: Jabbar Ganji
45 return n;
46 }
47
48
49 double rms(double a, double b = 0, double c = 0, double d = 0)
50 {
51 return sqrt(a * a + b * b + c * c + d * d);
52 }
53
54 double rms(double x[], int n)
55 {
56 double r = 0;
57 for(int i = 0; i < n; i++)
58 r += x[i] * x[i];
59
60 return sqrt(r);
61 }
62
63 double parallel(double R1, double R2, double R3 = 0, double
R4 = 0)
64 {
65 double a = 1.0 / R1 + 1.0 / R2;
66
67 if(R3 != 0)
68 a += 1.0 / R3;
69
70 if(R4 != 0)
71 a += 1.0 / R4;
72
73 return 1.0 / a;
74 }
75
76 void chainprint(string s, int n = 1)
77 {
78 for(int i = 0; i < n; i++)
79 cout << s;
80 }
81
82 void printv(string marker = "*", int n = 21)
83 {
84 for(int i = 0; n > 0; n -= 2, i ++)
85 {
86 chainprint(" ", i);
87 chainprint(marker, n);
88 chainprint("\n", 1);
C++ Function Samples page 2 By: Jabbar Ganji
89 }
90 }
91
92 int fctsum1(int x)
93 {
94 int s = 0;
95
96 for(int i = 1; i < x; i++)
97 if(x % i == 0)
98 s += i;
99
100 return s;
101 }
102
103 int fctsum(int x)
104 {
105 int sqx = (int) sqrt(x - 1.0), s = 1, i;
106
107 for(i = 2; i <= sqx; i++)
108 if(x % i == 0)
109 s += i + x / i;
110
111 if(i * i == x)
112 s += i;
113
114 return s;
115 }
116
117 bool isperfect(int x)
118 {
119 return x == fctsum(x);
120 }
121
122 void findfriends(int min = 2, int max = 1000000)
123 {
124 for(int i = min; i <= max; i++)
125 {
126 int j = fctsum(i);
127 if(j >= i && fctsum(j) == i)
128 cout << i << " , " << j << endl;
129 }
130 }
131
132 bool isprime(int x)
133 {
C++ Function Samples page 3 By: Jabbar Ganji
134 return fctsum(x) == 1;
135 }
136
137 void allprimes(int max)
138 {
139 for(int i = 2; i <= max; i++)
140 if(isprime(i))
141 cout << i << endl;
142 }
143
144 bool issorted(int x)
145 {
146 int d = 10;
147 for(; x > 0; x /= 10)
148 {
149 if(x % 10 >= d)
150 return false;
151
152 d = x % 10;
153 }
154 return true;
155 }
156
157 unsigned digit(char c)
158 {
159 if(c >= 'a')
160 return 10 + c - 'a';
161
162 if(c >= 'A')
163 return 10 + c - 'A';
164
165 return c - '0';
166 }
167
168 unsigned long fact(unsigned x)
169 {
170 unsigned long f = 1;
171
172 for(unsigned i = 2; i <= x; i++)
173 f *= i;
174
175 return f;
176 }
177
178 unsigned fact2(unsigned x)
C++ Function Samples page 4 By: Jabbar Ganji
179 {
180 if(x < 2)
181 return 1;
182
183 return x * fact2(x - 1);
184 }
185
186 int bmm(int a, int b)
187 {
188 for(int i = 1; i <= a; i++)
189 if(a % i == 0 && b % i == 0)
190 return i;
191
192 return 1;
193 }
194
195 int bmm2(int a, int b)
196 {
197 if(b == 0)
198 return a;
199
200 return bmm2(b, a % b);
201 }
202
203 unsigned fibo(int n)
204 {
205 if(n < 3)
206 return 1;
207
208 return fibo(n - 1) + fibo(n - 2);
209 }
210
211 int atrange(double a[], int n, double max, double min)
212 {
213 int m = 0;
214 for(int i = 0; i < n; i++)
215 if(a[i] < max && a[i] > min)
216 m++;
217
218 return m;
219 }
220
221 void xchange(double& a, double& b)
222 {
223 double t = a;
C++ Function Samples page 5 By: Jabbar Ganji
224 a = b;
225 b = t;
226 }
227
228 void sort(double& a, double& b, bool ascending = true)
229 {
230 if(ascending && a > b || !ascending && a < b)
231 xchange(a, b);
232 }
233
234 void sort(double x[], int n, bool ascending = true)
235 {
236 for(int i = n - 1; i > 0; i--)
237 for(int j = 0; j < i; j++)
238 sort(x[j], x[j + 1], ascending);
239 }
240
241 bool allsame(double a[], int n)
242 {
243 for(int i = 1; i < n; i++)
244 if(a[i] != a[i - 1])
245 return false;
246
247 return true;
248 }
249
250 string char2str(char c)
251 {
252 char cc[] = { c, NULL };
253 return string(cc);
254 }
255
256 void insertchar(char c, string& s)
257 {
258 s = char2str(c) + s;
259 }
260
261 char lastchar(string s)
262 {
263 return s[s.length()-1];
264 }
265
266 int changebaseto10(string x, unsigned orgbase)
267 {
268 unsigned a = 0, n = x.length();
C++ Function Samples page 6 By: Jabbar Ganji
269 for(unsigned i = 0; i < n; i++)
270 a = a * orgbase + digit(x[i]);
271
272 return a;
273 }
274
275 string changebasefrom10(unsigned x, unsigned newbase)
276 {
277 string s = "";
278
279 for(; x > 0; x /= newbase)
280 if(x % newbase < 10)
281 insertchar('0' + x % newbase, s);
282 else
283 insertchar('A' + (x % newbase - 10), s);
284
285 return s;
286 }
287
288 string changebase(string x, unsigned base1, unsigned base2)
289 {
290 unsigned y = changebaseto10(x, base1);
291 return changebasefrom10(y, base2);
292 }
293
294 string int2str(int x)
295 {
296 if(x == 0)
297 return "0";
298
299 string s = "";
300 char dig[] = "\0\0";
301 bool neg = x < 0;
302
303 if(neg)
304 x = -x;
305
306 for(; x > 0; x /= 10)
307 {
308 dig[0] = '0' + x % 10;
309 insertchar('0' + x % 10, s);
310 }
311
312 if(neg)
313 return "-" + s;
C++ Function Samples page 7 By: Jabbar Ganji
314
315 return s;
316 }
317
318 double ipow(double x, int n)
319 {
320 bool neg = n < 0;
321
322 if(neg)
323 n = -n;
324
325 double r = 1.0;
326 for(int i = 0; i < n; i++)
327 r *= x;
328
329 if(neg)
330 return 1.0 / r;
331
332 return r;
333 }
334
335 double ipow2(double x, int n)
336 {
337 bool neg = n < 0;
338
339 if(neg)
340 n = -n;
341
342 double r;
343
344 for(r = 1.0; n > 0; n /= 2, x *= x)
345 if(n % 2 == 1)
346 r *= x;
347
348 if(neg)
349 return 1.0 / r;
350
351 return r;
352 }
353
354

C++ Function Samples page 8 By: Jabbar Ganji