پاسخ تمرینات مربوط به آموزش سی

وضعیت
موضوع بسته شده است.

dark-man

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

موفق باشید
 

dark-man

Member
پاسخ تمرینات بخش اول

تمرین 1-:

کد:
[left]
#include <stdio.h>
#include <conio.h>
void main ()
{
printf("Welcome to Majid Online Forum");
getch ();
}
[/left]

تمرین 2-:

کد:
[left]
#include <stdio.h>
#include <conio.h>
void main ()
{
int a;
printf("Enter your age \n");
scanf("%d",&a);
printf("you are %d years old",a);
getch ();
}
[/left]

تمرین 3-:
کد:
[left]
#include <stdio.h>
#include <conio.h>
void main ()
{
int x,y;
scanf("%d".&x);
y=3*x+6;
printf("%d".y);
getch ();
}
[/left]

تمرین 4-:

کد:
[left]
#include <stdio.h>
#include <conio.h>
void main ()
{
int a,b,c,d;
printf("Tool va Arz  ra vared konid: \n");
scanf("%d%d",&a,&b);
c=(a+b)*2;
d=a*b;
printf("Mohit= %d",c);
printf("\nMasahat=%d",d);
getch ();
}

[/left]
 

dark-man

Member
پاسخ تمرین شماره 5

تمرین مربوط به حلقه ها :

کاربرد متغیر ها در این 3 برنامه :


متغیر num برای خواندن اعداد از ورودی
متغیر i برای شمارشگر حلقه ها
متغیر sum برای محاسبه مجموع اعداد وروی
متغیر avg برای محاسبه میانگین

===============================================

با حلقه for :
کد:
[left]

#include <stdio.h>
# include <conio.h>
void main ()
{
int i,sum,num;
float avg;
sum=0;
avg=0;
for(i-0;i<50;i++)
{
printf("Enter number ");
scanf("%d",&num);
sum+=num;
}
avg=(float)sum/50;
printf("%f",avg);
getch ();
}

[/left]
===========================================
با حلقه while :
کد:
[left]
#include <stdio.h>
# include <conio.h>
void main ()
{
int i=0,sum,num;
float avg;
sum=0;
avg=0;
while(i<50);
{
printf("Enter number ");
scanf("%d",&num);
sum+=num;
i++;
}
avg=(float)sum/50;
printf("%f",avg);
getch ();
[/left]
=====================================
با حلقه do while :
کد:
[left]
#include <stdio.h>
# include <conio.h>
void main ()
{
int i=0,sum,num;
float avg;
sum=0;
avg=0;
do{
printf("Enter number ");
scanf("%d",&num);
sum+=num;
i++;
}while(i<50);
avg=(float)sum/50;
printf("%f",avg);
getch ();
}

[/left]



--------------------------------------------------------------------------------
من توضیحات را فقط در مورد حلقه for می دهم ...امیدوارم شما بتوانید بقیه حلقه ها را بدون مشکل متوجه شوید


باید در ابتدا برنامه را نوشت و سپس با توجه به توابع کتابخانه ای فایل های سر آیند را تعریف کرد ولی خوب چون من از قبل به شما گفته بودم که کوچکترین برنامه ها (که حتی فقط یک دستور چاپ یا خواندن ) داشته باشد باید از 2 فایل سرآیند زیر استفاده کنیم و دستور بر نگرداندن چیزی به تابع اصلی را هم می نویسیم و برنامه را شروع می کنیم :
کد:
[left]

#include <stdio.h>
# include <conio.h>
void main ()
{

[/left]

متغیر ها را با توجه به نیازمان تعریف می کنیم :
کد:
[left]
int i,sum,num;
float avg;
[/left]

توجه کنید همیشه ب خاطر داشته باشید که هنگامی که یک متغیری را بوجود آوردید و قصد داشتید عدد یا اعدادی را با آن جمع تفریق و... کنید حتما ابتدا آن متغیر را برابر صفر قرار دهید و سپس کار های مورد نیازتان را با متغیر انجام دهید ...........(دوستان سعی کنید یک بار بدون صفر کردن این کار را انجام دهند تا ببینند که به چه مشکلی بر خواهید خورد ...در همین تمرین امتحان کنید .......):
کد:
[left]

sum=0;
avg=0;

[/left]

حال حلقه خود را با شرط های لازم تععین می کنیم و زیر آن نیز دستورات لازم را وارد می کنیم :
کد:
[left]

for(i-0;i<50;i++)
{
printf("Enter number ");
scanf("%d",&num);
sum+=num;
}

[/left]

در پایان نیز مقدار مجموع را بر 50 تقسیم می کنیم تا میانگین به دست آید و آن را در متغیر مربوط می ریزیم و چاپ می کنیم و....(دوستان خواهشمندم حتما نکته مربوط به این تمرین که در پست بعد از این تمرین است را ملاحظه فرمایید ):
کد:
[left]
avg=(float)sum/50;
printf("%f",avg);
getch ();
}

[/left]
 

dark-man

Member
نکته ای با توجه به تمرین 5

نکته جالب :

به تکه کد زیر که در پست بالا (جواب تمرین 5) آمده است توجه کنید :
کد:
[left]

avg=(float)sum/50;

[/left]




به کار بردن واژه float در اینجا به این معناست که برنامه مقدار اعشاری حاصل تقسیم sum بر 50 را در avg بریزد ...علت این کار این است که چون avg متغیری از نوع float می باشد ولی 50 و sum هر دو از نوع int هستند........... ولی ممکن است حاصل تقسیم این دو بر هم مقداری اعشاری به دست آید و اگر ما این کار را نکنیم برنامه مقدار اعشار آن را برابر صفر در نظر می گیرد .....بنابر این ما از دستور float پیش از عبارت استفاده کردیم تا به برنامه بگوییم مقدار اعشاری این عبارت را درون متغیر مورد نظر ما بریزد ............امیدوارم متوجه شده باشید ......


موفق باشید
 

***UNIQUE***

Active Member
پاسخ تمرین شماره 9

تمرین 9
کد:
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
	int car[3],i;
	float charge[3];

   for(i = 0;i<3;i++)
   {
		cout<<"Enter time for car "<<i+1<<": ";
		cin>>car[i];
   }
	cout<<setw(7)<<"Car"<<setw(7)<<"Hours"<<setw(7)<<"Charge"<<endl;
   for(i = 0;i<3;i++)
   {
		if(car[i] <=3 )
			charge[i] = 2;
		else if(car[i] == 24)
			charge[i] = 10;
		else if((car[i]>3)&&(car[i]<24))
			charge[i] = 2 + ((car[i]-3) * 0.5);
		else
		{
			cout<<"Invalid number for car "<<i+1<<"!";
			exit(1);
		}
  	cout<<setw(7)<<"Car "<<i+1<<setw(7)<<car[i]<<setw(7)
		 <<setprecision(3)<<setiosflags(ios::fixed|ios::showpoint)
       <<charge[i]<<endl;
   }
	cout<<setw(7)<<"Total"<<setw(7)<<car[1]+car[2]+car[3]<<setw(7)
		 <<setprecision(3)<<setiosflags(ios::fixed|ios::showpoint)
       <<charge[1]+charge[2]+charge[3]<<endl;
   getch();
	return 0;
}
موفق باشید
 
آخرین ویرایش:

***UNIQUE***

Active Member
نمونه برنامه ++c

با اجازه جناب darkman یک نمونه برنامه ساده برای مواردی که تا حالا آموزشش رو گذاشتن من اینجا میذارم
موفق باشید
 

پیوست ها

  • tertle.rar
    32.4 کیلوبایت · بازدیدها: 24
وضعیت
موضوع بسته شده است.

جدیدترین ارسال ها

بالا