[સંગીત વગાડવાનો] ડેવિડ જે MALAN: બધા અધિકાર. આ CS50 છે અને આ 2 અઠવાડિયું શરૂઆત છે. અને તમે તે પર યાદ પડશે અઠવાડિયા ભૂતકાળમાં દંપતી, અમે કમ્પ્યુટર રજૂઆત કરવામાં આવી છે વિજ્ઞાન અને, વળાંક, પ્રોગ્રામિંગ. અને અમે માર્ગ દ્વારા વાર્તા શરૂ સ્ક્રેચ, કે જે ગ્રાફિકલ ભાષા એમઆઇટી મીડિયા લેબ માંથી. અને પછી તાજેતરમાં, છેલ્લા અઠવાડિયે, અમે કર્યું એક higher-- એક પરિચય નીચલા સ્તરના ભાષા ઓળખાય સી, કંઈક કે જે કેવળ શાબ્દિક છે, કારણ કે. અને, ખરેખર, છેલ્લા સમય અમે આ સંદર્ભમાં અંદર શોધવામાં વિચારોનું નંબર. આ, સ્મૃતિ, ખૂબ જ હતો પ્રથમ કાર્યક્રમ અમે અંતે હતા. અને આ કાર્યક્રમ, તદ્દન સરળ, છાપે, "હેલો, વિશ્વ." પરંતુ ત્યાં ખૂબ જ અવાસ્તવિક જાદુ પર જવાનું. આ # સમાવેશ થાય છે છે આ કોણ કૌંસ સાથે. ત્યાં પૂર્ણાંક છે. ત્યાં (રદબાતલ). કૌંસ, સર્પાકાર કૌંસ છે, અર્ધ કોલોન ':', અને તેથી વધુ. અને તેથી, યાદ છે કે અમે સ્ક્રેચ રજૂ કે જેથી અમે, આદર્શ રીતે, છેલ્લા જોઈ શકે કે વાક્યરચના, સામગ્રી ખરેખર નથી કે બધા બુદ્ધિપૂર્વક રસપ્રદ છે પરંતુ શરૂઆતમાં છે, સંપૂર્ણપણે, એક બીટ મુશ્કેલ તમારા મન આસપાસ લપેટી. અને, ખરેખર, સૌથી સામાન્ય વસ્તુઓ પર શરૂઆતમાં એક પ્રોગ્રામિંગ વર્ગ, ખાસ કરીને તે ઓછી માટે આરામદાયક, દ્વારા હતાશ છે અને અમુક વાકયરચનામાં દ્વારા ટ્રિપ ભૂલો, લોજિકલ ભૂલો ઉલ્લેખ નથી. અને અમારા ગોલ વચ્ચે એટલી આજે, ખરેખર, વસિયતનામું કેટલાક સાથે તમે સજ્જ હશે કેવી રીતે સમસ્યા હલ કરનારા તકનીકો સારી સમસ્યાઓ પોતાને હલ કરવા માટે ડિબગીંગ સ્વરૂપ છે. અને તમે યાદ પડશે કે, પણ, પર્યાવરણ હોય છે કે અમે રજૂ છેલ્લા સમય CS50 IDE તરીકે ઓળખાતું હતું. આ વેબ આધારિત સોફ્ટવેર છે કે તમે મેઘ કાર્યક્રમ માટે પરવાનગી આપે છે તેથી વાત કરવા માટે જ્યારે બધા રાખવા તમારા સાથે મળીને ફાઇલો, કારણ કે અમે આજે ફરી કરશે. અને તે આપણે યાદ અહીં આ મુદ્દાઓ પુનરાવર્તન, તેમની વચ્ચે કાર્યો, અને આંટીઓ, અને ચલો, અને બુલિયન સમીકરણો, અને શરતો. અને ખરેખર થોડા વધારે છે કે અમે સ્ક્રેચ વિશ્વમાં અનુવાદિત સી વિશ્વમાં પરંતુ મૂળભૂત મકાન બ્લોક્સ, તેથી વાત કરવા માટે ખરેખર હજુ પણ એ જ છેલ્લા અઠવાડિયે હતા. એક હકીકતમાં, અમે ખરેખર માત્ર હતી વિવિધ પઝલ ભાગ, જો તમે કરશે. કે જાંબલી બદલે બ્લોક સેવ, અમે તેના બદલે printf હતી, જે સી માં આ કાર્ય કે તમે કંઈક છાપવા માટે પરવાનગી આપે અને સ્ક્રીન પર તે બંધારણ. અમે CS50 રજૂ લાયબ્રેરી, જ્યાં તમે તમારા નિકાલ get_char હવે હોય છે, અને get_int, અને get_string, અને થોડા અન્ય કાર્યો વેલ, જે દ્વારા તમે ઇનપુટ મેળવી શકો છો વપરાશકર્તા પોતાના કીબોર્ડ છે. અને અમે પણ વસ્તુઓ પર એક નજર લીધો these- bool, અને ઘરનાં પરચૂરણ કામો જેવા, અને ડબલ, ફ્લોટ, પૂર્ણાંક, long_long શબ્દમાળા. અને ત્યાં સી માં પણ અન્ય ડેટા પ્રકારો અન્ય શબ્દોમાં, જ્યારે તમે જાહેર માં એક ચલ કેટલાક કિંમત સંગ્રહવા માટે, અથવા જ્યારે તમે એક કાર્ય અમલ કે અમુક કિંમત આપે છે, તમે શું સ્પષ્ટ કરી શકો છો કિંમત છે કે જે પ્રકાર. તે એક સ્ટ્રિંગ છે, જેમ અક્ષરો ક્રમ? તે પૂર્ણાંક જેવા એક નંબર છે? તે અપૂર્ણાંક બિંદુ છે કિંમત, અથવા જેમ? તેથી સી, ​​સ્ક્રેચ વિપરીત, અમે ખરેખર માહિતી કેવા પ્રકારની સ્પષ્ટ કરવા માટે શરૂ કર્યું અમે પરત અથવા ઉપયોગ કરતા હતા. પરંતુ, અલબત્ત, અમે પણ સપડાઇ કમ્પ્યુટિંગ કેટલાક મૂળભૂત મર્યાદા. અને ખાસ કરીને, આ ભાષા સી, સ્મૃતિ અમે જોતા હતા કે પૂર્ણાંક ઓવરફ્લો, વાસ્તવિકતા કે જો તમે માત્ર એક જ મેમરી મર્યાદિત રકમ અથવા, ખાસ કરીને, મર્યાદિત નંબર બિટ્સ, તમે માત્ર જેથી ઊંચી ગણતરી કરી શકે છે. અને તેથી અમે અહીં આ ઉદાહરણમાં પર જોવામાં જેમાં એક વિમાન એક કાઉન્ટર, ખરેખર, જો પર્યાપ્ત લાંબા સમય સુધી થશે ચાલી ઓવરફ્લો અને સોફ્ટવેર પરિણમી એક વાસ્તવિક ભૌતિક સંભવિત ભૂલ. અમે પણ ફ્લોટિંગ જોવામાં બિંદુ અશુદ્ધિ, વાસ્તવિકતા માત્ર એક મર્યાદિત નંબર સાથે બિટ્સ, શું તે 32 અથવા 64 છે, તમે માત્ર ઘણા નંબરો સ્પષ્ટ કરી શકો છો એક દશાંશ બિંદુ પછી, જે પછી તમે અશુદ્ધ વિચાર શરૂ થાય છે. દાખલા તરીકે, એક તૃત્યાંશ તેથી અહીં વિશ્વના, અમારા માનવ વિશ્વમાં, આપણે જાણીએ છીએ માત્ર એક અનંત નંબર છે આ બાદ ચિહ્ન પછી 3s છે. પરંતુ કમ્પ્યૂટર જરૂરી નથી કરી શકો છો નંબરો અનંત સંખ્યા પ્રતિનિધિત્વ જો તમે માત્ર પરવાનગી આપે છે તે કેટલાક માહિતી મર્યાદિત જથ્થો. તેથી માત્ર અમે તમને સજ્જ હતી શરતો વધારે શક્તિ સાથે કેવી રીતે તમે તમારી જાતને પર વ્યક્ત કરી શકે છે પ્રોગ્રામિંગ દ્રષ્ટિએ કીબોર્ડ, અમે પણ મર્યાદિત શું તમે ખરેખર કરી શકો છો. અને ખરેખર, ભૂલો અને ભૂલો કરી શકો છો મુદ્દાઓ તે પ્રકારના માંથી પેદા થાય છે. અને ખરેખર, વિષયો વચ્ચે આજે ડિબગીંગ જેવા વિષયો હશે આવે છે અને ખરેખર હૂડ નીચે જોઈ કેવી રીતે વસ્તુઓ રજૂ કરવામાં આવ્યા હતા છેલ્લા અઠવાડિયે ખરેખર અમલ કરવામાં આવે છે કે જેથી તમે વધુ સારી રીતે સમજી બંને ક્ષમતાઓ અને સી જેવા ભાષા મર્યાદાઓ અને હકીકતમાં, અમે પાછા છાલ સ્તરો પડશે માહિતી માળખું સરળ, કંઈક ઝાકઝમાળ કહેવાય છે, જે સ્ક્રેચ એક કૉલ થાય છે "યાદી." તે થોડો છે તે સંદર્ભમાં અલગ છે. અને પછી અમે પણ એક રજૂ કરીશું અમારા ડોમેન ચોક્કસ સમસ્યાઓ પ્રથમ CS50 માં, વિશ્વના ક્રિપ્ટોગ્રાફી, મૂંઝાયેલું ઓફ આર્ટ અથવા તેથી માહિતી સંકેત તમે ગુપ્ત સંદેશાઓ મોકલી શકો છો કે અને ગુપ્ત સંદેશાઓ સાંકેતિક લખાણ વાંચવું બે વ્યક્તિઓ, એ અને બી વચ્ચે તેથી અમે સંક્રમણ પહેલાં કે નવા વિશ્વમાં, ચાલો કેટલાક સાથે સજ્જ કરવાનો પ્રયાસ કરીએ જે ટેકનિક સાથે તમે દૂર કરી શકો છો અથવા ઓછામાં ઓછા કેટલાક ઘટાડવા હતાશા તમે કદાચ આવી છે કે છેલ્લા અઠવાડિયે એકલા પર. હકીકતમાં, તમે આગળ કેટલાક such-- છે સી અને મતભેદ તમારા પ્રથમ સમસ્યાઓ છે, જો તમે મારી જેમ છો, પ્રથમ વખત તમે એક કાર્યક્રમ બહાર લખો કરવાનો પ્રયાસ કરો, પણ જો તમે તાર્કિક લાગે કાર્યક્રમ ખૂબ સરળ છે, તમે ખૂબ જ સારી રીતે દિવાલ હિટ કરી શકે છે, અને કમ્પાઇલર સહકાર નથી જઈ રહ્યા છે. બનાવો અથવા રણકાર નથી જઈ રહ્યા છે ખરેખર તમારી બોલી કરવા માટે. અને શા માટે છે કે હોઈ શકે છે? વેલ, ચાલો એક નજર કરીએ કદાચ, એક સરળ પ્રોગ્રામ. હું આગળ જાઓ અને આ સેવ કરવા જઇ રહ્યો છું ફાઇલ ઇરાદાપૂર્વક buggy0.c કહેવાય છે, કારણ કે હું તે ખબર અગાઉથી અપૂર્ણ શકાય છે. પરંતુ હું ખ્યાલ છે કે જો આ ન શકે પ્રથમ કે બીજા કે ત્રીજા કાર્યક્રમ છે કે હું ખરેખર મારી જાતને બનાવવા છું. તેથી હું આગળ જાઓ જાઉં છું અને બહાર લખો, પૂર્ણાંક મુખ્ય (રદબાતલ). અને પછી મારી સર્પાકાર કૌંસ ની અંદર, એક ખૂબ જ પરિચિત ( "હેલો, world-- બેકસ્લેશ, એ ") - અને અર્ધવિરામ. હું ફાઈલ સાચવી લીધો છે. હવે હું નીચે જવા માટે જઇ રહ્યો છું મારી ટર્મિનલ વિન્ડોમાં અને પ્રકાર બનાવવા buggy0, કારણ કે, ફરી, આજે ફાઈલ નામ buggy0.c છે. તેથી હું buggy0 બનાવવા માટે, દાખલ કરો લખો. અને, ઓહ, Gosh, છેલ્લા સમય યાદ કે કોઈ ભૂલ સંદેશાઓ એક સારી બાબત છે. જેથી કોઈ આઉટપુટ એક સારી બાબત છે. પરંતુ અહીં હું સ્પષ્ટ છે ભૂલો કેટલાક નંબર. આઉટપુટ પ્રથમ વાક્ય તેથી buggy0 બનાવવા લખીને પછી, સ્મૃતિ, રણકાર એકદમ વર્બોઝ આઉટપુટ છે. હૂડ નીચે, CS50 IDE રૂપરેખાંકિત થયેલ છે સમગ્ર ટોળું વાપરવા માટે આ કમ્પાઈલર સાથે વિકલ્પો જેથી તમે નથી કે તેમને વિશે વિચારો. અને તે બધા છે કે પ્રથમ વાક્ય છે અર્થ એ થાય કે રણકાર સાથે શરૂ થાય છે. પરંતુ તે પછી, સમસ્યાઓ તેમના દેખાવ બનાવવા માટે શરૂ થાય છે. રેખા 3, પાત્ર પર Buggy0.c 5, ત્યાં એક મોટું, લાલ ભૂલ છે. પેલું શું છે? સર્વથા પુસ્તકાલય કાર્ય જાહેર પ્રકાર પૂર્ણાંક (const ઘરનાં પરચૂરણ કામો * printf, ...) [-Werror]. હું ખૂબ જ ઝડપથી તેનો અર્થ, તે ખૂબ જ Arcane નોંધાયો નહીં. અને ચોક્કસપણે, ખાતે પ્રથમ નજરમાં, અમે નહીં કરશે તમે સમજી અપેક્ષા તે સંદેશ સમગ્ર. અને તેથી પાઠ એક આજે ચાલુ છે માટે નોટિસ પ્રયાસ હોઈ પેટર્ન, અથવા સમાન વસ્તુઓ, ભૂલો માટે તમે હોઈ શકે છે ભૂતકાળમાં આવી. તો ચાલો સિવાય માત્ર પીંજવું તે શબ્દો પરિચિત જુઓ. મોટું, લાલ ભૂલ સ્પષ્ટ છે કંઈક સાંકેતિક ખોટું છે. સર્વથા જાહેર પુસ્તકાલય કાર્ય printf. તેથી તો પણ હું ખૂબ નથી સમજી નથી શું સર્વથા પુસ્તકાલય કાર્ય જાહેર અર્થ, સમસ્યા ચોક્કસ કોઈક printf સાથે સંબંધિત છે. અને તે મુદ્દો સ્ત્રોત તે જાહેર સાથે શું કરવું છે. જાહેર કાર્ય છે પ્રથમ વખત માટે તે ઉલ્લેખ. અને અમે ગયા સપ્તાહે પરિભાષા વપરાય એક કાર્ય પ્રોટોટાઇપ જાહેર, ક્યાં ટોચ પર એક વાક્ય સાથે તમારા પોતાના ફાઈલ અથવા કહેવાતા હેડર ફાઈલ છે. અને શું ફાઈલ આપણે કહી હતી છેલ્લા અઠવાડિયે કે printf ભાવ છે, અવતરણ ચિહ્નો પૂરાં કરવાં, જાહેર? શું ફાઈલ તેના પ્રોટોટાઇપ છે? તેથી જો તમે યાદ, ખૂબ પ્રથમ વસ્તુ હું ટાઇપ, લગભગ દરેક કાર્યક્રમ છેલ્લા સમય અને આકસ્મિક એક ક્ષણ પહેલા શરૂ myself-- લખીને આ એક અહીં હતી hash-- # સમાવેશ થાય છે