1 به نام آفريننده زيباييها دانشگاه صنعتی خواجه نصیرالدین طوسی برنامه نویسی پيشرفته کامپیوتر نیم سال اول، 87-88 1.

Slides:



Advertisements
Similar presentations
Queue theory.
Advertisements

مهدی آذرنوش مبحث ششم : آرایه ها و رشته ها حسابگری الگوریتمی.
برنامه سازي پيشرفته 1 4. using System; //A class represents a reference type in C# class Fraction { public int numerator; public int denominator; public.
Logic Block Architectures. 2 Crosspoint Solution  Requires the use of large amounts of programmable interconnect −  suffer from area-inefficiency 
در جامعه، افرادي که موقعيت و مسؤليت خود را مي‌دانند از راحتي و امنيت بيشتري برخوردارند هر کلاس از جامعه، مجموعه‌اي از امکانات و تواناييهاي مجاز برخوردار.
برنامه سازي پيشرفته 5 Inheritance. وراثت Inheritance allows a software developer to derive a new class from an existing one The existing class is called.
سازگاري فرايندهاي يادگيري Consistency of Learning Processes ارائه دهنده : الهام باوفای حقیقی استاد درس : آقای دکتر شيري دانشگاه امير كبير دانشكده ‌ مهندسي.
دستور العمل نحوه محاسبه امتیاز مقالات ISI اعضای هیأت علمی دانشگاه صنعتی اصفهان بر اساس تعداد استنادات در پايگاه اسكاپوس شهریور ماه 1388 نفیسه دهقان.
طراحي و مدل کردن مؤلفه ها فصل 7 معماري نرم افزار هاي بزرگ دانيال مؤذن استاد : دکتر عبدالله زاده.
مهندسی نرم افزار مبتنی بر عامل
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
ارائه درس روباتيکز Extended Kalman Filter فريد ملازم استاد مربوطه دکتر شيري دانشگاه امير کبير – دانشکده کامپيوتر و فناوري اطلاعات.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
RUP فرآيند شيئ گراي توسعه نرم افزار Rational. RUP عناوين مورد بررسي n مقدمه n بهترين تجارب n نگاهي كلي به فرآيند n فرآيند مبتني بر موارد كاربرد n فرآيند.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
تعميم در يادگيري مبتني بر نمونه ها
مراحل مختلف اجرای يک برنامه
Artificial Intelligent Systems Laboratory 1 الگو‌هاي فرايند (Process Patterns) فصل 2 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده :
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 12.
به نام خدا. Search articles ايندكسهاي معروف ISI ، (Index Medicus)،‌ Medline ‌،‌ Pubmed Biological Abstract ،‌ Embase،‌ ‍Chemical Abstract، Scopus ساير.
BY: Ghasem Mohammadi دانشگاه كردستان دانشكدة فني و مهندسي گروه كامپيوتر مباني كامپيوتر و برنامه سازي Basics of Computer and Programming Session 1 Basic.
ساختارهاي تقسيم كار پروژه
Solving problems by searching Chapter 3 Modified by Vali Derhami.
آرايه Array آرايه مجموعه اى از متغيرهاى از يك نوع است كه با يك نام مشترك تحت استفاده قرار مى گيرند. يك عنصر بخصوص در يك آرايه با يك index (انديس ) مورد.
روابط مجموعه ها سلیمی. دکتر سلیمانی. نظریه فازی در سال 1965 بوسیله یک دانشمند ایرانی بنام پروفسور لطفی زاده معرفی گردید. گرچه این نظریه در ابتدا با.
اسامي شناسه ها (Identifier names) اسامي متغيرها ، توابع ، برچسب ها (labels) وبقيه اشياء تعريف شده توسط كاربر در C ، شناسه ( identifier ) ناميده مي شود.
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
شرط و تصميم اصول كامپيوتر 1. 2 الگوريتم اقليدس E1: [find remainder] Divide m by n and let r be the remainder. Clearly, 0
1/19 Informed search algorithms Chapter 4 Modified by Vali Derhami.
Department of Computer Eng. & IT Amirkabir University of Technology (Tehran Polytechnic) Data Structures Lecturer: Abbas Sarraf Order.
الف) تابع y = f(x) = X >= 0x -2 < x < 0 x3x3 X
به نام خدا.
Information Retrieval
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
اصول روان سنجی و روان آزمویی
مديريت پروژه هاي فناوري اطلاعات نويسنده : Jack T. Marchewka ترجمه پاورپوينت فصل سه مترجم : محمد صادق كسلخه ايميل :
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
مرتب سازي مقايسه اي مرتب سازي خطي
آرايه ها.
ANOVA: Analysis Of Variance
ANOVA: Analysis Of Variance
روش حریصانه در طراحی الگوریتم
وحید حقيقت دوست دانشکده فنی و مهندسی دانشگاه شاهد
Quick Sort مرتب سازي سريع.
دستورات کنترل و تکرار- 2 اصول كامپيوتر 1.
آشنايي با برنامه نويسي به زبان C++
به نام حق مبحث: ارث بری Inheritance.
معرفي درس ساختمان داده ها و الگوريتمها
دکتر حسين بلندي/ دکتر سید مجید اسماعیل زاده / دکتر بهمن قربانی واقعی
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
Similarity transformation
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
گزگز و خواب رفتگي انگشتان دست
سيستمهاي اطلاعات مديريت
هیدرولیک جریان در کانالهای باز
فيلتر كالمن معرفي : فيلتر كالمن تخمين بهينه حالت‌ها است كه براي سيستم‌هاي ديناميكي با اختلال تصادفي در سال 1960 بزاي سيستم‌هاي گسسته و در سال 1961 براي.
SY604 NAT PPPoE Configuration
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
كيفيت سرويس چيست؟ از ديد كاربر: عبارت است از تضمين سرويس انتها به انتها براي كاربر از ديد شبكه: عبارت است از امكان اولويت بندي بسته ها و تنظيم رفتار شبكه.
هدف كلي ساماندهي آمار و ايجاد بانك اطلاعاتي از مراجعين اورژانس هاي بيمارستاني سراسر كشور.
آمار توصيفي ارائه: سيد عماد احمدي.
اشياء و کلاس ها.
مدلسازي تجربي – تخمين پارامتر
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
توزیع میانگین نمونه سعید موسوی.
Petri Nets: Properties, Analysis and Application
گروه كارشناسي ارشد مديريت فنآوري اطلاعات(واحد الكترونيكي تهران)
به خداوند بخشنده مهربان
تخمين پارامترها - ادامه
Presentation transcript:

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

2 برنامه بررسي شده در جلسه پيش: #include void main() { struct people { float h,w; char n[20]; void f() {cout<<"\nHeight: "<<h<<" Weight: "<<w<<" Name: "<<n;} }; people a,b,c; cout<<"\n a:"; cin>>a.h>>a.w>>a.n; cout<<"\n b:"; cin>>b.h>>b.w>>b.n; cout<<"\n c:"; cin>>c.h>>c.w>>c.n; float average=(a.h+b.h+c.h)/3; cout<<"\nAverage: "<<average; people x,y,z; x.h=150; x.w=60; strcpy(x.n,"Ali"); y.h=160; y.w=70; strcpy(y.n,"Reza"); z.h=170; z.w=80; strcpy(z.n,"Mohsen"); x.f(); y.f(); z.f(); } 2

3 تنها f() كه به صورت تابع عضو (Member Function) تعريف شده است، با توجه به شيوه تعريف آن، تنها از طريق اشياء مي تواند فراخواني شود. توابع عضو متد (Method) نيز ناميده مي شوند. 3 نكات لازم مي بايست داده هاي عضو يك شيء، خصوصيات (Properties) نيز ناميده مي شوند. مناسب و معمول است كه براي مقداردهي خصوصيات از توابعي استفاده شود كه در آنها نكات لازم درباره خصوصيات در نظر گرفته مي شود. همچنين مناسب است كه براي دريافت خصوصيات از كاربر نيز توابعي نوشته شود. به صورت خلاصه: تمامي كارهاي مربوط به خصوصيات مي بايست توسط توابعي كه به همين منظورها نوشته مي شوند، انجام داده شوند.

4 #include #include void main() { struct people { float h,w; char n[20]; void put() { cout 0)h=H; elseh=0; if(W>0)w=W; elsew=0; strcpy(n,s);} void get() {cout >h; cout >w; cout >n;} }; 4 برنامه پيشين پس از انجام نكات گفته شده:

5 people a,b,c; cout<<"\n a:"; a.get(); cout<<"\n b:"; b.get(); cout<<"\n c:"; c.get(); float average=(a.h+b.h+c.h)/3; cout<<"\nAverage: "<<average; people x,y,z; x.set(150,60,"Ali"); y.set(160,70,"Reza"); z.set(170,80,"Mohsen"); x.put(); y.put(); z.put(); } 5 ادامه برنامه:

66 معمولاً براي تعريف انواع داده اي به جاي كلمه كليدي struct از class استفاده مي شود و به اين دليل نوعهاي تعريف شده را عموماً كلاس يا رده مي نامند. در برنامه اي كه خواهيم ديد، كلاس (رده) people تعريف شده و از آن اشيائي مي سازيم. سطوح دسترسي: در كلاسهاي تعريف شده مي توان بخشهايي را به صورت عمومي (public) و قابل دسترس از طريق فراخواني از اشياء و بخشهايي را خصوصي (private) و غير قابل دسترس در فراخواني از اشياء تعريف كرد. چگونگي اين كار را در برنامه بعد مي بينيم.

7 #include #include void main() { class people { private:float h,w; char n[20]; public:void put() { cout 0)h=H; elseh=0; if(W>0)w=W; elsew=0; strcpy(n,s);} void get() {cout >h; cout >w; cout >n;} }; 7 برنامه پيشين پس از انجام نكات گفته شده:

8 people a,b,c; cout<<"\n a:"; a.get(); cout<<"\n b:"; b.get(); cout<<"\n c:"; c.get(); float average=(a.h+b.h+c.h)/3; cout<<"\nAverage: "<<average; people x,y,z; x.set(150,60,"Ali"); y.set(160,70,"Reza"); z.set(170,80,"Mohsen"); x.put(); y.put(); z.put(); } 8 ادامه برنامه:

9 چگونگي دسترسي به زير بخشهاي خصوصي اشياء: از طريق توابع دسترسي كه در بخش عمومي تعريف شده اند مي توان به زيربخشهاي خصوصي شيء دسترسي (كنترل شده) داشت. مي دانيم كه توابع عضو يك رده به همه بخشها (خصوصي و عمومي) دسترسي دارند. در چنين دسترسي مي توان شرايط مورد نياز را براي دسترسي اعمال كرد، براي نمونه: اجازه ندهيم وزن يا قد افراد منفي يا صفر شود. معمولاً توابع دسترسي با نامهايي مانند set و get مشخص مي شوند. خصوصيات شيءگرايي كه تاكنون تامين شده اند؟ Encapsulation: با هم ديدن داده ها و كاركرد ها در يك بسته Data Hiding: كنترل دسترسي به زير بخشهاي داده اي اشياء

10 تعريف آرايه اي از اشياء و اشاره گر به اشياء: people p1,pp[10],*p; فراخواني توابع و بخش داده اي: p1.get(); p1.put(); for(i=0;i<10;i++) pp[i].get(); for(i=0;i<10;i++) pp[i].put(); p=&p1; p->get(); p->put();

11 نمونه برنامه نويسي شيءگرا: برنامه اي بنويسيد كه تعداد كاراكترهاي ‘x’ ورودي را محاسبه كرده و نشان دهد. اشياء < شمارنده ها داده هاي عضو كلاس توابع عضو، توابع رابط، تعريف تابع در خارج كلاس كاركرد برنامه

12 حل مساله به روش شيءگرا:

13 سازنده (Constructor): به مجموعه عملياتي گفته مي شود كه در هنگام ساخته شدن يك شيء انجام مي شود. چه هنگامي شيء ساخته مي شود؟ چگونه مي توان سازنده را تعريف كرد؟ سازنده: تابعي همنام كلاس كه همه كارهاي لازم در هنگام ايجاد يك شيء را درون آن مي نويسيم و معمولاً در بخش public نوشته مي شود. بدون نوع برگشتي بوده و به صورت خودكار فراخواني مي شود. معمولاً مقداردهي اوليه و جايابي حافظه در آن انجام مي شود. در مثال پيشين سازنده چه مي تواند باشد؟؟؟؟

14 سازنده (Constructor): #include class counterClass { public: char chr; int counter; counterClass(char); void addone();}; counterClass::counterClass(char theChar) { chr=theChar; counter=0; } void counterClass::addone() { counter++; } void main() { counterClass myCounter('x'); char ch; do { if((ch=getche())==myCounter.chr) myCounter.addone(); } while(ch!=27); cout<<endl<<myCounter.counter; getch(); }

15 #include class counterClass { public: char chr; int counter; counterClass(char); counterClass(); void addone(); }; counterClass::counterClass(char theChar) { chr=theChar; counter=0; } counterClass::counterClass() { chr='x'; counter=0; } void counterClass::addone() { counter++; } چه مي شود اگر آرايه اي از counterClass ها تعريف كنيم؟ تصحيح سازنده براي تعريف آرايه سربارگذاري توابع

16 void main() { counterClass myCounter[26]; int i; for(i=0;i<26;i++) myCounter[i].chr='a'+i; char ch; do { ch=getche(); myCounter[ch-'a'].addone(); } while(ch!=27); for(i=0;i<26;i++) cout<<endl<<"Character: "<<myCounter[i].chr<<" Frequency:"<<myCounter[i].counter; getch(); } ادامه برنامه:

17 مخرب (Destructor): به مجموعه عملياتي گفته مي شود كه در هنگام تخريب شدن يك شيء انجام مي شود. چه هنگامي شيء تخريب مي شود؟ چگونه مي توان مخرب را تعريف كرد؟ مخرب: تابعي همنام كلاس با علامت ~ كه همه كارهاي لازم در هنگام پايان كار شيء را درون آن مي نويسيم و معمولاً در بخش public نوشته مي شود. بدون نوع برگشتي بوده و به صورت خودكار فراخواني مي شود. معمولاً پس دادن حافظه در آن انجام مي شود.

18 بررسي يك نمونه:

19 خروجي برنامه: Entering constructor for global #1 Entering constructor for automatic #1 The beginning of main() Entering constructor for function autmatic The function sFn Entering destrutor for function autmatic Entering constructor for automatic #2 The remainder of main() Entering constructor for global #2 Entering destrutor for global #2 Entering destrutor for automatic #2 Entering destrutor for automatic #1 Entering destrutor for global #1