0% found this document useful (0 votes)
23 views

S01 Fundamental Concepts and Principles and Structure of Programming

Computer program 2

Uploaded by

Arya Vafaeeshoar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

S01 Fundamental Concepts and Principles and Structure of Programming

Computer program 2

Uploaded by

Arya Vafaeeshoar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Computer Programming

Computer Programming

‫کامپیوتر‬
‫نویسی کامپیوتر‬ ‫برنامه‬
‫برنامه نویسی‬
‫سرفصلها‪:‬‬
‫تعاریف‪ ،‬مفاهیم و اصول کدنویسی زبانهای برنامه نویسی‬

‫قراردادهای لغوی و محاسبات کامپیوتر‬

‫آشنایی با الگوریتم‪ ،‬فلوچارت و شبه کد‬

‫عبارات و دستورالعملها‬

‫توابع‬

‫ساختار و ساختمان برنامه‪ ،‬آشنایی با تست و عیب یابی برنامه‬

‫آرایهها‪ ،‬اشارهگرها‪ ،‬کاراکترها و رشتهها‬

‫ورودی و خروجی با فایلها‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪2‬‬


:‫منابع‬
Deitel, P. and H. Haridi, C, How to program. 2009: Prentice Hall.

Van-Roy, P. and S. Haridi, Concepts, techniques, and models of computer programming. 2004:
MIT press.

Clifton, M., Imperative to Functional Programming Succinctly. 2017: CreateSpace Independent


Publishing Platform.

Okasaki, C., Purely functional data structures. 1999: Cambridge University Press.

Mertz, D., Charming Python: Functional programming in Python, part 1. 2001

Dr. Mehrdad Nikbakht 3


‫ارزشیابی‪:‬‬

‫امتحان پایان ترم‬

‫هفته دوّم یا سوّم اردیبهشت‬ ‫امتحان میان ترم‬

‫ارسال به ایمیل‬ ‫‪Homework‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪4‬‬


:Homework ‫نحوه ارسال‬

[email protected] :To - Email

CP-14012 :Subject

:Body
‫نام‬

‫نام خانوادگی‬

‫روز و ساعت کالس‬

‫نام دانشگاه‬

Dr. Mehrdad Nikbakht 5


‫‪Hardware‬‬ ‫‪Software‬‬ ‫‪Computer‬‬
‫سخت افزار‬ ‫نرم افزار‬ ‫رایانه‬

‫دقت‬
‫سرعت‬
‫مزایا‬
‫عدم فراموشی‬
‫انرژی‬ ‫سیستم عامل‬ ‫تکرار بدون نقص‬
‫)‪Operating System(OS‬‬

‫خالقیت‬ ‫معایب‬
‫برنامه کاربردی‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪6‬‬


https://openai.com/blog/chatgpt/ https://openai.com/dall-e-2/

Dr. Mehrdad Nikbakht 7


:‫اجزای اصلی کامپیوتر‬

)Input Unit( ‫واحد ورودی‬

)Central Processing Unit( ‫واحد پردازش مرکزی‬

)Memory Unit( ‫واحد حافظه‬

)Output Unit( ‫واحد خروجی‬

Dr. Mehrdad Nikbakht 8


‫اجزای اصلی کامپیوتر‪:‬‬

‫واحد ورودی (‪:)Input Unit‬‬


‫این واحد برای ورود دادهها و برنامهها به سیستم رایانه‬
‫توسط کاربر برای پردازش استفاده میشود‪.‬‬

‫واحد خروجی (‪:)Output Unit‬‬


‫واحد خروجی برای نمایش و ذخیره نتیجه به عنوان‬
‫خروجی تولید شده توسط رایانه پس از پردازش استفاده‬
‫میشود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪9‬‬


‫اجزای اصلی کامپیوتر‪:‬‬
‫واحد پردازش مرکزی (‪:)Central Processing Unit‬‬
‫انجام عملیاتی مانند حساب و عملیات منطقی پردازش‬
‫نامیده میشود‪ .‬واحد پردازش مرکزی دادهها و‬
‫دستورالعملها را از واحد ذخیره میگیرد و انواع‬
‫محاسبات را براساس دستورالعملهای داده شده و نوع‬
‫دادههای ارائه شده انجام میدهد‪ .‬سپس به واحد ذخیره‬
‫سازی ارسال میکند‪.‬‬

‫پردازنده از نظر عملیاتی شامل دو جزء اساسی میباشد‪:‬‬


‫❖ واحد محاسبه و منطق (‪)Arithmetic Logic Unit‬‬
‫❖ واحد کنترل (‪)Control Unit‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪10‬‬


‫اجزای اصلی کامپیوتر‪:‬‬

‫واحد محاسبه و منطق (‪:)Arithmetic Logic Unit‬‬


‫تمام محاسبات و مقایسهها براساس دستورالعملهای‬
‫ارائه شده در ‪ ALU‬انجام میشود‪ .‬این توابع محاسباتی‬
‫مانند جمع‪ ،‬تفریق‪ ،‬ضرب‪ ،‬تقسیم و هم چنین عملیات‬
‫منطقی مانند بزرگتر‪ ،‬کمتر از و برابر با غیره را انجام‬
‫می دهد‪.‬‬

‫واحد کنترل (‪:)Control Unit‬‬


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

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪11‬‬


‫اجزای اصلی کامپیوتر‪:‬‬
‫ثباتهای پردازنده (‪:)CPU Registers‬‬
‫ثباتها قسمتی از حافظه موقتی داخلی پردازنده هستند که وظیفه حفظ دادههایی را دارند که ‪ CPU‬درحال حاضر درحال کار بر روی آنهاست‪ .‬ثباتها‬
‫بسیار سریعتر از سایر حافظهها هستند؛ زیرا ‪ CPU‬همیشه درحال کار بر روی آنهاست و سرعت کم آن به همان اندازه باعث کاهش سرعت پردازنده‬
‫میشود‪ .‬ثباتها با ذخیره کردن دادهها یا آدرسها میتوانند عمل پردازش را بسیار سریعتر کنند‪ .‬رجیسترهای پردازنده به عنوان یک حافظه داخلی‪،‬‬
‫نزدیکترین دسترسی به واحد پردازشی ‪ CPU‬و در باالترین قسمت سطوح انتزاعی حافظهها از لحاظ دسترسی به ‪ CPU‬قرار دارند‪.‬‬
‫به طور کلی ثباتها میتوانند شامل موارد زیر باشند‪:‬‬
‫❖ داده‪ :‬پردازنده میتواند دادههایی که شامل اعداد‪،‬کاراکتر یا آرایه هستند را در ثباتهای خود ذخیره کند‪.‬‬
‫❖ آدرس‪ :‬ثباتها میتوانند شامل آدرسهای مربوط به دادهها در حافظه اصلی باشند‪.‬‬
‫انواع ثباتهای ‪:CPU‬‬
‫ثباتهای موجود در پردازنده را میتوان به صورت کلی به ‪ ۲‬گروه زیر تقسیم کرد‪:‬‬
‫❑ ثباتهای قابل دسترسی (‪ :)User Accessible Registers‬این نوع رجیسترها توسط کاربر با استفاده از دستورات قابل دسترسی هستند‪.‬‬
‫❑ ثباتهای داخلی یا غیرقابل دسترسی (‪ :)Internal Registers‬این نوع رجیسترها توسط کاربر غیرقابل دسترسی هستند و تنها به وسیله خود‬
‫پردازشگر در عمل پردازش قابل دسترسیاند‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪12‬‬


‫اجزای اصلی کامپیوتر‪:‬‬
‫واحد حافظه (‪:)Memory Unit‬‬
‫یکی از اجزاء اساسی کامپیوتر حافظه کامپیوتر است که‬
‫آن را میتوان به دو نوع حافظه اولیه و حافظه ثانویه طبقه‬
‫بندی کرد‪.‬‬
‫حافظه اولیه را میتوان بیشتر به عنوان ‪ RAM‬و ‪ROM‬‬
‫دسته بندی نمود‪:‬‬
‫‪ :)Random Access Memory( RAM‬رم که حافظه‬
‫دسترسی تصادفی خوانده میشود‪ .‬این قطعه مکانی‬
‫درکامپیوتر است که سیستم عامل‪ ،‬برنامههای کاربردی و‬
‫دادههای مورد استفاده فعلی به طور موقت در آن‬
‫نگهداری میشوند تا پردازنده رایانه به آنها دسترسی‬
‫داشته باشد‪ .‬همچنین “فرار” است زیرا محتوای آن فقط تا‬
‫زمانی که رایانه روشن باشد قابل دسترسی است‪ .‬با‬
‫خاموش شدن رایانه‪ ،‬محتوای ‪ RAM‬دیگر در دسترس‬
‫نیست‪.‬‬
‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪13‬‬
‫‪ :)Read Only Memory( ROM‬نوع خاصی از حافظه است که فقط قابل خواندن است و محتوای آن حتی هنگام خاموش بودن رایانه از بین نمیرود‪.‬‬
‫این معموالً شامل دستورالعملهای سازنده است‪ .‬از جمله‪ ROM ،‬همچنین یک برنامه اولیه به نام ‪ bootstrap loader‬را ذخیره می کند که عملکرد آن‬
‫شروع کار سیستم رایانهای پس از روشن شدن برق است‪.‬‬
‫حافظه ثانویه‪:‬‬
‫حافظه ثانویه رسانهای است که دادهها و دستورالعملها را بیرون از واحد سیستم به مدت طوالنی نگه میدارد‪ .‬برای تمایز آن از حافظه الکترونیکی‬
‫اصلی در واحد سیستم به آن حافظه بیرونی یا کمکی نیز گفته میشود‪ .‬اشکال ابتدایی حافظه ثانویه عبارت بودند از‪ :‬نوارهای کاغذی و نوارهای‬
‫مغناطیسی‪ .‬امروزه حافظه ثانویه شامل هارد دیسک با ظرفیتهای گیگابایتی‪ ،‬دیسکهای نوری که به توزیع مطمئن چند رسانهای میپردازند و‬
‫آرایهای وسیع از حافظه قابل حمل است که انواع مختلف آن درایوهای فلش و حتی دستگاه پخش موسیقی قابل حمل متنوع میباشند‪.‬‬
‫حافظه ثانویه دارای مزایایی نسبت به حافظه الکترونیکی اصلی است‪ .‬حافظه ثانویه عالوه بر غیر فرار بودن‪ ،‬به راحتی قابل توسعه و حمل است‪ .‬زمانی‬
‫که یک دیسک با دادهها پر شده باشد‪ ،‬همواره دیسک دیگری در دسترس خواهد بود‪ .‬میتوان دادهها و دستورالعملها را به راحتی از طریق‬
‫رسانههای حافظه ثانویه چون ‪ DVD ،CD‬و درایوهای فلش توزیع کرده و به اشتراک گذاشت‪.‬‬
‫هر یک از این رسانهها یک یا بیش از پنج کاربرد اصلی حافظه ثانویه را نشان میدهد‪ :‬ذخیره سازی‪ ،‬پشتیبانی‪ ،‬توزیع‪ ،‬انتقال و بایگانی‪.‬‬
‫حافظه ثانویه یا کمکی ذخیره دیگری غیر از ‪ RAM‬است‪ .‬اینها شامل دستگاههایی هستند که جانبی هستند و توسط رایانه متصل و کنترل میشوند‬
‫تا امکان ذخیره سازی دائمی برنامهها و دادهها فراهم شود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪14‬‬


‫واحد پردازش گرافیکی (‪:)Graphics Processing Unit‬‬
‫وظیفه آن پردازش اطالعات گرافیکی و تصویری است‪ .‬تمامی اطالعات قابل مشاهده وارد این قطعه میشوند و بعد از آن به‬
‫مانیتور انتقال پیدا میکنند‪ .‬عملیاتهای حرفهای نظیر ضبط و ویرایش فیلم‪ ،‬بازیهای پیشرفته کامپیوتری تا مشاهده تصاویر و‬
‫فیلمها از طریق این سخت افزار انجام میشود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪15‬‬


:‫تاریخچه‬
.‫ رشتههای صفر و یک‬:‫) برنامه نویسی به زبان ماشین‬1

Low Level )Assembly( ‫) زبان اسمبلی‬۲

High Level ‫) زبانهای سطح باال‬3

BASIC / VB / VB.net / Small Basic Java / JavaScript


C / C++ / Objective C / C#
PHP

Python / MATLAB / R
Dennis Ritchie

Dr. Mehrdad Nikbakht 16


Human Computer

‫هدف مطلوب‬ ‫سورس کد‬ ‫ترجمه کننده‬ ‫برنامه‬

Programming Language Software Machine Language

Dr. Mehrdad Nikbakht 17


‫‪ :Offline‬کامپایل کردن (‪)Compile‬‬
‫یک بار اجرا میشود و دیگر قابل تغییر نیست‪ ،‬به منظور اعمال تغییر‬
‫میبایست مجدداً اجرا گردد‪.‬‬
‫برنامه‌ای‌که‌این‌کار‌را‌انجام‌می‌دهد‪ Compiler‌،‬نامند‪.‬‬
‫‪C / C++ / C# / Java‬‬ ‫ترجمه برنامه‬

‫‪ :Online‬تفسیر (‪)Interpret‬‬
‫در این حالت برنامه در لحظه اجرا ترجمه میشود‪.‬‬
‫‪PHP / MATLAB / JavaScript‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪18‬‬


:‫ترجمه برنامه‬

C ML

Offline Online
C# , Java Intermediate Language (IL) Machine Language (ML)

Mono Project , Xamarin

Dr. Mehrdad Nikbakht 19


‫انواع دستورهای ساده‪:‬‬
‫❖ فراخوانی‌عملیات‌(‪‌:)Operation Call‬دستوراتی‌هستند‌که‌با‌یک‌فعل‌امر‌و‌با‌اضافه‌کردن‌پارامتر‌یا‌پارامترهایی صورت‌‬
‫می‌گیرد‪.‬‬
‫مثال‪‌:‬کامپیوتر‌را‌خاموش‌کن‪‌.‬یک‌صدای‌خاص‌پخش‌کن‪.‬‬
‫❖ تعریف‌و‌تخصیص‌(‪‌:)Definition & Assignment‬دستوراتی‌هستند‌که‌معموالً‌نتیجه‌مشخصی‌به‌همراه‌ندارند‌بلکه‌نوعی‌‬
‫تعریف‌در‌حافظه‌را‌ایجاد‌می‌کنند‪‌.‬تعریف‌و‌تخصیص‌به‌طور‌مستقیم‌با‌حافظه‌در‌ارتباط‌می‌باشند‪.‬‬
‫‪n‬‬ ‫‪10‬‬ ‫مثال‪n = 10‌‌‌:‬‬
‫❖ بازگشت‌(‪‌:)Return‬نتیجه‌کار‌مهم‌است‪.‬‬
‫مثال‪‌:‬برگرداندن‌نتیجه‌یک‌عملیات‪.‬‬
‫❖ رفتن‌به‌(‪‌:)Go To‬از‌جمله‌دستورهای‌مهمی‌است‌که‌در‌برنامه‌نویسی‌مدرن‪‌،‬به‌صورت‌غیر‌مستقیم‌استفاده‌می‌شود‪.‬‬
‫تکرار‬
‫اجرای‌یک‌بخش‌از‌برنامه‌به‌صورت‌شرطی‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪20‬‬


‫دستورهای ترکیبی و پیچیده‪:‬‬

‫❑ بلوک‌کد‌یا‌دستورها‬
‫❑ تصمیم‌گیری‌و‌انشعاب‌یا‌دستورات‌انتخاب‌(‪‌:)Selection / Condition‬باید‌تصمیم‌بگیرد‌که‌چه‌زمانی‌چه‌پارامتری‌انتخاب‌شود‪.‬‬

‫‪‌:for‬به‌ازای‌یک‌مجموعه‌محدود‌از‌اعضاء‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌تعداد‌تکرار‌مشخص‌و‌محدود‬
‫❑ تکرار‌(‪‌:foreach‌‌‌‌‌‌‌‌:)Repetition‬به‌ازای‌هر‌عضو‌از‌مجموعه‌ای‌مشخص‌‌‌‌‌‌‌‌‌‌‌‌‌‌‬
‫‪‌:while‬تکرار‌تا‌زمانی‌که‌یک‌شرط‌برقرار‌باشد‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌تعداد‌تکرار‌نامشخص‌و‌نامحدود‬

‫شرط‌مثبت‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪21‬‬


‫هر‌برنامه‌ای‌که‌با‌‪ for‬قابل‌اجراست‌با‌‪ while‬هم‌می‌شود‌ولی‌برعکس‌آن‌صادق‌نیست‪‌.‬‬ ‫✓‬
‫هر‌برنامه‌ای‌که‌با‌‪ switch‬قابل‌اجراست‌با‌‪ if‬هم‌می‌شود‌ولی‌برعکس‌آن‌صادق‌نیست‪.‬‬ ‫✓‬
‫‪ if‬و‌‪ while‬به‌وضوح‌کلی‌تر‌هستند‪.‬‬ ‫✓‬

‫‪do-while‬‬
‫حالت‌های‌دیگر‌‪while‬‬
‫)‪ :until (VB‬برعکس ‪ ،while‬حالتی‌از‌شرط‌منفی‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌تکرار‌کن‌تا‌زمانی‌که‌این‌شرط‌برقرار‌نشده‌است‬

‫❑ مدیریت‌حاالت‌استثنایی‌(‪try – catch‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌)Exception Handling‬‬


‫در‌هنگام‌گرفتن‌عدد‌از‌کاربر‌به‌عنوان‌مقسوم‌علیه‪‌،‬با‌یک‌ساختار‌شرطی‌ساده‌چک‌کنیم‌که‌عدد‌مخالف‌صفر‌باشد‪.‬‬ ‫✓‬
‫✓ در هنگام کار با فایل یا مواردی که مرتبط با سیستم است‪ ،‬یک حالت دوّم نیز در نظر بگیریم‪ .‬معموالً این کار با تعریف بلوک‌های ‪try-catch‬‬
‫انجام می‌شود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪22‬‬


‫انواع خطا‪:‬‬

‫❖ خطای‌گرامری‪‌،‬نحوی‪‌،‬دستوری‪‌،‬نوشتاری‌کد‌(‪‌:)Syntax Error‬مرتبط‌با‌زمان‌نوشتن‌کدهای‌برنامه‌و‌قبل‌از‌ترجمه‌و‌اجرا‌می‌باشد‪.‬‬

‫همه‌زبان‌های‌برنامه‌نویسی‌یک‌ساختار‌دستوری‌مشخصی‌دارند‪‌.‬به‌این‌ساختار‌اصطالحاً‌‌‪ Syntax‬گفته‌می‌شود‪.‬‬

‫❖ خطای کامپایل (‪ :)Compile–time Error‬همزمان با ترجمه صورت می‌گیرد‪ .‬در این خطا برنامه اشکال گرامری ندارد ولی نمی‌تواند‬
‫کامپایل شود‪ .‬معموالً این ارور در زبان‌های برنامه نویسی کامپایلری رخ می‌دهد‪.‬‬
‫در فرآیند ترجمه کد الزم است مقدماتی برای آن فراهم شود‪ .‬یکی از مقدماتی که به ما مربوط است‪ ،‬وجود کلیه فایل‌های یک برنامه (اگر‬
‫برنامه دارای چند فایل کد است) و در دسترس بودن کتابخانه‌های استفاده شده در برنامه است‪ .‬اگر در هنگام کامپایل کردن کد‪ ،‬یک یا‬
‫چند مورد از این مقدمات فراهم نباشد‪ ،‬با خطای کامپایل مواجه خواهیم شد‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪23‬‬


‫انواع خطا‪:‬‬
‫❖ خطای زمان اجرا (‪ :)Run-time Error‬برنامه صحیح نوشته شده است‪ ،‬کامپایل نیز با موفقیت اجرا می‌شود ولی در هنگام اجرای کد‪ ،‬شرایطی‬
‫به وجود می‌آید که این کد به درستی اجرا نمی‌شود‪.‬‬
‫اگر‌برنامه‌ما‌فایلی‌را‌در‌کنار‌خود‌الزم‌داشته‌باشد‌تا‌چیزی‌از‌داخل‌آن‌خوانده‌شده‌یا‌در‌آن‌بنویسید‌و‌این‌فایل‌وجود‌نداشته‌باشد‪‌،‬با‌خطای‌‬
‫زمان‌اجرا‌در‌برنامه‌نویسی‌مواجه‌خواهیم‌شد‪‌.‬در‌واقع‌خطایی‌در‌هنگام‌کار‌با‌فایل‌رخ‌داده‌است‪.‬‬

‫❖ خطای‌منطقی‌(‪‌:)Logical Error‬در‌خطای‌منطقی‪‌،‬کدها‌صحیح‌هستند‪‌،‬کامپایل‌به‌درستی‌انجام‌می‌شود‌و‌ورودی‌های‌برنامه‌نیز‌کامالً‌صحیح‌‬
‫و‌بدون‌ایراد‌خواهند‌بود‪‌.‬اما‌نتیجه‌کار‪‌،‬اشتباه‌است!‬
‫این‌نوع‌خطا‌در‌فرآیند‌اجرای‌برنامه‌هیچ‌مشکلی‌ایجاد‌نمی‌کند‪‌.‬به‌این‌دلیل‌خطای‌منطقی‌را‌یک‌باگ‌(‪ )Bug‬نرم‌افزاری‌در‌نظر‌می‌گیریم‌که‌‬
‫نتیجه‌اشتباه‌است‪‌.‬به‌همین‌دلیل‌خطرناک‌ترین‌خطای‌برنامه‌نویسی‌همین‌نوع‌خطاست‪.‬‬
‫✓ خطاهای زمان اجرا و منطقی‪ ،‬هر دو در هنگام اجرای برنامه ایجاد می‌شوند‪ .‬با این تفاوت که در خطای زمان اجرا‪ ،‬برنامه اجرا نمی‌شود و به‬
‫اصطالح برنامه هنگ می‌کند ولی در خطای منطقی‪ ،‬برنامه اجرا می‌شود ولی نتیجه اشتباه است‪.‬‬
‫اشکال‪‌،‬حشره‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‪Bug‬‬
‫رفع‌اشکال‪‌،‬رفع‌حشره‌‌‌‌‌‌‌‌‌‌‌‌‪deBug‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪24‬‬


‫شرایط کامل بودن یک زبان برنامه نویسی‪:‬‬

‫❑ ترتیب‌اجرا‌(‪‌:)Order of Execution‬برنامه‌می‌بایست‌به‌ترتیب‌اجرا‌شود‌و‌تصادفی‌نباشد‪.‬‬

‫❑ شرط‌و‌انتخاب‬

‫❑ تکرار‬

‫✓ ‪ GoTo‬جز‌شرایط‌فوق‌محسوب‌نمی‌شود‪‌،‬بلکه‌با‌شرط‌و‌تکرار‌می‌توان‌آن‌را‌ایجاد‌نمود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪25‬‬


‫انواع داده‪:‬‬

‫❑ داده‌عددی‪‌:‬داده‌های‌عددی‌می‌توانند‌صحیح‪‌،‬گویا‌یا‌مختلط‌باشند‪.‬‬

‫‪True‬‬ ‫❑ داده‌منطقی‌‌‌‌‌‌‌‌‌‌‪1‬‬
‫‪False‬‬ ‫‪0‬‬

‫❑ داده‌متنی‌‌‌‌‌‌‌‌‌‌‌‌‌کاراکتر‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌’‪‘A’ , ‘B’ , ‘c’ , ‘D‬‬


‫رشته‌(‪‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌)String‬آرایه‌ای‌از‌کاراکترها‌‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪26‬‬


)Type Casting( ‫تبدیل انواع‬

Dr. Mehrdad Nikbakht 27


:Type-Safety
C / C++ / C# / Java PHP
Int n = 6; $n = 6;
n = n+1; $n = $n + 1;
n = 6.8; $n = 6.8;
n = `D`; $n = `D`;

Dr. Mehrdad Nikbakht 28


‫ساختارهای پیچیده داده‪:‬‬
‫❖ متغیرها (‪ :)Variable‬در برنامه نویسی یک متغیر یک نگهدارنده (محل ذخیره) برای نگهداری داده‌ها می‌باشد‪ .‬برای نشان دادن محل‬
‫ذخیره‌سازی باید به هر متغیر یک نام (شناسه) منحصر به فرد اختصاص داده شود‪ .‬نام متغیر نمایشی نمادین از یک مکان در حافظه‬
‫است‪.‬‬
‫‪N=7‬‬
‫❖ تابع (‪ :)Function‬در یک نگاه خیلی ساده‪ ،‬تابع یک بلوک یا دستگاهی است که یک مقدار ورودی گرفته‪ ،‬روی آن پردازش‌هایی انجام‬
‫می‌دهد و یک خروجی تولید می‌کند؛ درست مانند یک سیستم‪.‬‬

‫توابع ماژول‌های «مستقل» از کدها هستند که یک وظیفه خاصی را انجام می‌دهند‪ .‬تابع در برنامه نویسی معموالً داده‌ها را «دریافت» می‌کند‪،‬‬
‫روی آن‌ها پردازش انجام می‌دهد و نتیجه را «باز می‌گرداند»‪ .‬زمانی که تابع به وسیله یک زبان برنامه نویسی نوشته می‌شود‪ ،‬در طول اجرای‬
‫برنامه ممکن است بارها اجرا یا فراخوانی شود‪ .‬توابع می‌توانند در داخل توابع دیگر «فراخوانی» شوند‪ .‬تابع در برنامه نویسی باعث خوانایی‬
‫بیش‌تر کدها و سادگی آن‌ها می‌شود‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪29‬‬


‫ساختارهای پیچیده داده‪:‬‬
‫❖ آرایه‌ها (‪ :)Arrays‬در برنامه‌نویسی‪ ،‬مفهومی به نام آرایه وجود دارد که از نظر معنای فارسی به کلمات «آرایه‪ ،‬صف‪ ،‬نظم و‬
‫آرایش تعلق می‌گیرد‪ .‬و به لحاظ مفهومی‪ ،‬به مجموعه‌ای از چیزها گفته می‌شود که در کنارهم و با نظم خاصی قرار دارند!درواقع‬
‫در فرهنگ کامپیوتر نیز این چنین است!‬
‫در آرایه هرعضوی که در آن قرار دارد‪ ،‬شامل یک شاخص (‪ )index‬منحصر به فردی برای خود می‌باشد و از این ‪ index‬برای‬
‫دسترسی به آن عضو استفاده می‌شود‪ .‬و در واقع بهتر است بگوییم آرایه مجموعه‌ای از خانه‌ها را در حافظه و به صورت گروهی برای‬
‫اعضای خود در نظر می‌گیرد‪.‬‬

‫✓ برخی‌از‌زبان‌های‌برنامه‌نویسی‌‪ Zero-based‬هستند‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‪C / C++ / C# / Java / PHP / Python‬‬


‫✓ برخی‌از‌زبان‌های‌برنامه‌نویسی‌‪ One-based‬هستند‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‪MATLAB / BASIC‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪30‬‬


‫ساختارهای پیچیده داده‪:‬‬
‫❖ ساختار‌(‪‌:)Structure‬ساختار‌شباهت‌زیادی‌به‌آرایه‌دارد‌در‌واقع‌ساختارها‌نوعی‌از‌آرایه‌هستند‌که‌می‌توانند‌اندیس رشته‌‬
‫مثل‌نام‌داشته‌باشند‪.‬‬
‫]`‪x [ `name‬‬ ‫‪or‬‬ ‫;`‪x.Name = `car‬‬

‫مثال‪‌:‬ذخیره‌کردن‌اطالعات‌یک‌دانشجو‪.‬‬

‫✓ در‌‪ Jagged Array‌،C#‬را‌داریم‌که‌ترکیبی‌از‌آرایه‌و‌ساختار‌هستند‪‌،‬مطابق‌آن‌در‌متلب‌‪ Cell Array‬را‌داریم‪.‬‬


‫✓ آرایه‌و‌ساختار‌بدین‌معنی‌هستند‌که‌تحت‌یک‌نام‌بتوانیم‌تعداد‌بسیاری‌داده‌را‌مدیریت‌کنیم‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪31‬‬


‫ساختارهای پیچیده داده‪:‬‬
‫❖ کالس (‪ :)Class‬در برنامه نویسی شی‌گرا‪ ‌،‬کالس یک قالب کدنویسی توسعه‌پذیر برای ایجاد اشیا است‪ .‬کالس مقادیر اولیه را‬
‫برای وضعیت (متغیرهای عضو) و پیاده‌سازی رفتار (توابع یا متدهای عضو) فراهم می‌کند‪ .‬در یک کالس‪ ،‬مجموعه‌ای از‬
‫خصوصیت‌ها (‪ )Property‬و متدهایی تعریف می‌شوند که برای همه اشیا از آن نوع مشترک هستند‪.‬‬
‫✓ کالس‌ترکیبی‌از‌تابع‌و‌ساختار‌است‪.‬‬
‫مثال‪Class Notepad‌:‬‬
‫مثال‪‌:‬یک‌کالس‌می‌تواند‌یک‌خودرو‌باشد‌که‌دارای‌خصوصیت‌های‌«رنگ»‌و‌«داشتن‌چهار‌چرخ»‌است‪.‬‬
‫;)( ‪Car.MaxSpeed‬‬
‫;)(‪Car.Fuel‬‬
‫;)(‪Car.Model‬‬
‫;)(‪Car.Year‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪32‬‬


‫‪( Object‬شیء)‪‌:‬یک‌تحقق‌از‌یک‌مفهوم‌معین‪.‬‬
‫مثال‪‌:‬انسان‌های‌اطراف‌ما‌جزئی‌از‌انسان‌ها‌هستند‌ولی‌هر‌کدامشان‌به‌تنهایی‌یک‌‪ Object‬هستند‌از‌نوع‌انسان‪.‬‬

‫برنامه‌نویسی‌شیء‌گرا‌(‪)Object-Oriented Programming‬‬
‫‪C + OOP‬‬ ‫مثال‪C#‌‌‌:‬‬

‫‪PHP / MATLAB / BASIC / COBO‬‬ ‫‪Command‬‬


‫‪C / Pascal‬‬ ‫‪Function‬‬
‫‪C# / Java‬‬ ‫‪Class‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪33‬‬

You might also like