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

مبانی کامپیوتر،الگوریتم و فلوچارت

نمایش اعداد اعشاری (floating points)


برچسب‌ها: مبانی کامپیوتر, الگریتم وفلوچارت, نمایش اعداد اعشاری
+ نوشته شده در یکشنبه 27 مهر1393ساعت 17:16 توسط حمیدرضا ایمانی کیا |

لینک زیر حاوی اسلایدهای درس مبانی کامپیوتر و برنامه سازی ( بخش مربوط به مبانی کامپیوتر، الگوریتم و فلوچارت) می باشد

دریافت اسلایدهای درس مبانی کامپیوتر و برنامه سازی



برچسب‌ها: مبانی کامپیوتر, الگوریتم, فلوچارت
+ نوشته شده در جمعه 19 مهر1392ساعت 10:47 توسط حمیدرضا ایمانی کیا |

تعداد ۵ نمونه امتحان میان ترم مربوط به ترم های گذشته را می توانید از لینک زیر دریافت نمایید.

نمونه سوالات میان ترم (با فرمت jpg)

+ نوشته شده در شنبه 30 آبان1388ساعت 21:1 توسط حمیدرضا ایمانی کیا |

کاربرد آرایه ها

آرایه ها بعنوان یکی از ساختارهای مهم در الگوریتم و برنامه نویسی مطرح می باشند. علاوه بر اینکه از آرایه ها برای نگهداری تعداد زیادی داده همنوع استفاده می شود، کاربرد مهم دیگر آنها جهت تکرار پذیر کردن ( قانونمند کردن) یک روش الگوریتمی می باشد. بعنوان مثال هنگام  تبدیل یک عدد مبنای 10 به یک عدد با نماد رومی، اگر از آرایه استفاده ننماییم، الگوریتمی خواهیم داشت طولانی و غیر کارا. اما استفاده از آرایه باعث ساده تر و روان تر شدن الگوریتم خواهد شد.

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


تبدیل عدد مبنای 10 به عدد رومی

اما با بهره گیری از آرایه می توان الگوریتمی کارا برای این برنامه داشت:

استفاده از آرایه جهت نمایش عددی بصورت رومی

+ نوشته شده در دوشنبه 11 آبان1388ساعت 23:20 توسط حمیدرضا ایمانی کیا |

الگوریتم

الگوریتم یک روش موثر حل مسئله در ریاضیات و کامپیوتر با استفاده از تعداد محدودی دستورالعمل می باشد .

الگوریتم لیستی از دستورات با دقت آماده شده برای حل یک کار می باشد. با شروع از یک وضعیت اولیه، با سلسله دستوراتی که بطور دقیق آماده شده دنبال شده و در نهایت به یک وضعیت پایانی خاتمه می یابد.

دانشمند بزرگ ایرانی خوارزمی، حدود سال 780 میلادی در خوارزم متولدشد شهرت علمی وی مربوط به کارهایی است که در ریاضیات بویژه در رشته جبر انجام داده به طوری که هیچیک از ریاضیدانان قرون وسطی مانند وی در فکر ریاضی تاثیر نداشته اند.

خوارزمی در سال 825 میلادی، رساله ای در باب محاسبه با اعداد عربی (هندی) نوشت که در قرن 12 میلادی به  لاتین  ترجمه شد. سپس الگوریتم ( تغییر یافته کلمه الخوارزمی) بعنوان یک روش محاسبه معروف شد.

یک الگوریتم خوب بایستی حتی الامکان ساده و  عاری از ابهام و پیچیدگی بوده، روان،قابل فهم، جامع(در برگیرنده همه حالات ممکن) و با دستورات حداقل باشد.

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

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

مثالی از الگوریتم - بررسی کامل بودن یک عدد طبیعی

دریافت اسلایدهای سری چهارم (با فرمت پاورپوینت 2007)

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

دریافت فونت (مربوط به اسلایدهای پاورپوینت)

+ نوشته شده در جمعه 1 آبان1388ساعت 21:54 توسط حمیدرضا ایمانی کیا |

نمایش اعداد علامت دار (اعداد مثبت و منفی)و اعداد اعشاری

تاکنون فقط نحوه نمایش اعداد مثبت را دیده بودیم (که با تبدیل به مبنای 2 بدست می آمد)

برای اعداد علامت دار از روشهای مختلفی استفاده می شود:

  • روش مقدار علامت
  • روش مکمل 1 
  • روش مکمل 2

نمایش عدد بصورت مکمل دو

نمایش اعداد اعشاری

معمولا از روش استاندارد IEEE 754 (خوانده می شود آی تری پل ای – مخفف نام انستیتو مهندسین برق و الکترونیک)

 Institute of Electrical and Electronics Engineersاستفاده می شود.

در این روش ابتدا عدد اعشاری را به فرم نرمال شده تبدیل کرده و سپس طبق دستور ارائه شده در استاندارد نمایش میدهیم.

 نمایش عدد اعشاری با فرمت IEEE754

توضیحات کاملتر همراه با مثال در اسلاید سوم

 دریافت اسلایدهای نمایش اعداد

 

+ نوشته شده در چهارشنبه 22 مهر1388ساعت 17:17 توسط حمیدرضا ایمانی کیا |

بطور خلاصه در این جلسه در مورد موارد زیر صحبت نمودیم ( که البته توضیحات کاملتر در اسلایدها می باشد)

  1. پردازنده مهمترین و  سریعترین بخش در کامپیوتر است.
  2. حافظه اصلی محلی است برای نگهداری برنامه ها و داده ها
  3. حداکثر سعی ما بایستی در تغذیه سریعتر پردازنده باشد(تا بتوانیم بالاترین سرعت را بدست آوریم)
  4. برای رسیدن به این هدف نیاز به استفاده از سلسله مراتب حافظه(حافظه های مختلف با ظرفیت ها و سرعت های مختلف) داریم
  5. حافظه های جانبی جهت نگهداری دائمی برنامه ها و داده ها مورد استفاده قرار می گیرد که علاوه بر آن این حافظه ها دارای ظرفیت بسیار بالاتری میباشند.
  6. داری انواع مختلفی می باشند که یا عموما  با تکنولوژی مغناطیسی (همانند دیسکت ها و دیسک های سخت یا نوار مغناطیسی) بوده و یا با تکنولوژی حفره و برآمدی (همانند سی دی ها و دی وی دی ها) می باشند.
  7. برای نمایش اطلاعات در کامپیوتر ها از کدگذاری  مبنای دو استفاده می شود.
  8. بدلیل سادگی و سهولت مبنای ۲ از آن در کامپیوترها استفاده می شود.
  9. بدلیل دشواری کار با مبنای ۲ برای ما ( و نه برای کامپیوترها) ما معمولا بجای آن از مبنای ۸ و یا  بیشتر از مبنای ۱۶ استفاده می نماییم.
  10. برای نمایش اطلاعات حرفی و عددی از کدگذاریهای استاندارد (همانند کد گذاری اسکی) استفاده می نماییم.
  11. بدلیل محدودیت دامنه کاراکترهای کد اسکی امروزه از کدگذاری یونیکد استفاده می شود.
  12. ویندوز از یونیکد ۱۶ بیتی استفاده می نماید.
  13. نرم افزارها قسمت دیگری از کامپیوتر هستند که جنس آنها متفاوت از سخت افزار می باشد و در واقع از جنس برنامه هستند.
  14. با استفاده از نرم افزار هست که ما می توانیم از سخت افزار استفاده نماییم.
  15. دارای دو دسته سیستمی و کاربردی می باشد.
  16. سیستم عامل مهمترین رده از برنامه های سیستمی می باشد.
  17. برنامه بزرگ مفصل و پیچیده ای است که وظیفه مدیریت منابع سیستم و رابط با کاربر بر عهده دارد.
  18. دارای انواع مختلفی نظیر ویندوزهای مختلف ( رومیزی و سروری)، یونیکس ، لینوکس و غیره می باشد.
  19. مترجم های زبان وظیفه تبدیل برنامه نوشته شده به یک زبان برنامه نویسی به زبان قابل اجرا توسط ماشین را برعهده دارند.

تصویری از یک حافظه RAM

سلسله مراتب حافظه

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

 

+ نوشته شده در جمعه 17 مهر1388ساعت 19:15 توسط حمیدرضا ایمانی کیا |

فرصت مهم جوانی و دانشجویی          

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

ویژگی های تحصیل در رشته کامپیوتر

در مورد رشته کامپیوتر صحبت کردیم که یک دانش نسبتاً جدیدی است (با حدود 60 سال سابقه) ولی با این حساب توانسته است سرعت پیشرفت فوق العاده سریعی داشته باشد (که شاید هیچ رشته ای دارای چنین سرعت رشدی نباشد). برای موفق و فعال بودن در این رشته بایستی همانند خود رشته، پویا و فعال و پر انرژی بود. ضمن احترام به همه رشته های دیگر، یادآوری کردیم که اگر کسی در این رشته الان بالاترین مدرک را هم داشته باشد و در طول مدت مثلاً 20 سال از پیشرفتهای رشته کامپیوتر دور باشد، بعد از این مدت تقریباً حرف زیادی برای گفتن در این رشته را ندارد. اما در بسیاری از رشته های دیگر وضع اصلاً به این گونه نیست. قطعاً ما بایستی خودمان را با این شرایط وفق دهیم و این می تواند برای کسانی که پر انرژی بوده و ویژگیهای خلاقانه ای دارند بسیار میمون و مبارک باشد که بتوانند همیشه تازگی و به روز بودن را تجربه نمایند.

در مورد دستگاههای پردازشی و حافظه ای قانونی داریم تحت عنوان قانون مور که بیان می کند: ظرفیت پردازشی و یا حافظه ای چنین دسنگاههای در هر 18 ماه 2 برابر خواهد شد! که البته برای سیستم های نرم افزاری وضعیت متفاوت است و شاید نه به این سرعت ولی در آنجا هم نسل های مختلف زیادی را پشت سر گذاشته ایم.

موضوع مهم دیگری که صحبت کردیم، تسلط داشتن به زبان انگلیسی است که بتوانیم حداکثر بهره را از این علم ببریم. قطعاً اکثر پیشرفتهای انجام شده  و منابع این رشته به زبان مادری آن، یعنی انگلیسی می باشد. و ما برای نوشیدن آب از سرچشمه اصلی آن نیاز به دانستن مناسب این زبان داریم.

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

برنامه نویسی

  موضوع مهم دیگری که مخصوصاً برای این رشته کلیدی و حیاتی است، برنامه نویسی است، که متاسفانه طبق بررسیهای انجام شده، رفته رفته از مهارتهای برنامه نویسی دانشجویان کاسته می شود! و دانشجویان در این زمینه فعالیت و تبحر کمتری از خود نشان میدهند. که این می تواند برای رشته کامپیوتر یک فاجعه باشد.

قطعاً برنامه نویسی نیاز به تمرین و کار زیادی دارد و  یگانه راه یادگیری آن نوشتن برنامه است، البته از برنامه های ساده ساده بایستی شروع نمود. با دیدن برنامه ها و خواندن آنها هنوز کسی برنامه نویس نشده است!  اگر کسی با دیدن شناکردن دیگران – حتی 20 سال – شناکردن را یاد بگیرد، شما هم خواهید توانست به این صورت برنامه نویس شوید. این کار بایستی هر چه زودتر تا دیر نشده شروع شود. بالاخره بایستی تا عمق آب کم است در استخر برنامه نویسی پرید و شروع به یادگیری شنا نمود!

 روشهای یادگیری

بعد از آنکه بحث به برنامه نویسی و روش آن رسید، ما در مورد  روشهای یادگیری و به یادآوردن صحبت نمودیم. و اینکه هر کدام  از این روشها چقدر می توانند در به یاد آوردن بعد از گذشت مدت نسبتاً طولانی موثر بیافتند. این روشها را می توانیم بصورت شکل زیر که بسیار هم گویا است به تصویر بکشیم:

نمودار بخاطر آوری بعد از مدت زمان بلند

به وضوح این نمودار بیان می کند که برای یادگیری بهتر دخالت شخص بسیار کلیدی است. هر چه فرد در فرآیند کار دخالت داشته باشد، به همان نسبت هم یادگیری موثرتر خواهد بود. و اصولاً چیزی به نام یاد دادن وجود ندارد، تنها یادگیری معنا می دهد و معلم و استاد تنها می توانند کمک به یادگیری نماید.(قطعاً اگر کسی نخواهد، هیچ کسی نمی تواند به او چیزی  یاد بدهد)

بنابراین بهتر است از همین ابتدا دست بکار شد و شروع به نوشتن برنامه های ساده نمود تا بتواند در آینده پایه مناسبی برای برنامه نویسی باشد.

مطالب درس

 شامل 3 بخش خواهد بود.

مبانی کامپیوتر که یک مرور نسبتاً سریعی بر بخش های اصلی کامپیوتر و کارکردهای آنها خواهیم داست.

الگوریتم و فلوچارت که پایه برنامه نویسی بوده و بحث نسبتاً مفصلی درباره آن خواهیم داشت.

برنامه نویسی به زبان سی شارپ که هدف نهایی درس خواهد بود.

منابع درسی

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

کتاب کمکی برای بخش دوم "الگوریتم و فلوچارت" نوشته صادق بجانی است

کتاب منبع برای بخش برنامه نویسی هم کتاب "چگونه به زبان ویژوال سی شارپ  2005 برنامه بنویسیم" نوشته دایتل می باشد. که نسخه اصلی کتاب به زبان انگلیسی را هم بصورت کتاب الکترونیکی در اختیار قرار خواهم داد.

دریافت فایل اسلایدهای بخش اول مبانی کامپیوتر ( با فرمت پاورپوینت ۲۰۰۷)

ارزشیابی

 شامل موارد زیر خواهد بود

تمرین کلاسی

 میان ترم (تا پایان بخش دوم)

پایان ترم(فقط از بخش برنامه نویسی)

و پروژه ( که در یادگیری موثر بسیار مهم است)

 

 

+ نوشته شده در دوشنبه 13 مهر1388ساعت 14:24 توسط حمیدرضا ایمانی کیا |