[સંગીત વગાડવાનો] રોબ Boden: અધિકાર છે. ટ્યુબ પ્રથમ તેથી, પ્રથમ વસ્તુ, એક પરિચિત ચહેરો છે. [વિડિઓ પ્લેબેક] -અધિકાર છે. આ CS50 છે, અને આ છે અઠવાડિયું ત્રણ શરૂઆત. હું તમારી સાથે હોઈ શકે છે દિલગીર છું આજે, પણ જેણે મને દાખલ કરવા માટે પરવાનગી આપે CS50 પોતાના રોબ Boden માં. [સમાપ્ત વિડિઓ પ્લેબેક] [વધાવી અને ટીમે] રોબ Boden: માં ફિલ્મોગ્રાફી તે વિડિઓ વિચિત્ર છે. અધિકાર છે. તેથી પ્રથમ, બીજા પાત્ર છે. તે 1:15 ખાતે આવતી કાલે છે. આ શુક્રવાર કોઈ પાત્ર છે. તે Quora સાથે છે. અને ટોમી એક પરંતુ, હજુ સુધી અહીં નથી ભૂતપૂર્વ વડા સીએફ છે લોકો, ટોમી McWilliam. તેથી તેમણે એક મજા વ્યક્તિ છે. તમને આવે છે. અધિકાર છે. તેથી છેલ્લા અઠવાડિયે, અમે સિવાય તોડી શરૂ એક શબ્દમાળા ખરેખર શું છે તે અંગે. અમે શરૂઆતમાં થી ઓળખાય છે કે તે અક્ષરો ક્રમ છે. પરંતુ છેલ્લા અઠવાડિયે, અમે એ હકીકત ઉતર્યા શું ખરેખર એક ક્રમ છે કે અક્ષરો, સાથે સાથે, અમે હવે છે અક્ષરો એરે. અને અમે શબ્દમાળા, તે એક એરે છે ખબર છે કે અક્ષરો, ખૂબ જ ઓવરને અંતે, અમે આ ખાસ નલ બાઇટ છે, આ બેકસ્લેશ 0, કે અંતના સૂચવે શબ્દમાળા. અને તેથી શબ્દમાળા ઝાકઝમાળ છે અક્ષરો, પરંતુ અમે કરી શકે છે કરતાં વધુ માત્ર અક્ષરો ઝાકઝમાળ, અમે કોઈ પણ દર્શાવે છે હોઈ શકે છે અમે માંગો છો વસ્તુ પ્રકાર. તેથી, જો તમે છેલ્લા સપ્તાહના યાદ તો, ડેવિડ રજૂ કરવામાં કે યુગ કાર્યક્રમ ખરેખર ઝડપથી. અમે કરી રહ્યા છીએ તેથી પ્રથમ વસ્તુ છે , પૂર્ણાંક માટે વપરાશકર્તા પૂછવા પાંચ રૂમમાં લોકોની સંખ્યા. અમે તે પૂર્ણાંક છે એકવાર, અમે એક એરે જાહેર કરી રહ્યાં છો. આ કૌંસ વાક્યરચના જુઓ. આપને કોઈ ઉપયોગ કરો રહ્યા છીએ. તેથી અમે પૂર્ણાંકો ઝાકઝમાળ જાહેર કરી રહ્યાં છો ઉંમરના કહેવાય છે, અને ત્યાં n છે આ એરે પૂર્ણાંકો. અહીં તેથી આ પેટર્ન, આ 4 પૂર્ણાંક હું વત્તા, હું કરતાં ઓછી n છે, 0 સમકક્ષ હોય છે પ્લસ, એ પણ એક પેટર્ન કરી રહ્યું છે તમે ખૂબ જ ઉપયોગ કરો કે. કે ખૂબ ખૂબ તમે કેવી રીતે કારણ કે હંમેશા એરે પર ફરી વળવું રહ્યા. તેથી n એ યાદ રાખો કે આ અમારા એરે લંબાઈ. અને તેથી અહીં, અમે વારંવાર પૂછે છે કે રૂમમાં વ્યક્તિ i ની ઉંમર. આ પછી, અમે નીચે જાય છે, અને ગમે માટે મનસ્વી કારણ, અમે તો પછી તેઓ રહ્યા છીએ કેવી રીતે જૂના છાપે હવે એક વર્ષ છે. અને તે કાર્યક્રમ ચાલી રહ્યો છે, ચાલો , વય કરો સ્લેશ ઉંમરના DOT. તેથી રૂમમાં લોકો નંબર છે, ત્રણ છે કહો. અને, પ્રથમ વ્યક્તિ 13 છે, કહે છે આગામી 26 છે, અને છેલ્લા 30 છે. તેથી પછી તે તે ત્રણ ફરી વળવું પડશે લોકો, 14 બહાર 27, અને 31 છાપો. તેથી યાદ રાખો કે આપણે એક જાહેર ત્યારે માપ n ના એરે નથી, તે સૂચકાંકો અરે, એરે કિંમતો છે અને સૂચકાંક 0, 1, 2, બધી રીતે અપ n એ માટે ઓછા 1. તેથી અમે કહ્યું ત્રણ લોકો હતા રૂમમાં, અને અમે અહીં મૂકવામાં આ દ્વારા પ્રથમ પુનરાવૃત્તિ લૂપ, હું 0 પ્રયત્ન રહ્યું છે. તેથી 0 અનુક્રમણિકા છે. અમે પ્રથમ સોંપણી છે વપરાશકર્તા પ્રવેશ કરે ઉંમર. પછી આગામી એક, અમે દાખલ કરી રહ્યા છીએ એ બીજા n એ વપરાશકર્તા પ્રવેશ કરે, અને માં બે, છેલ્લા ન આગામી. તેથી નોંધ્યું છે કે કદ ઝાકઝમાળ ત્રણ કંઈપણ નથી ઇન્ડેક્સ ત્રણ. આ યોગ્ય નથી રહ્યો. અધિકાર છે. તેથી, અહીં પાછા જવાનું. તેથી હવે અમે એરે સાથે કામ કર્યું છે, અમે કેટલાક પારિવારિકતા છે. હવે અમે આદેશ પર ખસેડો રહ્યા છીએ હશે આવે છે જે વાક્ય દલીલો, આ સમસ્યા સેટ ખૂબ સંબંધિત. તેથી હવે ત્યાં સુધી, જ્યારે તમે કરેલા તમારા મુખ્ય કાર્ય જાહેર, અમે કર્યું પૂર્ણાંક મુખ્ય રદબાતલ જણાવ્યું હતું. તેથી રદબાતલ ફક્ત અર્થ એ થાય કે અમે કોઈ પસાર નથી આ કાર્ય માટે દલીલો. હવે અમે તે મુખ્ય જોવા જઈ રહ્યાં છો કેટલીક દલીલો કરી શકો છો. અહીં અમે argc પૂર્ણાંક તેમને કૉલ અને શબ્દમાળા argv કૌંસ. આ કૌંસ, ફરી એક વાર, સૂચવે છે અમે એરે સાથે કામ કરીએ છીએ કે. અહીં, શબ્દમાળા argv કૌંસ, અમે છો શબ્દમાળાઓ ઝાકઝમાળ સાથે કામ કરીએ. તેથી argc, કે જે સૂચવે બનશે અમે કર્યું છે કે કેવી રીતે બધી દલીલો આ કાર્યક્રમને પસાર. અને, તે શું છે તે જોવા માટે ચાલો આ બંધ કરીએ. બરાબર. તેથી હવે ત્યાં સુધી, આપણે દરેક સ્કોર કર્યો કોઈ સ્લેશ ઉંમરના જેવા કાર્યક્રમ. અમે પણ કરી શકો છો, તો આદેશ વાક્ય પર, છેલ્લા દલીલો પસાર કરવા માટે, આમ શબ્દ, આદેશ વાક્ય દલીલો. જેથી પ્રથમ દલીલ, હેલો વર્લ્ડ. અહીં, argc ત્રણ છે. તે દલીલો ગણના છે આદેશ વાક્ય પર. Argc, હંમેશા ઓછામાં ઓછા 1 છે કારણ ડોટ પોતે ઉંમરના સ્લેશ, એક તરીકે ગણે છે આદેશ વાક્ય દલીલો. પછી હેલો પ્રથમ છે. કોઈ સ્લેશ ઉંમરના પછી, આ zeroth છે હેલો પ્રથમ છે, અને વિશ્વ છે બીજા આદેશ વાક્ય દલીલ. તેથી શબ્દમાળા argv, અમે જોવા માટે જઈ રહ્યાં છો, શબ્દમાળાઓ, કોઈ સ્લેશ સમાવે ઉંમરના, હેલો, અને વિશ્વ. અને, ડેવિડ વિનંતી કરીને આપણે રહ્યા છીએ કે રજૂઆત વિડિઓ રમવા માટે. [વિડિઓ પ્લેબેક] અપ અમે કર્યું કાર્યક્ર હમણાં સુધી લેખિત, અમે જાહેર કર્યું મુખ્ય તરીકે પૂર્ણાંક મુખ્ય રદબાતલ. અને આ બધા સમય, કે રદબાતલ છે ફક્ત સ્પષ્ટ કરવામાં આવી છે કે જે કાર્યક્રમ કોઈપણ નથી આદેશ વાક્ય દલીલો. જ્યારે વપરાશકર્તા ચાલે, તો બીજા શબ્દોમાં, કાર્યક્રમ, તે અથવા તેણી આદેશ આપી શકે છે વધારાના લખીને વાક્ય દલીલો શબ્દો અથવા શબ્દસમૂહની પછી આ કાર્યક્રમ પ્રોમ્પ્ટ પર નામ. સારું, તમે તમારા કાર્યક્રમ કરવા માંગો છો જો તમે કરો આદેશ વાક્ય દલીલો, માત્ર એક અથવા લો વધુ જેમ કે શબ્દો, અમે બદલવાની જરૂર દલીલો એક દંપતી સાથે ગેરમાન્ય. તેથી આપણે તે કરીએ. Cs50.h. સમાવેશ કરો ધોરણ io.h. સમાવેશ કરો મુખ્ય ઈન્. અને હવે, તેના બદલે રદબાતલ ના, હું જાઉં છું એક argc કહેવાય પૂર્ણાંક, અને સ્પષ્ટ argv કહે શબ્દમાળાઓ પણ દર્શાવે છે. હવે, argc અને argv છે ફક્ત સંમેલનો. અમે આ દલીલો કહે છે શકે છે અમે માંગો છો સૌથી વધુ કાંઇ. પરંતુ મહત્વનું છે argc છે પૂર્ણાંક વ્યાખ્યા દ્વારા, તે છે, કારણ કે આ દલીલ ગણતરી સમાવી રહ્યું છે, કુલ શબ્દો નંબર કે વપરાશકર્તા તેના અથવા તેણીના પ્રોમ્પ્ટ પર લખ્યો છે. argv દરમિયાન, દલીલ વેક્ટર છે, ખરેખર સ્ટોર ઝાકઝમાળ જ હશે વપરાશકર્તા છે કે બધા જ શબ્દો તેના અથવા તેણીના પ્રોમ્પ્ટ પર લખ્યો. હવે કંઈક કરવા આગળ વધવા દો આ એક અથવા વધુ સાથે આદેશ વાક્ય દલીલો. ખાસ કરીને, આપણે આગળ અને પ્રિન્ટ જાઓ શબ્દ ગમે વપરાશકર્તા પ્રકારો આ કાર્યક્રમના નામ પછી પ્રોમ્પ્ટ પર. ઓપન કૌંસ. બંધ કૌંસ. Printf ટકા એ બેકસ્લેશ અને અલ્પવિરામ. અને હવે હું printf શું કિંમત જણાવવાની રહેશે કે પ્લેસહોલ્ડર માં પ્લગ. હું વપરાશકર્તા છે કે પ્રથમ શબ્દ માંગો છો આ કાર્યક્રમના નામ પછી લખ્યો, અને તેથી હું સ્પષ્ટ કરવા માટે જઈ રહ્યો છું argv કૌંસ 1, બંધ કરો કે વાક્ય, અર્ધવિરામ. હવે, શા માટે કૌંસ 1 અને ન કૌંસ 0? વેલ, તે આપમેળે સંગ્રહિત તારણ argv 0 પ્રયત્ન રહ્યું છે આ કાર્યક્રમ વાસ્તવિક નામ. જેથી પ્રથમ શબ્દ કે વપરાશકર્તા પ્રકારો આ કાર્યક્રમના નામ દ્વારા, પછી સંમેલન, જ હશે argv 1 માં સંગ્રહ થાય છે. હવે સંકલન કરીએ અને આ કાર્યક્રમ ચલાવો. Argv 0, કોઈ સ્લેશ argv 0 બનાવો. અને હવે તે એક શબ્દ હેલો જેમ. દાખલ કરો. અને આ રહ્યું હેલો, તે છે. [સમાપ્ત વિડિઓ પ્લેબેક] રોબ Boden: અધિકાર છે. કે બંધ કરો. જેથી કાર્યક્રમ આગળ લઈ કે અમે માત્ર, પણ અમારા માટે પરિચય અમે 0 પ્રિન્ટ argv હવે, જો કરો, બતાવવા માટે તે argv 0, કોઈ સ્લેશ argv 0 છે. અપેક્ષા તેથી, તે પ્રિન્ટ કરે છે argv 0 છે, કારણ કે કાર્યક્રમ નામ હંમેશા જ હશે એ કાર્યક્રમ નામ. પરંતુ કંઈક કરવા દો વધુ રસપ્રદ બીટ. જેથી સમસ્યા સમૂહ, તમે હશો આ કાર્ય, atoi માટે રજૂઆત કરી હતી. તેથી શું અમે માટે atoi ઉપયોગ કરી શકું? કે રૂપાંતરિત બનશે એક પૂર્ણાંક માટે શબ્દમાળા. તેથી હું શબ્દમાળા પસાર છે, એક બે ત્રણ, atoi માટે, કે રૂપાંતરિત પડશે પૂર્ણાંક માટે, એક બે ત્રણ. તેથી અમે પ્રથમ કન્વર્ટ રહ્યા છીએ પૂર્ણાંક માટે આદેશ વાક્ય દલીલ, અને પછી માત્ર કે પૂર્ણાંક છાપો. તેથી સામાન્ય રીતે, અમે પ્રકારની છો માત્ર, GetInt reimplementing પૂર્ણાંક આદેશ પર દાખલ થાય છે વાક્ય બદલે કાર્યક્રમ સીધુ જ. તેથી તો, argv 0 બનાવે કરવા દો અહીં તે છે, અને તે બંધ કરો. તેથી argv 0 ચાલી રહ્યું છે, અને માતાનો દાખલ દો પૂર્ણાંક, એક બે ત્રણ ચાર એક બે. તેથી તે, માત્ર એક પૂર્ણાંક છાપો પડશે બે ત્રણ ચાર એક બે. કે atoi કેટલાક subtleties છે તે બાબત અંગે સંભાળ લેવાનું બંધ કરશો માન્ય આંકડાકીય પાત્ર બહાર, પરંતુ તે તો કોઈ વાંધો નથી. તેથી તમે શું થાય છે વિચારો છો જો હું આવું? વિભાગીય ખામી. તેથી શા માટે છે? તમે અમારી કાર્યક્રમ પર એક નજર, અમે છો argv 1, પ્રથમ દલીલ રૂપાંતર કાર્યક્રમ નામ પછી, પૂર્ણાંક છે. પરંતુ પસાર કોઈ દલીલ છે કાર્યક્રમ નામ છે. અહીં, અમે આ એક બગડેલ છે કે નહીં તે જોવા કાર્યક્રમ, કારણ કે, અમે ચલાવવા માટે પ્રયાસ કરો કોઇ પણ દલીલો કર્યા વગર તે માત્ર ભાંગી જશે. તમે જોશો તો અન્ય સામાન્ય પેટર્ન કંઈક જેમ, argc ઓછી હોય છે, જો ત્યાં ન હતો જે દર્શાવે છે કે બે કરતાં ઓછામાં ઓછા કાર્યક્રમ નામ અને પ્રથમ દલીલ, તો પછી અમે કંઈક કરીશ જેમ કે, printf પૂરતી નથી આદેશ વાક્ય દલીલો. કે કદાચ પ્રિન્ટ સારી નથી, તે, જેમ કે કદાચ કંઈક છે તમે પૂર્ણાંક દાખલ કરીશું આદેશ વાક્ય પર. હું માત્ર ત્યાં તે સમાપ્ત કરીશું. અને પછી 1 આવો. તેથી અમારા ઓવરને અંતે યાદ રાખો કે કાર્યક્રમ, અમે 0 આવો, કે જે પ્રકારના સફળતા દર્શાવે છે. અને મુખ્ય પણ આપોઆપ જો તમે ન કરો તો 0 આપે છે. અહીં, અમે દર્શાવવા માટે 1 retuning રહ્યા છો કે સફળતા નથી કે. અને તમે ગમે તમે ઇચ્છો પાછા આવી શકો છો, માત્ર 0 સફળતા સૂચવે છે, અને જે કંઈપણ નિષ્ફળતા સૂચવે છે. તેથી આપણે વસ્તુઓ ની આ આવૃત્તિ ચલાવો. તેથી હવે, અમે આદેશ વાક્ય દાખલ કરો, જો દલીલ છે, તે યોગ્ય રીતે કહી શકશો અમને પૂરતી આદેશ વાક્ય નથી. સજા પૂરી કરી હતી. બાકી, અમે ખરેખર તે એક પસાર હોય, તે કાર્યક્રમ પૂર્ણ કરી શકો છો. તેથી આ તમે argc ઉપયોગ કરશે કેવી રીતે સંખ્યા માન્ય કરવા માટે આદેશ વાક્ય દલીલો કે ખરેખર પસાર થાય છે. તેથી આપણે થોડી વધુ આ કાર્યક્રમ કરી દો જટિલ, અને બીજા જોવા વસ્તુઓ પુનરાવૃત્તિ. તેથી હવે, અમે માત્ર છાપવા કરી રહ્યાં છો એ પ્રથમ આદેશ વાક્ય દલીલ. અહીં, અમે પૂર્ણાંક હું સમકક્ષ થી વારો કરી રહ્યાં છો 0, હું, હું argc કરતાં ઓછી છે વત્તા પ્લસ, અને પ્રિન્ટીંગ argv, ઇન્ડેક્સ હું. તેથી આ પેટર્ન, ફરીથી, આ જ છે તેના બદલે સિવાય પહેલાં પેટર્ન, ચલ કૉલ ની n એ, અમે argc ઉપયોગ કરી રહ્યાં છો. તેથી આ દરેક ઇન્ડેક્સ પર વારો છે એરે, અને દરેક છાપવા કે એરે તત્વ. અને તેથી અમે આ પ્રોગ્રામ રન છે, સાથે સાથે, હું કોઇ પણ આદેશ વાક્ય દાખલ કર્યું નથી દલીલો, માત્ર છાપે છે તેથી તે કાર્યક્રમ નામ. હું વસ્તુઓ સમૂહ દાખલ કરો, તો તે પડશે એક, તેની પોતાની લીટી પર દરેક છાપો. બરાબર. તેથી આપણે આ એક પગલું આગળ લે છે. અને તેના બદલે દરેક દલીલ છાપવા તેની પોતાની લીટી પર, દરેક છાપો દરેક દલીલ પાત્ર તેની પોતાની લીટી પર. તેથી argv યાદ રાખો કે શબ્દમાળાઓ પણ દર્શાવે છે. તેથી શું શબ્દમાળા છે, પરંતુ અક્ષરો ઝાકઝમાળ? જેથી argv ખરેખર અર્થ એ થાય કે એક અક્ષરો ઝાકઝમાળ દર્શાવે છે. તેથી તે લાભ લેવા, હવે માટે આ અવગણો. આપણે માત્ર શબ્દમાળા argv 0 વિચાર કરીએ. અમે દરેક પાત્ર લાવવા માંગો છો તેથી જો argv 0 તેની પોતાની લીટી પર, તો પછી હું માંગો છો અમે ઉપયોગ કરી રહ્યા છો પેટર્ન કરવા માટે, મને છે એરે લંબાઈ કરતા ઓછી, અહીં, strlen કરે છે, જે તે છે હું કરવા માંગો છો નથી શું, શબ્દમાળા એ argv 0 સમકક્ષ હોય છે. તેથી હું અમારા લંબાઈ કરતાં ઓછી છે આ કિસ્સામાં એક વ્યૂહરચના છે કે જે એરે, અક્ષરો, હું વત્તા વત્તા. અમે ગયા સપ્તાહે જોયું અને તેથી, તે આદર્શ છે અમે બહાર strlen કે ખસેડવા જો આ પરિસ્થિતિ છે, કારણ કે n એ ઉમેરીને આવશે એ ના strlen અમે જાઓ દર વખતે લૂપ દ્વારા, અને તે છે બદલવા માટે નથી જતા. તેથી અમે અહીં n એ બરાબર તે સેટ કરશો. બરાબર. તેથી હવે, અમે ઉપર વારો કરી રહ્યાં છો એરે દરેક ઇન્ડેક્સ. અને તેથી, અમે દરેક પ્રિન્ટ માંગો છો કે અરે, ટકા સી પાત્ર છે અમે ઉપયોગ કરવા માંગો છો ધ્વજ અક્ષરો માટે. અને હવે એક કૌંસ હું પ્રયત્ન રહ્યું છે આ શબ્દમાળા અનુક્રમણિકા પાત્ર હું, તેથી જો શબ્દમાળા હેલો હતા. પછી કૌંસ, 0 એચ પ્રયત્ન રહ્યું છે ઓ ઓ 1 તેથી ઈ, ને. તેથી હવે અમે ભેગા કરવા માંગો છો આ બે વસ્તુઓ. અમે દરેક અક્ષર પ્રિન્ટ માંગો છો દરેક આદેશ વાક્ય દલીલ. તેથી અમે હોય રહ્યા છીએ લૂપ માટે નેસ્ટ. અને પરંપરાગત, પ્રથમ કાઉન્ટર હું આગામી જ પ્રયત્ન રહ્યું છે, n એ છે છે argv i ની strlen થશે, હું કરતાં ઓછી n એ, હું વત્તા વત્તા છે. અને હવે તેના બદલે પ્રિન્ટીંગ argv હું, તેથી હું ઇન્ડેક્સ રહ્યું છે argv કૌંસ - કે-i મી આદેશ વાક્ય જ હશે દલીલ, argv હું જે રહ્યું છે પાંચ jth પાત્ર હોઈ -i મી દલીલ. હું હવે આ અહીં ઉપર છૂટકારો મેળવવા પડશે અમે તે લૂપ માં મૂકી છે. તેથી શબ્દમાળા ઓ સમકક્ષ જેવું જ છે argv હું, અને પછી એ જ કૌંસ. વેલ, અમે જાહેર કરવાની જરૂર નથી આ ચલ ઓ. તેના બદલે, અમે માત્ર આ ભેગા પડશે અમે હતી શું બે માં,, જે હું argv. 1 વક્તા: [અશ્રાવ્ય]. રોબ Boden: ગુડ કોલ. તેથી આ તૂટી જાય છે. હું ખરેખર તે ચાલી હતી, અમે કરશે આ સમજાયું છે. હું વિશે કાળજી તેથી કાઉન્ટર માટે આ ખાસ કરીને લૂપ જે, આ iterator છે. તેથી જો તમે સમસ્યાઓ પણ હશે, કદાચ એક અનંત લૂપ, તો કે નિશ્ચિત ન હતું. અમે વાત કરી રહ્યા છીએ કે શા માટે આજે ડિબગીંગ. બરાબર. તેથી આપણે આ કાર્યક્રમ ચલાવો. અને આપણે ખરેખર અલગ છે printf ઉમેરો અહીં માત્ર છાપશે કે આ અર્થ એ છે કારણ કે બીજા લાઇન, જ્યારે અમે કાર્યક્રમ ચલાવો, ખાલી હોઈ પડશે દરેક પાત્ર વચ્ચે લીટી દરેક આદેશ વાક્ય દલીલ. વેલ, અમને અર્થ એ થાય કે તે દેખાશે. OOP. કેટલાક ભૂલ મળ્યો. ભૂલ સર્વથા જાહેર પુસ્તકાલય કાર્ય strlen. તેથી અમારા કાર્યક્રમમાં પાછા જવાનું, હું string.h સમાવેશ હેશ ભૂલી ગયા છો. તેથી string.h કરી રહ્યું છે જાહેર છે કે હેડર ફાઈલ કાર્ય strlen. ઠીક છે, તે કમ્પાઇલ. હવે, આપણે તેના ચલાવો. તેથી માત્ર કે. તેને છાપે ચાલી રહ્યું છે અમારા કાર્યક્રમ નામ, હેલો વર્લ્ડ. તે દરેક, દરેક વસ્તુ છાપી રહ્યું છે તેની પોતાની લીટી પર પાત્ર,. બરાબર. તેથી આપણે ખરેખર આ લો વધુ એક પગલું. અને તેની જગ્યાએ string.h ઉપયોગ, ચાલો અમે અમારી પોતાની અમલ છો કેવી રીતે વિશે વિચારો strlen કાર્ય કરે છે. તેથી હું તરત જ આપી શકશો એક કાર્ય સહી. તેથી આપણે my_strlen માં કૉલ કરો, અને તે છે એક દલીલ તરીકે શબ્દમાળા લાગી રહ્યું, અને અમે પાછા અપેક્ષા કે જેઓ શબ્દમાળા લંબાઈ. તેથી, જ્યાં કે વ્યક્તિ છે? હા. બરાબર. તેથી અગાઉના સ્લાઇડ થી યાદ કે ગયા સપ્તાહે પણ હતી કે એક અક્ષરો એરે, સાથે સાથે, એક શબ્દમાળા, તેથી આપણે આ અમારી શબ્દમાળા ઓ છે કહો. તેથી એ શબ્દમાળા છે, હેલો, તો પછી, એચ ઇ એલ એલ ઓ, મેમરી, તે બનશે પછી આ બેકસ્લેશ હોય છે, અને 0 પાત્ર. તેથી અમે કેવી રીતે ઓ લંબાઈ વિચાર છે? વેલ, આ યુક્તિ આ માટે જોઈ છે 0 પાત્ર, આ નલ તીવ્ર નકારાત્મક પ્રતિક્રિયા છે ટર્મિનેટર. તેથી અલ્ગોરિધમનો રહ્યું છે થોડા કંઈક હોય પૂરતી અક્ષરો કે - ચાલો આ તરફ કેટલાક પ્રતિનિધિત્વ હોય છે પ્રતિ, ચાલો આ પૂર્ણાંક લંબાઈ કૉલ કરો. તેથી, અહીં થી શરૂ, અમે છો અમારા શબ્દમાળા ફરી વળવું રહ્યા. તેથી, તે એચ પ્રથમ અક્ષર છે, અને તે પાછા તેથી, 0 સ્લેશ નથી લંબાઈ 1 છે. આગલા અક્ષર પર ફરી વળવું, ઇ, અને તે 0 બેકસ્લેશ નથી. લંબાઈ 2 છે. એલ, 3. એલ, 4. ઓ, 5. અને છેલ્લે, અમે બેકસ્લેશ પહોંચી 0, અને તેથી તે અર્થ, સાથે સાથે, આ શબ્દમાળા વધારે છે. તેથી આપણે 5 પરત દો. તેથી વાસ્તવમાં, પ્રથમ, કે અમલીકરણ મારા n એ લંબાઈ મારા જમણા હાથમાં, 0 સમકક્ષ હોય છે. અને અમે ફરી વળવું રહ્યા છીએ - 1 વક્તા: [અશ્રાવ્ય] રોબ Boden: ઓહ, શૂટ. ગુડ કોલ. બૂમ. તેથી n એ લંબાઈ 0 સમકક્ષ હોય છે. તેથી હવે, જ્યારે એ લંબાઈ નથી પછી સમાન અને, બેકસ્લેશ 0. તેથી, આ બેકસ્લેશ 0 યાદ રાખો કે, તે એક છે વાસ્તવિક પાત્ર છે, અને તે સૂચવે છે શબ્દમાળા ઓવરને. જેમ પણ, બેકસ્લેશ એ કોઇ વાસ્તવિક પાત્ર છે. બેકસ્લેશ 0 સૂચવે રહ્યું છે અમારા શબ્દમાળા ઓવરને. હું ત્યાં કે મૂકેલ નથી. અને લંબાઈ દ્વારા અનુક્રમિત એ નથી જ્યારે નલ ટર્મીનેટર સમાન, તો પછી અમે માત્ર લંબાઈ વધારતી રહ્યા છીએ. તેથી પછી અમારા કાર્યક્રમ ઓવરને અંતે, લંબાઈ છેવટે રહ્યું છે આ કિસ્સામાં 5 છે. અને અમે માત્ર લંબાઈ પરત મળશે. બરાબર. તેથી હવે અહીં નીચે, હું નથી my_strlen નથી. માટે ખાતરી કરો કે તે સંકલન કરીએ બધું સરળતાથી ચાલે છે. હું 2 માં કરી હતી? અથવા 1 એ હતો? તે કરવું જોઈએ. અધિકાર છે. તેથી આ argv 2 છે. અપેક્ષિત તરીકે, કામ કરે છે, તેમ છતાં એક હું તે કર્યું હતું કે હતો? હા. બરાબર. વસ્તુઓ આ સંસ્કરણ ન હતી આ printf નવા પછી વાક્ય છે, પરંતુ તે કોઇ તફાવત નથી. બરાબર. અપેક્ષા જેથી કામ કર્યું હતું. હવે અમે પણ આ એક પગલું ભેગા કરી શકો છો વળી, અહીં જ્યાં નોંધ લો, સાથે સાથે, પ્રથમ, અમે argv ના strlen પડતો કરી રહ્યાં છો હું, અને પછી અમે પર વારો કરી રહ્યાં છો કે જેઓ શબ્દમાળા દરેક અક્ષર છે. તેથી તેના બદલે કે કરી ના, તો શું આપણે માત્ર રાહ આ તર્ક ભેગા અમે બેકસ્લેશ 0 અધિકાર નહીં ત્યાં સુધી લૂપ માટે આ માં? Argv હું જે કરે છે, જ્યારે તેથી ફરી વળવું સમાન નથી બેકસ્લેશ 0. તેથી આપણે તેને પ્રથમ વખત ચલાવો. અધિકાર છે. અહીં, આ શરત કહે છે - માતાનો એ સ્પષ્ટ કરો. તેથી હવે, આ અમારી argv બનાવી દો. તેથી હું ફક્ત પહેલા તે કાર્યક્રમ ચાલી હતી, argv શબ્દમાળાઓ ઝાકઝમાળ છે. અને તેથી, હું કોઈ સ્લેશ argv સાથે ચલાવવા જો 2, હેલો વર્લ્ડ, પછી argv પોતે argv માટે, લંબાઈ 3 છે શૂન્ય, હેલો, અને વિશ્વ. અને આ સૂચકાંક દરેક ની અંદર છે, પોતે આ હશો જ્યાં ઝાકઝમાળ, કોઈ, આ સ્લેશ હશે, મને ખબર નથી કે યોગ્ય દિશામાં હોય તો, હું તે લાગતું નથી. એ આર-V એ આડંબર, વધુ જગ્યાની જરૂર. ચાલો આ એરે માં કાઢે છે. એ આર-V એ આડંબર 0 અને પછી બેકસ્લેશ 0. અને પછી ગૂંચવાડો હેલો હશે. માતાનો, એચ ઇ બેકસ્લેશ 0 કહો. અને છેલ્લે, W-કંઈપણ બેકસ્લેશ 0. તેથી અમે માત્ર લખ્યું હતું કે અલ્ગોરિધમનો, આ તેઓ શું લૂપ, માટે નેસ્ટ નોંધ કરી, અમે પ્રથમ છે હું અને પછી જ કાઉન્ટર છે. આ પર કોડ સાથે સરળ છે સ્ક્રીન, ચાલો આ માટે પાછા જઈએ. બરાબર. તેથી હું કે iterator નોંધ્યું છે કે દરેક આદેશ પર વારો વાક્ય દલીલ. અને જે પાંચ iterator વારો છે કે દરેક અક્ષર પર આદેશ વાક્ય દલીલ. તેથી આ અંદરની printf શું કરી રહ્યા છે , અમે argv 0 0, printf printf છે છે argv 0 1, printf argv 0 2 0 3, 4 0, 0 5, 6 0, પરંતુ હવે, argv 0 7 રહ્યું છે સમાન બેકસ્લેશ 0. તેથી તો અમે લૂપ કે બહાર નીકળો, અને હવે હું 1 માટે iterates. અને હવે અમે છાપી રહ્યા છીએ argv 1 0, argv 1 1 - ઠીક છે, હવે, હું ટૂંકા હેલો કાપી છે, કારણ કે argv 1 2 ફરીથી પ્રયત્ન રહ્યું છે બેકસ્લેશ 0. અને તેથી, હું વધારતી અને ચાલુ રાખવા માટે, અને તેથી, ત્યાં સુધી અમે તમામ છાપે દુનિયા અને તે ત્રણ આદેશ વાક્ય છે દલીલો, અને અમે બહાર બહાર નીકળવા પડશે બાહ્ય સત્ર મારી લૂપ, અને અમારા કાર્યક્રમ સમાપ્ત કરો. બરાબર. તેથી આપણે અહીં પાછા આવીએ. તેથી તમારી સાથે કેટલાક પારિવારિકતા મેળવવા પડશે આ આદેશ વાક્ય દલીલો ખાસ સમસ્યા સુયોજિત કરો. હવે, ડિબગીંગ. તેથી તમે કદાચ પહેલાથી જ કરી રહ્યો છે તમારા પહેલાંના સાથે કેટલાક ડિબગીંગ સમસ્યા સુયોજિત કરો. અને ડિબગીંગ એક ખૂબ જ સરળ રીતે, પ્રથમ, એક બગડેલ કાર્યક્રમ જુઓ. વેલ, આ કાર્યક્રમ દ્વારા વૉકિંગ અમે એક માટે વપરાશકર્તા પૂછવા રહ્યા છીએ પૂર્ણાંક, કે પૂર્ણાંક ગ્રેબ અને પછી, આપખુદ, અમે જ્યારે લૂપ છે કે માત્ર હ્રાસ રહ્યું છે તે 10 માટે સમાન છે હું ત્યાં સુધી. ચાલો માત્ર હું દાખલ છું ધારે 10 થી વધુ પૂર્ણાંક. તે 10 માટે સમાન છે ત્યાં સુધી તેથી હું હ્રાસ. અને પછી અમે બીજા જ્યારે લૂપ છે હું 0 સમાન નથી, અમે છીએ, કે 3 હું ઘટાડવા માટે જઈ રહી છે. તેથી તમે ક્ષતિના ઉદ્દેશ જુઓ તો અહીં, આ હું હ્રાસ પડશે કે છે 10 અને પછી આ વખતે લૂપ પણ આવી 1 થી 4 થી 7 10,,, ના હ્રાસ હું, નકારાત્મક 2 માટે, તેથી પર 5 નકારાત્મક છે, અને નકારાત્મક અનંત માટે, ચાલશે થી ખરેખર 0 જેટલી નથી. અને પછી આ કાર્યક્રમ ઓવરને અંતે, અમે કે જે foo કાર્ય છે પ્રિન્ટ પર બહાર હું કે જે. તેથી આ એક ટૂંકા અને તુચ્છ કાર્યક્રમ છે અને ભૂલ સ્પષ્ટ છે, ખાસ કરીને પછી હું માત્ર ભૂલ શું જણાવ્યું હતું. પરંતુ અહીં હેતુ સાથે સાથે, આ કદાચ છે, ખરેખર કેટલાક જેમ દેખાય તમારા છેલ્લા થી લોભી થી ઉકેલો સમસ્યા સુયોજિત કરો, અને કદાચ તમે છે તમારા કાર્યક્રમ કેટલાક અનંત લૂપ, અને તમે કોઈ વિચાર છે તે શું કારણ છે. તેથી ખૂબ જ ઉપયોગી ડિબગીંગ ટેકનિક માત્ર printfs ઉમેરો છે તમારા બધા કોડ પર. તેથી અહીં હું બહાર printf કરવા માંગો છો પ્રથમ જ્યારે લૂપ. અને અહીં હું printf કરવા માંગો છો, અને હું માત્ર મને છાપો પડશે. લૂપ જ્યારે હું પણ હું પ્રથમ પ્રયાસો કરીશું. બહાર, બીજા લૂપ છે. ફરી એક વાર, અંદર છાપો ના અહીં, મૂલ્યો. અને આપણે આ ચલાવો. તેથી કોઈ સ્લેશ ડિબગ. પૂર્ણાંક દાખલ કરો. 13 દો. અને તેજી. અમે અનંત રહ્યાં છે કે નહીં તે જોવા બીજા જ્યારે લૂપની અંદર. તેથી હવે આપણે ભૂલ છે તે જાણવા. પરંતુ printf ડિબગીંગ, સંપૂર્ણ મહાન છે પરંતુ તમારા કાર્યક્રમો વિચાર એક વખત લાંબા સમય સુધી અને વધુ જટિલ છે, વધુ આધુનિક ઉકેલો વસ્તુઓ કામ કરી રહેલી. તેથી આપણે આ બધા printfs દૂર કરો. અને માતાનો ખાતરી છે કે હું નથી કર્યું બનાવી દો કંઈપણ તૂટી જાય છે. બરાબર. તેથી અમે રહ્યા છીએ કાર્યક્રમ દાખલ તરીકે ઓળખાય છે GNU ડિબગર માટે GDB,. ઠીક છે, ખરેખર, ચાલો માટે ડિબગ દૂર કરો એક સેકન્ડ, અને ફરીથી ડિબગ કરો. ઠીક છે, ખરેખર પ્રથમ, એક સારો પાઠ આદેશ વાક્ય દલીલો છે. આ રણકાર આદેશ છે નોંધ કરો કે બધું પસાર થઈ રહી છે સંકલન આદેશ વાક્ય પર, આ આદેશ વાક્ય દલીલો. તમે ઉપયોગ કરી રહ્યા છે તેથી ખરેખર કેવી રીતે આદેશ વાક્ય દલીલો, અમે પહેલાં હતી, અને તમે pset માં કરશે 2, કે રણકાર તેમને ઉપયોગ કરી રહ્યા છે કેવી રીતે. તેથી નોંધ્યું છે કે આ પ્રથમ ધ્વજ, આડંબર ggdb3, એ કહે છે તે, રણકાર, તમે સાથે આ ફાઈલ કમ્પાઈલ જોઈએ ઉદ્દેશ કે અમે આખરે કરશે તે ડિબગ કરવાની જરૂર છે. તેથી જ્યાં સુધી તમે કે ધ્વજ હોય ​​છે, પછી અમે GDB ડિબગ કરી શકો છો. અને તે એ GNU ડિબગર ખોલો પડશે. તેથી આદેશો ઘણો છે તમે ઉપયોગ કરવા માટે જરૂર છે. પ્રથમ એક કે તમે કદાચ પડશે તરત જ જરૂર છે ચલાવવામાં આવે છે. તેથી શું કરવા જઈ રન? તે બનાવે છે અમારા કાર્યક્રમ શરૂ થઈ રહ્યું છે. તેથી, શરૂ કાર્યક્રમ, કાર્યક્રમ ચલાવો પૂર્ણાંક, 13 માટે અમને પૂછે છે. અને પછી તે અનંત રહ્યાં તરીકે છે હું દૂર સિવાય અપેક્ષિત printfs, તેથી અમે પણ છે કે જે દેખાય નહિં. સામાન્ય રીતે બહાર. ઓહ. તે આવરિત છે કે શક્ય છે બધા રીતે આસપાસ છે, પાછળ - કે અવગણીને. તે સામાન્ય રીતે બહાર નીકળી ન હતી ધારે. તે માટે એક જટિલ જવાબ છે. તેથી હવે, તે ખૂબ જ ઉપયોગી નથી. તેથી માત્ર ની અંદર અમારા કાર્યક્રમ ચાલી આ ડીબગર કોઈપણ બનાવવામાં મદદ કરતું નથી, અમે માત્ર આ કરી શકે છે કારણ કે જે રીતે, કોઈ GDB બહારથી ડિબગ સ્લેશ. તેથી એક આદેશ કે તમે કદાચ કરીશું - અને હું આ બહાર નીકળવા પડશે. નિયંત્રણ-D અથવા, કામ બંને છોડી દીધું. તેથી આપણે તેને ફરીથી ખોલો. અન્ય આદેશ કે તમે કદાચ પડશે તરત જ કરવા માંગો છો માટે ઉપયોગ કરો બ્રેક છે. તેથી અમે હવે મુખ્ય પર તૂટી પડશે અને પછી હું સમજાવવું પડશે. વેલ, અહીં આપણે બ્રેકપોઇન્ટ સેટ જુઓ debug.c આ વાક્ય પર. તેથી શું વિરામ અર્થ છે કે જ્યારે હું રન લખો, કાર્યક્રમ રહ્યું છે ત્યાં સુધી ચાલુ રહે હું એક બ્રેકપોઇન્ટ હિટ. હું રન હિટ તેથી, જ્યારે આ કાર્યક્રમ, શરૂ થાય છે અને પછી તે તરત તે તોડે મુખ્ય કાર્ય પ્રવેશે છે. મુખ્ય તૂટી જાય છે કંઈક પ્રયત્ન રહ્યું છે તમે ખૂબ સામાન્ય હોય છે. અને હવે, તમે દાખલ કેટલાક વધુ આદેશો માટે. તે અમે કહેતા છે કે, અહીં નોંધ કરો જે 11 લીટી, ઓછામાં તોડી printf, પૂર્ણાંક દાખલ કરો. તેથી આદેશ આગળ કેવી રીતે કરી રહ્યું છે અમે કોડ આગળના વાક્ય પર જાઓ. આ અમને પગલું માટે પરવાનગી આપે છે રહ્યું છે વાક્ય દ્વારા અમારા કાર્યક્રમ વાક્ય મારફતે. તેથી આગામી. હવે 12 લીટી, અમે રહ્યા છીએ પૂર્ણાંક વિચાર. આગળ. તમે માત્ર લિમિટેડ ફરીથી દબાવો, તે પડશે તમે હતી છેલ્લા વસ્તુ ફરી. તેથી હું લખો જરૂર નથી આગામી દર વખતે. તેથી પૂર્ણાંક, 13 દાખલ કરો. તેથી હવે, લાઇન 14, હું વધારે હોય છે, જ્યારે 10 કરતાં, અને હું આગળ શું કરશો. અને અમે અમે હું હ્રાસ રહ્યા છીએ જુઓ. તેથી અમે ફરીથી હું હ્રાસ રહ્યા છીએ. તેથી હવે, અન્ય ઉપયોગી આદેશ છાપો છે. તેથી પ્રિન્ટ છાપી રહ્યું છે ચલ ની કિંમત. માતાનો કિંમત લાવવા દો ચલ આવી છે. માતાનો મને છાપો દો. તે હું 11 કહેવું બનશે. હવે અમે આગળ ફરી જ્યારે હું 10 કરતાં વધારે હોય છે. તેથી હું હજુ પણ કરતા વધારે છે તે 11 કારણ કે 10,. હું બાદ બાદ. માતાનો ફરીથી મને છાપો દો. ઈચ્છિત તરીકે, તે 10 છે. તેથી હવે, આગામી. તે પાછા સ્થિતિ ચાલી રહ્યું છે, હું 10 થી વધુ, પરંતુ હું તેથી, હવે 10 છે તે 10 થી વધુ નથી, તેથી અમે અપેક્ષા તે જ્યારે લૂપ બહાર પડે છે. અને હવે અમે કોડ કે વાક્ય નીચે છો. પછી બીજો એક આદેશ, સૂચિ, માત્ર રહ્યું છે અગાઉના અને આગામી પ્રદર્શિત કરવા માટે કોડ ઓફ લાઇન, માં દંપતિ કેસ તમે તમારી જાતને ગુમાવી હતી. તેથી અમે માત્ર, આ વખતે લૂપ બહાર અને હવે અમે આ દાખલ કર્યો છે જ્યારે લૂપ, 18 લીટી. હું 0 સમાન નથી જ્યારે છે. અને, આગળ, અમે પડશે હું ઓછા 3 જેટલી જ થાય છે, અને નોટિસ, આ માત્ર ચાલુ રાખવા પડશે. અને અમે હું પ્રિન્ટ કરી શકો છો. દરેક આદેશ સૉર્ટ શૉર્ટકટ્સ છે. તેથી પૃષ્ઠ છાપો માટે ટૂંકા હોય છે. તેથી અમે પી હું આ કરી શકો છો. માત્ર n હોલ્ડિંગ રાખો, અથવા આગામી કરી રાખે છે. ફરીથી મને છાપો. તમે તેને 167 નકારાત્મક છે હવે જુઓ. તેથી આ કાયમ પર જાય છે, પરંતુ નહીં ખરેખર કાયમ, તમે માત્ર જોવા મળી હતી, કારણ કે તે ખરેખર કોઇ સમયે સમાપ્ત થશે. જેથી GDB શરૂઆત છે. પરંતુ GDB માં વધુ એક વસ્તુ નથી. ઉહ, ડિબગ. તેથી, આ ચોક્કસ કિસ્સામાં, અનંત લૂપની અંદર પ્રયત્ન થયું મુખ્ય કાર્ય. અને હવે માટે, માત્ર હું છું કે સ્વીકારે છે કે માં અનંત લૂપ ખસેડવા જાઉં ફૂ કાર્ય કરે છે. માત્ર આ ઓવરને અંતે, યાદ રાખો કે કાર્યક્રમ, સાથે સાથે, આ મૂળ હતી માત્ર હતી જે foo ને ફોન હું છાપી રહ્યું. પરંતુ હવે અમે, કે જે foo કૉલ કરી રહ્યાં છો તે 0 છે ત્યાં સુધી હું હ્રાસ, અને રહ્યું પછી તે ચલ છાપો. બરાબર. કે સાચવો. ડિબગ કરો. અને હવે, GDB ડિબગ. બરાબર. હું માત્ર ચલાવો તો તેથી પછી હું જઈ રહ્યો છું ખરેખર મારફતે પગલું કરવાનો પ્રયત્ન મારા કાર્યક્રમ વાક્ય દ્વારા વાક્ય. તેથી આપણે મુખ્ય અંતે તોડી દો, અને પછી રન લખો. તેથી આ મારફતે જાઓ, printf માટે, દાખલ પૂર્ણાંક, પૂર્ણાંક, 13 વિશે. તેથી અમે decrementing રાખવા રહ્યા છીએ હું 10 કરતાં વધારે હોય છે ત્યાં સુધી. પછી અમે મારફતે આવતા રહ્યા છીએ જ્યારે લૂપ, અને લાઇન પર વિચાર - માતાનો અલગ વિન્ડોમાં તે ખોલો. હું લાંબા સમય સુધી ન કરે ત્યાં સુધી તો આપણે decremented પછી 10 થી વધુ છે, અને અમે foo, કાર્ય કરે છે. તેથી શું જલદી હું નહીં થયું કાર્ય foo, સાથે સાથે, હું foo કહેવાય છે, અને પછી હું લાંબા સમય સુધી GDB પર નિયંત્રણ ધરાવતા હતા. તેથી જલદી હું આ વાક્ય પર આગળ નહીં, આ થયું ત્યાં સુધી વસ્તુઓ ચાલુ રાખ્યું, જ્યારે કાર્યક્રમ જ્યાં બહાર - તે આખરે અસ્તિત્વમાં હતી ધારે. તમે તે છતાં ઘડીભર વિરામ જોવા મળી હતી. તેથી શા માટે હું પર નિયંત્રણ ગુમાવી હતી તે સમયે કાર્યક્રમ? હું આગામી લખો જ્યારે ઠીક છે,, કે જાય કોડ શાબ્દિક આગામી લીટી ચલાવવા કરશે. તેથી પછી 21 લીટી, કોડ આગળના વાક્ય કે, 22 લીટી છે ચલાવવા કરશે મુખ્ય માંથી બહાર નીકળતા, છે. તેથી હું ફક્ત જાઓ નહિં માંગો કોડ આગળના વાક્ય. હું કાર્ય, foo જાય માંગો છો, અને પછી પણ મારફતે પગલું કોડ ઓફ તે રેખાઓ. તેથી આ માટે, અમે એક વૈકલ્પિક હોય છે. માતાનો ફરીથી છોડી દીધું. મુખ્ય તૂટી જાય છે. ઉહ, 1, આગળ, આગળ, 13, આગળ, આગળ, આગળ, કાળજીપૂર્વક અમે વાક્ય foo દબાવો તે પહેલા જ. બરાબર. તેથી હવે, અમે 21 લીટી પર છો અમે foo કહી છે. અમે આગામી લખો નથી માંગતા કે કારણ માત્ર કાર્ય foo કહી, અને કરશે કોડ આગળના વાક્ય પર જાઓ. શું અમે ઉપયોગ કરવા માંગો છો પગલું છે. તેથી પગલું વચ્ચે તફાવત છે અને પગલું પાંચ માં જાય છે આગળ, કામ કરે છે અને આગળ જાય છે કાર્ય પર. તે માત્ર સમગ્ર ચલાવે છે કાર્ય અને રાખે છે જઈ રહી છે. તેથી પગલું બનાવવામાં લાવી રહ્યું છે આ કાર્ય માં, foo,. અને અમે હવે, અમે પાછા છો, અહીં જુઓ સિદ્ધાંત મુજબ, કે આ વખતે લૂપ, કાયમ ચાલુ રહ્યું. અને જો તમે તે ન હોય ત્યારે પગલું, નહીં જો ફોન કાર્ય, પછી તે છે આગળ સમાન. તમે એક લીટી પર છો તેથી જ્યારે તે માત્ર છે કે પગલું કે કાર્ય ફોન છે આગળ અલગ રહ્યું છે. તેથી પગલું અહીં અમારો લાવશે. પગલું, પગલું, પગલું, પગલું, પગલું, પગલું, અને અમે કાયમ માત્ર અનંત લૂપ પડશે. તેથી તમે તે માટે વાપરવામાં શકે તમારા અનંત આંટીઓ ઓળખવા રીતે, છે ફક્ત આ Enter કી માટે હોલ્ડિંગ જો તમારી સામે સમસ્યાઓ જ્યાં જુઓ. ત્યાં તે કરવા માટે વધુ સારી રીતે હોય છે, પરંતુ હવે માટે, કે જે સંપૂર્ણપણે પૂરતી છે. અને stylistically, પ્રકાર ખાતરી કરવા માટે 50, હું આ કરી જોઈએ. બરાબર. તેથી એક છેલ્લા આદેશ દાખલ. વેલ, જે સાઇન ડિબગ gdb દો તેથી તેના બદલે મુખ્ય અંતે તોડવા, તો હું ફૂ કાર્ય ખબર પણ છે સમસ્યા છે, તો પછી હું કરી શકે છે માત્ર , તેના બદલે, foo પર ભંગ. માતાનો હું તોડી કહો મુખ્ય અને foo બંને. તેથી તમે ઘણા બ્રેકપોઇન્ટ્સ સેટ કરી શકો છો તમે ઇચ્છો તરીકે. હું રન લખો, ત્યારે તે ચાલી રહ્યું છે આ પર બંધ કરવા માટે - ooh, કારણ કે, માતાનો પુનઃકમ્પાઈલ દો હું વસ્તુઓ બદલ્યો છે. તમે આ રેખા, ચેતવણી સોર્સ જોશો ફાઇલ ચલાવી શકાય તેવી કરતાં વધુ થયેલા છે. જેથી હું હમણાં જ અહીં ગયા અર્થ એ થાય કે અને પ્રકાર ખાતરી કરવા માટે આ ફેરફાર 50, પરંતુ હું પુનઃકમ્પાઈલ ન હતી કાર્યક્રમ. તેથી GDB કે મને જાણે છે. હું ફરીથી ડિબગ કરો, બહાર નીકળવા પડશે GDB ડિબગ નહીં. બરાબર. તેથી હવે, પાછા હું શું કરી હતી છે. મુખ્ય, વિરામ foo તૂટી જાય છે. હવે હું આ કાર્યક્રમ ચલાવવા છે, એટલે જો હિટ ન થાય ત્યાં સુધી જઈ એક બ્રેકપોઇન્ટ. તે બ્રેકપોઇન્ટ થાય છે મુખ્ય અંતે પ્રથમ એક છે. હવે, તેના બદલે આગામી કરવાની, આગળ, આગળ, આગળ, આગળ, હું foo હિટ, ત્યાં સુધી હું ચાલુ રહેશે, જે ચાલુ ટાઈપ કરી શકો છો તમે આગામી બ્રેકપોઇન્ટ હિટ સુધી. હું પ્રથમ પૂર્ણાંક દાખલ કરવાનો રહે છે. હું હિટ સુધી ચાલુ રહેશે ચાલુ રાખો છે જે આગામી બ્રેકપોઇન્ટ, foo કાર્ય. તમે હિટ સુધી તેથી રન ચાલશે જ્યારે બ્રેકપોઇન્ટ, પરંતુ તમે માત્ર રન લખો તમે, પછી કાર્યક્રમ શરૂ, અને કરી રહ્યાં છો પછી થી, તે તમને ચાલુ છે. હું માત્ર મુખ્ય તોડી હતી અને જો પછી ચાલી હતી, તેના પર તૂટી પડશે પછી મુખ્ય, અને ચાલુ રાખો. હું foo અંતે વિરામ બિંદુ છે, ન હોવાથી પૂર્ણાંક દાખલ કરો, પછી હવે હું છું foo પર જતું નથી ચાલી રહ્યું. તે માત્ર અનંત બનશે કે ત્યાં સુધી લૂપ. બરાબર. જેથી GDB માટે પ્રસ્તાવના છે. તમે તેનો ઉપયોગ શરૂ કરીશું તમારી સમસ્યા સેટમાં. તે ખૂબ જ ઉપયોગી સાબિત થઈ શકે છે ભૂલો ઓળખવા માટે. તમે ખરેખર માત્ર વાક્ય દ્વારા વાક્ય, જાઓ તમારો કોડ છે, અને શું કરો ખરેખર તમે શું અપેક્ષા સાથે થઈ રહ્યું થાય છે, પછી તે ખૂબ છે તમારી ભૂલો સહેલાઈથી સમજાવી શકીશું. બરાબર. તેથી છેલ્લા અઠવાડિયે ડેવિડ આ લાવવામાં આ માટે ગુપ્ત કી ક્રિપ્ટોગ્રાફી સામગ્રી અમે ઈચ્છા જ્યાં નહિ પ્રથમ વખત, પાસવર્ડ માત્ર પર સંગ્રહ કરી અમારા કેટલાક સાદા લખાણ ફાઈલમાં કમ્પ્યુટર, જ્યાં કોઈને પર અને માત્ર આવી શકે તે ખોલો અને તેમને વાંચો. આદર્શ રીતે, તેઓ એનક્રિપ્ટ થયેલ આવશે અમુક રીતે. અને સમસ્યા સેટ 2, તમારી વ્યવહાર કરવામાં આવશે એનક્રિપ્શન એક પદ્ધતિ સાથે, અથવા, સાથે સાથે, બે પદ્ધતિઓ છે, પરંતુ તેઓ મહાન નથી. તમે હેકર આવૃત્તિ હોય, તો તમે છો પણ સાથે કામ કરી રહ્યા કેટલીક વસ્તુઓ ડિક્રિપ્ટ. તેથી આ મુદ્દો હવે સાથે સાથે, પણ જો છે અમે મજબૂત એનક્રિપ્શન છે વિશ્વમાં અલ્ગોરિધમનો, જો તમે પસંદ કરો ખાસ કરીને ગરીબ પાસવર્ડ, પછી તે , તમે ખૂબ ખૂબ મદદ કરશે કારણ કે લોકો હજુ પણ તે બહાર આકૃતિ કરવાનો પ્રયત્ન કરશે. એનક્રિપ્ટ થયેલ શબ્દમાળા જોઈ અને તો પણ તે કચરો એક વાસણ જેવો દેખાય છે જો કે, તેમને માટે કંઈ થાય છે તેઓ હજુ હમણાં જ થોડા પાસવર્ડ પ્રયાસ કરવાની જરૂર છે તમે પછી, તે બહાર આકૃતિ ખૂબ જ સુરક્ષિત નથી. તેથી એક વિડિઓ જોઈ કે તે બિંદુ છે. [વિડિઓ પ્લેબેક] -હેલ્મેટ, તમે અતિ ઘાતકી. શું થઈ રહ્યું છે તે? તમે મારા પુત્રી માટે કરી રહ્યા છે? તેજસ્વી દાખલ મને પરમિટ યુવાન પ્લાસ્ટિક સર્જન ડો ફિલિપ Schlotkin, મહાન નાક સમગ્ર નોકરીના માણસ બ્રહ્માંડ અને બેવર્લી હિલ્સ. યોર મહત્તા. -નાક કામ? હું સમજી શક્યા નથી. તેમણે પહેલેથી જ નાક કામ હતું છે. તે એક મીઠી સોળ હાજર હતા. કોઈ. તે તમને શું લાગે છે નથી. તે ખૂબ, ખૂબ ખરાબ છે. તમે મને મિશ્રણ આપતા ન હોય તો હવામાં ઢાલ, ડો Schlotkin કરશે તેમના જૂના નાક તમારી દીકરી પાછા આપે છે. કોઈ. જ્યાં તમે તે મેળવી હતી? -અધિકાર છે. હું કહી શકશો. હું કહી શકશો. ના, ડેડી. ના, તમે ન કરવી જોઈએ. -રહ્યાં છો અધિકાર, મારી પ્રિય. હું તમારા નવા નાક ચૂકી પડશે. પરંતુ હું તેમને મિશ્રણ કહી શકતા નથી, કોઈ બાબત શું. સારી રીતે ખૂબ. ડો Schlotkin, તમારા સૌથી ખરાબ હોય છે. -મારો આનંદ. [સાધનો sharpened હોવા પર] કોઈ. રાહ જુઓ. રાહ જુઓ. હું કહી શકશો. હું કહી શકશો. હું તે કામ કરશે હતા. અધિકાર છે. તે મને આપો. -મિશ્રણ છે. વન. વન. બે. બે. બે. થ્રી. થ્રી. થ્રી. ચાર. ચાર. ચાર. -પાંચ. -પાંચ. -પાંચ. -તેથી મિશ્રણ, એક છે બે, ત્રણ, ચાર, પાંચ. કે stupidest મિશ્રણ છે હું ક્યારેય મારા જીવનમાં સાંભળ્યું. કે વસ્તુ પ્રકાર એક મૂર્ખ માણસ છે પોતાના સામાન પર હશે. તમારી મહત્તા, તમે આભાર. શું તમે કરો છો? હું બોલ દીવાલ નહીં. કોઈ તમે નથી. તમે સમગ્ર ફિલ્મ નહીં. -I ખોટું બટન દબાવવામાં જ જોઈએ. વેલ, તે પાછી ફેરવી છે. પાછળ ફિલ્મ મૂકો. હા, સર. હા, સર. માતાનો, આર્નોલ્ડ ગો દો. , Gretchen આવો. અલબત્ત, તમે હું હજુ પણ પડશે ખબર આ માટે તમે બિલ છે. [સમાપ્ત વિડિઓ પ્લેબેક] રોબ Boden: અધિકાર છે. અમે પહેલાથી જ વિશે વાત કરી રહ્યા છીએ તેથી હવે કેટલીક રીતે સુરક્ષા, સરસ થોડી ફિલ્મ પોસ્ટર છે, તેથી હાલ માં જો NSA સાથે દિવસ, આ મુદ્દાઓ બધું નિરીક્ષણ. તે તમને લાગે છે કે મુશ્કેલ હોઈ શકે છે આ ગોપનીયતા અમુક પ્રકારની છે ઓનલાઇન વિશ્વમાં, હું કહી શકે છે, તેમ છતાં તમે પ્રિઝમ વિગતો મોટા ભાગના. તેથી પ્રિઝમ બહાર ખસેડવા, અમે જઈ રહ્યાં છો હવે, તે વિશે વાત કરી તમારા લેપટોપ વિશે વિચારો. તેથી અહીં, હું સ્વિચ કરવા માંગો છો મારા વાસ્તવિક એકાઉન્ટ માટે, મારા ઓછી પેંગ્વિન સાથે. તેથી હું પાસવર્ડ સુયોજિત કરો છે, અને તે પાસવર્ડ હું તે કરવા માંગો છો ગમે છે. પરંતુ યાદ રાખો કે શું હું લૉગિન છું , તેથી આ પ્રવેશ સાથે પ્રોમ્પ્ટ પર, કેટલાક પ્રોગ્રામ છે. તે કે જે અમુક કાર્યક્રમ છે કેટલાક વ્યક્તિ દ્વારા લખવામાં. અને તેથી, તે વ્યક્તિ, જો તેઓ છે ખાસ કરીને ખરાબ છે, તેઓ કરી શકે છે કહ્યું છે, બધા હક છે, તેથી જો પાસવર્ડ હું દાખલ કે સમાન છે મારા વાસ્તવિક પાસવર્ડ, અથવા તે સમાન છે કેટલાક ખાસ પાસવર્ડ માટે - ડેવિડ ભયાનક અથવા કંઈક છે - પછી તેમને સાઇન દો તેથી દૂષિત પ્રોગ્રામર કરી શકે છે તમારા મેક્સ તમામ, અથવા વપરાશ વિન્ડોઝ, અથવા કંઈપણ. જેથી, કારણ કે, એક ચિંતા મોટા નથી હું તેનો અર્થ, આ પ્રવેશ એ કાર્યક્રમ છે કે ઓએસ એક્સ, સેંકડો સાથે આવે છે અથવા હજારો લોકોની છે આ કોડ સમીક્ષા કરી હતી. અને તેથી, જો તમે ક્યાંક તમારા કોડમાં, જો આ શબ્દમાળા સમકક્ષ સમકક્ષ હોય તો કહી ડેવિડ અદ્ભુત છે, પ્રવેશ, પછી કોઈને છે જ હશે, જેમ કે, રાહ જુઓ. આ યોગ્ય નથી. આ અહીં ન હોવી જોઈએ. જેથી અમે વસ્તુઓ માત્ર એક રીત છે પ્રકારની સુરક્ષિત છે. પણ કાર્યક્રમો વિશે વિચારો તમે લખી છે. માતાનો તમને પ્રવેશ કાર્યક્રમ લખ્યું કહો. તમે લખ્યું કે તેથી આ પ્રવેશ કાર્યક્રમ, તેથી દેખીતી રીતે, તમે એક સારા છે પ્રોગ્રામર. તમે કોઇપણ દૂષિત મૂકવા જઈ રહ્યાં છો X સમકક્ષ સમકક્ષ જો ડેવિડ ભયાનક છે તમારા કોડમાં. પરંતુ આ કાર્યક્રમ, તમે શું આ કાર્યક્રમ કમ્પાઇલ ઉપયોગ? રણકાર કંઈક. તેથી શું થયું જો જે વ્યક્તિ રણકાર માં cased રણકાર ખાસ લખી કંઈક, જેમ હું સંકલન છું જો કાર્યક્રમ પ્રવેશ, તો પછી આ કોડ દાખલ કરો તો કહે છે કે પ્રવેશ પ્રોગ્રામમાં X સમકક્ષ ડેવિડ અદ્ભુત છે જેટલી જ થાય છે? તેથી તદ્દન હજુ સુધી, પરંતુ અમે એ જ છે અહીં જારી, જ્યાં રણકાર, સાથે સાથે, હજારો નહીં તો દસ હજારો લોકો છે, રણકાર પર ધ્યાન આપવામાં આવે છે કોડ તેના લીટીઓ પર હતા અને કહ્યું હતું કે, બધા હક છે, અહીં ખરાબ કશું જ નથી. દેખીતી રીતે, કોઈ એક કરી રહ્યા છે આ દૂષિત કંઈપણ. પરંતુ, જેમ કે, પોતે રણકાર છે શું હું રણકાર સંકલન તો શું? શું હું કેટલાક કમ્પાઇલર છે કે જો રણકાર માં દાખલ કે રણકાર કમ્પાઇલ કહે છે કે આ ખાસ હેક, બધા હક છે, હું રણકાર સંકલન છે, પછી ચલાવી શકાય તેવી હું ખાસ જોવું જોઈએ કરો પ્રવેશ કાર્યક્રમ અને શામેલ ની અંદર આ પાસવર્ડ, સમકક્ષ સમકક્ષ હોય ડેવ અદ્ભુત છે? તેથી યાદ રાખો કે તમારા કમ્પાઇલર પોતે અમુક સમયે સંકલિત કરવાની જરૂર છે. તેથી તમે રણકાર કમ્પાઇલ પસંદ જો પોતે પછી તમે દૂષિત છે સાથે સમગ્ર ઘણું ખરાબ કરી શકાય માર્ગ નીચે લીટી. અહીં, અમે કેન થોમ્પસન છે અને ડેનિસ રિચી. તેથી આ એક આઇકોનિક ફોટો છે. ડેનિસ રિચી જ અધિકાર છે. તેમણે એક મુખ્ય છે - ખૂબ ખૂબ સી લખ્યું તેથી તમે કરી શકો છો આ વર્ગ માટે તેનો આભાર. કેન થોમસન ડાબી પર છે. તેમને બે મૂળભૂત રીતે એ UNIX લખ્યું હતું. ઠીક છે, તેઓ મુખ્ય યોગદાન હતા UNIX માં. કેટલાક અન્ય લોકો હતા. અમુક સમયે તેથી કેન થોમ્પસન, તેમણે ટ્યુરિંગ એવોર્ડ જીતી જાય છે. અને ટ્યુરિંગ એવોર્ડ, હું હંમેશા સાંભળ્યું કર્યું તે આ રીતે સંદર્ભ છે, તે છે કોમ્પ્યુટર વિજ્ઞાન નોબેલ પારિતોષિક. તેથી ટ્યુરિંગ એવોર્ડ ખાતે તેઓ છે પોતાના આભાર પ્રવચનમાં આપે છે. અને તે આ ખૂબ જ પ્રખ્યાત ભાષણ આપે છે હવે, વિશ્વાસ પ્રતિબિંબ કહેવાય અમે કડી થયેલ છે, જે ટ્રસ્ટ, કોર્સ વેબસાઇટ પર છે. અને આ વકતવ્યમાં, તેમણે, બધા હક છે, કહે છે તેથી હું એ UNIX લખ્યું હતું, અને હવે સૌ તમે લોકો એ UNIX ઉપયોગ કરી રહ્યા છો. હવે, Linux ને કે આજે યાદ યુનિક્સ એક સીધા વંશજ. ઓએસ એક્સ સીધા એ UNIX ઉપયોગ કરે છે. વિન્ડોઝ ખૂબ જ કરે છે, પરંતુ ઘણી વિચારો UNIX માંથી લેવામાં આવ્યા હતા. તેથી તેમણે સ્ટેજ સુધી જાય છે અને કહે છે બધા હક છે, હું એ UNIX લખ્યું હતું. અને એ જ તમે ગાય્સ જાણો છો, હું છું દરેક પ્રવેશ કરવાનો તમારા કમ્પ્યુટર્સ એક એક. X જો હું આ ખાસ એક મૂકી થી જેટલી જ થાય છે, કેન થોમસન અદ્ભુત છે જેટલી જ થાય છે પછી હું પ્રવેશ માટે માન્ય છું. તેથી લોકો, પણ જેવા છે how'd તમે આ કરી? અમે લૉગિન કાર્યક્રમ જોવામાં અને કશું જ નથી. તેમણે સાથે સાથે, હું પણ કમ્પાઇલર ફેરફાર, જેવું છે પ્રવેશ કાર્યક્રમ પ્રવેશ કરવા માટે પ્રવેશ કાર્યક્રમ હવે છે કે જેથી કે એક્સ કેન થોમ્પસન સમકક્ષ સમકક્ષ હોય છે અદ્ભુત છે. અને તેઓ સારી રીતે, તે સાચું નથી, કહે છે. અમે કમ્પાઇલર જોઈ, અને કરી રહ્યાં છો કમ્પાઇલર કોઇ લાઇન નથી જેમ કોડ. તેમણે બરાબર, જેવું છે, પરંતુ તમે શું છે કમ્પાઇલર સાથે સંકલન? અને, સાથે સાથે, જેમ તેઓ લાગે છે, અને તે છે હું તમને કમ્પાઇલર આપ્યો જે એક છું તમે પણ કમ્પાઇલર કમ્પાઇલ ઉપયોગ કરીને, તેથી રહ્યા છો તમે કમ્પાઇલર કમ્પાઇલ કરવામાં આવે છે પોતે દૂષિત છે, અને કરશે પ્રવેશ કાર્યક્રમ તૂટી જાય છે. જેથી મૂળભૂત છે, તે સમયે, ત્યાં તમે સ્ત્રોત પર નજર શકે કોઈ રીતે પ્રવેશ કાર્યક્રમની કોડ ખોટું છે તે જોવા માટે. તમે પણ જુઓ શકે છે કમ્પાઇલર સ્રોત કોડ ખોટું છે તે જોવા માટે. તમે મશીન જોવા જરૂર છે કોડ છે, એ ના વાસ્તવિક દ્વિસંગી આ, રાહ જુઓ, તે જોવા માટે સંકલિત કમ્પાઇલર કોડ ઓફ રેખાઓ અહીં ન હોવી જોઈએ. પરંતુ કેન થોમ્પસન તે એક પગલું ભર્યું વધુ અને સાથે સાથે, ત્યાં જણાવ્યું હતું કે, આ ખાસ કાર્યક્રમો કે જે વાસ્તવમાં તમે કાર્યક્રમો બાઈનરી વાંચી મદદ, અને તેથી કોઈને કે કાર્યક્રમ ઉપયોગ જો બાઈનરી વાંચો, તેઓ આ જુઓ છો કોડ ઓફ રેખાઓ. તેમણે તમામ કહે છે, તે કાર્યક્રમો ફેરફાર અધિકાર, તમે જોઈ રહ્યાં છો કમ્પાઇલર, આ ચોક્કસ બતાવતા નથી દ્વિસંગીની સમૂહ. તેથી પછી તમે લેવાની જરૂર છે કે જે પગલું વધુ અને સામાન્ય રીતે, કે કરી શકે છે પરોક્ષ રીત ના લેવામાં બહુવિધ સ્તરે, અને અમુક સમયે, કોઈ એક ખરેખર છે ચકાસણી કરી રહ્યા. તેથી વાર્તા નૈતિક તમે, છે લખી શકાય જઈ નથી આ વર્ગ માં રણકાર. તમે ચડતા ઉપયોગ કરી રહ્યા છીએ આ વર્ગ ઘણો રણકાર. તમે જાણો છો બધા માટે, રણકાર દૂષિત છે દરેક sabotaging છે કે કાર્યક્રમ એક કાર્યક્રમ તમે ક્યારેય તૈયાર કરી છે. અને તે ખૂબ જ અપશુકનિયાળ પર તમે છોડી બુધવારે તમે જુઓ, નોંધ કરો. [વધાવી] 2 વક્તા: આગામી CS50 ખાતે. 3 વક્તા: તમે તે કબૂલ કરું છું નથી. તમે કરી શકો છો. તમે તે પહેલાં પણ કરેલું છે, તમે આ કરી શકો છો આજે, તમે આવતી કાલે કરી શકો છો. તમે વર્ષ માટે આ કરી રહ્યો છું. માત્ર ત્યાં જાઓ અને આવું. તમે કરી શકો છો. [સંગીત વગાડવાનો]