حالا کمک کنید ما برنامه هاشا بتونیم حل کنیم
حالا کمک کنید ما برنامه هاشا بتونیم حل کنیم
تمرینات فصل اول:
1ـ ویژگیهای مهم زبان C را توصیف کنید.
جواب:زبان C یک زبان میانی است. برنامه های این زبان از قابلیت بالایی برخوردارند. دستورالعمل های این زبان به زبان انسان نزدیک است. زبان C یک زبان ساخت یافته است.
2ـ ضرورت وجود توضیحات را در برنامه بیان کرده، روش اعلان توضیحات را در C تشریح کنید.
جواب: توضیحات در برنامه برای بازبینی برنامه بسیار مفیدند و به برنامه نویس کمک می کنند تا هدف از هر دستور برنامه را درک کرده و تشریح عملکرد برنامه را ساده می کند. توضیحات در زبان C می توانند در بین */ و /* قرار گیرند و یا بعد از // ظاهر شوند:
/*This is a sample comment */
// This is another sample comment
3ـ هدف از انواع داده چیست؟ انواع داده ها را در C تشریح کنید.
جواب: هدف از برنامه نویسی، ورود داده ها به کامپیوتر، پردازش داده ها و استخراج نتایج است. لذا داده ها نقش مهمی را در برنامه نویسی ایفا می کنند. یکی از جنبه های زبانهای برنامه سازی که باید دقیقا مورد بررسی قرار گیرد انواع داده هایی است که آن زبان با آنها سروکار دارد.
در زبان C پنج نوع داده وجود دارند که عبارتند از: double, float, int, char و void. هر یک از انواع داده ها مقادیری را می پذیرند که ممکن است از پردازنده ای (cpu) به پردازنده دیگر متفاوت باشد.
char: برای داده های کاراکتری – int: برای ذخیره اعداد صحیح
float: برای اعداد اعشاری – double: برای اعداد اعشاری بزرگ
Void: برای توابعی که خروجی ندارند و یا هیچ آرگوکانی را به عنوان ورودی دریافت نمی کنند.
4ـ تعریف متغیرها و چگونگی مقداردهی به آنها را بیان کنید.
جواب: متغیرها محل ذخیره داده ها هستند و چون داده ها دارای نوع اند، متغیرها نیز باید دارای نوع باشند. به عبارت دیگر متغیرهای فاقد نوع در C شناخته شده نیستند. قبل از به کار گرفتن متغیرها، باید نوع آنها را مشخص کرد. نوع متغیر، مقادیری را که متغیر می تواند بپذیرد و اعمالی را که می توانند بر روی آن مقادیر انجام شوند، مشخص می کند. تعیین نوع متغیر را تعریف متغیر گویند. برای تعیین نوع متغیر، به صورت زیر عمل می شود:
نام متغیر نوع داده;
برای مقدار دادن به متغیرها به سه روش می توان عمل کرد:
1ـ هنگام تعریف (تعیین نوع) متغیر
2ـ پس از تعریف نوع متغیر و با دستور انتساب (=)
3ـ دستورات ورودی
5ـ ثوابت را تعریف کرده، چگونگی تعیین آنها را در C بیان کنید. به نظر شما استفاده از ثوابت در برنامه چه امتیازاتی دارد؟
جواب: ثوابت مقادیری هستند که در برنامه وجود دارند ولی قابل تغییر نیستند.
برای تعریف ثوابت به دو روش عمل می شود:
1ـ استفاده از دستور #define : برای تعریف از طریق این دستور به صورت زیر عمل می شود:
#define< نام ثابت> < مقدار >
مثال: #define pl 3.14
2ـ با استفاده از دستور const : برای تعریف از طریق این دستور به صورت زیر عمل می شود:
# const < نوع داده>< نام ثابت> = < مقدار >
مثال: #const int count = 50;
6ـ دستوراتی بنویسید که متغیرهای x و y را از انواع int و متغیرهایd, ch را از نوع double و ثابت k را از نوع unsigned و با مقدار اولیه 20 تعریف کند.
Int x,y;
Double d , ch;
Unsigned int k = 20;
7ـ منظور از عملگر چیست؟ به نظر شما کاربرد عملگرهای ++ و - - چه امتیازاتی دارد؟
جواب: عملگرها نمادهایی هستند که اعمال خاصی را انجام می دهند. عملگرها در زبان C به چند دسته تقسیم می شوند:
1ـ عملگرهای محاسباتی 2ـ عملگرهای رابطه ای 3ـ عملگرهای منطقی 4ـ عملگرهای بیتی.
عملگر ++ را عملگر افزایشی و عملگر - - را عملگر کاهشی می گویند که اگر این عملگرها قبل از عملوند قرار گیرند ابتدا یک واحد به عملوند اضافه و یا کاسته میشود و بعد نتیجه در عملیات محاسباتی شرکت می کند. اما اگر بعد از عملوند قرار گیرند ابتدا عملوند در عملیات محاسباتی شرکت می کنند و بعد از انجام محاسبات یک واحد به عملوند اضافه و یا یک واحد از آن کاسته می شود.
8ـ منظور از تقدم عملگرها چیست؟ مثال بزنید.
جواب: وقتی در یک عبارت چند عملگر وجود داشته باشد ترتیب اجرای عملگرها به ترتیب زیر می باشد:
( ) بالاترین تقدم
! ~ ++ -- size of
* / %
+ -
<< >>
<<== >>==
=== !=
&
^
|
&&
||
?
= += -= /= %= پائین ترین تقدم
عملگرهایی که در یک سطر قرار دارند عملگرهایی هستند که تقدم آنها یکسان است و نسبت به هم تقدم مکانی دارند و در تقدم پرانتزهای تو در تو باید گفت که داخلی ترین پرانتز محاسبه میشود.
مثال:
1: 4*2 = 8
2: 3+1 = 4
3: 8/4 = 2
4: 7–2 = 5
5: 6+5 = 11
6: 11+2 = 13
9ـ مثالی بزنید که در آن از عملگرهای بیتی استفاده شده باشد؟
xyx^yx|yx&y~x000001011101101100110110عملوندعملوندعملگر XORعملگر ORعملگر ANDعملگر NOT
10ـ نقش عملگر ؟ را بیان کنید.
جواب: این عملگر عبارتی را ارزیابی کرده، بر اساس ارزش آن عبارت (درستی یا نادرستی)، نتیجه عبارت دیگر را در متغیری قرار میدهد.
11ـ مثالهایی از تبدیل انواع در احکام انتساب و تبدیل انواع در عبارات محاسباتی ارائه دهید.
جواب: تبدیل انواع در زبان C از دو جهت قابل بررسی است: 1ـ تبدیل انواع در عبارات محاسباتی 2ـ تبدیل انواع در احکام انتساب
1ـ تبدیل انواع در عبارات محاسباتی
مثال:
char ch;
int i ;
float f;
double d;
2ـ تبدیل انواع در احکام انتساب
مثال:
int x;
char ch;
float f;
…
ch = x;
x = f;
f = ch;
f = x;
12ـ قوانین حاکم بر تبدیل انواع در عبارات محاسباتی را بیان کنید.
جواب: قانون کلی آن است که انواع کوچکتر به انواع بزرگتر تبدیل می شود.
13ـ تشریح کنید که در چه مواقعی ممکن است در تبدیل انواع در احکام انتساب، اطلاعات از بین برود؟
جواب: در مواقعی که یک نوع داده بزرگتر به یک نوع داده کوچکتر تبدیل میشود ممکن است مقداری از اطلاعات از بین برود چون نوع دادهی بزرگتر بیتهای بیشتری را اشغال میکند، در تبدیل به نوع دادهی کوچکتر تعدادی از بیتها (بیتهای با ارزش) ذخیره نمیّشود.
14ـ فرمولهای زیر را به صورت عباراتی در C بنویسید.
1)x = è x=(y*2)/(m+p)
2)y = x + m2 -è y=x+(m*m)-k/(r+2)
15ـ با توجه به مقادیر تعیین شده هر یک از عبارات زیر را ارزیابی کنید.
16ـ با توجه به مقادیر زیر مقدار y چند است؟
x = 8 , m = 6
y = x * 2 < m + 4 ? 4 * m : 8 * m
جواب: برای حل مسئله ابتدا باید به قانون عملگر ؟ توجه کرد.
X × 2 = 8 × 2 = 16
m + 4 = 6 + 4 = 10
X × 2 < m + 4
چون نامساوی این دستور برقرار نیست در نتیجه مقدار 8 * m در y ذخیره میشود.
y = 8 × m
y = 8 × 6 = 48
17ـ مراحل ایجاد برنامه را تشریح کنید.
جواب:
1ـ تعیین نیازمندیهای مسئله
2ـ تحلیل مسئله
3ـ طراحی الگوریتم حل مسئله
·خواندن دادهها
·انجام محاسبات
·چاپ نتایج
4ـ پیادهسازی الگوریتم
5ـ تست و کنترل برنامه
6ـ نگهداری و نوسازی برنامه
18ـ برای مسئله زیر مراحل ایجاد برنامه را طی کنید:
دانش آموزی میخواهد معدل 5 نمره خود را محاسبه کند.
جواب:
1ـ نیازهای مسئله: داشتن 5 نمره دانشآموز
2ـ تحلیل مسئله: روش بدست آوردن معدل 5 نمره دانشآمور
3ـ طراحی الگوریتم:
·خواندن دادهها: 5 نمره را از ورودی دریافت کند
·انجام محاسبات: بدست آوردن معدل 5 نمره
·چاپ نتایج: معدل را در خروجی چاپ کند
4ـ پیادهسازی الگوریتم: تبدیل الگوریتم بدست آمده به برنامه از طریق کدنویسی
5ـ تست و کنترل برنامه: باید کل برنامه تست شود تا مشخص شود که آیا تمام خواستهها را برآورده میکند یا خیر
6ـ نگهداری و نوسازی برنامه: شامل اصلاح برنامه جهت حذف خطاهای قبلی و نوسازی آن جهت پاسخگویی به نیازهای فعلی است.
تمرینات فصل دوم:
1ـ فایل سرآیند به چه منظور مورد استفاده قرار میگیرند و امتیازات استفاده از آنها را بیان کنید.
جواب:به همراه کامپلر زبان C علاوه بر تابع main()، توابع از قبل نوشته شدهای ارائه میشوند که بسیاری از اعمال در برنامهنویسی C توسط این توابع از پیش نوشته شده انجام میشوند. این توابع در تعدادی از فایلها به نام فایلهای سرآیند قرار دارند. پسوند این فایلها .h است. مزیت استفاده از این فایلها آن است که برنامه نویس میتواند در برنامه خود با فراخوانی توابع از قبل نوشته شده اعمالی را انجام دهد و نیازی به نوشتن آنها ندارد.
2ـ شکل کلی یک برنامه در C را بیان کرده و هر بخش را توصیف نمائید.
جواب: برنامههای زبان C از مجموعهای از دستورات و تعدادی تابع تشکیل میشود. هر تابع برای حل بخشی از مسئله نوشته میشود و دارای نام است. بدنهی اصلی برنامه تابعی به نام main() است و علاوه بر آن توابع دیگر از قبل نوشته شده و در تعدادی فایل به نام فایلهای سرآیند قرار دارند پسوند این فایلها .h است.
3ـ برنامهی زیر چه اشکالی دارد؟ سعی کنید آن را تایپ و اجرا کنید تا به اشکال آن پی ببرید.
#include≤stdio.h>جواب: اشکال این برنامه این است که بعد از تابع main() سمی کالن ( گذاشته شده است.
main();
{
printf(“keep looking !”);
printf(“you\’|| find it”);
return(0)
}
4ـ برنامهای بنویسید که خروجی زیر را تولید کند.
The answer to the question of
life, The universe and everything is 42.
جواب:
#include≤stdio.h>
#include≤conio.h>
main()
{
clrscr();
printf(“The answer to the question of \n”);
printf(“life, The universe and everything is 42.”);
return(0)
}
5ـ برنامهای بنویسید که مقدار X را از ورودی خوانده، عبارت زیر را محاسبه کند:
y = 1/(X2 × X + 3)
جواب:
#include≤stdio.h>
#include≤conio.h>
main()
{
float x,y;
clrscr();
printf(“\n Please enter your X: ”);
scanf(“%f” , &x);
y = 1/(x*x+x+3);
printf(“\n X is: %f , Y is: %f” , x,y);
getch();
return(0)
}
6ـ خروجی دستورات زیر چیست؟
number = (1/3)*3;
printf(“(1/3)*3 is equal to %5.2 f , number);
جواب: خروجی این برنامه (1/3)*3 is equal to 0.00 میباشد.
7ـ برنامهای بنویسید که وزن کالایی را برحسب کیلوگرم دریافت کرده، وزن آن را برحسب گرم در خروجی چاپ کند.
جواب:
kg: وزن به کیلوگرم
g: وزن به گرم
#include≤stdio.h>
#include≤conio.h>
main()
{
float kg , g;
clrscr();
printf(“\n Enter weight by kg: “);
scanf(“%f” ,&kg);
g = kg * 1000;
printf(“\n The weight by g is: %f” ,g);
getch();
return(0)
}
8ـ شرکتی به هر یک از دو نفر از متخصصین خود، ماهانه 750000 ریال پرداخت میکند. او میخواهد بداند که اگر 5/13 درصد به حقوق هر کدام اضافه کند. سالانه چقدر به هزینه شرکت اضافه میشود. برنامهای بنویسید که این کار را برای شرکت انجام دهد.
جواب:
x = حقوق ماهانه 2 نفر × 13.5
y = x × 12
z = y × 2
x: مقدار اضافه حقوق ماهیانه
y: مقدار اضافه حقوق سالیانه
z: مقدار هزینهی شرکت در یک سال
#include≤stdio.h>
#include≤conio.h>
main()
{
float x , y, z;
clrscr();
x = 750000 * 13.5;
y = x * 12;
z = y * 2;
printf(“\n It is= %f “,z);
getch();
return(0)
}
9ـ در شرکتی، سالانه 150 بسته کاغذ A4 مصرف میشود. در پایان سال، این شرکت میخواهد بداند که در سال آینده چقدر باید برای این بخش از تجهیزات اداری، هزینه کند. برنامهای بنویسید که قسمت این اقلام را در امسال از ورودی خوانده، با خواندن نرخ تورم در سال آینده هزینه شرکت را در این بخش محاسبه نماید و به خروجی ببرد. تورم به صورت درصد وارد میشود که برنامه باید آن را به یک مقدار اعشار تبدیل کند. مثلا اگر تورم را به صورت 6/5 از ورودی بخواند باید آن را به صورت 056/0 به کار ببرد.
جواب:
x: قیمت یک خودکار (تمام خودکارها)
y: قیمت یک بسته کاغذ A4 (تمام خودکارها)
T: نرخ تورم (که باید بصورت درصد در محاسبات به کار رود.)
A: هزینهی کالاها در سال جاری
B: هزینه کالاها در سال آینده
#include≤stdio.h>
#include≤conio.h>
main()
{
float x , y, A, B, T;
clrscr();
printf(“\n Enter your x, y, T : “);
scanf(“%f%f%f” ,&x ,&y ,&T);
x = x * 150;
y = y * 50
T = T * 0.01;
A = x + y;
B = A + A * T;
printf(“\n it is : %f” ,B);
getch();
return(0)
}
10ـ برنامهای بنویسید که ارتفاع و قاعده مثلثی را از ورودی خوانده مساحت آن را محاسبه کرده به خروجی ببرد.
جواب:
قاعده × ارتفاع × 2/1 = مساحت
x: قاعده مثلث
y: ارتفاع مثلث
s: مساحت مثلث
#include≤stdio.h>
#include≤conio.h>
main()
{
float x , y, s;
clrscr();
printf(“\n Enter your x, y: “);
scanf(“%f%f” ,&x ,&y);
s = (1./2.) * x * y;
printf(“\n S is : %f” ,s);
getch();
return(0)
}
11ـ وزن یک مولکول آب 3/0 × 10-23 گرم و وزن یک لیتر آب در حدود 950 گرم است. برنامهای بنویسید که وزن آب را بر حسب لیتر از ورودی خوانده، تعداد مولکولهای آن را محاسبه کند.
جواب:
950 × وزن آب (لیتر) = وزن آب (گرم)
/ وزن آب (گرم) = تعداد مولکولها3/0 × 10-23
#include≤stdio.h>
#include≤conio.h>
#include≤math.h>
main()
{
float wl , wg, s, M;
clrscr();
printf(“\n Enter weight of water: “);
scanf(“%f” ,&wl);
wg = wl * 950;
M = wg / 3.0 * pow(10.0 , -23);
printf(“\n M is : %f” ,M);
getch();
return(0)
}
12ـ هر سال برابر با 3.156 × 107 ثانیه است. برنامه ای بنویسید که سن شما را دریافت کرده و به ثانیه تبدیل کند.
جواب:
تعداد ثانیههای هر سال × مقدار سن به سال = مقدار سن به ثانیه
age: مقدار سن به سال
s: مقدار سن به ثانیه
#include≤stdio.h>
#include≤conio.h>
#include≤math.h>
main()
{
float age , s;
clrscr();
printf(“\n Enter your age: “);
scanf(“%f” ,&age);
s = age * 3.156 * Pow(10.0 , 7);
printf(“\n s is : %f” ,s);
getch();
return(0)
}
Last edited by amir1365d; 30-05-2009 at 11:56.
شرمنده هر کاری کردم نشد درست بنویسم دیگه به این شکل در اومد شرمنده تمامی دوستان
نوشته شده توسط amir1365d [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ممنون دوست عزیز
من این کتابو برای یه دوست می خوام
کلا چند فصله؟ شما فایل pdf ندارین؟؟
سلام pdf نداره اگه هم داشته باشه تا حالا من ندیدم ولی تعداد صفحاتش زیاده
سلام يه سري به سايت انتشارات مهندس جعفرنزاد قمي بزننوشته شده توسط saeedeh1363 [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگه كسي حل تمرينات جاوا از جعفرنژاد قمي رو داره بذاره كه خيلي لازمه ممنون از همتون
حل تمرین شماره 24 از کتاب طراحی الگوریتم جعفر نژاد قمی
تمرین 15 فصل اول برنامه سازی به زبان c رو جوابش رو قرار بدین .ممنون
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)