حل تمرین کتاب برنامه نویسی به زبان ++C عین الله جعفرنژاد قمی

تصویر شاخص برای مقاله حل تمرین کتاب برنامه نویسی به زبان ++C عین الله جعفرنژاد قمی

در این مقاله از مجموعه آموزش‌های ++C مجله پی‌استور به حل تمرین کتاب برنامه نویسی به زبان ++C عین الله جعفرنژاد قمی پرداخته شده است. کتاب برنامه نویسی به زبان ++C تالیف مهندس عین الله جعفرنژاد قمی یکی از کتاب‌های مرجع در زبان برنامه نویسی سی پلاس پلاس ++C می‌باشد که اکثر دانشجویان و علاقه مندان در حوزه برنامه نویسی از آن استفاده می‌کنند.
کتاب حاضر در انتهای هر فصل تمرینات را برای کار معرفی کرده که اکثراً برنامه‌های ساده‌ای می‌باشند. لذا در این پست می‌خواهیم تمرینات این کتاب به‌صورت کامل همراه با کد برای شما عزیزان ارائه شود.

فهرست مطالب این نوشته پنهان

مقدمه

حل تمرین کتاب برنامه نویسی نقش مهمی در تقویت مهارت‌های کدنویسی و حل مسئله دارد. با تمرین مداوم، برنامه‌نویسان با سینتکس زبان‌ها، تفکر الگوریتمی و روش‌های بهینه‌سازی کد آشنا می‌شوند.

همچنین، تمرین باعث افزایش سرعت، دقت و کاهش اشتباهات رایج می‌شود. برنامه‌نویسان با استمرار در تمرین، کدهای بهتری می‌نویسند و برای چالش‌های دنیای واقعی آماده‌تر می‌شوند.

کتاب ++C عین الله جعفرنژاد قمی

کتاب “برنامه‌نویسی به زبان ++C” نوشته عین‌الله جعفرنژاد قمی یکی از منابع شناخته‌شده برای یادگیری زبان ++C در ایران است. این کتاب به صورت آموزشی و گام‌به‌گام مفاهیم پایه و پیشرفته‌ی ++C را توضیح می‌دهد و برای دانشجویان و علاقه‌مندان به برنامه‌نویسی مناسب است.

این کتاب شامل مباحثی مانند متغیرها، عملگرها، ساختارهای کنترلی، توابع، آرایه‌ها، اشاره‌گرها، شی‌گرایی و مدیریت حافظه است. همچنین، با ارائه مثال‌ها و تمرین‌های متعدد، به درک بهتر مفاهیم کمک می‌کند.

سایت‌های تمرین برنامه نویسی

کتاب “برنامه‌نویسی به زبان ++C” اثر عین‌الله جعفرنژاد قمی یک منبع نظری و آموزشی برای یادگیری اصول و مفاهیم زبان ++C است. این کتاب ساختار منظمی دارد و مباحث را از پایه تا پیشرفته به صورت گام‌به‌گام آموزش می‌دهد، اما یادگیری صرف از کتاب بدون تمرین عملی کافی ممکن است منجر به تسلط کامل نشود.

در مقابل، سایت‌های تمرین برنامه‌نویسی فرصت تمرین عملی و حل مسئله را برای برنامه‌نویسان فراهم می‌کنند. این سایت‌ها به افراد کمک می‌کنند تا مهارت‌های حل مسئله، الگوریتم‌نویسی و بهینه‌سازی کد را تقویت کنند. بنابراین، ترکیب مطالعه‌ی کتاب برای یادگیری مفاهیم و استفاده از سایت‌های تمرینی برای پیاده‌سازی و تقویت مهارت‌های کدنویسی، روشی مؤثر برای یادگیری ++C و پیشرفت در برنامه‌نویسی محسوب می‌شود.

برای آشنایی بیشتر با این تمارین سایت‌های مختلفی وجود دارند که به کمک آن‌ها می‌توانید مهارت‌های خود را در برنامه نویسی تقویت کنید، برای آشنایی هرچه بیشتر با این سایت‌ها می‌توانید مقاله سایت تمرین برنامه نویسی — نقش آن در بهبود مهارت کدنویسی را مطالعه نمایید.

حل تمرین کتاب برنامه نویسی به زبان ++C عین الله جعفرنژاد قمی

تمرین‌های کتاب “برنامه‌نویسی به زبان ++C” نوشته عین‌الله جعفرنژاد قمی نقش مهمی در درک بهتر مفاهیم این زبان و تقویت مهارت‌های برنامه‌نویسی دارند. این تمرین‌ها به گونه‌ای طراحی شده‌اند که ابتدا مفاهیم پایه‌ای مانند متغیرها، عملگرها و دستورات کنترلی را تثبیت کرده و سپس با مباحث پیشرفته‌تر مانند توابع، اشاره‌گرها و شی‌گرایی، توانایی حل مسائل پیچیده‌تر را در فرد تقویت کنند.

حل این تمرین‌ها علاوه بر درک بهتر مفاهیم تئوری، موجب افزایش مهارت‌های حل مسئله و پیاده‌سازی الگوریتم‌های بهینه می‌شود. در ادامه پاسخ هر کدام از تمرین‌ها به همراه کد آورده شده است.

تمرین شماره ۱

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

حل تمرین شماره ۱

#include <iostream.h>
#include <conio.h>
#include <math.h>
int main(){
float a , b ,result ;
cout << "please enter 2 float number \n";
cout << " enter a : ";
cin >> a ;
cout << " enter b : ";
cin >> b ;
while (a!=0 || b!=0){
result = (a*b)-(a/b);
cout << " result = " << result ;
cout << "\n please enter 2 float number ";
cout << " enter a : ";
cin >> a ;
cout << " enter b : ";
cin >> b ;
}
getch();
return 0 ;
}

تمرین شماره ۲

برنامه‌ای بنویسید که با استفاده از حلقه‌های تودرتو خروجی زیر را تولید کند.

$$$$$$
$$$$$$
$$$$$$
$$$$$$

حل تمرین شماره ۲

#include <iostream.h>
#include <conio.h>
int main(){
int i , j ;
for (i=0 ; i<4 ; i++){
for (j=0 ; j<6 ; j++){
cout << '$';
}
cout << '\n';
}
getch();
return 0 ;
}

تمرین شماره ۳

برنامه‌ای بنویسید که ضرایب معادله درجه دوم را از ورودی گرفته، معادله را حل کند.

a x ^ 2 + b x + c = 0

حل تمرین شماره ۳

#include <iostream.h>
#include <conio.h>
#include <math.h>
int main(){
int a,b,c;
int d;
double r1,r2;
cout << "enter 3 number (a,b,c) for ax^2+bx+c \n" ;
cout << " please enter a :" ;
cin >> a ;
cout << " please enter b :" ;
cin >> b ;
cout << " please enter c :" ;
cin >> c ;
d= (b*b) - (4*a*c);
if (d>0){
r1=((-b)-sqrt(d))/(2*a);
r2= ((-b)+sqrt(d))/(2*a);
cout << "r1 : " << r1 <<'\t'<< "r2 : " << r2;
}
else if (d==0){
r1 = (-b)/(2*a);
cout << " r1,r2 : " << r1;
}
else if (d<0)
cout << " rishe nadarim " ;
getch();
return 0 ;
}

تمرین شماره ۴

برنامه‌ای بنویسید که عددی از ۱ تا ۷ را خوانده، روزی از هفته را که معادل با آن است را در خروجی چاپ کند.

حل تمرین شماره ۴

# include <iostream.h>
# include <conio.h>
int main(){
int x;
cout << "please enter number 1 - 7 for days : " ;
cin >> x;
switch (x) {
case 1 :
cout << "saturday";
break;
case 2 :
cout << "sunday";
break;
case 3 :
cout << "monday";
break;
case 4 :
cout << "tusday";
break;
case 5 :
cout << "thirsday";
break;
case 6 :
cout << "wendsday";
break;
case 7 :
cout << "friday";
break;
default :
cout << " this number not corect becuase 1 - 7 ";
break;
}
getch();
return 0;
}

تمرین شماره ۵

برنامه‌ای بنویسید که حاصل عبارت زیر را محاسبه کند ( n < 10 ).

۱ + (۱/۲!) + (۱/۳!) + … + (۱/n!)

حل تمرین شماره ۵

# include <iostream.h>
# include <conio.h>
int main(){
int i , num ;
long int fact = 1 ;
float sum = 0 ;
clrscr();
cout << "Enter one number for factoriel : " ;
cin >> num ;
for (i=1 ; i<=num ; i++ ) {
fact *= i ;
sum += (1/(float)fact) ;
}
cout << "\nsum : " << sum ;
getch();
return 0;
}

تمرین شماره ۶

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

از مالیات معاف ۴۰۰،۰۰۰ > حقوق
10 درصد مالیات نسبت به مازاد ۵۰۰،۰۰۰ > حقوق > 400،۰۰۱
15 درصد مایات نسبت به مازاد ۷۰۰،۰۰۰ > حقوق > 500،۰۰۱
17 درصد مالیات نسبت به مازاد ۷۰۰،۰۰۰ < حقوق

حل تمرین شماره ۶

# include <iostream.h>
# include <conio.h>
long int main(){
int i , n ;
long int number , maxnumber, price , acord ;
float salary , tax , maxsalary = 0 ;
cout << " please tell sum employers : " ;
cin >> n ;
for (i = 1 ; i <=n ; i++ ) {
cout << "\n please number employer : " ;
cin >> number ;
cout << "\n please salary employer : " ;
cin >> price ;
if (price <= 400000) {
cout << "\n salary is " << price ;
cout << " \n ----------------------------------" ;
}
else if ( 400000 < price && price < 500001 ) {
acord = price - 400000;
tax = (10 * acord)/ 100 ;
salary = tax + price ;
cout << "\n salary is " << salary ;
cout << " \n ----------------------------------" ;
}
else if ( 500000 < price && price < 700001 ) {
acord = price - 400000;
tax = (15 * acord)/ 100 ;
cout << "tax " << tax ;
salary = tax + price ;
cout << "\n salary is " << salary ;
cout << " \n ----------------------------------" ;
}
else if ( price > 700000 ) {
acord = price - 400000;
tax = (17 * acord)/ 100 ;
salary = tax + price ;
cout << "\n salary is " << salary ;
cout << " \n ----------------------------------" ;
}
if (price > maxsalary){
maxsalary = salary ;
maxnumber = number ;
}
}
cout << " \n ====================================" ;
cout << " \n maixmum salary is : " << maxsalary ;
cout << " \n maixmum salary number is : " << maxnumber ;
getch();
return 0;
}

تمرین شماره ۷

برنامه‌ای بنویسید که تعداد n جمله از سری فیبوناچی را تولید کند.

۱ ۱ ۲ ۳ ۵ ۸ ۱۳ …

حل تمرین شماره ۷

#include <iostream.h>
#include <conio.h>
int main(){
int x=1 , g = 1 , z , k , n ;
clrscr();
cout << " how many number for fibonachi ? : " ;
cin >> n ;
n -= 2 ;
cout << x << " " << g << " " ;
z = x + g ;
cout << z << " " ;
for (k = 1 ; k <= n -1 ; k++ ){
x = g ;
g = z ;
z = x + g ;
cout << z << " " ;
}
getch() ;
return 0 ;
}

تمرین شماره ۸

برنامه‌ای بنویسید که کارکتری را که نشان دهنده رنگی است، از ورودی خوانده به شما بگوید که چه رنگی را می‌خواهد انتخاب کند. مثلاٌ: کاربر حرف ‘r’ را وارد کرد برنامه به او بگوید که دوست دارد رنگ قرمز را انتخاب کند . برای تمام موارد حروف کوچک و بزرگ کنترل شود.

حل تمرین شماره ۸

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
int main(){
char ch , x='y' ;
while (x=='y'){
cout << " please enter r,g,b,w,y for color : ";
cin >> ch ;
switch (ch) {
case 'R' :
case 'r' :
cout << " red \n" ;
break;
case 'G' :
case 'g' :
cout << " Grean \n";
break;
case 'B' :
case 'b' :
cout << " black \n";
break;
case 'W' :
case 'w' :
cout << " White \n";
break;
case 'Y' :
case 'y' :
cout << " Yellow \n";
break;
default :
cout << " This is not into list color " ;
}
cout << "please enter Y/N for continu : " ;
cin>>x;
}
getch() ;
return 0 ;
}

تمرین شماره ۹

برنامه‌ای بنویسید که خروجی زیر را در صفحه نمایش چاپ کند.

*
**
***
****
*****
******

حل تمرین شماره ۹

#include <iostream.h>
#include <conio.h>
int main(){
int i , j ;
for (i = 1 ; i<=6 ; i++ ) {
for ( j = 1 ; j<=i ; j++ ) {
cout << "*";
}
cout << "\n" ;
}
getch() ;
return 0 ;
}

تمرین شماره ۱۰

برنامه‌ای بنویسید که اعدادی را از ورودی خوانده تشخیص دهد آیا اعداد مورد نظر، کامل هستند یا خیر. عددی کامل است که مجموع مقسوم علیه‌های آن ( به جزء خودش ) برابر با آن عدد باشد . پس از بررسی هر عدد، برنامه باید از کاربر سوال کند که می‌خواهد به کارش ادامه دهد یا خیر؟

حل تمرین شماره ۱۰

#include <iostream.h>
#include <conio.h>
int main(){
int n ,i, s=1,x=1;
char z;
while (x){
cout << " please enter 1 number for compelet number : ";
cin >> n;
for (i=2;i<n;i++){
if ((n%i)==0){
s+=(n/i);
}
}
if (n==s){
cout <<" number is complet : " << n;
}
else {
cout << "not complete";
}
cout << " \n do you want to continue y/n : " ;
cin >> z ;
if (z=='y')
continue;
else
x=0;
}
getch();
return 0 ;
}

تمرین شماره ۱۱

برنامه‌ای بنویسید که شماره دانشجویی و معدل تعداد n دانشجو را از ورودی خوانده ، دانشجویی را که دومین معدل را از نظر بزرگی دارد پیدا کند و به خروجی ببرد.

حل تمرین شماره ۱۱

#include <iostream.h>
#include <conio.h>
int main(){
int n , i;
long int number , number1 = 0 , number2 = 0 ;
float ave=0 , maxave = 0 , twoave = 0;
cout << "please n student : " ;
cin >> n ;
for (i=0 ; i<n ; i++) {
cout << " please number student : " ;
cin >> number ;
cout << " please average student : " ;
cin >> ave ;
if (ave > 20 ) {
cout << " please enter average <= 20 : " ;
cin >> ave ;
}
if ( ave > maxave ) {
twoave = maxave ;
maxave = ave ;
number2 = number1 ;
number1 = number ;
}
else if (ave > twoave ){
twoave = ave ;
number2 = number ;
}
}
cout << " maxaverage is " << maxave << " number student " << number1 ;
cout << "\n twoaverage is " << twoave << " number student " << number2;
getch() ;
return 0 ;
}

تمرین شماره ۱۲

تابعی بنویسید که یک اشاره گر از نوع صحیح و عدد صحیح n را به عنوان پارامتر پذیرفته، حافظه‌ای برای n عدد صحیح تخصیص دهد و آدرس آن را به برنامه برگرداند.

حل تمرین شماره ۱۲

#include<iostream.h>
#include<conio.h>
#include<string.h>
void allocatemem(int *p, int n);
int main(){
int *p, n , i;
clrscr() ;
cout << " Enter Count: " ;
cin >> n;
allocatemem(p, n);
cout << "Memory Allocated.";
getch();
return 0 ;
}
//********************************************************************
void allocatemem(int *p, int n){
p = new int [n];
}

تمرین شماره ۱۳

تابعی بنویسید که یک رشته و یک مقدار عددی را به عنوان آرگومان پذیرفته ،تعدادی از کاراکترهای این رشته را با این عدد مشخص می‌شوند در رشته دیگر قرار داده، برگرداند. سپس برنامه‌ای بنویسید که از آن استفاده کند.

حل تمرین شماره ۱۳

#include<iostream.h>
#include<conio.h>
#include<string.h>
void find(char *str, int n, char *out);
int main(){
char *str, *out;
int n;
str = new char[100];
out = new char[100];
clrscr() ;
cout << " Enter String: " ;
cin.get ( str , 100 ) ;
cout << " Enter Number: " ;
cin >> n;
find(str, n, out);
cout << "Output is : " << out;
getch();
return 0 ;
}
//********************************************************************
void find(char *str, int n, char *out){
int x, i, count;
int digits[20];
for (i=0 ; n > 0 ; i++){
x = n % 10;
n = n /10;
digits[i] = x;
}
count = i;
for (i = 0 ; *str ; str++)
for (int j= count - 1; j >= 0 ;j--)
if ((*str - 48) == digits[j]){
*(out + i) = *str;
i++;
}
*(out + i) = '\0';
}

تمرین شماره ۱۴

برنامه‌ای بنویسیدکه دو رشته را از ورودی خوانده، یکی را در دیگری کپی کند.

حل تمرین شماره ۱۴

#include<iostream.h>
#include<conio.h>
#include<string.h>
int main(){
char *str1, *str2, *savestr1;
str1 = new char[100];
str2 = new char[100];
clrscr() ;
cout << " Enter String1: " ;
cin.get ( str1 , 100 ) ;
cout << " Enter String2: " ;
cin.get ();
cin.get ( str2 , 100 ) ;
//str1 -> str2
savestr1 = str1;
for (int i = 0; *str1; i++)
*(str2 + i) = *str1++;
*(str2 + i) = '\0';
cout << "String1 is :" << savestr1 << "\n";
cout << "String2 is : " << str2;
getch();
return 0 ;
}

تمرین شماره ۱۵

برنامه‌ای بنویسید که رشته‌ای را از ورودی خوانده، فقط آن رشته‌هایی را که با حروف ‘b’ شروع می‌شوند در خروجی چاپ کند و به جای آخرین رشته، فقط کلید Enter را فشار دهید.

حل تمرین شماره ۱۵

#include<iostream.h>
#include<conio.h>
#include<string.h>
int main(){
char *name;
name = new char[100];
clrscr() ;
do {
cout << " Enter String: " ;
cin.get();
cin.get ( name , 100 ) ;
if (*name == 'b')
cout << name << "\n";
}
while (*name);
return 0 ;
}

تمرین شماره ۱۶

برنامه‌ای بنویسید که رشته عددی را حاوی نقطه اعشار است از ورودی خوانده، آن را به عدد اعشاری تبدیل کند عنوان مثال ،رشته “۴۲/۱۲۳ ” رابه عدد ۴۲/۱۲۳ تبدیل نماید. تابعی برای خواندن رشته، تابعی برای تبدیل و تابعی برای نوشتن عدد در خروجی بنویسید. پارامترها از طریق فراخوانی با ارجاع به توابع ارسال شوند.

حل تمرین شماره ۱۶

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<math.h>
void input(char * str);
void ascii_to_double(char * str, double * value);
void output(double *f) ;
int main(){
char str[20];
double f;
clrscr() ;
input(str);
ascii_to_double(str, &f);
output(&f);
getch();
return 0 ;
}
//************************************************************
void input(char *str){
cout << " Enter String (number) : " ;
cin.get ( str , 20 ) ;
}
void ascii_to_double(char * str, double * value){
int flag = 0 , i = 0;
*value = 0 ;
while (*str){
if (*str == '.')
flag = 1;
else
if (*str >= '0' && *str <= '9')
if (flag == 0 )
*value= (*value * 10) + (*str -48);
else
*value= *value + (*str -48) / pow(10, ++i);
else {
cout << "invalid char";
break;
}
str++;
}
}
void output(double *f){
cout << " Number is : " ;
cout << *f;
}

تمرین شماره ۱۷

برنامه‌ای بنویسید که سه مقدار عددی را به‌عنوان آرگومان پذیرفته، به تابعی ارسال کند و تابع بزرگ‌ترین مقدار آن‌ها را پیدا کند. برنامه باید تعداد آرگومان‌ها را کنترل کند.

حل تمرین شماره ۱۷

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int max( int a, int b , int c);
int main(int argc , char *argv[]){
clrscr();
if (argc <= 3) {
cout << "Wrong number of parameters";
getch();
exit;
}
cout << max(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));
getch () ;
return 0 ;
}
int max( int a, int b , int c) {
int max = a;
if (b > max)
max = b;
if (c > max)
max= c;
return max;
}

تمرین شماره ۱۸

برنامه‌ای بنویسید که رشته‌ای را از ورودی خوانده، به تابعی ارسال کند و تابع آن را به‌طور معکوس به خروجی ببرد.

حل تمرین شماره ۱۸

#include<iostream.h>
#include<conio.h>
#include<string.h>
void invers (char *str) ;
int main(){
char str[100];
clrscr();
cout << " Enter string : " ;
cin.get (str , 100 , '.') ;
invers (str) ;
getch () ;
return 0 ;
}
void invers ( char *str){
char *savestr = str;
while (*str)
str++;
for ( str--; str >= savestr ; str--)
cout << *str;
}

تمرین شماره ۱۹

برنامه‌ای بنویسید که نام و شماره تلفن تعدادی از مشتریان مخابرات را از ورودی خوانده، در آرایه‌هایی ذخیره نماید. شماره تلفن‌ها در آرایه عددی و نام مشتریان در آرایه‌ای از اشاره گرهای رشته‌ای ذخیره شوند. سپس نامی از ورودی خوانده شده شماره تلفن وی را مشخص کرده، در خروجی چاپ کند. برنامه باید برای ادامه کار، از کاربر سوال کند. اگر کاربر جواب منفی داد، برنامه خاتمه پیدا می‌کند. توابعی برای خواندن اطلاعات، جستجو و چاپ نتایج جستجو بنویسید.

حل تمرین شماره ۱۹

#include<iostream.h>
#include<conio.h>
#include<string.h>
void input(char **names, int *numbers, int n) ;
int search(char **names, int n, char *name) ;
void output(int *numbers, int index) ;
int main(){
char **names, name[21];
int *numbers, n, index;
char key;
clrscr() ;
cout << " Enter Count : " ;
cin >> n;
names = new char * [n];
numbers = new int [n];
input (names , numbers, n);
do {
cout << " Enter Name For Search: " ;
cin.get ();
cin.get ( name , 20 ) ;
index = search(names, n, name);
if (index != -1){
output(numbers, index);
cout << " For a new search press <y>\n" ;
} else
cout << " Not Found, for a new search press <y>\na" ;
key = getch();
}
while (key == 'y');
return 0 ;
}
//************************************************************
void input(char **names, int *numbers, int n){
char *name;
for (int i = 0; i < n; i++){
name = new char [21];
cout << " Enter Name : " ;
cin.get();
cin.get ( name , 20 ) ;
*(names + i) = name;
cout << " Enter Phone Number : " ;
cin >> *(numbers + i);
}
}
int search(char **names, int n, char *name){
for (int i = 0; i < n; i++){
if (strcmp( *(names + i) , name) == 0)
return i;
}
return -1;
}
void output(int *numbers, int index){
cout << " Phone Number is : " ;
cout << *(numbers + index);
}

تمرین شماره ۲۰

برنامه‌ای بنویسید که رشته‌ای را خوانده مجموع ارقام موجود در رشته را محاسبه و چاپ کند.

حل تمرین شماره ۲۰

#include<iostream.h>
#include<conio.h>
void separat ( char a[] , char b[] , int len ) ;
void change ( char b[] , int arr[] , int len ) ;
void sum ( int arr[] , int len ) ;
int main(){
const int k=11 ;
char a[k] , b[k] ;
int arr[k] ;
clrscr() ;
cout << " Enter string : " ;
cin.get ( a , k ) ;
separat ( a , b , k ) ;
change ( b , arr , k ) ;
sum ( arr , k ) ;
getch() ;
return 0 ;
}
//*********************************************************
void separat ( char a[] , char b[] , int len ){
int i , j=0 ;
for ( i=0 ; i<len ; i++ ){
if ( a[i] >= '0' && a[i] <='9' ){
b[j] = a[i] ;
j++ ;
}
else
{
b[j] ='0' ;
j++ ;
}
}
}
//**********************************************************
void change ( char b[] , int arr[] , int len ){
int i ;
for ( i=0 ; i<len ; i++ ){
arr[i] = b[i] - 48 ;
}
}
//***********************************************************
void sum ( int arr[] , int len ){
int i , p=0 ;
for ( i=0 ; i<len ; i++ ){
p += arr[i] ;
}
cout << " sum = " << p ;
}

تمرین شماره ۲۱

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

حل تمرین شماره ۲۱

#include<iostream.h>
#include<conio.h>
main(){
char a[100];
int l1=0,l2=0,l3=0,s=0;
clrscr();
cout<<"print your string:\n";
cin>>a;
for(int i=0;a[i];i++){
if(a[i]>='a'&&a[i]<='z')l1++;
if(a[i]>='A'&&a[i]<='Z')l2++;
if(a[i]>='0'&&a[i]<='9')l3++;
s++;
}
cout<<" "<<l1<<" "<<l2<<" "<<l3<<" "<<s;
getch();
return 0;
}

تمرین شماره ۲۲

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

حل تمرین شماره ۲۲

#include <iostream.h>
#include <conio.h>
void action(int a[],int loc,int n);
//************************************************
int main()
{
int i,mid,n,a[100],sign=-1;
clrscr();
cout << endl << " Enter n:" ;
cin >> n;
mid=n/2;
for(i=0;i<n;i++)
{
cout << endl << " Enter a[" << i+1 << "]:";
cin >> a[i];
}
for(i=0;i<=mid;i++)
{
if ( a[mid+(sign*i)]!=0)
{
action(a,mid+(sign*i),n);
break;
}
if (sign==1) i--;
sign=-sign;
}
if(i>mid)
cout << endl << "All element are zero";
getch();
return 0;
}
//************************************************
void action(int a[],int loc,int n)
{
int i;
for (i=0;i<n;i++)
cout << endl << a[i] << " / " << a[loc] << " =" << (float) a[i]/a[loc];
}

تمرین شماره ۲۳

برنامه‌ای بنویسید که رشته‌ای را از ورودی خوانده، تمام کلمات چهار حرفی آن را باکلمه love جایگزین کند. مثلاً رشته I hate you,you doer باید به رشته I love you, you love تبدیل شود.

حل تمرین شماره ۲۳

#include<iostream.h>
#include<conio.h>
#include<string.h>
void Replace( char a[] , char b[]) ;
int main(){
const int k=100;
char a[k], b[k];
clrscr() ;
cout << " Enter string : " ;
cin.get ( a , k ) ;
strcat(a, " ");
Replace( a , b) ;
cout << b;
getch() ;
return 0 ;
}
//************************************************************
void Replace( char a[] , char b[]){
char word[25];
int i , j = 0, p = 0 ;
b[0] = 0;
for ( i=0 ; i<strlen(a) ; i++ ) {
if ( a[i] == ' '){
word[j] = 32;
word[j + 1] = 0;
if ((i - p) == 4)
strcat(b , "love ");
else
strcat(b , word);
p = i + 1;
j = 0;
}
else
{
word[j] = a[i];
j++;
}
}

تمرین شماره ۲۴

برنامه‌ای بنویسید که دو رشته s1 و s2 را از ورودی خوانده، رشته s1 را در رشته s2 جست و جو کند. خواندن رشته‌ها توسط تابع اصلی و جست وجو رشته توسط تابعی انجام شود.

حل تمرین شماره ۲۴

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void search(char a[],char b[],int ,int );
void main(){
const int k=20,p=5;
char a[k],b[p];
clrscr();
cout << "enter your strigs:";
cin >> a >> b;
search(a,b,k,p);
}
void search(char a[],char b[],int k,int p){
for(int len=1;b[len];len++);
for(int i=0;i<k;i++){
for(int j=0;j<len & i+j<k; j++){
if(a[i+j]!=b[i])
break ;
if(j==len-1){
cout<<"found.";
getch();
exit(0);
}
}
}
cout<<"not found.";
getch();
}

تمرین شماره ۲۵

برنامه‌ای بنویسید که رشته‌ای را از ورودی خوانده، مشخص کند که آیا رشته از هر دو طرف که در نظر گرفته شود یکسان است یاخیر . مثلاً رشته “beeb ” چنین خاصیتی دارد.

حل تمرین شماره ۲۵

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int main(){
const int n=21 ;
char arr[n] ;
clrscr() ;
int i , j=0 , count=0 ;
cout << " Enter string : " ;
cin.get ( arr , n ) ;
for ( i=0 ; arr[i] ; i++ ){
count ++ ;
}
int help=count;
do {
count -- ;
if ( arr[j] == arr[count] )
j++ ;
else{
cout << "no" ;
getch() ;
exit(0);
}
cout << "yes" ;
}while ( j < help/2 ) ;
cout<<"yes";
getch() ;
return 0 ;
}

تمرین شماره ۲۶

برنامه‌ای بنویسید که رشته‌ای را که به نقطه ختم می‌شود از ورودی خوانده، کارکترهای موجود در رشته را به همراه تعداد دفعات تکرار آن‌ها به خروج ببرد.

حل تمرین شماره ۲۶

#include<iostream.h>
#include<conio.h>
#include<string.h>
void Calc( char a[]) ;
int main(){
const int k=100;
char a[k];
clrscr() ;
cout << " Enter string : " ;
cin.get ( a , k , '.') ;
Calc( a ) ;
getch() ;
return 0 ;
}
//************************************************************
void Calc( char a[]){
int ar[30];
int i;
char c;
for ( i=0 ; i<30 ; i++ )
ar[i] = 0;
for ( i=0 ; i<strlen(a) ; i++ )
ar[ (a[i] - 97)]++;
for ( i=0 ; i<30 ; i++ )
if (ar[i] != 0)
{
c = i + 97;
cout << c << " " << ar[i] << "\n";
}
}

تمرین شماره ۲۷

برنامه‌ای بنویسید که تعداد عدد را از ورودی خوانده، آن‌ها را به طور مرتب در آرایه‌ای قرار دهد (دقت داشته باشید که اعدد در موقع قرار گرفتن در آرایه، به طور صعودی مرتب باشند)، سپس آرایه مرتب را به خروجی ببرد.

حل تمرین شماره ۲۷

#include<iostream.h>
#include<conio.h>
void input ( int [] , int ) ;
void bubble ( int [] , int ) ;
void output ( int [] , int ) ;
int main(){
const int k = 10 ;
int arr[k] ;
clrscr() ;
cout << " Enter arrey : " ;
input ( arr , k ) ;
bubble ( arr , k ) ;
output ( arr , k ) ;
getch() ;
return 0 ;
}
void input ( int arr[] , int k ){
int i ;
for ( i=0 ; i<k ; i++ ){
cin >> arr[i] ;
}
}
void bubble ( int arr[] , int k ){
int i , j , temp ;
for ( i=k-1 ; i>0 ; i-- ){
for ( j=0 ; j<i ; j++ ){
if ( arr[j] > arr[j+1] ){
temp = arr[j] ;
arr[j] = arr[j+1] ;
arr[j+1] = temp ;
}
}
}
}
void output ( int arr[] , int k ){
int i ;
for ( i=0 ; i<k ; i++ ){
cout << arr[i] ;
}
}

تمرین شماره ۲۸

برنامه‌ای بنویسید که یک عدد ۲۰ رقمی را باعدد ۲۰ رقمی صحیح دیگر جمع کند برای این منظور، هر یک از دو عدد را به صورت رشته‌ای از ورودی بخوانید. سپس هر کاراکتر را به رقم معادل آن تبدیل کرده در یک عنصر آرایه قرار دهد و هر عدد را به همین روش در آرایه ذخیره نماید( هر عدد در یک آرایه ). سپس حاصل جمع این آرایه دو عدد ۲۰ رقمی را محاسبه کرده، در خروجی چاپ کنید. تابعی برای خواندن رشته ها، تابعی برای تبدیل کاراکتر به رقم، تابعی برای انجام عمل جمع و تابعی برای چاپ عدد بنویسید.

حل تمرین شماره ۲۸

#include<iostream.h>
#include<conio.h>
const int n = 20;
void input ( char a[] , char b[] , int len );
void chang ( char a[] , char b[] , int len , int arr1[], int arr2[]);
void sum ( int a[] , int b[] , int len , int c[]);
void output ( int c[] , int len );
void main(){
char a[n + 1] , b[n + 1] ;
int arr1[n], arr2[n], arr3[n + 1];
clrscr() ;
input ( a , b , n ) ;
chang ( a , b , n , arr1, arr2);
sum ( arr1 , arr2 , n , arr3);
output ( arr3 , n + 1 );
getch() ;
}
//********************************************************
void input ( char a[] , char b[] , int len ){
cout << " Enter number 1 : " ;
cin >> a ;
cout << " Enter number 2 : " ;
cin >> b ;
}
//*********************************************************
void chang ( char a[] , char b[] , int len , int arr1[], int arr2[]){
int i;
for ( i=0 ; i<len ; i++ ){
arr1[i] = a[i] - 48;
arr2[i] = b[i] - 48;
}
}
//*********************************************************
void sum ( int a[] , int b[] , int len , int c[]){
int m , temp = 0;
do{
len--;
m = a[len] + b[len] + temp ;
if ( m > 9 ) {
c[len + 1] = m - 10 ;
temp = 1 ;
}
else{
c[len + 1] = m;
temp = 0 ;
}
} while ( len != 0 ) ;
c[0] = temp;
}
//**********************************************************
void output ( int c[] , int len ){
int i ;
if (c[0] != 0)
cout << c[0];
for ( i=1 ; i<len ; i++ ){
cout << c[i] ;
}
}

تمرین شماره ۲۹

برنامه ای بنویسید که عناصر دو آرایه ۵ عنصری را که همگی از نوع صحیح هستند از ورودی خوانده، آن‌ها را به روش حبابی مرتب کند و سپس این دو آرایه را به طور مرتب در هم ادغام نماید. تابعی برای اخذ ورودی، تابعی برای مرتب سازی، تابعی برای ادغام و تابعی برای چاپ ارایه‌ها بنویسید.

حل تمرین شماره ۲۹

#include<iostream.h>
#include<conio.h>
void input ( int [] , int ) ;
void bubble ( int [] , int ) ;
void ed ( int a[] , int b[] , int c[] , int ) ;
void output ( int c[] , int n ) ;
int main(){
int a[5] , b[5] , c[10] ;
clrscr() ;
input ( a , 5 ) ;
input ( b , 5 ) ;
bubble ( a , 5 ) ;
bubble ( b , 5 ) ;
ed ( a , b , c , 10 ) ;
output ( c , 10 );
getch();
return 0 ;
}
//***************************************************************
void input ( int a[] , int k ){
int i ;
cout << " Enter array : " << '\n' ;
for ( i=0 ; i<k ; i++ ){
cin >> a[i] ;
}
}
//****************************************************************
void bubble ( int a[] , int k ){
int i, j ,temp ;
for ( i=k-1 ; i>0 ; i-- ){
for ( j=0 ; j<i ; j++ ){
if ( a[j] > a[j+1] ){
temp = a[j];
a[j] = a[j+1] ;
a[j+1] = temp ;
}
}
}
}
//****************************************************************
void ed ( int a[] , int b[] , int c[] ,int k ){
int i=0 ;
for ( i=0 ; i<k/2 ; i++ ){
c[i] = a[i] ;
c[i+ (k/2) ]= b[i] ;
}
bubble ( c , 10 ) ;
}
//**************************************************************
void output ( int c[] , int n ){
int i ;
for ( i=0 ; i<n ; i++ ){
cout << c[i] ;
}
getch() ;
}

تمرین شماره ۳۰

برنامه‌ای بنویسید که شماره دانشجویی تعدادی از دانشجویان را از ورودی خوانده، در آرایه‌ای قرار دهد و سپس آرایه را به روش انتخابی به طور صعودی مرتب کند مرتب سازی به روش انتخابی انجام می‌شود:

کوچک‌ترین عنصر آرایه پیدا شده، جای آن با عنصر اول آرایه عوض می‌شود. این روند تا مرتب سازی کامل آرایه ادامه می‌یابد. پس از مرتب سازی نتیجه را در خروجی چاپ کنید. سه تابع به کار ببرید، تابعی برای خواندن عناصر آرایه، تابع برای مرتب سازی و تابع برای چاپ عناصر آرایه.

حل تمرین شماره ۳۰

#include <iostream.h>
#include <conio.h>
//---------- input -------------
void input(int *number,int n){
int i;
for (i=0; i<n;i++){
cout<<"please number student : " ;
cin>>*(number+i);
if (*(number+i)>20){
cout << " please enter number betwin 0 - 20 \n";
i-=1;
}
}
}
//---------- sort -------------
void sort(int *number,int n){
int k,i,j;
for (i=0;i<n;i++){
for (j=0;j<n;j++){
if (number[i]<number[j]){
k=number[i];
number[i]=number[j];
number[j]=k;
}
}
}
}
//---------- print -------------
void print(int *number,int n){
int i;
for (i=0;i<n;i++){
cout<<*(number+i)<<'\t';
}
}
//---------- main -------------
int main(){
int *number,n;
cout << " please student sum : ";
cin>>n;
number=new int [n];
input(number,n);
sort(number,n);
print(number,n);
getch();
return 0;
}

تمرین شماره ۳۱

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

عددی اول است که بر هیچکدام از اعداد اول قبل از خودش قابل قسمت نباشد.

حل تمرین شماره ۳۱

#include <iostream.h>
#include <conio.h>
int main(){
int number,i,m,count=0;
cout<< "please one number : " ;
cin>>number;
cout<<"addade aval : "<<'\t';
for (i=1;i<number;i++){
for (m=2; m<=i ; m++){
if (i%m==0)
count++;
}
if (count==1)
cout<<i<<'\t';
count=0;
}
getch();
return 0;
}

تمرین شماره ۳۲

برنامه‌ای بنویسید که عدد اعشاری را از ورودی خوانده ، هر یک از قسمت‌های صحیح و اعشاری آن را به صورت یک عدد صحیح به خروجی ببرد. به عنوان مثال، عدد ۴۲/۱۳ به صورت دو عدد صحیح ۱۳ و ۴۲ به خروجی برود.

حل تمرین شماره ۳۲

#include<iostream.h>
#include<conio.h>
main(){
long double a;
clrscr();
cout<<"enter a number:";
cin>>a;
long int a1;
a1=(long int)a;
a=a-(long double)a1;
long int b=0;
int i=0;
while(a>0.0001&&i<5&&a<0.9999){
a*=10;
b=b*10+(long int)a;
a-=(long double)(long int)a;
i++;
}
if(a>0.9999)b++;
cout<<" "<<a1<<" "<<b;
getch();
return 0;
}

تمرین شماره ۳۳

برنامه‌ای بنویسید که یک عدد اعشاری مثل ۲۱/۶۴۳ را خوانده، وارون آن را بیابد. وارون این عدد ۳۴۶/۱۲ است.

حل تمرین شماره ۳۳

#include <stdlib.h>
#include <stdio.h>
#include<string.h>
/*-----------------------------------*/
int main(void)
{
int g=10;
double n;
char s[25];
/*-----------------------------------*/
n = 48699.2047;
gcvt(n,g,s);
printf("------------------------------varoonge-------------------------\n");
printf("namaysh = %s\n", strrev(s));
}

تمرین شماره ۳۴

برنامه‌ای بنویسید که سال تولد کاربر را از ورودی خوانده، مشخص کند که او چند سال، چند ماه، چند روز، چند ساعت، چند دقیقه و چند ثانیه عمر کرده است .

حل تمرین شماره ۳۴

#include<iostream.h>
#include<conio.h>
int main(){
int x,y,s,m,r,h,d,f;
cout<<"enter a number of sale tavalod:";
cin>>x;
cout<<"enter a number of sale hazer:";
cin>>y;
s=y-x;
m=(y-x)*12;
r=(y-x)*365;
h=(y-x)*8760;
d=(y-x)*525600;
f=(y-x)*31536000;
cout<<"s="<<s<<"m="<<m<<"r="<<r<<"h="<<h<<"d="<<d<<"f="<<f;
getch();
return 0;
}

تمرین شماره ۳۵

برنامه‌ای بنویسید که دو عدد صحیح مثبت را از ورودی خوانده ، آن‌ها را به روش تفریق بر هم تقسیم نماید.

حل تمرین شماره ۳۵

include <iostream.h>#
# include <conio.h>
int main(){
int a,b,c=0;
cout << " Enter tow number ";
cin >> a >> b;
while (a>=b){
a = a - b;
c += 1;
}
cout << " KHAREJ GHESMAT = " << c;
cout << " BAGHI MANDE = " << a;
getch();
return 0;
}

تمرین شماره ۳۶

برنامه‌ای بنویسید که فاصله‌ای بر حسب فوت و اینچ گرفته، معادل آن را برحسب متر و سانتی‌متر بیان کنید. هر فوت ۳۰۴۸/۰ متر، یک متر ۱۰۰ سانتیمتر و هر فوت ۱۲ اینچ است. حداقل از سه تابع استفاده کنید ، یکی برای ورودی، یکی برای انجام محاسبات و دیگری برای خروجی.

حل تمرین شماره ۳۶

# include <iostream.h>
# include <conio.h>
void input1(float fot,float inch);
void hsb(float fot,float inch);
void output1 (float metr,int sw);
float fot,inch,metr;
int main(){
input1(fot,inch);
getch();
return 0;
}
void input1(float fot,float inch){
cout << "Enter for foot ";
cin >> fot;
cout << "Enter for INCH ";
cin >> inch;
hsb(fot,inch);
}
void hsb(float fot,float inch){
metr = fot * 0.3048;
output1 (metr,1);
metr = (inch * (0.3048 / 12))*100;
output1 (metr,2);
}
void output1(float metr,int sw){
if (sw == 1){
cout << " \n FOT = " << metr;
}
if (sw == 2){
cout << "\n INCH = " << metr;
}
}

تمرین شماره ۳۷

تابعی بنویسید که دو آرگومان را بپذیرد و آرگومان اول را به توان آرگومان دوم برساند. آرگومان اول یک مقدار Double و آرگومان دوم یک مقدار صحیح مثبت یا منفی است. برنامه ای بنویسید که از آن استفاده کند.

حل تمرین شماره ۳۷

#include <conio.h>
#include <iostream.h>
#include <math.h>
void tav(){
double a,r=1,r1;
int b,i;
cout << "please 2 number for a^b : ";
cin >> a >> b ;
if (b>1){
for (i=1 ; i<=b ; i++){
r = (double)r*a;
}
cout << "result : " << r ;
}
else if (b==1){cout << "result : " << a ;}
else if (b<1) {
for (i=1 ; i<=abs(b) ; i++){
r = (double)r*a;
}
r1 = (double)1/r;
cout << "result : " << r1 ;
}
}
// ---------------
int main(){
tav();
getch();
return 0;
}

تمرین شماره ۳۸

تابعی دو آرگومان را بپذیرد: آرگومان اول، یک کارکتر، و آرگومان دوم مشخص می‌کند که این کارکتر در هر سطر از صفحه نمایش چند بار باید چاپ شود و آرگومان سوم مشخص می‌کند که این کارکتر در چند سطر باید چاپ شود . برنامه‌ای بنویسید که از این تابع استفاده کند.

حل تمرین شماره ۳۸

#include <iostream.h>
#include <conio.h>
void print(char c , int i, int j){
int n,k ;
for (n = 1 ; n <= i ; n++){
for (k = 1 ; k <= j ; k++){
cout << c;
}
cout << '\n';
}
}
// ---------------------------------
int main(){
int a,b;
char ch ;
clrscr();
cout << "enter 2 number : ";
cin >> a >> b ;
cout << "please enter a character : " ;
cin >> ch ;
print (ch,a,b);
getch();
return 0;
}

تمرین شماره ۳۹

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

حل تمرین شماره ۳۹

#include <iostream.h>
#include <conio.h>
void print(char c , int i , int j){
int n ,k;
for (n=1 ; n<=i;n++){
cout << " ";
}
for (k=1 ; k<=(j-i) ; k++){
cout << c;
}
}
//-----------------------
int main(){
int a , b ;
char ch ;
cout << " enter a character : " ;
cin >> ch;
cout << " enter 2 number (a<b) : " ;
cin >> a >> b;
print (ch,a,b);
getch();
return 0;
}

تمرین شماره ۴۰

برنامه ای بنویسید که دو عدد اعشاری را از ورودی خوانده به تابعی ارسال کند، تابع، تفاضل، حاصلضرب و حاصل تقسیم آنها را محاسبه کرده به برنامه ارسال نماید.

حل تمرین شماره ۴۰

#include <iostream.h>
#include <conio.h>
void m(float x,float y) {
float f,k,i;
f=x*y;
k = x/y;
i=x-y;
cout<<"hasel x-y : " << i<<'\n';
cout<<"hasel x*y : " << f <<'\n';
cout<<"hasel x/y : " << k <<'\n';
}
//------------------------------
int main(){
float a,b;
clrscr();
cout<<"enter 2 number : ";
cin>>a>>b;
m(a,b);
getch();
return 0 ;
}

تمرین شماره ۴۱

برنامه‌ای بنویسید که معادله درجه دومی را از ورودی خوانده، آن‌ها را به تابعی ارسال کند. تابع معادله را حل کرده، جواب‌ها آن را به خروجی ببرد (به برنامه اصلی برنمی‌گرداند)

حل تمرین شماره ۴۱

#include <iostream.h>
#include <conio.h>
#include <math.h>
void m(int a, int b , int c){
int d;
double r1,r2;
d= (b*b) - (4*a*c);
if (d>0){
r1=-b-sqrt(d)/(2*a);
r2= -b+sqrt(d)/(2*a);
cout << "r1 : " << r1 <<'\t'<< "r2 : " ;
}
else if (d==0){
r1 = -b /(2*a);
cout << " r1,r2 : " << r1;
}
else if (d<0)
cout << "rishe nadarim " ;
}
//----------------------------------
int main() {
int x , y , z ;
clrscr();
cout << "enter 3 number (a,b,c) for ax^2+bx+c : " ;
cin >> x >> y >> z;
m(x,y,z);
getch();
return 0 ;
}

تمرین شماره ۴۲

برنامه‌ای بنویسید که دمای هوا را برحسب فارنهایت خوانده، به تابعی تحویل دهد و تابع آن را به درجه سلسیوس تبدیل کرده و برگرداند.

حل تمرین شماره ۴۲

#include <iostream.h>
#include <conio.h>
float dama(float a){
return(a-273);
}
int main(){
float x;
clrscr();
cout<<"enter a temprecher farenhait : ";
cin>>x;
cout<<"silicius temperacher is : "<<dama(x);
getch();
return 0;
}

تمرین شماره ۴۳

برنامه‌ای بنویسید که ۳ مقدار اعشاری را از ورودی خوانده، به تابعی ارسال و تابع میانگین آن‌ها را محاسبه کرده، برگرداند.

حل تمرین شماره ۴۳

#include <iostream.h>
#include <conio.h>
float k (float a,float b,float c){
float s ;
s= (a+b+c)/3;
return s;
}
//----------main----------
int main(){
float x,y,z;
clrscr();
cout <<" please 3 number : ";
cin>>x>>y>>z;
cout<<"average is a : " << k(x,y,z);
getch();
return 0;
}

تمرین شماره ۴۴

برنامه‌ای بنویسید که n جمله از سری فیبوناچی را به روش بازگشتی تولید کند؟

حل تمرین شماره ۴۴

#include <conio.h>
#include <iostream.h>
long int fibo(long int x)
{
if (x<=0)
return 0;
if (x==1||x==2)
return 1;
return fibo(x-1)+fibo(x-2);
}
//---------- main ----------------
int main(){
long int a;
int n;
cout<< " type n number for fibonschi : ";
cin>>n;
for (a=1 ; a<=n;a++){
cout<< fibo(a)<<'\t';
}
getch();
return 0;
}

تمرین شماره ۴۵

برنامه‌ای بنویسید که عددی را از ورودی خوانده به کمک تابع بازگشتی، شمارش معکوس از آن عدد به یک را انجام دهد ( شماره‌ها در خروجی چاپ کند )

حل تمرین شماره ۴۵

#include <conio.h>
#include <iostream.h>
int m(int x){
while (x!=0){
cout<< x<<'\t';
return m(x-1);
}
}
// ------------- main -------------------
int main(){
int a;
cout<< " please tupe 1 number : ";
cin >> a;
m(a);
getch();
return 0;
}

تمرین شماره ۴۶

در شرکتی، سالانه ۱۵۰ خودکار و ۵۰ بسته کاغذ A4 مصرف می‌شود. در پایان سال، این شرکت می‌خواهد بداند که در سال آینده چقدر باید برای این بخش از تجهیزات اداری هزینه کند. برنامه‌ای بنویسید که قیمت این اقلام را در امسال از ورودی خوانده، با خواندن نرخ تورم در سال آینده، هزینه شرکت را در این بخش محاسبه نماید و به خروجی ببرد. تورم به صورت درصد وارد می‌شود که باید آن به یک مقدار اعشاری تبدیل کند . مثلا اگر تورم را به صورت ۶/۵ از ورودی بخواند باید آن را به صورت ۰۵۶/۰ به کار ببرد.

حل تمرین شماره ۴۶

#include <iostream.h>
#include <conio.h>
int main(){
float ppen , pa4 ,tavarom , expend ;
cout << " please price pen : " ;
cin >> ppen ;
cout << " \n please price a4 : " ;
cin >> pa4 ;
cout << " \n please %tavarom : " ;
cin >> tavarom ;
tavarom = tavarom / 100 ;
ppen = ppen + ( ppen * tavarom ) ;
pa4 = pa4 + ( pa4 * tavarom ) ;
expend = ( ppen * 150 ) + ( pa4 * 50 ) ;
cout << " expend for 1 year is " << expend ;
getch();
return 0 ;
}

تمرین شماره ۴۶

شرکتی به هر یک از دو نفر از متخصصین خود ماهانه ۷۵۰۰۰۰ ریال پرداخت می‌کند، او می‌خواهد بداند که اگر ۵/۱۳ درصد به حقوق هر کدام اضافه کند، سالانه چقدر به هزینه شرکت اضافه می‌شود. برنامه‌ای بنویسید که این کار را برای شرکت انجام دهد.

حل تمرین شماره ۴۶

#include <iostream.h>
#include <conio.h>
int main(){
long int x ;
x= (( 750000 * 13.5 ) / 100) * 12 ;
cout << " expend for 1 year is " << x ;
getch();
return 0 ;
}

تمرین شماره ۴۷

برنامه‌ای بنویسید که وزن کالایی را بر حسب کیلوگرم دریافت کرده، وزن آن را بر حسب گرم در خروجی چاپ کند.

حل تمرین شماره ۴۷

#include <iostream.h>
#include <conio.h>
int main(){
int x , y ;
cout << " please enter kg : " ;
cin >> x ;
y = x * 1000;
cout << " gr : " << y ;
getch();
return 0 ;
}

تمرین شماره ۴۸

برنامه‌ای بنویسید که مقدار x را از ورودی خوانده، عبارت زیر را محاسبه کند:

۱
y = —————
x2 + x + 3

حل تمرین شماره ۴۸

#include <iostream.h>
#include <conio.h>
int main(){
float x , y ;
cout << " please enter 1 number : " ;
cin >> x ;
y = 1 / ( (x*2) + x + 3 );
cout << " y = 1 / ( (x*2) + x + 3 ) : " << y ;
getch();
return 0 ;
}

تمرین شماره ۴۹

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

حل تمرین شماره ۴۹

#include <iostream.h>
#include <conio.h>
#include <string.h>
//---------- del -------------
void del(char s[]){
int i,j;
for (i=0;s[i];i++){
for (j=(i+1);s[j];j++){
if (s[i]==s[j]){
strcpy(&s[j],&s[j+1]) ;
j=i;
}
}
}
}
//---------- main -------------
int main(){
const int n=11;
char s[n];
cin.get(s,n);
del(s);
cout<<s;
getch();
return 0;
}

نتیجه گیری

در این بخش به حل تمرین کتاب برنامه نویسی به زبان ++C عین الله جعفرنژاد قمی پرداخته شد و ۴۹ تمرین کتاب همراه با سورس کد هایشان ارائه گردید. امیدواریم توانسته باشیم کمکی به شما عزیزان کرده باشیم.

میزان رضایتمندی
لطفاً میزان رضایت خودتان را از این مطلب با دادن امتیاز اعلام کنید.
[ امتیاز میانگین 0 از 0 نفر ]
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *



برچسب‌ها:
سی پلاس پلاس


پیمایش به بالا