Download presentation
Presentation is loading. Please wait.
1
اصول کامپیوتر ۱ مبانی کامپیوتر و برنامهسازی
اصول کامپیوتر ۱ مبانی کامپیوتر و برنامهسازی «جلسهی پانزدهم» دانشکدهی علوم ریاضی - دانشگاه شهید بهشتی نیمسال اول ۹۰-۱۳۸۹ مدرس: سید علی کتانفروش گردآوری و تألیف: سید علی کتانفروش حق هر نوع استفاده متعلق به پدیدآورنده است. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
2
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
3
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
دستورات پیش-پردازشگر preprocessor instructions اعلان توابع و کلاسها دستورات برنامهنویسی توضیحات comments 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
4
توضیحات متن دلخواه درون برنامه که کامپایلر آنرا نادیده میگیرد.
توضیحات متن دلخواه درون برنامه که کامپایلر آنرا نادیده میگیرد. /* test263.cpp, version 0.15 copyright Ali Katanforoush last update: 1389/9/14 */ #include <iostream> #define MAX_SIZE 20 using namespace std; int main( int argc, char *argv[]){ Block comments باید بین /* و */ نوشته شود 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
5
دستورات پیش پردازشگر /* test263.cpp, version 0.15
copyright Ali Katanforoush last update: 1389/9/14 */ #include <iostream> #define MAX_SIZE 20 using namespace std; int main( int argc, char *argv[]){ Preprocessing instructions هر دستور با علامت # شروع میشود و در یک خط نوشته میشود 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
6
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
اعلان توابع .... #include <iostream> #define MAX_SIZE 20 using namespace std; int main( int argc, char *argv[]) { int a[MAX_SIZE]; int i; for ( i=0;i<MAX_SIZE;i++ ) } Function declaration 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
7
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
دستورات برنامهنویسی int main( int argc, char *argv[]) { int n,k; // TODO print a prompt for input cin >> n >> k; int A,B; A = 1; // initialize A by 0! int i; for ( i=1; i<=n; i++ ) A = A * i; // here last edit, 23:59 89/10/15 for ( i=1; i<=n-k; i++ ) B = B * i; cout << A/B << endl; } Line comments مقابل // نوشته میشوند 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
8
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
در انتهای هر دستور برنامهنویسی یک علامت ; نوشته میشود. با نوشتن مجموعهای از دستورات بین علامت { و }، یک بلوک از دستورات داریم که از نظر گرامر برنامهنویسی، جایگاهی معادل یک دستور دارد. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
9
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
در انتهای هر دستور برنامهنویسی یک علامت ; نوشته میشود. S = 0; for ( i=1; i<n; i++ ) if ( i%2 == 0 ) S = S + 4.0/(2*i+1); else S = S – 4.0/(2*i+1); cout << "PI = " << S << endl; S = 0; for ( i=1; i<n; i++ ) { if ( i%2 == 0 ) S = S + 4.0/(2*i+1); else S = S – 4.0/(2*i+1); } cout << "PI = " << S << endl; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
10
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
با نوشتن مجموعهای از دستورات بین علامت { و }، یک بلوک از دستورات داریم که از نظر گرامر برنامهنویسی، جایگاهی معادل یک دستور دارد. for ( i=1; i<=10; i++ ) { for ( j=1; j<=10; j++ ) cout << i*j << " "; cout << endl; } for ( i=1; i<=10; i++ ) for ( j=1; j<=10; j++ ) cout << i*j; cout << endl; for ( i=1; i<=10; i++ ) for ( j=1; j<=10; j++ ) cout << i*j << " "; cout << endl; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
11
مروری بر آنچه از زبان برنامهنویسی ++C/C آموختهایم
Type Description Size Range int اعداد صحیح 4 bytes to float اعداد اعشاری (با دقت معمولی) +/-3.4E+/-38 (~7 digits) double اعداد اعشاری با دقت مضاعف 8 bytes +/-1.7E+/-308 (~15 digits) bool بولی 1 byte {false, true} char کاراکتر 0 to 255 نوع دادهای رشته (string) جزء انواع دادهای مقدماتی زبان C نیست. با وجود این، کتابخانهی string که از کتابخانههای استاندارد ++C است این نوع را تعریف میکند. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
12
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
ثابتها در زبان ++C/C در برنامهنویسی به زبان C، نوع دادهای ثابتها باید مورد توجه قرار گیرد. مقادیر ثابت در برنامه همانند متغیرها، بخشی از حافظهی کامپیوتر را به خود اختصاص میدهند. به عبارت دقیقتر، کامپایلر به هر یک از مقادیر ثابت نوشته شده در دستورات برنامه، حافظهی معینی اختصاص میدهد و مقدار ثابت را در آن حافظه ذخیره میکنند. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
13
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
ثابتها در زبان ++C/C int n = 2; double x = 4 * n + 0.5; x n 8.5 4 * 2 0.5 هر مقدار ثابت در برنامه، فضای معینی از حافظه را اشغال میکند. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
14
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
ثابتها در زبان ++C/C مقدار فضایی از حافظهی برنامه که به هر ثابت اختصاص داده میشود متناسب با نوع دادهای آن ثابت است. به عنوان مثال، 150 در ۴ بایت (حافظهی مورد نیاز برای یک عدد int) و 1.0 در ۸ بایت (حافظهی مورد نیاز برای عدد double) ذخیره میشوند. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
15
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
ثابتها در زبان ++C/C نوع دادهای ثابتها بر نحوهی فراخوانی و محاسبهی توابع و عملگرها تأثیر میگذارد. 9/2 → خارج قسمت صحیح 9.0/2.0 → خارج قسمت اعداد اعشاری 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
16
نگارش ثابتها در زبان ++C/C
ثابتها به دو شکل در برنامه مورد استفاده قرار میگیرند. ثابتهای نوشتاری Literal constant ثابتهای تعریفشده Defined/declared constant شکل نوشتاری ثابتهای نوشتاری، ثابت بودن آنها را تصریح میکند. مثل 1340 یا 3.14 یا 'a' و "hello" ثابتهای تعریفشده، از طریق یک نام (شناسه) قابل استفاده هستند. مثلاً M_PI نام تعریف شدهی عدد π در کتابخانهی cmath است. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
17
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
۱. ثابتهای عدد صحیح int مبنای ده (شکل متعارف نگارش اعداد با ارقام هندی- عربی). مثل 123 اگر عدد با صفر شروع شود کامپایلر آنرا در مبنای هشت در نظر میگیرد. مثل 0100 که معادل ۶۴ است. اگر عدد جلوی 0x نوشته شود کامپایلر آنرا در مبنای شانزده در نظر میگیرد. مثل 0xA0 که معادل ۱۶۰ است. برای نگارش اعداد در مبنای شانزده، از A بجای ۱۰، B بجای ۱۱ و ... F بجای ۱۵ استفاده میکنیم. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
18
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
۲. ثابتهای اعشاری float و double وجود نقطهی اعشار برای کامپایلر دال بر اعشاری بودن نوع دادهای ثابت است. مثل 1.0 یا 3.14 یا 0.5 نماد علمی e23 1.6e-19 ثابتهای اعشاری به طور پیشفرض از نوع double هستند. اگر میخواهید کامپایلر یک ثابت اعشاری را از نوع float در نظر گیرد حرف f را در انتهای ثابت بنویسید. مثل 1.0f 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
19
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
علائم نوشتاری ثابتها (مثل نقطهی اعشار و ...)، عملگر نیستند! int n; double x = n.0 / 2; غلط double x = n / 2.0; درست double x = double(n) / 2; درست double M = 1.0e(n); غلط double M = 1.0e n; غلط double M = pow(10,n); درست 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
20
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
مثال. برنامهای برای مشاهدهی کوچکترین عدد مثبت قابل نمایش در نوع دادهای double int main() { double e = 1; while ( e > 0 ) { cout << e << endl; e = e / 2; } system("pause"); return 0; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
21
اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
مثال. برنامهای برای مشاهدهی بیشترین تعداد ارقام معنادار قابل نمایش در نوع دادهای double int main() { double d = 1; while ( 1 + d != 1 ) d = d / 2; cout << d << endl; system("pause"); return 0; } هر دو برنامه را به ازای نوع دادهای float نیز اجرا کنید. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
22
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
۳. ثابتهای کاراکتری char باید بین دو علامت single quote نوشته شوند و دقیقاً یک کاراکتر باشند. مثل 'a' یا '=' یا ' ' (space) ۴. ثابتهای رشتهای string باید بین دو علامت double quote نوشته شوند و میتوانند یک، هیچ یا چند کاراکتر باشند. مثل "a" یا "abc" یا "" (رشتهی تهی) 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
23
نحوهی نگارش کاراکترهای ویژه در ++C/C
به طور کلی، علامت backslash در ثابتهای کاراکتری و رشتهای، برای کامپایلر نشاندهندهی آن است که کاراکتری که در ادامهی آن نوشته شده است یک کاراکتر ویژه است. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
24
نحوهی نگارش کاراکترهای ویژه در ++C/C
مثال. cout << "A\tB\tC\tD" << endl; cout << "one\n two\n three\n" << endl; cout << "12346\b5" << endl; cout << "C:\\Documents and Settings\\User1\\Desktop\n"; cout << "Please, type \"yes\" to continue." << endl; cout << "Early soon \0 stop!" << endl; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
25
خصوصیات نوع دادهای کاراکتر در زبان ++C/C
به طور کلی آنچه به عنوان کاراکتر در حافظهی کامپیوتر ذخیره میشود کد اَسکی متناظر با آن کاراکتر است که در عمل، یک عدد صحیح بین 0 تا 255 است. در زبان C، کاراکترها به طور صریح قابل تبدیل به نوع دادهای عدد صحیح (int) هستند. cout << int('a'); // 97 همچنین، مقادیر عدد صحیح نیز به طور صریح قابل تبدیل به نوع کاراکتری (char) هستند. cout << char(100); // d 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
26
خصوصیات نوع دادهای کاراکتر در زبان ++C/C
if ( 'A' <= c && c <= 'Z') cout << c << " is a capital letter"; اگر در عبارتی، تابع یا عملگری از توابع یا عملگرهای اعداد صحیح بر روی مقادیر کاراکتری بکار بسته شود کامپایلر به طور ضمنی، نوع کاراکتر را به نوع عدد صحیح، یعنی کد اَسکی متناظر با کاراکتر تبدیل میکند. c = c + 'A' – 'a'; // capitalize 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
27
خصوصیات نوع دادهای کاراکتر در زبان ++C/C
مثال. برنامهای بنویسید که یک عدد صحیح را به صورت کاراکتری دریافت کند و ارزش عددی آنرا محاسبه و چاپ کند. char c; int n = 0; cin >> c; while ( '0' <= c && c <= '9' ) { n = 10*n + c – '0'; } cout << n << endl; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
28
خصوصیات نوع دادهای کاراکتر در زبان ++C/C
مسأله. برنامهای بنویسید که یک عدد اعشاری را به صورت کاراکتری دریافت کند و ارزش عددی آنرا محاسبه و چاپ کند. 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
29
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
۵. ثابتهای بولی. کلمات کلیدی true و false در زبان ++C/C تنها ثابتهای نوشتاری نوع دادهای بولی هستند. bool f = true; bool f = "true"; غلط عدد صفر معادل false و هر عدد صحیح غیر صفر معادل true در نظر گرفته میشود. bool f = 0; // false bool p = 100; // true 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
30
نحوهی نگارش ثابتهای نوشتاری در زبان ++C/C
در مقابل، در صورت استفاده از مقادیر بولی در عبارات محاسباتی مربوط به اعداد صحیح، false به عدد صفر و true به عدد یک تبدیل میشود. int s = 2 * (n>=0) – 1; 12/4/2018 اصول کامپیوتر ۱ / مبانی کامپیوتر و برنامهسازی
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.