ارسال ها
33
لایک ها
74
امتیاز
0
#1
سلام، خواستم آموزش مقدماتی برنامه نویسی C رو برای کار با Code vision AVR قرار بدم، امیدوارم به دردتون بخوره!
1. انواع داده ها
[TABLE="class: grid, width: 200"]
[TR]
[TD]نوع[/TD]
[TD]مثال[/TD]
[/TR]
[TR]
[TD]int[/TD]
[TD]1,25-,...[/TD]
[/TR]
[TR]
[TD]char[/TD]
[TD]'a' , 'x' , ...[/TD]
[/TR]
[TR]
[TD]float[/TD]
[TD]1.25, ...[/TD]
[/TR]
[TR]
[TD]double[/TD]
[TD]اعداد اعشاری بزرگتر از float[/TD]
[/TR]
[TR]
[TD]void[/TD]
[TD][/TD]
[/TR]
[/TABLE]
با اضافه کردن کلماتی چون signed ، unsigned ، short و long می توان انواع جدیدی را ایجاد کرد.

2. تعریف متغیر هامتغیرها به صورت زیر تعریف می شوند:
; نام متغیر نوع داده​

3. تعریف ثوابت
ثوابت مقادیری هستند که در برنامه قابل تغییر نیستند. ثوابت به دو روش زیر تعریف می شوند:
مقدار> <نام ثابت> define#
<مقدار> = <نام ثابت> <نوع داده> const​

4. عملگر ها
نماد هایی که اعمال خاصی انجام می دهند و دارای انواع زیر اند:
الف) عملگر های محاسباتی:
[TABLE="class: grid, width: 100"]
[TR]
[TD]عملگر[/TD]
[TD]نام[/TD]
[/TR]
[TR]
[TD]-[/TD]
[TD]تفریق[/TD]
[/TR]
[TR]
[TD]+[/TD]
[TD]جمع[/TD]
[/TR]
[TR]
[TD]*[/TD]
[TD]ضرب[/TD]
[/TR]
[TR]
[TD]/[/TD]
[TD]تقسیم[/TD]
[/TR]
[TR]
[TD]%[/TD]
[TD]باقیمانده تقسیم[/TD]
[/TR]
[TR]
[TD]--[/TD]
[TD]کاهش[/TD]
[/TR]
[TR]
[TD]++[/TD]
[TD]افزایش[/TD]
[/TR]
[/TABLE]

ب) عملگر های رابطه ای:
[TABLE="class: grid, width: 100"]
[TR]
[TD]عملگر[/TD]
[TD]نام[/TD]
[/TR]
[TR]
[TD]<[/TD]
[TD]بزرگتر[/TD]
[/TR]
[TR]
[TD]=<[/TD]
[TD]بزرگتر مساوی[/TD]
[/TR]
[TR]
[TD]>[/TD]
[TD]کوچکتر[/TD]
[/TR]
[TR]
[TD]=>[/TD]
[TD]کوچکتر مساوی[/TD]
[/TR]
[TR]
[TD]==[/TD]
[TD]متساوی[/TD]
[/TR]
[TR]
[TD]=![/TD]
[TD]نامساوی[/TD]
[/TR]
[/TABLE]

پ) عملگر های منطقی:
[TABLE="class: grid, width: 100"]
[TR]
[TD]عملگر[/TD]
[TD]نام[/TD]
[/TR]
[TR]
[TD]![/TD]
[TD]نقیض (not)[/TD]
[/TR]
[TR]
[TD]&&[/TD]
[TD]و (and)[/TD]
[/TR]
[TR]
[TD]||[/TD]
[TD]یا (or)[/TD]
[/TR]
[/TABLE]

ت) عملگر های بیتی:
[TABLE="class: grid, width: 100"]
[TR]
[TD]عملگر[/TD]
[TD]نام[/TD]
[/TR]
[TR]
[TD]&[/TD]
[TD]و (and)[/TD]
[/TR]
[TR]
[TD]|[/TD]
[TD]یا (or)[/TD]
[/TR]
[TR]
[TD]^[/TD]
[TD]یای انحصاری (xor)[/TD]
[/TR]
[TR]
[TD]مَد[/TD]
[TD]نقیض (nor)[/TD]
[/TR]
[TR]
[TD]<<[/TD]
[TD]شیفت به راست[/TD]
[/TR]
[TR]
[TD]>>[/TD]
[TD]شیفت به چپ[/TD]
[/TR]
[/TABLE]

ت) عملگر های & و *:
با استفاده از عملگر & می توانیم به آدرس متغیر ها دسترسی داشته باشیم. عملگر * نیز برای دسترسی غیر مستقیم به حافظه مورد استفاده قرار می گیرد.

ث) عملگر ؟ :
این عملگر، عبارتی را ارزیابی کرده، بر اساس ارزش آن نتیجه عبارت را در متغیری قرار می دهد. فرمت آن به شکل زیر است:
<عبارت 3> : <عبارت2> ؟ <عبارت1> =متغیر​

ج) عملگذ کاما (,) :
این عملگر برای انجام چند دستور به کار می رود، فرمت آن به شکل زیر است:
; (<عبارت2> , <عبارت1>) = متغیر​

چ) عملگر () :
این عملگر، تقدم عملگر های داخل خود را بالا می برد.
 
آخرین ویرایش توسط مدیر
ارسال ها
33
لایک ها
74
امتیاز
0
#2
پاسخ : آموزش برنامه نویسی به زبان c

ساختار برنامه C:
برنامه های زبان C، از مجموعه دستورات و تعدادی تابع تشکیل شده است. هر تابع، برای حل بخشی از مسئله نوشته و نام گذاری می شود. بدنه اصلی برنامه تابعی به نام ()main است. هیچ برنامه ای وجود ندارد که فاقد این تابع باشد. توابع در فایل هایی به نام فایل های سرآیند قرار دارند. پسوند آنها h. است و روی دیسک include قرار دارند.
در زیر ساختار ساده از برنامه C قرار داده شده است: <فایل سرآیند> include#
()int main
}
دستورات
;return 0
{​

کاراکتر های فرمت:
[TABLE="class: grid, width: 200"]
[TR]
[TD]کاراکتر[/TD]
[TD]نوع اطلاعات خروجی[/TD]
[/TR]
[TR]
[TD]c%[/TD]
[TD]یک کاراکتر[/TD]
[/TR]
[TR]
[TD]d%[/TD]
[TD]اعداد صحیح دهدهی[/TD]
[/TR]
[TR]
[TD]f%[/TD]
[TD]عدد اعشاری ممیز شناور[/TD]
[/TR]
[TR]
[TD]s%[/TD]
[TD]رشته ای از کاراکتر ها[/TD]
[/TR]
[TR]
[TD]o%[/TD]
[TD]اعداد مبنای 8 مثبت[/TD]
[/TR]
[TR]
[TD]x%[/TD]
[TD]اعداد مبنای 16 مثبت[/TD]
[/TR]
[/TABLE]

خواندن کاراکتر با توابع ()getch و ()getche :
این توابع، کاراکتر را از ورودی خوانده و در متغیر ذخیره می کند. فرمت آنها به دو شکل زیر است:
; ()getch = متغیر
; ()getche = متغیر​
تابع ()getch عکس العملی در صفحه نمایش ندارد، یعنی کاراکتر معادلش در صفحه نمایش ظاهر نمی شود، در حالی که تابع ()getche درست برعکس عمل می کند.


ساختار های تکرار در زبان C:
الف) ساختار تکرار for:
این ساختار برای ایجاد حلقه است و در حالتی که تعداد دفعات حلقه از قبل مشخص باشد به کار می رود. متغیری که تعداد دفعات تکرار حلقه را کنترل می کند، شمارنده یا اندیس حلقه تکرار نام دارد. مقداری که هر پس از هر بار اجرای برنامه به شمارنده اضافه می شود را گام حرکت می گویند. گام حرکت می تواند مقداری صحیح، اعشاری، مثبت، منفی و یا حتی کاراکتر باشد. شرط حلقه نیز مشخص می کند که دستورات داخل حلقه تا کی باید اجرا شوند. استفاده از این دستور به فرمت زیر است:
(گام حرکت ; شرط حلقه ; مقدار اولیه اندیس حلقه) for
}
دستورات حلقه
{​
اگر ساختار for فاقد مقدار اولیه اندیس حلقه، شرط حلقه و گام حرکت باشد، یعنی به صورت ( ; ; ) for ؛ حلقه تکرار بی نهایت ایجاد می شود؛ یعنی حلقه تکراری که شرط پایان ندارد.

ب) ساختار تکرار while :
فرمت استفاده این ساختار به شکل زیر می باشد:
(شرط) while
}
دستورات حلقه
{​
اگر شرط حلقه همیشه درست و یا 1 باشد؛ حلقه تکرار بی نهایت ایجاد می شود.

پ) ساختار تکرار do ... while :
این ساختار مانند ساختار while است با این تفاوت که در ساختار while شرط حلقه در ابتدای حلقه تست می شود، در حالی که در این ساختار، شرط حلقه در انتهای حلقه تست می گردد، پس در هر حال این دستورات حداقل یک بار اجرا می شوند. فرمت استفاده از این ساختار به صورت زیر می باشد:
do
}
دستورات حلقه
{
; (شرط) while​

از کدام ساختار حلقه نکرار استفاده کنیم؟
معمولا وقتی تعداد دفعات حلقه تکرار و گام حرکت معین باشد، از حلقه for استفاده می کنیم؛ در موارد دیگر بهتر است از سایر حلقه های تکرار استفاده کنیم.
 
آخرین ویرایش توسط مدیر
ارسال ها
33
لایک ها
74
امتیاز
0
#3
پاسخ : آموزش برنامه نویسی به زبان c

ساختار های تصمیم در زبان C:
الف) ساختار تصمیم if :
ساختار if یا همان دستور انتقال کنترل شرطی است، شرطی را تست می کند و در صورت درستی آن شرط، مجموعه ای از دستورات را اجرا می کند. فرمت استفاده از آن به صورت زیر است:
(شرط) if
}
دستورات
{
else
}
دستورات
{​
دستور if می تواند فاقد قسمت else باشد.

ب) ساختار تصمیم else if :
اگر بخواهیم از دستور if برای تست شرط های متعددی استفاده کنیم، باید آنها را به طور تو در تو به کار ببریم، کاربرد if نه تنها باعث طولانی شدن برنامه می شود، بلکه از خوانایی برنامه نیز می کاهد. ساختار else if می تواند به جای if های تو در تو به کار رفته شود.
(شرط 1) if
}
دستورات
{
(شرط 2) else if
}
دستورات
{
...
else
}
دستورات
{​
پ) ساختار تصمیم switch :
از این ساختار برای تصمیم گیری های چند گانه بر اساس مقادیر مختلف یک عبارت، استفاده می شود. به طور کلی در تمام تصمیم گیری هایی که بیش از سه انتخاب وجود داشته باشد، بهتر است از ساختار switch استفاده شود. فرمت استفاده از این ساختار به صورت زیر می باشد:
(عبارت) switch
}
: <مقدار 1> case
<دستورات 1>
; break
: <مقدار 2> case
<دستورات>
; break
...
: default
<دستورات n>
{​
 
ارسال ها
33
لایک ها
74
امتیاز
0
#4
پاسخ : آموزش برنامه نویسی به زبان c

آرایه ها در زبان C:
اگر تعداد داده ها زیاد باشد، استفاده از شیوه رایج متغیر ها امکان پذیر نیست. برای حل اینگونه مسایل از آرایه ها استفاده می کنیم. آرایه ها مجموعه ای از عناصر هم نوع هستند. هر آرایه همانند متغیر ها دارای نام است. برای دسترسی به عناصر آرایه، از متغیری به نام "اندیس" استفاده می کنیم؛ به همیین دلیل آرایه را متغیر اندیس دار نیز می نامند.
آرایه ها به دو دسته یک بعدی و چند بعدی تقسیم بندی می شوند.
الف) آرایه های یک بعدی:
نام دیگر آرایه های یک بعدی، لیست است. در این نوع آرایه ها، با یک اندیس می توان به عناصر آرایه دست یافت. فرمت استفاده از این آرایه ها به صورت زیر می باشد:
[طول آرایه] نام آرایه نوع آرایه​
طول آرایه با یک عدد صحیح مثبتمشخص می گردد. به عنوان مثال، دستور زیر آرایه ای به نام x و به طول 5 از اعداد صحیح را تعریف می کند:
; {5و4و3و2و1}=[5] int x​
اندیس آرایه ها در C از صفر شروع می شود. پس عناصر آرایه x در بالا، به صورت زیر بازیابی می شوند:
1 = [0]x
2 = [1]x
3 = [2]x
4 = [3]x
5 = [4]x​
میزان حافظه اختصاص داده شده به یک آرایه، بر حسب بایت، به طریق زیر محاسبه می شود:
طول آرایه * (طول نوع آرایه) = میزان حافظه آرایه​
 

farhad2009

New Member
ارسال ها
195
لایک ها
125
امتیاز
0
#5
پاسخ : آموزش برنامه نویسی به زبان c

لطفا در مورد link list ها یه کم توضیح بدید !!!!
مثلا من اگه بخوام یه ارایه دو بعدی رو به صورت یه ارایه یه بعدی و یه link list بنوسیم باید چکار کنم !!!!
 
ارسال ها
33
لایک ها
74
امتیاز
0
#6
پاسخ : آموزش برنامه نویسی به زبان c

چشم حتما بخش لینک لیست ها رو هم می ذارم؛ اما قبلش یه سری مطالبه دیگه هم بگم بعد لیست های پیوندی (لینک لیست ها)
 

bh2ao

Well-Known Member
ارسال ها
1,549
لایک ها
2,014
امتیاز
113
#7
پاسخ : آموزش برنامه نویسی به زبان c

چشم حتما بخش لینک لیست ها رو هم می ذارم؛ اما قبلش یه سری مطالبه دیگه هم بگم بعد لیست های پیوندی (لینک لیست ها)
اقاي نصيري، به ما هك هم ياد مي دين..؟!:4:
 
ارسال ها
33
لایک ها
74
امتیاز
0
#8
پاسخ : آموزش برنامه نویسی به زبان c

- آرایه های چند بعدی:
در زبان C، آرایه هایی با بیش از دو بُعد (آرایه های n بعدی) قابل استفاده اند ولی اغلب برنامه نویسان از آرایه های دو بعدی استفاده می نمایند. فرمت تعریف آرایه دو بعدی به صورت زیر است:
[بعد 2] [بعد 1] نام آرایه نوع آرایه​
<بعد 1> تعداد سطر ها و <بعد 2> تعداد ستون های آرایه را مشخص می کند. هر کدام از این دو اندیس از 0 شروع می شوند. به عنوان مثال، دستور زیر از یک آرایه دو بعدی 4*3 را تعریف می کند:
[4] [3] int y​
به عنوان مثال، ماتریس زیر را به صورت آرایه دو بعدی چنان تعریف می کنیم:
9 6 4
1 3 7
; {{7,3,1} , {4,6,9}} = [3] [2] int m​
عناصر آرایه ی m به صورت زیر بازیابی می شوند:
4 = [0][0]m
6 = [1][0]m
9 = [2][0]m
7 = [0][1]m
3 = [1][1]m
1 = [2][1]m​

- رشته ها:
رشته همان آرایه ای از کاراکتر ها می باشد. رشته ها برای ذخیره، بازیابی و دستکاری متن ها مورد استفاده قرار می گیرند.
در C برای تعیین انتهای رشته از کاراکتر خاصی به نام NULL (تهی) استفاده می شود که با '0\' مشخص می گردد. بنابراین، آخرین رشته برابر با '0\' می باشد. لذا اگر رشته ای به نام s به صورت زیر تعریف شود، فقط از 9 کاراکتر آن می توان استفاده کرد، زیرا کاراکتر آخر '0\' است.
; [10]char s​
بنابراین طول رشته را باید یک واحد بیش از آنچه که نیاز داریم تعیین کنیم.

- مقدار دادن به رشته ها
هنگام تعریف رشته ها می توان به آنان مقدار اولیه داد. هنگام مقدار دادن می توان طول رشته را مشخص نکرد.
برای مقدار دادن به رشته ها دو روش وجود دارد:
الف) رشته داخل کوتیشن قرار گیرد و به متغیر رشته ای نسبت داده شود. در این روش کاراکتر '0\' به طور خودکار در انتهای رشته اضافه می شود. مثال:
"computer"=[ ]لchar s​
ب) هر یک از کاراکتر های رشته ای، به عنوان یک عنصر رشته، به آرایه نسبت داده شوند. در این روش، برنامه نویس باید '0\' را در انتهای رشته قرار دهد. مثال:
; {'0\' , 'g' , 'r' , 'p'} = [ ]لchar s

 
ارسال ها
33
لایک ها
74
امتیاز
0
#9
پاسخ : آموزش برنامه نویسی به زبان c

سلام، مرسی ولی من هک بلد نیستم! d:
 

bh2ao

Well-Known Member
ارسال ها
1,549
لایک ها
2,014
امتیاز
113
#10
پاسخ : آموزش برنامه نویسی به زبان c

سلام، مرسی ولی من هک بلد نیستم! d:
جدي مي گيد يا برا...؟!;)
بعد از زبان c++ زبان pascal هم اموزش مي ديد بهمون؟!
 
ارسال ها
33
لایک ها
74
امتیاز
0
#11
پاسخ : آموزش برنامه نویسی به زبان c

نه واقعا بلد نیستم ! بله چرا که نه ؟ :d
 
ارسال ها
33
لایک ها
74
امتیاز
0
#12
پاسخ : آموزش برنامه نویسی به زبان c

- خواندن رشته با تابع ()gets :
با تابع ()gets می توان رشته ها را از وزودی خواند. فرمت استفاده از آن به صورت زیر است:
; (متغیر رشته ای) gets​
- چاپ رشته با تابع ()puts :
از این تابع می توان برای نوشتن رشته ها در خروجی استفاده کرد، فرمت استفاده از آن به صورت زیر است:
; ("رشته") puts
; (متغیر رشته ای) puts​
 

alilastkiss

New Member
ارسال ها
4
لایک ها
1
امتیاز
0
#13
پاسخ : آموزش برنامه نویسی به زبان c

سلام آقای نصیری ببخشید میتونم یه سوال ازتون در مورد c بپرسم من دانشجو رشته ای تی هستم و یک سوال داشتم ...؟؟!!
 

abrang

New Member
ارسال ها
608
لایک ها
748
امتیاز
0
#14
پاسخ : آموزش برنامه نویسی به زبان c

دستورات این برنامه رو یکی برای من فارسی توضیح می ده لطفا؟؟؟

برنامه ای بنویسید که سه عدد را گرفته و به ترتیب بزرگتر تا کوچکتر مرتب کند و در خروجی چاپ کنه...
 

mohammad1

New Member
ارسال ها
136
لایک ها
114
امتیاز
0
#15
پاسخ : آموزش برنامه نویسی به زبان c

واقعا خوب بود ...
میشه برای برنامه های c++ و c# رو هم بذارید
برای المپیاد کامپیوتر سال اول دبیرستان ، واقعا مفید هست :)
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#16
پاسخ : آموزش برنامه نویسی به زبان c

دستورات این برنامه رو یکی برای من فارسی توضیح می ده لطفا؟؟؟

برنامه ای بنویسید که سه عدد را گرفته و به ترتیب بزرگتر تا کوچکتر مرتب کند و در خروجی چاپ کنه...
با سی پلاس پلاس براتون نوشتم:

Ubuntu Pastebin
 

sa1378

New Member
ارسال ها
1,403
لایک ها
1,076
امتیاز
0
#17
پاسخ : آموزش برنامه نویسی به زبان c

آموزشگاه آموزش هک و برنامه نویسی که در سراسر ایران باشه وجود داره؟
 

abrang

New Member
ارسال ها
608
لایک ها
748
امتیاز
0
#18
پاسخ : آموزش برنامه نویسی به زبان c

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

Ubuntu Pastebin
ممنون ....

فقط تو قسمت آخر این بخشش یاید گفت اگر C بزرگتر a باشه دیگه:


if(c > b) swap(c, b); // agar c > b bood jaye c va b ro avaz kon
if(b > a) swap(b, a); // agar b > a bood jaye b va a ro avaz kon
if(c > b) swap(c, b); // agar c > b bood jaye c va b ro avaz kon

return اگه نداشته باشه اشکالی نداره؟

بازم ممنون.
 
آخرین ویرایش توسط مدیر

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#19
پاسخ : آموزش برنامه نویسی به زبان c

ممنون ....

فقط تو قسمت آخر این بخشش یاید گفت اگر C بزرگتر a باشه دیگه:


if(c > b) swap(c, b); // agar c > b bood jaye c va b ro avaz kon
if(b > a) swap(b, a); // agar b > a bood jaye b va a ro avaz kon
if(c > b) swap(c, b); // agar c > b bood jaye c va b ro avaz kon

return اگه نداشته باشه اشکالی نداره؟

بازم ممنون.
خیر، باید گفت اگه c بزرگتر از b باشه.
اگه return نداشته باشه هم فرقی نمی کنه.

مثلا a=1 و b = 2 و c = 3 باید در انتها بشه a = 3 و b = 2 و c = 1:

c > b ? بله پس : a = 1 و b = 3 و c = 2
b > a ? بله پس : a = 3 و b = 1 و c = 2
c > b ? بله پس : a = 3 و b = 2 و c = 1

فرض کنید به جای 3 تا n تا داریم، میایم اونی که از همه بیش تر هست رو هل میدیم آخر، در اینجا 3 رو هل دادیم تا به a (آخر رسید) این با n - 1 بار مقایسه معلوم میشه، حالا بقیه ی اعداد n - 1 ـی هستند که دوباره بیشترین توی اینا رو پیدا می کنیم و هلش میدیم آخر و ... پس در کل 1 + 2 + ... + n - 1 ـی مقایسه می کنیم. توی اینجا با 1 + 2 یعنی 3 بار مقایسه می فهمیم.
 

hanieh k

New Member
ارسال ها
45
لایک ها
32
امتیاز
0
#20
پاسخ : آموزش برنامه نویسی به زبان c

یک سوال استاد ما زیان cرو آموزش داد گفت اگر بلد باشید c++یادگیریش راحته واقعا همینه ؟
 
بالا