توابع در C++ قسمت اول اصول كامپيوتر 1.

Slides:



Advertisements
Similar presentations
Overview Reference parameters Documenting functions A game of craps. Design, code, test and document.
Advertisements

 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program Modules in C 5.3Math Library Functions 5.4Functions.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
Function Introduction
 2007 Pearson Education, Inc. All rights reserved C Functions.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions.
 2007 Pearson Education, Inc. All rights reserved C Functions.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 12 – Craps Game Application: Introducing Random.
1 Review (Week1) C++_ the unit of programming is the class from which objects are eventually instantiated. C++ classes contain functions that implement.
1 Random numbers Random  completely unpredictable. No way to determine in advance what value will be chosen from a set of equally probable elements. Impossible.
C Lecture Notes Functions (Cont...). C Lecture Notes 5.8Calling Functions: Call by Value and Call by Reference Used when invoking functions Call by value.
Functions. 3Introduction Divide and conquer –Construct a program from smaller pieces or components –Each piece more manageable than the original program.
 2000 Prentice Hall, Inc. All rights reserved. Functions in C Outline 1Introduction 2Program Modules in C 3Math Library Functions 4Functions 5Function.
1 Lecture 3 Part 1 Functions with math and randomness.
Function. Introduction Library function New defined function Random number generator Scope Inline function Function overload Function Function.
1 Current Assignments Homework 3 is available and is due on Thursday. Iteration and basic functions. Exam 1 on Monday. Review on Thursday.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions Main Objectives: To understand how to construct programs modularly from.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions and Recursion Outline Function Templates Recursion Example Using Recursion: The Fibonacci Series.
 2000 Prentice Hall, Inc. All rights reserved.  2001 NHTI CP 107 M. Saleem Yusuf 1 3.1Introduction Divide and Conquer –Construct a program from smaller.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
Functions in C Outline 1Introduction 2Program Modules in C 3Math Library Functions 4Functions 5Function Definitions 6Function Prototypes 7Header Files.
1 CISC181 Introduction to Computer Science Dr. McCoy Lecture 6 September 17, 2009.
Chapter 5 - Functions Outline 5.1Introduction 5.2Program Modules in C 5.3Math Library Functions 5.4Functions 5.5Function Definitions 5.6Function Prototypes.
1 Chapter 6 - Functions Outline 6.1Introduction 6.2Program Components in C++ 6.6Math Library Functions 6.4Functions 6.5Function Definitions 6.6Function.
 2008 Pearson Education, Inc. All rights reserved Case Study: Random Number Generation C++ Standard Library function rand – Introduces the element.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
C++ Programming Lecture 10 Functions – Part II
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 6 - Functions.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Functions (Header files and Library Functions) Outline.
C++ Programming Lecture 9 Functions – Part I By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions 3.5Function Definitions 3.6Function.
 In this chapter you ‘’ll learn: ◦ To construct programs modularly from functions ◦ To use common math library functions ◦ The mechanism for passing.
EPSII 59:006 Spring Call-by-value example #include void increment(int); //prototype for increment function int main(void) { int a=1; printf("Value.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
 2000 Prentice Hall, Inc. All rights reserved. 5.2Program Modules in C Functions –Modules in C –Programs combine user-defined functions with library functions.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions.
 2000 Prentice Hall, Inc. All rights reserved Introduction Divide and conquer –Construct a program from smaller pieces or components –Each piece.
CHAPTER 4 FUNCTIONS Dr. Shady Yehia Elmashad. Outline 1.Introduction 2.Program Components in C++ 3.Math Library Functions 4.Functions 5.Function Definitions.
1 Lecture 4: Part1 Arrays Introduction Arrays  Structures of related data items  Static entity (same size throughout program)
 2000 Prentice Hall, Inc. All rights reserved Program Components in C++ Function definitions –Only written once –These statements are hidden from.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions and Recursion Outline Introduction Program Components in C++ Math Library Functions Functions.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions.
Functions Course conducted by: Md.Raihan ul Masood
Functions.
Dr. Shady Yehia Elmashad
CISC181 Introduction to Computer Science Dr
IS Program Design and Software Tools Introduction to C++ Programming
Chapter 3 - Functions Outline 3.1 Introduction
Arrays Outline 1 Introduction 2 Arrays 3 Declaring Arrays
Number guessing game Pick a random number between 1 and 10
CMPT 201 Functions.
CSC113: Computer Programming (Theory = 03, Lab = 01)
Deitel- C:How to Program (5ed)
Dr. Shady Yehia Elmashad
Chapter 5 - Functions Outline 5.1 Introduction
Chapter 3 - Functions Outline 3.1 Introduction
Chapter 5 - Functions Outline 5.1 Introduction
Functions Najah Alsubaie Kingdom of Saudi Arabia
Chapter 5 - Functions Outline 5.1 Introduction
Dr. Shady Yehia Elmashad
Chapter 3 - Functions Outline 3.1 Introduction
Chapter 3 - Functions Outline 3.1 Introduction
Chapter 6 - Functions Outline 5.1 Introduction
Chapter 3 - Functions Outline 3.1 Introduction
CS150 Introduction to Computer Science 1
Functions Imran Rashid CTO at ManiWeber Technologies.
Chapter 3 - Functions Outline 3.1 Introduction
Functions in C Math Library Functions Functions Function Definitions
Presentation transcript:

توابع در C++ قسمت اول اصول كامپيوتر 1

آشنايي تقسيم و حل ساخت يك برنامه با استفاده از قطعات كوچكتر مستقل هر بخش، وظيفه خاصي دارد و به دليل كوچك بودن ،مديريت آن آسانتر است

اجزا برنامه در C++ هر برنامه : با فراخواني تابع، از توابع استفاده مي كنيم هنگام فراخواني تابع، نام تابع وبرخي از اطلاعات مورد نياز آن را ذكر مي كنيم فراخواني تابع مانند كار رييس و كارگر است: رييس(تابع فراخوني كننده )‌از كارگر (تابع فراخواني شده) مي خواهد كه كاري را انجام داده و برگردد كد تابع يكبار نوشته مي شود: دستورات يك تابع از توابع ديگر جدا و مخفي ست. مثال: (رييس و كارگر): رييس لازم نيست بداند كه كارگر كار مورد نظر را چگونه انجام مي دهد. او تنها به انجام شدن كار اهميت مي دهد.

توابع كتابخانه اي رياضي در C++ توابع عمومي رياضي را پياده سازي مي كنند با الحاق <cmath> به برنامه مي توان از آنها استفاده كرد فرخواني اين توابع به شكل زير است: functionName (argument) مثال cout << sqrt( 900.0 ); اين دستور تابع sqrt (ريشه دوم ) را فراخواني مي كند. دستور بالا، عدد 30 را چاپ مي كند همانند بقيه توابع مشابه در كتابخانه رياضي، اين تابع يك آرگومان از نوع double ‌مي گيرد و يك نتيجه از همان نوع توليد مي كند.

توابع كتابخانه اي رياضي در C++ آرگومان توابع مي تواند يكي از انواع زير باشد ثابت sqrt( 4 ); متغير sqrt( x ); عبارت sqrt( sqrt( x ) ) ; sqrt( 3 - 6x );

توابع با استفاده از توابع: برنامه نويس مي تواند برنامه خود را به چندين بخش تقسيم كند هر بخش را يك پيمانه (Module‌) مي گويند تقسيم برنامه به چند پيمانه را Modularization مي گويند متغير هاي محلي تنها در تابعي كه تعريف شده اند، شناخته مي شوند پارامترهاي تابع دسته اي از متغيرهاي محلي هستند كه براي انتقال داده از خارج به داخل تابع استفاده مي شوند

هنگام برنامه نويسي، توابعي تعريف كنيد كه: تعريف توابع هنگام برنامه نويسي، توابعي تعريف كنيد كه: داده ها را بگيرند عملياتي انجام دهند نتيجه را برگردانند نحوه تعريف تابع return-value-type function-name( parameter-list ) { declarations and statements } مثال: int square( int y) { return y * y; }

1. Function prototype 2. Loop Function definition Program Output 1 // Fig. 3.3: fig03_03.cpp 2 // Creating and using a programmer-defined function 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 int square( int ); // function prototype 9 10 int main() 11 { 12 for ( int x = 1; x <= 10; x++ ) 13 cout << square( x ) << " "; 14 15 cout << endl; 16 return 0; 17 } 18 19 // Function definition 20 int square( int y ) 21 { 22 return y * y; 23 } Notice how parameters and return value are declared. 1. Function prototype 2. Loop Function definition Program Output 1 4 9 16 25 36 49 64 81 100

1. Function prototype (3 parameters) 2. Input values 2.1 Call function 1 // Fig. 3.4: fig03_04.cpp 2 // Finding the maximum of three integers 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 int maximum( int, int, int ); // function prototype 10 11 int main() 12 { 13 int a, b, c; 14 15 cout << "Enter three integers: "; 16 cin >> a >> b >> c; 17 18 // a, b and c below are arguments to 19 // the maximum function call 20 cout << "Maximum is: " << maximum( a, b, c ) << endl; 1. Function prototype (3 parameters) 2. Input values 2.1 Call function

Function definition Program Output 21 22 return 0; 23 } 24 25 // Function maximum definition 26 // x, y and z below are parameters to 27 // the maximum function definition 28 int maximum( int x, int y, int z ) 29 { 30 int max = x; 31 32 if ( y > max ) 33 max = y; 34 35 if ( z > max ) 36 max = z; 37 38 return max; 39 } Function definition Program Output Enter three integers: 22 85 17 Maximum is: 85 Enter three integers: 92 35 14 Maximum is: 92 Enter three integers: 45 19 98 Maximum is: 98

الگوي توابع الگوي تابع از قسمتهاي زير تشكيل يافته است نام تابع پارامترها داده هايي كه تابع بعنوان ورودي دريافت مي كند نوع نتيجه برگشتي بيانگر نوع داده برگشتي به فراخواننده است. )پيش فرض int ) void نوع برگشتي void ‌بدين معني است كه تابع هيچ چيزي بر نمي گرداند اگر تابع فراخواننده پيش از تابع فراخواني شده ، نوشته شده باشد، لازم است الگوي تابع پيش از استفاده از آن اعلام شود مثال: int maximum( int, int, int ); سه عدد صحيح مي گيرد يك عدد صحيح برمي گرداند

فايلهاي Header Header files حاوي الگوي توابع كتابخانه اي هستند <cstdlib> , <cmath>, etc. با دستور #include <filename> به برنامه اضافه مي شوند مثال: #include <cmath> فايلهاي Header خصوصي برنامه نويس مي تواند فايلهاي Header‌مورد نياز خود را تعريف كند و الگوي توابع خاصي را در آنها قرار دهد با اين نام و پسوند ذخيره مي شوند: filename.h با استفاده از دستور زير به برنامه اضافه مي شوند: #include "filename.h"

توليد اعداد تصادفي تابع rand <cstdlib> i = rand(); <cstdlib> عدد شبه تصادفي بين صفر تا RAND_MAX‌توليد مي كند . اين ثابت معمولا برابر 32767 است اعداد شبه تصادفي ، دنباله اي از اعداد تصادفي هستند كه تحت فرمول ويژه اي توليد مي شوند در هربار اجراي برنامه، اين دنباله تكرار مي شودs تابع srand نقطه شروع اين دنباله را تعيين مي كند srand( seed ); srand( time( 0 ) ); //must include <ctime> time( 0 ) زمان كامپايل شدن برنامه را بر مي گرداند استفاده از اين تابع سبب مي شود پس از هر بار كامپايل برنامه، دنباله متفاوتي توليد شود

توليد اعداد تصادفي i = rand() % 6 + 1; تغيير دامنه اعداد با استفاده از عملگر محاسبه باقيمانده مي توان دنباله توليد اعداد تصادفي را به بازه خاصي محدود كرد X =rand() % 100 براي توليد اعداد از 0 تا 99 i = rand() % 6 + 1; توليد اعداد تصادفي از 1 تا 6

1. Define loop Output random number Program Output 1 // Fig. 3.7: fig03_07.cpp 2 // Shifted, scaled integers produced by 1 + rand() % 6 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <iomanip> 9 10 using std::setw; 11 12 #include <cstdlib> 13 14 int main() 15 { 16 for ( int i = 1; i <= 20; i++ ) { 17 cout << setw( 10 ) << ( 1 + rand() % 6 ); 18 19 if ( i % 5 == 0 ) 20 cout << endl; 21 } 22 23 return 0; 24 } 1. Define loop Output random number Program Output Notice rand() % 6 . This returns a number between 0 and 5 (scaling). Add 1 to get a number between 1 and 6. Executing the program again gives the same "random" dice rolls. 5 5 3 5 5 2 4 2 5 5 5 3 2 2 1 5 1 4 6 4

2.1 Use srand to change random sequence 1 // Fig. 3.9: fig03_09.cpp 2 // Randomizing die-rolling program 3 #include <iostream> 4 5 using std::cout; 6 using std::cin; 7 using std::endl; 8 9 #include <iomanip> 10 11 using std::setw; 12 13 #include <cstdlib> 14 15 int main() 16 { 17 unsigned seed; 18 19 cout << "Enter seed: "; 20 cin >> seed; 21 srand( seed ); 22 23 for ( int i = 1; i <= 10; i++ ) { 24 cout << setw( 10 ) << 1 + rand() % 6; 25 26 if ( i % 5 == 0 ) 27 cout << endl; 28 } 29 30 return 0; 31 } 1. Initialize seed 2. Input value for seed 2.1 Use srand to change random sequence 2.2 Define Loop 3. Generate and output random numbers

Program Output Notice how the die rolls change with the seed. Enter seed: 67 1 6 5 1 4 5 6 3 1 2 Enter seed: 432 4 2 6 4 3 2 5 1 4 4 Notice how the die rolls change with the seed. Program Output

مثال : بازي شانسي ثابتها از 0 شروع شده و يكي يكي اضافه مي شوند. نوع داده شمارشي: مجموعه اي از اعداد صحيح كه با اسم تعريف مي شوند enum typeName {constant1, constant2…}; ثابتها از 0 شروع شده و يكي يكي اضافه مي شوند. اسم ثابتها منحصر بفرد بايد باشد مثال: enum Status {CONTINUE, WON, LOST}; استفاده از نوع داده شمارشي: Status enumVar; // create variable enumVar = WON; // set equal to WON enumVar = 1; // ERROR

مثال : بازي شانسي ثابت هاي شمارشي را مي توان هنگام تعريف مقدار دهي كرد: enum Months { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; Starts at 1, increments by 1 قاعده بازي: دو تاس را با هم بريزيد: مجموع 7 يا 11 نشانگر برنده شدن بازيگر است اگر در دور اول 2 ، 3 يا 12 بيايد، بازيگر بازنده است 4, 5, 6, 8, 9, 10 عدد بدست آمده امتياز بازيگر است بازيگر بايد آنقدر تاس بريزد تا : مجموعي برابر امتياز كسب شده در مرحله اول بدست آورد كه در اين صورت برنده است مجموع بدست آمده 7 باشد كه دراين صورت بازنده است

1.1 Initialize variables and enum 1 // Fig. 3.10: fig03_10.cpp 2 // Craps 3 #include <iostream> 4 5 using std::cout; 6 using std::endl; 7 8 #include <cstdlib> 9 10 #include <ctime> 11 12 using std::time; 13 14 int rollDice( void ); // function prototype 15 16 int main() 17 { 18 enum Status { CONTINUE, WON, LOST }; 19 int sum, myPoint; 20 Status gameStatus; 21 22 srand( time( 0 ) ); 23 sum = rollDice(); // first roll of the dice 24 25 switch ( sum ) { 26 case 7: 27 case 11: // win on first roll 28 gameStatus = WON; 29 break; 30 case 2: 31 case 3: 32 case 12: // lose on first roll 33 gameStatus = LOST; 34 break; 1. rollDice prototype 1.1 Initialize variables and enum 1.2 Seed srand 2. Define switch statement for win/loss/continue Notice how the enum is defined

2.1 Define loop to continue playing 2.2 Print win/loss 35 default: // remember point 36 gameStatus = CONTINUE; 37 myPoint = sum; 38 cout << "Point is " << myPoint << endl; 39 break; // optional 40 } 41 42 while ( gameStatus == CONTINUE ) { // keep rolling 43 sum = rollDice(); 44 45 if ( sum == myPoint ) // win by making point 46 gameStatus = WON; 47 else 48 if ( sum == 7 ) // lose by rolling 7 49 gameStatus = LOST; 50 } 51 52 if ( gameStatus == WON ) 53 cout << "Player wins" << endl; 54 else 55 cout << "Player loses" << endl; 56 57 return 0; 58 } 59 2.1 Define loop to continue playing 2.2 Print win/loss

3. Define rollDice function Program Output 60 int rollDice( void ) 61 { 62 int die1, die2, workSum; 63 64 die1 = 1 + rand() % 6; 65 die2 = 1 + rand() % 6; 66 workSum = die1 + die2; 67 cout << "Player rolled " << die1 << " + " << die2 68 << " = " << workSum << endl; 69 70 return workSum; 71 } Player rolled 6 + 5 = 11 Player wins Player rolled 4 + 6 = 10 Point is 10 Player rolled 2 + 4 = 6 Player rolled 3 + 3 = 6 Player rolled 6 + 4 = 10 Player rolled 1 + 3 = 4 Point is 4 Player rolled 1 + 4 = 5 Player rolled 5 + 4 = 9 Player rolled 6 + 3 = 9 Player rolled 1 + 2 = 3 Player rolled 5 + 2 = 7 Player loses 3. Define rollDice function Program Output

پروژه شماره 1- بازي حدس اعداد برنامه اي بنويسيد كه عددي 5 رقمي به صورت تصادفي توليد كند و از كاربر بخواهد اين عدد را حدس بزند. عدد توليد شده را عدد مخفي و عددي را كه كاربر وارد مي كند عدد كاربر مي ناميم برنامه بايد عدد كاربر را با عدد مخفي مقايسه كند و در صورت مساوي نبودن اين دو عدد، دو كميت زير را محاسبه و چاپ كند: تعداد ارقام مشابه عدد مخفي و عدد كاربر تعداد ارقام مشابه عدد مخفي و عدد كاربر كه ارزش مكاني آنها نيز مشابه باشد مثال : عدد مخفي 11386 و عدد كاربر 18755 تعداد ارقام مشابه: 2 ( 1و 8 در هر دو عدد موجودند) تعداد ارقام مشابه و هم ارزش : 1 ( رقم 1 در هر دو عدد در مكان پنجم است) آيا مي توانيد الگوريتمي ارائه دهيد كه با تعداد قدمهاي متناهي، هر عدد ممكني را حدس بزند؟ حداقل و حداكثر تعداد قدمهاي لازم براي حدس يك عدد چقدر است؟ پروژه انفرادي و مهلت انجام آن تا دو هفته آينده است. از توابع مناسب براي پياده سازي قسمتهاي مختلف اين برنامه استفاده كنيد