[સંગીત વગાડવાનો] ડેવિડ જે MALAN: આ જેવું છે એક નવા વિદ્યાર્થીઓ લેવાનો પરિસંવાદ આજે. ઠીક છે. બહાર છે તેથી ખૂબ જ વરસાદી. આ બુધવાર પર થાય છે શકે છે, પરંતુ તમામ વધુ તક પ્રશ્નો માટે આજે. તેથી ખરેખર બંધ શરૂ કરીએ માત્ર એક ક્ષણ આ ફિલ્મ સાથે. પરંતુ અમે હંમેશા તરીકે જોરશોરથી શરૂ કરી શકશો. આ CS50 છે, અને આ 4 સપ્તાહ અંત છે. તમે ક્યારેય જોયું છે તેથી જો ટીવી અથવા મૂવી જેમાં કેટલાક કમ્પ્યુટર નિષ્ણાતના છે અને પોલીસ, અથવા એફબીઆઇ, અથવા અમુક એજન્સી કેટલાક પકડી પ્રયાસ કરી રહી છે વિરોધી, સારી રીતે, તમે કરેલા કદાચ "વધારવા" અભિવ્યક્તિ સાંભળ્યું જેમાં કે ટેકનિશિયન કોઈક જાદુઇ અનંત માં zooms ગુનેગારો જોવા માટે અત્યાર સુધી ઓળખ અથવા લાઇસન્સ પ્લેટ નંબર એક અરીસો પણ ઝબૂકવું માં અથવા કોઈના આંખ ના ઝળહળવું. તેથી ખરેખર, ચાલો એક નજર કરીએ હોલિવુડ થોડા આવા દ્રશ્યો. [વિડિઓ પ્લેબેક] -OK, હવે તમે પર સારો દેખાવ વિચાર કરીએ. તે પકડો. કે પાછા ચલાવો. -એક મિનીટ થોભો. અધિકાર જાઓ. -ત્યાં, કે સ્થિર. -પૂર્ણ - પટ, આખો પડદો. -OK, કે સ્થિર. તમે કે જે પર આવશે અપ વધુ કડક? કે પર વેક્ટર પાછળ વ્હીલ દ્વારા ગાય. અહીં આ સ્થળ પર ઝૂમ વધારો. -સાથે યોગ્ય સાધનો, ઇમેજ ફૂલે અને sharpened કરી શકે છે. -તે શું છે? -તે ઉન્નતીકરણ કાર્યક્રમ છે. કોઈપણ અપ કે સાફ તમે -શકો? -મને ખબર નથી. માતાનો તેને વધારવા દો. એન્હેન્સ વિભાગ A6. હું વિગતવાર વધારી, and-- હું લાગે છે કે ત્યાં વધારવા માટે પૂરતી છે, મારા સ્ક્રીન પર તે રિલીઝ. હું તેના આંખ માં પ્રતિબિંબ વધારી છે. -Let દ્વારા આ ચાલે છે વિડિઓ વૃદ્ધિ. -એડગર, તમે આ વધારવા કરી શકો છો? -ઊભો રહે. આ પ્રતિબિંબ પર કામ કરવામાં -I've. -Someone માતાનો પ્રતિબિંબ. -Reflection. માણસ ચહેરો -ત્યાં એક પ્રતિબિંબ છે. -ધ પ્રતિબિંબ. -ત્યાં એક પ્રતિબિંબ છે. મિરર પર ઇન ઝૂમ વધારો. તમને એક પ્રતિબિંબ જોઈ શકો છો. તમે અહીં ઇમેજ વધારવા -શકાતી? તમે અહીં તેને વધારવા -શકાતી? -શકાતી તમે તેને વધારવા? તમે તેને વધારવા કરી શકો છો? -શકાતી અમે આ વધારવા? -શકાતી તમે તેને વધારવા? એક બીજા પર પકડ, હું વધારવા પડશે. દરવાજા પર ઇન ઝૂમ વધારો. 10 -Times. ઝૂમ વધારો. -અંદર આવો. ફરીથી વધુ. -Wait, અટકાવો. રોકો. તે -Pause. અમને 75 ડિગ્રી-ફેરવો ઊભી આસપાસ, કૃપા કરીને. રોકો. ભાગ પર પાછા જાઓ ફરી બારણું વિશે. બીટમેપ શકો છો કે જે છબી enhancer- ગોટ? -Hey, કદાચ અમે આ પ્રદીપ ઉપયોગ કરી શકો છો સેન પદ્ધતિ વિન્ડો માં જોવા માટે. -આ સોફ્ટવેર કલાના રાજ્ય છે. -ધ Eigenvalue બંધ છે. જમણી -સાથે અલ્ગોરિધમનો મિશ્રણ -કુલ માતાનો લેવામાં દૂર આગલા સ્તર પર ગણતરીના અને હું તેમને ઉપયોગ કરી શકો છો આ ફોટોગ્રાફ વધારે છે. પર લોક અને Z- અક્ષ મોટું. એન્હેન્સ. એન્હેન્સ. એન્હેન્સ. -સ્થિર અને વધારે છે. [સમાપ્ત પ્લેબેક] ડેવિડ જે MALAN: બધા અધિકાર છે, તેથી તે બધા ખરેખર શબ્દો છે. તેઓ માત્ર એક સાથે ગૂંથી લેનાર રહ્યાં છો ખરેખર યોગ્ય નથી કે માર્ગ. તે ગમશે અને હકીકતમાં, CS50 અને અભ્યાસક્રમો ટીવી અને ફિલ્મોમાં ઘણો વિનાશ કરે છે તમારા માટે. જ્યારે તે કોમ્પ્યુટર નિષ્ણાતના કારણ કે શરતો બંધ ધમકીઓ અને કહે છે જેવા ફેન્સી વસ્તુઓ eigenvectors, અને ઝેડ ધરી, અને અન્ય કોઈપણ નંબર ખરેખર વધુ ટેકનિકલ દ્રષ્ટિએ, તેઓ ખરેખર માત્ર રહ્યાં છો stringing શબ્દો બધા સાથે મળીને પણ ઘણી વખત. અમારી આશા છે કે એક છે, લેવાથી અભ્યાસક્રમો એક બાજુ અસર તરીકે માં આ જેમ, ચાલશે વધુ લોકો વિશ્વમાં ખરેખર તોલવું કરવાનો પ્રયત્ન અને માત્ર અત્યાર સુધીમાં સહેજ પ્રભાવ ગુણવત્તા અને તે ફિલ્મો ચોકસાઈ? હકીકતમાં, વાસ્તવિકતા પર એક નજર કરીએ. તેથી અહીં સ્ટાફ ફોટો છે મેરી, અમારા શિક્ષણ ફેલો છે. અને તે ધારવું કંઈક શંકા. અને હજુ સુધી, એક ઝાંખો અસ્થિર પ્રકાશ છે તેના આંખ માં પુરાવા કેટલાક ભાગ, અથવા તેણીના eyeglasses પ્રતિબિંબ છે. વેલ, અમે ફિલ્મો બરાબર હોય તો અમે ઝૂમ અને "વધારવા", જેમાં પ્રસ્તાવ, આ કેવી રીતે ઘણી માહિતી છે મેરીના ચહેરા છે તમે એક છબી કેપ્ચર જ્યારે કે મૂળ રીઝોલ્યુશન સાથે. અને હકીકતમાં, તમે આ બિંદુઓ જોઈ શકો છો. અને આ શું છે કહેવાય પિક્સેલ્સ, પી-I-X-ઇ એલ એસ, જે સામાન્ય રીતે માત્ર એક ચોરસ છે એક છબી છે કે બનેલું છે કે જે કોઈ છે. અને પાછા દિવસ, અને ખરેખર પણ આજે એલઇડી ટીવી કેટલાક આજે અથવા એલસીડી ટીવી, તમે મળી છે, તો તમારા રૂમમાં અથવા ઘરે એક, તમે તેને સુપર બંધ જાઓ અને હોય તો તે કંઈક અંશે જૂની ટીવી, ખાસ કરીને જો તમે કદાચ પણ આ બિંદુઓ જોઈ શકો છો અને તે એક છબી કંપોઝ છે. અને કોઈ વધુ છે આ કરતાં જાણકારી. અમે અર્થમાં, "વધારવા" કરી શકે છે ઉપર અને સૉર્ટ વસ્તુઓ લીસું પ્રકારની સૉર્ટ કરો શું inferring રંગ મેરી આંખ આગળ હોવા જોઇએ કે જેથી તે ખરેખર તેથી pixelated નથી. પરંતુ હું ઝૂમ રાખવા, ત્યાં તેના આંખ માં ખરાબ વ્યક્તિ છે. કે જેવી તમામ છે માહિતી અમે હોય છે. તમે બનાવી શકતા નથી કશું બહાર જાણકારી. માત્ર એક જ મર્યાદિત છે ત્યાં બિટ્સ સંખ્યા. સમસ્યા સેટ 4, જ્યાં તેથી તમે એક તક હોય છે વિશ્વમાં આ પ્રકારની સાથે રમવા માટે. સમસ્યા સેટ 4, તમે અન્વેષણ પડશે ગ્રાફિક્સ, અને વિદેશી વિશ્વમાં, અને ખરેખર કોડ લખવા કે હારી છબીઓ ધક્કામાંથી. તમે કોડ લખો પડશે કે હાલની છબીઓ ચાલવે અને છેવટે શું છે સમજી હૂડ નીચે જઈ રહી છે. અને, તે ખરેખર છે, બહાર વળે બધા છે કે જે જટિલ નથી. હમણાં પૂરતું, જો અમે ઇચ્છતા એક હસતો ચહેરો જ્યાં પ્રતિનિધિત્વ આ કાળા પિક્સેલ્સ સાથે, અથવા આ કાળા ટપકાં, વેલ, અમે ફક્ત પ્રતિનિધિત્વ કરી શકે છે તેમને સાચી એક બીટમેપ. અને જો તમે ક્યારેય સાંભળ્યું હતું કે અભિવ્યક્તિ બીટમેપ, કદાચ તે હવે બનાવવા માટે શરૂ થાય છે થોડી વધુ અર્થમાં આજે. અમે પહેલાથી જ એક બીટ છે શું ખબર. તે 0 અથવા 1 છે. અને એક નકશો કંઇક છે કાગળ એક ભાગ જેવા કે તમે દિશાઓ આપે છે અને છે કદાચ X- અને વાય કોઓર્ડિનેટ્સ એક ગ્રીડ. તેથી અહીં એક બીટમેપ છે. તે બીટ્સ એક નકશો છે જેમાં 1 દેખીતી રીતે છે સફેદ પિક્સેલ પ્રતિનિધિત્વ રહ્યું છે, અને એક 0 કાળા પિક્સેલ પ્રતિનિધિત્વ રહ્યું છે. પરંતુ અમે ચોક્કસપણે તે આસપાસ વિમાનની મુસાફરી કરી શકે. તે ખરેખર તો કોઈ વાંધો આવું કરે અમે સતત છો તરીકે લાંબા સમય સુધી. અને અહીં અંદર binary--, કેવી રીતે છે કમ્પ્યુટર મેમરી, અથવા પણ અંદર તમારી હાર્ડ પર ફાઇલ drive-- તમે સંગ્રહ શકે હસતો ચહેરો છબીઓ સરળ. પરંતુ અમે શું છે, અલબત્ત, આ છબી અભાવ? રંગ, અધિકાર? તે સ્પષ્ટ આગળનું પગલું છે કે વૃદ્ધિ રંગ સાથે આ સુધારવા માટે. તેથી કમનસીબે માત્ર એક જ સાથે બીટ, 0 અથવા 1, અમે રંગ પ્રતિનિધિત્વ કરી શકે છે. કે લાલ, અથવા વાદળી હોય છે, અથવા કરી શકે છે બ્લેક, અથવા સફેદ અથવા લીલા, અથવા ગુલાબી, અથવા રંગો કોઈપણ જોડી. પણ સરળતા ખાતર, અમે પડશે માત્ર કાળા અને સફેદ ધારે. તેથી તાર્કિક રીતે અમે જરૂર હોય તો શું અમે એક છબી રંગ અમલ કરવા માંગો છો? અમે શું છે? અહીં સીમાંકન પરિબળ તો ગમે કે એક બીટ સાથે તમે કરી શકો છો છે બે રાજ્યો, 0 અથવા 1, વ્હાઇટ પ્રતિનિધિત્વ અથવા બ્લેક, તમે શું કરવા માંગો છો? પ્રેક્ષક: વધુ માહિતી. ડેવિડ જે MALAN: વધુ બિટ્સ, અરે વાહ વધુ માહિતી, વધુ બિટ્સ. અને, ખરેખર, તે બરાબર કેવી રીતે રંગ છબીઓ રજૂ થાય છે. એક બીટ ઉપયોગ બદલે એક 0 અથવા દરેક પિક્સેલ માટે 1, દરેક ડોટ, તમે માત્ર બહુવિધ ઉપયોગ કરે છે. કદાચ કદાચ, વધુ સામાન્ય રીતે, 8 ઉપયોગ સમસ્યા સેટ, ખરેખર 24 વાપરવા માટે, અને 4, તમે ફાઈલ સાથે રમવા આવશે સામાન્ય રીતે 24 બિટ્સ વાપરે છે કે જે ફોર્મેટ. પરંતુ તમે મોટા ભાગના કદાચ છે JPEGs સાથે પરિચિત. તમે ક્યારેય ભર્યું છે, તો તમારા ફોન પર એક ફોટો, અથવા અપલોડ અથવા કંઈક જોવા મળે ફેસબુક, અથવા Flickr, કોઈપણ નંબર ફોટો આધારિત વેબસાઇટ્સ, તમે કરેલા કદાચ પહેલાં કોઈ JPEG છબી જોવા મળે છે. અને તે આ ફાઇલ છે, બહાર વળે બંધારણમાં અમે 4 pset માં ઉપયોગ જઈ રહ્યાં છો જેમાં તમે જઈ રહ્યાં છો છબીઓ પુનઃપ્રાપ્ત કરવા માટે હોય છે હું અકસ્માતે પરથી કાઢી કર્યું છે કેમેરા બગડી મેમરી કાર્ડ, જો તમે કરશે. અને તે તારણ છે કે, તેમ છતાં JPEG ખૂબ sophisticated-- છે તે વધુ આધુનિક છે કાળા અને સફેદ ટપકાં કરતાં કારણ કે ત્યાં અમે એક ક્ષણ પહેલા જોયું ખરેખર ફેન્સી ગાણિતીક નિયમો છે કે જેથી JPEG સંકુચિત કરવા માટે વપરાય છે તમે ખરેખર સરસ હોઈ શકે છે કે, ગુણવત્તા ચિત્ર પરંતુ મદદથી પ્રમાણમાં થોડા બિટ્સ. અને અમે પાછા આવો પડશે લાંબા પહેલાં સંકોચન. તે પ્રથમ કે બહાર વળે કોઈ JPEG image-- ત્રણ બાઇટ્સ કોઈ બાબત તમે એક ફોટોગ્રાફ ભર્યું શું of-- કિંમતો 255, 216, 255 છે. અન્ય શબ્દોમાં, જો તમે માત્ર બીટ્સ કે પેટર્ન જુઓ, ત્રણ અહીં રજૂ બાઇટ્સ, કે 24 બીટ્સ કુલ ઊંચી સંભાવના સાથે તમે તે અટકળ બાંધવી કરી શકો છો તમે આ પ્રથમ ત્રણ તે અંતે શોધી રહ્યા છે કોઈ JPEG બાઇટ્સ. અને આ શું ઓળખાય છે છે કોઈ JPEG ની સહી છે. ફાઈલ બંધારણો ઘણાં શરૂ કરવા માટે ત્યાં હોય છે બહાર 0s અને 1 સે કેટલીક ચોક્કસ પ્રકારની પેટર્ન સાથે, કે વિન્ડોઝ, અને મેક ઓએસ, અને iOS, જેથી અને, Android ખબર ફાઇલ કેવા પ્રકારની તેઓ કહેવાતા ફાઈલ ઉપરાંત, છે વિસ્તરણ ફાઇલો ઘણો હોય છે. તમે, jpg હોય તો, તે છે આ કમ્પ્યુટર પર અન્ય ચાવી. તેથી હવે આ જુઓ ચાલો વધુ તકનિકી થોડી. અમે એ દશા ખબર સિસ્ટમ 9 મારફતે 0 હોય છે. અમે દ્વિસંગી 0 અને 1 હોય છે ખબર છે કે. અને તમે pset પાછા લાગે છે કે જો 0, અમે તમને સાથે કુસ્તી હતી થોડી કંઈક માટે હેક્સાડેસિમલ કહેવાય છે, તમે 16 અંકો હોય છે, તેના બદલે 10 અથવા તેના બદલે 2. અને તે એ સંમેલન દ્વારા, પછી 9 અને મારફતે 0 છે એફ શું રજૂ કરે છે એફ દ્વારા માત્ર એક ઝડપી સેનીટી તરીકે દશાંશ નંબર, છો? તેથી, 15. અને એક માત્ર દ્વારા 10 પ્રતિનિધિત્વ જોઈએ હું આપી છે કે ક્રમ પ્રકૃતિ. તે માત્ર એક મનસ્વી સંમેલન છે પરંતુ તે તદ્દન પ્રમાણભૂત છે. અમે આ પેટર્ન જોવા તેથી જો ત્રણ ચાલો ચોક્કો બાઇટ્સ જસ્ટ તેને જોવા માટે શરૂ કેવી રીતે સાથે સુસંગત રીતે સામાન્ય રીતે કોમ્પ્યુટર વિજ્ઞાનીઓ જોવા અને ફાઈલો વિશે વિચારો. તમે ચોક્કસપણે વિશે વિચાર કરી શકો છો 0s માં ફાઈલો, અને 1 સે, અને દશાંશ, પરંતુ વાસ્તવમાં, અમે દ્વિસંગી ઉપયોગ કરે છે અથવા વધુ સામાન્ય રીતે hexadecimal-- પાછા pset 0 થી. તેથી મને પ્રસ્તાવ છે કે 255, 216, અને 255 0s અને 1 સે માત્ર આ પેટર્ન છે. અને તમે આ તો ચકાસી શકો છો તમે સપ્તાહ 0 થી ગણિત કરવા માંગો છો. પરંતુ, હવે માટે, માત્ર ધારે કે આ ખરેખર સાચું છે. હું માત્ર ત્રણ દશાંશ ફરીથી લખી કર્યું ત્રણ બાઈનરી કિંમતો તરીકે નંબરો. હવે હું શું કરવા જઈ રહ્યો છે માત્ર કેટલાક સફેદ જગ્યા ઉમેરો માત્ર વાંચી શકાય ખાતર. અને નોટિસ, હું હમણાં જ જાઉં છું વસ્તુઓ ઉપરાંત ખસેડો. તેથી તે પહેલાં, પછી, પહેલાં, પછી. હું અન્ય રસપ્રદ કંઈ કરી રહ્યો છું માત્ર જેથી વસ્તુઓ બહાર ફેલાવો કરતાં સૂચના આઠ દરેક સમૂહ બિટ્સ હવે ચાર બીટ્સ બે સેટ છે. આ હેક્સાડેસિમલ કારણ કે ઉપયોગી છે ખાસ કરીને ફેશનેબલ છે કારણ કે દરેક હેક્સાડેસિમલ US સ્થાન 0 મારફતે એફ, અથવા વધુ ચોક્કસ 0 મારફતે 15, રજૂ કરી શકાય છે બરાબર ચાર બિટ્સ સાથે. અન્ય શબ્દોમાં, હેક્સાડેસિમલ જો તમે તે માત્ર 0000 છે, 0 પ્રતિનિધિત્વ કરવા માંગો છો, ચાર zeros. અને તમે 15 પ્રતિનિધિત્વ કરવા માંગો છો, તો તે ચાર બિટ્સ છે, કે જે 1111 છે. અને તમે ગણિત નથી, તો આ મુદ્દાઓ સ્થળ છે, તો આ 16s સ્થળ છે કે તમારી પાસે આપી રહ્યું છે તેના બદલે છે કે ચાલી રહ્યું છે માફ કરશો રહ્યો, દ્વિસંગી માં, 15 તમે આપી રહ્યું છે, જેના સ્થાને છે, twos સ્થળ, ચોગ્ગા અને સહિતની સંખ્યાબંધ ઉડાનો ભરી સ્થળ. તેથી મને કે પ્રસ્તાવ દો ડાબી પર ચાર બિટ્સ સેટ અમે એફ કહી રહ્યા છીએ તે છે. તે સૌથી મોટી સંખ્યા છે તમે ચાર બિટ્સ સાથે પ્રતિનિધિત્વ કરી શકે છે. અને અમે પહેલેથી જ હેક્સાડેસિમલ માંથી ખબર છે, એફ હેક્સાડેસિમલ સૌથી મોટી આકડો છે. અમે ત્યાં અન્ય એફ મળી છે બે પર વધુ. અને હવે, માત્ર વિશ્વાસ પર લઇ હું ગણિત અધિકાર થાય છે કે અને તે ડાબી અડધા તે બિટ્સ, 1101 ના, હેક્સાડેસિમલ ડી તરીકે જ વસ્તુ છે. અને જમણી બાજુ, 1000, માત્ર 8 છે. અને સરળ છે કે એક અધિકાર જોવા માટે? 8 represents-- અધિકાર છે કે સહિતની સંખ્યાબંધ ઉડાનો ભરી સ્થળ નીચે. તેથી અમે સહિતની સંખ્યાબંધ ઉડાનો ભરી સ્તંભમાં એક હોય અને ચોગ્ગા, twos અથવા મુદ્દાઓ કંઈ નથી. તેથી હવે વધુ પરંપરાગત, મનુષ્યો હોય છે આ જેમ હેક્સાડેસિમલ અંકો લખવા માટે તમે માત્ર તેમને એકસાથે squish અને પછી તમે 0x સાથે તેમને ઉપસર્ગ. તે કરતાં અન્ય કંઈ થાય છે એક human-- માટે એક દ્રશ્ય ચાવી અહીં હેક્સાડેસિમલ કિંમત કારણ કે આવે છે તે અન્યથા સ્પષ્ટ ન પણ હોઈ શકે. કે જે છેવટે, કહે છે zeros અને શૈલીઓનો પેટર્ન, અથવા હેક્સાડેસિમલ પેટર્ન એ સમાન તમે છો કે શોધી શરૂ કરવા જઇ સમસ્યા સેટ માં 4 આ છે અને આ સમસ્યા સેટ સ્પેક 4 જવામાં આવશે વધુ detail-- આ દ્વારા તમે પરંતુ Arcane જેવું તરીકે ખ્યાલ આ પ્રથમ નજરમાં જુઓ શકે તમે આ ઘણો જોવાનું શરૂ કરવા માટે જઈ રહ્યાં છો. અને હકીકતમાં, પણ GDB માં, ડીબગર અમે સોમવાર પર રજૂ અને ડેન pset 3, રહ્યું છે પરિચય ઘણી વખત તમે હેક્સાડેસિમલ કિંમતો બતાવવા માટે માત્ર તેઓ વધુ હોય છે, કારણ કે દશાંશ અથવા બાઈનરી કરતાં પરંપરાગત કમ્પ્યુટર્સ વિશ્વમાં. હવે સંદર્ભ માં આ મૂકવા દો. ઘણા તમે આ યાદ શકે છે શું આવ્યા છે, જે અહીં શું છે? વિસ્ટા, તેથી પણ પહેલાં કરતાં કે, વિન્ડોઝ એક્સપી આ પ્રથમ હતી. તેથી આ એક સુંદર લેન્ડસ્કેપ છે. અને હકીકતમાં, તમે online-- આસપાસ થેલી, કોથળી જો હું તે વિકિપીડિયાનો લેખ છે લાગે છે, જેમાં કોઈને ખૂબ આશ્ચર્યજનક બહાર ગયા મળી વિશ્વમાં આ સ્થાન સુયોજિત તેના અથવા તેણીના કેમેરા ચોક્કસપણે અધિકાર સ્થળ અને આજે જેવા લાગે છે, પરંતુ તે બરાબર એ જ સેટિંગ છે. આ છબી છે, જોકે, એક ફાઈલ છે બંધારણમાં કહેવાય બીટમેપ, બી એમ પી. અને અમે એક સુપર લેવા જઈ રહ્યાં છો અર્થ એ થાય કે શું ઝડપી નજરથી. પરંતુ બીટમેપ માત્ર એક અલગ રીત છે રજૂ ઈમેજો હજુ પણ પિક્સેલ્સ ઉપયોગ 0s અને 1 સે, આખરે. પરંતુ ઝડપી નજરમાં, તે છે વધુ રસપ્રદ સહી ફાઈલ શરૂઆતમાં. તે માત્ર ત્રણ નથી બાઇટ્સ બદલે છે બાઇટ્સ દાખલાની એક સમગ્ર ટોળું એટલે કે પૂર્વનિર્ધારિત છે. હમણાં પૂરતું, ક્યાંક માં એક બીટમેપ છબી પ્રથમ થોડા બાઇટ્સ આ માપ હોઈ ચાલે છે છબી, ઇમેજ પહોળાઈ, છબી ઊંચાઇ, જેથી ઉપયોગી મેટાડેટા, જો તમે કરશે. ઉપયોગી માહિતી ફોટોશોપ અથવા કોઈપણ ગ્રાફિક્સ તમે ઉપયોગ કરી રહ્યાં છો કાર્યક્રમ ખરેખર વિશે કાળજી શકે છે. આ પર તેથી વધુ 4 સમસ્યા સુયોજિત છે, પરંતુ આ કહે છે કે માત્ર છે દિવસ ઓવરને અંતે તમે ઉપયોગ કરી રહ્યો છું બધા ફાઈલ બંધારણો years-- માઈક્રોસોફ્ટ વર્ડ ફાઈલો માટે, નંબર્સ, ફાઇલો, એક્સેલ ફાઈલો, ફાઈલ બંધારણો કોઈપણ નંબર કે જે અમુક હોય શકે જાણીતા ફાઇલ એક્સ્ટેંશન હૂડ નીચે માત્ર 0s અને 1 સે છે. મનુષ્યો નિર્ણય કર્યો છે સંમેલનો શું છે, શું 0s અને 1 સે પેટર્ન પ્રતિનિધિત્વ એક શબ્દ છે, એક એક્સેલ ફાઈલ વિરુદ્ધ ફાઇલ અન્ય ફાઈલ બંધારણો કોઈપણ નંબર વિરુદ્ધ. 4 pset તેથી, તમે એક પડશે તક કે સાથે રમવા માટે. પરંતુ શું કરે છે તે સ્ટ્રક્ટ છે થાય છે. આ હવે ખરેખર એક સરસ જીતે છે માત્ર એક દંપતિ છે, જે માં સી, વધારાના લક્ષણો કે અમે હજુ સુધી જોવામાં આવી છે. તે એક સુંદર નાની ભાષા અને એક છે સી વિશે સરસ સુવિધાઓ એક સ્ટ્રક્ટ છે. હમણાં પૂરતું, જો તમે ચાલો પ્રતિનિધિત્વ કરવા માગે છે તમે એક ચલ છે ઇચ્છતા કહે છે કે કેટલાક કાર્યક્રમ એક વિદ્યાર્થી પ્રતિનિધિત્વ કરે છે. કદાચ તમે કોર્સ લખી હતી નોંધણી કાર્યક્રમ, અથવા કોર શોપિંગ સાધન, અથવા તે કંઈક. સંબંધિત ડેટાને ટુકડાઓ શું છે દિમાગમાં આવે છે કે જે વિદ્યાર્થી માટે? એક વિદ્યાર્થી છે, જેમ કઈ કિંમતો સાથે રજૂ? અરે વાહ? તમે એક વિદ્યાર્થી તરીકે એક નામ છે. એક લાક્ષણિક વિદ્યાર્થી બીજું શું છે? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: તેથી, માફ કરશો. પ્રેક્ષક: ઉંમર. ડેવિડ જે MALAN: એક ઉંમર અથવા જન્મદિવસ સમાન, હા. બીજું શું? પ્રેક્ષક: ID નંબર? ડેવિડ જે MALAN: કદાચ તેથી એક ID નંબર, એક ફોન નંબર, કદાચ એક ડોર્મ, અથવા ઘર, કોલેજ, અથવા તે કંઈક અથવા. માહિતી ટુકડાઓ કોઈપણ નંબર તમે તમારા સંપર્કો યાદી હોય શકે છે એક વિદ્યાર્થી વ્યાખ્યાયિત કરી શકે છે શું છે. અમે કોડ માં, આ કરવા માગતા હતા તેથી જો, અમે આ જેવા સરળ કંઈક કરી શકે છે. અમે તેથી એક કાર્યક્રમ છે શકે છે છે, કહે છે પૂર્ણાંક મુખ્ય (રદબાતલ) કરવા દો. અને હું એક પ્રતિનિધિત્વ કરવા માંગો છો, તો હું હમણાં પૂરતું, પડી શકે છે વિદ્યાર્થી, કે વિદ્યાર્થી માટે નામ કહેવાય શબ્દમાળા, કે વિદ્યાર્થી ડોર્મ કહેવાય શબ્દમાળા, કદાચ પૂર્ણાંક છે કે જે વિદ્યાર્થી માટે ID ને કહેવાય છે. અને હું શબ્દમાળા ઉપયોગ કરું છું, કારણ કે હું cs50.h. પાછા જાઓ અને મૂકી કરવાની જરૂર છે કદાચ હું stdio.h જરૂર જઈ રહ્યો છું. તેથી મને preemptively તે કરવા દો અને હું છું હવે આ student.c કહી રહ્યા અને આ સાચવો. અને હવે હું કંઈક કરી શકો છો આ ચલો સાથે. અને અમે હમણાં જ લખી રહ્યા છીએ કે સ્યુડો કોડ ઇન એક ટિપ્પણી તરીકે, તે રસપ્રદ નથી કારણ કે અમે હવે શું. ઠીક છે, તેથી આ એક કાર્યક્રમ છે કે કોઈક એક વિદ્યાર્થી સંગ્રહ કરે છે. હું તો શું કરવું માંગો છો હું બે વિદ્યાર્થીઓ સંગ્રહ કરવા માંગો છો? તેથી મારી પ્રથમ વૃત્તિ રહ્યું છે એક મિનિટ રાહ જુઓ, બધા અધિકાર હોઇ શકે છે, હું બીજા વિદ્યાર્થી હોય તો હું શા માટે નથી માત્ર શબ્દમાળા નામ 2, શબ્દમાળા ડોર્મ 2 કરવું, પૂર્ણાંક id2. અને અમે ગયા કર્યું છે આ માર્ગ પહેલાં નીચે અને શું લાગે કરવા માટે અમારા ઉકેલ શું હતું એક hackish નકલ પેસ્ટ પ્રકારની હોઈ અહીં કામ? પ્રેક્ષક: પણ દર્શાવે છે. ડેવિડ જે MALAN: અરે વાહ, અમે એક એરે ઉપયોગ કરી શકે છે. અધિકાર આ ખૂબ જ ઝડપથી અતિભારે બની જાય છે. તમે આપખુદ સૉર્ટ હોય છે આ ચલો બધા નામકરણ શરૂ કરો. અને તમે, માનવ, રાખવા માટે હોય છે તે બરાબર NAME2 અનુલક્ષે ટ્રેક dorm2 સાથે id2 સાથે અનુલક્ષે છે. તે માત્ર એક વાસણ બની જાય છે. તેથી તે ઘણો સરળ બને છે થોડા અઠવાડિયા પહેલા થી યાદ, માત્ર કહેવાય શબ્દમાળા નામો કર્યા અને કદાચ અમને તે ત્રણ આપે છે. અને પછી કદાચ અમારી પાસે શબ્દમાળા ડોર્મસ છે અને તે ત્રણ, અથવા સતત સાથે, આઇડી પૂર્ણાંક અને તે ત્રણ છે. પણ હવે આ લાગે છે થોડી sloppy, અધિકાર. અમે હજુ સુધી વિદ્યાર્થીઓ અને વિશે વાત કરી રહ્યાં છો હું ખરેખર નીચા સ્તર પર નિવાસ છું અમલીકરણ વિગતો. આ વિદ્યાર્થી એક નામ અને ડોર્મ અને ID છે. શા માટે હું માત્ર એક ચલ જાહેર કરી શકો છો વિદ્યાર્થી કહેવામાં આવે છે અને તે ઓ કૉલ કરો. પછી મેં બીજા એક વિદ્યાર્થી માંગો છો, શા માટે હું માત્ર ટી તે નથી કહેતો. અથવા હું એક સમગ્ર ટોળું માંગો છો વિદ્યાર્થીઓ, શા માટે હું માત્ર નથી હું એક સમગ્ર વર્ગ કહે છે વિદ્યાર્થીઓ, અને તે તેમને ત્રણ છે. અન્ય શબ્દોમાં, હું શા માટે ન આવી શકે કહેવાય મારા પોતાના માહિતી પ્રકાર સાથે વિદ્યાર્થીઓ જે અંદર છે એક નામ, એક ID છે ડોર્મ છે, અન્ય ક્ષેત્રો કોઈપણ નંબર છે. અને તે તમને બહાર વળે બરાબર છે કે કરી શકો છો. તેથી સી સ્ટ્રક્ટ કહેવાય લક્ષણ ધરાવે છે. એક ભાષા કે લક્ષણ છે કે અમને બરાબર આ કરવા માટે પરવાનગી આપે છે. હું આગળ જાઓ જાઉં છું અને structs.h ખોલો અમે જોવા માટે જઈ રહ્યાં છો જ્યાં એક વિદ્યાર્થી વ્યાખ્યા બાદ. તે તારણ આપે છે - અને આ એક પણ છે એક ID સંડોવતા એક કરતાં સરળ એક ક્ષણ પહેલા. તમારી સાથે આવવા માંગો છો, તો તમારા ઘરે બનાવેલા માહિતી પ્રકાર, અને પૂર્ણાંક ઉપરાંત, અને ચાર અને , હાજર છે અને આ બધા અન્ય ફ્લોટ તમે શાબ્દિક દ્વારા આમ કરી શકો છો typedef સ્ટ્રક્ટ લેખન, પછી કેટલાક સર્પાકાર કૌંસ, જે અંદર તમે તમે કરવા માંગો છો ચલો યાદી આ નવી વૈવિધ્યપૂર્ણ માહિતી સાથે સાંકળવા એક નામ અને એક ડોર્મ જેવા લખો અને પછી સર્પાકાર કૌંસ પછી તમે નવી માહિતી પ્રકાર માટે એક નામ આપે છે. તેથી, ઉદાહરણ તરીકે, વિદ્યાર્થી. અને હવે શું આ વિશે સરસ છે કે છે અમે અનુરૂપ કોડ જોવા હોય તો, પ્રથમ સંમેલન, ના, આ મૂકી છે ફાઇલ કહેવાય કંઈક ડોટ એચ માં, અમે હોય છે જે એક હેડર ફાઈલ, ખૂબ જાતને ઉપયોગ કરવાનું શરૂ કર્યું. પરંતુ અમે શરૂ કરવા જઈ રહ્યાં છો હવે તદ્દન થોડી ઉપયોગ કરે છે. અને અમે આ સાથે શું કરી શકો, આખરે, કોડ આ થોડા લીટીઓ બરાબર છે કે જાહેર છે ડેટા પ્રકાર, એક વિદ્યાર્થી. અને હવે આપણે તેનો ઉપયોગ કરીએ. હવે હું જવા માટે જઇ રહ્યો છું ફાઇલ structs1.c કહેવાય છે. અને એક પર એક નજર કરીએ અહીં બહુ ઓછા લક્ષણો છે. તેથી અહીં સામગ્રી છે મોટે ભાગે પરિચિત છે, અને અમે પડશે શું નથી પાછા આવો માત્ર એક ક્ષણ પરિચિત. અલબત્ત આ મારી પોતાની સમાવેશ થાય છે તેમજ નવા છે, જે હેડર ફાઈલ, 3 pset, જ્યાં સિવાય, રિકોલ, અમે helpers.h છે. તેથી જો તમે # સમાવેશ થાય છે helpers.h યાદ કરી શકે છે. શા માટે છતાં હું અવતરણ મદદથી છું તેના બદલે કોણ કૌંસ છે? ત્યારે હું તેમને વચ્ચે પસંદ નથી? હું હંમેશા લાગે કોણ કૌંસ વાપરવા માટે. અને પછી, એ બધા અચાનક પર રેખા છ હું ડબલ અવતરણ ઉપયોગ કરું છું. કે શા માટે હોઈ શકે? અરે વાહ? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: તે શું એક વાસ્તવિક છે? પ્રેક્ષક: તે તમારા IDE માં છે. ડેવિડ જે MALAN: અરે વાહ, કે મારા વાસ્તવિક IDE માં છે. અને, કારણ કે જ્યારે IDE પર રહેવું ન જોઈએ કે જે હમણાં જ હું ઉપયોગ કરું છું કે જે એક સાધન છે. તે મારા વર્તમાન છે ડિરેક્ટરી, ખાસ. તેથી structs.h મારી પોતાની ફાઇલ છે જ્યારે IDE માં સ્થાપિત થયેલ નથી, ઓપરેટિંગ સિસ્ટમ પોતે જ, તેના બદલે તે મારા વર્તમાન ડિરેક્ટરીમાં છે. તેથી સંમેલન જો તમે ઇચ્છો તો છે તમારા પોતાના હેડર ફાઈલ સમાવેશ થાય છે, તમે માત્ર ડબલ નો ઉપયોગ. અમે આ બાબત કહી શકું શું 8 વાક્ય, સામાન્ય રીતે કહીએ તો? આ શું છે? # વ્યાખ્યાયિત કંઈક. આ અધિકાર સ્થિરાંકો રજૂ કરે છે? તમે છે કરવા માંગો છો તમારા કાર્યક્રમ કિંમત તમે એક સંપૂર્ણ ઉપયોગ કરે છે વખત ટોળું, તે , તે બહાર અવયવો સંમેલન સારી હેશ પ્રતીક સાથે, તે જાહેર બધા માં, સંમેલન દ્વારા, તે પછી, વ્યાખ્યાયિત તે નથી તેમ છતાં word-- મોટા કડક જરૂરી છે, પરંતુ તે માનવ સંમેલન છે સ્થિરાંકો ઉઠાવે તેઓ બહાર કૂદી કે જેથી તમે જગ્યા visually-- અને પછી તમે કરવા માંગો છો કિંમત કે સતત નામ સમકક્ષ. કોઈ અર્ધવિરામ છે, પરંતુ ફક્ત તમે ત્યાં પેટર્ન અનુસરે છે. તેથી શું હું આ વાસ્તવિક કોડ કરી રહ્યો છું. તેથી આપણે એક નજર કરીએ અહીં મુખ્ય કાર્યક્રમ. 12 લીટી માં હું કારણ કે structs.h સમાવેશ થાય છે, હું હવે જાદુઇ મારા નિકાલ નવી માહિતી પ્રકાર. હું માત્ર પૂર્ણાંક ઍક્સેસ નથી અને ચાર અને ફ્લોટ, અને શબ્દમાળા, અને વાદળી અને અન્ય. હવે હું વપરાશ હોય છે એક વિદ્યાર્થી ડેટા પ્રકાર. 12 લીટી માં, હું બે સંયુક્ત છું તેથી , એક વૈવિધ્યપૂર્ણ માહિતી પ્રકાર અને બે ideas-- ઝાકઝમાળ મદદથી. અને તેથી આ કાર્યક્રમ તો હું ખરેખર આધાર માંગો છો ત્રણ અલગ અલગ વિદ્યાર્થીઓ મારા કાર્યક્રમ માં, હું મને એક ચલ આપે છે ફક્ત કરી શકો છો જેમાં દરેક કહેવાય વિદ્યાર્થીઓ, પ્રકાર વિદ્યાર્થીઓ, છે, જે મારા વૈવિધ્યપૂર્ણ માહિતી પ્રકાર છે. અને, ખાસ કરીને, મને આપી મારા એરે માં તે ત્રણ. તેથી હવે અમે આ કાર્યક્રમ શું કરવું? અહીં માત્ર એક લૂપ વારો માટે છે કારણ કે, 3 0 થી વિદ્યાર્થીઓ ની કિંમત શું છે. હું માત્ર વપરાશકર્તાને પૂછવાની છું મને વિદ્યાર્થી નામ આપે છે. અને પછી વાક્ય 17 માં, અમે મોટે ભાગે પરિચિત વાક્ય છે. અમે અમારા જૂના મિત્ર હોય જમણી બાજુ પર GetString. વાક્યરચના અને શું ભાગ દેખીતી રીતે નવા છે જો તમે પહેલાં સી પ્રોગ્રામ ક્યારેય કર્યું છે, અને સ્ટ્ર્ક્ટ્સ ઉપયોગ ક્યારેય કર્યો છે? અરે વાહ? પ્રેક્ષક: .name. ડેવિડ જે MALAN: .name. પરંતુ આ એક લીપ ખૂબ જ નથી હવે વિદ્યાર્થીઓ હું કૌંસ કારણ કે તમે આઇ મી વિદ્યાર્થી આપે છે. અને તમે ડાઇવ કરવા માંગો છો કે માળખું અંદર, તમે માત્ર એક જ સમય ઉપયોગ કરે છે અને પછી અંદર ચલ ના નામ, કે અંદર મિલકત તમે ઍક્સેસ કરવા માંગો છો. એ જ રીતે, પછી હું પછી પૂછવા તો વપરાશકર્તા મને વિદ્યાર્થી ડોર્મ આપે છે, તમે એ જ રીતે કે સ્ટોર કરી શકો છો અંદર ડોર્મ ચલ શબ્દમાળા કે વિદ્યાર્થી માળખું. અને હવે વસ્તુઓ થોડી ફેન્સી વિચાર. અને આ જોવા જવાનું છે કદાચ ઘણો ખૂબ જલ્દી. પરંતુ તમે pset માં આ અત્યાર સુધી વધુ જોશો 4, તેથી હવે તે માત્ર નજરે દો. તે વાક્ય 23 દ્વારા કે બહાર વળે 38, તમે મને કદાચ કરી રહ્યો છું શું વિચારો છો? હું ટિપ્પણીઓ દૂર કર્યું આજે, પરંતુ આવૃત્તિ માટે ઓનલાઇન કોડ સંદર્ભ બધી ટિપ્પણીઓ છે. હું કરી શકાય શું લાગે છે? પ્રેક્ષક: બધા સાથે ફાઈલ સંગ્રહી રહ્યા છીએ વપરાશકર્તા દાખલ કે માહિતી. ડેવિડ જે MALAN: અરે વાહ, બરાબર, આ એક નવી રીત છે અમે બે જોઈ રહ્યાં છો કે, સી નું બીજું લક્ષણ, જેમાં હું મારા પોતાના ફાઈલો બનાવી શકો છો. આમ અત્યાર સુધી, લગભગ દરેક કાર્યક્રમ તેવા પરચૂરણ ખર્ચ કર્યો તમે Stateless છે. જલદી તે ચાલી કરવામાં આવ્યું છે, કે તે છે. કોઈ મેમરી અથવા તે સ્મરણ છે. સેવ કોઈ ફાઇલ છે. પરંતુ તમે કરવા માંગો છો, તો છે કે ઇનપુટ સેવ એક રમત અથવા એક કાર્યક્રમ જેમ, થયું આ જેમ, તે અમે આમ કરી શકો છો બહાર કરે છે. અને તમે આ વધુ જોવા મળશે 4 pset અને વિભાગમાં. પરંતુ આ વાક્ય 23 અનિવાર્યપણે students.csv તરીકે ઓળખાતી ફાઈલ બનાવે છે. અને તમે પહેલાં આ જોઇ છે શકે છે. જો તમે પહેલાં સીએસ અભ્યાસ ક્યારેય કર્યું હોય તો પણ CSV અલ્પવિરામથી-અલગ પડેલ ચલો છે. તે ખૂબ જ ગરીબ માણસ જેવું છે એક એક્સેલ ફાઈલ આવૃત્તિ, જે તે ખોલી શકાય છે કે જે થાય છે Excel માં અને એપલ નંબર્સ, અને તે પંક્તિઓ અને કૉલમ્સ છે. પરંતુ તે એક માલિકીનું નથી માઈક્રોસોફ્ટ અથવા એપલ જેવી ફોર્મેટ. તે અલગ માત્ર અલ્પવિરામ છે અમે એક ક્ષણ જોઈ શકશો કે કિંમતો. અને માત્ર એક અનુમાન લે છે. ખૂબ જ પર લીટી 23 માં અંતે, મારા બીજા દલીલ કહેવાય આ નવી કાર્ય માટે એફ ફાઈલ ઓપન માટે ઓપન W છે. W શું સૂચવે શકે છે? અરે વાહ? પ્રેક્ષક: તે તમને ફાઈલ લખી દે? ડેવિડ જે MALAN: તે દે તમે ફાઈલ લખો. તેથી ચલો એક દંપતિ છે કે અમે અહીં પ્લગ કરી શકો છો. પરંતુ તમે માત્ર વાંચી કરવા માંગો છો આ ફાઇલ, તે જોવા છે અને મેમરીમાં તમે તે વાંચી માત્ર ભાવ અવતરણ ચિહ્નો પૂરાં કરવાં "આર" વાપરો. તમે લખવા માટે કરવા માંગો છો ફાઇલ, તમે "W" અવતરણ ચિહ્નો પૂરાં કરવાં ભાવ ઉપયોગ કરે છે. પણ ઉમેરી છે અને અન્ય વસ્તુઓ એક દંપતિ તમે હાલની ફાઈલો સુધારવા માંગો છો. હવે આપણે આ જોઈ રાખવા જઈ રહ્યાં છો 24 વાક્ય વસ્તુ હોય, તો પછી અમે પાછા આવો પડશે. NULL, તે બહાર વળે છે, ખાસ કિંમત છે કે જે અમુક કાર્યો દ્વારા પરત કરી શકાય છે કંઈક wrong-- ગયો છે, તો ફાઇલ અસ્તિત્વમાં નથી, તો તમે મેમરી રન આઉટ છે, તો અન્ય ભૂલો અથવા એક ટોળું. પરંતુ હવે માટે, ચાલો ફક્ત આ છે કે ધારે દો માત્ર પરંપરાગત ભૂલ ચકાસણી છે. અહીં 26 લીટી માં, હું વારો છું 0 થી મારા તમામ વિદ્યાર્થીઓ પર 3. અને આ પ્રકારની પ્રકારની છે એક નવી કાર્ય છે, fprintf, પરંતુ માત્ર એક અનુમાન લે છે. Printf ફક્ત પ્રિન્ટ હોય તો ફોર્મેટ સ્ટ્રિંગ, fprintf કદાચ શું અર્થ છે? પ્રેક્ષક: ફાઇલ પર છાપો. ડેવિડ જે MALAN: પ્રિંટ એક ફાઈલ ફોર્મેટ સ્ટ્રિંગ. કે જે વધારાના શું છે એફ અર્થ ફાઈલ છે. અને નવા પ્રથમ દલીલ હોઈ શકે છે તમારી ફાઈલ રજૂ કરે છે ચલ. પછી અમે માત્ર એક બંધારણ છે માત્ર printf જેવા શબ્દમાળા. અને પણ આ છતાં વાક્યરચના આ માત્ર નવું છે આ વિદ્યાર્થી નામ પ્લગ અર્થ થાય છે, વિદ્યાર્થી ડોર્મ માં પ્લગ, અને પછી fclose સાથે, ફાઈલ બંધ કરો. અને તે પછી આ નવું છે lastly-- અને અમે આ માટે પાછા આવો પડશે હું મુક્ત છું long-- પહેલાં કારણો માટે વિદ્યાર્થી કે ત્યાં ઉપર થયું. પરંતુ અમે પાછા આવો પડશે કે long-- પહેલાં કારણ કે GetString છે કેવી રીતે છે ખરેખર હૂડ નીચે કામ કરે છે. તેથી આપણે અહીં એક ઝડપી નજર કરીએ. હું મારા ડિરેક્ટરીમાં LS લખો, તો હું નથી કે નોટિસ , students.csv તરીકે ઓળખાતી ફાઈલ છે માત્ર નથી ત્યાં, અસ્તિત્વમાં નથી. હવે હું આ કાર્યક્રમ કમ્પાઇલ તેથી જો, , સ્ટ્ર્ક્ટ્સ 1 બનાવે છે. / સ્ટ્ર્ક્ટ્સ 1, અને હું આગળ જાઓ અને લખો જાઉં છું યેલ અંતે બર્કલે માં રહે છે Andi. અમે રોબ પાસે જઈ રહ્યાં છો, જે આ દિવસોમાં થાયર રહે છે. અને જ્યાં સાથે આવો છે, મને લાગે છે, મારિયા, માથેર છે જો હું યોગ્ય રીતે યાદ છે. તેથી કંઈ થાય તેમ લાગે છે. પરંતુ હવે હું ls લખો તો, students.csv છે. ચાલો આગળ અને ઓપન students.csv જવા દો. આ ફરીથી ખૂબ જ છે હલકો ફાઈલ ફોર્મેટ. પરંતુ હું માત્ર એક પ્રણાલી અપનાવી કર્યું કે હું અહીં બે પંક્તિઓ અને કૉલમ્સ છે. પ્રથમ સ્તંભ છે લોકો પ્રથમ નામો. બીજા સ્તંભ વિદ્યાર્થી છે ડોર્મ, અથવા કોલેજ, અથવા ઘર, અથવા whatnot. અને હવે હું આ સાચવી લીધો છે કાયમી ફાઈલ છે. તેથી તે છે કે જે બધી રસપ્રદ નથી. પરંતુ આ માત્ર એક આધાર પથ્થર હવે માહિતી હોવાના માટે સમર્થ હોવા માટે કાયમ. તેથી હવે શું વધુ અમે કરી શકો છો માતાનો જોવા દો આ અને અન્ય લક્ષણો સાથે કામ કરે છે. પરંતુ પ્રથમ, કોઈપણ પ્રશ્ન છે? તે ઘણો હતો, અને તે ઝડપી હતી. પરંતુ તમે ઘણો જોશો 4 pset વધુ, તેમજ. અરે વાહ? પ્રેક્ષક: એક માર્ગ છે તે ફાઈલ નામો ઉમેરી રહ્યા છે ચાલુ? ડેવિડ જે MALAN: ગુડ પ્રશ્ન. ચાલુ રાખવા માટે એક માર્ગ છે તે ફાઈલ નામો ઉમેરી રહ્યા છે? હા. અને હકીકતમાં, તમે અંત તો અપ ફાઈલ ફરીથી ખોલીને તમે ભાવ ઉપયોગ કરશે અવતરણ ચિહ્નો પૂરાં કરવાં "એ" ઉમેરો માટે, જે માત્ર એક નવી લાઇન ઉમેરો કરશે, એક નવી લાઇન ફરીથી અને ફરીથી, બરાબર. સારા પ્રશ્ન. અન્ય પ્રશ્નો છે? અરે વાહ? પ્રેક્ષક: તમે ચાલી તો કાર્યક્રમ ફરીથી હમણાં, તે માટે નામો ઉમેરી રહ્યા રાખવા કરશે ફાઇલ અથવા તે એક નવી ફાઇલ ખોલો છો? ડેવિડ જે MALAN: આહ, સારો પ્રશ્ન. તમે ફરીથી અધિકાર કાર્યક્રમ ચાલી હતી, તો હવે, કદાચ નવા નામો માં ટાઇપ, તે ફાઈલ ઉમેરો કરશે અથવા ફાઇલ પર ફરી લખશો? બાદમાં, હું છું કારણ કે ઉમેરો લેબલને સ્થિતિને વાપરી રહ્યા નથી. અને હું માત્ર અકારણ છું કારણ કે લખવા માટે ફાઇલ ખોલીને, તે માત્ર ફાઇલ પર ફરીથી લખી રહ્યું છે. તેથી હું ખરેખર કંઈક ઉમેરવા શું કરવાની જરૂર છે છે, હું ખરેખર એક લાંબા ગાળાના હોય માંગો છો તો ડેટાબેઝ. હવે CSV પણ, પ્રમાણિકપણે, ઉપયોગી છે માટે જેમ તમે છો તો writing-- અને અમે આખરે આ જોશો પછી જ્યારે સત્ર માં અમે અન્ય હેતુઓ માટે CSVs ઉપયોગ કરે છે. તમે બધા લોકોને સંગ્રહ કરવા માંગો છો જે, કેટલાક ઘટના માટે રજીસ્ટર કરેલ છે અથવા તમારા વિદ્યાર્થી માટે સાઇન અપ જૂથ, અથવા તે કંઈક, આ પ્રકારની ડેટા સ્ટોર બંધારણ સુપર અનુકૂળ છે. શાબ્દિક કારણ કે, હું તો આ ફાઈલ ડાઉનલોડ કરવા માટે હતા. હું double-- શકે છે અને ચાલો ખરેખર આ પ્રયાસ કરીએ હું અહીં Excel અથવા નંબર્સ હોય છે. હું જમણી ક્લિક કરો જાઉં છું અથવા મારા ફાઈલ નિયંત્રણ ક્લિક કરો. ઓહ. અધિકાર ક્લિક કરો અથવા મારા ફાઈલ નિયંત્રણ ક્લિક કરો. પર આવે છે, મારા માઉસ સહકારથી નથી. હું જાઉં છું Download-- તેથી અહીં બધી ફાઈલો ડાઉનલોડ માત્ર જેથી હું આ એક પડાવી લેવું કરી શકો છો. અને આ કામ કરે છે જો માતાનો જોવા દો students.csv-- પ્રથમ વખત હું સક્રિય છે. હવે તેઓ મારા સંપર્કો જોવા માંગો છો. હવે, હું રજીસ્ટર કરવા માટે જરૂર છે. તે CSVs વાપરવા માટે કેવી રીતે સરળ જુઓ? હા, તે તારીખ સુધી રાખો. ઠીક છે, હવે અમે વર્ગ માટે તૈયાર છો. ઓહ, ઠીક છે, નવું શું છે? ઠીક છે, બંધ કરો. કે જાદુઈ હતી. ઠીક છે, હવે અમે અપડેટ હોય છે. અને હવે, તે ભૂલી ગયા છો શું હું મૂળ ખોલી ફાઇલ, પરંતુ ત્યાં a-- અમે શું જાઓ. ઠીક છે, તેથી હવે અમે એક એક્સેલ ફાઈલ છે. આભાર. ઠીક છે, હું કર્યું તેથી શું સરળ ભાગ હતો. અલબત્ત હું પૂર્વ સ્થાપિત કરી શકે છે એક્સેલ, અથવા નંબરો, અથવા ગમે તે કાર્યક્રમ. પરંતુ આ કારણ કે સરસ છે, હવે હું કામ કરી શકે છે પ્રમાણભૂત બંધારણમાં માં માહિતી. તેથી હવે દો સંદર્ભ અમે બોલ છોડી જ્યાં સ્વિચ શરૂ કરવા માટે હતી, જે છેલ્લા સમય, તાલીમ વ્હીલ્સ લઇ બોલ. પરંતુ પ્રથમ, તમે ન હતી આ અગાઉ બપોરના જોવા ફરી આગ અહીં શું થઈ રહ્યું છે અને ન્યૂ હેવન માં કેમ્બ્રિજ, સિતાર આઇસ. શક્ય એટલું જલદી CS50s વેબસાઇટ પર સાઇન ઇન કરો CS50 વિદ્યાર્થીઓ અને સ્ટાફ સાથે જોડાવા માટે. તેથી અમે તાલીમ વ્હીલ્સ લીધો સોમવારે બંધ નીચે પ્રમાણે શબ્દમાળા જાહેર કરવામાં આવ્યું છે કેટલાક સમય માટે CS50s પુસ્તકાલય. તે માટે પરવાનગી આપે, કારણ કે તે સારું છે અમને હોવાથી ચલો વિશે વાત કરવા માટે સંપૂર્ણ શબ્દો અને વાકયો અને વધુ. પરંતુ તે અસ્તિત્વમાં નથી શબ્દમાળા બહાર કરે છે. કે જે હમણાં જ એક પર્યાય, અથવા ઉપનામ છે, અમે કંઈક માટે બનાવેલ છે કે ખરેખર થોડી વધુ છે ટેકનિકલ ચાર રચે છે * કહેવાય છે. અને ખરેખર, અમે એક ઉદાહરણ જોવા મળી હતી સોમવારે એક કાર્યક્રમ કે અમે અપેક્ષા તદ્દન તરીકે વર્તે ન હતી. આ સરખામણી-0, ફાઈલ હતી. અને જો, કે તુલના -0 યાદ હું સોમવારે કાર્યક્રમ પુનઃકમ્પાઈલ અને ચલાવવા-0 સરખાવવા અને મોમ લખો ફરી લોઅરકેસ માં લોઅરકેસ, અને મોમ. આ કાર્યક્રમ હું આગ્રહ વિવિધ વસ્તુઓ લખો પણ મોમ, બધા છતાં લોઅરકેસ, દૃષ્ટિની સમાન છે. તેથી ટૂંકા જવાબ શું હતો કમ્પ્યુટર વિચારે શા માટે તે બે શબ્દમાળાઓ અલગ છે? અરે વાહ? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: અધિકાર. તેથી, મોમ, પ્રથમ વખત હું આવી રહી છે, તે લખો મારું કમ્પ્યુટર માં ક્યાંક સંગ્રહિત મેમરી પરંતુ એક અલગ સ્થાન બીજી વખત કરતાં હું Mom લખો. હવે તે ચોક્કસપણે ઑપ્ટિમાઇઝ કરી શકે છે. કમ્પ્યુટર સ્માર્ટ હોઈ શકે છે અને હેય, આ બે શબ્દમાળાઓ ખ્યાલ તેઓ સમાન છો. મને redundantly તેને સંગ્રહવા ન દો. પરંતુ એન્જીનિયરિંગ કે નથી ઓપ્ટિમાઇઝેશન તમે તેમને કહી જ્યાં સુધી. તેથી, મૂળભૂત રીતે, તેઓ છો માત્ર અંત રહ્યું મેમરી બે અલગ અલગ સ્થળોએ. અને તેથી, જ્યારે વધુ સ્પષ્ટ કરવા અમે બે શબ્દમાળાઓ સરખામણી પ્રથમ તરીકે ઓળખાતું હતું એસ, બીજા તરીકે ઓળખાતું હતું ટી, ખાસ હું શું હતું વાક્ય પર 13 અહીં સરખામણી? યાહ. પ્રેક્ષક: તે મેમરીમાં સ્થળ છે ચલ માટે નિર્દેશ કરશે. ડેવિડ જે MALAN: બરાબર છે, હું હતો મેમરી સ્થળ સરખામણી કે તે ચલો પર ધ્યાન. તેથી ખાસ કરીને, જો મોમ ખાતે કરવામાં આવી હતી બાઇટ નંબર 1, અને 2, અને 3 અને 4-- કારણ કે બેકસ્લેશ યાદ 0 ઓવરને અંતે બધી રીતે પ્રયત્ન કરવાની જરૂર છે. અને મોમ, એમ ઓ એમ અન્ય ઉદાહરણ છે, સરનામું 10, 11, 12, અને 13 ટકા હતો. હું 1 સરખામણી કરવામાં આવી હતી, તે સરનામું મેમરી કે સ્થાન, 10 સામે છે, જે છે દેખીતી રીતે જ નથી. 1 થી 10 નથી. તેથી આ કે સરસ છે તે ખૂબ સરળ છે. પરંતુ તે ત્યાં સુધી સમસ્યારૂપ છે અમે શબ્દમાળાઓ સરખાવવા માટે લાગતું નથી કરી શકો છો. તેથી fundamentally-- અને આ નીચા સ્તરે, તમે અમલ કરવા ઇચ્છતા હોય તો એક કાર્યક્રમ સરખાવવા માટે બે અલગ શબ્દો કે વપરાશકર્તા ગુણવત્તા માટે લખ્યો છે તેઓ ચાર રચે અપ લાઇન કરવા માત્ર સામાન્ય અર્થમાં ઘરનાં પરચૂરણ કામો, અમે શું, દેખીતી રીતે કરવા માટે જરૂરી છે? તે માત્ર પૂરતી નથી તે બે સરનામાં પર દેખાય છે. અમે શું કરવાની જરૂર છે? અરે વાહ? પ્રેક્ષક: દ્વારા ફરી વળવું શબ્દમાળા [અશ્રાવ્ય]. ડેવિડ જે MALAN: અરે વાહ, ચાલો શબ્દમાળા દ્વારા ફરી વળવું. માતાનો લૂપ, જ્યારે લૂપ માટે ઉપયોગ દો, અથવા તમારી સાથે સૌથી વધુ આરામદાયક છો ગમે. અને અમે ક્યાંક બે શબ્દમાળાઓ મળી છે તો યાદમાં, દરેક માતાનો જોવા દો પ્રથમ અક્ષર, પછી દરેક બીજા છે પાત્ર, પછી ત્રીજા, અને ચોથા, અને પાંચમા અમે હિટ સુધી શું ખાસ સંત્રી કિંમત? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: અરે વાહ, આ બેકસ્લેશ શૂન્ય, ક્યાં શબ્દમાળા માં જે બિંદુએ અમે તે છે નક્કી કરી શકો છો. અમે દરેક એક અક્ષર મેળ ખાતી છે? જો નહિં, તો ખોટા આવો. જો આમ હોય, સાચું આવો. અને તેથી કે શું આ આવૃત્તિ બરાબર છે કાર્યક્રમ તુલના-1.c કરે છે. તે સમાન છે અમે શું કે હું કરેલા સિવાય સોમવાર અંતે જોવામાં છતાં શબ્દ શબ્દમાળા છુટકારો મેળવેલ કે બધા કોઈ કાર્યાત્મક impact-- છે હવે હું શું કરી રહ્યો છું દૂર છે કેટલાક દ્રશ્ય તાલીમ વ્હીલ્સ, પરંતુ સ્પષ્ટ જોવા માટે કે ઓ અને ટી સરનામાઓ છે. અને તે શું તારો ફૂદડી રજૂ એક સરનામું અન્યથા ઓળખાય છે, વધુ ટેકનિકલી નિર્દેશક છે. તેથી હું ઓ જાહેર કરે છે ત્યારે લાઈન 9 અને કોલસો બનાવો * ઓ કહે છે, કે મને શબ્દમાળા આપે અર્થ એ નથી. કે મને જેની ચલ આપી અર્થ એ થાય જીવનનો હેતુ એક સરનામું સ્ટોર છે. હું મૂકવા માટે વિશે છું તેને એક શબ્દમાળા સરનામું. અને ખરેખર, GetString હોઈ સ્પષ્ટ, શબ્દમાળા પાછા નથી. તે મમ્મીનું પાછા નથી બેકસ્લેશ શૂન્ય, સે દીઠ. ખાસ શું છે GetString નથી અને ચોક્કસપણે પાછા? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: એક સરનામું પ્રથમ અક્ષર સરનામું કેટલાક શબ્દમાળા માં મેળવેલ છે. અને તેથી હવે અમે જોઈ રહ્યાં છો ફરી એક ખાસ શબ્દ. અને, હું આ અગાઉ જશ આપ્યો હતો. આ સારી રીત હોઈ ચાલે છે આપણે હવે ફરીથી અને ફરીથી જોશો કે. મને લાગે છે કે તેની ખાતરી કરવા માટે ચકાસણી છું ઓ નલ નથી અને ટી નલ નથી. ખરેખર મારા પર આધારિત છે કારણ ઝડપી ઉલ્લેખ અગાઉ, GetString નથી આપે તો અર્થ શકે એક સરનામું, પરંતુ ફરીથી, કે જે એન યુ એલ એલ, કેટલાક ખાસ કિંમત છે? પ્રેક્ષક: ભૂલ. ડેવિડ જે MALAN: તે એક ભૂલ છે. કંઈક ખોટું થયું. અને શું સામાન્ય ખાસ કરીને થાય છે શકે છે strings-- જેની સાથે હોઈ શકે છે advance-- અજ્ઞાત લંબાઈ કદાચ એન્જીનિયરિંગ ' મેમરી બહાર, કદાચ તમે આવા ટાઇપ લાંબા શબ્દ અથવા વાક્ય અથવા જેમ કે વિશાળ નિબંધ પેસ્ટ માત્ર પૂરતી મેમરી છે. અને તેથી GetString પરત ન કરી શકે સમગ્ર વસ્તુ ના સરનામું, તેથી તે માત્ર કંઈ આપે છે. અને તે એક ભૂલ થયું છે કહે છે ખાસ નલ કિંમત પરત દ્વારા. તેથી તે વાત કરવા માટે, શૂન્ય સરનામું છે. હવે તે બહાર વળે સી સાથે આવે છે કે પુનરાવૃત્તિ કરે છે કાર્ય. અમે સાથે આ અમલ કરવાની જરૂર નથી લૂપ અથવા જ્યારે લૂપ જાતને માટે. અમે એક કાર્ય ઉપયોગ કરી શકો છો સંક્ષિપ્તમાં કહેવાય છે, જેની કોમ્પ જગાડવો, અથવા શબ્દમાળા તુલના જીવનનો હેતુ બરાબર તે કરવા માટે છે. તમે તેને બે પોઇન્ટર, બે સરનામાં આપે છે, અને તે સરનામાં પર જશે અને પછી પત્ર તુલના ગુણવત્તા માટે અક્ષર માટે પત્ર, સાચું શું છે ત્યારે જ બંધ? તર્ક કોમ્પ જગાડવો જોઈએ માત્ર સ્પષ્ટ વારો હોઈ બંધ? તે એક બેકસ્લેશ 0 બનાવ્યા ત્યારે ક્યાં શબ્દમાળા છે, કે જે સમયે તે નક્કી કરી શકો છો બધું, મેળ ખાતી છે કે એક ફરક છે? અમે હવે આ ચલાવો અને તેથી જો, આનો પ્રયાસ કરો અમારા ઓછી કેપિટલાઈઝેશન રમત તેથી તુલના -1, ./compare-1 બનાવે છે, અને લોઅરકેસ બંને સમય Mom લખો. હવે તે જ વાત છે. અને હું સાથે તેને ફરીથી કરવા હોય તો લોઅરકેસ અને પછી કદાચ મોટા. હવે તે ખરેખર અલગ ઉપલા અને લોઅરકેસ વચ્ચે. તેથી કે જે બધી હાર્ડ અથવા જાદુઈ છે, પરંતુ તે હવે સમજાવે છે શું હૂડ નીચે ચાલી રહ્યું છે. તેથી વધુ અમે બહાર કાઢી શકો છો શું પાઠ આ પ્રકારની છે? તેથી આપણે આ પર એક નજર કરીએ. હું આગળ જાઓ અને લખવા જઈ રહ્યો છું ઝડપી કાર્યક્રમ અહીં કોપી 0 કહેવાય છે. અને હવે આપણે આગળ અને ખરેખર જવા દો ચાલો કોપી 0 આ કરવા દો હું અહીં મળી છે તે પર એક નજર. હું પ્રથમ વપરાશકર્તા કહેવું કંઈક કહે છે. પછી હું એક શબ્દમાળા વિચાર અને હું તે સંગ્રહિત. ઓ બરાબર તો પછી હું તપાસ નલ સમકક્ષ ફક્ત 1 આવો. તેથી આ માત્ર પ્રમાણભૂત ભૂલ ચકાસણી છે. રસપ્રદ કંઈ થયું છે. અને હકીકતમાં, અમે ભૂલ છુટકારો મળે તો ચકાસણી, આ અઠવાડિયે 1 કોડ જેવી લાગે છે આ ક્ષણે. પરંતુ હું એક વિચાર શરૂ કર્યું તે વિશે સારી થોડી. હવે લીટી 16, એક સપ્તાહ પહેલાં, કદાચ પણ થોડા દિવસ અથવા મિનિટ પહેલા તમે વાક્ય 16 કહી શકે એક ચલ કહેવાય ટી બનાવવા અને નકલ તેને છે. અને તે સંપૂર્ણપણે છે વાજબી takeaway. પરંતુ હવે વધુ ચોક્કસ હોય છે. રેખા 16 માં શું થઈ રહ્યું છે? શું નકલ મેળવવામાં આવે છે જમણેથી ડાબી? અરે વાહ? પ્રેક્ષક: ટી ઓ એક સરનામું રહ્યો છે? ડેવિડ જે MALAN: બરાબર, ટી ઓ સરનામું રહ્યો છે. હું જવા જો તેથી, હવે સ્પષ્ટ થઈ પાછા અગાઉ ઉદાહરણ અને હું લખ્યો કર્યું આ વસ્તુ બહાર કાઢે છે. અને હું લખ્યો છે તે વાહ અહીં એસ છે, અને અહીં હું ક્યાંક માં ટાઇપ કર્યું છે તે મેમરી, મોમ અને પછી એક બેકસ્લેશ મારા માટે ઉમેરવામાં આવ્યું છે કે 0. શું હું અહીં સંગ્રહિત, યાદ આ સ્થાન 1, 2, 3, 4 પર છે આ એસ હાલમાં શું છે. વાક્ય પર 16 તેથી, જો હું મને આપી કહે છે બીજા ચલ કહેવાય ટી અને સ્ટોર ઓ ની કિંમત પર શું અહીં સંગ્રહિત નહીં મોમ નહીં પરંતુ તેના બદલે માત્ર નંબર 1. અમે આ કાર્યક્રમ આગળ જુઓ, તેથી જો હવે, શું થવાનું છે? તેથી ત્યાં છે કે નોટિસ આ કાર્ય તમે કદાચ સીઝર માટે અમુક સમય પહેલા આ ઉપયોગ કર્યો છે, અથવા Vigenere, અથવા કદાચ તમામ નથી. હું છું, મારા printf સાથે દાવો નકલ ટી ઉઠાવે જઈ રહી છે. પ્રથમ વાક્ય 19, ઝડપી સેનીટી માં , ટી strlen તપાસમાં લંબાઈ તપાસો. હું નથી માંગતા કારણ કે કંઈક રોકડી કરવા માટે પ્રયાસ જો ત્યાં કોઈ શબ્દમાળા છે. વપરાશકર્તા માત્ર Enter દબાવો તો, રોકડી કરવા માટે કંઈ નથી. તેથી હું રેખા 21 કરવા માંગો છો નથી. તેથી રેખા 21 અક્ષરો છે જે દેખીતી રીતે પત્ર, ટી? પ્રેક્ષક: M? ડેવિડ જે MALAN: તે જુએ છે જેમ તે નકલ કે જે એક છે? પ્રેક્ષક: એમ. ડેવિડ જે MALAN: ઉહ, એમ. ઠીક છે, પ્રથમ એમ, જેથી હું છું કે નોટિસ કારણ કે , toupper પસાર જે તમે તેને ક્યારેય ન જોઈ હોય તો તે છે માત્ર એક કાર્ય તેની ઇનપુટ તરીકે ઉઠાવે છે. ટી કૌંસ શૂન્ય આપી અર્થ એ થાય મને ટી શૂન્ય પાત્ર. અને તેથી આ કેવી રીતે કરે છે ચિત્ર બદલો, સ્પષ્ટ કરવા? શું ફરીથી લખી અથવા બદલી કરવા માટે જરૂર છે ઓ માટે માન અને ટી અને Mom સાથે બેકસ્લેશ શૂન્ય. AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: અરે વાહ, તેથી આ એક અહીં ફક્ત છે આ ઠીક રહ્યો બદલાઈ વિચાર કરવાની જરૂર છે મૂડી એમ બદલાઈ મેળવવા જરૂરી છે. પરંતુ હવે, પાછળથી જોવા કાર્યક્રમ, હું છાપે તો હું અહીં સાફ તરીકે એસ અને ટી, શું વોચ ઓ અને ટી બહાર છાપવા આમ થવાનું. તેથી કોપી 0, ./copy-0 બનાવે છે. મને આગળ વધો અને લખો બધા લોઅરકેસ મોમ છે. નોંધ બંને મૂળ અને નકલ મૂડીગત કરવામાં આવી છે. શા માટે? વેલ, S અને T બંને તરફ ઇશારો છે, જો તમે કરશે, મેમરી જ Chunk. અને પ્રમાણિકપણે, આ મેળવવામાં આવે છે ખરેખર હકીકત uninteresting-- અમે અહીં સરનામું શૂન્ય ઉપયોગ કરી રહ્યાં છો છે. હું તેનો અર્થ, હું ખરેખર પડી નથી જ્યાં સામગ્રી મેમરી છે. માફ કરશો હું ખૂબ ખૂબ દૂર રહ્યો છું. પરંતુ હું ખરેખર પડી નથી વસ્તુઓ મેમરી છે જ્યાં. અને તેથી, ખરેખર શું પ્રોગ્રામરો વિશે વિચારો હોય છે તમે વાત એ છે કે જ્યારે એક સરનામું, અથવા એક નિર્દેશક, તે મેમરી છે કે જ્યાં જે ધ્યાન આપતા. તે જો હું પડી નથી બાઇટ એક અથવા એક અબજ. હું ફક્ત આ છે કે જે કાળજી ચલ અસરકારક છે મેમરી કે ભાગ તરફ સંકેત. અને તેથી, અત્યારથી બદલે ગલ્લાંતલ્લાં મનસ્વી મેમરી સરનામાંઓ પર, ચાલો માત્ર પોઇન્ટર ડ્રો શરૂ તીર તરીકે પોઇન્ટર, તરીકે. તેથી અને ટી ખરેખર શું છે છે આ કાર્યક્રમ મુજબ, હું ટી બનાવવામાં કેવી રીતે કારણ કે તે માત્ર બે અલગ ચલો છે મેમરી જ Chunk નિર્દેશ કરતી. તેઓ આવે છે જ્યાં અમે કાળજી નથી. તેથી અમે એબ્સ્ટ્રેક્ટ દૂર કે વિગતવાર કરી શકો છો. તેથી હું કેવી રીતે આ ઠીક નથી? હું નકલ ની આવૃત્તિ લખવા માંગો છો, તો કાર્યક્રમ કે ખરેખર નકલો શબ્દમાળા અને માત્ર અક્ષરે નકલ, માત્ર તર્ક, શું મળ્યું છે એક હોઈ અમારા ઉકેલ માટે ઘટક? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: અમે શું જરૂર છે? પ્રેક્ષક: મેમરી Chunk. ડેવિડ જે MALAN: અમે જરૂર મેમરી અન્ય ભાગ, અધિકાર? અમે નથી જાણતા કેવી રીતે જરૂરી છે, હજુ સુધી તે કરું છું. પરંતુ હું પ્રકારની જેથી થાય કરવાની જરૂર કે નીચલા કિસ્સામાં મૂળ મોમ મેમરી કે વધારાની Chunk માં અંત થાય છે. અને પછી હું નકલ બદલો છો, ત્યારે હું અહીં આ નકલ બદલવા માંગો છો નથી. હું બદલે માત્ર આ બદલવા માંગો છો નકલ કે જેથી મૂળ યથાવત છે. તેથી, ચાલો આપણે આવું કરી શકે છે તે જોવા દો. નકલ-1, પહેલેથી જ છે કે જે ટિપ્પણી તોડવામાં આવી, પરંતુ ઓનલાઇન ટિપ્પણી થયેલ છે. અમે તેના બદલે નીચેના આ શું લાઇન્સ સમાન છે, મને એક શબ્દમાળા વિચાર અને તે ઓ કૉલ કરો. પરંતુ હવે આપણે આપણા મોટા ભાગના એક જોવા દો જટિલ પરંતુ જટિલતા ના છેલ્લા ક્ષણભર માટે, લાઇન 16 બરાબર કરે છે. આ સાથે તમારા આરામપ્રદ તેથી જો ચિત્ર અમે માત્ર drew-- મને મેમરી એક નવી ભાગ આપી તેને બધું નકલ, અમે કોડ કે અનુવાદિત જુઓ કે કેવી રીતે કરીએ. તો રેખા 16, ડાબી બાજુ પર, ચાર રચે છે * ટી અહીં મને આ બોક્સ આપે છે. તે બધા કરે છે. જમણી બાજુ પર, એમ alloc, અથવા malloc છે, સુપર ફેન્સી મેમરી ફાળવણી છે, માત્ર કહીને એક ભેદી રીતે મને મેમરી એક ભાગ આપે છે. અમે કેટલી મેમરી જરૂર છે? વેલ, એક મોટી અભિવ્યક્તિ પ્રકારની છે. પરંતુ તે અહીં કહે છે તે જોવા દો. તેથી આ, અલબત્ત, આપે છે મને ઓ શબ્દમાળા લંબાઈ. તેથી, મોમ તે કેવો હોવો જોઇએ? તેથી માત્ર ત્રણ, અધિકાર? મોમ ત્રણ અક્ષરો છે. તમે ગણતરી નથી બેકસ્લેશ શૂન્ય જ્યારે તમે તે એક શબ્દમાળા લંબાઈ વિશે વાત ખરેખર માનવ દૃશ્યમાન અક્ષરો. જેથી મોમ, જેથી આ 3 મને આપે છે. પરંતુ હવે હું 1 ઉમેરીને છું, એક મિનિટ રાહ જુઓ. શા માટે હું ખરેખર કરવા માંગો છો 4 બાઇટ્સ અને માત્ર 3 ફાળવવા? અરે વાહ? પ્રેક્ષક: સંત્રી કિંમત છે? ડેવિડ જે MALAN: બરાબર છે, કે સંત્રી કિંમત છે. બેકસ્લેશ શૂન્ય, હું 4 બાઇટ્સ કુલ જરૂર છે. તેથી હું લંબાઈ જરૂર શબ્દમાળા વત્તા 1 છે. અને પછી માત્ર સારી measure-- માટે પણ આ સિસ્ટમ પર, છતાં તે હંમેશા હું કહી રહ્યો છું 1-- હશે એક કોલસો બનાવો કદ દ્વારા આ વધવું. Sizeof બહાર વળે સી એક ઓપરેટર કે તમે માત્ર કહે છે કે બાઇટ્સ સંખ્યા ચોક્કસ માહિતી પ્રકાર માટે જરૂરી છે. તે એરે માટે કામ કરતું નથી, ખાસ કરીને, ક્યારેક તે કરે છે. પરંતુ સામાન્ય કિસ્સામાં, નં. ઘણા બાઇટ્સ કેવી રીતે પરંતુ તે મને કહેશે બહાર વળે જે ચાર રચે છે, હંમેશા 1 હોય છે. તેથી આ 1 વડે ગુણાકાર જેવી છે. કોડ તેથી સુપર ભેદી શોધી લાઇન. પરંતુ બધા તે આપે છે મને મેમરી એક ભાગ. પરંતુ તે નકલ કરી લાગતું નથી કે મેમરીમાં કંઈપણ? હજી નહિં. અને તેથી 22 વાક્ય પર મારે શું કરવું, અને 23, 24, 25, સાથે સાથે, હું ફક્ત આવું. અને આ પ્રકારની છે હવે ઓલ્ડ સ્કૂલ સામગ્રી. આ pset 2, જ્યાં જેવી છે તમે માત્ર વસ્તુઓ ખસેડી રહ્યાં છો આસપાસ યાદમાં, અથવા બદલે શબ્દમાળાઓ. તેથી હું 0 થી વારો છું શબ્દમાળા ઓ લંબાઈ. અને હું હું મી અક્ષર નકલ છું ટી આઇ મી અક્ષર માં એસ. અને હું, કારણ કે પ્રોગ્રામર કરવામાં બરાબર ઘણા બાઇટ્સ ફાળવવા માટે ખાતરી કરો હું જરૂર છે, તે યોગ્ય છે એક થી એક સંબંધ. અને હું મોમ નકલ એક નવી લોઅરકેસ. અને પછી છેલ્લે, હું આ વાક્ય નથી. અને તેથી અસર માત્ર છે અહીં આ ટી ઉઠાવે. તેથી ઘણો શોષણ કરે છે, પરંતુ તમે માત્ર ધ્યાનમાં જો શું થઈ રહ્યું છે હૂડ નીચે માત્ર આ આગળ વધી રહી છે કે બધા આસપાસ બાઇટ્સ આ સમસ્યા ઉકેલવા માટે જરૂરી છે માત્ર અમને મેમરી આ ભાગ આપે છે. હવે જોખમ જબરજસ્ત મને બતાવવા દો લગભગ છે કે એક અન્ય ઉદાહરણ આ એક સિવાય સમાન કોડ વાક્ય. તેથી આ હેકર આવૃત્તિ છે આ કાર્યક્રમ, જો તમે કરશે. પરંતુ માત્ર distill દો તે શું થઈ રહ્યું છે માં. લાઇન 24 ટી હોઈ ઉપયોગ કૌંસ હું ઓ કૌંસ હું નહીં. હવે, હું આ બદલી રહ્યો છુ વધુ ભેદી સ્ટાર ટી વત્તા 1 સ્ટાર ઓ વત્તા 1 સમકક્ષ હોય છે. તેથી શું થઈ રહ્યું છે અને શા માટે આપણે એક તારો પાત્ર છે? અમે પહેલાં તારો જોવા મળે છે, અને કર્યું તે અલગ અહીં ઉપયોગ કરવામાં આવે છે. અમે અગાઉ હવે હું જોઈ રહ્યો છું, ઘરનાં પરચૂરણ કામો * જોયું એક શરૂઆતમાં સ્ટાર, અને તે બરાબર છે. તે અમે બહાર વળે છે, કારણ કે પ્રકારની માત્ર અટકળ બાંધવી કરી શકો છો તે પ્રથમ સિદ્ધાંતો પર શું થઈ રહ્યું છે. તેથી માત્ર સ્પષ્ટ કરવા, એસ શું છે? છેલ્લા અઠવાડિયે, અથવા તે સ્ટ્રિંગ હતી. હવે પૂરતો નથી. ખાસ કરીને, ઓ શું છે? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: તે એક નિર્દેશક છે. તે સરનામું છે પ્રથમ અક્ષર અમે લખ્યો. ઠીક છે, ટી શું છે? AUDIENCE: [અશ્રાવ્ય] ડેવિડ જે MALAN: પ્રથમ બાઇટ ની સરનામું ટી, મેમરી કે ભાગ ફરીથી ફાળવેલ. તેથી તે તારણ આપે છે કે જ્યારે અમે શબ્દમાળા માટે આ બોલ પર 0 થી ફરી વળવું length-- સૌ પ્રથમ, હું કારણ કે, 0 અંતે બોલ શરૂ થાય છે લૂપ વસ્તુ માટે આ જૂના શાળા. તેથી માત્ર સરળતા માટે, ચાલો કોડ કે પ્રથમ વાક્ય ધારે ખરેખર માત્ર આ જ, અધિકાર છે. હું શૂન્ય ઉમેરી રહ્યા છે, શૂન્ય છે, તો કંઈક કદાચ અસર નથી જઈ રહ્યા છે. તેથી આ શું કહે છે? તે સ્ટાર કે બહાર વળે આ સંદર્ભમાં ઓપરેટર ડિરેફરન્સ છે માત્ર છે કે જે ઓપરેટર, જાઓ કહેતા ફેન્સી માર્ગ નીચેની સરનામા માટે. જેથી તો પ્રથમ સરનામું મેમરી આ ભાગ માં પાત્ર, * ઓ અર્થ ત્યાં જાઓ. અને અમે દોરવામાં કર્યું છે કારણ કે આ રીતે ચિત્ર, તમે અપનાવી શકે માનસિક મોડેલ નીચેની. આ s છે, અને તમે * ઓ * ઓ કહે છે, તો પ્રકારની વસ્તુઓ અને સીડી જેવા, તમે બાળપણના આ રમત યાદ રાખો કે, કે તીર અનુસરો છે અને જાય છે જેવી છે આ સંબોધવા. * ટી જ વસ્તુ છે. તેથી અહીં શરૂ કરવા માટે, તેની Chunk પર જાઓ. હું માત્ર પર ડ્રો કરી શકો છો આ સ્ક્રીન છે કે જે રીતે. * ટી અહીં જાઓ થાય છે. અને પછી, લૂપ માટે માત્ર છે અહીં આ પાત્ર ખસેડવા કહેતા અહીં આ અક્ષર ખસેડવા માટે, અહીં આ પાત્ર ખસેડો. પરંતુ કેવી રીતે હું કે incrementation કરવું? હું માત્ર કાઢી શું પૂર્વવત્ કરવાની જરૂર છે. આ સામાન્ય રીતે કહેવાય છે તે છે નિર્દેશક અંકગણિત, જે સરનામાં સાથે મઠ થાય છે. તો, આ લૂપ માટે, હું incrementing રાખો અને એસ એક સરનામું છે અને ટી એક છે સરનામું, હું ફક્ત 1 ઉમેરીને રાખવા હોય તો, કે જે હમણાં જ આગળ વધવા રાખવા અર્થ થાય છે, અને આગળ, અને મેમરી આગળ. તે ઓક્સફર્ડ સ્ટ્રીટ જેવા છે, સીએસ મકાન પર છે કે સ્ટ્રીટ. સીએસ ઇમારતો 33 ઓક્સફર્ડ સ્ટ્રીટ પર છે. તેથી જો તમે 33 કરવા હતા ઓક્સફર્ડ સ્ટ્રીટ વત્તા 1, 34 ઓક્સફર્ડ પર લઈ આવે છે સ્ટ્રીટ, પછી 35 ઓક્સફર્ડ સ્ટ્રીટ, પછી 36 ઓક્સફર્ડ સ્ટ્રીટ, ગમે તે ઇમારતો ખરેખર છે - જો તેઓ અસ્તિત્વમાં હોય. અને તેથી, તે અમે કરી રહ્યા છીએ બધા છે અહીં નિર્દેશક અંકગણિત સાથે. તેથી તે સુપર Arcane માર્ગ છે જાતને વ્યક્ત. પરંતુ તે બધા શું થઈ રહ્યું છે હૂડ નીચે માત્ર આ સરનામાં અનુસરે છે, એક નકશો નીચેની જેમ, તમે કરશે જો, અથવા જેમ તીર નીચેના અમે સ્ક્રીન પર દોરવામાં કર્યું છે. ઠીક છે, ઘણો પાચન. સિન્ટેક્સ પર કોઈપણ પ્રશ્ન, વિભાવનાઓ, પોઇન્ટર, malloc, અથવા જેમ. અરે વાહ, અહીં પ્રથમ. પ્રેક્ષક: તેથી કે જ્યાં * ટી toupper * ટી બરાબર કહે છે ઉઠાવે ચાલુ છે બધા અક્ષરો અથવા just-- ડેવિડ જે MALAN: આહ, ખરેખર સારા પ્રશ્ન. અહીં આ વાક્ય તેથી, 31, આ ઉઠાવે રહ્યું છે પ્રથમ અક્ષર અથવા અક્ષરો તમામ. તેથી આપણે જઈને કે જવાબ દો પાછા પ્રથમ સિદ્ધાંત છે. અને અહીં પ્રથમ સિદ્ધાંત હું તેનો અર્થ માત્ર મૂળભૂત વ્યાખ્યાઓ પર જાઓ સામેલ છે તે છે. તેથી toupper એક કાર્ય છે કે ઘરનાં પરચૂરણ કામો અક્ષરે. કે બધા છે. * ટી first-- પર જાઓ છે ટી માં સરનામા પર જાઓ. તેથી, ચિત્ર, આ ભાગ છે, તો મેમરી અમે malloc સાથે ફાળવવામાં, અને આ ટી * ટી અહીં જાઓ અર્થ એ થાય છે. વચ્ચે, તમે પસાર કરી રહ્યાં છે તે કિંમત, લોઅરકેસ એમ toupper કરવા માટે, તમે પાછા મળી રહ્યાં કેપિટલ એમ, જ્યાં તમે તેને મૂકવા આવે છે? તમે તે જ સ્થાને આપી રહ્યા છીએ. અને તેથી તે કે તર્ક દ્વારા મૂળભૂત વ્યાખ્યાઓ તે માત્ર પ્રથમ અક્ષર અક્ષરો તમે મને અથવા સાથે ફરી વળવું જ્યાં સુધી લૂપ અથવા જ્યારે લૂપ માટે, તે ચાલી રહ્યું છે તમે તેને પૂછો કરતાં વધુ કંઇ કરવું. સારા પ્રશ્ન. અરે વાહ? પ્રેક્ષક: તમે શા માટે ઉપયોગ હતી પદ્ધતિ બદલે ખોટો સંદર્ભ એરે? ડેવિડ જે MALAN: આહ, સારો પ્રશ્ન. શા માટે તમે ડિરેફરન્સ ઉપયોગ કરશે તેના બદલે એરે પદ્ધતિ પદ્ધતિ? કોઈ ખાસ કારણ છે, પ્રમાણિક પ્રયત્ન. અને હકીકતમાં, આ માટે ઉદાહરણ કાઇન્ડ, અધિકાર, હું માત્ર બનાવવા એવી દલીલ કરે છે કરી રહ્યો છું વધુ જટિલ કાર્યક્રમ વધુ આંખો પર ચમક આવે છે લોકો બહાર તપાસ કરવામાં આવે છે આ સુપર Arcane લાગે છે કારણ કે, પરંતુ પણ તે એ જ વસ્તુ કરી છે છતાં. અને તેથી, પ્રમાણિકપણે, આ એક બિનજરૂરી દૃષ્ટિની જટિલ ઉકેલ સમસ્યા છે. તે હજુ પણ સારી ડિઝાઇન છે પાંચ ડિઝાઇન માટે ટપાલ બહાર તે કૌંસ છે કે શું સંકેત અથવા નિર્દેશક નોટેશનમાં. અમે વિચાર, ખાસ કરીને જ્યારે પરંતુ છે પાછળથી દરમિયાન pset 5 અમે તે શબ્દકોશ અમલ કે જ્યારે હું times-- એક દંપતિ ઉલ્લેખ કર્યો છે અમે ખરેખર વિશે કાળજી કરીશું નીચા સ્તર મેમરી સરનામાંઓ અમે ખરેખર સમજે છે કે શું થઈ રહ્યું છે. પરંતુ, હવે માટે, તે આ છે કે જે બહાર વળે કોડ અહીં ચોરસ કૌંસ વાક્ય ખરેખર અસ્તિત્વમાં નથી. તેઓ કહે છે તે છે વાકયરચનામાં ખાંડ, જે આ માત્ર કહેતા એક weirdly ઠંડી માર્ગ છે કમ્પાઇલર ચોરસ કૌંસ હોઈ ફેરવે કે ગાણિતિક અભિવ્યક્તિ. તેથી તે માનવ સંમેલન છે માત્ર લખવા માટે સમર્થ થવા માટે આ ખૂબ વપરાશકર્તા મૈત્રીપૂર્ણ કૌંસ. પરંતુ શું કમ્પાઇલર, રણકાર, ખરેખર કોઈપણ સમયે કરી છે તમે વાક્ય પ્રકાશિત છે તે લખવા 24, હૂડ નીચે તે ખરેખર છે આ રૂપાંતરિત. તે માનવ તરીકે માત્ર વધારે આનંદદાયક છે વાંચી અને લાઇન 24 જેમ કોડ લખવા માટે. પરંતુ છેવટે તે તાલીમ વ્હીલ્સ ખૂબ છટકવું એક પોતાના આરામ મજબૂત મળે છે. બધા હક છે, તેથી તો પછી તે આ યાદ સૌથી મોટી સમસ્યા ના સૉર્ટ હતી અમે માં ચાલી હતી. અને તે આ સમગ્ર વેગ આપ્યો શું છે પોઇન્ટર વિશે ખરેખર વાતચીત, અને સરનામાંઓ, અને નકલ વસ્તુઓ. અમે ઉપર ટ્રિપ, કારણ કે તે હતી આ મૂર્ખ મૂર્ખ મુદ્દો છે જેમાં હું લોરેન સાથે logically-- અમલમાં અહીં ડેમો અને નારંગી રસ પર આ milk-- એક સંપૂર્ણપણે ઍલ્ગરિધમનો યોગ્ય કાર્ય બે ચલો 'જેઓ માટે મૂલ્યો, પરંતુ ખરેખર વાત કોઈપણ નિરંતર હોય છે, અથવા ન હતી મારા કોડ પર કાયમી અસર. અને શા માટે છે કે હતી? એક nutshell માં, આ શા માટે છે સ્વેપ અમલીકરણ તાર્કિક યોગ્ય છે, પરંતુ કોઈ અસર છે તે પસાર થાય છે કે ચલો પર મુખ્ય એક્સ અને વાય જેમ? આ મુદ્દો ભાવાર્થ શું હતો? અરે વાહ? પ્રેક્ષક: ચલ કરવામાં કારણ કે પાસ ચલ નકલો કાર્ય મારફતે. ડેવિડ જે MALAN: બરાબર છે, જ્યારે તમે પસાર એક કાર્ય માં ચલો, અથવા દલીલો એક કાર્ય માં, તેઓ છો નકલ દ્વારા પસાર જે તમે જોઈ એક સરખા વિચાર અર્થ એ થાય એક્સ અને વાય બંને માટે બીટ્સ પેટર્ન, A અને B અહીં કહેવામાં આવે છે. અને તમે કંઈપણ કરી શકો છો તમે તે નકલો સાથે માંગો છો, પરંતુ તેઓ કોઈ હોય રહ્યા છીએ ફોન કાર્ય પર અસર કરે છે. અને, હકીકતમાં, અમે તે દોર્યું સ્ક્રિનનાં રિકોલ પર ચિત્ર છેલ્લા સમય, જેમાં તમે જો ખરેખર તે વિશે વિચારો જો hood-- નીચે ચાલુ આ તમારા કમ્પ્યુટરની મેમરી છે અને નીચે અહીં ના ભાગ છે મેમરી, મુખ્ય માટે ઉપયોગ થાય છે આ ભાગ છે મેમરી, સ્વેપ માટે ઉપયોગ થાય છે અને તેથી તો પણ મુખ્ય છે બે ચલો, એક્સ અને વાય, સ્વેપ સમાન જોઈ હોય શકે છે 1 અને 2 છે, જે બંને કિંમતો, પરંતુ તેઓ સંપૂર્ણપણે છો મેમરી વિવિધ હિસ્સામાં. તેથી અમે આ માટે ઉકેલ જરૂર છે. અને પ્રમાણિકપણે, તે હવે અમે તે લાગશે અધિકાર, આ સમસ્યા માટે ઉકેલ છે. હવે અમે ક્ષમતા હોય સરનામાં માર્ગ દ્વારા વસ્તુઓ ચાલાકી અને પ્રકારની વસ્તુઓ અને સીડી શૈલી, આ તીર અનુસરો અને અમે માંગો છો ગમે ત્યાં જાઓ યાદમાં, અમે નથી કરી શકતો દ્વારા આ સમસ્યા હલ મુખ્ય માંથી પસાર સ્વેપ નથી કિંમતો અમે માંગો છો સ્વેપ, પરંતુ માત્ર તર્ક અમે શું તેના બદલે સ્વેપ પસાર કરી શકે છે? [અવાજો INTERPOSING] ડેવિડ જે MALAN: શા માટે આપણે નથી તે હક, સરનામાં પસાર? અમે શા માટે સ્વેપ આપતા નથી ટ્રેઝર નકશો, જો તમે કરશે, કે તે તરફ દોરી જાય છે વાસ્તવિક કિંમતો એક્સ અને વાય. ચાલો સ્વેપ, ખરેખર બદલી તે મૂળ બીટ્સ બદલે માત્ર બિટ્સ નકલો પસાર. અને તેથી, હકીકતમાં, કે શું છે જઈને ઉકેલ હોઈ શકે છે. આ આવૃત્તિ અહીં છે સ્પષ્ટ ખરાબ અને અપૂર્ણ. અને હવે, પ્રથમ નજરમાં, તે માત્ર જુએ જેમ આપણે રેન્ડમ તારા સમૂહ ઉમેર્યો અને અમારા આંગળીઓ ઓળંગી તે કમ્પાઇલ કરશે. પરંતુ, તે હવે કમ્પાઇલ આવશે. પરંતુ આ વસ્તુઓ અર્થ તે જોવા દો. અને કમનસીબે, લેખકો સી અન્ય પ્રતીક પસંદ કરી શકે છે આ થોડો બનાવવા માટે સ્પષ્ટ છે, પરંતુ સ્ટાર ઓપરેટર વિવિધ અર્થ હોય છે બે અલગ અલગ સંદર્ભમાં. અને અમે બંને જોઇ છે, પરંતુ તફાવત દો. ત્યાં ટોચ પર જેથી હું એ અને બી બદલાયેલ છે ત્યારે ખરાબ માં પૂર્ણાંક માતાનો હોવા આવૃત્તિ તારાઓ, A અને B પૂર્ણાંક માટે, પહેલાં, પૂર્ણાંકો હતા. હવે એ અને બી શું છે સારા, લીલા આવૃત્તિ? તેઓ સરનામાં છો. શું સરનામાં સ્પષ્ટ કરવા? પૂર્ણાંકો સંબોધે છે. હું એ હકીકત છે કે તેથી પૂર્ણાંક સ્ટાર અર્થ એમ કહીને આ સરનામું પૂર્ણાંક, ખાસ. તેથી હવે કોડ લીટીઓ નોટિસ, કંઈક બીજું પણ બદલાઈ ગઈ છે. tmp, કારણ કે એ જ રહે છે તે માત્ર કામચલાઉ પૂર્ણાંક છે, ત્યાં કોઈ મેમરી જાદુ. પરંતુ હવે સ્ટાર જરૂર છે. અને, હકીકતમાં, દરેક એ, બી અને અન્ય ઉલ્લેખ કે બધા છે કે નોટિસ લાલ થી લીલી બદલવા હું prefixing છું કે છે તારાઓ સાથે તે ચલો. હું એ અને બી નકલ કરવા માંગો છો નથી. કારણ કે હું માત્ર એક અને બી અને સ્વેપ નકલ તો A અને B, હું ખરેખર શું જેઓ છું? જસ્ટ સરનામાં, હું સ્વેપ કરવા માંગો છો શું તે સરનામાં પર છે. હું ત્યાં જવા માંગો છો. અને તેથી તારો ઓપરેટર મારા કાર્ય ની અંદર, નથી પરિમાણ યાદી ની અંદર, તમે તે સરનામાં પર જાઓ છે અને ખરેખર તે મૂલ્યો બદલી. તેથી શું ચિત્ર છે હવે બદલે જેમ દેખાય છે. વેલ, તેના બદલે જો હું પસાર છું એક માટે નથી અને 1 અને બી 2-- હું ખરેખર ઉમેરવાની જરૂર છે અહીં એક અન્ય વ્યાખ્યા. તેથી આ Chunk કે જે ધારવું મેમરી પાંચ આંકડાના US સ્થાન 10 છે. આ સ્થાન 11 છે, પરંતુ આ એક સરળીકરણ એક બીટ છે, હવે હું એક્સ બે પસંદગીઓ હું પસાર કરી છે અને વાય કે હું તેમના સરનામાં પસાર કરી શકું? હું તેમના સરનામાં પાસ કરો તો આ જેમ, હું હમણાં જ હવે અમલીકરણની જરૂર છે લીલા કોડ મુજબ સ્વેપ તે જુએ છે તેથી જ્યારે એક અને જ્યારે તે બી, તે માત્ર એ અને બી નકલ નથી જુએ અને દૂધ અને નારંગીના રસ ખસેડો. દૂધ અને નારંગીનો રસ રૂપક હવે, નીચે તોડે કારણ કે તે કપ છે પ્રવાહી નથી અને નકશા. અમે તેના બદલે જવાની જરૂર 10 અને અમે સંબોધવા 11 સરનામા પર જાઓ જરૂર છે, અને પછી તે જેઓ તર્ક કરે છે. તેથી તર્ક, એ જ છે, પરંતુ અમે થોડી અલગ રીતે જરૂર તે ચલો ઍક્સેસ. અને તેથી અંતે, શું કાર્યક્રમ આ છે જેમ દેખાય છે માટે છે. Swap.c શાબ્દિક નકલ અને લીલા આવૃત્તિ પેસ્ટ. પણ હું એક ફેરફાર કરવાની જરૂર છે. તે માત્ર સ્વેપ બદલવા માટે પર્યાપ્ત નથી. શું કોડના અન્ય વાક્ય હું બદલવા માટે જરૂર નથી? અરે વાહ? પ્રેક્ષક: તે દલીલો લે છે. ડેવિડ જે MALAN: ક્યાંથી તે તેના દલીલ લે છે. તેથી હું મુખ્ય સુધી સ્ક્રોલ કરો છો, તો હું માત્ર એક્સ અને વાય નથી પસાર કરી શકો છો, અને, હું છેલ્લા વચન નવી વાક્યરચના ભાગ આજે. હું નથી એક્સ પસાર કરવાની જરૂર છે અને વાય પરંતુ એક્સ અને વાય ના સરનામું. અને તે પ્રતીક બહાર વળે સી ના લેખકો પસંદ કરો કે તમે અહીં એક ચિન્હ ઉપયોગ જો નથી, છે આ bitwise ચિન્હ સાથે ભેળસેળ ન શકાય, તમે એક ચિન્હ ઉપયોગ જો અહીં અને અહીં એક ચિન્હ, આ તમારા માટે બહાર આધાર x ની સરનામું શું છે, કદાચ તે 10 છે, શું છે વાય સરનામું, કદાચ તે છે 11, અને તેની જગ્યાએ તે પસાર થાય છે. તેથી ઘણો જ સમયે બધા શોષણ. પરંતુ ઝડપથી હવે જોવા દો અમારા બાકીના ચાર મિનિટ જ્યાં વસ્તુઓ અવળું જઈ શકે છે. અને એક કોરે, ખરેખર હું આ ચિત્ર લીધો, ટીએફ એક અથવા બે વર્ષ પહેલા આ ચિત્ર લીધો હતો. તેથી આ પાછા ખૂણે છે એલિયટ ડાઇનિંગ હોલ ઓફ. પોઇન્ટર કદાચ ખૂબ સખત હોય છે અમે CS50 માં આવરી વિષય. તમે સૉર્ટ ચિંતા તેથી જો કદાચ તે છે, જેમ કે ઢાળ છે હોકી સ્ટીક વધુ આ જેમ ખ્યાલ અમે પ્રકારની એક ટોચ માં આરે રહ્યાં છો વૈચારિક જટિલતા શરતો. અને હું આ લાવવા ફોટો, હું શપથ લેવા કારણ કે પતન 1996 માં દેવ, જ્યારે હું લીધો મારા શિક્ષણ સાથી સાથે CS50, Nishat મહેતા, તેમણે મને નીચે બેઠા બપોરના ઉપર એલિયટ ડી હોલ ઓફ ખૂણે, અથવા રાત્રિભોજન, અથવા કંઈક પ્રયાસ કરવા મને પોઇન્ટર સમજવા મદદ કરે છે. હું અઠવાડિયા પછી હતી, જ્યાં અને આ છે તે વ્યાખ્યાન જ્યારે રજૂ કરવામાં આવ્યું હતું હું છેલ્લે પોઇન્ટર સમજી. અને હું આ કે આશાવાદી છું અત્યાર સુધી તમે વહેલા માટે ક્લિક કરો. પરંતુ સંપૂર્ણપણે વચ્ચે આ ખ્યાલ વધુ વ્યવહારદક્ષ વિષયો અમે જોવામાં કર્યું છે. પરંતુ તે સૌથી શક્તિશાળી વચ્ચે છે. તમે તેને મળે ત્યારે, તે ખરેખર બધા છે માત્ર છેલ્લે મળીને આવવા જવાનું. તેથી બાકીના તે નથી ખાતરી આજે બધા સિંક કરવાની જરૂર છે. તેથી અહીં છેલ્લા કાર્યક્રમ છે અમે જોવા માટે જઈ રહ્યાં છો. અને અમે એક સાથે અંત જઈ રહ્યાં છો ક્લેમેશન ઝડપી ત્રણ મિનિટ અમારા મિત્ર, નિક Parlante દ્વારા કરી હતી. અહીં એક કાર્યક્રમ ટોચના બે પર છે, લાઇન્સ ચલ એક્સ અને વાય જાહેર. જે બંને સરનામાં છે પૂર્ણાંકો, ઉર્ફ પોઇન્ટર. અમે પછી પૂરતી ફાળવણી મેમરી પૂર્ણાંક સંગ્રહવા માટે અને સરનામા સ્ટોર એક્સ કે મેમરી. તેથી, તે પણ સરળ છે પહેલાં ઉદાહરણ કરતાં. મને મેમરી ચાર બાઇટ્સ આપો કે પૂર્ણાંક માપ છે, અને X કે સરનામું મૂકો. આ વાક્ય અહીં અર્થ થાય છે X માં સરનામા પર જાઓ અને અર્થ મૂકી જીવન, ત્યાં સંખ્યા 42. પરંતુ આ વાક્ય મને ચિંતાઓનો. વાય વાય માં સરનામા પર જાઓ અર્થ એ થાય તારો, અને ત્યાં કમનસીબ નંબર 13 મૂકો. શા માટે આ બિંદુએ, તે ખતરનાક છે આ story-- યદ્યપિ ઝડપથી જણાવ્યું અમારા અસ્ત મિનિટમાં અહીં શા માટે તે ખરાબ છે મને કહે છે, વાય માં સરનામા પર જાઓ? પ્રેક્ષક: તમે ન [અશ્રાવ્ય]. ડેવિડ જે MALAN: હું નથી વાય કંઈપણ મૂકો. તેથી વાય ની કિંમત શું છે, વાર્તામાં આ બિંદુએ? અમે કોઈ વિચાર હોય છે. તે કેટલાક કચરો કિંમત છે અને ન Binky ખબર નથી. અમે આ નોંધ પર સમાપ્ત શકે છે. [વિડિઓ પ્લેબેક] -Hey, Binky, જાગે. તે નિર્દેશક આનંદ માટે સમય છે. -તે શું છે? પોઇન્ટર વિશે જાણો! ઓહ, ગુડી. -વેલ, પ્રારંભ કરવા માટે, હું અમે છો ધારી એક દંપતિ પોઇન્ટર જરૂર જવાનું. -ઠીક છે. આ કોડ બે પોઇન્ટર ફાળવે જે પૂર્ણાંકો માટે નિર્દેશ કરી શકો છો. -OK, હું સારી રીતે જુઓ બે પોઇન્ટર છે, પરંતુ તેઓ કંઈપણ થઈ પોઇન્ટ કરવા લાગતું નથી. -તે સાચું છે. શરૂઆતમાં પોઇન્ટર કંઈપણ મૂકતા નથી. તેઓ માટે નિર્દેશ વસ્તુઓ છે નિર્દેશ pointees કહેવામાં આવે છે અને તેમને સુયોજિત એક અલગ પગલું છે. અધિકાર, અધિકાર, -OH. હું જાણતા હતા કે. આ નિર્દેશ pointees અલગ હોય છે. તેથી તમે કેવી રીતે એક pointee ફાળવી શકું? -OK, સાથે સાથે આ કોડ ફાળવે નવી પૂર્ણાંક pointee, અને આ ભાગ સેટ એક્સ તે નિર્દેશ કરે છે. -Hey, કે સારી દેખાય છે. તેથી તે કંઈક બનાવે છે. -OK, હું પડશે નિર્દેશક એક્સ ડિરેફરન્સ તેના pointee માં 42 નંબર સ્ટોર કરે છે. આ યુક્તિ માટે, હું જરૂર પડશે મારા dereferencing જાદુ લાકડી. Dereferencing ના -તમારા જાદુ જાદુઈ લાકડી? ઉહ, કે જે મહાન છે. -આ કોડ જેવી દેખાય છે. હું માત્ર નંબર સેટ કરશો and-- [પોપ સાઉન્ડ] -Hey, તે જાય ત્યાં જુઓ. તેથી, X પર ડિરેફરન્સ કરી નીચે તીર તેના pointee ઍક્સેસ કરવા માટે. આ કિસ્સામાં, ત્યાં 42 સંગ્રહવા માટે. અરે, આ નંબર સ્ટોર કરવા માટે તેનો ઉપયોગ કરવાનો પ્રયાસ કરો અન્ય નિર્દેશક દ્વારા 13, વાય. -ઠીક છે. હું માત્ર વાય માટે અહીં પર જાઓ પડશે, અને નંબર 13 સમૂહ મેળવો. અને પછી એ જાદુઈ લાકડી લે dereferencing અને just-- [લાલબત્તી ધરનાર SOUND] -OH હેય કે કામ ન હતી. , Binky ઉહ, હું નથી, કહે છે dereferencing લાગે સુયોજિત કારણ કે વાય, એક સારો વિચાર છે આ pointee એક અલગ પગલું છે. અને હું અમે ક્યારેય તેને હતી નથી લાગતું નથી. -Hmm, સારા બિંદુ. અરે વાહ, અમે નિર્દેશક, વાય ફાળવવામાં, પરંતુ અમે એક pointee માટે નિર્દેશ તે સેટ નથી. -Hmm ખૂબ જ સચેત. -Hey, તમે ત્યાં Binky સારી શોધી રહ્યાં છે. તમે કે જેથી તેને ઠીક કરી શકે વાય પોઇન્ટ X તરીકે જ pointee છે. -Sure, હું મારા જાદુ જાદુઈ લાકડી ઉપયોગ નિર્દેશક સોંપણી. એક પ્રયત્ન રહ્યું છે કે નબળી ગણાય છે સમસ્યા પહેલાં જેવું? -કોઈ, આ નિર્દેશ pointees સ્પર્શતું નથી. તે માત્ર એક નિર્દેશક બદલે એ જ વસ્તુ માટે નિર્દેશ [અવાજ ધાણી] અન્ય --as. -OH, હું જુઓ. X તરીકે જ જગ્યાએ હવે વાય નિર્દેશ કરે છે. તેથી, હવે વાય સુધારેલ છે, રાહ જુઓ. તે pointee છે. તેથી તમે લાકડી પ્રયાસ કરી શકો છો 13 ઉપર મોકલવા માટે ફરીથી dereferencing. -OH, ઠીક છે, અહીં જાય છે. -Hey, કે જુઓ. હવે વાય પર કામ કરે છે dereferencing. અને પોઇન્ટર શેર કરી રહ્યાં છે, કારણ કે એક pointee, તેઓ બંને 13 જુઓ. અરે વાહ, શેરિંગ, ઉહ, ગમે. તેથી, અમે સ્થાનો હવે સ્વિચ જવું છે? -OH, અમે સમય નથી જુઓ. -But-- ત્રણ નિર્દેશક નિયમો યાદ -Just. નંબર 1, મૂળભૂત માળખું તમે એક નિર્દેશક હોય છે, અને તે pointee પર નિર્દેશ કરે છે. પરંતુ નિર્દેશક અને pointee અલગ હોય છે. અને સામાન્ય ભૂલ એક નિર્દેશક સુયોજિત કરવા માટે છે પરંતુ તે pointee આપી ભૂલી. સંખ્યા 2, નિર્દેશક dereferencing નિર્દેશક પર શરૂ થાય છે અને તેના પર તીર નીચે તેના pointee ઍક્સેસ કરવા માટે. આપણે બધાં જ જાણીએ, આ માત્ર ત્યાં તો કામ કરે છે પ્રકારની પાછા નહીં કે જે pointee છે, નંબર 1 શાસન છે. નંબર 3, નિર્દેશક સોંપણી એક નિર્દેશક લે છે અને નિર્દેશ કરવા માટે તે બદલે છે અન્ય નિર્દેશક તરીકે જ pointee. સોંપણી પછી તેથી, બે પોઇન્ટર જ pointee માટે નિર્દેશ કરશે, ક્યારેક શેરિંગ કહેવાય છે. અને તે ખરેખર, તે ત્યાં છે બધા છે. બાય બાય હવે. [સમાપ્ત પ્લેબેક] ડેવિડ જે MALAN: કે CS50 માટે છે. પ્રોફેસર નિક Parlante માટે આભાર. અમે આગામી સપ્તાહે તમે જોશો. [ઇલેક્ટ્રોનિક સંગીત વગાડવાનો]