1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] توابع بخش از کد مورد استفاده در یک برنامه بزرگتر 2 00:00:09,640 --> 00:00:11,430 برای انجام یک کار خاص. 3 00:00:11,430 --> 00:00:15,060 آنها همچنین به عنوان روش، زیرروالهای، و subprograms شناخته شده است، 4 00:00:15,060 --> 00:00:18,320 از آنجایی که آنها واقعا فقط برنامه های کوچک در داخل برنامه. 5 00:00:18,320 --> 00:00:20,340 حتی اگر شما ممکن است متوجه نیست، 6 00:00:20,340 --> 00:00:24,090 از همه شما را قطعا استفاده از توابع در حال حاضر اگر شما در C. برنامه ریزی 7 00:00:24,090 --> 00:00:26,770 هنگامی که شما مطالبی بنویسم به روی صفحه نمایش با استفاده از printf، 8 00:00:26,770 --> 00:00:29,380 شما در واقع با استفاده از یک تابع به نام printf است. 9 00:00:29,380 --> 00:00:33,760 به همین ترتیب، GetInt و GetString توابع که CS50 را برای شما فراهم می کند. 10 00:00:33,760 --> 00:00:37,750 به عنوان برنامه نویسان، استفاده از توابع برای تعدادی از دلایل است. 11 00:00:37,750 --> 00:00:41,240 >> داشتن توابع به انجام وظایف عادی مانند نوشتن به صفحه 12 00:00:41,240 --> 00:00:44,480 و باعث کاربر برای ورودی موجب صرفه جویی در زمانی که برنامه نویسی است. 13 00:00:44,480 --> 00:00:47,510 لازم نیست برای نوشتن کد به انجام آن چیزهایی مشابه 14 00:00:47,510 --> 00:00:49,520 از آنجایی که آنها در حال حاضر برای ما انجام می شود. 15 00:00:49,520 --> 00:00:54,580 حتی لازم نیست برای ما به درک دقیقا چگونه این توابع کار با داخلی. 16 00:00:54,580 --> 00:00:58,880 در عوض، ما فقط باید بدانید که چگونه برای استفاده و یا آنها را در برنامه های ما است. 17 00:00:58,880 --> 00:01:02,040 همچنین مفید است برای نوشتن توابع در برنامه های بزرگتر 18 00:01:02,040 --> 00:01:04,330 حتی اگر شما در داشتن دیگران آنها را با استفاده از برنامه ریزی نیست، 19 00:01:04,330 --> 00:01:06,830 فقط به تقسیم کار بیشتری در دست است. 20 00:01:06,830 --> 00:01:11,910 به این ترتیب، شما را به ساختار بسیار شبیه به کد شما شما می خواهم به ساختار مقاله، 21 00:01:11,910 --> 00:01:15,180 و با پروژه های واقعا بزرگ شما را قادر می سازد که چند نفر 22 00:01:15,180 --> 00:01:16,730 برای کار بر روی بخش های مختلف در همان زمان 23 00:01:16,730 --> 00:01:20,480 از آن که کار یک فرد به پایان می رسد و دیگری آغاز می شود. 24 00:01:20,480 --> 00:01:26,530 >> توابع به طور معمول 1 یا چند ورودی، شناخته شده به عنوان آرگومان و یا پارامتر عمل می کنند، 25 00:01:26,530 --> 00:01:30,520 تبدیل این ورودی را به یک مقدار خروجی است که سپس. 26 00:01:30,520 --> 00:01:34,950 با این حال، آن را نیز ممکن است به توابع که هیچ آرگومان ورودی استفاده کنید 27 00:01:34,950 --> 00:01:36,400 و خروجی بر نمی گرداند. 28 00:01:36,400 --> 00:01:38,790 خوب، به اندازه کافی با چیزهای کرکی. 29 00:01:38,790 --> 00:01:41,790 بیایید نگاهی به برخی از عملکردهای واقعی در C. 30 00:01:41,790 --> 00:01:45,570 >> در اینجا ما باید یک تابع به نام مربع آن، آن را باور کنید یا نه، 31 00:01:45,570 --> 00:01:47,570 محاسبه مربع از ورودی است. 32 00:01:47,570 --> 00:01:49,490 بیایید تشریح نحو آن. 33 00:01:49,490 --> 00:01:51,860 اولین کلمه شما را در تابع، عدد صحیح، 34 00:01:51,860 --> 00:01:57,460 نوع برگشتی تابع را مشخص می، است که، با توجه به نوع خروجی تابع C است. 35 00:01:57,460 --> 00:02:00,370 این تابع یک مقدار با نوع int دهد. 36 00:02:00,370 --> 00:02:04,100 کلمه بعدی شما را ببینید نام تابع، مربع در این مورد است. 37 00:02:04,100 --> 00:02:07,390 نامگذاری توابع مناسب بسیار مهم است 38 00:02:07,390 --> 00:02:11,260 از آن احتمالا به اسناد قابل رویت ترین از آنچه تابع است. 39 00:02:11,260 --> 00:02:14,880 این ممکن است سرد به نام Shazam را تابع و یا booyah، 40 00:02:14,880 --> 00:02:18,340 اما این نیست که ما هر چیزی در مورد آنچه تابع بگویید. 41 00:02:18,340 --> 00:02:23,470 >> پس از نام تابع بیا ورودی به تابع، استدلال است. 42 00:02:23,470 --> 00:02:26,380 آنها در داخل یک مجموعه ای از پرانتز ذکر شده است 43 00:02:26,380 --> 00:02:30,160 با هر دو نوع خود و یک نام برای استفاده از آنها در داخل بدنه تابع است. 44 00:02:30,160 --> 00:02:34,030 میدان طول می کشد فقط 1 بحث، هوشمند مربع، 45 00:02:34,030 --> 00:02:36,160 که من تصمیم گرفتم را به نام ایکس. 46 00:02:36,160 --> 00:02:40,760 این امر به پایان می رسد یا نمونه اعلامیه تابع است. 47 00:02:40,760 --> 00:02:43,320 فرفری پرانتز در اطراف بقیه از تابع 48 00:02:43,320 --> 00:02:45,870 نشان دهنده آغاز و پایان بدنه تابع، 49 00:02:45,870 --> 00:02:48,320 تعریف تابع خود. 50 00:02:48,320 --> 00:02:50,300 میدان یک تابع بسیار ساده است. 51 00:02:50,300 --> 00:02:54,100 این تنها 1 خط، از آنجا که همه ما باید انجام دهیم این است که ضرب x به خود است. 52 00:02:54,100 --> 00:02:59,250 کلمه بازگشت مقدار خروجی را مشخص و باعث پایان تابع است. 53 00:02:59,250 --> 00:03:03,430 برای استفاده از تابع مربع، ما نیاز به ورودی های مناسب عرضه 54 00:03:03,430 --> 00:03:05,310 و سپس خروجی را ضبط کنید. 55 00:03:05,310 --> 00:03:08,140 در اینجا، شما یک زن و شوهر از راه های انجام این کار است. 56 00:03:08,140 --> 00:03:13,600 ما می توانیم در یک نوع int خام منتقل می کند، مانند 6، و یا ما می توانیم در یک متغیر مانند عبور کنید. 57 00:03:13,600 --> 00:03:15,700 توجه داشته باشید که هر زمان ما تماس بگیرید مربع، 58 00:03:15,700 --> 00:03:18,330 خروجی در یک متغیر ضبط می کنیم و سپس آن را چاپ کنید. 59 00:03:18,330 --> 00:03:22,690 با این حال، ما لازم نیست که مقدار بازگشتی را در یک متغیر ذخیره و سپس آن را چاپ. 60 00:03:22,690 --> 00:03:27,090 ما فقط می تواند آن را به طور مستقیم به printf به عنوان کار می کنیم زمانی که ما مربع 10، 61 00:03:27,090 --> 00:03:30,580 اما این به آن معنا است که ما دسترسی به مقدار بازگشتی مربع 10 ندارد 62 00:03:30,580 --> 00:03:32,230 در جاهای دیگر کد. 63 00:03:32,230 --> 00:03:34,890 اجازه دهید نگاهی به یک مثال ساده دیگر. 64 00:03:34,890 --> 00:03:38,750 >> در این زمان، ما 2 شناور با یکدیگر به طوری که ما می توانیم ببینیم که چه چیزی یک تابع به نظر می رسد مثل خلاصه 65 00:03:38,750 --> 00:03:41,220 هنگامی که آن را 2 ورودی به جای فقط 1. 66 00:03:41,220 --> 00:03:43,950 همانطور که می بینید، آن را بسیار متفاوت نیست. 67 00:03:43,950 --> 00:03:47,330 همه ما انجام می دهیم این است که اضافه کردن در استدلال 2، شناور به نام B، 68 00:03:47,330 --> 00:03:51,820 به لیست استدلال با استفاده از کاما به آن را جدا از استدلال اول، شناور است. 69 00:03:51,820 --> 00:03:55,550 بنابراین، مربع و توابع مجموع بسیار آسان به درک 70 00:03:55,550 --> 00:03:58,930 زیرا آنها معادل توابع است که شما را دیده ام قبل از کلاس ریاضی. 71 00:03:58,930 --> 00:04:01,610 در حال حاضر، اجازه دهید نگاهی به یک تابع است که کمی متفاوت است. 72 00:04:01,610 --> 00:04:04,620 به جای بازگشت به یک مقدار، تغییر دولت است. 73 00:04:04,620 --> 00:04:07,260 این است که به عنوان داشتن یک اثر جانبی شناخته شده است. 74 00:04:07,260 --> 00:04:10,750 در این برنامه، از تابع printf_fudd_style 75 00:04:10,750 --> 00:04:13,410 دارای یک نوع بازگشت است که ما را دیده اند، نه قبل از آن، از درجه اعتبار ساقط است. 76 00:04:13,410 --> 00:04:16,730 >> باطل است مورد استفاده قرار گیرد می گویند که یک تابع چیزی بر نمی گرداند. 77 00:04:16,730 --> 00:04:19,410 به هیچ متغیر از نوع خالی وجود دارد، 78 00:04:19,410 --> 00:04:22,760 بنابراین اگر شما سعی می کنید برای بازگشت به چیزی از یک تابع مانند printf_fudd_style، 79 00:04:22,760 --> 00:04:24,290 کامپایلر را به شما داد. 80 00:04:24,290 --> 00:04:29,390 به داخل printf_fudd_style، ما می بینیم که در حالی که تابع انجام یک کار، 81 00:04:29,390 --> 00:04:31,890 یعنی، تعویض تمامی تومان WS، 82 00:04:31,890 --> 00:04:36,380 نقطه از تابع برای تغییر رشته و سپس آن را چاپ کنید بر روی صفحه نمایش، 83 00:04:36,380 --> 00:04:39,400 تغییر وضعیت از این برنامه به جای بازگشت به نتیجه. 84 00:04:39,400 --> 00:04:43,700 با استفاده از این تابع بسیار شبیه با استفاده از مربع و توابع مجموع، 85 00:04:43,700 --> 00:04:46,950 به جز ما در نتیجه در یک متغیر ذخیره نمی کند و یا آن را به یک تابع دیگر 86 00:04:46,950 --> 00:04:49,520 از آنجا که هیچ نتیجه ای برای صحبت وجود دارد. 87 00:04:49,520 --> 00:04:53,180 بنابراین، زمانی که ما کامپایل و اجرای برنامه المر فاد ما 88 00:04:53,180 --> 00:04:56,970 شما می بینید که "شما rascally خرگوش را!" می شود حق را به تبدیل 89 00:04:56,970 --> 00:04:58,730 "شما wascally! wabbit" 90 00:04:58,730 --> 00:05:02,250 >> در نهایت، عملکرد 1 ارزش بحث در مورد وجود دارد 91 00:05:02,250 --> 00:05:06,810 از آنجایی که شما با استفاده از آن در هر برنامه C شما تا کنون نوشته شده است، اصلی. 92 00:05:06,810 --> 00:05:09,450 صفحه اصلی یک تابع مانند هر دیگر است. 93 00:05:09,450 --> 00:05:13,580 این یک نوع بازگشت، یک نام، یک لیست از استدلال، و بدن است. 94 00:05:13,580 --> 00:05:16,110 نوع بازگشت از اصلی است که همیشه بین المللی، 95 00:05:16,110 --> 00:05:19,120 و این نوع int است مورد استفاده قرار گیرد برای برقراری ارتباط از وضعیت برنامه زمانی که آن را پس از اتمام. 96 00:05:19,120 --> 00:05:23,360 >> آیا آن را اجرا با موفقیت، و یا آن را به پایان زود هنگام به دلیل یک خطا؟ 97 00:05:23,360 --> 00:05:26,390 بازگشت به صفر نشان می دهد یک اجرای موفق، 98 00:05:26,390 --> 00:05:29,510 و بازگشت هر مقدار غیر صفر یک خطا را نشان می دهد. 99 00:05:29,510 --> 00:05:31,950 بسته به نوع برنامه ای که شما در حال نوشتن، 100 00:05:31,950 --> 00:05:34,960 بازگشت کدهای مختلف برای خطاهای مختلف می تواند مفید باشد 101 00:05:34,960 --> 00:05:37,210 برای افرادی که استفاده از برنامه های خود را بعد از. 102 00:05:37,210 --> 00:05:40,220 برق استدلال کمی پیچیده تر است. 103 00:05:40,220 --> 00:05:42,150 >> لیست بحث هم می تواند خالی باشد، 104 00:05:42,150 --> 00:05:45,330 که ما آن را با نوشتن خالی در بین پرانتز نشان می دهد، 105 00:05:45,330 --> 00:05:50,220 بین المللی و آرایه ای از کاراکتر * S: و یا فهرست می تواند 2 استدلال داشته باشد. 106 00:05:50,220 --> 00:05:52,820 این زمانی استفاده می شود که برنامه های خود را در نظر دارد برای استفاده از 107 00:05:52,820 --> 00:05:56,490 آرگومانهای داده شده در خط فرمان، زمانی که برنامه استناد شده است. 108 00:05:56,490 --> 00:05:59,690 آرگومان از نوع int است که به طور معمول به نام argc، 109 00:05:59,690 --> 00:06:03,300 و آن را برابر با طول آرایه * کاراکتر، شناخته شده به عنوان ی argv است. 110 00:06:03,300 --> 00:06:07,080 ی argv شامل استدلال های خط فرمان به برنامه تصویب می باشد. 111 00:06:07,080 --> 00:06:11,440 در یکی دیگر از کوتاه مدت، ما در مورد چگونگی استفاده از این متغیر ها را با جزئیات بیشتر صحبت خواهیم کرد. 112 00:06:11,440 --> 00:06:15,220 در حال حاضر، شما می توانید احساس رایگان برای اعلام اصلی در هر دو صورت. 113 00:06:15,220 --> 00:06:19,410 من به طور معمول را انتخاب کنید تا آن را از راه کوتاه تر، با هیچ استدلال، در صورت امکان. 114 00:06:19,410 --> 00:06:22,230 >> حالا که شما می دانید که چگونه به نوشتن توابع، 115 00:06:22,230 --> 00:06:25,030 شما در راه خود را به در حال توسعه بزرگتر، پیچیده تر برنامه ها. 116 00:06:25,030 --> 00:06:29,740 نام من مقابله Hardison است. این CS50 است.