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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: آموزش برنامه نویسی به زبان C  (دفعات بازدید: 11050 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
آموزش برنامه نویسی به زبان C
« : 22 خرداد 1395، 07:44 ب‌ظ »
به نام خداوند جان و خرد     کزین برتر اندیشه برنگذرد

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

سلام . امیر هستم :oops: و قصد دارم در این تاپیک با هم زبان برنامه نویسی سی رو با هم بررسی کنیم و با هم یاد بگیریم

خب در ابتدا یه عذر خواهی کوچولو هم بکنم که نمیدونم طرز کار با  ویکی چطوری هستش و در آینده خیلی نزدیک آموزش ها رو به اونجا هم انتقال خواهم داد :-\" :^o

سنت شکنی نمیکنم و توضیح مختصر و مفید درباره این زبان برنامه نویسی بدم ::)

زبان  c زبان برنامه نویسی سطح بالایی است که در سال ۱۹۷۲ توسط مستر دنیس ریچی در آزمایشگاه بل از شرکت تلفن و تلگراف آمریکا AT&T ساخته شد . از اونجایی که c برای نوشتن سیستم عامل یونیکس طراحی شده بود بهمین خاطر در ابتدا فقط در سیستم های مختلف کامپیواری استفاده میشد  . با این وجود طی سال های متمادی با افزایش قدرت و انعطاف پذیری  C  و موازی با این اتفاقات کامپایلر های هوشمندی که برای این زبان بوجود میامد این زبان رو به یک زبان محبوب و همه پسند تبدیل کرد.


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

من خودم (کسی هم نیستم) از کامپایلر gcc که از طریق ترمینال هم میتوینم ازش استفاده کنیم و با یه ادیتور متن که انواع زیادی هم داره مثل gedit , vi , vim , mousepad , … ولی من از Gedit استفاده میکنم شما هم هر چی رو که دوست داشتین انتخاب کنید و استفاده کنید

در ادامه بیشتر آشنا میشیم و یاد میگیریم که یه فایل c. ایجاد کنیم و کامپایل کنیم

نکته )‌ محیط کدنویسی Code::Block هم یک محیط کدنویسی خیلی خوب هس که برای لینوکس و ویندوز (!) قابل استفاده هست:)

اینو هم اضافه کنم که منبع من کتاب هانلی – کافمن هست

اطلاعات بیشتر درباره زبان برنامه نویسی c هم دانشنامه ویکی پدیا
https://fa.wikipedia.org/wiki/%D8%B3%DB%8C_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)
برای شروع فک میکنم کافی باشه :-X

اگه نظر و انتقادی دارید لطفا لطفا لطفا خواهش میکنم از طریق پیام خصوصی درمیان بزارین \\:D/ خیلی خوشحال میشم اشتباه که بسیار زیاده خوشحال میشم با کمک شما اشتباهات رو تصحیح کنم (در اینجا قصد یاد گرفتنه)


سربلند و پیروز باشید

در پناه حق :)

پ.ن ۱ :‌ با تشکر از دوستمون آقا koosha بخاطر نکته ی بجایی که فرمودن . زبان C امروزه زبانی سطح میانی شناخته میشه چون این کتاب برای سال های پیشه و من نخواستم مقدمه ی کتاب رو دستکاری کنم بهمین خاطر این نکته رو در قالب نکته ای اخر مطلب اضافه کردم.

ویرایش :‌ اضافه کردن فصل ها
-----------------------------------------------
  • آشنایی با زبان C و ورودی و خروجی
  • آشنایی با توابع
  • دستورهای کنترلی (شرطی)
  • حلقه ها
« آخرین ویرایش: 24 خرداد 1395، 01:38 ب‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #1 : 22 خرداد 1395، 08:54 ب‌ظ »
به نام خداوند جان آفرین   حکیم سخن در زبان آفرین

جمله – آنچه مغز و قلب را از آلایش پاک میکند فقط دانش است ; مابقی بی دانشی است

خب رسیدیم به بخش اول کارمون ،‌ در این قسمت میخوایم مثل ۹۹ درصد آموزش های برنامه نویسی یک پیام Hello World تقدیم جامعه کنیم و لذت ببریم

یه آشنایی با زبان C پیدا کنیم ???

اصولا و به طور کلی برنامه هایی که ما قراره بنویسیم از دو قسمت ساخته میشن :
۱ – رهنمود های پیش پردازنده یا PreProcessor Commnad
۲- تابع اصلی و یا main

تابع اصلی داخل زبانهایی مثل جاوا و سی پلاس پلاس و … هم وجود داره اما به شکل های متفاوت .

 دستور های پیش پردازنده چه دستوراتی هستن ؟
این دستور ها با علامت # آغاز می شود و به پیش پردازنده دستوراتی را ارسال میکنند (اصطلاحات زیاد هستند و در ادامه  اصطلاحات به کار برده شده  رو به طور کامل تعریف میکنم و اطلاعات تکمیلی رو براتون قرار خواهم داد ازین بابت نگران نباشید)

دو مورد از پرکاربرد ترین دستوراتی که از انها بسیار زیاد استفاده خواهیم کرد دستور include , define هست
دستور include کتابخانه هایی که توسط خوده برنامه نویس یا دیگر برنامه نویسان نوشته شده اند رو در اختیار برنامه میزاره

سخت شد ؟ امیدوارم اینطور نباشه اما مطمئن باشید که تا پایان این قسمت اینطوری نیست :)

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

پیش پردازنده یا Preprocessor : برنامه ای  هست که ورودی رو دریافت میکنه پردازش میکنه و یک خروجی تحویل ما میده

با اصطلاح سرفایل استاندار د هم آشنا شیم … وقتی که ما از دستور include استفاده کنیم قاعدتا باید ازین طریق کتابخانه هایی به برنامه اضافه میشوند که با این کتابخانه ها اصطلاحا Standard Header File گفته میشود

برای مثال :‌
#include<stdio.h>یک نمونه دستور پیش پردازنده یعنی include و یک سرفایل استاندارد یعنی stdio.h هست

سرفایل های استاندارد دستورات مفیدی رو به اسم شناسه های استاندارد در اختیار ما قرار میدن که بتونیم از اونها استفاده کنیم :) مثلا سرفایل استاندارد stdio.h دو شناسه استاندارد printf و  scanf رو در اختیار ما میزاره
که printf  برای خروجی و scanf برای دریافت ورودی استفاده میشود

خب این همه حرف زدیم برای چند خط کد ؟
بزارین یه ورودمونو به دنیا خوش آمد بگیم البته به دنیای برنامه نویسی با زبان سی

ادیتورمون رو باز میکنیم من از gedit استفاده میکنم
و کدم رو داخلش مینویسم
#include<stdio.h>

int main(void)
{
printf(“Hello World!\n”);

}
وقتی میخوام ذخیرش کنم یه اسم دلخواه مثل project_01.c براش میزارم و با استفاده از کامپایلر gcc به این شکل کامپایلش میکنم
شکل کلی :‌
gcc filename.c یا
gcc filename.c -o نام دلخواه
خب اسم برنامه من project_01.c هست پس به این شکل کامپایلش میکنم
gcc project_01.cبعد از کامپایل اگه دقت کنیم یه فایل به اسم a.out برای ما میسازه که این فایل اجرایی ماست و به این شکل اجرا میشه
./a.outو در نهایت پیام خوش آمدمون رو روی صفحه مشاهده میکنیم
Hello World! 8) 8) 8)
چند نکته ی تکمیلی  :‌
۱ – تابع ما از نوع تهی است یعنی ورودی دریافت نمیکنه در ادامه بیشتر آشنا میشیم
۲ – اگه دقت کنید بعد از کلمه ی World یک ‌\n دیده میشه با این نوع کاراکترها کاراکترهای کنترلی میگن و این کاراکتر برای رفتن به سطر بعد هستش \n = next Line
۳ – باید توجه داشتیم که دستور پیش پردازنده خارج از تابع اصلی نوشته میشه
۴ – دقت کنیم اکولاد باز و بسته رو بزاریم
۵ – توجه کنیم که ; سمیکولن فراموش نشه چون برنامه ارور خواهد داد


خب بهتره این قسمتو همینجا به پایان برسونم و یه تمرین هم براتون بدم

سوال : حروف اسمتون رو یکی یکی داخل هر سطر به نمایش بزارین ;D ;D

تمرین فراوان کنید
سوالی بود در خدمتم البته در خصوصی و یا تلگرام D: @amir_k_98

موفق و پیروز باشید

بدرود
« آخرین ویرایش: 23 خرداد 1395، 12:48 ق‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #2 : 23 خرداد 1395، 01:14 ب‌ظ »
به نام خداوند خورشید و ماه      که دل را بنامش خرد داد راه
جمله – تنها چیزی که در یادگیری من تداخل ایجاد میکند ،‌ تحصیلاتم است . آلبرت اینشتین

سلام به همه ی دوستان ::)

در دو جلسه ی پیش یه مقدمه ی مختصر و مفید گفتیم و ساختار کلی یه برنامه ی c رو با هم بررسی کردیم
در این قسمت میخوایم توضیحات یا Comments رو با هم بررسی کنیم و یاد بگیریم

از این توضیحات زمانی استفاده میکنیم که نیاز داریم کناره های برخی کد ها توضیحاتی رو با زبان روزمره و نه با زبان برنامه نویسی بنویسیم .
 این توضیح چه کمکی به ما میکنه ؟ :o
بیاین فرض کنیم یه فرض پروژه ی ۲۰۰۰  ??? ???خط کدی نوشتیم بدون توضیحات و بعد از ۶ ماه نیاز به ویرایش و اپدیت کردنش داریم به نظر شما بعد از ۶ ماه میتونیم باز مثل سابق تمام کدهای خودمون رو تجزیه تحلیل کنیم ؟‌مسلما جواب نه هست :'(
یا اینکه پروژه ی ما متن بازه و میخوایم اونو در اختیار سایر کاربران بزاریم آیا بدون توضیحات خود نویسنده ی کد دیگران میتونن سر از پروژه ی ما در بیارن ؟‌باز هم جواب نه هست :)

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

ما دو نوع توضیح یا توضیحات داریم :‌
۱- توضیح تک خطی ( Single Line Comments)
۲ – توضیح چند خطی  (Multi Line comments)
توضیح تک خطی با // و توضیح چند خطی با */ شروع و با /* به پایان میرسه

پروژه ای رو که در قسمت قبل با هم کار کردیم یادتونه ؟
#include<stdio.h>
int main(void)
{
printf(“Hello,World!\n”);
}

خب حالا بهش توضیحاتی رو اضافه میکنیم

#include<stdio.h>
/* include is preprocessor command
* stdio.h is Standard Header File*/
int main(void)
{
printf(“Hello,World!\n”); // Result of this execution is Hello,World!
}
در ادامه با انواع متغیر ها آشنا میشیم

یه ویدیوی کوچولو موچولو هم در باره ی این قسمت و قسمت قبل آماده میکنم و ضمیمه ی این قسمت خواهم کرد
-------------------------------
فیلم آماده شد D:

http://www.aparat.com/v/Oq6fu

-------------------------------

شاد باشید و موفق

خدانگهدار
« آخرین ویرایش: 23 خرداد 1395، 09:37 ب‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #3 : 23 خرداد 1395، 10:21 ب‌ظ »
به نام خداوند بخشنده و مهربان
جمله – زکات دانش،  آموزش به کسانی که شایسته ی آنند و کوشش در عمل به آن است . امام علی (ع)

سلام .  با یه قسمت دیگه از آموزش در خدمت شما عزیزان هستم
تا به اینجا یه کلیت از زبان سی و توضیحات رو یاد گرفتیم
در این قسمت میخوایم با هم درباره متغیر ها ، انواع متغیر و کلا درباره متغیر حرف بزنیم (قسمت طولانی هستش با حوصله خوانده شود :‌D )
خب بهتره اول درباره متغیر حرف بزنیم که متغیر ها چه هستن ؟‌ فک کنیم که یه نرم افزار حسابداری داریم که میخوایم اسم و فامیلی و حقوق و سن و … رو کلا دریافت کنیم تا سر ماه حقوقشون رو پرداخت کنیم به همین خاطر داخل زبان های برنامه نویسی ما برای اتجام این کار چیزی به اسم متغیر داریم – متغیر ها بخش هایی که حافظه هستند که ما اونها رو فراخونی میکنیم و ازشون در جاهای مورد نیاز استفاده میکنیم . تعریف کردن متغیر یا اعلان کردن متغیر چه هستند ؟‌نام گذاری بخش های حافظه ای رو اصطلاحا اعلان متغیر یا تعریف متغیر میگن.
داخل زبان سی انواع مختلف متغیر رو داریم متغیر هایی از نوع :‌
۱- صحیح یا  integer
۲ – شناور یا float
۳ – اعشاری یا double
۴ – بولی یا bool
۵ – کاراکتری یا char
ولی تا به آخر این سری آموزش ها نرسیدیم از float استفاده ی زیادی نخواهیم کرد

متغیر integer از اسمشم معلومه برای اعداد یا داده های (!) صحیح و بدون اعشار مورد استفاده قرار میگیره
از متغیر double برای محاسبات با دقت بالا استفاده میکنیم
متغیر char برای دریافت کاراکتر از کاربر مورد استفاده قرار میگیره
متغیر بولی هم دو مقدار درست یا ۱ و نادرست یا ۰ در دریافت میکنه

تا اینجا با انواع متغیر ها آشنا شدیم :)
سازمان ANSI C یه سری قوانین رو برای زبان C تعیین کرده که باید ازشون پیروی کنیم
۱)‌ از کلمه های کلیدی یا رزرو شده استفاده نکنیم مثل int
۲) نام متغیر با حرف شروع میشه و با عدد یا حرف و یا زیر خط یا همون اندرلاین (صحیحش اندر اسکور هست) ادامه پیدا میکنه

چن تا قانون نانوشته هم هست که رعایت کردنش بین برنامه نویسا معموله :
 متغیر های ثابت یا ماکروثابت رو با حروف بزرگ مینویسیم
 متفیر های معمولی رو با حروف کوچیک مینویسیم
اگر اسم دو متغیر تا ۳۱ حرف مثل هم باشه دو متغیر محسوب میشه اما اگر بیش از ۳۱ حرف مشابه شدن بعضی از کامپایلر ها اونها رو یک متغیر فرض میکنن
اگه نام متغیر طولانی هس باید بین هر کلمه  _ بزاریم چون خوانایی رو بالاتر میبره

اینم از قوانین نانوشته :D

حالا یه مثال بنویسیم :
int number_1 = 2;
double number_2 = 2.2;
char ch = ‘a’;
به متغیر هایی که خودمون تعریف کنیم میگن شناسه استاندارد ولی خیلی مهم نیس اینا اضافه گویی های کتب دانشگاهیه

بهتره این قسمتو طولانی تر نکنم  :)
در قسمت بعد ورودی و خروجی |‌ عملگرها و دیگر نکات باقی مونده رو میگم تا فصل اولمون رو تموم کنیم :D

یه نکته رو هم بگم اصلا به گفته های من یا دیگر منابع قانع نباشین و خودتون مقالات و جزوات و سایت و … رو پیدا کنین واید بخونین تا با قدرت بیشتری این زبان رو یاد بگیرید

ممنونم که تا اینحا همراه من هستین و خواهید بود احتمالا

موفق باشید و پایدار


« آخرین ویرایش: 23 خرداد 1395، 10:30 ب‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #4 : 24 خرداد 1395، 01:36 ب‌ظ »
بسم الله الرحمن الرحیم    هست کلید در گنج حکیم
جمله – اگر دانش به روزی برفزودی    ز نادان تنگ روزی تر نبودی . سعدی

سلام . امیر هستم . در این جلسه قصد داریم دریافت ورودی  / نشان دادن خروجی / عملگرها  و … رو با هم یاد بگیریم

در قسمت های قبل با دستور خروجی یعنی printf آشنا شدیم. کار دستور printf یا شناسه ی استاندارد printf (!) برای نشان دادن یک خروجی از هر نوعی به کاربر هست.
در قسمت مقابل ما دستوری برای دریافت ورودی داریم اگر ورودی ها نباشن برنامه های ما بسیار بسیار انعطاف پذیری کمی خواهند داشت و مثل این میمونه که یک دیکتاتور نرم افزاری بسازیم :D دستور دریافت ورودی scanf هست

خب یه مثال کوتاه صرفا برای آشنایی با این دو دستور بنویسم و بعدش توضیحات تکمیلی رو ارائه کنم
#include<stdio.h>
int main(void)
{
char name;
printf(“Enter first character of your name :”);
scanf(“%c”,&name);

printf(“First Char of your name is :%c”,name);
}
خب ما در این قطعه کد از کاربر میخوایم که یک حرف از اسمشو وارد کنه و بعد اون حرف رو بهش نشون بدیم
الان ممکنه سوالات زیادی درباره ی خط ۶ و ۸ داشته باشید . خب در اینجا به طور کامل یاد میگیریم :
ما برای اینکه از کاربر یک ورودی بگیریم باید از جانگهدارها یا placeholder ها بهره بگیریم
جانگهدار با علامت درصد % شروع میشه و نوع اون ورودی رو باید جلوش بنویسیم  . لیست انواع ورودی ها
int : %d
double : %lf
char : %c
یعنی ما برای دریافت هر نوع ورودی از کاربر باید در دستور scanf باید بین دابل کوتیشن نوع ورودی رو تعیین کنیم و یک  , بزاریم و بعدش با علامت & اسم متغیری رو که تعیین کردیم قرار بدیم . اگه نوع ورودی با نوع متغیری که تعریف کردیم هماهنگ نباشه برنامه یه اررور خوشکل بهمون میده :D
مثال :‌
#include<stdio.h>
int main(void)
{
int num;
char name;
printf(“Enter your number :”);
scanf(“%d”,&name);
printf(“Show %d”,num);
}
خب ازین برنامه انتظار داریم درست کار کنه یا اررور بده ؟
جواب با خودتون :)

برای نشون دادن خروجی بازم باید از علامت درصد % و نوع متغیر استفاده کنیم اما دو تفاوت وجود داره :‌
لیست نشان دادن خروجی :
int : %d
double : %f
char : %c
میبینیم که نوع داده ای اعشاری بجای اینکه lf باشه f هست باید این تفاوت دقت کنید تا در برنامه هاتون مشکلی بوجود نیاد

تفاوت دیگه اینه که برای نشون دادن خروجی نیازی به علامت & نداریم


خب تا اینجا ما دریافت ورودی و نشون دادن خروجی رو یاد گرفتیم

حالا ما نوع دیگری از متغیر ها داریم به اسم ماکروثابت یا ثابت ها که به دو شکل در زبان برنامه نوسی C تعریف میشن
نمونه اول :‌
#include<stdio.h>
#define PI 3.14159 //this is Const
int main(void)
{
return(0);
}
در خط دوم ما یک ثابت تعریف کردیم . ثابت ها متغیر هایی هستند که تغییر نمیکنند و اگر بخوایم اونها رو تغییر بدیم اررور میگریم !! معمولا از ثابت ها جاهایی استفاده میکنیم که نیازی به تغییر دادن یک مقدار نباشیم مثل عدد پی
معمولا قرار دادی بین برنامه نویس ها هست که ثابت ها با حروف بزرگ نوشته شوند !

روش دوم تعریف استفاده از کلمه کلیدی const هست. مثال :‌
#include<stdio.h>
#define PI 3.14159 //this is Const
int main(void)
{
const double KM_PER_MILE = 1.609 //this is another const
return(0);
}
در خط ۵ ما نوع دیگری از تعریف ثابت داریم :‌D

اینم از بحث ثابت ها :)

عملگرها رو هم شروع کنیم به یاد گرفتن :D
عملگرها کلا کارشون بروی متغیر هاس یه تعریف خاصی که همه هم اونو به عنوان تعریف قبول داشته باشند تا بحال ندیدم ولی همه اینو میگن که عملگرها کارشون بروی متغیر هاس
انواع مختلفی از عملگرها داریم ‌ که در این فصل از آموزشمون میخوایم عملگرهای ریاضی رو یاد بگیریم
عملگر جمع :‌ +
عملگر تفریق : -
عملگر ضرب : *
عملگر تقسیم : /
عملگر باقی مانده : ٪
:)
و یک عملگر هم داریم به اسم عملگر انتساب  = این عملگر در جاهای مختلف اسم های متفاوتی میگیره

یه برنامه نویسیم که تبدیل واحد کنه برامون
سوال :‌ برنامه ای بنویسید که از کاربر کیلومتر دریافت کند و تبدیل به مایل کند و در خورجی نمایش دهد
حالا این سوالو با هم حل میکنیم
هر مایل ۱.۶۰۹ کیلومتره پس این میتونه ثابت ما باشه (هر چند اگه نباشه مشکلی نیست ولی … بودنش برنامه رو استاندارد میکنه)
کیلومتر، هم میتونه عددی صحیح و هم اعشاری باشه پس ما از متغیر double استفاده میکنیم
حالا برنامه رو بنویسیم:
#include<stdio.h>
#define KMS_PER_MILE 1.609

int main(void)
{
double mile , kms;

printf(“Enter your kilometer number :);
scanf(“%lf”,&kms);

mile = kms * KMS_PER_MILE;

printf(“Result : %.3f”,mile);
return (0);
}
اینم برنامه ی تکمیل شدمون :)

یه نکته ی کوچیک جا موند :D
اونم فرمت یا قالب بندی متنه
%.3f این دستور میگه فقط تا ۳ رقم اعشار رو نشون بده و اگه کمتر از ۵ یا بیشتر از ۵ بود رو گرد میکنه به عدد قبل یا بعد خودش
این عدد میتونه تغییر کنه ۲ یا ۱ یا ۴ فرقی نمیکنه
برای عدد صحیح هم همینطور اما عدد صحیح اعشار نداره پس به اینشکل تعریف فرمت تعیین میکنیم %3dبه این شکل متغیر عدد صحیح هم فرمت دار میشه به مبارکی و میمونی :D:D:D

ی سری سوال هم برای تمرین داشته باشیم :‌

۱ - مساحت و محیط مستطیل رو محاسبه کنید
۲- محیط و مساحت دایره رو محاسبه کنید
۳ – برنامه ای بنویسید که فارنهایت رو به سلسیوس تبدیل کنه
۴ – برنامه ای بنویسید که ۲۵ درصد حقوق یک کارمند رو نمایش بده

خب در اینجا فصل ۱ به اتمام میرسه :D

جواب سوالات رو در قالب یه فایل ویدیویی فردا قرار خواهم داد

ویدیو این قسمت رو هم تا ساعاتی دیگر قرار خواهم داد

تمرین زیاد کنید
نظراتتون رو هم مشتاقم که بشنوم ایرادات رو حتما بگین تا اموزش های بدون ایرادی داشته باشیم
ممنونم
شاد باشید و موفق

بدرود
« آخرین ویرایش: 25 خرداد 1395، 11:37 ق‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #5 : 25 خرداد 1395، 08:28 ب‌ظ »
سلام به همگی  ;D

ویدیو مربوط به دو قسمت قبل :


http://www.aparat.com/v/Gn31b
ویدیو ها اماده شدن ولی احتمالا اشتباهات ریاضی زیاد دارم D: ببخشید خودتون  :-X

سوال اول :
http://www.aparat.com/v/9Js6q
سوال دوم :
http://www.aparat.com/v/0kbaP
سوال سوم :
http://www.aparat.com/v/arvOV
سوال چهارم :
http://www.aparat.com/v/fP42v

موفق باشید./
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #6 : 01 تیر 1395، 12:11 ق‌ظ »
سلام  ::) با ادامه آموزش ها در خدمت شما هستم . بخاطر وقفه ای که بین آموزش ها پیش آمد معذرت خواهی میکنم :-X :'(
بریم که خیلی کار داریم  ::)
در این فصل از آموزشمان انواع توابع را بررسی میکنیم
تابع ها چه کاربردی دارند ؟
بیایید فرض کنیم که ما برنامه‌ای داریم که قطعه کدی را چندین بار نیاز است که در طول برنامه تکرار شود کار غیر عاقلانه این است که مرتبا کد ها را بنویسیم! اما کار عاقلانه این است که کد هایمان را یکبار بنویسیم و در هر جایی که نیاز شد از آن استفاده کنیم :)
انواع تابع ؟
تابع ها دو نوع هستند: ۱- تابع هایی که ورودی دریافت نمیکنند ۲- تابع هایی که ورودی دریافت میکنند.
اسم‌های دیگری هم به این تابع ها اطلاق می‌شود مانند تابع بدون آرگومان ، تابع با آرگومان | تابع بدون خروجی ، تابع با خروجی و دیگر اسم‌هایی که ممکن است بشنوید که همه یک مفهوم را دارند.
در این جلسه ما تابع های بدون ورودی یا آرگومان را بررسی میکنیم :D
تابع هایی که از این نوع هستند هیچ ورودی را از کاربر را دریافت نمیکنند و تنها کدهای اجرایی داخل تابع را اجرا میکند :)
نکته : می‌توان دریافت ورودی را درون تابع تعریف کرد .
نکته : تابع بدون پارامتر از کلمه کلیدی void استفاده میکند که در قبل با آن آشنا شده‌ایم اما در این جلسه مثال‌های متعددی را بررسی میکنیم.

سؤال : تابعی بنویسید که ۳ پیام را به کاربر نشان دهد و نام آن تابع دلخواه باشد .

#include<stdio.h>

int messages(void)
{
printf(“Hello, World\n”);
printf(“Hello, C programming !\n”);
pritnf(“Hello Users \n”);
}

int main(void)
{
messages();
}
نکته :‌ ما میتوانیم از  کلمه کلیدی void هم صرف نظر کنیم :)

برای استفاده از تابع تعریف شده توسط خودمان کافیست نام تابع به همراه ;() را در تابع اصلی یا main قرار دهیم.

در این روش از تعریف تابع ما ابتدا تابع messages را تعریف کردیم و سپس تابع main را تعریف کردیم. (این روش به نظر من بهتره)
دیگر روش تعریف تابع این است که در ابتدا تابع main را تعریف کنیم و سپس تابع مدنظر خود را تعریف کنیم! اما این نوع روش تعریف تابع یک نکته دارد و آن هم این است که در بالای تابع main باید تابع خود را تعریف کنیم .
نکته : هنگام تعریف تابع در بالای main باید به نوع تابع دقت کنیم که هر دو از یه نوع باشند.
حالا تابعی را که در بالا نوشتیم به این شکل هم میتوانیم بنویسیم :
#include<stdio.h>
int messages();
int main(void)
{
messages();
}
int messages(void)
{
printf(“Hello, World\n”);
printf(“Hello, C programming !\n”);
pritnf(“Hello Users \n”);
}

کار تابع messages چیست ؟ خیلی راحت ۳ پیام را چاپ میکند :D

مثال دیگری حل کنیم :
سؤال :‌تابعی بنویسید که دو عدد صحیح از کاربر دریافت کند و چهار عمل اصلی را بر روی اعداد انجام دهد و سرانجام نتایج را به کاربر نشان دهد.
روش اول (تابع مورد نظر اول و سپس تابع اصلی)‌:

#include<stdio.h>

int calculator()
{
    int number_1;
    int number_2;
    int sum,minus,multiplied,devided;
   
    printf("Enter the first number :");
    scanf("%d",&number_1);
    printf("Enter the second number :");
    scanf("%d",&number_2);
    sum = number_1 + number_2;
    minus = number_1 - number_2 ;
    multiplied = number_1 * number_2;
    devided = number_1 / number_2;

    printf("Result of This Calucation :\nsum:%d\nminus:%d\nmultiplied:%d\ndevided:%d\n",sum,minus,multiplied,devided);
    // in top we can see all of scores :D
}

int main(void)
{
    calculator();
}
در تابع calculator ما دو ورودی از نوع صحیح int از کاربر دریافت میکنیم و چهار عمل اصلی (جمع ، تفریق ، ضرب ، تقسیم) را هم از نوع int تعریف میکنیم. با دو پیام از کاربر عدد اول و دوم را دریافت میکنیم و سپس اعمال خواسته شده را می نویسیم. در نهایت نام تابع را در تابع اصلی قرار می‌دهیم :)
روش دوم :
#include<stdio.h>

int calculator();

int main(void)
{
    calculator();
}

int calculator()
{
    int number_1;
    int number_2;
    int sum,minus,multiplied,devided;
   
    printf("Enter the first number :");
    scanf("%d",&number_1);
    printf("Enter the second number :");
    scanf("%d",&number_2);
    sum = number_1 + number_2;
    minus = number_1 - number_2 ;
    multiplied = number_1 * number_2;
    devided = number_1 / number_2;

    printf("Result of This Calucation :\nsum:%d\nminus:%d\nmultiplied:%d\ndevided:%d\n",sum,minus,multiplied,devided);
    // in top we can see all of scores :D
}

این تابع تماماً شبیه تابع قبلی است تنها با این تفاوت که در زیر تابع اصلی نوشته شده و نیاز به فراخوانی دارد :)

به زودی ویدیو این آموزش را هم قرار خواهم داد :)

تمرین زیاد کنید
موفق باشید و سربلند
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #7 : 01 تیر 1395، 03:13 ق‌ظ »
به نام خداوند بخشنده و مهربان
سلام . امیدوارم که تا بدینجا منو همراهی کرده باشید و لذت کافی رو برده باشید  ;D \\:D/
بریم که بحثو ادامه بدیم :o ???

رسیدیم به بررسی کردن دومین نوع تابع یعنی تابع با ورودی یا آرگومان و دیگر اسم‌ها که مفهوم یکی است.

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

با مثال بهتر درک میکنیم :)‌ :
یک قطعه کد بنویسیم که دو عدد را بگیرد و حاصل جمع آنرا به ما برگرداند
#include<stdio.h>

int sum (int a, int b)
{
return a+b;
}

int main(void)
{
pritnf(“Result Of this function :%d\n”,sum(4,2));
}
در نگاه اول کمی گیج‌کننده هست اما اگر خط به خط توضیح دهیم می‌فهمیم که بسیار ساده است :)
۱ - خط اول که نیاز به توضیحی نداره رهنمود پیش پردازنده ایست که تابع printf و scanf را در اختیار ما قرار می دهد.
۳ – در خط سوم ما تابعی به اسم sum تعریف کرده‌ایم و درون پرانتز ها تعیین کردیم که دو متغیر از نوع عدد صحیح از کاربر دریافت کند !
نکته :‌ در انتهای تعریف متغیر خود از ; استفاده نکنید چون خطا میگیرید :)
۴ - شروع تابع
۵ – در خط ۵ ما با استفاده از کلمه ی کلیدی return (به معنای برگشت)‌ می‌توانیم دو متغیر دریافتی را با عملگر + جمع بزنیم و در نهایت به سایر توابع برگشت دهیم !
۶ – پایان تابع
۸ – تعریف تابع اصلی !
۹ – شروع تابع
۱۰ – ما با استفاده از دستور نشان دادن خروجی ‌printf به سادگی می‌توانیم تابع sum را فراخوانی کنیم و دو مقدار که جایگزین دو متغیر a و b می‌شود را درون پرانتز برای تابع sum در نظر میگیریم !
۱۱ – پایان تابع
پس اگر دقت کنید ما در اینجا یک نکته ی کاربردی یاد گرفتیم که می‌توانیم تابع ها را هم با استفاده از جانگهدار ها در دستور printf مورد استفاده قرار دهیم و این دستور منحصر به متغیر ها نیست :D

در خط ۱۰ بصورت خلاصه ما تابع sum را استفاده کرده‌ایم !
میتوانیم یک متغیر تعریف کنیم و تابع sum را در آن متغیر فراخوانی کنیم و در نهایت آن متغیر را در  تابع printf استفاده کنیم !
به این شکل
int main(void)
{
int get_sum = sum(3,3);
printf(“result is :%d\n”,get_sum);
}
این برنامه را هنوز می‌توان گسترده‌تر و انعطاف پذیر تر کرد !
به این شکل عمل میکنیم :
int main(void)
{
int number_1, int number_2;
printf(“Enter the first number :”);
scanf(“%d”,&number_1);
pritnf(“Enter the second number :);
scanf(“%d”,&number_2);

printf(“Result of this calculation :%d\n”,sum(number_1,number_2));
}
ما در تابع اصلی دو متغیر تعریف میکنیم که دو ورودی از کاربر بگیرد و در نهایت دو ورودی را در تابع sum قرار می‌دهیم که عملیات محاسبه را انجام دهد :)

خب فکر میکنم تا اینجا تا حد مطلوبی با تابع با آرگومان آشنا شدیم دو ویدیو با دو مثال تقریباً خوب آماده میکنم و برای یادگیری و تکمیل این آموزش قرار خواهم داد :)

تمرین تمرین تمرین تمرین >>> کلید موفقیت در برنامه نویسی

شاد باشید  \\:D/
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #8 : 02 تیر 1395، 03:40 ب‌ظ »
به نام خدا

ویدیو های آموزشی (بهتر بگم تکمیلی)‌اموزش های متنی دو درس توابع بدون ارگومان و با ارگومان اماده شد :)

قسمت اول تابع بدون ارگومان :
http://www.aparat.com/v/WT0pB


قسمت دوم تابع بدون ارگومان :
http://www.aparat.com/v/Jvcet

تابع با ارگومان :
http://www.aparat.com/v/R9eZ3

بزودی فصل سوم اموزش ها رو با هم یاد میگیریم  \\:D/ ;D
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین K-FIVE

  • Jr. Member
  • *
  • ارسال: 94
  • جنسیت : پسر
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #9 : 02 تیر 1395، 06:22 ب‌ظ »
ویدیو آموزشی بدون صدا !!!‌عجب !!!

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #10 : 03 تیر 1395، 02:39 ب‌ظ »
سر آغاز هر نامه نام خداست      که بی نام او نامه یکسر خطاست

در این فصل از آمون زبان C ساختار کنترلی (شرط ها) را بررسی میکنیم
دستور ها در زبان C به ۳ روش اجرا و ساماندهی می‌شوند : ۱- جریان ترتیبی اجرای دستور ها ۲- دستور های شرطی ۳- دستور تکرار (حلقه ها)
در جلسات قبل ما برنامه‌های خود را به روش ترتیبی می نوشتیم یعنی برنامه از یک نقطه شروع می‌شود و تا آخرین دستور به ترتیب اجرا می‌شود
مثال :function
{
statement 1;
statement 2;
statement 3;
.
.
.
.
statement n;
}
در این ساختار دستورات از statement 1 شروع می‌شود تا statement n ادامه می‌یابد.

اما برنامه‌ای به این شکل تنها یک حالت را اجرا می‌کند و انعطاف کمتری دارد مثلاً در سیستم نمره دهی جدید اگر بخواهیم برای کسی کارنامه صادر کنیم باید چندین رنج نمره تعریف کنیم که اگر فردی از این رنج تا این رنج نمره ای دریافت کرده به او بگوییم که عملکردش چگونه بوده است.
مثلاً اگر کسی نمره ی ۱۸ گرفت یعنی خیلی خوب ، نمره ۱۴ نمره ی قابل قبول است :)
به هر حال چنین برنامه‌ای نیاز به شرط دارد یعنی بگوییم که اگر فرد این نمره را گرفت به او بگو عملکردت اینگونه بوده !
دستورات شرطی قابل استفاده در زبان C :
۱- if
۲- if , else
۳- if , else if , else
۴- switch
که به ترتیب هر کدام را با مثال یاد خواهیم گرفت :D
اما در ابتدا باید عملگرهای مربوط به این قسمت را یاد بگیریم !
در کل ۳ عملگر را در این فصل با هم یاد خواهیم گرفت : ۱- عملگر برابری ۲- عملگر مقایسه‌ای ۳- عملگر های منطقی
در ابتدا عملگرهای برابری که کمتر هستند را یاد بگیریم :D عملگرهای برابری ، برای برابر بودن یا نبودن دو متغیر کاربرد دارد :) دو عملگر مربوط به این دسته :
 == برابر بودن و =! برابر نبودن
حالا گروه دوم یعنی عملگرهای مقایسه‌ای را بررسی میکنیم همانطور که از نام این عملگرها پیداست برای مقایسه کردن دو متغیر با هم کاربرد دارند. عملگرهای مربوط به این دسته :
> کوچکتر از
< بزرگ‌تر از
=> کوچکتر یا مساوی
=< بزرگ‌تر یا مساوی
در ادامه با ذکر مثال بیشتر آشنا می‌شویم :)
و در نهایت دسته سوم یعنی عملگرهای منطقی را بررسی میکنیم عملگرهای منطقی برای ایجاد شرط های طولانی کاربرد دارد یعنی می‌توانیم شرط ها را دو به دو با هم ارزیابی کنیم و درنهایت یک نتیجه True و یا False را دریافت کنیم :) عملگرهای مربوط به این دسته :
&& و یا and
|| یا یا(!)‌ or
! نقیض یا not

این جلسه کوتاه و مقدماتی در همینجا به پایان رسید در ادامه دستورات شرطی را با هم یاد خواهیم گرفت :)

نظرات خود را ارسال کنید(خصوصی)

موفق باشید و سربلند
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #11 : 03 تیر 1395، 03:29 ب‌ظ »
اینا را توی یه کتاب بنویس, اینطوری خیلی بهتره :)
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #12 : 04 تیر 1395، 12:53 ق‌ظ »
به نام خالق پیدا و پنهان      که پیدا و نهان داند به یکسان

در ابتدای سخن لازمه که دوباره یاداوری کنم که برای ارسال نظرات خود لطفا داخل این تاپیک ارسال نکنید و به شخصی بنده ارسال کنید . ممنون
امیدوارم تا بدینجا از این سری اموزش ها لذت برده باشید
در این جلسه از آموزش دستور شرطی if , else if , if else if را مورد بررسی قرار خواهیم داد.

همانطور که در مثال جلسه قبل خاطر نشأن شدیم وقتی بخواهیم حالت‌های مختلفی را برای برنامه ی خود ایجاد کنیم باید از دستورات شرطی یا ساختار کنترلی شرط (هر دو یکی هستند) استفاده کنیم.
ساختار کلی دستور شرط if :
if(condition)
{
statement 1;
statement 2;
statement 3;
.
.
.
statement n;
}
دستور if (به معنی اگر) مشخص میکند که اگر این حالت (شرط درون پرانتز) رخ داد دستورات درون {}‌را اجرا کن پ در غیر این صورت کد های بعد از {}‌ را اجرا کن .

مثال : برنامه‌ای بنویسید که اگر عدد مثبت وارد شد به ما نشان دهد که برنامه اگر عددی مثبت را دریافت کرد به کاربر پیغام متناسب نشان دهد.
#include<stdio.h>

int main(void)
{
float number;

printf(“Enter a number :”);
scanf(“%f”,&number);

if(number > 0)
{
printf(“This number is possetive\n”);
}

printf(“If this condition not result to you your number is another :) and this message will show to you\n”);
}
در این برنامه مشخص میکنیم که برنامه یک عدد اعشاری (بخاطر پوشش انواع اعداد) دریافت کند و اگر عدد وارد شده مثبت بود به کاربر یک پیام نشان می‌دهد و پیام بعد از آن هم نشان داده می‌شود ولی اگر عدد وارد شده منفی بود به دلیل صحیح نبودن شرط از پیام داخل ‌{} (یعنی بلاک کد) صرف نظر می‌شود و پیام خارج از بلاک کد به کاربر نشان داده می شود:)
برای اینکه حالت منفی و صفر را هم بررسی کنیم می‌توانیم از دو شرط if دیگر استفاده کنیم یعنی به این صورت :
#incude<stdio.h>
int main(void)
{
float number;

printf(“Enter a number :”);
scanf(“%f”,&number);

if(number > 0)
{
printf(“This number is possetive\n”);
}
if(number < 0)
{
printf(“This number is negative\n”);
}
if(number > 0)
{
printf(“This number is zero\n”);
}
}
به این صورت می‌توانیم سه حالت (مثبت ،‌منفی ، صفر) را به برنامه ی خود اضافه کنیم اما این کار یک عیب دارد و آن هم این است که این شرط ها مستقل هستند ! ما میتوانیم این برنامه را به گونه‌ای بنویسیم که شرط ها به یکدیگر پیوسته باشند! ما در زبان C کلمه ی کلیدی به اسم else داریم (به معنی دیگر) با استفاده از این دستور حالت دیگیری را برای شرط اصلی قرار می‌دهیم که در صورت صحیح نبود شرط اول شرط های درون else بررسی می شود.
برنامه ی بالا را به دیگر شکل مینویسیم :
#include<stdio.h>

int main(void)
{
float number;

printf(“Enter a number :”);
scanf(“%f”,&number);

if(number > 0)
{
printf(“This number is possetive\n”);
}
else
{
printf(“This number is negative or zero\n”);
}
}
در مقابل دستور else نمیتوان شرط تعریف کرد پس در این صورت نمیتوانیم منظور برنامه را به بهترین شکل برسانیم پس در اینجا در زبان C راهکاری وجود دارد به نام دستورات شرطی تو در تو (nested condition) که می‌توانیم در else دوباره شرط تعریف کنیم پس مثال خود را به این شکل بازنویسی میکنیم که به این روش تمام حالات را می‌توانیم مورد بررسی قرار دهیم :
#include<stdio.h>

int main(void)
{
float number;

printf(“Enter a number :”);
scanf(“%f”,&number);

if(number > 0)
{
printf(“This number is possetive\n”);
}
else
{
if(number < 0)
{
printf(“this number is negative\n”);
}
else
{
printf(“this number is zero or another\n”);
}
}
}
در این روش با اینکه برنامه بخوبی کار میکند و هیچ مشکلی نخواهد داشت اما همینکه دستورات داخل یکدیگر فرو می‌روند باعث گنگ شدن برنامه می شود(در برنامه‌های پیچیده حتماً اشتباه میشود) پس راه حل چیست ؟
ما با استفاده از دستور else if براحتی می‌توانیم تعداد خطوط کمتر و خوانایی بیشتری را برای برنامه ی خود به ارمغان بیاوریم (تبلیغ شد :D ) پس برنامه را به این شکل دوباره می نویسیم :
#include<stdio.h>

int main(void)
{
float number;

printf(“Enter a number :”);
scanf(“%f”,&number);

if(number > 0)
{
printf(“This number is possetive\n”);
}
else if(number < 0)
{
printf(“this number is negative \n”);
}
else
{
printf(“this number is zero\n”);
}
}
در این روش کدنویسی ما خیلی خلاصه تر شده و در آخر هم دستور else را می نویسیم که اگر حالاتی را که ما برای برنامه ی خود تعریف نکرده‌ایم را پوشش دهد!
با دستور else if می‌توانیم بی نهایت حالت برای شرط خود تعریف کنیم :)

در پست بعد دستور switch بهمراه مثال جامع از دستور if و switch را با هم بررسی میکنیم

جلسه ی طولانی و لذت بخشی بود (حداقل برای من :) )‌با این جلسه می‌توانید حداقل برنامه‌هایی را که با C نیاز دارید بسازید :)

تمرین کردن را فراموش نکنید :)
شاد باشید و موفق
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #13 : 06 تیر 1395، 12:10 ق‌ظ »
به نام خدایی که خاک آفرید                  کزان خاک انسان پاک افرید


سلام . امیدوارم که تا بدیجا لذت برده باشید :o ::)

در این جلسه یک مثال برای if else حل میکنیم و بعد از آن ساختار کنترلی switch را با هم یاد میگیریم.
 در اولین مثال جلسات ساختار کنترلی (شرط) ما برنامه ی نمره ی توصیفی را بررسی کردیم حالا میخواهیم آن برنامه را به صورت عملی بنویسیم.
سؤال : برنامه‌ای بنویسید که نمره ای را دریافت کند و آن را توصیف کند !
#include<stdio.h>

int main(void)
{
    float number;

    printf("Enter your number :");
    scanf("%f",&number);
   
    if(number >= 18 && number <=20)
    {
        printf("Excellent\n");
    }
    else if(number >=15 && number <= 17 )
    {
        printf("Good\n");
    }
    else if(number >= 10 && number<= 14)
    {
        printf("So-So\n");
    }
    else if(number >=0 && number <= 9)
    {
        printf("Feild \n");
    }
    else
    {
        printf("the numner is incorrect!\n");
    }
}
چون نمره می‌تواند اعشار نیز داشته باشد از نوع داده‌ای float استفاده میکنیم و چندین شرط را تعریف میکنیم که هر کدام از شرط ها دارای یک بازه عددی هستند که اگر نمره ی وارد شده توسط کاربر در هر کدام از این بازه ها باشد بلاک مربوط به آن شرط اجرا می‌شود و در آخر یک else نیز قرار دادیم تا اگر عددی خارج از محدوده ی ۰ تا ۲۰ باشد به کاربر خطا دهد !

حالا برویم سراغ دستور شرطی switch ! :)
معمولاً ما دستور switch را زمانی استفاده میکنیم که تمام حالاتی که قصد داریم پیاده‌سازی کنیم برای یک متغیر بوده و تعریف کردن if else سرعت کار ما و خوانایی برنامه ی ما را کم میکند پس در این حالت ما از switch استفاده میکنیم :)
ساختار کلی دستور switch :switch(variable or condition)
{
case result of that variable or condition:
statement …;
break;
case result of that variable or condition:
statement …;
break;
.
.
.
.
default:
statement;
break;
}
در پرانتز switch ما شرط یا متغیری را قرار می‌دهیم که قرار است انواع حالاتی را برایش تعریف کنیم !
با استفاده از کلمه ی کلیدی case میتوانیم در جلوی آن حالت و یا بهتر بگوییم حالتی که قرار است در صورت صحیح بودن و متابقت داشتن با آن شرطی که درون پرانتز رخ دهد را در جلوی case می نویسیم و دقت کنید که : (کولون) بگذارید نه ; (سمیکولون) !
در زیر case هم آن دستوراتی که قرار است در صورت صحیح بودن شرط رخ دهد را می نویسیم و دقت داشته باشید که یک تب داخل تر از case دستورات خود را بنویسید(مشکلی در برنامه ایجاد نمیکند اما خوانایی برنامه را بهتر میکند) و سپس دستور break; را مینویسیم تا بعد از آنکه دستورات را اجرا کرد به صورت اتوماتیک از اجرای دیگر حالت‌ها صرف نظر کند.
دستور دیگری در اینجا به اسم default داریم که معادل else است حالتی را بررسی میکند که تعریف نکرده‌ایم و قرار هم نیست تعریف شود :D

برای درک بهتر این درس یک مثال حل میکنیم :
سؤال : برنامه‌ای بنویسید که تعدادی رنگ را به کاربر نشان دهد و کاربر رنگ مورد علاقه خود را با وارد کردن شماره آن رنگ انتخاب کند.
#include<stdio.h>

int main(void)
{
    int numbe_of_color;
    printf("Insert your favorite color number :\n[1]Red\n[2]Yellow\n[3]Blue\n[4]Green\n[5]Others\n");
    scanf("%d",&numbe_of_color);
    switch(numbe_of_color)
    {
        case 1:
       printf("Your favorite color is Red\n");
            break;
        case 2:
            printf("Your favorite color is Yellow\n");
            break;
        case 3:
            printf("Your favorite color is Blue\n");
            break;
        case 4:
            printf("Your favorite color is Black\n");
            break;
        case 5:
            printf("Your favorite color is not in this list !\n");
            break;
        default:
            printf("Error !\n");
            break;
    }
}
این برنامه ی کوتاه ۴ عدد رنگ را به کاربر نشان می‌دهد که کاربر می‌تواند رنگی را انتخاب کند !

توضیح و تحلیل این برنامه بر عهده ی خودتان ! :D تا بهتر درک کنید و اگر مشکلی داشتید می‌توانید سؤال کنید راهنمایی میکنم :)

تمرین :‌ برنامه نمره ی توصیفی را با استفاده از switch بنویسید !

شاد باشید
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد

آفلاین liniolon

  • Jr. Member
  • *
  • ارسال: 69
  • جنسیت : پسر
  • برنامه‌نویس و علاقه‌مند به دنیای آزاد
پاسخ : آموزش برنامه نویسی به زبان C
« پاسخ #14 : 07 تیر 1395، 10:05 ب‌ظ »
-سرآغاز گفتارنام خداست                   که رحمتگر ومهربان، خلق راست     
سلام . امیر هستم . امیداورم تا به اینجا مشکل زیاد داشته باشید  ;D (منظور منفی رو نگیرید مشکل داشتن باعث میشه ادم زیاد سرچ کنه و با هر سرچ نکات زیادی را یاد بگیره  ::);D ;D بریم درس جدید از فصل جدید رو شروع کنیم  \\:D/

در این فصل از آموزش دومین ساختار کنترلی یعنی حلقه ها را با هم یاد میگیریم . حلقه ها دستوراتی هستند که برای تکرار کردن یک سری کد به کار می‌روند. برای مثال فرض کنیم که می‌خواهیم نام و نام خانوادگی کارمندان یک شرکت را به تعداد ۱۰ نفر دریافت کنیم اگر بخواهیم برنامه ی خود را ۱۰ بار تکرار کنیم قطعاً این کار بسیار غیر عاقلانه است ! چرا که در زبان C ما براحتی با استفاده از حلقه ها به تعداد خیلی زیاد دستورات را اجرا کنیم :)
سر فصل ها :
عملگر های افزایشی و کاهشی
حلقه ی while
حلقه ی for
حلقه ی do … while
در ابتدا عملگرهای مربوط به این فصل را یاد خواهیم گرفت سپس سه نوع حلقه ی زبان C را یاد خواهیم گرفت .

عملگرهای این فصل بسیار ساده هستند و تعدادشان هم کم است.
عملگر افزایشی :
i++
++i
i +=1
این سه شکل از عملگر افزایشی است که هر کدام از آن‌ها را زمانی که به توضیح حلقه ها رسیدیم  به طور دقیق توضیح خواهم داد.
به این ترتیب متغیر i یک واحد به متغیر i اضافه خواهد شد.

عملگر کاهشی :i--
--i
i-=1
در این عملگرها هم یک واحد از متغیر i کم می شود.

حلقه ی while :
این حلقه در ابتدا شرطی را دریافت میکند و اگر آن شرط درست بود دستورات درون {}‌ یعنی بدنه ی شرط را اجرا می‌کند که به این شرط‌‌، شرط تکرار حلقه می گویند. و به متغیر کنترل کننده ی شرط ، متغیر کنترل حلقه می‌گویند .
ساختار کلی دستور while :
while(condition)
{
statement 1;
statement 2;
statement 3;
.
.
.
statement n;
}
مثال : برنامه‌ای بنویسید که مدیر یک شرکت تعداد کارمندان خود را وارد کند و اگر تعداد کارمندان بیشتر از ۰ بود برنامه اجرا شود و حقوق کارمندان را دریافت کند .
#include<stdio.h>

int main(void)
{
    double money = 0.0;
    double all = 0.0;
    int number ;
    printf("Enter number of clerck :");
    scanf("%d",&number);

    while(number > 0)
    {
        printf("Enter your clerck money :");
        scanf("%lf",&money);
        all += money;
    number --;
    }

    printf("All money is %.4f\n",all);
}
در اینجا ما یک متغیر int برای تعداد کارمندان تعریف میکنیم :) و دو متغیر از نوع double برای دریافت پول هر کدام از کارمندان و ذخیره ی آن پول‌ها در یک متغیر دیگر.
شرط اجرای حلقه ی این است که تعداد کارمندان باید بیشتر از ۰ تا باشد :D و در صورت صحیح بودن شرط به تعداد کارمندان وارد شده حلقه اجرا می‌شود و پول دریافتی هر کارمند را در متغیر all ذخیره می‌کند و یک واحد از متغیر number کم میکند تا شرط حلقه نادرست شود و حلقه به پایان برسد (در غیر این صورت حلقه تا بی نهایت اجرا می شود) و در پایان تمام پول را با تابع printf نشان می‌دهیم ! :)

اگر دقت کنید ما در اینجا از عملگر کاهشی – number استفاده کردیم به این صورت هم می توانستیم استفاده کنیم number -=1 تفاوتی ایجاد نمیکرد
یک مثال دیگر هم از while حل میکنیم تا بهتر با این حلقه آشنا شویم : چند عدد از کاربر دریافت کنیم و میانگین آن‌ها را نشان دهیم .
#include<stdio.h>

int main(void)
{
    float number , total;
    int number_count;
    int use_number;

    printf("Enter count of your numbers : ");
    scanf("%d",&number_count);
    use_number = number_count;

    while(number_count > 0)
    {
        printf("Enter the numbers  :");
        scanf("%f",&number);
        total += number;
        number_count --;
    }

    printf("Average of your number > %.3f \n",total / use_number);
}
امیدوارم ازین جلسه نهایت استفاده رو برده باشید و اگر مشکلی ، نکته ی مبهمی و … وجود داشت در خصوصی پاسخگو هستم :)

تمرین تمرین تمرین

موفق باشید :)
« آخرین ویرایش: 07 تیر 1395، 10:07 ب‌ظ توسط A_K_5820 »
وبلاگ من :
http://amirkouhkan.ir
برنامه نویس و علاقه مند به دنیای آزاد