سلام
در این تاپیک قصددارم تا جواب تمرینات و پروژه فصل دوم کتاب برنامه نویسی سی پلاس پلاس جعفرنژاد قمی رو براتون بزارم
این نکته رو بگم که این تمرینات رو خودم حل کردم و ممکم هست بعضی از تمرینات جواب شون درست نباشه یا اشکالاتی داشته باشه که من عذرخواهی میکنم
ویرایش چهارم
چاپ : 1393
تمرینات
برنامه ای بنویسید که خروجی زیر را دقیق به همین کل تولید نماید :
کد:
x x * 10 x * 100 x * 1000
------------------------------------------------------------------
1 10 100 1000
2 20 200 2000
3 30 300 3000
کد:
int d = 1;
cout << "\nx x * 10 x * 100 x * 1000\n--------------------------------------------"<<endl;
for(int x = 1;x < 4 ; x++){
for(int y = 1 ;y <= 4; y++){
cout << x * d << "\t";
d *=10;
}
cout << "\n"<<endl;
d = 1;
}
برنامه ای بنویسید که عددی مثل n را (کمتر از 10) از ورودی خوانده فاکتوریل آنرا محاسبه کند و به خروجی ببرد: N!=1*2*3*...*N
کد:
double x,c,y=1;
Loop:
cout << "Please Enter n :" << endl;
cin >> x;
if(x > 10){
cout << "Try Again (n < 10)";
getch();
system("cls");
goto Loop;
}
y = 1;
for(c = 1 ;c <= x; c++)
y *= c;
cout << "Factoriel = " << y << endl;
برنامهای بنویسید که شماره دانشجویی و معدل تعداد n دانشجو را از ورودی خوانده، دانشجویی را که دومین معدل را از نظر بزرگی دارد پیدا کند و به خروجی ببرد؟
کد:
int n, i=0, id_max1, id_max2, id;
float ave_max1, ave_max2, ave;
Loop:
cout << "n : ";
cin >> n;
if(n < 2){
cout << "Error";
goto Loop;
}
for(i = 1; i <= n; i++){
cout << "Please Enter id : " << i << endl;
cin >> id;
cout << "Please Enter average : " << i << endl;
cin >> ave;
if(ave>=ave_max1){
ave_max2 = ave_max1;
id_max2 = id_max1;
ave_max1 = ave;
id_max1 = id;
}
else if(ave >= ave_max2){
ave_max2 = ave;
id_max2 = id;
}
}
cout << "Average = " << ave_max2 << " Id : " << id_max2;
برنامهای بنویسید که اعدادی را از ورودی خوانده تشخیص دهد که آیا اعداد مورد نظر، کامل هستند یا خیر، عددی کامل است که مجموع مقسوم علیههای آن (به جز خودش) با آن عدد برابر باشد. پس از بررسی هر عدد، برنامه باید از کاربر سوال کند که میخواهد بکارش ادامه دهد یا خیر؟
کد:
int x, sum, y;
char c;
Loop:
sum = 0;
printf("Please Enter n : ");
cin >> x;
for (int i = 1; i < x ;i++){
y = x % i;
if (y == 0) sum = sum + i;
}
if (sum == x) cout << "Kamel: " << x << endl;
else cout << "Kaml Nist : " << x << endl;
cout << "Try Again ? Y , N";
c = getch();
if(c == 'Y' || c == 'y'){
system("cls");
goto Loop;
}
برنامهای بنویسید که خروجی زیر را در صفحه نمایش تولید کند.
*
**
***
****
*****
******
کد:
for (int x = 1; x <= 6; x++){
for (int y = 1; y <= x; y++){
cout << "* ";
}
cout << "\n";
}
برنامهای بنویسید که کاراکتری را که نشان دهنده رنگی است از ورودی خوانده، به شما بگوید که چه رنگی را میخواهد انتخاب کند. مثلا اگر کاربر حرف ‘r’ را وارد کرد برنامه به او بگوید که دوست دارد رنگ قرمز را انتخاب کند. برای تمام موارد، حروف کوچک و بزرگ کنترل شود، مثلا ‘r’ و ‘R’برای رنگ قرمز.
کد:
char C;
loop:
cout << "Please Enter First Character Of Color : " << endl;
C = getch();
if (C == 'r' || C == 'R')
cout << "Red";
else if(C == 'g' || C == 'G')
cout << "Green";
else if(C == 'w' || C == 'W')
cout << "White";
else if(C == 'b' || C == 'B')
cout << "Black";
else if (C == 'y' || C == 'Y')
cout << "Yellow";
else{
cout << "Not Find = "<< C << "\nTry Again";
getch();
system("cls");
goto loop;
}
5ـ برنامهای بنویسید که تعداد n جمله از سری فیبوناجی را تولید کند.
سری فیبوناجی= 1 1 2 3 5 8 13 …
کد:
int i, n, x = 1 , y = 1 , temp;
cout << "Please Enter n : ";
cin >> n;
for(i=1 ; i<=n ; i++){
cout << x << " ";
temp = y;
y = x + y;
x = temp;
}
برنامهای بنویسید که دو عدد صحیح مثبت را از ورودی خوانده، آنها را به روش تفریق بر هم، تقسیم کند.
کد:
int i = 1, x, y, temp;
cout << "Please Enter True Number : X and Y " << endl;
cin >> x >> y;
temp = x;
while (x > y){
x = x - y;
i++;
}
cout << temp << " / " << y<< " = " <<i;
برنامهای بنویسید که شماره کارمندی و حقوق تعدادی از کارکنان مؤسسهای را دریافت کرده، بر اساس تعرفه زیر، مالیات حقوق آنها را محاسبه کند و به خروجی ببرد. سپس مشخص کند بیشترین دریافتی مربوط به کدام کارمند است.
از مالیات معاف :
کد:
int id, id_max, n, i;
float s, m, max = 0.0;
cout << "Please Enter Number: ";
cin >> n;
for (i = 1; i <= n; i++){
cout << "Please Enter ID : " << i << endl;
cin >> id;
cout << "Please Enter Salary : " << i << endl;
cin >> s;
if (s <= 400000)
m = 0.0;
else if (s > 400000 && s <= 500000)
m = 0.1*s;
else if(s > 500000 && s <= 700000)
m = 0.15*s;
else if(s > 700000)
m = 0.17*s;
cout << "Maliat = " << m <<endl;
if (s > max){
max = s;
id_max = id;
}
}
cout << "Max = " << id_max << " ID = " << max ;
خروجی دستورات زیر را بنویسید.
کد:
x = 5;
while(--x>0)
cout << x;
اعداد چهار تا یک ار چاپ میکند
دستورات زیر را با for بنویسید.
کد:
int i=1;
while(i<=10)
{
if(i<5 && i!=2)
cout << 'x';
i++
}
کد:
for(int i = 1 ; i <= 10;i++){
if(i < 5 && i != 2)
cout << 'x';
}
برنامهای بنویسید که حاصل عبارت زیر را محاسبه کند .
کد:
int n;
float sum = 1.0;
long fac;
Loop:
cout << "Please Enter n < 10: " << endl;
cin >> n;
if(n >= 10){
system("cls");
cout <<"Try Again ! " << endl;
goto Loop;
}
cout << "1" << endl;
for(int i = 2 ; i <= n ; i++){
cout << "+1 / " << i << "! ";
fac = 1;
for(int x = 1 ; x <= i ; x++)
fac = fac * x;
sum = sum + 1.0/fac;
}
cout << "\nSum = "<< sum;
برنامهای بنویسید که عددی از 1 تا 7 را از ورودی خوانده، روزی از هفته که معادل با آن است در خروجی چاپ کند (با switch).
کد:
int D;
Loop:
cout << "Please Enter Number Of Day 1 . . 7 : ";
cin >> D;
switch (D){
case 1: cout << "Shanbe"; break;
case 2: cout << "1 shanbe"; break;
case 3: cout << "2 shanbe"; break;
case 4: cout << "3 shanbe"; break;
case 5: cout << "4 shanbe"; break;
case 6: cout << "5 shanbe"; break;
case 7: cout << "Jomee"; break;
default:
system("cls");
cout <<"Try Again" << endl;
goto Loop;
break;
}
getch();
برنامهای بنویسید که سال تولد کاربر و سال فعلی را از ورودی خوانده، مشخص کند که او چند سال، چند ماه، چند روز، چند ساعت، چند دقیقه و چند ثانیه عمر کرده است.
کد:
int y1, y2, y, m;
long d, h, mn, s;
cout << "Tarikh Tavalode Khod Ra Vared Konid : ";
cin >> y1;
cout << "Dar Che Sali Hastim : ";
cin >> y2;
y = y2 - y1;
m = y * 12;
d = m * 30;
h = d * 24;
mn = h * 60;
s = mn * 60;
cout << "Age: " << y <<"\nMonths: " << m << "\nDays: " << d << "\nHours: "<< h <<"\nMinutes: " << mn << "\nSeconds: " << s;
برنامهای بنویسید که با استفاده از حلقههای تو در تو خروجی زیر را تولید کند.$$$$$$
$$$$$$
$$$$$$
$$$$$$
کد:
for(int i = 1; i <= 4; i++){
for(int x = 1 ;x <= 6; x++)
cout << "$";
cout << "\n";
}
برنامهای بنویسید که دو مقدار اعشاری را از ورودی خوانده و تفاضل حاصلضرب و حاصل تقسیم آنها را محاسبه کرده و به خروجی ببرد. برنامه وقتی خاتمه مییابد که هر دو عدد اعشاری صفر باشند.
کد:
float a , b ,x ;
while (true){
cout << "Please Enter float a : ";
cin >> a ;
cout << "Please Enter float b : ";
cin >> b ;
if(a == 0 && b == 0) break;
x = (a*b) - (a/b);
cout << "result = " << x << endl ;
}
cout << "\nEnd";
برنامهای بنویسید که یک عدد اعشاری مثل 643.21 را خوانده، وارون آن را بیابد. وارون این عدد 12.346 است.
کد:
const int k = 100;
char ch[k];
int len = 0;
cout << "Please Enter Number : ";
cin >> ch;
len = strlen(ch) - 1;
while(len >=0){
cout << ch[len];
len--;
}
برنامهای بنویسید که یک عدد اعشاری را از ورودی خوانده، هر یک از قسمتهای صحیح و اعشاری آنرا به صورت یک عدد صحیح به خروجی ببرد. به عنوان مثال، عدد 13.42 به صورت دو عدد صحیح 13 و 42 به خروجی ببرد.
کد:
const int k = 100;
char ch[k];
int len = 0,n = 0;
string str;
cout << "Please Enter Number : ";
cin >> ch;
len = strlen(ch);
while(len >= n){
if(ch[n] != '.')
str += ch[n];
else{
cout << str << endl;
str = "";
}
n++;
}
cout << str << endl;