[Powered by Google Translate] Funksionet janë seksionet e kodit të përdorura brenda një programi më të madh
për të kryer një detyrë të veçantë.
Ata janë të njohur edhe si procedura, subroutines, dhe Sub-programet,
pasi që ata me të vërtetë janë vetëm programe mini brenda programeve.
Edhe pse ju nuk mund të keni vënë re,
ju më patjetër kanë përdorur funksionet tashmë në qoftë se ju keni programuar në C.
Kur ju shkruani sende në ekran duke përdorur printf,
ju jeni në të vërtetë duke përdorur një funksion të quajtur printf.
Gjithashtu, GetInt dhe getString janë funksione që CS50 ofron për ju.
Si programuesit, ne përdorim funksionet për një numër arsyesh.
>> Duke pasur funksione për të kryer detyra të përbashkëta si shkrim në ekran
dhe duke bërë përdorues për input na kursen kohë kur programimit.
Kjo nuk është e nevojshme që të shkruani kodin për të bërë ato të njëjtat gjëra
pasi ata janë bërë tashmë për ne.
Kjo nuk është edhe e nevojshme për ne për të kuptuar saktësisht se si ato funksione punojnë brenda.
Në vend të kësaj, ne vetëm duhet të dini se si të përdorin ose telefononi ata në programet tona.
Është gjithashtu e dobishme për të shkruar funksionet në programet më të mëdha
edhe në qoftë se ju nuk jeni duke planifikuar të paturit e tjerë përdorin ato,
vetëm për të ndarë dorë detyrën më të madhe në dorë.
Në këtë mënyrë, ju jepni strukturën për kodin tuaj shumë si ju do të jepni struktura të një ese,
dhe me projekte të mëdha me të vërtetë që ju mundësojnë njerëzit të shumta
për të punuar në pjesë të ndryshme në të njëjtën kohë
pasi është e qartë se ku puna e një personi përfundon dhe një tjetër fillon.
>> Funksionet tipike operojnë në 1 ose më shumë inpute, i njohur si argumente apo parametrat,
shndërruar ato në një vlerë inputeve të prodhimit që është kthyer pas.
Megjithatë, është gjithashtu e mundur që të ketë funksione që nuk përdorin argumente të dhëna
dhe nuk kthehen një dalje.
Mirë, mjaft me gjëra gëzof.
Le të marrin një vështrim në disa funksione të patundshme në C.
>> Këtu kemi një funksion të quajtur shesh që, besoni apo jo,
Llogarit sheshin e input.
Le të analizoj sintaksa e saj.
Fjala e parë që ju shihni në funksion, int,
specifikon llojin e kthimit të funksionit, që është, lloji i prodhimit C funksioni së.
Ky funksion do të prodhimit me një vlerë int lloji.
Fjala tjetër që ju shikoni është emri i funksionit, katrore në këtë rast.
Emërtimin e funksioneve të përshtatshme është veçanërisht e rëndësishme
pasi ajo është ndoshta dokumentacioni më i dukshëm i asaj që nuk funksion.
Ajo mund të jetë ftohtë, për të përmendur këtë Shazam funksion ose booyah,
por kjo nuk do të na tregoni diçka në lidhje me atë që nuk funksion.
>> Pas emri i funksionit vijnë inputeve në funksion, argumentet.
Ato janë të rreshtuara në brendësi të një sërë kllapa
me të dy llojit të tyre dhe një emër për të përdorur për ta brenda trupit të funksionit.
Sheshi merr vetëm argumentin 1, int të sheshit,
që unë kam vendosur për të dhënë x emrin.
Kjo përfundon deklaratën e funksionit apo prototip.
Formatimin e teksteve kaçurrel që rrethojnë pjesën tjetër të funksionit
treguar fillimin dhe fundin e trupit të funksionit,
përkufizimi i funksionit vetë.
Sheshi është një funksion shumë e thjeshtë.
Është marrë vetëm 1 linjë, pasi të gjithë ne duhet të bëni është të shumohen x vetvete.
Kthimi fjalë përcakton vlerën e prodhimit dhe shkakton fundin e funksionit.
Për të përdorur funksionin katror, ​​ne kemi nevojë për furnizimin e inputeve të përshtatshme
dhe pastaj të kapur e prodhimit.
Këtu, ju shihni një çift të mënyrave për të bërë këtë.
Ne mund të kalojë në një int papërpunuara, si 6, ose ne mund të kalojë në një variabël si një.
Vini re se sa herë që ne e quajmë katror,
ne kapjen e prodhimit në një variabël të dhe pastaj të shtypura atë.
Megjithatë, ne nuk kemi për të ruajtur vlerën e kthimit në një ndryshore dhe pastaj të shtypura.
Ne vetëm mund të dërgoni direkt në printf siç bëjmë ne kur ne sheshin 10,
por kjo do të thotë se ne nuk kemi qasje në vlerën e kthimit të sheshit 10
gjetkë në kodin.
Le të shikojmë një shembull tjetër të thjeshtë.
>> Këtë herë, ne do të përmbledhur 2 gjithandej së bashku në mënyrë që ne mund të shohim se çfarë një funksion duket si
kur ajo e mori 2 inputeve në vend të vetëm 1.
Siç mund ta shikoni, kjo nuk është shumë e ndryshme.
Të gjithë ne bëjmë është të shtoni në argumentin e 2, a noton quajtur b,
në listën argument të përdorur një presje për të ndarë atë nga argumenti i parë, noton një.
Pra, katrore tonë dhe funksionet shuma janë goxha të lehtë për të kuptuar
sepse ata janë të barabartë me funksionet që ju keni parë më parë në klasë matematikë.
Tani, le të shohim në një funksion që është pak më ndryshe.
Në vend që të kthehen një vlerë, ajo modifikon një shtet.
Kjo është e njohur si të paturit e një efekt anësor.
Në këtë program, funksioni printf_fudd_style
ka një lloj të kthimit që ne nuk e kemi parë më parë, i pavlefshëm.
>> Void është përdorur për të thënë se një funksion nuk ka kthim asgjë.
Nuk ka variabla të tipit pavlefshme,
kështu që nëse ju përpiqeni të kthehen diçka nga një funksion si printf_fudd_style,
përpilues do të bërtas në ju.
Brenda printf_fudd_style, ne shohim se ndërsa funksioni ende kryen një detyrë,
domethënë, kalimi gjitha të RS për Ws,
pika e funksionit është për të modifikuar të vargut dhe pastaj të shtypura atë në ekran,
ndryshon gjendjen e programit në vend të kthyer një rezultat.
Duke përdorur këtë funksion është shumë si duke përdorur sheshin tonë dhe funksionet shume,
përjashtim ne nuk ruajtur rezultatin në një ndryshore ose të kalojë atë në një tjetër funksion
pasi që nuk ka rezultat për të folur.
Pra, kur ne përpilojnë dhe të drejtuar Elmer Fud programin tonë,
ju shihni se "Ju pandershëm lepuri!" merr transformuar drejtë të
"Ju wascally wabbit!"
>> Së fundi, ka funksion 1 më me vlerë duke diskutuar
pasi ju keni qenë duke e përdorur atë në çdo program C keni shkruar ndonjëherë, kryesore.
Kryesor është një funksion shumë si çdo tjetër.
Ajo e mori një lloj të kthimit, një emër, një listë të argumenteve, dhe një trup.
Lloji Kthimi i kryesor është gjithmonë një int,
dhe kjo int është përdorur për të komunikuar statusin e programit kur ajo mbaron.
>> A është drejtuar me sukses, apo e bëri atë të përfundojë në fillim për shkak të një gabimi?
Pas kthimit në zero tregon një të kandidojë suksesshëm,
dhe kthimin ndonjë vlerë jo-zero tregon një gabim.
Varësisht nga lloji i programit ju jeni me shkrim,
kthyer kode të ndryshme për gabime të ndryshme mund të jenë të dobishme
për njerëzit që përdorin programin tuaj më vonë.
Rrjeta Argumentet janë pak më të komplikuara.
>> Lista Argumenti ose mund të jetë bosh,
që ne të tregojnë duke shkruar zbrazëti në mes të kllapa,
ose lista mund të ketë 2 argumente: një int dhe një grup i char * s.
Këto janë përdorur kur programi juaj ka ndërmend të përdorë
Argumentet kaluar në në rreshtin e komandave, kur programi thirret.
Argumenti int quhet zakonisht argc,
dhe kjo është e barabartë gjatësia e array * char, i njohur si argv.
Argv përmban argumente command line kaloi në program.
Në një tjetër fjalë, ne do të flasim rreth asaj se si të përdorin këto variabla në detaje më shumë.
Tani për tani, ju mund të ndjeheni të lirë për të deklaruar kryesore ose rrugën.
Unë zakonisht zgjedhin për të shkruar atë rrugën më të shkurtër, pa argumente, kur të jetë e mundur.
>> Tani që ju e dini se si të shkruani funksionet,
ju jeni edhe në rrugën tuaj për zhvillimin e programeve të mëdha, më komplekse.
Emri im është Nate Hardison. Kjo është CS50.