જેસન HIRSCHHORN: સ્વાગત, અઠવાડિયું 6 માટે દરેક. હું સારી રીતે જીવંત તમે તમામ જુઓ ખુશ છું અને ક્વિઝ 0 કર્યા પછી, કારણ કે હું ખબર છે કે થોડી ખરબચડી હતી. પરંતુ thankfully, તમે બધા માનવામાં ન આવે એવી સારી કામગીરી બજાવી હતી. અને તેથી તે અદ્ભુત છે. તમે મારા વિભાગમાં કરશો, હું આપી છે તમે પહેલેથી જ તમારા અંગેની ક્વિઝ પાછળ. તમે એક દંપતિ, હું બેઠક છું વર્ગ પછી. અને જો તમે એક એક્સ્ટેંશન વિદ્યાર્થી અને છો તમે પાછા તમારા ક્વિઝ મેળવી નથી હજુ સુધી, તમારા ટીએફ કદાચ તેના પર કામ કરી રહી છે અને તે વર્ગીકરણ છે, અને તે પાછા મળશે તમને ટૂંક સમયમાં. છે તેથી મારા વિસ્તરણ વિદ્યાર્થીઓ હમણાં જોવા - આસ્થાપૂર્વક રહે છે - હું તમારી અંગેની ક્વિઝ મળશે ટૂંક સમયમાં જ એ જ પ્રમાણે. નીચે પ્રમાણે આજે અમારા કાર્યસૂચિ છે. પ્રથમ, અમે કેટલાક જાઓ રહ્યા છીએ CS50 તમને પૂરી પાડે છે સ્રોતો. અમે આગામી ક્વિઝ 0 પર જાઓ રહ્યું છે, અને કરી રહ્યાં છો હું કોઇ પ્રશ્નો કોઈની જવાબ પડશે ચોક્કસ સમસ્યાઓ વિશે છે. અને પછી, અમે પર જઈને કરવામાં આવશે ફાઇલ I / O અને સમસ્યા 5 સુયોજિત કરો. તે છેલ્લા બે વિષયો લેશે વિભાગ બલ્ક આજે. હું એક તરીકે દર અઠવાડિયે આ યાદી મૂકવામાં તમે બધા માટે છે, પરંતુ કોર રીમાઇન્ડર વિભાગ, અમે માત્ર 90 મિનિટ છે - અમે બધું આવરી શકતા નથી કે હું તમે ગાય્ઝ માટે આવરી ખુશી થશે. પરંતુ અમે માટે સાધનો છે જે ટન ધરાવે છે તમે જાણવા મળી પેઠે તમારા પર ડ્રો દ્વારા સામગ્રી અને કાર્ય તમારી સમસ્યા સુયોજિત કરે છે. હું ઓનલાઇન લખાણ છે કે સ્મૃતિપત્ર જો તમે ભરવા માટે તમારા માટે સુયોજિત બોક્સ, મારા માટે કોઈ પણ અભિપ્રાય છે, હકારાત્મક અને બંને વિભાગ વિશે, રચનાત્મક. તે URL અધિકાર નીચે અહીં સ્થિત થયેલ છે. જો તમે કોઇ છે તો, થોડો સમય કરો પ્રતિસાદ, કે શું વિભાગ દરમિયાન, કે પછી, કે પછી તમે વિડિઓ જુઓ ઓનલાઇન, મને તમારા પ્રતિભાવ આપે છે. હું ખરેખર તે કોઇ પણ અને તમામ પ્રશંસા કરીએ છીએ. તેથી હું નાની વાતચીત કર્યા કર્યું મારા ઘણો સાથે સપ્તાહ દરમિયાન વિદ્યાર્થીઓ - હું હાથ તરીકે પાછા અંગેની ક્વિઝ, આ વિશે વાત અલબત્ત, તમે કરી રહ્યા છીએ કેવી રીતે જોઈ. અને એક થીમ પર આવે છે અને છે પર વિશે વાત છે - માં ખાસ - સમસ્યા સુયોજિત કરે છે. અને હું કે થીમ સમાઇ છે હમણાં બોર્ડ પર. આવશ્યકપણે, એક તફાવત છે કે કંઈક દેવાનો વચ્ચે યોગ્ય રીતે અને કંઈક કર્યું તે સારી રીતે કરવામાં આવે છે. મોટા ભાગના લોકો વિચિત્ર કરી દેવામાં આવી છે ચોકસાઈ દ્રષ્ટિએ - બધા psets પર 5 અથવા 4. મોટા ભાગના લોકો મળી રહ્યો છે તે સમયના તમામ. જો કે, માત્ર કારણ કે તમે જે કંઇ કર્યું કંઈક યોગ્ય તમે કર્યું એનો અર્થ એ નથી તરીકે સુંદર કંઈક, અથવા અસરકારક રીતે, અથવા સ્વચ્છ તમે તે જ આ કરી શકે. અને તે શું ડિઝાઇન છે - અને ઓછા કે વધતા અંશે, શૈલી માટે - અ ો હોય છે. તેથી હું તમને બધા દબાણ અને અન્ય TFs છું માત્ર નથી ચાલુ કરવા માટે, તમે ગાય્સ દબાણ કરવામાં આવે છે યોગ્ય છે, પરંતુ ચાલુ વસ્તુઓ છે કે જે માં સાથે સાથે કોડેડ કરવામાં આવે છે કે જે વસ્તુઓ છે. આંટીઓ માટે બિનજરૂરી કરી નથી, ચલો તો recalculating નથી તમે કરવાની જરૂર નથી. ઉદાહરણ તરીકે, સેટ પાછા સમસ્યા શોધી 4, પર ઇંટો મૂકીને જ્યારે સ્ક્રીન, દરેક પંક્તિ - એક દરેક ઈંટ આપવામાં પંક્તિ જ Y-સંકલન છે - સમાન ઊંચાઇ સંકલન. Y-સંકલન કરવાની જરૂર ન હતી કે જેથી આંતરિક અંદર ગણતરી કરી તમે કદાચ ઉપયોગ લૂપ માટે નેસ્ટ સ્ક્રીન પર તે ઇંટો મૂકવામાં આવ્યું છે. તે માત્ર ત્યારે જ દરેક ગણતરી કરવાની જરૂર છે સમય તમે સળંગ સ્વિચ, અથવા એક પંક્તિ નીચે ખસેડી. 10 ઇંટો એ છે તેથી જો કહે પંક્તિ, દરેક ઈંટ જ હોઈ શકે છે Y-સંકલન, અને વાય સંકલન કે માત્ર ગણતરી કરી શકાય છે તે બધા માટે એક વખત. તે 10 ગણતરી કરવાની જરૂર નથી વખત, ન કરે કે ગણતરી જરૂર વાસ્તવિક માં થાય છે વિધેય કોલ - નવા gracked વિધેય કોલ. તેથી તે માટે થોડો ગૂંચવણમાં મૂકે તો તમે વધુ સામાન્ય છે, વસ્તુઓ કે દરેક એક સમય થાય તે જરૂરી નથી તમે ન હોવી જોઈએ એક માટે લૂપ દ્વારા જાઓ આ માટે લૂપ અંદર મૂકવામાં, અને જોઈએ નથી તમે જાઓ દર વખતે થાય છે આ માટે લૂપ દ્વારા. અમે જોયું અન્ય સારી ડિઝાઇન ઉદાહરણ 15 માટે સપ્તાહ 3, તમે ચાલુ રાખી શકે શૂન્ય સાચવી. તેથી તમે, તમે બોર્ડ પ્રારંભ જ્યારે સેવ - વૈશ્વિક ચલ છે, કદાચ - x અને શૂન્ય ની Y-સંકલન. અને પછી જ્યારે તમે - તમારી ચાલ કાર્ય માં, જ્યારે તમે કરો સફળ ચાલ, તમે અપડેટ પાંચ શૂન્ય સ્થાન. તે કરી રહી થી તમે બચાવશે આ દ્વારા જોવા આંટીઓ માટે નેસ્ટ તમારી ચાલ કામગીરીમાં દર વખતે બોર્ડ અને શૂન્ય શોધવા માટે, અથવા ટાઇલ શોધવા માટે, અને પછી તે આગામી શું તપાસો. તેની જગ્યાએ, તમે આ સ્થાન છે શૂન્ય, તમે માત્ર, નીચે, ઉપર દેખાય છે અને તે ડાબી અને જમણી માટે, શોધો તમે શોધી રહ્યા છો ટાઇલ. તેથી અમે છો કાર્યક્રમો દ્રષ્ટિએ લેખન, તેઓ પૂરતો મોટો ક્યારેય છો આ ડિઝાઇન નિર્ણયો કેટલાક ખરેખર રોકે જવું છે તમારા કાર્યક્રમ, અથવા, તે ધીમે ધીમે ચલાવવા કરો અથવા કદાચ પણ મેમરી રન. પરંતુ અમે હજુ પણ તમે ગાય્ઝ દબાણ કરી રહ્યાં છે લખવા માટે ભવ્ય અને શક્ય કાર્યક્ષમ કોડ. તેથી જો તમે કરો વસ્તુઓ લખી અંત એક નોંધપાત્ર રીતે મોટા હોય છે અવકાશ, તેઓ સારા સાથે લખાશે યોગ્ય હોવા ઉપરાંત ડિઝાઇન. તેથી તમારી પાસે છે કે બહાર લાવ્યા. કે અમે શોધી રહ્યાં છો તે છે - અમે ચાલુ રાખવા જઈ રહ્યાં છો કંઈક તમે ગાય્ઝ દબાણ. શું તમે ક્યારેય વિશે કોઇ પ્રશ્નો હોય તો તમારા કાર્યક્રમ ડિઝાઇન, મફત લાગે મને બહાર પહોંચે છે, અને હું ખુશ છું માટે તમારી સાથે તમારા કાર્યક્રમ દ્વારા ચાલી, અને ડિઝાઇન કેટલાક નિર્દેશ તમે હતી અને તમે કેટલાક આપી નિર્ણય બનાવવા માટે કેવી રીતે સૂચનો પણ સારી ડિઝાઇન નિર્ણયો. તેથી અમે ખસેડવા રહ્યા છીએ ક્વિઝ 0 વિશે વાત કરવા માટે. અમે તે કરી તે પહેલાં, કોઇ નથી વિશે કોઇ પ્રશ્નો હોય શું હું અત્યાર સુધી આવરી કર્યું? [Rustling અવાજ] જેસન HIRSCHHORN: સાત સેકન્ડ. બરાબર. માતાનો ઘડીભર ક્વિઝ 0 વિશે વાત કરો. તમે મોટા ભાગના તમારા ક્વિઝ 0 પાછા છે. તમે નથી, આસ્થાપૂર્વક કરો છો તમે તેને થોડી યાદ કરે છે. પરંતુ પછી તમે ક્વિઝ 0, તમે ભર્યું જો જેમાં અમને પીડીએફ વપરાશ હોય છે નમૂના ઉકેલો. કોઈની પહેલાં કોઇ પ્રશ્નો હોય તો અમે વિશે અઠવાડિયે સામગ્રી માં કૂદકો ક્વિઝ 0 પર ચોક્કસ સમસ્યા - શા માટે જવાબ તે શું છે? કોઈની બાબત અંગે ગેરસમજ છે? તમે સમસ્યા મળ્યું, પરંતુ તો પણ ફક્ત મને તે થોડી સમજાવવા માંગો છો વધુ, હું હવે આવું કરવા માટે ખુશ છું. તેથી હું તમને ગાય્ઝ કહ્યું છે કેટલાક તૈયાર આવે ક્વિઝ 0 વિશે વિચારો. તેથી જે અમને વિચાર કરવા માંગો છો પ્રશ્નો કે શરૂ ક્વિઝ 0 વિશે ટિપ્પણી? [PAPER rustling] જેસન HIRSCHHORN: જવાબ નથી બધાને સંપૂર્ણપણે હતી. તેથી મને ખબર [LAUGHS] કેટલાક પ્રશ્નો હોય છે ક્વિઝ 0 વિશે. બરાબર. હા. Ompica. OMPICA: 10 સંખ્યા. જેસન HIRSCHHORN: 10 સંખ્યા. જે એક નંબર 10 હતી? OMPICA: આ - જેસન HIRSCHHORN: હું haven't - OMPICA: આ સમાવેશ થાય છે - જેસન HIRSCHHORN: 10 સંખ્યા આઠ હતી હું - હું આઠ લખી? OMPICA: અરે વાહ. જેસન HIRSCHHORN: બરાબર. તેથી અન્ય પ્રશ્ન તમે કરી શકે છે હું છું પૂર્વજ્ઞાન, અગમબુદ્ધિ હતી પૂછવામાં? જવાબ હા છે. ક્વિઝ પહેલાં વિભાગમાં, હું પૂછવામાં તમે ગાય્ઝ સ્ટર્લીંગ બંને કોડ કરવા અને આઠ હું. બંને થયું ક્વિઝ પર દેખાય છે. તેથી આસ્થાપૂર્વક, તમે ચૂકવણી કે ધ્યાન. તમે હતા, તો પછી તમારી પાસે હોત કદાચ તે બે પર સારી થાય છે. પરંતુ આઠ હું, અમે ન ખરેખર કોડ તે વર્ગ, પરંતુ તે ફરી હતી, ક્વિઝ પર કહ્યું હતું. તેથી લેવા વસ્તુઓ એક દંપતી હું આઠ કોડિંગ જ્યારે નોંધ કરો. પ્રથમ વસ્તુ, પ્રશ્ન દીઠ હતી તમે ચકાસવા જરૂર છે જો શબ્દમાળા નલ માટે સમાન હતી. એક દંપતી લોકો પાછળથી ચકાસવા માટે પ્રયાસ કર્યો આ કાર્યક્રમ એ જો કૌંસ હું હતી - કે જેથી જે ચોક્કસ અક્ષર શબ્દમાળા - નલ સમાન હતી. પરંતુ તે નલ આવશ્યક છે, યાદ - તેને લાગે છે સારી છે શૂન્ય નિર્દેશક તરીકે નલ - શૂન્ય નિર્દેશક - મેમરીમાં સ્થાને મૂકો જ્યાં તમે ઍક્સેસ ક્યારેય કરી શકો છો. તેથી જો કંઈક તમે નલ સમાન છે તેનો પ્રારંભ હોતું નથી કે જે જાણો છો, અથવા ત્યાં કશું જ નથી. તેથી ઓ, ચાર રચે સ્ટાર ઓ છે કૌંસ હું ચાર રચે છે. તેથી તે, null છે એ કરો અર્થમાં બનાવે છે પરંતુ એ કૌંસ હું null છે. પરંતુ ફરીથી છે - તેથી તે પ્રથમ બાબત હતી તમે શું માનવામાં આવ્યા હતા કે - ખાતરી કરો કે માટે ચકાસણી તમે ખરેખર એક વાસ્તવિક શબ્દમાળા મળ્યો હતો. આગળ, તમે મારફતે પસાર થવા માટે માગે છે શબ્દમાળા દરેક અક્ષર છે. અને તેથી કે જે એ કૌંસ જેવા હશે હું, ઉદાહરણ તરીકે, હું તમારી iterator છે. અને તે અક્ષર લે છે, અને તેની વાસ્તવિક કિંમત વિશે. તમે તેને ચાર રચે તરીકે સંગ્રહ છે, પરંતુ શૂન્ય માટે ASCII કિંમત - એક પાત્ર તરીકે શૂન્ય - વાસ્તવમાં પૂર્ણાંક શૂન્ય નથી. તે તમે કરી શકો છો કે અમુક અન્ય નંબર છે તે ASCII કોષ્ટકમાં જુઓ. તેથી એક રીતે તે માટે યોગ્ય કરવા માટે - માટે સુધારવા માટે કદાચ શ્રેષ્ઠ માર્ગ કે - તે બાદબાકી છે રાજ્ય બહા કિંમત - એક પાત્ર તરીકે શૂન્ય. તેથી ઓછા એક ભાવ, શૂન્ય, અન્ય એક ભાવ. કે તમારી પાસે ગમે નંબર લેશે ચાર રચે છે, અને માટે તે સમાન વિચાર એક વાસ્તવિક પૂર્ણાંક તરીકે નંબર. અને તે અભિગમ એકદમ સરખી છે ઘણા લોકોને આ માં લીધો સમસ્યા સીઝર સાથે, 2 સુયોજિત અને Viginere - તે સંકેત શબ્દો, જ્યારે તમે તેમને ફરતી હતી. તમે એક નંબર તરીકે છે તેથી પછી શૂન્ય નવ માટે, પછી - તેના પર આધાર રાખીને તે અંતિમ સંખ્યામાં જાય છે - તમે તેને મલ્ટીપ્લાય જરૂર 10 ની શક્તિ દ્વારા. કેટલાક લોકો માટે આ બોલ ખસેડવામાં સામે, અને વ્યક્તિગત ગુણાકારની 10 ની શક્તિ દ્વારા નંબર. કેટલાક લોકો ખસેડવામાં પાછળ ફ્રન્ટ - અને તેથી સૌથી વધુ લીધો પ્રથમ નંબરો કમાન્ડર - અને તે બચાવશે વૈશ્વિક કાઉન્ટર ચલ. અને પછી માટે દ્વારા દરેક સમય લૂપ, ગુણાકાર કે વૈશ્વિક જાયન્ટ બનાવવા માટે, 10 દ્વારા ચલ વિરોધ આગામી ચાર રચે માટે જગ્યા નથી. જેથી વગર થોડો ગૂંચવણમાં મૂકે હતી મને બોર્ડ પર લખ્યું. પરંતુ નમૂના ઉકેલ તમારા માટે ઉપલબ્ધ છે. પરંતુ તે મોટી વસ્તુઓ હતા અમે શોધી હતી. પણ ખાતરી કરો કે દરેક બનાવવા માટે કે ચેક વ્યક્તિગત પાત્ર ખરેખર હતી શૂન્ય અને નવ, અને વચ્ચે પાત્ર એક એક જેવા કેટલાક અન્ય પાત્ર, ઉદાહરણ તરીકે. તે અમે જોઈ રહ્યું હતું એ હતા માટે તે પ્રશ્ન છે. કે તમારા પ્રશ્નનો જવાબ આપે છે? OMPICA: અરે વાહ. જેસન HIRSCHHORN: બરાબર. અન્ય કોઇ પ્રશ્નો હોય છે ક્વિઝ 0 વિશે શું? શું સંકલન વિશે શું? એવરીબડી યોગ્ય સંકલન? ના, એક હતા - [LAUGHS] આ વિશે કોઈ પ્રશ્ન સંકલન પ્રક્રિયા? વાહ. [PAPER rustling] જેસન HIRSCHHORN: હા. માઈકલ. માઇકલ: - રેન્ડમ નંબર 7 છે? જેસન HIRSCHHORN: સંખ્યા 7. સંખ્યા 7 રેન્ડમ પૂર્ણાંક વિચાર હતો. ઉત્તમ. તેથી જો તમે એક પૂર્ણાંક આપેલ અને કરી રહ્યાં છો પૂર્ણાંક બી, અને તમે રેન્ડમ માંગો છો એ અને બી વચ્ચે પૂર્ણાંક. અમે ખરેખર આ એક પર લખી શકો છો બોર્ડ, કારણ કે આ એક કોડ એક વાક્ય હતું - એક તે કરવા માર્ગ. તેથી અમે એક તરીકે drand આપવામાં રહ્યા છો કાર્ય અમે ઉપયોગ કરી શકે છે. અને શું drand નથી - તે ક્રમે આવ્યું છે એમ ધારી રહ્યા છીએ - શું પરત drand છે? માઇકલ: 0.0 અને 1.0 વચ્ચેની ફ્લોટ. જેસન HIRSCHHORN: સંખ્યાબંધ - હા. 0 અને 1 ની વચ્ચે નંબર. અને તેથી અમે બી અને એક છે. અને પછી અમે અમારા રેન્ડમ નંબર છે 0 થી 1 drand દ્વારા અમને આપવામાં આવે છે. કેટલાક લોકો ખ મૂકવા પ્રયાસ કર્યો, અથવા ખ બાદ તે અંદર, અથવા કંઈક કૌંસ. એટલે કે, તેઓ છો કે તેનો અર્થ એ થાય આ કાર્ય માટે દલીલો. drand કોઇ દલીલો નથી - GetString કરે છે જેમ કોઇ પણ દલીલો ન લો. તેથી તે બંધ કરો, માત્ર ઓપન કૌંસ છે કૌંસ - અને તે પોતે છે, કાર્ય કૉલ. અને તે તમને એક નંબર આપે છે 0 થી 1. અલબત્ત, અમે સમગ્ર શ્રેણી છે નંબરો સાઇન હોઈ શકે છે ખ 10 છે અને એક 5 છે, અમે ખરેખર, કહો 5 શ્રેણી સાથે નંબર માંગો છો. તેથી અમે જરૂર આગામી વસ્તુ છે શ્રેણી ખ બાદ એક કરીને આ વધવું. જેથી ગુણાકાર છે એમ ધારી રહ્યા છીએ. અને તે અમને આપવી પડશે આપેલ શ્રેણી અંદર. અને તે ચોક્કસ શ્રેણી છે ખ બાદ એક વચ્ચે તફાવત. અને છેલ્લે, તે માત્ર તેને આપીશું - ખ બાદ એક વચ્ચે રેન્જ કહે 5, કે અમને એક આપીશું છે 0 થી 5 માટે નંબર. એક હકીકત 5 છે હોય તો, એમાં વધારો કરવાની જરૂર છે તે છે જ્યાં આ શ્રેણી ખરેખર એક ઉમેરીને, હશે તેવું માનવામાં. જેથી તર્ક અધિકાર મળે છે. અને પછી, તમારી પાસે હોત અન્ય પ્રશ્ન? માઇકલ: ના, હું માત્ર હમણાં ખરેખર મૂક છે. [LAUGHS] જેસન HIRSCHHORN: ના, ખરેખર મૂક છે, ખરું ને. લોકો હોય છે જે આ સંઘર્ષ આ પ્રશ્ન સાથે. અને પછી, અન્ય પ્રશ્ન છે, drand, તમે જણાવ્યું હતું કે, તમે એક ફ્લોટ આપે છે - ફ્લોટ આપે છે. પરંતુ આ કાર્ય ખરેખર પૂછવામાં પૂર્ણાંક પરત આવે છે. તમે બાહ્ય રીતે આ ભૂમિકા કરવાની જરૂર નથી પૂર્ણાંક માટે, આ કારણ કે કામગીરી બધા એક તરીકે માનશે ફ્લોટ - એક અપૂર્ણાંક બિંદુ નંબર તરીકે. આ ઇચ્છા જેમ - પણ આ તો પૂર્ણાંક, આ ઇચ્છા છે યોગ્ય રીતે ગુણાકાર કરી. બધા ગુણાકાર કામ કરશે. તમે તેને અહીં ભૂમિકા જરૂર નથી. હકીકતમાં, તો તમે તેને ભૂમિકા ન જોઈએ. તે કરશે - જો તમે નંબર ભૂમિકા છો કે 0 અને 1 ની વચ્ચે છે - રેન્ડમ નંબર છે, અપૂર્ણાંક બિંદુ - પછી તે ક્યાં તો, માત્ર એ 0 અથવા 1 હોઇ શકે છે તમે તે ચોકસાઇ ગુમાવવા પડશે. પરંતુ અંતે, જ્યારે તમે પાછા આવો, તે આપોઆપ મળે છે પૂર્ણાંક તરીકે પરત મોકલવામાં. જેથી તમે નથી જરૂર નથી કે પોતાને કાસ્ટિંગ. તેથી આ જવાબ હતો કે પ્રશ્ન, 7 નંબર. ક્વિઝ 0 પર કોઈપણ અન્ય પ્રશ્નો છે? અરે વાહ, એની. ANNIE: અમે ફરી યાદ આવવું જ્યારે ઉપયોગ કરો છો - જ્યારે અમે પુનરાવર્તન આંટીઓ ઉપયોગ કરી શકું? જેસન HIRSCHHORN: જ્યારે તમે ઉપયોગ કરો ફરી યાદ આવવું - તેથી વધુ સામાન્ય રીતે, રિકર્ઝન વિરુદ્ધ ના પક્ષ - વિપક્ષ પુનરાવર્તન અભિગમ. કોઈની એક તરફી અથવા કોન ઓફર કરી શકે છે? કૃપા કરીને? કોઈની નથી. કોણ એક તરફી અથવા કોન આપી શકે છે? [PAPER rustling] વિદ્યાર્થી 1: ફરી યાદ આવવું ઓછી છે કોડિંગ - ઓછુ ટાઈપ? જેસન HIRSCHHORN: તેથી સામાન્ય રીતે, રિકર્ઝન ખાસ કરીને, એક કાર્ય - અથવા મર્જ જેવા અલ્ગોરિધમનો સૉર્ટ - જે પોતે પૂરું પાડે ફરી યાદ આવવું અભિગમ માટે - વધુ સરળ હોઈ શકે છે પુનરાવર્તિત કોડ કરવા. અને માત્ર વધારે અર્થમાં બનાવવા પુનરાવર્તિત તે કરવા. જેથી રિકર્ઝન માટે એક તરફી છે. અન્ય? અરે વાહ? વિદ્યાર્થી 2: રિકર્ઝન માટે કોન - તે વધુ મેમરી ઉપયોગ કરે છે. જેસન HIRSCHHORN: તેથી યોગ્ય બરાબર. એ યાદ આવવું કાર્ય ઉમેરી રહ્યા રાખશે સ્ટેક સ્ટેક માટે ઘડે છે. તમે ઘણાં પર સંચાલન કરી રહ્યાં તેથી જો નંબરો, અને આ કૉલ કરવાની જરૂર ઘણો કામ, તો પછી તમે ચોક્કસપણે કરશે જ્યારે, વધુ મેમરી લે છે પુનરાવર્તન અભિગમ માત્ર સંહાર કરશે , સ્ટેક પર ફ્રેમ ગંજી કારણ તે બધા એક કાર્ય અંદર થાય છે. કોઈપણ અન્ય પક્ષ - વિપક્ષ? અરે વાહ. વિદ્યાર્થી 3: રિકર્ઝન માટે ગુણ. તમે નક્કી કરવાની જરૂર નથી આગળ કેટલી વખત આ કોડ વારંવાર કરી હતી. તમે એક પૂર્વનિર્ધારિત સંખ્યા હોઈ શકે છે પછી તમે ફરી વળવું છે કે વખત રિકર્ઝન, વધુ સારું છે કારણ કે તે પરિણામ છે. જેસન HIRSCHHORN: હું એ વાત સાચી લાગે છે. પરંતુ હું બંને કિસ્સાઓમાં લાગે તમે ક્યારેય - તમે કદાચ અમુક મળી જશે વપરાશકર્તા તરફથી ઇનપુટ. અથવા આ કાર્ય કેટલાક ઇનપુટ પાસે હોત કે નક્કી કરશે કેટલી વખત તે ચાલતી હોવી જોઈએ. તેથી સામાન્ય રીતે, તમે હાર્ડ કોડ નથી કરી - પણ પુનરાવર્તન અભિગમ - કેવી રીતે ઘણી વખત કે લૂપ ચાલે. શું તમે ખરેખર હતા બીજા હતું એની, વિશે વિચારવાનો? બરાબર. તેથી તે કદાચ બે છે - સૌથી તરફી અને સૌથી મોટી વિરુદ્ધ ફરી યાદ આવવું માટે કોન પુનરાવર્તન અભિગમ. બરાબર. ક્વિઝ 0 પર બીજું કંઇ? માતાનો પર ખસેડો. ફાઈલ I / O અદભૂત ટૂંકા છે આ અઠવાડિયે ફાઇલ પર I / O નો કે આસ્થાપૂર્વક જો તમારી પાસે ઘણા જોયા છે સમય અને પ્રશંસક હતા. કામ ઘણું છે કે ગયા, અને હું કર્યું તે અત્યંત ઉપયોગી છે સાંભળ્યું. હું પણ, આ સ્લાઇડ પર કડી સમાવેશ થાય છે કિસ્સામાં તમે થયું નથી એક તે 10 વખત જોવા માટે તક. તેથી, અમે થોડા સમય માટે આ બોલ પર જાઓ જવું છે ખોલીને કામ કરવા માટે અનેક પગલાં ફાઇલો સાથે, અને પછી અમે જોઈ રહ્યા છે પહેલાં કોડિંગ સમસ્યા ડાઇવ સમસ્યા સમૂહ તપાસ. તેથી ફરી, હું આ મૂકી જાઉં છું સ્ક્રીન છે, પરંતુ હું વાત જાઉં છું અમે રહ્યાં છો તે વિશે માત્ર એક મિનિટ ફાઇલ સાથે અહીં કરી I/O-- કે શું અર્થ છે? કે અમે બનાવી શકો છો કે જે થાય છે અમારા કાર્યક્રમો, અને પછી અમારી કાર્યક્રમો છે બહાર નીકળો, અને કોઈ પણ અસર કરી હતી, ન અમારા કાર્યક્રમ બહાર વિશ્વમાં. પરંતુ અમે ફાઇલો સાથે કામ શરૂ છે - બંને તેમને વાંચન અને ઓનલાઇન તેમને - અમે પર થોડી અસર કરી શકે છે અમારા કાર્યક્રમ બહાર વિશ્વ. જેમ માઈક્રોસોફ્ટ વર્ડ સમર્થ નહિં હોય તો પછી, કોઈપણ શબ્દ દસ્તાવેજો બનાવ્યા માઇક્રોસોફ્ટ વર્ડ, તમારા બધા છોડી એક વખત કામ ચાલ્યો આવશે, અને તે કરશે ખરેખર નકામી છે. અમે આખરે આપની સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો અસર કરી શકે છે કે પ્રોગ્રામ લખવો પાંચ તેમને આસપાસ વિશ્વમાં, બંને લઈને ફાઈલો દ્રષ્ટિએ અને - જટિલ ઇનપુટ્સ ફાઇલો મારફતે, અને એ પણ રસપ્રદ ઓનલાઇન અને આકર્ષક આઉટપુટ - ફાઇલોના વિવિધ પ્રકારો દ્રષ્ટિએ. અમે શરૂઆત કરી છે તેથી કે શા માટે છે ફાઇલો સાથે કામ કરવા માટે કેવી રીતે શીખે છે. વધુ ચોક્કસ રીતે, શું અમે નીચે પ્રમાણે છે શું. તે ખૂબ જ સરળ છે. ત્યાં પગલાં માત્ર એક દંપતિ છે, અને તેઓ આ કોડ પર અંહિ યાદી થયેલ છે. તેથી અમે મારફતે જાઓ રહ્યા છીએ રેખા દ્વારા આ કોડ રેખા. પ્રથમ, તમે પ્રકાશિત જુઓ - તમે ફાઈલ સાથે કામ, કરી રહ્યા હો ત્યારે અનુલક્ષીને ફાઇલ પ્રકાર તે છે તમે તેને ખોલવા માટે જરૂર છે. અને તે fopen માટે કૉલ સાથે છે - અહીં. તમે ફાઇલનું નામ સમાવેશ થાય છે. ફાઇલ, તમારા ડિરેક્ટરીમાં ન હોય તો અથવા ફોલ્ડર જ્યાં આ કાર્યક્રમ જીવન, તો પછી તમે પણ સમાવેશ કરવાની જરૂર તે ફાઈલ છે જ્યાં પાથ. અમે ધારી રહ્યા છીએ કે આ "text.txt" કહેવાય ફાઈલ - એ સાદી લખાણ દસ્તાવેજ - પાંચ છે આ કાર્યક્રમ તરીકે જ ફોલ્ડર છે. જેથી રાખો અન્ય વાત છે મન - કે જે તમે ફાઈલ ખોલવા માંગો છો બીજે ક્યાંય, તમે ખરેખર જરૂર છે તેના સ્થાન સમાવેશ થાય છે. બીજું, તમે એક દલીલ પસાર કરી શકે છે fopen, અને તે તમે કરવા માંગો છો શું છે આ ફાઇલ સાથે. ત્રણ મુખ્ય દલીલો કે છે તમે fopen પસાર રહ્યા છીએ. કોણ મને તે ત્રણ આપી શકે છે? કોણ મને તેમાંથી એક આપી શકે છે? હા. વિદ્યાર્થી 4: આ ફાઇલ નામ? જેસન HIRSCHHORN: માફ કરશો. તમે પસાર કરી શકો છો ત્રણ મુખ્ય દલીલો બીજી દલીલ fopen કરાવે છે. તમે સાચા છો - ફાઈલ નામ પ્રથમ દલીલ છે. પરંતુ fopen બીજી દલીલ છે સામાન્ય રીતે ત્રણ શબ્દમાળાઓ, અને - હા. Aleja. ALEJA: ઉમેરો માટે. જેસન HIRSCHHORN: એક, તમે કરવા માંગો છો પહેલેથી જ અસ્તિત્વમાં છે કે જે ફાઈલ સાથે ઉમેરી. વિદ્યાર્થી 5: વાંચો માટે આર. જેસન HIRSCHHORN: A, તમે જો ફાઇલ વાંચવામાં કરવા માંગો છો. વિદ્યાર્થી 6: લખવા માટે ડબલ્યુ. જેસન HIRSCHHORN: અને, W જો તમે ફાઈલ લખવા માંગો છો. તેથી આ કિસ્સામાં, અમે લખી રહ્યાં ફાઇલ માટે, જેથી અમે W છે. તમે તેને ખોલો, તમે પણ સેવ છે આ ક્યાંક ફાઇલ, અને તે સાથે છે ડાબી બાજુ પર કોડ સોંપણી ઓપરેટર - હું એક ફાઇલ માટે નિર્દેશક ઓનલાઇન છું આ કિસ્સામાં, ફાઈલમાં, કહેવાય છે. અમે ચિંતા નથી જઈ રહ્યા છે આ બધા કેપ્સ ફાઈલ બાબત છે. તે બદલાય કહેવું, તે લાંબા છે zeros અને શૈલીઓનો સ્ટ્રીમ. અને તે અમે જોઈ રહ્યા છે તે કેવી રીતે તે ધરાવે છે અને તે સમજે છે. અમે જરૂર આગામી વસ્તુ - અને આ અતિ મહત્વનું છે - તમે જ્યારે ફાઈલ ખોલવા - હકીકતમાં, તમે malloc કૉલ ત્યારે, માટે ઉદાહરણ તરીકે, અને અમુક મેમરી વિશે અને પ્રયાસ અને તમે હંમેશા એક નિર્દેશક માં તેને સંગ્રહો ખાતરી કરો કે ચેક કરવા માંગો છો કે કાર્ય નલ આપ્યા નથી. તેથી આ કિસ્સામાં, અમે બનાવવા માટે ચકાસણી કરવામાં આવે છે અમે ખરેખર ખોલી ખાતરી કરો કે આ યોગ્ય રીતે ફાઈલ, અને હતી અમારા કાર્યક્રમ કોઈ ભૂલ. આગળ, એક વાર અમે ખાતરી કરો કે ચકાસાયેલ છે અમે અમે કરી શકો છો, કામ ફાઈલ હોય કે , લખો, અથવા વાંચવામાં અથવા ફાઈલ સાથે ઉમેરી. આ કિસ્સામાં, હું માત્ર છાપવા છું આ ફાઇલ સાથે એક વાક્ય. હું કેવી રીતે છે? ઠીક છે, હું આ કાર્ય ઉપયોગ કરું છું fprintf કહેવાય છે. તમે ઉપયોગ કરવામાં આવશે બધા વિધેયોને , માટે લખી અથવા પ્રમાણે, અથવા વાંચન જ્યારે ફાઈલો હેરફેર માટે સમાન હશે તમે પહેલાં જોઈ છે, પરંતુ કાર્યો પત્ર એફ સાથે શરૂ કરવા માટે, ફાઇલ માટે ઊભા. અને fprintf અમારા સામાન્ય પ્રિન્ટ વિપરીત એપ્લિકેશન, માત્ર એક વધારાના દલીલ લે છે, અને તે ફાઇલ છે જ્યાં તમે માટે આ રેખા પ્રિન્ટ માંગો છો. હું કંઈ નથી ohai જમણી. હું ત્રીજા નથી printf માટે દલીલ - અથવા બીજી દલીલ printf માટે, ત્રીજા દલીલ fprintf માટે, કારણ કે હું અહીં કોઈ પણ જગ્યામાં નથી. હું કોઇ ચલો સમાવેશ કરી રહ્યો છું. પરંતુ ફરીથી, fprintf અને આ ફાઈલની બધા ફાઈલો સાથે ચલાવે છે કાર્યો સામાન્ય રીતે ફાઇલ જરૂર જવું છે જેના પર તેઓ સંચાલન કરી રહ્યાં છો. છેલ્લે, છેલ્લા મહત્વની વસ્તુ શું જેમ, ફાઇલ બંધ છે સાથે - અમે કંઈક malloc જ્યારે, આપણે કદાચ કંઈક મુક્ત કરવા માંગો છો મેમરી છિદ્ર હોય છે - અમે માંગો છો અમારી ફાઈલ બંધ કરો. આ કાર્યક્રમ બંધ કર્યા વિના બહાર તો ફાઇલ, મતભેદ કંઈ જશે છે ખોટું, ખાસ કરીને જો તે એક નાની ફાઇલ હતી. પરંતુ તે ચોક્કસપણે સારી કોડિંગ શૈલી છે અને હંમેશા તમારી ફાઈલ બંધ પ્રેક્ટિસ તમે તેનો ઉપયોગ સમાપ્ત કરી રહ્યા હો ત્યારે. જેથી ફાઈલની મૂળભૂત I / O છે તમે કદાચ પહેલા તે જોવા મળે છે, અથવા કરી છે કે વિચિત્ર ટૂંકમાં તે જોયા હતા. કોઈની પહેલાં, કોઇ પ્રશ્નો હોય તો અમે કેટલાક અભ્યાસ કોડિંગ જાય ફાઈલ વિશે સમસ્યાઓ, I / O નો અથવા પગલાંઓ હું માત્ર પર ગયા? [લખીને લાગે] જેસન HIRSCHHORN: તમે છો એક પ્રશ્ન, AVI છે? આવી: ના, જેસન HIRSCHHORN: બરાબર. હું બીજા રાહ જાઉં છું સાત સેકન્ડ. [LAUGHS] કે જે ખરેખર સારા સંકેત છે. તમે ગાય્સ માત્ર પસંદ નથી પ્રશ્નો પૂછી. કે દંડ છે. બરાબર. તેથી અમારા પ્રથમ અભ્યાસ સમસ્યા અમે હોય છે, છે કાર્ય નકલ રહ્યું આદેશ વાક્ય સાધન છે કે તમે કદાચ નકલ - પહેલા - નકલ સાધન. તમે સી.પી. લખો અને પછી તેને પસાર કરવા માટે બે તમારા ટર્મિનલ માં દલીલો, તમે કરી શકો છો ફાઈલ નકલ કરો. અને તે અમે જોઈ રહ્યા છે તે છે હમણાં લખી. તેથી ફરીથી, આ સ્લાઇડ બંધ પુસ્તિકા વાંચ્યા પછી મને કરશો લઈ જાય છે કે એક કાર્યક્રમ લખવા માટે બે અને બે આદેશ વાક્ય માત્ર દલીલો - સ્ત્રોત ફાઇલ અને ગંતવ્ય ફાઇલ - નકલ સ્ત્રોત સમાવિષ્ટો અંતિમ મુકામ ફાઇલમાં ફાઇલ એક સમયે એક બાઈટ. તેથી તે માટે પૂછો ઘણો છે. ફરીથી, આ એક સારો ઉપાય છે સી કોડ પર કોઈ રન નોંધાયો જાય છે, પરંતુ નથી પગલાં એક દંપતિ માં તોડી. પ્રથમ, તર્ક વિશે વિચાર કરો - બરાબર હું શું તમને પૂછવા છું - અને તમામ સમજી આ સમસ્યા માટે પગલાં. નથી સી, ​​માત્ર કેટલાક સ્યુડોકોડનો માં, અથવા તો એક માનસિક મોડેલ શું થઈ રહ્યું છે તે. આગળ, તમે સ્યુડોકોડનો નીચે ગયા પછી, બહાર આકૃતિ કેવી રીતે સ્યુડોકોડનો સાધનો અને અમે કર્યું વસ્તુઓ પર નકશા સી માં ઉપયોગ શીખી અને છેલ્લે, એક વાર તમે બધા કે છે તેની સાથે, તમે આ સમસ્યા કોડ શકે. માટે 5 થી 10 મિનિટ લો આ સમસ્યા પર કામ કરે છે. હું સૂચનો મૂકીશું પાછા બીજા માં. અને પછી અમે પર જાઓ રહ્યા છીએ સ્યુડોકોડનો, અને કોડ તે એક જૂથ તરીકે રહે છે. તમે જ્યારે તમારી પાસે કોઈ પ્રશ્નો હોય તો આ પર કામ, એકત્ર નિઃસંકોચ તમારા હાથમાં છે, અને હું આવશે આસપાસ અને તેમને જવાબ. વિદ્યાર્થી 7: હું સ્વાઇપ કરી શકો છો કાગળ એક ભાગ? જેસન HIRSCHHORN: શું ચાલે છે? [લખીને લાગે] જેસન HIRSCHHORN: બરાબર. પ્રથમ સ્યુડોકોડનો પર જાઓ, અને પછી હું તમને થોડા વધુ આપવા પડશે મિનિટ કોડિંગ સમાપ્ત કરવા માટે. મને કોણ બોલ શરૂ કરવા માંગો છો પ્રથમ વાક્ય સાથે આ કાર્ય માટે સ્યુડોકોડનો? વિદ્યાર્થી 8: ખાતરી કરો કે માટે ચકાસો તમે બે ફાઈલો આપવામાં આવી હતી. જેસન HIRSCHHORN: બરાબર. અને અમે જાણતા ન હો તો? વિદ્યાર્થી 8: હું 0 પરત ફર્યા હતા. જેસન HIRSCHHORN: અમે 0 આવો જોઈએ? વિદ્યાર્થી 8: એક પાછા ફરો - blanking. માફ કરશો. જેસન HIRSCHHORN: અરે વાહ. કદાચ નથી 0. 0 બધું સારી હતી એનો અર્થ એ થાય છે. બરાબર. જેથી પ્રથમ વાક્ય છે સ્યુડોકોડનો છે. કોણ સ્યુડોકોડનો બીજા વાક્ય છે? વિદ્યાર્થી 9: ફાઈલો બંને ઓપન? જેસન HIRSCHHORN: બંને ફાઈલો ખોલો. બરાબર? વિદ્યાર્થી 10: જોવા માટે ચકાસો ફાઇલ NULL છે તો શું? જેસન HIRSCHHORN: ખાતરી કરવા માટે ચકાસો ખાતરી કરો કે NULL છે નથી. એક અલગ તરીકે - 0 સ્લેશ - કે NULL છે? વિદ્યાર્થી 11: ના, જેસન HIRSCHHORN: તે નલ નથી. તે નલ ટર્મીનેટર કહેવામાં આવે છે. તે ખરેખર માત્ર એક જ એલ સાથે જોડણી છે. જેથી વિરૂદ્ધ કંઈ ચકાસણી - કે ખરેખર એક પાત્ર છે - જેથી વિરૂદ્ધ કંઈ છે ચકાસણી એ જોવા માટે ચકાસણી તરીકે જ નથી તો તે નલ સમકક્ષ હોય છે. અને કેટલાક લોકો - તેમના અંગેની ક્વિઝ અને તેમની સમસ્યા પર સેટ - પાંચ મળી છે ભેળસેળ તે બે. પરંતુ તે બે છે વિવિધ હકીકતમાં. એક શબ્દમાળા થાય છે - એક 0 માટે નિર્દેશક છે. વિદ્યાર્થી 12: તમે શા માટે કરવા માટે ચકાસણી કરશે ફાઈલો નલ નથી ખાતરી કરો કે તમે તેમને ખોલવા પહેલાં? જેસન HIRSCHHORN: તેથી ઓપન બચાવે તે ફાઈલ માં કંઈક. અને તમે અહીં પાછા જાઓ - તેથી આ વાક્ય - fopen - તમે એક સરનામું અને સ્ટોર આપશે તે કામ કરે છે જો ફાઇલમાં તે સરનામું. તે કામ ન કરે તો, તે નલ સ્ટોર કરશે - વિદ્યાર્થી 12: ઓહ. બરાબર. તમને મળી. જેસન HIRSCHHORN: ફાઇલ છે. તેથી તમે NULL માટે ચકાસણી કરી શકતા નથી જો તમારે તેમની ખોલી છે તે પહેલાં. નલ કંઈક ન હતી એનો અર્થ એ થાય યોગ્ય રીતે કામ કરે છે. બરાબર. તેથી ખાતરી કરો કે ન તો છે તે જાણવા માટે તપાસ? અથવા શું? અમે શું વિચારો છો? અમે તે સાથે જવા પડશે. વિદ્યાર્થી 13: છે. જેસન HIRSCHHORN: છે? દસ્તા? વિદ્યાર્થી 13: છે. જેસન HIRSCHHORN: બરાબર. અમે કેટલાક હોય એવું લાગે છે પર સર્વસંમતિ. નલ દસ્તા. બરાબર, સ્યુડોકોડનો આગામી રેખા. કોણ હજુ સુધી મને એક વાક્ય આપી નથી? અમે તમને માટે રાહ જોવી પડશે. અરે વાહ. વિદ્યાર્થી 14: તમે વાંચી છે પ્રથમ ફાઇલમાંથી? જેસન HIRSCHHORN: બરાબર. વિદ્યાર્થી 14: અથવા આપણે fscanf ઉપયોગ કરવો કે કે પ્રથમ ફાઈલ કંઈક? જેસન HIRSCHHORN: તેથી અમે કરવા માંગો છો પ્રથમ ફાઇલ વાંચવામાં અને - માતાનો અહીં મૂકો. સ્ત્રોત ફાઇલ વાંચવામાં. અને પછી, આપણે પછી શું કરવું સ્ત્રોત ફાઇલ વાંચવામાં? બીજા કોઇની? વિદ્યાર્થી 15: લખો માં અંતિમ મુકામ ફાઈલ? જેસન HIRSCHHORN: અમે લખી અંતિમ મુકામ ફાઇલ, અને - બરાબર. અમે બીજું શું ખૂટે છે? મને આપેલ નથી જે બીજા કોઇની હજુ સુધી કોડ વાક્ય - સ્યુડોકોડનો છે. અરે વાહ. વિદ્યાર્થી 16: કદાચ તમે હંમેશા ચકાસી શકો છો કે શું માટે વાંચવા માટે કંઈક છે, આગળના વાક્ય ગમે છે? આગળના વાક્ય જેવા છે કે, જો તે હાજર હોય છે. [ઇલેક્ટ્રોનિક બીપ] જેસન HIRSCHHORN: અરે. તે મારા જર્નલ સોફ્ટવેર છે. અરે વાહ? વિદ્યાર્થી 16: અરે વાહ. જેસન HIRSCHHORN: તેથી આપે મને તે વધુ એક વખત. વિદ્યાર્થી 16: છે કે નહીં તેની ખાતરી પાંચ થી હજી પણ આગામી રેખા વાંચવા માટે સ્રોત ફાઇલ. જેસન HIRSCHHORN: બરાબર. તેથી અમે લીટીઓ વાંચી રહ્યા છો - અહીં બાઇટ્સ વાંચી હતી - પરંતુ તમે યોગ્ય છો. અમે ત્યાં સુધી વાંચવા અને લખવા માટે માંગો છો વધુ બાઇટ્સ છે. બરાબર. અને તેથી આ ખરેખર ઇન્ડેન્ટેડ હોવું જોઈએ થોડી, તેઓ ત્યાં હેઠળ છો, કારણ કે. અધિકાર? અમે બાઇટ્સ નથી ત્યાં સુધી આપણે રહ્યા છીએ સ્ત્રોત ફાઇલ વાંચવામાં અને લખી અંતિમ મુકામ નોંધાવી છે. અને પછી, છેલ્લા શું છે સ્યુડોકોડનો વાક્ય? આપવામાં નથી જે કોઈ વ્યક્તિ મને કંઈક હજુ સુધી. વિદ્યાર્થી 17: ફાઈલો બંધ કરો? જેસન HIRSCHHORN: ચોક્કસ. ફાઈલો બંધ કરો. તેથી અમારા સ્યુડોકોડનો છે. હું માં સ્યુડોકોડનો મૂકી જાઉં છું gedit, અને બે મિનિટ અમે એક સાથે આ કોડ છે. બરાબર. અમને એક જૂથ તરીકે શરુ કરીએ. Nishant, હું મારી નવી ફાઈલ છે. હું આ ખોલી છે. નામ વિનાનો દસ્તાવેજ 1. હું કરવું જોઈએ પ્રથમ વસ્તુ શું છે? Nishant: લાઈબ્રેરીઓ સમાવેશ કરો? જેસન HIRSCHHORN: બરાબર. શું લાઈબ્રેરીઓ? Nishant: stdio.h, stdlib.h, હું માનું છું કે? જેસન HIRSCHHORN: બરાબર. માટે stdlib શું છે? Nishant: હું ભૂલી ગયા છો. જેસન HIRSCHHORN: બરાબર. તેથી stdio સમાવેશ થાય છે. હું તે પહેલાં શું કરવું જોઈએ હું કોડિંગ શરૂ? Nishant: કોઇ શીર્ષક લખો? જેસન HIRSCHHORN: કેવી રીતે તે રંગીન હું કરી શકું? [Interposing અવાજો] Nishant: તમે કેવી રીતે તે રંગીન વિચાર છે? જેસન HIRSCHHORN: કેવી રીતે હું કોડિંગ રંગ છે? Nishant: મને ખબર નથી. ઓહ. સાચવો. જેસન HIRSCHHORN: સાચવો. હા. હું. સી તરીકે સેવ જોઈએ. તેથી cp.c. તરીકે ડેસ્કટોપ પર તેને સંગ્રહો મીઠી. અને હું સંપૂર્ણ શૈલી મેળવવા માંગો છો પોઇન્ટ, શું જોઈએ હું ટોચ પર સમાવેશ થાય છે? Nishant: તમે તમારું નામ, નામ લખી શકે છે આ કાર્યક્રમ, અને હેતુ સાથે સાથે કાર્યક્રમ? જેસન HIRSCHHORN: સારી લાગે છે. ઉત્તમ. તેથી તમે સંપૂર્ણપણે અમને બોલ શરૂ કર્યું છે. # સમાવેશ થાય છે - અમે લખીશ - બરાબર. તેથી હું હું જવા માટે સુયોજિત છું લાગે છે. કોણ મારા માટે કોડ પ્રથમ વાક્ય છે - અથવા કોડ પ્રથમ લીટીઓ કે તે અમારી પ્રથમ સંતોષવા લેશે સ્યુડોકોડનો ટિપ્પણી? તમે. વિદ્યાર્થી 18: તે પૂર્ણાંક જ કરવું જોઈએ, argc અને પછી ઘરનાં પરચૂરણ કામો * argv? જેસન HIRSCHHORN: મને લાગે છે તમે સાચા છો. આપણે તેના મુખ્ય, ઓપન કૌંસ ઈન્ બદલવા દો, પૂર્ણાંક argc, અલ્પવિરામ, ચાર * argv? કે ગમે છે? વિદ્યાર્થી 18: કૌંસ. જેસન HIRSCHHORN: કૌંસ. ઓપન કૌંસ, બંધ કૌંસ, બંધ કરો પિતૃ. પૂર્ણ બનાવે છે. હવે હું આદેશ વાક્ય દલીલો કરી શકો છો. બરાબર. અમે બે ફાઈલો આપવામાં રહ્યા છો તેની ખાતરી કરો. સાથે સાથે તમે મને કે આપી શકે છે. વિદ્યાર્થી 18: argc તો - આ એક 3 સમાન નથી. જેસન HIRSCHHORN: જો ઓપન કૌંસ 3 argc સમાન નથી? વિદ્યાર્થી 18: અરે વાહ, ને પાછો 1 અથવા કંઈપણ. જેસન HIRSCHHORN: માફ કરશો. વિદ્યાર્થી 18: 1 વળતર અથવા કંઈપણ. જેસન HIRSCHHORN: 1 પાછા ફરો. બરાબર? સરસ. બંને ફાઈલો ખોલો. મને કોણ બંને ફાઈલો ખોલો મદદ કરી શકે? કોણ હજુ સુધી મને કોડ આપી નથી? કર્ટ? કર્ટ: તેથી તમામ કેપ્સ એફ આઇ એલ ઇ સ્ટાર સ્ત્રોત. જેસન HIRSCHHORN: હું જાઉં છું સ્વરો લેવા. તે ઠંડી રહે છે. તે Tumblr જેવા છે. વિદ્યાર્થી 18: fopen સમકક્ષ - જેસન HIRSCHHORN: fopen કેટલા? વિદ્યાર્થી 18: ઓપન કૌંસ, argv, ઓપન કૌંસ. જેસન HIRSCHHORN: રાહ જુઓ. માફ કરશો. ઓપન કૌંસ. બરાબર. વિદ્યાર્થી 18: અરે વાહ. Argv પેટા 1. જેસન HIRSCHHORN: પેટા 1? વિદ્યાર્થી 18: અરે વાહ. Argv ઓપન કૌંસ 1 - હા. અને પછી અલ્પવિરામ કરો અને પછી ખોલો ડબલ ભાવ, આર, ડબલ ભાવ, બંધ કૌંસ, અર્ધવિરામ. જેસન HIRSCHHORN: સ્વીટ. અને શું અન્ય એક વિશે શું? વિદ્યાર્થી 18: ખૂબ સમાન છે, પરંતુ તેના બદલે એસ આર સી, તમે ડી એસ ટી કૉલ છો. જેસન HIRSCHHORN: ઓઓ! હું જ ગમે છે. વિદ્યાર્થી 18: જસ્ટ ડી એસ ટી. અરે વાહ. અને પછી,, 2 ઓપન કૌંસ argv. અરે વાહ. અને પછી W બદલે આર. અરે વાહ. જેસન HIRSCHHORN: સરસ. રેખાઓ આગલા બે. પણ, કોઇ ઉમેરવા વસ્તુઓ હોય તો અમે કર્યું છે કે રેખા, મફત લાગે સાથે સાથે તે ઉમેરો. ખાતરી કરો કે ન તો NULL છે માટે ચકાસો. કોણ મને હું જરૂર કોડ આપી શકે છે સ્યુડોકોડનો કે વાક્ય સંતોષવા? આર્ચર. તીરંદાજ: src સમકક્ષ સમકક્ષ હોય તો નલ કે ડીએસટી સમકક્ષ સમકક્ષ હોય નલ, પછી તમે પાછા - જેસન HIRSCHHORN: શું છે? તીરંદાજ: 2 વળતર? જેસન HIRSCHHORN: 2 પાછા ફરો. તેથી ઓપન કૌંસ src સમકક્ષ હોય તો નલ સમકક્ષ, અથવા - કે thing's ગમે - પાઇપ? પાઈપ? અમે પાઇપ તે કહી શકશો. પાઇપ, પાઇપ, ડીએસટી સમકક્ષ સમકક્ષ હોય નલ, 2 આવો. બરાબર? અમે બાઇટ્સ નથી ત્યાં સુધી - અમે પ્રકારના આ પગલાં પર છૂટી અહીં જઈ ના સ્યુડોકોડનો ભાગ છે. પરંતુ ત્યાં સુધી અમે બાઇટ્સ નથી - કે અવાજ જેવી શું કરે છે? સી માળખું કયા પ્રકારની - પરંતુ હું શબ્દ માળખું ઉપયોગ કરતા નથી, અમે ઉપયોગ શરૂ કરવા માટે જઈ રહ્યાં છો, કારણ કે અન્ય કિસ્સાઓમાં - પરંતુ સી સાધન જેવા કે અવાજ કરે છે વિદ્યાર્થી 19: એક લૂપ. જેસન HIRSCHHORN: એક લૂપ. લૂપ જેવા ધ્વનિ. તેથી જે મને પ્રથમ વાક્ય આપી શકે છે અહીં લૂપ કોડના? તમે પણ પસંદ કરી શકે છે તે પ્રકારની તમે મને આપી જો લૂપ કરો તમે, માંગો છો કોડ આ વાક્ય. ત્રણ પ્રકારના હોય છે. તમે પસંદ કરો. હું એક તે સૂચવે છે. Avi. તમે જે એક માંગો છો? આવી: માટે. જેસન HIRSCHHORN: માટે. આવી: હું શૂન્ય બરાબર પૂર્ણાંક. જેસન HIRSCHHORN: બરાબર. આવી: હું વિશે ખાતરી નથી આ ભાગ. પરંતુ હું માપ કરતાં ઓછી છે સ્ટાર સ્ત્રોત પર આધાર રાખીને? હું કે ખાતરી નથી. જેસન HIRSCHHORN: બરાબર. તમે કરવા માંગો છો કારણ કે: આવી ફાઈલ માપ, અધિકાર? જેસન HIRSCHHORN: તેથી આ કદાચ નહીં કરે અમને વાસ્તવિક માપ આપી બાઈટમાં કરો. તેથી અમે બીજું શું કરી શકે? લૂપ અન્ય પ્રકાર શું છે? અથવા આપણે આ માટે લૂપ સાથે નાસી જોઈએ? વિદ્યાર્થી 20: તમે જ્યારે લૂપ કરો શકે છે? અને પછી, તમે શું કરવા માંગો છો you'd છે - અમે ફાઈલ માટે ચાર રચે છે * હોય છે. અમે ફક્ત incrementing રાખવા તેથી જો કે અમે આ નલ પાત્ર શોધવામાં છો ત્યાં સુધી તે ઓવરને? અથવા કોઈ, ફાઈલો કેવી રીતે કામ નથી મળતો? જેસન HIRSCHHORN: તેથી અમે રાખી શકો છો * એ ઘરનાં પરચૂરણ કામો incrementing અમે નલ શોધવા સુધી - વિદ્યાર્થી 20: અનિવાર્યપણે ચાલુ રાખવામાં અક્ષર દ્વારા અક્ષર અમે હિટ સુધી આ ફાઈલ ઓવરને. જેસન HIRSCHHORN: હા. જેથી અમે કરવા માંગો છો છે. અમે વાંચન, અક્ષર રાખવા માંગો છો અક્ષર, અમે મેળવવા સુધી આ ફાઈલ ઓવરને. વિદ્યાર્થી 20: અરે વાહ. શોધો - અંત અથવા સ્ટોપ સાઇન શું છે લખાણ ફાઈલ ઓવરને અંતે. જેસન HIRSCHHORN: બરાબર. તેથી અમે ફાઈલ ઓવરને મેળવવા છે - આપણે પહોંચી ગયા છો ખબર નથી ફાઇલ અંત? હું ફોન છું તો - તેથી આપણે પાછા પગલું છે. એક કાર્ય શું છે? માતાનો અહીં આ વાક્ય પર જઈએ. સ્ત્રોત ફાઇલ વાંચવામાં. મને કોણ કોડ કે વાક્ય આપી શકે છે? વિદ્યાર્થી 21: fscanf? જેસન HIRSCHHORN: fscanf. બરાબર. શું હું વાંચી કરવા માંગો છો, ખૂબ જ ખાસ કરીને, એક બાઈટ? વિદ્યાર્થી 21: મને ખબર નથી. જેસન HIRSCHHORN: બરાબર. Fscanf કરતાં વધુ સરળ - એક છે - હું સ્ત્રોત ફાઇલ વાંચવામાં કરવા માંગો છો? સ્ત્રોત ફાઇલ વાંચવામાં. એક કાર્ય શું છે - હા. વિદ્યાર્થી 22: તે fread છે? જેસન HIRSCHHORN: fread. હું માતાનો સાથે વળગી દો લાગે હવે તે એક. દલીલો કેવા પ્રકારની fread લાગે છે? વિદ્યાર્થી 22: કદાચ ફાઇલ પ્રકાર, અને પછી ફાઇલમાં પાંચ? જેસન HIRSCHHORN: હું અહીં શું ટાઈપ કરી શકો છો આકૃતિ દલીલો કયા પ્રકારનું fread લે? અનેક વિદ્યાર્થીઓ: મેન fread. જેસન HIRSCHHORN: મેન fread અને fwrite. તેઓ એક સાથે અટકી લાગે છે. તેથી fread કેટલા દલીલો લે છે? વિદ્યાર્થી 23: ચાર. જેસન HIRSCHHORN: તે લે છે ચાર દલીલો. તે એક નિર્દેશક, એક માપ છે, અને તે વિચિત્ર છે, જે વસ્તુ,, અને કેટલાક ફાઇલ. બરાબર? અધિકાર તે વિશે અહીં વાંચી છે. "આ કાર્ય fread n એ memb વાંચે માહિતી તત્વો, દરેક કદ બાઇટ્સ લાંબા, સ્ટ્રીમ થી દ્વારા પર ધ્યાન સ્થાને તેમને સ્ટોર, સ્ટ્રીમ નિર્દેશક દ્વારા આપવામાં આવે છે. " તેથી ચાર દલીલો. શા માટે હું આ નકલ કરશો નહિં, અને અહીં પેસ્ટ કરો. બરાબર. તેથી જે ભરીને શરૂ કરી શકો છો મારા માટે આ દલીલો? Avi. આવી: રદબાતલ લો. માત્ર src મૂકો. નિર્દેશક અને તારો લો. Src મૂકો. પછી - જેસન HIRSCHHORN: તેથી હું રોકવા જાઉં છું ત્યાં તમે તે ખોટું છે કારણ કે. તમે src સાથે સાચા છો, પરંતુ src જ્યાં જવા જોઈએ? [Interposing અવાજો] જેસન HIRSCHHORN: તે જોઈએ અહીં પર જાઓ. કે src છે - અમારા src એક પ્રકાર છે. અહીં જુઓ. આ એક પ્રકારની ફાઇલ * માટે પુછે છે, અમે ખરેખર સામાન્ય રીતે જેમ જુએ છે. તેથી આ દલીલ માટે પુછે છે * src કે કહેવાય સ્ટ્રીમ ફાઇલ પ્રકાર. બરાબર? વસ્તુઓ કેવા કદ અમે વાંચવા માગો છો? હું તમને આ આપ્યો સમસ્યા વર્ણન. વિદ્યાર્થી 24: એક સમયે એક બાઈટ. જેસન HIRSCHHORN: એક બાઇટ. એક બાઇટ મોટા કેવી રીતે છે? તેના કદ બાઇટ્સ હોય છે, એટલે શું હું અધિકાર ત્યાં મૂકી શકો છો? વિદ્યાર્થી 25: એક. જેસન HIRSCHHORN: એક. અધિકાર. તેના કદ એકમ બાઇટ છે, તેથી 1 1 બાઇટ છે. હું એક સમયે વાંચી કેટલી માંગો છો. વિદ્યાર્થી 26: એક? જેસન HIRSCHHORN: એક વાત. હું કદ એક વસ્તુ વાંચી શકો છો 1, એક સમયે એક ડંખ. હું તે વાંચી અને એકવાર જ્યાં હું મૂકી છે? વિદ્યાર્થી 27: લક્ષ્યાંક? જેસન HIRSCHHORN: તેથી હું ન મૂકી શકો છો તે સીધા સ્થળ માં. વિદ્યાર્થી 28: તમે તેમ મૂકી છો તે ત્રીજા નિર્દેશક માં? વિદ્યાર્થી 27: અંતિમ મુકામ કરો. જેસન HIRSCHHORN: બરાબર. અરે વાહ. વિદ્યાર્થી 29: તમે કંઈક જાહેર કરી શકો છો એ કામચલાઉ સંગ્રહ અગાઉ તરીકે કામ કરે છે. જેસન HIRSCHHORN: બરાબર. મને કે આપો. વિદ્યાર્થી 29: બીજી ફાઇલ નિર્દેશક, કદાચ? જેસન HIRSCHHORN: બરાબર. તેથી આ રદબાતલ સ્ટાર છે - તે એક પ્રકાર રદબાતલ સ્ટાર છે, તેથી જો તેમ ન હોય ફાઈલ નિર્દેશક હોય છે. અને હું એક બાઈટ વાંચી રહ્યો છું તો, આ બોલ પર કોઈ સ્થળ છે જ્યાં એક બાઈટ સંગ્રહવા માટે? વિદ્યાર્થી 29: હારમાળા? જેસન HIRSCHHORN: હારમાળા. બરાબર. અને કંઈક કે બીજું શું છે માત્ર એક બાઇટ કદ? વિદ્યાર્થી 30: એક કોલસો બનાવો *? વિદ્યાર્થી 29: અરે વાહ. જેસન HIRSCHHORN: એક કોલસો બનાવો * એક બાઈટ નથી. વિદ્યાર્થી 29: એક કોલસો બનાવો. જેસન HIRSCHHORN: એક કોલસો બનાવો એક બાઈટ છે. અધિકાર? તેથી આપણે આ બફર કૉલ કરો સામાન્ય છે સંગ્રહ કરવાની આ બધી વસ્તુઓ માટે વાપરી નામ કંઈક થોડા સમય માટે. તેથી હું એક બફર બનાવો. અધિકાર? પરંતુ તે * એક રદબાતલ લાગી છે. તેથી કદાચ તમે અધિકાર છે કે તે 0 કદ એક બફર પ્રયત્ન કરીશું. તેથી તે એક સંગ્રહ કરે છે - અધિકાર. કારણ કે અહીં આ અધિકાર - ઘરનાં પરચૂરણ કામો બફર એક અક્ષર છે, પરંતુ આ * એક રદબાતલ લે છે - એક નિર્દેશક. તેથી હવે હું આ કરવા અને કરી શકે છે બફર એક નિર્દેશક છે. હું બીજું શું કરી શકે? વિદ્યાર્થી 31: ઘરનાં પરચૂરણ કામો માટે આગામી એક સ્ટાર મૂકો. જેસન HIRSCHHORN: હું કરી શકે છે તે ઘરનાં પરચૂરણ કામો * રચના કરી છે. બરાબર. હું શું કરી શકે છે અન્ય વસ્તુ શું છે? અથવા આપણે આ એક સાથે જાઓ. ચાર * બફર, તેથી શું હું અહીં મૂકી શકું? વિદ્યાર્થી 31: બફર. જેસન HIRSCHHORN: બફર. બફર ચાર રચે છે નિર્દેશક છે. અને તે સ્થાન, અમે આપી રહ્યા છીએ અમે વાંચ્યા છે કંઈક એક બાઇટ. અરે વાહ. Avi. આવી: માત્ર એક ઝડપી પ્રશ્ન. તમે બફર malloc કરવા માંગો છો? જેસન HIRSCHHORN: કોણ કરી શકે છે એનો જવાબ? વિદ્યાર્થી 32: સારી રીતે, તે કરે છે ખરેખર હમણાં કંઈપણ બિંદુ છે, તેથી - જેસન HIRSCHHORN: પણ કરી અમે તેને malloc કરવા માંગો છો? વિદ્યાર્થી 32: તમે તે કરી હતા કે તમે જરૂર કરશો કારણ રીતે, હું, હા, ધારી તે માટે નિર્દેશ માટે કેટલાક સ્થળ. જેસન HIRSCHHORN: અમે છો તે malloc છે? વિદ્યાર્થી 33: તમે જઈ રહ્યાં છો લૂપની બહાર ઉપયોગ કરે છે. જેસન HIRSCHHORN: અમે ચાલે લૂપની બહાર તેનો ઉપયોગ? વિદ્યાર્થી 34: હા. વિદ્યાર્થી 35: રાહ જુઓ. અમે તેને જાહેર કરવા માંગો છો બહાર ના લૂપ છે? જેસન HIRSCHHORN: તેથી હું અમે ધારી અહીં અમે છો કે કેટલાક સ્યુડો જ્યારે લૂપ , બહાર આકૃતિ કરવાનો પ્રયાસ કે અમે હજુ સુધી ન મેળવેલ છે. અમે તે malloc કરવાની જરૂર નથી. અમે મુખ્ય સંચાલન કરી રહ્યાં છો, તે માત્ર ચાલી રહ્યું છે આ લૂપ અંદર વપરાય છે. તે અસ્તિત્વમાં જરૂર નથી આ બહાર. તેથી તે સ્થાનિક ચલ બની શકે છે. તમે એક નિર્દેશક હોય છે એક સ્થાનિક ચલ. વિદ્યાર્થી 36: પરંતુ તે નથી કંઈપણ તરફ ઇશારો. જેસન HIRSCHHORN: ના, તે નથી કંઈપણ આરંભ. પરંતુ અમે તેનો ઉપયોગ જઈ રહ્યાં છો. અમે કંઈક મૂકી રહ્યા છીએ તે પ્રથમ વખત અમે ઉપયોગ કરે છે. તેથી તે બરાબર લાગે છે. તેથી અમે અહીં malloc જરૂર નથી. અને હું જેમ છે એમ બરાબર લાગે છે. બરાબર. અમે fread વાક્ય છે. માતાનો આગળના વાક્ય દો. અમે ફાઈલ લખવા માંગો છો, શું છે તે કરવા માટે ઉપયોગ કરવા માટે એક સારા કાર્ય? વિદ્યાર્થી 37: fwrite? વિદ્યાર્થી 38: fprintf? જેસન HIRSCHHORN: fprintf છે. અન્ય એક શું છે? વિદ્યાર્થી 39: fwrite. જેસન HIRSCHHORN: fwrite. અને અમારા હેતુઓ માટે, fwrite, અમે અહીં જે જોયું છે, કદાચ વધુ સારી પસંદગી છે. તે સાથે સાથે ચાર દલીલો લે છે. Nishant, તમે આપી શકે છે દલીલો મને? Nishant: પ્રથમ એક માતાનો ચાલુ માત્ર બફર છે. જેસન HIRSCHHORN: બરાબર. Nishant: બીજો એક ફક્ત 1 જ હશે. ત્રીજા એક 1 જ હશે. અને ચોથા એક ડીએસટી કરી રહ્યું છે. જેસન HIRSCHHORN: કોઇ હોય તો તે લીટી વિશે કોઈ પ્રશ્ન? કે સારા લાગે છે. બરાબર. તેથી હવે આપણે છો એક વસ્તુ જેવો દેખાય છે ગુમ - ખરેખર, ચાલો લખીએ આ છેલ્લા વાક્ય. ફાઈલો બંધ કરો. કોણ લેખન અમને સમાપ્ત કરી શકે છે આ છેલ્લા બે લીટીઓ? હા. માફ કરશો, તમારું નામ શું છે? લ્યુસી: લ્યુસી. જેસન HIRSCHHORN: લ્યુસી. લ્યુસી: પછી fclose src અને fclose સ્થળ. જેસન HIRSCHHORN: fclose, ઓપન કૌંસ, src, બંધ કૌંસ, અર્ધવિરામ. અને fclose - હા? લ્યુસી: ઓપન કૌંસ, ડીએસટી અને પછી અર્ધવિરામ. જેસન HIRSCHHORN: સરસ. અને હું અંતે શું સમાવેશ કરવો જોઇએ? લ્યુસી: 0 આવો. જેસન HIRSCHHORN: 0 આવો. હું છે? ફક્ત એક પ્રશ્ન. અમે વળતર 0 સમાવેશ થાય છે? અનેક વિદ્યાર્થીઓ: ના, જેસન HIRSCHHORN: ના, મુખ્ય આપોઆપ કરે છે તમે ઓવરને મેળવવા છો. પરંતુ હું તે સારું છે લાગે છે તેને બાહ્ય રીતે સમાવેશ થાય છે. અમે અન્ય પરત છો, ખાસ કરીને જ્યારે કાર્યક્રમ દરમ્યાન વસ્તુઓ. બરાબર. આપણે ગુમ રહ્યાં છે તે છે - શું છે? જે લોકો વિચાર કરી શકો છો - કેટલાક અર્થમાં છે શું વસ્તુઓ ત્યાં જઈ શકે છે? તે માત્ર કેટલાક સ્યુડોકોડનો છે તો ભાષા ગમે છે? અમે ખરેખર શું છે - શું અમે ત્યાં સુધી જાઓ કરવા માંગો છો? અરે વાહ, લ્યુસી. લ્યુસી: ફાઈલના અંતે. જેસન HIRSCHHORN: ફાઈલના અંતે. તેથી તમે ફાઇલના અંત શું અર્થ છે? લ્યુસી: તમે સુધી પહોંચવા એકવાર આ ફાઇલના અંત અટકાવો. જેસન HIRSCHHORN: બરાબર. તેથી એક વખત અમે ફાઈલ ઓવરને પહોંચે છે. અમે પહોંચી ગયા છો કરે, એ શું જાણો છો આ ફાઈલના અંતે? વિદ્યાર્થી 40: હું બફર લાગે નલ સુયોજિત કરવામાં આવશે. વિદ્યાર્થી 41: બફર જાહેર કરવામાં આવે છે લૂપ અંદર. જેસન HIRSCHHORN: તેથી તમને લાગે બફર નલ સુયોજિત કરવામાં આવશે. શા નલ સુયોજિત કરી બફર છે? વિદ્યાર્થી 40: જ્યારે તમે કારણ કે fread, તમે મૂકી પ્રયાસ કરી રહ્યા છો બફર માં કંઈ નથી. જેસન HIRSCHHORN: બરાબર. તેથી તમે fread વિચારી રહ્યાં છો - અમે અંત સુધી પહોંચી ગયા છો જ્યારે ફાઇલ, શું fread કરવા જઈ રહ્યો છે? હું પ્રશ્ન લાગે છે અમે આકૃતિ હોય છે. Fread શું કરે છે? તે બફર માં NULL મૂકી, અથવા છે તે બીજું કંઈક છે? અમે કેવી રીતે તે શું કરે છે એ સમજી શકે? વિદ્યાર્થી 42: ધ મેચ. જેસન HIRSCHHORN: ધ મેચ. તેથી આપણે અહીં પર જુઓ. કિંમત પાછી. સફળતા, fread પર અને પાછા fwrite પાંચ વાંચો અથવા લેખિત વસ્તુઓ સંખ્યા. આ નંબર બાઇટ્સ સંખ્યા જેટલી જ થાય છે માપ 1 છે ત્યારે જ તબદીલ કરી હતી. ભૂલ થાય છે, અથવા ઓવરને તો ફાઇલ પહોંચી છે, પરત કિંમત એક છે ટૂંકા વસ્તુ ગણતરી અથવા 0. તેથી અમારા હેતુઓ માટે, જો fread છેડાઓ આ ફાઈલના અંતે, અને વાંચે ફાઈલના અંતે, બાકી કશું જ નથી વાંચવા માટે, તે શું પરત ચાલી રહ્યું છે? વિદ્યાર્થી 43: ઝીરો? જેસન HIRSCHHORN: શું છે? વિદ્યાર્થી 43: ઝીરો? જેસન HIRSCHHORN: ઝીરો. તે શૂન્ય પરત ચાલી રહ્યું છે. તેથી અમે અમે કરી છે, કે fread, ખબર ફાઈલના અંતે પહોંચી, રહ્યું છે શૂન્ય પરત. આપણે કઈ રીતે લાભ માટે ઉપયોગ કરી શકો છો? આવી: તમે બહાર ચલ જાહેર કરી શકે છે ચેક કહેવાય લૂપની. ચેક સમકક્ષ હોય તો - હવે માટે - એક. જેસન HIRSCHHORN: બરાબર. આવી: અને પછી તમે એક તો મૂકી શકો છો અધિકાર fread માગીને નિવેદન જો fread શૂન્ય બરાબર - કોઈ. જેસન HIRSCHHORN: કોણ Avi બહાર મદદ કરી શકે? આવી: કિંમત શું છે fread દ્વારા પરત? જેસન HIRSCHHORN: અમે હમણાં જ કે ઉપર ગયા હતા. આવી: તમે તેને કેવી રીતે રજૂ કરે છે? જેસન HIRSCHHORN: તેથી તે આપે છે - ચાલો અહીં જુઓ - તે એક આપે છે આવશ્યક છે, જે size_t, પૂર્ણાંક. તેથી તે પૂર્ણાંક આપે છે. અને અમારા કિસ્સામાં, તે કરશે 1 અથવા 0 આવો - 1 તે એક વાત વાંચી તો - એક બાઇટ, અને અમે 0 ઓવરને પહોંચી ગયા છો છે. તેથી fread તો - હા? વિદ્યાર્થી 45: તમે માત્ર સંપૂર્ણ મૂકી શકો છો આ માં fread (બફર, 1, 1, src) જ્યારે લૂપ? જેસન HIRSCHHORN: તેથી તમે પ્રસ્તાવ ત્યાં આ કરી? [Interposing અવાજો] જેસન HIRSCHHORN પર ધરાવે છે. તેથી અમે તે સ્વરોથી છીએ. તેથી તમે મૂકવા પ્રસ્તાવ કરી રહ્યા છીએ fread ત્યાં માં? શું અમે ખસેડવા જોઇએ તમે તે કરવા માંગો છો? વિદ્યાર્થી 45: બહાર આ બફર. જેસન HIRSCHHORN: અમે જોઈએ પણ આ અહીં બહાર ખસેડી. વિદ્યાર્થી 45: પરંતુ કરે છે સતત આગળ ખસેડો? [Interposing અવાજો] જેસન HIRSCHHORN: બરાબર. તેથી આ Okshar દરખાસ્ત છે. અમે અમારી બફર બનાવો. અમે જ્યારે fread, તો પછી અમે fwrite. આ વિચારો? વિદ્યાર્થી 46: મારી માત્ર પ્રશ્ન કરશે તે ખરેખર આદેશ fread ચલાવો? જેસન HIRSCHHORN: મહાન પ્રશ્ન. તમે કાર્ય કહી આપી રહ્યા છીએ ત્યારે એક શરત ની અંદર છે, કે જે કરે છે વિધેય કોલ ચલાવો? અમે આ પહેલાં ઉદાહરણો જોઇ છે. અધિકાર? વિદ્યાર્થી 46: બરાબર. અરે વાહ. તેથી તે ચલાવવા કરે છે. જેસન HIRSCHHORN: અમે વસ્તુઓ જોઇ છે તે પહેલાં, અમે જ્યાં જેવી એક શરત ની અંદર વિધેય કોલ. તે કાર્ય કૉલ ચલાવો કરે છે? હા. તેથી જવાબ હા છે. આ વિધેય કોલ ચલાવવા કરશે. પરંતુ ફરી, તે અમે શું કરવા માંગો છો છે? અમે આકૃતિ શકે એક રીત કઈ છે તે અમે શું કરવા માંગો છો બહાર તો શું? અનેક વિદ્યાર્થીઓ: તે ચલાવો? જેસન HIRSCHHORN: અમે તે ચાલે છે. અમે તે કરી પરંતુ તે પહેલાં, અમે કરી શકે પણ આ દ્વારા કારણ. તો - અમે એક બાઇટ હોય છે અમારા અમે અહીં મળશે, ફાઈલ, અમે આ કોડ પર પહોંચી જશો. આ ચાલશે. fread એક બાઈટ પાછા આવો અને કરશે તે બફર માં સ્ટોર કરે છે. અને આ, 1 માટે મૂલ્યાંકન કરશે અધિકાર, પછી તે 1 આપે છે. તેથી, જ્યારે 1. કે અંદર કોડ એનો અર્થ એમ થાય જ્યારે લૂપ ચલાવવા કરશે? વિદ્યાર્થી 47: અરે વાહ. તે સાચું છે. જેસન HIRSCHHORN: હા. 1 સાચું છે. તે 0 નથી. અહીં અંદર કોડ ચલાવવા કરશે. તેથી અમે તે લખી શકશો. અમે આ પર પાછા ખસેડવા પડશે રેખા ફરી એક વાર. હવે અમે હોય - અમે અમારી ફાઈલ ઓવરને પર છો. અમે અમારી ફાઈલ ઓવરને વાંચવામાં, અમે માત્ર તે એક બાઇટ હતી. Fread 0, સ્ટોર્સ આપે બફર માં કંઈક. હું પ્રમાણિકતા ખબર નથી શું તે બફર માં સંગ્રહિત કરે છે. અમે કદાચ જોવા શકે તે કરે છે તે જોવા માટે. હું પ્રમાણિકતા ખબર નથી કે. અમે શું ધ્યાન આપતા, ખબર નથી તે બફર માં સંગ્રહ કરે છે? પરંતુ તે 0 આપે. અને 0 ચલાવવા કરતા હશે? 0 ચલાવવા નથી આવશે. તેથી તો અમે નીચે અહીં ખસેડવા પડશે. તેથી આપણે હાથ એક શો વિચાર આ તો અમે ચલાવો, અથવા અમે તો જોઈએ કોડ છે પ્રથમ ફેરફાર કરવા જોઈએ. તમને લાગે તેથી જો - તમે મત આપવા માટે હોય છે. જો અમે આ કોડ સ્કોર જોઈએ તો જેમ છે, તમારા હાથમાં એકત્ર કરો. બરાબર. એક છે - કોઈ સવાલ, ચિંતા છે? અરે વાહ. વિદ્યાર્થી 48: અમે બફર સ્થળાંતર બાદ લૂપની બહાર, અમે શું તે malloc છે? જેસન HIRSCHHORN: મહાન પ્રશ્ન. અમે બહાર બફર સ્થળાંતર બાદ લૂપ, અમે તેને malloc છે? આ એક તક પ્રશ્ન છે. અમે બહાર બફર પ્રારંભ તો આ લૂપ, તે અસ્તિત્વમાં હશે લૂપની અંદર? અનેક વિદ્યાર્થીઓ: હા. જેસન HIRSCHHORN: હા. તેના અવકાશ, લૂપની અંદર આવરી લે છે અને, ખરેખર, ખાવા અંદર નીચે આ સમાવેશ થાય છે આ કોડ છે, કે અહીં અંદર વસ્તુઓ. તેથી અમે તે malloc કરવાની જરૂર નથી. તે એક સ્થાનિક ચલ છે, અને તેના અવકાશ હજુ પણ લૂપ સમાવેશ થાય છે. વિદ્યાર્થી 49: અમે તેને મુક્ત કરવાની જરૂર છે? જેસન HIRSCHHORN: અમે છો મફત બફર કરવાની જરૂર છે? વિદ્યાર્થી 49: અરે વાહ, અમે malloc ન કરો તો. જેસન HIRSCHHORN: અમે છો મફત બફર કરવાની જરૂર છે? અમે નથી. ફરી, તે એક સ્થાનિક ચલ છે, તેથી અમે તેને મુક્ત કરવાની જરૂર નથી. બરાબર. માતાનો શું થાય તે જોઈએ. તેથી તે uninitialized છે. કે શું કંઈક હતું કે માર્કસ અગાઉ દરખાસ્ત કરી હતી. તેથી અમે તે ભૂલ, ચલ બફર છે અહીં ઉપયોગ કરવામાં આવે ત્યારે uninitialized છે. અમે આ કેવી રીતે ઠીક કરી શકે છે? વિદ્યાર્થી 50: તે malloc? વિદ્યાર્થી 51: નલ સમકક્ષ? વિદ્યાર્થી 52: બફર નલ સમકક્ષ કહો. જેસન HIRSCHHORN: બરાબર. સારી લાગે છે. હવે અમે તેને હોય છે. માતાનો નકલ પ્રયાસ કંઈક બનાવીએ. જેથી અમે અમારા લખાણ ફાઈલ છે. આપણે કઈ રીતે આ કાર્યક્રમ ચલાવી શકો છો? અરે વાહ. વિદ્યાર્થી 53: તમે કોઈ કરી શકો છો સી.પી., test.txt સ્લેશ. અને પછી તમે બીજી ફાઇલ નામ કરી શકો છો તેને સ્ટોર કરશે છે. જેસન HIRSCHHORN: બરાબર. અમે તે out.txt કહી શકશો. કૂલ? Seg દોષ. પાંચ seg દોષ પર વિચારો? આ મહાન છે. આપણે કઈ રીતે શોધી શકો છો જ્યાં પાંચ seg દોષ છે? શું? વિદ્યાર્થી 54: GDB. જેસન HIRSCHHORN: GDB. અમે GDB કોઈ સ્લેશ લખીને GDB ચલાવવા અમારા કાર્યક્રમના નામ. ત્યાં કોઈ આદેશ વાક્ય દલીલો. અમે સમૂહ રહ્યા છીએ મુખ્ય અંતે બ્રેકપોઇન્ટ. હું GDB શરૂ કરવા માંગો છો, હું શું કરી શકું? વિદ્યાર્થી 55: આર પછી આર અને શું: જેસન HIRSCHHORN? વિદ્યાર્થી 55: આ દલીલો? જેસન HIRSCHHORN: પછી આદેશ વાક્ય દલીલો. માતાનો લઈ જવામાં. એન માત્ર વાક્ય દ્વારા વાક્ય મને લઈ રહ્યું છે. હું જાઓ જાઉં છું ત્યાં સુધી હું મારા seg દોષ વિશે. મારા seg દોષ છે. Fread કારણે એવું લાગે છે કે મારા seg દોષ. હું fread મારા seg દોષ કારણે ખબર એ હતો કારણ કે લાઇન અમે ફક્ત ચલાવવામાં. અને હતું કે આ જ વસ્તુ તે લીટી થઈ રહ્યું - બે વસ્તુઓ બની રહી. Fread રહ્યા હતા, અને પછી અમે હતા જ્યારે કેટલાંક ચકાસણી કરી. હું હોડ કરવા માટે તૈયાર છું કે જ્યારે ચકાસણી મારા seg દોષ નથી કારણ બની હતી. મોટે ભાગે, fread હતી મારા seg દોષ થાય છે. હું પણ અહીં કંઈક, Memcopy જુઓ. મેમરી નકલ. માંથી મેમરી ખસેડવાની જેવા ધ્વનિ અન્ય એક સ્થાન. થાય છે કે જે કંઈક જેવા ધ્વનિ fread માં, કદાચ અમુક મેમરી અહીં અહિંયા થી આગળ વધી. ચાલો આ ફરીથી મારફતે જાઓ. હું કેવી રીતે તેની પર શરૂ કરો અને ફરીથી ચલાવવા? અરે વાહ. વિદ્યાર્થી 56: તમે મુકવાની જરૂર કરો બફર પહેલાં 'ચિન્હ? જેસન HIRSCHHORN: તેથી પહેલાં 'ચિન્હ બફર મને સરનામું આપશે * ચાર રચે છે જે બફર,. ચાલો આ એક વધુ સમય પસાર થાય છે. હું કેવી રીતે વધુ એક વખત તે મારફતે રન? વિદ્યાર્થી 57: તમે કરી શકો છો ફક્ત ફરીથી રન લખો? જેસન HIRSCHHORN: જસ્ટ ફરીથી રન લખો. તેથી અમે નથી જઈ રહ્યાં છો આ લીટી ચલાવો. તેથી બફર એક NULL નિર્દેશક છે. સુધારવા? તે પોઇન્ટ છે - ચાલો જુઓ. અમે તો અમારા - આ ઝડપી ચિત્ર દોરે છે. જો બધાને જોઈ શકો છો હું અહીં લખી? તેથી સ્ટેક, અમે સ્થાનિક છે ચલ અને તે બફર કહેવાય છે, અને તે ચાર રચે છે નિર્દેશક છે. શું આંકડાના આ ચાર રચે છે? વિદ્યાર્થી 58: 0x0. જેસન HIRSCHHORN: અધિકાર. કે આ શું છે. અહીં, બફર અંદર, 0x0 સંગ્રહ કરવામાં આવે છે. તે અમે શું નથી - અમે હમણાં છે સુયોજન. તેથી આ વાક્ય, fread, કંઈક મૂકે જ્યાં સ્ત્રોતમાંથી? આ બોક્સ અથવા આ બોક્સમાં? જે બોક્સ? બોક્સ કે જમણી બોક્સ છોડી? આ અધિકાર બોક્સ. તે નિર્દેશક નીચે, અને અહીં મૂકે છે. અમે પ્રયત્ન કરો અને સ્પર્શ મેમરી ત્યારે 0 સ્થાન, અમે શું વિચાર છે? એક સેગ્મેન્ટેશન ક્ષતિમાં. કે અમે અત્યારે જે ભૂલ છે. અરે વાહ. વિદ્યાર્થી 59: તમારી પાસે નથી સ્ટાર બફર મૂકી? કોઈ અથવા? Fread માટે? જેસન HIRSCHHORN: તેથી fread એક નિર્દેશક છે. તેથી તે બફર માં પસાર કરે છે. અને પછી તેને પડશે દ-સંદર્ભ ક્યાંક fread અંદર. પરંતુ ફરીથી, અમે જોયું, તે એક નિર્દેશક છે. અમે તે સ્ટાર બફર પસાર કરવાની જરૂર નથી. તે પસાર કરવામાં આવશે તે અહીં છે ગમે. અને તે કદાચ અમને એક ભૂલ આપશે અમે તેને નાપસંદ સંદર્ભ કરી રહ્યાં છે. અધિકાર? અમે આ નિર્દેશક સંદર્ભ દ છે, જ્યારે અમે આ સ્થાન વાપરવા માટે પ્રયત્ન કરો, અમે એક ભૂલ કરી રહ્યાં છો - અમારા સેગ્મેન્ટેશન ક્ષતિમાં. તેથી - અરે. અમે GDB બહાર છોડી રહ્યા છીએ. અમારા વાક્ય - અમારી સમસ્યા - યોગ્ય છે અહીં આ વાક્ય પર. અને તે એક સમસ્યા છે, કારણ કે આ રેખા. આપણે કઈ રીતે એક બોક્સ બનાવી શકો છો કે fread માં સુલભ છે. અધિકાર? અમે એક છે કે બોક્સ બનાવવાની જરૂર છે બાઇટ મોટા, ચાર રચે માપ. પરંતુ અમે તે બોક્સ પ્રવેશ કરવાની જરૂર છે આ કાર્ય ચલાવે છે ત્યારે. તેથી જ્યાં - હા. કોઈપણ વિચારો? વિદ્યાર્થી 60: જસ્ટ તરીકે સેટ કરો કોઈ પણ રેન્ડમ પાત્ર. માત્ર કોલસો બનાવો બફર સમકક્ષ કરી આ પાત્ર. અને પછી, જો તમને ત્યાં બફર છે ત્યારે - જેસન HIRSCHHORN: રાહ જુઓ. ચાર બફર? આ બોલ પર કોઈ સ્ટાર? વિદ્યાર્થી 60: અરે વાહ. તારો લો. રેન્ડમ અક્ષર સમકક્ષ હોય છે. જેસન HIRSCHHORN: બરાબર. તેથી મને એક આપે છે. વિદ્યાર્થી 60: જેમ એક અથવા કંઈક. અને પછી તમે બફર હોય ત્યાં, તમે ઉપયોગ - વિદ્યાર્થી 61: સ્ટાર? ઓહ ના, આ 'ચિન્હ. વિદ્યાર્થી 60 છે: 'ચિન્હ ઉપયોગ કરો. જેસન HIRSCHHORN: બરાબર. અને શું fwrite વિશે? વિદ્યાર્થી 60: ફરી 'ચિન્હ ઉપયોગ કરો. જેસન HIRSCHHORN: અધિકાર છે. તેથી તમારા વિચાર, છે અમે ચાર રચે બનાવવા અને પછી તે કંઈક મૂકી, અને કે ઘરનાં પરચૂરણ કામો કરવા માટે લખો. વિદ્યાર્થી 60: અરે વાહ. જેસન HIRSCHHORN: શું લોકો વિચારો છો? વિદ્યાર્થી 62: તે જટિલ છે. જેસન HIRSCHHORN: બરાબર. આપણે તેના દિવસોનું વધવું. તેથી આ સમય, હું આ દોરવા જાઉં છું અમે પછી અહીં સ્ટેક પર લાલ, અને હશે - Ooh! માફ કરશો. તેથી આ સમય અમે કહેવાય છે તેની છે બફર, અને તે સ્ટેક પર છે. સુધારવા? અને અમે શરૂઆતમાં, તે એક માં સાચવી રહ્યા છો. તો પછી અમે fread અમારા કોલ છે. શું fread તે એક બાઇટ લે અમારા ફાઇલ અને ક્યાંક મૂકે છે. તે ગમે તે માં મૂકે વાત તરફ ઇશારો કરે છે. ઠીક છે, અમે આ આંકડાના હતી તે પહેલાં - 0x0. હવે અમે શું આંકડાના છે? વિદ્યાર્થી 63: ગમે આંકડાના બફર છે. જેસન HIRSCHHORN: ગમે આંકડાના બફર છે. તે કદાચ જ હશે તે કંઈક. કદાચ એક બી સાથે શરૂ થઈ રહ્યું છે અને પછી એક એફ, અને અન્ય છ છે હેક્સાડેસિમલ. જરૂરી નહીં. કેટલાક સરનામું. અને અમે સાઇન તે સરનામા પસાર કરી રહ્યાં છો અને અમે અમારા એક મૂકી રહ્યા છીએ તે સરનામા પર બાઇટ વસ્તુ. જેથી અમે અમારા એક મૂકી રહ્યા છીએ બાઇટ વસ્તુ અહીં અંદર. અને પછી અમે થી લખી રહ્યા છીએ અહીં અંદર ક્યારેય હોય તે કરો. કોઈની કોઇ પ્રશ્નો હોય તો કે શું? કોણ આ કોડ કામ કરશે વિચારે? જો તમને લાગે કે તમારા હાથ વધારો આ કોડ કામ કરશે. તમે વલણ લઇ જાય છે. અને જે આ કોડ કામ કરશે નહિં વિચારે? તમારા હાથમાં એકત્ર. બીજું દરેકને હોવું જોઈએ તેમના હાથ કર્યો. બરાબર. માઈકલ, તમે જ્યાં ઊભા છે? માઇકલ: હું નક્કી કરી શકે નહીં. કાઇન્ડ મધ્યમાં. જેસન HIRSCHHORN: તમે છો મધ્યમાં. એક ચૂંટો. માઇકલ: હું વિશ્વાસ પડશે અને તે કામ કરશે. જેસન HIRSCHHORN: બરાબર. તમે વિશ્વાસ હોય છે અને તે કામ કરે છે કહે છે પડશે? શું થયું? [Interposing અવાજો] જેસન HIRSCHHORN: ના seg દોષ. આપણે કઈ રીતે જોવા માટે ચકાસણી કરી શકો છો બે વસ્તુઓ સમાન છે? બે ફાઈલો સમાન છે. વિદ્યાર્થી 64: ભેદ. જેસન HIRSCHHORN: ભેદ. વચ્ચે તફાવત માટે ભેદ ચકાસણી તે આપે છે બે ફાઈલો, અને જો કંઈ, તેઓ સમાન છો. અમે ખોલો અને, જો અમે અમારી ફાઈલ વિશે. જેથી યોગ્ય ઉકેલ હતો. માતાનો તેના પર વધુ એક વખત પાછળ જુઓ. અમે ખરેખર પણ ન હતી પ્રારંભ કરવાની જરૂર છે. તે કદાચ થોડી લાગશે તમે આવ્યો ન હતો અને જો ક્લીનર ત્યાં રેન્ડમ કંઈક. આ બિંદુ છે, તમે બનાવવા માટે જરૂરી માંથી કંઈક સંગ્રહવા માટે અમુક જગ્યા fread અને કંઈક લેવા fwrite બહાર. અને તે બાબત હતી સ્થાનિક ક્યાં તો સ્ટેક પર ચલ - તમે અમુક જગ્યા malloc'd કર્યું છે. તેથી અમે ખરેખર કરી શકે છે લેખિત અહીં malloc છે, અને કે કામ કર્યું હશે. અને પછી અમે સ્ટોર કરવામાં આવી હતી ક્યાંક ઢગલો પર અમારા વસ્તુઓ. પરંતુ આ કદાચ, ખરેખર છે સૌથી ભવ્ય ઉકેલ. જસ્ટ સ્ટેક પર અમુક જગ્યા બનાવવા આ બધી વસ્તુઓ જવા માટે. હું બે અન્ય ટિપ્પણીઓ પડે. તમે આ માં વળાંક લે છે, અને હતા પછી મારા ટિપ્પણીઓ, આ પર કોઈ રન નોંધાયો કરો નીચે પ્રમાણે છે. આ 1 અહીં છે, મારા માટે, જુઓ જાદુ નંબરો છે. આ 1, fread દ્રષ્ટિએ, અર્થમાં બનાવે છે. છે કે એ સંખ્યા છે વાંચી અથવા લખી. પરંતુ અહીં આ એક જોઈએ કદાચ કંઈક બીજું. તેથી એક ઉપાય શું છે? વિદ્યાર્થી 65: બાઇટ માપ. જેસન HIRSCHHORN: કે જેમ? વિદ્યાર્થી 65: કોલસો બનાવો માપ. જેસન HIRSCHHORN: કોલસો બનાવો માપ. અરે વાહ, બાઇટ એક પ્રકાર નથી. કોલસો બનાવો કાર્યો તેથી માપ. અમે ટોચ પર, કરી શકે છે અમારા કોડ છે, # વ્યાખ્યાયિત કે. કંઈક બાઇટ અને કહેવાય છે તે ખરેખર એક કોલસો બનાવો છે. ખરેખર, એક વધુ સારું અભિગમ આ હોઇ શકે છે - uint. ત્યાં જવા માટે કોઇપણ છે શું જાણો છો? માફ કરશો. હું પાછળની તે છે. ના, રાહ જુઓ. તે જે રીતે જવું છે? ત્યાં જવા માટે કોઇપણ છે શું જાણો છો? અરે વાહ. વિદ્યાર્થી 67: પ્રમાણિત મદદ કરે છે માનવામાં સિસ્ટમો વસ્તુઓ તરફ કે હોય - સહી થયેલ નહિં પૂર્ણાંકો જેવા 8 બાઇટ્સ હોય છે? જેસન HIRSCHHORN: કે એકદમ સચોટ. વિવિધ મશીનો પર, ચાર રચે માપ - સામાન્ય રીતે ચાર રચે છે. અક્ષરો સામાન્ય રીતે એક બાઈટ છે. પરંતુ અન્ય ડેટા પ્રકારો માપ છે એક મશીન 32-bit પર વિવિધ કદના 64-bit મશીન વિરુદ્ધ. એક uint8_t હંમેશા 8 બીટ્સ છે - હંમેશા એક બાઈટ. અને હું સમાવેશ કરવા જેવી ધોરણ પૂર્ણાંક હેડર ફાઇલ. તેથી હવે, આ કદાચ આવી હશે આ કોડ લખવા માટે શ્રેષ્ઠ માર્ગ. તેથી હું જાદુ નંબરો છુટકારો મળે છે. અને હું પણ એક વધુ લોજિકલ છે બફર માટે લખો. તે છે, તે એક બાઈટ છે, ફક્ત એક કોલસો બનાવો નથી જે અમે તે કરવા આશા રાખે છે. અને અહીં, અમે ખરેખર કર્યું થોડી વધુ મજબૂત રહ્યો. અમે જે, ચાર રચે છે તે ફોન કરી રહ્યા છીએ - કદાચ, જે જાણે છે - કોઈ અલગ હોઈ શકે છે વિવિધ મશીનો પર માપ. અમે ખરેખર આ બરાબર છે કહી રહ્યાં છે એક બાઈટ, હંમેશા, કોઈ બાબત શું. અમે અહીં જુઓ, અમે સી બનાવે છે. ઉહ ઓહ. શું થયું? વિદ્યાર્થી 68: તે સ્વિચ કરી શકે છે. જેસન HIRSCHHORN: શું છે? વિદ્યાર્થી 69: તે છે? વિદ્યાર્થી 70: તમે ન હતી એક પ્રકાર તરીકે વ્યાખ્યાયિત કરે છે. વિદ્યાર્થી 71: પરંતુ તે જોઇએ પ્રમાણભૂત વ્યાખ્યાયિત કરી. વિદ્યાર્થી 72: શું થઈ રહ્યું છે તે? વિદ્યાર્થી 73: વ્યાખ્યાયિત જોઈએ બધા કેપ્સ છે? જેસન HIRSCHHORN: તેથી તે નથી # વ્યાખ્યાયિત કરે છે. ખરેખર, આ કિસ્સામાં, હું છું typedef ઉપયોગ કરવા જઈ રહી છે. અમે તે ઉપયોગ કરી રહ્યાં છો કારણ કે એક જ સ્થાન પર એક પ્રકાર. તેથી આ કિસ્સામાં, અમે ખરેખર કરવા માંગો છો અમે એક નવા પ્રકારની છાપવા રહ્યાં છો typedef બાઇટ, અને તે આ છે, આવશ્યકપણે,. તે # વ્યાખ્યાયિત કરતાં થોડી અલગ છે. અને હવે અમારા કોડ સંપૂર્ણપણે કામ કરે છે. તેથી, ફરી, # કંઈક લે વ્યાખ્યાયિત કરવા માટે, દરેક જગ્યાએ તે બદલે છે અન્ય બાબત છે. તે માત્ર એક મેક્રો છે - લઘુલિપિ જાદુ નંબરો છુટકારો મેળવવા માટે. પરંતુ આ કિસ્સામાં, કારણ કે અમે છો એક પ્રકાર તરીકે ઉપયોગ - અહીં - કે કામ કરવા માટે માટે, અમે જરૂર ગમે બાઇટ typedef માટે. અને અમે અહીં તે વ્યાખ્યાયિત કરી રહ્યા છીએ. તે ખરેખર છે, સ્ટ્રક્ટ નથી માત્ર એક સહી થયેલ નહિં પૂર્ણાંક. તે એક બાઇટ લાંબો છે. આ કોડ ઑનલાઇન ઉપલબ્ધ હોય છે, અને તમે બધા તેને હમણાં હોવી જોઇએ. તેથી અમે હોય - સંપૂર્ણ - 13 મિનિટ જવા માટે બાકી પર સમસ્યા 5 સુયોજિત કરો. હું મળીને copy.c લઈ જવામાં કરવા માંગો છો અને પછી અમે થોડા સમય માટે વાત કરીશું અન્ય ભાગો વિશે આ સમસ્યા સુયોજિત કરો. તેથી મને copy.c. ખેંચે છે અને આ ઠંડી વસ્તુ અમે ખરેખર કર્યું છે પહેલેથી જ આ કોડ ઘણો તેવા પરચૂરણ ખર્ચ. અમે શાબ્દિક લખ્યું કોડ માત્ર હું હતો ત્યારે અહીં બહાર આવી મારા પોતાના પર આ લખી. પરંતુ આ copy.c છે પાયો રચે છે પ્રથમ બે ભાગો માટે whodunit.c, માટે સમસ્યા સમૂહ જે તમે લખવા માટે જરૂર છે, અને resize.c. ત્રીજા અને અંતિમ છે Recover.c, સમસ્યા સેટ ભાગ નથી આ ફાઈલની બોલ આધારિત છે. તમે તે ફાઈલ લખવા માટે જરૂર જઈ રહ્યાં છો, અમે તમને તે માટે એક નમૂનો ન આપી ફાઇલ, પરંતુ તે કંઈ નથી copy.c. સાથે કરી પરંતુ copy.c માટે આધાર છે, કારણ કે પ્રથમ બે ભાગો, અમે રહ્યા છીએ હવે તે લઈ જવામાં છે, તેથી તમારી પાસે તે શું કરે છે એક સૂઝ. અને ટિપ્પણીઓ તેના કેટલાક દૂર આપે છે. અમે પહેલાથી જ આ કેટલાક તેવા પરચૂરણ ખર્ચ કર્યો. પ્રથમ, અમે ખાતરી કરી રહ્યા છીએ અમે ત્રણ દલીલો વિશે. પછી, આપણે ફાઇલ નામ યાદ કરી રહ્યા છીએ. તેથી અમે આ પગલું છૂટી જ્યારે અમે અમારી વસ્તુ કોડેડ - જ્યારે અમારા સી.પી.. પરંતુ અહીં, તેઓ કરી રહ્યા છીએ થોડી ક્લીનર તે. તેઓ તેની ખાતરી કરવા માટે ચકાસણી કરી રહ્યા છીએ બંને ફાઇલો, સારા છે તેમને ખોલ્યા ઉપરાંત. અમે હમણાં જ હવે આ કોડ લખ્યું હતું, તેથી હું છું આ કોડ પર રહેવું નથી જતા. આગળ માટે વિશિષ્ટ છે કે અમુક સામગ્રી છે અમે ઉપયોગ કરી રહ્યાં છો ફાઈલોની પ્રકારના જે બીટમેપ ફાઇલો છે. બીટમેપ ફાઇલો કેટલાક મેટાડેટા છે તેમની સાથે સંકળાયેલ. તેથી બાઇટ્સ પ્રથમ યુગલ ફાઈલ વિશે કહી. તેઓ ના રંગો નથી કે છબીમાં પિક્સેલ. તેઓ ફાઈલ વિશે કહી. અને તમે આ સમસ્યા સેટ મારફતે વાંચી, તમે વધુ માહિતી મળશે મેટાડેટા માળખાં કેવા પ્રકારની પર ત્યાર બાદ બીટમેપ સાથે સમાવેશ થાય છે. અમે આ પ્રથમ છે પરંતુ તે શા માટે છે અહીં આ કોડ - સમૂહ. અમે મેટાડેટા વાંચી રહ્યા છો - મેટાડેટા બે ટુકડા - ફાઈલ હેડર અને હેડર માહિતી. અને અમે તેને કેટલાક ભાગોમાં ચકાસણી કરવામાં આવે છે ખાતરી કરો કે તે સાચી બીટમેપ ફાઇલ છે તે ચાલુ રાખવા પહેલાં. અને ફરી, આ વિગતો અમે છે હવે જાય જરૂર નથી. તમે આ સમસ્યા સમૂહ દ્વારા વાંચી, તમે આ સમજશે. લાંબા વાર્તા ટૂંકી, આ માત્ર કહે છે, આ એક બીટમેપ ફાઇલ છે, અને ખાતરી કરો કે. પછી, આપણે તે લખી રહ્યાં બહાર નોંધાવી છે. અમે અહીં જુઓ કે. અમે બહાર નિર્દેશક માટે લખી રહ્યાં. પછી, આપણે ગાદી નક્કી કરી રહ્યા છીએ. તેથી ફરી, તરીકે particularity સાથે છે એક બીટમેપ ફાઇલ, કેટલીક રેખાઓ સમાવેશ થાય છે અંતે ગાદી. અને તમે આ સમસ્યા સેટ મારફતે વાંચી, તમે પેડિંગ વિશે વધુ જાણવા મળશે. આ ગાદી શોધવા માટે સૂત્ર છે. યાદ રાખવું અગત્યનું - તમે એક બીટમેપ માપ બદલાય ત્યારે , પેડિંગ ફેરફાર કરો. તમે માપ બદલો છો, ત્યારે , પેડિંગ ફેરફાર કરો. તે જ હશે ક્યારેય છે 3 કરતાં વધુ - તે, 3 દ્વારા વ્યાપક 0 હશો. પરંતુ તમે માપ બદલાય ત્યારે કંઈક, પેડિંગ બદલે છે. હું માત્ર તે સતત એક પિક્સેલ છે, હું , ગાદી ત્રણ બાઇટ્સ જરૂર છે દરેક પંક્તિ ચાર ગુણાંકમાં હોય છે એક બીટમેપ ફાઇલ માં લાંબા બાઇટ્સ. પરંતુ હું તે બમણી છે, એક પિક્સેલ જાઓ બે પિક્સેલ માટે, જેમાં દરેક, આપણે કહેવું, એક બાઇટ, પછી હું જરૂર છે બનાવવા માટે ગાદી બે બાઇટ્સ ચાર કે સમાન. તેથી હું કંઈક માપ બદલી છે, હું જથ્થો બદલવાની જરૂર ગાદી હું છે. કે દરેકને અર્થમાં છે? પછી, આપણે દરેક પંક્તિ પર ફરી વળવું, અથવા બધી પંક્તિઓ દ્વારા. અને પછી અમે મારફતે ફરી વળવું દરેક પંક્તિ દરેક સ્તંભ. અમે જેમ આ બીટમેપ સારવાર કરી રહ્યાં છો એક ગ્રીડ, જેમ અમે સારવાર છે 15 માં બોર્ડ. જેમ અમે ઇંટો સારવાર જ્યારે અમે સ્ક્રીન પર મુદ્રિત. પંક્તિઓ અને કૉલમ એક ગ્રીડ. પછી - અમે આ જોવા મળી હતી. અમે ખરેખર માત્ર આ કોડેડ. અમે કેટલાક કામચલાઉ સંગ્રહ બનાવી. અમે પછી ત્યાં વાંચો, અને અમે તેને લખો. આ અમે કર્યું છે બરાબર શું છે. હું જણાવ્યું હતું કે, આગળ, કારણ કે દરેક વાક્ય કેટલાક ગાદી માં અંત થાય છે, અમે કે ગાદી ઉપર છોડી દો - જૂના ગાદી. અને પછી અમે તે પાછા ઉમેરો. આ કિસ્સામાં, અમે બનાવી રહ્યા છીએ એ જ ચોક્કસ ફાઇલ. અમે હમણાં જ તે નકલ કરી રહ્યા છો. તેથી આ વાક્ય પ્રકારની કોઈ છે. અમે કરી શકે શાબ્દિક માત્ર સાઇન પેડિંગ મૂકી પરંતુ તમે ફાઈલ માપ બદલવા માટે, તમે હજુ પણ આ વાક્ય માંગો છો? અમે ફાઈલ માપ બદલી તેથી જો, અમે હજુ સુધી અવગણો કરવા માંગો છો જૂના ગાદી પર? વિદ્યાર્થી 74: હા. જેસન HIRSCHHORN: તેથી અમે શું. આ, ફરીથી, તેની કારણ સ્ત્રોત ફાઇલ સાથે. અમે પેડિંગ વિશે પડી નથી સ્ત્રોત ફાઇલમાંથી. અમે આગળના વાક્ય પર જાઓ કરવા માંગો છો. પરંતુ અમે ફક્ત પાછા મૂકી નથી ગાદી જૂના જથ્થો. અમે પાછા મૂકવા માટે જરૂરી ગાદી નવા જથ્થો. તેથી અમે એક માપ બદલી રહ્યા છીએ ત્યારે ફાઇલ, અમે હજુ પણ પર છોડવાનું માંગો છો જૂના ફાઈલમાં ગાદી - શું અમે માંથી વાંચી રહ્યાં છો. પરંતુ અમે માટે શું લખી રહ્યાં, અમે રહ્યા છીએ કેટલાક અલગ પાછા મુકવાની જરૂર છે ગાદી સંખ્યા કે અમે નક્કી કર્યું છે. અરે વાહ. વિદ્યાર્થી 75: તે બે ક્રમ રેખાઓ, અધિકાર સારું છે? તમે કરી રહ્યાં છો કારણ કે સંભાળવા વિવિધ ફાઈલો. જેસન HIRSCHHORN: ચોક્કસ. આ બે રેખાઓ ક્રમ કોઈ વાંધો નથી. અમે આ વાક્ય લખો. આ ફાઇલ માટે અહીં છે અમે લખી રહ્યાં. તે મહત્વપૂર્ણ છે, તેથી અમે વિચાર ગાદી જમણી રકમ. આ માં ફાઇલ સાથે વ્યવહાર છે. અમે અધિકાર છોડી દેવા માગો છો પેડિંગ પર. અમે વાંચી નથી માંગતા - અમે એક સમયે એક બાઈટ વાંચી રહ્યાં છો, તો અમે તે ગાદી બાઇટ્સ વિશે પડી નથી. અમે આગામી વાક્ય ખસેડવા માંગો છો. છેલ્લે લ્યુસી અમારા માટે આપી હતી જેમ, અમે ફાઇલો બંધ કરો અને 0 આવો. તેથી આ copy.c. છે અને અમે ખરેખર લખ્યું હતું - અમે મોટા ભાગનો આવશ્યકપણે, આ લખી વિભાગ. તમે આ કરી હતી. તેથી આશા છે કે તમે એક સારા અર્થમાં છે અહીં ચાલી રહ્યું છે તે. મોટા તફાવત, પ્રમાણિકતા, માત્ર છે સાથે સોદા આ પ્રથમ ભાગ બીટમેપ ફાઈલોની મૂક્યો. તેથી હું મારી આગામી સ્લાઇડ તરીકે છે અમે શું કરવાની જરૂર છે? વેલ, જે ગૂઢ રહસ્યની અથવા ડિટેક્ટિવ વાર્તા કે નાટક વિશે વિચારો. અને કોઇની માટે જે વાંચો સમસ્યા સેટ, આપણે શું ગૂઢ રહસ્યની અથવા ડિટેક્ટિવ વાર્તા કે નાટક શું કરવાની જરૂર છે? ખાલી. Aleja. ALEJA: જો તમે ભાગ લઇ શકો છો લાલ સૂચવે છે કે દરેક પિક્સેલ કુલ. અને પછી - પ્રકારની? જેસન HIRSCHHORN: બરાબર. તેથી દરેક ભાગ લેવા લાલ સૂચવે છે કે પિક્સેલ. આ તે તમામ બંધ કરો, પરંતુ નથી. વિદ્યાર્થી 76: સારું, છે તે કરવા અલગ અલગ રીતે. જેસન HIRSCHHORN: બરાબર. મને એક રસ્તો આપે છે. વિદ્યાર્થી 76: તમામ લાલ લો, અને પછી પર ભાર મૂકે છે વાદળી અને લીલા. જેસન HIRSCHHORN: બરાબર. તેથી આ રીતે બંને આપવામાં - અમે તેને એક પિક્સેલ આપી જેમ તે લાગે તે એક લાલ, વાદળી, લીલા અને સ્તર છે. અમે સંબંધિત સ્તર બદલવા માંગો છો આ આધાર રાખીને, લાલ, વાદળી અને લીલા કે પિક્સેલ પર. આ કોડ આપણે બદલવો જોઈએ જ્યાં સંબંધિત લાલ, વાદળી અને લીલા આપેલ પિક્સેલ સ્તર. અમે તેને વાંચ્યા પછી - અમે તેને લખી પહેલાં? મને લીટી નંબર આપો. અનેક વિદ્યાર્થીઓ: 83. જેસન HIRSCHHORN: 83. તેથી અહીં. ગૂઢ રહસ્યની અથવા ડિટેક્ટિવ વાર્તા કે નાટક માટે, કોડ તમે જરૂર લખવા બધા અધિકાર ત્યાં થાય છે. અને તે માત્ર એક જ કોડ છે તમે લખવા માટે જરૂર છે. અમે સાંભળ્યું જેમ, બધા તમને જરૂર છે, કારણ કે કરવા માટે, આ સંબંધિત વાદળી બદલી છે દરેક પિક્સેલ થી લાલ અને લીલા સ્તરો. તમે તેને વાંચ્યા છે, અને હવે તમે છો તેને લખી રહ્યા. હું કેવી રીતે મેળવી શકું - હું આ વસ્તુ હોય તો અહીં, ત્રણ કહેવાય છે, અને તે છે RGBTRIPLE લખો - સાથે સાથે, અમે bmp.h જોવામાં તો, RGBTRIPLE શું છે? વિદ્યાર્થી 77: તે સ્ટ્રક્ટ છે. જેસન HIRSCHHORN: RGBTRIPLE સ્ટ્રક્ટ છે. અમે અધિકાર નીચે અહીં જુઓ કે. અને તેથી હું કહે છે, ઍક્સેસ માગતા હતા જો સ્ટ્રક્ટ લાલ સ્તર, હું કેવી રીતે કરવું આ સ્ટ્રક્ટ ના લાલ સ્તર ઍક્સેસ? [વર્ગની મર્મર્સ] વિદ્યાર્થી 78: RGBTRIPLE.rgbtred? જેસન HIRSCHHORN: તે સાચું છે? વિદ્યાર્થી 79: તે ત્રણ પ્રયત્ન કરીશું તેના બદલે RGBTRIPLE ડોટ કોઈ,? જેસન HIRSCHHORN: ટ્રીપલ. ટ્રીપલ સ્થાનિક ચલ છે, તેથી અહીં, અહીં કોઈ પોઇન્ટર છે. તેથી અમે ફક્ત કોઈ નોટેશનમાં ઉપયોગ કરે છે. આ મારા લાલ સ્તર આપશે. હું તેને બદલવા માંગો છો, હું હમણાં જ સેટ તેને અલગ અલગ કંઈક લગભગ સમાન. તેથી ફરી, કોડ આ વાક્ય ઍક્સેસ આ, આ સ્ટ્રક્ટ અંદર ચલ, અને અમે કંઈક નવું કરવા માટે તે સેટ કરી શકો છો. તેથી ગૂઢ રહસ્યની અથવા ડિટેક્ટિવ વાર્તા કે નાટક માટે, ફરીથી, આ છે જરૂરીયાતમાં, અમે શું કરવાની જરૂર છે. ખૂબ સરળ. જસ્ટ કેટલાક સંબંધિત સ્તર બદલવા માટે, અને તે કોડ જાય છે આ છે. બીજી તરફ, માપ બદલો, થોડી trickier છે. હકીકતમાં, પુન: માપ કદાચ છે આ સમસ્યા trickiest ભાગ સુયોજિત કરો. અમે તેની પર જાઓ ત્રણ મિનિટ છે. પરંતુ ફરીથી, અમે પહેલાથી જ તેવા પરચૂરણ ખર્ચ કર્યો આ કોડ મોટા ભાગના, તેથી અમે ખૂબ પરિચિત હોવા જોઈએ. અમે શું કરવા માંગો છો એવી કઈ બાબતો છે તમે વાંચ્યા છે, તો માપ બદલો પાંચ સમસ્યા સેટ? તેં મને તેઓ આપો તો અમે તેમને વિશે વાત કરી શકો છો. અમે કરવા માંગો છો કેટલીક વસ્તુઓ શું છે? વિદ્યાર્થી 80: ઊભી - જેથી તમે આડા તેનો આકાર બદલવા માટે છે પરંતુ ઊભી પણ માપ બદલો? જેસન HIRSCHHORN: તેથી અમે આપવામાં રહ્યાં છો જો પિક્સેલ, અને અમે એક કરીને માપ બદલો માંગો છો બે પરિબળ છે, તે હવે જરૂરી છે આડા પુન: માપ અને માપ બદલી ઊભી. કે અર્થમાં છે? અરે વાહ. જેથી કદાચ આ સૌથી મોટો પડકાર. અને અમે સે માં કે વિશે વાત કરીશું. અરે વાહ. વિદ્યાર્થી 81: હું તે વિચાર આ રીતે તમે પ્રિન્ટ તેને જરૂરી હતી - જેસન HIRSCHHORN: રાહ જુઓ. તમે હતી તે અમને કહો નહિં. અમે તર્ક વાત રહ્યા છીએ. વિદ્યાર્થી 81: બરાબર. પ્રશ્ન શું હતો? જેસન HIRSCHHORN: તમે માત્ર તમારા હાથમાં વધારો થયો છે. કોઈ પ્રશ્ન હતો. મને તે રજૂ કરે છે. મને હમણાં જ થોડા સમય માટે ચર્ચા કરીએ. તેથી અમે, અમે એક પિક્સેલ માંગો, બંને આડા, તે નકલ અને ઊભી. તેથી આદર્શ અમે અહીં શું છે અમે અમારા પિક્સેલ માં વાંચો, અમે તેને લખી વખત જો કે ઘણા. પરંતુ તે પછી આપણે, અહીં અમારા યુક્તિ છે કારણ કે પછી અમે સુધી અવગણો કરવા માંગો છો આગળના વાક્ય અને તે પર લખો આગામી લીટીના શરૂઆત. તેથી અમે બંને નકલ કરવા માંગો છો સીધી અને ઊભી છે તે કરવા માટે એક સારો માર્ગ - સારી છતાં તે કરવા માટે? તેથી અમે સતત લેવી જરૂરી નથી અમારી ફાઈલ આસપાસ વસ્તુઓ મૂકો. કે પ્રશ્ન નહીં હોય અર્થમાં કર્યો હતો, પરંતુ મને લાગે છે કે એક તે જવાબ મદદ કરશે. વિદ્યાર્થી 82: એક એરે બનાવો? જેસન HIRSCHHORN: તેથી ચાલો વિચારો સળંગ દરેક ફાઈલની. માતાનો પંક્તિઓ દ્રષ્ટિએ વિચારો. અમે અમારા નાના થી અમારી પ્રથમ પંક્તિ હોય ચિત્ર, અમે તે પંક્તિ કરી શકો છો મોટા ચિત્ર એક મોટી પંક્તિ માં, અને પછી જો કે એ પંક્તિ નકલ તે નકલ કરવાની જરૂર છે ઘણી વખત, બદલે પિક્સેલ દ્વારા પિક્સેલ જવા કરતાં, જ્યારે ગૂંચવણમાં મળે છે ફાઇલો સાથે કામ કરીએ. અમે હતી કારણ કે જો - હું જગ્યા બહાર ચાલી રહ્યો છું. આ અમારી ફાઇલ છે, અને અમે છે કે ત્યાં એક પિક્સેલ, અને અમે તેને મૂકેલ અહિ, અમે હજુ પણ કેટલીક વસ્તુઓ છે ત્યાં અમે છો ત્યારે જવા માટે છે કે જરૂર લેખન અને અમારી નવી ફાઈલ બનાવી - અમારી ફાઈલ કે બે વખત મોટી છે. પરંતુ તે ફાઇલ કાર્યો સાથે ખરેખર મુશ્કેલ છે નવી પંક્તિઓ આસપાસ છોડવા માટે જેમ, અને પછી અહીં પાછા જાઓ અને ત્યાં વસ્તુઓ મૂકો. તે કંઈક લગભગ અશક્ય છે જેમ, જો તે અર્થમાં બનાવે. અમે પંક્તિઓ દ્રષ્ટિએ વિચારી તેથી, જો અમે કરી શકો છો અમારા પંક્તિ લે છે, અને પછી તે મૂકે છે - ઊભી પંક્તિઓ નકલ. અને તે અમે માપ બદલવાની સાથે કામ કેવી રીતે ઊભી બદલે આડા કરતાં. તે પ્રકારની ઝડપી હતી, અને થોડો ગૂંચવણમાં મૂકે. કમનસીબે અમારા સમય છે. હું તમે તે માટે બહાર ઊભા કરશે અહીં વિશે કોઈ પ્રશ્ન છે જે પુનઃપ્રાપ્ત સહિત સમસ્યા સમૂહ,. તેથી આપણે હવે માટે મોકૂફ રાખવું. અને ફરી, જો તમે કોઇ પ્રશ્નો હોય તો, અમે બહાર ચેટ કરી શકો છો.