[Powered by Google Translate] ფუნქციები მონაკვეთებზე კოდი გამოიყენება უფრო ფართო პროგრამის
ასრულებს კონკრეტულ დავალებას.
ისინი ასევე ცნობილია როგორც პროცედურები, subroutines და ქვეპროგრამისგან,
მას შემდეგ, რაც მათ მართლაც მხოლოდ მინი პროგრამების ფარგლებში პროგრამებს.
მიუხედავად იმისა, რომ თქვენ შეიძლება არ შეამჩნია,
თქვენ ყველაზე ნამდვილად არ გამოიყენება ფუნქციების უკვე თუ თქვენ პროგრამირდება in C.
როდესაც ვწერთ პერსონალის რომ ეკრანზე გამოყენებით printf,
თქვენ რეალურად იყენებს ფუნქცია მოუწოდა printf.
ანალოგიურად, GetInt და GetString are ფუნქციებს, CS50 უზრუნველყოფს თქვენთვის.
როგორც პროგრამისტები, ჩვენ ვიყენებთ ფუნქციებს რიგი მიზეზების გამო.
>> მქონე ფუნქციებს ასრულებს საერთო ამოცანები, როგორიცაა წერა რომ ეკრანზე
და რამაც მომხმარებლის ამისთვის შეყვანის ზოგავს ჩვენთვის დრო, როდესაც პროგრამირების.
ეს არ არის აუცილებელი დაწერა კოდი უნდა გავაკეთოთ იმ იგივე რამ
რადგან ისინი უკვე კეთდება ჩვენთვის.
ეს კი არ აუცილებელია გვესმოდეს ზუსტად როგორ ამ ფუნქციების მუშაობა იძულებით.
სამაგიეროდ, ჩვენ უბრალოდ უნდა იცოდეს, თუ როგორ გამოიყენოთ ან დარეკეთ მათ ჩვენი პროგრამების.
ეს ასევე სასარგებლოა წერენ ფუნქციების დიდ პროგრამები
მაშინაც კი, თუ თქვენ არ დაგეგმარების მქონე სხვები მათი გამოყენება,
უბრალოდ გაყავით up უფრო დიდი ამოცანა ხელთ.
ეს გზა, თქვენ სტრუქტურის თქვენი კოდი ჰგავს ნეტავ მისცეს სტრუქტურის ესე,
და მართლაც დიდი პროექტების გააქტიურების მრავალჯერადი ხალხი
მუშაობა სხვადასხვა კუთხეში ამავე დროს
რადგან ნათელია, სადაც ერთი პირი მუშაობის დამთავრდა და სხვისი იწყება.
>> ფუნქციები ჩვეულებრივ მოქმედებს 1 ან მეტი საშუალებებით, რომელიც ცნობილია როგორც არგუმენტები ან პარამეტრების,
ტრანსფორმირებას იმ საშუალებებით შევიდა გამონატანის მნიშვნელობა, რომელიც შემდეგ დაბრუნდა.
თუმცა, ეს შესაძლებელია აქვს ფუნქცია, რაც არ გამოიყენოთ ნებისმიერი შეყვანის არგუმენტები
და არ დაბრუნდნენ გამომუშავება.
Okay, საკმარისი ერთად ფუმფულა ფისუნიაა პერსონალი.
მოდით შევხედოთ ზოგიერთი რეალური ფუნქციების C.
>> აქ ფუნქცია მოუწოდა მოედანზე, რომ, გვჯერა თუ არა,
computes მოედანზე შეყვანის.
მოდით dissect სინტაქსის იგი.
პირველი სიტყვა ხედავთ ფუნქცია, int,
განსაზღვრავს დაბრუნების ტიპის ფუნქცია, ესაა, C ტიპის ფუნქცია ის გამომუშავება.
ეს ფუნქცია დაბეჭდავს ღირებულების მქონე ტიპის int.
შემდეგი სიტყვა ხედავთ არის სახელწოდება ფუნქცია, კვადრატული ამ შემთხვევაში.
დასახელებისგან ფუნქციების სათანადოდ განსაკუთრებით მნიშვნელოვანია
რადგან ალბათ ყველაზე თვალსაჩინო დოკუმენტაცია რა ფუნქცია აქვს.
ეს შეიძლება იყოს cool ასახელებს ამ ფუნქციის shazam ან booyah,
მაგრამ, რომ არ გვითხრათ შესახებ არაფერი რა ფუნქცია აქვს.
>> შემდეგ ფუნქციას სახელი მოდის საშუალებებით, რათა ფუნქცია, არგუმენტები.
ისინი ჩამოთვლილია შიგნით კომპლექტი ფრჩხილებში
ორივე მათი ტიპის და სახელწოდების გამოყენება მათ ფარგლებში ორგანოს ფუნქცია.
მოედანზე იღებს მხოლოდ 1 არგუმენტი, int, რათა მოედანი,
რაც მე გადაწყვიტა მისცეს სახელი x.
ეს დამთავრდა ფუნქცია დეკლარაციის ან პროტოტიპი.
Curly braces მიმდებარე დანარჩენი ფუნქცია
აღინიშნოს დასაწყისისა და დასასრულისათვის ფუნქციის ორგანო,
განსაზღვრება ფუნქცია თავად.
მოედანი საკმაოდ მარტივი ფუნქცია.
ეს მხოლოდ მიიღო 1 ხაზი, რადგან ყველა ჩვენ უნდა გავაკეთოთ არის გამრავლების x თავისთავად.
სიტყვის დაბრუნების განსაზღვრავს გამონატანის მნიშვნელობა და იწვევს ბოლომდე ფუნქცია.
გამოიყენოს კვადრატული ფუნქცია, ჩვენ უნდა მიაწოდოს სათანადო საშუალებებით
და შემდეგ ხელში გამომუშავება.
აქ, თქვენ ხედავთ რამდენიმე გზები აკეთებს, რომ.
ჩვენ შეგვიძლია გაივლის წლის ნედლეული int, როგორიცაა 6, ან ჩვენ შეგვიძლია გაივლის წლის ცვლადი მოსწონს.
გაითვალისწინეთ, რომ ყოველ ჯერზე ჩვენ მოვუწოდებთ მოედანზე,
ჩვენ ხელში გამოტანის ცვლადი და შემდეგ დაბეჭდეთ.
თუმცა, ჩვენ არ გვაქვს შესანახად დაბრუნების ღირებულების ცვლადი და შემდეგ ბეჭდვა.
ჩვენ შეგვეძლო უბრალოდ გამოგვიგზავნოთ პირდაპირ printf როგორც ჩვენ ვაკეთებთ, როდესაც ჩვენ მოედანზე 10,
მაგრამ ეს არ ნიშნავს, რომ ჩვენ არ გვაქვს წვდომა დაბრუნების ღირებულება მოედანზე 10
სხვაგან კოდი.
მოდით შევხედოთ მეორე უბრალო მაგალითი.
>> ამჯერად, ჩვენ მთლიანობაში 2 მოძრავი ერთად ისე, რომ ჩვენ ვხედავთ, თუ რა ფუნქციას ჰგავს
როცა ეს მივიღე 2 საშუალებებით ნაცვლად მხოლოდ 1.
როგორც ხედავთ, ეს დიდად არ განსხვავდება.
ყველა ვაკეთებთ არის დაამატე -2 არგუმენტი, float დაასახელა ბ,
to არგუმენტი სია გამოყენებით მძიმით გამოყოფოდა ეს პირველი არგუმენტი, ათწილადი.
ასე რომ, ჩვენი მოედანი და თანხა ფუნქციები საკმაოდ გასაგებია
რადგან ისინი ექვივალენტი ფუნქციები რომ თქვენ ვხედავთ მანამდე მათემატიკის კლასის.
ახლა, მოდით შევხედოთ ფუნქციას, რომელიც ოდნავ განსხვავებული.
დაბრუნების ნაცვლად ღირებულება, იგი modifies სახელმწიფო.
ეს ცნობილია, როგორც გვერდითი ეფექტი.
ამ პროგრამაში, printf_fudd_style ფუნქცია
აქვს დაბრუნების ტიპის, რომ ჩვენ არ მინახავს ადრე, ბათილად.
>> ძალადაკარგულად გამოიყენება ვთქვა, რომ ფუნქცია არ დააბრუნებს არაფერი.
არ არის ცვლადების ტიპის ბათილად,
ასე რომ, თუ თქვენ ცდილობენ დაბრუნებას რაიმე ფუნქცია, როგორიცაა printf_fudd_style,
შემდგენელი იქნება დაწეროთ თქვენ.
Inside printf_fudd_style, ჩვენ ვხედავთ, რომ თუმცა ფუნქცია მაინც ასრულებს დავალებას,
კერძოდ, გადართვის ყველა Rs რომ WS,
წერტილი ფუნქციაა ცვლილებები სიმებიანი და შემდეგ ამობეჭდოთ ეკრანზე,
იცვლება სახელმწიფო პროგრამის დაბრუნების ნაცვლად შედეგი.
გამოყენება ამ ფუნქციის ძალიან ჰგავს ჩვენი მოედანი და თანხა ფუნქციები,
გარდა ჩვენ არ ვინახავთ შედეგად ცვალებად და მსგავ off სხვა ფუნქცია
რადგან არ არსებობს შედეგი საუბარი.
ასე რომ, როდესაც ჩვენ კომპილირდება და აწარმოებს ჩვენი ელმერ ფადური პროგრამა,
ხედავთ, რომ "თქვენ rascally კურდღლის!" იღებს გარდაიქმნება უფლება
"თქვენ wascally wabbit!"
>> და ბოლოს, არსებობს 1 მეტი ფუნქცია ღირს მსჯელობენ
მას შემდეგ, რაც თქვენ უკვე იყენებს ყველა C პროგრამის თქვენ ოდესმე დაწერილი, მთავარ.
მთავარი არის ფუნქცია ჰგავს ნებისმიერი სხვა.
ეს მივიღე დაბრუნების ტიპის, სახელი, სიაში არგუმენტები, და სხეულის.
დაბრუნების გაცნობის მთავარ ყოველთვის int,
და ამ int გამოიყენება კომუნიკაციის სტატუსის პროგრამის როდესაც იგი სრულდება.
>> ეს გავაკეთეთ აწარმოებს წარმატებით, ან საერთოდ ეს დასრულდება ადრეულ შეცდომის გამო?
დავბრუნდეთ ნულოვანი მიუთითებს წარმატებული პერსპექტივაში,
და დაბრუნების ნებისმიერი არასამთავრობო ნულოვანი ღირებულება მიუთითებს შეცდომა.
დამოკიდებულია სახის პროგრამა თქვენ წერის,
დაბრუნების სხვადასხვა კოდები სხვადასხვა შეცდომები შეიძლება იყოს სასარგებლო
მათთვის ვინც გამოიყენოთ პროგრამა შემდგომში.
მაგისტრალური არგუმენტებია ცოტა უფრო რთული.
>> არგუმენტი სია შეიძლება იყოს ცარიელი,
რომელიც ჩვენ მიუთითოს წერილობით ბათილად შორის ფრჩხილებში,
ან სიაში შეიძლება ჰქონდეს 2 არგუმენტები: int და მასივი char * s.
ეს გამოიყენება, როდესაც თქვენი პროგრამის აპირებს ისარგებლოს
არგუმენტები წელს მიღებული ბრძანების სტრიქონში როდესაც გადაცემა მოიყვანა.
Int არგუმენტი, როგორც წესი, ეწოდება argc,
და ეს თანაბარი სიგრძით char * მასივი, რომელიც ცნობილია როგორც argv.
Argv შეიცავს ბრძანების ხაზი არგუმენტები შევიდა პროგრამა.
მეორე მოკლედ, ჩვენ ვსაუბრობთ თუ როგორ გამოიყენოთ ეს ცვლადები უფრო დეტალურად.
ახლა შეგიძლიათ მოგერიდებათ განაცხადოს მთავარ არც გზა.
მე, როგორც წესი, აირჩიოს დაწერა ის მოკლე გზა, რომელზეც არ არგუმენტები, როდესაც შესაძლებელი.
>> არის, რომ თქვენ იცით, როგორ დავწეროთ ფუნქციები,
თქვენ კარგად თქვენს გზა განვითარებადი უფრო დიდი, უფრო რთული პროგრამები.
ჩემი სახელი არის Nate Hardison. ეს არის CS50.