تبليغاتX
تحقیقات یک دانشجو معلم محقق
تحقیقات یک دانشجو معلم محقق
خدایا به ما زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخوریم
شروعی بر برنامه نویسی :

ابتدا محیط C : در 2 سیستم Dos و Windows است که در اولی محیط به رنگ آبی و در دومی محیط به رنگ سفید است. محیط اجرای دو برنامه در پست زمینه ی سیاه است.

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

صفحه ی  C مانند یک text است یعنی فعال نیست مثلا˝ در اکسل اگر بنویسید 25+56 و enter را بزنید جواب را در همان صفحه و در همان cell نمایش می دهد ولی در زبان C اگر چنین جمله ای را بنویسید error می گیرد و برای نشان دادن جواب باید آن را در متغیر از قبل تعریف شده ذخیره کرده سپس هنگام Run برنامه مقدار آن را نمایش دهید امیدوارم منظورم را از فعال بودن صفحه متوجه شده باشید.

به طور کلی ما در زندگی روزمره از ابزارهایی استفاده می کنیم که خود تولید یا مونتاژ نکرده ایم مثلا در دوچرخه سواری ما فقط رکاب می زنیم و به چگونگی کار کرد قطعات کاری نداریم در برنامه نویسی هم یک سری توابع از قبل تعریف شده که ما می توانیم با فراخوانی ( صدا زدن )آن از خاصیت یا ویژگی آن استفاده کنیم این توابع در کتابخانه های مربوط به خود بوده که به منظور استفاده از آن آدرس کتابخانه را در اختیار برنامه قرار می دهیم ازجمله کتابخانه هایی که ما از آن ها استفاده می کنیم stdio.h ,conio.h است که به فرم زیر نوشته می شود                             #include                                

    #include                                                        .                                                                                                            

# به معنای برقرار کردن اتصال بین برنامه و کتابخانه است

Include همان طور که مشاهده می کنید نوع کتابخانه را مشخص می کند و از معنای آن هم همین استنباط می شود.

Stdio  کتابخانه ی ورودی و خروجی استاندارد است که شامل توابعی است که وظیفه ی گرفتن و نمایش دادن متغیر را دارد.

Conio شامل توابعی است که برای توقف صفحه بوده و یا صفحه را پاک می کند.

پسوند .h هم در انتهای تمام نام های کتابخانه ها می آید.

حال شروع به چارچوب سازی می کنیم

در ابتدای صفحه که ما اتصالات را به کتابخانه بر قرار می کنیم سپس

مرز تابع اصلی خود را که می خواهیم عملیات را در آن انجام دهیم مشخص می کنیم

نام تابع ما main( ) بوده و پرانتز باز و بسته ای که داخل آن چیزی نوشته نشده است نشان دهنده ی این است که تابع ما ورودی خود را همراه با اسم دریافت نمی کند مثلا اگر شما بنویسید sin(20) مقدار آن را نمایش می دهد و شما عدد را همراه نام سینوس ذکر کردید ولی اگر بنویسید main(20) از شما خطا می گیرد . بعد از تابع main( ) یک آکولاد باز کرده و یک آکولاد می بندیم.

#include

#include

Main( ){

}

3 نقطه محل دستورها است که می تواند از یک خط تا هزاران خط دستور باشد.

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

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

ما در تمام زبان ها چند دسته تابع داریم که عبارتند از :

1-      توابعی که مقداری را به برنامه برنمی گردانند

2-      توابعی که به برنامه مقداری را بر می گرداند

تابع main تا آنجایی که ما مورد استفاده قرار می دهیم مقداری را بر نمی گرداند یعنی از دسته ی توابع اول است.

برای اینکه ما به کامپیوتر خود بفهمانیم که این تابع مقداری را بر نمی گرداند در برنامه ی خود و در آخرین جمله ی آن دستور return 0;   را اضافه می کنیم. پس چار چوب ما به این صورت می شود

#include

#include

Main( ){

Return 0;

}

هنگامی که برنامه تمام شده و ما آن را اجرا می کنیم . شما در یک لحظه پرش کوچکی را مشاهده می کنید آن پرش برای این است که کامپیوتر محاسبات یا دستور های ما را انجام داده و نتایج را به صورت لحظه ای نشان می دهد برای اینکه برنامه قبل از پایان متوقف شود به طوری که ما نتایج را مشاهده کنیم از دستور getch( );  استفاده می کنیم.

پس کلی ترین چارچوب و مرز برنامه ی ما به صورت زیر است

#include

#include

Main( ){

Getch( );

Return 0;

}

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



ارسال شده در: شنبه نوزدهم مرداد 1387 :: 3:42 قبل از ظهر :: توسط : مهندس رضامکوندی
آموزش الگوریتم های ساده ریاضی:

الگوریتم زوج و فرد بودن :

1-     شروع

2-     عدد را قرار بده در a

3-     باقی مانده ی a بر 2 را قرار بده در R

4-     اگر R=0 بر قرار بود بنویس  a زوج است

5-     در غیر این صورت بنویس a فرد است

6-     پایان

 

الگوریتم محاسبه ی فاکتوریل a :

1-     شروع

2-     عدد  را قرار بده در a

3-     یک را قرار بده در n (n=1)

4-     n  را در a ضرب کرده و دوباره در n قرار بده (n=n*a)

5-     ازa  یکی کم کرده دوباره در a قرار دهید

6-     اگر a بزرگتر از یک است برو به سطر 4

7-     عدد n را نشان بده

8-     پایان

a!=(a)(a-1)(a-2)(a-3)…(3)(2)(1)                                                                         

 

از دید کامپیوتری همان طور که مشاهده می کنید برای محاسبه ی فاکتوریل ما یک متغیر داریم که از آن یک واحد کم شده و در عین حال در اعداد قبلی ضرب می شود در برنامه ی بالا متغیر مورد نظر n بوده و برای سیر نزولی اعداد از خود متغیر a استفاده کردیم . با اجرای خط 4 و 5 همزمان هم a در متغیر مورد نظر ضرب شده هم از آن یک واحد کم می شود در خط 6 یک کنترل گذاشته شده تا a به صفر (0) نرسد چون اگر a برابر یک (1) شود و دوباره حلقه ادامه پیدا کند در این دور a صفر شده و n را صفر کرده و تمام محاسبات خراب می شود. در آخر هم n عدد فاکتوریل ما است.

 

الگوریتم نمایش مقشوم علیه های یک عدد :

1-     شروع

2-     عدد را گرفته قرار بده در a

3-     عدد یک را قرار بده در n

4-     اگر باقی مانده a تقسیم بر n برابر یک شد عدد n را نشان بده

5-     به n یکی اضافه کن قرار بده در n

6-     اگر n کوچکتر و مساوی نصف a است برو به سطر 4 (n<=a/2)

7-     عدد a را نشان بده

8-     پایان

قبل از اینکه سوالات دیگر را حل کم یک بحثی را خیلی مختصر بیان می کنم فکر می کنم در بیشتر مسائل به شما کمک کند

آرایه ها : به متغیرهایی با یک اسم واحد و اندیس های متفاوت آرایه گفته می شود.

مثلا اگر ما یک چند جمله ای از درجه ی 3 داشته باشیم به صورت روبرو می نویسیم  f(x)=ax2+bx+c

اما اگر یک چند جمله ای از درجه ی n داشته باشیم به صورت زیر می نویسیم

 F(x)=anxn + an-1xn-1+…+a1x+a0

شما a را یک ماتریس در نظر گرفته و درایه های آن را ضریب x ها در نظر بگیرید

a=[a0 a1 a2 … an-1 an] .

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

1-     شروع

2-     تعداد آرایه ها را گرفته قرار بده در n

3-     صفر را قرار بده در i

4-     عدد را گرفته قرار بده در a[i]

5-     به i یکی اضافه کرده قرار بده در i ( i = i +1 )

6-     اگر i کوچکتر از n است برو به سطر 4

7-     پایان

یک تمرین برای شما فرض کنید که شما 10 عدد در یک آرایه ای دارید می خواهیم این 10 عدد را نمایش دهیم

الگوریتمی بنویسید تا این 10 عدد را نمایش دهد.

تمرین 3 را یکبار دیگر با آرایه ها حل می کنم خوبی آرایه این است که مقسوم علیه ها در یم حافظه ذخیره شده در صورت نیاز می توان از آن استفاده کرد

1-     شروع

2-     عدد را گرفته قرار بده در b

3-     عدد یک را قرار بده در n

4-     صفر را قرار بده در i

5-     اگر باقی مانده ی b بر n برابر صفر شد n را قرار بده در a[i] و به i یکی اضافه کن

6-     به n یکی اضافه کن

7-     اگر n کوچکتر از b/2 است برو به سطر 5

8-     به i یکی اضافه کن و خود عدد b را قرار بده در a[i]

9-     صفر را قرار بده در j

10- a[j] را نمایش بده

11- به j یکی اضافه کن

12- اگر j کوچکتر از i است برو به سطر 9

13- پایان

همان طور که مشاهده می کنید سطر های 9 و 10 و 11 برای نمایش دادن آرایه ها است.

برای تمرین 4 از الگوریتم بالا با تغییرات کوچکی استفاده می کنیم

1-     شروع

2-     عدد را گرفته قرار بده در b

3-     عدد یک را قرار بده در n

4-     صفر را قرار بده در i

5-     اگر باقی مانده ی b بر n برابر صفر شد n را قرار بده در a[i] و به i یکی اضافه کن

6-     اگر i برابر 2 شد بنویس عدد اول نیست و برو به سطر 10

7-     به n یکی اضافه کن

8-     اگر n کوچکتر از b/2 است برو به سطر 5

9-     بنویس عدد اول است

10- پایان

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

فرض بر آن است که 10 عدد داریم و آن ها را قبلا به برنامه دادیم

1-     شروع

2-     صفر را قرار بده در n

3-     اگر a[n]>a[n+1] شد جای a[n] را با a[n+1] عوض کن

4-     به n یکی اضافه کن

5-     اگر n کوچکتر از 10 است برو به سطر 3

6-     عدد a[10] را نمایش بده

7-     پایان

این برنامه به صورتی است که عدد بزرگتر را به آخرین متغیر هدایت می کند.

 

تقریبا تمام ویژگی های یک الگوریتم بیان شد. اگر شما همین برنامه های ساده را فهمیده و یاد بگیرید می توانید مطمئن باشید که برنامه نویسی با هر زبانی را بلد هستید. اصلا نگران اشتباه های الگوریتم خود نباشید چون برنامه زمانی شیرین می شود که شما بتوانید خطاهای این الگوریتم ها را برطرف کنید

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



ارسال شده در: جمعه بیست و یکم تیر 1387 :: 5:33 بعد از ظهر :: توسط : مهندس رضامکوندی
نوشتن الگوریتم :

 

الگوریتم :

 

الگوریتم روند کاری است که می خواهیم انجام دهیم و به زبان ساده می نویسیم.

مثال :

الگوریتم جمع دو عدد:

1-     دو عدد را بگیر

2-     جمع دو عدد را قرار بده در a

3-     a را نشان بده

4-     پایان

       به صورت ریزتر می توان نوشت :

1-     شروع

2-     عدد اول را گرفته قرار بده در n

3-     عدد دوم را گرفته قرار بده در m

4-     جمع m و n را قرار بده در a  (a=m+n)

5-     عدد a را نشان بده

6-     پایان

 

  از این به بعد الگوریتم را به صورت جز به جز می نویسم 

 

الگوریتم محاسبه ی میانگین 3 عدد :

1-     شروع

2-     عدد اول را قرار بده در a1

3-     عدد .دوم را قرار بده در a2

4-     عدد سوم را قرار بده در a3

5-     جمع a1 و a2 و a3 را قرار بده در b (b=a1+a2+a3)

6-      b را بر 3 تقسیم کن و قرار بده در b  (b=b/3)

7-     b  را نشان بده

8-     پایان

 

به این نکته بسیار توجه کنید که در برنامه نویسی و کامپیوتر متغیرها حافظه هستند مثلا

a=a+1 از نظر ریاضی غلط می شود زیرا هیچ عددی با عدد بعدی برابر نیست ولی از نظر کامپیوتر کاملا صحیح است چونa  در کامپیوتر حافظه است و معنی آن این است که مقدار موجود در a را یک واحد اضافه کن و مقدار بدست آمده را قرار بده در a .

 

 

الگوریتمی که دو عدد از کاربر بگیرد و اگر اولی از دومی بزرگتر بود با هم جمعشان کند و اگر اولی کوچکتر ومساوی بود ضربشان کند

1-     شروع

2-     عدد اول را بگیر قرار بده در a

3-     عدد دوم را بگیر قرار بده در b

4-     اگر عدد اول بزرگتر از عدد دوم بود a و b را جمع کن در c قرار بده ( a>b :  c=a+b)

5-     در غیر این صورت  ضربشان را قرار بده در c ( a  c=a*b)

6-     c را نشان بده

7-     پایان

در این برنامه شما شرط منطقی را مشاهده می کنید ما در برنامه های خود شرطهای زیادی به کار می بریم که این شرطها فرمان تحت شرط را در صورتی که شرط درست باشد فقط یکبار انجام می دهد همانطور که در الگوریتم بالا مشاهده می کنید در خط 4 یک شرط گذاشته شده  در صورتی که درست باشد فرمان تحت خود را انجام می دهد و اگر نادرست باشد فرمان خط پنجم را انجام می دهد پس این برنامه در هر صورت یا خط 4 یا خط 5 را اجرا می کند. ما در برنامه های دو شرطی از به صورت بالا عمل می کنیم که در آن یکی را شرط مورد نظر قرار داده و دیگری را خلاف آن در نظر می گیریم که در تمام موارد یکی از دو شرط بر قرار     می شود.

 

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

1-     شروع

2-     عدد را بگیر و قرار بده در a

3-     از عدد یکی کم کرده و دوباره قرار بده در a (a=a-1)

4-     عدد a را نشان بده

5-      اگر عدد a بزرگتر از یک است برو به سطر 3

6-     پایان

 

در برنامه ی بالا شما یک حلقه را مشاهده می کنید.

حلقه : زمانی که ما یک سری کارهای تکراری را با یک شرط مشترک می خواهیم انجام دهیم از حلقه استفاده می کنیم و تا زمانی که شرط حلقه درست باشد این loop (حلقه) تکرار می شود به طور تقریبی می توان گفت حلقه همان شرط تکراری است.

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

شما درحال حاضر پیکره ی اصلی الگوریتم را دیدید فکر کنم برای الگوریتم کافی باشه دیگه یاد گیری آن را به عهده ی خودتون قرار می دهم و برای شما چند تمرین می گذارم تا استفاده از الگوریتم را بهتر یاد بگیرید

 

1-     الگوریتمی بنویسید که عددی را از کاربر گرفته و زوج و فرد بودن آن را مشخص کند

2-     الگوریتمی بنویسید که عددی را از کاربر گرفته وفاکتوریل آن را مشخص کند

3-     الگوریتمی بنویسید که عددی را از کاربر گرفته و مقسوم علیه های آن را بنویسد

4-     الگوریتمی بنویسید که عددی را از کاربر گرفته و مشخص کند که آیا عدد اول است یا نه

 

شما اگر بتوانید تمرینات فوق را حل کنید می توانید مطمئن باشید که  الگوریتم را یاد گرفته اید

 

و دو تمرین مشکل برای کسانی که نوشتن الگوریتم را یاد گرفته اند

 

1-  الگوریتمی بنویسید که 2 عدد را از کاربر گرفته و انتخاب اولی از دومی را حساب کند

2- الگوریتمی بنویسید که عددی را از کاربر گرفته و مثلث خیام نیوتن را تا آن سطر چاپ کند

 

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

 



ارسال شده در: جمعه چهاردهم تیر 1387 :: 0:19 قبل از ظهر :: توسط : مهندس رضامکوندی
مقدمه ای بر برنامه نویسی :

مقدمه ای بر برنامه نویسی :

بسمه تعالی

همان طور که می دانید ما برای انجام کارها و ادامه ی زندگی روزانه یک روندی را طی می کنیم. مثلا برای رانندگی اول خودرو را روشن کرده بعد شروع به حرکت می کنیم  به همین ترتیب در برنامه نویسی هم احتیاج به یک استارت یا جرقه ی اولیه داریم. این استارت و جرقه آموختن الگوریتم  و کشیدن فلوچارت است اگر این دو کلید را خوب یاد بگیریم می توانیم به تمام زبان های برنامه نویسی چیره شویم. در زبانهای  برنامه نویسی توابع وکلیدها مهم نیستند! مهم روند حل مسئله است دلیل این امر آن است که این توابع ودستورها خود الگوریتمی داشته که با آموختن الگوریتم و فلوچارت به آن دست خواهیم یافت. در ابتدا راجع به این دو کلید صحبت می کنیم بعد شروع به آموزش 4 زبان برنامه نویسی به صورت مجزا می کنیم.

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

1- از copy past کردن برنامه ها از سایتها و وب های دیگر خودداری کنید.

2- حتما برنامه ها را یکبار برای خود اجرا کرده تا خطایی نداشته باشد بعد برنامه ها را بفرستید.

 برنامه های ماشی حساب کاسیو را به آدرس مدیر Ahmadi.chemicalengineer@Gmail.com (مهندس جواد احمدی)

زبان pascal به آدرس sn_khoshkhu@yahoo.com  (مهندس سالار نورانی)

زبان c  و matlab  به آدرس reza.m354@yahoo.com (رضا مکوندی)

 

 

 

برای شروع نوشتن برنامه 3 مرحله داریم :

1- نوشتن الگریتم (به زبان انسانی)

2- کشیدن فلوچارت (مشترک انسان و رایانه)

3- نوشتن به زبان اسمبلیک (زبان رایانه)

که بعد از مدتی مرحله ی 1و2 حذف شده و به صورت مستقیم از مرحله ی 3 شروع به نوشتن برنامه می  کنید.



ارسال شده در: چهارشنبه دوازدهم تیر 1387 :: 11:50 بعد از ظهر :: توسط : مهندس رضامکوندی
درباره وبلاگ
جواد احمدي هستم
معلم کودکانی مهربان
که خداوند دوستشان دارد...
و دانشجوی کارشناسی
مهندسي پتروشيمي
متولد بهار سال
یکهزار و سیصد و شصت و پنج
این وبلاگ جهت معرفي افتخارآفرینان شهرستان اهر بوده و در رابطه با اطلاعات تاریخی و فرهنگی نواحی مختلف ایران شخصیت های بزرگ ایران زمین،مطالب علمي روز و بالاخره آخرین اختراعات و ابتکارات اینجانب جواد احمدی میباشد.
در ساخت این وبلاگ از اساتید ارجمندم آقایان حق ره ، زامیر و اسلامزاده نهایت تشکر را دارم
امیدوارم این وبلاگ به شما اطلاعات جامعی داده باشد.
نویسندگان وبلاگ:
آقایان
مهندس جواد احمدی
مهندس امیر حضوری
مهندس منوچهر نجفی
مهندس محسن افتخاری
مهندس رضا مکوندی
مهندس وحید نقاشی
پيوندها





Powered by WebGozar