انواع ساختارها در زبان C – ساختار شرط if
انواع ساختار در C – ساختار شرط if در C
تمامی برنامه هایی که نوشته میشه 3 ساختار کلی دارن :
انواع ساختار در C :
1 –ساختار ترتیب: همان اجرای دستورات بصورت پشت سرهم است.
2 –ساختار شرط یا انتخاب: به برنامه نویس اجازه میدهد که براساس درستی یا نادرستی یک شرط تصمیم بگیرد کدام مجموعه از دستورات اجرا شود.
3 –ساختار تکرار(حلقه ها): به برنامه نویس اجازه میدهد مجموعه خاصی از دستورات را تا زمانیکه شرط خاصی برقرار است، تکرار نماید.
در انواع ساختار در C، ابتدا با ساختار شرط و if قراره آشنا بشیم.
دستور if یا شرط در C:
با مکانیزم شرط میتونیم درستی یا نادرستی یک عبارت رو بررسی کنیم و متناسب با نتیجه بررسی شرط عملیات خاصی رو انجام بدیم یا از انجام بعضی از عملیات صرفنظر کنیم. شکل کلی دستور شرط بصورت زیره:
1 2 3 4 5 6 7 8 |
if (شرط یا شروط) { مجموعه دستورات; } else { مجموعه دستورات; } |
یا ممکنه از دوستور else استفاده نکنیم.
1 2 3 4 |
if (شرط یا شروط) { مجموعه دستورات; } |
else در دستور IF چیست و چه کاربردی دارد؟
اگرشرط روبروي if (چیزی که داخل پرانتز نوشتین) برقرار باشه مجموعه ی دستورات داخل if اجرا میشه واگر شرط برقرار نباشه مجموعه دستورات داخل else اجرا میشه.
نکته: اگر مجموعه دستورات if شامل فقط یک دستور باشه نیازي به { } نداریم.
شرطهای تو در تو :
شکل کلی شرط های تو در تو بصورت زیره.
1 2 3 4 5 6 7 8 9 10 |
if (1شرط) { if(2شرط) دستورات 1; else دستورات 2; } else دستورات 3; |
نکته: در شرط های تو در تو هر else مربوط به نزدیکترین if است.
مثال1 : برنامه ای بنویسید که عددی را از ورودی دریافت کنه و زوج یا فرد بودن اون رو مشخص و درخروجی پیغام مناسب با اون رو چاپ کنه.
(کد رو در Devcpp بنویسید بعد کد من رو نگاه کنید، با صرفا خوندن ، کدنویسی یاد نمیگیرین.تمرین میخاد 😉 )
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdio.h> #include <conio.h> main( ) { int x; scanf ("%d", &x ); if(x % 2 ==0) printf("addad Zoj ast") ; else printf("addad fard ast") ; } |
مثال2 : برنامه اي بنویسید که ماکسیمم سه عدد را محاسبه و چاپ نماید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> #include <conio.h> main(){ int a,b,c,max; printf("3 addad Vared konid= "); scanf("%d %d %d",&a,&b,&c); max=a; if (b>max) max = b; if (c>max) max = c; printf("%d \n",max); } |
مثال 3 : برنامه بالا را با استفاده از شرطهای تو در تو بنویسید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include<stdio.h> #include<conio.h> main() { int a,b,c,max; scanf("%d %d %d", &a, &b, &c); if (a>b) { if (a > c ) max = a; else max=c; } else { if (b > c ) max = b; else max=c; } printf ("%d ", max); } |
برنامه ی حل معادله درجه 2 :
مثال4 :برنامه ای بنویسید که ضرایب یک معادله درجه 2 را دریافت و ریشه هاي آن را محاسبه و چاپ نماید.
جواب:الگوریتم رو اینطوری در نظر بگیرید که یک معادله درجه 2 بصورت c+bx+a^2x وجود داره که اگر مقدار 0=a باشد دیگر معادله درجه 2 نیسـت و 2 معادله برحسب اینکه دلتا یعنی b^2-4ac مقدارش منفی، مثبت یا صفر باشد جوابهای مختلف دارد. اگـر مقدار دلتا
منفی باشد معادله جواب ندارد، اگر مقدار دلتا صفر باشد معادله یک جواب دارد و اگر مقدار دلتا مثبت باشد معادله دو جواب دارد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include<stdio.h> #include<conio.h> # include <stdlib.h> # include <math.h> main() { int a, b, c; float x1, x2, delta; printf ("Please enter a, b and c : "); scanf ("%d %d %d", &a, &b, &c); if (a==0) { printf ("wrong equation!"); exit(1);//javab nadarad va khoroj az barname } delta = b*b - 4*a*c;//bedast avardan delta if (delta < 0) printf("No answer !"); else if (delta == 0) { x1 = -b / (2*a); printf("There is one answer, x = %f",x1); } else { delta = sqrt(delta); //ba dastoor sqrt az delta Jazr migirim x1 = (-b+delta) / (2*a); x2 = (-b-delta) / (2*a); printf ("There are two answers, x1= %4.2f and x2 = %4.2f", x1, x2); } } |
مثال آخر برای توضیح بخش انواع ساختار در C و ساختار شرط مقداری طولانی هست ، اما پیچیدگی در الگوریتمش وجود نداره پس نترسین 😀 ، فقط توجه داشته باشین برای استفاده از تابه exit (که باعث میشه برنامه دیگه ادامه پیدا نکنه) از هدرفایل stdlib.h استفاده کردیم و برای تایع sqrt هم که عملیات جزر رو انجام میده از تابع math.h استفاده کردیم.
اگر 2 شرط داشتیم در if چگونه شرط گذاری کنیم؟
بطور مثال در یک برنامه باید 2 شرط رو همزمان چک کنیم.
اینطور مواقع 2 راه داریم.
یا از شروط تو در تو استفاده کنیم و یا شرط هارو با عملگرهای منطقی and یا or کنیم.
عملگرهای منطقی در c:
AND
OR
NOT
&&
||
!
and به معنی “وَ” هستش. یعنی شرط اول و دوم باید صحیح باشه.
or به معنی “یا” هستش. یعنی یکی از 2 شروط باید صحیح باشه تا شرط صحیح باشه و اگر یکی از 2 شرط درست باشه دستورات اجرا خواهند شد.
مثال 5:
برنامه ای بنویسید که فرد یا زوج بودن عدد ورودی را اعلام کند و همچنین اگر عدد زوج بود کوچکتر از ده یا بزرگتر از ده بودن آن را مشخص کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> #include <conio.h> main() { int x; scanf ("%d", &x ); if(x % 2 ==0 && x>10) printf("addad Zoj va bozorgtar az 10 ast") ; else if(x % 2 ==0 && x<10) printf("addad Zoj va koochektar az 10 ast") ; else { printf("addad fard ast") ; } } |
بیشتر بدانیم طور : 😀
! با نام عملگر نات یا منفی یکی دیگر از عملگرهای c است.
این عملگر وظیفه ی متفاوتی از 2 عملگر قبلی داره .
این عملگر مقدار رو عکس میکنه.
مثلا عدد a=10 تعریف شده ، اگر در شرطی بنویسیم :
1 |
if(!a<10<em>)</em> |
در شرط مقدار نات شده(معکوس شده) a! یعنی -10 رو بررسی میکنه.
بجز در شرط ها متغیر رو معکوس هم میشه کرد :
1 |
int a=10; a=!a;//a mosavi -10 mishavad! |
در جلسات بعدی ساختار while و حلقه (for) رو هم توضیح میدم.
سلام
آموزشتون واقعا عالی
می خواستم بدونم با if فقط یک شرط میشه نوشت و نمی شه با یک if چندتا شرط نوشت ؟
و آموزش c هم تو سایتتون کامله ؟
سلام.
به پایان مطلب اضافه کردم سوالتون رو.
بجز رشته ها بله همه ی ساختار زبان C رو توضیح دادم ولی کامل رو نمیشه تایید کرد. برای کسی که بخواد با این زبون آشنا بشه مخصوصا دانشجویان برق بله کامل هستش اما برای دانشجویان کامپیوتر که بعد از ساختار باید وارد محیط شی گرایی و c++ بشن خیر. (برای کاردانی کامپیوتر هم تا حدود زیادی میشه گفت کامل هستش.)
وب سایتت و آموزشات واقعا عالی بود مرسی
خوبه که مفید بوده براتون . خواهش میکنم 🙂