DOUG LLOYD: Pob hawl.
Felly nawr gadewch i ni fynd i'r afael â pwnc fawr iawn, swyddogaethau.
Hyd yn hyn yn ystod, yr holl rhaglenni ein bod wedi bod yn ysgrifennu
wedi cael eu hysgrifennu y tu mewn o brif.
Maent yn rhaglenni eithaf syml.
Nid oes angen i chi gael y rhain i gyd canghennau a bethau sy'n mynd ymlaen.
Gall Rydym yn unig yn addas i gyd tu mewn prif ac mae'n
nid yw'n cael ofnadwy llethol.
Ond wrth i'r cwrs yn mynd ymlaen ac wrth i chi ddechrau i ddatblygu rhaglenni
yn annibynnol, maent yn fwy na thebyg yn mynd i ddechrau i gael llawer mwy na 10
neu 15 o linellau.
Efallai y byddwch yn cael cannoedd neu filoedd neu degau o filoedd o linellau o god.
Ac mae'n wir yn peidio hynny crazy meddwl.
Fel y cyfryw, mae'n debyg nad yn syniad da i gadw popeth y tu mewn o brif.
Gall gael ychydig anodd dod o hyd yr hyn yr ydych yn chwilio amdano os ydych yn gwneud hynny.
>> Yn ffodus, er bod C, a 'n bert lawer pob iaith raglennu arall sy'n
Gallai gweithio gyda nhw, yn caniatáu i ni ysgrifennu swyddogaethau.
A dwi'n jyst yn mynd i cymryd cyflym o'r neilltu yma
sôn bod y swyddogaethau yn un maes o wyddoniaeth gyfrifiadurol.
A byddwch yn gweld llawer mwy ohonynt ar bwyntiau amrywiol drwy gydol y cwrs
ac os byddwch yn parhau ar.
Lle mae llawer o cyfystyron ar gyfer yr un gair.
Felly rydym yn galw y swyddogaethau.
Ond efallai y byddwch hefyd yn clywed nhw y cyfeirir atynt fel gweithdrefnau,
neu ddulliau, yn enwedig, os ydych chi wedi erioed gwneud unrhyw rhaglennu gwrthrych oriented
before-- a pheidiwch â phoeni os nad yw, nad ydych wedi
yn deal-- fawr ond yn Ieithoedd archwilio oriented
yn cael eu elwir yn aml ddulliau.
Weithiau maen nhw'n a elwir yn is-reolweithiau.
Ond maent i gyd yn cyfeirio mewn gwirionedd at yr un syniad sylfaenol.
>> Gadewch i ni weld beth y syniad hwnnw yn.
Beth yw swyddogaeth?
Wel swyddogaeth yn wirioneddol ddim mwy na blwch du.
Mae blwch du sydd â set o sero neu fwy o fewnbynnau a allbwn sengl.
Felly, er enghraifft, mae hyn yn Gallai fod yn swyddogaeth.
Mae hon yn swyddogaeth o'r enw func.
Ac mae'n cymryd tri mewnbynnau a, b, ac c.
Ac y tu mewn y blwch du, rydym yn ddim yn gwybod yn union beth mae'n ei wneud,
ond mae'n prosesu mewnbwn mewn rhyw ffordd ac yna mae'n
yn rhoi allbwn sengl, yn yr achos hwn, z.
Nawr i'w wneud yn ychydig yn llai haniaethol, rydym yn
Gallai ddweud bod efallai ydym fod â swyddogaeth o'r enw
ychwanegu bod yn cymryd tair mewnbynnau a, b, a c a phrosesau allbwn mewn rhyw ffordd
y tu mewn i'r blwch du i cynhyrchu allbwn sengl.
Felly, yn yr achos hwn, os ychwanegwch cymryd 3, 6, a 7.
Rhywle y tu mewn i'r ychwanegu swyddogaeth, byddem
disgwyl iddynt gael eu hychwanegu at ei gilydd i gynhyrchu'r allbwn, a oedd yn
yw 3 a 6 ynghyd â 7 neu 16.
>> Yn yr un modd, mae gennych swyddogaeth o'r enw amryfal sy'n cymryd dau mewnbynnau, a a b,
yn eu prosesau mewn rhyw ffordd o'r fath bod allbwn y swyddogaeth
yn gynnyrch y ddau mewnbynnau.
Roedd y ddau mewnbynnau luosi gyda'i gilydd.
4 a 5 yn cael eu pasio i mewn amryfal, rhywbeth yn digwydd, mae'r allbwn rydym yn disgwyl
yw 20.
Pam rydym yn galw ei fod yn blwch du?
Wel os nad ydym yn ysgrifennu'r swyddogaethau ein hunain, a oedd yn
rydym wedi gwneud cryn dipyn hyd yn hyn cs50.
Rydym wedi gweld print f, er enghraifft, a oedd yn yn swyddogaeth nad oeddem yn ysgrifennu
ein hunain, ond rydym yn defnyddio drwy'r amser.
Os nad ydym yn ysgrifennu swyddogaethau ein hunain,
Nid oes gwir angen i ni wybod sut mae'n rhoi ar waith mewn gwirionedd o dan y cwfl.
>> Felly, er enghraifft, y blwch wyf du dim ond yn dangos i chi am lluosi,
amryfal a, gallai fod yn b defined-- ac mae hyn yn unig
gallai rhai fod yn pseudocode-- a ddiffinnir fel amseroedd allbwn a b.
Mae hynny'n gwneud synnwyr, dde.
Os oes gennym swyddogaeth o'r enw amryfal sy'n cymryd dau mewnbynnau.
Byddem yn disgwyl y byddai'r allbwn fod y ddau mewnbynnau luosi gyda'i gilydd,
o weithiau b.
Ond gallai amryfal hefyd fod yn rhoi ar waith fel hyn,
mae gennym newidyn cownter i yn paratoi tu mewn amryfal i 0.
Ac yna rydym yn ailadrodd y broses hon b amseroedd ychwanegu at cownter.
Er enghraifft, os ydym yn lluosi 3a gan 5b, gallem yn dweud osod cownter i 0,
ailadrodd bum gwaith, ychwanegu 3 at cownter.
Felly, rydym yn dechrau ar 0, ac yna rydym yn ei wneud mae hyn bum gwaith 3, 6, 9, 12, 15.
Mae yr un canlyniad. Rydym yn yn dal i gael 3 gwaith 5 yn unig
gweithredu yn wahanol.
>> Dyna beth ydym yn ei olygu pan fyddwn yn dweud blwch du.
'I jyst yn golygu nad ydym yn wir gofal sut y caiff ei roi ar waith o dan y cwfl
cyn belled ag y mae'r allbwn yn hyn yr ydym yn ei ddisgwyl.
Yn wir, mae hynny'n rhan o'r contract o ddefnyddio swyddogaethau, yn enwedig
swyddogaethau y mae eraill yn ysgrifennu.
Mae ymddygiad bob amser yn mynd i fod yn nodweddiadol, anrhagweladwy
yn seiliedig ar enw'r swyddogaeth.
A dyna pam mae'n wirioneddol bwysig pan fyddwch yn ysgrifennu swyddogaethau
neu pan fydd pobl eraill yn ysgrifennu swyddogaethau y gallech eu defnyddio,
y mae'r swyddogaethau hynny'n cael Enwau clir, yn gymharol amlwg,
ac yn cael eu cofnodi'n dda.
Pa un hynny'n sicr yn wir ar gyfer y swyddogaeth fel print f.
>> Felly pam rydym yn defnyddio swyddogaethau?
Wel fel y dywedais yn gynharach, os byddwn yn ysgrifennu pob un o'n cod y tu mewn o brif bethau
Gall ca 'n sylweddol feichus ac yn gymhleth mewn gwirionedd.
Swyddogaethau caniatáu i'r gallu i ni i drefnu pethau ac yn torri i fyny
yn broblem gymhleth iawn i mewn llawer is rhannau mwy hylaw.
Swyddogaethau hefyd yn ein galluogi i symleiddio'r broses codio.
Mae'n llawer haws i dadfygio o 10 swyddogaeth llinell yn erbyn llinell 100
swyddogaeth neu swyddogaeth 1,000 llinell.
Os mai dim ond i debug darnau bach ar y tro,
neu ysgrifennu darnau bach ar y pryd, mae'n gwneud y profiad rhaglennu
yn llawer gwell.
Ymddiriedolaeth i mi ar y un.
>> Yn olaf, os ydym yn ysgrifennu swyddogaethau yr ydym yn Gall ailddefnyddio rhannau amrywiol hynny.
Gall swyddogaethau gael eu hailgylchu.
Gellir eu defnyddio mewn un rhaglen neu'r llall.
Rydych eisoes wedi ysgrifennu y swyddogaeth, y cyfan sydd ei
angen ei wneud yw dweud wrth y rhaglen ble i ddod o hyd y swyddogaeth honno.
Rydym wedi bod yn ailgylchu a defnyddio argraffu f ers dros 40 mlynedd.
Ond yr oedd yn ysgrifenedig yn unig un pryd.
Pretty ddefnyddiol, ar y dde.
Iawn.
Felly swyddogaethau yn wych.
Rydym yn gwybod hynny.
Nawr, gadewch i ni ddechrau eu ysgrifennu.
Gadewch i ni ddechrau cael iddynt yn ein rhaglenni.
Er mwyn gwneud hynny, y cyntaf beth yr ydym yn ei wneud yw datgan y swyddogaeth.
Pan fyddwch yn datgan swyddogaeth yr hyn yr ydych chi'n ei wneud yn y bôn
yn dweud wrth y compiler, hey, yn union fel y gwyddoch,
Rydw i'n mynd i gael ei ysgrifennu swyddogaeth yn nes ymlaen
a dyma beth mae'n mynd i edrych fel.
Y rheswm am hyn yw oherwydd gall crynoadyddion
gwneud rhai pethau rhyfedd os maent yn gweld cyfres o symbolau
nad ydynt yn gyfarwydd â hwy.
Felly rydym yn unig yn rhoi y compiler a pennaeth, rwy'n creu swyddogaeth
ac mae'n mynd i wneud hyn.
Datganiadau Swyddogaeth gyffredinol os ydych chi'n trefnu eich cod mewn ffordd
y bydd eraill yn gallu deall a gwneud defnydd o,
rydych yn gyffredinol yn dymuno rhoi pob eich datganiadau swyddogaeth
ar frig eich cod, dde cyn dechrau ysgrifennu prif hyd yn oed.
Ac yn gyfleus, mae ffurflen safonol iawn
bod pob datganiad swyddogaeth a ganlyn.
Maent i gyd yn 'n bert lawer yn edrych fel hyn.
Mae tair rhan i swyddogaeth datganiad, math ddychwelyd, enw,
a rhestr dadl.
>> Nawr bod y math dychwelyd yw pa fath o amrywiol allbwn swyddogaeth ewyllys.
Felly er enghraifft, os ydym yn meddwl yn ôl munud yn ôl at y lluosi dau
rhifau swyddogaeth, beth ydym yn ei ddisgwyl os rydym yn lluosi yn gyfanrif gan cyfanrif
Bydd yr allbwn yn yn ôl pob tebyg yn gyfanrif, ar y dde.
Wedi'i luosi dau rif cyfan gyda'i gilydd, byddwch yn cael yn gyfanrif.
Felly y math dychwelyd y Byddai swyddogaeth fod yn int.
Enw yr hyn yr ydych ei eisiau i alw eich swyddogaeth.
Mae'n debyg mai dyma'r lleiaf pwysig rhan o'r datganiad swyddogaeth,
yn nhermau ymarferoldeb.
Ond mewn gwirionedd mae'n debyg un o'r rhannau mwyaf pwysig
y datganiad swyddogaeth o ran o wybod beth y swyddogaeth mewn gwirionedd
wneud.
Os byddwch yn enwi eich ffwythiant f neu g neu h neu ddirgelwch neu rywbeth fel 'na,
Mae'n debyg eich bod yn mynd i gael ychydig tripio gorau i geisio
i gofio beth swyddogaethau hynny yn ei wneud.
Felly mae'n bwysig i chi roi eich enwau ystyrlon swyddogaeth yn.
>> Yn olaf, rhestr ddadl yw y rhestr coma gwahanu
o'r holl fewnbynnau i'ch swyddogaeth, gan bob un ohonynt fath ac enw.
Felly, nid yn unig sydd gennych i pennu pa fath o newidyn
yr allbwn swyddogaeth ewyllys, ydych hefyd am nodi
pa fath a mathau o newidynnau y Bydd swyddogaeth yn cael ei dderbyn fel mewnbynnau.
Felly, gadewch i ni wneud esiampl yma.
Gadewch i fwrw golwg mewn un yn fwy pendant.
Felly dyma enghraifft o swyddogaeth datganiad i swyddogaeth sy'n
yn ychwanegu dau rif cyfan at ei gilydd.
Swm dau rif cyfan yn mynd i fod yn gyfanrif, yn ogystal, fel yr ydym newydd
trafod.
Ac felly y math dychwelyd, yma yn wyrdd, yn int.
Mai dim ond yn dweud wrthym fod ychwanegu dau ints yn mynd i, ar ddiwedd y dydd,
allbwn, neu boeri yn ôl allan i ni, yn gyfanrif.
O ystyried yr hyn y swyddogaeth hon yn ei wneud i ni yn awyddus i roi cynnig enw ystyrlon.
Ychwanegu dau ints yn ymddangos yn briodol, gan ystyried
rydym yn cymryd dau rif cyfan fel mewnbynnau a gobeithio eu hychwanegu at ei gilydd.
Gallai fod yn dipyn o feichus enw a dweud y gwir swyddogaeth hon
mae'n debyg nad oes angen ers i ni gael yr ychwanegiad
gweithredydd, os ydych yn cofio o'n trafodaeth o weithredwyr, yn flaenorol.
Ond gadewch i ni ddweud er mwyn ddadl bod y swyddogaeth hon yn ddefnyddiol
ac felly byddwn yn ei alw'n ychwanegu dau ints.
Yn olaf, y swyddogaeth hon yn cymryd dwy mewnbynnau.
Pob un ohonynt yn gyfanrif.
Felly mae gennym coma hwn Rhestr gwahanu o fewnbynnau.
Nawr rydym yn gyffredinol eisiau roi enw i bob un ohonynt
fel y gellir eu defnyddio yn y swyddogaeth.
Nid yw'r enwau yn ofnadwy o bwysig.
>> Yn yr achos hwn, nid ydym yn ei wneud o reidrwydd unrhyw ystyr ynghlwm wrthynt.
Felly, gallwn dim ond galw nhw a a b.
Mae hynny'n hollol iawn.
Os, fodd bynnag, byddwch yn dod o hyd i eich hun mewn sefyllfa
lle enwau'r newidynnau Efallai mewn gwirionedd fod yn bwysig,
efallai y byddwch am eu galw rhywbeth ar wahân a a b
i roi rhywbeth mwy iddynt symbolaidd ystyrlon.
Ond yn yr achos hwn, nid ydym yn ei wneud mewn gwirionedd yn gwybod unrhyw beth arall am y swyddogaeth.
Rydym yn unig am ychwanegu dau rif cyfan.
Felly, byddwn yn dim ond galw cyfanrifau y rhai a a b.
Dyna un enghraifft.
>> Pam na wnewch chi gymryd ail i feddwl am yr un yma,
sut y byddech yn ysgrifennu swyddogaeth datganiad i swyddogaeth sy'n
lluosi dau fel y bo'r angen rhifau pwynt?
Ydych chi'n cofio beth yw fel y bo'r angen rhif pwynt yw?
Beth fyddai swyddogaeth hon datganiad yn edrych?
Fi 'n weithredol yn argymell eich oedi y fideo yma ac yn cymryd faint o amser sydd ei angen arnoch.
Meddyliwch am beth mae hyn Byddai datganiad swyddogaeth fod?
Beth fyddai'r math dychwelyd fod?
Beth fyddai enw ystyrlon fod?
Beth fyddai'r mewnbynnau fod?
Felly pam na wnewch chi oedi y fideo yma ac ysgrifennu i fyny datganiad swyddogaeth
am swyddogaeth a fyddai'n lluosi dau rif pwynt arnawf gyda'i gilydd.
Gobeithio eich bod seibio y fideo.
>> Felly, gadewch i ni edrych ar enghraifft o un datganiad posibl.
Float dau reals amryfal arnofio x, arnofio y.
Mae'r cynnyrch o ddau rhifau pwynt arnawf,
sy'n dwyn i gof yn sut yr ydym yn cynrychioli rhifau real
neu rifau gyda gwerthoedd degol yn c, yn mynd i fod yn rhif pwynt arnawf.
Pan fyddwch yn lluosi a degol trwy degol,
Mae'n debyg eich bod yn mynd i gael degol.
Ydych am roi ei enw perthnasol.
Lluoswch dau reals yn ymddangos yn iawn.
Ond gallai chi wir yn ei alw dau fflotiau amryfal, neu fflotiau amryfal.
Unrhyw beth fel 'na, cyn belled â'i fod Rhoddodd rhai ystyr gwirioneddol i'r hyn
blwch du roedd hyn yn mynd i'w wneud.
Ac eto, yn yr achos hwn, nid ydym yn ei wneud ymddangos i gael unrhyw ystyr sydd ynghlwm
i enwau'r newidynnau rydym yn pasio i mewn,
felly rydym yn unig yn galw x ac y iddyn nhw.
Nawr, os byddwch yn ffonio rhywbeth iddynt arall, mae hynny'n hollol iawn.
Yn wir, os gwnaethoch chi datganiad hwn yn lle hynny
gan ddefnyddio dyblau yn lle hynny o fflotiau, os ydych yn cofio
bod yn dyblu yn wahanol ffordd i fwy penodol
pennu rhifau real neu fel y bo'r angen newidynnau pwynt.
Mae hynny'n hollol iawn hefyd.
Byddai naill ai un o'r rheiny yn iawn.
Yn wir, mae yna nifer o gwahanol gyfuniadau
o ffyrdd i ddatgan swyddogaeth hon.
Ond mae'r rhain yn ddau rhai 'n bert da.
Rydym wedi datgan yn swyddogaeth, mae hynny'n wych.
Rydym wedi dweud wrth y compiler hyn y mae'n ei yw, yr hyn rydym yn mynd i fod yn ei wneud.
Nawr, gadewch i ni mewn gwirionedd yn ysgrifennu y swyddogaeth honno.
Gadewch i ni roi cynnig diffiniad, fel bod y tu mewn i'r blwch du
ymddygiad rhagweladwy sy'n digwydd.
Yn wir, yr ydym yn lluosi dau go iawn rhifau at ei gilydd, neu rifau adio
gyda'i gilydd, neu wneud beth bynnag y mae ein bod yn gofyn i ein swyddogaeth i'w wneud.
>> Felly, mewn gwirionedd, gadewch i ni geisio a diffinio lluosi dau reals yr ydym yn unig
siarad am eiliad yn ôl.
Nawr bod y dechrau diffiniad swyddogaeth
edrych bron yn union yr un fath fel datganiad swyddogaeth.
Mae gen i ddau ohonynt yma.
Ar y brig yn y datganiad swyddogaeth, math, enw, coma gwahanu dadl
rhestr, hanner colon.
Mae'r hanner colon yn dangos bod hynny yw datganiad swyddogaeth.
Mae gychwyn y swyddogaeth diffiniad yn edrych bron yn union
yr un fath, math, enw, coma gwahanu Rhestr ddadl, dim hanner colon,
agor cyrliog Brace.
Mae'r Brace cyrliog agored, yn union fel rydym wedi bod yn ei wneud gyda phrif,
yn golygu ein bod yn awr dechrau i ddiffinio
beth sy'n digwydd y tu mewn i'r blwch du sy'n rydym wedi penderfynu i alw dau reals amryfal.
Dyma un ffordd o weithredu.
Gallem ddweud, gallem ddatgan newydd amrywiol o fath a elwir yn arnofio gynnyrch
ac yn aseinio y newidyn at werth x amseroedd y.
Ac yna dychwelyd cynnyrch.
Beth mae dychwelyd yn ei olygu fan hyn.
Wel dychwelyd yw'r ffordd rydym yn nodi dyna sut
rydym yn pasio yr allbwn yn ôl allan.
Felly dychwelyd rhywbeth, yr un fath â, mae hyn yn allbwn y blwch du.
Felly dyna sut yr ydych yn ei wneud.
Dyma ffordd arall o weithredu.
Gallai Rydym yn unig yn dychwelyd x amseroedd y.
x yn arnofio.
y yn arnofio.
Felly x adegau y hefyd yn arnofio.
Nid oes angen i ni hyd yn oed creu newidyn arall.
Felly dyna ffordd wahanol i gweithredu'r blwch du union un fath.
>> Nawr cymryd hyn o bryd, oedi y fideo eto,
a cheisio diffinio ychwanegu dau ints, sef y swyddogaeth eraill yr ydym
siarad am funud yn ôl.
Unwaith eto fan hyn, dwi wedi rhoi'r swyddogaeth datganiad, ac felly mae'r hanner colon,
a Brace cyrliog agored a cyrliog caeedig
Brace i ddangos lle byddwn yn llenwi yng nghynnwys ychwanegu dau ints,
fel ein bod yn diffinio penodol ymddygiad y tu mewn i'r blwch du.
Felly oedi y fideo.
Ac yn cymryd cymaint o amser ag y mae angen i chi geisio diffinio
yn gweithredu ychwanegu dau ints, megis pan fydd y ffwythiant allbynnau gwerth,
mae'n ei wneud, mewn gwirionedd, yn dychwelyd y swm y ddau mewnbynnau.
Felly, yn union fel yr enghraifft flaenorol, mae sawl ffordd wahanol
y gallech gweithredu ychwanegu dau ints.
Dyma un.
Mewn yma yn oren rwyf wedi newydd gael rhai comments--
Rwyf newydd ychwanegu rhai sylwadau i nodi
beth sy'n digwydd ar bob llinell o god.
Felly, yr wyf yn datgan newidyn Gelwir swm o fath int.
Yr wyf yn dweud y swm yn cyfateb yn fantais b.
Dyna lle'r ydym yn ei wneud mewn gwirionedd mae'r gwaith yn ychwanegu ac yn b gyda'i gilydd.
Ac yr wyf yn dychwelyd swm.
Ac mae hynny'n gwneud synnwyr gan fod swm yn newidyn o'r math int.
A beth yw'r data deipio bod hyn swyddogaeth yn dweud wrthyf ei fod yn mynd i allbwn?
Int.
Felly rwy'n dychwelyd y swm, a oedd yn yn newidyn cyfanrif.
Ac mae hynny'n gwneud synnwyr o ystyried yr hyn rydym wedi datgan a ddiffinnir ein swyddogaeth
i'w wneud.
>> Nawr gallwch hefyd benodi y swyddogaeth y modd hwn,
int swm yn cyfateb yn fantais b-- sgip bod gyntaf step-- ac yna, yn dychwelyd swm.
Nawr fe allech chi gael hefyd rhoi ar waith fel hyn,
yr wyf yn hynod o ddim yn argymell.
Mae hyn yn arddull yn ddrwg ar gyfer un beth a dylunio drwg iawn,
ond mae'n ei wneud, mewn gwirionedd, yn gweithio.
Os ydych yn cymryd cod hwn, sydd yn int ychwanegwch ddrwg wiber dot c, ac yn ei defnyddio.
Mae'n mewn gwirionedd yn gwneud synnwyr dau rif cyfan at ei gilydd.
Mae'n gweithredu gwael iawn o hyn ymddygiad penodol.
Ond mae'n gweithio.
'I' jyst yma i ddangos y pwynt nad ydym yn ei wneud mewn gwirionedd
poeni beth sy'n digwydd y tu mewn y blwch du, ar yr amod
gan ei fod wedi yr allbwn yr ydym yn ei ddisgwyl.
Mae hwn yn blwch du a gynlluniwyd yn wael.
Ond ar ddiwedd y dydd, mae'n ei wneud allbwn yn dal y swm yn fantais b.
Iawn.
Felly, rydym wedi datgan swyddogaethau.
Ac rydym wedi diffinio'n swyddogaeth.
Felly dyna wirioneddol dda.
Nawr, gadewch i ni ddechrau defnyddio'r swyddogaethau ein bod ni wedi datgan ac rydym wedi diffinio.
I alw function-- mae'n mewn gwirionedd 'n bert easy-- y cyfan sydd angen i chi ei wneud
yw ei throsglwyddo dadleuon priodol, dadleuon o'r math data
ei bod yn disgwyl, a Yna aseinio'r dychwelyd
gwerth y swyddogaeth honno ac this-- esgus me--
aseinio gwerth dychwelyd swyddogaeth honno i rywbeth o'r math cywir.
>> Felly gadewch i ni gael golwg ar mae hyn yn ymarferol mewn ffeil
Gelwir gwiber 1 dot, c sy'n Mae gen i yn fy IDE cs50.
Felly dyma neidr 1 dot c.
Ar y dechrau byddwch yn gweld gen i fy cynnwys, bunt yn cynnwys,
safon IO, ac cs50 dot h.
Ac yna mae gen i fy ddatganiad swyddogaeth.
Dyma lle rwy'n dweud wrth y compiler rwy'n
mynd i fod yn ysgrifennu swyddogaeth a elwir yn ychwanegu dau ints.
Mae'n mynd i allbwn newidyn math cyfanrif.
Dyna beth y rhan hon yn iawn yma.
Ac yna gen i ddau fewnbwn i ei fod yn a b, pob un ohonynt yn gyfanrif.
Y tu mewn o brif, gofynnaf i'r defnyddiwr ar gyfer mewnbwn drwy ddweud, yn rhoi cyfanrif mi.
Ac maent yn cael eu hannog i anghofio int, sydd yn swyddogaeth sy'n
wedi ei gynnwys yn y llyfrgell cs50.
A bod yn cael eu storio mewn x, newidyn cyfanrif.
>> Yna, rydym yn eu hannog i gyfanrif arall.
Rydym yn cael cyfanrif arall a storio'r hynny yn y.
Ac yna, yma ar y llinell 28, yn lle rydym yn gwneud ein swyddogaeth galwad.
Yr ydym yn ei ddweud, gyfartal z int ychwanegwch 2 ints x atalnod y.
A ydych yn gweld pam fod hyn yn gwneud synnwyr?
x yn newidyn Math cyfanrif a y yn newidyn Math cyfanrif.
Felly dyna dda.
Mae hynny'n gwneud synnwyr gyda hyn y mae ein swyddogaeth datganiad ar linell 17 yn edrych fel.
Mae'r rhestr mewnbwn atalnod gwahanu yn disgwyl dau rif cyfan, a a b.
Yn yr achos hwnnw, gallwn alw nhw beth bynnag yr ydym ei eisiau.
'I jyst yn disgwyl dau rif cyfan.
Ac x yn gyfanrif ac y yn gyfanrif.
Sy'n gweithio.
>> Ac rydym yn gwybod bod swyddogaeth yn mynd i allbwn yn gyfanrifau hefyd.
Ac felly yr ydym yn storio'r allbwn y swyddogaeth,
ychwanegu dau ints, mewn math cyfanrif amrywiol, yr ydym yn galw z.
Ac yna gallwn ddweud, y swm o ff y cant a fi cant yn y cant i.
x, y a z yn y drefn honno llenwi rhai i yn y cant.
Beth yw'r diffiniad o ychwanegu dau ints edrych?
Mae'n eithaf syml.
Mae'n un o'r rhai yr ydym jyst yn gweld yr ail yn ôl,
swm int hafal swm plws b dychwelyd.
Mae hyn yn gweithio?
Gadewch i ni gadw'r ffeil.
Ac yna i lawr yma ar fy terfynell Rydw i'n mynd i wneud gwiberod 1,
ac yr wyf yn glir fy sgrin.
Rydw i'n mynd i chwyddo i mewn gan fy mod yn gwybod mae'n ychydig yn anodd eu gweld.
>> Felly, rydym yn llunio rhaglen hon fel gwiberod 1.
Felly, gallwn wneud dot slaes wiber 1.
Rhowch yn gyfanrif mi, 10.
Rhowch cyfanrif arall i mi, 20.
Mae swm o 10 a 20 yw 30.
Felly, rydym yn gwneud swyddogaeth galwad llwyddiannus.
Gallwch chi redeg y swyddogaeth eto, negyddol 10, 17 swm o negyddol 10 a 17 yw 7.
Mae'r swyddogaeth hon yn gweithio.
Mae ganddo'r ymddygiad ein bod yn disgwyl iddi.
Ac felly rydym wedi gwneud lwyddiannus swyddogaeth, diffiniad, datganiad,
a swyddogaeth galwad llwyddiannus.
Amrywiol Cwpl pwyntiau am swyddogaethau
cyn i ni ddod i'r casgliad adran hon.
Dwyn i gof gan ein trafod y mathau data,
yn flaenorol, y swyddogaethau Weithiau gall gymryd unrhyw mewnbynnau.
Os yw hynny'n wir, rydym yn yn datgan y swyddogaeth
fel un sydd â rhestr dadl ddi-rym.
A ydych yn cofio yr hyn y mae'r y rhan fwyaf o swyddogaeth cyffredin
rydym wedi gweld hyd yn hyn sy'n cymryd rhestr dadl ddi-rym yn?
Mae'n prif.
Dwyn i gof hefyd swyddogaeth honno weithiau'n Nid oes mewn gwirionedd yn rhaid i allbwn.
Yn yr achos hwnnw, rydym yn datgan y swyddogaeth fel un sydd â math dychwelyd yn ddi-rym.
Gadewch i ni ddod i'r casgliad yr adran hon drwy mynd i'r afael â phroblem ymarfer.
>> Felly dyma yw'r broblem a nodir.
Rwyf am i chi ysgrifennu swyddogaeth Gelwir triongl dilys.
Beth ddylai swyddogaeth hon ei wneud yn cymryd tri rhif real
sy'n cynrychioli y darnau o'r tri ochr triongl fel ei baramedrau,
neu ei ddadleuon, neu ei inputs-- set arall o cyfystyron
y gallech ddod ar eu traws.
Dylai swyddogaeth hon naill ai allbwn gwir neu gau
gan ddibynnu a rhai tri hyd yn gallu gwneud triongl.
Ydych chi'n cofio y math data y rydym yn ei ddefnyddio i nodi cywir neu anghywir?
Nawr, sut ydych chi'n weithredu hyn?
Wel yn gwybod mae yna gwpl o reolau ynghylch trionglau
sydd mewn gwirionedd yn ddefnyddiol gwybod.
Gall triongl Dim ond ochr gyda hyd cadarnhaol.
Mae hynny'n gwneud synnwyr.
Mae'n debyg eich bod yn dweud, duh.
Y peth arall i'w nodi fodd bynnag, yw bod y swm
o hyd o unrhyw dwy ochr y triongl
wedi i fod yn fwy na'r hyd y drydedd ochr.
Mae hynny'n wir mewn gwirionedd.
Ni allwch gael triongl o ochrau 1, 2 a 4, er enghraifft, oherwydd 1 a 2
Nid yw yn fwy na 4.
Felly dyna'r rheolau y penderfynu a yw'r tri neu beidio
Gall mewnbynnau conceivably ffurfio triongl.
Felly, yn cymryd ychydig o funudau ac yn datgan ac yna diffinio
swyddogaeth hon a elwir yn ddilys triongl, fel ei fod mewn gwirionedd
Mae gan yr ymddygiad a nodir yma.
>> Bydd yn allbwn wir os bydd y rhai tair ochr yn gallu cynnwys triongl,
a ffug fel arall Yn barod i weld sut wnaethoch chi?
Dyma un gweithredu triongl o ddilys.
Nid dyma'r unig un.
Efallai eich un chi amrywio ychydig.
Ond mae hyn yn un yn ei wneud, mewn gwirionedd, yn cael yr ymddygiad yr ydym yn ei ddisgwyl.
Yr ydym yn datgan ein swyddogaeth yn y top iawn, Bool triongl dilys
arnofio x arnofio y arnofio z.
Felly eto, swyddogaeth hon yn cymryd tair rhifau real
fel ei dadleuon, fel y bo'r angen newidynnau gwerth pwynt,
ac allbynnau cywir neu anghywir gwerth, sy'n Boole, galw i gof.
Felly dyna pam y math ffurflen yn bool.
Yna, rydym yn diffinio swyddogaeth.
Y peth cyntaf yr ydym yn ei wneud yw gwirio i wneud yn siŵr bod pob un o'r ochrau yn gadarnhaol.
Os yw x yn llai na neu'n hafal i 0, neu os y yn hafal i 0,
neu os z yn llai na neu'n hafal i 0, Ni ellir bosibl fod triongl.
Nid oes ganddynt ochrau cadarnhaol.
Ac felly gallwn ddychwelyd ffug yn y sefyllfa honno.
Nesaf, byddwn yn gwirio i wneud yn siŵr bod pob pâr o fewnbynnau
yn fwy na'r trydydd un.
>> Felly, os x plws y yn llai na neu'n hafal i z,
neu os x plws z yn llai na neu'n hafal i y,
neu os y plws z yn llai na neu'n hafal i x, na all hefyd fod triongl dilys.
Felly byddwn yn dychwelyd ffug eto.
Gan dybio rydym yn llwyddo yn ddau o'r gwiriadau fodd bynnag, yna gallwn ddychwelyd yn wir.
Oherwydd bod y rhai tair ochr yn gallu returning--
o greu triongl dilys.
A dyna ni.
Yr ydych yn awr wedi datgan a diffiniedig.
Ac efallai y byddwch yn gallu nawr defnyddio a galw swyddogaeth hon.
Great swydd.
Rwy'n Doug Lloyd.
Mae hyn yn cs50.